@carbon/charts 1.6.9 → 1.6.14
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 +43 -0
- package/axis-chart.js +1 -1
- package/axis-chart.js.map +1 -1
- package/build/src/components/essentials/tooltip.d.ts +1 -1
- package/build/src/services/scales-cartesian.d.ts +1 -1
- package/build/src/tools.d.ts +2420 -151
- package/bundle.js +1 -1
- package/chart.js +1 -1
- package/chart.js.map +1 -1
- package/charts/alluvial.js +1 -1
- package/charts/alluvial.js.map +1 -1
- package/charts/area-stacked.js +1 -1
- package/charts/area-stacked.js.map +1 -1
- package/charts/area.js +1 -1
- package/charts/area.js.map +1 -1
- package/charts/bar-grouped.js +1 -1
- package/charts/bar-grouped.js.map +1 -1
- package/charts/bar-simple.js +1 -1
- package/charts/bar-simple.js.map +1 -1
- package/charts/bar-stacked.js +1 -1
- package/charts/bar-stacked.js.map +1 -1
- package/charts/boxplot.js +1 -1
- package/charts/boxplot.js.map +1 -1
- package/charts/bubble.js +1 -1
- package/charts/bubble.js.map +1 -1
- package/charts/bullet.js +1 -1
- package/charts/bullet.js.map +1 -1
- package/charts/circle-pack.js +1 -1
- package/charts/circle-pack.js.map +1 -1
- package/charts/combo.js +1 -1
- package/charts/combo.js.map +1 -1
- package/charts/donut.js +1 -1
- package/charts/donut.js.map +1 -1
- package/charts/gauge.js +1 -1
- package/charts/gauge.js.map +1 -1
- package/charts/heatmap.js +1 -1
- package/charts/heatmap.js.map +1 -1
- package/charts/histogram.js +1 -1
- package/charts/histogram.js.map +1 -1
- package/charts/line.js +1 -1
- package/charts/line.js.map +1 -1
- package/charts/lollipop.js +1 -1
- package/charts/lollipop.js.map +1 -1
- package/charts/meter.js +1 -1
- package/charts/meter.js.map +1 -1
- package/charts/pie.js +1 -1
- package/charts/pie.js.map +1 -1
- package/charts/radar.js +1 -1
- package/charts/radar.js.map +1 -1
- package/charts/scatter.js +1 -1
- package/charts/scatter.js.map +1 -1
- package/charts/tree.js +1 -1
- package/charts/tree.js.map +1 -1
- package/charts/treemap.js +1 -1
- package/charts/treemap.js.map +1 -1
- package/charts/wordcloud.js +1 -1
- package/charts/wordcloud.js.map +1 -1
- package/components/axes/axis.js +3 -3
- package/components/axes/axis.js.map +1 -1
- package/components/axes/grid.js +1 -1
- package/components/axes/grid.js.map +1 -1
- package/components/axes/hover-axis.js +1 -1
- package/components/axes/hover-axis.js.map +1 -1
- package/components/axes/ruler-binned.js +1 -1
- package/components/axes/ruler-binned.js.map +1 -1
- package/components/axes/ruler.js +1 -1
- package/components/axes/ruler.js.map +1 -1
- package/components/axes/toolbar.js +1 -1
- package/components/axes/toolbar.js.map +1 -1
- package/components/axes/two-dimensional-axes.js +1 -1
- package/components/axes/two-dimensional-axes.js.map +1 -1
- package/components/axes/zero-line.js +1 -1
- package/components/axes/zero-line.js.map +1 -1
- package/components/axes/zoom-bar.js +1 -1
- package/components/axes/zoom-bar.js.map +1 -1
- package/components/component.js +1 -1
- package/components/component.js.map +1 -1
- package/components/essentials/color-scale-legend.js +1 -1
- package/components/essentials/color-scale-legend.js.map +1 -1
- package/components/essentials/highlights.js +1 -1
- package/components/essentials/highlights.js.map +1 -1
- package/components/essentials/legend.js +1 -1
- package/components/essentials/legend.js.map +1 -1
- package/components/essentials/modal.js +1 -1
- package/components/essentials/modal.js.map +1 -1
- package/components/essentials/threshold.js +1 -1
- package/components/essentials/threshold.js.map +1 -1
- package/components/essentials/title-meter.js +1 -1
- package/components/essentials/title-meter.js.map +1 -1
- package/components/essentials/title.js +1 -1
- package/components/essentials/title.js.map +1 -1
- package/components/essentials/tooltip-axis.js +1 -1
- package/components/essentials/tooltip-axis.js.map +1 -1
- package/components/essentials/tooltip.d.ts +1 -1
- package/components/essentials/tooltip.js +33 -27
- package/components/essentials/tooltip.js.map +1 -1
- package/components/graphs/alluvial.js +1 -1
- package/components/graphs/alluvial.js.map +1 -1
- package/components/graphs/area-stacked.js +1 -1
- package/components/graphs/area-stacked.js.map +1 -1
- package/components/graphs/area.js +1 -1
- package/components/graphs/area.js.map +1 -1
- package/components/graphs/bar-grouped.js +1 -1
- package/components/graphs/bar-grouped.js.map +1 -1
- package/components/graphs/bar-simple.js +1 -1
- package/components/graphs/bar-simple.js.map +1 -1
- package/components/graphs/bar-stacked.js +1 -1
- package/components/graphs/bar-stacked.js.map +1 -1
- package/components/graphs/bar.js +1 -1
- package/components/graphs/bar.js.map +1 -1
- package/components/graphs/boxplot.js +1 -1
- package/components/graphs/boxplot.js.map +1 -1
- package/components/graphs/bubble.js +1 -1
- package/components/graphs/bubble.js.map +1 -1
- package/components/graphs/bullet.js +1 -1
- package/components/graphs/bullet.js.map +1 -1
- package/components/graphs/circle-pack.js +1 -1
- package/components/graphs/circle-pack.js.map +1 -1
- package/components/graphs/donut.js +1 -1
- package/components/graphs/donut.js.map +1 -1
- package/components/graphs/gauge.js +1 -1
- package/components/graphs/gauge.js.map +1 -1
- package/components/graphs/heatmap.js +1 -1
- package/components/graphs/heatmap.js.map +1 -1
- package/components/graphs/histogram.js +1 -1
- package/components/graphs/histogram.js.map +1 -1
- package/components/graphs/line.js +1 -1
- package/components/graphs/line.js.map +1 -1
- package/components/graphs/lollipop.js +1 -1
- package/components/graphs/lollipop.js.map +1 -1
- package/components/graphs/meter.js +1 -1
- package/components/graphs/meter.js.map +1 -1
- package/components/graphs/pie.js +1 -1
- package/components/graphs/pie.js.map +1 -1
- package/components/graphs/radar.js +1 -1
- package/components/graphs/radar.js.map +1 -1
- package/components/graphs/scatter-stacked.js +1 -1
- package/components/graphs/scatter-stacked.js.map +1 -1
- package/components/graphs/scatter.js +1 -1
- package/components/graphs/scatter.js.map +1 -1
- package/components/graphs/skeleton-lines.js +1 -1
- package/components/graphs/skeleton-lines.js.map +1 -1
- package/components/graphs/skeleton.js +1 -1
- package/components/graphs/skeleton.js.map +1 -1
- package/components/graphs/tree.js +1 -1
- package/components/graphs/tree.js.map +1 -1
- package/components/graphs/treemap.js +1 -1
- package/components/graphs/treemap.js.map +1 -1
- package/components/graphs/wordcloud.js +1 -1
- package/components/graphs/wordcloud.js.map +1 -1
- package/components/layout/layout.js +1 -1
- package/components/layout/layout.js.map +1 -1
- package/configuration.js +1 -1
- package/configuration.js.map +1 -1
- package/demo/styles.css +1 -1
- package/demo/styles.css.map +1 -1
- package/demo/styles.min.css +1 -1
- package/demo/styles.min.css.map +1 -1
- package/model/boxplot.js +1 -1
- package/model/boxplot.js.map +1 -1
- package/model/bullet.js +1 -1
- package/model/bullet.js.map +1 -1
- package/model/cartesian-charts.js +1 -1
- package/model/cartesian-charts.js.map +1 -1
- package/model/circle-pack.js +1 -1
- package/model/circle-pack.js.map +1 -1
- package/model/heatmap.js +1 -1
- package/model/heatmap.js.map +1 -1
- package/model/meter.js +1 -1
- package/model/meter.js.map +1 -1
- package/model/model.js +1 -1
- package/model/model.js.map +1 -1
- package/model/radar.js +1 -1
- package/model/radar.js.map +1 -1
- package/model/treemap.js +1 -1
- package/model/treemap.js.map +1 -1
- package/package.json +1 -1
- package/services/essentials/dom-utils.js +1 -1
- package/services/essentials/dom-utils.js.map +1 -1
- package/services/essentials/transitions.js +1 -1
- package/services/essentials/transitions.js.map +1 -1
- package/services/scales-cartesian.js +1 -1
- package/services/scales-cartesian.js.map +1 -1
- package/services/time-series.js +1 -1
- package/services/time-series.js.map +1 -1
- package/services/zoom.js +1 -1
- package/services/zoom.js.map +1 -1
- package/styles/components/_tooltip.scss +4 -1
- package/styles.css +1 -1
- package/styles.css.map +1 -1
- package/styles.min.css +1 -1
- package/styles.min.css.map +1 -1
- package/tools.d.ts +141 -155
- package/tools.js +315 -344
- package/tools.js.map +1 -1
- package/tsconfig.tsbuildinfo +91 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scales-cartesian.js","sourceRoot":"","sources":["scales-cartesian.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,UAAU,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO;AACP,OAAO,EACN,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,UAAU,GACV,MAAM,UAAU,CAAC;AAElB;IAAqC,mCAAO;IAA5C;QAAA,qEAywBC;QAxwBU,gBAAU,GAAG;YACtB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;SACV,CAAC;QAEQ,YAAM,GAAG;YAClB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;SACV,CAAC;;IA4vBH,CAAC;IAjvBA,+CAAqB,GAArB,UAAsB,EAAqB;YAAnB,oCAAY,EAAZ,iCAAY;;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC3B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAChC,IAAA,sCAAW,CAAkB;YACrC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACpC,OAAO,EACP,MAAM,EACN,IAAI,CAAC,2BAA2B,CAChC,CAAC;YACF,IAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACnC,IACC,OAAA,WAAW,0CAAE,qBAAqB;gBAClC,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAClD;gBACD,OAAO,IAAI,CAAC,2BAA2B,CAAC;aACxC;SACD;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAED,8CAAoB,GAApB,UAAqB,EAAoC;YAApC,4BAAoC,EAAlC,aAAY,EAAZ,iCAAY,EAAE,cAAa,EAAb,kCAAa;;QACjD,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAChC,IAAA,sCAAW,CAAkB;YACrC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACpC,OAAO,EACP,MAAM,EACN,IAAI,CAAC,0BAA0B,CAC/B,CAAC;YACF,IAAI,OAAO,SAAA,CAAC;YACZ,IAAI,KAAK,KAAK,IAAI,EAAE;gBACnB,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;aAC7B;iBAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB;YACD,IACC,OAAA,WAAW,0CAAE,qBAAqB;gBAClC,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAClD;gBACD,OAAO,IAAI,CAAC,0BAA0B,CAAC;aACvC;SACD;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAED,wCAAc,GAAd,UAAe,QAAuB;QACrC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,8CAAoB,GAApB;QACC,IAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAChD,CAAC;IAED,6CAAmB,GAAnB;QACC,IAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,uCAAa,GAAb,UAAc,QAAuB;QACpC,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE;YACX,IACC,QAAQ,KAAK,aAAa,CAAC,MAAM;gBACjC,QAAQ,KAAK,aAAa,CAAC,GAAG,EAC7B;gBACD,OAAO,SAAS,CAAC;aACjB;YACD,OAAO,SAAS,CAAC;SACjB;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,wCAAc,GAAd;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,uCAAa,GAAb;QACC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,gCAAM,GAAN,UAAO,OAAc;QAArB,iBAUC;QAVM,wBAAA,EAAA,cAAc;QACpB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CACnD,UAAC,eAAe,IAAK,OAAA,aAAa,CAAC,eAAe,CAAC,EAA9B,CAA8B,CACnD,CAAC;QACF,aAAa,CAAC,OAAO,CAAC,UAAC,YAAY;YAClC,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gDAAsB,GAAtB;QACC,0DAA0D;QAC1D,IAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/D,IAAM,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnE,iFAAiF;QACjF,IAAM,2BAA2B,GAAG,IAAI,CAAC,+BAA+B,CACvE,qBAAqB,EACrB,uBAAuB,CACvB,CAAC;QAEF,IAAI,CAAC,kBAAkB;YACtB,2BAA2B,CAAC,yBAAyB,CAAC;QACvD,IAAI,CAAC,iBAAiB;YACrB,2BAA2B,CAAC,wBAAwB,CAAC;QAEtD,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,IAAI,CAAC,2BAA2B;gBAC/B,2BAA2B,CAAC,2BAA2B,CAAC;YACzD,IAAI,CAAC,0BAA0B;gBAC9B,2BAA2B,CAAC,0BAA0B,CAAC;SACxD;IACF,CAAC;IAED,8CAAoB,GAApB;QACC,IACC,CAAC,IAAI,CAAC,iBAAiB,KAAK,aAAa,CAAC,IAAI;YAC7C,IAAI,CAAC,iBAAiB,KAAK,aAAa,CAAC,KAAK,CAAC;YAChD,CAAC,IAAI,CAAC,kBAAkB,KAAK,aAAa,CAAC,MAAM;gBAChD,IAAI,CAAC,kBAAkB,KAAK,aAAa,CAAC,GAAG,CAAC,EAC9C;YACD,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC;SAClD;aAAM;YACN,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC;SACpD;IACF,CAAC;IAED,oCAAU,GAAV;QACC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,mGAAmG;IACnG,qHAAqH;IACrH,8CAAoB,GAApB;;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEvD,IACC,CAAC,OAAA,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,0CAAE,qBAAqB;YACtD,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,OAAA,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,0CAAE,qBAAqB;gBACvD,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,OAAA,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,0CAAE,qBAAqB;gBACrD,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC,OAAA,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,0CAAE,qBAAqB;gBACxD,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAC/B;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACrB;IACF,CAAC;IAED,yDAA+B,GAA/B,UAAgC,YAA2B;QAC1D,IAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EACvB,MAAM,EACN,YAAY,EACZ,QAAQ,CACR,CAAC;QAEF,8BAA8B;QAC9B,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CACd,eAAa,YAAY,+BAA4B,CACrD,CAAC;SACF;QAED,yEAAyE;QACzE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,IACC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,MAAM;gBACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC;gBACnD,MAAM,CAAC,MAAM,KAAK,CAAC,EAClB;gBACD,MAAM,IAAI,KAAK,CACd,4DAA0D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAG,CACzF,CAAC;aACF;SACD;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,wCAAc,GAAd;QACC,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,4CAAkB,GAAlB,UAAmB,YAA2B;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,gDAAsB,GAAtB,UAAuB,YAA2B;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,gDAAsB,GAAtB;QACC,IAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,+CAAqB,GAArB;QACC,IAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,wCAAc,GAAd;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,uCAAa,GAAb;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,+EAA+E;IAC/E,8CAAoB,GAApB;QACC,IAAM,sBAAsB,GAAG;YAC9B,aAAa,CAAC,MAAM;YACpB,aAAa,CAAC,GAAG;SACjB,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5D,UAAC,QAAQ,IAAK,OAAA,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAA7C,CAA6C,CAC3D,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,8CAAoB,GAApB;QACC,IAAM,sBAAsB,GAAG;YAC9B,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,KAAK;SACnB,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5D,UAAC,QAAQ,IAAK,OAAA,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAA7C,CAA6C,CAC3D,CAAC;IACH,CAAC;IAED,uCAAa,GAAb;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,uCAAa,GAAb;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,2CAAiB,GAAjB,UACC,KAAU,EACV,SAAqB,EACrB,YAA2B,EAC3B,KAAU,EACV,KAAc;QAEd,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,IAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,IAAA,2BAAM,CAAiB;QAC/B,IAAM,KAAK,GACV,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,IAAI,WAAW,CAAC;QAChB,QAAQ,SAAS,EAAE;YAClB,KAAK,UAAU,CAAC,MAAM;gBACrB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC9C,MAAM;YACP,KAAK,UAAU,CAAC,IAAI;gBACnB,WAAW,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,MAAM;YACP;gBACC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,gDAAsB,GAAtB,UAAuB,KAAU,EAAE,KAAc;QACxC,IAAA,uCAAM,CAA6B;QAC3C,IAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;QAC1D,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAExC,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,IAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,IAAA,2BAAM,CAAiB;QAC/B,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAElE,IAAM,aAAa,GAAG;YACrB,KAAK,CACJ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI;gBACzD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAChC,CAAC,CAAC,KAAK,CACR;YACD,KAAK,CACJ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI;gBACzD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAChC,CAAC,CAAC,KAAK,CACR;SACD,CAAC;QAEF,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,qDAA2B,GAA3B,UACC,YAA2B,EAC3B,KAAU,EACV,KAAc;QAEd,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,iBAAiB,CAC5B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,KAAK,CACL,CAAC;IACH,CAAC;IAED,wCAAc,GAAd,UAAe,CAAC,EAAE,CAAC;QAClB,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,uCAAa,GAAb,UAAc,CAAC,EAAE,CAAC;QACjB,IAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,2CAAiB,GAAjB;QACC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,2CAAiB,GAAjB;QACC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,6CAAmB,GAAnB,UAAoB,KAAW;QAC9B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,WAAW,CACvB,OAAO,EACP,MAAM,EACN,IAAI,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAC5C,QAAQ,CACR,CAAC;IACH,CAAC;IAED,4CAAkB,GAAlB,UAAmB,KAAW;QAC7B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,WAAW,CACvB,OAAO,EACP,MAAM,EACN,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAC3C,QAAQ,CACR,CAAC;IACH,CAAC;IAED,uCAAa,GAAb,UAAc,YAA2B,EAAE,MAAW;QACrD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,WAAW,CAAC,SAAS,KAAK,UAAU,CAAC,IAAI,EAAE;YAC9C,IAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAC1C,OAAO,EACP,WAAW,EACX,iBAAiB,CACjB,CAAC;YACF,OAAO,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;SACzD;aAAM;YACN,OAAO,4BAA4B,CAClC,MAAM,EACN,aAAa,CAAC,IAAI,CAAC,YAAY,EAC/B,WAAW,CAAC,SAAS,CACrB,CAAC;SACF;IACF,CAAC;IAES,mDAAyB,GAAnC;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEnC,6CAA6C;QAC7C,IACC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI;YAC3D,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;YAC9D,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC1D,IAAI;YACL,CAAC,QAAQ;gBACR,KAAK,CAAC,WAAW,CAChB,WAAW,EACX,aAAa,CAAC,IAAI,EAClB,uBAAuB,CACvB,CAAC,EACF;YACD,OAAO;gBACN,OAAO,EAAE,aAAa,CAAC,KAAK;gBAC5B,SAAS,EAAE,aAAa,CAAC,IAAI;aAC7B,CAAC;SACF;QAED,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IAES,qDAA2B,GAArC;QACC,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEnC,2CAA2C;QAC3C,IACC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI;YAC7D,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;YAC5D,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC;gBACxD,IAAI;YACL,CAAC,QAAQ;gBACR,KAAK,CAAC,WAAW,CAChB,WAAW,EACX,aAAa,CAAC,MAAM,EACpB,uBAAuB,CACvB,CAAC,EACF;YACD,OAAO;gBACN,OAAO,EAAE,aAAa,CAAC,GAAG;gBAC1B,SAAS,EAAE,aAAa,CAAC,MAAM;aAC/B,CAAC;SACF;QAED,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;IACxE,CAAC;IAES,yDAA+B,GAAzC,UACC,qBAAqB,EACrB,uBAAuB;QAEvB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAExC,IAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAChD,OAAO,EACP,MAAM,EACN,qBAAqB,CAAC,OAAO,CAC7B,CAAC;QACF,IAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAClD,OAAO,EACP,MAAM,EACN,uBAAuB,CAAC,OAAO,CAC/B,CAAC;QAEF,IAAM,qBAAqB,GAC1B,uBAAuB,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC;QACxD,IAAM,uBAAuB,GAC5B,yBAAyB,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC;QAE1D,IAAM,MAAM,GAAG;YACd,yBAAyB,EAAE,IAAI;YAC/B,2BAA2B,EAAE,IAAI;YACjC,wBAAwB,EAAE,IAAI;YAC9B,0BAA0B,EAAE,IAAI;SAChC,CAAC;QAEF,8CAA8C;QAC9C,MAAM,CAAC,yBAAyB,GAAG,uBAAuB,CAAC,OAAO,CAAC;QACnE,MAAM,CAAC,wBAAwB,GAAG,qBAAqB,CAAC,OAAO,CAAC;QAChE,iBAAiB;QACjB,MAAM,CAAC,2BAA2B,GAAG,uBAAuB,CAAC,SAAS,CAAC;QACvE,MAAM,CAAC,0BAA0B,GAAG,qBAAqB,CAAC,SAAS,CAAC;QAEpE,mDAAmD;QACnD,6FAA6F;QAC7F,IACC,CAAC,CAAC,CACD,uBAAuB,KAAK,UAAU,CAAC,MAAM;YAC7C,uBAAuB,KAAK,UAAU,CAAC,IAAI,CAC3C;YACA,qBAAqB,KAAK,UAAU,CAAC,MAAM,CAAC;YAC7C,qBAAqB,KAAK,UAAU,CAAC,IAAI,EACxC;YACD,MAAM,CAAC,yBAAyB,GAAG,qBAAqB,CAAC,OAAO,CAAC;YACjE,MAAM,CAAC,wBAAwB,GAAG,uBAAuB,CAAC,OAAO,CAAC;YAClE,iBAAiB;YACjB,MAAM,CAAC,2BAA2B;gBACjC,qBAAqB,CAAC,SAAS,CAAC;YACjC,MAAM,CAAC,0BAA0B;gBAChC,uBAAuB,CAAC,SAAS,CAAC;SACnC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAES,wCAAc,GAAxB,UAAyB,YAA2B;QACnD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,IAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAA,qCAAW,CAAiB;QACpC,IAAM,SAAS,GACd,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC;QAElE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;SACV;QAED,IAAI,WAAW,CAAC,MAAM,EAAE;YACf,IAAA,6CAAI,CAAuC;YAEnD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC,CAAC;SACvC;aAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE;YACjC,IAAA,6CAAI,CAAuC;YACnD,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;YAEpD,OAAO;gBACN,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1B,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC7C,CAAC;SACF;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAE/C,IAAA,uDAAoB,EACpB,2BAAM,EACN,mCAAU,EACV,mCAAU,CACK;QACV,IAAA,6BAGsB,EAF3B,6BAAyB,EACzB,6BAC2B,CAAC;QAE7B,4CAA4C;QAC5C,IAAI,WAAW,CAAC,MAAM,EAAE;YACvB,IAAI,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE;gBACpC,OAAO,WAAW,CAAC,MAAM,CAAC;aAC1B;iBAAM,IAAI,SAAS,KAAK,UAAU,CAAC,IAAI,EAAE;gBACzC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;oBAC7C,OAAA,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAzC,CAAyC,CACzC,CAAC;aACF;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;SAC5D;QAED,4CAA4C;QAC5C,IAAI,UAAU,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAChB;QAED,+DAA+D;QAC/D,IAAI,WAAW,IAAI,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE;YACnD,oBAAoB;YACpB,OAAO,KAAK,CAAC,qBAAqB,CACjC,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,EAAT,CAAS,CAAC,CACjC,CAAC;SACF;QAED,+BAA+B;QAC/B,IAAI,MAAM,CAAC;QACX,IAAI,aAAa,CAAC;QAClB,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAEtD,IAAI,SAAS,KAAK,UAAU,CAAC,YAAY,EAAE;YAC1C,OAAO,WAAW,CAAC,GAAG,CACrB,UAAC,KAAK,IAAK,OAAG,KAAK,CAAC,cAAc,CAAC,SAAI,KAAK,CAAC,cAAc,CAAG,EAAnD,CAAmD,CAC9D,CAAC;SACF;aAAM,IAAI,SAAS,KAAK,UAAU,CAAC,IAAI,EAAE;YACzC,aAAa,GAAG,WAAW,CAAC,GAAG,CAC9B,UAAC,KAAK,IAAK,OAAA,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAxB,CAAwB,CACnC,CAAC;SACF;aAAM,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;YAClC,aAAa,GAAG,EAAE,CAAC;YAEnB,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;gBACzB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAElC,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;oBACnC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBACnD;gBACD,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;oBACnC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBACnD;YACF,CAAC,CAAC,CAAC;SACH;aAAM,IACN,WAAW,CAAC,OAAO,KAAK,IAAI;YAC5B,cAAc;YACd,YAAY,KAAK,IAAI,CAAC,oBAAoB,EAAE,EAC3C;YACO,IAAA,wCAAW,CAAkB;YACrC,IAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACpE;gBACC,MAAM,EAAE,cAAc;aACtB,CACD,CAAC;YACF,IAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAC9C,UAAC,KAAK,IAAK,OAAA,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAW,CAAC,CAAC,EAA5C,CAA4C,CACvD,CAAC;YAEF,IAAI,eAAa,GAAG,EAAE,CAAC;YACvB,uBAAuB,CAAC,OAAO,CAAC,UAAC,UAAU;gBAClC,IAAA,0CAAc,EAAE,wDAAkB,CAAgB;gBAE1D,IAAI,WAAW,GAAG,CAAC,EAClB,WAAW,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAC,KAAa;oBACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBAClB,IAAI,KAAK,GAAG,CAAC,EAAE;4BACd,WAAW,IAAI,KAAK,CAAC;yBACrB;6BAAM;4BACN,WAAW,IAAI,KAAK,CAAC;yBACrB;qBACD;gBACF,CAAC,CAAC,CAAC;gBACH,eAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YAEH,aAAa,kBACT,KAAK,CAAC,OAAO,CAAC,eAAa,CAAC,EAC5B,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,MAAM,CAAC,EAAb,CAAa,CAAC,CACrD,CAAC;SACF;aAAM;YACN,aAAa,GAAG,EAAE,CAAC;YAEnB,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;gBACzB,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7B;qBAAM;oBACN,IAAI,oBAAoB,EAAE;wBACzB,aAAa,CAAC,IAAI,CACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CACpD,CAAC;qBACF;oBACD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC1B;YACF,CAAC,CAAC,CAAC;SACH;QAED,qDAAqD;QACrD,IACC,SAAS,KAAK,UAAU,CAAC,IAAI;YAC7B,SAAS,KAAK,UAAU,CAAC,GAAG;YAC5B,WAAW,EACV;YACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACtB;QAED,sCAAsC;QACtC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS;gBAC5B,IAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,cAAc,KAAK,IAAI;oBAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;SACH;QAED,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,MAAM,CAAC;IACf,CAAC;IAES,qCAAW,GAArB,UAAsB,YAA2B;QAChD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAErE,IAAI,CAAC,WAAW,EAAE;YACjB,OAAO,IAAI,CAAC;SACZ;QAED,IAAM,SAAS,GACd,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QAE1C,IAAI,KAAK,CAAC;QACV,IAAI,SAAS,KAAK,UAAU,CAAC,IAAI,EAAE;YAClC,KAAK,GAAG,SAAS,EAAE,CAAC;SACpB;aAAM,IAAI,SAAS,KAAK,UAAU,CAAC,GAAG,EAAE;YACxC,KAAK,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SAChD;aAAM,IACN,SAAS,KAAK,UAAU,CAAC,MAAM;YAC/B,SAAS,KAAK,UAAU,CAAC,YAAY,EACpC;YACD,KAAK,GAAG,SAAS,EAAE,CAAC;SACpB;aAAM;YACN,KAAK,GAAG,WAAW,EAAE,CAAC;SACtB;QAED,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;QAEhD,OAAO,KAAK,CAAC;IACd,CAAC;IAES,mDAAyB,GAAnC;QAIC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACvE,IAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEhD,IAAA,uDAAU,CAAqC;QAEvD,2CAA2C;QAC3C,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAChD;YACD,OAAO,IAAI,CAAC;SACZ;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,4CAA4C;QAC5C,IAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CACvC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAC3B,CAAC,CAAC,CAAC,CAAC;QAEL,IAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAClE,IACC,SAAS,KAAK,UAAU,CAAC,IAAI;YAC7B,CAAC,OAAO,gBAAgB,CAAC,KAAK,KAAK,QAAQ;gBAC1C,gBAAgB,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,EAC7C;YACD,gBAAgB,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC1D;QAED,OAAO;YACN,SAAS,EAAE,gBAAgB;YAC3B,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;SAC/C,CAAC;IACH,CAAC;IAES,kDAAwB,GAAlC;QAIC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACvE,IAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE9C,IAAA,sDAAU,CAAoC;QAEtD,2CAA2C;QAC3C,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAChD;YACD,OAAO,IAAI,CAAC;SACZ;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,2CAA2C;QAC3C,IAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CACvC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAC3B,CAAC,CAAC,CAAC,CAAC;QAEL,OAAO;YACN,SAAS,EAAE,gBAAgB;YAC3B,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC;SAC9C,CAAC;IACH,CAAC;IACF,sBAAC;AAAD,CAAC,AAzwBD,CAAqC,OAAO,GAywB3C;;AAED,SAAS,sBAAsB,CAAC,MAAW,EAAE,iBAAyB;IACrE,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAM,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;QAC9C,OAAO;YACN,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;SACpC,CAAC;KACF;IAED,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;QAC/C,OAAO;YACN,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACvC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC;SACrC,CAAC;KACF;IAED,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;QAC7C,OAAO;YACN,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACrC,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC;SACnC,CAAC;KACF;IAED,IAAI,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;QAC9C,OAAO;YACN,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACtC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;SACpC,CAAC;KACF;IAED,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE;QACjD,OAAO;YACN,UAAU,CAAC,SAAS,EAAE,iBAAiB,GAAG,EAAE,CAAC;YAC7C,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,EAAE,CAAC;SAC3C,CAAC;KACF;IAED,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;QAChD,OAAO;YACN,UAAU,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACxC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC;SACtC,CAAC;KACF;IAED,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE;QACjD,OAAO;YACN,UAAU,CAAC,SAAS,EAAE,iBAAiB,GAAG,EAAE,CAAC;YAC7C,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,EAAE,CAAC;SAC3C,CAAC;KACF;IAED,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;QAChD,OAAO;YACN,UAAU,CAAC,SAAS,EAAE,iBAAiB,CAAC;YACxC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC;SACtC,CAAC;KACF;IAED,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,4BAA4B,CACpC,EAAwB,EACxB,YAAoB,EACpB,SAAsB;QAFrB,aAAK,EAAE,aAAK;IAIb,IAAM,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;IACnC,IAAM,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;IAE5C,kDAAkD;IAClD,IAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;IACzE,kDAAkD;IAClD,IAAI,QAAQ,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;IAEvE,kDAAkD;IAClD,IAAI,SAAS,KAAK,UAAU,CAAC,GAAG,IAAI,QAAQ,IAAI,CAAC,EAAE;QAClD,IAAI,KAAK,IAAI,CAAC,EAAE;YACf,MAAM,KAAK,CACV,iEAAiE,CACjE,CAAC;SACF;QACD,QAAQ,GAAG,KAAK,CAAC;KACjB;IAED,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["// Internal Imports\nimport * as Configuration from '../configuration';\nimport { Service } from './service';\nimport {\n\tAxisPositions,\n\tCartesianOrientations,\n\tScaleTypes,\n\tThresholdOptions,\n} from '../interfaces';\nimport { Tools } from '../tools';\n\n// D3 Imports\nimport { scaleBand, scaleLinear, scaleTime, scaleLog } from 'd3-scale';\nimport { extent, max } from 'd3-array';\n\n// Misc\nimport {\n\tdifferenceInYears,\n\taddYears,\n\tsubYears,\n\tdifferenceInMonths,\n\taddMonths,\n\tsubMonths,\n\tdifferenceInDays,\n\taddDays,\n\tsubDays,\n\tdifferenceInHours,\n\taddHours,\n\tsubHours,\n\tdifferenceInMinutes,\n\taddMinutes,\n\tsubMinutes,\n\tdifferenceInSeconds,\n\tsubSeconds,\n\taddSeconds,\n} from 'date-fns';\n\nexport class CartesianScales extends Service {\n\tprotected scaleTypes = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected scales = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected domainAxisPosition: AxisPositions;\n\tprotected rangeAxisPosition: AxisPositions;\n\tprotected secondaryDomainAxisPosition: AxisPositions;\n\tprotected secondaryRangeAxisPosition: AxisPositions;\n\n\tprotected dualAxes: Boolean;\n\n\tprotected orientation: CartesianOrientations;\n\n\tgetDomainAxisPosition({ datum = null } = {}) {\n\t\tif (this.dualAxes && datum) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axesOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryDomainAxisPosition\n\t\t\t);\n\t\t\tconst dataset = datum[groupMapsTo];\n\t\t\tif (\n\t\t\t\taxesOptions?.correspondingDatasets &&\n\t\t\t\taxesOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryDomainAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.domainAxisPosition;\n\t}\n\n\tgetRangeAxisPosition({ datum = null, groups = null } = {}) {\n\t\tif (this.dualAxes) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axisOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryRangeAxisPosition\n\t\t\t);\n\t\t\tlet dataset;\n\t\t\tif (datum !== null) {\n\t\t\t\tdataset = datum[groupMapsTo];\n\t\t\t} else if (groups && groups.length > 0) {\n\t\t\t\tdataset = groups[0];\n\t\t\t}\n\t\t\tif (\n\t\t\t\taxisOptions?.correspondingDatasets &&\n\t\t\t\taxisOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryRangeAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.rangeAxisPosition;\n\t}\n\n\tgetAxisOptions(position: AxisPositions) {\n\t\treturn Tools.getProperty(this.model.getOptions(), 'axes', position);\n\t}\n\n\tgetDomainAxisOptions() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getAxisOptions(domainAxisPosition);\n\t}\n\n\tgetRangeAxisOptions() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getAxisOptions(rangeAxisPosition);\n\t}\n\n\tgetScaleLabel(position: AxisPositions) {\n\t\tconst axisOptions = this.getAxisOptions(position);\n\t\tlet title = axisOptions.title;\n\t\tif (!title) {\n\t\t\tif (\n\t\t\t\tposition === AxisPositions.BOTTOM ||\n\t\t\t\tposition === AxisPositions.TOP\n\t\t\t) {\n\t\t\t\treturn 'x-value';\n\t\t\t}\n\t\t\treturn 'y-value';\n\t\t}\n\t\treturn title;\n\t}\n\n\tgetDomainLabel() {\n\t\treturn this.getScaleLabel(this.getDomainAxisPosition());\n\t}\n\n\tgetRangeLabel() {\n\t\treturn this.getScaleLabel(this.getRangeAxisPosition());\n\t}\n\n\tupdate(animate = true) {\n\t\tthis.determineAxisDuality();\n\t\tthis.findDomainAndRangeAxes();\n\t\tthis.determineOrientation();\n\t\tconst axisPositions = Object.keys(AxisPositions).map(\n\t\t\t(axisPositionKey) => AxisPositions[axisPositionKey]\n\t\t);\n\t\taxisPositions.forEach((axisPosition) => {\n\t\t\tthis.scales[axisPosition] = this.createScale(axisPosition);\n\t\t});\n\t}\n\n\tfindDomainAndRangeAxes() {\n\t\t// find main axes between (left & right) && (bottom & top)\n\t\tconst verticalAxesPositions = this.findVerticalAxesPositions();\n\t\tconst horizontalAxesPositions = this.findHorizontalAxesPositions();\n\n\t\t// Now we have horizontal & vertical main axes to choose domain & range axes from\n\t\tconst domainAndRangeAxesPositions = this.findDomainAndRangeAxesPositions(\n\t\t\tverticalAxesPositions,\n\t\t\thorizontalAxesPositions\n\t\t);\n\n\t\tthis.domainAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryDomainAxisPosition;\n\t\tthis.rangeAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryRangeAxisPosition;\n\n\t\tif (this.isDualAxes()) {\n\t\t\tthis.secondaryDomainAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryDomainAxisPosition;\n\t\t\tthis.secondaryRangeAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryRangeAxisPosition;\n\t\t}\n\t}\n\n\tdetermineOrientation() {\n\t\tif (\n\t\t\t(this.rangeAxisPosition === AxisPositions.LEFT ||\n\t\t\t\tthis.rangeAxisPosition === AxisPositions.RIGHT) &&\n\t\t\t(this.domainAxisPosition === AxisPositions.BOTTOM ||\n\t\t\t\tthis.domainAxisPosition === AxisPositions.TOP)\n\t\t) {\n\t\t\tthis.orientation = CartesianOrientations.VERTICAL;\n\t\t} else {\n\t\t\tthis.orientation = CartesianOrientations.HORIZONTAL;\n\t\t}\n\t}\n\n\tisDualAxes() {\n\t\treturn this.dualAxes;\n\t}\n\n\t// if any of the axes objects have correspondingDatasets [] asserted we flag the chart as dual axes\n\t// it does not count as dual axes if it just has another axis turned on but is not actually using it to map a dataset\n\tdetermineAxisDuality() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\n\t\tif (\n\t\t\t(axesOptions[AxisPositions.LEFT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.RIGHT]) ||\n\t\t\t(axesOptions[AxisPositions.RIGHT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.LEFT]) ||\n\t\t\t(axesOptions[AxisPositions.TOP]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.BOTTOM]) ||\n\t\t\t(axesOptions[AxisPositions.BOTTOM]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.TOP])\n\t\t) {\n\t\t\tthis.dualAxes = true;\n\t\t}\n\t}\n\n\tgetCustomDomainValuesByposition(axisPosition: AxisPositions) {\n\t\tconst domain = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'axes',\n\t\t\taxisPosition,\n\t\t\t'domain'\n\t\t);\n\n\t\t// Check if domain is an array\n\t\tif (domain && !Array.isArray(domain)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Domain in ${axisPosition} axis is not a valid array`\n\t\t\t);\n\t\t}\n\n\t\t// Determine number of elements passed in domain depending on scale types\n\t\tif (Array.isArray(domain)) {\n\t\t\tif (\n\t\t\t\t(this.scaleTypes[axisPosition] === ScaleTypes.LINEAR ||\n\t\t\t\t\tthis.scaleTypes[axisPosition] === ScaleTypes.TIME) &&\n\t\t\t\tdomain.length !== 2\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`There can only be 2 elements in domain for scale type: ${this.scaleTypes[axisPosition]}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn domain;\n\t}\n\n\tgetOrientation() {\n\t\treturn this.orientation;\n\t}\n\n\tgetScaleByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scales[axisPosition];\n\t}\n\n\tgetScaleTypeByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scaleTypes[axisPosition];\n\t}\n\n\tgetDomainAxisScaleType() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getScaleTypeByPosition(domainAxisPosition);\n\t}\n\n\tgetRangeAxisScaleType() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getScaleTypeByPosition(rangeAxisPosition);\n\t}\n\n\tgetDomainScale() {\n\t\treturn this.scales[this.domainAxisPosition];\n\t}\n\n\tgetRangeScale() {\n\t\treturn this.scales[this.rangeAxisPosition];\n\t}\n\n\t// Find the main x-axis out of the 2 x-axis on the chart (when 2D axis is used)\n\tgetMainXAxisPosition() {\n\t\tconst possibleXAxisPositions = [\n\t\t\tAxisPositions.BOTTOM,\n\t\t\tAxisPositions.TOP,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleXAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\t// Find the main y-axis out of the 2 y-axis on the chart (when 2D axis is used)\n\tgetMainYAxisPosition() {\n\t\tconst possibleYAxisPositions = [\n\t\t\tAxisPositions.LEFT,\n\t\t\tAxisPositions.RIGHT,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleYAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\tgetMainXScale() {\n\t\treturn this.scales[this.getMainXAxisPosition()];\n\t}\n\n\tgetMainYScale() {\n\t\treturn this.scales[this.getMainYAxisPosition()];\n\t}\n\n\tgetValueFromScale(\n\t\tscale: any,\n\t\tscaleType: ScaleTypes,\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[axisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value =\n\t\t\tTools.getProperty(datum, mapsTo) !== null ? datum[mapsTo] : datum;\n\t\tlet scaledValue;\n\t\tswitch (scaleType) {\n\t\t\tcase ScaleTypes.LABELS:\n\t\t\t\tscaledValue = scale(value) + scale.step() / 2;\n\t\t\t\tbreak;\n\t\t\tcase ScaleTypes.TIME:\n\t\t\t\tscaledValue = scale(new Date(value));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tscaledValue = scale(value);\n\t\t}\n\t\treturn scaledValue;\n\t}\n\n\tgetBoundedScaledValues(datum: any, index?: number) {\n\t\tconst { bounds } = this.model.getOptions();\n\t\tconst axisPosition = this.getRangeAxisPosition({ datum });\n\t\tconst scale = this.scales[axisPosition];\n\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[axisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value = datum[mapsTo] !== undefined ? datum[mapsTo] : datum;\n\n\t\tconst boundedValues = [\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.upperBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.upperBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.lowerBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.lowerBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t];\n\n\t\treturn boundedValues;\n\t}\n\n\tgetValueThroughAxisPosition(\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst scaleType = this.scaleTypes[axisPosition];\n\t\tconst scale = this.scales[axisPosition];\n\n\t\treturn this.getValueFromScale(\n\t\t\tscale,\n\t\t\tscaleType,\n\t\t\taxisPosition,\n\t\t\tdatum,\n\t\t\tindex\n\t\t);\n\t}\n\n\tgetDomainValue(d, i) {\n\t\tconst axisPosition = this.getDomainAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetRangeValue(d, i) {\n\t\tconst axisPosition = this.getRangeAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetMainXScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainXAxisPosition());\n\t}\n\n\tgetMainYScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainYAxisPosition());\n\t}\n\n\tgetDomainIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getDomainAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\tgetRangeIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getRangeAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\textendsDomain(axisPosition: AxisPositions, domain: any) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\tconst spaceToAddToEdges = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'timeScale',\n\t\t\t\t'addSpaceOnEdges'\n\t\t\t);\n\t\t\treturn addSpacingToTimeDomain(domain, spaceToAddToEdges);\n\t\t} else {\n\t\t\treturn addSpacingToContinuousDomain(\n\t\t\t\tdomain,\n\t\t\t\tConfiguration.axis.paddingRatio,\n\t\t\t\taxisOptions.scaleType\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected findVerticalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If right axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.LEFT) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.LEFT,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.RIGHT,\n\t\t\t\tsecondary: AxisPositions.LEFT,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.LEFT, secondary: AxisPositions.RIGHT };\n\t}\n\n\tprotected findHorizontalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If top axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.BOTTOM) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.BOTTOM,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.TOP,\n\t\t\t\tsecondary: AxisPositions.BOTTOM,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.BOTTOM, secondary: AxisPositions.TOP };\n\t}\n\n\tprotected findDomainAndRangeAxesPositions(\n\t\tverticalAxesPositions,\n\t\thorizontalAxesPositions\n\t) {\n\t\tconst options = this.model.getOptions();\n\n\t\tconst mainVerticalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tverticalAxesPositions.primary\n\t\t);\n\t\tconst mainHorizontalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\thorizontalAxesPositions.primary\n\t\t);\n\n\t\tconst mainVerticalScaleType =\n\t\t\tmainVerticalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\t\tconst mainHorizontalScaleType =\n\t\t\tmainHorizontalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\n\t\tconst result = {\n\t\t\tprimaryDomainAxisPosition: null,\n\t\t\tsecondaryDomainAxisPosition: null,\n\t\t\tprimaryRangeAxisPosition: null,\n\t\t\tsecondaryRangeAxisPosition: null,\n\t\t};\n\n\t\t// assign to to be a vertical chart by default\n\t\tresult.primaryDomainAxisPosition = horizontalAxesPositions.primary;\n\t\tresult.primaryRangeAxisPosition = verticalAxesPositions.primary;\n\t\t// secondary axes\n\t\tresult.secondaryDomainAxisPosition = horizontalAxesPositions.secondary;\n\t\tresult.secondaryRangeAxisPosition = verticalAxesPositions.secondary;\n\n\t\t// if neither the horizontal axes are label or time\n\t\t// and atleast one of the main vertical ones are labels or time then it should be horizontal\n\t\tif (\n\t\t\t(!(\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.LABELS ||\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.TIME\n\t\t\t) &&\n\t\t\t\tmainVerticalScaleType === ScaleTypes.LABELS) ||\n\t\t\tmainVerticalScaleType === ScaleTypes.TIME\n\t\t) {\n\t\t\tresult.primaryDomainAxisPosition = verticalAxesPositions.primary;\n\t\t\tresult.primaryRangeAxisPosition = horizontalAxesPositions.primary;\n\t\t\t// secondary axes\n\t\t\tresult.secondaryDomainAxisPosition =\n\t\t\t\tverticalAxesPositions.secondary;\n\t\t\tresult.secondaryRangeAxisPosition =\n\t\t\t\thorizontalAxesPositions.secondary;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getScaleDomain(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tconst bounds = Tools.getProperty(options, 'bounds');\n\t\tconst { includeZero } = axisOptions;\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\n\t\tif (this.model.isDataEmpty()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (axisOptions.binned) {\n\t\t\tconst { bins } = this.model.getBinConfigurations();\n\n\t\t\treturn [0, max(bins, (d) => d.length)];\n\t\t} else if (axisOptions.limitDomainToBins) {\n\t\t\tconst { bins } = this.model.getBinConfigurations();\n\t\t\tconst stackKeys = this.model.getStackKeys({ bins });\n\n\t\t\treturn [\n\t\t\t\tstackKeys[0].split('-')[0],\n\t\t\t\tstackKeys[stackKeys.length - 1].split('-')[1],\n\t\t\t];\n\t\t}\n\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst {\n\t\t\textendLinearDomainBy,\n\t\t\tmapsTo,\n\t\t\tpercentage,\n\t\t\tthresholds,\n\t\t} = axisOptions;\n\t\tconst {\n\t\t\treference: ratioReference,\n\t\t\tcompareTo: ratioCompareTo,\n\t\t} = Configuration.axis.ratio;\n\n\t\t// If domain is specified return that domain\n\t\tif (axisOptions.domain) {\n\t\t\tif (scaleType === ScaleTypes.LABELS) {\n\t\t\t\treturn axisOptions.domain;\n\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\taxisOptions.domain = axisOptions.domain.map((d) =>\n\t\t\t\t\td.getTime === undefined ? new Date(d) : d\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this.extendsDomain(axisPosition, axisOptions.domain);\n\t\t}\n\n\t\t// Return [0, 100] for percentage axis scale\n\t\tif (percentage) {\n\t\t\treturn [0, 100];\n\t\t}\n\n\t\t// If scale is a LABELS scale, return some labels as the domain\n\t\tif (axisOptions && scaleType === ScaleTypes.LABELS) {\n\t\t\t// Get unique values\n\t\t\treturn Tools.removeArrayDuplicates(\n\t\t\t\tdisplayData.map((d) => d[mapsTo])\n\t\t\t);\n\t\t}\n\n\t\t// Get the extent of the domain\n\t\tlet domain;\n\t\tlet allDataValues;\n\t\tconst dataGroupNames = this.model.getDataGroupNames();\n\n\t\tif (scaleType === ScaleTypes.LABELS_RATIO) {\n\t\t\treturn displayData.map(\n\t\t\t\t(datum) => `${datum[ratioReference]}/${datum[ratioCompareTo]}`\n\t\t\t);\n\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\tallDataValues = displayData.map(\n\t\t\t\t(datum) => +new Date(datum[mapsTo])\n\t\t\t);\n\t\t} else if (bounds && options.axes) {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tallDataValues.push(datum[mapsTo]);\n\n\t\t\t\tif (datum[bounds.upperBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.upperBoundMapsTo]);\n\t\t\t\t}\n\t\t\t\tif (datum[bounds.lowerBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.lowerBoundMapsTo]);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (\n\t\t\taxisOptions.stacked === true &&\n\t\t\tdataGroupNames &&\n\t\t\taxisPosition === this.getRangeAxisPosition()\n\t\t) {\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst dataValuesGroupedByKeys = this.model.getDataValuesGroupedByKeys(\n\t\t\t\t{\n\t\t\t\t\tgroups: dataGroupNames,\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst nonStackedGroupsData = displayData.filter(\n\t\t\t\t(datum) => !dataGroupNames.includes(datum[groupMapsTo])\n\t\t\t);\n\n\t\t\tlet stackedValues = [];\n\t\t\tdataValuesGroupedByKeys.forEach((dataValues) => {\n\t\t\t\tconst { sharedStackKey, ...numericalValues } = dataValues;\n\n\t\t\t\tlet positiveSum = 0,\n\t\t\t\t\tnegativeSum = 0;\n\t\t\t\tObject.values(numericalValues).forEach((value: number) => {\n\t\t\t\t\tif (!isNaN(value)) {\n\t\t\t\t\t\tif (value < 0) {\n\t\t\t\t\t\t\tnegativeSum += value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpositiveSum += value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tstackedValues.push([negativeSum, positiveSum]);\n\t\t\t});\n\n\t\t\tallDataValues = [\n\t\t\t\t...Tools.flatten(stackedValues),\n\t\t\t\t...nonStackedGroupsData.map((datum) => datum[mapsTo]),\n\t\t\t];\n\t\t} else {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tconst value = datum[mapsTo];\n\t\t\t\tif (Array.isArray(value) && value.length === 2) {\n\t\t\t\t\tallDataValues.push(value[0]);\n\t\t\t\t\tallDataValues.push(value[1]);\n\t\t\t\t} else {\n\t\t\t\t\tif (extendLinearDomainBy) {\n\t\t\t\t\t\tallDataValues.push(\n\t\t\t\t\t\t\tMath.max(datum[mapsTo], datum[extendLinearDomainBy])\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tallDataValues.push(value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Time can never be 0 and log of base 0 is -Infinity\n\t\tif (\n\t\t\tscaleType !== ScaleTypes.TIME &&\n\t\t\tscaleType !== ScaleTypes.LOG &&\n\t\t\tincludeZero\n\t\t) {\n\t\t\tallDataValues.push(0);\n\t\t}\n\n\t\t// Add threshold values into the scale\n\t\tif (thresholds && thresholds.length > 0) {\n\t\t\tthresholds.forEach((threshold) => {\n\t\t\t\tconst thresholdValue = Tools.getProperty(threshold, 'value');\n\t\t\t\tif (thresholdValue !== null) allDataValues.push(thresholdValue);\n\t\t\t});\n\t\t}\n\n\t\tdomain = extent(allDataValues);\n\t\tdomain = this.extendsDomain(axisPosition, domain);\n\n\t\treturn domain;\n\t}\n\n\tprotected createScale(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\n\t\tif (!axisOptions) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\t\tthis.scaleTypes[axisPosition] = scaleType;\n\n\t\tlet scale;\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\tscale = scaleTime();\n\t\t} else if (scaleType === ScaleTypes.LOG) {\n\t\t\tscale = scaleLog().base(axisOptions.base || 10);\n\t\t} else if (\n\t\t\tscaleType === ScaleTypes.LABELS ||\n\t\t\tscaleType === ScaleTypes.LABELS_RATIO\n\t\t) {\n\t\t\tscale = scaleBand();\n\t\t} else {\n\t\t\tscale = scaleLinear();\n\t\t}\n\n\t\tscale.domain(this.getScaleDomain(axisPosition));\n\n\t\treturn scale;\n\t}\n\n\tprotected getHighestDomainThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[domainAxisPosition];\n\n\t\t// Check if thresholds exist & is not empty\n\t\tif (\n\t\t\t!Array.isArray(thresholds) ||\n\t\t\t(Array.isArray(thresholds) && !thresholds.length)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainScale = this.getDomainScale();\n\t\t// Find the highest threshold for the domain\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\tconst scaleType = this.getScaleTypeByPosition(domainAxisPosition);\n\t\tif (\n\t\t\tscaleType === ScaleTypes.TIME &&\n\t\t\t(typeof highestThreshold.value === 'string' ||\n\t\t\t\thighestThreshold.value.getTime === undefined)\n\t\t) {\n\t\t\thighestThreshold.value = new Date(highestThreshold.value);\n\t\t}\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: domainScale(highestThreshold.value),\n\t\t};\n\t}\n\n\tprotected getHighestRangeThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[rangeAxisPosition];\n\n\t\t// Check if thresholds exist & is not empty\n\t\tif (\n\t\t\t!Array.isArray(thresholds) ||\n\t\t\t(Array.isArray(thresholds) && !thresholds.length)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst rangeScale = this.getRangeScale();\n\t\t// Find the highest threshold for the range\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: rangeScale(highestThreshold.value),\n\t\t};\n\t}\n}\n\nfunction addSpacingToTimeDomain(domain: any, spaceToAddToEdges: number) {\n\tconst startDate = new Date(domain[0]);\n\tconst endDate = new Date(domain[1]);\n\n\tif (differenceInYears(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubYears(startDate, spaceToAddToEdges),\n\t\t\taddYears(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMonths(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMonths(startDate, spaceToAddToEdges),\n\t\t\taddMonths(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInDays(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubDays(startDate, spaceToAddToEdges),\n\t\t\taddDays(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInHours(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubHours(startDate, spaceToAddToEdges),\n\t\t\taddHours(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 30) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges * 30),\n\t\t\taddMinutes(endDate, spaceToAddToEdges * 30),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges),\n\t\t\taddMinutes(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 15) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges * 15),\n\t\t\taddSeconds(endDate, spaceToAddToEdges * 15),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges),\n\t\t\taddSeconds(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\treturn [startDate, endDate];\n}\n\nfunction addSpacingToContinuousDomain(\n\t[lower, upper]: number[],\n\tpaddingRatio: number,\n\tscaleType?: ScaleTypes\n) {\n\tconst domainLength = upper - lower;\n\tconst padding = domainLength * paddingRatio;\n\n\t// If padding crosses 0, keep 0 as new upper bound\n\tconst newUpper = upper <= 0 && upper + padding > 0 ? 0 : upper + padding;\n\t// If padding crosses 0, keep 0 as new lower bound\n\tlet newLower = lower >= 0 && lower - padding < 0 ? 0 : lower - padding;\n\n\t// Log of base 0 or a negative number is -Infinity\n\tif (scaleType === ScaleTypes.LOG && newLower <= 0) {\n\t\tif (lower <= 0) {\n\t\t\tthrow Error(\n\t\t\t\t'Data must have values greater than 0 if log scale type is used.'\n\t\t\t);\n\t\t}\n\t\tnewLower = lower;\n\t}\n\n\treturn [newLower, newUpper];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"scales-cartesian.js","sourceRoot":"","sources":["scales-cartesian.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport * as Configuration from '../configuration';\nimport { Service } from './service';\nimport {\n\tAxisPositions,\n\tCartesianOrientations,\n\tScaleTypes,\n\tThresholdOptions,\n} from '../interfaces';\nimport * as Tools from '../tools';\n\n// D3 Imports\nimport { scaleBand, scaleLinear, scaleTime, scaleLog } from 'd3-scale';\nimport { extent, max } from 'd3-array';\n\n// Misc\nimport {\n\tdifferenceInYears,\n\taddYears,\n\tsubYears,\n\tdifferenceInMonths,\n\taddMonths,\n\tsubMonths,\n\tdifferenceInDays,\n\taddDays,\n\tsubDays,\n\tdifferenceInHours,\n\taddHours,\n\tsubHours,\n\tdifferenceInMinutes,\n\taddMinutes,\n\tsubMinutes,\n\tdifferenceInSeconds,\n\tsubSeconds,\n\taddSeconds,\n} from 'date-fns';\n\nexport class CartesianScales extends Service {\n\tprotected scaleTypes = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected scales = {\n\t\ttop: null,\n\t\tright: null,\n\t\tbottom: null,\n\t\tleft: null,\n\t};\n\n\tprotected domainAxisPosition: AxisPositions;\n\tprotected rangeAxisPosition: AxisPositions;\n\tprotected secondaryDomainAxisPosition: AxisPositions;\n\tprotected secondaryRangeAxisPosition: AxisPositions;\n\n\tprotected dualAxes: Boolean;\n\n\tprotected orientation: CartesianOrientations;\n\n\tgetDomainAxisPosition({ datum = null } = {}) {\n\t\tif (this.dualAxes && datum) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axesOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryDomainAxisPosition\n\t\t\t);\n\t\t\tconst dataset = datum[groupMapsTo];\n\t\t\tif (\n\t\t\t\taxesOptions?.correspondingDatasets &&\n\t\t\t\taxesOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryDomainAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.domainAxisPosition;\n\t}\n\n\tgetRangeAxisPosition({ datum = null, groups = null } = {}) {\n\t\tif (this.dualAxes) {\n\t\t\tconst options = this.model.getOptions();\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst axisOptions = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'axes',\n\t\t\t\tthis.secondaryRangeAxisPosition\n\t\t\t);\n\t\t\tlet dataset;\n\t\t\tif (datum !== null) {\n\t\t\t\tdataset = datum[groupMapsTo];\n\t\t\t} else if (groups && groups.length > 0) {\n\t\t\t\tdataset = groups[0];\n\t\t\t}\n\t\t\tif (\n\t\t\t\taxisOptions?.correspondingDatasets &&\n\t\t\t\taxisOptions.correspondingDatasets.includes(dataset)\n\t\t\t) {\n\t\t\t\treturn this.secondaryRangeAxisPosition;\n\t\t\t}\n\t\t}\n\t\treturn this.rangeAxisPosition;\n\t}\n\n\tgetAxisOptions(position: AxisPositions) {\n\t\treturn Tools.getProperty(this.model.getOptions(), 'axes', position);\n\t}\n\n\tgetDomainAxisOptions() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getAxisOptions(domainAxisPosition);\n\t}\n\n\tgetRangeAxisOptions() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getAxisOptions(rangeAxisPosition);\n\t}\n\n\tgetScaleLabel(position: AxisPositions) {\n\t\tconst axisOptions = this.getAxisOptions(position);\n\t\tlet title = axisOptions.title;\n\t\tif (!title) {\n\t\t\tif (\n\t\t\t\tposition === AxisPositions.BOTTOM ||\n\t\t\t\tposition === AxisPositions.TOP\n\t\t\t) {\n\t\t\t\treturn 'x-value';\n\t\t\t}\n\t\t\treturn 'y-value';\n\t\t}\n\t\treturn title;\n\t}\n\n\tgetDomainLabel() {\n\t\treturn this.getScaleLabel(this.getDomainAxisPosition());\n\t}\n\n\tgetRangeLabel() {\n\t\treturn this.getScaleLabel(this.getRangeAxisPosition());\n\t}\n\n\tupdate(animate = true) {\n\t\tthis.determineAxisDuality();\n\t\tthis.findDomainAndRangeAxes();\n\t\tthis.determineOrientation();\n\t\tconst axisPositions = Object.keys(AxisPositions).map(\n\t\t\t(axisPositionKey) => AxisPositions[axisPositionKey]\n\t\t);\n\t\taxisPositions.forEach((axisPosition) => {\n\t\t\tthis.scales[axisPosition] = this.createScale(axisPosition);\n\t\t});\n\t}\n\n\tfindDomainAndRangeAxes() {\n\t\t// find main axes between (left & right) && (bottom & top)\n\t\tconst verticalAxesPositions = this.findVerticalAxesPositions();\n\t\tconst horizontalAxesPositions = this.findHorizontalAxesPositions();\n\n\t\t// Now we have horizontal & vertical main axes to choose domain & range axes from\n\t\tconst domainAndRangeAxesPositions = this.findDomainAndRangeAxesPositions(\n\t\t\tverticalAxesPositions,\n\t\t\thorizontalAxesPositions\n\t\t);\n\n\t\tthis.domainAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryDomainAxisPosition;\n\t\tthis.rangeAxisPosition =\n\t\t\tdomainAndRangeAxesPositions.primaryRangeAxisPosition;\n\n\t\tif (this.isDualAxes()) {\n\t\t\tthis.secondaryDomainAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryDomainAxisPosition;\n\t\t\tthis.secondaryRangeAxisPosition =\n\t\t\t\tdomainAndRangeAxesPositions.secondaryRangeAxisPosition;\n\t\t}\n\t}\n\n\tdetermineOrientation() {\n\t\tif (\n\t\t\t(this.rangeAxisPosition === AxisPositions.LEFT ||\n\t\t\t\tthis.rangeAxisPosition === AxisPositions.RIGHT) &&\n\t\t\t(this.domainAxisPosition === AxisPositions.BOTTOM ||\n\t\t\t\tthis.domainAxisPosition === AxisPositions.TOP)\n\t\t) {\n\t\t\tthis.orientation = CartesianOrientations.VERTICAL;\n\t\t} else {\n\t\t\tthis.orientation = CartesianOrientations.HORIZONTAL;\n\t\t}\n\t}\n\n\tisDualAxes() {\n\t\treturn this.dualAxes;\n\t}\n\n\t// if any of the axes objects have correspondingDatasets [] asserted we flag the chart as dual axes\n\t// it does not count as dual axes if it just has another axis turned on but is not actually using it to map a dataset\n\tdetermineAxisDuality() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\n\t\tif (\n\t\t\t(axesOptions[AxisPositions.LEFT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.RIGHT]) ||\n\t\t\t(axesOptions[AxisPositions.RIGHT]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.LEFT]) ||\n\t\t\t(axesOptions[AxisPositions.TOP]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.BOTTOM]) ||\n\t\t\t(axesOptions[AxisPositions.BOTTOM]?.correspondingDatasets &&\n\t\t\t\taxesOptions[AxisPositions.TOP])\n\t\t) {\n\t\t\tthis.dualAxes = true;\n\t\t}\n\t}\n\n\tgetCustomDomainValuesByposition(axisPosition: AxisPositions) {\n\t\tconst domain = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'axes',\n\t\t\taxisPosition,\n\t\t\t'domain'\n\t\t);\n\n\t\t// Check if domain is an array\n\t\tif (domain && !Array.isArray(domain)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Domain in ${axisPosition} axis is not a valid array`\n\t\t\t);\n\t\t}\n\n\t\t// Determine number of elements passed in domain depending on scale types\n\t\tif (Array.isArray(domain)) {\n\t\t\tif (\n\t\t\t\t(this.scaleTypes[axisPosition] === ScaleTypes.LINEAR ||\n\t\t\t\t\tthis.scaleTypes[axisPosition] === ScaleTypes.TIME) &&\n\t\t\t\tdomain.length !== 2\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`There can only be 2 elements in domain for scale type: ${this.scaleTypes[axisPosition]}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn domain;\n\t}\n\n\tgetOrientation() {\n\t\treturn this.orientation;\n\t}\n\n\tgetScaleByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scales[axisPosition];\n\t}\n\n\tgetScaleTypeByPosition(axisPosition: AxisPositions) {\n\t\treturn this.scaleTypes[axisPosition];\n\t}\n\n\tgetDomainAxisScaleType() {\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\t\treturn this.getScaleTypeByPosition(domainAxisPosition);\n\t}\n\n\tgetRangeAxisScaleType() {\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\t\treturn this.getScaleTypeByPosition(rangeAxisPosition);\n\t}\n\n\tgetDomainScale() {\n\t\treturn this.scales[this.domainAxisPosition];\n\t}\n\n\tgetRangeScale() {\n\t\treturn this.scales[this.rangeAxisPosition];\n\t}\n\n\t// Find the main x-axis out of the 2 x-axis on the chart (when 2D axis is used)\n\tgetMainXAxisPosition() {\n\t\tconst possibleXAxisPositions = [\n\t\t\tAxisPositions.BOTTOM,\n\t\t\tAxisPositions.TOP,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleXAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\t// Find the main y-axis out of the 2 y-axis on the chart (when 2D axis is used)\n\tgetMainYAxisPosition() {\n\t\tconst possibleYAxisPositions = [\n\t\t\tAxisPositions.LEFT,\n\t\t\tAxisPositions.RIGHT,\n\t\t];\n\n\t\treturn [this.domainAxisPosition, this.rangeAxisPosition].find(\n\t\t\t(position) => possibleYAxisPositions.indexOf(position) > -1\n\t\t);\n\t}\n\n\tgetMainXScale() {\n\t\treturn this.scales[this.getMainXAxisPosition()];\n\t}\n\n\tgetMainYScale() {\n\t\treturn this.scales[this.getMainYAxisPosition()];\n\t}\n\n\tgetValueFromScale(\n\t\tscale: any,\n\t\tscaleType: ScaleTypes,\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[axisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value =\n\t\t\tTools.getProperty(datum, mapsTo) !== null ? datum[mapsTo] : datum;\n\t\tlet scaledValue;\n\t\tswitch (scaleType) {\n\t\t\tcase ScaleTypes.LABELS:\n\t\t\t\tscaledValue = scale(value) + scale.step() / 2;\n\t\t\t\tbreak;\n\t\t\tcase ScaleTypes.TIME:\n\t\t\t\tscaledValue = scale(new Date(value));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tscaledValue = scale(value);\n\t\t}\n\t\treturn scaledValue;\n\t}\n\n\tgetBoundedScaledValues(datum: any, index?: number) {\n\t\tconst { bounds } = this.model.getOptions();\n\t\tconst axisPosition = this.getRangeAxisPosition({ datum });\n\t\tconst scale = this.scales[axisPosition];\n\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst axisOptions = axesOptions[axisPosition];\n\t\tconst { mapsTo } = axisOptions;\n\t\tconst value = datum[mapsTo] !== undefined ? datum[mapsTo] : datum;\n\n\t\tconst boundedValues = [\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.upperBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.upperBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t\tscale(\n\t\t\t\tTools.getProperty(datum, bounds.lowerBoundMapsTo) !== null\n\t\t\t\t\t? datum[bounds.lowerBoundMapsTo]\n\t\t\t\t\t: value\n\t\t\t),\n\t\t];\n\n\t\treturn boundedValues;\n\t}\n\n\tgetValueThroughAxisPosition(\n\t\taxisPosition: AxisPositions,\n\t\tdatum: any,\n\t\tindex?: number\n\t) {\n\t\tconst scaleType = this.scaleTypes[axisPosition];\n\t\tconst scale = this.scales[axisPosition];\n\n\t\treturn this.getValueFromScale(\n\t\t\tscale,\n\t\t\tscaleType,\n\t\t\taxisPosition,\n\t\t\tdatum,\n\t\t\tindex\n\t\t);\n\t}\n\n\tgetDomainValue(d, i) {\n\t\tconst axisPosition = this.getDomainAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetRangeValue(d, i) {\n\t\tconst axisPosition = this.getRangeAxisPosition({ datum: d });\n\t\treturn this.getValueThroughAxisPosition(axisPosition, d, i);\n\t}\n\n\tgetMainXScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainXAxisPosition());\n\t}\n\n\tgetMainYScaleType() {\n\t\treturn this.getScaleTypeByPosition(this.getMainYAxisPosition());\n\t}\n\n\tgetDomainIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getDomainAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\tgetRangeIdentifier(datum?: any) {\n\t\tconst options = this.model.getOptions();\n\t\treturn Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tthis.getRangeAxisPosition({ datum: datum }),\n\t\t\t'mapsTo'\n\t\t);\n\t}\n\n\textendsDomain(axisPosition: AxisPositions, domain: any) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tif (axisOptions.scaleType === ScaleTypes.TIME) {\n\t\t\tconst spaceToAddToEdges = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'timeScale',\n\t\t\t\t'addSpaceOnEdges'\n\t\t\t);\n\t\t\treturn addSpacingToTimeDomain(domain, spaceToAddToEdges);\n\t\t} else {\n\t\t\treturn addSpacingToContinuousDomain(\n\t\t\t\tdomain,\n\t\t\t\tConfiguration.axis.paddingRatio,\n\t\t\t\taxisOptions.scaleType\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected findVerticalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If right axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.LEFT) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.RIGHT, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.LEFT,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.RIGHT,\n\t\t\t\tsecondary: AxisPositions.LEFT,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.LEFT, secondary: AxisPositions.RIGHT };\n\t}\n\n\tprotected findHorizontalAxesPositions() {\n\t\tconst options = this.model.getOptions();\n\t\tconst axesOptions = Tools.getProperty(options, 'axes');\n\t\tconst dualAxes = this.isDualAxes();\n\n\t\t// If top axis has been specified as `main`\n\t\tif (\n\t\t\t(Tools.getProperty(axesOptions, AxisPositions.BOTTOM) === null &&\n\t\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP) !== null) ||\n\t\t\tTools.getProperty(axesOptions, AxisPositions.TOP, 'main') ===\n\t\t\t\ttrue ||\n\t\t\t(dualAxes &&\n\t\t\t\tTools.getProperty(\n\t\t\t\t\taxesOptions,\n\t\t\t\t\tAxisPositions.BOTTOM,\n\t\t\t\t\t'correspondingDatasets'\n\t\t\t\t))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tprimary: AxisPositions.TOP,\n\t\t\t\tsecondary: AxisPositions.BOTTOM,\n\t\t\t};\n\t\t}\n\n\t\treturn { primary: AxisPositions.BOTTOM, secondary: AxisPositions.TOP };\n\t}\n\n\tprotected findDomainAndRangeAxesPositions(\n\t\tverticalAxesPositions,\n\t\thorizontalAxesPositions\n\t) {\n\t\tconst options = this.model.getOptions();\n\n\t\tconst mainVerticalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\tverticalAxesPositions.primary\n\t\t);\n\t\tconst mainHorizontalAxisOptions = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'axes',\n\t\t\thorizontalAxesPositions.primary\n\t\t);\n\n\t\tconst mainVerticalScaleType =\n\t\t\tmainVerticalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\t\tconst mainHorizontalScaleType =\n\t\t\tmainHorizontalAxisOptions.scaleType || ScaleTypes.LINEAR;\n\n\t\tconst result = {\n\t\t\tprimaryDomainAxisPosition: null,\n\t\t\tsecondaryDomainAxisPosition: null,\n\t\t\tprimaryRangeAxisPosition: null,\n\t\t\tsecondaryRangeAxisPosition: null,\n\t\t};\n\n\t\t// assign to to be a vertical chart by default\n\t\tresult.primaryDomainAxisPosition = horizontalAxesPositions.primary;\n\t\tresult.primaryRangeAxisPosition = verticalAxesPositions.primary;\n\t\t// secondary axes\n\t\tresult.secondaryDomainAxisPosition = horizontalAxesPositions.secondary;\n\t\tresult.secondaryRangeAxisPosition = verticalAxesPositions.secondary;\n\n\t\t// if neither the horizontal axes are label or time\n\t\t// and atleast one of the main vertical ones are labels or time then it should be horizontal\n\t\tif (\n\t\t\t(!(\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.LABELS ||\n\t\t\t\tmainHorizontalScaleType === ScaleTypes.TIME\n\t\t\t) &&\n\t\t\t\tmainVerticalScaleType === ScaleTypes.LABELS) ||\n\t\t\tmainVerticalScaleType === ScaleTypes.TIME\n\t\t) {\n\t\t\tresult.primaryDomainAxisPosition = verticalAxesPositions.primary;\n\t\t\tresult.primaryRangeAxisPosition = horizontalAxesPositions.primary;\n\t\t\t// secondary axes\n\t\t\tresult.secondaryDomainAxisPosition =\n\t\t\t\tverticalAxesPositions.secondary;\n\t\t\tresult.secondaryRangeAxisPosition =\n\t\t\t\thorizontalAxesPositions.secondary;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprotected getScaleDomain(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\t\tconst bounds = Tools.getProperty(options, 'bounds');\n\t\tconst { includeZero } = axisOptions;\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\n\t\tif (this.model.isDataEmpty()) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (axisOptions.binned) {\n\t\t\tconst { bins } = this.model.getBinConfigurations();\n\n\t\t\treturn [0, max(bins, (d) => d.length)];\n\t\t} else if (axisOptions.limitDomainToBins) {\n\t\t\tconst { bins } = this.model.getBinConfigurations();\n\t\t\tconst stackKeys = this.model.getStackKeys({ bins });\n\n\t\t\treturn [\n\t\t\t\tstackKeys[0].split('-')[0],\n\t\t\t\tstackKeys[stackKeys.length - 1].split('-')[1],\n\t\t\t];\n\t\t}\n\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst {\n\t\t\textendLinearDomainBy,\n\t\t\tmapsTo,\n\t\t\tpercentage,\n\t\t\tthresholds,\n\t\t} = axisOptions;\n\t\tconst {\n\t\t\treference: ratioReference,\n\t\t\tcompareTo: ratioCompareTo,\n\t\t} = Configuration.axis.ratio;\n\n\t\t// If domain is specified return that domain\n\t\tif (axisOptions.domain) {\n\t\t\tif (scaleType === ScaleTypes.LABELS) {\n\t\t\t\treturn axisOptions.domain;\n\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\taxisOptions.domain = axisOptions.domain.map((d) =>\n\t\t\t\t\td.getTime === undefined ? new Date(d) : d\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this.extendsDomain(axisPosition, axisOptions.domain);\n\t\t}\n\n\t\t// Return [0, 100] for percentage axis scale\n\t\tif (percentage) {\n\t\t\treturn [0, 100];\n\t\t}\n\n\t\t// If scale is a LABELS scale, return some labels as the domain\n\t\tif (axisOptions && scaleType === ScaleTypes.LABELS) {\n\t\t\t// Get unique values\n\t\t\treturn Tools.removeArrayDuplicates(\n\t\t\t\tdisplayData.map((d) => d[mapsTo])\n\t\t\t);\n\t\t}\n\n\t\t// Get the extent of the domain\n\t\tlet domain;\n\t\tlet allDataValues;\n\t\tconst dataGroupNames = this.model.getDataGroupNames();\n\n\t\tif (scaleType === ScaleTypes.LABELS_RATIO) {\n\t\t\treturn displayData.map(\n\t\t\t\t(datum) => `${datum[ratioReference]}/${datum[ratioCompareTo]}`\n\t\t\t);\n\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\tallDataValues = displayData.map(\n\t\t\t\t(datum) => +new Date(datum[mapsTo])\n\t\t\t);\n\t\t} else if (bounds && options.axes) {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tallDataValues.push(datum[mapsTo]);\n\n\t\t\t\tif (datum[bounds.upperBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.upperBoundMapsTo]);\n\t\t\t\t}\n\t\t\t\tif (datum[bounds.lowerBoundMapsTo]) {\n\t\t\t\t\tallDataValues.push(datum[bounds.lowerBoundMapsTo]);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (\n\t\t\taxisOptions.stacked === true &&\n\t\t\tdataGroupNames &&\n\t\t\taxisPosition === this.getRangeAxisPosition()\n\t\t) {\n\t\t\tconst { groupMapsTo } = options.data;\n\t\t\tconst dataValuesGroupedByKeys = this.model.getDataValuesGroupedByKeys(\n\t\t\t\t{\n\t\t\t\t\tgroups: dataGroupNames,\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst nonStackedGroupsData = displayData.filter(\n\t\t\t\t(datum) => !dataGroupNames.includes(datum[groupMapsTo])\n\t\t\t);\n\n\t\t\tlet stackedValues = [];\n\t\t\tdataValuesGroupedByKeys.forEach((dataValues) => {\n\t\t\t\tconst { sharedStackKey, ...numericalValues } = dataValues;\n\n\t\t\t\tlet positiveSum = 0,\n\t\t\t\t\tnegativeSum = 0;\n\t\t\t\tObject.values(numericalValues).forEach((value: number) => {\n\t\t\t\t\tif (!isNaN(value)) {\n\t\t\t\t\t\tif (value < 0) {\n\t\t\t\t\t\t\tnegativeSum += value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpositiveSum += value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tstackedValues.push([negativeSum, positiveSum]);\n\t\t\t});\n\n\t\t\tallDataValues = [\n\t\t\t\t...Tools.flatten(stackedValues),\n\t\t\t\t...nonStackedGroupsData.map((datum) => datum[mapsTo]),\n\t\t\t];\n\t\t} else {\n\t\t\tallDataValues = [];\n\n\t\t\tdisplayData.forEach((datum) => {\n\t\t\t\tconst value = datum[mapsTo];\n\t\t\t\tif (Array.isArray(value) && value.length === 2) {\n\t\t\t\t\tallDataValues.push(value[0]);\n\t\t\t\t\tallDataValues.push(value[1]);\n\t\t\t\t} else {\n\t\t\t\t\tif (extendLinearDomainBy) {\n\t\t\t\t\t\tallDataValues.push(\n\t\t\t\t\t\t\tMath.max(datum[mapsTo], datum[extendLinearDomainBy])\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tallDataValues.push(value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Time can never be 0 and log of base 0 is -Infinity\n\t\tif (\n\t\t\tscaleType !== ScaleTypes.TIME &&\n\t\t\tscaleType !== ScaleTypes.LOG &&\n\t\t\tincludeZero\n\t\t) {\n\t\t\tallDataValues.push(0);\n\t\t}\n\n\t\t// Add threshold values into the scale\n\t\tif (thresholds && thresholds.length > 0) {\n\t\t\tthresholds.forEach((threshold) => {\n\t\t\t\tconst thresholdValue = Tools.getProperty(threshold, 'value');\n\t\t\t\tif (thresholdValue !== null) allDataValues.push(thresholdValue);\n\t\t\t});\n\t\t}\n\n\t\tdomain = extent(allDataValues);\n\t\tdomain = this.extendsDomain(axisPosition, domain);\n\n\t\treturn domain;\n\t}\n\n\tprotected createScale(axisPosition: AxisPositions) {\n\t\tconst options = this.model.getOptions();\n\t\tconst axisOptions = Tools.getProperty(options, 'axes', axisPosition);\n\n\t\tif (!axisOptions) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst scaleType =\n\t\t\tTools.getProperty(axisOptions, 'scaleType') || ScaleTypes.LINEAR;\n\t\tthis.scaleTypes[axisPosition] = scaleType;\n\n\t\tlet scale;\n\t\tif (scaleType === ScaleTypes.TIME) {\n\t\t\tscale = scaleTime();\n\t\t} else if (scaleType === ScaleTypes.LOG) {\n\t\t\tscale = scaleLog().base(axisOptions.base || 10);\n\t\t} else if (\n\t\t\tscaleType === ScaleTypes.LABELS ||\n\t\t\tscaleType === ScaleTypes.LABELS_RATIO\n\t\t) {\n\t\t\tscale = scaleBand();\n\t\t} else {\n\t\t\tscale = scaleLinear();\n\t\t}\n\n\t\tscale.domain(this.getScaleDomain(axisPosition));\n\n\t\treturn scale;\n\t}\n\n\tprotected getHighestDomainThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst domainAxisPosition = this.getDomainAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[domainAxisPosition];\n\n\t\t// Check if thresholds exist & is not empty\n\t\tif (\n\t\t\t!Array.isArray(thresholds) ||\n\t\t\t(Array.isArray(thresholds) && !thresholds.length)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainScale = this.getDomainScale();\n\t\t// Find the highest threshold for the domain\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\tconst scaleType = this.getScaleTypeByPosition(domainAxisPosition);\n\t\tif (\n\t\t\tscaleType === ScaleTypes.TIME &&\n\t\t\t(typeof highestThreshold.value === 'string' ||\n\t\t\t\thighestThreshold.value.getTime === undefined)\n\t\t) {\n\t\t\thighestThreshold.value = new Date(highestThreshold.value);\n\t\t}\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: domainScale(highestThreshold.value),\n\t\t};\n\t}\n\n\tprotected getHighestRangeThreshold(): null | {\n\t\tthreshold: ThresholdOptions;\n\t\tscaleValue: number;\n\t} {\n\t\tconst axesOptions = Tools.getProperty(this.model.getOptions(), 'axes');\n\t\tconst rangeAxisPosition = this.getRangeAxisPosition();\n\n\t\tconst { thresholds } = axesOptions[rangeAxisPosition];\n\n\t\t// Check if thresholds exist & is not empty\n\t\tif (\n\t\t\t!Array.isArray(thresholds) ||\n\t\t\t(Array.isArray(thresholds) && !thresholds.length)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst rangeScale = this.getRangeScale();\n\t\t// Find the highest threshold for the range\n\t\tconst highestThreshold = thresholds.sort(\n\t\t\t(a, b) => b.value - a.value\n\t\t)[0];\n\n\t\treturn {\n\t\t\tthreshold: highestThreshold,\n\t\t\tscaleValue: rangeScale(highestThreshold.value),\n\t\t};\n\t}\n}\n\nfunction addSpacingToTimeDomain(domain: any, spaceToAddToEdges: number) {\n\tconst startDate = new Date(domain[0]);\n\tconst endDate = new Date(domain[1]);\n\n\tif (differenceInYears(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubYears(startDate, spaceToAddToEdges),\n\t\t\taddYears(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMonths(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMonths(startDate, spaceToAddToEdges),\n\t\t\taddMonths(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInDays(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubDays(startDate, spaceToAddToEdges),\n\t\t\taddDays(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInHours(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubHours(startDate, spaceToAddToEdges),\n\t\t\taddHours(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 30) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges * 30),\n\t\t\taddMinutes(endDate, spaceToAddToEdges * 30),\n\t\t];\n\t}\n\n\tif (differenceInMinutes(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubMinutes(startDate, spaceToAddToEdges),\n\t\t\taddMinutes(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 15) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges * 15),\n\t\t\taddSeconds(endDate, spaceToAddToEdges * 15),\n\t\t];\n\t}\n\n\tif (differenceInSeconds(endDate, startDate) > 1) {\n\t\treturn [\n\t\t\tsubSeconds(startDate, spaceToAddToEdges),\n\t\t\taddSeconds(endDate, spaceToAddToEdges),\n\t\t];\n\t}\n\n\treturn [startDate, endDate];\n}\n\nfunction addSpacingToContinuousDomain(\n\t[lower, upper]: number[],\n\tpaddingRatio: number,\n\tscaleType?: ScaleTypes\n) {\n\tconst domainLength = upper - lower;\n\tconst padding = domainLength * paddingRatio;\n\n\t// If padding crosses 0, keep 0 as new upper bound\n\tconst newUpper = upper <= 0 && upper + padding > 0 ? 0 : upper + padding;\n\t// If padding crosses 0, keep 0 as new lower bound\n\tlet newLower = lower >= 0 && lower - padding < 0 ? 0 : lower - padding;\n\n\t// Log of base 0 or a negative number is -Infinity\n\tif (scaleType === ScaleTypes.LOG && newLower <= 0) {\n\t\tif (lower <= 0) {\n\t\t\tthrow Error(\n\t\t\t\t'Data must have values greater than 0 if log scale type is used.'\n\t\t\t);\n\t\t}\n\t\tnewLower = lower;\n\t}\n\n\treturn [newLower, newUpper];\n}\n"]}
|
package/services/time-series.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-series.js","sourceRoot":"","sources":["time-series.ts"],"names":[],"mappings":"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","sourcesContent":["import { format } from 'date-fns';\nimport { TimeScaleOptions } from '../interfaces/axis-scales';\nimport { Tools } from '../tools';\n\n// D3 Imports\nimport { min } from 'd3-array';\n\nexport const TIME_INTERVALS = [\n\t['15seconds', 15 * 1000],\n\t['minute', 60 * 1000],\n\t['30minutes', 30 * 60 * 1000],\n\t['hourly', 60 * 60 * 1000],\n\t['daily', 24 * 60 * 60 * 1000],\n\t['monthly', 30 * 24 * 60 * 60 * 1000],\n\t['quarterly', 3 * 30 * 24 * 60 * 60 * 1000],\n\t['yearly', 12 * 30 * 24 * 60 * 60 * 1000],\n];\n\n// Return true if the tick is a primary tick, false otherwise\nexport function isTickPrimary(\n\ttick: number,\n\ti: number,\n\tallTicks: Array<number>,\n\tinterval: string,\n\tshowDayName: boolean\n): boolean {\n\tconst isFirstTick = i === 0;\n\tconst hasANewWeekStarted = Number(format(new Date(tick), 'c')) === 2;\n\tconst isFirstQuarter = Number(format(new Date(tick), 'q')) === 1;\n\tconst previousTick = i !== 0 ? allTicks[i - 1] : null;\n\tswitch (interval) {\n\t\tcase '15seconds':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase 'minute':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase '30minutes':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase 'hourly':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase 'daily':\n\t\t\tif (!showDayName) {\n\t\t\t\t// daily\n\t\t\t\treturn (\n\t\t\t\t\tisFirstTick ||\n\t\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\t\tisYearChanged(tick)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// weekly\n\t\t\t\treturn isFirstTick || hasANewWeekStarted || isYearChanged(tick);\n\t\t\t}\n\t\tcase 'monthly':\n\t\t\treturn isFirstTick || isYearChanged(tick);\n\t\tcase 'quarterly':\n\t\t\treturn isFirstTick || isFirstQuarter;\n\t\tcase 'yearly':\n\t\t\treturn false;\n\t\tdefault:\n\t\t\tthrow new Error(`${interval} is not a valid time interval.`);\n\t}\n}\n\n// Return the formatted current tick\nexport function formatTick(\n\ttick: number,\n\ti: number,\n\tallTicks: Array<number>,\n\tinterval: string,\n\ttimeScaleOptions: TimeScaleOptions\n): string {\n\tconst showDayName = timeScaleOptions.showDayName;\n\tconst intervalConsideringAlsoShowDayNameOption =\n\t\tinterval === 'daily' && showDayName ? 'weekly' : interval;\n\tconst date = new Date(tick);\n\tconst formats = Tools.getProperty(timeScaleOptions, 'timeIntervalFormats')[\n\t\tintervalConsideringAlsoShowDayNameOption\n\t];\n\tconst primary = Tools.getProperty(formats, 'primary');\n\tconst secondary = Tools.getProperty(formats, 'secondary');\n\tlet formatString = isTickPrimary(tick, i, allTicks, interval, showDayName)\n\t\t? primary\n\t\t: secondary;\n\n\t// if the interval, and the timestamp includes milliseconds value\n\tif (interval === '15seconds' && date.getMilliseconds() !== 0){\n\t\t// show milliseconds in tick\n\t\tformatString = formatString.replace('pp', 'h:mm:ss.SSS a');\n\t}\n\n\tconst locale = timeScaleOptions.localeObject;\n\n\treturn format(date, formatString, { locale });\n}\n\n// Given a timestamp, return an object of useful time formats\n// Use Unicode date field symbol (https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)\nexport function getTimeformats(timestamp: number) {\n\tconst date = new Date(timestamp);\n\treturn {\n\t\tM: date.getMonth() + 1, // month: 1-12\n\t\td: date.getDate(), // day of the month: 1-31\n\t\tH: date.getHours(), // 24-hour clock: 0-23\n\t\tm: date.getMinutes(), // minute: 0-59\n\t\ts: date.getSeconds(), // seconds: 0-59\n\t};\n}\n\n// Find the differences between consecutive numbers in an array\nfunction getConsecutiveDifferences(elements: number[]): number[] {\n\tif (!elements) {\n\t\treturn;\n\t}\n\treturn elements.slice(1).map((elem, i) => elem - elements[i]);\n}\n\n// Given a duration in ms, return the closest TIME_INTERVAL name\nfunction closestTimeIntervalName(duration: number): string {\n\tconst index = TIME_INTERVALS.reduce(\n\t\t(nearestIndex, [intervalName, delta]: [string, number], i) => {\n\t\t\tconst deltaNearest = TIME_INTERVALS[nearestIndex][1] as number;\n\t\t\tconst oldNearestSpan = Math.abs(deltaNearest - duration);\n\t\t\tconst currentSpan = Math.abs(delta - duration);\n\t\t\treturn oldNearestSpan < currentSpan ? nearestIndex : i;\n\t\t},\n\t\t0\n\t);\n\treturn TIME_INTERVALS[index][0] as string;\n}\n\n// Given an array of timestamps, return the interval name\n// between 15seconds, minute, 30minutes, hourly, daily, weekly, monthly, quarterly, yearly\nexport function computeTimeIntervalName(ticks: number[]): string {\n\t// special case: if the dataset has only one datum, we show the tick in the most detailed way possible\n\tif (ticks.length === 1) {\n\t\treturn '15seconds';\n\t}\n\tconst differences = getConsecutiveDifferences(ticks);\n\tconst minDifference = min(differences);\n\treturn closestTimeIntervalName(minDifference);\n}\n\n// Return true if the day of the month (D = 1-31) is changed, false otherwise\nfunction isDayOfMonthChanged(timestamp: number): boolean {\n\tconst { s, m, H } = getTimeformats(timestamp);\n\treturn H === 0 && m === 0 && s === 0;\n}\n\n// Return true if the month (M = 1-12) is changed from previous tick's timestamp, false otherwise\nfunction isMonthChanged(\n\ttimestamp: number,\n\tpreviousTimestamp?: number\n): boolean {\n\tconst currentMonth = getTimeformats(timestamp).M;\n\tconst previousMonth = getTimeformats(previousTimestamp).M;\n\treturn currentMonth !== previousMonth;\n}\n\n// Return true if the year (YYYY) is changed, false otherwise\nfunction isYearChanged(timestamp: number): boolean {\n\tconst { M, d, s, m, H } = getTimeformats(timestamp);\n\treturn M === 1 && d === 1 && H === 0 && m === 0 && s === 0;\n}\n\n// Return string value of Date with milliseconds\nexport function formatDateTillMilliSeconds(date: Date) {\n\tif (date === undefined) {\n\t\treturn '';\n\t}\n\n\t// The only valid format with millisecond is ISO 8601\n\treturn date.toISOString();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"time-series.js","sourceRoot":"","sources":["time-series.ts"],"names":[],"mappings":"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","sourcesContent":["import { format } from 'date-fns';\nimport { TimeScaleOptions } from '../interfaces/axis-scales';\nimport * as Tools from '../tools';\n\n// D3 Imports\nimport { min } from 'd3-array';\n\nexport const TIME_INTERVALS = [\n\t['15seconds', 15 * 1000],\n\t['minute', 60 * 1000],\n\t['30minutes', 30 * 60 * 1000],\n\t['hourly', 60 * 60 * 1000],\n\t['daily', 24 * 60 * 60 * 1000],\n\t['monthly', 30 * 24 * 60 * 60 * 1000],\n\t['quarterly', 3 * 30 * 24 * 60 * 60 * 1000],\n\t['yearly', 12 * 30 * 24 * 60 * 60 * 1000],\n];\n\n// Return true if the tick is a primary tick, false otherwise\nexport function isTickPrimary(\n\ttick: number,\n\ti: number,\n\tallTicks: Array<number>,\n\tinterval: string,\n\tshowDayName: boolean\n): boolean {\n\tconst isFirstTick = i === 0;\n\tconst hasANewWeekStarted = Number(format(new Date(tick), 'c')) === 2;\n\tconst isFirstQuarter = Number(format(new Date(tick), 'q')) === 1;\n\tconst previousTick = i !== 0 ? allTicks[i - 1] : null;\n\tswitch (interval) {\n\t\tcase '15seconds':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase 'minute':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase '30minutes':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase 'hourly':\n\t\t\treturn (\n\t\t\t\tisFirstTick ||\n\t\t\t\tisDayOfMonthChanged(tick) ||\n\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\tisYearChanged(tick)\n\t\t\t);\n\t\tcase 'daily':\n\t\t\tif (!showDayName) {\n\t\t\t\t// daily\n\t\t\t\treturn (\n\t\t\t\t\tisFirstTick ||\n\t\t\t\t\tisMonthChanged(tick, previousTick) ||\n\t\t\t\t\tisYearChanged(tick)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// weekly\n\t\t\t\treturn isFirstTick || hasANewWeekStarted || isYearChanged(tick);\n\t\t\t}\n\t\tcase 'monthly':\n\t\t\treturn isFirstTick || isYearChanged(tick);\n\t\tcase 'quarterly':\n\t\t\treturn isFirstTick || isFirstQuarter;\n\t\tcase 'yearly':\n\t\t\treturn false;\n\t\tdefault:\n\t\t\tthrow new Error(`${interval} is not a valid time interval.`);\n\t}\n}\n\n// Return the formatted current tick\nexport function formatTick(\n\ttick: number,\n\ti: number,\n\tallTicks: Array<number>,\n\tinterval: string,\n\ttimeScaleOptions: TimeScaleOptions\n): string {\n\tconst showDayName = timeScaleOptions.showDayName;\n\tconst intervalConsideringAlsoShowDayNameOption =\n\t\tinterval === 'daily' && showDayName ? 'weekly' : interval;\n\tconst date = new Date(tick);\n\tconst formats = Tools.getProperty(timeScaleOptions, 'timeIntervalFormats')[\n\t\tintervalConsideringAlsoShowDayNameOption\n\t];\n\tconst primary = Tools.getProperty(formats, 'primary');\n\tconst secondary = Tools.getProperty(formats, 'secondary');\n\tlet formatString = isTickPrimary(tick, i, allTicks, interval, showDayName)\n\t\t? primary\n\t\t: secondary;\n\n\t// if the interval, and the timestamp includes milliseconds value\n\tif (interval === '15seconds' && date.getMilliseconds() !== 0){\n\t\t// show milliseconds in tick\n\t\tformatString = formatString.replace('pp', 'h:mm:ss.SSS a');\n\t}\n\n\tconst locale = timeScaleOptions.localeObject;\n\n\treturn format(date, formatString, { locale });\n}\n\n// Given a timestamp, return an object of useful time formats\n// Use Unicode date field symbol (https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)\nexport function getTimeformats(timestamp: number) {\n\tconst date = new Date(timestamp);\n\treturn {\n\t\tM: date.getMonth() + 1, // month: 1-12\n\t\td: date.getDate(), // day of the month: 1-31\n\t\tH: date.getHours(), // 24-hour clock: 0-23\n\t\tm: date.getMinutes(), // minute: 0-59\n\t\ts: date.getSeconds(), // seconds: 0-59\n\t};\n}\n\n// Find the differences between consecutive numbers in an array\nfunction getConsecutiveDifferences(elements: number[]): number[] {\n\tif (!elements) {\n\t\treturn;\n\t}\n\treturn elements.slice(1).map((elem, i) => elem - elements[i]);\n}\n\n// Given a duration in ms, return the closest TIME_INTERVAL name\nfunction closestTimeIntervalName(duration: number): string {\n\tconst index = TIME_INTERVALS.reduce(\n\t\t(nearestIndex, [intervalName, delta]: [string, number], i) => {\n\t\t\tconst deltaNearest = TIME_INTERVALS[nearestIndex][1] as number;\n\t\t\tconst oldNearestSpan = Math.abs(deltaNearest - duration);\n\t\t\tconst currentSpan = Math.abs(delta - duration);\n\t\t\treturn oldNearestSpan < currentSpan ? nearestIndex : i;\n\t\t},\n\t\t0\n\t);\n\treturn TIME_INTERVALS[index][0] as string;\n}\n\n// Given an array of timestamps, return the interval name\n// between 15seconds, minute, 30minutes, hourly, daily, weekly, monthly, quarterly, yearly\nexport function computeTimeIntervalName(ticks: number[]): string {\n\t// special case: if the dataset has only one datum, we show the tick in the most detailed way possible\n\tif (ticks.length === 1) {\n\t\treturn '15seconds';\n\t}\n\tconst differences = getConsecutiveDifferences(ticks);\n\tconst minDifference = min(differences);\n\treturn closestTimeIntervalName(minDifference);\n}\n\n// Return true if the day of the month (D = 1-31) is changed, false otherwise\nfunction isDayOfMonthChanged(timestamp: number): boolean {\n\tconst { s, m, H } = getTimeformats(timestamp);\n\treturn H === 0 && m === 0 && s === 0;\n}\n\n// Return true if the month (M = 1-12) is changed from previous tick's timestamp, false otherwise\nfunction isMonthChanged(\n\ttimestamp: number,\n\tpreviousTimestamp?: number\n): boolean {\n\tconst currentMonth = getTimeformats(timestamp).M;\n\tconst previousMonth = getTimeformats(previousTimestamp).M;\n\treturn currentMonth !== previousMonth;\n}\n\n// Return true if the year (YYYY) is changed, false otherwise\nfunction isYearChanged(timestamp: number): boolean {\n\tconst { M, d, s, m, H } = getTimeformats(timestamp);\n\treturn M === 1 && d === 1 && H === 0 && m === 0 && s === 0;\n}\n\n// Return string value of Date with milliseconds\nexport function formatDateTillMilliSeconds(date: Date) {\n\tif (date === undefined) {\n\t\treturn '';\n\t}\n\n\t// The only valid format with millisecond is ISO 8601\n\treturn date.toISOString();\n}\n"]}
|
package/services/zoom.js
CHANGED
|
@@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
// Internal Imports
|
|
15
15
|
import { AxisPositions, Events, ScaleTypes } from '../interfaces';
|
|
16
16
|
import { Service } from './service';
|
|
17
|
-
import
|
|
17
|
+
import * as Tools from '../tools';
|
|
18
18
|
import * as Configuration from '../configuration';
|
|
19
19
|
// D3 imports
|
|
20
20
|
import { extent } from 'd3-array';
|
package/services/zoom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom.js","sourceRoot":"","sources":["zoom.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { AxisPositions, Events, ScaleTypes } from '../interfaces';\nimport { Service } from './service';\nimport { Tools } from '../tools';\nimport * as Configuration from '../configuration';\nimport { ChartModelCartesian } from '../model/cartesian-charts';\n\n// D3 imports\nimport { extent } from 'd3-array';\n\nexport class Zoom extends Service {\n\tprotected model: ChartModelCartesian;\n\n\tisZoomBarEnabled() {\n\t\t// CartesianScales service is only available in axis charts\n\t\tif (!this.services.cartesianScales) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// @todo - need to update this if zoom bar in other position (bottom, left, right) is supported\n\t\t// check configuration\n\t\tif (\n\t\t\t!Tools.getProperty(\n\t\t\t\tthis.model.getOptions(),\n\t\t\t\t'zoomBar',\n\t\t\t\t'top',\n\t\t\t\t'enabled'\n\t\t\t)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// @todo - Zoom Bar only supports main axis at BOTTOM axis and time scale for now\n\t\tthis.services.cartesianScales.findDomainAndRangeAxes(); // need to do this before getMainXAxisPosition()\n\t\tconst mainXAxisPosition = this.services.cartesianScales.getMainXAxisPosition();\n\t\tconst mainXScaleType = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'axes',\n\t\t\tmainXAxisPosition,\n\t\t\t'scaleType'\n\t\t);\n\n\t\treturn (\n\t\t\tmainXAxisPosition === AxisPositions.BOTTOM &&\n\t\t\tmainXScaleType === ScaleTypes.TIME\n\t\t);\n\t}\n\n\t// get display data for zoom bar\n\t// basically it's sum of value grouped by time\n\tgetZoomBarData() {\n\t\tconst customZoomBarData = this.model.getZoomBarData();\n\n\t\t// if user already defines zoom bar data, use it\n\t\tif (customZoomBarData && customZoomBarData.length > 1) {\n\t\t\treturn customZoomBarData;\n\t\t} else {\n\t\t\t// use displayData if not defined\n\t\t\treturn this.model.getDisplayData();\n\t\t}\n\t}\n\n\tgetDefaultZoomBarDomain(zoomBarData?) {\n\t\tconst allZoomBarData =\n\t\t\tzoomBarData || this.services.zoom.getZoomBarData();\n\t\tconst { cartesianScales } = this.services;\n\t\tconst mainXAxisPosition = cartesianScales.getMainXAxisPosition();\n\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier();\n\n\t\tconst customDomain = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'axes',\n\t\t\tmainXAxisPosition,\n\t\t\t'domain'\n\t\t);\n\n\t\t// return custom domain if exists && valid\n\t\tif (Array.isArray(customDomain) && customDomain.length === 2) {\n\t\t\treturn customDomain;\n\t\t}\n\n\t\t// default to full range with extended domain\n\t\treturn cartesianScales.extendsDomain(\n\t\t\tmainXAxisPosition,\n\t\t\textent(allZoomBarData, (d: any) => d[domainIdentifier])\n\t\t);\n\t}\n\n\thandleDomainChange(newDomain, configs = { dispatchEvent: true }) {\n\t\tthis.model.set({ zoomDomain: newDomain }, { animate: false });\n\t\tif (configs.dispatchEvent) {\n\t\t\tthis.services.events.dispatchEvent(Events.ZoomDomain.CHANGE, {\n\t\t\t\tnewDomain,\n\t\t\t});\n\t\t}\n\t}\n\n\tgetZoomRatio() {\n\t\treturn Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\t'zoomRatio'\n\t\t);\n\t}\n\n\t// filter out data not inside zoom domain\n\t// to get better range value for axis label\n\tfilterDataForRangeAxis(displayData: object[], configs?: any) {\n\t\tconst zoomDomain = this.model.get('zoomDomain');\n\t\tconst mergedConfigs = Object.assign(\n\t\t\t{ stacked: false }, // default configs\n\t\t\tconfigs\n\t\t);\n\t\tconst shouldUpdateRangeAxis = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\t'updateRangeAxis'\n\t\t);\n\t\tif (this.isZoomBarEnabled() && shouldUpdateRangeAxis && zoomDomain) {\n\t\t\tconst domainIdentifier = mergedConfigs.stacked\n\t\t\t\t? 'sharedStackKey'\n\t\t\t\t: this.services.cartesianScales.getDomainIdentifier();\n\t\t\tconst filteredData = displayData.filter(\n\t\t\t\t(datum) =>\n\t\t\t\t\tnew Date(datum[domainIdentifier]) >= zoomDomain[0] &&\n\t\t\t\t\tnew Date(datum[domainIdentifier]) <= zoomDomain[1]\n\t\t\t);\n\t\t\t// if no data in zoom domain, use all data to get full range value\n\t\t\t// so only return filteredData if length > 0\n\t\t\tif (filteredData.length > 0) {\n\t\t\t\treturn filteredData;\n\t\t\t}\n\t\t}\n\t\t// return original data by default\n\t\treturn displayData;\n\t}\n\n\tzoomIn(zoomRatio = this.getZoomRatio()) {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\tconst handleWidth = Configuration.zoomBar.handleWidth;\n\t\tconst xScale = this.services.cartesianScales.getMainXScale().copy();\n\t\txScale.domain(this.getDefaultZoomBarDomain()); // reset domain to default full domain\n\n\t\t// use scale range (rather than domain) to calculate\n\t\t// current zoom bar handle x position\n\t\tconst currentX0 = xScale(currentZoomDomain[0]);\n\t\tconst currentX1 = xScale(currentZoomDomain[1]);\n\n\t\t// zoom bar handles are already too close\n\t\tif (currentX1 - currentX0 < handleWidth + 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst fullRange = xScale.range();\n\t\tconst gap = currentX1 - currentX0;\n\t\tconst diff = Math.min(\n\t\t\t((fullRange[1] - fullRange[0]) / 2) * (zoomRatio / 2),\n\t\t\tgap / 2\n\t\t);\n\n\t\t// new zoom bar handle x position\n\t\tlet newX0 = currentX0 + diff;\n\t\tlet newX1 = currentX1 - diff;\n\t\t// if left handle becomes right side of right handle, just make them close to each other\n\t\tif (newX0 >= newX1) {\n\t\t\tnewX0 = currentX0 + gap / 2 - handleWidth / 2;\n\t\t\tnewX1 = currentX1 - gap / 2 + handleWidth / 2;\n\t\t}\n\n\t\tconst newDomain = [xScale.invert(newX0), xScale.invert(newX1)];\n\n\t\t// only if zoomDomain needs update\n\t\tif (\n\t\t\tcurrentZoomDomain[0].valueOf() !== newDomain[0].valueOf() ||\n\t\t\tcurrentZoomDomain[1].valueOf() !== newDomain[1].valueOf()\n\t\t) {\n\t\t\tthis.handleDomainChange(newDomain);\n\t\t}\n\t}\n\n\tzoomOut(zoomRatio = this.getZoomRatio()) {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\tconst xScale = this.services.cartesianScales.getMainXScale().copy();\n\t\txScale.domain(this.getDefaultZoomBarDomain()); // reset domain to default full domain\n\n\t\t// use scale range (rather than domain) to calculate\n\t\t// current zoom bar handle x position\n\t\tconst currentX0 = xScale(currentZoomDomain[0]);\n\t\tconst currentX1 = xScale(currentZoomDomain[1]);\n\n\t\tconst fullRange = xScale.range();\n\t\tconst diff = ((fullRange[1] - fullRange[0]) / 2) * (zoomRatio / 2);\n\n\t\t// new zoom bar handle x position\n\t\t// max to full range\n\t\tconst newX0 = Math.max(currentX0 - diff, fullRange[0]);\n\t\tconst newX1 = Math.min(currentX1 + diff, fullRange[1]);\n\n\t\tconst newDomain = [xScale.invert(newX0), xScale.invert(newX1)];\n\n\t\t// only if zoomDomain needs update\n\t\tif (\n\t\t\tcurrentZoomDomain[0].valueOf() !== newDomain[0].valueOf() ||\n\t\t\tcurrentZoomDomain[1].valueOf() !== newDomain[1].valueOf()\n\t\t) {\n\t\t\tthis.handleDomainChange(newDomain);\n\t\t}\n\t}\n\n\tresetZoomDomain() {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\tconst newDomain = this.getDefaultZoomBarDomain();\n\n\t\t// only if zoomDomain needs update\n\t\tif (\n\t\t\tcurrentZoomDomain[0].valueOf() !== newDomain[0].valueOf() ||\n\t\t\tcurrentZoomDomain[1].valueOf() !== newDomain[1].valueOf()\n\t\t) {\n\t\t\tthis.handleDomainChange(newDomain);\n\t\t}\n\t}\n\n\t// check if current zoom domain is already the min zoom domain\n\t// when toolbar is rendered, we don't render chart yet\n\t// don't depend on scale range\n\tisMinZoomDomain() {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\t// assume the max zoom domain is the default zoom bar domain\n\t\tconst maxZoomDomain = this.getDefaultZoomBarDomain();\n\t\tif (!currentZoomDomain || !maxZoomDomain) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst currentZoomDomainPeriod =\n\t\t\tcurrentZoomDomain[1].valueOf() - currentZoomDomain[0].valueOf();\n\t\tconst maxZoomDomainPeriod =\n\t\t\tmaxZoomDomain[1].valueOf() - maxZoomDomain[0].valueOf();\n\t\tconst minZoomRatio = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\t'minZoomRatio'\n\t\t);\n\t\t// if current zoom domain is already smaller than minZoomRatio\n\t\tif (currentZoomDomainPeriod / maxZoomDomainPeriod < minZoomRatio) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t// check if current zoom domain is already the max zoom domain\n\tisMaxZoomDomain() {\n\t\t// get current zoom domain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\t// assume the max zoom domain is the default zoom bar domain\n\t\tconst maxZoomDomain = this.getDefaultZoomBarDomain();\n\n\t\tif (\n\t\t\tcurrentZoomDomain &&\n\t\t\tmaxZoomDomain &&\n\t\t\tcurrentZoomDomain[0].valueOf() === maxZoomDomain[0].valueOf() &&\n\t\t\tcurrentZoomDomain[1].valueOf() === maxZoomDomain[1].valueOf()\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tisEmptyState() {\n\t\treturn this.getZoomBarData().length === 0;\n\t}\n\n\tisZoomBarLoading(position) {\n\t\treturn Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\tposition,\n\t\t\t'loading'\n\t\t);\n\t}\n\n\tisZoomBarLocked(position) {\n\t\treturn Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\tposition,\n\t\t\t'locked'\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"zoom.js","sourceRoot":"","sources":["zoom.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { AxisPositions, Events, ScaleTypes } from '../interfaces';\nimport { Service } from './service';\nimport * as Tools from '../tools';\nimport * as Configuration from '../configuration';\nimport { ChartModelCartesian } from '../model/cartesian-charts';\n\n// D3 imports\nimport { extent } from 'd3-array';\n\nexport class Zoom extends Service {\n\tprotected model: ChartModelCartesian;\n\n\tisZoomBarEnabled() {\n\t\t// CartesianScales service is only available in axis charts\n\t\tif (!this.services.cartesianScales) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// @todo - need to update this if zoom bar in other position (bottom, left, right) is supported\n\t\t// check configuration\n\t\tif (\n\t\t\t!Tools.getProperty(\n\t\t\t\tthis.model.getOptions(),\n\t\t\t\t'zoomBar',\n\t\t\t\t'top',\n\t\t\t\t'enabled'\n\t\t\t)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// @todo - Zoom Bar only supports main axis at BOTTOM axis and time scale for now\n\t\tthis.services.cartesianScales.findDomainAndRangeAxes(); // need to do this before getMainXAxisPosition()\n\t\tconst mainXAxisPosition = this.services.cartesianScales.getMainXAxisPosition();\n\t\tconst mainXScaleType = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'axes',\n\t\t\tmainXAxisPosition,\n\t\t\t'scaleType'\n\t\t);\n\n\t\treturn (\n\t\t\tmainXAxisPosition === AxisPositions.BOTTOM &&\n\t\t\tmainXScaleType === ScaleTypes.TIME\n\t\t);\n\t}\n\n\t// get display data for zoom bar\n\t// basically it's sum of value grouped by time\n\tgetZoomBarData() {\n\t\tconst customZoomBarData = this.model.getZoomBarData();\n\n\t\t// if user already defines zoom bar data, use it\n\t\tif (customZoomBarData && customZoomBarData.length > 1) {\n\t\t\treturn customZoomBarData;\n\t\t} else {\n\t\t\t// use displayData if not defined\n\t\t\treturn this.model.getDisplayData();\n\t\t}\n\t}\n\n\tgetDefaultZoomBarDomain(zoomBarData?) {\n\t\tconst allZoomBarData =\n\t\t\tzoomBarData || this.services.zoom.getZoomBarData();\n\t\tconst { cartesianScales } = this.services;\n\t\tconst mainXAxisPosition = cartesianScales.getMainXAxisPosition();\n\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier();\n\n\t\tconst customDomain = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'axes',\n\t\t\tmainXAxisPosition,\n\t\t\t'domain'\n\t\t);\n\n\t\t// return custom domain if exists && valid\n\t\tif (Array.isArray(customDomain) && customDomain.length === 2) {\n\t\t\treturn customDomain;\n\t\t}\n\n\t\t// default to full range with extended domain\n\t\treturn cartesianScales.extendsDomain(\n\t\t\tmainXAxisPosition,\n\t\t\textent(allZoomBarData, (d: any) => d[domainIdentifier])\n\t\t);\n\t}\n\n\thandleDomainChange(newDomain, configs = { dispatchEvent: true }) {\n\t\tthis.model.set({ zoomDomain: newDomain }, { animate: false });\n\t\tif (configs.dispatchEvent) {\n\t\t\tthis.services.events.dispatchEvent(Events.ZoomDomain.CHANGE, {\n\t\t\t\tnewDomain,\n\t\t\t});\n\t\t}\n\t}\n\n\tgetZoomRatio() {\n\t\treturn Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\t'zoomRatio'\n\t\t);\n\t}\n\n\t// filter out data not inside zoom domain\n\t// to get better range value for axis label\n\tfilterDataForRangeAxis(displayData: object[], configs?: any) {\n\t\tconst zoomDomain = this.model.get('zoomDomain');\n\t\tconst mergedConfigs = Object.assign(\n\t\t\t{ stacked: false }, // default configs\n\t\t\tconfigs\n\t\t);\n\t\tconst shouldUpdateRangeAxis = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\t'updateRangeAxis'\n\t\t);\n\t\tif (this.isZoomBarEnabled() && shouldUpdateRangeAxis && zoomDomain) {\n\t\t\tconst domainIdentifier = mergedConfigs.stacked\n\t\t\t\t? 'sharedStackKey'\n\t\t\t\t: this.services.cartesianScales.getDomainIdentifier();\n\t\t\tconst filteredData = displayData.filter(\n\t\t\t\t(datum) =>\n\t\t\t\t\tnew Date(datum[domainIdentifier]) >= zoomDomain[0] &&\n\t\t\t\t\tnew Date(datum[domainIdentifier]) <= zoomDomain[1]\n\t\t\t);\n\t\t\t// if no data in zoom domain, use all data to get full range value\n\t\t\t// so only return filteredData if length > 0\n\t\t\tif (filteredData.length > 0) {\n\t\t\t\treturn filteredData;\n\t\t\t}\n\t\t}\n\t\t// return original data by default\n\t\treturn displayData;\n\t}\n\n\tzoomIn(zoomRatio = this.getZoomRatio()) {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\tconst handleWidth = Configuration.zoomBar.handleWidth;\n\t\tconst xScale = this.services.cartesianScales.getMainXScale().copy();\n\t\txScale.domain(this.getDefaultZoomBarDomain()); // reset domain to default full domain\n\n\t\t// use scale range (rather than domain) to calculate\n\t\t// current zoom bar handle x position\n\t\tconst currentX0 = xScale(currentZoomDomain[0]);\n\t\tconst currentX1 = xScale(currentZoomDomain[1]);\n\n\t\t// zoom bar handles are already too close\n\t\tif (currentX1 - currentX0 < handleWidth + 1) {\n\t\t\treturn;\n\t\t}\n\t\tconst fullRange = xScale.range();\n\t\tconst gap = currentX1 - currentX0;\n\t\tconst diff = Math.min(\n\t\t\t((fullRange[1] - fullRange[0]) / 2) * (zoomRatio / 2),\n\t\t\tgap / 2\n\t\t);\n\n\t\t// new zoom bar handle x position\n\t\tlet newX0 = currentX0 + diff;\n\t\tlet newX1 = currentX1 - diff;\n\t\t// if left handle becomes right side of right handle, just make them close to each other\n\t\tif (newX0 >= newX1) {\n\t\t\tnewX0 = currentX0 + gap / 2 - handleWidth / 2;\n\t\t\tnewX1 = currentX1 - gap / 2 + handleWidth / 2;\n\t\t}\n\n\t\tconst newDomain = [xScale.invert(newX0), xScale.invert(newX1)];\n\n\t\t// only if zoomDomain needs update\n\t\tif (\n\t\t\tcurrentZoomDomain[0].valueOf() !== newDomain[0].valueOf() ||\n\t\t\tcurrentZoomDomain[1].valueOf() !== newDomain[1].valueOf()\n\t\t) {\n\t\t\tthis.handleDomainChange(newDomain);\n\t\t}\n\t}\n\n\tzoomOut(zoomRatio = this.getZoomRatio()) {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\tconst xScale = this.services.cartesianScales.getMainXScale().copy();\n\t\txScale.domain(this.getDefaultZoomBarDomain()); // reset domain to default full domain\n\n\t\t// use scale range (rather than domain) to calculate\n\t\t// current zoom bar handle x position\n\t\tconst currentX0 = xScale(currentZoomDomain[0]);\n\t\tconst currentX1 = xScale(currentZoomDomain[1]);\n\n\t\tconst fullRange = xScale.range();\n\t\tconst diff = ((fullRange[1] - fullRange[0]) / 2) * (zoomRatio / 2);\n\n\t\t// new zoom bar handle x position\n\t\t// max to full range\n\t\tconst newX0 = Math.max(currentX0 - diff, fullRange[0]);\n\t\tconst newX1 = Math.min(currentX1 + diff, fullRange[1]);\n\n\t\tconst newDomain = [xScale.invert(newX0), xScale.invert(newX1)];\n\n\t\t// only if zoomDomain needs update\n\t\tif (\n\t\t\tcurrentZoomDomain[0].valueOf() !== newDomain[0].valueOf() ||\n\t\t\tcurrentZoomDomain[1].valueOf() !== newDomain[1].valueOf()\n\t\t) {\n\t\t\tthis.handleDomainChange(newDomain);\n\t\t}\n\t}\n\n\tresetZoomDomain() {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\tconst newDomain = this.getDefaultZoomBarDomain();\n\n\t\t// only if zoomDomain needs update\n\t\tif (\n\t\t\tcurrentZoomDomain[0].valueOf() !== newDomain[0].valueOf() ||\n\t\t\tcurrentZoomDomain[1].valueOf() !== newDomain[1].valueOf()\n\t\t) {\n\t\t\tthis.handleDomainChange(newDomain);\n\t\t}\n\t}\n\n\t// check if current zoom domain is already the min zoom domain\n\t// when toolbar is rendered, we don't render chart yet\n\t// don't depend on scale range\n\tisMinZoomDomain() {\n\t\t// get current zoomDomain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\t// assume the max zoom domain is the default zoom bar domain\n\t\tconst maxZoomDomain = this.getDefaultZoomBarDomain();\n\t\tif (!currentZoomDomain || !maxZoomDomain) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst currentZoomDomainPeriod =\n\t\t\tcurrentZoomDomain[1].valueOf() - currentZoomDomain[0].valueOf();\n\t\tconst maxZoomDomainPeriod =\n\t\t\tmaxZoomDomain[1].valueOf() - maxZoomDomain[0].valueOf();\n\t\tconst minZoomRatio = Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\t'minZoomRatio'\n\t\t);\n\t\t// if current zoom domain is already smaller than minZoomRatio\n\t\tif (currentZoomDomainPeriod / maxZoomDomainPeriod < minZoomRatio) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t// check if current zoom domain is already the max zoom domain\n\tisMaxZoomDomain() {\n\t\t// get current zoom domain\n\t\tconst currentZoomDomain = this.model.get('zoomDomain');\n\t\t// assume the max zoom domain is the default zoom bar domain\n\t\tconst maxZoomDomain = this.getDefaultZoomBarDomain();\n\n\t\tif (\n\t\t\tcurrentZoomDomain &&\n\t\t\tmaxZoomDomain &&\n\t\t\tcurrentZoomDomain[0].valueOf() === maxZoomDomain[0].valueOf() &&\n\t\t\tcurrentZoomDomain[1].valueOf() === maxZoomDomain[1].valueOf()\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tisEmptyState() {\n\t\treturn this.getZoomBarData().length === 0;\n\t}\n\n\tisZoomBarLoading(position) {\n\t\treturn Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\tposition,\n\t\t\t'loading'\n\t\t);\n\t}\n\n\tisZoomBarLocked(position) {\n\t\treturn Tools.getProperty(\n\t\t\tthis.model.getOptions(),\n\t\t\t'zoomBar',\n\t\t\tposition,\n\t\t\t'locked'\n\t\t);\n\t}\n}\n"]}
|
package/styles.css
CHANGED
|
@@ -4076,7 +4076,7 @@ div.cds--cc--legend.clickable div.legend-item:not(.additional):hover div.checkbo
|
|
|
4076
4076
|
width: auto;
|
|
4077
4077
|
fill: var(--cds-layer-inverse-absolute, #000000);
|
|
4078
4078
|
}
|
|
4079
|
-
.cds--cc--tooltip .content-box .datapoint-tooltip.bold {
|
|
4079
|
+
.cds--cc--tooltip .content-box .datapoint-tooltip.bold div.label p {
|
|
4080
4080
|
font-weight: 600;
|
|
4081
4081
|
}
|
|
4082
4082
|
.cds--cc--tooltip .content-box .datapoint-tooltip p {
|
package/styles.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/styles/tokens.scss","../src/styles/colors.scss","../src/styles/styles.scss","../src/styles/components/_axis.scss","../../../node_modules/@carbon/themes/scss/generated/_tokens.scss","../../../node_modules/@carbon/styles/scss/theme/_theme.scss","../src/styles/components/_callouts.scss","../src/styles/components/_grid-brush.scss","../../../node_modules/@carbon/styles/scss/components/button/_tokens.scss","../src/styles/components/_grid.scss","../src/styles/components/_ruler.scss","../src/styles/components/_skeleton.scss","../../../node_modules/@carbon/colors/index.scss","../src/styles/components/_skeleton-lines.scss","../src/styles/components/_zero-line.scss","../src/styles/components/_layout.scss","../src/styles/components/_legend.scss","../src/styles/components/_modal.scss","../src/styles/components/_title.scss","../src/styles/components/_meter-title.scss","../src/styles/components/_toolbar.scss","../src/styles/components/_tooltip.scss","../../../node_modules/@carbon/motion/index.scss","../src/styles/components/_threshold.scss","../src/styles/components/_zoom-bar.scss","../src/styles/components/_highlights.scss","../src/styles/components/diagrams/_card-node.scss","../../../node_modules/@carbon/styles/scss/utilities/_focus-outline.scss","../../../node_modules/@carbon/type/scss/_styles.scss","../../../node_modules/@carbon/layout/scss/generated/_spacing.scss","../src/styles/components/diagrams/_shape-node.scss","../src/styles/components/diagrams/_edge.scss","../src/styles/components/diagrams/_marker.scss","../src/styles/components/_color-legend.scss","../src/styles/graphs/_area.scss","../src/styles/graphs/_bubble.scss","../src/styles/graphs/_bullet.scss","../src/styles/graphs/_donut.scss","../src/styles/graphs/_line.scss","../src/styles/graphs/_scatter.scss","../src/styles/graphs/_meter.scss","../src/styles/graphs/_scatter-stacked.scss","../src/styles/graphs/_radar.scss","../src/styles/graphs/_tree.scss","../src/styles/graphs/_treemap.scss","../src/styles/graphs/_gauge.scss","../src/styles/graphs/_pie.scss","../src/styles/graphs/_lollipop.scss","../src/styles/graphs/_circle-pack.scss","../src/styles/graphs/_wordcloud.scss","../src/styles/graphs/_alluvial.scss","../src/styles/graphs/_heatmap.scss","../src/styles/_type.scss","../../../node_modules/@carbon/layout/scss/_convert.scss","../src/styles/_chart-holder.scss","../../../node_modules/@carbon/themes/scss/_theme.scss","../../../node_modules/@carbon/styles/scss/utilities/_custom-property.scss"],"names":[],"mappings":"AAKA;AAAA;AAAA;AAAA;AA0BA;AAAA;AAAA;AAAA;AA4FA;AAAA;AAAA;AAAA;ACxEA;EAEE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AAKF;AAAA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AAOA;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;;AASD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;;AAOD;EACC,MDwSY;ECvSZ,QDwSc;;ACrSf;EACC,MDqSY;ECpSZ,QDqSc;;AClSf;EACC,MDkSY;ECjSZ,QDkSc;;AC9Rd;EACC,MD0RW;ECzRX,QDwRa;;ACrRd;EACC,MDuPqB;;;AG3XzB;EACC;;AAGC;EACC;;AAGD;EACC;EACA;EACA;;AAKA;AAAA;EACC,MCuEqB;EDtErB,QCsEqB;EDrErB;;AAGD;AAAA;EACC,MEEa;;AFEf;EACC,MC4Jc;ED3Jd;;AAGD;EACC;;AAGD;EACC,QC8HgB;;AD3HjB;EACC;EAGA;EACA,MCwIY;;;AEtLf;EACC,QFwLgB;;;AGtLf;EA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AAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AF1BF;ECyFI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AFtBF;ECqFI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AFlBF;ECiFI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AFdF;AAAA;AAEC;AAAA;EAEA;EACA;EACA;EACA;EACA;;;ApDhBD;EACC","file":"styles.css"}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/styles/tokens.scss","../src/styles/colors.scss","../src/styles/styles.scss","../src/styles/components/_axis.scss","../../../node_modules/@carbon/themes/scss/generated/_tokens.scss","../../../node_modules/@carbon/styles/scss/theme/_theme.scss","../src/styles/components/_callouts.scss","../src/styles/components/_grid-brush.scss","../../../node_modules/@carbon/styles/scss/components/button/_tokens.scss","../src/styles/components/_grid.scss","../src/styles/components/_ruler.scss","../src/styles/components/_skeleton.scss","../../../node_modules/@carbon/colors/index.scss","../src/styles/components/_skeleton-lines.scss","../src/styles/components/_zero-line.scss","../src/styles/components/_layout.scss","../src/styles/components/_legend.scss","../src/styles/components/_modal.scss","../src/styles/components/_title.scss","../src/styles/components/_meter-title.scss","../src/styles/components/_toolbar.scss","../src/styles/components/_tooltip.scss","../../../node_modules/@carbon/motion/index.scss","../src/styles/components/_threshold.scss","../src/styles/components/_zoom-bar.scss","../src/styles/components/_highlights.scss","../src/styles/components/diagrams/_card-node.scss","../../../node_modules/@carbon/styles/scss/utilities/_focus-outline.scss","../../../node_modules/@carbon/type/scss/_styles.scss","../../../node_modules/@carbon/layout/scss/generated/_spacing.scss","../src/styles/components/diagrams/_shape-node.scss","../src/styles/components/diagrams/_edge.scss","../src/styles/components/diagrams/_marker.scss","../src/styles/components/_color-legend.scss","../src/styles/graphs/_area.scss","../src/styles/graphs/_bubble.scss","../src/styles/graphs/_bullet.scss","../src/styles/graphs/_donut.scss","../src/styles/graphs/_line.scss","../src/styles/graphs/_scatter.scss","../src/styles/graphs/_meter.scss","../src/styles/graphs/_scatter-stacked.scss","../src/styles/graphs/_radar.scss","../src/styles/graphs/_tree.scss","../src/styles/graphs/_treemap.scss","../src/styles/graphs/_gauge.scss","../src/styles/graphs/_pie.scss","../src/styles/graphs/_lollipop.scss","../src/styles/graphs/_circle-pack.scss","../src/styles/graphs/_wordcloud.scss","../src/styles/graphs/_alluvial.scss","../src/styles/graphs/_heatmap.scss","../src/styles/_type.scss","../../../node_modules/@carbon/layout/scss/_convert.scss","../src/styles/_chart-holder.scss","../../../node_modules/@carbon/themes/scss/_theme.scss","../../../node_modules/@carbon/styles/scss/utilities/_custom-property.scss"],"names":[],"mappings":"AAKA;AAAA;AAAA;AAAA;AA0BA;AAAA;AAAA;AAAA;AA4FA;AAAA;AAAA;AAAA;ACxEA;EAEE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AAKF;AAAA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AAOA;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;AA1BD;EACC;;AAEA;EACC;ECpDH;;ADyDC;EACC;;AAEA;EACC;EC7DH;;ADqEC;EACC;;AAGD;EACC;;;AASD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;;AAOD;EACC,MDwSY;ECvSZ,QDwSc;;ACrSf;EACC,MDqSY;ECpSZ,QDqSc;;AClSf;EACC,MDkSY;ECjSZ,QDkSc;;AC9Rd;EACC,MD0RW;ECzRX,QDwRa;;ACrRd;EACC,MDuPqB;;;AG3XzB;EACC;;AAGC;EACC;;AAGD;EACC;EACA;EACA;;AAKA;AAAA;EACC,MCuEqB;EDtErB,QCsEqB;EDrErB;;AAGD;AAAA;EACC,MEEa;;AFEf;EACC,MC4Jc;ED3Jd;;AAGD;EACC;;AAGD;EACC,QC8HgB;;AD3HjB;EACC;EAGA;EACA,MCwIY;;;AEtLf;EACC,QFwLgB;;;AGtLf;EA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AAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AF1BF;ECyFI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AFtBF;ECqFI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AFlBF;ECiFI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EC/DF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AFdF;AAAA;AAEC;AAAA;EAEA;EACA;EACA;EACA;EACA;;;ApDhBD;EACC","file":"styles.css"}
|