:bar_chart: A library of modular chart components built on D3

Overview

Plottable Builds Join the chat at https://gitter.im/palantir/plottable

Plottable is a library of chart components for creating flexible, custom charts for websites. It is built on top of D3.js and provides higher-level pieces, like plots, gridlines, and axes. As such, it's easier to quickly build charts than with D3, and the charts are much more flexible than standard-template charts provided by charting libraries. You can think of Plottable as a "D3 for Charts" — it is not a charting library but rather a library of chart components. Check out examples of Plottable on our website's examples page.

Philosophy

Plottable's core philosophy is "Composition over Configuration", so a lot of the API flexibility is in choosing which Components to use, and how to arrange them in Tables, rather than setting high-level properties on the charts. If you find you need a feature that doesn't exist, consider writing a new Component that implements the functionality. This way, you can get your custom functionality and still benefit from the rest of the library.

Plottable is used and developed at Palantir Technologies. It's developed in TypeScript and distributed in ES5 JavaScript.

Quick Start

Upgrading to v1.0.0

If you are upgrading from a pre-v1.0.0 version of Plottable to v1.0.0 or later, please use the Upgrade Guide on the wiki.

Upgrading to v2.0.0

Check out the full list of changes between v1.16.2 and v2.0.0.

Upgrading to v3.0.0

Check out the full list of changes between v2.9.0 and v3.0.0.

We Want To Help!

If you run into any problems using Plottable, please let us know. We want Plottable to be easy-to-use, so if you are getting confused, it is our fault, not yours. Create an issue and we'll be happy to help you out, or drop by our Gitter room.

