tsichart-core 1.0.5 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +80 -0
  3. package/dist/index.d.ts +1744 -0
  4. package/dist/index.js +14284 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +14209 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/{tsiclient.css → styles/index.css} +9498 -9497
  9. package/dist/styles/index.css.map +1 -0
  10. package/package.json +115 -124
  11. package/README.MD +0 -171
  12. package/dist/AggregateExpression.d.ts +0 -13
  13. package/dist/AggregateExpression.js +0 -70
  14. package/dist/AvailabilityChart-C8ewvn3T.js +0 -488
  15. package/dist/AvailabilityChart.d.ts +0 -59
  16. package/dist/AvailabilityChart.js +0 -26
  17. package/dist/ChartComponent-Dg8P-BTZ.js +0 -302
  18. package/dist/ChartComponent-ONNW31RL.d.ts +0 -80
  19. package/dist/ChartComponentData-DBW8_FnY.d.ts +0 -47
  20. package/dist/ChartDataOptions-CNTSB636.js +0 -49
  21. package/dist/ChartDataOptions-D0BJuRZy.d.ts +0 -38
  22. package/dist/ChartVisualizationComponent-CTs5Q_sg.js +0 -23
  23. package/dist/ChartVisualizationComponent-CpR8xZla.d.ts +0 -8
  24. package/dist/ColorPicker-0p6vkATj.js +0 -120
  25. package/dist/ColorPicker.d.ts +0 -28
  26. package/dist/ColorPicker.js +0 -6
  27. package/dist/Component-BgifJdKl.js +0 -401
  28. package/dist/Component-DXwYPoSo.d.ts +0 -226
  29. package/dist/ContextMenu-wqGGgAzp.js +0 -197
  30. package/dist/DateTimeButton-D7N8XG0S.js +0 -38
  31. package/dist/DateTimeButton-DfJL5kvr.d.ts +0 -16
  32. package/dist/DateTimeButtonRange-BM_J646m.js +0 -71
  33. package/dist/DateTimeButtonRange.d.ts +0 -19
  34. package/dist/DateTimeButtonRange.js +0 -15
  35. package/dist/DateTimeButtonSingle-BxMSitQG.js +0 -48
  36. package/dist/DateTimeButtonSingle.d.ts +0 -17
  37. package/dist/DateTimeButtonSingle.js +0 -14
  38. package/dist/DateTimePicker-BgTi-DY9.js +0 -532
  39. package/dist/DateTimePicker.d.ts +0 -69
  40. package/dist/DateTimePicker.js +0 -13
  41. package/dist/EllipsisMenu-CxJ0LoVm.js +0 -116
  42. package/dist/EllipsisMenu.d.ts +0 -20
  43. package/dist/EllipsisMenu.js +0 -6
  44. package/dist/Enums-DWpaQlXk.d.ts +0 -12
  45. package/dist/EventsTable-CsnBvvIW.js +0 -553
  46. package/dist/EventsTable.d.ts +0 -34
  47. package/dist/EventsTable.js +0 -10
  48. package/dist/GeoProcessGraphic-CUBMHIHX.js +0 -145
  49. package/dist/GeoProcessGraphic.d.ts +0 -34
  50. package/dist/GeoProcessGraphic.js +0 -7
  51. package/dist/Grid-uoHKTet9.js +0 -874
  52. package/dist/Grid.d.ts +0 -43
  53. package/dist/Grid.js +0 -6
  54. package/dist/GroupedBarChart-Bc3cGhgz.js +0 -579
  55. package/dist/GroupedBarChart.d.ts +0 -22
  56. package/dist/GroupedBarChart.js +0 -17
  57. package/dist/GroupedBarChartData-B7BTM9JH.d.ts +0 -20
  58. package/dist/GroupedBarChartData-Ml5JJimg.js +0 -121
  59. package/dist/Heatmap-5gFc_AVW.js +0 -524
  60. package/dist/Heatmap.d.ts +0 -31
  61. package/dist/Heatmap.js +0 -14
  62. package/dist/Hierarchy-C5ueDsus.js +0 -260
  63. package/dist/Hierarchy.d.ts +0 -39
  64. package/dist/Hierarchy.js +0 -6
  65. package/dist/HierarchyNavigation-C3Pwt0D6.js +0 -336
  66. package/dist/HierarchyNavigation.d.ts +0 -34
  67. package/dist/HierarchyNavigation.js +0 -6
  68. package/dist/HistoryPlayback-D09bter3.js +0 -175
  69. package/dist/HistoryPlayback-DmJ6u7lU.d.ts +0 -68
  70. package/dist/Interfaces-R_1l9lIT.d.ts +0 -6
  71. package/dist/Legend-gCIrAytG.js +0 -497
  72. package/dist/LineChart-CzDp5ULB.js +0 -3181
  73. package/dist/LineChart.d.ts +0 -163
  74. package/dist/LineChart.js +0 -18
  75. package/dist/ModelAutocomplete-lU71Ndju.js +0 -100
  76. package/dist/ModelAutocomplete.d.ts +0 -12
  77. package/dist/ModelAutocomplete.js +0 -7
  78. package/dist/ModelSearch-OF4DygOJ.js +0 -189
  79. package/dist/ModelSearch.d.ts +0 -23
  80. package/dist/ModelSearch.js +0 -9
  81. package/dist/PieChart-XLc9Itne.js +0 -258
  82. package/dist/PieChart.d.ts +0 -26
  83. package/dist/PieChart.js +0 -17
  84. package/dist/PlaybackControls-DbG9gExy.js +0 -195
  85. package/dist/PlaybackControls.d.ts +0 -39
  86. package/dist/PlaybackControls.js +0 -13
  87. package/dist/ProcessGraphic-Cft1b4Mf.js +0 -154
  88. package/dist/ProcessGraphic.d.ts +0 -31
  89. package/dist/ProcessGraphic.js +0 -7
  90. package/dist/ScatterPlot-CdnqSHq2.js +0 -924
  91. package/dist/ScatterPlot.d.ts +0 -115
  92. package/dist/ScatterPlot.js +0 -17
  93. package/dist/SingleDateTimePicker-Ddr-ogTk.js +0 -213
  94. package/dist/SingleDateTimePicker.d.ts +0 -45
  95. package/dist/SingleDateTimePicker.js +0 -12
  96. package/dist/Slider-CX0nvlqx.js +0 -186
  97. package/dist/Slider.d.ts +0 -31
  98. package/dist/Slider.js +0 -6
  99. package/dist/TemporalXAxisComponent-DXmMekYq.js +0 -129
  100. package/dist/TemporalXAxisComponent-PIeiJYUr.d.ts +0 -23
  101. package/dist/TimezonePicker-CQpXR5eb.js +0 -58
  102. package/dist/TimezonePicker.d.ts +0 -16
  103. package/dist/TimezonePicker.js +0 -10
  104. package/dist/Tooltip-C13k0eeH.js +0 -104
  105. package/dist/TsqExpression.d.ts +0 -36
  106. package/dist/TsqExpression.js +0 -89
  107. package/dist/UXClient-Bn1afElm.js +0 -230
  108. package/dist/UXClient.d.ts +0 -74
  109. package/dist/UXClient.js +0 -47
  110. package/dist/Utils-BcQeZOM3.d.ts +0 -104
  111. package/dist/Utils-DDGqSryb.js +0 -1138
  112. package/dist/Utils.d.ts +0 -7
  113. package/dist/Utils.js +0 -7
  114. package/dist/_tslib-BYFmvNeL.js +0 -96
  115. package/dist/pikaday-jh_aVtJs.js +0 -1252
  116. package/dist/tsiclient.cjs.js +0 -3
  117. package/dist/tsiclient.cjs.js.LICENSE.txt +0 -19
  118. package/dist/tsiclient.cjs.js.map +0 -1
  119. package/dist/tsiclient.d.ts +0 -46
  120. package/dist/tsiclient.esm.js +0 -3
  121. package/dist/tsiclient.esm.js.LICENSE.txt +0 -19
  122. package/dist/tsiclient.esm.js.map +0 -1
  123. package/dist/tsiclient.js +0 -58
  124. package/dist/tsiclient.min.css +0 -6
  125. package/dist/tsiclient.min.css.map +0 -1
  126. package/dist/tsiclient.umd.js +0 -3
  127. package/dist/tsiclient.umd.js.LICENSE.txt +0 -19
  128. package/dist/tsiclient.umd.js.map +0 -1
  129. package/dist/tsiclient.umd.min.js +0 -3
  130. package/dist/tsiclient.umd.min.js.LICENSE.txt +0 -19
  131. package/dist/tsiclient.umd.min.js.map +0 -1
  132. package/tsiclient.css +0 -17323
  133. package/tsiclient.d.ts +0 -46
  134. package/tsiclient.js +0 -58
  135. package/tsiclient.min.css +0 -6
