@things-factory/meta-ui 8.0.0-beta.9 → 8.0.2

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 (115) hide show
  1. package/client/bootstrap.ts +170 -0
  2. package/client/component/filter/filter-form-meta-code-select.ts +102 -0
  3. package/client/component/filter/filter-form-meta-object-select.ts +107 -0
  4. package/client/component/filter/filter-grist-meta-code-select.ts +97 -0
  5. package/client/component/filter/filter-grist-meta-object-select.ts +102 -0
  6. package/client/component/grist/editor/grist-editor-code-input.js +96 -0
  7. package/client/component/grist/editor/grist-editor-meta-code-selector.js +157 -0
  8. package/client/component/grist/editor/grist-editor-meta-object-selector.js +122 -0
  9. package/client/component/grist/renderer/grist-renderer-code-input.js +20 -0
  10. package/client/component/grist/renderer/grist-renderer-meta-code-selector.js +28 -0
  11. package/client/component/grist/renderer/grist-renderer-meta-object-selector.js +25 -0
  12. package/client/component/popup/code-input-editor-popup.js +111 -0
  13. package/client/component/popup/file-upload-popup.js +129 -0
  14. package/client/component/popup/meta-object-selector-popup.ts +356 -0
  15. package/client/component/popup/record-based-code-editor-popup.ts +141 -0
  16. package/client/dynamic-menus.ts +38 -0
  17. package/client/index.ts +18 -0
  18. package/client/load-components.ts +17 -0
  19. package/client/mixin/meta-base-mixin.js +323 -0
  20. package/client/mixin/meta-basic-grist-mixin.js +283 -0
  21. package/client/mixin/meta-button-mixin.js +116 -0
  22. package/client/mixin/meta-form-mixin.js +435 -0
  23. package/client/mixin/meta-grist-tab-mixin.js +335 -0
  24. package/client/mixin/meta-main-tab-mixin.js +267 -0
  25. package/client/mixin/meta-master-detail-mixin.js +395 -0
  26. package/client/mixin/meta-service-mixin.js +306 -0
  27. package/client/mixin/meta-tab-detail-mixin.js +283 -0
  28. package/client/mixin/meta-tab-mixin.js +190 -0
  29. package/client/pages/activity/meta-activity-define-page.js +422 -0
  30. package/client/pages/activity/meta-activity-list-page.js +262 -0
  31. package/client/pages/activity/meta-activity-viewer-element.js +35 -0
  32. package/client/pages/activity/meta-activity-writer-element.js +48 -0
  33. package/client/pages/activity/meta-activiy-mixin.js +79 -0
  34. package/client/pages/button-role/button-role-detail.js +50 -0
  35. package/client/pages/button-role/button-role-page.js +25 -0
  36. package/client/pages/doc-number/doc-number-page.js +24 -0
  37. package/client/pages/doc-number/next-doc-number-popup.js +25 -0
  38. package/client/pages/entity/config-entity.js +955 -0
  39. package/client/pages/entity/main-menu-selector.js +245 -0
  40. package/client/pages/history/history-copy-list-popup.js +145 -0
  41. package/client/pages/history/history-json-list-popup.js +159 -0
  42. package/client/pages/menu/dynamic-menu-template.js +92 -0
  43. package/client/pages/menu/dynamic-menu.ts +744 -0
  44. package/client/pages/menu/export-menu-popup.js +468 -0
  45. package/client/pages/meta-form-element.js +9 -0
  46. package/client/pages/meta-grist-element.js +12 -0
  47. package/client/pages/meta-grist-page.js +16 -0
  48. package/client/pages/meta-grist-tab-element.js +16 -0
  49. package/client/pages/meta-grist-tab-page.js +16 -0
  50. package/client/pages/meta-main-tab-element.js +12 -0
  51. package/client/pages/meta-main-tab-page.js +16 -0
  52. package/client/pages/meta-master-detail-element.js +12 -0
  53. package/client/pages/meta-master-detail-page.js +16 -0
  54. package/client/pages/meta-tab-detail-element.js +12 -0
  55. package/client/pages/meta-tab-detail-page.js +16 -0
  56. package/client/pages/meta-tab-element.js +15 -0
  57. package/client/pages/printer-device/printer-device-page.js +24 -0
  58. package/client/pages/template/doc-template-page.js +24 -0
  59. package/client/pages/template/template-file-page.js +24 -0
  60. package/client/pages/terms/config-terminology.js +214 -0
  61. package/client/pages/work-code/work-code-detail-popup.js +16 -0
  62. package/client/pages/work-code/work-code-page.js +23 -0
  63. package/client/route.ts +36 -0
  64. package/client/tsconfig.json +13 -0
  65. package/client/utils/grist-default-value.js +36 -0
  66. package/client/utils/meta-api.js +811 -0
  67. package/client/utils/meta-crypto.js +52 -0
  68. package/client/utils/meta-ui-util.js +3304 -0
  69. package/client/utils/rest-service-util.js +328 -0
  70. package/client/utils/service-util.js +1327 -0
  71. package/client/utils/terms-util.ts +119 -0
  72. package/client/utils/ui-util.js +338 -0
  73. package/client/utils/value-util.js +234 -0
  74. package/dist-client/tsconfig.tsbuildinfo +1 -1
  75. package/dist-client/utils/service-util.d.ts +2 -2
  76. package/dist-client/utils/service-util.js +4 -4
  77. package/dist-client/utils/service-util.js.map +1 -1
  78. package/dist-server/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +24 -24
  80. package/server/activity/CommonActivity.ts +68 -0
  81. package/server/index.ts +3 -0
  82. package/server/routes.ts +61 -0
  83. package/server/service/button-role/button-role-mutation.ts +105 -0
  84. package/server/service/button-role/button-role-query.ts +53 -0
  85. package/server/service/button-role/button-role-type.ts +39 -0
  86. package/server/service/button-role/button-role.ts +61 -0
  87. package/server/service/button-role/index.ts +7 -0
  88. package/server/service/dynamic-menu/dynamic-menu-query.ts +270 -0
  89. package/server/service/dynamic-menu/dynamic-menu-type.ts +74 -0
  90. package/server/service/dynamic-menu/index.ts +3 -0
  91. package/server/service/entity-event-subscriber/entity-event-subscriber.ts +80 -0
  92. package/server/service/entity-event-subscriber/index.ts +3 -0
  93. package/server/service/index.ts +41 -0
  94. package/server/service/menu-button-auth/index.ts +7 -0
  95. package/server/service/menu-button-auth/menu-button-auth-mutation.ts +133 -0
  96. package/server/service/menu-button-auth/menu-button-auth-query.ts +138 -0
  97. package/server/service/menu-button-auth/menu-button-auth-type.ts +63 -0
  98. package/server/service/menu-button-auth/menu-button-auth.ts +92 -0
  99. package/server/service/meta-activity/index.ts +5 -0
  100. package/server/service/meta-activity/meta-activity-mutation.ts +191 -0
  101. package/server/service/meta-activity/meta-activity-query.ts +43 -0
  102. package/server/service/meta-activity/meta-activity-type.ts +56 -0
  103. package/server/service/set-translations/index.ts +3 -0
  104. package/server/service/set-translations/set-translation-resolver.ts +63 -0
  105. package/server/service/work-code/index.ts +6 -0
  106. package/server/service/work-code/work-code-mutation.ts +147 -0
  107. package/server/service/work-code/work-code-query.ts +67 -0
  108. package/server/service/work-code/work-code-type.ts +60 -0
  109. package/server/service/work-code/work-code.ts +83 -0
  110. package/server/service/work-code-detail/index.ts +6 -0
  111. package/server/service/work-code-detail/work-code-detail-mutation.ts +149 -0
  112. package/server/service/work-code-detail/work-code-detail-query.ts +59 -0
  113. package/server/service/work-code-detail/work-code-detail-type.ts +50 -0
  114. package/server/service/work-code-detail/work-code-detail.ts +82 -0
  115. package/server/tsconfig.json +9 -0
