@mixd-id/web-scaffold 0.2.240702 → 0.2.240704

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 (95) hide show
  1. package/docs/schema/user-action.json +266 -0
  2. package/package.json +6 -2
  3. package/public/assets/dashboard/bar.png +0 -0
  4. package/public/assets/dashboard/doughnut.png +0 -0
  5. package/public/assets/dashboard/metric.png +0 -0
  6. package/public/assets/dashboard/pie.png +0 -0
  7. package/public/assets/dashboard/polar-area.png +0 -0
  8. package/public/assets/dashboard/virtual-table.png +0 -0
  9. package/public/static/dashboard/bar.png +0 -0
  10. package/public/static/dashboard/doughnut.png +0 -0
  11. package/public/static/dashboard/metric.png +0 -0
  12. package/public/static/dashboard/pie.png +0 -0
  13. package/public/static/dashboard/polar-area.png +0 -0
  14. package/public/static/dashboard/virtual-table.png +0 -0
  15. package/src/components/Button.vue +179 -160
  16. package/src/components/Checkbox.vue +0 -1
  17. package/src/components/Datepicker.vue +8 -6
  18. package/src/components/GHeatMaps.vue +317 -0
  19. package/src/components/GmapsDirection.vue +191 -0
  20. package/src/components/Grid.vue +2 -0
  21. package/src/components/HTMLEditor.vue +2 -2
  22. package/src/components/List.vue +384 -308
  23. package/src/components/Modal.vue +2 -3
  24. package/src/components/PresetSelectorFilterItem.vue +15 -2
  25. package/src/components/Switch.vue +3 -0
  26. package/src/components/Tabs.vue +1 -1
  27. package/src/components/TextWithTag.vue +67 -25
  28. package/src/components/Textbox.vue +5 -0
  29. package/src/components/VirtualGrid.vue +224 -228
  30. package/src/components/VirtualTable.vue +46 -28
  31. package/src/configs/dashboard/bar.js +10 -0
  32. package/src/configs/dashboard/collection-1.js +5 -0
  33. package/src/configs/dashboard/doughnut.js +7 -0
  34. package/src/configs/dashboard/gheatmaps.js +9 -0
  35. package/src/configs/dashboard/grid-2.js +34 -0
  36. package/src/configs/dashboard/grid-3.js +34 -0
  37. package/src/configs/dashboard/grid-4.js +34 -0
  38. package/src/configs/dashboard/grid.js +15 -0
  39. package/src/configs/dashboard/metric.js +10 -0
  40. package/src/configs/dashboard/pie.js +7 -0
  41. package/src/configs/dashboard/polar-area.js +7 -0
  42. package/src/configs/dashboard/virtual-table.js +9 -0
  43. package/src/defs/dashboard-preset.js +22 -0
  44. package/src/index.js +37 -23
  45. package/src/mixin/ready-state.js +37 -0
  46. package/src/stores/datasource.js +11 -0
  47. package/src/themes/default/index.js +1 -1
  48. package/src/utils/dashboard.js +1080 -0
  49. package/src/utils/event-bus.js +8 -0
  50. package/src/utils/helpers.js +56 -8
  51. package/src/utils/helpers.mjs +35 -1
  52. package/src/utils/preset-selector.js +5 -2
  53. package/src/utils/preset-selector.mjs +23 -13
  54. package/src/widgets/BotEditor/BotEditorActions.vue +162 -0
  55. package/src/widgets/BotEditor.vue +228 -0
  56. package/src/widgets/Dashboard/BarChart.vue +330 -0
  57. package/src/widgets/Dashboard/BarChartSetting.vue +317 -0
  58. package/src/widgets/Dashboard/DatasourceFilterSharing.vue +93 -0
  59. package/src/widgets/Dashboard/DatasourcePreview.vue +93 -0
  60. package/src/widgets/Dashboard/DatasourceSelector.vue +122 -0
  61. package/src/widgets/Dashboard/Doughnut.vue +157 -0
  62. package/src/widgets/Dashboard/DoughnutSetting.vue +196 -0
  63. package/src/widgets/Dashboard/GHeatMapsSetting.vue +108 -0
  64. package/src/widgets/Dashboard/InteractionEdit.vue +228 -0
  65. package/src/widgets/Dashboard/Metric.vue +76 -0
  66. package/src/widgets/Dashboard/MetricSetting.vue +174 -0
  67. package/src/widgets/Dashboard/Pie.vue +139 -0
  68. package/src/widgets/Dashboard/PieSetting.vue +247 -0
  69. package/src/widgets/Dashboard/PolarArea.vue +159 -0
  70. package/src/widgets/Dashboard/PolarAreaSetting.vue +195 -0
  71. package/src/widgets/Dashboard/SharingModal.vue +116 -0
  72. package/src/widgets/Dashboard/ViewSelector.vue +183 -0
  73. package/src/widgets/Dashboard/VirtualColumnEdit.vue +97 -0
  74. package/src/widgets/Dashboard/VirtualTableSetting.vue +234 -0
  75. package/src/widgets/Dashboard.vue +1773 -0
  76. package/src/widgets/PresetBar.vue +136 -175
  77. package/src/widgets/PresetBarPivot.vue +186 -0
  78. package/src/widgets/PresetSelector.vue +2 -2
  79. package/src/widgets/UserActionBuilder/UserActionCondition.vue +99 -0
  80. package/src/widgets/UserActionBuilder/UserActionConsole.vue +77 -0
  81. package/src/widgets/UserActionBuilder/UserActionItem.vue +166 -58
  82. package/src/widgets/UserActionBuilder/UserActionOutput.vue +35 -9
  83. package/src/widgets/UserActionBuilder/UserActionOutputDelay.vue +27 -0
  84. package/src/widgets/UserActionBuilder/UserActionOutputLog.vue +28 -0
  85. package/src/widgets/UserActionBuilder/UserActionOutputReply.vue +135 -0
  86. package/src/widgets/UserActionBuilder/UserActionProps.vue +213 -0
  87. package/src/widgets/UserActionBuilder.vue +68 -199
  88. package/src/widgets/WebPageBuilder4/GridSetting.vue +123 -73
  89. package/src/widgets/WebPageBuilder4/HeightSetting.vue +14 -11
  90. package/src/widgets/WebPageBuilder4/MarginSetting.vue +4 -1
  91. package/src/widgets/WebPageBuilder4/MultiValueSetting.vue +12 -4
  92. package/src/widgets/WebPageBuilder4/PaddingSetting.vue +4 -0
  93. package/src/widgets/WebPageBuilder4/TreeView.vue +6 -3
  94. package/src/widgets/WebPageBuilder4/TreeViewItem.vue +32 -58
  95. package/tailwind.config.js +2 -2
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div :class="$style.comp">
3
+
3
4
  <div :class="$style.header" v-if="visibleColumns.length > 0">
