@things-factory/operato-tools 7.0.1-alpha.3 → 7.0.1-alpha.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- import { html } from 'lit-element'
1
+ import { html } from 'lit'
2
2
 
3
3
  import '@things-factory/component-ui/client/quick-find/quick-find-tabs'
4
4
  import '@things-factory/form-ui'
@@ -9,12 +9,12 @@ import { MetaApi } from '@things-factory/meta-ui/client/utils/meta-api'
9
9
  import { TermsUtil } from '@things-factory/meta-ui/client/utils/terms-util'
10
10
 
11
11
  // Object로 조회 되는 컬럼
12
- const objectTypes = ['object','resource-object', 'resource-code-selector', 'meta-object-selector', 'meta-code-selector'];
13
- // json 설정을 가지는 컬럼
14
- const jsonConfigTypes = ['object', 'select', 'resource-object', 'resource-code-selector', 'meta-object-selector', 'meta-code-selector'];
15
- // json 설정 가이드
12
+ const objectTypes = ['object', 'resource-object', 'resource-code-selector', 'meta-object-selector', 'meta-code-selector']
13
+ // json 설정을 가지는 컬럼
14
+ const jsonConfigTypes = ['object', 'select', 'resource-object', 'resource-code-selector', 'meta-object-selector', 'meta-code-selector']
15
+ // json 설정 가이드
16
16
  const typeConfigGuides = {
17
- 'object' : {
17
+ object: {
18
18
  queryName: '',
19
19
  referenceField: 'Object Mapping Entity reference Field Name',
20
20
  nameField: '',
@@ -27,7 +27,7 @@ const typeConfigGuides = {
27
27
  fields: ['', '']
28
28
  }
29
29
  },
30
- 'resource-object':{
30
+ 'resource-object': {
31
31
  queryName: 'GraphQL query Name',
32
32
  referenceField: 'Object Mapping Entity reference Field Name',
33
33
  nameField: '',
@@ -53,7 +53,7 @@ const typeConfigGuides = {
53
53
  filters: 'filter values [{"name": "parentId", "operator": "eq", "value": "506134f8-8655-47ee-afdc-248b0de2f31c"}]',
54
54
  sorters: 'sort field [{"name": "boxTypeCd", "desc": false}]'
55
55
  },
56
- 'select': {
56
+ select: {
57
57
  type: 'code or scenario or entity',
58
58
  name: 'codeName or scenario Name',
59
59
  values: 'code type display select Array [{"code1","code2"}] OR [{"value":"code1","display":"CODE1"}, {"value":"code2","display":"CODE2"}]',
@@ -72,25 +72,25 @@ const typeConfigGuides = {
72
72
  referenceField: 'Object Mapping Entity reference Field Name',
73
73
  nameField: '',
74
74
  filterFields: '["code","display"] or [{"name":"code1","operator":"eq"},{"name":"display","operator":"eq"}]',
75
- select:[
75
+ select: [
76
76
  { name: '', hidden: true },
77
77
  { name: '', hidden: false }
78
78
  ],
79
79
  filters: 'filter values [{"name": "parentId", "operator": "eq", "value": "506134f8-8655-47ee-afdc-248b0de2f31c"}]',
80
80
  sorters: 'sort field [{"name": "boxTypeCd", "desc": false}]',
81
81
  fieldMap: {
82
- sourceField1 : 'targetField1',
83
- sourceField2 : 'targetField2',
84
- sourceField3 : 'targetField3'
82
+ sourceField1: 'targetField1',
83
+ sourceField2: 'targetField2',
84
+ sourceField3: 'targetField3'
85
85
  }
86
86
  },
87
87
  case_menu: {
88
88
  menu: 'route_name',
89
89
  referenceField: 'Object Mapping Entity reference Field Name',
90
90
  fieldMap: {
91
- sourceField1 : 'targetField1',
92
- sourceField2 : 'targetField2',
93
- sourceField3 : 'targetField3'
91
+ sourceField1: 'targetField1',
92
+ sourceField2: 'targetField2',
93
+ sourceField3: 'targetField3'
94
94
  }
95
95
  }
96
96
  },
@@ -108,17 +108,17 @@ const typeConfigGuides = {
108
108
  filters: 'filter values [{"name": "parentId", "operator": "eq", "value": "506134f8-8655-47ee-afdc-248b0de2f31c"}]',
109
109
  sorters: 'sort field [{"name": "boxTypeCd", "desc": false}]',
110
110
  fieldMap: {
111
- sourceField1 : 'targetField1',
112
- sourceField2 : 'targetField2',
113
- sourceField3 : 'targetField3'
111
+ sourceField1: 'targetField1',
112
+ sourceField2: 'targetField2',
113
+ sourceField3: 'targetField3'
114
114
  }
115
115
  },
116
116
  case_menu: {
117
117
  menu: 'route_name',
118
118
  fieldMap: {
119
- sourceField1 : 'targetField1',
120
- sourceField2 : 'targetField2',
121
- sourceField3 : 'targetField3'
119
+ sourceField1: 'targetField1',
120
+ sourceField2: 'targetField2',
121
+ sourceField3: 'targetField3'
122
122
  }
123
123
  }
124
124
  }
@@ -130,520 +130,523 @@ const typeConfigGuides = {
130
130
  * @author wryang
131
131
  * @description 페이지 생성기 화면의 컬럼 구성 탭 화면
132
132
  */
133
- export const ColumnConfigTabMixin = (baseElement) => class extends baseElement {
134
- /**
135
- * @description 탭 데이터를 탭에 데이터를 설정
136
- ***************************************
137
- * @param {Object} data
138
- */
139
- setColumnConfigTabValues(data) {
140
- data?.forEach((column, index) => {
141
- let rank = index + 1;
142
- column.rank = rank * 10;
143
- column.id = rank;
144
-
145
- if (objectTypes.includes(column.type)) {
146
- if (column.object_opt && !column.selector_args) {
147
- let optString = JSON.stringify(column.object_opt, null, 2);
148
- column.selector_args = { option : optString };
149
- }
133
+ export const ColumnConfigTabMixin = baseElement =>
134
+ class extends baseElement {
135
+ /**
136
+ * @description 탭 데이터를 탭에 데이터를 설정
137
+ ***************************************
138
+ * @param {Object} data
139
+ */
140
+ setColumnConfigTabValues(data) {
141
+ data?.forEach((column, index) => {
142
+ let rank = index + 1
143
+ column.rank = rank * 10
144
+ column.id = rank
150
145
 
151
- } else if (column.type == 'select') {
152
- if (column.select_opt && !column.selector_args) {
153
- let optString = JSON.stringify(column.select_opt, null, 2);
154
- column.selector_args = { option : optString };
146
+ if (objectTypes.includes(column.type)) {
147
+ if (column.object_opt && !column.selector_args) {
148
+ let optString = JSON.stringify(column.object_opt, null, 2)
149
+ column.selector_args = { option: optString }
150
+ }
151
+ } else if (column.type == 'select') {
152
+ if (column.select_opt && !column.selector_args) {
153
+ let optString = JSON.stringify(column.select_opt, null, 2)
154
+ column.selector_args = { option: optString }
155
+ }
155
156
  }
156
- }
157
- })
157
+ })
158
158
 
159
- this.viewColumnData = data;
160
- this.columnTabGrist?.fetch();
161
- }
159
+ this.viewColumnData = data
160
+ this.columnTabGrist?.fetch()
161
+ }
162
162
 
163
- /**
164
- * @description 컬럼 탭에 대한 컬럼 설정 정보를 리턴
165
- ********************************************
166
- * @returns {Object}
167
- */
168
- getColumnConfigTabValues() {
169
- // 기본 return object
170
- let retObject = {
171
- grid_column: [],
172
- grid: {
173
- list: {
174
- fields: [],
175
- details: [],
176
- thumbnail: ''
177
- },
178
- option: {
179
- sorters: []
163
+ /**
164
+ * @description 컬럼 탭에 대한 컬럼 설정 정보를 리턴
165
+ ********************************************
166
+ * @returns {Object}
167
+ */
168
+ getColumnConfigTabValues() {
169
+ // 기본 return object
170
+ let retObject = {
171
+ grid_column: [],
172
+ grid: {
173
+ list: {
174
+ fields: [],
175
+ details: [],
176
+ thumbnail: ''
177
+ },
178
+ option: {
179
+ sorters: []
180
+ }
180
181
  }
181
182
  }
182
- };
183
183
 
184
- // grid에서 데이터 가져오기
185
- let gridValue = this.getElementValueById('column-tab-grid');
184
+ // grid에서 데이터 가져오기
185
+ let gridValue = this.getElementValueById('column-tab-grid')
186
186
 
187
- if (gridValue) {
188
- // rank 값으로 정렬 후 데이터 가공
189
- this.sortRecordByRank(gridValue)?.forEach(x => {
190
- let {
191
- name = undefined,
192
- header = undefined,
193
- type = 'string',
194
- editable = false,
195
- sortable = false,
196
- mandatory = false,
197
- exportable = false,
198
- rep_field = false,
199
- detail_field = false,
200
- thumbnail_field = false,
201
- hidden = false,
202
- accumulator = undefined,
203
- align = 'left',
204
- width = 0,
205
- format = undefined,
206
- change_event_handler = undefined,
207
- default_value = undefined,
208
- selector_args = undefined,
209
- fixed = false
210
- } = x;
187
+ if (gridValue) {
188
+ // rank 값으로 정렬 후 데이터 가공
189
+ this.sortRecordByRank(gridValue)?.forEach(x => {
190
+ let {
191
+ name = undefined,
192
+ header = undefined,
193
+ type = 'string',
194
+ editable = false,
195
+ sortable = false,
196
+ mandatory = false,
197
+ exportable = false,
198
+ rep_field = false,
199
+ detail_field = false,
200
+ thumbnail_field = false,
201
+ hidden = false,
202
+ accumulator = undefined,
203
+ align = 'left',
204
+ width = 0,
205
+ format = undefined,
206
+ change_event_handler = undefined,
207
+ default_value = undefined,
208
+ selector_args = undefined,
209
+ fixed = false
210
+ } = x
211
211
 
212
- if (!name) return;
212
+ if (!name) return
213
213
 
214
- let columnObj = {
215
- name: name,
216
- header: header ? header : name,
217
- type: type,
218
- editable: editable,
219
- sortable: sortable,
220
- mandatory: mandatory,
221
- exportable: exportable,
222
- hidden: hidden,
223
- align: align,
224
- width: width,
225
- format: format,
226
- change_event_handler: change_event_handler,
227
- default_value: default_value,
228
- fixed: fixed
229
- }
214
+ let columnObj = {
215
+ name: name,
216
+ header: header ? header : name,
217
+ type: type,
218
+ editable: editable,
219
+ sortable: sortable,
220
+ mandatory: mandatory,
221
+ exportable: exportable,
222
+ hidden: hidden,
223
+ align: align,
224
+ width: width,
225
+ format: format,
226
+ change_event_handler: change_event_handler,
227
+ default_value: default_value,
228
+ fixed: fixed
229
+ }
230
230
 
231
- // 누적 계산 처리
232
- if(accumulator) {
233
- columnObj.accumulator = accumulator;
234
- }
231
+ // 누적 계산 처리
232
+ if (accumulator) {
233
+ columnObj.accumulator = accumulator
234
+ }
235
235
 
236
- // 셀렉터 관련 정보 설정
237
- if (selector_args && typeof selector_args === 'string') {
238
- selector_args = JSON.parse(selector_args);
239
- }
236
+ // 셀렉터 관련 정보 설정
237
+ if (selector_args && typeof selector_args === 'string') {
238
+ selector_args = JSON.parse(selector_args)
239
+ }
240
240
 
241
- // object / select의 경우 args 값 설정
242
- if (jsonConfigTypes.includes(type) && selector_args && selector_args.option) {
243
- columnObj[type == 'select' ? 'select_opt' : 'object_opt'] = JSON.parse(selector_args.option);
244
- }
241
+ // object / select의 경우 args 값 설정
242
+ if (jsonConfigTypes.includes(type) && selector_args && selector_args.option) {
243
+ columnObj[type == 'select' ? 'select_opt' : 'object_opt'] = JSON.parse(selector_args.option)
244
+ }
245
245
 
246
- retObject.grid_column.push(columnObj);
246
+ retObject.grid_column.push(columnObj)
247
247
 
248
- // 대표 필드 여부
249
- if (rep_field) {
250
- retObject.grid.list.fields.push(name);
251
- }
248
+ // 대표 필드 여부
249
+ if (rep_field) {
250
+ retObject.grid.list.fields.push(name)
251
+ }
252
252
 
253
- // 상세 필드 여부
254
- if (detail_field) {
255
- retObject.grid.list.details.push(name);
256
- }
253
+ // 상세 필드 여부
254
+ if (detail_field) {
255
+ retObject.grid.list.details.push(name)
256
+ }
257
257
 
258
- // 썸네일 여부
259
- if (thumbnail_field) {
260
- retObject.grid.list.thumbnail = name;
261
- }
262
- })
258
+ // 썸네일 여부
259
+ if (thumbnail_field) {
260
+ retObject.grid.list.thumbnail = name
261
+ }
262
+ })
263
263
 
264
- // sort 필드 : sort_rank로 정렬 후 데이터 가공
265
- this.sortRecordByField(gridValue.filter(x => x.sort_rank && x.sort_rank > 0), 'sort_rank').forEach(x => {
266
- let { name = undefined, sort_desc = false } = x;
267
- if (!name) return;
264
+ // sort 필드 : sort_rank로 정렬 후 데이터 가공
265
+ this.sortRecordByField(
266
+ gridValue.filter(x => x.sort_rank && x.sort_rank > 0),
267
+ 'sort_rank'
268
+ ).forEach(x => {
269
+ let { name = undefined, sort_desc = false } = x
270
+ if (!name) return
268
271
 
269
- retObject.grid.option.sorters.push({
270
- name: name,
271
- desc: sort_desc
272
+ retObject.grid.option.sorters.push({
273
+ name: name,
274
+ desc: sort_desc
275
+ })
272
276
  })
273
- })
274
- }
277
+ }
275
278
 
276
- return retObject;
277
- }
279
+ return retObject
280
+ }
278
281
 
279
- /**
280
- * @description 컬럼 설정 탭 렌더링
281
- *******************************
282
- * @returns {HTML}
283
- */
284
- renderColumnConfigTab() {
285
- return html`
286
- <ox-grist auto-fetch id="column-tab-grid" .config=${this.columnTabGridConfig} .mode='GRID'
287
- .fetchHandler=${this.fetchColumnTabHandler.bind(this)}>
282
+ /**
283
+ * @description 컬럼 설정 탭 렌더링
284
+ *******************************
285
+ * @returns {HTML}
286
+ */
287
+ renderColumnConfigTab() {
288
+ return html` <ox-grist auto-fetch id="column-tab-grid" .config=${this.columnTabGridConfig} .mode="GRID" .fetchHandler=${this.fetchColumnTabHandler.bind(this)}>
288
289
  </ox-grist>`
289
- }
290
+ }
290
291
 
291
- /**
292
- * @description 컬럼 탭 엘리먼트 추출
293
- *********************************
294
- * @returns {HTML}
295
- */
296
- get columnTabGrist() {
297
- return this.shadowRoot.querySelector('#column-tab-grid')
298
- }
292
+ /**
293
+ * @description 컬럼 탭 엘리먼트 추출
294
+ *********************************
295
+ * @returns {HTML}
296
+ */
297
+ get columnTabGrist() {
298
+ return this.shadowRoot.querySelector('#column-tab-grid')
299
+ }
299
300
 
300
- /**
301
- * @description 데이터 조회 결과
302
- *****************************
303
- * @returns {Object}
304
- */
305
- async fetchColumnTabHandler() {
306
- return {
307
- total: 0,
308
- records: this.viewColumnData || []
301
+ /**
302
+ * @description 데이터 조회 결과
303
+ *****************************
304
+ * @returns {Object}
305
+ */
306
+ async fetchColumnTabHandler() {
307
+ return {
308
+ total: 0,
309
+ records: this.viewColumnData || []
310
+ }
309
311
  }
310
- }
311
312
 
312
- /**
313
- * @description 컬럼 설정 탭에 설정 세팅
314
- ***********************************
315
- */
316
- async setColumnConfigTabConfig() {
317
- // 컬럼 리스트
318
- let colTypeList = await MetaApi.getCodeSelectorData('GRIST_COLUMN_TYPES');
313
+ /**
314
+ * @description 컬럼 설정 탭에 설정 세팅
315
+ ***********************************
316
+ */
317
+ async setColumnConfigTabConfig() {
318
+ // 컬럼 리스트
319
+ let colTypeList = await MetaApi.getCodeSelectorData('GRIST_COLUMN_TYPES')
319
320
 
320
- // 그리드 설정
321
- this.columnTabGridConfig = {
322
- rows: MetaApi.getGristSelectableConfig(true),
323
- pagination: { infinite: true },
324
- sorters: [{ name: 'rank', desc: false }],
325
- appendable: true,
326
- columns: [
327
- ...MetaApi.getGristGuttersConfig(false, false),
328
- {
329
- type: 'gutter', gutterName: 'button', icon: 'delete',
330
- handlers: {
331
- click: (_columns, _data, _column, record, _rowIndex) => {
332
- if (record.id) {
333
- this.deleteRow(this.columnTabGrist, record);
321
+ // 그리드 설정
322
+ this.columnTabGridConfig = {
323
+ rows: MetaApi.getGristSelectableConfig(true),
324
+ pagination: { infinite: true },
325
+ sorters: [{ name: 'rank', desc: false }],
326
+ appendable: true,
327
+ columns: [
328
+ ...MetaApi.getGristGuttersConfig(false, false),
329
+ {
330
+ type: 'gutter',
331
+ gutterName: 'button',
332
+ icon: 'delete',
333
+ handlers: {
334
+ click: (_columns, _data, _column, record, _rowIndex) => {
335
+ if (record.id) {
336
+ this.deleteRow(this.columnTabGrist, record)
337
+ }
334
338
  }
335
339
  }
336
340
  },
337
- },
338
- {
339
- type: 'integer',
340
- name: 'rank',
341
- header: TermsUtil.tLabel('rank'),
342
- sortable: false,
343
- width: 50,
344
- record: {
345
- align: 'right',
346
- editable: true,
347
- mandatory: true
348
- }
349
- },
350
- {
351
- type: 'string',
352
- name: 'id',
353
- hidden: true
354
- },
355
- {
356
- type: 'string',
357
- name: 'name',
358
- header: TermsUtil.tLabel('name'),
359
- sortable: false,
360
- width: 135,
361
- record: {
362
- align: 'left',
363
- editable: true,
364
- mandatory: true
365
- }
366
- },
367
- {
368
- type: 'string',
369
- name: 'header',
370
- header: TermsUtil.tLabel('header'),
371
- sortable: false,
372
- width: 135,
373
- record: {
374
- align: 'left',
375
- editable: true,
376
- mandatory: true
377
- }
378
- },
379
- {
380
- type: 'string',
381
- name: 'display',
382
- header: TermsUtil.tLabel('display'),
383
- sortable: false,
384
- width: 135,
385
- record: {
386
- align: 'left',
387
- editable: false,
388
- mandatory: false,
389
- renderer: (value, column, record, rowIndex, field) => {
390
- return record && record.header ? TermsUtil.tLabel(record.header) : '';
341
+ {
342
+ type: 'integer',
343
+ name: 'rank',
344
+ header: TermsUtil.tLabel('rank'),
345
+ sortable: false,
346
+ width: 50,
347
+ record: {
348
+ align: 'right',
349
+ editable: true,
350
+ mandatory: true
391
351
  }
392
- }
393
- },
394
- {
395
- type: 'select',
396
- name: 'type',
397
- header: TermsUtil.tLabel('type'),
398
- sortable: false,
399
- width: 100,
400
- record: {
401
- align: 'left',
402
- editable: true,
403
- mandatory: true,
404
- options: colTypeList
405
- }
406
- },
407
- {
408
- type: 'boolean',
409
- name: 'editable',
410
- header: TermsUtil.tLabel('editable'),
411
- sortable: false,
412
- width: 80,
413
- record: {
414
- align: 'center',
415
- mandatory: false,
416
- editable: true
417
- }
418
- },
419
- {
420
- type: 'boolean',
421
- name: 'sortable',
422
- header: TermsUtil.tLabel('sortable'),
423
- sortable: false,
424
- width: 80,
425
- record: {
426
- align: 'center',
427
- mandatory: false,
428
- editable: true
429
- }
430
- },
431
- {
432
- type: 'boolean',
433
- name: 'mandatory',
434
- header: TermsUtil.tLabel('mandatory'),
435
- sortable: false,
436
- width: 85,
437
- record: {
438
- align: 'center',
439
- mandatory: false,
440
- editable: true
441
- }
442
- },
443
- {
444
- type: 'boolean',
445
- name: 'exportable',
446
- header: TermsUtil.tLabel('exportable'),
447
- sortable: false,
448
- width: 90,
449
- record: {
450
- align: 'center',
451
- mandatory: false,
452
- editable: true
453
- }
454
- },
455
- {
456
- type: 'boolean',
457
- name: 'rep_field',
458
- header: TermsUtil.tLabel('rep_field'),
459
- sortable: false,
460
- width: 80,
461
- record: {
462
- align: 'center',
463
- mandatory: false,
464
- editable: true
465
- }
466
- },
467
- {
468
- type: 'boolean',
469
- name: 'detail_field',
470
- header: TermsUtil.tLabel('detail_field'),
471
- sortable: false,
472
- width: 80,
473
- record: {
474
- align: 'center',
475
- mandatory: false,
476
- editable: true
477
- }
478
- },
479
- {
480
- type: 'boolean',
481
- name: 'fixed',
482
- header: TermsUtil.tLabel('fixed_column'),
483
- sortable: false,
484
- width: 80,
485
- record: {
486
- align: 'center',
487
- mandatory: false,
488
- editable: true
489
- }
490
- },
491
- {
492
- type: 'boolean',
493
- name: 'thumbnail_field',
494
- header: TermsUtil.tLabel('thumbnail_field'),
495
- sortable: false,
496
- width: 70,
497
- record: {
498
- align: 'center',
499
- mandatory: false,
500
- editable: true
501
- }
502
- },
503
- {
504
- type: 'boolean',
505
- name: 'hidden',
506
- header: TermsUtil.tLabel('hidden'),
507
- sortable: false,
508
- width: 55,
509
- record: {
510
- align: 'center',
511
- mandatory: false,
512
- editable: true
513
- }
514
- },
515
- {
516
- type: 'select',
517
- name: 'accumulator',
518
- header: TermsUtil.tLabel('accumulator'),
519
- sortable: false,
520
- width: 70,
521
- record: {
522
- align: 'center',
523
- editable: true,
524
- mandatory: false,
525
- options: ['', 'sum', 'avg', 'count', 'min', 'max']
526
- }
527
- },
528
- {
529
- type: 'select',
530
- name: 'align',
531
- header: TermsUtil.tLabel('align'),
532
- sortable: false,
533
- width: 55,
534
- record: {
535
- align: 'left',
536
- editable: true,
537
- mandatory: false,
538
- options: ['', 'left', 'center', 'right']
539
- }
540
- },
541
- {
542
- type: 'integer',
543
- name: 'width',
544
- header: TermsUtil.tLabel('width'),
545
- sortable: false,
546
- width: 55,
547
- record: {
548
- editable: true,
549
- mandatory: true,
550
- align: 'right'
551
- }
552
- },
553
- {
554
- type: 'integer',
555
- name: 'sort_rank',
556
- header: TermsUtil.tLabel('sort_rank'),
557
- sortable: false,
558
- width: 80,
559
- record: {
560
- editable: true,
561
- mandatory: true,
562
- align: 'right'
563
- }
564
- },
565
- {
566
- type: 'boolean',
567
- name: 'sort_desc',
568
- header: TermsUtil.tLabel('reverse_sort'),
569
- sortable: false,
570
- width: 65,
571
- record: {
572
- align: 'center',
573
- mandatory: false,
574
- editable: true
575
- }
576
- },
577
- {
578
- type: 'string',
579
- name: 'format',
580
- header: TermsUtil.tLabel('format'),
581
- sortable: false,
582
- width: 135,
583
- record: {
584
- align: 'left',
585
- editable: true,
586
- mandatory: false
587
- }
588
- },
589
- {
590
- type: 'string',
591
- name: 'default_value',
592
- header: TermsUtil.tLabel('default_value'),
593
- sortable: false,
594
- width: 135,
595
- record: {
596
- align: 'left',
597
- editable: true,
598
- mandatory: false
599
- }
600
- },
601
- {
602
- type: 'string',
603
- name: 'change_event_handler',
604
- header: TermsUtil.tLabel('change-event-handler'),
605
- sortable: false,
606
- width: 150,
607
- record: {
608
- align: 'left',
609
- mandatory: false,
610
- editable: true
611
- }
612
- },
613
- {
614
- type: 'parameters',
615
- name: 'selector_args',
616
- header: TermsUtil.tLabel('selector_args'),
617
- sortable: false,
618
- width: 150,
619
- record: {
620
- align: 'left',
621
- editable: true,
622
- mandatory: false,
623
- renderer: (value, column, record, rowIndex, field) => {
624
- if (!record.selector_args) {
625
- let guideObject = typeConfigGuides[record.type];
626
- if(guideObject) {
627
- record.selector_args = {
628
- option: JSON.stringify(guideObject, null, 2)
629
- };
630
- } else {
631
- if (jsonConfigTypes.includes(record.type) == false) {
632
- record.selector_args = undefined;
352
+ },
353
+ {
354
+ type: 'string',
355
+ name: 'id',
356
+ hidden: true
357
+ },
358
+ {
359
+ type: 'string',
360
+ name: 'name',
361
+ header: TermsUtil.tLabel('name'),
362
+ sortable: false,
363
+ width: 135,
364
+ record: {
365
+ align: 'left',
366
+ editable: true,
367
+ mandatory: true
368
+ }
369
+ },
370
+ {
371
+ type: 'string',
372
+ name: 'header',
373
+ header: TermsUtil.tLabel('header'),
374
+ sortable: false,
375
+ width: 135,
376
+ record: {
377
+ align: 'left',
378
+ editable: true,
379
+ mandatory: true
380
+ }
381
+ },
382
+ {
383
+ type: 'string',
384
+ name: 'display',
385
+ header: TermsUtil.tLabel('display'),
386
+ sortable: false,
387
+ width: 135,
388
+ record: {
389
+ align: 'left',
390
+ editable: false,
391
+ mandatory: false,
392
+ renderer: (value, column, record, rowIndex, field) => {
393
+ return record && record.header ? TermsUtil.tLabel(record.header) : ''
394
+ }
395
+ }
396
+ },
397
+ {
398
+ type: 'select',
399
+ name: 'type',
400
+ header: TermsUtil.tLabel('type'),
401
+ sortable: false,
402
+ width: 100,
403
+ record: {
404
+ align: 'left',
405
+ editable: true,
406
+ mandatory: true,
407
+ options: colTypeList
408
+ }
409
+ },
410
+ {
411
+ type: 'boolean',
412
+ name: 'editable',
413
+ header: TermsUtil.tLabel('editable'),
414
+ sortable: false,
415
+ width: 80,
416
+ record: {
417
+ align: 'center',
418
+ mandatory: false,
419
+ editable: true
420
+ }
421
+ },
422
+ {
423
+ type: 'boolean',
424
+ name: 'sortable',
425
+ header: TermsUtil.tLabel('sortable'),
426
+ sortable: false,
427
+ width: 80,
428
+ record: {
429
+ align: 'center',
430
+ mandatory: false,
431
+ editable: true
432
+ }
433
+ },
434
+ {
435
+ type: 'boolean',
436
+ name: 'mandatory',
437
+ header: TermsUtil.tLabel('mandatory'),
438
+ sortable: false,
439
+ width: 85,
440
+ record: {
441
+ align: 'center',
442
+ mandatory: false,
443
+ editable: true
444
+ }
445
+ },
446
+ {
447
+ type: 'boolean',
448
+ name: 'exportable',
449
+ header: TermsUtil.tLabel('exportable'),
450
+ sortable: false,
451
+ width: 90,
452
+ record: {
453
+ align: 'center',
454
+ mandatory: false,
455
+ editable: true
456
+ }
457
+ },
458
+ {
459
+ type: 'boolean',
460
+ name: 'rep_field',
461
+ header: TermsUtil.tLabel('rep_field'),
462
+ sortable: false,
463
+ width: 80,
464
+ record: {
465
+ align: 'center',
466
+ mandatory: false,
467
+ editable: true
468
+ }
469
+ },
470
+ {
471
+ type: 'boolean',
472
+ name: 'detail_field',
473
+ header: TermsUtil.tLabel('detail_field'),
474
+ sortable: false,
475
+ width: 80,
476
+ record: {
477
+ align: 'center',
478
+ mandatory: false,
479
+ editable: true
480
+ }
481
+ },
482
+ {
483
+ type: 'boolean',
484
+ name: 'fixed',
485
+ header: TermsUtil.tLabel('fixed_column'),
486
+ sortable: false,
487
+ width: 80,
488
+ record: {
489
+ align: 'center',
490
+ mandatory: false,
491
+ editable: true
492
+ }
493
+ },
494
+ {
495
+ type: 'boolean',
496
+ name: 'thumbnail_field',
497
+ header: TermsUtil.tLabel('thumbnail_field'),
498
+ sortable: false,
499
+ width: 70,
500
+ record: {
501
+ align: 'center',
502
+ mandatory: false,
503
+ editable: true
504
+ }
505
+ },
506
+ {
507
+ type: 'boolean',
508
+ name: 'hidden',
509
+ header: TermsUtil.tLabel('hidden'),
510
+ sortable: false,
511
+ width: 55,
512
+ record: {
513
+ align: 'center',
514
+ mandatory: false,
515
+ editable: true
516
+ }
517
+ },
518
+ {
519
+ type: 'select',
520
+ name: 'accumulator',
521
+ header: TermsUtil.tLabel('accumulator'),
522
+ sortable: false,
523
+ width: 70,
524
+ record: {
525
+ align: 'center',
526
+ editable: true,
527
+ mandatory: false,
528
+ options: ['', 'sum', 'avg', 'count', 'min', 'max']
529
+ }
530
+ },
531
+ {
532
+ type: 'select',
533
+ name: 'align',
534
+ header: TermsUtil.tLabel('align'),
535
+ sortable: false,
536
+ width: 55,
537
+ record: {
538
+ align: 'left',
539
+ editable: true,
540
+ mandatory: false,
541
+ options: ['', 'left', 'center', 'right']
542
+ }
543
+ },
544
+ {
545
+ type: 'integer',
546
+ name: 'width',
547
+ header: TermsUtil.tLabel('width'),
548
+ sortable: false,
549
+ width: 55,
550
+ record: {
551
+ editable: true,
552
+ mandatory: true,
553
+ align: 'right'
554
+ }
555
+ },
556
+ {
557
+ type: 'integer',
558
+ name: 'sort_rank',
559
+ header: TermsUtil.tLabel('sort_rank'),
560
+ sortable: false,
561
+ width: 80,
562
+ record: {
563
+ editable: true,
564
+ mandatory: true,
565
+ align: 'right'
566
+ }
567
+ },
568
+ {
569
+ type: 'boolean',
570
+ name: 'sort_desc',
571
+ header: TermsUtil.tLabel('reverse_sort'),
572
+ sortable: false,
573
+ width: 65,
574
+ record: {
575
+ align: 'center',
576
+ mandatory: false,
577
+ editable: true
578
+ }
579
+ },
580
+ {
581
+ type: 'string',
582
+ name: 'format',
583
+ header: TermsUtil.tLabel('format'),
584
+ sortable: false,
585
+ width: 135,
586
+ record: {
587
+ align: 'left',
588
+ editable: true,
589
+ mandatory: false
590
+ }
591
+ },
592
+ {
593
+ type: 'string',
594
+ name: 'default_value',
595
+ header: TermsUtil.tLabel('default_value'),
596
+ sortable: false,
597
+ width: 135,
598
+ record: {
599
+ align: 'left',
600
+ editable: true,
601
+ mandatory: false
602
+ }
603
+ },
604
+ {
605
+ type: 'string',
606
+ name: 'change_event_handler',
607
+ header: TermsUtil.tLabel('change-event-handler'),
608
+ sortable: false,
609
+ width: 150,
610
+ record: {
611
+ align: 'left',
612
+ mandatory: false,
613
+ editable: true
614
+ }
615
+ },
616
+ {
617
+ type: 'parameters',
618
+ name: 'selector_args',
619
+ header: TermsUtil.tLabel('selector_args'),
620
+ sortable: false,
621
+ width: 150,
622
+ record: {
623
+ align: 'left',
624
+ editable: true,
625
+ mandatory: false,
626
+ renderer: (value, column, record, rowIndex, field) => {
627
+ if (!record.selector_args) {
628
+ let guideObject = typeConfigGuides[record.type]
629
+ if (guideObject) {
630
+ record.selector_args = {
631
+ option: JSON.stringify(guideObject, null, 2)
632
+ }
633
+ } else {
634
+ if (jsonConfigTypes.includes(record.type) == false) {
635
+ record.selector_args = undefined
636
+ }
633
637
  }
634
638
  }
639
+ return getRenderer('json5')(value, column, record, rowIndex, field)
640
+ },
641
+ options: (value, column, record, row, field) => {
642
+ let { name, help } = { name: TermsUtil.tLabel('selector_args'), help: '' }
643
+ let spec = [{ label: 'script', name: 'option', type: 'textarea' }]
644
+ const context = this.columnTabGrist
645
+ return { name, spec, help, context }
635
646
  }
636
- return getRenderer('json5')(value, column, record, rowIndex, field)
637
- },
638
- options: (value, column, record, row, field) => {
639
- let { name, help } = { name: TermsUtil.tLabel('selector_args'), help: '' };
640
- let spec = [{ label: 'script', name: 'option', type: 'textarea' }];
641
- const context = this.columnTabGrist
642
- return { name, spec, help, context }
643
647
  }
644
648
  }
645
- }
646
- ]
649
+ ]
650
+ }
647
651
  }
648
652
  }
649
- }