Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

picasso-plugin-q

qlik-oss31.7kMIT2.8.2

QIX plugin for picasso.js

readme

CircleCI Maintainability Test Coverage

picasso.js

A charting library streamlined for building interactive visualizations for the Qlik product suites.

Examples

Getting started

Installing

npm install picasso.js

Usage

import picasso from 'picasso.js';

picasso.chart({
  element: document.querySelector('#container'), // container must have a width and height specified
  settings: {
    scales: {
      budget: { max: 5000, min: 0 },
      sales: { max: 11000, min: 3000, invert: true },
    },
    components: [
      {
        type: 'axis',
        scale: 'budget',
        layout: {
          dock: 'bottom',
        },
      },
      {
        type: 'axis',
        scale: 'sales',
        layout: {
          dock: 'left',
        },
      },
      {
        type: 'point',
        data: [
          { sales: 7456, margin: 0.3, budget: 4557 },
          { sales: 5603, margin: 0.7, budget: 2234 },
          { sales: 8603, margin: 0.6, budget: 4121 },
          { sales: 4562, margin: 0.4, budget: 1234 },
          { sales: 9873, margin: 0.9, budget: 3453 },
        ],
        settings: {
          x: { scale: 'budget', fn: (d) => d.scale(d.datum.value.budget) },
          y: { scale: 'sales', fn: (d) => d.scale(d.datum.value.sales) },
          size: (d) => d.datum.value.margin,
        },
      },
    ],
  },
});

More examples and documentation can be found at qlik.dev

API

The API can be found at the Qlik developer portal

Packages

name status description
picasso.js picasso.js-status A charting library streamlined for building visualizations for the Qlik Sense Analytics platform.
picasso-plugin-hammer picasso-plugin-hammer-status A plugin that binds events using HammerJS. This plugin provides an API for binding HammerJS recognizers to the chart element in a declarative way.
picasso-plugin-q picasso-plugin-q-status The q plugin registers a q dataset type that makes it a bit easier to extract data from a QIX hypercube. It also contains a brush helper that can be used to find appropriate selections in the underlying data engine.

License

picasso.js is MIT licensed.

Contributing

Please follow the instructions in our contributing guide.

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

2.8.2 (2025-04-25)

Bug Fixes

2.8.1 (2025-04-14)

Note: Version bump only for package picasso.js

2.8.0 (2025-03-12)

Features

2.7.0 (2025-03-10)