@@ -1,488 +0,0 @@
1
- import { _ as __extends, a as __assign } from './_tslib-BYFmvNeL.js';
2
- import * as d3 from 'd3';
3
- import { L as LineChart } from './LineChart-CzDp5ULB.js';
4
- import { D as DateTimePicker } from './DateTimePicker-BgTi-DY9.js';
5
- import { U as Utils } from './Utils-DDGqSryb.js';
6
- import { C as ChartComponent } from './ChartComponent-Dg8P-BTZ.js';
7
- import AggregateExpression from './AggregateExpression.js';
8
- import { D as DateTimeButtonRange } from './DateTimeButtonRange-BM_J646m.js';
9
-
10
- var AvailabilityChart = /** @class */ (function (_super) {
11
- __extends(AvailabilityChart, _super);
12
- function AvailabilityChart(renderTarget) {
13
- var _this = _super.call(this, renderTarget) || this;
14
- _this.minBrushWidth = 5;
15
- _this.minGhostWidth = 2;
16
- _this.margins = {
17
- left: 10,
18
- right: 10
19
- };
20
- return _this;
21
- }
22
- //the most zoomed in possible
23
- AvailabilityChart.prototype.getMinZoomedRange = function () {
24
- var maxZoomFactor = (this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]) / this.minBrushWidth;
25
- var totalTimeRange = this.toMillis - this.fromMillis;
26
- return totalTimeRange / maxZoomFactor;
27
- };
28
- AvailabilityChart.prototype.zoom = function (event, direction, xPos) {
29
- if (this.chartOptions.isCompact)
30
- return;
31
- var range = Math.max(this.getMinZoomedRange(), (this.zoomedToMillis - this.zoomedFromMillis));
32
- var percentile = (xPos - this.sparkLineChart.x.range()[0]) /
33
- (this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]);
34
- var leftImpact = percentile * .2 * range;
35
- var rightImpact = (1 - percentile) * .2 * range;
36
- if (direction == 'out') {
37
- this.zoomedFromMillis = Math.max(this.zoomedFromMillis - leftImpact, this.fromMillis);
38
- this.zoomedToMillis = Math.min(this.zoomedToMillis + rightImpact, this.toMillis);
39
- }
40
- else {
41
- var prospectiveFromMillis = Math.max(this.zoomedFromMillis + leftImpact, this.fromMillis);
42
- var prospectiveToMillis = Math.min(this.zoomedToMillis - rightImpact, this.toMillis);
43
- if (prospectiveToMillis - prospectiveFromMillis >= this.getMinZoomedRange()) {
44
- this.zoomedFromMillis = prospectiveFromMillis;
45
- this.zoomedToMillis = prospectiveToMillis;
46
- }
47
- else {
48
- var offBy = this.getMinZoomedRange() - (prospectiveToMillis - prospectiveFromMillis);
49
- this.zoomedFromMillis = prospectiveFromMillis - (percentile * offBy);
50
- this.zoomedToMillis = prospectiveToMillis + ((1 - percentile) * offBy);
51
- }
52
- }
53
- this.setAvailabilityRange(this.zoomedFromMillis, this.zoomedToMillis);
54
- this.sparkLineChart.setBrushEndTime(new Date(this.zoomedToMillis));
55
- this.sparkLineChart.setBrushStartTime(new Date(this.zoomedFromMillis));
56
- this.sparkLineChart.setBrush();
57
- this.timePickerLineChart.drawBrushRange();
58
- event.preventDefault && event.preventDefault();
59
- };
60
- AvailabilityChart.prototype.setChartOptions = function (chartOptions) {
61
- this.chartOptions.setOptions(__assign(__assign({}, chartOptions), {
62
- keepBrush: true,
63
- isArea: true,
64
- noAnimate: true,
65
- minutesForTimeLabels: true,
66
- aggTopMargin: 0,
67
- yAxisHidden: true,
68
- focusHidden: true,
69
- singleLineXAxisLabel: false
70
- }));
71
- };
72
- AvailabilityChart.prototype.dateTimePickerAction = function (fromMillis, toMillis) {
73
- this.setBrush(fromMillis, toMillis, true);
74
- this.chartOptions.brushMoveEndAction(new Date(fromMillis), new Date(toMillis), this.chartOptions.offset, this.chartOptions.isRelative, this.chartOptions.currentQuickTime);
75
- this.setTicks();
76
- this.dateTimePickerContainer.style("display", "none");
77
- };
78
- //transformation of buckets created by the UX client to buckets for the availabilityChart
79
- AvailabilityChart.prototype.createDisplayBuckets = function (fromMillis, toMillis) {
80
- var _this = this;
81
- var keysInRange = Object.keys(this.transformedAvailability[0].availabilityCount[""]).reduce(function (inRangeObj, timestamp, i, timestamps) {
82
- var currTSMillis = (new Date(timestamp)).valueOf();
83
- var nextTSMillis = currTSMillis + _this.bucketSize;
84
- if (currTSMillis >= fromMillis && currTSMillis <= toMillis) {
85
- inRangeObj[(new Date(currTSMillis)).toISOString()] = _this.transformedAvailability[0].availabilityCount[""][timestamp];
86
- return inRangeObj;
87
- }
88
- if (currTSMillis < fromMillis && nextTSMillis > fromMillis) {
89
- inRangeObj[(new Date(fromMillis)).toISOString()] = _this.transformedAvailability[0].availabilityCount[""][timestamp];
90
- return inRangeObj;
91
- }
92
- return inRangeObj;
93
- }, {});
94
- var rawBucketCount = Math.ceil((toMillis - fromMillis) / this.bucketSize);
95
- var bucketMultiplier = Math.ceil(rawBucketCount / this.maxBuckets);
96
- var computedBucketSize = this.bucketSize * bucketMultiplier;
97
- var createKey = function (millis) { return Math.round(Math.floor(millis / computedBucketSize) * computedBucketSize); };
98
- var firstBucket = createKey(fromMillis);
99
- var lastBucket = createKey(toMillis);
100
- var buckets = [];
101
- for (var i = firstBucket; i <= lastBucket; i += computedBucketSize) {
102
- buckets[(new Date(i)).toISOString()] = { count: 0 };
103
- }
104
- Object.keys(keysInRange).sort().forEach(function (ts, i) {
105
- var tsMillis = (new Date(ts)).valueOf();
106
- var computedKey = createKey(tsMillis);
107
- buckets[(new Date(computedKey)).toISOString()].count += (keysInRange[ts].count / bucketMultiplier);
108
- });
109
- if (fromMillis !== null && firstBucket !== null) {
110
- buckets[(new Date(fromMillis)).toISOString()] = buckets[(new Date(firstBucket)).toISOString()];
111
- }
112
- if (toMillis !== null && lastBucket !== null) {
113
- buckets[(new Date(toMillis)).toISOString()] = buckets[(new Date(lastBucket)).toISOString()];
114
- }
115
- // delete the bucket before the from time
116
- if (firstBucket < fromMillis) {
117
- delete buckets[(new Date(firstBucket)).toISOString()];
118
- }
119
- return [{ "availabilityCount": { "": buckets } }];
120
- };
121
- AvailabilityChart.prototype.setRangeVariables = function (rawAvailability) {
122
- if (Utils.safeNotNullOrUndefined(function () { return rawAvailability.range.from || rawAvailability.range.to || rawAvailability.intervalSize; })) {
123
- this.fromMillis = (new Date(rawAvailability.range.from)).valueOf();
124
- this.toMillis = (new Date(rawAvailability.range.to)).valueOf();
125
- this.bucketSize = Utils.parseTimeInput(rawAvailability.intervalSize);
126
- }
127
- else {
128
- this.fromMillis = null;
129
- this.toMillis = null;
130
- this.bucketSize = null;
131
- }
132
- };
133
- AvailabilityChart.prototype.render = function (transformedAvailability, chartOptions, rawAvailability) {
134
- var _this = this;
135
- if (rawAvailability === void 0) { rawAvailability = {}; }
136
- this.setChartOptions(chartOptions);
137
- this.rawAvailability = rawAvailability;
138
- this.transformedAvailability = transformedAvailability;
139
- this.color = this.chartOptions.color ? this.chartOptions.color : 'teal';
140
- this.maxBuckets = (this.chartOptions.maxBuckets) ? this.chartOptions.maxBuckets : 500;
141
- this.setRangeVariables(rawAvailability);
142
- var startBucket = (this.fromMillis !== null && this.bucketSize !== null) ?
143
- Math.round(Math.floor(this.fromMillis / this.bucketSize) * this.bucketSize) : null;
144
- var endBucket = (this.toMillis !== null && this.bucketSize !== null) ?
145
- Math.round(Math.floor(this.toMillis / this.bucketSize) * this.bucketSize) : null;
146
- if (startBucket !== null && startBucket === endBucket) {
147
- this.fromMillis = Math.floor(this.fromMillis / this.bucketSize) * this.bucketSize;
148
- this.toMillis = this.fromMillis + this.bucketSize;
149
- this.bucketSize = this.bucketSize / 60;
150
- }
151
- this.ae = [new AggregateExpression({ predicateString: "" }, { property: 'Count', type: "Double" }, ['count'], { from: new Date(this.fromMillis), to: new Date(this.toMillis) }, null, 'grey', 'Availability')];
152
- this.targetElement = d3.select(this.renderTarget)
153
- .classed("tsi-availabilityChart", true)
154
- .classed("tsi-compact", this.chartOptions.isCompact)
155
- .classed("tsi-withButton", this.chartOptions.persistDateTimeButtonRange);
156
- this.chartOptions.yAxisHidden = true;
157
- this.chartOptions.focusHidden = true;
158
- this.chartOptions.singleLineXAxisLabel = true;
159
- this.chartOptions.suppressResizeListener = true;
160
- this.chartOptions.brushClearable = false;
161
- this.chartOptions.minBrushWidth = 1;
162
- this.chartOptions.brushHandlesVisible = true;
163
- var brushMoveAction = this.chartOptions.brushMoveAction;
164
- this.chartOptions.brushMoveAction = function (from, to) {
165
- _this.setFromAndToTimes(from.valueOf(), to.valueOf());
166
- _this.drawGhost();
167
- if (_this.chartOptions.isCompact) {
168
- _this.buildCompactFromAndTo();
169
- }
170
- if (brushMoveAction != null)
171
- brushMoveAction(from, to);
172
- };
173
- _super.prototype.themify.call(this, this.targetElement, chartOptions.theme);
174
- if (this.timePickerContainer == null) {
175
- this.targetElement.html("");
176
- this.timePickerContainer = this.targetElement.append("div")
177
- .classed("tsi-timePickerContainer", true);
178
- this.timePickerChart = this.timePickerContainer.append("div").classed("tsi-timePickerChart", true);
179
- var sparkLineContainer = this.targetElement.append("div").classed("tsi-sparklineContainer", true);
180
- this.timePickerTextContainer = this.targetElement.append("div").classed("tsi-timePickerTextContainer", true)
181
- .style("margin-left", this.chartOptions.availabilityLeftMargin + this.margins.left);
182
- this.timePickerLineChart = new LineChart(this.timePickerChart.node());
183
- this.timePickerLineChart.chartMargins.left = (this.chartOptions.availabilityLeftMargin - this.margins.left);
184
- this.buildFromAndToContainer();
185
- this.sparkLineChart = new LineChart(sparkLineContainer.node());
186
- this.sparkLineChart.chartMargins.left = (this.chartOptions.availabilityLeftMargin - this.margins.left);
187
- this.dateTimePickerContainer = this.targetElement.append("div").classed("tsi-dateTimePickerContainer", true);
188
- this.dateTimePicker = new DateTimePicker(this.dateTimePickerContainer.node());
189
- window.addEventListener('resize', function () {
190
- _this.timePickerLineChart.draw();
191
- _this.setTicks();
192
- _this.drawWarmRange();
193
- if (_this.chartOptions.isCompact)
194
- _this.buildCompactFromAndTo();
195
- setTimeout(function () {
196
- _this.drawGhost();
197
- }, 100);
198
- });
199
- this.targetElement.selectAll(".tsi-dateTimePickerContainer, .tsi-dateTimePickerContainer *");
200
- }
201
- //clear the date time picker
202
- this.dateTimePickerContainer.style("display", "none");
203
- this.timePickerContainer.selectAll('.tsi-compactFromTo').remove();
204
- if (this.chartOptions.isCompact) {
205
- this.targetElement.select('.tsi-sparklineContainer').style("display", 'none');
206
- if (!this.chartOptions.persistDateTimeButtonRange)
207
- this.targetElement.select(".tsi-timePickerTextContainer").style('display', 'none');
208
- this.targetElement.select('.tsi-zoomButtonContainer').style('display', 'none');
209
- this.targetElement.select('.tsi-timePickerContainer').style('max-height', '68px').style('top', this.chartOptions.persistDateTimeButtonRange ? '6px' : '20px');
210
- }
211
- else {
212
- this.targetElement.select('.tsi-sparklineContainer').style("display", 'flex');
213
- this.targetElement.select(".tsi-timePickerTextContainer").style('display', 'inherit');
214
- this.targetElement.select('.tsi-zoomButtonContainer').style('display', 'flex');
215
- this.targetElement.select('.tsi-timePickerContainer').style('max-height', 'none').style('top', '0px');
216
- }
217
- var sparkLineOptions = this.createSparkLineOptions(chartOptions);
218
- var visibileAvailability = this.createDisplayBuckets(this.fromMillis, this.toMillis);
219
- this.sparkLineChart.render(visibileAvailability, sparkLineOptions, this.ae);
220
- this.timePickerLineChart.render(visibileAvailability, this.chartOptions, this.ae);
221
- this.setTicks();
222
- this.drawWarmRange();
223
- if (!this.chartOptions.preserveAvailabilityState) {
224
- this.zoomedToMillis = this.toMillis;
225
- this.zoomedFromMillis = this.chartOptions.defaultAvailabilityZoomRangeMillis ? Math.max(this.fromMillis, this.toMillis - this.chartOptions.defaultAvailabilityZoomRangeMillis) : this.fromMillis;
226
- this.sparkLineChart.setBrushStartTime(new Date(this.zoomedFromMillis));
227
- this.sparkLineChart.setBrushEndTime(new Date(this.zoomedToMillis));
228
- this.setFromAndToTimes(Math.max(this.fromMillis, this.toMillis - (24 * 60 * 60 * 1000)), this.toMillis);
229
- this.setBrush(Math.max(this.fromMillis, this.toMillis - (24 * 60 * 60 * 1000)), this.toMillis);
230
- }
231
- else {
232
- if (this.zoomedFromMillis == null)
233
- this.zoomedFromMillis = this.chartOptions.defaultAvailabilityZoomRangeMillis ? Math.max(this.fromMillis, this.toMillis - this.chartOptions.defaultAvailabilityZoomRangeMillis) : this.fromMillis;
234
- if (this.zoomedToMillis == null)
235
- this.zoomedToMillis = this.toMillis;
236
- if (this.sparkLineChart.brushStartTime == null)
237
- this.sparkLineChart.setBrushStartTime(new Date(this.zoomedFromMillis));
238
- if (this.sparkLineChart.brushEndTime == null)
239
- this.sparkLineChart.setBrushEndTime(new Date(this.zoomedToMillis));
240
- if (this.selectedFromMillis == null || this.selectedToMillis == null)
241
- this.setFromAndToTimes(this.toMillis - (24 * 60 * 60 * 1000), this.toMillis);
242
- this.drawGhost();
243
- this.setBrush(this.selectedFromMillis, this.selectedToMillis);
244
- }
245
- this.sparkLineChart.setBrush();
246
- var self = this;
247
- this.timePickerChart.select(".brushElem").on("wheel.zoom", function (event, d) {
248
- var direction = event.deltaY > 0 ? 'out' : 'in';
249
- var xPos = (d3.pointer(event)[0]);
250
- self.zoom(event, direction, xPos);
251
- });
252
- if (!this.chartOptions.isCompact) {
253
- this.buildZoomButtons();
254
- }
255
- else {
256
- this.timePickerChart.select('.brushElem').select('.selection');
257
- }
258
- this.setAvailabilityRange(this.zoomedFromMillis, this.zoomedToMillis);
259
- if (this.chartOptions.isCompact) {
260
- this.buildCompactFromAndTo();
261
- }
262
- this.timePickerLineChart.drawBrushRange();
263
- };
264
- AvailabilityChart.prototype.buildZoomButtons = function () {
265
- var _this = this;
266
- this.targetElement.selectAll(".tsi-zoomButtonContainer").remove();
267
- var midpoint = (this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]) / 2;
268
- var buttonsDiv = this.targetElement.append("div")
269
- .classed("tsi-zoomButtonContainer", true);
270
- buttonsDiv.append("button")
271
- .attr("class", "tsi-zoomButton tsi-zoomButtonIn")
272
- .attr('aria-label', this.getString('A line chart zoom in'))
273
- .attr('title', this.getString('zoom in'))
274
- .on("click", function (event) {
275
- _this.zoom(event, "in", midpoint);
276
- });
277
- buttonsDiv.append("button")
278
- .attr("class", "tsi-zoomButton tsi-zoomButtonOut")
279
- .attr('aria-label', this.getString('A line chart zoom out'))
280
- .attr('title', this.getString('zoom out'))
281
- .on("click", function (event) {
282
- _this.zoom(event, "out", midpoint);
283
- });
284
- };
285
- AvailabilityChart.prototype.setSelectedMillis = function (fromMillis, toMillis) {
286
- this.selectedFromMillis = fromMillis;
287
- this.selectedToMillis = toMillis;
288
- this.timePickerLineChart.drawBrushRange();
289
- };
290
- AvailabilityChart.prototype.renderDateTimeButton = function () {
291
- var _this = this;
292
- this.fromMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.fromMillis) * 60 * 1000);
293
- this.toMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.toMillis) * 60 * 1000);
294
- this.selectedFromMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.selectedFromMillis) * 60 * 1000);
295
- this.selectedToMillis + (Utils.getOffsetMinutes(this.chartOptions.offset, this.selectedFromMillis) * 60 * 1000);
296
- this.dateTimeButton.render(this.chartOptions, this.fromMillis, this.toMillis, this.selectedFromMillis, this.selectedToMillis, function (fromMillis, toMillis, offset, isRelative, currentQuickTime) {
297
- _this.chartOptions.offset = offset;
298
- _this.chartOptions.isRelative = isRelative;
299
- _this.chartOptions.currentQuickTime = currentQuickTime;
300
- _this.timePickerLineChart.chartOptions.offset = offset;
301
- _this.sparkLineChart.chartOptions.offset = offset;
302
- _this.dateTimePickerAction(fromMillis, toMillis);
303
- d3.select(_this.renderTarget).select(".tsi-dateTimeContainer").node().focus();
304
- }, function () {
305
- _this.dateTimePickerContainer.style("display", "none");
306
- d3.select(_this.renderTarget).select(".tsi-dateTimeContainer").node().focus();
307
- });
308
- };
309
- AvailabilityChart.prototype.setFromAndToTimes = function (fromMillis, toMillis, isFromButton) {
310
- if (isFromButton === void 0) { isFromButton = false; }
311
- var timezone = Utils.parseTimezoneName(this.chartOptions.offset);
312
- Utils.timezoneAbbreviation(timezone);
313
- this.setSelectedMillis(fromMillis, toMillis);
314
- if (!isFromButton) {
315
- this.renderDateTimeButton();
316
- }
317
- };
318
- AvailabilityChart.prototype.drawGhost = function () {
319
- var svgGroup = this.targetElement.select('.tsi-sparklineContainer').select(".tsi-lineChartSVG").select(".svgGroup");
320
- svgGroup.selectAll(".ghostRect").remove();
321
- svgGroup.append("rect")
322
- .classed("ghostRect", true)
323
- .attr("x", Math.max(this.sparkLineChart.x.range()[0], this.sparkLineChart.x(new Date(this.selectedFromMillis))))
324
- .attr("y", 0)
325
- .attr("width", Math.min(Math.max(this.minGhostWidth, this.sparkLineChart.x(new Date(this.selectedToMillis)) - this.sparkLineChart.x(new Date(this.selectedFromMillis))), this.sparkLineChart.x.range()[1] - this.sparkLineChart.x.range()[0]))
326
- .attr("height", 8)
327
- .attr("fill", this.chartOptions.color ? this.chartOptions.color : 'dark-grey')
328
- .attr("fill-opacity", .3)
329
- .attr("pointer-events", "none");
330
- };
331
- AvailabilityChart.prototype.drawWarmRange = function () {
332
- var svgGroup = this.targetElement.select('.tsi-timePickerContainer').select(".tsi-lineChartSVG").select(".svgGroup");
333
- if (svgGroup.select('.tsi-warmRect').empty()) {
334
- svgGroup.append("rect")
335
- .classed("tsi-warmRect", true);
336
- svgGroup.select('.brushElem').raise();
337
- }
338
- var warmRect = svgGroup.select(".tsi-warmRect");
339
- var outOfRange = true;
340
- if (this.chartOptions.warmStoreRange) {
341
- var warmStart = new Date(this.chartOptions.warmStoreRange[0]);
342
- var boundedWarmStart = new Date(Math.max(warmStart.valueOf(), this.zoomedFromMillis));
343
- var warmEnd = new Date(this.chartOptions.warmStoreRange.length === 2 ? this.chartOptions.warmStoreRange[1] : this.toMillis);
344
- var boundedWarmEnd = new Date(Math.min(warmEnd.valueOf(), this.zoomedToMillis));
345
- if (boundedWarmStart < boundedWarmEnd) {
346
- outOfRange = false;
347
- warmRect.attr("x", Math.max(this.timePickerLineChart.x(boundedWarmStart)))
348
- .attr("y", this.chartOptions.isCompact ? 12 : -8)
349
- .attr("width", this.timePickerLineChart.x(boundedWarmEnd) - this.timePickerLineChart.x(boundedWarmStart))
350
- .attr("height", this.chartOptions.isCompact ? 4 : Math.max((this.targetElement.select('.tsi-timePickerContainer').select(".tsi-lineChartSVG").node().getBoundingClientRect().height - 44), 0))
351
- .attr("fill-opacity", this.chartOptions.isCompact ? .8 : .08)
352
- .attr('stroke-opacity', this.chartOptions.isCompact ? 0 : .5)
353
- .attr("pointer-events", "none");
354
- }
355
- }
356
- if (outOfRange || this.chartOptions.warmStoreRange === null) {
357
- warmRect.style('display', 'none');
358
- }
359
- else {
360
- warmRect.style('display', 'block');
361
- }
362
- };
363
- AvailabilityChart.prototype.buildCompactFromAndTo = function () {
364
- this.timePickerContainer.selectAll('.tsi-compactFromTo').remove();
365
- // if the view is compact and there is a datetimebuttonrange present, we don't need compact from and to
366
- if (this.chartOptions.persistDateTimeButtonRange)
367
- return;
368
- var brushPositions = this.timePickerLineChart.getBrushPositions();
369
- var leftTimeText = null;
370
- var rightTimeText = null;
371
- if (this.selectedFromMillis != null && this.selectedToMillis != null) {
372
- leftTimeText = this.timePickerContainer.append('div')
373
- .classed('tsi-compactFromTo', true)
374
- .style('left', (brushPositions.leftPos != null ? Math.max(brushPositions.leftPos, 5) : 5) + 'px')
375
- .text(Utils.timeFormat(false, false, this.chartOptions.offset, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale)(new Date(this.selectedFromMillis)));
376
- var timezoneAbbreviation = ' (' + Utils.createTimezoneAbbreviation(this.chartOptions.offset) + ')';
377
- rightTimeText = this.timePickerContainer.append('div')
378
- .attr('class', 'tsi-compactFromTo')
379
- .style('right', brushPositions.rightPos != null ? 'calc(100% - ' + brushPositions.rightPos + 'px)' : '5px')
380
- .style('left', 'auto')
381
- .text(Utils.timeFormat(false, false, this.chartOptions.offset, this.chartOptions.is24HourTime, null, null, this.chartOptions.dateLocale)(new Date(this.selectedToMillis)) + timezoneAbbreviation);
382
- }
383
- if (leftTimeText && rightTimeText) {
384
- var rightSideOfLeft = leftTimeText.node().getBoundingClientRect().left + leftTimeText.node().getBoundingClientRect().width;
385
- var leftSideOfRight = rightTimeText.node().getBoundingClientRect().left;
386
- var totalWidth = this.timePickerContainer.node().getBoundingClientRect().width;
387
- var minOffset = 40;
388
- if (leftSideOfRight - rightSideOfLeft < minOffset) { // if there is overlap (or near overlap), correction needed
389
- var correction = (rightSideOfLeft - leftSideOfRight + minOffset) / 2;
390
- //if the correction puts either side off the edge of the container, weight the correction to the other side
391
- var leftWeight = 1;
392
- var rightWeight = 1;
393
- var padding = 32;
394
- if ((brushPositions.leftPos - correction) < padding) {
395
- leftWeight = 1 - ((padding - (brushPositions.leftPos - correction)) / correction);
396
- rightWeight = 2 - leftWeight;
397
- }
398
- if ((brushPositions.rightPos + correction) > (totalWidth - padding)) {
399
- rightWeight = 1 - (padding - (totalWidth - brushPositions.rightPos - correction)) / correction;
400
- leftWeight = 2 - rightWeight;
401
- }
402
- rightTimeText.style('right', 'calc(100% - ' + Math.round((brushPositions.rightPos + (rightWeight * correction))) + 'px)')
403
- .style('left', 'auto');
404
- leftTimeText.style('left', (brushPositions.leftPos - (leftWeight * correction)) + 'px');
405
- }
406
- }
407
- };
408
- AvailabilityChart.prototype.offsetUTC = function (date) {
409
- date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
410
- return date;
411
- };
412
- AvailabilityChart.prototype.buildFromAndToContainer = function () {
413
- var dateTimeContainer = this.timePickerTextContainer.append('div').classed('tsi-dateTimeContainer', true);
414
- dateTimeContainer.append("label").text(this.getString("Timeframe")).attr("id", "time-frame-label");
415
- var dateTimeButtonContainer = dateTimeContainer.append("div")
416
- .classed('tsi-dateTimeButtonContainer', true)
417
- .attr("aria-labelledby", 'time-frame-label');
418
- this.dateTimeButton = new DateTimeButtonRange(dateTimeButtonContainer.node());
419
- };
420
- AvailabilityChart.prototype.setTicks = function () {
421
- this.timePickerLineChart.updateXAxis();
422
- var forceFirst = (this.timePickerLineChart.zoomedFromMillis == this.timePickerLineChart.fromMillis) && (this.zoomedFromMillis == this.fromMillis);
423
- var forceLast = (this.timePickerLineChart.zoomedToMillis == this.timePickerLineChart.toMillis) && (this.zoomedToMillis == this.toMillis);
424
- this.timePickerLineChart.updateXAxis(forceFirst, forceLast);
425
- var ticks = this.timePickerContainer.select('.tsi-timePickerChart')
426
- .select('.xAxis')
427
- .selectAll('.tick');
428
- ticks.each(function (d, i) {
429
- var elt = d3.select(this);
430
- elt.classed((i === 0 && forceFirst ? 'tsi-fromTick' : (i === ticks.size() - 1 && forceLast ? 'tsi-toTick' : '')), true);
431
- });
432
- };
433
- AvailabilityChart.prototype.setAvailabilityRange = function (fromMillis, toMillis) {
434
- this.zoomedFromMillis = fromMillis;
435
- this.zoomedToMillis = toMillis;
436
- var visibileAvailability = this.createDisplayBuckets(fromMillis, toMillis);
437
- this.chartOptions.keepBrush = true;
438
- var aeWithNewTimeSpan = __assign(__assign({}, this.ae[0]), {
439
- searchSpan: {
440
- from: (new Date(fromMillis)),
441
- to: (new Date(toMillis))
442
- }
443
- });
444
- this.timePickerLineChart.render(visibileAvailability, this.chartOptions, [aeWithNewTimeSpan]);
445
- this.setTicks();
446
- this.drawWarmRange();
447
- this.timePickerLineChart.setBrush();
448
- };
449
- AvailabilityChart.prototype.setBrush = function (fromMillis, toMillis, isFromButton) {
450
- if (isFromButton === void 0) { isFromButton = false; }
451
- this.timePickerLineChart.setBrushEndTime(new Date(toMillis));
452
- this.timePickerLineChart.setBrushStartTime(new Date(fromMillis));
453
- this.timePickerLineChart.setBrush();
454
- this.setFromAndToTimes(fromMillis, toMillis, isFromButton);
455
- this.drawGhost();
456
- if (this.chartOptions.isCompact)
457
- this.buildCompactFromAndTo();
458
- };
459
- AvailabilityChart.prototype.createSparkLineOptions = function (chartOptions) {
460
- var _this = this;
461
- return {
462
- aggTopMargin: 0,
463
- theme: chartOptions.theme,
464
- grid: false,
465
- tooltip: false,
466
- legend: "hidden",
467
- brushContextMenuActions: [],
468
- snapBrush: false,
469
- keepBrush: false,
470
- xAxisHidden: true,
471
- yAxisHidden: true,
472
- focusHidden: true,
473
- minBrushWidth: 5,
474
- color: null,
475
- brushHandlesVisible: true,
476
- brushMoveAction: function (from, to) {
477
- _this.setAvailabilityRange(from.valueOf(), to.valueOf());
478
- },
479
- brushClearable: false,
480
- hideChartControlPanel: true,
481
- brushRangeVisible: false,
482
- isArea: true
483
- };
484
- };
485
- return AvailabilityChart;
486
- }(ChartComponent));
487
-
488
- export { AvailabilityChart as A };
@@ -1,59 +0,0 @@
1
- import { C as ChartComponent } from './ChartComponent-ONNW31RL.js';
2
- import './Enums-DWpaQlXk.js';
3
- import './Component-DXwYPoSo.js';
4
- import './Interfaces-R_1l9lIT.js';
5
- import './ChartComponentData-DBW8_FnY.js';
6
- import './EllipsisMenu.js';
7
-
8
- declare class AvailabilityChart extends ChartComponent {
9
- private fromMillis;
10
- private toMillis;
11
- private selectedFromMillis;
12
- private selectedToMillis;
13
- private zoomedFromMillis;
14
- private zoomedToMillis;
15
- private minBrushWidth;
16
- private color;
17
- private transformedAvailability;
18
- private minGhostWidth;
19
- private timeContainer;
20
- private dateTimeButton;
21
- private margins;
22
- private targetElement;
23
- private brushMoveAction;
24
- private brushContextMenuActions;
25
- private timePickerLineChart;
26
- private timePickerContainer;
27
- private timePickerChart;
28
- private timePickerTextContainer;
29
- private sparkLineChart;
30
- private ae;
31
- private rawAvailability;
32
- private maxBuckets;
33
- private bucketSize;
34
- private dateTimePickerContainer;
35
- private dateTimePicker;
36
- constructor(renderTarget: Element);
37
- private getMinZoomedRange;
38
- private zoom;
39
- private setChartOptions;
40
- private dateTimePickerAction;
41
- private createDisplayBuckets;
42
- private setRangeVariables;
43
- render(transformedAvailability: any, chartOptions: any, rawAvailability?: any): void;
44
- private buildZoomButtons;
45
- private setSelectedMillis;
46
- private renderDateTimeButton;
47
- private setFromAndToTimes;
48
- private drawGhost;
49
- private drawWarmRange;
50
- private buildCompactFromAndTo;
51
- private offsetUTC;
52
- private buildFromAndToContainer;
53
- private setTicks;
54
- private setAvailabilityRange;
55
- setBrush(fromMillis: any, toMillis: any, isFromButton?: boolean): void;
56
- private createSparkLineOptions;
57
- }
58
-
59
- export { AvailabilityChart as default };
@@ -1,26 +0,0 @@
1
- export { A as default } from './AvailabilityChart-C8ewvn3T.js';
2
- import './_tslib-BYFmvNeL.js';
3
- import 'd3';
4
- import './LineChart-CzDp5ULB.js';
5
- import 'd3-voronoi';
6
- import './Utils-DDGqSryb.js';
7
- import 'moment-timezone';
8
- import './Legend-gCIrAytG.js';
9
- import './Component-BgifJdKl.js';
10
- import './TemporalXAxisComponent-DXmMekYq.js';
11
- import './ChartVisualizationComponent-CTs5Q_sg.js';
12
- import './ChartComponent-Dg8P-BTZ.js';
13
- import './Grid-uoHKTet9.js';
14
- import 'split.js';
15
- import './EllipsisMenu-CxJ0LoVm.js';
16
- import './ChartDataOptions-CNTSB636.js';
17
- import './ContextMenu-wqGGgAzp.js';
18
- import './Tooltip-C13k0eeH.js';
19
- import 'd3-interpolate-path';
20
- import './DateTimePicker-BgTi-DY9.js';
21
- import './pikaday-jh_aVtJs.js';
22
- import 'moment';
23
- import './TimezonePicker-CQpXR5eb.js';
24
- import './AggregateExpression.js';
25
- import './DateTimeButtonRange-BM_J646m.js';
26
- import './DateTimeButton-D7N8XG0S.js';