@operato/chart 7.0.12 → 7.0.13

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 (42) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/src/editors/configurer.d.ts +10 -1
  3. package/dist/src/editors/configurer.js +62 -2
  4. package/dist/src/editors/configurer.js.map +1 -1
  5. package/dist/src/editors/input-chart-abstract.d.ts +18 -0
  6. package/dist/src/editors/input-chart-abstract.js +438 -1
  7. package/dist/src/editors/input-chart-abstract.js.map +1 -1
  8. package/dist/src/editors/input-chart-styles.js +18 -9
  9. package/dist/src/editors/input-chart-styles.js.map +1 -1
  10. package/dist/src/editors/ox-input-chart-hbar.d.ts +2 -2
  11. package/dist/src/editors/ox-input-chart-hbar.js +10 -10
  12. package/dist/src/editors/ox-input-chart-hbar.js.map +1 -1
  13. package/dist/src/editors/ox-input-chart-mixed.d.ts +2 -2
  14. package/dist/src/editors/ox-input-chart-mixed.js +3 -3
  15. package/dist/src/editors/ox-input-chart-mixed.js.map +1 -1
  16. package/dist/src/editors/ox-input-chart-radar.d.ts +2 -2
  17. package/dist/src/editors/ox-input-chart-radar.js +3 -3
  18. package/dist/src/editors/ox-input-chart-radar.js.map +1 -1
  19. package/dist/src/editors/ox-input-chart-timeseries.d.ts +2 -2
  20. package/dist/src/editors/ox-input-chart-timeseries.js +6 -4
  21. package/dist/src/editors/ox-input-chart-timeseries.js.map +1 -1
  22. package/dist/src/scichart/scichart-builder.js +65 -5
  23. package/dist/src/scichart/scichart-builder.js.map +1 -1
  24. package/dist/stories/ox-input-chart-timeseries.stories.js +0 -4
  25. package/dist/stories/ox-input-chart-timeseries.stories.js.map +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +2 -2
  28. package/src/editors/configurer.ts +73 -2
  29. package/src/editors/input-chart-abstract.ts +459 -2
  30. package/src/editors/input-chart-styles.ts +18 -9
  31. package/src/editors/ox-input-chart-hbar.ts +10 -10
  32. package/src/editors/ox-input-chart-mixed.ts +3 -3
  33. package/src/editors/ox-input-chart-radar.ts +3 -3
  34. package/src/editors/ox-input-chart-timeseries.ts +6 -4
  35. package/src/scichart/scichart-builder.ts +74 -4
  36. package/src/types.d.ts +19 -0
  37. package/stories/ox-input-chart-timeseries.stories.ts +0 -4
  38. package/translations/ko.json +7 -0
  39. package/dist/src/editors/input-chart-multi-series-abstract.d.ts +0 -17
  40. package/dist/src/editors/input-chart-multi-series-abstract.js +0 -419
  41. package/dist/src/editors/input-chart-multi-series-abstract.js.map +0 -1
  42. package/src/editors/input-chart-multi-series-abstract.ts +0 -430