Bug Fixes

  • animations improve tweening formatted label (#896) (b818439)
  • animations move adjust tweened node to animations config (#900) (63a8c8a)
  • correct ellipsis property extraction logic (#895) (81a8371)

Features

  • option to hide element from screen readers (#898) (f0f2f55)

2.6.0 (2025-02-11)

Bug Fixes

Features

2.5.0 (2024-11-20)

Features

  • added curved feature to axis component (#883) (790a69e)

2.4.0 (2024-11-14)

Features

  • support measuring text with font weight (#884) (3ac2af7)

2.3.1 (2024-10-30)

Bug Fixes

2.3.0 (2024-10-01)

Features

  • slope-ref-line: add slope to the reference line on y axis (#854) (08bb0f4)

2.2.8 (2024-06-27)

Bug Fixes

2.2.7 (2024-01-12)

Bug Fixes

  • use correct transformation properties in dom- and svg-renderer (#824) (a91fd0b)

2.2.6 (2024-01-10)

Bug Fixes

2.2.5 (2023-08-30)

Bug Fixes

  • show the tooltip inside the object when its takes up the whole screen (#792) (6fcd8f5)

2.2.4 (2023-06-13)

Bug Fixes

  • fix formatting issue caused by floating error (#788) (5b76baa)

2.2.3 (2023-05-01)

Bug Fixes

  • animations avoid interpolating color (#774) (559ef62)
  • enable color interpolation for fill and stroke (#776) (82e00f2)
  • get correct index when columnOrder is irregular (#781) (167e527)

2.2.2 (2023-03-02)

Note: Version bump only for package picasso.js

2.2.1 (2023-03-02)

Note: Version bump only for package picasso.js

2.2.0 (2023-03-02)

Features

2.1.1 (2023-02-16)

Note: Version bump only for package picasso.js

2.1.0 (2023-02-16)

Features

  • improve support for uneven hierarchy (#762) (c3462fa)

2.0.0 (2023-02-07)

  • build!: end support for IE11 (#760) (17f850b), closes #760

BREAKING CHANGES

  • end support for IE11

1.10.0 (2023-01-19)

Bug Fixes

  • provide more info for labels' background rect, to support chart animations (#754) (e175339)

Features

  • add support formatting negative value with percentage (#757) (ed86832)

1.9.10 (2022-12-06)

Bug Fixes

1.9.9 (2022-11-21)

Bug Fixes

1.9.8 (2022-11-21)

Bug Fixes

  • fix push(...) issue (#743) (7c3a087)
  • replace push to support adding many items into an array (#740) (4441fe4)

1.9.7 (2022-11-10)

Bug Fixes

  • deps: update dependency slug to v8 (#710) (ae17400)
  • grid line value (#738) (763e122)
  • improve tweening when removing updating stage (#739) (10267c1)
  • set default strokeWidth for title to zero (#734) (b1b03e3)
  • should take excludeFromUpdate into account for update (#730) (40cadd3)
  • support adding a large number of items to an array (#729) (d95e235)

1.9.6 (2022-10-28)

Bug Fixes

  • animations remove updating stage if main component has empty updating stage (#722) (20b132f)

1.9.5 (2022-10-27)

Note: Version bump only for package picasso.js

1.9.4 (2022-10-27)

Note: Version bump only for package picasso.js

1.9.3 (2022-10-27)

Note: Version bump only for package picasso.js

1.9.2 (2022-10-27)

Note: Version bump only for package picasso.js

1.9.1 (2022-10-27)

Note: Version bump only for package picasso.js

1.9.0 (2022-10-27)

Bug Fixes

Features

  • add stroke and font settings to text component (#714) (9a13fe8)

1.8.1 (2022-10-12)

Bug Fixes

  • axis: measure text correctly when checking overlapping labels (#708) (d678cf5)

1.8.0 (2022-09-15)

Features

  • support styling brushed nodes based on active nodes (#707) (919c6e6)

1.7.0 (2022-09-13)

Features

1.6.5 (2022-09-05)

Bug Fixes

1.6.4 (2022-08-22)

Note: Version bump only for package picasso.js

1.6.3 (2022-08-22)

Note: Version bump only for package picasso.js

1.6.2 (2022-08-22)

Bug Fixes

1.6.1 (2022-08-09)

Bug Fixes

1.6.0 (2022-02-10)

Features

  • add sortNodes function in brush config (#678) (09a5df7)

1.5.0 (2022-01-19)

Bug Fixes

  • ignore api spec and checkin with scriptappy format (#668) (9dd6838)
  • support SI abbreviation only when format is auto or type is 'U' (#663) (f1ea15e)

Features

  • picasso.js: add typescript definitions (#670) (5a1458a)
  • to-dts: include disclaimer in ts defs (#672) (a3aa94f)

1.4.2 (2021-11-21)

Bug Fixes

  • disable animation during transformation (#657) (e303c57)

1.4.1 (2021-11-17)

Bug Fixes

  • transformation: update renderer settings after a component has changed (#655) (add2e87)

1.4.0 (2021-11-09)

Bug Fixes

  • animations: compensate for layout changes and synchronize tween phases (#641) (4859b9e)
  • consider offset when generating axis lines (#636) (597ea4e)
  • deps: update dependency slug to v5 (#606) (d29bd26)
  • node version dependent sorting (#642) (81e0f69)
  • use correct scene nodes during animation (#638) (32c71ec)

Features

  • extend point component to support rect shape (#635) (a8edd53)

1.3.0 (2021-09-29)

Features

  • add orientation setting for bar strategy (#633) (52db5b2)

1.2.2 (2021-08-24)

Bug Fixes

1.2.1 (2021-06-07)

Note: Version bump only for package picasso.js

1.2.0 (2021-05-25)

Features

1.1.0 (2021-05-12)

Bug Fixes

  • place axis line to align with other axis and and grid lines (#599) (c9dc788)

Features

  • transformation setting for components (#597) (eeabc09)

1.0.0 (2021-04-21)

Note: Version bump only for package picasso.js

0.37.2 (2021-04-20)

Note: Version bump only for package picasso.js

0.37.1 (2021-04-19)

Note: Version bump only for package picasso.js

0.37.0 (2021-04-15)

Features

  • support AND/OR mode for range selections (#577) (e3bcf63)

0.36.0 (2021-04-08)

Features

  • support AND/OR mode for range selections (#577) (e3bcf63)

0.35.1 (2021-04-07)

Note: Version bump only for package picasso.js

0.35.0 (2021-03-29)

Bug Fixes

Features

  • support connecting to Qlik engine to get Qlik apps (#569) (f0340e7)

0.34.0 (2020-08-20)

Features

  • point: resolve shape with custom properties (#517) (2d5039a)

0.33.0 (2020-08-06)

Features

0.32.1 (2020-06-12)

Note: Version bump only for package picasso.js

0.32.0 (2020-06-02)

Features

  • support dash style for reference lines (#495) (4bd99c1)

0.31.0 (2020-05-07)

Features

0.30.0 (2020-03-17)

Features

  • brush: suppress paint on brush.end() and brush.start() (#482) (798df69)
  • mouse radius property on brushing api (#480) (4f5a83b)
  • geometry: add multipolygon (#470) (74b9ee9)
  • hammer-plugin: provide Hammer instance (#484) (238e27f)
  • labels: add label bounds to fill settings callback (#485) (ed73ce7)

0.29.2 (2020-01-22)

Bug Fixes

  • legend: fix calculating legend size (#467) (d4b2870)
  • q-brush: allow multi select pivot columns (#476) (54ed2c4)

0.29.1 (2019-12-05)

Performance Improvements

0.29.0 (2019-12-02)

Features

  • point: add control to show/hide a point in a point component (#464) (ff210d4)
  • point: support setting point size as px (#465) (d3de30a)

0.28.0 (2019-11-26)

Bug Fixes

  • collision: fix checking point inside polygon (#463) (4e2474e)

Features

  • axis: allow setting paddingStart and paddingEnd as either a func or a number (#453) (4cb3663)
  • line: add option to hide minor0 line (#460) (7987ce1)

0.27.1 (2019-11-04)

Bug Fixes

  • bar-label: take overflow into account when finding best placement for bar label (#444) (ee408b9)
  • labels: consider orientation when determining largest rect (#447) (9255c1b)
  • fix custom line sorting (#452) (0e9d9fd)
  • unable to use custom symbols (#451) (fa621c0)

0.27.0 (2019-09-20)

Bug Fixes

  • labels: avoid rendering ellipsis only (#442) (7c6c07f)

Features

0.26.1 (2019-06-13)

Note: Version bump only for package picasso.js

0.26.0 (2019-06-13) [YANKED]

Bug Fixes

  • box: evaluate show per shape (#412) (8ac0f53)
  • labels: require label contain at least first character (#408) (5419983)
  • labels: too few labels with horizontal inside slice strategy (#407) (597ccb2)

Features

0.25.3 (2019-05-23)

Bug Fixes

  • bar-label: update finding best placement in case of a label does not fit horizontally (#395) (4f6b086)
  • formatting: add sanity check (#399) (e33d2c9)

0.25.2 (2019-05-08)

Bug Fixes

0.25.1 (2019-04-29)

Bug Fixes

0.25.0 (2019-04-26)

Bug Fixes

  • legend-cat: add enabled/disabled state to navigation buttons (#383) (ef0836f)
  • legend-cat: fix setting initial legend scroll offset (#379) (6f51024)
  • legend-cat: title baseline (#380) (8051d6a)
  • q: handle qMode: 'K' in q-brush (#382) (081f582)
  • text-metrics: condition for using line break when computing bounds (#385) (37433fe)
  • text-metrics: height measurement (#381) (a730064)

Features

Performance Improvements

0.24.0 (2019-04-17)

Bug Fixes

  • computedInner and computerOuter rect is undefined (#374) (e34683b)

Features

  • log warning for unintentional registry use (#369) (3e9621e)
  • brush: configure brush instance (#371) (b73a557)

0.23.2 (2019-04-08)

Bug Fixes

  • layout: user logicalSize when determining component visibility (#368) (dfb6a91)

0.23.1 (2019-04-08)

Bug Fixes

0.23.0 (2019-04-05)

Bug Fixes

  • bar-label: add padding and background color to bar labels (#355) (c412ae4)
  • scene-graph: zero as default rx/ry (#358) (411c13a)
  • text component issue (#359) (da21220)

Documentation

Features

BREAKING CHANGES

  • rect is now a reserved keyword for components

0.22.1 (2019-04-04)

Bug Fixes

  • bar-labels: fix the calculation of the bounds of a label when it is rotated -90 degree (#351) (31a2347)
  • grid-line: broken for discrete scale (#352) (bf5cb24)
  • q-time-format: floating precision (#349) (5151022)
  • range-brush: only render nodes from observed or active brush (#350) (655c32c)
  • range-brush: show resize icon on bubble hover (#353) (8523113)

Performance Improvements

0.22.0 (2019-04-01)

Bug Fixes

  • only move elements that have new position (#344) (0b2b5f6)
  • axis: ellipsis threshold for continuous horizontal axis (#347) (f921ade)
  • bar-label: require label to be fully inside a bar (#343) (c0acb62)
  • dock-layout: floor instead of ceil when rounding container values (#345) (7f28718)
  • tooltip: scaling when using appendTo (#341) (fd66ca2)

Features

  • axis: add tiltThreshold (#338) (8087912)
  • grid-lines: support callbacks in grid-line settings (#332) (e467375)
  • linear-scale: allow custom minor tick values (#339) (70daf2e)

Performance Improvements

  • canvas-renderer: set text context only when needed (#328) (5a7b58d)
  • q: switch for each loops to for loops in extractor-t (#340) (a56ca70)

0.21.0 (2019-03-14)

Bug Fixes

  • keep track of element order (#323) (0d06be7)
  • update component config (#321) (900b02a)
  • brush-area-dir: render negative ranges (#324) (cc22eda)
  • brush-range: handle floating point (#325) (b2b4fda)
  • component-factory: remove context event listeners on unmount (#319) (a49dd62)
  • label: take orientation into account when checking label visibility (#313) (65f7247)
  • tooltip: clean up dispatcher events (#318) (81f6f3b)

Features

0.20.0 (2019-02-14)

Bug Fixes

  • box: remove Number.isNaN (#296) (9f31c90)
  • invert justify when bar direction is left (#304) (88ecfd0)
  • setup emits on all components (#300) (e9be4e1)
  • dock-layout: remove components docked at hidden components (#310) (1ff1a59)
  • scales: fallback to default formatter (#297) (62c7209)
  • svg-renderer: do not add undefined title attribute (#305) (abaade7)

Features

Performance Improvements

0.19.0 (2019-01-14)

Bug Fixes

  • q: add first or default check for empty qDataPages in extractor-t (#276) (e5f3d82)

Features

Performance Improvements

0.18.2 (2018-12-10)

Reverts

  • "fix(dock-layout): remove components that are docked at hidden components (#261)" (d923123)

0.18.1 (2018-12-04)

Bug Fixes

  • event: fix touch detection on hybrid (#272) (09b0da0)

0.18.0 (2018-12-04)

Bug Fixes

  • brush-area-dir: remove targets without rect (#271) (d1e205b)
  • dock-layout: remove components that are docked at hidden components (#261) (912f26a)

Features

  • brush-area-dir: add support for multiple fill targets (#266) (2800a95)
  • data: add support for reduce label (#268) (dee01ba)

Performance Improvements

  • data: lazy evaluate collections (#270) (3c706ba)
  • q: use anonymous functions instead of Function constructor (#269) (599d0f7)

0.17.0 (2018-11-27)

Bug Fixes

  • box: min/maxWidthPx doesnt work when scale is inverted (#264) (ac729b9)
  • events: turn off default event handlers (#262) (db882b7)
  • tooltip: clamp position to component bounds (#259) (2ecdf5d)

Features

  • axis: add filter overlapping labels setting (#257) (d4a99cb)
  • debug: add support for components that use the outer rect (#258) (1d04c8e)
  • dock settings as a function (#260) (b923b37)

0.16.1 (2018-11-13)

Note: Version bump only for package picasso.js

0.16.0 (2018-11-07)

Bug Fixes

  • axis: labels rendered outside the axis area (#238) (e42f759)
  • box: out of bounds symbol arrow direction (#245) (8993028)
  • brush: brush only nodes with data (#231) (38ce4a9)
  • data: undefined data source in field (#243) (2ad225f)
  • layers: preserve original index if equal (#236) (a531a70)
  • text: text line height leading space (#250) (707f707)

Features

  • expose symbol registry and factory (#230) (bc9b248)
  • box-marker: out of bounds feature for box marker (#234) (31f8536)
  • brush-range: observe brush changes (#246) (3b5cf0a)
  • scene-graph: get parent and child nodes (#241) (60615f7)
  • make it possible to exclude specific components from update (#248) (b8c32f5)

0.15.0 (2018-10-09)

Bug Fixes

Features

0.14.0 (2018-10-01)

Bug Fixes

Features

0.13.3 (2018-09-25)

Note: Version bump only for package picasso.js

0.13.2 (2018-09-24)

Note: Version bump only for package picasso.js

0.13.1 (2018-09-20)

Bug Fixes

  • scrollbar: class value as string (2df93fe)

0.13.0 (2018-09-20)

Bug Fixes

  • q: handle qNoOfLeftDims = -1 for q-brush (#175) (20c18db)
  • q: use fallback qColumnOrder if not set properly (#185) (ebe7e48)
  • scene-graph: bounds collision with transform (#191) (5fdfc7f)
  • scene-graph: class selector partial match (#190) (2f6bb62)

Features

  • add filter for brush consumer (#192) (62cbb74)
  • check component existence before trying to create it (#176) (8bda350), closes #80
  • support functions in brush style props (#194) (f776fe0)

0.12.2 (2018-08-23)

Note: Version bump only for package picasso.js

0.12.1 (2018-08-23)

Bug Fixes

  • use parentNode property instead of parentElement where applicable (#173) (c8607fb)

0.12.0 (2018-08-22)

Features

0.11.0 (2018-07-14)

Bug Fixes

  • q: use abbreviation pattern when qNumFormat.qType is U (#139) (f508c69)
  • svg-renderer: use quotation marks on gradient url (#137) (366a687)

Features

  • labels: Change overlap handling for outside label strategy for pie slices (#140) (a78328b)

0.10.4 (2018-07-04)

Bug Fixes

  • legend-cat: Handle RTL using dir attribute (#124) (0166ff3)
  • scenegraph: allow small rounding errors in polygon detection (#123) (d92f54d)

0.10.3 (2018-06-27)

Bug Fixes

  • legend-cat: fix disabled attribute in button (#122) (0fbdf6b)

0.10.2 (2018-06-27)

Note: Version bump only for package undefined

0.10.1 (2018-06-27)

Bug Fixes

  • labels: Fix crash on empty labels in rows strategy (#119) (e8c2b5a)

0.10.0 (2018-06-25)

Bug Fixes

  • labels: Fix label overlap in slice strategy (#116) (ee5405e)
  • labels: No rendering outside of parent rect (#117) (02d773d)
  • q: fix q brush when layout is missing (#118) (163da33)
  • render-order: Render components in specified order (#114) (96e5114)
  • scene-graph: bounds collision (#115) (6623803)

Features

  • scenegraph: add default collider on text nodes (#108) (90c8848)

0.9.0 (2018-06-14)

Bug Fixes

  • dom-renderer: clear vnode on destory (#89) (406780f)
  • legend-cat formatter (#97) (1612c82)
  • label-strategy: Fix error when using rows strategy on non circle slices (#99) (e22a36c)
  • labels: ellipsed text in bars strategy (#87) (ff4e11d)
  • layout: do not re-position components on partial data update (#104) (54ee8f2)
  • legend-cat: Remove commented import (#96) (be21b18)
  • q: Register number & time formatter when using q plugin (#98) (37831a3)
  • q: use auto formatter when qNumFormat is missing (#91) (4f9c2a6)
  • scene-node: append all component meta (#105) (62d7fb0)

Features

  • brush-trigger: Component level flag to disable brush triggers (#90) (f398060)
  • label-strategy: Rows label strategy (#81) (ca35ece)
  • legend-cat: legend cat expose scroll offset (#93) (c38d284)
  • q: add support for qTreeData and qMode=K (#88) (e43443d)
  • add strokeDasharray as option to line component (#106) (fb60bd7)
  • expose theme on chart instance (#94) (ddffb7f)
  • override categorical color range (#100) (86fa437)

0.8.0 (2018-05-15)

Bug Fixes

  • legend-cat: threshold legend wrong brush source bugfix (#66) (2b3510c)

Features

0.7.0 (2018-04-05)

Bug Fixes

  • inactive all shapes on brush start (#56) (4053e13)
  • legend-cat: threshold color rendering order (#62) (333c98d)
  • legend-seq: Title use fallback from majorScale (#55) (85d1983)
  • q: extracting data from empty K cubes throws error (#60) (51419c3)

Chores

Features

BREAKING CHANGES

  • Now using dist/picasso.js as the only main file. dist/picasso.min.js does not exist any more and the published dist/picasso.js file is uglified & minifed, and has a sourcemap linked to it.

0.6.0 (2018-03-08)

Bug Fixes

  • component-box: fix scale sizing (75d2cac)
  • legend-cat: improve alignment of content (#45) (58fd732)
  • q: take localeInfo into account when formatting (e4151c5)
  • renderer: reset scene when clearing render (#47) (3793443)

Code Refactoring

  • callback argument on scale settings (#36) (ce6b0f5)

Features

  • q: add support for custom number abbreviations (dcc5fc0)
  • brush area component (#44) (97f859f)

BREAKING CHANGES

  • Exposes similar callback argument as the component settings. Valid for scales defined under the scales property and directly in a component definition.

All scales settings now supports a callback function. Those who had support previously have the their callback argument changed to an object.

0.5.3 (2018-02-23)

Bug Fixes

  • data: falsy fields are not included in data extraction (12e0221)
  • add missing source to field (#30) (fc8eea3)
  • band scale datum method returns undefined (#38) (e9bb3a5)
  • exception in label component when target node is outside render container (#34) (1a62c6d)
  • getAffectedShapes should not return duplicates (#33) (c7b8792)
  • legend title is duplicated (#35) (543aa06)