@operato/chart 2.0.0-beta.25

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 (114) hide show
  1. package/.editorconfig +29 -0
  2. package/.storybook/main.js +3 -0
  3. package/.storybook/preview.js +29 -0
  4. package/.storybook/server.mjs +8 -0
  5. package/CHANGELOG.md +17 -0
  6. package/README.md +0 -0
  7. package/assets/images/icon-editor-gradient-direction.png +0 -0
  8. package/assets/images/icon-properties-label.png +0 -0
  9. package/assets/images/icon-properties-line-type.png +0 -0
  10. package/assets/images/icon-properties-table.png +0 -0
  11. package/assets/images/no-image.png +0 -0
  12. package/demo/index.html +33 -0
  13. package/dist/src/chartjs/config-converter.d.ts +29 -0
  14. package/dist/src/chartjs/config-converter.js +218 -0
  15. package/dist/src/chartjs/config-converter.js.map +1 -0
  16. package/dist/src/chartjs/ox-chart-js.d.ts +17 -0
  17. package/dist/src/chartjs/ox-chart-js.js +46 -0
  18. package/dist/src/chartjs/ox-chart-js.js.map +1 -0
  19. package/dist/src/editors/configurer.d.ts +52 -0
  20. package/dist/src/editors/configurer.js +198 -0
  21. package/dist/src/editors/configurer.js.map +1 -0
  22. package/dist/src/editors/index.d.ts +6 -0
  23. package/dist/src/editors/index.js +8 -0
  24. package/dist/src/editors/index.js.map +1 -0
  25. package/dist/src/editors/input-chart-abstract.d.ts +27 -0
  26. package/dist/src/editors/input-chart-abstract.js +273 -0
  27. package/dist/src/editors/input-chart-abstract.js.map +1 -0
  28. package/dist/src/editors/input-chart-multi-series-abstract.d.ts +17 -0
  29. package/dist/src/editors/input-chart-multi-series-abstract.js +418 -0
  30. package/dist/src/editors/input-chart-multi-series-abstract.js.map +1 -0
  31. package/dist/src/editors/input-chart-styles.d.ts +1 -0
  32. package/dist/src/editors/input-chart-styles.js +167 -0
  33. package/dist/src/editors/input-chart-styles.js.map +1 -0
  34. package/dist/src/editors/ox-input-chart-hbar.d.ts +11 -0
  35. package/dist/src/editors/ox-input-chart-hbar.js +220 -0
  36. package/dist/src/editors/ox-input-chart-hbar.js.map +1 -0
  37. package/dist/src/editors/ox-input-chart-mixed.d.ts +8 -0
  38. package/dist/src/editors/ox-input-chart-mixed.js +237 -0
  39. package/dist/src/editors/ox-input-chart-mixed.js.map +1 -0
  40. package/dist/src/editors/ox-input-chart-pie.d.ts +11 -0
  41. package/dist/src/editors/ox-input-chart-pie.js +67 -0
  42. package/dist/src/editors/ox-input-chart-pie.js.map +1 -0
  43. package/dist/src/editors/ox-input-chart-radar.d.ts +8 -0
  44. package/dist/src/editors/ox-input-chart-radar.js +52 -0
  45. package/dist/src/editors/ox-input-chart-radar.js.map +1 -0
  46. package/dist/src/editors/ox-property-editor-chart.d.ts +10 -0
  47. package/dist/src/editors/ox-property-editor-chart.js +79 -0
  48. package/dist/src/editors/ox-property-editor-chart.js.map +1 -0
  49. package/dist/src/index.d.ts +0 -0
  50. package/dist/src/index.js +2 -0
  51. package/dist/src/index.js.map +1 -0
  52. package/dist/src/scichart/ox-scichart.d.ts +35 -0
  53. package/dist/src/scichart/ox-scichart.js +122 -0
  54. package/dist/src/scichart/ox-scichart.js.map +1 -0
  55. package/dist/src/scichart/scichart-builder.d.ts +8 -0
  56. package/dist/src/scichart/scichart-builder.js +46 -0
  57. package/dist/src/scichart/scichart-builder.js.map +1 -0
  58. package/dist/stories/common.d.ts +2 -0
  59. package/dist/stories/common.js +44 -0
  60. package/dist/stories/common.js.map +1 -0
  61. package/dist/stories/ox-input-chart-hbar.stories.d.ts +25 -0
  62. package/dist/stories/ox-input-chart-hbar.stories.js +171 -0
  63. package/dist/stories/ox-input-chart-hbar.stories.js.map +1 -0
  64. package/dist/stories/ox-input-chart-mixed.stories.d.ts +25 -0
  65. package/dist/stories/ox-input-chart-mixed.stories.js +180 -0
  66. package/dist/stories/ox-input-chart-mixed.stories.js.map +1 -0
  67. package/dist/stories/ox-input-chart-pie.stories.d.ts +27 -0
  68. package/dist/stories/ox-input-chart-pie.stories.js +111 -0
  69. package/dist/stories/ox-input-chart-pie.stories.js.map +1 -0
  70. package/dist/stories/ox-input-chart-radar.stories.d.ts +27 -0
  71. package/dist/stories/ox-input-chart-radar.stories.js +122 -0
  72. package/dist/stories/ox-input-chart-radar.stories.js.map +1 -0
  73. package/dist/tsconfig.tsbuildinfo +1 -0
  74. package/package.json +104 -0
  75. package/src/chartjs/config-converter.ts +307 -0
  76. package/src/chartjs/ox-chart-js.ts +46 -0
  77. package/src/editors/configurer.ts +243 -0
  78. package/src/editors/index.ts +8 -0
  79. package/src/editors/input-chart-abstract.ts +315 -0
  80. package/src/editors/input-chart-multi-series-abstract.ts +429 -0
  81. package/src/editors/input-chart-styles.ts +167 -0
  82. package/src/editors/ox-input-chart-hbar.ts +226 -0
  83. package/src/editors/ox-input-chart-mixed.ts +240 -0
  84. package/src/editors/ox-input-chart-pie.ts +75 -0
  85. package/src/editors/ox-input-chart-radar.ts +54 -0
  86. package/src/editors/ox-property-editor-chart.ts +79 -0
  87. package/src/globat.d.ts +1 -0
  88. package/src/index.ts +0 -0
  89. package/src/scichart/ox-scichart.ts +143 -0
  90. package/src/scichart/scichart-builder.ts +87 -0
  91. package/src/types.d.ts +74 -0
  92. package/stories/common.ts +47 -0
  93. package/stories/ox-input-chart-hbar.stories.ts +185 -0
  94. package/stories/ox-input-chart-mixed.stories.ts +194 -0
  95. package/stories/ox-input-chart-pie.stories.ts +126 -0
  96. package/stories/ox-input-chart-radar.stories.ts +137 -0
  97. package/themes/dark-hc.css +151 -0
  98. package/themes/dark-mc.css +151 -0
  99. package/themes/dark.css +151 -0
  100. package/themes/grist-theme.css +177 -0
  101. package/themes/light-hc.css +151 -0
  102. package/themes/light-mc.css +151 -0
  103. package/themes/light.css +151 -0
  104. package/themes/md-typescale-styles.css +100 -0
  105. package/themes/spacing.css +43 -0
  106. package/themes/state-color.css +6 -0
  107. package/translations/en.json +44 -0
  108. package/translations/ja.json +44 -0
  109. package/translations/ko.json +44 -0
  110. package/translations/ms.json +8 -0
  111. package/translations/zh.json +44 -0
  112. package/tsconfig.json +24 -0
  113. package/web-dev-server.config.mjs +27 -0
  114. package/web-test-runner.config.mjs +41 -0
