@things-factory/meta-ui 7.0.1-alpha.1 → 7.0.1-alpha.11

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 (93) hide show
  1. package/client/actions/main.js +14 -20
  2. package/client/bootstrap.ts +13 -6
  3. package/client/component/grist/renderer/grist-renderer-meta-object-selector.js +18 -13
  4. package/client/pages/entity/config-entity.js +180 -112
  5. package/client/pages/entity/main-menu-selector.js +85 -84
  6. package/client/pages/history/history-copy-list-popup.js +33 -45
  7. package/client/pages/history/history-json-list-popup.js +38 -50
  8. package/client/pages/menu/dynamic-menu-template.js +1 -1
  9. package/client/pages/menu/dynamic-menu.js +137 -121
  10. package/client/pages/menu/export-menu-popup.js +210 -218
  11. package/client/pages/personalize/personal-column-selector.js +112 -122
  12. package/client/utils/meta-ui-util.js +0 -4
  13. package/client/utils/service-util.js +4 -4
  14. package/client/utils/terms-util.js +41 -42
  15. package/client/utils/ui-util.js +2 -5
  16. package/client/viewparts/dynamic-menu-part.js +7 -28
  17. package/dist-client/actions/main.js +6 -5
  18. package/dist-client/actions/main.js.map +1 -1
  19. package/dist-client/bootstrap.d.ts +4 -1
  20. package/dist-client/bootstrap.js +12 -6
  21. package/dist-client/bootstrap.js.map +1 -1
  22. package/dist-client/component/grist/renderer/grist-renderer-code-input.d.ts +1 -1
  23. package/dist-client/component/grist/renderer/grist-renderer-meta-code-selector.d.ts +1 -1
  24. package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.d.ts +1 -1
  25. package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js +9 -3
  26. package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js.map +1 -1
  27. package/dist-client/component/popup/code-input-editor-popup.d.ts +1 -1
  28. package/dist-client/component/popup/meta-object-selector-popup.d.ts +1 -1
  29. package/dist-client/component/popup/record-based-code-editor-popup.d.ts +1 -1
  30. package/dist-client/mixin/meta-basic-grist-mixin.d.ts +1 -1
  31. package/dist-client/pages/activity/meta-activity-viewer-element.d.ts +1 -1
  32. package/dist-client/pages/activity/meta-activity-writer-element.d.ts +1 -1
  33. package/dist-client/pages/button-role/button-role-detail.d.ts +1 -1
  34. package/dist-client/pages/entity/config-entity.js +131 -62
  35. package/dist-client/pages/entity/config-entity.js.map +1 -1
  36. package/dist-client/pages/entity/main-menu-selector.d.ts +1 -1
  37. package/dist-client/pages/entity/main-menu-selector.js +74 -73
  38. package/dist-client/pages/entity/main-menu-selector.js.map +1 -1
  39. package/dist-client/pages/history/history-copy-list-popup.d.ts +1 -1
  40. package/dist-client/pages/history/history-copy-list-popup.js +14 -26
  41. package/dist-client/pages/history/history-copy-list-popup.js.map +1 -1
  42. package/dist-client/pages/history/history-json-list-popup.d.ts +5 -5
  43. package/dist-client/pages/history/history-json-list-popup.js +19 -31
  44. package/dist-client/pages/history/history-json-list-popup.js.map +1 -1
  45. package/dist-client/pages/menu/dynamic-menu-setting-let.d.ts +1 -1
  46. package/dist-client/pages/menu/dynamic-menu-template.js +1 -1
  47. package/dist-client/pages/menu/dynamic-menu-template.js.map +1 -1
  48. package/dist-client/pages/menu/dynamic-menu.js +68 -48
  49. package/dist-client/pages/menu/dynamic-menu.js.map +1 -1
  50. package/dist-client/pages/menu/export-menu-popup.d.ts +5 -5
  51. package/dist-client/pages/menu/export-menu-popup.js +50 -54
  52. package/dist-client/pages/menu/export-menu-popup.js.map +1 -1
  53. package/dist-client/pages/meta-grist-element.d.ts +1 -1
  54. package/dist-client/pages/meta-grist-page.d.ts +1 -1
  55. package/dist-client/pages/personalize/personal-column-selector.d.ts +1 -1
  56. package/dist-client/pages/personalize/personal-column-selector.js +76 -84
  57. package/dist-client/pages/personalize/personal-column-selector.js.map +1 -1
  58. package/dist-client/pages/work-code/work-code-detail-popup.d.ts +1 -1
  59. package/dist-client/tsconfig.tsbuildinfo +1 -1
  60. package/dist-client/utils/meta-ui-util.js +0 -3
  61. package/dist-client/utils/meta-ui-util.js.map +1 -1
  62. package/dist-client/utils/service-util.js +4 -4
  63. package/dist-client/utils/service-util.js.map +1 -1
  64. package/dist-client/utils/terms-util.d.ts +13 -13
  65. package/dist-client/utils/terms-util.js +10 -12
  66. package/dist-client/utils/terms-util.js.map +1 -1
  67. package/dist-client/utils/ui-util.js +1 -4
  68. package/dist-client/utils/ui-util.js.map +1 -1
  69. package/dist-client/viewparts/dynamic-menu-part.d.ts +1 -1
  70. package/dist-client/viewparts/dynamic-menu-part.js +7 -26
  71. package/dist-client/viewparts/dynamic-menu-part.js.map +1 -1
  72. package/dist-server/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +9 -8
  74. package/client/viewparts/dynamic-menu-landscape-styles.js +0 -149
  75. package/client/viewparts/dynamic-menu-landscape.js +0 -106
  76. package/client/viewparts/dynamic-menu-portrait-styles.js +0 -130
  77. package/client/viewparts/dynamic-menu-portrait.js +0 -90
  78. package/client/viewparts/dynamic-top-menu-bar.js +0 -148
  79. package/dist-client/viewparts/dynamic-menu-landscape-styles.d.ts +0 -1
  80. package/dist-client/viewparts/dynamic-menu-landscape-styles.js +0 -149
  81. package/dist-client/viewparts/dynamic-menu-landscape-styles.js.map +0 -1
  82. package/dist-client/viewparts/dynamic-menu-landscape.d.ts +0 -21
  83. package/dist-client/viewparts/dynamic-menu-landscape.js +0 -87
  84. package/dist-client/viewparts/dynamic-menu-landscape.js.map +0 -1
  85. package/dist-client/viewparts/dynamic-menu-portrait-styles.d.ts +0 -1
  86. package/dist-client/viewparts/dynamic-menu-portrait-styles.js +0 -130
  87. package/dist-client/viewparts/dynamic-menu-portrait-styles.js.map +0 -1
  88. package/dist-client/viewparts/dynamic-menu-portrait.d.ts +0 -13
  89. package/dist-client/viewparts/dynamic-menu-portrait.js +0 -74
  90. package/dist-client/viewparts/dynamic-menu-portrait.js.map +0 -1
  91. package/dist-client/viewparts/dynamic-top-menu-bar.d.ts +0 -27
  92. package/dist-client/viewparts/dynamic-top-menu-bar.js +0 -133
  93. package/dist-client/viewparts/dynamic-top-menu-bar.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { css, html, LitElement } from 'lit-element'
