evui 3.4.207 → 3.4.208

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 (162) hide show
  1. package/README.md +18 -33
  2. package/dist/404.html +44 -0
  3. package/dist/favicon.ico +0 -0
  4. package/dist/index.js +22645 -0
  5. package/dist/index.umd.cjs +28 -0
  6. package/dist/style.css +1 -0
  7. package/package.json +46 -43
  8. package/dist/evui.common.js +0 -63681
  9. package/dist/evui.common.js.map +0 -1
  10. package/dist/evui.umd.js +0 -63691
  11. package/dist/evui.umd.js.map +0 -1
  12. package/dist/evui.umd.min.js +0 -2
  13. package/dist/evui.umd.min.js.map +0 -1
  14. package/dist/img/EVUI.b82ee81a.svg +0 -293
  15. package/src/assets/logo.png +0 -0
  16. package/src/common/emitter.js +0 -20
  17. package/src/common/utils.bignumber.js +0 -67
  18. package/src/common/utils.debounce.js +0 -223
  19. package/src/common/utils.js +0 -151
  20. package/src/common/utils.table.js +0 -78
  21. package/src/common/utils.throttle.js +0 -83
  22. package/src/common/utils.tree.js +0 -18
  23. package/src/components/button/Button.vue +0 -195
  24. package/src/components/button/index.js +0 -7
  25. package/src/components/buttonGroup/ButtonGroup.vue +0 -11
  26. package/src/components/buttonGroup/index.js +0 -7
  27. package/src/components/calendar/Calendar.vue +0 -725
  28. package/src/components/calendar/index.js +0 -7
  29. package/src/components/calendar/uses.js +0 -1410
  30. package/src/components/chart/Chart.vue +0 -363
  31. package/src/components/chart/ChartToolbar.vue +0 -52
  32. package/src/components/chart/chart.core.js +0 -1170
  33. package/src/components/chart/chartZoom.core.js +0 -540
  34. package/src/components/chart/element/element.bar.js +0 -672
  35. package/src/components/chart/element/element.bar.time.js +0 -166
  36. package/src/components/chart/element/element.heatmap.js +0 -743
  37. package/src/components/chart/element/element.line.js +0 -611
  38. package/src/components/chart/element/element.pie.js +0 -197
  39. package/src/components/chart/element/element.scatter.js +0 -320
  40. package/src/components/chart/element/element.tip.js +0 -717
  41. package/src/components/chart/helpers/helpers.canvas.js +0 -265
  42. package/src/components/chart/helpers/helpers.constant.js +0 -235
  43. package/src/components/chart/helpers/helpers.util.js +0 -400
  44. package/src/components/chart/index.js +0 -9
  45. package/src/components/chart/model/index.js +0 -50
  46. package/src/components/chart/model/model.series.js +0 -125
  47. package/src/components/chart/model/model.store.js +0 -1427
  48. package/src/components/chart/plugins/plugins.interaction.js +0 -1659
  49. package/src/components/chart/plugins/plugins.legend.gradient.js +0 -606
  50. package/src/components/chart/plugins/plugins.legend.js +0 -1543
  51. package/src/components/chart/plugins/plugins.pie.js +0 -254
  52. package/src/components/chart/plugins/plugins.scrollbar.js +0 -732
  53. package/src/components/chart/plugins/plugins.title.js +0 -61
  54. package/src/components/chart/plugins/plugins.tooltip.js +0 -1041
  55. package/src/components/chart/scale/scale.js +0 -951
  56. package/src/components/chart/scale/scale.linear.js +0 -268
  57. package/src/components/chart/scale/scale.logarithmic.js +0 -135
  58. package/src/components/chart/scale/scale.step.js +0 -430
  59. package/src/components/chart/scale/scale.time.category.js +0 -338
  60. package/src/components/chart/scale/scale.time.js +0 -49
  61. package/src/components/chart/style/chart.scss +0 -405
  62. package/src/components/chart/uses.js +0 -721
  63. package/src/components/chartBrush/ChartBrush.vue +0 -323
  64. package/src/components/chartBrush/chartBrush.core.js +0 -691
  65. package/src/components/chartBrush/index.js +0 -9
  66. package/src/components/chartBrush/uses.js +0 -23
  67. package/src/components/chartGroup/ChartGroup.vue +0 -144
  68. package/src/components/chartGroup/index.js +0 -9
  69. package/src/components/chartGroup/style/chartGroup.scss +0 -5
  70. package/src/components/chartGroup/uses.js +0 -53
  71. package/src/components/checkbox/Checkbox.vue +0 -229
  72. package/src/components/checkbox/index.js +0 -7
  73. package/src/components/checkboxGroup/CheckboxGroup.vue +0 -44
  74. package/src/components/checkboxGroup/index.js +0 -7
  75. package/src/components/contextMenu/ContextMenu.vue +0 -95
  76. package/src/components/contextMenu/MenuList.vue +0 -182
  77. package/src/components/contextMenu/index.js +0 -7
  78. package/src/components/contextMenu/uses.js +0 -223
  79. package/src/components/datePicker/DatePicker.vue +0 -504
  80. package/src/components/datePicker/index.js +0 -7
  81. package/src/components/datePicker/uses.js +0 -460
  82. package/src/components/grid/Grid.vue +0 -1535
  83. package/src/components/grid/GridColumnSetting.vue +0 -358
  84. package/src/components/grid/GridFilterSetting.vue +0 -323
  85. package/src/components/grid/GridPagination.vue +0 -75
  86. package/src/components/grid/GridSummary.vue +0 -314
  87. package/src/components/grid/GridToolbar.vue +0 -35
  88. package/src/components/grid/icon/icon-option-button.vue +0 -17
  89. package/src/components/grid/icon/icon-sort-button.vue +0 -67
  90. package/src/components/grid/index.js +0 -11
  91. package/src/components/grid/style/grid.scss +0 -417
  92. package/src/components/grid/uses.js +0 -1629
  93. package/src/components/icon/Icon.vue +0 -53
  94. package/src/components/icon/index.js +0 -8
  95. package/src/components/inputNumber/InputNumber.vue +0 -212
  96. package/src/components/inputNumber/index.js +0 -7
  97. package/src/components/inputNumber/uses.js +0 -217
  98. package/src/components/loading/Loading.vue +0 -125
  99. package/src/components/loading/index.js +0 -7
  100. package/src/components/menu/Menu.vue +0 -79
  101. package/src/components/menu/MenuItem.vue +0 -201
  102. package/src/components/menu/index.js +0 -7
  103. package/src/components/message/Message.vue +0 -229
  104. package/src/components/message/index.js +0 -34
  105. package/src/components/messageBox/MessageBox.vue +0 -358
  106. package/src/components/messageBox/index.js +0 -22
  107. package/src/components/notification/Notification.vue +0 -316
  108. package/src/components/notification/index.js +0 -49
  109. package/src/components/pagination/Pagination.vue +0 -317
  110. package/src/components/pagination/index.js +0 -7
  111. package/src/components/pagination/pageButton.vue +0 -31
  112. package/src/components/progress/Progress.vue +0 -139
  113. package/src/components/progress/index.js +0 -7
  114. package/src/components/radio/Radio.vue +0 -159
  115. package/src/components/radio/index.js +0 -7
  116. package/src/components/radioGroup/RadioGroup.vue +0 -41
  117. package/src/components/radioGroup/index.js +0 -7
  118. package/src/components/scheduler/Scheduler.vue +0 -149
  119. package/src/components/scheduler/index.js +0 -7
  120. package/src/components/scheduler/uses.js +0 -183
  121. package/src/components/select/Select.vue +0 -556
  122. package/src/components/select/index.js +0 -7
  123. package/src/components/select/uses.js +0 -379
  124. package/src/components/slider/Slider.vue +0 -505
  125. package/src/components/slider/index.js +0 -7
  126. package/src/components/slider/uses.js +0 -391
  127. package/src/components/tabPanel/TabPanel.vue +0 -74
  128. package/src/components/tabPanel/index.js +0 -7
  129. package/src/components/tabs/Tabs.vue +0 -517
  130. package/src/components/tabs/index.js +0 -7
  131. package/src/components/textField/TextField.vue +0 -399
  132. package/src/components/textField/index.js +0 -7
  133. package/src/components/timePicker/TimePicker.vue +0 -364
  134. package/src/components/timePicker/index.js +0 -7
  135. package/src/components/toggle/Toggle.vue +0 -115
  136. package/src/components/toggle/index.js +0 -7
  137. package/src/components/tree/Tree.vue +0 -338
  138. package/src/components/tree/TreeNode.vue +0 -293
  139. package/src/components/tree/index.js +0 -7
  140. package/src/components/treeGrid/TreeGrid.vue +0 -1074
  141. package/src/components/treeGrid/TreeGridNode.vue +0 -349
  142. package/src/components/treeGrid/TreeGridToolbar.vue +0 -35
  143. package/src/components/treeGrid/icon/icon-tree.png +0 -0
  144. package/src/components/treeGrid/index.js +0 -9
  145. package/src/components/treeGrid/style/treeGrid.scss +0 -277
  146. package/src/components/treeGrid/uses.js +0 -1178
  147. package/src/components/window/Window.vue +0 -329
  148. package/src/components/window/index.js +0 -7
  149. package/src/components/window/uses.js +0 -908
  150. package/src/directives/clickoutside.js +0 -90
  151. package/src/main.js +0 -120
  152. package/src/style/components/input.scss +0 -108
  153. package/src/style/functions.scss +0 -3
  154. package/src/style/index.scss +0 -6
  155. package/src/style/lib/fonts/EVUI.eot +0 -0
  156. package/src/style/lib/fonts/EVUI.svg +0 -293
  157. package/src/style/lib/fonts/EVUI.ttf +0 -0
  158. package/src/style/lib/fonts/EVUI.woff +0 -0
  159. package/src/style/lib/icon.css +0 -888
  160. package/src/style/mixins.scss +0 -94
  161. package/src/style/themes.scss +0 -69
  162. package/src/style/variables.scss +0 -22