@@ -0,0 +1,418 @@
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=${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=${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=${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=${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=${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=${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=${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(e)}"> 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
+ ${configurer.config.type == 'mixed'
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=${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=${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="circle">⚬</option>
324
+ <option value="triangle">▵</option>
325
+ <option value="rect">□</option>
326
+ <option value="rectRot">◇</option>
327
+ <option value="cross">+</option>
328
+ <option value="crossRot">⨉</option>
329
+ <option value="star">✱</option>
330
+ <option value="line">―</option>
331
+ <option value="dash">┄</option>
332
+ </select>
333
+
334
+ <label for="series-point-radius"> <ox-i18n msgid="label.point-size">point size</ox-i18n> </label>
335
+ <input
336
+ id="series-point-radius"
337
+ type="number"
338
+ value-key="series.pointRadius"
339
+ .value=${configurer.series.pointRadius || 0}
340
+ />
341
+ `
342
+ : html ``} <label for="series-stack"> <ox-i18n msgid="label.stack-group">Stack group</ox-i18n> </label>
343
+ <input id="series-stack" type="text" value-key="series.stack" .value=${configurer.series.stack || ''} />
344
+ ${configurer.series.type == 'line'
345
+ ? html `
346
+ <input id="seires-fill" type="checkbox" value-key="series.fill" ?checked=${configurer.series.fill} />
347
+ <label for="seires-fill"> <ox-i18n msgid="label.fill">fill</ox-i18n> </label>
348
+ `
349
+ : html ``}
350
+ ${configurer.multiAxis
351
+ ? html `
352
+ <label for="series-y-axis-id"> <ox-i18n msgid="label.target-axis">target axis</ox-i18n> </label>
353
+ <select
354
+ id="series-y-axis-id"
355
+ class="select-content"
356
+ value-key="series.yAxisID"
357
+ .value=${configurer.series.yAxisID || ''}
358
+ >
359
+ <option value="left">left</option>
360
+ <option value="right">right</option>
361
+ </select>
362
+ `
363
+ : html ``}
364
+ ${this.displayValueTemplate()}
365
+ </div>
366
+ </div>
367
+ `;
368
+ }
369
+ _onTabScroll(e) {
370
+ if (!this.tabContainer) {
371
+ return;
372
+ }
373
+ if (this.tabContainer.clientWidth == this.tabContainer.scrollWidth) {
374
+ this.tabNavLeftButton.setAttribute('disabled', '');
375
+ this.tabNavRightButton.setAttribute('disabled', '');
376
+ }
377
+ // left-end
378
+ else if (this.tabContainer.scrollLeft == 0) {
379
+ this.tabNavLeftButton.setAttribute('disabled', '');
380
+ this.tabNavRightButton.removeAttribute('disabled');
381
+ }
382
+ // right-end
383
+ else if (this.tabContainer.scrollLeft + this.tabContainer.clientWidth >= this.tabContainer.scrollWidth) {
384
+ this.tabNavLeftButton.removeAttribute('disabled');
385
+ this.tabNavRightButton.setAttribute('disabled', '');
386
+ }
387
+ else {
388
+ this.tabNavLeftButton.removeAttribute('disabled');
389
+ this.tabNavRightButton.removeAttribute('disabled');
390
+ }
391
+ }
392
+ _onTabScrollNavLeft(e) {
393
+ if (!this.tabContainer) {
394
+ return;
395
+ }
396
+ this.tabContainer.style.scrollBehavior = 'smooth';
397
+ this.tabContainer.scrollLeft -= this.tabContainer.clientWidth;
398
+ this.tabContainer.style.scrollBehavior = 'auto';
399
+ }
400
+ _onTabScrollNavRight(e) {
401
+ if (!this.tabContainer) {
402
+ return;
403
+ }
404
+ this.tabContainer.style.scrollBehavior = 'smooth';
405
+ this.tabContainer.scrollLeft += this.tabContainer.clientWidth;
406
+ this.tabContainer.style.scrollBehavior = 'auto';
407
+ }
408
+ }
409
+ __decorate([
410
+ query('#tabs')
411
+ ], InputChartMultiSeriesAbstract.prototype, "tabs", void 0);
412
+ __decorate([
413
+ query('#tab-nav-left-button')
414
+ ], InputChartMultiSeriesAbstract.prototype, "tabNavLeftButton", void 0);
415
+ __decorate([
416
+ query('#tab-nav-right-button')
417
+ ], InputChartMultiSeriesAbstract.prototype, "tabNavRightButton", void 0);
418
+ //# sourceMappingURL=input-chart-multi-series-abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-chart-multi-series-abstract.js","sourceRoot":"","sources":["../../../src/editors/input-chart-multi-series-abstract.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/i18n/ox-i18n.js'\n\nimport { css, 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=${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=${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=${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=${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=${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=${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=${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(e)}\"> 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 ${configurer.config.type == 'mixed'\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=${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=${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=\"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=${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"]}
@@ -0,0 +1 @@
1
+ export declare const InputChartStyles: import("lit").CSSResult;
@@ -0,0 +1,167 @@
1
+ import { css } from 'lit';
2
+ export const InputChartStyles = css `
3
+ :host {
4
+ display: grid;
5
+ grid-template-columns: repeat(10, 1fr);
6
+ grid-gap: 5px;
7
+ }
8
+
9
+ :host > * {
10
+ box-sizing: border-box;
11
+ grid-column: span 7;
12
+ }
13
+
14
+ :host > label {
15
+ box-sizing: border-box;
16
+ grid-column: span 3;
17
+ }
18
+
19
+ :host > legend {
20
+ box-sizing: border-box;
21
+ grid-column: 1 / -1;
22
+ color: var(--md-sys-color-on-secondary-container, #e46c2e);
23
+ font: var(--property-sidebar-fieldset-legend, bold 13px var(--theme-font));
24
+ text-transform: capitalize;
25
+ }
26
+
27
+ #series-properties-container {
28
+ display: grid;
29
+ grid-template-columns: 1fr 25px;
30
+ align-items: center;
31
+ justify-content: center;
32
+ }
33
+
34
+ #series-properties-container > [tab-content] {
35
+ grid-column: span 2;
36
+ }
37
+
38
+ #tab-header {
39
+ display: grid;
40
+ grid-template-columns: 25px 1fr 25px;
41
+ grid-gap: 5px;
42
+ overflow: hidden;
43
+ border: 1px solid rgba(0, 0, 0, 0.2);
44
+ border-bottom: 0;
45
+ background-color: var(--md-sys-color-surface-variant);
46
+ color: var(--md-sys-color-on-surface);
47
+ box-sizing: border-box;
48
+ padding-top: 3px;
49
+ align-items: center;
50
+ }
51
+
52
+ #tab-header > div {
53
+ height: 25px;
54
+ }
55
+
56
+ #tab-header md-icon[disabled] {
57
+ opacity: 0.1;
58
+ }
59
+
60
+ #tabs {
61
+ display: flex;
62
+ overflow: hidden;
63
+ }
64
+
65
+ #tab-header #tabs [tab] md-icon {
66
+ margin-left: 5px;
67
+ padding: 2px;
68
+ color: var(--md-sys-color-on-surface);
69
+
70
+ --md-icon-size: 12px;
71
+ }
72
+
73
+ #add-series-button-container {
74
+ height: 100%;
75
+ box-sizing: border-box;
76
+ align-items: center;
77
+ justify-content: center;
78
+ padding-top: 3px;
79
+ display: flex;
80
+ border-bottom: rgba(0, 0, 0, 0.2) 1px solid;
81
+ }
82
+
83
+ #add-series-button {
84
+ width: 20px;
85
+ height: 20px;
86
+ padding: 0;
87
+ color: var(--md-sys-color-on-secondary-container);
88
+ }
89
+
90
+ .tab-content {
91
+ grid-column: 1 / -1;
92
+
93
+ background-color: rgba(255, 255, 255, 0.5);
94
+ border: 1px solid rgba(0, 0, 0, 0.2);
95
+ border-width: 0 1px 1px 1px;
96
+ padding: 5px;
97
+ display: grid;
98
+ grid-template-columns: repeat(10, 1fr);
99
+ grid-gap: 5px;
100
+ }
101
+
102
+ .tab-content > * {
103
+ box-sizing: border-box;
104
+ grid-column: span 7;
105
+ }
106
+
107
+ label,
108
+ .tab-content > label {
109
+ grid-column: span 3;
110
+ text-align: right;
111
+ color: var(--md-sys-color-on-secondary-container);
112
+ font-size: 0.8em;
113
+ line-height: 2;
114
+ text-transform: capitalize;
115
+ }
116
+
117
+ input,
118
+ select {
119
+ border: 1px solid rgba(0, 0, 0, 0.2);
120
+ border-radius: var(--spacing-small);
121
+ }
122
+
123
+ input[type='checkbox'],
124
+ .tab-content > input[type='checkbox'] {
125
+ grid-column: span 4;
126
+ justify-self: end;
127
+ align-self: center;
128
+ }
129
+
130
+ input[type='checkbox'] + label,
131
+ .tab-content > input[type='checkbox'] + label {
132
+ grid-column: span 6;
133
+
134
+ text-align: left;
135
+ }
136
+
137
+ [fullwidth] {
138
+ grid-column: 1 / -1;
139
+ margin: 0;
140
+ border: 0;
141
+ }
142
+
143
+ div[tab] {
144
+ display: flex;
145
+ align-items: center;
146
+ background-color: rgba(0, 0, 0, 0.2);
147
+ border-width: 1px 1px 0 1px;
148
+ padding: 0 5px;
149
+ color: var(--md-sys-color-on-surface);
150
+ box-sizing: border-box;
151
+ min-width: 45px;
152
+ }
153
+
154
+ div[tab][disabled] {
155
+ background-color: rgba(0, 0, 0, 0.1);
156
+ }
157
+
158
+ div[tab]:last-child {
159
+ border-width: 0;
160
+ }
161
+
162
+ div[tab][selected] {
163
+ background-color: var(--md-sys-color-surface);
164
+ color: var(--md-sys-color-on-surface);
165
+ }
166
+ `;
167
+ //# sourceMappingURL=input-chart-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-chart-styles.js","sourceRoot":"","sources":["../../../src/editors/input-chart-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoKlC,CAAA","sourcesContent":["import { css } from 'lit'\n\nexport const InputChartStyles = css`\n :host {\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n grid-gap: 5px;\n }\n\n :host > * {\n box-sizing: border-box;\n grid-column: span 7;\n }\n\n :host > label {\n box-sizing: border-box;\n grid-column: span 3;\n }\n\n :host > legend {\n box-sizing: border-box;\n grid-column: 1 / -1;\n color: var(--md-sys-color-on-secondary-container, #e46c2e);\n font: var(--property-sidebar-fieldset-legend, bold 13px var(--theme-font));\n text-transform: capitalize;\n }\n\n #series-properties-container {\n display: grid;\n grid-template-columns: 1fr 25px;\n align-items: center;\n justify-content: center;\n }\n\n #series-properties-container > [tab-content] {\n grid-column: span 2;\n }\n\n #tab-header {\n display: grid;\n grid-template-columns: 25px 1fr 25px;\n grid-gap: 5px;\n overflow: hidden;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-bottom: 0;\n background-color: var(--md-sys-color-surface-variant);\n color: var(--md-sys-color-on-surface);\n box-sizing: border-box;\n padding-top: 3px;\n align-items: center;\n }\n\n #tab-header > div {\n height: 25px;\n }\n\n #tab-header md-icon[disabled] {\n opacity: 0.1;\n }\n\n #tabs {\n display: flex;\n overflow: hidden;\n }\n\n #tab-header #tabs [tab] md-icon {\n margin-left: 5px;\n padding: 2px;\n color: var(--md-sys-color-on-surface);\n\n --md-icon-size: 12px;\n }\n\n #add-series-button-container {\n height: 100%;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n padding-top: 3px;\n display: flex;\n border-bottom: rgba(0, 0, 0, 0.2) 1px solid;\n }\n\n #add-series-button {\n width: 20px;\n height: 20px;\n padding: 0;\n color: var(--md-sys-color-on-secondary-container);\n }\n\n .tab-content {\n grid-column: 1 / -1;\n\n background-color: rgba(255, 255, 255, 0.5);\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-width: 0 1px 1px 1px;\n padding: 5px;\n display: grid;\n grid-template-columns: repeat(10, 1fr);\n grid-gap: 5px;\n }\n\n .tab-content > * {\n box-sizing: border-box;\n grid-column: span 7;\n }\n\n label,\n .tab-content > label {\n grid-column: span 3;\n text-align: right;\n color: var(--md-sys-color-on-secondary-container);\n font-size: 0.8em;\n line-height: 2;\n text-transform: capitalize;\n }\n\n input,\n select {\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: var(--spacing-small);\n }\n\n input[type='checkbox'],\n .tab-content > input[type='checkbox'] {\n grid-column: span 4;\n justify-self: end;\n align-self: center;\n }\n\n input[type='checkbox'] + label,\n .tab-content > input[type='checkbox'] + label {\n grid-column: span 6;\n\n text-align: left;\n }\n\n [fullwidth] {\n grid-column: 1 / -1;\n margin: 0;\n border: 0;\n }\n\n div[tab] {\n display: flex;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.2);\n border-width: 1px 1px 0 1px;\n padding: 0 5px;\n color: var(--md-sys-color-on-surface);\n box-sizing: border-box;\n min-width: 45px;\n }\n\n div[tab][disabled] {\n background-color: rgba(0, 0, 0, 0.1);\n }\n\n div[tab]:last-child {\n border-width: 0;\n }\n\n div[tab][selected] {\n background-color: var(--md-sys-color-surface);\n color: var(--md-sys-color-on-surface);\n }\n`\n"]}
@@ -0,0 +1,11 @@
1
+ import '@material/web/icon/icon.js';
2
+ import '@operato/input/ox-input-color.js';
3
+ import '@operato/i18n/ox-i18n.js';
4
+ import { InputChartMultiSeriesAbstract } from './input-chart-multi-series-abstract';
5
+ export declare class OxInputChartHBar extends InputChartMultiSeriesAbstract {
6
+ static styles: import("lit").CSSResult[];
7
+ getChartType(): 'bar' | 'horizontalBar' | 'line' | 'radar' | 'pie' | 'mixed';
8
+ subTemplate(): import("lit-html").TemplateResult<1>;
9
+ multiSeriesTabTemplate(): import("lit-html").TemplateResult<1>;
10
+ getDefaultDatasets(): OperatoChart.Dataset[];
11
+ }