GithubHelp home page GithubHelp logo

edsc-timeline's Introduction

Earthdata Search Components: Timeline

npm version Build Status codecov

Try out the online demo

A React plugin implementing a timeline view of data, allowing time range selection as well as keyboard and touch interaction For a basic usage example and a testbed for changes, see example/src

The edsc-timeline plugin was developed as a component of Earthdata Search.

Installation

npm install @edsc/timeline

Usage

After installing you can use the component in your code.

import EDSCTimeline from '@edsc/timeline'

const Component = () => {
  const data = [
    {
      id: 'row1',
      title: 'Example title',
      intervals: [
        [
          new Date('2019-08-12').getTime(), // Start of the interval
          new Date('2019-12-20').getTime() // End of the interval
        ],
        [
          new Date('2020-01-04').getTime(),
          new Date('2020-05-20').getTime()
        ]
      ]
    }
  ]

  return (
    <EDSCTimeline
      data={data}
    />
  )
}

Props

Prop Type Required Default Value Description
data array true Array of rows to be displayed on the timeline
center number new Date().getTime() Center timestamp of the timeline
minZoom number 1 Minimum zoom level
maxZoom number 5 Maximum zoom level
zoom number 3 Active zoom level
temporalRange object {} Temporal range ({ start, end }) that is displayed on the timeline
focusedInterval object {} Focused interval ({ start, end }) that is displayed on the timeline
onFocusedSet function Callback function that returns the focused interval when it is set
onTemporalSet function Callback function that returns the temporal range when it is set
onTimelineMove function Callback function called when the timeline is moved
onTimelineMoveEnd function Callback function called when the timeline is finished moving
onArrowKeyPan function Callback function called when arrow keys are used to change the focused interval
onButtonPan function Callback function called when buttons are used to change the focused interval
onButtonZoom function Callback function called when buttons are used to change the zoom level
onDragPan function Callback function called when the timeline is panned using dragging
onFocusedIntervalClick function Callback function called when a focused interval is clicked
onScrollPan function Callback function called when the mouse wheel is used to pan the timeline
onScrollZoom function Callback function called when the mouse wheel is used to change the zoom level

Callback function return value

Every callback function returns this object

{
  center,
  focusedEnd,
  focusedStart,
  temporalEnd,
  temporalStart,
  timelineEnd,
  timelineStart,
  zoom
}

Development

To compile:

npm install

To start the example project for local testing:

npm start

To run the Jest tests:

npm test

To run the Cypress tests:

npm run cypress:run

Contributing

See CONTRIBUTING.md

License

Copyright © 2007-2014 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

edsc-timeline's People

Contributors

abbottry avatar bademiluyi avatar bilts avatar eudoroolivares2016 avatar macrouch avatar mightynimble avatar trevorlang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edsc-timeline's Issues

Can not install the plugin

Good morning, my name is Stiven, I have tried to install the plugin, however it generates errors in the process, I wanted to know what installation prerequisites there are, I have attached an image of some of the errors, thank you.
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.