@amcharts/amcharts5 5.2.20 → 5.2.22
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/hierarchy/Hierarchy.d.ts +7 -1
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +12 -4
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
- package/.internal/charts/percent/PercentDefaultTheme.js +8 -8
- package/.internal/charts/percent/PercentDefaultTheme.js.map +1 -1
- package/.internal/charts/stock/StockChart.js +1 -1
- package/.internal/charts/stock/StockChart.js.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.js +62 -16
- package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.js +5 -2
- package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/MedianPrice.d.ts +33 -0
- package/.internal/charts/stock/indicators/MedianPrice.d.ts.map +1 -0
- package/.internal/charts/stock/indicators/MedianPrice.js +104 -0
- package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -0
- package/.internal/charts/stock/indicators/Trix.d.ts +49 -0
- package/.internal/charts/stock/indicators/Trix.d.ts.map +1 -0
- package/.internal/charts/stock/indicators/Trix.js +174 -0
- package/.internal/charts/stock/indicators/Trix.js.map +1 -0
- package/.internal/charts/stock/indicators/TypicalPrice.d.ts +33 -0
- package/.internal/charts/stock/indicators/TypicalPrice.d.ts.map +1 -0
- package/.internal/charts/stock/indicators/TypicalPrice.js +104 -0
- package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -0
- package/.internal/charts/stock/indicators/ZigZag.d.ts +40 -0
- package/.internal/charts/stock/indicators/ZigZag.d.ts.map +1 -0
- package/.internal/charts/stock/indicators/ZigZag.js +204 -0
- package/.internal/charts/stock/indicators/ZigZag.js.map +1 -0
- package/.internal/charts/stock/toolbar/DropdownList.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownList.js +2 -12
- package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.js +31 -0
- package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/StockControl.js +2 -0
- package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockIcons.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/StockIcons.js +1 -0
- package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +2 -0
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.js +6 -2
- package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +15 -6
- 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 +8 -3
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +5 -0
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/core/Classes.d.ts +8 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +6 -3
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/util/DateFormatter.d.ts.map +1 -1
- package/.internal/core/util/DateFormatter.js +7 -1
- package/.internal/core/util/DateFormatter.js.map +1 -1
- package/.internal/core/util/Language.d.ts +2 -0
- package/.internal/core/util/Language.d.ts.map +1 -1
- package/.internal/core/util/Language.js.map +1 -1
- package/.internal/core/util/NumberFormatter.d.ts.map +1 -1
- package/.internal/core/util/NumberFormatter.js +10 -3
- package/.internal/core/util/NumberFormatter.js.map +1 -1
- package/.internal/core/util/Time.d.ts +1 -1
- package/.internal/core/util/Time.d.ts.map +1 -1
- package/.internal/core/util/Time.js +19 -10
- package/.internal/core/util/Time.js.map +1 -1
- package/.internal/core/util/Utils.d.ts +1 -0
- package/.internal/core/util/Utils.d.ts.map +1 -1
- package/.internal/core/util/Utils.js +6 -0
- package/.internal/core/util/Utils.js.map +1 -1
- package/CHANGELOG.md +34 -0
- 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/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/jest/package.json +1 -1
- package/examples/javascript/json/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/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/index.js +30 -0
- 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/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/index.js +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/index.js +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/index.js +2 -2
- package/examples/javascript/xy-stock-comparing/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/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/jest/package.json +1 -1
- package/examples/typescript/json/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/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/index.ts +30 -0
- 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/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/index.ts +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/index.ts +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/index.ts +2 -2
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/locales/ar.d.ts +2 -0
- package/locales/ar.d.ts.map +1 -1
- package/locales/ar.js +3 -0
- package/locales/ar.js.map +1 -1
- package/locales/bs_BA.d.ts +2 -0
- package/locales/bs_BA.d.ts.map +1 -1
- package/locales/bs_BA.js +3 -0
- package/locales/bs_BA.js.map +1 -1
- package/locales/ca_ES.d.ts +2 -0
- package/locales/ca_ES.d.ts.map +1 -1
- package/locales/ca_ES.js +3 -0
- package/locales/ca_ES.js.map +1 -1
- package/locales/cs_CZ.d.ts +2 -0
- package/locales/cs_CZ.d.ts.map +1 -1
- package/locales/cs_CZ.js +3 -0
- package/locales/cs_CZ.js.map +1 -1
- package/locales/da_DK.d.ts +2 -0
- package/locales/da_DK.d.ts.map +1 -1
- package/locales/da_DK.js +3 -0
- package/locales/da_DK.js.map +1 -1
- package/locales/de_CH.d.ts +2 -0
- package/locales/de_CH.d.ts.map +1 -1
- package/locales/de_CH.js +3 -0
- package/locales/de_CH.js.map +1 -1
- package/locales/de_DE.d.ts +2 -0
- package/locales/de_DE.d.ts.map +1 -1
- package/locales/de_DE.js +3 -0
- package/locales/de_DE.js.map +1 -1
- package/locales/el_GR.d.ts +2 -0
- package/locales/el_GR.d.ts.map +1 -1
- package/locales/el_GR.js +3 -0
- package/locales/el_GR.js.map +1 -1
- package/locales/en.d.ts +2 -0
- package/locales/en.d.ts.map +1 -1
- package/locales/en.js +3 -0
- package/locales/en.js.map +1 -1
- package/locales/en_CA.d.ts +2 -0
- package/locales/en_CA.d.ts.map +1 -1
- package/locales/en_CA.js +3 -0
- package/locales/en_CA.js.map +1 -1
- package/locales/en_US.d.ts +2 -0
- package/locales/en_US.d.ts.map +1 -1
- package/locales/en_US.js +3 -0
- package/locales/en_US.js.map +1 -1
- package/locales/es_ES.d.ts +2 -0
- package/locales/es_ES.d.ts.map +1 -1
- package/locales/es_ES.js +3 -0
- package/locales/es_ES.js.map +1 -1
- package/locales/et_EE.d.ts +2 -0
- package/locales/et_EE.d.ts.map +1 -1
- package/locales/et_EE.js +3 -0
- package/locales/et_EE.js.map +1 -1
- package/locales/fi_FI.d.ts +2 -0
- package/locales/fi_FI.d.ts.map +1 -1
- package/locales/fi_FI.js +3 -0
- package/locales/fi_FI.js.map +1 -1
- package/locales/fr_FR.d.ts +2 -0
- package/locales/fr_FR.d.ts.map +1 -1
- package/locales/fr_FR.js +3 -0
- package/locales/fr_FR.js.map +1 -1
- package/locales/he_IL.d.ts +2 -0
- package/locales/he_IL.d.ts.map +1 -1
- package/locales/he_IL.js +3 -0
- package/locales/he_IL.js.map +1 -1
- package/locales/hi_IN.d.ts +2 -0
- package/locales/hi_IN.d.ts.map +1 -1
- package/locales/hi_IN.js +3 -0
- package/locales/hi_IN.js.map +1 -1
- package/locales/hr_HR.d.ts +2 -0
- package/locales/hr_HR.d.ts.map +1 -1
- package/locales/hr_HR.js +3 -0
- package/locales/hr_HR.js.map +1 -1
- package/locales/hu_HU.d.ts +2 -0
- package/locales/hu_HU.d.ts.map +1 -1
- package/locales/hu_HU.js +3 -0
- package/locales/hu_HU.js.map +1 -1
- package/locales/id_ID.d.ts +2 -0
- package/locales/id_ID.d.ts.map +1 -1
- package/locales/id_ID.js +3 -0
- package/locales/id_ID.js.map +1 -1
- package/locales/it_IT.d.ts +2 -0
- package/locales/it_IT.d.ts.map +1 -1
- package/locales/it_IT.js +3 -0
- package/locales/it_IT.js.map +1 -1
- package/locales/ja_JP.d.ts +2 -0
- package/locales/ja_JP.d.ts.map +1 -1
- package/locales/ja_JP.js +3 -0
- package/locales/ja_JP.js.map +1 -1
- package/locales/ko_KR.d.ts +2 -0
- package/locales/ko_KR.d.ts.map +1 -1
- package/locales/ko_KR.js +3 -0
- package/locales/ko_KR.js.map +1 -1
- package/locales/lt_LT.d.ts +2 -0
- package/locales/lt_LT.d.ts.map +1 -1
- package/locales/lt_LT.js +3 -0
- package/locales/lt_LT.js.map +1 -1
- package/locales/lv_LV.d.ts +2 -0
- package/locales/lv_LV.d.ts.map +1 -1
- package/locales/lv_LV.js +3 -0
- package/locales/lv_LV.js.map +1 -1
- package/locales/nb_NO.d.ts +2 -0
- package/locales/nb_NO.d.ts.map +1 -1
- package/locales/nb_NO.js +3 -0
- package/locales/nb_NO.js.map +1 -1
- package/locales/nl_NL.d.ts +2 -0
- package/locales/nl_NL.d.ts.map +1 -1
- package/locales/nl_NL.js +3 -0
- package/locales/nl_NL.js.map +1 -1
- package/locales/pl_PL.d.ts +2 -0
- package/locales/pl_PL.d.ts.map +1 -1
- package/locales/pl_PL.js +3 -0
- package/locales/pl_PL.js.map +1 -1
- package/locales/pt_BR.d.ts +2 -0
- package/locales/pt_BR.d.ts.map +1 -1
- package/locales/pt_BR.js +3 -0
- package/locales/pt_BR.js.map +1 -1
- package/locales/pt_PT.d.ts +2 -0
- package/locales/pt_PT.d.ts.map +1 -1
- package/locales/pt_PT.js +3 -0
- package/locales/pt_PT.js.map +1 -1
- package/locales/ro_RO.d.ts +2 -0
- package/locales/ro_RO.d.ts.map +1 -1
- package/locales/ro_RO.js +3 -0
- package/locales/ro_RO.js.map +1 -1
- package/locales/ru_RU.d.ts +2 -0
- package/locales/ru_RU.d.ts.map +1 -1
- package/locales/ru_RU.js +3 -0
- package/locales/ru_RU.js.map +1 -1
- package/locales/sl_SL.d.ts +2 -0
- package/locales/sl_SL.d.ts.map +1 -1
- package/locales/sl_SL.js +3 -0
- package/locales/sl_SL.js.map +1 -1
- package/locales/sr_RS.d.ts +2 -0
- package/locales/sr_RS.d.ts.map +1 -1
- package/locales/sr_RS.js +3 -0
- package/locales/sr_RS.js.map +1 -1
- package/locales/sv_SE.d.ts +2 -0
- package/locales/sv_SE.d.ts.map +1 -1
- package/locales/sv_SE.js +3 -0
- package/locales/sv_SE.js.map +1 -1
- package/locales/th_TH.d.ts +2 -0
- package/locales/th_TH.d.ts.map +1 -1
- package/locales/th_TH.js +3 -0
- package/locales/th_TH.js.map +1 -1
- package/locales/tr_TR.d.ts +2 -0
- package/locales/tr_TR.d.ts.map +1 -1
- package/locales/tr_TR.js +2 -0
- package/locales/tr_TR.js.map +1 -1
- package/locales/uk_UA.d.ts +2 -0
- package/locales/uk_UA.d.ts.map +1 -1
- package/locales/uk_UA.js +3 -0
- package/locales/uk_UA.js.map +1 -1
- package/locales/vi_VN.d.ts +2 -0
- package/locales/vi_VN.d.ts.map +1 -1
- package/locales/vi_VN.js +3 -0
- package/locales/vi_VN.js.map +1 -1
- package/locales/zh_Hans.d.ts +2 -0
- package/locales/zh_Hans.d.ts.map +1 -1
- package/locales/zh_Hans.js +3 -0
- package/locales/zh_Hans.js.map +1 -1
- package/locales/zh_Hant.d.ts +2 -0
- package/locales/zh_Hant.d.ts.map +1 -1
- package/locales/zh_Hant.js +3 -0
- package/locales/zh_Hant.js.map +1 -1
- package/package.json +1 -1
- package/stock.d.ts +5 -0
- package/stock.d.ts.map +1 -1
- package/stock.js +5 -0
- package/stock.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberFormatter.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/NumberFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Language } from \"./Language\";\n\nimport { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport { TextFormatter } from \"./TextFormatter\";\n\nimport * as $object from \"./Object\";\nimport * as $utils from \"./Utils\";\nimport * as $type from \"./Type\";\n\n/**\n * @ignore\n */\nexport interface INumberSuffix {\n\tnumber: number;\n\tsuffix: string;\n}\n\nexport interface INumberFormatterSettings extends IEntitySettings {\n\n\t/**\n\t * Number format to be used when formatting numbers.\n\t *\n\t * @default \"#,###.#####\"\n\t */\n\tnumberFormat?: string | Intl.NumberFormatOptions;\n\n\t/**\n\t * A threshold value for negative numbers.\n\t *\n\t * @default 0\n\t */\n\tnegativeBase?: number;\n\n\t/**\n\t * Prefixes and thresholds to group big numbers into, e.g. 1M.\n\t *\n\t * Used in conjunction with `a` modifier of the number format.\n\t */\n\tbigNumberPrefixes?: INumberSuffix[];\n\n\t/**\n\t * Prefixes and thresholds to group small numbers into, e.g. 1m.\n\t *\n\t * Used in conjunction with `a` modifier of the number format.\n\t */\n\tsmallNumberPrefixes?: INumberSuffix[];\n\n\t/**\n\t * All numbers below this value are considered small.\n\t *\n\t * @default 1\n\t */\n\tsmallNumberThreshold?: number;\n\n\t/**\n\t * Prefixes to and thresholds to use when grouping data size numbers, e.g. 1MB.\n\t *\n\t * Used in conjunction with `b` modifier of the number format.\n\t */\n\tbytePrefixes?: INumberSuffix[];\n\n\t/**\n\t * Indicates which fields in data should be considered numeric.\n\t *\n\t * It is used when formatting data placeholder values.\n\t */\n\tnumericFields?: string[];\n\n\t/**\n\t * Locales if you are using date formats in `Intl.NumberFormatOptions` syntax.\n\t *\n\t * @see (@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat) about using Intl for number formatting\n\t * @param value Locales\n\t */\n\tintlLocales?: string;\n\n}\n\nexport interface INumberFormatterPrivate extends IEntityPrivate {\n}\n\n/**\n * Number formatter\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/} for more info\n * @important\n */\nexport class NumberFormatter extends Entity {\n\tdeclare public _settings: INumberFormatterSettings;\n\tdeclare public _privateSettings: INumberFormatterPrivate;\n\n\tprotected _setDefaults() {\n\t\t// Defaults\n\t\tthis._setDefault(\"negativeBase\", 0);\n\t\tthis._setDefault(\"numberFormat\", \"#,###.#####\");\n\t\tthis._setDefault(\"smallNumberThreshold\", 1.00);\n\n\t\tconst bns = \"_big_number_suffix_\";\n\t\tconst sns = \"_small_number_suffix_\";\n\t\tconst bs = \"_byte_suffix_\";\n\n\t\tthis._setDefault(\"bigNumberPrefixes\", [\n\t\t\t{ \"number\": 1e+3, \"suffix\": this._t(bns + \"3\") },\n\t\t\t{ \"number\": 1e+6, \"suffix\": this._t(bns + \"6\") },\n\t\t\t{ \"number\": 1e+9, \"suffix\": this._t(bns + \"9\") },\n\t\t\t{ \"number\": 1e+12, \"suffix\": this._t(bns + \"12\") },\n\t\t\t{ \"number\": 1e+15, \"suffix\": this._t(bns + \"15\") },\n\t\t\t{ \"number\": 1e+18, \"suffix\": this._t(bns + \"18\") },\n\t\t\t{ \"number\": 1e+21, \"suffix\": this._t(bns + \"21\") },\n\t\t\t{ \"number\": 1e+24, \"suffix\": this._t(bns + \"24\") }\n\t\t]);\n\n\t\tthis._setDefault(\"smallNumberPrefixes\", [\n\t\t\t{ \"number\": 1e-24, \"suffix\": this._t(sns + \"24\") },\n\t\t\t{ \"number\": 1e-21, \"suffix\": this._t(sns + \"21\") },\n\t\t\t{ \"number\": 1e-18, \"suffix\": this._t(sns + \"18\") },\n\t\t\t{ \"number\": 1e-15, \"suffix\": this._t(sns + \"15\") },\n\t\t\t{ \"number\": 1e-12, \"suffix\": this._t(sns + \"12\") },\n\t\t\t{ \"number\": 1e-9, \"suffix\": this._t(sns + \"9\") },\n\t\t\t{ \"number\": 1e-6, \"suffix\": this._t(sns + \"6\") },\n\t\t\t{ \"number\": 1e-3, \"suffix\": this._t(sns + \"3\") }\n\t\t]);\n\n\t\tthis._setDefault(\"bytePrefixes\", [\n\t\t\t{ \"number\": 1, suffix: this._t(bs + \"B\") },\n\t\t\t{ \"number\": 1024, suffix: this._t(bs + \"KB\") },\n\t\t\t{ \"number\": 1048576, suffix: this._t(bs + \"MB\") },\n\t\t\t{ \"number\": 1073741824, suffix: this._t(bs + \"GB\") },\n\t\t\t{ \"number\": 1099511627776, suffix: this._t(bs + \"TB\") },\n\t\t\t{ \"number\": 1125899906842624, suffix: this._t(bs + \"PB\") }\n\t\t]);\n\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\t}\n\n\t/**\n\t * Formats the number according to specific format.\n\t *\n\t * @param value Value to format\n\t * @param format Format to apply\n\t * @return Formatted number\n\t */\n\tpublic format(value: number | string, format?: string | Intl.NumberFormatOptions, precision?: number): string {\n\n\t\t// no format passed in or \"Number\"\n\t\tif (format == null || ($type.isString(format) && format.toLowerCase() === \"number\")) {\n\t\t\tformat = this.get(\"numberFormat\", \"\");\n\t\t}\n\n\t\t// Init return value\n\t\tlet formatted;\n\n\t\t// Cast to number just in case\n\t\t// TODO: maybe use better casting\n\t\tlet source: number = Number(value);\n\n\t\t// Is it a built-in format or Intl.NumberFormatOptions\n\t\tif ($type.isObject(format)) {\n\t\t\ttry {\n\t\t\t\tif (this.get(\"intlLocales\")) {\n\t\t\t\t\treturn new Intl.NumberFormat(this.get(\"intlLocales\"), <Intl.NumberFormatOptions>format).format(source);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn new Intl.NumberFormat(undefined, <Intl.NumberFormatOptions>format).format(source);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\treturn \"Invalid\";\n\t\t\t}\n\n\t\t}\n\t\telse {\n\n\t\t\t// Clean format\n\t\t\tformat = $utils.cleanFormat(format!);\n\n\t\t\t// Get format info (it will also deal with parser caching)\n\t\t\tlet info = this.parseFormat(format, this._root.language);\n\n\n\t\t\t// format and replace the number\n\t\t\tlet details;\n\t\t\tif (source > this.get(\"negativeBase\")) {\n\t\t\t\tdetails = info.positive;\n\t\t\t}\n\t\t\telse if (source < this.get(\"negativeBase\")) {\n\t\t\t\tdetails = info.negative;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdetails = info.zero;\n\t\t\t}\n\n\t\t\t// Adjust precision\n\t\t\tif (precision != null && !details.mod) {\n\t\t\t\tdetails = $object.copy(details);\n\t\t\t\tdetails.decimals.active = source == 0 ? 0 : precision;\n\t\t\t}\n\n\t\t\t// Format\n\t\t\tformatted = details.template.split($type.PLACEHOLDER).join(this.applyFormat(source, details));\n\n\t\t}\n\n\t\treturn formatted;\n\t}\n\n\t/**\n\t * Parses supplied format into structured object which can be used to format\n\t * the number.\n\t *\n\t * @param format Format string, i.e. \"#,###.00\"\n\t * @param language Language\n\t * @ignore\n\t */\n\tprotected parseFormat(format: string, language: Language): any {\n\n\t\t// Check cache\n\t\t// TODO\n\t\t// let cached = this.getCache(format);\n\t\t// if (cached != null) {\n\t\t// \treturn cached;\n\t\t// }\n\n\t\tconst thousandSeparator = language.translateEmpty(\"_thousandSeparator\");\n\t\tconst decimalSeparator = language.translateEmpty(\"_decimalSeparator\")\n\n\t\t// init format parse info holder\n\t\tlet info: any = {\n\t\t\t\"positive\": {\n\t\t\t\t\"thousands\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"interval\": -1,\n\t\t\t\t\t\"separator\": thousandSeparator\n\t\t\t\t},\n\t\t\t\t\"decimals\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"separator\": decimalSeparator\n\t\t\t\t},\n\t\t\t\t\"template\": \"\",\n\t\t\t\t\"source\": \"\",\n\t\t\t\t\"parsed\": false\n\t\t\t},\n\t\t\t\"negative\": {\n\t\t\t\t\"thousands\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"interval\": -1,\n\t\t\t\t\t\"separator\": thousandSeparator\n\t\t\t\t},\n\t\t\t\t\"decimals\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"separator\": decimalSeparator\n\t\t\t\t},\n\t\t\t\t\"template\": \"\",\n\t\t\t\t\"source\": \"\",\n\t\t\t\t\"parsed\": false\n\t\t\t},\n\t\t\t\"zero\": {\n\t\t\t\t\"thousands\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"interval\": -1,\n\t\t\t\t\t\"separator\": thousandSeparator\n\t\t\t\t},\n\t\t\t\t\"decimals\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"separator\": decimalSeparator\n\t\t\t\t},\n\t\t\t\t\"template\": \"\",\n\t\t\t\t\"source\": \"\",\n\t\t\t\t\"parsed\": false\n\t\t\t}\n\t\t};\n\n\t\t// Escape double vertical bars (that mean display one vertical bar)\n\t\tformat = format.replace(\"||\", $type.PLACEHOLDER2);\n\n\t\t// Split it up and deal with different formats\n\t\tlet parts = format.split(\"|\");\n\t\tinfo.positive.source = parts[0];\n\n\t\tif (typeof parts[2] === \"undefined\") {\n\t\t\tinfo.zero = info.positive;\n\t\t}\n\t\telse {\n\t\t\tinfo.zero.source = parts[2];\n\t\t}\n\n\t\tif (typeof parts[1] === \"undefined\") {\n\t\t\tinfo.negative = info.positive;\n\t\t}\n\t\telse {\n\t\t\tinfo.negative.source = parts[1];\n\t\t}\n\n\t\t// Parse each\n\t\t$object.each(info, (_part, item) => {\n\t\t\t// Already parsed\n\t\t\tif (item.parsed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check cached\n\t\t\t// TODO\n\t\t\t// if (typeof this.getCache(item.source) !== \"undefined\") {\n\t\t\t// \tinfo[part] = this.getCache(item.source);\n\t\t\t// \treturn;\n\t\t\t// }\n\n\t\t\t// Begin parsing\n\t\t\tlet partFormat = item.source;\n\n\t\t\t// Just \"Number\"?\n\t\t\tif (partFormat.toLowerCase() === \"number\") {\n\t\t\t\tpartFormat = this.get(\"numberFormat\", \"#,###.#####\");\n\t\t\t}\n\n\t\t\t// Let TextFormatter split into chunks\n\t\t\tlet chunks = TextFormatter.chunk(partFormat, true);\n\t\t\tfor (let i: number = 0; i < chunks.length; i++) {\n\t\t\t\tlet chunk = chunks[i];\n\n\t\t\t\t// replace back double vertical bar\n\t\t\t\tchunk.text = chunk.text.replace($type.PLACEHOLDER2, \"|\");\n\n\t\t\t\tif (chunk.type === \"value\") {\n\t\t\t\t\t// Parse format\n\n\t\t\t\t\t// Look for codes\n\t\t\t\t\tlet matches: string[] | null = chunk.text.match(/[#0.,]+[ ]?[abesABES%!]?[abesABES‰!]?/);\n\n\t\t\t\t\tif (matches) {\n\t\t\t\t\t\tif (matches === null || matches[0] === \"\") {\n\t\t\t\t\t\t\t// no codes here - assume string\n\t\t\t\t\t\t\t// nothing to do here\n\t\t\t\t\t\t\titem.template += chunk.text;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\t// look for the format modifiers at the end\n\t\t\t\t\t\t\tlet mods: string[] | null = matches[0].match(/[abesABES%‰!]{2}|[abesABES%‰]{1}$/);\n\n\t\t\t\t\t\t\tif (mods) {\n\t\t\t\t\t\t\t\titem.mod = mods[0].toLowerCase();\n\t\t\t\t\t\t\t\titem.modSpacing = matches[0].match(/[ ]{1}[abesABES%‰!]{1}$/) ? true : false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// break the format up\n\t\t\t\t\t\t\tlet a = matches[0].split(\".\");\n\n\t\t\t\t\t\t\t// Deal with thousands\n\t\t\t\t\t\t\tif (a[0] === \"\") {\n\t\t\t\t\t\t\t\t// No directives for thousands\n\t\t\t\t\t\t\t\t// Leave default settings (no formatting)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Counts\n\t\t\t\t\t\t\t\titem.thousands.active = (a[0].match(/0/g) || []).length;\n\t\t\t\t\t\t\t\titem.thousands.passive = (a[0].match(/\\#/g) || []).length + item.thousands.active;\n\n\t\t\t\t\t\t\t\t// Separator interval\n\t\t\t\t\t\t\t\tlet b = a[0].split(\",\");\n\t\t\t\t\t\t\t\tif (b.length === 1) {\n\t\t\t\t\t\t\t\t\t// No thousands separators\n\t\t\t\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t// Use length fo the last chunk as thousands length\n\t\t\t\t\t\t\t\t\titem.thousands.interval = (b.pop() || \"\").length;\n\n\t\t\t\t\t\t\t\t\tif (item.thousands.interval === 0) {\n\t\t\t\t\t\t\t\t\t\titem.thousands.interval = -1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Deal with decimals\n\t\t\t\t\t\t\tif (typeof (a[1]) === \"undefined\") {\n\t\t\t\t\t\t\t\t// No directives for decimals\n\t\t\t\t\t\t\t\t// Leave at defaults (no formatting)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Counts\n\t\t\t\t\t\t\t\titem.decimals.active = (a[1].match(/0/g) || []).length;\n\t\t\t\t\t\t\t\titem.decimals.passive = (a[1].match(/\\#/g) || []).length + item.decimals.active;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Add special code to template\n\t\t\t\t\t\t\titem.template += chunk.text.split(matches[0]).join($type.PLACEHOLDER);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Quoted string - take it as it is\n\t\t\t\t\titem.template += chunk.text;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply style formatting\n\t\t\t//item.template = getTextFormatter().format(item.template, this.outputFormat);\n\n\t\t\t// Save cache\n\t\t\t// TODO\n\t\t\t//this.setCache(item.source, item);\n\n\t\t\t// Mark this as parsed\n\t\t\titem.parsed = true;\n\n\t\t});\n\n\t\t// Save cache (the whole thing)\n\t\t// TODO\n\t\t//this.setCache(format, info);\n\n\t\treturn info;\n\t}\n\n\t/**\n\t * Applies parsed format to a numeric value.\n\t *\n\t * @param value Value\n\t * @param details Parsed format as returned by parseFormat()\n\t * @return Formatted number\n\t * @ignore\n\t */\n\tprotected applyFormat(value: number, details: any): string {\n\n\t\t// Use absolute values\n\t\tlet negative: boolean = value < 0;\n\t\tvalue = Math.abs(value);\n\n\t\t// Recalculate according to modifier\n\t\tlet prefix: string = \"\", suffix: string = \"\";\n\t\tlet mods: string[] = details.mod ? details.mod.split(\"\") : [];\n\t\tif (mods.indexOf(\"b\") !== -1) {\n\t\t\tlet a = this.applyPrefix(value, this.get(\"bytePrefixes\")!, mods.indexOf(\"!\") !== -1);\n\t\t\tvalue = a[0];\n\t\t\tprefix = a[1];\n\t\t\tsuffix = a[2];\n\t\t\tif (details.modSpacing) {\n\t\t\t\tsuffix = \" \" + suffix;\n\t\t\t}\n\t\t}\n\t\telse if (mods.indexOf(\"a\") !== -1) {\n\t\t\tlet a = this.applyPrefix(value, value < this.get(\"smallNumberThreshold\")! ? this.get(\"smallNumberPrefixes\")! : this.get(\"bigNumberPrefixes\")!, mods.indexOf(\"!\") !== -1);\n\t\t\tvalue = a[0];\n\t\t\tprefix = a[1];\n\t\t\tsuffix = a[2];\n\t\t\tif (details.modSpacing) {\n\t\t\t\tsuffix = \" \" + suffix;\n\t\t\t}\n\t\t}\n\t\telse if (mods.indexOf(\"%\") !== -1) {\n\t\t\tlet ol = Math.min(value.toString().length + 2, 21);\n\t\t\tvalue *= 100;\n\t\t\tvalue = parseFloat(value.toPrecision(ol));\n\t\t\tsuffix = \"%\";\n\t\t}\n\t\telse if (mods.indexOf(\"‰\") !== -1) {\n\t\t\tlet ol = Math.min(value.toString().length + 3, 21);\n\t\t\tvalue *= 1000;\n\t\t\tvalue = parseFloat(value.toPrecision(ol));\n\t\t\tsuffix = \"‰\";\n\t\t}\n\n\t\t// Round to passive\n\t\tif (mods.indexOf(\"e\") !== -1) {\n\t\t\t// convert the value to exponential\n\t\t\tlet exp: string[];\n\t\t\tif (details.decimals.passive >= 0) {\n\t\t\t\texp = value.toExponential(details.decimals.passive).split(\"e\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\texp = value.toExponential().split(\"e\");\n\t\t\t}\n\t\t\tvalue = Number(exp[0]);\n\t\t\tsuffix = \"e\" + exp[1];\n\t\t\tif (details.modSpacing) {\n\t\t\t\tsuffix = \" \" + suffix;\n\t\t\t}\n\t\t}\n\t\telse if (details.decimals.passive === 0) {\n\t\t\tvalue = Math.round(value);\n\t\t}\n\t\telse if (details.decimals.passive > 0) {\n\t\t\tlet d: number = Math.pow(10, details.decimals.passive);\n\t\t\tvalue = Math.round(value * d) / d;\n\t\t}\n\n\t\t// Init return value\n\t\tlet res: string = \"\";\n\n\t\t// Calc integer and decimal parts\n\t\tlet a = $type.numberToString(value).split(\".\");\n\n\t\t// Format integers\n\t\tlet ints = a[0];\n\n\t\t// Pad integers to active length\n\t\tif (ints.length < details.thousands.active) {\n\t\t\tints = Array(details.thousands.active - ints.length + 1).join(\"0\") + ints;\n\t\t}\n\n\t\t// Insert thousands separators\n\t\tif (details.thousands.interval > 0) {\n\t\t\tlet ip: string[] = [];\n\t\t\tlet intsr: string = ints.split(\"\").reverse().join(\"\");\n\t\t\tfor (let i = 0, len = ints.length; i <= len; i += details.thousands.interval) {\n\t\t\t\tlet c: string = intsr.substr(i, details.thousands.interval).split(\"\").reverse().join(\"\");\n\t\t\t\tif (c !== \"\") {\n\t\t\t\t\tip.unshift(c);\n\t\t\t\t}\n\t\t\t}\n\t\t\tints = ip.join(details.thousands.separator);\n\t\t}\n\n\t\t// Add integers\n\t\tres += ints;\n\n\t\t// Add decimals\n\t\tif (a.length === 1) {\n\t\t\ta.push(\"\");\n\t\t}\n\t\tlet decs: string = a[1];\n\n\t\t// Fill zeros?\n\t\tif (decs.length < details.decimals.active) {\n\t\t\tdecs += Array(details.decimals.active - decs.length + 1).join(\"0\");\n\t\t}\n\n\t\tif (decs !== \"\") {\n\t\t\tres += details.decimals.separator + decs;\n\t\t}\n\n\t\t// Can't have empty return value\n\t\tif (res === \"\") {\n\t\t\tres = \"0\";\n\t\t}\n\n\t\t// Add minus sign back\n\t\tif (value !== 0 && negative && (mods.indexOf(\"s\") === -1)) {\n\t\t\tres = \"-\" + res;\n\t\t}\n\n\t\t// Add suffixes/prefixes\n\t\tif (prefix) {\n\t\t\tres = prefix + res;\n\t\t}\n\t\tif (suffix) {\n\t\t\tres += suffix;\n\t\t}\n\n\t\treturn res;\n\t}\n\n\n\tprotected applyPrefix(value: number, prefixes: any[], force: boolean = false): any[] {\n\t\tlet newvalue = value;\n\t\tlet prefix = \"\";\n\t\tlet suffix = \"\";\n\t\tlet applied = false;\n\t\tlet k = 1;\n\n\t\tfor (let i = 0, len = prefixes.length; i < len; i++) {\n\t\t\tif (prefixes[i].number <= value) {\n\t\t\t\tif (prefixes[i].number === 0) {\n\t\t\t\t\tnewvalue = 0;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewvalue = value / prefixes[i].number;\n\t\t\t\t\tk = prefixes[i].number;\n\t\t\t\t}\n\t\t\t\tprefix = prefixes[i].prefix;\n\t\t\t\tsuffix = prefixes[i].suffix;\n\t\t\t\tapplied = true;\n\t\t\t}\n\t\t}\n\n\n\t\tif (!applied && force && prefixes.length && value != 0) {\n\t\t\t// Prefix was not applied. Use the first prefix.\n\t\t\tnewvalue = value / prefixes[0].number;\n\t\t\tprefix = prefixes[0].prefix;\n\t\t\tsuffix = prefixes[0].suffix;\n\t\t\tapplied = true;\n\t\t}\n\n\t\tif (applied) {\n\t\t\tnewvalue = parseFloat(\n\t\t\t\tnewvalue.toPrecision(\n\t\t\t\t\tMath.min(k.toString().length + Math.floor(newvalue).toString().replace(/[^0-9]*/g, \"\").length, 21)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn [newvalue, prefix, suffix];\n\t}\n\n\t/**\n\t * Replaces brackets with temporary placeholders.\n\t *\n\t * @ignore Exclude from docs\n\t * @param text Input text\n\t * @return Escaped text\n\t */\n\tpublic escape(text: string): string {\n\t\treturn text.replace(\"||\", $type.PLACEHOLDER2);\n\t}\n\n\t/**\n\t * Replaces placeholders back to brackets.\n\t *\n\t * @ignore Exclude from docs\n\t * @param text Escaped text\n\t * @return Unescaped text\n\t */\n\tpublic unescape(text: string): string {\n\t\treturn text.replace($type.PLACEHOLDER2, \"|\");\n\t}\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"NumberFormatter.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/NumberFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Language } from \"./Language\";\n\nimport { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport { TextFormatter } from \"./TextFormatter\";\n\nimport * as $object from \"./Object\";\nimport * as $utils from \"./Utils\";\nimport * as $type from \"./Type\";\n\n/**\n * @ignore\n */\nexport interface INumberSuffix {\n\tnumber: number;\n\tsuffix: string;\n}\n\nexport interface INumberFormatterSettings extends IEntitySettings {\n\n\t/**\n\t * Number format to be used when formatting numbers.\n\t *\n\t * @default \"#,###.#####\"\n\t */\n\tnumberFormat?: string | Intl.NumberFormatOptions;\n\n\t/**\n\t * A threshold value for negative numbers.\n\t *\n\t * @default 0\n\t */\n\tnegativeBase?: number;\n\n\t/**\n\t * Prefixes and thresholds to group big numbers into, e.g. 1M.\n\t *\n\t * Used in conjunction with `a` modifier of the number format.\n\t */\n\tbigNumberPrefixes?: INumberSuffix[];\n\n\t/**\n\t * Prefixes and thresholds to group small numbers into, e.g. 1m.\n\t *\n\t * Used in conjunction with `a` modifier of the number format.\n\t */\n\tsmallNumberPrefixes?: INumberSuffix[];\n\n\t/**\n\t * All numbers below this value are considered small.\n\t *\n\t * @default 1\n\t */\n\tsmallNumberThreshold?: number;\n\n\t/**\n\t * Prefixes to and thresholds to use when grouping data size numbers, e.g. 1MB.\n\t *\n\t * Used in conjunction with `b` modifier of the number format.\n\t */\n\tbytePrefixes?: INumberSuffix[];\n\n\t/**\n\t * Indicates which fields in data should be considered numeric.\n\t *\n\t * It is used when formatting data placeholder values.\n\t */\n\tnumericFields?: string[];\n\n\t/**\n\t * Locales if you are using date formats in `Intl.NumberFormatOptions` syntax.\n\t *\n\t * @see (@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat) about using Intl for number formatting\n\t * @param value Locales\n\t */\n\tintlLocales?: string;\n\n}\n\nexport interface INumberFormatterPrivate extends IEntityPrivate {\n}\n\n/**\n * Number formatter\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/} for more info\n * @important\n */\nexport class NumberFormatter extends Entity {\n\tdeclare public _settings: INumberFormatterSettings;\n\tdeclare public _privateSettings: INumberFormatterPrivate;\n\n\tprotected _setDefaults() {\n\t\t// Defaults\n\t\tthis._setDefault(\"negativeBase\", 0);\n\t\tthis._setDefault(\"numberFormat\", \"#,###.#####\");\n\t\tthis._setDefault(\"smallNumberThreshold\", 1.00);\n\n\t\tconst bns = \"_big_number_suffix_\";\n\t\tconst sns = \"_small_number_suffix_\";\n\t\tconst bs = \"_byte_suffix_\";\n\n\t\tthis._setDefault(\"bigNumberPrefixes\", [\n\t\t\t{ \"number\": 1e+3, \"suffix\": this._t(bns + \"3\") },\n\t\t\t{ \"number\": 1e+6, \"suffix\": this._t(bns + \"6\") },\n\t\t\t{ \"number\": 1e+9, \"suffix\": this._t(bns + \"9\") },\n\t\t\t{ \"number\": 1e+12, \"suffix\": this._t(bns + \"12\") },\n\t\t\t{ \"number\": 1e+15, \"suffix\": this._t(bns + \"15\") },\n\t\t\t{ \"number\": 1e+18, \"suffix\": this._t(bns + \"18\") },\n\t\t\t{ \"number\": 1e+21, \"suffix\": this._t(bns + \"21\") },\n\t\t\t{ \"number\": 1e+24, \"suffix\": this._t(bns + \"24\") }\n\t\t]);\n\n\t\tthis._setDefault(\"smallNumberPrefixes\", [\n\t\t\t{ \"number\": 1e-24, \"suffix\": this._t(sns + \"24\") },\n\t\t\t{ \"number\": 1e-21, \"suffix\": this._t(sns + \"21\") },\n\t\t\t{ \"number\": 1e-18, \"suffix\": this._t(sns + \"18\") },\n\t\t\t{ \"number\": 1e-15, \"suffix\": this._t(sns + \"15\") },\n\t\t\t{ \"number\": 1e-12, \"suffix\": this._t(sns + \"12\") },\n\t\t\t{ \"number\": 1e-9, \"suffix\": this._t(sns + \"9\") },\n\t\t\t{ \"number\": 1e-6, \"suffix\": this._t(sns + \"6\") },\n\t\t\t{ \"number\": 1e-3, \"suffix\": this._t(sns + \"3\") }\n\t\t]);\n\n\t\tthis._setDefault(\"bytePrefixes\", [\n\t\t\t{ \"number\": 1, suffix: this._t(bs + \"B\") },\n\t\t\t{ \"number\": 1024, suffix: this._t(bs + \"KB\") },\n\t\t\t{ \"number\": 1048576, suffix: this._t(bs + \"MB\") },\n\t\t\t{ \"number\": 1073741824, suffix: this._t(bs + \"GB\") },\n\t\t\t{ \"number\": 1099511627776, suffix: this._t(bs + \"TB\") },\n\t\t\t{ \"number\": 1125899906842624, suffix: this._t(bs + \"PB\") }\n\t\t]);\n\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\t}\n\n\t/**\n\t * Formats the number according to specific format.\n\t *\n\t * @param value Value to format\n\t * @param format Format to apply\n\t * @return Formatted number\n\t */\n\tpublic format(value: number | string, format?: string | Intl.NumberFormatOptions, precision?: number): string {\n\n\t\t// no format passed in or \"Number\"\n\t\tif (format == null || ($type.isString(format) && format.toLowerCase() === \"number\")) {\n\t\t\tformat = this.get(\"numberFormat\", \"\");\n\t\t}\n\n\t\t// Init return value\n\t\tlet formatted;\n\n\t\t// Cast to number just in case\n\t\t// TODO: maybe use better casting\n\t\tlet source: number = Number(value);\n\n\t\t// Is it a built-in format or Intl.NumberFormatOptions\n\t\tif ($type.isObject(format)) {\n\t\t\ttry {\n\t\t\t\tif (this.get(\"intlLocales\")) {\n\t\t\t\t\treturn new Intl.NumberFormat(this.get(\"intlLocales\"), <Intl.NumberFormatOptions>format).format(source);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn new Intl.NumberFormat(undefined, <Intl.NumberFormatOptions>format).format(source);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\treturn \"Invalid\";\n\t\t\t}\n\n\t\t}\n\t\telse {\n\n\t\t\t// Clean format\n\t\t\tformat = $utils.cleanFormat(format!);\n\n\t\t\t// Get format info (it will also deal with parser caching)\n\t\t\tlet info = this.parseFormat(format, this._root.language);\n\n\n\t\t\t// format and replace the number\n\t\t\tlet details;\n\t\t\tif (source > this.get(\"negativeBase\")) {\n\t\t\t\tdetails = info.positive;\n\t\t\t}\n\t\t\telse if (source < this.get(\"negativeBase\")) {\n\t\t\t\tdetails = info.negative;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdetails = info.zero;\n\t\t\t}\n\n\t\t\t// Adjust precision\n\t\t\tif (precision != null && !details.mod) {\n\t\t\t\tdetails = $object.copy(details);\n\t\t\t\tdetails.decimals.active = source == 0 ? 0 : precision;\n\t\t\t}\n\n\t\t\t// Format\n\t\t\tformatted = details.template.split($type.PLACEHOLDER).join(this.applyFormat(source, details));\n\n\t\t}\n\n\t\treturn formatted;\n\t}\n\n\t/**\n\t * Parses supplied format into structured object which can be used to format\n\t * the number.\n\t *\n\t * @param format Format string, i.e. \"#,###.00\"\n\t * @param language Language\n\t * @ignore\n\t */\n\tprotected parseFormat(format: string, language: Language): any {\n\n\t\t// Check cache\n\t\t// TODO\n\t\t// let cached = this.getCache(format);\n\t\t// if (cached != null) {\n\t\t// \treturn cached;\n\t\t// }\n\n\t\tconst thousandSeparator = language.translateEmpty(\"_thousandSeparator\");\n\t\tconst decimalSeparator = language.translateEmpty(\"_decimalSeparator\")\n\n\t\t// init format parse info holder\n\t\tlet info: any = {\n\t\t\t\"positive\": {\n\t\t\t\t\"thousands\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"interval\": -1,\n\t\t\t\t\t\"separator\": thousandSeparator\n\t\t\t\t},\n\t\t\t\t\"decimals\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"separator\": decimalSeparator\n\t\t\t\t},\n\t\t\t\t\"template\": \"\",\n\t\t\t\t\"source\": \"\",\n\t\t\t\t\"parsed\": false\n\t\t\t},\n\t\t\t\"negative\": {\n\t\t\t\t\"thousands\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"interval\": -1,\n\t\t\t\t\t\"separator\": thousandSeparator\n\t\t\t\t},\n\t\t\t\t\"decimals\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"separator\": decimalSeparator\n\t\t\t\t},\n\t\t\t\t\"template\": \"\",\n\t\t\t\t\"source\": \"\",\n\t\t\t\t\"parsed\": false\n\t\t\t},\n\t\t\t\"zero\": {\n\t\t\t\t\"thousands\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"interval\": -1,\n\t\t\t\t\t\"separator\": thousandSeparator\n\t\t\t\t},\n\t\t\t\t\"decimals\": {\n\t\t\t\t\t\"active\": -1,\n\t\t\t\t\t\"passive\": -1,\n\t\t\t\t\t\"separator\": decimalSeparator\n\t\t\t\t},\n\t\t\t\t\"template\": \"\",\n\t\t\t\t\"source\": \"\",\n\t\t\t\t\"parsed\": false\n\t\t\t}\n\t\t};\n\n\t\t// Escape double vertical bars (that mean display one vertical bar)\n\t\tformat = format.replace(\"||\", $type.PLACEHOLDER2);\n\n\t\t// Split it up and deal with different formats\n\t\tlet parts = format.split(\"|\");\n\t\tinfo.positive.source = parts[0];\n\n\t\tif (typeof parts[2] === \"undefined\") {\n\t\t\tinfo.zero = info.positive;\n\t\t}\n\t\telse {\n\t\t\tinfo.zero.source = parts[2];\n\t\t}\n\n\t\tif (typeof parts[1] === \"undefined\") {\n\t\t\tinfo.negative = info.positive;\n\t\t}\n\t\telse {\n\t\t\tinfo.negative.source = parts[1];\n\t\t}\n\n\t\t// Parse each\n\t\t$object.each(info, (_part, item) => {\n\t\t\t// Already parsed\n\t\t\tif (item.parsed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check cached\n\t\t\t// TODO\n\t\t\t// if (typeof this.getCache(item.source) !== \"undefined\") {\n\t\t\t// \tinfo[part] = this.getCache(item.source);\n\t\t\t// \treturn;\n\t\t\t// }\n\n\t\t\t// Begin parsing\n\t\t\tlet partFormat = item.source;\n\n\t\t\t// Just \"Number\"?\n\t\t\tif (partFormat.toLowerCase() === \"number\") {\n\t\t\t\tpartFormat = this.get(\"numberFormat\", \"#,###.#####\");\n\t\t\t}\n\n\t\t\t// Let TextFormatter split into chunks\n\t\t\tlet chunks = TextFormatter.chunk(partFormat, true);\n\t\t\tfor (let i: number = 0; i < chunks.length; i++) {\n\t\t\t\tlet chunk = chunks[i];\n\n\t\t\t\t// replace back double vertical bar\n\t\t\t\tchunk.text = chunk.text.replace($type.PLACEHOLDER2, \"|\");\n\n\t\t\t\tif (chunk.type === \"value\") {\n\t\t\t\t\t// Parse format\n\n\t\t\t\t\t// Look for codes\n\t\t\t\t\tlet matches: string[] | null = chunk.text.match(/[#0.,]+[ ]?[abespABESP%!]?[abespABESP‰!]?/);\n\n\t\t\t\t\tif (matches) {\n\t\t\t\t\t\tif (matches === null || matches[0] === \"\") {\n\t\t\t\t\t\t\t// no codes here - assume string\n\t\t\t\t\t\t\t// nothing to do here\n\t\t\t\t\t\t\titem.template += chunk.text;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\t// look for the format modifiers at the end\n\t\t\t\t\t\t\tlet mods: string[] | null = matches[0].match(/[abespABESP%‰!]{2}|[abespABESP%‰]{1}$/);\n\n\t\t\t\t\t\t\tif (mods) {\n\t\t\t\t\t\t\t\titem.mod = mods[0].toLowerCase();\n\t\t\t\t\t\t\t\titem.modSpacing = matches[0].match(/[ ]{1}[abespABESP%‰!]{1}$/) ? true : false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// break the format up\n\t\t\t\t\t\t\tlet a = matches[0].split(\".\");\n\n\t\t\t\t\t\t\t// Deal with thousands\n\t\t\t\t\t\t\tif (a[0] === \"\") {\n\t\t\t\t\t\t\t\t// No directives for thousands\n\t\t\t\t\t\t\t\t// Leave default settings (no formatting)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Counts\n\t\t\t\t\t\t\t\titem.thousands.active = (a[0].match(/0/g) || []).length;\n\t\t\t\t\t\t\t\titem.thousands.passive = (a[0].match(/\\#/g) || []).length + item.thousands.active;\n\n\t\t\t\t\t\t\t\t// Separator interval\n\t\t\t\t\t\t\t\tlet b = a[0].split(\",\");\n\t\t\t\t\t\t\t\tif (b.length === 1) {\n\t\t\t\t\t\t\t\t\t// No thousands separators\n\t\t\t\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t// Use length fo the last chunk as thousands length\n\t\t\t\t\t\t\t\t\titem.thousands.interval = (b.pop() || \"\").length;\n\n\t\t\t\t\t\t\t\t\tif (item.thousands.interval === 0) {\n\t\t\t\t\t\t\t\t\t\titem.thousands.interval = -1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Deal with decimals\n\t\t\t\t\t\t\tif (typeof (a[1]) === \"undefined\") {\n\t\t\t\t\t\t\t\t// No directives for decimals\n\t\t\t\t\t\t\t\t// Leave at defaults (no formatting)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Counts\n\t\t\t\t\t\t\t\titem.decimals.active = (a[1].match(/0/g) || []).length;\n\t\t\t\t\t\t\t\titem.decimals.passive = (a[1].match(/\\#/g) || []).length + item.decimals.active;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Add special code to template\n\t\t\t\t\t\t\titem.template += chunk.text.split(matches[0]).join($type.PLACEHOLDER);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Quoted string - take it as it is\n\t\t\t\t\titem.template += chunk.text;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply style formatting\n\t\t\t//item.template = getTextFormatter().format(item.template, this.outputFormat);\n\n\t\t\t// Save cache\n\t\t\t// TODO\n\t\t\t//this.setCache(item.source, item);\n\n\t\t\t// Mark this as parsed\n\t\t\titem.parsed = true;\n\n\t\t});\n\n\t\t// Save cache (the whole thing)\n\t\t// TODO\n\t\t//this.setCache(format, info);\n\n\t\treturn info;\n\t}\n\n\t/**\n\t * Applies parsed format to a numeric value.\n\t *\n\t * @param value Value\n\t * @param details Parsed format as returned by parseFormat()\n\t * @return Formatted number\n\t * @ignore\n\t */\n\tprotected applyFormat(value: number, details: any): string {\n\n\t\t// Use absolute values\n\t\tlet negative: boolean = value < 0;\n\t\tvalue = Math.abs(value);\n\n\t\t// Recalculate according to modifier\n\t\tlet prefix: string = \"\", suffix: string = \"\";\n\t\tlet mods: string[] = details.mod ? details.mod.split(\"\") : [];\n\t\tif (mods.indexOf(\"b\") !== -1) {\n\t\t\tlet a = this.applyPrefix(value, this.get(\"bytePrefixes\")!, mods.indexOf(\"!\") !== -1);\n\t\t\tvalue = a[0];\n\t\t\tprefix = a[1];\n\t\t\tsuffix = a[2];\n\t\t\tif (details.modSpacing) {\n\t\t\t\tsuffix = \" \" + suffix;\n\t\t\t}\n\t\t}\n\t\telse if (mods.indexOf(\"a\") !== -1) {\n\t\t\tlet a = this.applyPrefix(value, value < this.get(\"smallNumberThreshold\")! ? this.get(\"smallNumberPrefixes\")! : this.get(\"bigNumberPrefixes\")!, mods.indexOf(\"!\") !== -1);\n\t\t\tvalue = a[0];\n\t\t\tprefix = a[1];\n\t\t\tsuffix = a[2];\n\t\t\tif (details.modSpacing) {\n\t\t\t\tsuffix = \" \" + suffix;\n\t\t\t}\n\t\t}\n\t\telse if (mods.indexOf(\"p\") !== -1) {\n\t\t\tlet ol = Math.min(value.toString().length + 2, 21);\n\t\t\t//value *= 100;\n\t\t\tvalue = parseFloat(value.toPrecision(ol));\n\t\t\tprefix = this._root.language.translate(\"_percentPrefix\");\n\t\t\tsuffix = this._root.language.translate(\"_percentSuffix\");\n\t\t}\n\t\telse if (mods.indexOf(\"%\") !== -1) {\n\t\t\tlet ol = Math.min(value.toString().length + 2, 21);\n\t\t\tvalue *= 100;\n\t\t\tvalue = parseFloat(value.toPrecision(ol));\n\t\t\tsuffix = \"%\";\n\t\t}\n\t\telse if (mods.indexOf(\"‰\") !== -1) {\n\t\t\tlet ol = Math.min(value.toString().length + 3, 21);\n\t\t\tvalue *= 1000;\n\t\t\tvalue = parseFloat(value.toPrecision(ol));\n\t\t\tsuffix = \"‰\";\n\t\t}\n\n\t\t// Round to passive\n\t\tif (mods.indexOf(\"e\") !== -1) {\n\t\t\t// convert the value to exponential\n\t\t\tlet exp: string[];\n\t\t\tif (details.decimals.passive >= 0) {\n\t\t\t\texp = value.toExponential(details.decimals.passive).split(\"e\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\texp = value.toExponential().split(\"e\");\n\t\t\t}\n\t\t\tvalue = Number(exp[0]);\n\t\t\tsuffix = \"e\" + exp[1];\n\t\t\tif (details.modSpacing) {\n\t\t\t\tsuffix = \" \" + suffix;\n\t\t\t}\n\t\t}\n\t\telse if (details.decimals.passive === 0) {\n\t\t\tvalue = Math.round(value);\n\t\t}\n\t\telse if (details.decimals.passive > 0) {\n\t\t\tlet d: number = Math.pow(10, details.decimals.passive);\n\t\t\tvalue = Math.round(value * d) / d;\n\t\t}\n\n\t\t// Init return value\n\t\tlet res: string = \"\";\n\n\t\t// Calc integer and decimal parts\n\t\tlet a = $type.numberToString(value).split(\".\");\n\n\t\t// Format integers\n\t\tlet ints = a[0];\n\n\t\t// Pad integers to active length\n\t\tif (ints.length < details.thousands.active) {\n\t\t\tints = Array(details.thousands.active - ints.length + 1).join(\"0\") + ints;\n\t\t}\n\n\t\t// Insert thousands separators\n\t\tif (details.thousands.interval > 0) {\n\t\t\tlet ip: string[] = [];\n\t\t\tlet intsr: string = ints.split(\"\").reverse().join(\"\");\n\t\t\tfor (let i = 0, len = ints.length; i <= len; i += details.thousands.interval) {\n\t\t\t\tlet c: string = intsr.substr(i, details.thousands.interval).split(\"\").reverse().join(\"\");\n\t\t\t\tif (c !== \"\") {\n\t\t\t\t\tip.unshift(c);\n\t\t\t\t}\n\t\t\t}\n\t\t\tints = ip.join(details.thousands.separator);\n\t\t}\n\n\t\t// Add integers\n\t\tres += ints;\n\n\t\t// Add decimals\n\t\tif (a.length === 1) {\n\t\t\ta.push(\"\");\n\t\t}\n\t\tlet decs: string = a[1];\n\n\t\t// Fill zeros?\n\t\tif (decs.length < details.decimals.active) {\n\t\t\tdecs += Array(details.decimals.active - decs.length + 1).join(\"0\");\n\t\t}\n\n\t\tif (decs !== \"\") {\n\t\t\tres += details.decimals.separator + decs;\n\t\t}\n\n\t\t// Can't have empty return value\n\t\tif (res === \"\") {\n\t\t\tres = \"0\";\n\t\t}\n\n\t\t// Add minus sign back\n\t\tif (value !== 0 && negative && (mods.indexOf(\"s\") === -1)) {\n\t\t\tres = \"-\" + res;\n\t\t}\n\n\t\t// Add suffixes/prefixes\n\t\tif (prefix) {\n\t\t\tres = prefix + res;\n\t\t}\n\t\tif (suffix) {\n\t\t\tres += suffix;\n\t\t}\n\n\t\treturn res;\n\t}\n\n\n\tprotected applyPrefix(value: number, prefixes: any[], force: boolean = false): any[] {\n\t\tlet newvalue = value;\n\t\tlet prefix = \"\";\n\t\tlet suffix = \"\";\n\t\tlet applied = false;\n\t\tlet k = 1;\n\n\t\tfor (let i = 0, len = prefixes.length; i < len; i++) {\n\t\t\tif (prefixes[i].number <= value) {\n\t\t\t\tif (prefixes[i].number === 0) {\n\t\t\t\t\tnewvalue = 0;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnewvalue = value / prefixes[i].number;\n\t\t\t\t\tk = prefixes[i].number;\n\t\t\t\t}\n\t\t\t\tprefix = prefixes[i].prefix;\n\t\t\t\tsuffix = prefixes[i].suffix;\n\t\t\t\tapplied = true;\n\t\t\t}\n\t\t}\n\n\n\t\tif (!applied && force && prefixes.length && value != 0) {\n\t\t\t// Prefix was not applied. Use the first prefix.\n\t\t\tnewvalue = value / prefixes[0].number;\n\t\t\tprefix = prefixes[0].prefix;\n\t\t\tsuffix = prefixes[0].suffix;\n\t\t\tapplied = true;\n\t\t}\n\n\t\tif (applied) {\n\t\t\tnewvalue = parseFloat(\n\t\t\t\tnewvalue.toPrecision(\n\t\t\t\t\tMath.min(k.toString().length + Math.floor(newvalue).toString().replace(/[^0-9]*/g, \"\").length, 21)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn [newvalue, prefix, suffix];\n\t}\n\n\t/**\n\t * Replaces brackets with temporary placeholders.\n\t *\n\t * @ignore Exclude from docs\n\t * @param text Input text\n\t * @return Escaped text\n\t */\n\tpublic escape(text: string): string {\n\t\treturn text.replace(\"||\", $type.PLACEHOLDER2);\n\t}\n\n\t/**\n\t * Replaces placeholders back to brackets.\n\t *\n\t * @ignore Exclude from docs\n\t * @param text Escaped text\n\t * @return Unescaped text\n\t */\n\tpublic unescape(text: string): string {\n\t\treturn text.replace($type.PLACEHOLDER2, \"|\");\n\t}\n\n}\n"]}
|
|
@@ -83,7 +83,7 @@ export declare function checkChange(timeOne: number, timeTwo: number, unit: Time
|
|
|
83
83
|
* @param count Number of units to add
|
|
84
84
|
* @return Modified date
|
|
85
85
|
*/
|
|
86
|
-
export declare function add(date: Date, unit: TimeUnit, count: number, utc?: boolean): Date;
|
|
86
|
+
export declare function add(date: Date, unit: TimeUnit, count: number, utc?: boolean, timezone?: Timezone): Date;
|
|
87
87
|
/**
|
|
88
88
|
* "Rounds" the date to specific time unit.
|
|
89
89
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Time.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,oBAAY,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAExG,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd;AAGD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/C;AAGD;;;;GAIG;AACH,eAAO,IAAI,iBAAiB,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,MAAM;CASxD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAyBhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,UAKtE;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,UAWxI;AAED;;;;GAIG;AACH,wBAAgB,GAAG,IAAI,IAAI,CAE1B;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAErC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAwFzH;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Time.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,oBAAY,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAExG,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd;AAGD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/C;AAGD;;;;GAIG;AACH,eAAO,IAAI,iBAAiB,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,MAAM;CASxD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAyBhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,UAKtE;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,UAWxI;AAED;;;;GAIG;AACH,wBAAgB,GAAG,IAAI,IAAI,CAE1B;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAErC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAwFzH;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAgFvG;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAgQrJ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,aAAa,CAuBjI;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,UAmBtD"}
|
|
@@ -96,7 +96,7 @@ export function getDateIntervalDuration(interval, date, firstDateOfWeek, utc, ti
|
|
|
96
96
|
}
|
|
97
97
|
else {
|
|
98
98
|
var firstTime = round(new Date(date.getTime()), unit, count, firstDateOfWeek, utc, undefined, timezone).getTime();
|
|
99
|
-
var lastTime = add(new Date(firstTime), unit, count, utc).getTime();
|
|
99
|
+
var lastTime = add(new Date(firstTime), unit, count, utc, timezone).getTime();
|
|
100
100
|
return lastTime - firstTime;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -216,10 +216,13 @@ export function checkChange(timeOne, timeTwo, unit, utc, timezone) {
|
|
|
216
216
|
* @param count Number of units to add
|
|
217
217
|
* @return Modified date
|
|
218
218
|
*/
|
|
219
|
-
export function add(date, unit, count, utc) {
|
|
219
|
+
export function add(date, unit, count, utc, timezone) {
|
|
220
220
|
var timeZoneOffset = 0;
|
|
221
221
|
if (!utc && unit != "millisecond") {
|
|
222
222
|
timeZoneOffset = date.getTimezoneOffset();
|
|
223
|
+
if (timezone) {
|
|
224
|
+
timeZoneOffset -= timezone.offsetUTC(date);
|
|
225
|
+
}
|
|
223
226
|
date.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);
|
|
224
227
|
}
|
|
225
228
|
switch (unit) {
|
|
@@ -260,10 +263,13 @@ export function add(date, unit, count, utc) {
|
|
|
260
263
|
date.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);
|
|
261
264
|
if (unit == "day" || unit == "week" || unit == "month" || unit == "year") {
|
|
262
265
|
var newTimeZoneOffset = date.getTimezoneOffset();
|
|
266
|
+
if (timezone) {
|
|
267
|
+
newTimeZoneOffset += timezone.offsetUTC(date);
|
|
268
|
+
}
|
|
263
269
|
if (newTimeZoneOffset != timeZoneOffset) {
|
|
264
270
|
var diff = newTimeZoneOffset - timeZoneOffset;
|
|
265
271
|
date.setUTCMinutes(date.getUTCMinutes() + diff);
|
|
266
|
-
// solves issues if
|
|
272
|
+
// solves issues if new time falls back to old time zone
|
|
267
273
|
if (date.getTimezoneOffset() != newTimeZoneOffset) {
|
|
268
274
|
date.setUTCMinutes(date.getUTCMinutes() - diff);
|
|
269
275
|
}
|
|
@@ -391,6 +397,7 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
391
397
|
var tzoffset = timezone.offsetUTC(date);
|
|
392
398
|
var timeZoneOffset = date.getTimezoneOffset();
|
|
393
399
|
var parsedDate = timezone.parseDate(date);
|
|
400
|
+
//console.log(parsedDate)
|
|
394
401
|
var year = parsedDate.year;
|
|
395
402
|
var month = parsedDate.month;
|
|
396
403
|
var day = parsedDate.day;
|
|
@@ -402,7 +409,7 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
402
409
|
switch (unit) {
|
|
403
410
|
case "day":
|
|
404
411
|
if (firstDate) {
|
|
405
|
-
firstDate = round(firstDate, "day", 1);
|
|
412
|
+
firstDate = round(firstDate, "day", 1, firstDateOfWeek, utc, undefined, timezone);
|
|
406
413
|
var difference = date.getTime() - firstDate.getTime();
|
|
407
414
|
var unitCount = Math.floor(difference / getDuration("day") / count);
|
|
408
415
|
var duration = getDuration("day", unitCount * count);
|
|
@@ -413,17 +420,19 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
413
420
|
day = parsedDate.day;
|
|
414
421
|
}
|
|
415
422
|
hour = 0;
|
|
416
|
-
minute =
|
|
423
|
+
minute = tzoffset - timeZoneOffset;
|
|
417
424
|
second = 0;
|
|
418
425
|
millisecond = 0;
|
|
419
426
|
break;
|
|
420
427
|
case "second":
|
|
428
|
+
minute += tzoffset - timeZoneOffset;
|
|
421
429
|
if (count > 1) {
|
|
422
430
|
second = Math.floor(second / count) * count;
|
|
423
431
|
}
|
|
424
432
|
millisecond = 0;
|
|
425
433
|
break;
|
|
426
434
|
case "millisecond":
|
|
435
|
+
minute += tzoffset - timeZoneOffset;
|
|
427
436
|
if (count > 1) {
|
|
428
437
|
millisecond = Math.floor(millisecond / count) * count;
|
|
429
438
|
}
|
|
@@ -432,7 +441,7 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
432
441
|
if (count > 1) {
|
|
433
442
|
hour = Math.floor(hour / count) * count;
|
|
434
443
|
}
|
|
435
|
-
minute =
|
|
444
|
+
minute = tzoffset - timeZoneOffset;
|
|
436
445
|
second = 0;
|
|
437
446
|
millisecond = 0;
|
|
438
447
|
break;
|
|
@@ -440,6 +449,7 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
440
449
|
if (count > 1) {
|
|
441
450
|
minute = Math.floor(minute / count) * count;
|
|
442
451
|
}
|
|
452
|
+
minute += tzoffset - timeZoneOffset;
|
|
443
453
|
second = 0;
|
|
444
454
|
millisecond = 0;
|
|
445
455
|
break;
|
|
@@ -449,7 +459,7 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
449
459
|
}
|
|
450
460
|
day = 1;
|
|
451
461
|
hour = 0;
|
|
452
|
-
minute =
|
|
462
|
+
minute = tzoffset - timeZoneOffset;
|
|
453
463
|
second = 0;
|
|
454
464
|
millisecond = 0;
|
|
455
465
|
break;
|
|
@@ -460,7 +470,7 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
460
470
|
month = 0;
|
|
461
471
|
day = 1;
|
|
462
472
|
hour = 0;
|
|
463
|
-
minute =
|
|
473
|
+
minute = tzoffset - timeZoneOffset;
|
|
464
474
|
second = 0;
|
|
465
475
|
millisecond = 0;
|
|
466
476
|
break;
|
|
@@ -475,12 +485,11 @@ export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezo
|
|
|
475
485
|
day = day - (7 + weekday) + firstDateOfWeek;
|
|
476
486
|
}
|
|
477
487
|
hour = 0;
|
|
478
|
-
minute =
|
|
488
|
+
minute = tzoffset - timeZoneOffset;
|
|
479
489
|
second = 0;
|
|
480
490
|
millisecond = 0;
|
|
481
491
|
break;
|
|
482
492
|
}
|
|
483
|
-
minute += tzoffset - timeZoneOffset;
|
|
484
493
|
date = new Date(year, month, day, hour, minute, second, millisecond);
|
|
485
494
|
var newOffset = date.getTimezoneOffset();
|
|
486
495
|
if (newOffset != timeZoneOffset) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\nimport type { Timezone } from \"./Timezone\";\n\nexport type TimeUnit = \"millisecond\" | \"second\" | \"minute\" | \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport interface ITimeInterval {\n\ttimeUnit: TimeUnit;\n\tcount: number;\n}\n\n\n/**\n * Returns a `Promise` which can be used to execute code after number of\n * milliseconds.\n *\n * @param ms Sleep duration in ms\n * @return Promise\n */\nexport function sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve, _reject) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n\n\n/**\n * Maps time period names to their numeric representations in milliseconds.\n *\n * @ignore Exclude from docs\n */\nexport let timeUnitDurations: { [Key in TimeUnit]: number } = {\n\tmillisecond: 1,\n\tsecond: 1000,\n\tminute: 60000,\n\thour: 3600000,\n\tday: 86400000,\n\tweek: 604800000,\n\tmonth: 365.242 / 12 * 86400000,\n\tyear: 31536000000\n};\n\n/**\n * Returns the next time unit that goes after source `unit`.\n *\n * E.g. \"hour\" is the next unit after \"minute\", etc.\n *\n * @ignore Exclude from docs\n * @param unit Source time unit\n * @return Next time unit\n */\nexport function getNextUnit(unit: TimeUnit): TimeUnit | undefined {\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\treturn;\n\t\tcase \"month\":\n\t\t\treturn \"year\";\n\n\t\tcase \"week\":\n\t\t\treturn \"month\";\n\n\t\tcase \"day\":\n\t\t\treturn \"month\"; // not a mistake\n\n\t\tcase \"hour\":\n\t\t\treturn \"day\";\n\n\t\tcase \"minute\":\n\t\t\treturn \"hour\";\n\n\t\tcase \"second\":\n\t\t\treturn \"minute\"\n\n\t\tcase \"millisecond\":\n\t\t\treturn \"second\";\n\t}\n}\n\n/**\n * Returns number of milliseconds in the `count` of time `unit`.\n *\n * Available units: \"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\",\n * \"month\", and \"year\".\n *\n * @param unit Time unit\n * @param count Number of units\n * @return Milliseconds\n */\nexport function getDuration(unit: TimeUnit, count?: number): number {\n\tif (count == null) {\n\t\tcount = 1;\n\t}\n\treturn timeUnitDurations[unit] * count;\n}\n\n/**\n * @ignore\n */\nexport function getIntervalDuration(interval: ITimeInterval | undefined) {\n\tif (interval) {\n\t\treturn timeUnitDurations[interval.timeUnit] * interval.count;\n\t}\n\treturn 0;\n}\n\n\nexport function getDateIntervalDuration(interval: ITimeInterval, date: Date, firstDateOfWeek?: number, utc?: boolean, timezone?: Timezone) {\n\tconst unit = interval.timeUnit;\n\tconst count = interval.count;\n\tif (unit == \"hour\" || unit == \"minute\" || unit == \"second\" || unit == \"millisecond\") {\n\t\treturn timeUnitDurations[interval.timeUnit] * interval.count;\n\t}\n\telse {\n\t\tconst firstTime = round(new Date(date.getTime()), unit, count, firstDateOfWeek, utc, undefined, timezone).getTime();\n\t\tconst lastTime = add(new Date(firstTime), unit, count, utc).getTime();\n\t\treturn lastTime - firstTime;\n\t}\n}\n\n/**\n * Returns current `Date` object.\n *\n * @return Current date\n */\nexport function now(): Date {\n\treturn new Date();\n}\n\n/**\n * Returns current timestamp.\n *\n * @return Current timestamp\n */\nexport function getTime(): number {\n\treturn now().getTime();\n}\n\n/**\n * Returns a copy of the `Date` object.\n *\n * @param date Source date\n * @return Copy\n */\nexport function copy(date: Date): Date {\n\treturn new Date(date.getTime()); // todo: check if this is ok. new Date(date) used to strip milliseconds on FF in v3\n}\n\n/**\n * Checks if the `unit` part of two `Date` objects do not match. Two dates\n * represent a \"range\" of time, rather the same time date.\n *\n * @param timeOne timestamp\n * @param timeTwo timestamp\n * @param unit Time unit to check\n * @return Range?\n */\nexport function checkChange(timeOne: number, timeTwo: number, unit: TimeUnit, utc?: boolean, timezone?: Timezone): boolean {\n\t// quick\n\tif ((timeTwo - timeOne) > getDuration(unit, 1.2)) {\n\t\treturn true;\n\t}\n\n\tlet dateOne = new Date(timeOne);\n\tlet dateTwo = new Date(timeTwo);\n\n\tif (timezone) {\n\t\tdateOne = timezone.convertLocal(dateOne);\n\t\tdateTwo = timezone.convertLocal(dateTwo);\n\t}\n\n\tlet timeZoneOffset1 = 0;\n\tlet timeZoneOffset2 = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset1 = dateOne.getTimezoneOffset();\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() - timeZoneOffset1);\n\n\t\ttimeZoneOffset2 = dateTwo.getTimezoneOffset();\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() - timeZoneOffset2);\n\t}\n\n\tlet changed = false;\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"month\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"day\":\n\t\t\tif (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCDate() != dateTwo.getUTCDate()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tif (dateOne.getUTCHours() != dateTwo.getUTCHours()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tif (dateOne.getUTCMinutes() != dateTwo.getUTCMinutes()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tif (dateOne.getUTCSeconds() != dateTwo.getUTCSeconds()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (dateOne.getTime() != dateTwo.getTime()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\tif (changed) {\n\t\treturn changed;\n\t}\n\n\tlet nextUnit = getNextUnit(unit);\n\tif (nextUnit) {\n\t\treturn checkChange(timeOne, timeTwo, nextUnit, utc, timezone);\n\t}\n\telse {\n\t\treturn false;\n\t}\n}\n\n/**\n * Adds `count` of time `unit` to the source date. Returns a modified `Date` object.\n *\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to add\n * @return Modified date\n */\nexport function add(date: Date, unit: TimeUnit, count: number, utc?: boolean): Date {\n\tlet timeZoneOffset = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t}\n\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\tlet day: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(day + count);\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds: number = date.getUTCSeconds();\n\t\t\tdate.setUTCSeconds(seconds + count);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tlet milliseconds: number = date.getUTCMilliseconds();\n\t\t\tdate.setUTCMilliseconds(milliseconds + count);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tlet hours: number = date.getUTCHours();\n\t\t\tdate.setUTCHours(hours + count);\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tlet minutes: number = date.getUTCMinutes();\n\t\t\tdate.setUTCMinutes(minutes + count);\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\t\t\tlet year: number = date.getUTCFullYear();\n\t\t\tdate.setUTCFullYear(year + count);\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\t\t\tlet month: number = date.getUTCMonth();\n\t\t\tdate.setUTCMonth(month + count);\n\t\t\tbreak;\n\n\t\tcase \"week\":\n\t\t\tlet wday: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(wday + count * 7);\n\t\t\tbreak;\n\t}\n\tif (!utc && unit != \"millisecond\") {\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t\t// solves issues if newe time falls back to old time zone\n\t\t\t\tif (date.getTimezoneOffset() != newTimeZoneOffset) {\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - diff);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n\n/**\n * \"Rounds\" the date to specific time unit.\n *\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to round to\n * @param firstDateOfWeek First day of week\n * @param utc Use UTC timezone\n * @param firstDate First date to round to\n * @param roundMinutes Minutes to round to (some timezones use non-whole hour)\n * @param timezone Use specific named timezone when rounding\n * @return New date\n */\nexport function round(date: Date, unit: TimeUnit, count: number, firstDateOfWeek?: number, utc?: boolean, firstDate?: Date, timezone?: Timezone): Date {\n\tif (!timezone || utc) {\n\n\t\tlet timeZoneOffset = 0;\n\n\t\tif (!utc && unit != \"millisecond\") {\n\t\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t\t}\n\n\t\tswitch (unit) {\n\n\t\t\tcase \"day\":\n\t\t\t\tlet day = date.getUTCDate();\n\n\t\t\t\tif (count > 1) {\n\t\t\t\t\t//\tday = Math.floor(day / count) * count;\n\t\t\t\t\tif (firstDate) {\n\t\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\n\n\t\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\n\t\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\n\t\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\n\t\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdate.setUTCDate(day);\n\t\t\t\t}\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"second\":\n\t\t\t\tlet seconds = date.getUTCSeconds();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tseconds = Math.floor(seconds / count) * count;\n\t\t\t\t}\n\t\t\t\tdate.setUTCSeconds(seconds, 0);\n\t\t\t\tbreak;\n\n\t\t\tcase \"millisecond\":\n\t\t\t\tif (count == 1) {\n\t\t\t\t\treturn date; // much better for perf!\n\t\t\t\t}\n\n\t\t\t\tlet milliseconds = date.getUTCMilliseconds();\n\t\t\t\tmilliseconds = Math.floor(milliseconds / count) * count;\n\t\t\t\tdate.setUTCMilliseconds(milliseconds);\n\t\t\t\tbreak;\n\n\t\t\tcase \"hour\":\n\n\t\t\t\tlet hours = date.getUTCHours();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\thours = Math.floor(hours / count) * count;\n\t\t\t\t}\n\t\t\t\tdate.setUTCHours(hours, 0, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"minute\":\n\n\t\t\t\tlet minutes = date.getUTCMinutes();\n\t\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tminutes = Math.floor(minutes / count) * count;\n\t\t\t\t}\n\n\t\t\t\tdate.setUTCMinutes(minutes, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"month\":\n\n\t\t\t\tlet month = date.getUTCMonth();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t\t}\n\n\t\t\t\tdate.setUTCMonth(month, 1);\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"year\":\n\n\t\t\t\tlet year = date.getUTCFullYear();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t\t}\n\t\t\t\tdate.setUTCFullYear(year, 0, 1);\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\t\t\t\tbreak;\n\n\t\t\tcase \"week\":\n\n\t\t\t\tlet wday = date.getUTCDate();\n\t\t\t\tlet weekDay = date.getUTCDay();\n\n\t\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t\t}\n\n\t\t\t\tif (weekDay >= firstDateOfWeek) {\n\t\t\t\t\twday = wday - weekDay + firstDateOfWeek;\n\t\t\t\t} else {\n\t\t\t\t\twday = wday - (7 + weekDay) + firstDateOfWeek;\n\t\t\t\t}\n\n\t\t\t\tdate.setUTCDate(wday);\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t\tbreak;\n\t\t}\n\t\tif (!utc && unit != \"millisecond\") {\n\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn date;\n\t}\n\telse {\n\t\tif (isNaN(date.getTime())) {\n\t\t\treturn date;\n\t\t}\n\t\tlet tzoffset = timezone.offsetUTC(date);\n\t\tlet timeZoneOffset = date.getTimezoneOffset();\n\t\tlet parsedDate = timezone.parseDate(date);\n\t\tlet year = parsedDate.year;\n\t\tlet month = parsedDate.month;\n\t\tlet day = parsedDate.day;\n\t\tlet hour = parsedDate.hour;\n\t\tlet minute = parsedDate.minute;\n\t\tlet second = parsedDate.second;\n\t\tlet millisecond = parsedDate.millisecond;\n\t\tlet weekday = parsedDate.weekday;\n\n\t\tswitch (unit) {\n\n\t\t\tcase \"day\":\n\t\t\t\tif (firstDate) {\n\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\n\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\n\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\n\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\n\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\n\n\t\t\t\t\tparsedDate = timezone.parseDate(date);\n\n\t\t\t\t\tyear = parsedDate.year;\n\t\t\t\t\tmonth = parsedDate.month;\n\t\t\t\t\tday = parsedDate.day;\n\t\t\t\t}\n\n\t\t\t\thour = 0;\n\t\t\t\tminute = 0;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"second\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tsecond = Math.floor(second / count) * count;\n\t\t\t\t}\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"millisecond\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tmillisecond = Math.floor(millisecond / count) * count;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"hour\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\thour = Math.floor(hour / count) * count;\n\t\t\t\t}\n\t\t\t\tminute = 0;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"minute\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tminute = Math.floor(minute / count) * count;\n\t\t\t\t}\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"month\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t\t}\n\t\t\t\tday = 1;\n\t\t\t\thour = 0;\n\t\t\t\tminute = 0;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"year\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t\t}\n\t\t\t\tmonth = 0;\n\t\t\t\tday = 1;\n\t\t\t\thour = 0;\n\t\t\t\tminute = 0;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"week\":\n\t\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t\t}\n\n\t\t\t\tif (weekday >= firstDateOfWeek) {\n\t\t\t\t\tday = day - weekday + firstDateOfWeek;\n\t\t\t\t} else {\n\t\t\t\t\tday = day - (7 + weekday) + firstDateOfWeek;\n\t\t\t\t}\n\n\t\t\t\thour = 0;\n\t\t\t\tminute = 0;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tminute += tzoffset - timeZoneOffset;\n\t\tdate = new Date(year, month, day, hour, minute, second, millisecond);\n\n\t\tlet newOffset = date.getTimezoneOffset();\n\t\tif (newOffset != timeZoneOffset) {\n\t\t\tdate.setTime(date.getTime() + (timeZoneOffset - newOffset) * 60000);\n\t\t}\n\n\t\treturn date;\n\t}\n}\n\n/**\n * @ignore\n */\nexport function chooseInterval(index: number, duration: number, gridCount: number, intervals: Array<ITimeInterval>): ITimeInterval {\n\tlet gridInterval: ITimeInterval = intervals[index];\n\tlet intervalDuration = getIntervalDuration(gridInterval);\n\n\tlet lastIndex = intervals.length - 1;\n\tif (index >= lastIndex) {\n\t\treturn { ...intervals[lastIndex] };\n\t}\n\n\tlet count = Math.ceil(duration / intervalDuration);\n\n\tif (duration < intervalDuration && index > 0) {\n\t\treturn { ...intervals[index - 1] };\n\t}\n\tif (count <= gridCount) {\n\t\treturn { ...intervals[index] };\n\t} else {\n\t\tif (index + 1 < intervals.length) {\n\t\t\treturn chooseInterval(index + 1, duration, gridCount, intervals);\n\t\t} else {\n\t\t\treturn { ...intervals[index] };\n\t\t}\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getUnitValue(date: Date, unit: TimeUnit) {\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\treturn date.getDate();\n\t\tcase \"second\":\n\t\t\treturn date.getSeconds();\n\t\tcase \"millisecond\":\n\t\t\treturn date.getMilliseconds();\n\t\tcase \"hour\":\n\t\t\treturn date.getHours();\n\t\tcase \"minute\":\n\t\t\treturn date.getMinutes();\n\t\tcase \"month\":\n\t\t\treturn date.getMonth();\n\t\tcase \"year\":\n\t\t\treturn date.getFullYear();\n\t\tcase \"week\":\n\t\t\treturn $utils.getWeek(date);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\nimport type { Timezone } from \"./Timezone\";\n\nexport type TimeUnit = \"millisecond\" | \"second\" | \"minute\" | \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport interface ITimeInterval {\n\ttimeUnit: TimeUnit;\n\tcount: number;\n}\n\n\n/**\n * Returns a `Promise` which can be used to execute code after number of\n * milliseconds.\n *\n * @param ms Sleep duration in ms\n * @return Promise\n */\nexport function sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve, _reject) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n\n\n/**\n * Maps time period names to their numeric representations in milliseconds.\n *\n * @ignore Exclude from docs\n */\nexport let timeUnitDurations: { [Key in TimeUnit]: number } = {\n\tmillisecond: 1,\n\tsecond: 1000,\n\tminute: 60000,\n\thour: 3600000,\n\tday: 86400000,\n\tweek: 604800000,\n\tmonth: 365.242 / 12 * 86400000,\n\tyear: 31536000000\n};\n\n/**\n * Returns the next time unit that goes after source `unit`.\n *\n * E.g. \"hour\" is the next unit after \"minute\", etc.\n *\n * @ignore Exclude from docs\n * @param unit Source time unit\n * @return Next time unit\n */\nexport function getNextUnit(unit: TimeUnit): TimeUnit | undefined {\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\treturn;\n\t\tcase \"month\":\n\t\t\treturn \"year\";\n\n\t\tcase \"week\":\n\t\t\treturn \"month\";\n\n\t\tcase \"day\":\n\t\t\treturn \"month\"; // not a mistake\n\n\t\tcase \"hour\":\n\t\t\treturn \"day\";\n\n\t\tcase \"minute\":\n\t\t\treturn \"hour\";\n\n\t\tcase \"second\":\n\t\t\treturn \"minute\"\n\n\t\tcase \"millisecond\":\n\t\t\treturn \"second\";\n\t}\n}\n\n/**\n * Returns number of milliseconds in the `count` of time `unit`.\n *\n * Available units: \"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\",\n * \"month\", and \"year\".\n *\n * @param unit Time unit\n * @param count Number of units\n * @return Milliseconds\n */\nexport function getDuration(unit: TimeUnit, count?: number): number {\n\tif (count == null) {\n\t\tcount = 1;\n\t}\n\treturn timeUnitDurations[unit] * count;\n}\n\n/**\n * @ignore\n */\nexport function getIntervalDuration(interval: ITimeInterval | undefined) {\n\tif (interval) {\n\t\treturn timeUnitDurations[interval.timeUnit] * interval.count;\n\t}\n\treturn 0;\n}\n\n\nexport function getDateIntervalDuration(interval: ITimeInterval, date: Date, firstDateOfWeek?: number, utc?: boolean, timezone?: Timezone) {\n\tconst unit = interval.timeUnit;\n\tconst count = interval.count;\n\tif (unit == \"hour\" || unit == \"minute\" || unit == \"second\" || unit == \"millisecond\") {\n\t\treturn timeUnitDurations[interval.timeUnit] * interval.count;\n\t}\n\telse {\n\t\tconst firstTime = round(new Date(date.getTime()), unit, count, firstDateOfWeek, utc, undefined, timezone).getTime();\n\t\tconst lastTime = add(new Date(firstTime), unit, count, utc, timezone).getTime();\n\t\treturn lastTime - firstTime;\n\t}\n}\n\n/**\n * Returns current `Date` object.\n *\n * @return Current date\n */\nexport function now(): Date {\n\treturn new Date();\n}\n\n/**\n * Returns current timestamp.\n *\n * @return Current timestamp\n */\nexport function getTime(): number {\n\treturn now().getTime();\n}\n\n/**\n * Returns a copy of the `Date` object.\n *\n * @param date Source date\n * @return Copy\n */\nexport function copy(date: Date): Date {\n\treturn new Date(date.getTime()); // todo: check if this is ok. new Date(date) used to strip milliseconds on FF in v3\n}\n\n/**\n * Checks if the `unit` part of two `Date` objects do not match. Two dates\n * represent a \"range\" of time, rather the same time date.\n *\n * @param timeOne timestamp\n * @param timeTwo timestamp\n * @param unit Time unit to check\n * @return Range?\n */\nexport function checkChange(timeOne: number, timeTwo: number, unit: TimeUnit, utc?: boolean, timezone?: Timezone): boolean {\n\t// quick\n\tif ((timeTwo - timeOne) > getDuration(unit, 1.2)) {\n\t\treturn true;\n\t}\n\n\tlet dateOne = new Date(timeOne);\n\tlet dateTwo = new Date(timeTwo);\n\n\tif (timezone) {\n\t\tdateOne = timezone.convertLocal(dateOne);\n\t\tdateTwo = timezone.convertLocal(dateTwo);\n\t}\n\n\tlet timeZoneOffset1 = 0;\n\tlet timeZoneOffset2 = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset1 = dateOne.getTimezoneOffset();\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() - timeZoneOffset1);\n\n\t\ttimeZoneOffset2 = dateTwo.getTimezoneOffset();\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() - timeZoneOffset2);\n\t}\n\n\tlet changed = false;\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"month\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"day\":\n\t\t\tif (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCDate() != dateTwo.getUTCDate()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tif (dateOne.getUTCHours() != dateTwo.getUTCHours()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tif (dateOne.getUTCMinutes() != dateTwo.getUTCMinutes()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tif (dateOne.getUTCSeconds() != dateTwo.getUTCSeconds()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (dateOne.getTime() != dateTwo.getTime()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\tif (changed) {\n\t\treturn changed;\n\t}\n\n\tlet nextUnit = getNextUnit(unit);\n\tif (nextUnit) {\n\t\treturn checkChange(timeOne, timeTwo, nextUnit, utc, timezone);\n\t}\n\telse {\n\t\treturn false;\n\t}\n}\n\n/**\n * Adds `count` of time `unit` to the source date. Returns a modified `Date` object.\n *\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to add\n * @return Modified date\n */\nexport function add(date: Date, unit: TimeUnit, count: number, utc?: boolean, timezone?: Timezone): Date {\n\tlet timeZoneOffset = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset = date.getTimezoneOffset();\n\n\t\tif (timezone) {\n\t\t\ttimeZoneOffset -= timezone.offsetUTC(date);\n\t\t}\n\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t}\n\n\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\tlet day: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(day + count);\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds: number = date.getUTCSeconds();\n\t\t\tdate.setUTCSeconds(seconds + count);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tlet milliseconds: number = date.getUTCMilliseconds();\n\t\t\tdate.setUTCMilliseconds(milliseconds + count);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tlet hours: number = date.getUTCHours();\n\t\t\tdate.setUTCHours(hours + count);\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tlet minutes: number = date.getUTCMinutes();\n\t\t\tdate.setUTCMinutes(minutes + count);\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\t\t\tlet year: number = date.getUTCFullYear();\n\t\t\tdate.setUTCFullYear(year + count);\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\t\t\tlet month: number = date.getUTCMonth();\n\t\t\tdate.setUTCMonth(month + count);\n\t\t\tbreak;\n\n\t\tcase \"week\":\n\t\t\tlet wday: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(wday + count * 7);\n\t\t\tbreak;\n\t}\n\n\n\tif (!utc && unit != \"millisecond\") {\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\n\t\t\tif (timezone) {\n\t\t\t\tnewTimeZoneOffset += timezone.offsetUTC(date);\n\t\t\t}\n\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\n\t\t\t\t// solves issues if new time falls back to old time zone\n\t\t\t\tif (date.getTimezoneOffset() != newTimeZoneOffset) {\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - diff);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n\n/**\n * \"Rounds\" the date to specific time unit.\n *\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to round to\n * @param firstDateOfWeek First day of week\n * @param utc Use UTC timezone\n * @param firstDate First date to round to\n * @param roundMinutes Minutes to round to (some timezones use non-whole hour)\n * @param timezone Use specific named timezone when rounding\n * @return New date\n */\nexport function round(date: Date, unit: TimeUnit, count: number, firstDateOfWeek?: number, utc?: boolean, firstDate?: Date, timezone?: Timezone): Date {\n\tif (!timezone || utc) {\n\n\t\tlet timeZoneOffset = 0;\n\n\t\tif (!utc && unit != \"millisecond\") {\n\t\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t\t}\n\n\t\tswitch (unit) {\n\n\t\t\tcase \"day\":\n\t\t\t\tlet day = date.getUTCDate();\n\n\t\t\t\tif (count > 1) {\n\t\t\t\t\t//\tday = Math.floor(day / count) * count;\n\t\t\t\t\tif (firstDate) {\n\t\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\n\n\t\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\n\t\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\n\t\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\n\t\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdate.setUTCDate(day);\n\t\t\t\t}\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"second\":\n\t\t\t\tlet seconds = date.getUTCSeconds();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tseconds = Math.floor(seconds / count) * count;\n\t\t\t\t}\n\t\t\t\tdate.setUTCSeconds(seconds, 0);\n\t\t\t\tbreak;\n\n\t\t\tcase \"millisecond\":\n\t\t\t\tif (count == 1) {\n\t\t\t\t\treturn date; // much better for perf!\n\t\t\t\t}\n\n\t\t\t\tlet milliseconds = date.getUTCMilliseconds();\n\t\t\t\tmilliseconds = Math.floor(milliseconds / count) * count;\n\t\t\t\tdate.setUTCMilliseconds(milliseconds);\n\t\t\t\tbreak;\n\n\t\t\tcase \"hour\":\n\n\t\t\t\tlet hours = date.getUTCHours();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\thours = Math.floor(hours / count) * count;\n\t\t\t\t}\n\t\t\t\tdate.setUTCHours(hours, 0, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"minute\":\n\n\t\t\t\tlet minutes = date.getUTCMinutes();\n\t\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tminutes = Math.floor(minutes / count) * count;\n\t\t\t\t}\n\n\t\t\t\tdate.setUTCMinutes(minutes, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"month\":\n\n\t\t\t\tlet month = date.getUTCMonth();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t\t}\n\n\t\t\t\tdate.setUTCMonth(month, 1);\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"year\":\n\n\t\t\t\tlet year = date.getUTCFullYear();\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t\t}\n\t\t\t\tdate.setUTCFullYear(year, 0, 1);\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\t\t\t\tbreak;\n\n\t\t\tcase \"week\":\n\n\t\t\t\tlet wday = date.getUTCDate();\n\t\t\t\tlet weekDay = date.getUTCDay();\n\n\t\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t\t}\n\n\t\t\t\tif (weekDay >= firstDateOfWeek) {\n\t\t\t\t\twday = wday - weekDay + firstDateOfWeek;\n\t\t\t\t} else {\n\t\t\t\t\twday = wday - (7 + weekDay) + firstDateOfWeek;\n\t\t\t\t}\n\n\t\t\t\tdate.setUTCDate(wday);\n\t\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t\tbreak;\n\t\t}\n\t\tif (!utc && unit != \"millisecond\") {\n\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn date;\n\t}\n\telse {\n\t\tif (isNaN(date.getTime())) {\n\t\t\treturn date;\n\t\t}\n\t\tlet tzoffset = timezone.offsetUTC(date);\n\t\tlet timeZoneOffset = date.getTimezoneOffset();\n\t\tlet parsedDate = timezone.parseDate(date);\n\t\t//console.log(parsedDate)\n\t\tlet year = parsedDate.year;\n\t\tlet month = parsedDate.month;\n\t\tlet day = parsedDate.day;\n\t\tlet hour = parsedDate.hour;\n\t\tlet minute = parsedDate.minute;\n\t\tlet second = parsedDate.second;\n\t\tlet millisecond = parsedDate.millisecond;\n\t\tlet weekday = parsedDate.weekday;\n\n\t\tswitch (unit) {\n\n\t\t\tcase \"day\":\n\t\t\t\tif (firstDate) {\n\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1, firstDateOfWeek, utc, undefined, timezone);\n\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\n\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\n\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\n\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\n\n\t\t\t\t\tparsedDate = timezone.parseDate(date);\n\n\t\t\t\t\tyear = parsedDate.year;\n\t\t\t\t\tmonth = parsedDate.month;\n\t\t\t\t\tday = parsedDate.day;\n\t\t\t\t}\n\n\t\t\t\thour = 0;\n\t\t\t\tminute = tzoffset - timeZoneOffset;\n\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"second\":\n\t\t\t\tminute += tzoffset - timeZoneOffset;\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tsecond = Math.floor(second / count) * count;\n\t\t\t\t}\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"millisecond\":\n\t\t\t\tminute += tzoffset - timeZoneOffset;\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tmillisecond = Math.floor(millisecond / count) * count;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"hour\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\thour = Math.floor(hour / count) * count;\n\t\t\t\t}\n\t\t\t\tminute = tzoffset - timeZoneOffset;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"minute\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tminute = Math.floor(minute / count) * count;\n\t\t\t\t}\n\t\t\t\tminute += tzoffset - timeZoneOffset;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"month\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t\t}\n\t\t\t\tday = 1;\n\t\t\t\thour = 0;\n\t\t\t\tminute = tzoffset - timeZoneOffset;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\n\t\t\t\tbreak;\n\n\t\t\tcase \"year\":\n\t\t\t\tif (count > 1) {\n\t\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t\t}\n\t\t\t\tmonth = 0;\n\t\t\t\tday = 1;\n\t\t\t\thour = 0;\n\t\t\t\tminute = tzoffset - timeZoneOffset;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase \"week\":\n\t\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t\t}\n\n\t\t\t\tif (weekday >= firstDateOfWeek) {\n\t\t\t\t\tday = day - weekday + firstDateOfWeek;\n\t\t\t\t} else {\n\t\t\t\t\tday = day - (7 + weekday) + firstDateOfWeek;\n\t\t\t\t}\n\n\t\t\t\thour = 0;\n\t\t\t\tminute = tzoffset - timeZoneOffset;\n\t\t\t\tsecond = 0;\n\t\t\t\tmillisecond = 0;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tdate = new Date(year, month, day, hour, minute, second, millisecond);\n\n\t\tlet newOffset = date.getTimezoneOffset();\n\t\tif (newOffset != timeZoneOffset) {\n\t\t\tdate.setTime(date.getTime() + (timeZoneOffset - newOffset) * 60000);\n\t\t}\n\n\t\treturn date;\n\t}\n}\n\n/**\n * @ignore\n */\nexport function chooseInterval(index: number, duration: number, gridCount: number, intervals: Array<ITimeInterval>): ITimeInterval {\n\tlet gridInterval: ITimeInterval = intervals[index];\n\tlet intervalDuration = getIntervalDuration(gridInterval);\n\n\tlet lastIndex = intervals.length - 1;\n\tif (index >= lastIndex) {\n\t\treturn { ...intervals[lastIndex] };\n\t}\n\n\tlet count = Math.ceil(duration / intervalDuration);\n\n\tif (duration < intervalDuration && index > 0) {\n\t\treturn { ...intervals[index - 1] };\n\t}\n\tif (count <= gridCount) {\n\t\treturn { ...intervals[index] };\n\t} else {\n\t\tif (index + 1 < intervals.length) {\n\t\t\treturn chooseInterval(index + 1, duration, gridCount, intervals);\n\t\t} else {\n\t\t\treturn { ...intervals[index] };\n\t\t}\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getUnitValue(date: Date, unit: TimeUnit) {\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\treturn date.getDate();\n\t\tcase \"second\":\n\t\t\treturn date.getSeconds();\n\t\tcase \"millisecond\":\n\t\t\treturn date.getMilliseconds();\n\t\tcase \"hour\":\n\t\t\treturn date.getHours();\n\t\tcase \"minute\":\n\t\t\treturn date.getMinutes();\n\t\tcase \"month\":\n\t\t\treturn date.getMonth();\n\t\tcase \"year\":\n\t\t\treturn date.getFullYear();\n\t\tcase \"week\":\n\t\t\treturn $utils.getWeek(date);\n\t}\n}\n"]}
|
|
@@ -312,6 +312,7 @@ export declare function get12Hours(hours: number, base?: number): number;
|
|
|
312
312
|
* @return Time zone name
|
|
313
313
|
*/
|
|
314
314
|
export declare function getTimeZone(date: Date, long?: boolean, savings?: boolean, utc?: boolean): string;
|
|
315
|
+
export declare function getTimezoneOffset(timezone: string): number;
|
|
315
316
|
export declare function capitalizeFirst(text: string): string;
|
|
316
317
|
/**
|
|
317
318
|
* ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -857,6 +857,12 @@ export function getTimeZone(date, long, savings, utc) {
|
|
|
857
857
|
}
|
|
858
858
|
return wtz;
|
|
859
859
|
}
|
|
860
|
+
export function getTimezoneOffset(timezone) {
|
|
861
|
+
var date = new Date(Date.UTC(2012, 0, 1, 0, 0, 0, 0));
|
|
862
|
+
var utcDate = new Date(date.toLocaleString('en-US', { timeZone: 'UTC' }));
|
|
863
|
+
var tzDate = new Date(date.toLocaleString('en-US', { timeZone: timezone }));
|
|
864
|
+
return (tzDate.getTime() - utcDate.getTime()) / 6e4 * -1;
|
|
865
|
+
}
|
|
860
866
|
export function capitalizeFirst(text) {
|
|
861
867
|
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
862
868
|
}
|