Development

  • Clone the repo
  • Install local dependencies yarn install
  • Run yarn build to build the dependencies
  • Run yarn start and it will spin up a server (pointed at http://localhost:9999) and begin compiling the typescript code
  • Navigate to http://localhost:9999/quicktests/ and choose a directory to view visual tests

Contributing

  • Write your code
  • Add tests for new functionality, and please add some quicktests too
  • Run yarn test and verify it completes with no warnings or failures
  • Submit a pull request and sign the CLA when prompted by our bot
Comments
  • Autorange smooth

    Autorange smooth

    Closes #2439

    Feature request from Contour. Worked closely with the customer to get the correct behavior.

    Affects:

    • Line Plot
    • Area Plot
    • Stacked Area Plot

    Pan and Zoom to get a feeling of the new behavior. Without feature enabled: http://jsfiddle.net/2cghgtfk/3/ With feature enabled: http://jsfiddle.net/2cghgtfk/4/

    New API points

    QuantitativeScale

    /**
     * Gets whether or not the scale snaps its domain to nice values.
     */
    snappingDomainEnabled(): boolean;
    /**
     * Sets whether or not the scale snaps its domain to nice values.
     */
    snappingDomainEnabled(snappingDomainEnabled: boolean): QuantitativeScale<D>;
    

    Plots.Line

    /**
     * Gets whether or not the autoranging is done smoothly.
     */
    autorangeSmooth(): boolean;
    /**
     * Sets whether or not the autorange is done smoothly.
     *
     * Smooth autoranging is done by making sure lines always exit on the left / right side of the plot
     * and deactivating the nice domain feature on the scales
     */
    autorangeSmooth(autorangeSmooth: boolean): Plots.Line<X>;
    

    QE Notes:

    • autoRangeSmooth is not dependent on autoRangeMode being called on any plots in the group.
    • autoRangeSmooth does not make sense without autorangeMode "x" or "y", because there is no autoranging happening
    • autoRangeSmooth works in both directions now
    • autoRangeSmooth does not care if the line plot does not look like a line plot anymore (stars also get smoothly autoranged)
    • We don't need new endpoints to indicate the direction because that is inferred from the autorangeMode
    QE +1 +1 
    opened by aicioara 41
  • Animation Stage1

    Animation Stage1

    Define the DrawingTarget type, construct the DrawingTarget when databinding in Drawer, pass the DrawingTarget through Animator.animate

    Expects all animations to continue to work as currently.

    opened by softwords 40
  • Enable 'object constancy' on data refresh by supporting a key function in Dataset

    Enable 'object constancy' on data refresh by supporting a key function in Dataset

    Resubmitting with cleanups to formatting - previously #2801 also see issue #2512 This pull request

    adds the key function to Dataset uses this key in Drawer when binding data to the selection provides 2 predefined keys: -- NoConstancy - which will return a new value each time it is called, therefire ensuring that there is never object constancy; that is, all elements in the selection are removed and recreated -- ByIndex - returns the index of the datum n the array, which is the default behaviour of d3 anyway

    Also removes the logic on AnimateOnNextRender in ScatterPlot. This logic simulates the destruction and recreation of each svg element to create an animation effect. But, if the NoConstancy key is used, d3 destroys and recreates the svg elements itself, so there is no need for this workaround. This also resolves issue #2707.

    opened by softwords 33
  • Contextual label placement

    Contextual label placement

    Possibly closes #2578.

    Still working out what's broken in the tests. grunt test output, even with the --force flag doesn't tell me which tests are broken. Also need to add tests for a few things. Was sort of exploring as I went, so I didn't do Test First.

    Missing

    • [x] Similar functionality for horizontal bar charts

    Tests Needed

    Please add to the list if you can think of anything I've missed.

    • [x] Confirm that labels are shown off the bar when the bar is too short.

    image

    +1 QE -1 
    opened by okal 33
  • [Plots] Implement RectanglePlot, reimplement GridPlot to support non-ordinal scales

    [Plots] Implement RectanglePlot, reimplement GridPlot to support non-ordinal scales

    Still needs unit tests and whatnot, but I wanted to put this out there to kick off a conversation if there is any to be had about the implementation of RectanglePlot (for example, should this be called RectanglePlot?)

    Proof of concept with TimeScale and LinearScale/OrdinalScale: http://jsfiddle.net/usv4ombr/2/

    Fixes #1709

    P1 QE +1 +1 
    opened by rcchen 27
  • Time axis

    Time axis

    A better time axis. This is not ready yet, and still has a few bugs, but I'm making this PR so it's easier to get feedback.

    Here are some pictures: screen shot 2014-07-16 at 6 36 34 pm screen shot 2014-07-16 at 6 34 28 pm screen shot 2014-07-16 at 6 35 31 pm screen shot 2014-07-16 at 6 36 07 pm

    opened by lewin 27
  • Implement Plots.Waterfall

    Implement Plots.Waterfall

    image

    Based off of Plots.Bar, Plots.Waterfall has the following API points in addition to what is expected from Plots.Bar:

    • .connectorsEnabled()/.connectorsEnabled(enabled) - gets/sets whether connector lines should be enabled or not.
    • .total()/.total(total) - gets/sets the accessor for whether each bar represents a total or not. Must return a boolean.

    Data model:

    {
      x: "A", // xValue for each bar. Will be interpreted as a category
      y: 150, // yValue for each bar. Can be a total or a delta.
      t: "total" // the type of each bar. You can put anything here but its accessor should return a boolean
    }
    

    Fiddle: http://jsfiddle.net/a3mmsbdt/

    Closes #1853 Closes #1862

    QE +1 +1 
    opened by rcchen 26
  • Axis annotation

    Axis annotation

    Axis annotations are a visualization on top of an axis that places certain tick values into separate containers. This allows for these ticks to present themselves as a bit more special to the user than other ticks.

    Below is a simple example:

    screen shot 2015-08-18 at 5 13 37 pm

    Note that the annotations will reside in its own annotation area of the axis taking up as much space as the set number of annotation tiers. Under the situation where annotations were to collide if they are to be put in the same tier, they would be placed in the next tier. If the annotation were to render outside the annotation area, the annotation is hidden.

    Note that the annotations are placed below the axis area in the above example with a "bottom" orientation axis. They will be placed above the axis area with a "top" orientation axis, right of the axis area with a "right" orientation axis , and left of the axis area with a "left" orientation axis.

    To best calculate collisions, "left" and "right" orientation axes have the annotation labels rotated by 90 degrees.

    This feature should work with all types of Axes.

    The annotations can be styled through css. To style the annotation circles, you can use the selector .plottable .axis .annotation-circle. To style the annotation lines, you can use the selector .plottable .axis .annotation-line. To style the annotation rectangles, you can use the selector .plottable .axis .annotation-rect.

    JSFiddle: https://jsfiddle.net/86trca4u/14/

    API Additions:

    /**
     * Gets the annotated ticks
     */
    annotatedTicks(): D[];
    /**
     * Sets the annotated ticks
     *
     * @returns {Axis} The calling Axis.
     */
    annotatedTicks(annotatedTicks: D[]): Axis<D>;
    /**
     * Gets the formatter for the annotations
     */
    annotationFormatter(): Formatter;
    /**
     * Sets the formatter for the annotations
     *
     * @returns {Axis} The calling Axis.
     */
    annotationFormatter(annotationFormatter: Formatter): Axis<D>;
    /**
     * Gets if annotations are enabled
     */
    annotationsEnabled(): boolean;
    /**
     * Sets if annotations are enabled
     *
     * @returns {Axis} The calling Axis.
     */
    annotationsEnabled(annotationsEnabled: boolean): Axis<D>;
    /**
     * Gets the count of annotation tiers to render.
     */
    annotationTierCount(): number;
    /**
     * Sets the count of annotation tiers to render.
     *
     * @returns {Axis} The calling Axis.
     */
    annotationTierCount(annotationTierCount: number): Axis<D>;
    

    Protected API Additions:

    _drawAnnotations(): void;
    _removeAnnotations(): void;
    _annotationTierHeight(): number;
    _axisSizeWithoutMarginAndAnnotations(): number;
    

    Closes #2517

    QE +1 +1 
    opened by bluong 25
  • Implement Data.KeyFunction

    Implement Data.KeyFunction

    Resubmitted against objectConstancy branch - previously #2833 also see issue #2512 This pull request

    adds the key function to Dataset uses this key in Drawer when binding data to the selection provides 2 predefined keys: -- NoConstancy - which will return a new value each time it is called, therefore ensuring that there is never object constancy; that is, all elements in the selection are removed and recreated -- useIndex - returns the index of the datum n the array, which is the default behaviour of d3 anyway

    This PR provides a necessary foundation for developing animations in plottable that respect "object constancy" - proving visual representation of elements moving, entering or exiting the datasets being plotted.

    QE +1 +1 Side Branch 
    opened by softwords 23
  • Time Axis and Formatter

    Time Axis and Formatter

    Reopening #562 now that #564 has been merged in.

    I've removed the Time Scale changes for now because they weren't playing nice with the domainers #553 (since the domainer assumes that they are quantitive scale).

    For the Time formatter, I wasn't too sure what to do with precision. Currently I'm ignoring it, but we may want to make it do something in the future.

    opened by lewin 23
  • Doc everything

    Doc everything

    This branch reviews all of the documentation on our major classes, and ensures that all major public classes and methods are well-documented.

    Close #765.

    P2 NOQE -1 
    opened by bmalehorn 22
  • Bump express from 4.16.4 to 4.18.2

    Bump express from 4.16.4 to 4.18.2

    Bumps express from 4.16.4 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • clustered bar rendering labels only after branch change

    clustered bar rendering labels only after branch change

    I'm working on a vue.js legacy project, with vite. I'm using a clustered bar. On first rendering, the plot bar displays correctly all the labels as shown in picture below image Once i refresh the page, most labels disappear. The only way to show the labels again is by changing the branch on my project, and then returning to the previous one. The first time after the branch change the labels are displayed, and then after refresh they disappear. Solutions I tried that didn't work:

    • cleaning browsing data
    • restarting the server
    • trying on another browser / incognito window

    Is this a bug ? Or is it a problem on my side ?

    opened by asmafa 0
  • Bump shell-quote from 1.6.1 to 1.7.3

    Bump shell-quote from 1.6.1 to 1.7.3

    Bumps shell-quote from 1.6.1 to 1.7.3.

    Release notes

    Sourced from shell-quote's releases.

    v1.7.2

    • Fix a regression introduced in 1.6.3. This reverts the Windows path quoting fix. (144e1c2)

    v1.7.1

    • Fix $ being removed when not part of an environment variable name. (@​Adman in #32)

    v1.7.0

    • Add support for parsing >> and >& redirection operators. (@​forivall in #16)
    • Add support for parsing <( process substitution operator. (@​cuonglm in #15)

    v1.6.3

    • Fix Windows path quoting problems. (@​dy in #34)

    v1.6.2

    • Remove dependencies in favour of native methods. (@​zertosh in #21)
    Changelog

    Sourced from shell-quote's changelog.

    1.7.3

    • Fix a security issue where the regex for windows drive letters allowed some shell meta-characters to escape the quoting rules. (CVE-2021-42740)

    1.7.2

    • Fix a regression introduced in 1.6.3. This reverts the Windows path quoting fix. (144e1c2)

    1.7.1

    • Fix $ being removed when not part of an environment variable name. (@​Adman in #32)

    1.7.0

    • Add support for parsing >> and >& redirection operators. (@​forivall in #16)
    • Add support for parsing <( process substitution operator. (@​cuonglm in #15)

    1.6.3

    • Fix Windows path quoting problems. (@​dy in #34)

    1.6.2

    • Remove dependencies in favour of native methods. (@​zertosh in #21)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump grunt from 0.4.5 to 1.5.3

    Bump grunt from 0.4.5 to 1.5.3

    Bumps grunt from 0.4.5 to 1.5.3.

    Release notes

    Sourced from grunt's releases.

    v1.5.3

    • Merge pull request #1745 from gruntjs/fix-copy-op 572d79b
    • Patch up race condition in symlink copying. 58016ff
    • Merge pull request #1746 from JamieSlome/patch-1 0749e1d
    • Create SECURITY.md 69b7c50

    https://github.com/gruntjs/grunt/compare/v1.5.2...v1.5.3

    v1.5.2

    • Update Changelog 7f15fd5
    • Merge pull request #1743 from gruntjs/cleanup-link b0ec6e1
    • Clean up link handling 433f91b

    https://github.com/gruntjs/grunt/compare/v1.5.1...v1.5.2

    v1.5.1

    • Merge pull request #1742 from gruntjs/update-symlink-test ad22608
    • Fix symlink test 0652305

    https://github.com/gruntjs/grunt/compare/v1.5.0...v1.5.1

    v1.5.0

    • Updated changelog b2b2c2b
    • Merge pull request #1740 from gruntjs/update-deps-22-10 3eda6ae
    • Update testing matrix 47d32de
    • More updates 2e9161c
    • Remove console log 04b960e
    • Update dependencies, tests... aad3d45
    • Merge pull request #1736 from justlep/main fdc7056
    • support .cjs extension e35fe54

    https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.0

    v1.4.1

    • Update Changelog e7625e5
    • Merge pull request #1731 from gruntjs/update-options 5d67e34
    • Fix ci install d13bf88
    • Switch to Actions 08896ae
    • Update grunt-known-options eee0673
    • Add note about a breaking change 1b6e288

    https://github.com/gruntjs/grunt/compare/v1.4.0...v1.4.1

    v1.4.0

    • Merge pull request #1728 from gruntjs/update-deps-changelog 63b2e89
    • Update changelog and util dep 106ed17
    • Merge pull request #1727 from gruntjs/update-deps-apr 49de70b
    • Update CLI and nodeunit 47cf8b6
    • Merge pull request #1722 from gruntjs/update-through e86db1c
    • Update deps 4952368

    ... (truncated)

    Changelog

    Sourced from grunt's changelog.

    v1.5.3 date: 2022-04-23 changes: - Patch up race condition in symlink copying. v1.5.2 date: 2022-04-12 changes: - Unlink symlinks when copy destination is a symlink. v1.5.1 date: 2022-04-11 changes: - Fixed symlink destination handling. v1.5.0 date: 2022-04-10 changes: - Updated dependencies. - Add symlink handling for copying files. v1.4.1 date: 2021-05-24 changes: - Fix --preload option to be a known option - Switch to GitHub Actions v1.4.0 date: 2021-04-21 changes: - Security fixes in production and dev dependencies - Liftup/Liftoff upgrade breaking change. Update your scripts to use --preload instead of --require. Ref: https://github.com/js-cli/js-liftoff/commit/e7a969d6706e730d90abb4e24d3cb4d3bce06ddb. v1.3.0 date: 2020-08-18 changes: - Switch to use safeLoad for loading YML files via file.readYAML. - Upgrade legacy-log to ~3.0.0. - Upgrade legacy-util to ~2.0.0. v1.2.1 date: 2020-07-07 changes: - Remove path-is-absolute dependency. (PR: gruntjs/grunt#1715) v1.2.0 date: 2020-07-03 changes: - Allow usage of grunt plugins that are located in any location that is visible to Node.js and NPM, instead of node_modules directly inside package that have a dev dependency to these plugins. (PR: gruntjs/grunt#1677) - Removed coffeescript from dependencies. To ease transition, if coffeescript is still around, Grunt will attempt to load it. If it is not, and the user loads a CoffeeScript file, Grunt will print a useful error indicating that the coffeescript package should be installed as a dev dependency.

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by vladikoff, a new releaser for grunt since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump is-my-json-valid from 2.16.0 to 2.20.6

    Bump is-my-json-valid from 2.16.0 to 2.20.6

    Bumps is-my-json-valid from 2.16.0 to 2.20.6.

    Commits
    Maintainer changes

    This version was pushed to npm by linusu, a new releaser for is-my-json-valid since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
Releases(v3.13.0)
  • v3.13.0(Nov 22, 2021)

  • v3.12.0(Nov 17, 2021)

  • v3.11.0(Oct 18, 2021)

  • v3.9.0(Jun 12, 2020)

  • v3.8.8(Jun 1, 2020)

    • Explicitly update @types/d3-shape. #3548
    • Fix issue where pie strokes disappear after dataset update. #3494
    • Fixes to tests that become a problem in later versions of TypeScript. #3528
    Source code(tar.gz)
    Source code(zip)
  • v3.8.7(Jun 1, 2020)

  • v3.8.6(Apr 4, 2019)

  • v3.8.5(Mar 26, 2019)

  • v3.8.4(Feb 5, 2019)

  • v3.8.3(Jun 4, 2018)

    Performance

    • Memoize AttrToProjector. Move concats out of inner loop. (#3470)
    • For-each loop optimization and memoize normalizeKey (#3469)

    Bugs

    • Add 0x0 size check to canvas (#3467)
    • Normalize keys instead of using .toString to avoid NPE (#3459)

    API

    • Expose y offset for stacked area plots (#3465)
    • Expose autoDomainIfAutomaticMode in public API (#3461)

    Housekeeping

    • Upgrade d3 and types. Regenerate yarn.lock (#3464)
    • Use the tick generator for log scales to make API consistent (#3463)
    Source code(tar.gz)
    Source code(zip)
  • v.3.8.2(Mar 30, 2018)

  • v3.8.1(Mar 23, 2018)

    Performance and Usability Improvements

    • Drastically increase performance of entityNearest queries on bar plots
    • Improve performance of scatter plot color calculation
    • Prevent rendering issue where bars disappear due to moire sampling.
    Source code(tar.gz)
    Source code(zip)
  • v3.8.0(Feb 26, 2018)

    Fixes

    • [Bug] Fix selection mismatch on nearest entity due to hidden elements
    • [Perf] Use locked value of bar thickness in more cases to avoid expensive recalculation.

    Features

    • Add labels to scatter plots
    • Add stacked area plot canvas renderer
    • Add axis label type that wraps text
    • Add stroke-dasharray support for lineDrawer
    • Configurable UTC/local-time on time axes

    Ops

    • Upgrade to [email protected]
    • Upgrade to typescript@^2.7 (dev dependency)
    • Upgrade to jquery@^3.3.1 (dev dependency, security update)
    • Use tslib & importHelpers to improve bundle sizes further
    • Use node 8.8.1 in circle builds
    Source code(tar.gz)
    Source code(zip)
  • v3.7.0(Oct 20, 2017)

    Breaking Changes

    • The Plottable.Interactions.PanZoom.zoom() method now respects the zoom extent and minmax constraints by default. You may disable this behavior by passing false to the third argument:
    // old
    panZoomInteraction.zoom(amount, center); // unconstrained zoom
    
    // new
    panZoomInteraction.zoom(amount, center); // respects constraints
    panZoomInteraction.zoom(amount, center, false); // unconstrained again 
    

    Bug Fixes

    • Fixed plots with deferredRendering(true) sometimes rendering improperly.
    • Canvas rendering now respects the inherit opacity in fill and stroke attrs.
    • Fix a bug with PanZoom where slightly zooming out would sometimes zoom out completely.
    Source code(tar.gz)
    Source code(zip)
  • v3.6.1(Oct 17, 2017)

  • v3.6.0(Sep 22, 2017)

    API Improvements

    • Allows Scale.getTransformExtent() to return correct values before a component is anchored.
    • Account for stroke width when rendering symbols.
    • Reset entity store cache on component resize. Fixes misaligned tooltips.
    • Don't require label padding to draw bar labels. Improves perf.
    Source code(tar.gz)
    Source code(zip)
  • v3.5.4(Sep 12, 2017)

    v3.5.4

    Performance Enhancements

    • (#3403) Fast entity bounds queries. Added new methods on all plots for efficient bounds-overlap queries for plot entities.

      • entitiesInBounds
      • entitiesInXBounds
      • entitiesInYBounds
      • Use these methods directly or use the existing entitiesIn method that takes either a single Bounds object or two Range objects. In both of these cases, they are converted to IEntityBounds and then applied to entitiesInBounds.
    • (#3404) Fix perf regression of entityNearest in bar plots.

    Source code(tar.gz)
    Source code(zip)
  • v3.5.3(Sep 5, 2017)

    Patch Release

    • Add mouseFilter and wheelFilter to mouse interactions for more configurability.
    • Adds support for testing with Facebook's jest.
    • Improvements to internal API for manipulating transformable scales.
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2(Aug 30, 2017)

    v3.5.2

    Bug Fixes

    • Fix a regression in mouse and touch interactions on Charts where the page was scrolled.

    :warning: NOTICE :warning:

    • We've officially stopped publishing to Bower. Please use npm or unpkg to consume Plottable.
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1(Aug 25, 2017)

  • v3.5.0(Aug 24, 2017)

    Improvements

    • Plot rendering performance across the board has been improved by removing unnecessary computation.
    • Rewritten mouse and touch event position computation. Supports CSS3 transforms while avoiding the previous approach's DOM thrashing, improving the performance of interactive Charts for both desktop and mobile.
    • Performance of Bar, ClusteredBar, and StackedBar rendering has been drastically improved by removing unnecessary computation.

    Thanks, Plottable Team

    Source code(tar.gz)
    Source code(zip)
  • v3.4.1(Jul 26, 2017)

    Perf Improvements

    Add support for "canvas" renderers for Area, Bar, StackedBar, ClusteredBar plots. Cache values to make .entityNearest much faster.

    Source code(tar.gz)
    Source code(zip)
  • v3.4.0(Jul 21, 2017)

    New Features

    • Gridlines now work on Category Scales. Additionally, Gridlines can now be configured to draw between axis ticks with thebetweenX(true) and betweenY() endpoints. Thanks @CalvinFernandez! image

    Bug Fixes

    • Gridlines constructor now includes null | undefined in the type signature to play nicely with Typescript's strictNullChecks. Thanks @aleburato!
    • Fix an iPad bug where Plottable Interactions were blocking touch and click interactions on the whole page.

    Improvements

    • Greatly increased BarPlot rendering performance.

    Known issues

    • The BarPlot performance increase may cause small visual regressions when using a ModifiedLog scale or when manually updating the scale domain/range. Please let us know if you experience visual regressions.
    Source code(tar.gz)
    Source code(zip)
  • v3.3.1(Jun 29, 2017)

    Bug Fixes

    Fixed an issue with canvas rendering where browser zoom and switching monitors would cause the canvas to be incorrectly sized and painted.

    Source code(tar.gz)
    Source code(zip)
  • v3.3.0(Jun 23, 2017)

    Bug Fixes

    Fixed several issues with deferred rendering (#3369)

    Adds new post-scaled callback IRangeProjector with the following signature

    (value: T, datum: any, index: number, dataset: Dataset): T;
    

    This new callback can be passed to .x() and .y() accessor methods on xy plots to manipulate pixel position after the scale is applied. This allows the Scale to also be stored on the accessor binding.

    Adds buffered canvas rendering to plots so that resizes of the canvas don't clear the canvas view. Combined with deferred rendering, this greatly reduce janky resizing of charts.

    Adds renderLowPriority callback to plots.

    Fixed drawLabels with barAlignment (#3370)

    Previously stackedBar's drawLabels didn't take into account barAlignment. It now does.

    Source code(tar.gz)
    Source code(zip)
  • v3.2.0(Jun 19, 2017)

    Breaking Changes

    • StackedBar's labelFormatter no longer affects the extrema values above the bar stack; instead, use the new stackedBar.extremaFormatter formatter to specially format just the extrema.

    New Features

    • Pie, Bar, and StackedBar labelFormatters now pass the datum, index, and dataset as parameters to the formatter. This lets users reference those parameters when building data labels.

    Bug Fixes

    • Fix errors with text size estimation in Firefox which would make Legends/Labels sometimes not show up (thanks @acolombi).
    • Explicitly add d3-shape and d3-ease to our package.json to fix browserify consumers.

    Improvements

    • Renamed interaction.detachFrom(component) to just interaction.detach(), since component was an unused parameter.
    • Table constructor signature now explicitly allows null (thanks @devnev).
    • Greatly improve Legend performance by caching text measurements.
    Source code(tar.gz)
    Source code(zip)
  • v3.1.1(May 8, 2017)

  • v3.1.0(May 4, 2017)

    ⚠️ Note: this release has issues in consumption as a CommonJS package. Please install 3.1.1 instead.

    New Features

    • Scatter Plot now supports the Canvas renderer. Simply set .renderer("canvas") on a Scatter Plot. We further optimize scatterplot canvas drawing by culling out-of-viewport elements and image-blitting the same symbol.
    • Added Component.setBounds(width, height, originX, originY) to allow exact placement of a Component, overriding any previous layout.
    • Line Plot now has a .collapseDenseLinesEnabled(true) feature which improves performance of drawing dense vertical lines (e.g. 100k timeseries points) by bucketing lines that would be drawn on the same pixel. This may affect the look of the chart for semi-transparent lines.
    • Bar Plot labels can now be positioned to be the "start", "middle", "end", or "outside" of the bar. Pass it as the second argument to labelsEnabled: barPlot.labelsEnabled(true, "middle").

    Improvements

    • Plottable is now releasing dev builds on every commit into develop. Get new changes immediately by pulling from the "next" dist-tag on NPM: yarn add "plottable@next".
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Apr 12, 2017)

    We are pleased to announce Plottable v3.0.0. 3.0.0 brings a host of performance improvements and new features, as well as modernizing the codebase and the ways in which users consume the library.

    Follow the Upgrading to 3.0.0 guide for a full list of changes since 2.9.0.


    Changes since 3.0.0-rc.1:

    Features:

    BarPlot now exposes a barAlignment("start" | "middle" | "end") property that determines whether the .x() accessor defines the start, middle, or end of the bar being drawn.

    BarPlot now also exposes a barEnd() that controls the width of the bar. This together with barAlignment() allows more direct control over the start and end coordinates for each bar and helps build histogram-like plots.

    Bugfixes:

    Fix performance regression on XYPlot.entityNearest; we also now use a quadtree to do entity detection which further enhances performance.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-rc.1(Mar 30, 2017)

    This is Release Candidate 1 for Plottable v3.0.0. Please read on for a list of changes in rc.1.

    Breaking changes

    CDN changes - rawgit.com no longer supported, cdnjs.com no longer supported

    rawgit.com will no longer work as a CDN for newer versions of Plottable. We recommend using npm and webpack to bundle Plottable with your application. If that's not possible, you may use unpkg.com.

    If on develop: https://rawgithub.com/palantir/plottable/develop/plottable.js --> //unpkg.com/plottable@latest/plottable.js

    If on a specific version: https://rawgithub.com/palantir/plottable/v3.0.0-beta.1/plottable.js --> //unpkg.com/[email protected]/plottable.js

    Similarly, we are no longer supporting cdnjs.com and it may break in the future. Use unpkg instead.

    Typescript: interfaces renamed

    All Typescript interfaces now have an I prepended to them:

    // old
    var entity: Plottable.Entity... // no exported member Entity
    
    // new
    var entity: Plottable.IEntity
    

    Features

    Add Axis.tickLabelDataOnElement, which gets the data value for a tick label. This allows users to implement behaviors based on interacting with a tick label:

    clickInteraction.onClick((point, event) => {
      const dataValue = axis.tickLabelDataOnElement(event.target);
    
      console.log("clicked on value", dataValue);
    }).attachTo(axis);
    

    Enhancements

    • Improved SVG line renderer performance.
    • Deferred rendering is now supported on canvas renderers.

    Bugfixes

    Canvas renderer is no longer blurry on HiDPI displays.

    Source code(tar.gz)
    Source code(zip)
Owner
Palantir Technologies
Palantir Technologies
:bar_chart: Re-usable, easy interface JavaScript chart library based on D3.js

billboard.js is a re-usable, easy interface JavaScript chart library, based on D3 v4+. The name "billboard" comes from the famous billboard chart whic

NAVER 5.4k Jan 1, 2023
This plugin for Chart.js that makes your bar chart to 100% stacked bar chart.

chartjs-plugin-stacked100 This plugin for Chart.js that makes your bar chart to 100% stacked bar chart. Requires Chart.js 3.x. Demo: https://y-takey.g

y-take 106 Jan 3, 2023
Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada:

D3: Data-Driven Documents D3 (or D3.js) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, C

D3 103.8k Jan 3, 2023
:bar_chart: Declarative Charting Framework for Angular

ngx-charts Declarative Charting Framework for Angular! ngx-charts is unique because we don't merely wrap d3, nor any other chart engine for that matte

Swimlane 4.2k Dec 27, 2022
A Simple Dashboard Chart in Laravel Nova using Chart JS

A Simple Dashboard Chart in Laravel Nova using Chart JS. Starting create your own dashboard with Chart JS Integration can save your time and help you maintain consistency across standard elements such as Bar, Stacked, Line, Area, Doughnut and Pie Chart.

Kuncoro Wicaksono 177 Jan 4, 2023
Chart.js plugin to defer initial chart updates

Chart.js plugin to defer initial chart updates until the user scrolls and the canvas appears inside the viewport, and thus trigger the initial chart a

Chart.js 97 Nov 9, 2022
Bar Funnel Chart extension for Chart.js

Chart.BarFunnel.js Provides a Bar Funnel Chart for use with Chart.js Documentation To create a Bar Funnel Chart, include Chart.BarFunnel.js after Char

Chart.js 58 Nov 24, 2022
TradeX-chart is a trade chart written in plain (vanilla) JavaScript with minimal dependencies

TradeX-chart is a trade chart written in plain (vanilla) JavaScript with minimal dependencies; use it with any framework or backend.

null 24 Dec 12, 2022
React components for Chart.js, the most popular charting library

react-chartjs-2 React components for Chart.js, the most popular charting library. Supports Chart.js v3 and v2. Quickstart • Docs • Slack • Stack Overf

null 5.6k Jan 4, 2023
Redefined chart library built with React and D3

Recharts Introduction Recharts is a Redefined chart library built with React and D3. The main purpose of this library is to help you to write charts i

recharts 19.4k Jan 2, 2023
Java library for use with Chart.js javascript library

Chart.java Chart.java enables integration with the excellent Chart.js library from within a Java application. Usage example In Java: BarDataset datase

Marceau Dewilde 102 Dec 16, 2022
TChart.js - simple and configurable Bar and Line Chart library in Javascript

TChart.js Simple and configurable Bar and Line Chart library in Javascript Description TChart.js is a canvas-based simple Javascript Bar and Line Char

null 4 Mar 3, 2021
J2CL and GWT Charts library based on CHART.JS

Charba - J2CL and GWT Charts library based on CHART.JS What's Charba GWT Web toolkit doesn't have charting library available out of the box. There are

Pepstock.org 56 Dec 17, 2022
GPL version of Javascript Gantt Chart

dhtmlxGantt Getting started | Features | Follow us | License | Useful links dhtmlxGantt is an open source JavaScript Gantt chart that helps you illust

null 952 Dec 29, 2022
🍞📊 Beautiful chart for data visualization.

?? ?? Spread your data on TOAST UI Chart. TOAST UI Chart is Beautiful Statistical Data Visualization library. ?? Packages The functionality of TOAST U

NHN 5.2k Jan 2, 2023
Chart image and QR code web API

QuickChart QuickChart is a service that generates images of charts from a URL. Because these charts are simple images, they are very easy to embed in

Ian Webster 1.3k Dec 25, 2022
📈 A small, fast chart for time series, lines, areas, ohlc & bars

?? μPlot A small (~35 KB min), fast chart for time series, lines, areas, ohlc & bars (MIT Licensed) Introduction μPlot is a fast, memory-efficient Can

Leon Sorokin 7.5k Jan 7, 2023
🍞📊 Beautiful chart for data visualization.

?? ?? Spread your data on TOAST UI Chart. TOAST UI Chart is Beautiful Statistical Data Visualization library. ?? Packages The functionality of TOAST U

NHN 5.2k Jan 6, 2023
The power of Chart.js in Jupyter !

The power of Chart.js in Jupyter Notebooks Installation You can install ipychart from your terminal using pip or conda: # using pip $ pip install ipyc

Nicolas H 68 Dec 8, 2022