@things-factory/meta-ui 7.0.1-alpha.31 → 7.0.1-alpha.34
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 +1 -1
- package/client/component/filter/filter-form-meta-code-select.ts +99 -0
- package/client/component/filter/filter-form-meta-object-select.ts +104 -0
- package/client/component/filter/filter-grist-meta-code-select.ts +97 -0
- package/client/component/filter/filter-grist-meta-object-select.ts +102 -0
- package/client/component/popup/code-input-editor-popup.js +1 -1
- package/client/component/popup/{meta-object-selector-popup.js → meta-object-selector-popup.ts} +73 -46
- package/client/component/popup/{record-based-code-editor-popup.js → record-based-code-editor-popup.ts} +19 -18
- package/client/utils/meta-api.js +13 -1
- package/client/utils/meta-ui-util.js +21 -7
- package/client/utils/service-util.js +39 -3
- package/client/utils/{terms-util.js → terms-util.ts} +13 -13
- package/dist-client/bootstrap.js +1 -1
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/component/filter/filter-form-meta-code-select.d.ts +4 -1
- package/dist-client/component/filter/filter-form-meta-code-select.js +22 -19
- package/dist-client/component/filter/filter-form-meta-code-select.js.map +1 -1
- package/dist-client/component/filter/filter-form-meta-object-select.d.ts +4 -1
- package/dist-client/component/filter/filter-form-meta-object-select.js +28 -20
- package/dist-client/component/filter/filter-form-meta-object-select.js.map +1 -1
- package/dist-client/component/filter/filter-grist-meta-code-select.d.ts +3 -1
- package/dist-client/component/filter/filter-grist-meta-code-select.js +20 -19
- package/dist-client/component/filter/filter-grist-meta-code-select.js.map +1 -1
- package/dist-client/component/filter/filter-grist-meta-object-select.d.ts +3 -1
- package/dist-client/component/filter/filter-grist-meta-object-select.js +26 -20
- package/dist-client/component/filter/filter-grist-meta-object-select.js.map +1 -1
- package/dist-client/component/popup/code-input-editor-popup.js +1 -1
- package/dist-client/component/popup/code-input-editor-popup.js.map +1 -1
- package/dist-client/component/popup/meta-object-selector-popup.d.ts +27 -22
- package/dist-client/component/popup/meta-object-selector-popup.js +76 -47
- package/dist-client/component/popup/meta-object-selector-popup.js.map +1 -1
- package/dist-client/component/popup/record-based-code-editor-popup.d.ts +10 -11
- package/dist-client/component/popup/record-based-code-editor-popup.js +59 -17
- package/dist-client/component/popup/record-based-code-editor-popup.js.map +1 -1
- package/dist-client/pages/history/history-copy-list-popup.d.ts +1 -1
- package/dist-client/pages/history/history-json-list-popup.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/meta-api.d.ts +11 -2
- package/dist-client/utils/meta-api.js +12 -1
- package/dist-client/utils/meta-api.js.map +1 -1
- package/dist-client/utils/meta-ui-util.js +18 -7
- package/dist-client/utils/meta-ui-util.js.map +1 -1
- package/dist-client/utils/service-util.d.ts +11 -1
- package/dist-client/utils/service-util.js +37 -3
- package/dist-client/utils/service-util.js.map +1 -1
- package/dist-client/utils/terms-util.d.ts +7 -7
- package/dist-client/utils/terms-util.js +4 -4
- package/dist-client/utils/terms-util.js.map +1 -1
- package/package.json +9 -8
- package/client/component/filter/filter-form-meta-code-select.js +0 -94
- package/client/component/filter/filter-form-meta-object-select.js +0 -94
- package/client/component/filter/filter-grist-meta-code-select.js +0 -95
- package/client/component/filter/filter-grist-meta-object-select.js +0 -95
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import '@material/web/icon/icon.js'
|
|
2
|
+
import '@operato/input/ox-input-code.js'
|
|
2
3
|
|
|
3
|
-
import { css, html, LitElement } from 'lit'
|
|
4
|
+
import { css, html, LitElement, PropertyValues } from 'lit'
|
|
5
|
+
import { customElement, query, state } from 'lit/decorators.js'
|
|
6
|
+
import { OxInputCode } from '@operato/input'
|
|
7
|
+
import { closePopup } from '@operato/popup'
|
|
4
8
|
import { CommonGristStyles, ButtonContainerStyles } from '@operato/styles'
|
|
9
|
+
|
|
5
10
|
import { TermsUtil } from '../../utils/terms-util'
|
|
6
11
|
import { MetaApi } from '../../utils/meta-api'
|
|
7
12
|
import { ServiceUtil } from '../../utils/service-util'
|
|
8
|
-
import '@operato/input/ox-input-code.js'
|
|
9
|
-
import { closePopup } from '@operato/popup'
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* 레코드 기반 코드 편집기 팝업
|
|
13
16
|
*/
|
|
17
|
+
|
|
18
|
+
@customElement('record-based-code-editor-popup')
|
|
14
19
|
export class RecordBasedCodeEditorPopup extends LitElement {
|
|
15
20
|
static styles = [
|
|
16
21
|
CommonGristStyles,
|
|
@@ -34,6 +39,13 @@ export class RecordBasedCodeEditorPopup extends LitElement {
|
|
|
34
39
|
`
|
|
35
40
|
]
|
|
36
41
|
|
|
42
|
+
@state() private config?: any
|
|
43
|
+
@state() private record?: any
|
|
44
|
+
@state() private value?: any
|
|
45
|
+
@state() private codeValue?: any
|
|
46
|
+
|
|
47
|
+
@query('ox-input-code') private codeEditor!: OxInputCode
|
|
48
|
+
|
|
37
49
|
/**
|
|
38
50
|
* 그리드 버튼 (grid-custom) 선택시 코드 편집기 팝업을 띄우는 버튼 로직
|
|
39
51
|
{
|
|
@@ -61,7 +73,7 @@ export class RecordBasedCodeEditorPopup extends LitElement {
|
|
|
61
73
|
this.value = this.record[this.config.value_field] ? this.record[this.config.value_field] : ''
|
|
62
74
|
|
|
63
75
|
if (typeof this.value === 'object') {
|
|
64
|
-
this.codeValue = JSON.stringify(this.value,
|
|
76
|
+
this.codeValue = JSON.stringify(this.value, null, 2)
|
|
65
77
|
} else {
|
|
66
78
|
this.codeValue = this.value
|
|
67
79
|
}
|
|
@@ -69,8 +81,8 @@ export class RecordBasedCodeEditorPopup extends LitElement {
|
|
|
69
81
|
await super.connectedCallback()
|
|
70
82
|
}
|
|
71
83
|
|
|
72
|
-
async firstUpdated() {
|
|
73
|
-
await super.firstUpdated()
|
|
84
|
+
async firstUpdated(changes: PropertyValues<this>) {
|
|
85
|
+
await super.firstUpdated(changes)
|
|
74
86
|
}
|
|
75
87
|
|
|
76
88
|
render() {
|
|
@@ -95,15 +107,6 @@ export class RecordBasedCodeEditorPopup extends LitElement {
|
|
|
95
107
|
}
|
|
96
108
|
}
|
|
97
109
|
|
|
98
|
-
/**
|
|
99
|
-
* @description 코드편집기 엘리먼트
|
|
100
|
-
***************************
|
|
101
|
-
* @returns
|
|
102
|
-
*/
|
|
103
|
-
get codeEditor() {
|
|
104
|
-
return this.shadowRoot.querySelector('ox-input-code')
|
|
105
|
-
}
|
|
106
|
-
|
|
107
110
|
/**
|
|
108
111
|
* @description 저장
|
|
109
112
|
***************************
|
|
@@ -111,7 +114,7 @@ export class RecordBasedCodeEditorPopup extends LitElement {
|
|
|
111
114
|
*/
|
|
112
115
|
async clickSave(e) {
|
|
113
116
|
if (this.codeValue === this.codeEditor.value) {
|
|
114
|
-
MetaApi.showToast('info', TermsUtil.tText('NOTHING_CHANGED'))
|
|
117
|
+
MetaApi.showToast('info', String(TermsUtil.tText('NOTHING_CHANGED')))
|
|
115
118
|
} else {
|
|
116
119
|
let saveAction = this.config.save_action
|
|
117
120
|
let saveFuncName = saveAction.func_name
|
|
@@ -133,5 +136,3 @@ export class RecordBasedCodeEditorPopup extends LitElement {
|
|
|
133
136
|
closePopup(this)
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
|
-
|
|
137
|
-
customElements.define('record-based-code-editor-popup', RecordBasedCodeEditorPopup)
|
package/client/utils/meta-api.js
CHANGED
|
@@ -252,6 +252,18 @@ export class MetaApi {
|
|
|
252
252
|
return await ServiceUtil.exportableData(isElement, exportTitle, grist)
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
/**
|
|
256
|
+
* @description 서버 사이드를 통해 그리드 데이터 내보내기
|
|
257
|
+
************************************************
|
|
258
|
+
* @param {String} exportFileName 내보내기 파일명
|
|
259
|
+
* @param {String} exportQueryName 서버 사이드 GraphQL 쿼리명
|
|
260
|
+
* @param {Grist} grist 그리드 오브젝트
|
|
261
|
+
* @returns {Object} { header: headerSetting, data: data } or Not
|
|
262
|
+
*/
|
|
263
|
+
static async exportableDataByServer(exportFileName, exportQueryName, grist) {
|
|
264
|
+
return await ServiceUtil.exportableDataByServer(exportFileName, exportQueryName, grist)
|
|
265
|
+
}
|
|
266
|
+
|
|
255
267
|
/**
|
|
256
268
|
* @description 데이터 리스트 페이지네이션 조회
|
|
257
269
|
******************************************
|
|
@@ -261,7 +273,7 @@ export class MetaApi {
|
|
|
261
273
|
* @param {Number} page 현재 페이지
|
|
262
274
|
* @param {Number} limit 페이지 당 표시할 레코드 건수
|
|
263
275
|
* @param {String} selectFields 조회할 필드 리스트
|
|
264
|
-
* @returns {
|
|
276
|
+
* @returns {FetchResult} 조회 결과 { records : [{,...}], total : 100 }
|
|
265
277
|
*/
|
|
266
278
|
static async searchByPagination(queryFunc, filters, sortings, page, limit, selectFields) {
|
|
267
279
|
return await ServiceUtil.searchByPagination(queryFunc, filters, sortings, page, limit, selectFields)
|
|
@@ -179,11 +179,12 @@ export class MetaUiUtil {
|
|
|
179
179
|
* @returns {Object} 메뉴 메타 정보
|
|
180
180
|
*/
|
|
181
181
|
static async getMenuMeta(pageView) {
|
|
182
|
+
// 1. 라우팅 추출 및 메뉴 메타 정보 조회
|
|
182
183
|
let currentRouting = pageView.isPage ? UiUtil.currentRouting() : pageView.route_name
|
|
183
184
|
pageView.currentRouting = currentRouting
|
|
184
185
|
let menuMetaData = await MetaUiUtil.findMenuMetaByRouting(pageView, currentRouting)
|
|
185
186
|
|
|
186
|
-
// Activity 여부에 따라 버튼 / 검색 삭제
|
|
187
|
+
// 2. Activity 여부에 따라 버튼 / 검색 삭제
|
|
187
188
|
if (pageView.is_activity === true) {
|
|
188
189
|
menuMetaData.grid.option.grid_refresh_when_page_activated = false
|
|
189
190
|
menuMetaData.grid.option.use_row_checker = false
|
|
@@ -193,7 +194,7 @@ export class MetaUiUtil {
|
|
|
193
194
|
menuMetaData.button = menuMetaData.button.filter(x => x.name == 'add')
|
|
194
195
|
}
|
|
195
196
|
|
|
196
|
-
// 화면이 읽기 전용인 경우
|
|
197
|
+
// 3. 화면이 읽기 전용인 경우 그리드 Configuration 처리
|
|
197
198
|
if (pageView.is_readonly === true) {
|
|
198
199
|
menuMetaData.grid_column.forEach(x => {
|
|
199
200
|
x.editable = false
|
|
@@ -201,12 +202,12 @@ export class MetaUiUtil {
|
|
|
201
202
|
menuMetaData.button = menuMetaData.button.filter(x => x.name != 'add')
|
|
202
203
|
}
|
|
203
204
|
|
|
204
|
-
// 필터 폼 사용 여부 강제 설정
|
|
205
|
+
// 4. 필터 폼 사용 여부 강제 설정
|
|
205
206
|
if (pageView.use_filter_form === false) {
|
|
206
207
|
menuMetaData.grid.use_filter_form = false
|
|
207
208
|
}
|
|
208
209
|
|
|
209
|
-
// 필드 변경 이벤트 처리자 설정
|
|
210
|
+
// 5. 필드 변경 이벤트 처리자 설정
|
|
210
211
|
menuMetaData.grid_column
|
|
211
212
|
.filter(x => x.change_event_handler)
|
|
212
213
|
.forEach(x => {
|
|
@@ -214,7 +215,7 @@ export class MetaUiUtil {
|
|
|
214
215
|
pageView.fieldChangeHandlers[x.name] = x.change_event_handler
|
|
215
216
|
})
|
|
216
217
|
|
|
217
|
-
// object, resource-object -> meta-object-selector, resource-code-selector -> meta-code-selector
|
|
218
|
+
// 6. 그리드 타입 통합 처리 : object, resource-object -> meta-object-selector, resource-code-selector -> meta-code-selector
|
|
218
219
|
menuMetaData.grid_column.forEach(x => {
|
|
219
220
|
if (['resource-object', 'object'].includes(x.type)) {
|
|
220
221
|
x.type = 'meta-object-selector'
|
|
@@ -223,6 +224,17 @@ export class MetaUiUtil {
|
|
|
223
224
|
}
|
|
224
225
|
})
|
|
225
226
|
|
|
227
|
+
// 7. 검색 필드의 검색 Operator가 in인 경우 디폴트 값을 배열로 변경
|
|
228
|
+
if(menuMetaData.search && menuMetaData.search.length > 0) {
|
|
229
|
+
menuMetaData.search.forEach(c => {
|
|
230
|
+
let value = c.value
|
|
231
|
+
if(c.operator == 'in' && value.indexOf(',') > 0) {
|
|
232
|
+
c.value = value.split(',')
|
|
233
|
+
}
|
|
234
|
+
})
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// 8. 메뉴 메타 정보 리턴
|
|
226
238
|
return menuMetaData
|
|
227
239
|
}
|
|
228
240
|
|
|
@@ -990,7 +1002,7 @@ export class MetaUiUtil {
|
|
|
990
1002
|
let defValue = col.filter.value
|
|
991
1003
|
let dateKeywords = ['today', 'year', 'month', 'date', 'hour', 'min', 'sec']
|
|
992
1004
|
|
|
993
|
-
if (defValue && dateKeywords.filter(x => defValue.startsWith(x)).length > 0) {
|
|
1005
|
+
if (defValue && typeof defValue == 'string' && dateKeywords.filter(x => defValue.startsWith(x)).length > 0) {
|
|
994
1006
|
let defRes = []
|
|
995
1007
|
let dateFormat = { date: 'YYYY-MM-DD', datetime: 'YYYY-MM-DD HH:mm:ss' }
|
|
996
1008
|
let durationType = { today: 'day', year: 'year', month: 'month', date: 'day', hour: 'hour', min: 'minute', sec: 'second' }
|
|
@@ -1001,11 +1013,13 @@ export class MetaUiUtil {
|
|
|
1001
1013
|
|
|
1002
1014
|
if (dateKeywords.includes(x)) {
|
|
1003
1015
|
defRes.push(todayMoment.startOf(durationType[x]).format(dateFormat[col.type]))
|
|
1016
|
+
|
|
1004
1017
|
} else if (x.includes('-')) {
|
|
1005
1018
|
let wordSplits = x.split('-')
|
|
1006
1019
|
let key = wordSplits[0]
|
|
1007
1020
|
let value = wordSplits[1]
|
|
1008
1021
|
defRes.push(todayMoment.subtract(value, durationType[key]).startOf(durationType[key]).format(dateFormat[col.type]))
|
|
1022
|
+
|
|
1009
1023
|
} else if (x.includes('+')) {
|
|
1010
1024
|
let wordSplits = x.split('+')
|
|
1011
1025
|
let key = wordSplits[0]
|
|
@@ -1560,7 +1574,7 @@ export class MetaUiUtil {
|
|
|
1560
1574
|
*/
|
|
1561
1575
|
static async commonButtonCallService(pageView, action, filterParam, records) {
|
|
1562
1576
|
// Graphql 서비스 호출
|
|
1563
|
-
let response = await ServiceUtil.callService(action, filterParam, records)
|
|
1577
|
+
let response = await ServiceUtil.callService(pageView, action, filterParam, records)
|
|
1564
1578
|
|
|
1565
1579
|
// 후 처리 액션 처리
|
|
1566
1580
|
if (!response.errors && action.after && ValueUtil.isNotEmpty(action.after)) {
|
|
@@ -497,6 +497,40 @@ export class ServiceUtil {
|
|
|
497
497
|
}
|
|
498
498
|
}
|
|
499
499
|
|
|
500
|
+
/**
|
|
501
|
+
* @description 서버 사이드를 거쳐 그리드 데이터 내보내기
|
|
502
|
+
************************************************
|
|
503
|
+
* @param {String} exportFileName 그리드 내보내기 용 타이틀 (파일명)
|
|
504
|
+
* @param {String} exportQueryName 서버 사이드 GraphQL 쿼리명
|
|
505
|
+
* @param {Grist} grist 그리드 오브젝트
|
|
506
|
+
* @returns {Object} { header: headerSetting, data: data } or Not
|
|
507
|
+
*/
|
|
508
|
+
static async exportableDataByServer(exportFileName, exportQueryName, grist) {
|
|
509
|
+
// 1. 내보내기 graphQL 요청
|
|
510
|
+
const response = await client.query({
|
|
511
|
+
query: gql`
|
|
512
|
+
query Query($filters: [Filter!]!) {
|
|
513
|
+
responses: ${exportQueryName}(filters: $filters)
|
|
514
|
+
}
|
|
515
|
+
`,
|
|
516
|
+
variables: {
|
|
517
|
+
filters: grist.filters
|
|
518
|
+
}
|
|
519
|
+
})
|
|
520
|
+
|
|
521
|
+
// 2. 응답 처리
|
|
522
|
+
const data = response.data.responses
|
|
523
|
+
const bufferData = Buffer.from(data, 'base64')
|
|
524
|
+
const blob = new Blob([bufferData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
|
|
525
|
+
|
|
526
|
+
const a = document.createElement('a')
|
|
527
|
+
a.href = window.URL.createObjectURL(blob)
|
|
528
|
+
a.download = `${exportFileName}.xlsx`
|
|
529
|
+
document.body.appendChild(a)
|
|
530
|
+
a.click()
|
|
531
|
+
a.remove()
|
|
532
|
+
}
|
|
533
|
+
|
|
500
534
|
/**
|
|
501
535
|
* @description 데이터 리스트 페이지네이션 조회
|
|
502
536
|
****************************************
|
|
@@ -865,14 +899,17 @@ export class ServiceUtil {
|
|
|
865
899
|
/**
|
|
866
900
|
* @description Graphql 서비스 호출
|
|
867
901
|
***********************************
|
|
902
|
+
* @param {Object} pageView 호출 페이지 뷰
|
|
868
903
|
* @param {Object} action 서비스 설정 정보
|
|
869
904
|
* @param {Object} filterParam 필터용 파라미터
|
|
870
905
|
* @param {Object} dataParams 파라미터
|
|
871
906
|
* @returns {Object} 서비스 호출 결과
|
|
872
907
|
*/
|
|
873
|
-
static async callService(action, filterParam, dataParams) {
|
|
908
|
+
static async callService(pageView, action, filterParam, dataParams) {
|
|
874
909
|
if (action.graphql_type == 'query') {
|
|
875
910
|
return await ServiceUtil.callQueryService(action, filterParam, dataParams)
|
|
911
|
+
} else if(action.graphql_type == 'export') {
|
|
912
|
+
return await ServiceUtil.exportableDataByServer(action.export_file_name, action.query_name, pageView.grist)
|
|
876
913
|
} else {
|
|
877
914
|
return await ServiceUtil.callMutationService(action, filterParam, dataParams)
|
|
878
915
|
}
|
|
@@ -977,9 +1014,8 @@ export class ServiceUtil {
|
|
|
977
1014
|
throw new Error('mutation type not found!')
|
|
978
1015
|
}
|
|
979
1016
|
|
|
980
|
-
//
|
|
1017
|
+
// 2. GraphQL 설정 추출
|
|
981
1018
|
let data = action.data
|
|
982
|
-
// 2. 서비스 호출 파라미터
|
|
983
1019
|
let mutationParams = Array.isArray(dataParams) ? [] : {}
|
|
984
1020
|
|
|
985
1021
|
if (data) {
|
|
@@ -14,8 +14,8 @@ export class TermsUtil {
|
|
|
14
14
|
* @param {Object} params
|
|
15
15
|
* @returns 번역된 라벨 (필드) 명
|
|
16
16
|
*/
|
|
17
|
-
static tLabel(labelName, params) {
|
|
18
|
-
let labelValue = TermsUtil.translate('label', labelName, params
|
|
17
|
+
static tLabel(labelName: string, params?: any) {
|
|
18
|
+
let labelValue = TermsUtil.translate('label', labelName, params)
|
|
19
19
|
return labelValue ? labelValue : TermsUtil.translate('field', labelName, params, labelName)
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -26,8 +26,8 @@ export class TermsUtil {
|
|
|
26
26
|
* @param {Object} params
|
|
27
27
|
* @returns 번역된 필드 명
|
|
28
28
|
*/
|
|
29
|
-
static tField(fieldName, params) {
|
|
30
|
-
let fieldValue = TermsUtil.translate('field', fieldName, params
|
|
29
|
+
static tField(fieldName: string, params?: any) {
|
|
30
|
+
let fieldValue = TermsUtil.translate('field', fieldName, params)
|
|
31
31
|
return fieldValue ? fieldValue : TermsUtil.translate('field', fieldName, params, fieldName)
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -37,7 +37,7 @@ export class TermsUtil {
|
|
|
37
37
|
* @param {String} buttonName
|
|
38
38
|
* @returns 번역된 버튼 명
|
|
39
39
|
*/
|
|
40
|
-
static tButton(buttonName) {
|
|
40
|
+
static tButton(buttonName: string) {
|
|
41
41
|
return TermsUtil.translate('button', buttonName, null, buttonName)
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -48,8 +48,8 @@ export class TermsUtil {
|
|
|
48
48
|
* @param {Object} params
|
|
49
49
|
* @returns 번역된 타이틀 명
|
|
50
50
|
*/
|
|
51
|
-
static tTitle(titleName, params) {
|
|
52
|
-
let titleValue = TermsUtil.translate('title', titleName, params
|
|
51
|
+
static tTitle(titleName: string, params?: any) {
|
|
52
|
+
let titleValue = TermsUtil.translate('title', titleName, params)
|
|
53
53
|
return titleValue ? titleValue : TermsUtil.translate('menu', titleName, params, titleName)
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -59,8 +59,8 @@ export class TermsUtil {
|
|
|
59
59
|
* @param {String} menuName
|
|
60
60
|
* @returns 번역된 메뉴 명
|
|
61
61
|
*/
|
|
62
|
-
static tMenu(menuName) {
|
|
63
|
-
let menuValue = TermsUtil.translate('menu', menuName, null
|
|
62
|
+
static tMenu(menuName: string) {
|
|
63
|
+
let menuValue = TermsUtil.translate('menu', menuName, null)
|
|
64
64
|
return menuValue ? menuValue : TermsUtil.translate('title', menuName, null, menuName)
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -71,7 +71,7 @@ export class TermsUtil {
|
|
|
71
71
|
* @param {Object} params
|
|
72
72
|
* @returns 번역된 텍스트 값
|
|
73
73
|
*/
|
|
74
|
-
static tText(textName, params) {
|
|
74
|
+
static tText(textName: string, params?: any) {
|
|
75
75
|
return TermsUtil.translate('text', textName, params, textName)
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -82,7 +82,7 @@ export class TermsUtil {
|
|
|
82
82
|
* @param {Object} params
|
|
83
83
|
* @returns 번역된 에러 메시지
|
|
84
84
|
*/
|
|
85
|
-
static tError(errorName, params) {
|
|
85
|
+
static tError(errorName: string, params?: any) {
|
|
86
86
|
return TermsUtil.translate('error', errorName, params, errorName)
|
|
87
87
|
}
|
|
88
88
|
|
|
@@ -95,7 +95,7 @@ export class TermsUtil {
|
|
|
95
95
|
* @param {String} defaultValue
|
|
96
96
|
* @returns termKey 다국어 변환 값
|
|
97
97
|
*/
|
|
98
|
-
static translate(termCategory, termName, parameters, defaultValue) {
|
|
98
|
+
static translate(termCategory: string, termName: string, parameters?: any, defaultValue?: string) {
|
|
99
99
|
return i18next.t(`${termCategory}.${termName}`, {
|
|
100
100
|
...parameters,
|
|
101
101
|
defaultValue: defaultValue || termName
|
|
@@ -110,7 +110,7 @@ export class TermsUtil {
|
|
|
110
110
|
* @param {String} defaultValue
|
|
111
111
|
* @returns termKey 다국어 변환 값
|
|
112
112
|
*/
|
|
113
|
-
static t(termKey, parameters, defaultValue) {
|
|
113
|
+
static t(termKey: string, parameters: any, defaultValue: string) {
|
|
114
114
|
return i18next.t(termKey, {
|
|
115
115
|
...parameters,
|
|
116
116
|
defaultValue: defaultValue || termKey
|
package/dist-client/bootstrap.js
CHANGED
|
@@ -4,7 +4,7 @@ import { navigate, store } from '@operato/shell';
|
|
|
4
4
|
import { i18next } from '@operato/i18n';
|
|
5
5
|
import { registerEditor as gristColumnRegisterEditor, registerRenderer as gristColumnRegisterRenderer, registerFilterRenderer as gristRegisterFilterRenderer } from '@operato/data-grist';
|
|
6
6
|
import { registerFilterRenderer as formRegisterFilterRenderer } from '@operato/form';
|
|
7
|
-
import { auth } from '@things-factory/auth-base/dist-client
|
|
7
|
+
import { auth } from '@things-factory/auth-base/dist-client';
|
|
8
8
|
import { ADD_MORENDA } from '@things-factory/more-base/client';
|
|
9
9
|
import { updateMenuTemplate } from './actions/main';
|
|
10
10
|
import metaUI from './reducers/main';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport { html } from 'lit-html'\n\nimport { navigate, store } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\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\nimport { auth } from '@things-factory/auth-base/dist-client/auth.js'\nimport { ADD_MORENDA } from '@things-factory/more-base/client'\n\nimport { updateMenuTemplate } from './actions/main'\nimport metaUI from './reducers/main'\nimport { GristDefaultValue } from './utils/grist-default-value'\nimport { MENUS } from './dynamic-menus'\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 i18next.on('languageChanged', async () => {\n updateMenuTemplate(menuRoutes.menus)\n })\n\n // 3. 동적 메뉴 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<md-icon>auto_fix_high</md-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`<md-icon>filter_tilt_shift</md-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`<md-icon>speaker_notes</md-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`<md-icon>code</md-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`<md-icon>business_center</md-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`<md-icon>margin</md-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`<md-icon>work</md-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` <md-icon>dataset</md-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 '@material/web/icon/icon.js'\n\nimport { html } from 'lit-html'\n\nimport { navigate, store } from '@operato/shell'\nimport { i18next } from '@operato/i18n'\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\nimport { auth } from '@things-factory/auth-base/dist-client'\nimport { ADD_MORENDA } from '@things-factory/more-base/client'\n\nimport { updateMenuTemplate } from './actions/main'\nimport metaUI from './reducers/main'\nimport { GristDefaultValue } from './utils/grist-default-value'\nimport { MENUS } from './dynamic-menus'\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 i18next.on('languageChanged', async () => {\n updateMenuTemplate(menuRoutes.menus)\n })\n\n // 3. 동적 메뉴 관리 화면 추가\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html`<md-icon>auto_fix_high</md-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`<md-icon>filter_tilt_shift</md-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`<md-icon>speaker_notes</md-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`<md-icon>code</md-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`<md-icon>business_center</md-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`<md-icon>margin</md-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`<md-icon>work</md-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` <md-icon>dataset</md-icon> `,\n name: html` <ox-i18n msgid=\"text.attribute management\"></ox-i18n> `,\n action: () => {\n navigate('attributes')\n }\n }\n })\n })\n}\n"]}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
2
|
+
import '../popup/meta-object-selector-popup';
|
|
3
|
+
import { FilterSelectRenderer } from '@operato/form';
|
|
4
|
+
export declare const FilterFormMetaCodeSelect: FilterSelectRenderer;
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
1
2
|
import '../popup/meta-object-selector-popup';
|
|
2
3
|
import { html } from 'lit-html';
|
|
3
4
|
import { openPopup } from '@operato/layout';
|
|
4
5
|
import { TermsUtil } from './../../utils/terms-util';
|
|
5
6
|
function openMetaCodeSelector(filter, value, confirmCallback) {
|
|
6
|
-
var template = html `
|
|
7
|
-
<meta-object-selector-popup
|
|
8
|
-
.value=${value}
|
|
9
|
-
.options=${filter.options}
|
|
10
|
-
.confirmCallback=${confirmCallback}
|
|
11
|
-
></meta-object-selector-popup>
|
|
12
|
-
`;
|
|
7
|
+
var template = html ` <meta-object-selector-popup .value=${value} .options=${filter.options} .confirmCallback=${confirmCallback}> </meta-object-selector-popup> `;
|
|
13
8
|
openPopup(template, {
|
|
14
9
|
backdrop: true,
|
|
15
10
|
size: 'large',
|
|
16
|
-
title: filter.options.selectorName ? TermsUtil.tMenu(filter.options.selectorName) : TermsUtil.tTitle('select_item')
|
|
11
|
+
title: filter.options.selectorName ? String(TermsUtil.tMenu(filter.options.selectorName)) : String(TermsUtil.tTitle('select_item'))
|
|
17
12
|
});
|
|
18
13
|
}
|
|
19
14
|
export const FilterFormMetaCodeSelect = (filter, value, owner) => {
|
|
20
|
-
const options = filter.options;
|
|
21
|
-
const codes =
|
|
15
|
+
const options = filter.options || {};
|
|
16
|
+
const codes = options.codes && options.codes.length > 0 ? options.codes : undefined;
|
|
22
17
|
const { operator = 'eq' } = filter;
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
const hiddenText = value ? value : '';
|
|
19
|
+
var text = value ? value : '';
|
|
25
20
|
if (options.dispField && value && codes) {
|
|
26
21
|
let dispCode = codes.filter(x => x.value == value);
|
|
27
22
|
if (dispCode && dispCode.length > 0) {
|
|
@@ -30,29 +25,36 @@ export const FilterFormMetaCodeSelect = (filter, value, owner) => {
|
|
|
30
25
|
}
|
|
31
26
|
return operator === 'eq'
|
|
32
27
|
? html `
|
|
33
|
-
<input name='${filter.name}' .value=${
|
|
28
|
+
<input name='${filter.name}' .value=${hiddenText} type="text" hidden></input>
|
|
34
29
|
<input
|
|
35
30
|
type="text"
|
|
36
31
|
readonly
|
|
37
32
|
name='${filter.name}_disp'
|
|
38
33
|
.value=${text}
|
|
39
|
-
@click=${
|
|
34
|
+
@click=${e => {
|
|
40
35
|
e.stopPropagation();
|
|
41
36
|
const input = e.target;
|
|
42
|
-
const confirmCallback =
|
|
37
|
+
const confirmCallback = selected => {
|
|
43
38
|
let code = selected ? selected[options.codeField] : '';
|
|
44
39
|
let disp = code;
|
|
45
40
|
if (selected && options.dispField) {
|
|
46
|
-
let fields = options.dispField.split(
|
|
41
|
+
let fields = options.dispField.split(',');
|
|
47
42
|
disp = selected[fields[0]];
|
|
48
43
|
if (fields.length > 1) {
|
|
49
|
-
disp += `(${fields
|
|
44
|
+
disp += `(${fields
|
|
45
|
+
.splice(1)
|
|
46
|
+
.map(field => {
|
|
47
|
+
return selected[field];
|
|
48
|
+
})
|
|
49
|
+
.join(',')})`;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
input.value = disp;
|
|
53
53
|
let codeInput = owner.tagName.toLowerCase() == 'ox-grid-header'
|
|
54
|
-
? owner
|
|
55
|
-
|
|
54
|
+
? //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
|
|
55
|
+
owner.renderRoot.querySelector(`[name="${filter.name}"]`)
|
|
56
|
+
: //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.
|
|
57
|
+
owner.renderRoot.querySelector(`form [name="${filter.name}"]`);
|
|
56
58
|
codeInput.value = code;
|
|
57
59
|
input.dispatchEvent(new Event('change', { bubbles: true }));
|
|
58
60
|
input.dispatchEvent(new CustomEvent('filter-change', {
|
|
@@ -68,6 +70,7 @@ export const FilterFormMetaCodeSelect = (filter, value, owner) => {
|
|
|
68
70
|
openMetaCodeSelector(filter, value, confirmCallback);
|
|
69
71
|
}}
|
|
70
72
|
/>
|
|
73
|
+
<md-icon style="--md-icon-size: 18px;margin-left: -24px;">manage_search</md-icon>
|
|
71
74
|
`
|
|
72
75
|
: html ``;
|
|
73
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-form-meta-code-select.js","sourceRoot":"","sources":["../../../client/component/filter/filter-form-meta-code-select.
|
|
1
|
+
{"version":3,"file":"filter-form-meta-code-select.js","sourceRoot":"","sources":["../../../client/component/filter/filter-form-meta-code-select.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '../popup/meta-object-selector-popup'\n\nimport { html } from 'lit-html'\n\nimport { openPopup } from '@operato/layout'\nimport { FilterSelectRenderer } from '@operato/form'\nimport { TermsUtil } from './../../utils/terms-util'\n\nfunction openMetaCodeSelector(filter, value, confirmCallback) {\n var template = html` <meta-object-selector-popup .value=${value} .options=${filter.options} .confirmCallback=${confirmCallback}> </meta-object-selector-popup> `\n\n openPopup(template, {\n backdrop: true,\n size: 'large',\n title: filter.options.selectorName ? String(TermsUtil.tMenu(filter.options.selectorName)) : String(TermsUtil.tTitle('select_item'))\n })\n}\n\nexport const FilterFormMetaCodeSelect: FilterSelectRenderer = (filter, value, owner) => {\n const options = filter.options || {}\n const codes = options.codes && options.codes.length > 0 ? options.codes : undefined\n const { operator = 'eq' } = filter\n const hiddenText = value ? value : ''\n\n var text = value ? value : ''\n\n if (options.dispField && value && codes) {\n let dispCode = codes.filter(x => x.value == value)\n\n if (dispCode && dispCode.length > 0) {\n text = dispCode[0].display\n }\n }\n\n return operator === 'eq'\n ? html`\n <input name='${filter.name}' .value=${hiddenText} type=\"text\" hidden></input>\n <input\n type=\"text\"\n readonly\n name='${filter.name}_disp'\n .value=${text}\n @click=${e => {\n e.stopPropagation()\n\n const input = e.target\n\n const confirmCallback = selected => {\n let code = selected ? selected[options.codeField] : ''\n let disp = code\n\n if (selected && options.dispField) {\n let fields = options.dispField.split(',')\n disp = selected[fields[0]]\n\n if (fields.length > 1) {\n disp += `(${fields\n .splice(1)\n .map(field => {\n return selected[field]\n })\n .join(',')})`\n }\n }\n\n input.value = disp\n\n let codeInput =\n owner.tagName.toLowerCase() == 'ox-grid-header'\n ? //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.\n owner.renderRoot.querySelector(`[name=\"${filter.name}\"]`)\n : //@ts-ignore owner element를 전제하지 않는 방법이 필요할 것이다.\n owner.renderRoot.querySelector(`form [name=\"${filter.name}\"]`)\n\n codeInput.value = code\n\n input.dispatchEvent(new Event('change', { bubbles: true }))\n\n input.dispatchEvent(\n new CustomEvent('filter-change', {\n bubbles: true,\n composed: true,\n detail: {\n name: filter.name,\n operator,\n value: code\n }\n })\n )\n }\n\n openMetaCodeSelector(filter, value, confirmCallback)\n }}\n />\n <md-icon style=\"--md-icon-size: 18px;margin-left: -24px;\">manage_search</md-icon>\n `\n : html``\n}\n"]}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
2
|
+
import '../popup/meta-object-selector-popup';
|
|
3
|
+
import { FilterSelectRenderer } from '@operato/form';
|
|
4
|
+
export declare const FilterFormMetaObjectSelect: FilterSelectRenderer;
|