1
+ import { css, html, LitElement } from 'lit'
2
2
 
3
3
  import { i18next, localize } from '@things-factory/i18n-base'
4
4
  import { ScrollbarStyles, CommonGristStyles } from '@operato/styles'
@@ -24,66 +24,67 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
24
24
  ScrollbarStyles,
25
25
  CommonGristStyles,
26
26
  css`
27
- :host {
28
- display: flex;
29
- flex-direction: column;
30
- overflow-x: auto;
31
- }
32
- .container {
33
- flex: 1;
34
- display: grid;
35
- overflow: hidden;
36
- }
37
- .container_detail {
38
- background-color: var(--main-section-background-color);
39
- display: flex;
40
- flex-direction: column;
41
- flex: 1;
42
- overflow-y: auto;
43
- }
27
+ :host {
28
+ display: flex;
29
+ flex-direction: column;
30
+ overflow-x: auto;
31
+ }
32
+ .container {
33
+ flex: 1;
34
+ display: grid;
35
+ overflow: hidden;
36
+ }
37
+ .container_detail {
38
+ background-color: var(--main-section-background-color);
39
+ display: flex;
40
+ flex-direction: column;
41
+ flex: 1;
42
+ overflow-y: auto;
43
+ }
44
44
 
45
- h2 {
46
- padding: var(--subtitle-padding);
47
- font: var(--subtitle-font);
48
- color: var(--subtitle-text-color);
49
- border-bottom: var(--subtitle-border-bottom);
50
- }
45
+ h2 {
46
+ padding: var(--subtitle-padding);
47
+ font: var(--subtitle-font);
48
+ color: var(--subtitle-text-color);
49
+ border-bottom: var(--subtitle-border-bottom);
50
+ }
51
51
 
52
- .container_detail h2 {
53
- margin: var(--grist-title-margin);
54
- border: var(--grist-title-border);
55
- font: var(--grist-title-font);
56
- color: var(--secondary-color);
57
- }
52
+ .container_detail h2 {
53
+ margin: var(--grist-title-margin);
54
+ border: var(--grist-title-border);
55
+ font: var(--grist-title-font);
56
+ color: var(--secondary-color);
57
+ }
58
58
 
59
- .container_detail h2 mwc-icon {
60
- vertical-align: middle;
61
- margin: var(--grist-title-icon-margin);
62
- font-size: var(--grist-title-icon-size);
63
- color: var(--grist-title-icon-color);
64
- }
59
+ .container_detail h2 mwc-icon {
60
+ vertical-align: middle;
61
+ margin: var(--grist-title-icon-margin);
62
+ font-size: var(--grist-title-icon-size);
63
+ color: var(--grist-title-icon-color);
64
+ }
65
65
 
66
- h2 {
67
- padding-bottom: var(--grist-title-with-grid-padding);
68
- }
69
- ox-grist {
70
- overflow-y: auto;
71
- flex: 1;
72
- }
73
- search-form {
74
- overflow: visible;
75
- }
66
+ h2 {
67
+ padding-bottom: var(--grist-title-with-grid-padding);
68
+ }
69
+ ox-grist {
70
+ overflow-y: auto;
71
+ flex: 1;
72
+ }
73
+ search-form {
74
+ overflow: visible;
75
+ }
76
76
 
77
- .button-container {
78
- padding: var(--button-container-padding);
79
- margin: var(--button-container-margin);
80
- text-align: var(--button-container-align);
81
- background-color: var(--button-container-background);
82
- height: var(--button-container-height);
83
- text-align: right;
84
- padding-right: 12px;
85
- }`
86
- ];
77
+ .button-container {
78
+ padding: var(--button-container-padding);
79
+ margin: var(--button-container-margin);
80
+ text-align: var(--button-container-align);
81
+ background-color: var(--button-container-background);
82
+ height: var(--button-container-height);
83
+ text-align: right;
84
+ padding-right: 12px;
85
+ }
86
+ `
87
+ ]
87
88
  return styles
88
89
  }
89
90
 
@@ -104,7 +105,7 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
104
105
  },
105
106
 
106
107
  /**
107
- * @description 메뉴 ID
108
+ * @description 메뉴 ID
108
109
  ******************************
109
110
  * @type {String}
110
111
  */
@@ -119,7 +120,7 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
119
120
  ***************************
120
121
  */
121
122
  async connectedCallback() {
122
- // 메뉴 그룹 그리드 설정
123
+ // 메뉴 그룹 그리드 설정
123
124
  this.gridConfig = {
124
125
  rows: { selectable: false, appendable: false },
125
126
  pagination: { infinite: true },
@@ -127,7 +128,7 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
127
128
  ...MetaApi.getGristGuttersConfig(false, false),
128
129
  MetaApi.getGristColumnConfig('integer', 'rank', 'center', true, false, 80),
129
130
  MetaApi.getGristColumnConfig('string', 'name', 'left', false, false, 180),
130
- MetaApi.getGristColumnConfig2('string','header', 'display', 'left', false, false, 180),
131
+ MetaApi.getGristColumnConfig2('string', 'header', 'display', 'left', false, false, 180),
131
132
  MetaApi.getGristColumnConfig('boolean', 'hidden', 'center', true, false, 60)
132
133
  ]
133
134
  }
@@ -142,25 +143,16 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
142
143
  ***************************
143
144
  */
144
145
  render() {
145
- return html`
146
- <div id="container" class="container">
147
- <div class="container_detail">
148
- <ox-grist id="ox-grist" .config=${this.gridConfig} .mode=${'GRID'} auto-fetch
149
- .fetchHandler=${this.fetchColumns.bind(this)}>
150
- </ox-grist>
151
- <div id="button-container" class="button-container">
152
- <mwc-button raised label="${TermsUtil.tButton('reset')}" style="margin-left:7px;margin-top:7px;"
153
- @click=${this.reset.bind(this)}>
154
- </mwc-button>
155
- <mwc-button raised label="${TermsUtil.tButton('delete')}" style="margin-left:7px;margin-top:7px;"
156
- @click=${this.delete.bind(this)}>
157
- </mwc-button>
158
- <mwc-button raised label="${TermsUtil.tButton('save')}" style="margin-left:7px;margin-top:7px;"
159
- @click=${this.save.bind(this)}>
160
- </mwc-button>
161
- </div>
146
+ return html` <div id="container" class="container">
147
+ <div class="container_detail">
148
+ <ox-grist id="ox-grist" .config=${this.gridConfig} .mode=${'GRID'} auto-fetch .fetchHandler=${this.fetchColumns.bind(this)}> </ox-grist>
149
+ <div id="button-container" class="button-container">
150
+ <mwc-button raised label="${TermsUtil.tButton('reset')}" style="margin-left:7px;margin-top:7px;" @click=${this.reset.bind(this)}> </mwc-button>
151
+ <mwc-button raised label="${TermsUtil.tButton('delete')}" style="margin-left:7px;margin-top:7px;" @click=${this.delete.bind(this)}> </mwc-button>
152
+ <mwc-button raised label="${TermsUtil.tButton('save')}" style="margin-left:7px;margin-top:7px;" @click=${this.save.bind(this)}> </mwc-button>
162
153
  </div>
163
- </div>`
154
+ </div>
155
+ </div>`
164
156
  }
165
157
 
166
158
  /**
@@ -173,43 +165,42 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
173
165
  }
174
166
 
175
167
  /**
176
- * @description 컬럼 조회
168
+ * @description 컬럼 조회
177
169
  ***************************
178
- * @returns
170
+ * @returns
179
171
  */
180
172
  async fetchColumns() {
181
- // 팝업 오프너에서 받아온 그리스트의 설정으로 보여준다
182
- let cols = this.configGrist.config.columns;
183
- let filterCols = cols.filter(x => x.type != 'gutter' && x.name != 'id' && x.unusable !== true);
184
- let rank = 0;
173
+ // 팝업 오프너에서 받아온 그리스트의 설정으로 보여준다
174
+ let cols = this.configGrist.config.columns
175
+ let filterCols = cols.filter(x => x.type != 'gutter' && x.name != 'id' && x.unusable !== true)
176
+ let rank = 0
185
177
 
186
178
  let items = filterCols.map(x => {
187
- rank = rank + 10;
188
- x.rank = rank;
189
- return x;
179
+ rank = rank + 10
180
+ x.rank = rank
181
+ return x
190
182
  })
191
183
 
192
184
  return { total: 0, records: items }
193
185
  }
194
186
 
195
187
  /**
196
- * @description 개인화 데이터 삭제
188
+ * @description 개인화 데이터 삭제
197
189
  ***************************
198
- * @returns
190
+ * @returns
199
191
  */
200
192
  async delete(e) {
201
- let personal = await MetaApi.findMenuGridPersnalTemplate(this.menuId);
202
- let { id = undefined } = personal;
193
+ let personal = await MetaApi.findMenuGridPersnalTemplate(this.menuId)
194
+ let { id = undefined } = personal
203
195
 
204
196
  if (id) {
205
- let result = await ServiceUtil.deleteListByIds([id], 'deleteGridPersonalizes');
197
+ let result = await ServiceUtil.deleteListByIds([id], 'deleteGridPersonalizes')
206
198
  if (result == true) {
207
- history.back();
199
+ history.back()
208
200
  }
209
201
  } else {
210
- await MetaApi.showToast('info', 'there_is_nothing_to_delete');
202
+ await MetaApi.showToast('info', 'there_is_nothing_to_delete')
211
203
  }
212
-
213
204
  }
214
205
 
215
206
  /**
@@ -217,59 +208,58 @@ export class PersonalColumnSelector extends localize(i18next)(LitElement) {
217
208
  ************************************************
218
209
  */
219
210
  async reset(e) {
220
- await this.grist.fetch();
211
+ await this.grist.fetch()
221
212
  }
222
213
 
223
-
224
214
  /**
225
- * @description 컬럼 변경 사항 저장
215
+ * @description 컬럼 변경 사항 저장
226
216
  ************************************************
227
217
  */
228
218
  async save(e) {
229
- // 변경 체크
230
- MetaApi.patchesForUpdateMultiple(this.grist);
219
+ // 변경 체크
220
+ MetaApi.patchesForUpdateMultiple(this.grist)
231
221
 
232
- // 기존 데이터 조회
233
- let personal = await MetaApi.findMenuGridPersnalTemplate(this.menuId);
234
- let { id = undefined, template = {} } = personal;
222
+ // 기존 데이터 조회
223
+ let personal = await MetaApi.findMenuGridPersnalTemplate(this.menuId)
224
+ let { id = undefined, template = {} } = personal
235
225
 
236
- let tempName = "master";
226
+ let tempName = 'master'
237
227
  if (this.configGrist.configName) {
238
- tempName = this.configGrist.configName;
228
+ tempName = this.configGrist.configName
239
229
  }
240
230
 
241
- // 기존 데이터 삭제
231
+ // 기존 데이터 삭제
242
232
  if (template[tempName]) {
243
- delete template[tempName];
233
+ delete template[tempName]
244
234
  }
245
235
 
246
- // 그리드 설정 데이터 숨김 필드 제외 후 정렬
247
- let records = this.grist.dirtyData.records;
248
- let data = records.filter(x => x.hidden == false);
236
+ // 그리드 설정 데이터 숨김 필드 제외 후 정렬
237
+ let records = this.grist.dirtyData.records
238
+ let data = records.filter(x => x.hidden == false)
249
239
  data.sort((a, b) => {
250
- return a.rank - b.rank;
251
- });
240
+ return a.rank - b.rank
241
+ })
252
242
  template[tempName] = data.map(x => {
253
243
  return x.name
254
- });
244
+ })
255
245
 
256
- let patch = { template: JSON.stringify(template) };
246
+ let patch = { template: JSON.stringify(template) }
257
247
 
258
- // 기존에 ID 가 있으면 update
248
+ // 기존에 ID 가 있으면 update
259
249
  if (id) {
260
- patch.id = id;
261
- patch.cuFlag = "M";
250
+ patch.id = id
251
+ patch.cuFlag = 'M'
262
252
  } else {
263
253
  patch.menu = {
264
254
  id: this.menuId
265
- };
266
- patch.cuFlag = "+";
255
+ }
256
+ patch.cuFlag = '+'
267
257
  }
268
- await MetaApi.updateMultiple("updateMultipleGridpersonalize", [patch]);
258
+ await MetaApi.updateMultiple('updateMultipleGridpersonalize', [patch])
269
259
 
270
- MetaApi.showToast('info', TermsUtil.tText('success to save'));
271
- history.back();
260
+ MetaApi.showToast('info', TermsUtil.tText('success to save'))
261
+ history.back()
272
262
  }
273
263
  }
274
264
 
275
- customElements.define('personal-column-selector', PersonalColumnSelector)
265
+ customElements.define('personal-column-selector', PersonalColumnSelector)
@@ -13,10 +13,6 @@ import { ServiceUtil } from './service-util'
13
13
  import { UiUtil } from './ui-util'
14
14
  import { MetaApi } from './meta-api'
15
15
 
16
- import './../pages/personalize/personal-column-selector'
17
- import './../pages/history/history-copy-list-popup'
18
- import './../pages/history/history-json-list-popup'
19
-
20
16
  /**
21
17
  * @license
22
18
  * Copyright © HatioLab Inc. All rights reserved.
@@ -56,7 +56,7 @@ export class ServiceUtil {
56
56
  const response = await client.query({
57
57
  query: gql`