4
5
  <table :class="$style.table" ref="tableHead" :style="tableHeadStyle">
5
6
  <thead>
@@ -7,7 +8,6 @@
7
8
  <th v-for="column in visibleColumns" :style="thStyle(column)" :class="thClass(column)"
8
9
  v-tooltip="column.tooltip">
9
10
  <slot v-if="$slots['col-' + column.key]" :name="'col-' + column.key" :column="column"></slot>
10
- <slot v-else-if="$slots['col-default']" name="col-default" :column="column"></slot>
11
11
  <div v-else :class="headerColumnClass(column)">
12
12
  <span>{{ column.label2 ? column.label2 : (column.label ?? column.key) }}</span>
13
13
  </div>
@@ -27,10 +27,10 @@
27
27
  <div :class="$style.spacer" ref="spacer" :style="spacerStyle">
28
28
  <table :class="$style.table">
29
29
  <thead>
30
- <tr>
31
- <th v-for="column in visibleColumns" :style="thStyle(column)"></th>
32
- <th :class="$style.spacer"></th>
33
- </tr>
30
+ <tr>
31
+ <th v-for="column in visibleColumns" :style="thStyle(column)"></th>
32
+ <th :class="$style.spacer"></th>
33
+ </tr>
34
34
  </thead>
35
35
  <tbody ref="tbody">
36
36
  <tr v-for="(item, index) in visibleItems" :key="item"
@@ -57,23 +57,24 @@
57
57
  <svg class="animate-spin aspect-square w-[16px] h-[16px] text-primary" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>
58
58
  </div>
59
59
  </div>
60
+ <slot name="end"></slot>
60
61
  </div>
61
62
  </div>
62
63
  <div v-else-if="visibleColumns.length <= 0 && Array.isArray(columns)" class="text-center p-3 flex-1 min-h-[100%] flex items-center justify-center">
