quasar-factory-lib 0.0.7 → 0.0.9

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 (35) hide show
  1. package/dist/components/K-Table/K-Table.vue.d.ts +11 -8
  2. package/dist/components/K-Table/components/TableFilter.vue.d.ts +0 -1
  3. package/dist/components/K-Table/components/TableSlotBody.vue.d.ts +3 -2
  4. package/dist/components/K-Table/components/TableSlotGrid.vue.d.ts +3 -2
  5. package/dist/i18n/en/index.d.ts +14 -2
  6. package/dist/i18n/es/index.d.ts +14 -2
  7. package/dist/i18n/index.d.ts +30 -1
  8. package/dist/pages/TablePage.vue.d.ts +1125 -0
  9. package/dist/quasar-factory-lib.js +9558 -5527
  10. package/dist/quasar-factory-lib.umd.cjs +15 -9
  11. package/dist/store/table.d.ts +9 -0
  12. package/dist/style.css +1 -1
  13. package/package.json +4 -8
  14. package/src/components/K-Table/K-Table.vue +12 -6
  15. package/src/components/K-Table/components/CustomizedIcon.vue +2 -2
  16. package/src/components/K-Table/components/TableColumnsSelector.vue +2 -12
  17. package/src/components/K-Table/components/TableFilter.vue +10 -21
  18. package/src/components/K-Table/components/TableSlotBody.vue +7 -6
  19. package/src/components/K-Table/components/TableSlotGrid.vue +8 -7
  20. package/src/components/K-Table/components/TableSlotHeader.vue +2 -14
  21. package/src/components/K-Table/css/columnsSelector.css +10 -0
  22. package/src/components/K-Table/css/table.css +27 -25
  23. package/src/components/K-Table/css/tableFilter.css +9 -0
  24. package/src/components/K-Table/css/tableSlotHeader.css +10 -0
  25. package/src/components/K-Table/utils/infiniteScroll.ts +1 -1
  26. package/src/css/app.css +25 -1
  27. package/src/i18n/en/index.ts +14 -2
  28. package/src/i18n/es/index.ts +15 -3
  29. package/src/index.ts +3 -1
  30. package/src/layouts/MenuLayout.vue +2 -2
  31. package/src/main.ts +3 -1
  32. package/src/pages/TablePage.vue +316 -0
  33. package/src/router/routes.ts +6 -2
  34. package/src/store/index.js +9 -0
  35. package/src/store/table.js +22 -0
