@things-factory/meta-ui 7.0.1-alpha.11 → 7.0.1-alpha.13
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/client/bootstrap.ts +0 -12
- package/client/index.ts +1 -0
- package/client/utils/rest-service-util.js +328 -0
- package/client/utils/terms-util.js +4 -92
- package/dist-client/bootstrap.js +0 -11
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/index.d.ts +1 -0
- package/dist-client/index.js +1 -0
- package/dist-client/index.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/rest-service-util.d.ts +120 -0
- package/dist-client/utils/rest-service-util.js +291 -0
- package/dist-client/utils/rest-service-util.js.map +1 -0
- package/dist-client/utils/terms-util.d.ts +8 -34
- package/dist-client/utils/terms-util.js +1 -84
- package/dist-client/utils/terms-util.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
package/client/bootstrap.ts
CHANGED
|
@@ -6,7 +6,6 @@ import { navigate, store } from '@operato/shell'
|
|
|
6
6
|
|
|
7
7
|
import { updateMenuTemplate } from './actions/main'
|
|
8
8
|
import metaUI from './reducers/main'
|
|
9
|
-
import { TermsUtil } from './utils/terms-util'
|
|
10
9
|
import { GristDefaultValue } from './utils/grist-default-value'
|
|
11
10
|
import { MENUS } from './dynamic-menus'
|
|
12
11
|
|
|
@@ -41,7 +40,6 @@ import './pages/history/history-json-list-popup'
|
|
|
41
40
|
|
|
42
41
|
import './pages/activity/meta-activity-writer-element'
|
|
43
42
|
import './pages/activity/meta-activity-viewer-element'
|
|
44
|
-
import { i18next } from '@operato/i18n'
|
|
45
43
|
|
|
46
44
|
export default async function bootstrap(module) {
|
|
47
45
|
// GRIST Renderer
|
|
@@ -69,16 +67,6 @@ export default async function bootstrap(module) {
|
|
|
69
67
|
metaUI
|
|
70
68
|
})
|
|
71
69
|
|
|
72
|
-
// 1. 용어 다운로드
|
|
73
|
-
i18next.on('initialized', function downloadTerminologies() {
|
|
74
|
-
var locale = i18next.language
|
|
75
|
-
if (locale == 'ko') {
|
|
76
|
-
locale = 'ko-KR'
|
|
77
|
-
}
|
|
78
|
-
TermsUtil.downloadTerminologies(locale)
|
|
79
|
-
i18next.off('initialized', downloadTerminologies)
|
|
80
|
-
})
|
|
81
|
-
|
|
82
70
|
auth.on('profile', async ({ credential, domains, domain }) => {
|
|
83
71
|
// 2. 메뉴 정보를 서버로 부터 받아서 적용
|
|
84
72
|
const menuRoutes = await MENUS
|
package/client/index.ts
CHANGED
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { decreaseActiveRequestCounter, increaseActiveRequestCounter } from '@operato/graphql'
|
|
2
|
+
|
|
3
|
+
import { TermsUtil } from './terms-util'
|
|
4
|
+
import { UiUtil } from './ui-util'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @license
|
|
8
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
9
|
+
* @author Shortstop <shortstop@hatiolab.com>
|
|
10
|
+
* @description REST 서비스 핸들링 유틸리티 함수 정의
|
|
11
|
+
*/
|
|
12
|
+
export class RestServiceUtil {
|
|
13
|
+
/**
|
|
14
|
+
* @description REST 서비스 응답이 에러인 경우 Error 메시지 표시
|
|
15
|
+
****************************************************
|
|
16
|
+
* @param {Object} response 응답
|
|
17
|
+
*/
|
|
18
|
+
static async showRestErrorResponse(response) {
|
|
19
|
+
if (response.status && response.status >= 400) {
|
|
20
|
+
try {
|
|
21
|
+
let errData = await response.json()
|
|
22
|
+
let errMsg =
|
|
23
|
+
errData.code && errData.msg ? `${errData.code} - ${errData.msg}` : TermsUtil.tText('unexpected_server_error')
|
|
24
|
+
UiUtil.showAlertPopup('title.error', errMsg, 'error', 'confirm')
|
|
25
|
+
return errData
|
|
26
|
+
} catch (err) {
|
|
27
|
+
UiUtil.showAlertPopup('title.error', err, 'error', 'confirm')
|
|
28
|
+
return false
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @description REST 서비스 실행 시 발생한 예외 표시
|
|
35
|
+
*************************************************
|
|
36
|
+
* @param {Object} exception 에러 Object
|
|
37
|
+
*/
|
|
38
|
+
static async showRestException(exception) {
|
|
39
|
+
if (exception) {
|
|
40
|
+
await UiUtil.showAlertPopup('REST Service Error', exception.message, 'error', 'confirm')
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @description 레코드의 id를 이용해 데이터 한 건 조회
|
|
46
|
+
*********************************************
|
|
47
|
+
* @param {String} url 조회할 서비스 URL
|
|
48
|
+
* @param {Object} params 파라미터
|
|
49
|
+
* @return {Object} 조회한 레코드
|
|
50
|
+
*/
|
|
51
|
+
static async restGet(url, params) {
|
|
52
|
+
let res = await RestServiceUtil.callRestGet(url, params, false)
|
|
53
|
+
if (res && res.status && res.status < 400) {
|
|
54
|
+
return await res.json()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return null
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @description 메소드 PUT인 REST 서비스 호출
|
|
62
|
+
*********************************************
|
|
63
|
+
* @param {String} url 서비스 URL
|
|
64
|
+
* @param {Object} params 파라미터
|
|
65
|
+
* @param {String} confirmTitleKey 확인 타이틀 용어 키
|
|
66
|
+
* @param {String} confirmMsgKey 확인 메시지 용어 키
|
|
67
|
+
* @param {Function} successCallback 성공 콜백
|
|
68
|
+
* @param {Function} failureCallback 실패 콜백
|
|
69
|
+
* @return {Object}
|
|
70
|
+
*/
|
|
71
|
+
static async restPut(url, params, confirmTitleKey, confirmMsgKey, successCallback, failureCallback) {
|
|
72
|
+
return await RestServiceUtil.callRest(
|
|
73
|
+
'PUT',
|
|
74
|
+
url,
|
|
75
|
+
params,
|
|
76
|
+
confirmTitleKey,
|
|
77
|
+
confirmMsgKey,
|
|
78
|
+
successCallback,
|
|
79
|
+
failureCallback
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @description 메소드 POST인 REST 서비스 호출
|
|
85
|
+
*********************************************
|
|
86
|
+
* @param {String} url 서비스 URL
|
|
87
|
+
* @param {Object} params 파라미터
|
|
88
|
+
* @param {String} confirmTitleKey 확인 타이틀 용어 키
|
|
89
|
+
* @param {String} confirmMsgKey 확인 메시지 용어 키
|
|
90
|
+
* @param {Function} successCallback 성공 콜백
|
|
91
|
+
* @param {Function} failureCallback 실패 콜백
|
|
92
|
+
* @return {Object}
|
|
93
|
+
*/
|
|
94
|
+
static async restPost(url, params, confirmTitleKey, confirmMsgKey, successCallback, failureCallback) {
|
|
95
|
+
return await RestServiceUtil.callRest(
|
|
96
|
+
'POST',
|
|
97
|
+
url,
|
|
98
|
+
params,
|
|
99
|
+
confirmTitleKey,
|
|
100
|
+
confirmMsgKey,
|
|
101
|
+
successCallback,
|
|
102
|
+
failureCallback
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @description 메소드 DELETE인 REST 서비스 호출
|
|
108
|
+
*********************************************
|
|
109
|
+
* @param {String} url 서비스 URL
|
|
110
|
+
* @param {Object} params 파라미터
|
|
111
|
+
* @param {String} confirmTitleKey 확인 타이틀 용어 키
|
|
112
|
+
* @param {String} confirmMsgKey 확인 메시지 용어 키
|
|
113
|
+
* @param {Function} successCallback 성공 콜백
|
|
114
|
+
* @param {Function} failureCallback 실패 콜백
|
|
115
|
+
* @return {Object}
|
|
116
|
+
*/
|
|
117
|
+
static async restDelete(url, params, confirmTitleKey, confirmMsgKey, successCallback, failureCallback) {
|
|
118
|
+
return await RestServiceUtil.callRest(
|
|
119
|
+
'DELETE',
|
|
120
|
+
url,
|
|
121
|
+
params,
|
|
122
|
+
confirmTitleKey,
|
|
123
|
+
confirmMsgKey,
|
|
124
|
+
successCallback,
|
|
125
|
+
failureCallback
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* @description REST 서비스 호출
|
|
131
|
+
*********************************************
|
|
132
|
+
* @param {String} method 메소드
|
|
133
|
+
* @param {String} url 서비스 URL
|
|
134
|
+
* @param {Object} params 파라미터
|
|
135
|
+
* @param {String} confirmTitleKey 확인 타이틀 용어 키
|
|
136
|
+
* @param {String} confirmMsgKey 확인 메시지 용어 키
|
|
137
|
+
* @param {Function} successCallback 성공 콜백
|
|
138
|
+
* @param {Function} failureCallback 실패 콜백
|
|
139
|
+
* @return {Object}
|
|
140
|
+
*/
|
|
141
|
+
static async callRest(method, url, params, confirmTitleKey, confirmMsgKey, successCallback, failureCallback) {
|
|
142
|
+
let confirm = confirmMsgKey
|
|
143
|
+
? await UiUtil.showAlertPopup(confirmTitleKey, confirmMsgKey, 'question', 'confirm', 'cancel')
|
|
144
|
+
: true
|
|
145
|
+
|
|
146
|
+
if (confirm) {
|
|
147
|
+
// 서비스 호출 결과
|
|
148
|
+
let res = null
|
|
149
|
+
|
|
150
|
+
if (method == 'POST') {
|
|
151
|
+
res = await restCallPost(url, params, false)
|
|
152
|
+
} else if (method == 'PUT') {
|
|
153
|
+
res = await restCallPut(url, params, false)
|
|
154
|
+
} else if (method == 'DELETE') {
|
|
155
|
+
res = await restCallDelete(url, params, false)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (res && res.status && res.status < 400) {
|
|
159
|
+
UiUtil.showToast('info', TermsUtil.tText('Success to Process'))
|
|
160
|
+
if (successCallback) successCallback()
|
|
161
|
+
return res.json ? await res.json() : res
|
|
162
|
+
} else {
|
|
163
|
+
if (failureCallback) failureCallback()
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return null
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @description REST 서버에 GET 방식 호출, response 리턴
|
|
172
|
+
*******************************************************
|
|
173
|
+
* @param {String} url
|
|
174
|
+
* @param {*} params
|
|
175
|
+
* @param {Boolean} responseJson
|
|
176
|
+
* @returns response 리턴
|
|
177
|
+
*/
|
|
178
|
+
static async callRestGet(url, params, responseJson) {
|
|
179
|
+
try {
|
|
180
|
+
increaseActiveRequestCounter()
|
|
181
|
+
|
|
182
|
+
if (params == null || typeof params == undefined) {
|
|
183
|
+
} else if (typeof params == 'string') {
|
|
184
|
+
url = `${url}?${params}`
|
|
185
|
+
} else if (Array.isArray(params)) {
|
|
186
|
+
url += '?'
|
|
187
|
+
params.forEach((item, index, array) => {
|
|
188
|
+
url += `${item['name']}=${item['value']}&`
|
|
189
|
+
})
|
|
190
|
+
} else if (Object.keys(params).length > 0) {
|
|
191
|
+
url += '?'
|
|
192
|
+
for (let param in params) {
|
|
193
|
+
url += `${param}=${params[param]}&`
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
const res = await fetch(url, {
|
|
197
|
+
method: 'GET',
|
|
198
|
+
headers: {
|
|
199
|
+
'Content-type': 'application/json',
|
|
200
|
+
Accept: 'application/json',
|
|
201
|
+
'x-locale': currentLocale()
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
|
|
205
|
+
const resJson = responseJson ? responseJson : false
|
|
206
|
+
return await checkResponse(res, resJson)
|
|
207
|
+
} finally {
|
|
208
|
+
decreaseActiveRequestCounter()
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* @description REST 서버에 POST 방식 호출, 서버 response 자체를 리턴
|
|
214
|
+
*****************************************************************
|
|
215
|
+
* @param {*} url
|
|
216
|
+
* @param {*} bodyObj
|
|
217
|
+
* @param {Boolean} responseJson 응답 JSON을 받을 지 여부
|
|
218
|
+
* @returns response 리턴
|
|
219
|
+
*/
|
|
220
|
+
static async callRestPost(url, bodyObj, responseJson) {
|
|
221
|
+
const bodyStr = typeof bodyObj === 'string' ? bodyObj : JSON.stringify(bodyObj)
|
|
222
|
+
|
|
223
|
+
try {
|
|
224
|
+
increaseActiveRequestCounter()
|
|
225
|
+
|
|
226
|
+
const res = await fetch(url, {
|
|
227
|
+
method: 'POST',
|
|
228
|
+
headers: {
|
|
229
|
+
'Content-type': 'application/json',
|
|
230
|
+
Accept: 'application/json',
|
|
231
|
+
'x-locale': currentLocale()
|
|
232
|
+
},
|
|
233
|
+
body: bodyStr
|
|
234
|
+
})
|
|
235
|
+
|
|
236
|
+
const resJson = responseJson ? responseJson : false
|
|
237
|
+
return await checkResponse(res, resJson)
|
|
238
|
+
} finally {
|
|
239
|
+
decreaseActiveRequestCounter()
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* @description REST 서버에 PUT 방식 호출, 서버 Response 자체를 리턴
|
|
245
|
+
****************************************************************
|
|
246
|
+
* @param {String} url
|
|
247
|
+
* @param {Object} bodyObj
|
|
248
|
+
* @param {Boolean} responseJson 응답 JSON을 받을 지 여부
|
|
249
|
+
* @returns 서버 response 리턴
|
|
250
|
+
*/
|
|
251
|
+
static async callRestPut(url, bodyObj, responseJson) {
|
|
252
|
+
try {
|
|
253
|
+
increaseActiveRequestCounter()
|
|
254
|
+
|
|
255
|
+
const bodyStr = typeof bodyObj === 'string' ? bodyObj : JSON.stringify(bodyObj)
|
|
256
|
+
const res = await fetch(url, {
|
|
257
|
+
method: 'PUT',
|
|
258
|
+
credentials: 'include',
|
|
259
|
+
headers: {
|
|
260
|
+
'Content-type': 'application/json',
|
|
261
|
+
Accept: 'application/json',
|
|
262
|
+
'x-locale': currentLocale()
|
|
263
|
+
},
|
|
264
|
+
body: bodyStr
|
|
265
|
+
})
|
|
266
|
+
|
|
267
|
+
const resJson = responseJson ? responseJson : false
|
|
268
|
+
return await checkResponse(res, resJson)
|
|
269
|
+
} finally {
|
|
270
|
+
decreaseActiveRequestCounter()
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* @description REST 서버에 DELETE 방식 호출 후 서버 response를 리턴
|
|
276
|
+
****************************************************************
|
|
277
|
+
* @param {String} url
|
|
278
|
+
* @param {Object} bodyObj
|
|
279
|
+
* @param {Boolean} responseJson 응답 JSON을 받을 지 여부
|
|
280
|
+
* @returns response 리턴
|
|
281
|
+
*/
|
|
282
|
+
static async restCallDelete(url, bodyObj, responseJson) {
|
|
283
|
+
try {
|
|
284
|
+
increaseActiveRequestCounter()
|
|
285
|
+
|
|
286
|
+
const bodyStr = typeof bodyObj === 'string' ? bodyObj : JSON.stringify(bodyObj)
|
|
287
|
+
const res = await fetch(url, {
|
|
288
|
+
method: 'DELETE',
|
|
289
|
+
headers: {
|
|
290
|
+
'Content-type': 'application/json',
|
|
291
|
+
Accept: 'application/json',
|
|
292
|
+
'x-locale': currentLocale()
|
|
293
|
+
},
|
|
294
|
+
body: bodyStr
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
const resJson = responseJson ? responseJson : false
|
|
298
|
+
return await checkResponse(res, resJson)
|
|
299
|
+
} finally {
|
|
300
|
+
decreaseActiveRequestCounter()
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* @description response 상태 체크 후 에러이면 에러 메시지 표시
|
|
306
|
+
*******************************************************
|
|
307
|
+
* @param {Object} res
|
|
308
|
+
* @param {Boolean} responseJson
|
|
309
|
+
*/
|
|
310
|
+
static async checkResponse(res, responseJson) {
|
|
311
|
+
if (res && res.status && res.status >= 400) {
|
|
312
|
+
try {
|
|
313
|
+
let isJson = await res.json ? true : false;
|
|
314
|
+
let errData = isJson ? await res.json() : await res.text();
|
|
315
|
+
let errMsg = (typeof errData == 'string') ?
|
|
316
|
+
errData :
|
|
317
|
+
(errData.code && errData.msg ? `${errData.code} - ${errData.msg}` : TermsUtil.tText('unexpected_server_error'))
|
|
318
|
+
|
|
319
|
+
await UiUtil.showAlertPopup('title.error', errMsg, 'error', 'confirm')
|
|
320
|
+
return errData;
|
|
321
|
+
} catch (err) {
|
|
322
|
+
console.log(err)
|
|
323
|
+
}
|
|
324
|
+
} else {
|
|
325
|
+
return responseJson === true && res.json ? await res.json() : res
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import gql from 'graphql-tag'
|
|
2
|
-
import { client } from '@operato/graphql'
|
|
3
|
-
|
|
4
1
|
import { i18next } from '@operato/i18n'
|
|
5
2
|
|
|
6
3
|
/**
|
|
@@ -10,67 +7,6 @@ import { i18next } from '@operato/i18n'
|
|
|
10
7
|
* @description 용어 처리 유틸리티
|
|
11
8
|
*/
|
|
12
9
|
export class TermsUtil {
|
|
13
|
-
/**
|
|
14
|
-
* 용어 : 용어 키 - 용어 표현 값
|
|
15
|
-
*/
|
|
16
|
-
static META_TERMS = null
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @description 서버에 현재 로케일에 맞는 용어를 모두 조회
|
|
20
|
-
***********************************************
|
|
21
|
-
* @param {String} locale
|
|
22
|
-
*/
|
|
23
|
-
static async downloadTerminologies(locale) {
|
|
24
|
-
let res = await TermsUtil.fetchTerminologies(locale)
|
|
25
|
-
let records = res.records
|
|
26
|
-
|
|
27
|
-
if (records && records.length > 0) {
|
|
28
|
-
TermsUtil.META_TERMS = {}
|
|
29
|
-
records.forEach(r => {
|
|
30
|
-
let name = `${r.category}.${r.name}`
|
|
31
|
-
TermsUtil.META_TERMS[name] = r.display
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @description locale 정보로 용어 모두 조회
|
|
38
|
-
*********************************************
|
|
39
|
-
* @param {String} locale
|
|
40
|
-
* @returns {Array} 용어 리스트
|
|
41
|
-
*/
|
|
42
|
-
static async fetchTerminologies(locale) {
|
|
43
|
-
let filters = [{ name: 'locale', operator: 'eq', value: locale }]
|
|
44
|
-
let sortings = [{ name: 'category' }, { name: 'name' }]
|
|
45
|
-
let page = 0
|
|
46
|
-
let limit = 0
|
|
47
|
-
|
|
48
|
-
const response = await client.query({
|
|
49
|
-
query: gql`
|
|
50
|
-
query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
51
|
-
terminologies(filters: $filters, pagination: $pagination, sortings: $sortings) {
|
|
52
|
-
items {
|
|
53
|
-
name
|
|
54
|
-
locale
|
|
55
|
-
category
|
|
56
|
-
display
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
total
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
`,
|
|
63
|
-
variables: { filters, sortings, pagination: { page, limit } }
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
if (!response.errors) {
|
|
67
|
-
return {
|
|
68
|
-
records: response.data.terminologies.items || [],
|
|
69
|
-
total: response.data.terminologies.total || 0
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
10
|
/**
|
|
75
11
|
* @description 라벨 (필드) labelName을 다국어 변환하여 리턴
|
|
76
12
|
***********************************************
|
|
@@ -160,33 +96,9 @@ export class TermsUtil {
|
|
|
160
96
|
* @returns termKey 다국어 변환 값
|
|
161
97
|
*/
|
|
162
98
|
static translate(termCategory, termName, parameters, defaultValue) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* @description termKey로 다국어 변환하여 parameters로 파라미터 처리하여 리턴, 변환값이 없다면 defaultValue 리턴, defaultValue가 없다면 null 리턴
|
|
169
|
-
***********************************************
|
|
170
|
-
* @param {String} termKey 용어 키 : {용어 카테고리}'.'{용어 이름}
|
|
171
|
-
* @param {Object} parameters 용어 이름에 파라미터가 있는 경우 파라미터 치환 처리할 오브젝트 데이터 {key1 : value1, key2 : value2} 형식 ...
|
|
172
|
-
* @param {String} defaultValue
|
|
173
|
-
* @returns termKey 다국어 변환 값
|
|
174
|
-
*/
|
|
175
|
-
static t(termKey, parameters, defaultValue) {
|
|
176
|
-
let translated = TermsUtil.META_TERMS ? TermsUtil.META_TERMS[termKey] : null
|
|
177
|
-
translated = translated ? translated : i18next.t(termKey)
|
|
178
|
-
|
|
179
|
-
if (translated && termKey != translated) {
|
|
180
|
-
if (parameters) {
|
|
181
|
-
Object.keys(parameters).forEach(function (param) {
|
|
182
|
-
var bracedData = '\\' + '{' + param.replace(/\$/, '\\$') + '\\' + '}'
|
|
183
|
-
var regEx = new RegExp(bracedData, 'gi')
|
|
184
|
-
translated = translated.replace(regEx, parameters[param])
|
|
185
|
-
})
|
|
186
|
-
}
|
|
187
|
-
return translated
|
|
188
|
-
} else {
|
|
189
|
-
return defaultValue
|
|
190
|
-
}
|
|
99
|
+
return i18next.t(`${termCategory}.${termName}`, {
|
|
100
|
+
...parameters,
|
|
101
|
+
defaultValue: defaultValue || termName
|
|
102
|
+
})
|
|
191
103
|
}
|
|
192
104
|
}
|
package/dist-client/bootstrap.js
CHANGED
|
@@ -4,7 +4,6 @@ import { ADD_MORENDA } from '@things-factory/more-base';
|
|
|
4
4
|
import { navigate, store } from '@operato/shell';
|
|
5
5
|
import { updateMenuTemplate } from './actions/main';
|
|
6
6
|
import metaUI from './reducers/main';
|
|
7
|
-
import { TermsUtil } from './utils/terms-util';
|
|
8
7
|
import { GristDefaultValue } from './utils/grist-default-value';
|
|
9
8
|
import { MENUS } from './dynamic-menus';
|
|
10
9
|
import { registerEditor as gristColumnRegisterEditor, registerRenderer as gristColumnRegisterRenderer, registerFilterRenderer as gristRegisterFilterRenderer } from '@operato/data-grist';
|
|
@@ -28,7 +27,6 @@ import './pages/history/history-copy-list-popup';
|
|
|
28
27
|
import './pages/history/history-json-list-popup';
|
|
29
28
|
import './pages/activity/meta-activity-writer-element';
|
|
30
29
|
import './pages/activity/meta-activity-viewer-element';
|
|
31
|
-
import { i18next } from '@operato/i18n';
|
|
32
30
|
export default async function bootstrap(module) {
|
|
33
31
|
// GRIST Renderer
|
|
34
32
|
gristColumnRegisterRenderer('meta-code-selector', GristRendererMetaCodeSelector);
|
|
@@ -49,15 +47,6 @@ export default async function bootstrap(module) {
|
|
|
49
47
|
store.addReducers({
|
|
50
48
|
metaUI
|
|
51
49
|
});
|
|
52
|
-
// 1. 용어 다운로드
|
|
53
|
-
i18next.on('initialized', function downloadTerminologies() {
|
|
54
|
-
var locale = i18next.language;
|
|
55
|
-
if (locale == 'ko') {
|
|
56
|
-
locale = 'ko-KR';
|
|
57
|
-
}
|
|
58
|
-
TermsUtil.downloadTerminologies(locale);
|
|
59
|
-
i18next.off('initialized', downloadTerminologies);
|
|
60
|
-
});
|
|
61
50
|
auth.on('profile', async ({ credential, domains, domain }) => {
|
|
62
51
|
// 2. 메뉴 정보를 서버로 부터 받아서 적용
|
|
63
52
|
const menuRoutes = await MENUS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit-html'\n\nimport { auth } from '@things-factory/auth-base/dist-client/auth.js'\nimport { ADD_MORENDA } from '@things-factory/more-base'\nimport { navigate, store } from '@operato/shell'\n\nimport { updateMenuTemplate } from './actions/main'\nimport metaUI from './reducers/main'\nimport { TermsUtil } from './utils/terms-util'\nimport { GristDefaultValue } from './utils/grist-default-value'\nimport { MENUS } from './dynamic-menus'\n\nimport {\n registerEditor as gristColumnRegisterEditor,\n registerRenderer as gristColumnRegisterRenderer,\n registerFilterRenderer as gristRegisterFilterRenderer\n} from '@operato/data-grist'\nimport { registerFilterRenderer as formRegisterFilterRenderer } from '@operato/form'\n\n/** GRIST Renderer Compoment */\nimport { GristRendererMetaCodeSelector } from './component/grist/renderer/grist-renderer-meta-code-selector'\nimport { GristRendererMetaObjectSelector } from './component/grist/renderer/grist-renderer-meta-object-selector'\nimport { GristRendererCodeInput } from './component/grist/renderer/grist-renderer-code-input'\n\n/** GRIST Editor Component */\nimport { GristEditorMetaCodeSelector } from './component/grist/editor/grist-editor-meta-code-selector'\nimport { GristEditorMetaObjectSelector } from './component/grist/editor/grist-editor-meta-object-selector'\nimport { GristEditorCodeInput } from './component/grist/editor/grist-editor-code-input'\n\n/** Grist Filter Compoment */\nimport { FilterGristMetaCodeSelect } from './component/filter/filter-grist-meta-code-select'\nimport { FilterGristMetaObjectSelect } from './component/filter/filter-grist-meta-object-select'\n\n/** Filter Form Component */\nimport { FilterFormMetaCodeSelect } from './component/filter/filter-form-meta-code-select'\nimport { FilterFormMetaObjectSelect } from './component/filter/filter-form-meta-object-select'\n\nimport './pages/personalize/personal-column-selector'\nimport './pages/history/history-copy-list-popup'\nimport './pages/history/history-json-list-popup'\n\nimport './pages/activity/meta-activity-writer-element'\nimport './pages/activity/meta-activity-viewer-element'\nimport { i18next } from '@operato/i18n'\n\nexport default async function bootstrap(module) {\n // GRIST Renderer\n gristColumnRegisterRenderer('meta-code-selector', GristRendererMetaCodeSelector)\n gristColumnRegisterRenderer('meta-object-selector', GristRendererMetaObjectSelector)\n gristColumnRegisterRenderer('code-input', GristRendererCodeInput)\n\n // GRIST Editor\n gristColumnRegisterEditor('meta-code-selector', GristEditorMetaCodeSelector)\n gristColumnRegisterEditor('meta-object-selector', GristEditorMetaObjectSelector)\n gristColumnRegisterEditor('code-input', GristEditorCodeInput)\n\n // Grist Filter Renderer\n gristRegisterFilterRenderer('meta-code-selector', [FilterGristMetaCodeSelect])\n gristRegisterFilterRenderer('meta-object-selector', [FilterGristMetaObjectSelect])\n\n // Filter Form Renderer\n formRegisterFilterRenderer('meta-code-selector', [FilterFormMetaCodeSelect])\n formRegisterFilterRenderer('meta-object-selector', [FilterFormMetaObjectSelect])\n\n // Grist Default Registry\n GristDefaultValue.registry()\n\n store.addReducers({\n metaUI\n })\n\n // 1. 용어 다운로드\n i18next.on('initialized', function downloadTerminologies() {\n var locale = i18next.language\n if (locale == 'ko') {\n locale = 'ko-KR'\n }\n TermsUtil.downloadTerminologies(locale)\n i18next.off('initialized', downloadTerminologies)\n })\n\n auth.on('profile', async ({ credential, domains, domain }) => {\n // 2. 메뉴 정보를 서버로 부터 받아서 적용\n const menuRoutes = await MENUS\n updateMenuTemplate(menuRoutes.menus)\n\n // 3. 동적 메뉴 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>auto_fix_high</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.dynamic_menu\"></ox-i18n>`,\n action: () => {\n navigate('dynamic-menu')\n }\n }\n })\n\n // 4. 엔티티 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>filter_tilt_shift</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.entity\"></ox-i18n>`,\n action: () => {\n navigate('config-entity')\n }\n }\n })\n\n // 5. 용어 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>speaker_notes</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.terminology\"></ox-i18n>`,\n action: () => {\n navigate('config-terminology')\n }\n }\n })\n\n // 6. 공통 코드 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>code</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.code_management\"></ox-i18n>`,\n action: () => {\n navigate('codes')\n }\n }\n })\n\n // 7. 업무정의 리스트 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>business_center</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.meta_activity_list\"></ox-i18n>`,\n action: () => {\n navigate('meta-activity-list')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>margin</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.meta_activity_define\"></ox-i18n>`,\n action: () => {\n navigate('meta-activity-define')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>work</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.activity_list\"></ox-i18n>`,\n action: () => {\n navigate('activity-list')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <mwc-icon>dataset</mwc-icon> `,\n name: html` <ox-i18n msgid=\"text.attribute management\"></ox-i18n> `,\n action: () => {\n navigate('attributes')\n }\n }\n })\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit-html'\n\nimport { auth } from '@things-factory/auth-base/dist-client/auth.js'\nimport { ADD_MORENDA } from '@things-factory/more-base'\nimport { navigate, store } from '@operato/shell'\n\nimport { updateMenuTemplate } from './actions/main'\nimport metaUI from './reducers/main'\nimport { GristDefaultValue } from './utils/grist-default-value'\nimport { MENUS } from './dynamic-menus'\n\nimport {\n registerEditor as gristColumnRegisterEditor,\n registerRenderer as gristColumnRegisterRenderer,\n registerFilterRenderer as gristRegisterFilterRenderer\n} from '@operato/data-grist'\nimport { registerFilterRenderer as formRegisterFilterRenderer } from '@operato/form'\n\n/** GRIST Renderer Compoment */\nimport { GristRendererMetaCodeSelector } from './component/grist/renderer/grist-renderer-meta-code-selector'\nimport { GristRendererMetaObjectSelector } from './component/grist/renderer/grist-renderer-meta-object-selector'\nimport { GristRendererCodeInput } from './component/grist/renderer/grist-renderer-code-input'\n\n/** GRIST Editor Component */\nimport { GristEditorMetaCodeSelector } from './component/grist/editor/grist-editor-meta-code-selector'\nimport { GristEditorMetaObjectSelector } from './component/grist/editor/grist-editor-meta-object-selector'\nimport { GristEditorCodeInput } from './component/grist/editor/grist-editor-code-input'\n\n/** Grist Filter Compoment */\nimport { FilterGristMetaCodeSelect } from './component/filter/filter-grist-meta-code-select'\nimport { FilterGristMetaObjectSelect } from './component/filter/filter-grist-meta-object-select'\n\n/** Filter Form Component */\nimport { FilterFormMetaCodeSelect } from './component/filter/filter-form-meta-code-select'\nimport { FilterFormMetaObjectSelect } from './component/filter/filter-form-meta-object-select'\n\nimport './pages/personalize/personal-column-selector'\nimport './pages/history/history-copy-list-popup'\nimport './pages/history/history-json-list-popup'\n\nimport './pages/activity/meta-activity-writer-element'\nimport './pages/activity/meta-activity-viewer-element'\n\nexport default async function bootstrap(module) {\n // GRIST Renderer\n gristColumnRegisterRenderer('meta-code-selector', GristRendererMetaCodeSelector)\n gristColumnRegisterRenderer('meta-object-selector', GristRendererMetaObjectSelector)\n gristColumnRegisterRenderer('code-input', GristRendererCodeInput)\n\n // GRIST Editor\n gristColumnRegisterEditor('meta-code-selector', GristEditorMetaCodeSelector)\n gristColumnRegisterEditor('meta-object-selector', GristEditorMetaObjectSelector)\n gristColumnRegisterEditor('code-input', GristEditorCodeInput)\n\n // Grist Filter Renderer\n gristRegisterFilterRenderer('meta-code-selector', [FilterGristMetaCodeSelect])\n gristRegisterFilterRenderer('meta-object-selector', [FilterGristMetaObjectSelect])\n\n // Filter Form Renderer\n formRegisterFilterRenderer('meta-code-selector', [FilterFormMetaCodeSelect])\n formRegisterFilterRenderer('meta-object-selector', [FilterFormMetaObjectSelect])\n\n // Grist Default Registry\n GristDefaultValue.registry()\n\n store.addReducers({\n metaUI\n })\n\n auth.on('profile', async ({ credential, domains, domain }) => {\n // 2. 메뉴 정보를 서버로 부터 받아서 적용\n const menuRoutes = await MENUS\n updateMenuTemplate(menuRoutes.menus)\n\n // 3. 동적 메뉴 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>auto_fix_high</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.dynamic_menu\"></ox-i18n>`,\n action: () => {\n navigate('dynamic-menu')\n }\n }\n })\n\n // 4. 엔티티 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>filter_tilt_shift</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.entity\"></ox-i18n>`,\n action: () => {\n navigate('config-entity')\n }\n }\n })\n\n // 5. 용어 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>speaker_notes</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.terminology\"></ox-i18n>`,\n action: () => {\n navigate('config-terminology')\n }\n }\n })\n\n // 6. 공통 코드 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>code</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.code_management\"></ox-i18n>`,\n action: () => {\n navigate('codes')\n }\n }\n })\n\n // 7. 업무정의 리스트 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>business_center</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.meta_activity_list\"></ox-i18n>`,\n action: () => {\n navigate('meta-activity-list')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>margin</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.meta_activity_define\"></ox-i18n>`,\n action: () => {\n navigate('meta-activity-define')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<mwc-icon>work</mwc-icon>`,\n name: html`<ox-i18n msgid=\"title.activity_list\"></ox-i18n>`,\n action: () => {\n navigate('activity-list')\n }\n }\n })\n\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <mwc-icon>dataset</mwc-icon> `,\n name: html` <ox-i18n msgid=\"text.attribute management\"></ox-i18n> `,\n action: () => {\n navigate('attributes')\n }\n }\n })\n })\n}\n"]}
|
package/dist-client/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './utils/terms-util';
|
|
|
4
4
|
export * from './utils/value-util';
|
|
5
5
|
export * from './utils/ui-util';
|
|
6
6
|
export * from './utils/meta-ui-util';
|
|
7
|
+
export * from './utils/rest-service-util';
|
|
7
8
|
export * from './utils/meta-api';
|
|
8
9
|
/** Mix In **/
|
|
9
10
|
export * from './mixin/meta-base-mixin';
|
package/dist-client/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './utils/terms-util';
|
|
|
4
4
|
export * from './utils/value-util';
|
|
5
5
|
export * from './utils/ui-util';
|
|
6
6
|
export * from './utils/meta-ui-util';
|
|
7
|
+
export * from './utils/rest-service-util';
|
|
7
8
|
export * from './utils/meta-api';
|
|
8
9
|
/** Mix In **/
|
|
9
10
|
export * from './mixin/meta-base-mixin';
|
package/dist-client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAE9B,mBAAmB;AACnB,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAEhC,gBAAgB;AAChB,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAE3C,cAAc;AACd,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAE7C,eAAe;AACf,cAAc,qCAAqC,CAAA;AACnD,cAAc,kDAAkD,CAAA","sourcesContent":["export * from './actions/main'\n\n/** Utilities **/\nexport * from './utils/terms-util'\nexport * from './utils/value-util'\nexport * from './utils/ui-util'\nexport * from './utils/meta-ui-util'\nexport * from './utils/meta-api'\n\n/** Mix In **/\nexport * from './mixin/meta-base-mixin'\nexport * from './mixin/meta-service-mixin'\nexport * from './mixin/meta-button-mixin'\nexport * from './mixin/meta-basic-grist-mixin'\nexport * from './mixin/meta-form-mixin'\nexport * from './mixin/meta-tab-mixin'\nexport * from './mixin/meta-grist-tab-mixin'\nexport * from './mixin/meta-tab-detail-mixin'\nexport * from './mixin/meta-main-tab-mixin'\n\n/** Page **/\nexport * from './pages/meta-form-element'\nexport * from './pages/meta-grist-element'\nexport * from './pages/meta-grist-page'\nexport * from './pages/meta-grist-tab-element'\nexport * from './pages/meta-grist-tab-page'\nexport * from './pages/meta-master-detail-element'\nexport * from './pages/meta-master-detail-page'\nexport * from './pages/meta-tab-element'\nexport * from './pages/meta-tab-detail-element'\nexport * from './pages/meta-tab-detail-page'\nexport * from './pages/meta-main-tab-page'\nexport * from './pages/meta-main-tab-element'\n\n/* Component */\nexport * from './component/popup/file-upload-popup'\nexport * from './component/popup/record-based-code-editor-popup'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAE9B,mBAAmB;AACnB,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAEhC,gBAAgB;AAChB,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,6BAA6B,CAAA;AAE3C,cAAc;AACd,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAE7C,eAAe;AACf,cAAc,qCAAqC,CAAA;AACnD,cAAc,kDAAkD,CAAA","sourcesContent":["export * from './actions/main'\n\n/** Utilities **/\nexport * from './utils/terms-util'\nexport * from './utils/value-util'\nexport * from './utils/ui-util'\nexport * from './utils/meta-ui-util'\nexport * from './utils/rest-service-util'\nexport * from './utils/meta-api'\n\n/** Mix In **/\nexport * from './mixin/meta-base-mixin'\nexport * from './mixin/meta-service-mixin'\nexport * from './mixin/meta-button-mixin'\nexport * from './mixin/meta-basic-grist-mixin'\nexport * from './mixin/meta-form-mixin'\nexport * from './mixin/meta-tab-mixin'\nexport * from './mixin/meta-grist-tab-mixin'\nexport * from './mixin/meta-tab-detail-mixin'\nexport * from './mixin/meta-main-tab-mixin'\n\n/** Page **/\nexport * from './pages/meta-form-element'\nexport * from './pages/meta-grist-element'\nexport * from './pages/meta-grist-page'\nexport * from './pages/meta-grist-tab-element'\nexport * from './pages/meta-grist-tab-page'\nexport * from './pages/meta-master-detail-element'\nexport * from './pages/meta-master-detail-page'\nexport * from './pages/meta-tab-element'\nexport * from './pages/meta-tab-detail-element'\nexport * from './pages/meta-tab-detail-page'\nexport * from './pages/meta-main-tab-page'\nexport * from './pages/meta-main-tab-element'\n\n/* Component */\nexport * from './component/popup/file-upload-popup'\nexport * from './component/popup/record-based-code-editor-popup'\n"]}
|