63
64
  <h5 class="text-text-300">No active column</h5>
64
65
  </div>
65
- <div v-else-if="Array.isArray(items) && items.length <= 0" class="text-center p-3 flex-1 min-h-[100%] flex items-center justify-center">
66
+ <div v-else-if="Array.isArray(cItems) && cItems.length <= 0" class="text-center p-3 flex-1 min-h-[100%] flex items-center justify-center">
66
67
  <h5 class="text-text-300">No data available</h5>
67
68
  </div>
68
69
 
69
- <div :class="$style.calc" v-if="visibleColumns.length > 0 && items && items.length > 0" ref="calc">
70
+ <div :class="$style.calc" v-if="visibleColumns.length > 0 && cItems && cItems.length > 0" ref="calc">
70
71
  <table :class="$style.table">
71
72
  <tbody>
72
73
  <tr>
73
- <td v-for="column in columns" :style="thStyle(column)" :class="thClass(column)">
74
- <slot v-if="$slots[column.key]" :name="column.key" :column="column" :item="items[0]"></slot>
75
- <slot v-else-if="$slots.default" name="default" :column="column" :item="items[0]"></slot>
76
- <div v-else :class="columnClass(column)" v-html="formatColumn(items[0] ?? {}, column)"></div>
74
+ <td v-for="column in cColumns" :style="thStyle(column)" :class="thClass(column)">
75
+ <slot v-if="$slots[column.key]" :name="column.key" :column="column" :item="cItems[0]"></slot>
76
+ <slot v-else-if="$slots.default" name="default" :column="column" :item="cItems[0]"></slot>
77
+ <div v-else :class="columnClass(column)" v-html="formatColumn(cItems[0] ?? {}, column)"></div>
77
78
  </td>
78
79
  <td :class="$style.spacer"></td>
79
80
  </tr>
@@ -94,22 +95,27 @@ const _DEFAULT_COLUMN_WIDTH = '100px'
94
95
 
