@carbon/charts 0.41.100 → 0.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -126
- package/axis-chart.d.ts +2 -2
- package/axis-chart.js +1 -1
- package/axis-chart.js.map +1 -1
- package/build/demo/data/CHART_TYPES.d.ts +5 -0
- package/build/demo/data/circle-pack.d.ts +2 -2
- package/build/demo/data/histogram.d.ts +63 -0
- package/build/demo/data/index.d.ts +1 -0
- package/build/src/axis-chart.d.ts +2 -2
- package/build/src/chart.d.ts +1 -1
- package/build/src/charts/boxplot.d.ts +1 -1
- package/build/src/charts/circle-pack.d.ts +1 -1
- package/build/src/charts/gauge.d.ts +1 -1
- package/build/src/charts/histogram.d.ts +8 -0
- package/build/src/charts/index.d.ts +1 -0
- package/build/src/charts/meter.d.ts +1 -1
- package/build/src/charts/pie.d.ts +1 -1
- package/build/src/components/axes/axis.d.ts +1 -1
- package/build/src/components/axes/chart-clip.d.ts +1 -1
- package/build/src/components/axes/ruler-binned.d.ts +7 -0
- package/build/src/components/axes/ruler.d.ts +2 -3
- package/build/src/components/axes/zoom-bar.d.ts +1 -1
- package/build/src/components/component.d.ts +1 -1
- package/build/src/components/essentials/modal.d.ts +1 -7
- package/build/src/components/essentials/threshold.d.ts +1 -1
- package/build/src/components/essentials/tooltip-histogram.d.ts +26 -0
- package/build/src/components/essentials/tooltip.d.ts +1 -1
- package/build/src/components/graphs/histogram.d.ts +12 -0
- package/build/src/components/index.d.ts +3 -0
- package/build/src/components/layout/layout.d.ts +1 -1
- package/build/src/configuration-non-customizable.d.ts +3 -0
- package/build/src/configuration.d.ts +2 -1
- package/build/src/interfaces/axis-scales.d.ts +53 -17
- package/build/src/interfaces/charts.d.ts +25 -2
- package/build/src/model/binned-charts.d.ts +7 -0
- package/build/src/{model-boxplot.d.ts → model/boxplot.d.ts} +1 -1
- package/build/src/{model-cartesian-charts.d.ts → model/cartesian-charts.d.ts} +2 -0
- package/build/src/{model-circle-pack.d.ts → model/circle-pack.d.ts} +1 -1
- package/build/src/{model-gauge.d.ts → model/gauge.d.ts} +0 -0
- package/build/src/{model-meter.d.ts → model/meter.d.ts} +0 -0
- package/build/src/{model.d.ts → model/model.d.ts} +15 -2
- package/build/src/{model-pie.d.ts → model/pie.d.ts} +0 -0
- package/build/src/services/service.d.ts +1 -1
- package/build/src/services/zoom.d.ts +1 -1
- package/build/src/tools.d.ts +1 -0
- package/bundle.js +1 -1
- package/chart.d.ts +1 -1
- package/chart.js +1 -1
- package/chart.js.map +1 -1
- package/charts/boxplot.d.ts +1 -1
- package/charts/boxplot.js +1 -1
- package/charts/boxplot.js.map +1 -1
- package/charts/circle-pack.d.ts +1 -1
- package/charts/circle-pack.js +1 -1
- package/charts/circle-pack.js.map +1 -1
- package/charts/gauge.d.ts +1 -1
- package/charts/gauge.js +1 -1
- package/charts/gauge.js.map +1 -1
- package/charts/histogram.d.ts +8 -0
- package/charts/histogram.js +48 -0
- package/charts/histogram.js.map +1 -0
- package/charts/index.d.ts +1 -0
- package/charts/index.js +1 -0
- package/charts/index.js.map +1 -1
- package/charts/meter.d.ts +1 -1
- package/charts/meter.js +1 -1
- package/charts/meter.js.map +1 -1
- package/charts/pie.d.ts +1 -1
- package/charts/pie.js +1 -1
- package/charts/pie.js.map +1 -1
- package/charts/wordcloud.js.map +1 -1
- package/components/axes/axis.d.ts +1 -1
- package/components/axes/axis.js.map +1 -1
- package/components/axes/chart-clip.d.ts +1 -1
- package/components/axes/chart-clip.js.map +1 -1
- package/components/axes/ruler-binned.d.ts +7 -0
- package/components/axes/ruler-binned.js +136 -0
- package/components/axes/ruler-binned.js.map +1 -0
- package/components/axes/ruler.d.ts +2 -3
- package/components/axes/ruler.js +4 -4
- package/components/axes/ruler.js.map +1 -1
- package/components/axes/zoom-bar.d.ts +1 -1
- package/components/axes/zoom-bar.js.map +1 -1
- package/components/component.d.ts +1 -1
- package/components/component.js.map +1 -1
- package/components/essentials/modal.d.ts +1 -7
- package/components/essentials/modal.js +8 -69
- package/components/essentials/modal.js.map +1 -1
- package/components/essentials/threshold.d.ts +1 -1
- package/components/essentials/threshold.js.map +1 -1
- package/components/essentials/tooltip-axis.js +2 -2
- package/components/essentials/tooltip-axis.js.map +1 -1
- package/components/essentials/tooltip-histogram.d.ts +26 -0
- package/components/essentials/tooltip-histogram.js +154 -0
- package/components/essentials/tooltip-histogram.js.map +1 -0
- package/components/essentials/tooltip.d.ts +1 -1
- package/components/essentials/tooltip.js.map +1 -1
- package/components/graphs/bar-grouped.js +4 -4
- package/components/graphs/bar-grouped.js.map +1 -1
- package/components/graphs/bar-stacked.js.map +1 -1
- package/components/graphs/circle-pack.js +6 -3
- package/components/graphs/circle-pack.js.map +1 -1
- package/components/graphs/histogram.d.ts +12 -0
- package/components/graphs/histogram.js +207 -0
- package/components/graphs/histogram.js.map +1 -0
- package/components/graphs/skeleton.js +3 -1
- package/components/graphs/skeleton.js.map +1 -1
- package/components/index.d.ts +3 -0
- package/components/index.js +3 -0
- package/components/index.js.map +1 -1
- package/components/layout/layout.d.ts +1 -1
- package/components/layout/layout.js.map +1 -1
- package/configuration-non-customizable.d.ts +3 -0
- package/configuration-non-customizable.js +3 -0
- package/configuration-non-customizable.js.map +1 -1
- package/configuration.d.ts +2 -1
- package/configuration.js +17 -4
- package/configuration.js.map +1 -1
- package/demo/data/CHART_TYPES.d.ts +5 -0
- package/demo/data/CHART_TYPES.js +5 -0
- package/demo/data/CHART_TYPES.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/circle-pack.d.ts +2 -2
- package/demo/data/circle-pack.js +2 -2
- package/demo/data/circle-pack.js.map +1 -1
- package/demo/data/histogram.d.ts +63 -0
- package/demo/data/histogram.js +312 -0
- package/demo/data/histogram.js.map +1 -0
- package/demo/data/index.d.ts +1 -0
- package/demo/data/index.js +22 -0
- package/demo/data/index.js.map +1 -1
- package/demo/styles.css +528 -4
- package/demo/styles.css.map +1 -1
- package/demo/styles.min.css +1 -1
- package/demo/styles.min.css.map +1 -1
- package/demo/tsconfig.tsbuildinfo +20 -6
- package/interfaces/axis-scales.d.ts +53 -17
- package/interfaces/axis-scales.js.map +1 -1
- package/interfaces/charts.d.ts +25 -2
- package/interfaces/charts.js.map +1 -1
- package/model/binned-charts.d.ts +7 -0
- package/model/binned-charts.js +52 -0
- package/model/binned-charts.js.map +1 -0
- package/{model-boxplot.d.ts → model/boxplot.d.ts} +1 -1
- package/{model-boxplot.js → model/boxplot.js} +4 -4
- package/model/boxplot.js.map +1 -0
- package/{model-cartesian-charts.d.ts → model/cartesian-charts.d.ts} +2 -0
- package/{model-cartesian-charts.js → model/cartesian-charts.js} +80 -20
- package/model/cartesian-charts.js.map +1 -0
- package/{model-circle-pack.d.ts → model/circle-pack.d.ts} +1 -1
- package/{model-circle-pack.js → model/circle-pack.js} +3 -3
- package/model/circle-pack.js.map +1 -0
- package/{model-gauge.d.ts → model/gauge.d.ts} +0 -0
- package/{model-gauge.js → model/gauge.js} +1 -1
- package/model/gauge.js.map +1 -0
- package/{model-meter.d.ts → model/meter.d.ts} +0 -0
- package/{model-meter.js → model/meter.js} +3 -3
- package/model/meter.js.map +1 -0
- package/{model.d.ts → model/model.d.ts} +15 -2
- package/{model.js → model/model.js} +120 -11
- package/model/model.js.map +1 -0
- package/{model-pie.d.ts → model/pie.d.ts} +0 -0
- package/{model-pie.js → model/pie.js} +1 -1
- package/model/pie.js.map +1 -0
- package/package.json +1 -1
- package/services/scales-cartesian.js +18 -4
- package/services/scales-cartesian.js.map +1 -1
- package/services/service.d.ts +1 -1
- package/services/service.js.map +1 -1
- package/services/zoom.d.ts +1 -1
- package/services/zoom.js.map +1 -1
- package/styles/colors.scss +2 -0
- package/styles/components/_ruler.scss +2 -1
- package/styles/styles.scss +4 -0
- package/styles-g10.css +132 -1
- package/styles-g10.css.map +1 -1
- package/styles-g10.min.css +1 -1
- package/styles-g10.min.css.map +1 -1
- package/styles-g100.css +132 -1
- package/styles-g100.css.map +1 -1
- package/styles-g100.min.css +1 -1
- package/styles-g100.min.css.map +1 -1
- package/styles-g90.css +132 -1
- package/styles-g90.css.map +1 -1
- package/styles-g90.min.css +1 -1
- package/styles-g90.min.css.map +1 -1
- package/styles.css +132 -1
- package/styles.css.map +1 -1
- package/styles.min.css +1 -1
- package/styles.min.css.map +1 -1
- package/tools.d.ts +1 -0
- package/tools.js +2 -1
- package/tools.js.map +1 -1
- package/tsconfig.tsbuildinfo +257 -146
- package/model-boxplot.js.map +0 -1
- package/model-cartesian-charts.js.map +0 -1
- package/model-circle-pack.js.map +0 -1
- package/model-gauge.js.map +0 -1
- package/model-meter.js.map +0 -1
- package/model-pie.js.map +0 -1
- package/model.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-pack.js","sourceRoot":"","sources":["circle-pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,aAAa;AACb,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EACN,mBAAmB,EACnB,MAAM,EACN,WAAW,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;IAAgC,8BAAS;IAAzC;QAAA,qEA2cC;QA1cA,UAAI,GAAG,aAAa,CAAC;QACrB,gBAAU,GAAG,WAAW,CAAC,GAAG,CAAC;QAoM7B,yBAAmB,GAAG,UAAC,KAAkB;YAChC,IAAA,4CAAc,CAAkB;YAExC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,aAAa,CAAC;iBACxB,UAAU,CACV,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,yBAAyB,CACzB,CACD;iBACA,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC;gBAClB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;oBAC7D,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,0BAAoB,GAAG,UAAC,KAAkB;YACzC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,aAAa,CAAC;iBACxB,UAAU,CACV,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,4BAA4B,CAC5B,CACD;iBACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;;IA2OH,CAAC;IArcA,2BAAM,GAAN,UAAO,OAAc;QAArB,iBAoHC;QApHM,wBAAA,EAAA,cAAc;QACpB,2BAA2B;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QAEH,8DAA8D;QAC9D,oDAAoD;QACpD,kDAAkD;QAClD,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;YAC5B,gDAAgD;YAChD,uDAAuD;YACvD,OAAO;SACP;QAED,mCAAmC;QACnC,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC9C,iDAAiD;QACjD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC9C,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAC1C,OAAO,EACP,YAAY,EACZ,SAAS,CACT,CAAC;QAEF,0CAA0C;QAC1C,uEAAuE;QACvE,IAAI,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE;YAChE,uDAAuD;YACvD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SAC5D;QAED,IAAM,IAAI,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;aACjD,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;aACxB,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,CAAC;QAEpC,IAAM,UAAU,GAAG,MAAM,EAAE;aACzB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,OAAO,CAAC,UAAC,CAAC;YACV,iDAAiD;YACjD,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;gBAClB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC;gBAC/C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEJ,IAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;aAC/B,WAAW,EAAE;aACb,MAAM,CAAC,CAAC,CAAC;aACT,MAAM,CAAC,UAAC,IAAI;YACZ,kCAAkC;YAClC,OAAO,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC;QACrC,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,IAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAE3D,IAAM,eAAe,GAAG,OAAO;aAC7B,KAAK,EAAE;aACP,MAAM,CAAC,QAAQ,CAAC;aAChB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExB,eAAe;aACb,KAAK,CAAC,OAAO,CAAC;aACd,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;YAChB,IAAM,aAAa,GAClB,iBAAiB,IAAI,cAAc,KAAK,CAAC;gBACxC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACnC,cAAc,EAAE;oBACf,mBAAmB,CAAC,IAAI;oBACxB,mBAAmB,CAAC,MAAM;iBAC1B;gBACD,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;gBACnC,iBAAiB,EAAE,CAAC,CAAC,QAAQ;oBAC5B,CAAC,CAAC,UAAQ,aAAe;oBACzB,CAAC,CAAC,oBAAkB,aAAe;aACpC,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAA7C,CAA6C,CAAC;aACnE,KAAK,CAAC,QAAQ,EAAE,UAAC,CAAC;YAClB,OAAA,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAA7C,CAA6C,CAC7C;aACA,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;aACtB,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;aACtB,UAAU,CACV,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,8BAA8B,EAC9B,OAAO,CACP,CACD;aACA,IAAI,CAAC,GAAG,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;aACrB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAClB,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC9B,IAAI,CAAC,KAAK,EACV,eAAe,EACf,aAAa,CAAC,kBAAkB,CAChC,CAAC;YACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,UAAU,EAAE;YAChB,qDAAqD;YACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC1B;QAED,wCAAwC;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,mDAAmD;IACnD,wCAAmB,GAAnB,UAAoB,SAAS;QAA7B,iBAWC;QAVA,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,MAAM,CACN,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,KAAK,CAAC,CAAC,IAAI,EAAhB,CAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAArD,CAAqD,CAC5D;aACA,KAAK,CAAC,QAAQ,EAAE,UAAC,CAAC;YAClB,OAAA,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAA7C,CAA6C,CAC7C,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,sCAAiB,GAAjB,UAAkB,SAAS;QAC1B,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,MAAM,CACN,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,KAAK,CAAC,CAAC,IAAI,EAAhB,CAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAArD,CAAqD,CAC5D;aACA,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,iCAAY,GAAZ,UAAa,IAAI;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACvD,IACC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAApB,CAAoB,CAAC,EACpD;gBACD,OAAO,OAAO,CAAC;aACf;SACD;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,uCAAkB,GAAlB;QACS,IAAA,6BAAM,CAAmB;QACjC,iDAAiD;QACjD,MAAM,CAAC,gBAAgB,CACtB,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,IAAI,CAAC,mBAAmB,CACxB,CAAC;QACF,gDAAgD;QAChD,MAAM,CAAC,gBAAgB,CACtB,MAAM,CAAC,MAAM,CAAC,aAAa,EAC3B,IAAI,CAAC,oBAAoB,CACzB,CAAC;IACH,CAAC;IAED,8CAAyB,GAAzB;QACC,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;IAClC,CAAC;IAED,2CAAsB,GAAtB;QACC,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnE,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACpC,aAAa,EACb,oBAAoB,CACpB,CAAC;QAEF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACnC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC;IA8BD,uDAAuD;IACvD,gCAAW,GAAX;QACC,OAAO,+ZAIA,CAAC;IACT,CAAC;IAED,iDAAiD;IACjD,sCAAiB,GAAjB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAExC,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACtD,IAAM,QAAQ,GACb,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,IAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAC1C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EACvB,YAAY,EACZ,SAAS,CACT,CAAC;YAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE;gBACd,wCAAwC;gBACxC,IAAI,YAAY,GAAG,EAAE,CAAC;gBACtB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,WAAW,GAAG,IAAI,CAAC;gBACvB,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACnB,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,iBAAiB,EAAE;wBACzC,QAAQ,GAAG,IAAI,CAAC;wBAChB,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;qBAC1C;oBACD,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;wBACvC,IAAI,KAAK,KAAK,IAAI,EAAE;4BACnB,0DAA0D;4BAC1D,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gCACzC,OAAO;oCACN,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oCACtB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;iCACvB,CAAC;6BACF;iCAAM;gCACN,OAAO;oCACN,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oCACtB,SAAS,EACR,iBAAiB;wCACjB,cAAc,IAAI,CAAC;wCAClB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;wCACpB,CAAC,CAAC,IAAI;oCACR,KAAK,EAAE,KAAK,CAAC,KAAK;iCAClB,CAAC;6BACF;yBACD;oBACF,CAAC,CAAC,CAAC;oBAEH,UAAU,GAAG;wBACZ;4BACC,KAAK,EAAE,OAAO;4BACd,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,IAAI,EAAE,IAAI;yBACV;qBACD,CAAC;oBACF,kCAAkC;oBAClC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACvC;qBAAM;oBACN,oEAAoE;oBACpE,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;iBAC1B;gBAED,IAAI,SAAS,GAAG,gBAAgB,CAC/B,IAAI,EACJ,IAAI,CACJ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAE3B,eAAe;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;oBACvD,KAAK,OAAA;oBACL,cAAc,gBAAA;oBACd,KAAK;wBACJ;4BACC,KAAK,EAAE,SAAS;4BAChB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;4BACtB,SAAS,EACR,QAAQ;gCACR,iBAAiB;gCACjB,cAAc,IAAI,CAAC;gCAClB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;gCACpB,CAAC,CAAC,IAAI;4BACR,KAAK,EAAE,WAAW;yBAClB;uBACE,YAAY,EACZ,UAAU,CACb;iBACD,CAAC,CAAC;aACH;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAClC;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAClC;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK;YACrC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEzC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzC;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,eAAe,EACjC;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,KAAK;YAClC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,IAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAErD,IAAM,QAAQ,GACb,KAAK,CAAC,WAAW,CAChB,IAAI,CAAC,UAAU,EAAE,EACjB,YAAY,EACZ,SAAS,CACT,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAEzC,IAAI,QAAQ,EAAE;gBACb,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAC5C,aAAa,CACb,CAAC;gBACF,IAAM,QAAQ,GAAG,MAAM,CACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CACzC,CAAC;gBACF,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAC/B,eAAe,EACf,aAAa,CAAC,kBAAkB,CAChC,CAAC;aACF;YACD,+EAA+E;iBAC1E,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBAC1D,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAC5C,aAAa,CACb,CAAC;gBACF,IAAM,QAAQ,GAAG,MAAM,CACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CACzC,CAAC;gBACF,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC9B,KAAK,EACL,eAAe,EACf,aAAa,CAAC,kBAAkB,CAChC,CAAC;gBACF,qEAAqE;gBACrE,iFAAiF;gBACjF,qDAAqD;gBACrD,KAAK,CAAC,eAAe,EAAE,CAAC;aACxB;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,YAAY,EAC9B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAAO,GAAP;QACC,yBAAyB;QACzB,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;aACpB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEpB,qCAAqC;QACrC,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,cAAc,CAAC,mBAAmB,CACjC,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,IAAI,CAAC,mBAAmB,CACxB,CAAC;QACF,cAAc,CAAC,mBAAmB,CACjC,MAAM,CAAC,MAAM,CAAC,aAAa,EAC3B,IAAI,CAAC,oBAAoB,CACzB,CAAC;QAEF,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAClC,CAAC;IACF,iBAAC;AAAD,CAAC,AA3cD,CAAgC,SAAS,GA2cxC","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { hierarchy as d3Hierarchy, pack as D3Pack } from 'd3-hierarchy';\nimport { select } from 'd3-selection';\n\nimport {\n\tColorClassNameTypes,\n\tEvents,\n\tRenderTypes,\n} from '../../interfaces/enums';\nimport { Tools } from './../../tools';\n\nexport class CirclePack extends Component {\n\ttype = 'circle-pack';\n\trenderType = RenderTypes.SVG;\n\n\tfocal: any;\n\n\trender(animate = true) {\n\t\t// svg and container widths\n\t\tconst svg = this.getComponentContainer({ withinChartClip: true });\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\t// Because of a Firefox bug with regards to sizing & d3 packs,\n\t\t// rather than checking if height or width aren't 0,\n\t\t// we have to make sure they're not smaller than 1\n\t\tif (width < 1 || height < 1) {\n\t\t\t// on first render the svg is width and height 0\n\t\t\t// the circle packing layout functionality will not run\n\t\t\treturn;\n\t\t}\n\n\t\t// data and options (zoom/not zoom)\n\t\tlet displayData = this.model.getDisplayData();\n\t\t// check if there is just one parent for the data\n\t\tconst parentNode = this.model.hasParentNode();\n\t\tconst hierarchyLevel = this.model.getHierarchyLevel();\n\t\tconst options = this.getOptions();\n\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'canvasZoom',\n\t\t\t'enabled'\n\t\t);\n\n\t\t// check if there is one root for the data\n\t\t// that root will be the only datagroup (colorscale will be monochrome)\n\t\tif (parentNode && Tools.getProperty(displayData, 0, 'children')) {\n\t\t\t// remove want to remove the parent from being rendered\n\t\t\tdisplayData = Tools.getProperty(displayData, 0, 'children');\n\t\t}\n\n\t\tconst root = d3Hierarchy({ children: displayData })\n\t\t\t.sum((d: any) => d.value)\n\t\t\t.sort((a, b) => b.value - a.value);\n\n\t\tconst packLayout = D3Pack()\n\t\t\t.size([width, height])\n\t\t\t.padding((d) => {\n\t\t\t\t// add 3 px to account for the stroke width 1.5px\n\t\t\t\treturn d.depth >= 1\n\t\t\t\t\t? Configuration.circlePack.padding.children + 3\n\t\t\t\t\t: Configuration.circlePack.padding.mainGroup + 3;\n\t\t\t});\n\n\t\tconst nodeData = packLayout(root)\n\t\t\t.descendants()\n\t\t\t.splice(1)\n\t\t\t.filter((node) => {\n\t\t\t\t// filter based on hierarchy level\n\t\t\t\treturn node.depth <= hierarchyLevel;\n\t\t\t});\n\n\t\t// enter the circles\n\t\tconst circles = svg.selectAll('circle.node').data(nodeData);\n\n\t\tcircles.exit().attr('width', 0).attr('height', 0).remove();\n\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('node', true);\n\n\t\tenteringCircles\n\t\t\t.merge(circles)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst originalClass =\n\t\t\t\t\tcanvasZoomEnabled && hierarchyLevel === 3\n\t\t\t\t\t\t? this.getZoomClass(d)\n\t\t\t\t\t\t: '';\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t],\n\t\t\t\t\tdataGroupName: d.data.dataGroupName,\n\t\t\t\t\toriginalClassName: d.children\n\t\t\t\t\t\t? `node ${originalClass}`\n\t\t\t\t\t\t: `node node-leaf ${originalClass}`,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.style('fill', (d) => this.model.getFillColor(d.data.dataGroupName))\n\t\t\t.style('stroke', (d) =>\n\t\t\t\tthis.model.getFillColor(d.data.dataGroupName)\n\t\t\t)\n\t\t\t.attr('cx', (d) => d.x)\n\t\t\t.attr('cy', (d) => d.y)\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'circlepack-leaf-update-enter',\n\t\t\t\t\tanimate\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('r', (d) => d.r)\n\t\t\t.attr('opacity', 1)\n\t\t\t.attr('fill-opacity', Configuration.circlePack.circles.fillOpacity);\n\n\t\tif (canvasZoomEnabled === true && this.focal) {\n\t\t\tthis.services.canvasZoom.zoomIn(\n\t\t\t\tthis.focal,\n\t\t\t\tenteringCircles,\n\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t);\n\t\t\tthis.setBackgroundListeners();\n\t\t}\n\n\t\tif (!parentNode) {\n\t\t\t// add legend filtering if it isnt a monochrome chart\n\t\t\tthis.addLegendListeners();\n\t\t}\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// turn off the highlight class on children circles\n\tunhighlightChildren(childData) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.style('stroke', (d) =>\n\t\t\t\tthis.model.getFillColor(d.data.dataGroupName)\n\t\t\t);\n\t}\n\n\t// highlight the children circles with a stroke\n\thighlightChildren(childData) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.style('stroke', Configuration.circlePack.circles.hover.stroke);\n\t}\n\n\tgetZoomClass(node) {\n\t\tif (this.model.getHierarchyLevel() === 3 && this.focal) {\n\t\t\tif (\n\t\t\t\tnode.data === this.focal.data ||\n\t\t\t\tthis.focal.children.some((d) => d.data === node.data)\n\t\t\t) {\n\t\t\t\treturn 'focal';\n\t\t\t}\n\t\t}\n\t\treturn 'non-focal';\n\t}\n\n\taddLegendListeners() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\tremoveBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getMainContainer());\n\t\tchartSvg.on('click', () => null);\n\t}\n\n\tsetBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getMainContainer());\n\t\tconst self = this;\n\t\tconst canvasSelection = this.parent.selectAll('circle.node');\n\t\tconst zoomSetting = Tools.getProperty(\n\t\t\tConfiguration,\n\t\t\t'canvasZoomSettings'\n\t\t);\n\n\t\tchartSvg.on('click', () => {\n\t\t\tself.focal = null;\n\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\tchartSvg.classed('zoomed-in', false);\n\t\t\tself.services.canvasZoom.zoomOut(canvasSelection, zoomSetting);\n\t\t});\n\t}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-hover-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', (d) => {\n\t\t\t\treturn d.data.dataGroupName === hoveredElement.datum()['name']\n\t\t\t\t\t? 1\n\t\t\t\t\t: Configuration.circlePack.circles.fillOpacity;\n\t\t\t});\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\t// Zoom icon to be appended to the label in the tooltip\n\tgetZoomIcon() {\n\t\treturn `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\">\n\t\t\t<polygon points=\"5.93 3.71 4.45 3.71 4.45 2.23 3.71 2.23 3.71 3.71 2.23 3.71 2.23 4.45 3.71 4.45 3.71 5.93 4.45 5.93 4.45 4.45 5.93 4.45 5.93 3.71\"/>\n\t\t\t<path d=\"M7.2,6.67a4,4,0,0,0,1-2.59A4.08,4.08,0,1,0,4.07,8.15h0a4,4,0,0,0,2.59-1L9.48,10,10,9.48Zm-3.12.77A3.34,3.34,0,1,1,7.41,4.08,3.34,3.34,0,0,1,4.08,7.44Z\"/>\n\t\t</svg>`;\n\t}\n\n\t// add event listeners for tooltip on the circles\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', true);\n\n\t\t\t\tconst hierarchyLevel = self.model.getHierarchyLevel();\n\t\t\t\tconst disabled =\n\t\t\t\t\thierarchyLevel > 2 && !hoveredElement.classed('focal');\n\t\t\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\t\t\tself.model.getOptions(),\n\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t'enabled'\n\t\t\t\t);\n\n\t\t\t\tlet zoomable = false;\n\t\t\t\tif (!disabled) {\n\t\t\t\t\t// get the children data for the tooltip\n\t\t\t\t\tlet childrenData = [];\n\t\t\t\t\tlet totalValue = [];\n\t\t\t\t\tlet parentValue = null;\n\t\t\t\t\tif (datum.children) {\n\t\t\t\t\t\tif (datum.depth > 1 && canvasZoomEnabled) {\n\t\t\t\t\t\t\tzoomable = true;\n\t\t\t\t\t\t\thoveredElement.classed('clickable', true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildrenData = datum.children.map((child) => {\n\t\t\t\t\t\t\tif (child !== null) {\n\t\t\t\t\t\t\t\t// retrieve the children values if there are any 3rd level\n\t\t\t\t\t\t\t\tif (typeof child.data.value === 'number') {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tvalue: child.data.value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\t\t\tcanvasZoomEnabled &&\n\t\t\t\t\t\t\t\t\t\t\thierarchyLevel <= 2\n\t\t\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\t\t\tvalue: child.value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\ttotalValue = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Total',\n\t\t\t\t\t\t\t\tvalue: datum.value,\n\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\t// children get a highlight stroke\n\t\t\t\t\t\tself.highlightChildren(datum.children);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if there is no children we want to display the value for the data\n\t\t\t\t\t\tparentValue = datum.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fillColor = getComputedStyle(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tnull\n\t\t\t\t\t).getPropertyValue('fill');\n\n\t\t\t\t\t// Show tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\t\t\tlabel: datum.data.name,\n\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\tzoomable &&\n\t\t\t\t\t\t\t\t\tcanvasZoomEnabled &&\n\t\t\t\t\t\t\t\t\thierarchyLevel <= 2\n\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\tvalue: parentValue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...childrenData,\n\t\t\t\t\t\t\t...totalValue,\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (datum.children) {\n\t\t\t\t\tself.unhighlightChildren(datum.children);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tconst disabled = hoveredElement.classed('non-focal');\n\n\t\t\t\tconst zoomedIn =\n\t\t\t\t\tTools.getProperty(\n\t\t\t\t\t\tself.getOptions(),\n\t\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t\t'enabled'\n\t\t\t\t\t) && self.model.getHierarchyLevel() > 2;\n\n\t\t\t\tif (zoomedIn) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\t\t\t\t\tconst chartSvg = select(\n\t\t\t\t\t\tself.services.domUtils.getMainContainer()\n\t\t\t\t\t);\n\t\t\t\t\tchartSvg.classed('zoomed-in', false);\n\t\t\t\t\tself.focal = null;\n\t\t\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\t\t\tself.services.canvasZoom.zoomOut(\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// zoom if chart has zoom enabled and if its a depth 2 circle that has children\n\t\t\t\telse if (datum.depth === 2 && datum.children && !disabled) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\t\t\t\t\tconst chartSvg = select(\n\t\t\t\t\t\tself.services.domUtils.getMainContainer()\n\t\t\t\t\t);\n\t\t\t\t\tchartSvg.classed('zoomed-in', true);\n\t\t\t\t\tself.focal = datum;\n\t\t\t\t\tself.model.updateHierarchyLevel(3);\n\t\t\t\t\tself.services.canvasZoom.zoomIn(\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t\t// don't want the click event to propagate to the background zoom out\n\t\t\t\t\t// does not clash with the tooltip/other events because it does need to close the\n\t\t\t\t\t// tooltip on the click event in order to zoom in/out\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.on('click', null);\n\n\t\t// remove the listeners on the legend\n\t\tconst eventsFragment = this.services.events;\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tthis.removeBackgroundListeners();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"circle-pack.js","sourceRoot":"","sources":["circle-pack.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport * as Configuration from '../../configuration';\nimport {\n\tColorClassNameTypes,\n\tEvents,\n\tRenderTypes,\n} from '../../interfaces/enums';\nimport { Tools } from './../../tools';\n\n// D3 Imports\nimport { hierarchy as d3Hierarchy, pack as D3Pack } from 'd3-hierarchy';\nimport { select } from 'd3-selection';\n\nimport { get } from 'lodash-es';\n\nexport class CirclePack extends Component {\n\ttype = 'circle-pack';\n\trenderType = RenderTypes.SVG;\n\n\tfocal: any;\n\n\trender(animate = true) {\n\t\t// svg and container widths\n\t\tconst svg = this.getComponentContainer({ withinChartClip: true });\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\t// Because of a Firefox bug with regards to sizing & d3 packs,\n\t\t// rather than checking if height or width aren't 0,\n\t\t// we have to make sure they're not smaller than 1\n\t\tif (width < 1 || height < 1) {\n\t\t\t// on first render the svg is width and height 0\n\t\t\t// the circle packing layout functionality will not run\n\t\t\treturn;\n\t\t}\n\n\t\t// data and options (zoom/not zoom)\n\t\tlet displayData = this.model.getDisplayData();\n\t\t// check if there is just one parent for the data\n\t\tconst parentNode = this.model.hasParentNode();\n\t\tconst hierarchyLevel = this.model.getHierarchyLevel();\n\t\tconst options = this.getOptions();\n\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'canvasZoom',\n\t\t\t'enabled'\n\t\t);\n\n\t\t// check if there is one root for the data\n\t\t// that root will be the only datagroup (colorscale will be monochrome)\n\t\tif (parentNode && Tools.getProperty(displayData, 0, 'children')) {\n\t\t\t// remove want to remove the parent from being rendered\n\t\t\tdisplayData = Tools.getProperty(displayData, 0, 'children');\n\t\t}\n\n\t\tconst root = d3Hierarchy({ children: displayData })\n\t\t\t.sum((d: any) => d.value)\n\t\t\t.sort((a, b) => b.value - a.value);\n\n\t\tconst packLayout = D3Pack()\n\t\t\t.size([width, height])\n\t\t\t.padding((d) => {\n\t\t\t\t// add 3 px to account for the stroke width 1.5px\n\t\t\t\treturn d.depth >= 1\n\t\t\t\t\t? Configuration.circlePack.padding.children + 3\n\t\t\t\t\t: Configuration.circlePack.padding.mainGroup + 3;\n\t\t\t});\n\n\t\tconst nodeData = packLayout(root)\n\t\t\t.descendants()\n\t\t\t.splice(1)\n\t\t\t.filter((node) => {\n\t\t\t\t// filter based on hierarchy level\n\t\t\t\treturn node.depth <= hierarchyLevel;\n\t\t\t});\n\n\t\t// enter the circles\n\t\tconst circles = svg.selectAll('circle.node').data(nodeData);\n\n\t\tcircles.exit().attr('width', 0).attr('height', 0).remove();\n\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('node', true);\n\n\t\tenteringCircles\n\t\t\t.merge(circles)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst originalClass =\n\t\t\t\t\tcanvasZoomEnabled && hierarchyLevel === 3\n\t\t\t\t\t\t? this.getZoomClass(d)\n\t\t\t\t\t\t: '';\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t],\n\t\t\t\t\tdataGroupName: d.data.dataGroupName,\n\t\t\t\t\toriginalClassName: d.children\n\t\t\t\t\t\t? `node ${originalClass}`\n\t\t\t\t\t\t: `node node-leaf ${originalClass}`,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.style('fill', (d) => this.model.getFillColor(d.data.dataGroupName))\n\t\t\t.style('stroke', (d) =>\n\t\t\t\tthis.model.getFillColor(d.data.dataGroupName)\n\t\t\t)\n\t\t\t.attr('cx', (d) => d.x)\n\t\t\t.attr('cy', (d) => d.y)\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'circlepack-leaf-update-enter',\n\t\t\t\t\tanimate\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('r', (d) => d.r)\n\t\t\t.attr('opacity', 1)\n\t\t\t.attr('fill-opacity', Configuration.circlePack.circles.fillOpacity);\n\n\t\tif (canvasZoomEnabled === true && this.focal) {\n\t\t\tthis.services.canvasZoom.zoomIn(\n\t\t\t\tthis.focal,\n\t\t\t\tenteringCircles,\n\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t);\n\t\t\tthis.setBackgroundListeners();\n\t\t}\n\n\t\tif (!parentNode) {\n\t\t\t// add legend filtering if it isnt a monochrome chart\n\t\t\tthis.addLegendListeners();\n\t\t}\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// turn off the highlight class on children circles\n\tunhighlightChildren(childData) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.style('stroke', (d) =>\n\t\t\t\tthis.model.getFillColor(d.data.dataGroupName)\n\t\t\t);\n\t}\n\n\t// highlight the children circles with a stroke\n\thighlightChildren(childData) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.style('stroke', Configuration.circlePack.circles.hover.stroke);\n\t}\n\n\tgetZoomClass(node) {\n\t\tif (this.model.getHierarchyLevel() === 3 && this.focal) {\n\t\t\tif (\n\t\t\t\tnode.data === this.focal.data ||\n\t\t\t\tthis.focal.children.some((d) => d.data === node.data)\n\t\t\t) {\n\t\t\t\treturn 'focal';\n\t\t\t}\n\t\t}\n\t\treturn 'non-focal';\n\t}\n\n\taddLegendListeners() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\tremoveBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getMainContainer());\n\t\tchartSvg.on('click', () => null);\n\t}\n\n\tsetBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getMainContainer());\n\t\tconst self = this;\n\t\tconst canvasSelection = this.parent.selectAll('circle.node');\n\t\tconst zoomSetting = Tools.getProperty(\n\t\t\tConfiguration,\n\t\t\t'canvasZoomSettings'\n\t\t);\n\n\t\tchartSvg.on('click', () => {\n\t\t\tself.focal = null;\n\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\tchartSvg.classed('zoomed-in', false);\n\t\t\tself.services.canvasZoom.zoomOut(canvasSelection, zoomSetting);\n\t\t});\n\t}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-hover-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', (d) => {\n\t\t\t\treturn d.data.dataGroupName === hoveredElement.datum()['name']\n\t\t\t\t\t? 1\n\t\t\t\t\t: Configuration.circlePack.circles.fillOpacity;\n\t\t\t});\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\t// Zoom icon to be appended to the label in the tooltip\n\tgetZoomIcon() {\n\t\treturn `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\">\n\t\t\t<polygon points=\"5.93 3.71 4.45 3.71 4.45 2.23 3.71 2.23 3.71 3.71 2.23 3.71 2.23 4.45 3.71 4.45 3.71 5.93 4.45 5.93 4.45 4.45 5.93 4.45 5.93 3.71\"/>\n\t\t\t<path d=\"M7.2,6.67a4,4,0,0,0,1-2.59A4.08,4.08,0,1,0,4.07,8.15h0a4,4,0,0,0,2.59-1L9.48,10,10,9.48Zm-3.12.77A3.34,3.34,0,1,1,7.41,4.08,3.34,3.34,0,0,1,4.08,7.44Z\"/>\n\t\t</svg>`;\n\t}\n\n\t// add event listeners for tooltip on the circles\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', true);\n\n\t\t\t\tconst hierarchyLevel = self.model.getHierarchyLevel();\n\t\t\t\tconst disabled =\n\t\t\t\t\thierarchyLevel > 2 && !hoveredElement.classed('focal');\n\t\t\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\t\t\tself.model.getOptions(),\n\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t'enabled'\n\t\t\t\t);\n\n\t\t\t\tlet zoomable = false;\n\t\t\t\tif (!disabled) {\n\t\t\t\t\t// get the children data for the tooltip\n\t\t\t\t\tlet childrenData = [];\n\t\t\t\t\tlet totalValue = [];\n\t\t\t\t\tlet parentValue = null;\n\t\t\t\t\tif (datum.children) {\n\t\t\t\t\t\tif (datum.depth > 1 && canvasZoomEnabled) {\n\t\t\t\t\t\t\tzoomable = true;\n\t\t\t\t\t\t\thoveredElement.classed('clickable', true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildrenData = datum.children.map((child) => {\n\t\t\t\t\t\t\tif (child !== null) {\n\t\t\t\t\t\t\t\t// retrieve the children values if there are any 3rd level\n\t\t\t\t\t\t\t\tif (typeof child.data.value === 'number') {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tvalue: child.data.value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\t\t\tcanvasZoomEnabled &&\n\t\t\t\t\t\t\t\t\t\t\thierarchyLevel <= 2\n\t\t\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\t\t\tvalue: child.value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst options = self.model.getOptions();\n\t\t\t\t\t\ttotalValue = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\tget(options, 'tooltip.totalLabel') ||\n\t\t\t\t\t\t\t\t\t'Total',\n\t\t\t\t\t\t\t\tvalue: datum.value,\n\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\t// children get a highlight stroke\n\t\t\t\t\t\tself.highlightChildren(datum.children);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if there is no children we want to display the value for the data\n\t\t\t\t\t\tparentValue = datum.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fillColor = getComputedStyle(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tnull\n\t\t\t\t\t).getPropertyValue('fill');\n\n\t\t\t\t\t// Show tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\t\t\tlabel: datum.data.name,\n\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\tzoomable &&\n\t\t\t\t\t\t\t\t\tcanvasZoomEnabled &&\n\t\t\t\t\t\t\t\t\thierarchyLevel <= 2\n\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\tvalue: parentValue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...childrenData,\n\t\t\t\t\t\t\t...totalValue,\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (datum.children) {\n\t\t\t\t\tself.unhighlightChildren(datum.children);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tconst disabled = hoveredElement.classed('non-focal');\n\n\t\t\t\tconst zoomedIn =\n\t\t\t\t\tTools.getProperty(\n\t\t\t\t\t\tself.getOptions(),\n\t\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t\t'enabled'\n\t\t\t\t\t) && self.model.getHierarchyLevel() > 2;\n\n\t\t\t\tif (zoomedIn) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\t\t\t\t\tconst chartSvg = select(\n\t\t\t\t\t\tself.services.domUtils.getMainContainer()\n\t\t\t\t\t);\n\t\t\t\t\tchartSvg.classed('zoomed-in', false);\n\t\t\t\t\tself.focal = null;\n\t\t\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\t\t\tself.services.canvasZoom.zoomOut(\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// zoom if chart has zoom enabled and if its a depth 2 circle that has children\n\t\t\t\telse if (datum.depth === 2 && datum.children && !disabled) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\t\t\t\t\tconst chartSvg = select(\n\t\t\t\t\t\tself.services.domUtils.getMainContainer()\n\t\t\t\t\t);\n\t\t\t\t\tchartSvg.classed('zoomed-in', true);\n\t\t\t\t\tself.focal = datum;\n\t\t\t\t\tself.model.updateHierarchyLevel(3);\n\t\t\t\t\tself.services.canvasZoom.zoomIn(\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t\t// don't want the click event to propagate to the background zoom out\n\t\t\t\t\t// does not clash with the tooltip/other events because it does need to close the\n\t\t\t\t\t// tooltip on the click event in order to zoom in/out\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.on('click', null);\n\n\t\t// remove the listeners on the legend\n\t\tconst eventsFragment = this.services.events;\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tthis.removeBackgroundListeners();\n\t}\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RenderTypes } from '../../interfaces';
|
|
2
|
+
import { Component } from '../component';
|
|
3
|
+
export declare class Histogram extends Component {
|
|
4
|
+
type: string;
|
|
5
|
+
renderType: RenderTypes;
|
|
6
|
+
init(): void;
|
|
7
|
+
render(animate: boolean): void;
|
|
8
|
+
handleLegendOnHover: (event: CustomEvent<any>) => void;
|
|
9
|
+
handleLegendMouseOut: (event: CustomEvent<any>) => void;
|
|
10
|
+
addEventListeners(): void;
|
|
11
|
+
destroy(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
extendStatics(d, b);
|
|
10
|
+
function __() { this.constructor = d; }
|
|
11
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
12
|
+
};
|
|
13
|
+
})();
|
|
14
|
+
// Internal Imports
|
|
15
|
+
import { Tools } from '../../tools';
|
|
16
|
+
import { Roles, Events, CartesianOrientations, ColorClassNameTypes, RenderTypes, } from '../../interfaces';
|
|
17
|
+
import { Component } from '../component';
|
|
18
|
+
// D3 Imports
|
|
19
|
+
import { select } from 'd3-selection';
|
|
20
|
+
import { get } from 'lodash-es';
|
|
21
|
+
var Histogram = /** @class */ (function (_super) {
|
|
22
|
+
__extends(Histogram, _super);
|
|
23
|
+
function Histogram() {
|
|
24
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
25
|
+
_this.type = 'histogram';
|
|
26
|
+
_this.renderType = RenderTypes.SVG;
|
|
27
|
+
// Highlight elements that match the hovered legend item
|
|
28
|
+
_this.handleLegendOnHover = function (event) {
|
|
29
|
+
var hoveredElement = event.detail.hoveredElement;
|
|
30
|
+
var options = _this.getOptions();
|
|
31
|
+
var groupMapsTo = options.data.groupMapsTo;
|
|
32
|
+
_this.parent
|
|
33
|
+
.selectAll('path.bar')
|
|
34
|
+
.transition(_this.services.transitions.getTransition('legend-hover-bar'))
|
|
35
|
+
.attr('opacity', function (d) {
|
|
36
|
+
return d[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1;
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
// Un-highlight all elements
|
|
40
|
+
_this.handleLegendMouseOut = function (event) {
|
|
41
|
+
_this.parent
|
|
42
|
+
.selectAll('path.bar')
|
|
43
|
+
.transition(_this.services.transitions.getTransition('legend-mouseout-bar'))
|
|
44
|
+
.attr('opacity', 1);
|
|
45
|
+
};
|
|
46
|
+
return _this;
|
|
47
|
+
}
|
|
48
|
+
Histogram.prototype.init = function () {
|
|
49
|
+
var eventsFragment = this.services.events;
|
|
50
|
+
// Highlight correct circle on legend item hovers
|
|
51
|
+
eventsFragment.addEventListener(Events.Legend.ITEM_HOVER, this.handleLegendOnHover);
|
|
52
|
+
// Un-highlight circles on legend item mouseouts
|
|
53
|
+
eventsFragment.addEventListener(Events.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);
|
|
54
|
+
};
|
|
55
|
+
Histogram.prototype.render = function (animate) {
|
|
56
|
+
var _this = this;
|
|
57
|
+
// Grab container SVG
|
|
58
|
+
var svg = this.getComponentContainer();
|
|
59
|
+
// Chart options mixed with the internal configurations
|
|
60
|
+
var options = this.model.getOptions();
|
|
61
|
+
var groupIdentifier = options.groupIdentifier;
|
|
62
|
+
var groupMapsTo = options.data.groupMapsTo;
|
|
63
|
+
var binnedStackedData = this.model.getBinnedStackedData();
|
|
64
|
+
var x = this.services.cartesianScales.getMainXScale();
|
|
65
|
+
// Update data on all bar groups
|
|
66
|
+
var barGroups = svg
|
|
67
|
+
.selectAll('g.bars')
|
|
68
|
+
.data(binnedStackedData, function (d) { return get(d, "0." + groupMapsTo); });
|
|
69
|
+
barGroups.exit().attr('opacity', 0).remove();
|
|
70
|
+
// Add bar groups that need to be introduced
|
|
71
|
+
barGroups
|
|
72
|
+
.enter()
|
|
73
|
+
.append('g')
|
|
74
|
+
.classed('bars', true)
|
|
75
|
+
.attr('role', Roles.GROUP);
|
|
76
|
+
// Update data on all bars
|
|
77
|
+
var bars = svg
|
|
78
|
+
.selectAll('g.bars')
|
|
79
|
+
.selectAll('path.bar')
|
|
80
|
+
.data(function (data) { return data; });
|
|
81
|
+
// Remove bars that need to be removed
|
|
82
|
+
bars.exit().remove();
|
|
83
|
+
bars.enter()
|
|
84
|
+
.append('path')
|
|
85
|
+
.merge(bars)
|
|
86
|
+
.classed('bar', true)
|
|
87
|
+
.attr(groupIdentifier, function (d, i) { return i; })
|
|
88
|
+
.transition()
|
|
89
|
+
.call(function (t) {
|
|
90
|
+
return _this.services.transitions.setupTransition({
|
|
91
|
+
transition: t,
|
|
92
|
+
name: 'histogram-bar-update-enter',
|
|
93
|
+
animate: animate,
|
|
94
|
+
});
|
|
95
|
+
})
|
|
96
|
+
.attr('class', function (d) {
|
|
97
|
+
return _this.model.getColorClassName({
|
|
98
|
+
classNameTypes: [ColorClassNameTypes.FILL],
|
|
99
|
+
dataGroupName: d[groupMapsTo],
|
|
100
|
+
originalClassName: 'bar',
|
|
101
|
+
});
|
|
102
|
+
})
|
|
103
|
+
.style('fill', function (d) { return _this.model.getFillColor(d[groupMapsTo]); })
|
|
104
|
+
.attr('d', function (d, i) {
|
|
105
|
+
var bin = get(d, 'data');
|
|
106
|
+
if (!bin) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
/*
|
|
110
|
+
* Orientation support for horizontal/vertical bar charts
|
|
111
|
+
* Determine coordinates needed for a vertical set of paths
|
|
112
|
+
* to draw the bars needed, and pass those coordinates down to
|
|
113
|
+
* generateSVGPathString() to decide whether it needs to flip them
|
|
114
|
+
*/
|
|
115
|
+
var barWidth = x(bin.x1) - x(bin.x0) - 1;
|
|
116
|
+
var x0 = _this.services.cartesianScales.getDomainValue(bin.x0, i);
|
|
117
|
+
var x1 = x0 + barWidth;
|
|
118
|
+
var y0 = _this.services.cartesianScales.getRangeValue(d[0], i);
|
|
119
|
+
var y1 = _this.services.cartesianScales.getRangeValue(d[1], i);
|
|
120
|
+
// Add the divider gap
|
|
121
|
+
if (Math.abs(y1 - y0) > 0 &&
|
|
122
|
+
Math.abs(y1 - y0) > options.bars.dividerSize) {
|
|
123
|
+
if (_this.services.cartesianScales.getOrientation() ===
|
|
124
|
+
CartesianOrientations.VERTICAL) {
|
|
125
|
+
y1 += 1;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
y1 -= 1;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return Tools.generateSVGPathString({ x0: x0, x1: x1, y0: y0, y1: y1 }, _this.services.cartesianScales.getOrientation());
|
|
132
|
+
})
|
|
133
|
+
.attr('opacity', 1)
|
|
134
|
+
// a11y
|
|
135
|
+
.attr('role', Roles.GRAPHICS_SYMBOL)
|
|
136
|
+
.attr('aria-roledescription', 'bar')
|
|
137
|
+
.attr('aria-label', function (d) { return d.value; });
|
|
138
|
+
// Add event listeners for the above elements
|
|
139
|
+
this.addEventListeners();
|
|
140
|
+
};
|
|
141
|
+
Histogram.prototype.addEventListeners = function () {
|
|
142
|
+
var options = this.model.getOptions();
|
|
143
|
+
var groupMapsTo = options.data.groupMapsTo;
|
|
144
|
+
var self = this;
|
|
145
|
+
this.parent
|
|
146
|
+
.selectAll('path.bar')
|
|
147
|
+
.on('mouseover', function (event, datum) {
|
|
148
|
+
var hoveredElement = select(this);
|
|
149
|
+
hoveredElement.classed('hovered', true);
|
|
150
|
+
hoveredElement.transition(self.services.transitions.getTransition('graph_element_mouseover_fill_update'));
|
|
151
|
+
var x0 = parseFloat(get(datum, 'data.x0'));
|
|
152
|
+
var x1 = parseFloat(get(datum, 'data.x1'));
|
|
153
|
+
var rangeAxisPosition = self.services.cartesianScales.getRangeAxisPosition();
|
|
154
|
+
var rangeScaleLabel = self.services.cartesianScales.getScaleLabel(rangeAxisPosition);
|
|
155
|
+
self.services.events.dispatchEvent(Events.Tooltip.SHOW, {
|
|
156
|
+
event: event,
|
|
157
|
+
hoveredElement: hoveredElement,
|
|
158
|
+
items: [
|
|
159
|
+
{
|
|
160
|
+
label: get(options, 'bins.rangeLabel') || 'Range',
|
|
161
|
+
value: x0 + " \u2013 " + x1,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
label: options.tooltip.groupLabel || 'Group',
|
|
165
|
+
value: datum[groupMapsTo],
|
|
166
|
+
class: self.model.getColorClassName({
|
|
167
|
+
classNameTypes: [ColorClassNameTypes.TOOLTIP],
|
|
168
|
+
dataGroupName: datum[groupMapsTo],
|
|
169
|
+
}),
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
label: rangeScaleLabel,
|
|
173
|
+
value: get(datum, "data." + datum[groupMapsTo]),
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
});
|
|
177
|
+
})
|
|
178
|
+
.on('mousemove', function (event, datum) {
|
|
179
|
+
// Show tooltip
|
|
180
|
+
self.services.events.dispatchEvent(Events.Tooltip.MOVE, {
|
|
181
|
+
event: event,
|
|
182
|
+
});
|
|
183
|
+
})
|
|
184
|
+
.on('mouseout', function (event, datum) {
|
|
185
|
+
var hoveredElement = select(this);
|
|
186
|
+
// Select all same group elements
|
|
187
|
+
hoveredElement.classed('hovered', false);
|
|
188
|
+
// Hide tooltip
|
|
189
|
+
self.services.events.dispatchEvent(Events.Tooltip.HIDE);
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
Histogram.prototype.destroy = function () {
|
|
193
|
+
// Remove event listeners
|
|
194
|
+
this.parent
|
|
195
|
+
.selectAll('path.bar')
|
|
196
|
+
.on('mouseover', null)
|
|
197
|
+
.on('mousemove', null)
|
|
198
|
+
.on('mouseout', null);
|
|
199
|
+
// Remove legend listeners
|
|
200
|
+
var eventsFragment = this.services.events;
|
|
201
|
+
eventsFragment.removeEventListener(Events.Legend.ITEM_HOVER, this.handleLegendOnHover);
|
|
202
|
+
eventsFragment.removeEventListener(Events.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);
|
|
203
|
+
};
|
|
204
|
+
return Histogram;
|
|
205
|
+
}(Component));
|
|
206
|
+
export { Histogram };
|
|
207
|
+
//# sourceMappingURL=../../../src/components/graphs/histogram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"histogram.js","sourceRoot":"","sources":["histogram.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Tools } from '../../tools';\nimport {\n\tRoles,\n\tEvents,\n\tCartesianOrientations,\n\tColorClassNameTypes,\n\tRenderTypes,\n} from '../../interfaces';\nimport { Component } from '../component';\n\n// D3 Imports\nimport { select } from 'd3-selection';\n\nimport { get } from 'lodash-es';\n\nexport class Histogram extends Component {\n\ttype = 'histogram';\n\trenderType = RenderTypes.SVG;\n\n\tinit() {\n\t\tconst eventsFragment = this.services.events;\n\n\t\t// Highlight correct circle on legend item hovers\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\n\t\t// Un-highlight circles on legend item mouseouts\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\trender(animate: boolean) {\n\t\t// Grab container SVG\n\t\tconst svg = this.getComponentContainer();\n\n\t\t// Chart options mixed with the internal configurations\n\t\tconst options = this.model.getOptions();\n\t\tconst { groupIdentifier } = options;\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst binnedStackedData = this.model.getBinnedStackedData();\n\n\t\tconst x = this.services.cartesianScales.getMainXScale();\n\n\t\t// Update data on all bar groups\n\t\tconst barGroups = svg\n\t\t\t.selectAll('g.bars')\n\t\t\t.data(binnedStackedData, (d) => get(d, `0.${groupMapsTo}`));\n\n\t\tbarGroups.exit().attr('opacity', 0).remove();\n\n\t\t// Add bar groups that need to be introduced\n\t\tbarGroups\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.classed('bars', true)\n\t\t\t.attr('role', Roles.GROUP);\n\n\t\t// Update data on all bars\n\t\tconst bars = svg\n\t\t\t.selectAll('g.bars')\n\t\t\t.selectAll('path.bar')\n\t\t\t.data((data) => data);\n\n\t\t// Remove bars that need to be removed\n\t\tbars.exit().remove();\n\n\t\tbars.enter()\n\t\t\t.append('path')\n\t\t\t.merge(bars)\n\t\t\t.classed('bar', true)\n\t\t\t.attr(groupIdentifier, (d, i) => i)\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'histogram-bar-update-enter',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: 'bar',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill', (d) => this.model.getFillColor(d[groupMapsTo]))\n\t\t\t.attr('d', (d, i) => {\n\t\t\t\tconst bin = get(d, 'data');\n\n\t\t\t\tif (!bin) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Orientation support for horizontal/vertical bar charts\n\t\t\t\t * Determine coordinates needed for a vertical set of paths\n\t\t\t\t * to draw the bars needed, and pass those coordinates down to\n\t\t\t\t * generateSVGPathString() to decide whether it needs to flip them\n\t\t\t\t */\n\t\t\t\tconst barWidth = x(bin.x1) - x(bin.x0) - 1;\n\t\t\t\tconst x0 = this.services.cartesianScales.getDomainValue(\n\t\t\t\t\tbin.x0,\n\t\t\t\t\ti\n\t\t\t\t);\n\t\t\t\tconst x1 = x0 + barWidth;\n\n\t\t\t\tconst y0 = this.services.cartesianScales.getRangeValue(d[0], i);\n\t\t\t\tlet y1 = this.services.cartesianScales.getRangeValue(d[1], i);\n\n\t\t\t\t// Add the divider gap\n\t\t\t\tif (\n\t\t\t\t\tMath.abs(y1 - y0) > 0 &&\n\t\t\t\t\tMath.abs(y1 - y0) > options.bars.dividerSize\n\t\t\t\t) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.services.cartesianScales.getOrientation() ===\n\t\t\t\t\t\tCartesianOrientations.VERTICAL\n\t\t\t\t\t) {\n\t\t\t\t\t\ty1 += 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ty1 -= 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn Tools.generateSVGPathString(\n\t\t\t\t\t{ x0, x1, y0, y1 },\n\t\t\t\t\tthis.services.cartesianScales.getOrientation()\n\t\t\t\t);\n\t\t\t})\n\t\t\t.attr('opacity', 1)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'bar')\n\t\t\t.attr('aria-label', (d) => d.value);\n\n\t\t// Add event listeners for the above elements\n\t\tthis.addEventListeners();\n\t}\n\n\t// Highlight elements that match the hovered legend item\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-hover-bar')\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\t// Un-highlight all elements\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-mouseout-bar')\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst options = this.model.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement.classed('hovered', true);\n\t\t\t\thoveredElement.transition(\n\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t'graph_element_mouseover_fill_update'\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tconst x0 = parseFloat(get(datum, 'data.x0'));\n\t\t\t\tconst x1 = parseFloat(get(datum, 'data.x1'));\n\n\t\t\t\tconst rangeAxisPosition = self.services.cartesianScales.getRangeAxisPosition();\n\t\t\t\tconst rangeScaleLabel = self.services.cartesianScales.getScaleLabel(\n\t\t\t\t\trangeAxisPosition\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\tget(options, 'bins.rangeLabel') || 'Range',\n\t\t\t\t\t\t\tvalue: `${x0} – ${x1}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: options.tooltip.groupLabel || 'Group',\n\t\t\t\t\t\t\tvalue: datum[groupMapsTo],\n\t\t\t\t\t\t\tclass: self.model.getColorClassName({\n\t\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.TOOLTIP],\n\t\t\t\t\t\t\t\tdataGroupName: datum[groupMapsTo],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: rangeScaleLabel,\n\t\t\t\t\t\t\tvalue: get(datum, `data.${datum[groupMapsTo]}`),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mousemove', function (event, datum) {\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Select all same group elements\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE);\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\n\t\t// Remove legend listeners\n\t\tconst eventsFragment = this.services.events;\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n}\n"]}
|
|
@@ -203,7 +203,9 @@ var Skeleton = /** @class */ (function (_super) {
|
|
|
203
203
|
};
|
|
204
204
|
// same logic in pie
|
|
205
205
|
Skeleton.prototype.computeOuterRadius = function () {
|
|
206
|
-
var _a = DOMUtils.getSVGElementSize(this.parent, {
|
|
206
|
+
var _a = DOMUtils.getSVGElementSize(this.parent, {
|
|
207
|
+
useAttrs: true,
|
|
208
|
+
}), width = _a.width, height = _a.height;
|
|
207
209
|
var radius = Math.min(width, height) / 2;
|
|
208
210
|
return radius + Configuration.pie.radiusOffset;
|
|
209
211
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["skeleton.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tSkeletons,\n\tCartesianOrientations,\n\tAlignments,\n} from '../../interfaces/enums';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { scaleLinear } from 'd3-scale';\nimport { easeLinear } from 'd3-ease';\nimport { arc } from 'd3-shape';\n\nexport class Skeleton extends Component {\n\ttype = 'skeleton';\n\txScale: any;\n\tyScale: any;\n\tbackdrop: any;\n\n\trender() {\n\t\tconst isDataLoading = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'data',\n\t\t\t'loading'\n\t\t);\n\n\t\t// display a skeleton if there is no chart data or the loading flag is set to true\n\t\tif (isDataLoading) {\n\t\t\tthis.renderSkeleton(isDataLoading);\n\t\t} else {\n\t\t\tthis.removeSkeleton();\n\t\t}\n\t}\n\n\trenderSkeleton(showShimmerEffect: boolean) {\n\t\tif (this.configs.skeleton === Skeletons.GRID) {\n\t\t\tthis.renderGridSkeleton(showShimmerEffect);\n\t\t} else if (this.configs.skeleton === Skeletons.VERT_OR_HORIZ) {\n\t\t\tthis.renderVertOrHorizSkeleton(showShimmerEffect);\n\t\t} else if (this.configs.skeleton === Skeletons.PIE) {\n\t\t\tthis.renderPieSkeleton(showShimmerEffect);\n\t\t} else if (this.configs.skeleton === Skeletons.DONUT) {\n\t\t\tthis.renderDonutSkeleton(showShimmerEffect);\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`\"${this.configs.skeleton}\" is not a valid Skeleton type.`\n\t\t\t);\n\t\t}\n\t}\n\n\trenderGridSkeleton(showShimmerEffect: boolean) {\n\t\tthis.setScales();\n\t\tthis.drawBackdrop(showShimmerEffect);\n\t\tthis.drawXGrid(showShimmerEffect);\n\t\tthis.drawYGrid(showShimmerEffect);\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-lines');\n\t\t}\n\t}\n\n\trenderVertOrHorizSkeleton(showShimmerEffect: boolean) {\n\t\tconst orientation = this.services.cartesianScales.getOrientation();\n\t\tthis.setScales();\n\t\tthis.drawBackdrop(showShimmerEffect);\n\t\tif (orientation === CartesianOrientations.VERTICAL) {\n\t\t\tthis.drawYGrid(showShimmerEffect);\n\t\t}\n\t\tif (orientation === CartesianOrientations.HORIZONTAL) {\n\t\t\tthis.drawXGrid(showShimmerEffect);\n\t\t}\n\t\tthis.setShimmerEffect('shimmer-lines');\n\t}\n\n\trenderPieSkeleton(showShimmerEffect: boolean) {\n\t\tconst outerRadius = this.computeOuterRadius();\n\t\tconst innerRadius = 0;\n\t\tthis.drawRing(outerRadius, innerRadius, showShimmerEffect);\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-areas');\n\t\t}\n\t}\n\n\trenderDonutSkeleton(showShimmerEffect: boolean) {\n\t\tconst outerRadius = this.computeOuterRadius();\n\t\tconst innerRadius = this.computeInnerRadius();\n\t\tthis.drawRing(outerRadius, innerRadius, showShimmerEffect);\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-areas');\n\t\t}\n\t}\n\n\tsetScales() {\n\t\tconst xRange = this.services.cartesianScales.getMainXScale().range();\n\t\tconst yRange = this.services.cartesianScales.getMainYScale().range();\n\t\tthis.xScale = scaleLinear().domain([0, 1]).range(xRange);\n\t\tthis.yScale = scaleLinear().domain([0, 1]).range(yRange);\n\t}\n\n\tdrawBackdrop(showShimmerEffect: boolean) {\n\t\tconst svg = this.parent;\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tthis.backdrop = DOMUtils.appendOrSelect(svg, 'svg.chart-skeleton.DAII')\n\t\t\t.attr('width', width)\n\t\t\t.attr('height', height);\n\n\t\tconst backdropRect = DOMUtils.appendOrSelect(\n\t\t\tthis.backdrop,\n\t\t\t'rect.chart-skeleton-backdrop'\n\t\t);\n\t\tbackdropRect.attr('width', '100%').attr('height', '100%');\n\n\t\tconst [xScaleStart, xScaleEnd] = this.xScale.range();\n\t\tconst [yScaleEnd, yScaleStart] = this.yScale.range();\n\n\t\tthis.backdrop\n\t\t\t.merge(backdropRect)\n\t\t\t.attr('x', xScaleStart)\n\t\t\t.attr('y', yScaleStart);\n\n\t\tbackdropRect\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tdrawXGrid(showShimmerEffect: boolean) {\n\t\tconst width = this.backdrop.attr('width');\n\t\tconst ticksNumber = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'grid',\n\t\t\t'x',\n\t\t\t'numberOfTicks'\n\t\t);\n\t\tconst ticksValues = this.xScale\n\t\t\t.ticks(ticksNumber)\n\t\t\t.map((d) => d * width);\n\n\t\tconst xGridG = DOMUtils.appendOrSelect(this.backdrop, 'g.x.skeleton');\n\t\tconst update = xGridG.selectAll('line').data(ticksValues);\n\t\tupdate\n\t\t\t.enter()\n\t\t\t.append('line')\n\t\t\t.merge(update)\n\t\t\t.attr('x1', (d) => d)\n\t\t\t.attr('x2', (d) => d)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', '100%');\n\n\t\txGridG\n\t\t\t.selectAll('line')\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tdrawYGrid(showShimmerEffect: boolean) {\n\t\tconst height = this.backdrop.attr('height');\n\t\tconst width = this.backdrop.attr('width');\n\t\tconst ticksNumber = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'grid',\n\t\t\t'y',\n\t\t\t'numberOfTicks'\n\t\t);\n\t\tconst ticksValues = this.xScale\n\t\t\t.ticks(ticksNumber)\n\t\t\t.map((d) => d * height);\n\n\t\tconst yGridG = DOMUtils.appendOrSelect(this.backdrop, 'g.y.skeleton');\n\t\tconst update = yGridG.selectAll('line').data(ticksValues);\n\t\tupdate\n\t\t\t.enter()\n\t\t\t.append('line')\n\t\t\t.merge(update)\n\t\t\t.attr('x1', 0)\n\t\t\t.attr('x2', width)\n\t\t\t.attr('y1', (d) => d)\n\t\t\t.attr('y2', (d) => d);\n\n\t\tyGridG\n\t\t\t.selectAll('line')\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tdrawRing(outerRadius: number, innerRadius: number, shimmer = true) {\n\t\tconst svg = this.parent;\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst container = DOMUtils.appendOrSelect(svg, 'svg.chart-skeleton')\n\t\t\t.attr('width', width)\n\t\t\t.attr('height', height);\n\n\t\tconst optionName = innerRadius === 0 ? 'pie' : 'donut';\n\n\t\tconst alignment = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\toptionName,\n\t\t\t'alignment'\n\t\t);\n\n\t\tDOMUtils.appendOrSelect(container, 'rect.chart-skeleton-area-container')\n\t\t\t.attr('width', width)\n\t\t\t.attr('height', height)\n\t\t\t.attr('fill', 'none');\n\n\t\tconst arcPathGenerator = arc()\n\t\t\t.innerRadius(innerRadius)\n\t\t\t.outerRadius(outerRadius)\n\t\t\t.startAngle(0)\n\t\t\t.endAngle(Math.PI * 2);\n\n\t\t// centering circle inside the container\n\t\tconst tcx = outerRadius + Math.abs(Configuration.pie.radiusOffset);\n\t\tconst tcy =\n\t\t\touterRadius + (Math.min(width, height) - outerRadius * 2) / 2;\n\n\t\tconst skeletonAreaShape = DOMUtils.appendOrSelect(container, 'path')\n\t\t\t.attr('class', 'skeleton-area-shape')\n\t\t\t.attr('transform', `translate(${tcx}, ${tcy})`)\n\t\t\t.attr('d', arcPathGenerator)\n\t\t\t.classed('shimmer-effect-areas', shimmer)\n\t\t\t.classed('empty-state-areas', !shimmer);\n\n\t\t// Position skeleton\n\t\tlet translateX = outerRadius + Configuration.pie.xOffset;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\ttranslateX = width / 2;\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\ttranslateX = width - outerRadius - Configuration.pie.xOffset;\n\t\t}\n\n\t\tconst translateY = outerRadius + Configuration.pie.yOffset;\n\t\tskeletonAreaShape.attr(\n\t\t\t'transform',\n\t\t\t`translate(${translateX}, ${translateY})`\n\t\t);\n\t}\n\n\t// same logic in pie\n\tcomputeOuterRadius() {\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(\n\t\t\tthis.parent,\n\t\t\t{ useAttrs: true }\n\t\t);\n\t\tconst radius = Math.min(width, height) / 2;\n\t\treturn radius + Configuration.pie.radiusOffset;\n\t}\n\n\t// same logic in donut\n\tcomputeInnerRadius() {\n\t\treturn this.computeOuterRadius() * (3 / 4);\n\t}\n\n\tsetShimmerEffect(gradientId: string) {\n\t\tconst animationDuration = 2000; // ms\n\t\tconst delay = 1000; // ms\n\t\tconst shimmerWidth = 0.2;\n\t\tconst stopBgShimmerClass = 'stop-bg-shimmer';\n\t\tconst stopShimmerClass = 'stop-shimmer';\n\t\tconst container = this.parent.select('.chart-skeleton');\n\t\tconst { width } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst startPoint = 0;\n\t\tconst endPoint = width;\n\n\t\t// append the defs as first child of container\n\t\tconst defs = DOMUtils.appendOrSelect(container, 'defs').lower();\n\t\tconst linearGradient = DOMUtils.appendOrSelect(defs, 'linearGradient')\n\t\t\t.attr('id', gradientId)\n\t\t\t.attr('x1', startPoint - 3 * shimmerWidth * width)\n\t\t\t.attr('x2', endPoint)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', 0)\n\t\t\t.attr('gradientUnits', 'userSpaceOnUse')\n\t\t\t.attr('gradientTransform', `translate(0, 0)`);\n\t\tconst stops = `\n\t\t\t<stop class=\"${stopBgShimmerClass}\" offset=\"${startPoint}\"></stop>\n\t\t\t<stop class=\"${stopShimmerClass}\" offset=\"${startPoint + shimmerWidth}\"></stop>\n\t\t\t<stop class=\"${stopBgShimmerClass}\" offset=\"${\n\t\t\tstartPoint + 2 * shimmerWidth\n\t\t}\"></stop>\n\t\t`;\n\t\tlinearGradient.html(stops);\n\n\t\trepeat();\n\t\tfunction repeat() {\n\t\t\tlinearGradient\n\t\t\t\t.attr(\n\t\t\t\t\t'gradientTransform',\n\t\t\t\t\t`translate(${startPoint - 3 * shimmerWidth * width}, 0)`\n\t\t\t\t)\n\t\t\t\t.transition()\n\t\t\t\t.duration(animationDuration)\n\t\t\t\t.delay(delay)\n\t\t\t\t.ease(easeLinear)\n\t\t\t\t.attr(\n\t\t\t\t\t'gradientTransform',\n\t\t\t\t\t`translate(${endPoint + 3 * shimmerWidth * width}, 0)`\n\t\t\t\t)\n\t\t\t\t.on('end', repeat);\n\t\t}\n\t}\n\n\tremoveSkeleton() {\n\t\tconst container = this.parent.select('.chart-skeleton');\n\t\tcontainer.remove();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["skeleton.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tSkeletons,\n\tCartesianOrientations,\n\tAlignments,\n} from '../../interfaces/enums';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { scaleLinear } from 'd3-scale';\nimport { easeLinear } from 'd3-ease';\nimport { arc } from 'd3-shape';\n\nexport class Skeleton extends Component {\n\ttype = 'skeleton';\n\txScale: any;\n\tyScale: any;\n\tbackdrop: any;\n\n\trender() {\n\t\tconst isDataLoading = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'data',\n\t\t\t'loading'\n\t\t);\n\n\t\t// display a skeleton if there is no chart data or the loading flag is set to true\n\t\tif (isDataLoading) {\n\t\t\tthis.renderSkeleton(isDataLoading);\n\t\t} else {\n\t\t\tthis.removeSkeleton();\n\t\t}\n\t}\n\n\trenderSkeleton(showShimmerEffect: boolean) {\n\t\tif (this.configs.skeleton === Skeletons.GRID) {\n\t\t\tthis.renderGridSkeleton(showShimmerEffect);\n\t\t} else if (this.configs.skeleton === Skeletons.VERT_OR_HORIZ) {\n\t\t\tthis.renderVertOrHorizSkeleton(showShimmerEffect);\n\t\t} else if (this.configs.skeleton === Skeletons.PIE) {\n\t\t\tthis.renderPieSkeleton(showShimmerEffect);\n\t\t} else if (this.configs.skeleton === Skeletons.DONUT) {\n\t\t\tthis.renderDonutSkeleton(showShimmerEffect);\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`\"${this.configs.skeleton}\" is not a valid Skeleton type.`\n\t\t\t);\n\t\t}\n\t}\n\n\trenderGridSkeleton(showShimmerEffect: boolean) {\n\t\tthis.setScales();\n\t\tthis.drawBackdrop(showShimmerEffect);\n\t\tthis.drawXGrid(showShimmerEffect);\n\t\tthis.drawYGrid(showShimmerEffect);\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-lines');\n\t\t}\n\t}\n\n\trenderVertOrHorizSkeleton(showShimmerEffect: boolean) {\n\t\tconst orientation = this.services.cartesianScales.getOrientation();\n\t\tthis.setScales();\n\t\tthis.drawBackdrop(showShimmerEffect);\n\t\tif (orientation === CartesianOrientations.VERTICAL) {\n\t\t\tthis.drawYGrid(showShimmerEffect);\n\t\t}\n\t\tif (orientation === CartesianOrientations.HORIZONTAL) {\n\t\t\tthis.drawXGrid(showShimmerEffect);\n\t\t}\n\t\tthis.setShimmerEffect('shimmer-lines');\n\t}\n\n\trenderPieSkeleton(showShimmerEffect: boolean) {\n\t\tconst outerRadius = this.computeOuterRadius();\n\t\tconst innerRadius = 0;\n\t\tthis.drawRing(outerRadius, innerRadius, showShimmerEffect);\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-areas');\n\t\t}\n\t}\n\n\trenderDonutSkeleton(showShimmerEffect: boolean) {\n\t\tconst outerRadius = this.computeOuterRadius();\n\t\tconst innerRadius = this.computeInnerRadius();\n\t\tthis.drawRing(outerRadius, innerRadius, showShimmerEffect);\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-areas');\n\t\t}\n\t}\n\n\tsetScales() {\n\t\tconst xRange = this.services.cartesianScales.getMainXScale().range();\n\t\tconst yRange = this.services.cartesianScales.getMainYScale().range();\n\t\tthis.xScale = scaleLinear().domain([0, 1]).range(xRange);\n\t\tthis.yScale = scaleLinear().domain([0, 1]).range(yRange);\n\t}\n\n\tdrawBackdrop(showShimmerEffect: boolean) {\n\t\tconst svg = this.parent;\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tthis.backdrop = DOMUtils.appendOrSelect(svg, 'svg.chart-skeleton.DAII')\n\t\t\t.attr('width', width)\n\t\t\t.attr('height', height);\n\n\t\tconst backdropRect = DOMUtils.appendOrSelect(\n\t\t\tthis.backdrop,\n\t\t\t'rect.chart-skeleton-backdrop'\n\t\t);\n\t\tbackdropRect.attr('width', '100%').attr('height', '100%');\n\n\t\tconst [xScaleStart, xScaleEnd] = this.xScale.range();\n\t\tconst [yScaleEnd, yScaleStart] = this.yScale.range();\n\n\t\tthis.backdrop\n\t\t\t.merge(backdropRect)\n\t\t\t.attr('x', xScaleStart)\n\t\t\t.attr('y', yScaleStart);\n\n\t\tbackdropRect\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tdrawXGrid(showShimmerEffect: boolean) {\n\t\tconst width = this.backdrop.attr('width');\n\t\tconst ticksNumber = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'grid',\n\t\t\t'x',\n\t\t\t'numberOfTicks'\n\t\t);\n\t\tconst ticksValues = this.xScale\n\t\t\t.ticks(ticksNumber)\n\t\t\t.map((d) => d * width);\n\n\t\tconst xGridG = DOMUtils.appendOrSelect(this.backdrop, 'g.x.skeleton');\n\t\tconst update = xGridG.selectAll('line').data(ticksValues);\n\t\tupdate\n\t\t\t.enter()\n\t\t\t.append('line')\n\t\t\t.merge(update)\n\t\t\t.attr('x1', (d) => d)\n\t\t\t.attr('x2', (d) => d)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', '100%');\n\n\t\txGridG\n\t\t\t.selectAll('line')\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tdrawYGrid(showShimmerEffect: boolean) {\n\t\tconst height = this.backdrop.attr('height');\n\t\tconst width = this.backdrop.attr('width');\n\t\tconst ticksNumber = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'grid',\n\t\t\t'y',\n\t\t\t'numberOfTicks'\n\t\t);\n\t\tconst ticksValues = this.xScale\n\t\t\t.ticks(ticksNumber)\n\t\t\t.map((d) => d * height);\n\n\t\tconst yGridG = DOMUtils.appendOrSelect(this.backdrop, 'g.y.skeleton');\n\t\tconst update = yGridG.selectAll('line').data(ticksValues);\n\t\tupdate\n\t\t\t.enter()\n\t\t\t.append('line')\n\t\t\t.merge(update)\n\t\t\t.attr('x1', 0)\n\t\t\t.attr('x2', width)\n\t\t\t.attr('y1', (d) => d)\n\t\t\t.attr('y2', (d) => d);\n\n\t\tyGridG\n\t\t\t.selectAll('line')\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tdrawRing(outerRadius: number, innerRadius: number, shimmer = true) {\n\t\tconst svg = this.parent;\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst container = DOMUtils.appendOrSelect(svg, 'svg.chart-skeleton')\n\t\t\t.attr('width', width)\n\t\t\t.attr('height', height);\n\n\t\tconst optionName = innerRadius === 0 ? 'pie' : 'donut';\n\n\t\tconst alignment = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\toptionName,\n\t\t\t'alignment'\n\t\t);\n\n\t\tDOMUtils.appendOrSelect(container, 'rect.chart-skeleton-area-container')\n\t\t\t.attr('width', width)\n\t\t\t.attr('height', height)\n\t\t\t.attr('fill', 'none');\n\n\t\tconst arcPathGenerator = arc()\n\t\t\t.innerRadius(innerRadius)\n\t\t\t.outerRadius(outerRadius)\n\t\t\t.startAngle(0)\n\t\t\t.endAngle(Math.PI * 2);\n\n\t\t// centering circle inside the container\n\t\tconst tcx = outerRadius + Math.abs(Configuration.pie.radiusOffset);\n\t\tconst tcy =\n\t\t\touterRadius + (Math.min(width, height) - outerRadius * 2) / 2;\n\n\t\tconst skeletonAreaShape = DOMUtils.appendOrSelect(container, 'path')\n\t\t\t.attr('class', 'skeleton-area-shape')\n\t\t\t.attr('transform', `translate(${tcx}, ${tcy})`)\n\t\t\t.attr('d', arcPathGenerator)\n\t\t\t.classed('shimmer-effect-areas', shimmer)\n\t\t\t.classed('empty-state-areas', !shimmer);\n\n\t\t// Position skeleton\n\t\tlet translateX = outerRadius + Configuration.pie.xOffset;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\ttranslateX = width / 2;\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\ttranslateX = width - outerRadius - Configuration.pie.xOffset;\n\t\t}\n\n\t\tconst translateY = outerRadius + Configuration.pie.yOffset;\n\t\tskeletonAreaShape.attr(\n\t\t\t'transform',\n\t\t\t`translate(${translateX}, ${translateY})`\n\t\t);\n\t}\n\n\t// same logic in pie\n\tcomputeOuterRadius() {\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst radius = Math.min(width, height) / 2;\n\t\treturn radius + Configuration.pie.radiusOffset;\n\t}\n\n\t// same logic in donut\n\tcomputeInnerRadius() {\n\t\treturn this.computeOuterRadius() * (3 / 4);\n\t}\n\n\tsetShimmerEffect(gradientId: string) {\n\t\tconst animationDuration = 2000; // ms\n\t\tconst delay = 1000; // ms\n\t\tconst shimmerWidth = 0.2;\n\t\tconst stopBgShimmerClass = 'stop-bg-shimmer';\n\t\tconst stopShimmerClass = 'stop-shimmer';\n\t\tconst container = this.parent.select('.chart-skeleton');\n\t\tconst { width } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst startPoint = 0;\n\t\tconst endPoint = width;\n\n\t\t// append the defs as first child of container\n\t\tconst defs = DOMUtils.appendOrSelect(container, 'defs').lower();\n\t\tconst linearGradient = DOMUtils.appendOrSelect(defs, 'linearGradient')\n\t\t\t.attr('id', gradientId)\n\t\t\t.attr('x1', startPoint - 3 * shimmerWidth * width)\n\t\t\t.attr('x2', endPoint)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', 0)\n\t\t\t.attr('gradientUnits', 'userSpaceOnUse')\n\t\t\t.attr('gradientTransform', `translate(0, 0)`);\n\t\tconst stops = `\n\t\t\t<stop class=\"${stopBgShimmerClass}\" offset=\"${startPoint}\"></stop>\n\t\t\t<stop class=\"${stopShimmerClass}\" offset=\"${startPoint + shimmerWidth}\"></stop>\n\t\t\t<stop class=\"${stopBgShimmerClass}\" offset=\"${\n\t\t\tstartPoint + 2 * shimmerWidth\n\t\t}\"></stop>\n\t\t`;\n\t\tlinearGradient.html(stops);\n\n\t\trepeat();\n\t\tfunction repeat() {\n\t\t\tlinearGradient\n\t\t\t\t.attr(\n\t\t\t\t\t'gradientTransform',\n\t\t\t\t\t`translate(${startPoint - 3 * shimmerWidth * width}, 0)`\n\t\t\t\t)\n\t\t\t\t.transition()\n\t\t\t\t.duration(animationDuration)\n\t\t\t\t.delay(delay)\n\t\t\t\t.ease(easeLinear)\n\t\t\t\t.attr(\n\t\t\t\t\t'gradientTransform',\n\t\t\t\t\t`translate(${endPoint + 3 * shimmerWidth * width}, 0)`\n\t\t\t\t)\n\t\t\t\t.on('end', repeat);\n\t\t}\n\t}\n\n\tremoveSkeleton() {\n\t\tconst container = this.parent.select('.chart-skeleton');\n\t\tcontainer.remove();\n\t}\n}\n"]}
|
package/components/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './essentials/title';
|
|
|
6
6
|
export * from './essentials/title-meter';
|
|
7
7
|
export * from './essentials/tooltip';
|
|
8
8
|
export * from './essentials/tooltip-axis';
|
|
9
|
+
export * from "./essentials/tooltip-histogram";
|
|
9
10
|
export * from './essentials/canvas-chart-clip';
|
|
10
11
|
export * from './graphs/area';
|
|
11
12
|
export * from './graphs/area-stacked';
|
|
@@ -15,6 +16,7 @@ export * from './graphs/bar-stacked';
|
|
|
15
16
|
export * from './graphs/boxplot';
|
|
16
17
|
export * from './graphs/bubble';
|
|
17
18
|
export * from './graphs/bullet';
|
|
19
|
+
export * from './graphs/histogram';
|
|
18
20
|
export * from './graphs/line';
|
|
19
21
|
export * from './graphs/lollipop';
|
|
20
22
|
export * from './graphs/scatter';
|
|
@@ -36,6 +38,7 @@ export * from './axes/grid-brush';
|
|
|
36
38
|
export * from './axes/chart-clip';
|
|
37
39
|
export * from './axes/grid';
|
|
38
40
|
export * from './axes/ruler';
|
|
41
|
+
export * from './axes/ruler-binned';
|
|
39
42
|
export * from './axes/ruler-stacked';
|
|
40
43
|
export * from './axes/toolbar';
|
|
41
44
|
export * from './axes/zero-line';
|
package/components/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export * from './essentials/title';
|
|
|
7
7
|
export * from './essentials/title-meter';
|
|
8
8
|
export * from './essentials/tooltip';
|
|
9
9
|
export * from './essentials/tooltip-axis';
|
|
10
|
+
export * from "./essentials/tooltip-histogram";
|
|
10
11
|
export * from './essentials/canvas-chart-clip';
|
|
11
12
|
// GRAPHS
|
|
12
13
|
export * from './graphs/area';
|
|
@@ -17,6 +18,7 @@ export * from './graphs/bar-stacked';
|
|
|
17
18
|
export * from './graphs/boxplot';
|
|
18
19
|
export * from './graphs/bubble';
|
|
19
20
|
export * from './graphs/bullet';
|
|
21
|
+
export * from './graphs/histogram';
|
|
20
22
|
export * from './graphs/line';
|
|
21
23
|
export * from './graphs/lollipop';
|
|
22
24
|
export * from './graphs/scatter';
|
|
@@ -40,6 +42,7 @@ export * from './axes/grid-brush';
|
|
|
40
42
|
export * from './axes/chart-clip';
|
|
41
43
|
export * from './axes/grid';
|
|
42
44
|
export * from './axes/ruler';
|
|
45
|
+
export * from './axes/ruler-binned';
|
|
43
46
|
export * from './axes/ruler-stacked';
|
|
44
47
|
export * from './axes/toolbar';
|
|
45
48
|
export * from './axes/zero-line';
|
package/components/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,aAAa;AACb,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAE/C,SAAS;AACT,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AAEnC,SAAS;AACT,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,OAAO;AACP,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,WAAW;AACX,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC","sourcesContent":["export * from './component';\n\n// ESSENTIALS\nexport * from './essentials/legend';\nexport * from './essentials/modal';\nexport * from './essentials/threshold';\nexport * from './essentials/title';\nexport * from './essentials/title-meter';\nexport * from './essentials/tooltip';\nexport * from './essentials/tooltip-axis';\nexport * from './essentials/canvas-chart-clip';\n\n// GRAPHS\nexport * from './graphs/area';\nexport * from './graphs/area-stacked';\nexport * from './graphs/bar-simple';\nexport * from './graphs/bar-grouped';\nexport * from './graphs/bar-stacked';\nexport * from './graphs/boxplot';\nexport * from './graphs/bubble';\nexport * from './graphs/bullet';\nexport * from './graphs/line';\nexport * from './graphs/lollipop';\nexport * from './graphs/scatter';\nexport * from './graphs/scatter-stacked';\nexport * from './graphs/pie';\nexport * from './graphs/gauge';\nexport * from './graphs/donut';\nexport * from './graphs/skeleton';\nexport * from './graphs/skeleton-lines';\nexport * from './graphs/treemap';\nexport * from './graphs/radar';\nexport * from './graphs/circle-pack';\nexport * from './graphs/wordcloud';\n\n// Layout\nexport * from './layout/spacer';\nexport * from './layout/layout';\n\n// MISC\nexport * from './axes/two-dimensional-axes';\nexport * from './axes/axis';\nexport * from './axes/grid-brush';\nexport * from './axes/chart-clip';\nexport * from './axes/grid';\nexport * from './axes/ruler';\nexport * from './axes/ruler-stacked';\nexport * from './axes/toolbar';\nexport * from './axes/zero-line';\nexport * from './axes/zoom-bar';\n\n// Diagrams\nexport * from './diagrams/buildPaths';\nexport * from './diagrams/markerDefinitions';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,aAAa;AACb,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAE/C,SAAS;AACT,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AAEnC,SAAS;AACT,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,OAAO;AACP,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,WAAW;AACX,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC","sourcesContent":["export * from './component';\n\n// ESSENTIALS\nexport * from './essentials/legend';\nexport * from './essentials/modal';\nexport * from './essentials/threshold';\nexport * from './essentials/title';\nexport * from './essentials/title-meter';\nexport * from './essentials/tooltip';\nexport * from './essentials/tooltip-axis';\nexport * from \"./essentials/tooltip-histogram\";\nexport * from './essentials/canvas-chart-clip';\n\n// GRAPHS\nexport * from './graphs/area';\nexport * from './graphs/area-stacked';\nexport * from './graphs/bar-simple';\nexport * from './graphs/bar-grouped';\nexport * from './graphs/bar-stacked';\nexport * from './graphs/boxplot';\nexport * from './graphs/bubble';\nexport * from './graphs/bullet';\nexport * from './graphs/histogram';\nexport * from './graphs/line';\nexport * from './graphs/lollipop';\nexport * from './graphs/scatter';\nexport * from './graphs/scatter-stacked';\nexport * from './graphs/pie';\nexport * from './graphs/gauge';\nexport * from './graphs/donut';\nexport * from './graphs/skeleton';\nexport * from './graphs/skeleton-lines';\nexport * from './graphs/treemap';\nexport * from './graphs/radar';\nexport * from './graphs/circle-pack';\nexport * from './graphs/wordcloud';\n\n// Layout\nexport * from './layout/spacer';\nexport * from './layout/layout';\n\n// MISC\nexport * from './axes/two-dimensional-axes';\nexport * from './axes/axis';\nexport * from './axes/grid-brush';\nexport * from './axes/chart-clip';\nexport * from './axes/grid';\nexport * from './axes/ruler';\nexport * from './axes/ruler-binned';\nexport * from './axes/ruler-stacked';\nexport * from './axes/toolbar';\nexport * from './axes/zero-line';\nexport * from './axes/zoom-bar';\n\n// Diagrams\nexport * from './diagrams/buildPaths';\nexport * from './diagrams/markerDefinitions';\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '../component';
|
|
2
2
|
import { LayoutComponentChild, LayoutConfigs } from '../../interfaces/index';
|
|
3
|
-
import { ChartModel } from '../../model';
|
|
3
|
+
import { ChartModel } from '../../model/model';
|
|
4
4
|
export declare class LayoutComponent extends Component {
|
|
5
5
|
static instanceID: number;
|
|
6
6
|
type: string;
|