@amcharts/amcharts5 5.16.0 → 5.16.2
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/.internal/charts/flow/Chord.d.ts.map +1 -1
- package/.internal/charts/flow/Chord.js +15 -17
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.d.ts +21 -0
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +60 -3
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +1 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
- package/.internal/charts/hierarchy/LinkedHierarchy.d.ts +1 -0
- package/.internal/charts/hierarchy/LinkedHierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/LinkedHierarchy.js +9 -9
- package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/Tree.d.ts +20 -0
- package/.internal/charts/hierarchy/Tree.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Tree.js +11 -1
- package/.internal/charts/hierarchy/Tree.js.map +1 -1
- package/.internal/charts/hierarchy/Treemap.d.ts +1 -1
- package/.internal/charts/hierarchy/Treemap.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Treemap.js +9 -7
- package/.internal/charts/hierarchy/Treemap.js.map +1 -1
- package/.internal/charts/map/ClusteredPointSeries.d.ts +0 -2
- package/.internal/charts/map/ClusteredPointSeries.d.ts.map +1 -1
- package/.internal/charts/map/ClusteredPointSeries.js +117 -55
- package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
- package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPointSeries.js +2 -0
- package/.internal/charts/map/MapPointSeries.js.map +1 -1
- package/.internal/charts/wordcloud/WordCloud.d.ts +1 -1
- package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
- package/.internal/charts/wordcloud/WordCloud.js +18 -24
- package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +7 -3
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +11 -4
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.d.ts +15 -2
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +102 -79
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +8 -6
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +13 -5
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts +1 -1
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +12 -10
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/util/Array.d.ts.map +1 -1
- package/.internal/core/util/Array.js +5 -2
- package/.internal/core/util/Array.js.map +1 -1
- package/.internal/core/util/PopulateString.d.ts +23 -1
- package/.internal/core/util/PopulateString.d.ts.map +1 -1
- package/.internal/core/util/PopulateString.js +19 -5
- package/.internal/core/util/PopulateString.js.map +1 -1
- package/CHANGELOG.md +22 -0
- package/README.md +12 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gantt/package.json +1 -1
- package/examples/javascript/gantt-multilevel/package.json +1 -1
- package/examples/javascript/gantt-simple/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-clustered-points/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
- package/examples/javascript/timeline-spiral-chart/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gantt/package.json +1 -1
- package/examples/typescript/gantt-multilevel/package.json +1 -1
- package/examples/typescript/gantt-simple/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-clustered-points/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
- package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
- package/examples/typescript/timeline-spiral-chart/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Array.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAWhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAUhF;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAMxF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAO/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAQnG;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAErD;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1E;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAG5E;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAM1D;AAGD;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAe9D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAUnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAe3E;AAGD;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAcxE;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAI5D;AAGD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAiB5E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAOxD;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAarD;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAqB,GAAG,KAAK,CAAC,CAAC,CAAC,CAQjG;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAUvG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAW9G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS,CAMzG;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS,CAMhH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAUrH;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAiBzC;AAGD,oBAAY,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Array.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIvC;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAWhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAUhF;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAMxF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAO/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAQnG;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAErD;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1E;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAG5E;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAM1D;AAGD;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAe9D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAUnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAe3E;AAGD;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAcxE;AAGD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAI5D;AAGD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAiB5E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAOxD;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAarD;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAqB,GAAG,KAAK,CAAC,CAAC,CAAC,CAQjG;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAUvG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAW9G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS,CAMzG;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS,CAMhH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAUrH;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAiBzC;AAGD,oBAAY,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAAG,UAAU,CAgClG;AAGD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAAG,UAAU,CA8BvG;AAGD,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAU5E"}
|
|
@@ -508,7 +508,10 @@ export function getSortedIndex(array, ordering) {
|
|
|
508
508
|
}
|
|
509
509
|
else if (order === 0) {
|
|
510
510
|
found = true;
|
|
511
|
-
start = pivot + 1;
|
|
511
|
+
for (start = pivot + 1; start < end && ordering(array[start]) === 0; start++)
|
|
512
|
+
;
|
|
513
|
+
start--;
|
|
514
|
+
break;
|
|
512
515
|
// more
|
|
513
516
|
}
|
|
514
517
|
else {
|
|
@@ -517,7 +520,7 @@ export function getSortedIndex(array, ordering) {
|
|
|
517
520
|
}
|
|
518
521
|
return {
|
|
519
522
|
found: found,
|
|
520
|
-
index:
|
|
523
|
+
index: start
|
|
521
524
|
};
|
|
522
525
|
}
|
|
523
526
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Array.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport type { Optional } from \"./Type\";\nimport * as $type from \"./Type\";\n\n\n/**\n * ============================================================================\n * UTILITY FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Searches `array` for `value`.\n *\n * Returns -1 if not found.\n *\n * @param array Source array\n * @param value Value to search\n * @returns Index\n */\nexport function indexOf<A>(array: ArrayLike<A>, value: A): number {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\t// TODO handle NaN\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n * Calls `test` for each element in `array`.\n *\n * If `test` returns `true` then it immediately returns `true`.\n *\n * If `test` returns `false` for all of the elements in `array` then it returns `false`.\n *\n * @param array Source array\n * @param test Function which is called on each element\n * @returns Whether `test` returned true or not\n */\nexport function any<A>(array: ArrayLike<A>, test: (value: A) => boolean): boolean {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (test(array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Calls `fn` function for every member of array and returns a new array out\n * of all outputs.\n *\n * @param array Source array\n * @param fn Callback function\n * @returns New array\n */\nexport function map<A, B>(array: ArrayLike<A>, fn: (value: A, index: number) => B): Array<B> {\n\tconst length = array.length;\n\tconst output = new Array(length);\n\n\tfor (let i = 0; i < length; ++i) {\n\t\toutput[i] = fn(array[i], i);\n\t}\n\n\treturn output;\n}\n\n/**\n * Iterates through all items in array and calls `fn` function for each of\n * them.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function each<A>(array: ArrayLike<A>, fn: (value: A, index: number) => void): void {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tfn(array[i], i);\n\t}\n}\n\n/**\n * Iterates through all items in array in reverse order and calls `fn` function for each of\n * them.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function eachReverse<A>(array: ArrayLike<A>, fn: (value: A, index: number) => void): void {\n\tlet i = array.length;\n\n\twhile (i > 0) {\n\t\t--i;\n\t\tfn(array[i], i);\n\t}\n}\n\n/**\n * Iterates through all items in array and calls `fn` function for each of\n * them.\n *\n * If `fn` call evaluates to `false`, further iteration is cancelled.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function eachContinue<A>(array: ArrayLike<A>, fn: (value: A, index: number) => boolean): void {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (!fn(array[i], i)) {\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/**\n * Shifts an item at `index` towards beginning of the array.\n *\n * @param array Source array\n * @param index Target element index\n */\nexport function shiftLeft<A>(array: Array<A>, index: number): void {\n\tconst length = array.length;\n\n\tfor (let i = index; i < length; ++i) {\n\t\tarray[i - index] = array[i];\n\t}\n\n\tarray.length = length - index;\n}\n\n/**\n * Returns the last item of the array.\n *\n * @param array Source array\n * @returns Last item\n */\nexport function last<A>(array: Array<A>): Optional<A> {\n\tconst length = array.length;\n\treturn length ? array[length - 1] : undefined;\n}\n\n/**\n * Returns the first item of the array.\n *\n * @param array Source array\n * @returns Last item\n */\nexport function first<A>(array: Array<A>): Optional<A> {\n\treturn array[0];\n}\n\n/**\n * Inserts `element` into `array` at `index`.\n *\n * Caps `index` to be between `0` and `array.length`\n *\n * @param array Source array\n * @param element Item to insert\n * @param array Index to insert item at\n */\nexport function insert<A>(array: Array<A>, element: A, index: number): void {\n\t//if (array) {\n\tindex = Math.max(0, Math.min(index, array.length));\n\tarray.splice(index, 0, element);\n\t//}\n}\n\n/**\n * Removes all copies of `element` from `array` (if they exist) and then\n * inserts `element` at `index`.\n *\n * @param array Source array\n * @param element Item\n * @param array Index to move item to\n */\nexport function setIndex<A>(array: Array<A>, element: A, index: number): void {\n\tremove(array, element);\n\tinsert(array, element, index);\n}\n\n\n/**\n * Pushes all of the elements from `input` into `array`.\n *\n * @param array Output array\n * @param input Input array\n */\nexport function pushAll<A>(array: Array<A>, input: Array<A>) {\n\tconst length = input.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tarray.push(input[i]);\n\t}\n}\n\n\n/**\n * Removes `element` from `array`.\n *\n * If there are multiple copies of `element`, they are all removed.\n *\n * @param array Source array\n * @param element Item to remove\n */\nexport function remove<A>(array: Array<A>, element: A): boolean {\n\tlet found: boolean = false;\n\tlet index: number = 0;\n\n\tfor (;;) {\n\t\tindex = array.indexOf(element, index);\n\n\t\tif (index === -1) {\n\t\t\treturn found;\n\n\t\t} else {\n\t\t\tfound = true;\n\t\t\tarray.splice(index, 1);\n\t\t}\n\t}\n}\n\nexport function removeFirst<A>(array: Array<A>, element: A): boolean {\n\tlet index: number = array.indexOf(element);\n\n\tif (index !== -1) {\n\t\tarray.splice(index, 1);\n\t\treturn true;\n\n\t} else {\n\t\treturn false;\n\t}\n}\n\n/**\n * Adds an `element` to `array`.\n *\n * If array already contains and item like this, it is removed before adding\n * it again.\n *\n * Optionally `toIndex` can be specified to add element at specific index.\n *\n * @param array Source array\n * @param element Item to add\n * @param array Index to move item to\n */\nexport function move<A>(array: Array<A>, element: A, toIndex?: number): void {\n\t// @todo this implementation must be the same as the List.moveValue method\n\t// @todo don't do anything if the desired index is the same as the current index\n\tlet index = indexOf(array, element);\n\n\t// @todo remove all old values rather than only the first ?\n\tif (index !== -1) {\n\t\tremoveIndex(array, index);\n\t}\n\n\tif (toIndex == null) {\n\t\tarray.push(element);\n\t} else {\n\t\tinsertIndex(array, toIndex, element);\n\t}\n}\n\n\n/**\n * Inserts `element` into `array` at `index`.\n *\n * If `index` is not provided, it will insert `element` at the end of `array`.\n *\n * @param array Source array\n * @param element Item to add\n * @param array Index to add item at\n */\nexport function add<A>(array: Array<A>, element: A, index?: number): void {\n\t// Append to the end if index is not set\n\tif (!$type.isNumber(index)) {\n\t\tarray.push(element);\n\t}\n\n\t// Add to the beginning of array if index is 0\n\telse if (index === 0) {\n\t\tarray.unshift(element);\n\t}\n\t// Add to indicated place if index is set\n\telse {\n\t\tarray.splice(index, 0, element);\n\t}\n}\n\n\n/**\n * Pushes `element` into `array` if it doesn't already exist.\n *\n * @param array Source array\n * @param element Item to add\n */\nexport function pushOne<A>(array: Array<A>, element: A): void {\n\tif (array.indexOf(element) === -1) {\n\t\tarray.push(element);\n\t}\n}\n\n\n/**\n * Removes `element` from `array` (if it exists) and then inserts `element` at\n * `index`.\n *\n * If `index` is not provided, it will insert `element` at the end of `array`.\n *\n * @param array Source array\n * @param element Item to remove\n * @param array Index to move item to\n */\nexport function replace<A>(array: Array<A>, element: A, index?: number): void {\n\t// check if exists\n\tlet ind: number = array.indexOf(element);\n\n\t// remove if exists\n\tif (ind !== -1) {\n\t\tarray.splice(ind, 1);\n\t}\n\n\t// add to end if index is not set\n\tif (!$type.isNumber(index)) {\n\t\tarray.push(element);\n\t}\n\t// add to indicated place if index is set\n\telse {\n\t\tarray.splice(index, 0, element);\n\t}\n}\n\n/**\n * Wraps `input` in an array, if it isn't already an array.\n *\n * @param input Source value\n * @return An array\n */\nexport function toArray<A>(input: Array<A> | A): Array<A> {\n\tif (Array.isArray(input)) {\n\t\treturn input;\n\t}\n\telse {\n\t\treturn [input];\n\t}\n}\n\n/**\n * Returns `true` if `element` exists in `array`.\n *\n * @param array Source array\n * @param element Item to search for\n * @returns Item in array?\n */\nexport function has<A>(array: ArrayLike<A>, element: A): boolean {\n\treturn indexOf(array, element) !== -1;\n}\n\n/**\n * Returns a shallow copy of `array`.\n *\n * @param array Source array\n * @returns Copy of the array\n */\nexport function copy<A>(array: ArrayLike<A>): Array<A> {\n\tconst length = array.length;\n\n\t// It's faster to create the array with a pre-defined length\n\tconst output = new Array(length);\n\n\tfor (let i = 0; i < length; ++i) {\n\t\t// Because the array has a pre-defined length, we have to assign rather than push\n\t\t// This is also faster than pushing\n\t\toutput[i] = array[i];\n\t}\n\n\treturn output;\n}\n\n\n/**\n * Returns a copy of `array` which contains all the elements between `start`\n * and `end`. (including `start` and excluding `end`)\n *\n * If `end` is not provided, it defaults to `array.length`.\n *\n * @param array Source array\n * @param start Start index\n * @param end End index\n * @returns Part of the array\n */\nexport function slice<A>(array: ArrayLike<A>, start: number, end: number = array.length): Array<A> {\n\tconst output = new Array(end - start);\n\n\tfor (let i = start; i < end; ++i) {\n\t\toutput[i - start] = array[i];\n\t}\n\n\treturn output;\n}\n\n/**\n * Inserts a value into array at specific index.\n *\n * @param array Source array\n * @param index Index\n * @param value Value to insert\n */\nexport function insertIndex<A>(array: Array<A>, index: number, value: A): void {\n\tarray.splice(index, 0, value);\n}\n\n/**\n * Removes a value from array at specific index.\n *\n * @param array Source array\n * @param index Index\n */\nexport function removeIndex<A>(array: Array<A>, index: number): void {\n\tarray.splice(index, 1);\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface SortResult {\n\tfound: boolean;\n\tindex: number\n}\n\n/**\n * Searches the array using custom function and returns index of the item if\n * found.\n *\n * Will call `matches` function on all items of the array. If return value\n * evaluates to `true`, index is returned.\n *\n * Otherwise returns -1.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Index of the item if found\n */\nexport function findIndex<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): number {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (matches(array[i], i)) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n * This is the same as `findIndex` except it searches from right to left.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Index of the item if found\n */\nexport function findIndexReverse<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): number {\n\tlet i = array.length;\n\n\twhile (i > 0) {\n\t\t--i;\n\t\tif (matches(array[i], i)) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n * Searches the array using custom function and returns item if found.\n *\n * Will call `matches` function on all items of the array. If return value\n * evaluates to `true`, index is returned.\n *\n * Otherwise returns `undefined`.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Item if found\n */\nexport function find<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): A | undefined {\n\tconst index = findIndex(array, matches);\n\n\tif (index !== -1) {\n\t\treturn array[index];\n\t}\n}\n\n/**\n * This is the same as `find` except it searches from right to left.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Item if found\n */\nexport function findReverse<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): A | undefined {\n\tconst index = findIndexReverse(array, matches);\n\n\tif (index !== -1) {\n\t\treturn array[index];\n\t}\n}\n\n/**\n * Searches the array using custom function and returns item if found.\n *\n * Will call `matches` function on all items of the array. If value\n * is not `undefined`, it returns it.\n *\n * Otherwise returns `undefined`.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Item if found\n */\nexport function findMap<A, B>(array: ArrayLike<A>, matches: (value: A, index: number) => B | undefined): B | undefined {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tconst value = matches(array[i], i);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\t\t}\n\t}\n}\n\n/**\n * Iterates through all items in array and calls `fn` function for each of\n * them.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function shuffle<A>(array: Array<A>) {\n\t// https://stackoverflow.com/a/2450976/449477\n\tlet currentIndex = array.length,\n\t\ttemporaryValue,\n\t\trandomIndex;\n\n\t// While there remain elements to shuffle...\n\twhile (0 !== currentIndex) {\n\t\t// Pick a remaining element...\n\t\trandomIndex = Math.floor(Math.random() * currentIndex);\n\t\tcurrentIndex -= 1;\n\n\t\t// And swap it with the current element.\n\t\ttemporaryValue = array[currentIndex];\n\t\tarray[currentIndex] = array[randomIndex];\n\t\tarray[randomIndex] = temporaryValue;\n\t}\n}\n\n\nexport type Ordering = -1 | 0 | 1;\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface SortResult {\n\tfound: boolean;\n\tindex: number\n}\n\n/**\n * Orders an array using specific `ordering` function and returns right-most index of\n * the `value`.\n *\n * @ignore Exclude from docs\n * @param array Source array\n * @param ordering An ordering function\n * @returns Result of the search\n */\nexport function getSortedIndex<A>(array: ArrayLike<A>, ordering: (left: A) => Ordering): SortResult {\n\tlet start = 0;\n\tlet end = array.length;\n\tlet found = false;\n\n\twhile (start < end) {\n\t\t// TODO is this faster/slower than using Math.floor ?\n\t\tconst pivot = (start + end) >> 1;\n\n\t\tconst order = ordering(array[pivot]);\n\n\t\t// less\n\t\tif (order < 0) {\n\t\t\tstart = pivot + 1;\n\n\t\t// equal\n\t\t} else if (order === 0) {\n\t\t\tfound = true;\n\t\t\tstart = pivot + 1;\n\n\t\t// more\n\t\t} else {\n\t\t\tend = pivot;\n\t\t}\n\t}\n\n\treturn {\n\t\tfound: found,\n\t\tindex: (found ? start - 1 : start)\n\t};\n}\n\n\n/**\n * Orders an array using specific `ordering` function and returns left-most index of\n * the `value`.\n *\n * @ignore Exclude from docs\n * @param array Source array\n * @param ordering An ordering function\n * @returns Result of the search\n */\nexport function getFirstSortedIndex<A>(array: ArrayLike<A>, ordering: (left: A) => Ordering): SortResult {\n\tlet start = 0;\n\tlet end = array.length;\n\tlet found = false;\n\n\twhile (start < end) {\n\t\t// TODO is this faster/slower than using Math.floor ?\n\t\tconst pivot = (start + end) >> 1;\n\n\t\tconst order = ordering(array[pivot]);\n\n\t\t// less\n\t\tif (order < 0) {\n\t\t\tstart = pivot + 1;\n\n\t\t// equal\n\t\t} else if (order === 0) {\n\t\t\tfound = true;\n\t\t\tend = pivot;\n\n\t\t// more\n\t\t} else {\n\t\t\tend = pivot;\n\t\t}\n\t}\n\n\treturn {\n\t\tfound: found,\n\t\tindex: start\n\t};\n}\n\n\nexport function keepIf<A>(array: Array<A>, keep: (value: A) => boolean): void {\n\tlet i = array.length;\n\n\twhile (i > 0) {\n\t\t--i;\n\n\t\tif (!keep(array[i])) {\n\t\t\tarray.splice(i, 1);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Array.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport type { Optional } from \"./Type\";\nimport * as $type from \"./Type\";\n\n\n/**\n * ============================================================================\n * UTILITY FUNCTIONS\n * ============================================================================\n * @hidden\n */\n\n/**\n * Searches `array` for `value`.\n *\n * Returns -1 if not found.\n *\n * @param array Source array\n * @param value Value to search\n * @returns Index\n */\nexport function indexOf<A>(array: ArrayLike<A>, value: A): number {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\t// TODO handle NaN\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n * Calls `test` for each element in `array`.\n *\n * If `test` returns `true` then it immediately returns `true`.\n *\n * If `test` returns `false` for all of the elements in `array` then it returns `false`.\n *\n * @param array Source array\n * @param test Function which is called on each element\n * @returns Whether `test` returned true or not\n */\nexport function any<A>(array: ArrayLike<A>, test: (value: A) => boolean): boolean {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (test(array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Calls `fn` function for every member of array and returns a new array out\n * of all outputs.\n *\n * @param array Source array\n * @param fn Callback function\n * @returns New array\n */\nexport function map<A, B>(array: ArrayLike<A>, fn: (value: A, index: number) => B): Array<B> {\n\tconst length = array.length;\n\tconst output = new Array(length);\n\n\tfor (let i = 0; i < length; ++i) {\n\t\toutput[i] = fn(array[i], i);\n\t}\n\n\treturn output;\n}\n\n/**\n * Iterates through all items in array and calls `fn` function for each of\n * them.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function each<A>(array: ArrayLike<A>, fn: (value: A, index: number) => void): void {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tfn(array[i], i);\n\t}\n}\n\n/**\n * Iterates through all items in array in reverse order and calls `fn` function for each of\n * them.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function eachReverse<A>(array: ArrayLike<A>, fn: (value: A, index: number) => void): void {\n\tlet i = array.length;\n\n\twhile (i > 0) {\n\t\t--i;\n\t\tfn(array[i], i);\n\t}\n}\n\n/**\n * Iterates through all items in array and calls `fn` function for each of\n * them.\n *\n * If `fn` call evaluates to `false`, further iteration is cancelled.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function eachContinue<A>(array: ArrayLike<A>, fn: (value: A, index: number) => boolean): void {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (!fn(array[i], i)) {\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\n/**\n * Shifts an item at `index` towards beginning of the array.\n *\n * @param array Source array\n * @param index Target element index\n */\nexport function shiftLeft<A>(array: Array<A>, index: number): void {\n\tconst length = array.length;\n\n\tfor (let i = index; i < length; ++i) {\n\t\tarray[i - index] = array[i];\n\t}\n\n\tarray.length = length - index;\n}\n\n/**\n * Returns the last item of the array.\n *\n * @param array Source array\n * @returns Last item\n */\nexport function last<A>(array: Array<A>): Optional<A> {\n\tconst length = array.length;\n\treturn length ? array[length - 1] : undefined;\n}\n\n/**\n * Returns the first item of the array.\n *\n * @param array Source array\n * @returns Last item\n */\nexport function first<A>(array: Array<A>): Optional<A> {\n\treturn array[0];\n}\n\n/**\n * Inserts `element` into `array` at `index`.\n *\n * Caps `index` to be between `0` and `array.length`\n *\n * @param array Source array\n * @param element Item to insert\n * @param array Index to insert item at\n */\nexport function insert<A>(array: Array<A>, element: A, index: number): void {\n\t//if (array) {\n\tindex = Math.max(0, Math.min(index, array.length));\n\tarray.splice(index, 0, element);\n\t//}\n}\n\n/**\n * Removes all copies of `element` from `array` (if they exist) and then\n * inserts `element` at `index`.\n *\n * @param array Source array\n * @param element Item\n * @param array Index to move item to\n */\nexport function setIndex<A>(array: Array<A>, element: A, index: number): void {\n\tremove(array, element);\n\tinsert(array, element, index);\n}\n\n\n/**\n * Pushes all of the elements from `input` into `array`.\n *\n * @param array Output array\n * @param input Input array\n */\nexport function pushAll<A>(array: Array<A>, input: Array<A>) {\n\tconst length = input.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tarray.push(input[i]);\n\t}\n}\n\n\n/**\n * Removes `element` from `array`.\n *\n * If there are multiple copies of `element`, they are all removed.\n *\n * @param array Source array\n * @param element Item to remove\n */\nexport function remove<A>(array: Array<A>, element: A): boolean {\n\tlet found: boolean = false;\n\tlet index: number = 0;\n\n\tfor (;;) {\n\t\tindex = array.indexOf(element, index);\n\n\t\tif (index === -1) {\n\t\t\treturn found;\n\n\t\t} else {\n\t\t\tfound = true;\n\t\t\tarray.splice(index, 1);\n\t\t}\n\t}\n}\n\nexport function removeFirst<A>(array: Array<A>, element: A): boolean {\n\tlet index: number = array.indexOf(element);\n\n\tif (index !== -1) {\n\t\tarray.splice(index, 1);\n\t\treturn true;\n\n\t} else {\n\t\treturn false;\n\t}\n}\n\n/**\n * Adds an `element` to `array`.\n *\n * If array already contains and item like this, it is removed before adding\n * it again.\n *\n * Optionally `toIndex` can be specified to add element at specific index.\n *\n * @param array Source array\n * @param element Item to add\n * @param array Index to move item to\n */\nexport function move<A>(array: Array<A>, element: A, toIndex?: number): void {\n\t// @todo this implementation must be the same as the List.moveValue method\n\t// @todo don't do anything if the desired index is the same as the current index\n\tlet index = indexOf(array, element);\n\n\t// @todo remove all old values rather than only the first ?\n\tif (index !== -1) {\n\t\tremoveIndex(array, index);\n\t}\n\n\tif (toIndex == null) {\n\t\tarray.push(element);\n\t} else {\n\t\tinsertIndex(array, toIndex, element);\n\t}\n}\n\n\n/**\n * Inserts `element` into `array` at `index`.\n *\n * If `index` is not provided, it will insert `element` at the end of `array`.\n *\n * @param array Source array\n * @param element Item to add\n * @param array Index to add item at\n */\nexport function add<A>(array: Array<A>, element: A, index?: number): void {\n\t// Append to the end if index is not set\n\tif (!$type.isNumber(index)) {\n\t\tarray.push(element);\n\t}\n\n\t// Add to the beginning of array if index is 0\n\telse if (index === 0) {\n\t\tarray.unshift(element);\n\t}\n\t// Add to indicated place if index is set\n\telse {\n\t\tarray.splice(index, 0, element);\n\t}\n}\n\n\n/**\n * Pushes `element` into `array` if it doesn't already exist.\n *\n * @param array Source array\n * @param element Item to add\n */\nexport function pushOne<A>(array: Array<A>, element: A): void {\n\tif (array.indexOf(element) === -1) {\n\t\tarray.push(element);\n\t}\n}\n\n\n/**\n * Removes `element` from `array` (if it exists) and then inserts `element` at\n * `index`.\n *\n * If `index` is not provided, it will insert `element` at the end of `array`.\n *\n * @param array Source array\n * @param element Item to remove\n * @param array Index to move item to\n */\nexport function replace<A>(array: Array<A>, element: A, index?: number): void {\n\t// check if exists\n\tlet ind: number = array.indexOf(element);\n\n\t// remove if exists\n\tif (ind !== -1) {\n\t\tarray.splice(ind, 1);\n\t}\n\n\t// add to end if index is not set\n\tif (!$type.isNumber(index)) {\n\t\tarray.push(element);\n\t}\n\t// add to indicated place if index is set\n\telse {\n\t\tarray.splice(index, 0, element);\n\t}\n}\n\n/**\n * Wraps `input` in an array, if it isn't already an array.\n *\n * @param input Source value\n * @return An array\n */\nexport function toArray<A>(input: Array<A> | A): Array<A> {\n\tif (Array.isArray(input)) {\n\t\treturn input;\n\t}\n\telse {\n\t\treturn [input];\n\t}\n}\n\n/**\n * Returns `true` if `element` exists in `array`.\n *\n * @param array Source array\n * @param element Item to search for\n * @returns Item in array?\n */\nexport function has<A>(array: ArrayLike<A>, element: A): boolean {\n\treturn indexOf(array, element) !== -1;\n}\n\n/**\n * Returns a shallow copy of `array`.\n *\n * @param array Source array\n * @returns Copy of the array\n */\nexport function copy<A>(array: ArrayLike<A>): Array<A> {\n\tconst length = array.length;\n\n\t// It's faster to create the array with a pre-defined length\n\tconst output = new Array(length);\n\n\tfor (let i = 0; i < length; ++i) {\n\t\t// Because the array has a pre-defined length, we have to assign rather than push\n\t\t// This is also faster than pushing\n\t\toutput[i] = array[i];\n\t}\n\n\treturn output;\n}\n\n\n/**\n * Returns a copy of `array` which contains all the elements between `start`\n * and `end`. (including `start` and excluding `end`)\n *\n * If `end` is not provided, it defaults to `array.length`.\n *\n * @param array Source array\n * @param start Start index\n * @param end End index\n * @returns Part of the array\n */\nexport function slice<A>(array: ArrayLike<A>, start: number, end: number = array.length): Array<A> {\n\tconst output = new Array(end - start);\n\n\tfor (let i = start; i < end; ++i) {\n\t\toutput[i - start] = array[i];\n\t}\n\n\treturn output;\n}\n\n/**\n * Inserts a value into array at specific index.\n *\n * @param array Source array\n * @param index Index\n * @param value Value to insert\n */\nexport function insertIndex<A>(array: Array<A>, index: number, value: A): void {\n\tarray.splice(index, 0, value);\n}\n\n/**\n * Removes a value from array at specific index.\n *\n * @param array Source array\n * @param index Index\n */\nexport function removeIndex<A>(array: Array<A>, index: number): void {\n\tarray.splice(index, 1);\n}\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface SortResult {\n\tfound: boolean;\n\tindex: number\n}\n\n/**\n * Searches the array using custom function and returns index of the item if\n * found.\n *\n * Will call `matches` function on all items of the array. If return value\n * evaluates to `true`, index is returned.\n *\n * Otherwise returns -1.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Index of the item if found\n */\nexport function findIndex<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): number {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tif (matches(array[i], i)) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n * This is the same as `findIndex` except it searches from right to left.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Index of the item if found\n */\nexport function findIndexReverse<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): number {\n\tlet i = array.length;\n\n\twhile (i > 0) {\n\t\t--i;\n\t\tif (matches(array[i], i)) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n * Searches the array using custom function and returns item if found.\n *\n * Will call `matches` function on all items of the array. If return value\n * evaluates to `true`, index is returned.\n *\n * Otherwise returns `undefined`.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Item if found\n */\nexport function find<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): A | undefined {\n\tconst index = findIndex(array, matches);\n\n\tif (index !== -1) {\n\t\treturn array[index];\n\t}\n}\n\n/**\n * This is the same as `find` except it searches from right to left.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Item if found\n */\nexport function findReverse<A>(array: ArrayLike<A>, matches: (value: A, index: number) => boolean): A | undefined {\n\tconst index = findIndexReverse(array, matches);\n\n\tif (index !== -1) {\n\t\treturn array[index];\n\t}\n}\n\n/**\n * Searches the array using custom function and returns item if found.\n *\n * Will call `matches` function on all items of the array. If value\n * is not `undefined`, it returns it.\n *\n * Otherwise returns `undefined`.\n *\n * @param array Source array\n * @param matches Search function\n * @returns Item if found\n */\nexport function findMap<A, B>(array: ArrayLike<A>, matches: (value: A, index: number) => B | undefined): B | undefined {\n\tconst length = array.length;\n\n\tfor (let i = 0; i < length; ++i) {\n\t\tconst value = matches(array[i], i);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\t\t}\n\t}\n}\n\n/**\n * Iterates through all items in array and calls `fn` function for each of\n * them.\n *\n * @param array Source array\n * @param fn Callback function\n */\nexport function shuffle<A>(array: Array<A>) {\n\t// https://stackoverflow.com/a/2450976/449477\n\tlet currentIndex = array.length,\n\t\ttemporaryValue,\n\t\trandomIndex;\n\n\t// While there remain elements to shuffle...\n\twhile (0 !== currentIndex) {\n\t\t// Pick a remaining element...\n\t\trandomIndex = Math.floor(Math.random() * currentIndex);\n\t\tcurrentIndex -= 1;\n\n\t\t// And swap it with the current element.\n\t\ttemporaryValue = array[currentIndex];\n\t\tarray[currentIndex] = array[randomIndex];\n\t\tarray[randomIndex] = temporaryValue;\n\t}\n}\n\n\nexport type Ordering = -1 | 0 | 1;\n\n/**\n * @ignore Exclude from docs\n * @todo Description\n */\nexport interface SortResult {\n\tfound: boolean;\n\tindex: number\n}\n\n/**\n * Orders an array using specific `ordering` function and returns right-most index of\n * the `value`.\n *\n * @ignore Exclude from docs\n * @param array Source array\n * @param ordering An ordering function\n * @returns Result of the search\n */\nexport function getSortedIndex<A>(array: ArrayLike<A>, ordering: (left: A) => Ordering): SortResult {\n\tlet start = 0;\n\tlet end = array.length;\n\tlet found = false;\n\n\twhile (start < end) {\n\t\t// TODO is this faster/slower than using Math.floor ?\n\t\tconst pivot = (start + end) >> 1;\n\n\t\tconst order = ordering(array[pivot]);\n\n\t\t// less\n\t\tif (order < 0) {\n\t\t\tstart = pivot + 1;\n\n\t\t// equal\n\t\t} else if (order === 0) {\n\t\t\tfound = true;\n\t\t\tfor (start = pivot + 1; start < end && ordering(array[start]) === 0; start++);\n\t\t\tstart--;\n\t\t\tbreak;\n\n\t\t// more\n\t\t} else {\n\t\t\tend = pivot;\n\t\t}\n\t}\n\n\treturn {\n\t\tfound: found,\n\t\tindex: start\n\t};\n}\n\n\n/**\n * Orders an array using specific `ordering` function and returns left-most index of\n * the `value`.\n *\n * @ignore Exclude from docs\n * @param array Source array\n * @param ordering An ordering function\n * @returns Result of the search\n */\nexport function getFirstSortedIndex<A>(array: ArrayLike<A>, ordering: (left: A) => Ordering): SortResult {\n\tlet start = 0;\n\tlet end = array.length;\n\tlet found = false;\n\n\twhile (start < end) {\n\t\t// TODO is this faster/slower than using Math.floor ?\n\t\tconst pivot = (start + end) >> 1;\n\n\t\tconst order = ordering(array[pivot]);\n\n\t\t// less\n\t\tif (order < 0) {\n\t\t\tstart = pivot + 1;\n\n\t\t// equal\n\t\t} else if (order === 0) {\n\t\t\tfound = true;\n\t\t\tend = pivot;\n\n\t\t// more\n\t\t} else {\n\t\t\tend = pivot;\n\t\t}\n\t}\n\n\treturn {\n\t\tfound: found,\n\t\tindex: start\n\t};\n}\n\n\nexport function keepIf<A>(array: Array<A>, keep: (value: A) => boolean): void {\n\tlet i = array.length;\n\n\twhile (i > 0) {\n\t\t--i;\n\n\t\tif (!keep(array[i])) {\n\t\t\tarray.splice(i, 1);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
/** @ignore */ /** */
|
|
2
2
|
import { Sprite } from "../render/Sprite";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Populates the curly-bracket placeholders with actual values from a [[Sprite]].
|
|
5
|
+
*
|
|
6
|
+
* @param target Target Sprite
|
|
7
|
+
* @param string Target text
|
|
8
|
+
* @returns Populated text
|
|
5
9
|
*/
|
|
6
10
|
export declare function populateString(target: Sprite, string: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Returns an abstract value from the target [[Sprite]]'s data item, settings,
|
|
13
|
+
* properties or parents.
|
|
14
|
+
*
|
|
15
|
+
* @param target Target Sprite
|
|
16
|
+
* @param tagName Tage to extract value for
|
|
17
|
+
* @param format Format for the value
|
|
18
|
+
* @returns Value
|
|
19
|
+
*/
|
|
20
|
+
export declare function getTagValue(target: Sprite, tagName: string, format?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Returns a value from target [[Sprite]]'s `customData`.
|
|
23
|
+
*
|
|
24
|
+
* @param target Target Sprite
|
|
25
|
+
* @param prop Key
|
|
26
|
+
* @returns Value
|
|
27
|
+
*/
|
|
28
|
+
export declare function getCustomDataValue(target: Sprite, prop: string): any;
|
|
7
29
|
/**
|
|
8
30
|
* @ignore
|
|
9
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopulateString.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/PopulateString.ts"],"names":[],"mappings":"AAAA,cAAc,CAAA,MAAM;AAIpB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C
|
|
1
|
+
{"version":3,"file":"PopulateString.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/PopulateString.ts"],"names":[],"mappings":"AAAA,cAAc,CAAA,MAAM;AAIpB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0BrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAsHpF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAKpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAkIrG"}
|
|
@@ -4,7 +4,11 @@ import * as $utils from "./Utils";
|
|
|
4
4
|
import { Sprite } from "../render/Sprite";
|
|
5
5
|
import { TextFormatter } from "./TextFormatter";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Populates the curly-bracket placeholders with actual values from a [[Sprite]].
|
|
8
|
+
*
|
|
9
|
+
* @param target Target Sprite
|
|
10
|
+
* @param string Target text
|
|
11
|
+
* @returns Populated text
|
|
8
12
|
*/
|
|
9
13
|
export function populateString(target, string) {
|
|
10
14
|
if (string != null) {
|
|
@@ -31,9 +35,15 @@ export function populateString(target, string) {
|
|
|
31
35
|
return string;
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
|
-
*
|
|
38
|
+
* Returns an abstract value from the target [[Sprite]]'s data item, settings,
|
|
39
|
+
* properties or parents.
|
|
40
|
+
*
|
|
41
|
+
* @param target Target Sprite
|
|
42
|
+
* @param tagName Tage to extract value for
|
|
43
|
+
* @param format Format for the value
|
|
44
|
+
* @returns Value
|
|
35
45
|
*/
|
|
36
|
-
function getTagValue(target, tagName, format) {
|
|
46
|
+
export function getTagValue(target, tagName, format) {
|
|
37
47
|
let value;
|
|
38
48
|
const dataItem = target.dataItem;
|
|
39
49
|
// Parse parts
|
|
@@ -133,9 +143,13 @@ function getTagValue(target, tagName, format) {
|
|
|
133
143
|
return value;
|
|
134
144
|
}
|
|
135
145
|
/**
|
|
136
|
-
*
|
|
146
|
+
* Returns a value from target [[Sprite]]'s `customData`.
|
|
147
|
+
*
|
|
148
|
+
* @param target Target Sprite
|
|
149
|
+
* @param prop Key
|
|
150
|
+
* @returns Value
|
|
137
151
|
*/
|
|
138
|
-
function getCustomDataValue(target, prop) {
|
|
152
|
+
export function getCustomDataValue(target, prop) {
|
|
139
153
|
const customData = target.getPrivate("customData");
|
|
140
154
|
if ($type.isObject(customData)) {
|
|
141
155
|
return customData[prop];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopulateString.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/PopulateString.ts"],"names":[],"mappings":"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","sourcesContent":["/** @ignore *//** */\n\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\nimport { Sprite } from \"../render/Sprite\";\nimport { TextFormatter } from \"./TextFormatter\";\n\n/**\n * @ignore\n */\nexport function populateString(target: Sprite, string: string): string {\n\tif (string != null) {\n\t\tstring = \"\" + string;\n\t\tstring = TextFormatter.escape(string);\n\t\tlet tags = string.match(/\\{([^}]+)\\}/g);\n\t\tlet i;\n\t\tif (tags) {\n\t\t\tfor (i = 0; i < tags.length; i++) {\n\t\t\t\tlet tag = tags[i].replace(/\\{([^}]+)\\}/, \"$1\");\n\t\t\t\tlet value = getTagValue(target, tag, \"\");\n\n\t\t\t\tif (value == null) {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t}\n\n\t\t\t\tstring = string.split(tags[i]).join(value);\n\t\t\t}\n\t\t}\n\t\tstring = TextFormatter.unescape(string);\n\t}\n\telse {\n\t\tstring = \"\";\n\t}\n\n\t// TODO: apply adapter?\n\treturn string;\n}\n\n/**\n * @ignore\n */\nfunction getTagValue(target: Sprite, tagName: string, format?: string): string {\n\tlet value: any;\n\tconst dataItem = target.dataItem;\n\n\t// Parse parts\n\tlet parts: any[] = [];\n\tlet reg = /(format[a-zA-Z]*)\\((.*)\\)|([^.]+)/g;\n\tlet matches;\n\n\twhile (true) {\n\t\tmatches = reg.exec(tagName);\n\n\t\tif (matches === null) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (matches[3]) {\n\t\t\t// Simple property\n\t\t\tparts.push({\n\t\t\t\tprop: matches[3]\n\t\t\t});\n\n\t\t\t// Check if maybe we should force a formatter on this value\n\t\t\tconst dateFields = target.getDateFormatter().get(\"dateFields\", []);\n\t\t\tconst numericFields = target.getNumberFormatter().get(\"numericFields\", []);\n\t\t\tconst durationFields = target.getDurationFormatter().get(\"durationFields\", []);\n\t\t\tif ((<any>dateFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDate\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>numericFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatNumber\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>durationFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDuration\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\t\t\t// Parse parameters\n\t\t\tlet params: any[] = [];\n\t\t\tif ($utils.trim(matches[2]) != \"\") {\n\t\t\t\tlet reg2 = /'([^']*)'|\"([^\"]*)\"|([0-9\\-]+)/g;\n\t\t\t\tlet matches2;\n\n\t\t\t\twhile (true) {\n\t\t\t\t\tmatches2 = reg2.exec(matches[2]);\n\n\t\t\t\t\tif (matches2 === null) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tparams.push(matches2[1] || matches2[2] || matches2[3])\n\t\t\t\t}\n\t\t\t}\n\t\t\tparts.push({\n\t\t\t\tmethod: matches[1],\n\t\t\t\tparams: params\n\t\t\t})\n\t\t}\n\t}\n\n\t// Check if we can retrieve the value from data item\n\tif (dataItem) {\n\n\n\t\t// Check values\n\t\tvalue = getTagValueFromObject(target, parts, dataItem._settings);\n\n\t\t// Check properties\n\t\tif (value == null || $type.isObject(value)) { // isObject helps to solve problem with date axis, as for example dateX will get dateX from values object and won't get to the dateX date.\n\t\t\tvalue = getTagValueFromObject(target, parts, dataItem);\n\t\t}\n\n\t\t// Check data context\n\t\tlet dataContext: any = dataItem.dataContext;\n\n\t\tif (value == null && dataContext) {\n\t\t\tvalue = getTagValueFromObject(target, parts, dataContext);\n\n\t\t\t// Maybe it's a literal dot-separated name of the key in dataContext?\n\t\t\tif (value == null) {\n\t\t\t\tvalue = getTagValueFromObject(target, [{\n\t\t\t\t\tprop: tagName\n\t\t\t\t}], dataContext);\n\t\t\t}\n\n\t\t\t// scond data context level sometimes exist (tree map)\n\t\t\tif (value == null && dataContext.dataContext) {\n\t\t\t\tvalue = getTagValueFromObject(target, parts, dataContext.dataContext);\n\t\t\t}\n\t\t}\n\n\t\t// Check component's data item\n\t\tif (value == null && dataItem.component && dataItem.component.dataItem !== dataItem) {\n\t\t\tvalue = getTagValue(dataItem.component, tagName, format);\n\t\t}\n\t}\n\n\t// Check sprite's properties\n\tif (value == null) {\n\t\tvalue = getTagValueFromObject(target, parts, target);\n\t}\n\n\t// Finally, check the parent\n\tif (value == null && target.parent) {\n\t\tvalue = getTagValue(target.parent, tagName, format);\n\t}\n\n\treturn value;\n}\n\n/**\n * @ignore\n */\nfunction getCustomDataValue(target: Sprite, prop: string): any {\n\tconst customData = target.getPrivate(\"customData\");\n\tif ($type.isObject(customData)) {\n\t\treturn (<any>customData)[prop];\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getTagValueFromObject(target: Sprite, parts: any[], object: any, format?: string): any {\n\tlet current: any = object;\n\tlet formatApplied = false;\n\tfor (let i = 0, len = parts.length; i < len; i++) {\n\t\tlet part = parts[i];\n\t\tif (part.prop) {\n\t\t\t// Regular property\n\t\t\tif (current instanceof Sprite) {\n\t\t\t\tlet tmp = current.get(part.prop);\n\t\t\t\tif (tmp == null) tmp = current.getPrivate(part.prop);\n\t\t\t\tif (tmp == null) tmp = getCustomDataValue(current, part.prop);\n\t\t\t\tif (tmp == null) tmp = (<any>current)[part.prop];\n\t\t\t\tcurrent = tmp;\n\t\t\t}\n\t\t\telse if (current.get) {\n\t\t\t\tlet tmp = current.get(part.prop);\n\t\t\t\tif (tmp == null) tmp = (<any>current)[part.prop];\n\t\t\t\tcurrent = tmp;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcurrent = current[part.prop];\n\t\t\t}\n\n\t\t\tif (current == null) {\n\t\t\t\t// Not set, return undefined\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\n\t\t\tswitch (part.method) {\n\t\t\t\tcase \"formatNumber\":\n\t\t\t\t\tlet numberValue = $type.toNumber(current);\n\t\t\t\t\tif (numberValue != null) {\n\t\t\t\t\t\tcurrent = target.getNumberFormatter().format(\n\t\t\t\t\t\t\tnumberValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDate\":\n\t\t\t\t\tlet dateValue = $type.toDate(current);\n\t\t\t\t\tif (!$type.isDate(dateValue) || $type.isNaN(dateValue.getTime())) {\n\t\t\t\t\t\t// Was not able to get date out of value, quitting and letting\n\t\t\t\t\t\t// calling method try another value\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (dateValue != null) {\n\t\t\t\t\t\tcurrent = target.getDateFormatter().format(\n\t\t\t\t\t\t\tdateValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDuration\":\n\t\t\t\t\tlet durationValue = $type.toNumber(current);\n\t\t\t\t\tif (durationValue != null) {\n\t\t\t\t\t\tcurrent = target.getDurationFormatter().format(\n\t\t\t\t\t\t\tdurationValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined,\n\t\t\t\t\t\t\tpart.params[1] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"urlEncode\":\n\t\t\t\tcase \"encodeURIComponent\":\n\t\t\t\t\tcurrent = encodeURIComponent(current);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (current[part.method]) {\n\t\t\t\t\t\tcurrent[part.method].apply(object, part.params);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply default format if it wasn't applied explicitly\n\tif (!formatApplied) {\n\n\t\tlet formatParts = [{\n\t\t\tmethod: \"\",\n\t\t\tparams: format\n\t\t}];\n\n\t\tif (format == null) {\n\n\t\t\t// Format is not set\n\t\t\t// Determine from the type of the value\n\t\t\tif ($type.isNumber(current)) {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\t\t\telse if ($type.isDate(current)) {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\n\t\t}\n\t\telse {\n\n\t\t\t// Format set\n\t\t\t// Try to determine formatter based on the format\n\t\t\tlet formatterType: string = $utils.getFormat(format);\n\n\t\t\t// format\n\t\t\tif (formatterType === \"number\") {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t}\n\t\t\telse if (formatterType === \"date\") {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t}\n\t\t\telse if (formatterType === \"duration\") {\n\t\t\t\tformatParts[0].method = \"formatDuration\";\n\t\t\t}\n\n\t\t}\n\n\t\t// Apply format\n\t\tif (formatParts[0].method) {\n\t\t\tcurrent = getTagValueFromObject(target, formatParts, current);\n\t\t}\n\n\t}\n\n\treturn current;\n}"]}
|
|
1
|
+
{"version":3,"file":"PopulateString.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/PopulateString.ts"],"names":[],"mappings":"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","sourcesContent":["/** @ignore *//** */\n\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\nimport { Sprite } from \"../render/Sprite\";\nimport { TextFormatter } from \"./TextFormatter\";\n\n/**\n * Populates the curly-bracket placeholders with actual values from a [[Sprite]].\n *\n * @param target Target Sprite\n * @param string Target text\n * @returns Populated text\n */\nexport function populateString(target: Sprite, string: string): string {\n\tif (string != null) {\n\t\tstring = \"\" + string;\n\t\tstring = TextFormatter.escape(string);\n\t\tlet tags = string.match(/\\{([^}]+)\\}/g);\n\t\tlet i;\n\t\tif (tags) {\n\t\t\tfor (i = 0; i < tags.length; i++) {\n\t\t\t\tlet tag = tags[i].replace(/\\{([^}]+)\\}/, \"$1\");\n\t\t\t\tlet value = getTagValue(target, tag, \"\");\n\n\t\t\t\tif (value == null) {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t}\n\n\t\t\t\tstring = string.split(tags[i]).join(value);\n\t\t\t}\n\t\t}\n\t\tstring = TextFormatter.unescape(string);\n\t}\n\telse {\n\t\tstring = \"\";\n\t}\n\n\t// TODO: apply adapter?\n\treturn string;\n}\n\n/**\n * Returns an abstract value from the target [[Sprite]]'s data item, settings,\n * properties or parents.\n *\n * @param target Target Sprite\n * @param tagName Tage to extract value for\n * @param format Format for the value\n * @returns Value\n */\nexport function getTagValue(target: Sprite, tagName: string, format?: string): string {\n\tlet value: any;\n\tconst dataItem = target.dataItem;\n\n\t// Parse parts\n\tlet parts: any[] = [];\n\tlet reg = /(format[a-zA-Z]*)\\((.*)\\)|([^.]+)/g;\n\tlet matches;\n\n\twhile (true) {\n\t\tmatches = reg.exec(tagName);\n\n\t\tif (matches === null) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (matches[3]) {\n\t\t\t// Simple property\n\t\t\tparts.push({\n\t\t\t\tprop: matches[3]\n\t\t\t});\n\n\t\t\t// Check if maybe we should force a formatter on this value\n\t\t\tconst dateFields = target.getDateFormatter().get(\"dateFields\", []);\n\t\t\tconst numericFields = target.getNumberFormatter().get(\"numericFields\", []);\n\t\t\tconst durationFields = target.getDurationFormatter().get(\"durationFields\", []);\n\t\t\tif ((<any>dateFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDate\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>numericFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatNumber\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>durationFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDuration\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\t\t\t// Parse parameters\n\t\t\tlet params: any[] = [];\n\t\t\tif ($utils.trim(matches[2]) != \"\") {\n\t\t\t\tlet reg2 = /'([^']*)'|\"([^\"]*)\"|([0-9\\-]+)/g;\n\t\t\t\tlet matches2;\n\n\t\t\t\twhile (true) {\n\t\t\t\t\tmatches2 = reg2.exec(matches[2]);\n\n\t\t\t\t\tif (matches2 === null) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tparams.push(matches2[1] || matches2[2] || matches2[3])\n\t\t\t\t}\n\t\t\t}\n\t\t\tparts.push({\n\t\t\t\tmethod: matches[1],\n\t\t\t\tparams: params\n\t\t\t})\n\t\t}\n\t}\n\n\t// Check if we can retrieve the value from data item\n\tif (dataItem) {\n\n\n\t\t// Check values\n\t\tvalue = getTagValueFromObject(target, parts, dataItem._settings);\n\n\t\t// Check properties\n\t\tif (value == null || $type.isObject(value)) { // isObject helps to solve problem with date axis, as for example dateX will get dateX from values object and won't get to the dateX date.\n\t\t\tvalue = getTagValueFromObject(target, parts, dataItem);\n\t\t}\n\n\t\t// Check data context\n\t\tlet dataContext: any = dataItem.dataContext;\n\n\t\tif (value == null && dataContext) {\n\t\t\tvalue = getTagValueFromObject(target, parts, dataContext);\n\n\t\t\t// Maybe it's a literal dot-separated name of the key in dataContext?\n\t\t\tif (value == null) {\n\t\t\t\tvalue = getTagValueFromObject(target, [{\n\t\t\t\t\tprop: tagName\n\t\t\t\t}], dataContext);\n\t\t\t}\n\n\t\t\t// scond data context level sometimes exist (tree map)\n\t\t\tif (value == null && dataContext.dataContext) {\n\t\t\t\tvalue = getTagValueFromObject(target, parts, dataContext.dataContext);\n\t\t\t}\n\t\t}\n\n\t\t// Check component's data item\n\t\tif (value == null && dataItem.component && dataItem.component.dataItem !== dataItem) {\n\t\t\tvalue = getTagValue(dataItem.component, tagName, format);\n\t\t}\n\t}\n\n\t// Check sprite's properties\n\tif (value == null) {\n\t\tvalue = getTagValueFromObject(target, parts, target);\n\t}\n\n\t// Finally, check the parent\n\tif (value == null && target.parent) {\n\t\tvalue = getTagValue(target.parent, tagName, format);\n\t}\n\n\treturn value;\n}\n\n/**\n * Returns a value from target [[Sprite]]'s `customData`.\n *\n * @param target Target Sprite\n * @param prop Key\n * @returns Value\n */\nexport function getCustomDataValue(target: Sprite, prop: string): any {\n\tconst customData = target.getPrivate(\"customData\");\n\tif ($type.isObject(customData)) {\n\t\treturn (<any>customData)[prop];\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getTagValueFromObject(target: Sprite, parts: any[], object: any, format?: string): any {\n\tlet current: any = object;\n\tlet formatApplied = false;\n\tfor (let i = 0, len = parts.length; i < len; i++) {\n\t\tlet part = parts[i];\n\t\tif (part.prop) {\n\t\t\t// Regular property\n\t\t\tif (current instanceof Sprite) {\n\t\t\t\tlet tmp = current.get(part.prop);\n\t\t\t\tif (tmp == null) tmp = current.getPrivate(part.prop);\n\t\t\t\tif (tmp == null) tmp = getCustomDataValue(current, part.prop);\n\t\t\t\tif (tmp == null) tmp = (<any>current)[part.prop];\n\t\t\t\tcurrent = tmp;\n\t\t\t}\n\t\t\telse if (current.get) {\n\t\t\t\tlet tmp = current.get(part.prop);\n\t\t\t\tif (tmp == null) tmp = (<any>current)[part.prop];\n\t\t\t\tcurrent = tmp;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcurrent = current[part.prop];\n\t\t\t}\n\n\t\t\tif (current == null) {\n\t\t\t\t// Not set, return undefined\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\n\t\t\tswitch (part.method) {\n\t\t\t\tcase \"formatNumber\":\n\t\t\t\t\tlet numberValue = $type.toNumber(current);\n\t\t\t\t\tif (numberValue != null) {\n\t\t\t\t\t\tcurrent = target.getNumberFormatter().format(\n\t\t\t\t\t\t\tnumberValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDate\":\n\t\t\t\t\tlet dateValue = $type.toDate(current);\n\t\t\t\t\tif (!$type.isDate(dateValue) || $type.isNaN(dateValue.getTime())) {\n\t\t\t\t\t\t// Was not able to get date out of value, quitting and letting\n\t\t\t\t\t\t// calling method try another value\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (dateValue != null) {\n\t\t\t\t\t\tcurrent = target.getDateFormatter().format(\n\t\t\t\t\t\t\tdateValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDuration\":\n\t\t\t\t\tlet durationValue = $type.toNumber(current);\n\t\t\t\t\tif (durationValue != null) {\n\t\t\t\t\t\tcurrent = target.getDurationFormatter().format(\n\t\t\t\t\t\t\tdurationValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined,\n\t\t\t\t\t\t\tpart.params[1] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"urlEncode\":\n\t\t\t\tcase \"encodeURIComponent\":\n\t\t\t\t\tcurrent = encodeURIComponent(current);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (current[part.method]) {\n\t\t\t\t\t\tcurrent[part.method].apply(object, part.params);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply default format if it wasn't applied explicitly\n\tif (!formatApplied) {\n\n\t\tlet formatParts = [{\n\t\t\tmethod: \"\",\n\t\t\tparams: format\n\t\t}];\n\n\t\tif (format == null) {\n\n\t\t\t// Format is not set\n\t\t\t// Determine from the type of the value\n\t\t\tif ($type.isNumber(current)) {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\t\t\telse if ($type.isDate(current)) {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\n\t\t}\n\t\telse {\n\n\t\t\t// Format set\n\t\t\t// Try to determine formatter based on the format\n\t\t\tlet formatterType: string = $utils.getFormat(format);\n\n\t\t\t// format\n\t\t\tif (formatterType === \"number\") {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t}\n\t\t\telse if (formatterType === \"date\") {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t}\n\t\t\telse if (formatterType === \"duration\") {\n\t\t\t\tformatParts[0].method = \"formatDuration\";\n\t\t\t}\n\n\t\t}\n\n\t\t// Apply format\n\t\tif (formatParts[0].method) {\n\t\t\tcurrent = getTagValueFromObject(target, formatParts, current);\n\t\t}\n\n\t}\n\n\treturn current;\n}\n"]}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
|
|
5
5
|
Please note, that this project, while following numbering syntax, it DOES NOT
|
|
6
6
|
adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
|
|
7
7
|
|
|
8
|
+
## [5.16.2] - 2026-03-17
|
|
9
|
+
|
|
10
|
+
## Added
|
|
11
|
+
- `syncZeros` added to `ValueAxis`. It will work only if `syncWithAxis` is set and zero is within min/max of axis.
|
|
12
|
+
- Exposing standalone functions via `index`/`am5`: `populateString()`, `getTagValue()`, `getCustomDataValue()`.
|
|
13
|
+
- `nodeSeparation` setting added to `Tree`. Allows custom separation function between nodes, receiving two data items and returning a numeric value.
|
|
14
|
+
- `setFlatData()` method added to `Hierarchy`. Accepts flat array data with parent ID references and converts it to nested hierarchy format. Works with new `parentIdField` setting.
|
|
15
|
+
- `clustered` setting added to `Tree`. When set to `true`, uses cluster layout (dendrogram) where all leaf nodes are placed at the same depth.
|
|
16
|
+
|
|
17
|
+
## Fixed
|
|
18
|
+
- `minBulletDistance` was not showing/hiding bullets if set dynamically after series was already initialized.
|
|
19
|
+
- Axis syncing algorithm fixed, performance of syncing improved.
|
|
20
|
+
- `Tree` and `ForceDirected` charts with very deep structures were having performance issues.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## [5.16.1] - 2026-03-03
|
|
24
|
+
|
|
25
|
+
## Changed
|
|
26
|
+
- Performance optimization: `ClusteredPointSeries`, `WordCloud`, `GaplessDateAxis`, `Treemap`, `Chord`, `DateAxis`, and others.
|
|
27
|
+
- New defaults for `MapPointSeries`: `longitudeField: "longitude"` and `latitudeField: "latitude"`.
|
|
28
|
+
|
|
29
|
+
|
|
8
30
|
## [5.16.0] - 2026-02-18
|
|
9
31
|
|
|
10
32
|
## Added
|
package/README.md
CHANGED
|
@@ -41,6 +41,18 @@ Those are available via separate package:
|
|
|
41
41
|
* [ZIP download](https://www.amcharts.com/download/download/)
|
|
42
42
|
|
|
43
43
|
|
|
44
|
+
### amCharts + AI
|
|
45
|
+
|
|
46
|
+
amCharts works nicely with all major AI models (Claude, ChatGPT, Gemini,
|
|
47
|
+
etc.). For even better results, we provide the following resources:
|
|
48
|
+
|
|
49
|
+
* [amCharts 5 + AI documentation](https://www.amcharts.com/docs/v5/ai/)
|
|
50
|
+
* [amCharts 5 Skill on GitHub](https://github.com/amcharts/amcharts5-skill)
|
|
51
|
+
* [amCharts 5 MCP Server on GitHub](https://github.com/amcharts/amcharts5-mcp)
|
|
52
|
+
* [amCharts 5 MCP Server on npm](https://www.npmjs.com/package/@amcharts/amcharts5-mcp)
|
|
53
|
+
* [amCharts 5 .cursorrules file](https://github.com/amcharts/amcharts5-skill/blob/main/cursorrules)
|
|
54
|
+
|
|
55
|
+
|
|
44
56
|
### License
|
|
45
57
|
|
|
46
58
|
If you have a commercial amCharts 5 license, this software is covered by your
|