95
96
  export default{
96
97
 
97
- inject: [ 'listStyle' ],
98
+ inject: [ 'emitRoot', 'listStyle' ],
98
99
 
99
100
  emits: [ 'scroll-end', 'item-click' ],
100
101
 
101
102
  props:{
102
-
103
103
  columns: Array,
104
104
 
105
105
  enumCache: Object,
106
106
 
107
107
  itemClass: String,
108
108
 
109
+ uid: String,
110
+
109
111
  items: Array,
110
112
 
111
113
  pinned: Function,
112
114
 
115
+ datasourceColumns: Array,
116
+
117
+ datasourceUid: String,
118
+
113
119
  defaultColumnWidth: {
114
120
  type: String,
115
121
  default: _DEFAULT_COLUMN_WIDTH
@@ -120,6 +126,9 @@ export default{
120
126
  default: {}
121
127
  },
122
128
 
129
+ type: String,
130
+
131
+ value: Object,
123
132
  },
124
133
 
125
134
  data(){
@@ -136,17 +145,25 @@ export default{
136
145
 
137
146
  computed:{
138
147
 
148
+ cColumns(){
149
+ return this.datasourceColumns ?? this.columns
150
+ },
151
+
152
+ cItems(){
153
+ return this.value?.items ?? this.items
154
+ },
155
+
139
156
  visibleStartIndex(){
140
157
  return Math.floor((this.scrollTop < 0 ? 0 : this.scrollTop) / this.itemHeight)
141
158
  },
142
159
 
143
160
  sortedItems(){
144
- if(!Array.isArray(this.items)) return []
161
+ if(!Array.isArray(this.cItems)) return []
145
162
 
146
163
  if(typeof this.pinned === 'function'){
147
164
  const pinnedItems = []
148
165
  const unpinnedItems = []
149
- this.items.forEach((item) => {
166
+ this.cItems.forEach((item) => {
150
167
  if(this.pinned(item))
151
168
  pinnedItems.push(item)
152
169
  else
@@ -158,7 +175,7 @@ export default{
158
175
  ...unpinnedItems
159
176
  ]
160
177
  }
161
- return this.items
178
+ return this.cItems
162
179
  },
163
180
 
164
181
  visibleItems(){
@@ -173,10 +190,10 @@ export default{
173
190
  },
174
191
 
175
192
  scrollerStyle(){
176
- if(!this.items || this.items.length < 1)
193
+ if(!this.cItems || this.cItems.length < 1)
177
194
  return {}
178
195
 
179
- const height = (this.items.length * this.itemHeight) + (this.state === 2 ? 48 : 0)
196
+ const height = (this.cItems.length * this.itemHeight) + (this.state === 2 ? 48 : 0)
180
197
  const width = this.visibleColumns.reduce((r, item) => r + parseInt(item.width ?? _DEFAULT_COLUMN_WIDTH), 0)
181
198
 
182
199
  return {
@@ -192,7 +209,7 @@ export default{
192
209
  },
193
210
 
194
211
  visibleColumns(){
195
- return (this.columns ?? []).filter(_ => !('visible' in _) || _.visible)
212
+ return (this.cColumns ?? []).filter(_ => !('visible' in _) || _.visible)
196
213
  },
197
214
 
198
215
  visibleColumnKeys(){
@@ -272,11 +289,10 @@ export default{
272
289
  window.getComputedStyle(this.$el).height :
273
290
  window.getComputedStyle(this.$el).maxHeight)
274
291
  this.itemHeight = Math.ceil(parseFloat(window.getComputedStyle(this.$refs.calc).height))
275
- this.maxVisibleItems = elHeight > 0 ? Math.ceil(elHeight / this.itemHeight) + 1 : this.items.length
292
+ this.maxVisibleItems = elHeight > 0 ? Math.ceil(elHeight / this.itemHeight) + 1 : this.cItems.length
276
293
 
277
- this.log(this.itemHeight)
278
294
  if(this.itemHeight <= 0 && import.meta.env.DEV){
279
- this.error('[VirtualTable] Unable to calculate item height, make sure not async component.')
295
+ console.error('[VirtualTable] Unable to calculate item height, make sure not async component.')
280
296
  }
281
297
  }
282
298
  })
@@ -292,6 +308,8 @@ export default{
292
308
  if(this.scrollTop > this.$refs.scroller.offsetHeight - this.$refs.cont.clientHeight - this.itemHeight){
293
309
  if(!this.isOnEndScroll){
294
310
  this.$emit('scroll-end')
311
+ if(typeof this.emitRoot === 'function')
312
+ this.emitRoot.apply(this, [ 'scroll-end', this.$props ])
295
313
  this.isOnEndScroll = true
296
314
  }
297
315
  }
@@ -322,7 +340,7 @@ export default{
322
340
 
323
341
  startResize(e, column){
324
342
 
325
- const idx = this.columns.findIndex((_) => _ === column)
343
+ const idx = this.cColumns.findIndex((_) => _ === column)
326
344
  let x1 = e.touches ? e.touches[0].clientX : e.clientX
327
345
 
328
346
  const onMouseMove = (e) => {
@@ -330,9 +348,9 @@ export default{
330
348
  const d = x2 - x1
331
349
  x1 = x2
332
350
 
333
- let width = parseInt(this.columns[idx].width ?? _DEFAULT_COLUMN_WIDTH) + d
351
+ let width = parseInt(this.cColumns[idx].width ?? _DEFAULT_COLUMN_WIDTH) + d
334
352
  if(width < 20) width = 20
335
- this.columns[idx].width = width
353
+ this.cColumns[idx].width = width
336
354
  }
337
355
 
338
356
  const onMouseUp = (e) => {
@@ -547,8 +565,8 @@ export default{
547
565
  enumText = typeParam && typeParam.text ? typeParam.text : enumText
548
566
  }
549
567
 
550
- if(this.enumCache && this.enumCache[column.key] && this.enumCache[column.key][value]){
551
- enumText = this.enumCache[column.key][value].text ?? enumText
568
+ else if(this.enumCache && this.enumCache[column.key] && this.enumCache[column.key][value?.toString()]){
569
+ enumText = this.enumCache[column.key][value?.toString()].text ?? enumText
552
570
  }
553
571
 
554
572
  text = enumText ? enumText : text
@@ -566,7 +584,7 @@ export default{
566
584
 
567
585
  watch: {
568
586
 
569
- items: {
587
+ cItems: {
570
588
  deep: true,
571
589
  handler(to, from){
572
590
  if((to ?? []).length !== (from ?? []).length){
@@ -0,0 +1,10 @@
1
+ export const component = {
2
+
3
+ type:"BarChart",
4
+
5
+ props:{
6
+ height:200,
7
+ excluded: [],
8
+ }
9
+
10
+ }
@@ -0,0 +1,5 @@
1
+ export const component = {
2
+
3
+ props: {}
4
+
5
+ }
@@ -0,0 +1,7 @@
1
+ export const component = {
2
+
3
+ type:"Doughnut",
4
+
5
+ props:{}
6
+
7
+ }
@@ -0,0 +1,9 @@
1
+ export const component = {
2
+
3
+ type:"GHeatMaps",
4
+
5
+ props:{
6
+
7
+ }
8
+
9
+ }
@@ -0,0 +1,34 @@
1
+ export const component = {
2
+
3
+ type:'Grid',
4
+
5
+ isContainer:true,
6
+
7
+ openOnAdd:false,
8
+
9
+ props:{
10
+
11
+ columns:[
12
+ 'grid-cols-1',
13
+ 'md:grid-cols-2',
14
+ '',
15
+ ''
16
+ ],
17
+
18
+ gap:[
19
+ 'gap-5',
20
+ 'md:gap-5',
21
+ '',
22
+ ''
23
+ ],
24
+
25
+ alignItems:[
26
+ 'items-start',
27
+ 'md:items-start',
28
+ '',
29
+ ''
30
+ ],
31
+
32
+ }
33
+
34
+ }
@@ -0,0 +1,34 @@
1
+ export const component = {
2
+
3
+ type:'Grid',
4
+
5
+ isContainer:true,
6
+
7
+ openOnAdd:false,
8
+
9
+ props:{
10
+
11
+ columns:[
12
+ 'grid-cols-1',
13
+ 'md:grid-cols-3',
14
+ '',
15
+ ''
16
+ ],
17
+
18
+ gap:[
19
+ 'gap-5',
20
+ 'md:gap-5',
21
+ '',
22
+ ''
23
+ ],
24
+
25
+ alignItems:[
26
+ 'items-start',
27
+ 'md:items-start',
28
+ '',
29
+ ''
30
+ ],
31
+
32
+ }
33
+
34
+ }
@@ -0,0 +1,34 @@
1
+ export const component = {
2
+
3
+ type:'Grid',
4
+
5
+ isContainer:true,
6
+
7
+ openOnAdd:false,
8
+
9
+ props:{
10
+
11
+ columns:[
12
+ 'grid-cols-2',
13
+ 'md:grid-cols-4',
14
+ '',
15
+ ''
16
+ ],
17
+
18
+ gap:[
19
+ 'gap-5',
20
+ 'md:gap-5',
21
+ '',
22
+ ''
23
+ ],
24
+
25
+ alignItems:[
26
+ 'items-start',
27
+ 'md:items-start',
28
+ '',
29
+ ''
30
+ ],
31
+
32
+ }
33
+
34
+ }
@@ -0,0 +1,15 @@
1
+ export const component = {
2
+
3
+ type:'Grid',
4
+
5
+ isContainer:true,
6
+
7
+ openOnAdd:false,
8
+
9
+ props:{
10
+ columns:['grid-cols-2', 'md:grid-cols-5', '', ''],
11
+ gap:['gap-5', 'md:gap-5', '', ''],
12
+ alignItems:['items-start', 'md:items-start', '', ''],
13
+ }
14
+
15
+ }
@@ -0,0 +1,10 @@
1
+ export const component = {
2
+
3
+ type:"Metric",
4
+
5
+ props:{
6
+ columnModifier:"sum",
7
+ column2Modifier:"sum"
8
+ }
9
+
10
+ }
@@ -0,0 +1,7 @@
1
+ export const component = {
2
+
3
+ type:"Pie",
4
+
5
+ props:{}
6
+
7
+ }
@@ -0,0 +1,7 @@
1
+ export const component = {
2
+
3
+ type:"PolarArea",
4
+
5
+ props:{}
6
+
7
+ }
@@ -0,0 +1,9 @@
1
+ export const component = {
2
+
3
+ type:"VirtualTable",
4
+
5
+ props:{
6
+ height:[ "h-[50vh]", "md:h-[50vh]", "", "" ]
7
+ }
8
+
9
+ }
@@ -0,0 +1,22 @@
1
+ module.exports = {
2
+
3
+ uid: "uid-1",
4
+ name: "Dashboard 1",
5
+
6
+ datasource: [
7
+ {
8
+ uid: "uid-1",
9
+ type:"mpp.hmc",
10
+ name: "Datasource 1",
11
+ columns: [
12
+ { key:"coo", label:"COO" },
13
+ { key:"mppTgtLck", label:"MPP TGT LCK" },
14
+ ]
15
+ }
16
+ ],
17
+
18
+ views: [
19
+ { uid:"uid-1", type:"List", name:"List" }
20
+ ]
21
+
22
+ }
package/src/index.js CHANGED
@@ -149,7 +149,6 @@ const unregisterResizeEvent = (fn) => {
149
149
  }
150
150
 
151
151
  const consoleInfo = (...args) => { console.info(...args) }
152
- const consoleError = (...args) => { console.error(...args) }
153
152
  const consoleLog = (...args) => { console.log(...args) }
154
153
  const consoleWarn = (...args) => { console.warn(...args) }
155
154
  const consoleTime = (...args) => { console.time(...args) }
@@ -209,7 +208,7 @@ const util = {
209
208
  window.addEventListener('mouseup', onMouseUp)
210
209
  },
211
210
 
212
- push: (arr, items, opt = { key:'uid', update:true }) => {
211
+ push: (arr, items, opt = { update:true }) => {
213
212
  if(!Array.isArray(arr)) return
214
213
  if(!Array.isArray(items)) items = [ items ]
215
214
  if(!opt.key){
@@ -249,34 +248,41 @@ const util = {
249
248
  }
250
249
  },
251
250
 
252
- unshift: (arr, item, opt = {}) => {
251
+ unshift: (arr, items, opt = {}) => {
253
252
  if(!Array.isArray(arr)) return
253
+ if(!Array.isArray(items)) items = [ items ]
254
+ if(items.length < 1) return
255
+
254
256
  if(!opt.key){
255
- opt.key = item && item.uid ? 'uid' : 'id'
257
+ opt.key = items[0] && items[0].uid ? 'uid' : 'id'
256
258
  }
257
259
 
258
260
  opt = Object.assign({ key:"id", highlight:false }, opt)
259
261
 
260
- const index = arr.findIndex((_) => _[opt.key] === item[opt.key])
261
- if(index >= 0){
262
+ for(let item of items) {
263
+ if (!item) continue
262
264
 
263
- const keys = []
264
- for(let key in item){
265
- if(!(key in arr[index]) || arr[index][key] !== item[key]){
266
- keys.push(key)
265
+ const index = arr.findIndex((_) => _[opt.key] === item[opt.key])
266
+ if(index >= 0){
267
+
268
+ const keys = []
269
+ for(let key in item){
270
+ if(!(key in arr[index]) || arr[index][key] !== item[key]){
271
+ keys.push(key)
272
+ }
267
273
  }
268
- }
269
274
 
270
- if(opt.highlight){
271
- item._highlight = keys
275
+ if(opt.highlight){
276
+ item._highlight = keys
277
+ }
278
+ Object.assign(arr[index], item)
272
279
  }
273
- Object.assign(arr[index], item)
274
- }
275
- else{
276
- if(opt.highlight){
277
- item._highlight = true
280
+ else{
281
+ if(opt.highlight){
282
+ item._highlight = true
283
+ }
284
+ arr.unshift(item)
278
285
  }
279
- arr.unshift(item)
280
286
  }
281
287
  },
282
288
 
@@ -402,7 +408,6 @@ export default{
402
408
  app.config.globalProperties.$util = util
403
409
  app.config.globalProperties.$resize = registerResizeEvent
404
410
  app.config.globalProperties.$unresize = unregisterResizeEvent
405
- app.config.globalProperties.error = consoleError
406
411
  app.config.globalProperties.log = consoleLog
407
412
  app.config.globalProperties.warn = consoleWarn
408
413
  app.config.globalProperties.info = consoleInfo
@@ -528,6 +533,7 @@ export default{
528
533
  app.component('ErrorText', defineAsyncComponent(() => import("./components/ErrorText.vue")))
529
534
  app.component('Feed', defineAsyncComponent(() => import("./components/Feed.vue")))
530
535
  app.component('Gmaps', defineAsyncComponent(() => import("./components/Gmaps.vue")))
536
+ app.component('GHeatMaps', defineAsyncComponent(() => import("./components/GHeatMaps.vue")))
531
537
  app.component('HTMLEditor', defineAsyncComponent(() => import("./components/HTMLEditor.vue")))
532
538
  app.component('Switch', defineAsyncComponent(() => import("./components/Switch.vue")))
533
539
  app.component('IconMenu', defineAsyncComponent(() => import("./components/IconMenu.vue")))
@@ -594,7 +600,7 @@ export default{
594
600
  app.component('Chart', defineAsyncComponent(() => import("./components/Chart.vue")))
595
601
  app.component('DGrid', defineAsyncComponent(() => import("./components/DGrid.vue")))
596
602
  app.component('DGridItem', defineAsyncComponent(() => import("./components/DGridItem.vue")))
597
- app.component('Text', defineAsyncComponent(() => import("./components/Text.vue")))
603
+ app.component('GmapsDirection', defineAsyncComponent(() => import("./components/GmapsDirection.vue")))
598
604
 
599
605
  app.component('AhrefSetting', defineAsyncComponent(() => import("./widgets/AhrefSetting.vue")))
600
606
  app.component('ArticleSetting', defineAsyncComponent(() => import("./widgets/ArticleSetting.vue")))
@@ -672,8 +678,16 @@ export default{
672
678
  app.component('TypographySetting', defineAsyncComponent(() => import("./widgets/TypographySetting.vue")))
673
679
  app.component('FiltersSetting', defineAsyncComponent(() => import("./widgets/FiltersSetting.vue")))
674
680
  app.component('MenuEditor', defineAsyncComponent(() => import("./widgets/MenuEditor.vue")))
675
- app.component('MobileMenu', defineAsyncComponent(() => import("./widgets/MobileMenu.vue")))
676
- app.component('UerActionBuilder', defineAsyncComponent(() => import("./widgets/UserActionBuilder.vue")))
681
+ app.component('Dashboard', defineAsyncComponent(() => import("./widgets/Dashboard.vue")))
682
+ app.component('Text', defineAsyncComponent(() => import("./components/Text.vue")))
683
+
684
+ app.component('Doughnut', defineAsyncComponent(() => import("./widgets/Dashboard/Doughnut.vue")))
685
+ app.component('Pie', defineAsyncComponent(() => import("./widgets/Dashboard/Pie.vue")))
686
+ app.component('PolarArea', defineAsyncComponent(() => import("./widgets/Dashboard/PolarArea.vue")))
687
+ app.component('Metric', defineAsyncComponent(() => import("./widgets/Dashboard/Metric.vue")))
688
+ app.component('BarChart', defineAsyncComponent(() => import("./widgets/Dashboard/BarChart.vue")))
689
+
690
+ app.component('BotEditor', defineAsyncComponent(() => import("./widgets/BotEditor.vue")))
677
691
  }
678
692
 
679
693
  }
@@ -0,0 +1,37 @@
1
+ import {useEmitter} from "../utils/event-bus";
2
+
3
+ export const readyStateMixin = {
4
+
5
+ data(){
6
+ return {
7
+ emitter: null,
8
+ readyState: 1,
9
+ }
10
+ },
11
+
12
+ methods: {
13
+
14
+ resetState(){
15
+ this.setState(1)
16
+ },
17
+
18
+ setState(state){
19
+ this.readyState = state
20
+ },
21
+
22
+ },
23
+
24
+ mounted() {
25
+ this.emitter = useEmitter()
26
+ this.emitter.on(`${this.uid}.readyState`, (state) => {
27
+ this.readyState = state
28
+ })
29
+ },
30
+
31
+ props: {
32
+
33
+ uid: String
34
+
35
+ }
36
+
37
+ }
@@ -0,0 +1,11 @@
1
+ import { defineStore } from 'pinia'
2
+
3
+ export const useDatasource = defineStore('datasource', {
4
+
5
+ state: () => ({
6
+ keys: {}
7
+ }),
8
+
9
+ actions: {}
10
+
11
+ })
@@ -244,7 +244,7 @@ const plugin = Plugin(function({ addBase, addUtilities, config, theme }) {
244
244
 
245
245
  '.openltr-enter-from, .openltr-leave-to': {
246
246
  opacity: 0,
247
- transform: 'translateX(30px)'
247
+ transform: 'translateX(100px)'
248
248
  },
249
249
 
250
250
  '.openltr-leave-active': {