@@ -0,0 +1,811 @@
1
+ import { UiUtil } from './ui-util'
2
+ import { ServiceUtil } from './service-util'
3
+ import { MetaUiUtil } from './meta-ui-util'
4
+
5
+ /**
6
+ * @license
7
+ * Copyright © HatioLab Inc. All rights reserved.
8
+ * @author Shortstop <shortstop@hatiolab.com>
9
+ * @description 메타 API
10
+ */
11
+ export class MetaApi {
12
+ /**
13
+ * @description 현재 디바이스가 모바일 장비인지 체크
14
+ ********************************************
15
+ * @returns {Boolean} 모바일 장비 여부
16
+ */
17
+ static isMobileEnv() {
18
+ return UiUtil.isMobileEnv()
19
+ }
20
+
21
+ /**
22
+ * @description 현재 로케일 정보 리턴
23
+ **************************************
24
+ * @returns {String} 현재 브라우저의 로케일 정보
25
+ */
26
+ static currentLocale() {
27
+ return UiUtil.currentLocale()
28
+ }
29
+
30
+ /**
31
+ * @description 현재 액티브 된 화면의 라우팅 정보
32
+ ******************************************
33
+ * @returns {String} 현재 액티브 된 화면의 라우팅 정보
34
+ */
35
+ static currentRouting() {
36
+ return UiUtil.currentRouting()
37
+ }
38
+
39
+ /**
40
+ * @description 최종 애플리케이션 모듈 정보 리턴
41
+ *****************************************
42
+ * @returns {Object} 최종 애플리케이션 모듈
43
+ */
44
+ static getApplicationModuleInfo() {
45
+ return UiUtil.getApplicationModuleInfo()
46
+ }
47
+
48
+ /**
49
+ * @description 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출
50
+ *******************************************************
51
+ * @param {Object} filterForm 그리드 필터 폼
52
+ * @returns {Object} 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출
53
+ */
54
+ static getFilterFormData(filterForm) {
55
+ return UiUtil.getFilterFormData(filterForm)
56
+ }
57
+
58
+ /**
59
+ * @description name으로 필터 폼 내 에디터를 찾아 값을 셋팅
60
+ *****************************************************
61
+ * @param {Object} filterForm 그리스트 필터 폼
62
+ * @param {String} name 그리스트 필터 폼 내 에디터의 이름
63
+ * @param {Object} value 설정할 값
64
+ */
65
+ static setSearchFormEditorValue(filterForm, name, value) {
66
+ UiUtil.setSearchFormEditorValue(filterForm, name, value)
67
+ }
68
+
69
+ /**
70
+ * @description 파라미터를 기준으로 유형에 맞는 에디터를 생성한다.
71
+ ******************************************************
72
+ * @param {String} editorType 에디터 유형
73
+ * @param {Object} column 컬럼 Object
74
+ * @param {Object} record 레코드 Object
75
+ * @param {Number} rowIndex 추가할 열 Index
76
+ * @returns {HTMLElement} HTML 에디터
77
+ */
78
+ static createEditorHtml(editorType, column, record, rowIndex) {
79
+ return UiUtil.createEditorHtml(editorType, column, record, rowIndex)
80
+ }
81
+
82
+ /**
83
+ * @description 에디터에 값을 설정한다.
84
+ *********************************
85
+ * @param {Object} editor 에디터
86
+ * @param {String} newValue 설정할 값
87
+ */
88
+ static setValueToEditor(editor, newValue) {
89
+ UiUtil.setValueToEditor(editor, newValue)
90
+ }
91
+
92
+ /**
93
+ * @description 오픈하고자 하는 엘리먼트를 받아 팝업 오픈
94
+ *************************************************
95
+ * @param {String} popupTitle 팝업 타이틀
96
+ * @param {String} popupSize 팝업 사이즈 ex) 'large', 'medium', 'small'
97
+ * @param {HTMLElement} element 팝업에 표시할 엘리먼트 HTMLElement
98
+ * @param {Boolean} backdrop 백드롭 여부
99
+ * @param {String} help help 파일 경로
100
+ * @returns {Object} 팝업 객체
101
+ */
102
+ static openPopupByElement(popupTitle, popupSize, element, backdrop, help = '') {
103
+ return UiUtil.openPopupByElement(popupTitle, popupSize, element, backdrop, help)
104
+ }
105
+
106
+ /**
107
+ * @description popupConfig에 포함된 element 정보를 이용해 팝업을 연다
108
+ **************************************************************
109
+ * @param {String} title 팝업 타이틀
110
+ * @param {Object} popupConfig 팝업 구성을 위한 설정 정보 ex) { module: '', location: '', tagname: '', size : '', popup_field: '', parent_field: '' }
111
+ * @param {Object} paramData 팝업에 넘겨 줄 파라미터
112
+ * @param {Function} popupCloseCallback 팝업 닫을 때 실행되기 위한 콜백 함수
113
+ */
114
+ static async openDynamicPopup(title, popupConfig, paramData, popupCloseCallback) {
115
+ await UiUtil.openDynamicPopup(title, popupConfig, paramData, popupCloseCallback)
116
+ }
117
+
118
+ /**
119
+ * @description tagname, routing으로 커스텀 엘리먼트 생성
120
+ ****************************************************
121
+ * @param {String} tagname 팝업에 포함할 태그 명
122
+ * @param {String} routing 라우팅
123
+ * @returns {HTMLElement} 커스텀 엘리먼트
124
+ */
125
+ static createCustomElement(tagname, routing) {
126
+ return UiUtil.createCustomElement(tagname, routing)
127
+ }
128
+
129
+ /**
130
+ * @description HTML 문자열을 elements로 변환
131
+ **************************************
132
+ * @param {String} htmlStr html 문자열
133
+ * @returns {HTMLElement} 커스텀 엘리먼트
134
+ */
135
+ static htmlToElement(htmlStr) {
136
+ return UiUtil.htmlToElement(htmlStr)
137
+ }
138
+
139
+ /**
140
+ * @description 페이지 이동
141
+ **************************************
142
+ * @param {String} url 페이지 URL (route 값)
143
+ * @param {Object} [params] 페이지 파라미터, null 가능
144
+ */
145
+ static pageNavigate(url, params) {
146
+ UiUtil.pageNavigate(url, params)
147
+ }
148
+
149
+ /**
150
+ * @description store의 정보 추출
151
+ ****************************************************
152
+ * @param {String} accessor1 스토어 액세서 1, 빈 값 가능
153
+ * @param {String} accessor2 스토어 액세서 2, 빈 값 가능
154
+ * @param {String} accessor3 스토어 액세서 3, 빈 값 가능
155
+ * @returns {Object} store 정보
156
+ */
157
+ static getStore(accessor1, accessor2, accessor3) {
158
+ return UiUtil.getStore(accessor1, accessor2, accessor3)
159
+ }
160
+
161
+ /**
162
+ * @description 커스텀 이벤트 전파
163
+ *************************************
164
+ * @param {String} eventName 이벤트 이름
165
+ * @param {Object} eventDetail 이벤트 상세 정보
166
+ */
167
+ static fireCustomEvent(eventName, eventDetail) {
168
+ UiUtil.fireCustomEvent(eventName, eventDetail)
169
+ }
170
+
171
+ /**
172
+ * @description 토스트 메시지 표시
173
+ *************************************
174
+ * @param {String} type 토스트 타입
175
+ * @param {String} message 메시지
176
+ */
177
+ static showToast(type, message) {
178
+ UiUtil.showToast(type, message)
179
+ }
180
+
181
+ /**
182
+ * @description Alert 메시지 창 표시
183
+ *************************************
184
+ * @param {String} titleCode Alert 제목 표시를 위한 용어 이름, 예) title.confirm
185
+ * @param {String} textCode Alert 텍스트 표시를 위한 용어 이름 예) text.are_you_sure
186
+ * @param {String} type Alert 창 유형 - info, error, warning ...
187
+ * @param {String} confirmButtonCode 확인 버튼 표시를 위한 용어 이름 예) confirm
188
+ * @param {String} cancelButtonCode 취소 버튼 표시를 위한 용어 이름 예) cancel
189
+ * @returns {Object} Alert 팝업
190
+ */
191
+ static async showAlertPopup(titleCode, textCode, type, confirmButtonCode, cancelButtonCode) {
192
+ return await UiUtil.showAlertPopup(titleCode, textCode, type, confirmButtonCode, cancelButtonCode)
193
+ }
194
+
195
+ /**
196
+ * @description 공통 코드 명으로 공통 코드 리스트 조회 후 리턴
197
+ **************************************
198
+ * @param {String} codeName 공통 코드 명
199
+ * @returns {Array} 코드 리스트
200
+ */
201
+ static async codeItems(codeName) {
202
+ return await ServiceUtil.codeItems(codeName)
203
+ }
204
+
205
+ /**
206
+ * @description code selector 에디터를 위한 공통 코드 조회
207
+ **************************************
208
+ * @param {String, Array} codeSet 공통 코드 명 또는 표현될 Array
209
+ * @returns {Array} 설정값 클리어를 위해 빈 값이 추가된 코드 리스트
210
+ */
211
+ static async getCodeSelectorData(codeSet) {
212
+ return await ServiceUtil.getCodeSelectorData(codeSet)
213
+ }
214
+
215
+ /**
216
+ * @description 시나리오를 호출해 코드 정보를 가져온다.
217
+ * 시나리오에서는 [{name : name, description : description}] 형태의 배열로 리턴한다.
218
+ ****************************************
219
+ * @param {String} name 시나리오 명
220
+ * @param {Array} args 시나리오 호출을 위한 변수
221
+ */
222
+ static async getCodeByScenario(name, args) {
223
+ return await ServiceUtil.getCodeByScenario(name, args)
224
+ }
225
+
226
+ /**
227
+ * @description 응답이 처리된 후 Graphql Error 메시지 표시
228
+ ****************************************************
229
+ * @param {Object} response 응답
230
+ */
231
+ static async showGraphqlErrorResponse(response) {
232
+ await ServiceUtil.showGraphqlErrorResponse(response)
233
+ }
234
+
235
+ /**
236
+ * @description Graphql 실행 시 Exception 표시
237
+ *************************************************
238
+ * @param {Object} exception graphql 에러
239
+ */
240
+ static async showGraphqlException(exception) {
241
+ await ServiceUtil.showGraphqlException(exception)
242
+ }
243
+
244
+ /**
245
+ * @description 그리드 데이터 내보내기
246
+ *********************************
247
+ * @param {Boolean} isElement 팝업으로 실행 중인지 여부
248
+ * @param {String} exportTitle 그리드 내보내기 용 타이틀
249
+ * @param {Grist} grist 그리드 오브젝트
250
+ * @returns {Object} { header: headerSetting, data: data } or Not
251
+ */
252
+ static async exportableData(isElement, exportTitle, grist) {
253
+ return await ServiceUtil.exportableData(isElement, exportTitle, grist)
254
+ }
255
+
256
+ /**
257
+ * @description 서버 사이드를 통해 그리드 데이터 내보내기
258
+ ************************************************
259
+ * @param {String} exportFileName 내보내기 파일명
260
+ * @param {String} exportQueryName 서버 사이드 GraphQL 쿼리명
261
+ * @param {Grist} grist 그리드 오브젝트
262
+ * @returns {Object} { header: headerSetting, data: data } or Not
263
+ */
264
+ static async exportableDataByServer(exportFileName, exportQueryName, grist) {
265
+ return await ServiceUtil.exportableDataByServer(exportFileName, exportQueryName, grist)
266
+ }
267
+
268
+ /**
269
+ * @description 데이터 리스트 페이지네이션 조회
270
+ ******************************************
271
+ * @param {String} queryFunc 쿼리 함수
272
+ * @param {Array} filters 조회 조건
273
+ * @param {Array} sortings 소팅 조건
274
+ * @param {Number|undefined} page 현재 페이지
275
+ * @param {Number} limit 페이지 당 표시할 레코드 건수
276
+ * @param {String} selectFields 조회할 필드 리스트
277
+ * @returns {FetchResult} 조회 결과 { records : [{,...}], total : 100 }
278
+ */
279
+ static async searchByPagination(queryFunc, filters, sortings, page, limit, selectFields) {
280
+ return await ServiceUtil.searchByPagination(queryFunc, filters, sortings, page, limit, selectFields)
281
+ }
282
+
283
+ /**
284
+ * @description 레코드의 id를 이용해 데이터 한 건 조회
285
+ *********************************************
286
+ * @param {String} queryFunc 조회할 query 함수명
287
+ * @param {String} id 레코드 ID
288
+ * @param {String} selectFields 조회할 필드 리스트
289
+ * @return {Object} 조회한 레코드
290
+ */
291
+ static async findOne(queryFunc, id, selectFields) {
292
+ return await ServiceUtil.findOne(queryFunc, id, selectFields)
293
+ }
294
+
295
+ /**
296
+ * @description 그리드에서 선택된 행의 ID 리턴
297
+ **************************************
298
+ * @param {Object} grist 그리스트
299
+ * @param {Boolean} alertWhenEmpty 선택된 행이 없는 경우 팝업을 실행할 것인지 여부
300
+ * @returns {Array} 선택 ID 리스트
301
+ */
302
+ static getSelectedIdList(grist, alertWhenEmpty) {
303
+ return ServiceUtil.getSelectedIdList(grist, alertWhenEmpty)
304
+ }
305
+
306
+ /**
307
+ * @description 그리스트의 선택된 레코드 삭제 처리
308
+ **************************************
309
+ * @param {Object} grist 그리스트
310
+ * @param {Object} mutationFunc 삭제 처리할 함수 명
311
+ * @returns {Boolean} 삭제 성공 여부
312
+ */
313
+ static async deleteListByGristSelected(grist, mutationFunc) {
314
+ return await ServiceUtil.deleteListByGristSelected(grist, mutationFunc)
315
+ }
316
+
317
+ /**
318
+ * @description ID 배열로 레코드 삭제 처리
319
+ **************************************
320
+ * @param {Object} grist 그리스트
321
+ * @param {Object} mutationFunc 삭제 처리할 함수
322
+ * @returns {Boolean} 삭제 성공 여부
323
+ */
324
+ static async deleteListByIds(ids, mutationFunc) {
325
+ return await ServiceUtil.deleteListByIds(ids, mutationFunc)
326
+ }
327
+
328
+ /**
329
+ * @description 그리스트에서 변경, 추가된 여러 데이터를 한 꺼번에 업데이트
330
+ ***************************************************
331
+ * @param {Object} grist 그리스트
332
+ * @param {String} mutationFunc updateMultiple을 위한 서버 측 mutation 함수 명
333
+ * @returns {Boolean} 업데이트 성공 여부
334
+ */
335
+ static async updateMultipleData(grist, mutationFunc) {
336
+ return await ServiceUtil.updateMultipleData(grist, mutationFunc)
337
+ }
338
+
339
+ /**
340
+ * @description 변경, 추가된 여러 데이터를 한 꺼번에 업데이트
341
+ ***************************************************
342
+ * @param {String} mutationFunc updateMultiple을 위한 서버 측 mutation 함수 명
343
+ * @param {Array} patches 변경, 추가된 여러 데이터
344
+ * @returns {Boolean} 업데이트 성공 여부
345
+ */
346
+ static async updateMultiple(mutationFunc, patches) {
347
+ return await ServiceUtil.updateMultiple(mutationFunc, patches)
348
+ }
349
+
350
+ /**
351
+ * @description 그리스트에서 변경, 추가된 내용 추출
352
+ ********************************************
353
+ * @param {Object} grist 그리스트
354
+ * @returns {Array} 그리스트에서 변경, 추가된 데이터 리스트
355
+ */
356
+ static patchesForUpdateMultiple(grist) {
357
+ return ServiceUtil.patchesForUpdateMultiple(grist)
358
+ }
359
+
360
+ /**
361
+ * @description 시나리오 서비스를 호출
362
+ **********************************
363
+ * @param {String} buttonName 시나리오 호출할 버튼 명, 버튼 명이 없다면 사용자에게 확인 과정을 생략한다.
364
+ * @param {String} scenarioName 호출할 시나리오 명
365
+ * @param {Object} variables 시나리오 호출 변수
366
+ * @param {Boolean} useMessage 컨펌, 완료 메시지 사용 여부
367
+ * @returns {Object | Boolean} 시나리오 호출 response or false
368
+ */
369
+ static async callScenario(buttonName, scenarioName, variables, useMessage) {
370
+ return await ServiceUtil.callScenario(buttonName, scenarioName, variables, useMessage)
371
+ }
372
+
373
+ /**
374
+ * @description 현재 사용자의 권한에 맞는 메뉴 정보 요청
375
+ **************************************
376
+ * @returns {Object} 메뉴 바에 표시될 메뉴 리스트
377
+ */
378
+ static async myDynamicMenus() {
379
+ return await ServiceUtil.myDynamicMenus()
380
+ }
381
+
382
+ /**
383
+ * @description 현재 사용자의 권한에 맞는 메뉴 정보 요청
384
+ **************************************
385
+ * @returns {Array} 메뉴 바에 표시될 메뉴 리스트
386
+ */
387
+ static async searchMyDynamicMenus() {
388
+ return await ServiceUtil.searchMyDynamicMenus()
389
+ }
390
+
391
+ /**
392
+ * @description 메뉴 ID 정보로 메뉴 메타 정보 조회
393
+ **********************************************
394
+ * @param {String} menuId 메뉴 ID 값
395
+ * @returns {Object} 메뉴 메타 정보
396
+ */
397
+ static async findMenuMeta(menuId) {
398
+ return await MetaUiUtil.findMenuMeta(menuId)
399
+ }
400
+
401
+ /**
402
+ * @description 메뉴 ID 로 사용자 개인이 설정한 메뉴의 그리드 컬럼 정보를 조회
403
+ **********************************************
404
+ * @param {String} menuId 메뉴 ID 값
405
+ * @returns {Object} 그리드 컬럼 개인화 정보
406
+ */
407
+ static async getMyMenuGridPersnal(menuId) {
408
+ return await ServiceUtil.getMyMenuGridPersnal(menuId)
409
+ }
410
+
411
+ /**
412
+ * @description 메뉴 라우팅 정보로 메뉴 메타 정보 조회
413
+ **********************************************
414
+ * @param {String} menuRouting 메뉴 route 값
415
+ * @returns {Object} 메뉴 메타 정보
416
+ */
417
+ static async findMenuMetaByRouting(menuRouting) {
418
+ return await MetaUiUtil.findMenuMetaByRouting(menuRouting)
419
+ }
420
+
421
+ /**
422
+ * @description 기본 그리스트 페이지 프로퍼티 리턴
423
+ ***************************************
424
+ * @returns {Object} 기본 그리스트 페이지 프로퍼티
425
+ */
426
+ static getBasicGristPageProperties() {
427
+ return MetaUiUtil.getBasicGristPageProperties()
428
+ }
429
+
430
+ /**
431
+ * @description 그리스트 기본 gutter 설정 리턴
432
+ ********************************************
433
+ * @param {Boolean} useRowSelector 행 선택 기능 사용 여부
434
+ * @param {Boolean} multiple 여러 행 선택 가능 여부
435
+ * @returns {Object} 그리스트 기본 gutter 설정
436
+ */
437
+ static getGristGuttersConfig(useRowSelector, multiple) {
438
+ return MetaUiUtil.getGristGuttersConfig(useRowSelector, multiple)
439
+ }
440
+
441
+ /**
442
+ * @description 그리스트 선택 모드 설정
443
+ ****************************************
444
+ * @returns {Object} 그리스트 선택 모드 설정
445
+ */
446
+ static getGristSelectableConfig(multiple) {
447
+ return MetaUiUtil.getGristSelectableConfig(multiple)
448
+ }
449
+
450
+ /**
451
+ * @description 페이지네이션 기본 페이지 수 [20, 30, 50, 100]
452
+ ********************************************
453
+ * @returns {Object} 페이지네이션 기본 페이지 수
454
+ */
455
+ static getGristPaginationDefaultConfig() {
456
+ return MetaUiUtil.getGristPaginationCustomConfig(20, 30, 50, 100)
457
+ }
458
+
459
+ /**
460
+ * @description 페이지네이션 페이지 수 [50, 100, 500, 1000]
461
+ ********************************************
462
+ * @returns {Object} 페이지네이션 페이지 수
463
+ */
464
+ static getGristPagination50Config() {
465
+ return MetaUiUtil.getGristPaginationCustomConfig(50, 100, 500, 1000)
466
+ }
467
+
468
+ /**
469
+ * @description 페이지네이션 페이지 수 [100, 500, 1000, 50000]
470
+ ********************************************
471
+ * @returns {Object} 페이지네이션 페이지 수
472
+ */
473
+ static getGristPagination100Config() {
474
+ return MetaUiUtil.getGristPaginationCustomConfig(100, 500, 1000, 5000)
475
+ }
476
+
477
+ /**
478
+ * @description 페이지네이션 페이지 수 [1000, 5000, 10000, 50000, 100000]
479
+ ********************************************
480
+ * @returns {Object} 페이지네이션 페이지 수
481
+ */
482
+ static getGristPaginationMaxConfig() {
483
+ return MetaUiUtil.getGristPaginationCustomConfig(1000, 5000, 10000, 50000, 100000)
484
+ }
485
+
486
+ /**
487
+ * @description 파라미터로 받은 pageLimits로 페이지네이션 페이지 수를 표시
488
+ ********************************************
489
+ * @param {Array} 페이지네이션 페이지 수 배열
490
+ * @returns {Object} 페이지네이션 페이지 수
491
+ */
492
+ static getGristPaginationCustomConfig(...pageLimits) {
493
+ return MetaUiUtil.getGristPaginationCustomConfig(...pageLimits)
494
+ }
495
+
496
+ /**
497
+ * @description 메뉴 메타 정보를 조회
498
+ **********************************
499
+ * @param {HTMLElement} pageView
500
+ * @returns {Object} 메뉴 메타 정보
501
+ */
502
+ static async getMenuMeta(pageView) {
503
+ return await MetaUiUtil.getMenuMeta(pageView)
504
+ }
505
+
506
+ /**
507
+ * @description 메뉴 메타 정보를 기반으로 그리드 설정 셋을 파싱하여 리턴
508
+ ************************************************
509
+ * @param {Object} pageView 페이지
510
+ * @returns {Object} 그리드 설정 셋
511
+ */
512
+ static async parseGridConfigSet(pageView) {
513
+ return await MetaUiUtil.parseGridConfigSet(pageView)
514
+ }
515
+
516
+ /**
517
+ * @description 메뉴 메타 정보를 기반으로 폼 설정 셋을 파싱하여 리턴
518
+ ************************************************
519
+ * @param {Object} pageView 페이지
520
+ * @returns {Object} 폼 설정 셋
521
+ */
522
+ static async parseFormConfigSet(pageView) {
523
+ return await MetaUiUtil.parseFormConfigSet(pageView)
524
+ }
525
+
526
+ /**
527
+ * @description 그리스트 Hidden 컬럼 설정 리턴
528
+ *****************************************
529
+ * @param {String} type 컬럼 타입
530
+ * @param {String} name 컬럼 명
531
+ * @returns {Object} 그리스트 Hidden 컬럼 설정
532
+ */
533
+ static getGristHiddenColumnConfig(type, name) {
534
+ return MetaUiUtil.getGristHiddenColumnConfig(type, name)
535
+ }
536
+
537
+ /**
538
+ * @description 그리스트 기본 컬럼 설정
539
+ ***********************************
540
+ * @param {String} type
541
+ * @param {String} name
542
+ * @param {String} align
543
+ * @param {Boolean} editable
544
+ * @param {Boolean} sortable
545
+ * @param {Number} width
546
+ * @returns {Object} 그리스트 기본 컬럼 설정
547
+ */
548
+ static getGristColumnConfig(type, name, align, editable, sortable, width) {
549
+ return MetaUiUtil.getGristColumnConfig(type, name, align, editable, sortable, width)
550
+ }
551
+
552
+ /**
553
+ * @description 그리스트 컬럼 설정
554
+ ***********************************
555
+ * @param {String} type
556
+ * @param {String} name
557
+ * @param {String} displayName
558
+ * @param {String} align
559
+ * @param {Boolean} editable
560
+ * @param {Boolean} sortable
561
+ * @param {Number} width
562
+ * @returns {Object} 그리스트 기본 컬럼 설정
563
+ */
564
+ static getGristColumnConfig2(type, name, displayName, align, editable, sortable, width) {
565
+ return MetaUiUtil.getGristColumnConfig2(type, name, displayName, align, editable, sortable, width)
566
+ }
567
+
568
+ /**
569
+ * @description 그리스트 Selector 컬럼 설정
570
+ ***********************************
571
+ * @param {String} name
572
+ * @param {String} displayName
573
+ * @param {String} align
574
+ * @param {Boolean} sortable
575
+ * @param {Number} width
576
+ * @param {Boolean} mandatory
577
+ * @param {Array} optionValues
578
+ * @returns {Object} 그리스트 기본 컬럼 설정
579
+ */
580
+ static getGristSelectorColumnConfig(name, displayName, align, sortable, width, mandatory, optionValues) {
581
+ return MetaUiUtil.getGristSelectorColumnConfig(name, displayName, align, sortable, width, mandatory, optionValues)
582
+ }
583
+
584
+ /**
585
+ * @description 그리스트 Code Selector 컬럼 설정
586
+ ***********************************
587
+ * @param {String} name
588
+ * @param {String} displayName
589
+ * @param {String} align
590
+ * @param {Boolean} sortable
591
+ * @param {Number} width
592
+ * @param {Boolean} mandatory
593
+ * @param {String} codeName
594
+ * @returns {Object} 그리스트 기본 컬럼 설정
595
+ */
596
+ static async getGristCodeSelectorColumnConfig(name, displayName, align, sortable, width, mandatory, codeName) {
597
+ return await MetaUiUtil.getGristCodeSelectorColumnConfig(
598
+ name,
599
+ displayName,
600
+ align,
601
+ sortable,
602
+ width,
603
+ mandatory,
604
+ codeName
605
+ )
606
+ }
607
+
608
+ /**
609
+ * @description 그리스트 검색 편집기 설정
610
+ ************************************
611
+ * @param {String} name 검색 필드 명
612
+ * @param {String} type 검색 편집기 유형
613
+ * @param {String} label 검색 필드 라벨명
614
+ * @param {String} operator 검색 연산자
615
+ * @param {Array} [optionValues] 옵션 값
616
+ * @returns {Object} 그리스트 검색 편집기 설정
617
+ */
618
+ static getGristSearchColumnConfig(name, type, label, operator, optionValues) {
619
+ return MetaUiUtil.getGristSearchColumnConfig(name, type, label, operator, optionValues)
620
+ }
621
+
622
+ /**
623
+ * @description 그리스트 검색 코드 편집기 설정
624
+ ************************************
625
+ * @param {String} name 검색 필드 명
626
+ * @param {String} type 검색 편집기 유형
627
+ * @param {String} label 검색 필드 라벨명
628
+ * @param {String} operator 검색 연산자
629
+ * @param {String} codeName 코드 이름
630
+ * @returns {Object} 그리스트 검색 코드 편집기 설정
631
+ */
632
+ static async getGristSearchCodeColumnConfig(name, type, label, operator, codeName) {
633
+ return await MetaUiUtil.getGristSearchCodeColumnConfig(name, type, label, operator, codeName)
634
+ }
635
+
636
+ /**
637
+ * @description 기본 컨텍스트 버튼이 아닌 커스텀 버튼 컨테이너 스타일
638
+ *********************************************************
639
+ * @returns {Array} 커스텀 버튼 컨테이너 CSS 리턴
640
+ */
641
+ static getCustomButtonContainerStyles() {
642
+ return MetaUiUtil.getCustomButtonContainerStyles()
643
+ }
644
+
645
+ /**
646
+ * @description 그리스트 강조 스타일 리턴
647
+ **********************************
648
+ * @returns {Array} 그리스트 강조 스타일 CSS
649
+ */
650
+ static getGristEmphasizedStyles() {
651
+ return MetaUiUtil.getGristEmphasizedStyles()
652
+ }
653
+
654
+ /**
655
+ * @description 기본 그리스트 스타일 리턴
656
+ ************************************
657
+ * @returns {Array} 기본 그리스트 스타일 CSS 리턴
658
+ */
659
+ static getBasicGristStyles() {
660
+ return MetaUiUtil.getBasicGristStyles()
661
+ }
662
+
663
+ /**
664
+ * @description 기본 그리스트 + Tab 스타일 리턴
665
+ ************************************
666
+ * @returns {Array} 기본 그리스트 + Tab 스타일 CSS 리턴
667
+ */
668
+ static getBasicGristTabStyles() {
669
+ return MetaUiUtil.getBasicGristTabStyles()
670
+ }
671
+
672
+ static getBasicMasterDetailStyles() {
673
+ return MetaUiUtil.getBasicMasterDetailStyles()
674
+ }
675
+
676
+ static getBasicTabDetailStyles() {
677
+ return MetaUiUtil.getBasicTabDetailStyles()
678
+ }
679
+
680
+ static getBasicMainTabStyles() {
681
+ return MetaUiUtil.getBasicMainTabStyles()
682
+ }
683
+
684
+ /**
685
+ * @description 기본 폽 스타일 리턴
686
+ ************************************
687
+ * @returns {Array} 기본 폼 스타일 CSS 리턴
688
+ */
689
+ static getBasicFormStyles() {
690
+ return MetaUiUtil.getBasicFormStyles()
691
+ }
692
+
693
+ /**
694
+ * @description 기본 탭 스타일 리턴
695
+ ************************************
696
+ * @returns {Array} 기본 탭 스타일 CSS 리턴
697
+ */
698
+ static getBasicTabStyles() {
699
+ return MetaUiUtil.getBasicTabStyles()
700
+ }
701
+
702
+ /**
703
+ * @description 기본 마스터 디테일 그리스트 스타일 리턴
704
+ ************************************
705
+ * @param {String} masterDetailType top-down / left-right
706
+ * @returns {Array} 마스터 디테일 그리스트 스타일 CSS
707
+ */
708
+ static getBasicMasterDetailGristStyle(masterDetailType) {
709
+ return MetaUiUtil.getBasicMasterDetailGristStyle(masterDetailType)
710
+ }
711
+
712
+ /**
713
+ * @description 기본 폼 스타일 리턴
714
+ ************************************
715
+ * @returns {Array} 기본 폼 스타일 CSS 리턴
716
+ */
717
+ static getBasicFormStyles() {
718
+ return MetaUiUtil.getBasicFormStyles()
719
+ }
720
+
721
+ /**
722
+ * @description 그리드 설정에 버튼 이름이 buttonName인 버튼이 있는지 체크
723
+ ***********************************************
724
+ * @param {Object} gridConfig 그리드 설정
725
+ * @param {String} buttonName 버튼 명
726
+ * @returns
727
+ */
728
+ static isGridButtonExist(gridConfig, buttonName) {
729
+ return MetaUiUtil.isGridButtonExist(gridConfig, buttonName)
730
+ }
731
+
732
+ /**
733
+ * @description 그리드 설정에서 셀렉트 컬럼을 추출
734
+ *******************************************
735
+ * @param {Array} gridColumns 그리드 컬럼 설정
736
+ * @returns {String} 셀렉트 필드 정보
737
+ */
738
+ static getSelectColumns(gridColumns) {
739
+ return MetaUiUtil.getSelectColumns(gridColumns)
740
+ }
741
+
742
+ /**
743
+ * @description pageView의 그리드 정보로 기본 그리스트 Html을 생성하여 리턴
744
+ ********************************
745
+ * @param {String} pageView 페이지 뷰
746
+ * @returns {HTMLElement} 그리스트 HTML
747
+ */
748
+ static getBasicGristHtml(pageView) {
749
+ return MetaUiUtil.getBasicGristHtml(pageView)
750
+ }
751
+
752
+ /**
753
+ * @description pageView의 폽 정보로 기본 폼 Html을 생성하여 리턴
754
+ ********************************
755
+ * @param {String} pageView 페이지 뷰
756
+ * @returns {HTMLElement} 폼 HTML
757
+ */
758
+ static getBasicFormHtml(pageView) {
759
+ return MetaUiUtil.getBasicFormHtml(pageView)
760
+ }
761
+
762
+ /**
763
+ * @description pageView의 탭 정보로 기본 탭 Html을 생성하여 리턴
764
+ ********************************
765
+ * @param {String} pageView 페이지 뷰
766
+ * @returns {HTMLElement} 탭 HTML
767
+ */
768
+ static getBasicTabHtml(pageView) {
769
+ return MetaUiUtil.getBasicTabHtml(pageView)
770
+ }
771
+
772
+ /**
773
+ * @description pageView의 그리스트 + 탭 정보로 기본 탭 Html을 생성하여 리턴
774
+ ********************************
775
+ * @param {String} pageView 페이지 뷰
776
+ * @returns {HTMLElement} 탭 HTML
777
+ */
778
+ static getGristTabHtml(pageView) {
779
+ return MetaUiUtil.getGristTabHtml(pageView)
780
+ }
781
+
782
+ /**
783
+ * @description pageView의 그리스트 + 디테일 정보로 기본 탭 Html을 생성하여 리턴
784
+ ********************************
785
+ * @param {String} pageView 페이지 뷰
786
+ * @returns {HTMLElement} 탭 HTML
787
+ */
788
+ static getMasterDetailHtml(pageView) {
789
+ return MetaUiUtil.getMasterDetailHtml(pageView)
790
+ }
791
+
792
+ /**
793
+ * @description pageView의 Tab + 디테일 정보로 기본 탭 Html을 생성하여 리턴
794
+ ********************************
795
+ * @param {String} pageView 페이지 뷰
796
+ * @returns {HTMLElement} 탭 HTML
797
+ */
798
+ static getTabDetailHtml(pageView) {
799
+ return MetaUiUtil.getTabDetailHtml(pageView)
800
+ }
801
+
802
+ /**
803
+ * @description pageView의 grist + tab 정보로 기본 탭 Html을 생성하여 리턴
804
+ ********************************
805
+ * @param {String} pageView 페이지 뷰
806
+ * @returns {HTMLElement} 탭 HTML
807
+ */
808
+ static getMainTabHtml(pageView) {
809
+ return MetaUiUtil.getMainTabHtml(pageView)
810
+ }
811
+ }