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

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.
@@ -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
- }