@@ -0,0 +1,316 @@
1
+ <template>
2
+ <q-page-container class=" full-width column justify-center">
3
+ <q-page
4
+ class="full-width column justify-center align-center items-center"
5
+ style="height: 70vh;"
6
+ >
7
+ <div
8
+ class="full-width"
9
+ >
10
+ <MyTable
11
+ :rows="rows"
12
+ :columns="columns"
13
+ :visible-columns="visibleColumns"
14
+ :small-device="false"
15
+ :store="store"
16
+ :table-style="tableStyle"
17
+ :show-skeleton="false"
18
+ :selection-type="'multiple'"
19
+ :filter-method="filterMethod"
20
+ :filter-computed="filter"
21
+ @on-select-visible-columns="saveSelectedColumns"
22
+ @on-update-basic-checkbox-value="onUpdateBasicCheckboxValue"
23
+ @on-update-customized-checkbox-value="onUpdateCustomizedCheckboxValue"
24
+ @on-click-button="setItemNotFound"
25
+ />
26
+ </div>
27
+ </q-page>
28
+ </q-page-container>
29
+ </template>
30
+ <script lang="ts">
31
+ import MyTable from '../components/K-Table/K-Table.vue'
32
+ // import rows from '../testData.js'
33
+ import setTableHeight from '../components/K-Table/utils/setTableHeight'
34
+ import infiniteScroll from '../components/K-Table/utils/infiniteScroll'
35
+ import FilterMethod from '../components/K-Table/utils/filterMethod'
36
+ import { tableStore } from '../store/table.js'
37
+ export default {
38
+ components: {
39
+ MyTable
40
+ },
41
+ data () {
42
+ return {
43
+ forceRender: false,
44
+ store: tableStore(),
45
+ totalPage: 0,
46
+ pageSize: 20,
47
+ tableStyle: '',
48
+ columns: [{
49
+ name: 'name',
50
+ required: true,
51
+ label: 'Dessert (100g serving)',
52
+ align: 'left',
53
+ sortable: true
54
+ },
55
+ {
56
+ name: 'available',
57
+ required: true,
58
+ label: 'Available',
59
+ align: 'left',
60
+ sortable: true,
61
+ showBasicCheckbox: true
62
+ },
63
+ {
64
+ name: 'booleanIcon',
65
+ required: true,
66
+ label: 'Boolean Icon',
67
+ align: 'left',
68
+ sortable: true,
69
+ showCustomizedIcon: true
70
+ },
71
+ {
72
+ name: 'calories',
73
+ align: 'center',
74
+ label: 'Calories',
75
+ field: 'calories',
76
+ sortable: true,
77
+ editable: true,
78
+ showEditIcon: true,
79
+ popupEditEmit: 'onSaveValuePopupEdit',
80
+ popupEditInputtype: 'number',
81
+ popupEditDataCy: '',
82
+ popupEditMask: '#####'
83
+ },
84
+ {
85
+ name: 'fat',
86
+ label: 'Fat (g)',
87
+ field: 'fat',
88
+ sortable: true,
89
+ showCustomizedButton: true,
90
+ btnIcon: 'save',
91
+ btnEmit: 'onClickButton',
92
+ dataCy: 'onClickButton',
93
+ btnColor: 'primary'
94
+ },
95
+ {
96
+ name: 'carbs',
97
+ label: 'Carbs (g)',
98
+ field: 'carbs'
99
+ },
100
+ {
101
+ name: 'checked',
102
+ label: 'Checked',
103
+ field: 'carbs',
104
+ sortable: true,
105
+ required: true,
106
+ showCustomizedCheckBox: true,
107
+ checkedIcon: 'check_circle',
108
+ uncheckedIcon: 'cancel',
109
+ checkBoxColorCaseTrue: 'positive',
110
+ checkBoxColorCaseFalse: 'negative',
111
+ checkBoxDataCy: ''
112
+ },
113
+ {
114
+ name: 'protein',
115
+ label: 'Protein (g)',
116
+ field: 'protein',
117
+ sortable: true,
118
+ required: true,
119
+ editable: true,
120
+ showEditIcon: true,
121
+ popupEditEmit: 'onSaveValuePopupEdit',
122
+ popupEditInputtype: 'text',
123
+ popupEditDataCy: '',
124
+ showInputPopupEdit: true
125
+ },
126
+ {
127
+ name: 'sodium',
128
+ label: 'Sodium (mg)',
129
+ field: 'sodium'
130
+ },
131
+ {
132
+ name: 'calcium',
133
+ label: 'Calcium (%)',
134
+ field: 'calcium',
135
+ sortable: true
136
+ },
137
+ {
138
+ name: 'iron',
139
+ label: 'Iron (%)',
140
+ field: 'iron',
141
+ sortable: true
142
+ }
143
+ ],
144
+ rows: [],
145
+ rowsData: [
146
+ {
147
+ name: 'Frozen Yogurt',
148
+ booleanIcon: true,
149
+ available: true,
150
+ calories: 159,
151
+ fat: 6.0,
152
+ carbs: 24,
153
+ checked: false,
154
+ protein: 4.0,
155
+ sodium: 87,
156
+ calcium: '14%',
157
+ iron: '1%'
158
+ },
159
+ {
160
+ name: 'Ice cream sandwich',
161
+ booleanIcon: true,
162
+ available: false,
163
+ calories: 237,
164
+ fat: 9.0,
165
+ carbs: 37,
166
+ checked: false,
167
+ protein: 4.3,
168
+ sodium: 129,
169
+ calcium: '8%',
170
+ iron: '1%'
171
+ },
172
+ {
173
+ name: 'Eclair',
174
+ booleanIcon: true,
175
+ available: true,
176
+ calories: 262,
177
+ fat: 16.0,
178
+ carbs: 23,
179
+ checked: false,
180
+ protein: 6.0,
181
+ sodium: 337,
182
+ calcium: '6%',
183
+ iron: '7%'
184
+ },
185
+ {
186
+ name: 'Cupcake',
187
+ booleanIcon: false,
188
+ available: false,
189
+ calories: 305,
190
+ fat: 3.7,
191
+ carbs: 67,
192
+ checked: false,
193
+ protein: 4.3,
194
+ sodium: 413,
195
+ calcium: '3%',
196
+ iron: '8%'
197
+ },
198
+ {
199
+ name: 'Gingerbread',
200
+ booleanIcon: true,
201
+ available: true,
202
+ calories: 356,
203
+ fat: 16.0,
204
+ carbs: 49,
205
+ checked: false,
206
+ protein: 3.9,
207
+ sodium: 327,
208
+ calcium: '7%',
209
+ iron: '16%'
210
+ },
211
+ {
212
+ name: 'Jelly bean',
213
+ booleanIcon: false,
214
+ available: false,
215
+ calories: 375,
216
+ fat: 0.0,
217
+ carbs: 94,
218
+ checked: true,
219
+ protein: 0.0,
220
+ sodium: 50,
221
+ calcium: '0%',
222
+ iron: '0%'
223
+ },
224
+ {
225
+ name: 'Lollipop',
226
+ booleanIcon: true,
227
+ available: true,
228
+ calories: 392,
229
+ fat: 0.2,
230
+ carbs: 98,
231
+ checked: false,
232
+ protein: 0,
233
+ sodium: 38,
234
+ calcium: '0%',
235
+ iron: '2%'
236
+ },
237
+ {
238
+ name: 'Honeycomb',
239
+ booleanIcon: true,
240
+ available: false,
241
+ calories: 408,
242
+ fat: 3.2,
243
+ carbs: 87,
244
+ checked: true,
245
+ protein: 6.5,
246
+ sodium: 562,
247
+ calcium: '0%',
248
+ iron: '45%'
249
+ },
250
+ {
251
+ name: 'Donut',
252
+ booleanIcon: true,
253
+ available: true,
254
+ calories: 452,
255
+ fat: 25.0,
256
+ carbs: 51,
257
+ checked: false,
258
+ protein: 4.9,
259
+ sodium: 326,
260
+ calcium: '2%',
261
+ iron: '22%'
262
+ },
263
+ {
264
+ name: 'KitKat',
265
+ booleanIcon: false,
266
+ available: false,
267
+ calories: 518,
268
+ fat: 26.0,
269
+ carbs: 65,
270
+ checked: true,
271
+ protein: 7,
272
+ sodium: 54,
273
+ calcium: '12%',
274
+ iron: '6%'
275
+ }
276
+ ],
277
+ visibleColumns: []
278
+ }
279
+ },
280
+ computed: {
281
+ pageLength (): number {
282
+ return (this.totalPage + 1) * this.pageSize
283
+ },
284
+ filter ():object {
285
+ return {
286
+ search: this.store.filterValue,
287
+ forceRender: this.forceRender
288
+ }
289
+ }
290
+ },
291
+ mounted () {
292
+ this.tableStyle = setTableHeight.setTableHeight()
293
+ infiniteScroll.handleInfiniteScrollNewTable(this)
294
+ this.rows = this.rowsData
295
+ this.visibleColumns = this.store.visiblecolumns
296
+ },
297
+ methods: {
298
+ saveSelectedColumns (columns: string []): void {
299
+ this.store.visiblecolumns = columns
300
+ this.visibleColumns = columns
301
+ },
302
+ filterMethod (rows: string | [], terms: { search: string }): object[] | [] {
303
+ return FilterMethod.filter(this, rows, terms)
304
+ },
305
+ onUpdateBasicCheckboxValue (rows: object []) {
306
+ console.log(rows, 'onUpdateBasicCheckboxValue')
307
+ },
308
+ onUpdateCustomizedCheckboxValue (rows: object []) {
309
+ console.log(rows, 'onUpdateCustomizedCheckboxValue')
310
+ },
311
+ setItemNotFound (rows: object []) {
312
+ console.log(rows, 'onClickButton')
313
+ }
314
+ }
315
+ }
316
+ </script>
@@ -4,7 +4,11 @@ const routes: RouteRecordRaw[] = [
4
4
  {
5
5
  path: '/',
6
6
  component: () => import('../layouts/MenuLayout.vue')
7
- }
7
+ },
8
+ {
9
+ path: '/tablePage',
10
+ component: () => import('../pages/TablePage.vue')
11
+ },
8
12
  ]
9
13
 
10
- export default routes
14
+ export default routes
@@ -0,0 +1,9 @@
1
+ import { createPinia } from 'pinia'
2
+ // import piniaPersistedState from 'pinia-plugin-persistedstate'
3
+
4
+ const pinia = createPinia()
5
+
6
+ // // Adiciona o plugin de persistência
7
+ // pinia.use(piniaPersistedState)
8
+
9
+ export default pinia
@@ -0,0 +1,22 @@
1
+ import { defineStore } from 'pinia'
2
+ import { useStorage } from '@vueuse/core'
3
+ export const tableStore = defineStore('tableStore', {
4
+ state: () => ({
5
+ disableScannerButtons: useStorage('counter', false),
6
+ filterValue: useStorage('filter', ''),
7
+ lastFilterValue: useStorage('lastFilterValue', ''),
8
+ visiblecolumns: useStorage('visiblecolumns', [])
9
+ }),
10
+ getters: {
11
+ },
12
+ actions: {
13
+ setFilterValue (val) {
14
+ this.filterValue = val
15
+ },
16
+ cleanTableFilter () {
17
+ this.filterValue = ''
18
+ this.lastFilterValue = ''
19
+ this.disableScannerButtons = false
20
+ }
21
+ }
22
+ })