@@ -1,363 +0,0 @@
1
- <template>
2
- <div
3
- v-if="zoomOptions.toolbar?.show && !injectIsChartGroup"
4
- ref="evChartToolbarRef"
5
- >
6
- <ev-chart-toolbar
7
- :toolbar="zoomOptions.toolbar"
8
- @on-click-toolbar="onClickToolbar"
9
- />
10
- </div>
11
-
12
- <div
13
- ref="wrapper"
14
- v-resize="onResize"
15
- :style="wrapperStyle"
16
- class="ev-chart"
17
- />
18
- </template>
19
-
20
- <script>
21
- import {
22
- onMounted,
23
- onBeforeUnmount,
24
- onActivated,
25
- onDeactivated,
26
- inject,
27
- watch,
28
- ref,
29
- toRef,
30
- computed,
31
- } from 'vue';
32
- import { cloneDeep, isEqual, debounce } from 'lodash-es';
33
- import EvChart from './chart.core';
34
- import EvChartToolbar from './ChartToolbar';
35
- import { useModel, useWrapper, useZoomModel } from './uses';
36
-
37
- export default {
38
- name: 'EvChart',
39
- components: {
40
- EvChartToolbar,
41
- },
42
- props: {
43
- selectedItem: {
44
- type: Object,
45
- default: null,
46
- },
47
- selectedLabel: {
48
- type: Object,
49
- default: null,
50
- },
51
- selectedSeries: {
52
- type: Object,
53
- default: null,
54
- },
55
- options: {
56
- type: Object,
57
- default: () => ({}),
58
- },
59
- data: {
60
- type: Object,
61
- default: () => ({}),
62
- },
63
- resizeTimeout: {
64
- type: Number,
65
- default: 0,
66
- },
67
- zoomStartIdx: {
68
- type: Number,
69
- default: 0,
70
- },
71
- zoomEndIdx: {
72
- type: Number,
73
- default: 0,
74
- },
75
- realTimeScatterReset: {
76
- type: Boolean,
77
- default: false,
78
- },
79
- },
80
- emits: [
81
- 'click',
82
- 'dbl-click',
83
- 'drag-select',
84
- 'mouse-move',
85
- 'update:selectedItem',
86
- 'update:selectedLabel',
87
- 'update:selectedSeries',
88
- 'update:zoomStartIdx',
89
- 'update:zoomEndIdx',
90
- 'update:realTimeScatterReset',
91
- ],
92
- setup(props, { emit }) {
93
- let evChart = null;
94
- const isMounted = ref(false);
95
- const injectIsChartGroup = inject('isChartGroup', false);
96
- const injectBrushSeries = inject('brushSeries', { list: [], chartIdx: null });
97
- const injectGroupSelectedLabel = inject('groupSelectedLabel', null);
98
- const injectGroupHoveredLabel = inject('groupHoveredLabel', null);
99
- const injectBrushIdx = inject('brushIdx', { start: 0, end: -1 });
100
- const injectEvChartPropsInGroup = inject('evChartPropsInGroup', []);
101
-
102
- const {
103
- eventListeners,
104
- selectItemInfo,
105
- selectLabelInfo,
106
- selectSeriesInfo,
107
- getNormalizedData,
108
- getNormalizedOptions,
109
- } = useModel(injectGroupSelectedLabel, injectGroupHoveredLabel);
110
-
111
- const normalizedData = getNormalizedData(props.data);
112
- const normalizedOptions = getNormalizedOptions(props.options);
113
- const selectedLabel = computed(() => props.selectedLabel);
114
- const selectedItem = computed(() => props.selectedItem);
115
-
116
- const {
117
- wrapper,
118
- wrapperStyle,
119
- } = useWrapper(
120
- normalizedOptions,
121
- );
122
-
123
- const {
124
- evChartZoomOptions,
125
- evChartToolbarRef,
126
-
127
- createEvChartZoom,
128
- setOptionsForUseZoom,
129
- setDataForUseZoom,
130
- controlZoomIdx,
131
- onClickToolbar,
132
- } = injectIsChartGroup ? {} : useZoomModel(
133
- normalizedOptions,
134
- { wrapper, evChartGroupRef: null },
135
- props.selectedLabel ? selectedLabel : selectedItem,
136
- injectEvChartPropsInGroup,
137
- );
138
-
139
- const createChart = () => {
140
- let selected;
141
- if (normalizedOptions.selectLabel.use) {
142
- selected = selectLabelInfo;
143
- } else if (normalizedOptions.selectSeries.use) {
144
- selected = selectSeriesInfo;
145
- }
146
-
147
- const chartData = props.options.realTimeScatter?.use
148
- ? { ...props.data, groups: [], labels: [] }
149
- : normalizedData;
150
-
151
- evChart = new EvChart(
152
- wrapper.value,
153
- chartData,
154
- normalizedOptions,
155
- eventListeners,
156
- selectItemInfo,
157
- selected,
158
- injectBrushSeries,
159
- );
160
- };
161
-
162
- const drawChart = () => {
163
- if (evChart) {
164
- evChart.init();
165
-
166
- if (!injectIsChartGroup && normalizedOptions.zoom.toolbar.show) {
167
- createEvChartZoom();
168
- }
169
- }
170
- };
171
-
172
- watch(() => props.options, (chartOpt) => {
173
- const newOpt = getNormalizedOptions(chartOpt);
174
- const isUpdateLegendType = !isEqual(newOpt.legend.table, evChart.options.legend.table);
175
- const isUpdateTooltip = newOpt.tooltip.use && !isEqual(
176
- newOpt.tooltip,
177
- evChart.options.tooltip,
178
- );
179
-
180
- evChart.options = cloneDeep(newOpt);
181
-
182
- evChart.update({
183
- updateSeries: false,
184
- updateSelTip: { update: false, keepDomain: false },
185
- updateLegend: isUpdateLegendType,
186
- updateTooltip: isUpdateTooltip,
187
- });
188
-
189
- if (!injectIsChartGroup) {
190
- setOptionsForUseZoom(newOpt);
191
- }
192
- }, { deep: true, flush: 'post' });
193
-
194
- watch(() => props.data, (chartData) => {
195
- const newData = props.options.realTimeScatter?.use
196
- ? { ...chartData, groups: [], labels: [] }
197
- : getNormalizedData(chartData);
198
- const isUpdateSeries = !isEqual(newData.series, evChart.data.series)
199
- || !isEqual(newData.groups, evChart.data.groups)
200
- || props.options.type === 'heatMap';
201
-
202
- const isUpdateData = !isEqual(newData, evChart.data);
203
-
204
- evChart.data = props.options.realTimeScatter?.use ? newData : cloneDeep(newData);
205
-
206
- evChart.update({
207
- updateSeries: isUpdateSeries,
208
- updateSelTip: { update: true, keepDomain: false },
209
- updateData: isUpdateData,
210
- });
211
-
212
- if (!injectIsChartGroup && isUpdateData) {
213
- setDataForUseZoom(newData);
214
- }
215
- }, { deep: true, flush: 'post' });
216
-
217
- if (injectIsChartGroup && !injectGroupSelectedLabel?.value) {
218
- watch(() => injectBrushIdx.start, (curBrushStartIdx, prevBrushStartIdx) => {
219
- if (selectedLabel?.value) {
220
- for (let idx = 0; idx < selectedLabel.value.dataIndex.length; idx++) {
221
- if (curBrushStartIdx >= (prevBrushStartIdx ?? 0)) {
222
- selectedLabel.value.dataIndex[idx] -= curBrushStartIdx - (prevBrushStartIdx ?? 0);
223
- } else {
224
- selectedLabel.value.dataIndex[idx] += prevBrushStartIdx - curBrushStartIdx;
225
- }
226
- }
227
- } else if (selectedItem?.value) {
228
- if (curBrushStartIdx >= (prevBrushStartIdx ?? 0)) {
229
- selectedItem.value.dataIndex -= curBrushStartIdx - (prevBrushStartIdx ?? 0);
230
- } else {
231
- selectedItem.value.dataIndex += prevBrushStartIdx - curBrushStartIdx;
232
- }
233
- }
234
- });
235
- }
236
-
237
- watch(() => selectedItem.value, (newValue) => {
238
- const chartType = props.options.type;
239
- evChart.selectItemByData(newValue, chartType);
240
- }, { deep: true, flush: 'post' });
241
-
242
- watch(() => (injectGroupSelectedLabel?.value ?? selectedLabel.value), (newValue) => {
243
- if (newValue?.dataIndex) {
244
- evChart.selectLabelByData(newValue.dataIndex, newValue?.targetAxis);
245
- }
246
- }, { deep: true, flush: 'post' });
247
-
248
- watch(() => props.selectedSeries, (newValue) => {
249
- if (newValue.seriesId) {
250
- evChart.selectSeriesByData(newValue.seriesId);
251
- }
252
- }, { deep: true, flush: 'post' });
253
-
254
- if (!injectIsChartGroup) {
255
- watch(() => [props.zoomStartIdx, props.zoomEndIdx], ([zoomStartIdx, zoomEndIdx]) => {
256
- controlZoomIdx(zoomStartIdx, zoomEndIdx);
257
- });
258
- }
259
-
260
- watch(() => props.realTimeScatterReset, (flag) => {
261
- if (flag) {
262
- Object.keys(evChart.dataSet ?? {}).forEach((series) => {
263
- if (evChart.dataSet[series]) {
264
- evChart.dataSet[series].dataGroup = [];
265
- }
266
- });
267
-
268
- emit('update:realTimeScatterReset', false);
269
- }
270
- });
271
-
272
- watch(() => props.options.realTimeScatter?.use, (use) => {
273
- evChart.options.realTimeScatter.use = use ?? false;
274
-
275
- evChart.update({
276
- updateSeries: true,
277
- updateSelTip: { update: false, keepDomain: false },
278
- updateData: false,
279
- });
280
- });
281
-
282
- watch(() => injectGroupHoveredLabel?.value, (newHoveredLabel) => {
283
- if (!newHoveredLabel) {
284
- return;
285
- }
286
- if (props.options.syncHover !== false) {
287
- if (newHoveredLabel.label == null) {
288
- evChart.overlayClear();
289
- } else {
290
- evChart.drawSyncedIndicator(newHoveredLabel);
291
- }
292
- }
293
- }, { deep: true, flush: 'post' });
294
-
295
- onMounted(async () => {
296
- if (injectEvChartPropsInGroup?.value) {
297
- injectEvChartPropsInGroup.value.push(props);
298
- }
299
-
300
- await createChart();
301
- await drawChart();
302
-
303
- isMounted.value = true;
304
- });
305
-
306
- onBeforeUnmount(() => {
307
- if (evChart && 'destroy' in evChart) {
308
- evChart.destroy();
309
- }
310
-
311
- if (injectEvChartPropsInGroup?.value?.length) {
312
- injectEvChartPropsInGroup.value.length = 0;
313
- }
314
-
315
- isMounted.value = false;
316
- });
317
-
318
- onDeactivated(() => {
319
- if (evChart && 'hideTooltip' in evChart) {
320
- evChart.hideTooltip();
321
- }
322
- });
323
-
324
- const redraw = () => {
325
- if (evChart && 'update' in evChart) {
326
- evChart.update({
327
- updateSeries: true,
328
- updateSelTip: { update: true, keepDomain: false },
329
- });
330
- }
331
- };
332
-
333
- const onResize = debounce(() => {
334
- if (evChart && 'resize' in evChart) {
335
- evChart.resize();
336
- }
337
- }, props.resizeTimeout);
338
-
339
- onActivated(() => {
340
- if (isMounted.value) {
341
- onResize();
342
- }
343
- });
344
-
345
- return {
346
- wrapper,
347
- wrapperStyle,
348
- onResize,
349
- redraw,
350
-
351
- evChartToolbarRef,
352
- injectIsChartGroup,
353
- onClickToolbar,
354
- normalizedOptions,
355
- zoomOptions: toRef(evChartZoomOptions ?? { zoom: {} }, 'zoom'),
356
- };
357
- },
358
- };
359
- </script>
360
-
361
- <style lang="scss">
362
- @import 'style/chart.scss';
363
- </style>
@@ -1,52 +0,0 @@
1
- <template>
2
- <div class="ev-chart-toolbar">
3
- <div class="ev-chart-toolbar__icon">
4
- <ev-icon
5
- v-for="(option, iconType) in $props.toolbar.items"
6
- :key="`${iconType}-${option.icon}`"
7
- :class="iconType"
8
- :icon="option.icon"
9
- :size="option.size"
10
- :title="option.title"
11
- @click="$emit('onClickToolbar', $event, iconType)"
12
- />
13
- </div>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- name: 'EvChartToolbar',
20
- props: {
21
- toolbar: {
22
- type: Object,
23
- default: () => ({}),
24
- },
25
- },
26
- emits: ['onClickToolbar'],
27
- };
28
- </script>
29
-
30
- <style lang="scss" scoped>
31
- .ev-chart-toolbar {
32
- height: 30px;
33
- text-align: right;
34
- padding-right: 30px;
35
-
36
- &__icon {
37
- i {
38
- pointer-events: none;
39
- opacity: 0.5;
40
- cursor: pointer;
41
- }
42
-
43
- i + i {
44
- margin-left: 10px;
45
- }
46
-
47
- .active {
48
- font-weight: bold;
49
- }
50
- }
51
- }
52
- </style>