@@ -1,419 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import '@material/web/icon/icon.js';
3
- import '@operato/i18n/ox-i18n.js';
4
- import { html } from 'lit';
5
- import { query } from 'lit/decorators.js';
6
- import { InputChartAbstract } from './input-chart-abstract';
7
- export class InputChartMultiSeriesAbstract extends InputChartAbstract {
8
- static { this.styles = [...InputChartAbstract.styles]; }
9
- get tabContainer() {
10
- return this.tabs;
11
- }
12
- firstUpdated() {
13
- this.tabContainer?.addEventListener('scroll', e => {
14
- this._onTabScroll(e);
15
- });
16
- }
17
- subTemplate() {
18
- const configurer = this.configurer;
19
- return html `
20
- <input id="multi-axis" type="checkbox" value-key="multiAxis" ?checked=${configurer.multiAxis} />
21
- <label for="multi-axis"> <ox-i18n msgid="label.multi-axis">Multi Axis</ox-i18n> </label>
22
-
23
- <legend><ox-i18n msgid="label.series">Series</ox-i18n></legend>
24
-
25
- ${this.multiSeriesTabTemplate()}
26
-
27
- <legend><ox-i18n msgid="label.x-axes">X Axes</ox-i18n></legend>
28
-
29
- <label for="label-data-key"> <ox-i18n msgid="label.data-key">Data Key</ox-i18n> </label>
30
- <input id="label-data-key" type="text" value-key="labelDataKey" .value=${configurer.labelDataKey || ''} />
31
-
32
- <label for="axis-title"> <ox-i18n msgid="label.title">Title</ox-i18n> </label>
33
- <input id="axis-title" type="text" value-key="xAxes0.axisTitle" .value=${configurer.xAxes0.axisTitle || ''} />
34
-
35
- <label for="x-axes0-thickness"> <ox-i18n msgid="label.thickness">Thickness</ox-i18n> </label>
36
- <input
37
- id="x-axes0-thickness"
38
- type="number"
39
- value-key="xAxes0.barPercentage"
40
- .value=${String(configurer.xAxes0.barPercentage || 0)}
41
- />
42
-
43
- <input
44
- for="grid-line"
45
- type="checkbox"
46
- value-key="value.options.xGridLine"
47
- ?checked=${configurer.config.options?.xGridLine}
48
- />
49
- <label id="grid-line"> <ox-i18n msgid="label.grid-line">Grid Line</ox-i18n> </label>
50
-
51
- <input
52
- for="x-axes0-ticks-display"
53
- type="checkbox"
54
- value-key="xAxes0.ticks.display"
55
- ?checked=${configurer.xAxes0.ticks?.display}
56
- />
57
- <label id="x-axes0-ticks-display"> <ox-i18n msgid="label.display-tick">Display Tick</ox-i18n> </label>
58
-
59
- <legend><ox-i18n msgid="label.y-axes">Y Axes</ox-i18n></legend>
60
-
61
- <label for="y-axes0-axis-title"> <ox-i18n msgid="label.title">Title</ox-i18n> </label>
62
- <input
63
- id="y-axes0-axis-title"
64
- type="text"
65
- value-key="yAxes0.axisTitle"
66
- .value=${configurer.yAxes0.axisTitle || ''}
67
- />
68
-
69
- <input
70
- id="y-axes0-ticks-automin"
71
- type="checkbox"
72
- value-key="yAxes0.ticks.autoMin"
73
- ?checked=${configurer.yAxes0.ticks?.autoMin}
74
- />
75
- <label for="y-axes0-ticks-automin"> <ox-i18n msgid="label.axis-min-auto">Min Auto</ox-i18n> </label>
76
-
77
- <input
78
- id="y-axes0-ticks-automax"
79
- type="checkbox"
80
- value-key="yAxes0.ticks.autoMax"
81
- ?checked=${configurer.yAxes0.ticks?.autoMax}
82
- />
83
- <label for="y-axes0-ticks-automax"> <ox-i18n msgid="label.axis-max-auto">Max Auto</ox-i18n> </label>
84
-
85
- ${!configurer.yAxes0.ticks?.autoMin
86
- ? html `
87
- <label for="y-axes0-ticks-min"> <ox-i18n msgid="label.axis-min">Min</ox-i18n> </label>
88
- <input
89
- id="y-axes0-ticks-min"
90
- type="number"
91
- value-key="yAxes0.ticks.min"
92
- .value=${String(configurer.yAxes0.ticks?.min)}
93
- />
94
- `
95
- : html ``}
96
- ${!configurer.yAxes0.ticks?.autoMax
97
- ? html `
98
- <label for="y-axes0-ticks-max"> <ox-i18n msgid="label.axis-max">Max</ox-i18n> </label>
99
- <input
100
- id="y-axes0-ticks-max"
101
- type="number"
102
- value-key="yAxes0.ticks.max"
103
- .value=${String(configurer.yAxes0.ticks?.max)}
104
- />
105
- `
106
- : html ``}
107
-
108
- <label for="y-axes0-ticks-step-size"> <ox-i18n msgid="label.axis-step-size">StepSize</ox-i18n> </label>
109
- <input
110
- id="y-axes0-ticks-step-size"
111
- type="number"
112
- value-key="yAxes0.ticks.stepSize"
113
- .value=${String(configurer.yAxes0.ticks?.stepSize)}
114
- />
115
-
116
- <input
117
- id="y-grid-line"
118
- type="checkbox"
119
- value-key="value.options.yGridLine"
120
- ?checked=${configurer.config.options?.yGridLine}
121
- />
122
- <label for="y-grid-line"> <ox-i18n msgid="label.grid-line">Grid Line</ox-i18n> </label>
123
-
124
- <input
125
- id="y-axes0-ticks-display"
126
- type="checkbox"
127
- value-key="yAxes0.ticks.display"
128
- ?checked=${configurer.yAxes0.ticks?.display}
129
- />
130
- <label for="y-axes0-ticks-display"> <ox-i18n msgid="label.display-tick">Display Tick</ox-i18n> </label>
131
-
132
- ${configurer.config.options?.multiAxis
133
- ? html `
134
- <legend><ox-i18n msgid="label.y-2nd-axes">Y 2nd Axes</ox-i18n></legend>
135
-
136
- <label for="y-axes1.axis-title"> <ox-i18n msgid="label.title">Title</ox-i18n> </label>
137
- <input
138
- id="y-axes1.axis-title"
139
- type="text"
140
- value-key="yAxes1.axisTitle"
141
- .value=${configurer.yAxes1.axisTitle || ''}
142
- />
143
-
144
- <input
145
- id="axis-min-auto"
146
- type="checkbox"
147
- value-key="yAxes1.ticks.autoMin"
148
- ?checked=${configurer.yAxes1.ticks?.autoMin}
149
- />
150
- <label for="axis-min-auto"> <ox-i18n msgid="label.axis-min-auto">Min Auto</ox-i18n> </label>
151
-
152
- <input
153
- id="axis-max-auto"
154
- type="checkbox"
155
- value-key="yAxes1.ticks.autoMax"
156
- ?checked=${configurer.yAxes1.ticks?.autoMax}
157
- />
158
- <label for="axis-max-auto"> <ox-i18n msgid="label.axis-max-auto">Max Auto</ox-i18n> </label>
159
-
160
- ${!configurer.yAxes1.ticks?.autoMin
161
- ? html `
162
- <label for="y-axes1.ticks.min"> <ox-i18n msgid="label.axis-min">Min</ox-i18n> </label>
163
- <input
164
- id="y-axes1.ticks.min"
165
- type="number"
166
- value-key="yAxes1.ticks.min"
167
- .value=${String(configurer.yAxes1.ticks?.min)}
168
- />
169
- `
170
- : html ``}
171
- ${!configurer.yAxes1.ticks?.autoMax
172
- ? html `
173
- <label for="y-axes1-ticks-max"> <ox-i18n msgid="label.axis-max">Max</ox-i18n> </label>
174
- <input
175
- id="y-axes1-ticks-max"
176
- type="number"
177
- value-key="yAxes1.ticks.max"
178
- .value=${String(configurer.yAxes1.ticks?.max)}
179
- />
180
- `
181
- : html ``}
182
-
183
- <label for="y-axes1-ticks-step-size"> <ox-i18n msgid="label.axis-step-size">StepSize</ox-i18n> </label>
184
- <input
185
- id="y-axes1-ticks-step-size"
186
- type="number"
187
- value-key="yAxes1.ticks.stepSize"
188
- .value=${String(configurer.yAxes1.ticks?.stepSize)}
189
- />
190
-
191
- <input
192
- id="y2nd-grid-line"
193
- type="checkbox"
194
- value-key="value.options.y2ndGridLine"
195
- ?checked=${configurer.config.options.y2ndGridLine}
196
- />
197
- <label for="y2nd-grid-line"> <ox-i18n msgid="label.grid-line">Grid Line</ox-i18n> </label>
198
-
199
- <input
200
- id="y-axes1.ticks.display"
201
- type="checkbox"
202
- value-key="yAxes1.ticks.display"
203
- ?checked=${configurer.yAxes1.ticks?.display}
204
- />
205
- <label for="y-axes1.ticks.display"> <ox-i18n msgid="label.display-tick">Display Tick</ox-i18n> </label>
206
- `
207
- : html ``}
208
- `;
209
- }
210
- multiSeriesTabTemplate() {
211
- const configurer = this.configurer;
212
- return html `
213
- <div id="series-properties-container" fullwidth>
214
- <div id="tab-header">
215
- <md-icon
216
- id="tab-nav-left-button"
217
- @tap=${(e) => {
218
- this._onTabScrollNavLeft(e);
219
- }}
220
- disabled
221
- >chevron_left</md-icon
222
- >
223
- <div
224
- id="tabs"
225
- @change=${(e) => {
226
- configurer.currentSeriesIndex = e.target.activeTabIndex;
227
- }}
228
- active-tab-index=${configurer.currentSeriesIndex}
229
- fit-container
230
- >
231
- ${configurer.datasets.map((dataset, index) => html `
232
- <div
233
- data-series=${index + 1}
234
- data-tab-index=${index}
235
- tab
236
- ?selected=${index == configurer.currentSeriesIndex}
237
- @click=${(e) => {
238
- const target = e.target;
239
- this.configurer.setCurrentSeriesIndex(Number(target.getAttribute('data-tab-index')));
240
- this.value = { ...this.configurer.value };
241
- }}
242
- >
243
- ${index + 1}
244
- ${!configurer.datasets || (configurer.datasets.length != 1 && configurer.currentSeriesIndex == index)
245
- ? html ` <md-icon @tap=${(e) => this.onTapRemoveCurrentTab(index)}> close </md-icon> `
246
- : html ``}
247
- </div>
248
- `)}
249
- </div>
250
- <md-icon
251
- id="tab-nav-right-button"
252
- @click=${(e) => {
253
- this._onTabScrollNavRight(e);
254
- }}
255
- disabled
256
- >chevron_right</md-icon
257
- >
258
- </div>
259
- <div id="add-series-button-container">
260
- <md-icon id="add-series-button" @tap=${(e) => this.onTapAddTab(e)}>add</md-icon>
261
- </div>
262
-
263
- <div class="tab-content">
264
- <label for="data-key"> <ox-i18n msgid="label.data-key">Data Key</ox-i18n> </label>
265
- <input id="data-key" type="text" value-key="dataKey" .value=${configurer.dataKey || ''} />
266
-
267
- ${this.chartType == 'line' || this.chartType == 'bar'
268
- ? html `
269
- <label for="series-type"> <ox-i18n msgid="label.series-type">type</ox-i18n> </label>
270
- <select
271
- id="series-type"
272
- class="select-content"
273
- value-key="series.type"
274
- .value=${configurer.series.type || ''}
275
- >
276
- <option value="bar" selected>bar</option>
277
- <option value="line">line</option>
278
- </select>
279
- `
280
- : html ``}
281
-
282
- <label for="series-label"> <ox-i18n msgid="label.label">label</ox-i18n> </label>
283
- <input id="series-label" type="text" value-key="series.label" .value=${configurer.series.label || ''} />
284
-
285
- ${configurer.series.type == 'line'
286
- ? html `
287
- <label for="series-line-tension"> <ox-i18n msgid="label.line-tension">line tension</ox-i18n> </label>
288
- <select
289
- id="series-line-tension"
290
- class="select-content"
291
- value-key="series.lineTension"
292
- .value=${String(configurer.series.lineTension || 0)}
293
- >
294
- <option value="0.4">smooth</option>
295
- <option value="0">angled</option>
296
- </select>
297
- `
298
- : html ``}
299
- ${configurer.series.type == 'line'
300
- ? html `
301
- <label for="series-border-width"> <ox-i18n msgid="label.border-width">border width</ox-i18n> </label>
302
- <input
303
- id="series-border-width"
304
- type="number"
305
- value-key="series.borderWidth"
306
- .value=${String(configurer.series.borderWidth || 0)}
307
- />
308
- `
309
- : html ``}
310
-
311
- <label for="series-color"> <ox-i18n msgid="label.color">color</ox-i18n> </label>
312
- <ox-input-color id="series-color" value-key="color" .value=${configurer.color}></ox-input-color>
313
-
314
- ${configurer.series.type == 'line'
315
- ? html `
316
- <label for="series-point-style"> <ox-i18n msgid="label.point-shape">point shape</ox-i18n> </label>
317
- <select
318
- id="series-point-style"
319
- class="select-content"
320
- value-key="series.pointStyle"
321
- .value=${configurer.series.pointStyle || ''}
322
- >
323
- <option value="">&nbsp;</option>
324
- <option value="circle">⚬</option>
325
- <option value="triangle">▵</option>
326
- <option value="rect">□</option>
327
- <option value="rectRot">◇</option>
328
- <option value="cross">+</option>
329
- <option value="crossRot">⨉</option>
330
- <option value="star">✱</option>
331
- <option value="line">―</option>
332
- <option value="dash">┄</option>
333
- </select>
334
-
335
- <label for="series-point-radius"> <ox-i18n msgid="label.point-size">point size</ox-i18n> </label>
336
- <input
337
- id="series-point-radius"
338
- type="number"
339
- value-key="series.pointRadius"
340
- .value=${String(configurer.series.pointRadius || 0)}
341
- />
342
- `
343
- : html ``} <label for="series-stack"> <ox-i18n msgid="label.stack-group">Stack group</ox-i18n> </label>
344
- <input id="series-stack" type="text" value-key="series.stack" .value=${configurer.series.stack || ''} />
345
- ${configurer.series.type == 'line'
346
- ? html `
347
- <input id="seires-fill" type="checkbox" value-key="series.fill" ?checked=${configurer.series.fill} />
348
- <label for="seires-fill"> <ox-i18n msgid="label.fill">fill</ox-i18n> </label>
349
- `
350
- : html ``}
351
- ${configurer.multiAxis
352
- ? html `
353
- <label for="series-y-axis-id"> <ox-i18n msgid="label.target-axis">target axis</ox-i18n> </label>
354
- <select
355
- id="series-y-axis-id"
356
- class="select-content"
357
- value-key="series.yAxisID"
358
- .value=${configurer.series.yAxisID || ''}
359
- >
360
- <option value="left">left</option>
361
- <option value="right">right</option>
362
- </select>
363
- `
364
- : html ``}
365
- ${this.displayValueTemplate()}
366
- </div>
367
- </div>
368
- `;
369
- }
370
- _onTabScroll(e) {
371
- if (!this.tabContainer) {
372
- return;
373
- }
374
- if (this.tabContainer.clientWidth == this.tabContainer.scrollWidth) {
375
- this.tabNavLeftButton.setAttribute('disabled', '');
376
- this.tabNavRightButton.setAttribute('disabled', '');
377
- }
378
- // left-end
379
- else if (this.tabContainer.scrollLeft == 0) {
380
- this.tabNavLeftButton.setAttribute('disabled', '');
381
- this.tabNavRightButton.removeAttribute('disabled');
382
- }
383
- // right-end
384
- else if (this.tabContainer.scrollLeft + this.tabContainer.clientWidth >= this.tabContainer.scrollWidth) {
385
- this.tabNavLeftButton.removeAttribute('disabled');
386
- this.tabNavRightButton.setAttribute('disabled', '');
387
- }
388
- else {
389
- this.tabNavLeftButton.removeAttribute('disabled');
390
- this.tabNavRightButton.removeAttribute('disabled');
391
- }
392
- }
393
- _onTabScrollNavLeft(e) {
394
- if (!this.tabContainer) {
395
- return;
396
- }
397
- this.tabContainer.style.scrollBehavior = 'smooth';
398
- this.tabContainer.scrollLeft -= this.tabContainer.clientWidth;
399
- this.tabContainer.style.scrollBehavior = 'auto';
400
- }
401
- _onTabScrollNavRight(e) {
402
- if (!this.tabContainer) {
403
- return;
404
- }
405
- this.tabContainer.style.scrollBehavior = 'smooth';
406
- this.tabContainer.scrollLeft += this.tabContainer.clientWidth;
407
- this.tabContainer.style.scrollBehavior = 'auto';
408
- }
409
- }
410
- __decorate([
411
- query('#tabs')
412
- ], InputChartMultiSeriesAbstract.prototype, "tabs", void 0);
413
- __decorate([
414
- query('#tab-nav-left-button')
415
- ], InputChartMultiSeriesAbstract.prototype, "tabNavLeftButton", void 0);
416
- __decorate([
417
- query('#tab-nav-right-button')
418
- ], InputChartMultiSeriesAbstract.prototype, "tabNavRightButton", void 0);
419
- //# sourceMappingURL=input-chart-multi-series-abstract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-chart-multi-series-abstract.js","sourceRoot":"","sources":["../../../src/editors/input-chart-multi-series-abstract.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,0BAA0B,CAAA;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAIzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,OAAO,6BAA8B,SAAQ,kBAAkB;aAC5D,WAAM,GAAG,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAM9C,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;YAChD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAElC,OAAO,IAAI,CAAA;8EAC+D,UAAU,CAAC,SAAS;;;;;QAK1F,IAAI,CAAC,sBAAsB,EAAE;;;;;+EAK0C,UAAU,CAAC,YAAY,IAAI,EAAE;;;+EAG7B,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;;;;;;;iBAO/F,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;;;;;;;mBAO1C,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;;;;;;;;mBAQpC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;iBAWlC,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;;;;;;;mBAO/B,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;;;;;;mBAQhC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;;QAI3C,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;YACjC,CAAC,CAAC,IAAI,CAAA;;;;;;uBAMS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;;WAEhD;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;QACR,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;YACjC,CAAC,CAAC,IAAI,CAAA;;;;;;uBAMS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;;WAEhD;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;;;;;;;iBAOC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;;;;mBAOvC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;;;;;;;;mBAQpC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;;QAI3C,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS;YACpC,CAAC,CAAC,IAAI,CAAA;;;;;;;;uBAQS,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;;;;;;;yBAO/B,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;;;;;;yBAQhC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;;cAI3C,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;gBACjC,CAAC,CAAC,IAAI,CAAA;;;;;;6BAMS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;;iBAEhD;gBACH,CAAC,CAAC,IAAI,CAAA,EAAE;cACR,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;gBACjC,CAAC,CAAC,IAAI,CAAA;;;;;;6BAMS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;;iBAEhD;gBACH,CAAC,CAAC,IAAI,CAAA,EAAE;;;;;;;uBAOC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;;;;yBAOvC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY;;;;;;;;yBAQtC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;;;WAG9C;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;KACX,CAAA;IACH,CAAC;IAED,sBAAsB;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAElC,OAAO,IAAI,CAAA;;;;;mBAKI,CAAC,CAAQ,EAAE,EAAE;YAClB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QAC7B,CAAC;;;;;;sBAMS,CAAC,CAAQ,EAAE,EAAE;YACrB,UAAU,CAAC,kBAAkB,GAAI,CAAC,CAAC,MAAc,CAAC,cAAc,CAAA;QAClE,CAAC;+BACkB,UAAU,CAAC,kBAAkB;;;cAG9C,UAAU,CAAC,QAAQ,CAAC,GAAG,CACvB,CAAC,OAAY,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,CAAA;;gCAEnB,KAAK,GAAG,CAAC;mCACN,KAAK;;8BAEV,KAAK,IAAI,UAAU,CAAC,kBAAkB;2BACzC,CAAC,CAAQ,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwB,CAAA;YACzC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACpF,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC3C,CAAC;;oBAEC,KAAK,GAAG,CAAC;oBACT,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,kBAAkB,IAAI,KAAK,CAAC;YACnG,CAAC,CAAC,IAAI,CAAA,kBAAkB,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,qBAAqB;YAC5F,CAAC,CAAC,IAAI,CAAA,EAAE;;eAEb,CACF;;;;qBAIQ,CAAC,CAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;;;;;;iDAMoC,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;;;;;wEAKV,UAAU,CAAC,OAAO,IAAI,EAAE;;YAEpF,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK;YACnD,CAAC,CAAC,IAAI,CAAA;;;;;;2BAMS,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;;;;;eAKxC;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;;;iFAG6D,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;;YAElG,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM;YAChC,CAAC,CAAC,IAAI,CAAA;;;;;;2BAMS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;;;;;eAKtD;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM;YAChC,CAAC,CAAC,IAAI,CAAA;;;;;;2BAMS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;;eAEtD;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;;;uEAGmD,UAAU,CAAC,KAAK;;YAE3E,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM;YAChC,CAAC,CAAC,IAAI,CAAA;;;;;;2BAMS,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;;;;;;;;;;;;;;;;;;;2BAmBlC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;;eAEtD;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;iFAC6D,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAClG,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM;YAChC,CAAC,CAAC,IAAI,CAAA;2FACyE,UAAU,CAAC,MAAM,CAAC,IAAI;;eAElG;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,UAAU,CAAC,SAAS;YACpB,CAAC,CAAC,IAAI,CAAA;;;;;;2BAMS,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;;;;;eAK3C;YACH,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,IAAI,CAAC,oBAAoB,EAAE;;;KAGlC,CAAA;IACH,CAAC;IAED,YAAY,CAAC,CAAQ;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAClD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,WAAW;aACN,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAClD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QACpD,CAAC;QACD,YAAY;aACP,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACvG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;YACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;YACjD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,CAAQ;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAA;QACjD,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAA;QAC7D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAA;IACjD,CAAC;IAED,oBAAoB,CAAC,CAAQ;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAA;QACjD,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAA;QAC7D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAA;IACjD,CAAC;;AA/Ze;IAAf,KAAK,CAAC,OAAO,CAAC;2DAAmB;AACH;IAA9B,KAAK,CAAC,sBAAsB,CAAC;uEAA0B;AACxB;IAA/B,KAAK,CAAC,uBAAuB,CAAC;wEAA2B","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/i18n/ox-i18n.js'\n\nimport { html } from 'lit'\nimport { query } from 'lit/decorators.js'\n\nimport { MdIcon } from '@material/web/icon/icon.js'\n\nimport { InputChartAbstract } from './input-chart-abstract'\n\nexport class InputChartMultiSeriesAbstract extends InputChartAbstract {\n static styles = [...InputChartAbstract.styles]\n\n @query('#tabs') tabs!: HTMLElement\n @query('#tab-nav-left-button') tabNavLeftButton!: MdIcon\n @query('#tab-nav-right-button') tabNavRightButton!: MdIcon\n\n get tabContainer(): HTMLElement | null | undefined {\n return this.tabs\n }\n\n firstUpdated() {\n this.tabContainer?.addEventListener('scroll', e => {\n this._onTabScroll(e)\n })\n }\n\n subTemplate() {\n const configurer = this.configurer\n\n return html`\n <input id=\"multi-axis\" type=\"checkbox\" value-key=\"multiAxis\" ?checked=${configurer.multiAxis} />\n <label for=\"multi-axis\"> <ox-i18n msgid=\"label.multi-axis\">Multi Axis</ox-i18n> </label>\n\n <legend><ox-i18n msgid=\"label.series\">Series</ox-i18n></legend>\n\n ${this.multiSeriesTabTemplate()}\n\n <legend><ox-i18n msgid=\"label.x-axes\">X Axes</ox-i18n></legend>\n\n <label for=\"label-data-key\"> <ox-i18n msgid=\"label.data-key\">Data Key</ox-i18n> </label>\n <input id=\"label-data-key\" type=\"text\" value-key=\"labelDataKey\" .value=${configurer.labelDataKey || ''} />\n\n <label for=\"axis-title\"> <ox-i18n msgid=\"label.title\">Title</ox-i18n> </label>\n <input id=\"axis-title\" type=\"text\" value-key=\"xAxes0.axisTitle\" .value=${configurer.xAxes0.axisTitle || ''} />\n\n <label for=\"x-axes0-thickness\"> <ox-i18n msgid=\"label.thickness\">Thickness</ox-i18n> </label>\n <input\n id=\"x-axes0-thickness\"\n type=\"number\"\n value-key=\"xAxes0.barPercentage\"\n .value=${String(configurer.xAxes0.barPercentage || 0)}\n />\n\n <input\n for=\"grid-line\"\n type=\"checkbox\"\n value-key=\"value.options.xGridLine\"\n ?checked=${configurer.config.options?.xGridLine}\n />\n <label id=\"grid-line\"> <ox-i18n msgid=\"label.grid-line\">Grid Line</ox-i18n> </label>\n\n <input\n for=\"x-axes0-ticks-display\"\n type=\"checkbox\"\n value-key=\"xAxes0.ticks.display\"\n ?checked=${configurer.xAxes0.ticks?.display}\n />\n <label id=\"x-axes0-ticks-display\"> <ox-i18n msgid=\"label.display-tick\">Display Tick</ox-i18n> </label>\n\n <legend><ox-i18n msgid=\"label.y-axes\">Y Axes</ox-i18n></legend>\n\n <label for=\"y-axes0-axis-title\"> <ox-i18n msgid=\"label.title\">Title</ox-i18n> </label>\n <input\n id=\"y-axes0-axis-title\"\n type=\"text\"\n value-key=\"yAxes0.axisTitle\"\n .value=${configurer.yAxes0.axisTitle || ''}\n />\n\n <input\n id=\"y-axes0-ticks-automin\"\n type=\"checkbox\"\n value-key=\"yAxes0.ticks.autoMin\"\n ?checked=${configurer.yAxes0.ticks?.autoMin}\n />\n <label for=\"y-axes0-ticks-automin\"> <ox-i18n msgid=\"label.axis-min-auto\">Min Auto</ox-i18n> </label>\n\n <input\n id=\"y-axes0-ticks-automax\"\n type=\"checkbox\"\n value-key=\"yAxes0.ticks.autoMax\"\n ?checked=${configurer.yAxes0.ticks?.autoMax}\n />\n <label for=\"y-axes0-ticks-automax\"> <ox-i18n msgid=\"label.axis-max-auto\">Max Auto</ox-i18n> </label>\n\n ${!configurer.yAxes0.ticks?.autoMin\n ? html`\n <label for=\"y-axes0-ticks-min\"> <ox-i18n msgid=\"label.axis-min\">Min</ox-i18n> </label>\n <input\n id=\"y-axes0-ticks-min\"\n type=\"number\"\n value-key=\"yAxes0.ticks.min\"\n .value=${String(configurer.yAxes0.ticks?.min)}\n />\n `\n : html``}\n ${!configurer.yAxes0.ticks?.autoMax\n ? html`\n <label for=\"y-axes0-ticks-max\"> <ox-i18n msgid=\"label.axis-max\">Max</ox-i18n> </label>\n <input\n id=\"y-axes0-ticks-max\"\n type=\"number\"\n value-key=\"yAxes0.ticks.max\"\n .value=${String(configurer.yAxes0.ticks?.max)}\n />\n `\n : html``}\n\n <label for=\"y-axes0-ticks-step-size\"> <ox-i18n msgid=\"label.axis-step-size\">StepSize</ox-i18n> </label>\n <input\n id=\"y-axes0-ticks-step-size\"\n type=\"number\"\n value-key=\"yAxes0.ticks.stepSize\"\n .value=${String(configurer.yAxes0.ticks?.stepSize)}\n />\n\n <input\n id=\"y-grid-line\"\n type=\"checkbox\"\n value-key=\"value.options.yGridLine\"\n ?checked=${configurer.config.options?.yGridLine}\n />\n <label for=\"y-grid-line\"> <ox-i18n msgid=\"label.grid-line\">Grid Line</ox-i18n> </label>\n\n <input\n id=\"y-axes0-ticks-display\"\n type=\"checkbox\"\n value-key=\"yAxes0.ticks.display\"\n ?checked=${configurer.yAxes0.ticks?.display}\n />\n <label for=\"y-axes0-ticks-display\"> <ox-i18n msgid=\"label.display-tick\">Display Tick</ox-i18n> </label>\n\n ${configurer.config.options?.multiAxis\n ? html`\n <legend><ox-i18n msgid=\"label.y-2nd-axes\">Y 2nd Axes</ox-i18n></legend>\n\n <label for=\"y-axes1.axis-title\"> <ox-i18n msgid=\"label.title\">Title</ox-i18n> </label>\n <input\n id=\"y-axes1.axis-title\"\n type=\"text\"\n value-key=\"yAxes1.axisTitle\"\n .value=${configurer.yAxes1.axisTitle || ''}\n />\n\n <input\n id=\"axis-min-auto\"\n type=\"checkbox\"\n value-key=\"yAxes1.ticks.autoMin\"\n ?checked=${configurer.yAxes1.ticks?.autoMin}\n />\n <label for=\"axis-min-auto\"> <ox-i18n msgid=\"label.axis-min-auto\">Min Auto</ox-i18n> </label>\n\n <input\n id=\"axis-max-auto\"\n type=\"checkbox\"\n value-key=\"yAxes1.ticks.autoMax\"\n ?checked=${configurer.yAxes1.ticks?.autoMax}\n />\n <label for=\"axis-max-auto\"> <ox-i18n msgid=\"label.axis-max-auto\">Max Auto</ox-i18n> </label>\n\n ${!configurer.yAxes1.ticks?.autoMin\n ? html`\n <label for=\"y-axes1.ticks.min\"> <ox-i18n msgid=\"label.axis-min\">Min</ox-i18n> </label>\n <input\n id=\"y-axes1.ticks.min\"\n type=\"number\"\n value-key=\"yAxes1.ticks.min\"\n .value=${String(configurer.yAxes1.ticks?.min)}\n />\n `\n : html``}\n ${!configurer.yAxes1.ticks?.autoMax\n ? html`\n <label for=\"y-axes1-ticks-max\"> <ox-i18n msgid=\"label.axis-max\">Max</ox-i18n> </label>\n <input\n id=\"y-axes1-ticks-max\"\n type=\"number\"\n value-key=\"yAxes1.ticks.max\"\n .value=${String(configurer.yAxes1.ticks?.max)}\n />\n `\n : html``}\n\n <label for=\"y-axes1-ticks-step-size\"> <ox-i18n msgid=\"label.axis-step-size\">StepSize</ox-i18n> </label>\n <input\n id=\"y-axes1-ticks-step-size\"\n type=\"number\"\n value-key=\"yAxes1.ticks.stepSize\"\n .value=${String(configurer.yAxes1.ticks?.stepSize)}\n />\n\n <input\n id=\"y2nd-grid-line\"\n type=\"checkbox\"\n value-key=\"value.options.y2ndGridLine\"\n ?checked=${configurer.config.options.y2ndGridLine}\n />\n <label for=\"y2nd-grid-line\"> <ox-i18n msgid=\"label.grid-line\">Grid Line</ox-i18n> </label>\n\n <input\n id=\"y-axes1.ticks.display\"\n type=\"checkbox\"\n value-key=\"yAxes1.ticks.display\"\n ?checked=${configurer.yAxes1.ticks?.display}\n />\n <label for=\"y-axes1.ticks.display\"> <ox-i18n msgid=\"label.display-tick\">Display Tick</ox-i18n> </label>\n `\n : html``}\n `\n }\n\n multiSeriesTabTemplate() {\n const configurer = this.configurer\n\n return html`\n <div id=\"series-properties-container\" fullwidth>\n <div id=\"tab-header\">\n <md-icon\n id=\"tab-nav-left-button\"\n @tap=${(e: Event) => {\n this._onTabScrollNavLeft(e)\n }}\n disabled\n >chevron_left</md-icon\n >\n <div\n id=\"tabs\"\n @change=${(e: Event) => {\n configurer.currentSeriesIndex = (e.target as any).activeTabIndex\n }}\n active-tab-index=${configurer.currentSeriesIndex}\n fit-container\n >\n ${configurer.datasets.map(\n (dataset: any, index: number) => html`\n <div\n data-series=${index + 1}\n data-tab-index=${index}\n tab\n ?selected=${index == configurer.currentSeriesIndex}\n @click=${(e: Event) => {\n const target = e.target as HTMLDivElement\n this.configurer.setCurrentSeriesIndex(Number(target.getAttribute('data-tab-index')))\n this.value = { ...this.configurer.value }\n }}\n >\n ${index + 1}\n ${!configurer.datasets || (configurer.datasets.length != 1 && configurer.currentSeriesIndex == index)\n ? html` <md-icon @tap=${(e: Event) => this.onTapRemoveCurrentTab(index)}> close </md-icon> `\n : html``}\n </div>\n `\n )}\n </div>\n <md-icon\n id=\"tab-nav-right-button\"\n @click=${(e: Event) => {\n this._onTabScrollNavRight(e)\n }}\n disabled\n >chevron_right</md-icon\n >\n </div>\n <div id=\"add-series-button-container\">\n <md-icon id=\"add-series-button\" @tap=${(e: Event) => this.onTapAddTab(e)}>add</md-icon>\n </div>\n\n <div class=\"tab-content\">\n <label for=\"data-key\"> <ox-i18n msgid=\"label.data-key\">Data Key</ox-i18n> </label>\n <input id=\"data-key\" type=\"text\" value-key=\"dataKey\" .value=${configurer.dataKey || ''} />\n\n ${this.chartType == 'line' || this.chartType == 'bar'\n ? html`\n <label for=\"series-type\"> <ox-i18n msgid=\"label.series-type\">type</ox-i18n> </label>\n <select\n id=\"series-type\"\n class=\"select-content\"\n value-key=\"series.type\"\n .value=${configurer.series.type || ''}\n >\n <option value=\"bar\" selected>bar</option>\n <option value=\"line\">line</option>\n </select>\n `\n : html``}\n\n <label for=\"series-label\"> <ox-i18n msgid=\"label.label\">label</ox-i18n> </label>\n <input id=\"series-label\" type=\"text\" value-key=\"series.label\" .value=${configurer.series.label || ''} />\n\n ${configurer.series.type == 'line'\n ? html`\n <label for=\"series-line-tension\"> <ox-i18n msgid=\"label.line-tension\">line tension</ox-i18n> </label>\n <select\n id=\"series-line-tension\"\n class=\"select-content\"\n value-key=\"series.lineTension\"\n .value=${String(configurer.series.lineTension || 0)}\n >\n <option value=\"0.4\">smooth</option>\n <option value=\"0\">angled</option>\n </select>\n `\n : html``}\n ${configurer.series.type == 'line'\n ? html`\n <label for=\"series-border-width\"> <ox-i18n msgid=\"label.border-width\">border width</ox-i18n> </label>\n <input\n id=\"series-border-width\"\n type=\"number\"\n value-key=\"series.borderWidth\"\n .value=${String(configurer.series.borderWidth || 0)}\n />\n `\n : html``}\n\n <label for=\"series-color\"> <ox-i18n msgid=\"label.color\">color</ox-i18n> </label>\n <ox-input-color id=\"series-color\" value-key=\"color\" .value=${configurer.color}></ox-input-color>\n\n ${configurer.series.type == 'line'\n ? html`\n <label for=\"series-point-style\"> <ox-i18n msgid=\"label.point-shape\">point shape</ox-i18n> </label>\n <select\n id=\"series-point-style\"\n class=\"select-content\"\n value-key=\"series.pointStyle\"\n .value=${configurer.series.pointStyle || ''}\n >\n <option value=\"\">&nbsp;</option>\n <option value=\"circle\">⚬</option>\n <option value=\"triangle\">▵</option>\n <option value=\"rect\">□</option>\n <option value=\"rectRot\">◇</option>\n <option value=\"cross\">+</option>\n <option value=\"crossRot\">⨉</option>\n <option value=\"star\">✱</option>\n <option value=\"line\">―</option>\n <option value=\"dash\">┄</option>\n </select>\n\n <label for=\"series-point-radius\"> <ox-i18n msgid=\"label.point-size\">point size</ox-i18n> </label>\n <input\n id=\"series-point-radius\"\n type=\"number\"\n value-key=\"series.pointRadius\"\n .value=${String(configurer.series.pointRadius || 0)}\n />\n `\n : html``} <label for=\"series-stack\"> <ox-i18n msgid=\"label.stack-group\">Stack group</ox-i18n> </label>\n <input id=\"series-stack\" type=\"text\" value-key=\"series.stack\" .value=${configurer.series.stack || ''} />\n ${configurer.series.type == 'line'\n ? html`\n <input id=\"seires-fill\" type=\"checkbox\" value-key=\"series.fill\" ?checked=${configurer.series.fill} />\n <label for=\"seires-fill\"> <ox-i18n msgid=\"label.fill\">fill</ox-i18n> </label>\n `\n : html``}\n ${configurer.multiAxis\n ? html`\n <label for=\"series-y-axis-id\"> <ox-i18n msgid=\"label.target-axis\">target axis</ox-i18n> </label>\n <select\n id=\"series-y-axis-id\"\n class=\"select-content\"\n value-key=\"series.yAxisID\"\n .value=${configurer.series.yAxisID || ''}\n >\n <option value=\"left\">left</option>\n <option value=\"right\">right</option>\n </select>\n `\n : html``}\n ${this.displayValueTemplate()}\n </div>\n </div>\n `\n }\n\n _onTabScroll(e: Event) {\n if (!this.tabContainer) {\n return\n }\n\n if (this.tabContainer.clientWidth == this.tabContainer.scrollWidth) {\n this.tabNavLeftButton.setAttribute('disabled', '')\n this.tabNavRightButton.setAttribute('disabled', '')\n }\n // left-end\n else if (this.tabContainer.scrollLeft == 0) {\n this.tabNavLeftButton.setAttribute('disabled', '')\n this.tabNavRightButton.removeAttribute('disabled')\n }\n // right-end\n else if (this.tabContainer.scrollLeft + this.tabContainer.clientWidth >= this.tabContainer.scrollWidth) {\n this.tabNavLeftButton.removeAttribute('disabled')\n this.tabNavRightButton.setAttribute('disabled', '')\n } else {\n this.tabNavLeftButton.removeAttribute('disabled')\n this.tabNavRightButton.removeAttribute('disabled')\n }\n }\n\n _onTabScrollNavLeft(e: Event) {\n if (!this.tabContainer) {\n return\n }\n\n this.tabContainer.style.scrollBehavior = 'smooth'\n this.tabContainer.scrollLeft -= this.tabContainer.clientWidth\n this.tabContainer.style.scrollBehavior = 'auto'\n }\n\n _onTabScrollNavRight(e: Event) {\n if (!this.tabContainer) {\n return\n }\n\n this.tabContainer.style.scrollBehavior = 'smooth'\n this.tabContainer.scrollLeft += this.tabContainer.clientWidth\n this.tabContainer.style.scrollBehavior = 'auto'\n }\n}\n"]}