@things-factory/meta-ui 8.0.0 → 9.0.0-beta.3
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/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/service-util.d.ts +2 -2
- package/dist-client/utils/service-util.js +4 -4
- package/dist-client/utils/service-util.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +24 -24
- package/client/bootstrap.ts +0 -170
- package/client/component/filter/filter-form-meta-code-select.ts +0 -102
- package/client/component/filter/filter-form-meta-object-select.ts +0 -107
- package/client/component/filter/filter-grist-meta-code-select.ts +0 -97
- package/client/component/filter/filter-grist-meta-object-select.ts +0 -102
- package/client/component/grist/editor/grist-editor-code-input.js +0 -96
- package/client/component/grist/editor/grist-editor-meta-code-selector.js +0 -157
- package/client/component/grist/editor/grist-editor-meta-object-selector.js +0 -122
- package/client/component/grist/renderer/grist-renderer-code-input.js +0 -20
- package/client/component/grist/renderer/grist-renderer-meta-code-selector.js +0 -28
- package/client/component/grist/renderer/grist-renderer-meta-object-selector.js +0 -25
- package/client/component/popup/code-input-editor-popup.js +0 -111
- package/client/component/popup/file-upload-popup.js +0 -129
- package/client/component/popup/meta-object-selector-popup.ts +0 -356
- package/client/component/popup/record-based-code-editor-popup.ts +0 -141
- package/client/dynamic-menus.ts +0 -38
- package/client/index.ts +0 -18
- package/client/load-components.ts +0 -17
- package/client/mixin/meta-base-mixin.js +0 -323
- package/client/mixin/meta-basic-grist-mixin.js +0 -283
- package/client/mixin/meta-button-mixin.js +0 -116
- package/client/mixin/meta-form-mixin.js +0 -435
- package/client/mixin/meta-grist-tab-mixin.js +0 -335
- package/client/mixin/meta-main-tab-mixin.js +0 -267
- package/client/mixin/meta-master-detail-mixin.js +0 -395
- package/client/mixin/meta-service-mixin.js +0 -306
- package/client/mixin/meta-tab-detail-mixin.js +0 -283
- package/client/mixin/meta-tab-mixin.js +0 -190
- package/client/pages/activity/meta-activity-define-page.js +0 -422
- package/client/pages/activity/meta-activity-list-page.js +0 -262
- package/client/pages/activity/meta-activity-viewer-element.js +0 -35
- package/client/pages/activity/meta-activity-writer-element.js +0 -48
- package/client/pages/activity/meta-activiy-mixin.js +0 -79
- package/client/pages/button-role/button-role-detail.js +0 -50
- package/client/pages/button-role/button-role-page.js +0 -25
- package/client/pages/doc-number/doc-number-page.js +0 -24
- package/client/pages/doc-number/next-doc-number-popup.js +0 -25
- package/client/pages/entity/config-entity.js +0 -955
- package/client/pages/entity/main-menu-selector.js +0 -245
- package/client/pages/history/history-copy-list-popup.js +0 -145
- package/client/pages/history/history-json-list-popup.js +0 -159
- package/client/pages/menu/dynamic-menu-template.js +0 -92
- package/client/pages/menu/dynamic-menu.ts +0 -744
- package/client/pages/menu/export-menu-popup.js +0 -468
- package/client/pages/meta-form-element.js +0 -9
- package/client/pages/meta-grist-element.js +0 -12
- package/client/pages/meta-grist-page.js +0 -16
- package/client/pages/meta-grist-tab-element.js +0 -16
- package/client/pages/meta-grist-tab-page.js +0 -16
- package/client/pages/meta-main-tab-element.js +0 -12
- package/client/pages/meta-main-tab-page.js +0 -16
- package/client/pages/meta-master-detail-element.js +0 -12
- package/client/pages/meta-master-detail-page.js +0 -16
- package/client/pages/meta-tab-detail-element.js +0 -12
- package/client/pages/meta-tab-detail-page.js +0 -16
- package/client/pages/meta-tab-element.js +0 -15
- package/client/pages/printer-device/printer-device-page.js +0 -24
- package/client/pages/template/doc-template-page.js +0 -24
- package/client/pages/template/template-file-page.js +0 -24
- package/client/pages/terms/config-terminology.js +0 -214
- package/client/pages/work-code/work-code-detail-popup.js +0 -16
- package/client/pages/work-code/work-code-page.js +0 -23
- package/client/route.ts +0 -36
- package/client/tsconfig.json +0 -13
- package/client/utils/grist-default-value.js +0 -36
- package/client/utils/meta-api.js +0 -811
- package/client/utils/meta-crypto.js +0 -52
- package/client/utils/meta-ui-util.js +0 -3304
- package/client/utils/rest-service-util.js +0 -328
- package/client/utils/service-util.js +0 -1327
- package/client/utils/terms-util.ts +0 -119
- package/client/utils/ui-util.js +0 -338
- package/client/utils/value-util.js +0 -234
- package/server/activity/CommonActivity.ts +0 -68
- package/server/index.ts +0 -3
- package/server/routes.ts +0 -61
- package/server/service/button-role/button-role-mutation.ts +0 -105
- package/server/service/button-role/button-role-query.ts +0 -53
- package/server/service/button-role/button-role-type.ts +0 -39
- package/server/service/button-role/button-role.ts +0 -61
- package/server/service/button-role/index.ts +0 -7
- package/server/service/dynamic-menu/dynamic-menu-query.ts +0 -270
- package/server/service/dynamic-menu/dynamic-menu-type.ts +0 -74
- package/server/service/dynamic-menu/index.ts +0 -3
- package/server/service/entity-event-subscriber/entity-event-subscriber.ts +0 -80
- package/server/service/entity-event-subscriber/index.ts +0 -3
- package/server/service/index.ts +0 -41
- package/server/service/menu-button-auth/index.ts +0 -7
- package/server/service/menu-button-auth/menu-button-auth-mutation.ts +0 -133
- package/server/service/menu-button-auth/menu-button-auth-query.ts +0 -138
- package/server/service/menu-button-auth/menu-button-auth-type.ts +0 -63
- package/server/service/menu-button-auth/menu-button-auth.ts +0 -92
- package/server/service/meta-activity/index.ts +0 -5
- package/server/service/meta-activity/meta-activity-mutation.ts +0 -191
- package/server/service/meta-activity/meta-activity-query.ts +0 -43
- package/server/service/meta-activity/meta-activity-type.ts +0 -56
- package/server/service/set-translations/index.ts +0 -3
- package/server/service/set-translations/set-translation-resolver.ts +0 -63
- package/server/service/work-code/index.ts +0 -6
- package/server/service/work-code/work-code-mutation.ts +0 -147
- package/server/service/work-code/work-code-query.ts +0 -67
- package/server/service/work-code/work-code-type.ts +0 -60
- package/server/service/work-code/work-code.ts +0 -83
- package/server/service/work-code-detail/index.ts +0 -6
- package/server/service/work-code-detail/work-code-detail-mutation.ts +0 -149
- package/server/service/work-code-detail/work-code-detail-query.ts +0 -59
- package/server/service/work-code-detail/work-code-detail-type.ts +0 -50
- package/server/service/work-code-detail/work-code-detail.ts +0 -82
- package/server/tsconfig.json +0 -9
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import { MetaApi } from '../utils/meta-api'
|
|
2
|
-
import { MetaUiUtil } from '../utils/meta-ui-util'
|
|
3
|
-
|
|
4
|
-
import { MetaButtonMixin } from './meta-button-mixin'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @description 메뉴 메타 정보를 이용해 그리드를 렌더링
|
|
8
|
-
******************************************************
|
|
9
|
-
* @param {Object} MetaButtonMixin
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
export const MetaTabDetailMixin = baseElement =>
|
|
13
|
-
class extends MetaButtonMixin(baseElement) {
|
|
14
|
-
/**
|
|
15
|
-
* @description 스타일 정의
|
|
16
|
-
**************************
|
|
17
|
-
* @returns {Array} 스타일
|
|
18
|
-
*/
|
|
19
|
-
static get styles() {
|
|
20
|
-
return MetaApi.getBasicTabDetailStyles()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @description 프로퍼티 정의
|
|
25
|
-
***************************************
|
|
26
|
-
* @returns {Object} 프로퍼티
|
|
27
|
-
*/
|
|
28
|
-
static get properties() {
|
|
29
|
-
return {
|
|
30
|
-
/**
|
|
31
|
-
* @description 그리드 구성 정보
|
|
32
|
-
*****************************
|
|
33
|
-
* @type {Object}
|
|
34
|
-
*/
|
|
35
|
-
gridConfig: Object,
|
|
36
|
-
/**
|
|
37
|
-
* @description 그리드 컬럼 구성 정보
|
|
38
|
-
*********************************
|
|
39
|
-
* @type {Array}
|
|
40
|
-
*/
|
|
41
|
-
gridColumnConfig: Array,
|
|
42
|
-
/**
|
|
43
|
-
* @description 검색 폼 구성 정보
|
|
44
|
-
*******************************
|
|
45
|
-
* @type {Array}
|
|
46
|
-
*/
|
|
47
|
-
searchConfig: Array,
|
|
48
|
-
/**
|
|
49
|
-
* @description 화면에서 사용되는 서치 폼 : grist, filter, not
|
|
50
|
-
*********************************************************
|
|
51
|
-
* @type {String}
|
|
52
|
-
*/
|
|
53
|
-
searchFormElement: String,
|
|
54
|
-
/**
|
|
55
|
-
* @description 메뉴 메타 정보로 부터 추출한 후 그리스트를 위해 설정 정보 구성
|
|
56
|
-
*****************************************************************
|
|
57
|
-
* @type {Object}
|
|
58
|
-
*/
|
|
59
|
-
gristConfigSet: Object,
|
|
60
|
-
/**
|
|
61
|
-
* @description 필터 폼 사용 여부
|
|
62
|
-
*****************************
|
|
63
|
-
* @type {Boolean}
|
|
64
|
-
*/
|
|
65
|
-
useFilterForm: Boolean,
|
|
66
|
-
/**
|
|
67
|
-
* @description 모바일 기기에서 그리드 모드 : GRID, LIST, CARD
|
|
68
|
-
*********************************************************
|
|
69
|
-
* @type {String}
|
|
70
|
-
*/
|
|
71
|
-
gridMobileMode: String,
|
|
72
|
-
/**
|
|
73
|
-
* @description 데스크탑에서 그리드 모드 : GRID, LIST, CARD
|
|
74
|
-
******************************************************
|
|
75
|
-
* @type {String}
|
|
76
|
-
*/
|
|
77
|
-
gridDeskMode: String,
|
|
78
|
-
/**
|
|
79
|
-
* @description 그리드 뷰 모드 : GRID, LIST, CARD
|
|
80
|
-
**********************************************
|
|
81
|
-
* @type {Array}
|
|
82
|
-
*/
|
|
83
|
-
gridViewOptions: Array,
|
|
84
|
-
/**
|
|
85
|
-
* @description 현재 그리드 뷰 모드 : GRID, LIST, CARD
|
|
86
|
-
***************************************************
|
|
87
|
-
* @type {String}
|
|
88
|
-
*/
|
|
89
|
-
gridMode: String,
|
|
90
|
-
/**
|
|
91
|
-
* @description Infinity Page 사용 여부
|
|
92
|
-
**************************************
|
|
93
|
-
* @type {Boolean}
|
|
94
|
-
*/
|
|
95
|
-
infinityPage: Boolean,
|
|
96
|
-
/**
|
|
97
|
-
* @description 그리스트 엘리먼트 ID
|
|
98
|
-
***************************
|
|
99
|
-
* @type {String}
|
|
100
|
-
*/
|
|
101
|
-
gristId: String,
|
|
102
|
-
/**
|
|
103
|
-
* @description 필터 폼 엘리먼트 ID
|
|
104
|
-
***************************
|
|
105
|
-
* @type {String}
|
|
106
|
-
*/
|
|
107
|
-
filterFormId: String,
|
|
108
|
-
/**
|
|
109
|
-
* @description detail 엘리먼트
|
|
110
|
-
***************************
|
|
111
|
-
* @type {Object}
|
|
112
|
-
*/
|
|
113
|
-
detailElement: Object
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* @description 그리스트
|
|
119
|
-
***********************
|
|
120
|
-
* @returns {HTMLElement}
|
|
121
|
-
*/
|
|
122
|
-
get grist() {
|
|
123
|
-
return this.masterElement.getMainGrist()
|
|
124
|
-
// return this.renderRoot.querySelector(this.gristId)
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* @description 필터 폼
|
|
129
|
-
***********************
|
|
130
|
-
* @returns {HTMLElement}
|
|
131
|
-
*/
|
|
132
|
-
get filterForm() {
|
|
133
|
-
return this.shadowRoot?.querySelector(this.filterFormId)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* @description 컨텍스트
|
|
138
|
-
***********************
|
|
139
|
-
* @returns {HTMLElement}
|
|
140
|
-
*/
|
|
141
|
-
get context() {
|
|
142
|
-
let ctx = MetaUiUtil.getContextObject(this)
|
|
143
|
-
|
|
144
|
-
if (ctx.actions) delete ctx.actions
|
|
145
|
-
if (ctx.exportable) delete ctx.exportable
|
|
146
|
-
if (ctx.importable) delete ctx.importable
|
|
147
|
-
|
|
148
|
-
return ctx
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/******************************************************
|
|
152
|
-
* LifeCycle
|
|
153
|
-
******************************************************/
|
|
154
|
-
|
|
155
|
-
async connectedCallback() {
|
|
156
|
-
// 그리스트, 필터 폼 ID 설정
|
|
157
|
-
this.gristId = 'ox-grist'
|
|
158
|
-
this.filterFormId = 'ox-filters-form-base'
|
|
159
|
-
|
|
160
|
-
// 메뉴 메타 정보 조회 및 기본 파싱
|
|
161
|
-
await this.getAndParseMenuMeta()
|
|
162
|
-
|
|
163
|
-
if (this.isElement) {
|
|
164
|
-
await this.parseGristConfigs()
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
if (this.activityDataSet) {
|
|
168
|
-
this.dataSet = (this.activityDataSet || {}).main
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
if (super.connectedCallback) {
|
|
172
|
-
await super.connectedCallback()
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
async firstUpdated() {
|
|
177
|
-
if (super.firstUpdated) {
|
|
178
|
-
await super.firstUpdated()
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
async pageInitialized() {
|
|
183
|
-
if (this.isPage) {
|
|
184
|
-
await this.parseGristConfigs()
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (super.pageInitialized) {
|
|
188
|
-
await super.pageInitialized()
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
render() {
|
|
193
|
-
return MetaApi.getTabDetailHtml(this)
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* @descrtiption 메뉴 메타에서 기본 그리드 정보 파싱 처리
|
|
198
|
-
************************************************
|
|
199
|
-
* @param {Object} menuMeta 메뉴 메타 정보
|
|
200
|
-
*/
|
|
201
|
-
parseBasicGridConfigs(menuMeta) {
|
|
202
|
-
this.gridConfig = menuMeta.grid
|
|
203
|
-
this.gridColumnConfig = menuMeta.grid_column
|
|
204
|
-
this.searchConfig = menuMeta.search
|
|
205
|
-
this.gridEmphasized = menuMeta.gridEmphasized
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* @descrtiption 그리스트 구성 정보 파싱 처리
|
|
210
|
-
***************************************
|
|
211
|
-
*/
|
|
212
|
-
async parseGristConfigs() {
|
|
213
|
-
this.gristConfigSet = await MetaApi.parseGridConfigSet(this)
|
|
214
|
-
this.useMasterFilterForm = this.useFilterForm === true ? true : false
|
|
215
|
-
this.useFilterForm = false
|
|
216
|
-
this.buttonConfig = undefined
|
|
217
|
-
this.useButtonExport = false
|
|
218
|
-
this.useButtonImport = false
|
|
219
|
-
|
|
220
|
-
this.searchFieldValues = []
|
|
221
|
-
this.searchFields = this.gristConfigSet.columns
|
|
222
|
-
.filter(x => x.filter)
|
|
223
|
-
.map(x => {
|
|
224
|
-
let searchField = {
|
|
225
|
-
name: x.name,
|
|
226
|
-
type: x.filter.operator === 'search' ? 'search' : x.type,
|
|
227
|
-
label: x.header,
|
|
228
|
-
operator: x.filter.operator ? x.filter.operator : 'eq'
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
if (x.filter.options) {
|
|
232
|
-
searchField.options = x.filter.options
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (x.record.options) {
|
|
236
|
-
searchField.options = x.record.options
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (x.filter.value) {
|
|
240
|
-
this.searchFieldValues.push({
|
|
241
|
-
name: searchField.name,
|
|
242
|
-
operator: searchField.operator,
|
|
243
|
-
value: x.filter.value
|
|
244
|
-
})
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
delete x.filter
|
|
248
|
-
|
|
249
|
-
return searchField
|
|
250
|
-
})
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/********************************************************************
|
|
254
|
-
* C R U D Functions
|
|
255
|
-
********************************************************************/
|
|
256
|
-
|
|
257
|
-
async fetch() {
|
|
258
|
-
await this.grist.fetch()
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
async beforeFetch({ page = 0, limit = 0, sortings = [], filters = [] }) {
|
|
262
|
-
if (this.masterElement) {
|
|
263
|
-
if (this.masterElement.clear) {
|
|
264
|
-
await this.masterElement.clear()
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
if (this.detailElement) {
|
|
269
|
-
if (this.detailElement.clear) {
|
|
270
|
-
await this.detailElement.clear()
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return true
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
getData() {
|
|
278
|
-
return {
|
|
279
|
-
master: this.masterElement.getData(),
|
|
280
|
-
detail: this.detailElement.getData()
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { MetaApi } from '../utils/meta-api'
|
|
2
|
-
import { MetaUiUtil } from '../utils/meta-ui-util'
|
|
3
|
-
|
|
4
|
-
import { MetaButtonMixin } from './meta-button-mixin'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @license
|
|
8
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
-
* @author Shortstop shortstop@hatiolab.com
|
|
10
|
-
* @description 메뉴 메타 정보를 기반으로 탭 구성
|
|
11
|
-
*/
|
|
12
|
-
export const MetaTabMixin = baseElement =>
|
|
13
|
-
class extends MetaButtonMixin(baseElement) {
|
|
14
|
-
/**
|
|
15
|
-
* @description 스타일 정의
|
|
16
|
-
**************************
|
|
17
|
-
* @returns {Array} 스타일
|
|
18
|
-
*/
|
|
19
|
-
static get styles() {
|
|
20
|
-
return MetaApi.getBasicTabStyles()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @description 프로퍼티 정의
|
|
25
|
-
**************************
|
|
26
|
-
* @returns {Object} 프로퍼티
|
|
27
|
-
*/
|
|
28
|
-
static get properties() {
|
|
29
|
-
return {
|
|
30
|
-
/**
|
|
31
|
-
* @description 탭 상세 렌터링 정보
|
|
32
|
-
*******************************
|
|
33
|
-
* @type {Object}
|
|
34
|
-
*/
|
|
35
|
-
tabRenderConfig: Array,
|
|
36
|
-
/**
|
|
37
|
-
* @description 현재 선택된 탭
|
|
38
|
-
****************************
|
|
39
|
-
* @type {String}
|
|
40
|
-
*/
|
|
41
|
-
currentTabKey: String,
|
|
42
|
-
/**
|
|
43
|
-
* @description 렌더링 된 탭 객체
|
|
44
|
-
******************************
|
|
45
|
-
* @type {Array}
|
|
46
|
-
*/
|
|
47
|
-
tabElements: Object
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* @description 컨텍스트
|
|
53
|
-
***********************
|
|
54
|
-
* @returns {HTMLElement}
|
|
55
|
-
*/
|
|
56
|
-
get context() {
|
|
57
|
-
return MetaUiUtil.getContextObject(this)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/******************************************************
|
|
61
|
-
* LifeCycle
|
|
62
|
-
******************************************************/
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @override connectedCallback
|
|
66
|
-
*******************************
|
|
67
|
-
*/
|
|
68
|
-
async connectedCallback() {
|
|
69
|
-
this.currentTabKey = undefined
|
|
70
|
-
// 메뉴 메타 정보 조회 및 기본 파싱
|
|
71
|
-
await this.getAndParseMenuMeta()
|
|
72
|
-
|
|
73
|
-
if (this.activityDataSet) {
|
|
74
|
-
this.dataSet = this.activityDataSet
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (super.connectedCallback) {
|
|
78
|
-
await super.connectedCallback()
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* @override firstUpdated
|
|
84
|
-
**************************
|
|
85
|
-
*/
|
|
86
|
-
async firstUpdated() {
|
|
87
|
-
if (super.firstUpdated) {
|
|
88
|
-
await super.firstUpdated()
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* @override pageInitialized
|
|
94
|
-
*****************************
|
|
95
|
-
*/
|
|
96
|
-
async pageInitialized() {
|
|
97
|
-
if (super.pageInitialized) {
|
|
98
|
-
await super.pageInitialized()
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* @description 화면 그리기
|
|
104
|
-
**************************
|
|
105
|
-
* @returns {HTMLElement}
|
|
106
|
-
*/
|
|
107
|
-
render() {
|
|
108
|
-
return MetaApi.getBasicTabHtml(this)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* @descrtiption 메뉴 메타 정보로 부터 기본 그리드 정보 파싱 처리
|
|
113
|
-
************************************************
|
|
114
|
-
* @param {Object} menuMeta 메뉴 메타 정보
|
|
115
|
-
*/
|
|
116
|
-
parseBasicTabConfigs(menuMeta) {
|
|
117
|
-
if (this.includeMainList === true) {
|
|
118
|
-
let mainInfoTxt = this.etcConfig.main_tab_info
|
|
119
|
-
let mainInfo = JSON.parse(mainInfoTxt || '{ "name": "general", "display": "general", "icon": "list", "index": 0 }')
|
|
120
|
-
if (mainInfo.index > menuMeta.tab.length) mainInfo.index = menuMeta.tab.length
|
|
121
|
-
|
|
122
|
-
menuMeta.tab.splice(mainInfo.index, 0, {
|
|
123
|
-
name: mainInfo.name,
|
|
124
|
-
display: mainInfo.display,
|
|
125
|
-
tagname: 'meta-grist-element',
|
|
126
|
-
location: '@things-factory/meta-ui/dist-client/pages/meta-grist-element',
|
|
127
|
-
parent_field: 'id',
|
|
128
|
-
param_field: 'param_field',
|
|
129
|
-
menu: this.route_name,
|
|
130
|
-
icon: mainInfo.icon,
|
|
131
|
-
filter_from: false,
|
|
132
|
-
main_filter_form: this.mainFilterForm
|
|
133
|
-
})
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
this.tabRenderConfig = menuMeta.tab
|
|
137
|
-
menuMeta.button = []
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/********************************************************************
|
|
141
|
-
* Data Handling
|
|
142
|
-
********************************************************************/
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* @descrtiption 모든 탭 별 데이터 클리어
|
|
146
|
-
************************************
|
|
147
|
-
*/
|
|
148
|
-
async clear() {
|
|
149
|
-
if (this.tabElements) {
|
|
150
|
-
let tabKeys = Object.keys(this.tabElements)
|
|
151
|
-
|
|
152
|
-
for (var i = 0; i < tabKeys.length; i++) {
|
|
153
|
-
await this.tabElements[tabKeys[i]].clear()
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* @descrtiption 탭 별로 데이터 수집 후 리턴
|
|
160
|
-
***************************************
|
|
161
|
-
* @returns {Object} 탭 화면 데이터
|
|
162
|
-
*/
|
|
163
|
-
getData() {
|
|
164
|
-
let data = {}
|
|
165
|
-
|
|
166
|
-
if (this.tabElements) {
|
|
167
|
-
let tabKeys = Object.keys(this.tabElements)
|
|
168
|
-
|
|
169
|
-
tabKeys.forEach(tabKey => {
|
|
170
|
-
data[tabKey] = this.tabElements[tabKey].getData()
|
|
171
|
-
})
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
return data
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* @descrtiption 메인 그리드
|
|
179
|
-
**************************
|
|
180
|
-
* @returns {Object} grist
|
|
181
|
-
*/
|
|
182
|
-
getMainGrist() {
|
|
183
|
-
if (this.tabElements) {
|
|
184
|
-
let tabKeys = Object.keys(this.tabElements)
|
|
185
|
-
return this.tabElements[tabKeys[0]].grist
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return undefined
|
|
189
|
-
}
|
|
190
|
-
}
|