@mixd-id/web-scaffold 0.1.230406249 → 0.1.230406251

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mixd-id/web-scaffold",
3
3
  "private": false,
4
- "version": "0.1.230406249",
4
+ "version": "0.1.230406251",
5
5
  "scripts": {
6
6
  "dev": "vite serve",
7
7
  "build": "vite build",
@@ -119,8 +119,20 @@ export default{
119
119
  else{
120
120
  for(let key in items[0] ?? {}){
121
121
  if(key !== xAxis[0].key){
122
+
123
+ let label = key
124
+
125
+ const columnKey = yAxis[0].key
126
+ const column = this.preset.columns.find(column => column.key === columnKey)
127
+ switch(column.type){
128
+ case 'enum':
129
+ label = column.typeParams.find(_ => `${_.value}` === `${key}`)?.text ?? label
130
+ break
131
+ }
132
+
122
133
  datasets.push({
123
- label: key,
134
+ key,
135
+ label,
124
136
  data: [],
125
137
  borderColor: this.borderColors[datasets.length % this.borderColors.length],
126
138
  backgroundColor: this.backgroundColors[datasets.length % this.backgroundColors.length],
@@ -138,7 +150,7 @@ export default{
138
150
  }
139
151
  else{
140
152
  for(let i in datasets){
141
- datasets[i].data.push(item[datasets[i].label])
153
+ datasets[i].data.push(item[datasets[i].key])
142
154
  }
143
155
  }
144
156
  }
@@ -230,7 +242,6 @@ export default{
230
242
  }, 1000, { leading:true }),
231
243
 
232
244
  onSignal(event, items){
233
- console.log('onSignal', event, items)
234
245
 
235
246
  const hasData = items.some(item => item._data)
236
247
  if(hasData){
@@ -26,7 +26,6 @@
26
26
 
27
27
  <slot name="head"
28
28
  :preset="preset"
29
- :badge-count="badgeCount"
30
29
  :presetSelector="$refs.presetSelector"
31
30
  :compPrefix="compPrefix">
32
31
  <div class="flex flex-col md:flex-row gap-3 md:items-start overflow-hidden leading-tight p-3 md:p-0 md:pl-3"
@@ -38,9 +37,6 @@
38
37
  <h4 class="cursor-pointer whitespace-nowrap text-ellipsis overflow-hidden group hover:text-primary"
39
38
  @click="openPreset">
40
39
  {{ preset.name ?? 'Preset Name' }}
41
- <span v-if="badgeCount > 0" class="inline mx-1 min-w-[19px] px-2 h-[19px] relative top-[-2px] rounded-full bg-primary text-white inline-flex items-center justify-center">
42
- {{ badgeCount }}
43
- </span>
44
40
  <svg v-if="computedPresetMode === 'sidebar'" width="14" height="14" class="ml-1 inline fill-text pointer-events-none group-hover:fill-primary" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.0.0-alpha3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M280.3 134.4c-9.719-9-24.91-8.438-33.94 1.25c-9 9.719-8.469 24.88 1.25 33.94L314.9 232H144C130.8 232 120 242.8 120 256S130.8 280 144 280h170.9l-67.21 62.41c-9.719 9.062-10.25 24.22-1.25 33.94c9.031 9.688 24.22 10.25 33.94 1.25l112-104C397.2 269 400 262.7 400 256s-2.781-13.03-7.656-17.59L280.3 134.4zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z"/></svg>
45
41
  <svg v-else-if="![ 'external' ].includes(computedPresetMode)" width="14" height="14" class="inline fill-text pointer-events-none group-hover:fill-primary" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"/></svg>
46
42
  </h4>
@@ -51,7 +47,7 @@
51
47
  <slot name="toolbar"></slot>
52
48
  </div>
53
49
 
54
- <div class="flex flex-row gap-2 gap-1">
50
+ <div class="flex flex-row gap-2 gap-1" v-if="Boolean(toolbar)">
55
51
  <Textbox class="flex-1 bg-base-500 md:w-[240px]" placeholder="Search..." clearable="1"
56
52
  v-model="preset.search"
57
53
  @clear="delete preset.search; load()"
@@ -165,6 +161,10 @@ export default{
165
161
  headerClass: String,
166
162
  presetMode: String,
167
163
  containerClass: String,
164
+ toolbar: {
165
+ type: [ String, Boolean ],
166
+ default: true
167
+ },
168
168
  },
169
169
 
170
170
  methods: {
@@ -215,6 +215,8 @@ export default{
215
215
  }
216
216
 
217
217
  this.data = data
218
+
219
+ this.$emit('after-load')
218
220
  })
219
221
  .catch(err => this.toast(err))
220
222
  }
@@ -325,6 +327,7 @@ export default{
325
327
 
326
328
  default:
327
329
  this.socket.send(this.src, {
330
+ ...this.preset,
328
331
  id: items.map(item => item.id)
329
332
  })
330
333
  .then(({ items:nextItems }) => {
@@ -340,7 +343,7 @@ export default{
340
343
 
341
344
  components: {PresetSelector, VirtualTable},
342
345
 
343
- emits: [ 'open-preset' ],
346
+ emits: [ 'after-load', 'open-preset' ],
344
347
 
345
348
  inject: [ 'socket', 'toast' ],
346
349
 
@@ -456,7 +459,6 @@ export default{
456
459
 
457
460
  data(){
458
461
  return {
459
- badgeCount: 0,
460
462
  readyState: 0,
461
463
  data: {
462
464
  itemsPerPage: 15,
@@ -527,7 +527,7 @@ const chartToSequelizeWhere = async (chart, opt) => {
527
527
  attributes.push([literal(`SUM(CASE WHEN ${field} = '' THEN 1 ELSE 0 END)`), 'EMPTY'])
528
528
  }
529
529
  else{
530
- attributes.push([literal(`SUM(CASE WHEN ${field} = '${group[yAxis[0].key]}' THEN 1 ELSE 0 END)`), group[yAxis[0].key]])
530
+ attributes.push([literal(`SUM(CASE WHEN ${field} = '${group[yAxis[0].key]}' THEN 1 ELSE 0 END)`), `${group[yAxis[0].key]}` ])
531
531
  }
532
532
  })
533
533
 
@@ -85,7 +85,7 @@
85
85
  body-class="divide-y divide-text-50"
86
86
  @reorder="(from, to) => { presetColumns.splice(to, 0, presetColumns.splice(from, 1)[0]); }">
87
87
  <template v-slot="{ item }">
88
- <div class="flex flex-row items-center gap-3 px-3 p-2 hover:bg-primary-100">
88
+ <div v-if="!item.key.startsWith('_') || (item.key.startsWith('_') && (preset.pivot && preset.pivot.enabled))" class="flex flex-row items-center gap-3 px-3 p-2 hover:bg-primary-100">
89
89
  <div data-reorder>
90
90
  <svg width="14" height="14" class="fill-text-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"/></svg>
91
91
  </div>
@@ -104,7 +104,7 @@
104
104
 
105
105
  <div class="flex-1 flex flex-col">
106
106
 
107
- <div v-for="(filter, idx) in preset.filters" class="p-5">
107
+ <div v-for="(filter, idx) in preset.filters">
108
108
 
109
109
  <div class="flex flex-row items-start gap-2">
110
110
  <Checkbox v-model="filter.enabled" :default="true" />
@@ -522,10 +522,7 @@ export default{
522
522
  this.preset.columns = JSON.parse(JSON.stringify(this.config.columns))
523
523
  }
524
524
 
525
- if(this.preset.pivot && this.preset.pivot.enabled){
526
- return this.preset.columns
527
- }
528
- return this.preset.columns.filter(_ => !_.key.startsWith('_'))
525
+ return this.preset.columns
529
526
  },
530
527
 
531
528
  presetPivot(){