@mixd-id/web-scaffold 0.1.230406151 → 0.1.230406153

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.230406151",
4
+ "version": "0.1.230406153",
5
5
  "scripts": {
6
6
  "dev": "vite serve",
7
7
  "build": "vite build",
@@ -115,7 +115,6 @@
115
115
  <VirtualGrid v-else-if="computedViewType === 'grid'"
116
116
  :items="items"
117
117
  :column="gridColumn"
118
- :gap="gridGap"
119
118
  class="flex-1"
120
119
  ref="table1"
121
120
  :opt-bar="optBar"
@@ -740,7 +739,7 @@ export default{
740
739
  }
741
740
 
742
741
  if(this.$screenPrefix.value === ''){
743
- return 'gap-1'
742
+ return 'gap-0'
744
743
  }
745
744
 
746
745
  return this.config.gridGap
@@ -17,6 +17,8 @@ const floor = (num, precision = 0) => {
17
17
  }
18
18
 
19
19
  const ftWildcard = (key) => {
20
+ if(key.indexOf('/') >= 0) return key
21
+
20
22
  const term = key.replace(/[\-\+\<\>\@\(\)\~]/, ' ', 'gi')
21
23
 
22
24
  const searchTerms = []
@@ -1,9 +1,8 @@
1
1
  const { Op } = module.parent.require('sequelize')
2
2
  const Sequelize = module.parent.require('sequelize')
3
- const dayjs = require("dayjs");
4
- const Exceljs = require("exceljs");
5
- const { getPresetSortWhereParams } = require("./helpers");
6
- const { sleep } = require('@mixd-id/web-scaffold/helpers')
3
+ const dayjs = require("dayjs")
4
+ const Exceljs = require("exceljs")
5
+ const { getPresetSortWhereParams } = require("./helpers")
7
6
 
8
7
  let ListPage1 = {
9
8
 
@@ -33,25 +32,25 @@ let ListPage1 = {
33
32
  for(let i = 0 ; i < currentPreset.presets.length ; i++){
34
33
 
35
34
  Object.assign({
36
- name: 'Default',
37
- columns: [],
38
- sorts: [],
39
- filters: [],
40
- summaries: [],
41
- },
35
+ name: 'Default',
36
+ columns: [],
37
+ sorts: [],
38
+ filters: [],
39
+ summaries: [],
40
+ },
42
41
  currentPreset.presets[i])
43
42
 
44
43
  if(currentPreset.presets[i].summaries){
45
44
  for(let j = 0 ; j < currentPreset.presets[i].summaries.length ; j++){
46
45
 
47
46
  Object.assign({
48
- map: {
49
- mapRadius: 16,
50
- mapType: "heatmap",
51
- zoom: 7
52
- }
53
- },
54
- currentPreset.presets[i].summaries[j])
47
+ map: {
48
+ mapRadius: 16,
49
+ mapType: "heatmap",
50
+ zoom: 7
51
+ }
52
+ },
53
+ currentPreset.presets[i].summaries[j])
55
54
  }
56
55
  }
57
56
  }
@@ -1330,7 +1329,7 @@ let ListPage1 = {
1330
1329
  default:
1331
1330
  items.forEach((item) => {
1332
1331
  if(!('operator' in item) ||
1333
- ([ 'startsWith', 'endsWith', 'contains', '=' ].includes(item.operator) && !'value' in item))
1332
+ ([ 'startsWith', 'endsWith', 'contains', '=' ].includes(item.operator) && !'value' in item))
1334
1333
  return
1335
1334
 
1336
1335
  const operator = item.operator
@@ -2,7 +2,7 @@ const { Op } = module.parent.require('sequelize')
2
2
  const Sequelize = module.parent.require('sequelize')
3
3
  const dayjs = require("dayjs");
4
4
  const Exceljs = require("exceljs");
5
- const { getPresetSortWhereParams } = require("./helpers");
5
+ const { getPresetSortWhereParams, ftWildcard } = require("./helpers");
6
6
 
7
7
  let ListView = {
8
8
 
@@ -45,7 +45,6 @@ let ListView = {
45
45
  async loadSummary(params, loadResults){
46
46
 
47
47
  if(!this.conn){
48
- console.error('Unable to load summary, connection not found')
49
48
  return
50
49
  }
51
50
 
@@ -110,7 +109,7 @@ let ListView = {
110
109
  const sheet = workbook.addWorksheet('Export ' + this.name);
111
110
  sheet.columns = columns
112
111
 
113
- let where = {}
112
+ let where = []
114
113
  let replacements = []
115
114
  let order = [
116
115
  [ 'updatedAt', 'desc' ],
@@ -147,11 +146,23 @@ let ListView = {
147
146
  }
148
147
  attributes = Object.keys(attributes)
149
148
 
150
- if(preset.filters){
149
+ if(preset.search && typeof this.searchFn === 'function'){
150
+ const { where:presetWhere, replacements:presetReplacements } = await this.searchFn(preset) ?? {}
151
+ if(presetWhere){
152
+ where.push(presetWhere)
153
+ replacements = replacements.concat(presetReplacements ?? [])
154
+ }
155
+ }
156
+ else if(preset.filters){
151
157
  const { where:presetWhere } = this.getPresetFilterParams(preset)
152
- where = {
153
- ...where,
154
- ...presetWhere
158
+ where.push(presetWhere)
159
+ }
160
+
161
+ if(typeof this.filterFn === 'function'){
162
+ const { where:filterWhere, replacements:filterReplacements } = await this.filterFn(preset) ?? {}
163
+ if(filterWhere){
164
+ where.push(filterWhere)
165
+ replacements = replacements.concat(filterReplacements ?? [])
155
166
  }
156
167
  }
157
168
 
@@ -162,21 +173,10 @@ let ListView = {
162
173
  }
163
174
  }
164
175
 
165
- if(preset.search){
166
- const tableName = this.model.name
167
- where = {
168
- ...where,
169
- [Op.and]: Sequelize.literal(`MATCH(\`${tableName}\`.tag) AGAINST (? IN BOOLEAN MODE)`)
170
- }
171
- replacements.push(preset.search)
172
- }
173
-
174
- if(this.downloadFilters){
175
- await this.downloadFilters(params, where)
176
- }
177
-
178
176
  const rows = await this.model.findAll({
179
- where,
177
+ where: {
178
+ [Op.and]: where
179
+ },
180
180
  attributes: {
181
181
  ...attributes,
182
182
  include: attributeIncludes
@@ -237,7 +237,7 @@ let ListView = {
237
237
  const { afterItem, itemsPerPage = this.itemsPerPage ?? 24 } = params
238
238
 
239
239
  const { preset = {} } = params
240
- let where = {}
240
+ let where = []
241
241
  let replacements = []
242
242
  let order = [
243
243
  [ 'updatedAt', 'desc' ],
@@ -281,26 +281,23 @@ let ListView = {
281
281
  }
282
282
  attributes = Object.keys(attributes)
283
283
 
284
- if(preset.search && modelAttributes['tag']){
285
- const tableName = this.model.name
286
- where = {
287
- ...where,
288
- [Op.and]: Sequelize.literal(`MATCH(\`${tableName}\`.tag) AGAINST (? IN BOOLEAN MODE)`)
284
+ if(preset.search && typeof this.searchFn === 'function'){
285
+ const { where:presetWhere, replacements:presetReplacements } = await this.searchFn(preset) ?? {}
286
+ if(presetWhere){
287
+ where.push(presetWhere)
288
+ replacements = replacements.concat(presetReplacements ?? [])
289
289
  }
290
- replacements.push(preset.search)
291
290
  }
292
291
  else if(preset.filters){
293
292
  const { where:presetWhere } = this.getPresetFilterParams(preset, includes)
294
- where = {
295
- ...where,
296
- ...presetWhere
297
- }
293
+ where.push(presetWhere)
298
294
  }
299
295
 
300
- if(typeof this['loadFilters'] === 'function'){
301
- where = {
302
- ...where,
303
- ...(await this['loadFilters'](params) ?? {})
296
+ if(typeof this.filterFn === 'function'){
297
+ const { where:filterWhere, replacements:filterReplacements } = await this.filterFn(preset) ?? {}
298
+ if(filterWhere){
299
+ where.push(filterWhere)
300
+ replacements = replacements.concat(filterReplacements ?? [])
304
301
  }
305
302
  }
306
303
 
@@ -313,15 +310,14 @@ let ListView = {
313
310
 
314
311
  if(afterItem){
315
312
  const sortWhere = getPresetSortWhereParams(order, afterItem)
316
- where = {
317
- ...where,
318
- ...sortWhere
319
- }
313
+ where.push(sortWhere)
320
314
  }
321
315
 
322
316
  let derivedSql
323
317
  let { rows:items, count } = await this.model.findAndCountAll({
324
- where,
318
+ where: {
319
+ [Op.and]: where
320
+ },
325
321
  attributes: [
326
322
  ...attributes,
327
323
  ...attributeIncludes