@amcharts/amcharts5 5.0.19 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.internal/charts/map/MapLineSeries.d.ts +6 -1
- package/.internal/charts/map/MapLineSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapLineSeries.js +11 -6
- package/.internal/charts/map/MapLineSeries.js.map +1 -1
- package/.internal/charts/map/MapPointSeries.d.ts +6 -1
- package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPointSeries.js +7 -2
- package/.internal/charts/map/MapPointSeries.js.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts +6 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.js +7 -2
- package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
- package/.internal/charts/map/MapSeries.d.ts +1 -0
- package/.internal/charts/map/MapSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapSeries.js +12 -0
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/percent/PercentSeries.d.ts +3 -0
- package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +12 -0
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
- package/.internal/charts/pie/PieSeries.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +1 -1
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- 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 +16 -2
- package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +6 -0
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +14 -3
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts +3 -2
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +12 -5
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts +3 -0
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +75 -20
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +55 -0
- package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -0
- package/.internal/charts/xy/axes/GaplessDateAxis.js +316 -0
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -0
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.js +21 -3
- package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.d.ts +0 -177
- package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.js +0 -19
- package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.d.ts +1 -0
- package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +14 -2
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts +207 -2
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +30 -5
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Classes.d.ts +4 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Root.d.ts +11 -3
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +14 -5
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/render/Component.d.ts +6 -1
- package/.internal/core/render/Component.d.ts.map +1 -1
- package/.internal/core/render/Component.js +9 -4
- package/.internal/core/render/Component.js.map +1 -1
- package/.internal/core/render/Container.d.ts +8 -0
- package/.internal/core/render/Container.d.ts.map +1 -1
- package/.internal/core/render/Container.js +1 -9
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Ellipse.d.ts +28 -0
- package/.internal/core/render/Ellipse.d.ts.map +1 -0
- package/.internal/core/render/Ellipse.js +51 -0
- package/.internal/core/render/Ellipse.js.map +1 -0
- package/.internal/core/render/GridLayout.d.ts +1 -3
- package/.internal/core/render/GridLayout.d.ts.map +1 -1
- package/.internal/core/render/GridLayout.js +10 -10
- package/.internal/core/render/GridLayout.js.map +1 -1
- package/.internal/core/render/HorizontalLayout.d.ts.map +1 -1
- package/.internal/core/render/HorizontalLayout.js +18 -4
- package/.internal/core/render/HorizontalLayout.js.map +1 -1
- package/.internal/core/render/Layout.d.ts +2 -0
- package/.internal/core/render/Layout.d.ts.map +1 -1
- package/.internal/core/render/Layout.js +8 -0
- package/.internal/core/render/Layout.js.map +1 -1
- package/.internal/core/render/Legend.d.ts +6 -4
- package/.internal/core/render/Legend.d.ts.map +1 -1
- package/.internal/core/render/Legend.js +35 -34
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/Line.js +1 -1
- package/.internal/core/render/Line.js.map +1 -1
- package/.internal/core/render/Series.d.ts +1 -1
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js +5 -3
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/Slice.d.ts.map +1 -1
- package/.internal/core/render/Slice.js +7 -1
- package/.internal/core/render/Slice.js.map +1 -1
- package/.internal/core/render/Slider.d.ts +0 -2
- package/.internal/core/render/Slider.d.ts.map +1 -1
- package/.internal/core/render/Slider.js +0 -2
- package/.internal/core/render/Slider.js.map +1 -1
- package/.internal/core/render/Sprite.d.ts +11 -2
- package/.internal/core/render/Sprite.d.ts.map +1 -1
- package/.internal/core/render/Sprite.js +40 -17
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/VerticalLayout.d.ts.map +1 -1
- package/.internal/core/render/VerticalLayout.js +18 -4
- package/.internal/core/render/VerticalLayout.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts +9 -4
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +136 -32
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/render/backend/Renderer.d.ts +2 -0
- package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
- package/.internal/core/render/backend/Renderer.js.map +1 -1
- package/.internal/core/util/Array.d.ts.map +1 -1
- package/.internal/core/util/Array.js +13 -23
- package/.internal/core/util/Array.js.map +1 -1
- package/.internal/core/util/DateFormatter.d.ts.map +1 -1
- package/.internal/core/util/DateFormatter.js +4 -7
- package/.internal/core/util/DateFormatter.js.map +1 -1
- package/.internal/core/util/Entity.d.ts +19 -0
- package/.internal/core/util/Entity.d.ts.map +1 -1
- package/.internal/core/util/Entity.js +69 -7
- package/.internal/core/util/Entity.js.map +1 -1
- package/.internal/core/util/InterfaceColors.d.ts +1 -1
- package/.internal/core/util/InterfaceColors.js.map +1 -1
- package/.internal/core/util/List.d.ts +7 -0
- package/.internal/core/util/List.d.ts.map +1 -1
- package/.internal/core/util/List.js +14 -0
- package/.internal/core/util/List.js.map +1 -1
- package/.internal/core/util/Modal.d.ts +50 -0
- package/.internal/core/util/Modal.d.ts.map +1 -0
- package/.internal/core/util/Modal.js +215 -0
- package/.internal/core/util/Modal.js.map +1 -0
- package/.internal/core/util/Template.d.ts +2 -1
- package/.internal/core/util/Template.d.ts.map +1 -1
- package/.internal/core/util/Template.js +19 -1
- package/.internal/core/util/Template.js.map +1 -1
- package/.internal/core/util/Time.d.ts +16 -19
- package/.internal/core/util/Time.d.ts.map +1 -1
- package/.internal/core/util/Time.js +209 -122
- package/.internal/core/util/Time.js.map +1 -1
- package/.internal/core/util/Timezone.d.ts +28 -0
- package/.internal/core/util/Timezone.d.ts.map +1 -0
- package/.internal/core/util/Timezone.js +138 -0
- package/.internal/core/util/Timezone.js.map +1 -0
- package/.internal/core/util/Utils.d.ts +2 -1
- package/.internal/core/util/Utils.d.ts.map +1 -1
- package/.internal/core/util/Utils.js +6 -3
- package/.internal/core/util/Utils.js.map +1 -1
- package/.internal/plugins/exporting/Exporting.d.ts +10 -1
- package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
- package/.internal/plugins/exporting/Exporting.js +11 -3
- package/.internal/plugins/exporting/Exporting.js.map +1 -1
- package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts +1 -0
- package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts.map +1 -1
- package/.internal/plugins/sliceGrouper/SliceGrouper.js +15 -3
- package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
- package/.internal/themes/DefaultTheme.js +2 -2
- package/.internal/themes/DefaultTheme.js.map +1 -1
- package/CHANGELOG.md +70 -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/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/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-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/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/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/flow.d.ts +15 -13
- package/flow.d.ts.map +1 -1
- package/flow.js +2 -0
- package/flow.js.map +1 -1
- package/hierarchy.d.ts +14 -12
- package/hierarchy.d.ts.map +1 -1
- package/hierarchy.js +2 -0
- package/hierarchy.js.map +1 -1
- package/index.d.ts +43 -40
- package/index.d.ts.map +1 -1
- package/index.js +5 -2
- package/index.js.map +1 -1
- package/map.d.ts +11 -9
- package/map.d.ts.map +1 -1
- package/map.js +2 -0
- package/map.js.map +1 -1
- package/package.json +1 -1
- package/percent.d.ts +10 -8
- package/percent.d.ts.map +1 -1
- package/percent.js +2 -0
- package/percent.js.map +1 -1
- package/radar.d.ts +10 -8
- package/radar.d.ts.map +1 -1
- package/radar.js +2 -0
- package/radar.js.map +1 -1
- package/venn.d.ts +3 -1
- package/venn.d.ts.map +1 -1
- package/venn.js +2 -0
- package/venn.js.map +1 -1
- package/wc.d.ts +3 -1
- package/wc.d.ts.map +1 -1
- package/wc.js +2 -0
- package/wc.js.map +1 -1
- package/xy.d.ts +30 -25
- package/xy.d.ts.map +1 -1
- package/xy.js +5 -0
- package/xy.js.map +1 -1
|
@@ -7,6 +7,13 @@ import { __assign } from "tslib";
|
|
|
7
7
|
*/
|
|
8
8
|
import * as $type from "./Type";
|
|
9
9
|
import * as $utils from "./Utils";
|
|
10
|
+
/**
|
|
11
|
+
* Returns a `Promise` which can be used to execute code after number of
|
|
12
|
+
* milliseconds.
|
|
13
|
+
*
|
|
14
|
+
* @param ms Sleep duration in ms
|
|
15
|
+
* @return Promise
|
|
16
|
+
*/
|
|
10
17
|
export function sleep(ms) {
|
|
11
18
|
return new Promise(function (resolve, _reject) {
|
|
12
19
|
setTimeout(resolve, ms);
|
|
@@ -62,7 +69,6 @@ export function getNextUnit(unit) {
|
|
|
62
69
|
* Available units: "millisecond", "second", "minute", "hour", "day", "week",
|
|
63
70
|
* "month", and "year".
|
|
64
71
|
*
|
|
65
|
-
* @ignore Exclude from docs
|
|
66
72
|
* @param unit Time unit
|
|
67
73
|
* @param count Number of units
|
|
68
74
|
* @return Milliseconds
|
|
@@ -101,7 +107,6 @@ export function getTime() {
|
|
|
101
107
|
/**
|
|
102
108
|
* Returns a copy of the `Date` object.
|
|
103
109
|
*
|
|
104
|
-
* @ignore Exclude from docs
|
|
105
110
|
* @param date Source date
|
|
106
111
|
* @return Copy
|
|
107
112
|
*/
|
|
@@ -112,21 +117,22 @@ export function copy(date) {
|
|
|
112
117
|
* Checks if the `unit` part of two `Date` objects do not match. Two dates
|
|
113
118
|
* represent a "range" of time, rather the same time date.
|
|
114
119
|
*
|
|
115
|
-
* @
|
|
116
|
-
* @param
|
|
117
|
-
* @param dateTwo Date 2
|
|
120
|
+
* @param timeOne timestamp
|
|
121
|
+
* @param timeTwo timestamp
|
|
118
122
|
* @param unit Time unit to check
|
|
119
123
|
* @return Range?
|
|
120
124
|
*/
|
|
121
|
-
export function checkChange(
|
|
122
|
-
var timeOne = dateOne.getTime();
|
|
123
|
-
var timeTwo = dateTwo.getTime();
|
|
125
|
+
export function checkChange(timeOne, timeTwo, unit, utc, timezone) {
|
|
124
126
|
// quick
|
|
125
127
|
if ((timeTwo - timeOne) > getDuration(unit, 1.2)) {
|
|
126
128
|
return true;
|
|
127
129
|
}
|
|
128
|
-
dateOne = new Date(timeOne);
|
|
129
|
-
dateTwo = new Date(timeTwo);
|
|
130
|
+
var dateOne = new Date(timeOne);
|
|
131
|
+
var dateTwo = new Date(timeTwo);
|
|
132
|
+
if (timezone) {
|
|
133
|
+
dateOne = timezone.convertLocal(dateOne);
|
|
134
|
+
dateTwo = timezone.convertLocal(dateTwo);
|
|
135
|
+
}
|
|
130
136
|
var timeZoneOffset1 = 0;
|
|
131
137
|
var timeZoneOffset2 = 0;
|
|
132
138
|
if (!utc && unit != "millisecond") {
|
|
@@ -180,13 +186,11 @@ export function checkChange(dateOne, dateTwo, unit, utc) {
|
|
|
180
186
|
break;
|
|
181
187
|
}
|
|
182
188
|
if (changed) {
|
|
183
|
-
return
|
|
189
|
+
return changed;
|
|
184
190
|
}
|
|
185
191
|
var nextUnit = getNextUnit(unit);
|
|
186
192
|
if (nextUnit) {
|
|
187
|
-
|
|
188
|
-
dateTwo.setUTCMinutes(dateTwo.getUTCMinutes() + timeZoneOffset2);
|
|
189
|
-
return checkChange(dateOne, dateTwo, nextUnit, utc);
|
|
193
|
+
return checkChange(timeOne, timeTwo, nextUnit, utc, timezone);
|
|
190
194
|
}
|
|
191
195
|
else {
|
|
192
196
|
return false;
|
|
@@ -195,7 +199,6 @@ export function checkChange(dateOne, dateTwo, unit, utc) {
|
|
|
195
199
|
/**
|
|
196
200
|
* Adds `count` of time `unit` to the source date. Returns a modified `Date` object.
|
|
197
201
|
*
|
|
198
|
-
* @ignore Exclude from docs
|
|
199
202
|
* @param date Source date
|
|
200
203
|
* @param unit Time unit
|
|
201
204
|
* @param count Number of units to add
|
|
@@ -260,129 +263,213 @@ export function add(date, unit, count, utc) {
|
|
|
260
263
|
/**
|
|
261
264
|
* "Rounds" the date to specific time unit.
|
|
262
265
|
*
|
|
263
|
-
* @ignore Exclude from docs
|
|
264
266
|
* @param date Source date
|
|
265
267
|
* @param unit Time unit
|
|
266
268
|
* @param count Number of units to round to
|
|
267
269
|
* @param firstDateOfWeek First day of week
|
|
270
|
+
* @param utc Use UTC timezone
|
|
271
|
+
* @param firstDate First date to round to
|
|
272
|
+
* @param roundMinutes Minutes to round to (some timezones use non-whole hour)
|
|
273
|
+
* @param timezone Use specific named timezone when rounding
|
|
268
274
|
* @return New date
|
|
269
275
|
*/
|
|
270
|
-
export function round(date, unit, count, firstDateOfWeek, utc, firstDate) {
|
|
271
|
-
if (
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
export function round(date, unit, count, firstDateOfWeek, utc, firstDate, timezone) {
|
|
277
|
+
if (!timezone || utc) {
|
|
278
|
+
var timeZoneOffset = 0;
|
|
279
|
+
if (!utc && unit != "millisecond") {
|
|
280
|
+
timeZoneOffset = date.getTimezoneOffset();
|
|
281
|
+
date.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);
|
|
282
|
+
}
|
|
283
|
+
switch (unit) {
|
|
284
|
+
case "day":
|
|
285
|
+
var day = date.getUTCDate();
|
|
286
|
+
if (count > 1) {
|
|
287
|
+
// day = Math.floor(day / count) * count;
|
|
288
|
+
if (firstDate) {
|
|
289
|
+
firstDate = round(firstDate, "day", 1);
|
|
290
|
+
var difference = date.getTime() - firstDate.getTime();
|
|
291
|
+
var unitCount = Math.floor(difference / getDuration("day") / count);
|
|
292
|
+
var duration = getDuration("day", unitCount * count);
|
|
293
|
+
date.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration("minute"));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
date.setUTCDate(day);
|
|
298
|
+
}
|
|
299
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
300
|
+
break;
|
|
301
|
+
case "second":
|
|
302
|
+
var seconds = date.getUTCSeconds();
|
|
303
|
+
if (count > 1) {
|
|
304
|
+
seconds = Math.floor(seconds / count) * count;
|
|
305
|
+
}
|
|
306
|
+
date.setUTCSeconds(seconds, 0);
|
|
307
|
+
break;
|
|
308
|
+
case "millisecond":
|
|
309
|
+
if (count == 1) {
|
|
310
|
+
return date; // much better for perf!
|
|
311
|
+
}
|
|
312
|
+
var milliseconds = date.getUTCMilliseconds();
|
|
313
|
+
milliseconds = Math.floor(milliseconds / count) * count;
|
|
314
|
+
date.setUTCMilliseconds(milliseconds);
|
|
315
|
+
break;
|
|
316
|
+
case "hour":
|
|
317
|
+
var hours = date.getUTCHours();
|
|
318
|
+
if (count > 1) {
|
|
319
|
+
hours = Math.floor(hours / count) * count;
|
|
320
|
+
}
|
|
321
|
+
date.setUTCHours(hours, 0, 0, 0);
|
|
322
|
+
break;
|
|
323
|
+
case "minute":
|
|
324
|
+
var minutes = date.getUTCMinutes();
|
|
325
|
+
milliseconds = date.getUTCMilliseconds();
|
|
326
|
+
if (count > 1) {
|
|
327
|
+
minutes = Math.floor(minutes / count) * count;
|
|
328
|
+
}
|
|
329
|
+
date.setUTCMinutes(minutes, 0, 0);
|
|
330
|
+
break;
|
|
331
|
+
case "month":
|
|
332
|
+
var month = date.getUTCMonth();
|
|
333
|
+
if (count > 1) {
|
|
334
|
+
month = Math.floor(month / count) * count;
|
|
335
|
+
}
|
|
336
|
+
date.setUTCMonth(month, 1);
|
|
337
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
338
|
+
break;
|
|
339
|
+
case "year":
|
|
340
|
+
var year = date.getUTCFullYear();
|
|
341
|
+
if (count > 1) {
|
|
342
|
+
year = Math.floor(year / count) * count;
|
|
343
|
+
}
|
|
344
|
+
date.setUTCFullYear(year, 0, 1);
|
|
345
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
346
|
+
break;
|
|
347
|
+
case "week":
|
|
348
|
+
var wday = date.getUTCDate();
|
|
349
|
+
var weekDay = date.getUTCDay();
|
|
350
|
+
if (!$type.isNumber(firstDateOfWeek)) {
|
|
351
|
+
firstDateOfWeek = 1;
|
|
352
|
+
}
|
|
353
|
+
if (weekDay >= firstDateOfWeek) {
|
|
354
|
+
wday = wday - weekDay + firstDateOfWeek;
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
wday = wday - (7 + weekDay) + firstDateOfWeek;
|
|
358
|
+
}
|
|
359
|
+
date.setUTCDate(wday);
|
|
360
|
+
date.setUTCHours(0, 0, 0, 0);
|
|
361
|
+
break;
|
|
362
|
+
}
|
|
363
|
+
if (!utc && unit != "millisecond") {
|
|
364
|
+
date.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);
|
|
365
|
+
if (unit == "day" || unit == "week" || unit == "month" || unit == "year") {
|
|
366
|
+
var newTimeZoneOffset = date.getTimezoneOffset();
|
|
367
|
+
if (newTimeZoneOffset != timeZoneOffset) {
|
|
368
|
+
var diff = newTimeZoneOffset - timeZoneOffset;
|
|
369
|
+
date.setUTCMinutes(date.getUTCMinutes() + diff);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return date;
|
|
278
374
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
375
|
+
else {
|
|
376
|
+
var tzoffset = timezone.offsetUTC(date);
|
|
377
|
+
var timeZoneOffset = date.getTimezoneOffset();
|
|
378
|
+
var parsedDate = timezone.parseDate(date);
|
|
379
|
+
var year = parsedDate.year;
|
|
380
|
+
var month = parsedDate.month;
|
|
381
|
+
var day = parsedDate.day;
|
|
382
|
+
var hour = parsedDate.hour;
|
|
383
|
+
var minute = parsedDate.minute;
|
|
384
|
+
var second = parsedDate.second;
|
|
385
|
+
var millisecond = parsedDate.millisecond;
|
|
386
|
+
switch (unit) {
|
|
387
|
+
case "day":
|
|
284
388
|
if (firstDate) {
|
|
285
389
|
firstDate = round(firstDate, "day", 1);
|
|
286
390
|
var difference = date.getTime() - firstDate.getTime();
|
|
287
391
|
var unitCount = Math.floor(difference / getDuration("day") / count);
|
|
288
392
|
var duration = getDuration("day", unitCount * count);
|
|
289
393
|
date.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration("minute"));
|
|
394
|
+
year = date.getUTCFullYear();
|
|
395
|
+
month = date.getUTCMonth();
|
|
396
|
+
day = date.getUTCDate();
|
|
290
397
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
firstDateOfWeek
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
}
|
|
362
|
-
if (!utc && unit != "millisecond") {
|
|
363
|
-
date.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);
|
|
364
|
-
if (unit == "day" || unit == "week" || unit == "month" || unit == "year") {
|
|
365
|
-
var newTimeZoneOffset = date.getTimezoneOffset();
|
|
366
|
-
if (newTimeZoneOffset != timeZoneOffset) {
|
|
367
|
-
var diff = newTimeZoneOffset - timeZoneOffset;
|
|
368
|
-
date.setUTCMinutes(date.getUTCMinutes() + diff);
|
|
369
|
-
}
|
|
398
|
+
hour = 0;
|
|
399
|
+
minute = 0;
|
|
400
|
+
second = 0;
|
|
401
|
+
millisecond = 0;
|
|
402
|
+
break;
|
|
403
|
+
case "second":
|
|
404
|
+
if (count > 1) {
|
|
405
|
+
second = Math.floor(second / count) * count;
|
|
406
|
+
}
|
|
407
|
+
millisecond = 0;
|
|
408
|
+
break;
|
|
409
|
+
case "millisecond":
|
|
410
|
+
if (count > 1) {
|
|
411
|
+
millisecond = Math.floor(millisecond / count) * count;
|
|
412
|
+
}
|
|
413
|
+
break;
|
|
414
|
+
case "hour":
|
|
415
|
+
if (count > 1) {
|
|
416
|
+
hour = Math.floor(hour / count) * count;
|
|
417
|
+
}
|
|
418
|
+
minute = 0;
|
|
419
|
+
second = 0;
|
|
420
|
+
millisecond = 0;
|
|
421
|
+
break;
|
|
422
|
+
case "minute":
|
|
423
|
+
if (count > 1) {
|
|
424
|
+
minute = Math.floor(minute / count) * count;
|
|
425
|
+
}
|
|
426
|
+
second = 0;
|
|
427
|
+
millisecond = 0;
|
|
428
|
+
break;
|
|
429
|
+
case "month":
|
|
430
|
+
if (count > 1) {
|
|
431
|
+
month = Math.floor(month / count) * count;
|
|
432
|
+
}
|
|
433
|
+
day = 1;
|
|
434
|
+
hour = 0;
|
|
435
|
+
minute = 0;
|
|
436
|
+
second = 0;
|
|
437
|
+
millisecond = 0;
|
|
438
|
+
break;
|
|
439
|
+
case "year":
|
|
440
|
+
if (count > 1) {
|
|
441
|
+
year = Math.floor(year / count) * count;
|
|
442
|
+
}
|
|
443
|
+
month = 0;
|
|
444
|
+
day = 1;
|
|
445
|
+
hour = 0;
|
|
446
|
+
minute = 0;
|
|
447
|
+
second = 0;
|
|
448
|
+
millisecond = 0;
|
|
449
|
+
break;
|
|
450
|
+
case "week":
|
|
451
|
+
if (!$type.isNumber(firstDateOfWeek)) {
|
|
452
|
+
firstDateOfWeek = 1;
|
|
453
|
+
}
|
|
454
|
+
var wday = date.getUTCDate();
|
|
455
|
+
var weekDay = date.getUTCDay();
|
|
456
|
+
if (weekDay >= firstDateOfWeek) {
|
|
457
|
+
wday = wday - weekDay + firstDateOfWeek;
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
wday = wday - (7 + weekDay) + firstDateOfWeek;
|
|
461
|
+
}
|
|
462
|
+
day = wday;
|
|
463
|
+
hour = 0;
|
|
464
|
+
minute = 0;
|
|
465
|
+
second = 0;
|
|
466
|
+
millisecond = 0;
|
|
467
|
+
break;
|
|
370
468
|
}
|
|
469
|
+
minute += tzoffset - timeZoneOffset;
|
|
470
|
+
date = new Date(year, month, day, hour, minute, second, millisecond);
|
|
471
|
+
return date;
|
|
371
472
|
}
|
|
372
|
-
return date;
|
|
373
|
-
}
|
|
374
|
-
/**
|
|
375
|
-
* Returns a new `Date` object which corresponds to the source date in a
|
|
376
|
-
* specific timezone.
|
|
377
|
-
*
|
|
378
|
-
* @since 4.10.1
|
|
379
|
-
* @param date Source date
|
|
380
|
-
* @param timezone Timezone identifier
|
|
381
|
-
* @return Recalculated new Date
|
|
382
|
-
*/
|
|
383
|
-
export function setTimezone(date, timezone) {
|
|
384
|
-
var d = new Date(date.toLocaleString("en-US", { timeZone: timezone }));
|
|
385
|
-
return d;
|
|
386
473
|
}
|
|
387
474
|
/**
|
|
388
475
|
* @ignore
|
|
@@ -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\";\n\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\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 * @ignore Exclude from docs\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/**\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 * @ignore Exclude from docs\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 * @ignore Exclude from docs\n * @param dateOne Date 1\n * @param dateTwo Date 2\n * @param unit Time unit to check\n * @return Range?\n */\nexport function checkChange(dateOne: Date, dateTwo: Date, unit: TimeUnit, utc?: boolean): boolean {\n\n\tconst timeOne = dateOne.getTime();\n\tconst timeTwo = dateTwo.getTime();\n\n\t// quick\n\tif ((timeTwo - timeOne) > getDuration(unit, 1.2)) {\n\t\treturn true;\n\t}\n\n\tdateOne = new Date(timeOne);\n\tdateTwo = new Date(timeTwo);\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 true;\n\t}\n\n\tlet nextUnit: $type.Optional<TimeUnit> = getNextUnit(unit);\n\tif (nextUnit) {\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() + timeZoneOffset1);\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() + timeZoneOffset2);\n\t\treturn checkChange(dateOne, dateTwo, nextUnit, utc);\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 * @ignore Exclude from docs\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 * \"Rounds\" the date to specific time unit.\n *\n * @ignore Exclude from docs\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 * @return New date\n */\nexport function round(date: Date, unit: TimeUnit, count: number, firstDateOfWeek?: number, utc?: boolean, firstDate?: Date): Date {\n\n\tif (!$type.isNumber(count)) {\n\t\tcount = 1;\n\t}\n\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\n\t\tcase \"day\":\n\t\t\tlet day = date.getUTCDate();\n\n\t\t\tif (count > 1) {\n\t\t\t\t//\tday = Math.floor(day / count) * count;\n\t\t\t\tif (firstDate) {\n\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\n\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\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdate.setUTCDate(day);\n\t\t\t}\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds = date.getUTCSeconds();\n\t\t\tif (count > 1) {\n\t\t\t\tseconds = Math.floor(seconds / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCSeconds(seconds, 0);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (count == 1) {\n\t\t\t\treturn date; // much better for perf!\n\t\t\t}\n\n\t\t\tlet milliseconds = date.getUTCMilliseconds();\n\t\t\tmilliseconds = Math.floor(milliseconds / count) * count;\n\t\t\tdate.setUTCMilliseconds(milliseconds);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\n\t\t\tlet hours = date.getUTCHours();\n\t\t\tif (count > 1) {\n\t\t\t\thours = Math.floor(hours / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCHours(hours, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\n\t\t\tlet minutes = date.getUTCMinutes();\n\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t\tif (count > 1) {\n\t\t\t\tminutes = Math.floor(minutes / count) * count;\n\t\t\t}\n\n\t\t\tdate.setUTCMinutes(minutes, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\n\t\t\tlet month = date.getUTCMonth();\n\t\t\tif (count > 1) {\n\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t}\n\n\t\t\tdate.setUTCMonth(month, 1);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\n\t\t\tlet year = date.getUTCFullYear();\n\t\t\tif (count > 1) {\n\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCFullYear(year, 0, 1);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t//let nonUTCDateY = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n\t\t\t//timeZoneOffset = nonUTCDateY.getTimezoneOffset();\n\n\t\t\tbreak;\n\n\n\t\tcase \"week\":\n\n\t\t\tlet wday = date.getUTCDate();\n\t\t\tlet weekDay = date.getUTCDay();\n\n\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t}\n\n\t\t\t// todo: rounding when count is not 1\n\t\t\tif (weekDay >= firstDateOfWeek) {\n\t\t\t\twday = wday - weekDay + firstDateOfWeek;\n\t\t\t} else {\n\t\t\t\twday = wday - (7 + weekDay) + firstDateOfWeek;\n\t\t\t}\n\n\t\t\tdate.setUTCDate(wday);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\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}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n/**\n * Returns a new `Date` object which corresponds to the source date in a\n * specific timezone.\n *\n * @since 4.10.1\n * @param date Source date\n * @param timezone Timezone identifier\n * @return Recalculated new Date\n */\nexport function setTimezone(date: Date, timezone: string): Date {\n\tconst d = new Date(date.toLocaleString(\"en-US\", { timeZone: timezone }));\n\treturn d;\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\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/**\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\tlet tzoffset = timezone.offsetUTC(date);\n\t\tlet timeZoneOffset = date.getTimezoneOffset();\n\t\tconst parsedDate = timezone.parseDate(date);\n\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\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\t\t\t\t\tyear = date.getUTCFullYear();\n\t\t\t\t\tmonth = date.getUTCMonth();\n\t\t\t\t\tday = date.getUTCDate();\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\tlet wday = date.getUTCDate();\n\t\t\t\tlet weekDay = date.getUTCDay();\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\tday = wday;\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\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"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
interface ParsedDate {
|
|
2
|
+
year: number;
|
|
3
|
+
month: number;
|
|
4
|
+
day: number;
|
|
5
|
+
hour: number;
|
|
6
|
+
minute: number;
|
|
7
|
+
second: number;
|
|
8
|
+
millisecond: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class Timezone {
|
|
11
|
+
private _utc;
|
|
12
|
+
private _dtf;
|
|
13
|
+
readonly name: string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Use this method to create an instance of this class.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info
|
|
18
|
+
* @param timezone IANA timezone
|
|
19
|
+
* @return Instantiated object
|
|
20
|
+
*/
|
|
21
|
+
static new<C extends typeof Timezone, T extends InstanceType<C>>(this: C, timezone: string | undefined): T;
|
|
22
|
+
constructor(timezone: string | undefined, isReal: boolean);
|
|
23
|
+
convertLocal(date: Date): Date;
|
|
24
|
+
offsetUTC(date: Date): number;
|
|
25
|
+
parseDate(date: Date): ParsedDate;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=Timezone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timezone.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Timezone.ts"],"names":[],"mappings":"AAAA,UAAU,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACpB;AAmDD,qBAAa,QAAQ;IACpB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,IAAI,CAAsB;IAElC,SAAgB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC;;;;;;OAMG;IACN,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,QAAQ,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC;gBAI9F,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO;IAgCzD,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ9B,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAM1B,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU;CAGpC"}
|