58
58
  query workCodeByName($name: String!) {
59
- workCodeByName(name: $name) {
59
+ commonCode: workCodeByName(name: $name) {
60
60
  details {
61
61
  rank
62
62
  name
@@ -872,9 +872,9 @@ export class ServiceUtil {
872
872
  */
873
873
  static async callService(action, filterParam, dataParams) {
874
874
  if (action.graphql_type == 'query') {
875
- return await this.callQueryService(action, filterParam, dataParams)
875
+ return await ServiceUtil.callQueryService(action, filterParam, dataParams)
876
876
  } else {
877
- return await this.callMutationService(action, filterParam, dataParams)
877
+ return await ServiceUtil.callMutationService(action, filterParam, dataParams)
878
878
  }
879
879
  }
880
880
 
@@ -1226,7 +1226,7 @@ export class ServiceUtil {
1226
1226
  })
1227
1227
 
1228
1228
  if (!response.errors) {
1229
- if (this.checkClientError(response)) {
1229
+ if (ServiceUtil.checkClientError(response)) {
1230
1230
  if (useMessage === true) UiUtil.showToast('info', TermsUtil.tText('success to process'))
1231
1231
  return response
1232
1232
  }
@@ -11,9 +11,9 @@ import { i18next } from '@operato/i18n'
11
11
  */
12
12
  export class TermsUtil {
13
13
  /**
14
- * 용어 : 용어 키 - 용어 표현 값
14
+ * 용어 : 용어 키 - 용어 표현 값
15
15
  */
16
- META_TERMS = null
16
+ static META_TERMS = null
17
17
 
18
18
  /**
19
19
  * @description 서버에 현재 로케일에 맞는 용어를 모두 조회
@@ -24,11 +24,11 @@ export class TermsUtil {
24
24
  let res = await TermsUtil.fetchTerminologies(locale)
25
25
  let records = res.records
26
26
 
27
- if(records && records.length > 0) {
28
- this.META_TERMS = {};
27
+ if (records && records.length > 0) {
28
+ TermsUtil.META_TERMS = {}
29
29
  records.forEach(r => {
30
- let name = `${r.category}.${r.name}`;
31
- this.META_TERMS[name] = r.display;
30
+ let name = `${r.category}.${r.name}`
31
+ TermsUtil.META_TERMS[name] = r.display
32
32
  })
33
33
  }
34
34
  }
@@ -40,10 +40,10 @@ export class TermsUtil {
40
40
  * @returns {Array} 용어 리스트
41
41
  */
42
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;
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
47
 
48
48
  const response = await client.query({
49
49
  query: gql`
@@ -55,14 +55,14 @@ export class TermsUtil {
55
55
  category
56
56
  display
57
57
  }
58
-
58
+
59
59
  total
60
60
  }
61
61
  }
62
62
  `,
63
63
  variables: { filters, sortings, pagination: { page, limit } }
64
64
  })
65
-
65
+
66
66
  if (!response.errors) {
67
67
  return {
68
68
  records: response.data.terminologies.items || [],
@@ -79,8 +79,8 @@ export class TermsUtil {
79
79
  * @returns 번역된 라벨 (필드) 명
80
80
  */
81
81
  static tLabel(labelName, params) {
82
- let labelValue = TermsUtil.translate('label', labelName, params, null);
83
- return labelValue ? labelValue : TermsUtil.translate('field', labelName, params, labelName);
82
+ let labelValue = TermsUtil.translate('label', labelName, params, null)
83
+ return labelValue ? labelValue : TermsUtil.translate('field', labelName, params, labelName)
84
84
  }
85
85
 
86
86
  /**
@@ -91,8 +91,8 @@ export class TermsUtil {
91
91
  * @returns 번역된 필드 명
92
92
  */
93
93
  static tField(fieldName, params) {
94
- let fieldValue = TermsUtil.translate('field', fieldName, params, null);
95
- return fieldValue ? fieldValue : TermsUtil.translate('field', fieldName, params, fieldName);
94
+ let fieldValue = TermsUtil.translate('field', fieldName, params, null)
95
+ return fieldValue ? fieldValue : TermsUtil.translate('field', fieldName, params, fieldName)
96
96
  }
97
97
 
98
98
  /**
@@ -101,8 +101,8 @@ export class TermsUtil {
101
101
  * @param {String} buttonName
102
102
  * @returns 번역된 버튼 명
103
103
  */
104
- static tButton(buttonName) {
105
- return TermsUtil.translate('button', buttonName, null, buttonName);
104
+ static tButton(buttonName) {
105
+ return TermsUtil.translate('button', buttonName, null, buttonName)
106
106
  }
107
107
 
108
108
  /**
@@ -113,8 +113,8 @@ export class TermsUtil {
113
113
  * @returns 번역된 타이틀 명
114
114
  */
115
115
  static tTitle(titleName, params) {
116
- let titleValue = TermsUtil.translate('title', titleName, params, null);
117
- return titleValue ? titleValue : TermsUtil.translate('menu', titleName, params, titleName);
116
+ let titleValue = TermsUtil.translate('title', titleName, params, null)
117
+ return titleValue ? titleValue : TermsUtil.translate('menu', titleName, params, titleName)
118
118
  }
119
119
 
120
120
  /**
@@ -123,12 +123,11 @@ export class TermsUtil {
123
123
  * @param {String} menuName
124
124
  * @returns 번역된 메뉴 명
125
125
  */
126
- static tMenu(menuName) {
127
- let menuValue = TermsUtil.translate('menu', menuName, null, null);
128
- return menuValue ? menuValue : TermsUtil.translate('title', menuName, null, menuName);
126
+ static tMenu(menuName) {
127
+ let menuValue = TermsUtil.translate('menu', menuName, null, null)
128
+ return menuValue ? menuValue : TermsUtil.translate('title', menuName, null, menuName)
129
129
  }
130
130
 
131
-
132
131
  /**
133
132
  * @description 텍스트 textName을 다국어 변환하여 리턴
134
133
  ***********************************************
@@ -137,7 +136,7 @@ export class TermsUtil {
137
136
  * @returns 번역된 텍스트 값
138
137
  */
139
138
  static tText(textName, params) {
140
- return TermsUtil.translate('text', textName, params, textName);
139
+ return TermsUtil.translate('text', textName, params, textName)
141
140
  }
142
141
 
143
142
  /**
@@ -147,8 +146,8 @@ export class TermsUtil {
147
146
  * @param {Object} params
148
147
  * @returns 번역된 에러 메시지
149
148
  */
150
- static tError(errorName, params) {
151
- return TermsUtil.translate('error', errorName, params, errorName);
149
+ static tError(errorName, params) {
150
+ return TermsUtil.translate('error', errorName, params, errorName)
152
151
  }
153
152
 
154
153
  /**
@@ -161,33 +160,33 @@ export class TermsUtil {
161
160
  * @returns termKey 다국어 변환 값
162
161
  */
163
162
  static translate(termCategory, termName, parameters, defaultValue) {
164
- let termKey = termCategory + '.' + termName;
165
- return TermsUtil.t(termKey, parameters, defaultValue);
163
+ let termKey = termCategory + '.' + termName
164
+ return TermsUtil.t(termKey, parameters, defaultValue)
166
165
  }
167
166
 
168
167
  /**
169
168
  * @description termKey로 다국어 변환하여 parameters로 파라미터 처리하여 리턴, 변환값이 없다면 defaultValue 리턴, defaultValue가 없다면 null 리턴
170
169
  ***********************************************
171
- * @param {String} termKey 용어 키 : {용어 카테고리}'.'{용어 이름}
170
+ * @param {String} termKey 용어 키 : {용어 카테고리}'.'{용어 이름}
172
171
  * @param {Object} parameters 용어 이름에 파라미터가 있는 경우 파라미터 치환 처리할 오브젝트 데이터 {key1 : value1, key2 : value2} 형식 ...
173
172
  * @param {String} defaultValue
174
173
  * @returns termKey 다국어 변환 값
175
174
  */
176
- static t(termKey, parameters, defaultValue) {
177
- let translated = this.META_TERMS ? this.META_TERMS[termKey] : null;
178
- translated = translated ? translated : i18next.t(termKey);
179
-
180
- if (translated && (termKey != translated)) {
181
- if(parameters) {
182
- Object.keys(parameters).forEach(function(param) {
183
- var bracedData = '\\' + '{' + param.replace(/\$/, '\\$') + '\\' + '}';
184
- var regEx = new RegExp(bracedData, "gi");
185
- translated = translated.replace(regEx, parameters[param]);
186
- });
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
+ })
187
186
  }
188
187
  return translated
189
188
  } else {
190
189
  return defaultValue
191
190
  }
192
191
  }
193
- }
192
+ }
@@ -7,7 +7,6 @@ import { getEditor } from '@operato/data-grist'
7
7
 
8
8
  import { TermsUtil } from './terms-util'
9
9
  import { ValueUtil } from './value-util'
10
- import { MetaUiUtil } from './meta-ui-util'
11
10
 
12
11
  /**
13
12
  * @license
@@ -102,9 +101,7 @@ export class UiUtil {
102
101
  */
103
102
  static async openDynamicPopup(title, popupConfig, paramData, popupCloseCallback) {
104
103
  // 부모 필드
105
- let parentValue = ValueUtil.isNotEmpty(popupConfig.parent_field)
106
- ? ValueUtil.getParams(paramData, ...popupConfig.parent_field.split('.'))
107
- : undefined
104
+ let parentValue = ValueUtil.isNotEmpty(popupConfig.parent_field) ? ValueUtil.getParams(paramData, ...popupConfig.parent_field.split('.')) : undefined
108
105
 
109
106
  // 팝업 엘리먼트 생성
110
107
  let htmlText = `<${popupConfig.tagname} route_name='${popupConfig.menu}' parent_id='${parentValue}' is_popup=true></${popupConfig.tagname}>`
@@ -255,7 +252,7 @@ export class UiUtil {
255
252
  * @returns {Object} 필터 폼 내의 에디터들이 가지고 있는 값을 키-값 형태로 추출
256
253
  */
257
254
  static getFilterFormData(filterForm) {
258
- let formValues = {};
255
+ let formValues = {}
259
256
 
260
257
  if (ValueUtil.isNotEmpty(filterForm)) {
261
258
  let filters = filterForm.filters()
@@ -1,6 +1,6 @@
1
1
  import '@material/mwc-icon'
2
- import './dynamic-menu-portrait'
3
- import './dynamic-menu-landscape'
2
+ import '@operato/menu/ox-menu-portrait.js'
3
+ import '@operato/menu/ox-menu-landscape.js'
4
4
 
5
5
  import { css, html, LitElement } from 'lit'
6
6
  import { connect } from 'pwa-helpers'
@@ -9,10 +9,7 @@ import { store } from '@operato/shell'
9
9
  import { ScrollbarStyles } from '@operato/styles'
10
10
 
11
11
  function isActiveMenu(menu, path) {
12
- return (
13
- menu.path?.split('?')[0] === path ||
14
- (menu.active && typeof menu.active === 'function' && menu.active.call(menu, { path }))
15
- )
12
+ return menu.path?.split('?')[0] === path || (menu.active && typeof menu.active === 'function' && menu.active.call(menu, { path }))
16
13
  }
17
14
 
18
15
  export class DynamicMenuPart extends connect(store)(LitElement) {
@@ -42,14 +39,6 @@ export class DynamicMenuPart extends connect(store)(LitElement) {
42
39
  background-color: var(--theme-white-color);
43
40
  }
44
41
 
45
- :host::before {
46
- content: '';
47
- position: absolute;
48
- width: 100%;
49
- height: 3px;
50
- background-color: rgba(0, 0, 0, 0.1);
51
- }
52
-
53
42
  :host([landscape]) {
54
43
  overflow-x: auto;
55
44
  flex-direction: row;
@@ -57,8 +46,8 @@ export class DynamicMenuPart extends connect(store)(LitElement) {
57
46
  min-height: 20px;
58
47
  }
59
48
 
60
- dynamic-menu-portrait,
61
- dynamic-menu-landscape {
49
+ ox-menu-portrait,
50
+ ox-menu-landscape {
62
51
  flex: 1;
63
52
  }
64
53
  `
@@ -69,18 +58,8 @@ export class DynamicMenuPart extends connect(store)(LitElement) {
69
58
  return html`
70
59
  <slot name="head"></slot>
71
60
  ${this.orientation !== 'landscape'
72
- ? html`<dynamic-menu-portrait
73
- .menus=${this.menus}
74
- .activeTopLevel=${this._activeTopLevel}
75
- .activeMenu=${this._activeMenu}
76
- .path=${this._path}
77
- ></dynamic-menu-portrait>`
78
- : html`<dynamic-menu-landscape
79
- .menus=${this.menus}
80
- .activeTopLevel=${this._activeTopLevel}
81
- .activeMenu=${this._activeMenu}
82
- .path=${this._path}
83
- ></dynamic-menu-landscape>`}
61
+ ? html`<ox-menu-portrait .menus=${this.menus} .activeTopLevel=${this._activeTopLevel} .activeMenu=${this._activeMenu} .path=${this._path}></ox-menu-portrait>`
62
+ : html`<ox-menu-landscape .menus=${this.menus} .activeTopLevel=${this._activeTopLevel} .activeMenu=${this._activeMenu} .path=${this._path}></ox-menu-landscape>`}
84
63
  <slot name="tail"></slot>
85
64
  `
86
65
  }