Giter Club home page Giter Club logo

timeline-scale's People

Contributors

nasedil avatar

Watchers

 avatar  avatar

timeline-scale's Issues

Improve text and structure

Add technical information in files (github markdown, litcoffee, etc...)

Also add license to each file, link to main project, author with contact info.

Make three or four-level content overview.

Two-lane axis

Implement axis with two lanes, so that second lane have the same information that non-first lanes have in multilane axis.

Refactor options

Refactor optios, so that some are keeped in object, but axis formatting functions can be called independently. Remove non-necessary dependence on filed options.

Checklist:

  • tightness option -- changed from argument to field
  • findPointList() -- good
  • findLeftTime() -- good
  • findNextPoint() -- good
  • timeToCoord() -- good
  • findNominalInterval() - good
  • formatLabel() -- changed options from argument to fields
  • renderToCanvas() -- good

Flexible interface for conventional and special axes

Implement methods that return lists of major ticks, minor ticks, labels, which can be used in other libraries that support only such kind of time axis.
Tasks:

  • Return major ticks
  • Return minor ticks
  • Return each lane separately for multilane axis and double-lane axis
  • Return list of formatted labels

Continious animation axis

Make it possible to animate axis continuously, that is there is never a rapid change: no disappearing or appearing ticks and labels, everything smoothly changes.

Add introductory text for completely new readers

Something that would make people understand purpose, structure and how to continue exploring the project; all in pretty short format story.

Add reason for making the library.
Add direction and vision.

Change timestamps type to milliseconds from Epoch

It seems that milliseconds from Epoch is the best format type to use for timestamps (for exporting and parameters). It is universally used on different platforms and in different programming languages.

Adjust formatting of label based on width between ticks

For example, if we need to display month name, but distance between two consecutive ticks is smaller then width of the widest month name, then we change formatting to use month abbreviation for example, or month number, or something like that.

Reconsider layers of library

Now we have a layer that returns abstract graphical data, and another layer that renders that data.

What if we make them smaller? First layers could return the most low-level data, like tick timestamps, intervals, text of labels (or even not here, just properties of these labels that will be rendered by next layer?). Another layer could format labels. And another one could make list of lines. And the last will render it.

On the other side, one problem is that in smart timelines label text can be dependent on actual tick values and font size. What to do here? And even more, tick values can be adjusted based on text size, why not? At some point it's good to make the simplest interface that just gets interval and renders it as good as possible. We should decide what to do.

Remove field assignments from methods

Refactor class in such a way that state of class is not changed from its methods (see #7).
Particularly here means to remove fields that were used merely to pass value from one method to another. For this arguments or another class should be used.

Implement good quality multi-lane axis

Implement axis with several lanes.
Things to be done:

  • Each lane has its offset
  • Per-lane visual options -- not needed, instead make this possible by getting each lane individually and formatting them after that; see #17

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.