@things-factory/meta-ui 5.0.14 → 5.0.15

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 (57) hide show
  1. package/assets/images/loading-page.png +0 -0
  2. package/client/actions/main.js +1 -1
  3. package/client/bootstrap.js +62 -12
  4. package/client/index.js +10 -17
  5. package/client/mixin/meta-base-mixin.js +1 -0
  6. package/client/mixin/meta-basic-form-mixin.js +4 -0
  7. package/client/mixin/meta-basic-grist-mixin.js +4 -0
  8. package/client/mixin/meta-button-mixin.js +1 -0
  9. package/client/mixin/meta-service-mixin.js +1 -0
  10. package/client/pages/loading-page.js +51 -0
  11. package/client/pages/menu/dynamic-menu-template.js +10 -64
  12. package/client/pages/menu/dynamic-menu.js +25 -387
  13. package/client/pages/meta-form-element.js +1 -0
  14. package/client/pages/meta-grist-element.js +1 -0
  15. package/client/pages/meta-grist-page.js +1 -0
  16. package/client/pages/terms/config-terminology.js +9 -360
  17. package/client/reducers/main.js +1 -17
  18. package/client/route.js +6 -22
  19. package/client/utils/meta-api.js +1 -0
  20. package/client/utils/meta-crypto.js +1 -0
  21. package/client/utils/meta-ui-util.js +213 -0
  22. package/client/utils/service-util.js +35 -0
  23. package/client/utils/terms-util.js +2 -177
  24. package/client/utils/ui-util.js +1 -0
  25. package/client/utils/value-util.js +1 -42
  26. package/dist-server/constants/error-code.js +1 -0
  27. package/dist-server/constants/error-code.js.map +1 -0
  28. package/dist-server/controllers/index.js.map +1 -1
  29. package/dist-server/errors/index.js +18 -0
  30. package/dist-server/errors/index.js.map +1 -0
  31. package/dist-server/errors/license-error.js +1 -0
  32. package/dist-server/errors/license-error.js.map +1 -0
  33. package/dist-server/index.js +17 -3
  34. package/dist-server/index.js.map +1 -1
  35. package/dist-server/middlewares/index.js +6 -1
  36. package/dist-server/middlewares/index.js.map +1 -1
  37. package/dist-server/migrations/index.js.map +1 -1
  38. package/dist-server/routes.js +1 -25
  39. package/dist-server/routes.js.map +1 -1
  40. package/dist-server/service/index.js +16 -0
  41. package/dist-server/service/index.js.map +1 -0
  42. package/dist-server/service/meta-secret/index.js +6 -0
  43. package/dist-server/service/meta-secret/index.js.map +1 -0
  44. package/dist-server/service/meta-secret/meta-resolver.js +1 -0
  45. package/dist-server/service/meta-secret/meta-resolver.js.map +1 -0
  46. package/package.json +9 -7
  47. package/translations/en.json +16 -6
  48. package/translations/ko.json +11 -0
  49. package/translations/ms.json +10 -0
  50. package/translations/zh.json +10 -0
  51. package/client/utils/meta-util.js +0 -773
  52. package/dist-server/tsconfig.tsbuildinfo +0 -1
  53. package/server/controllers/index.ts +0 -0
  54. package/server/index.ts +0 -4
  55. package/server/middlewares/index.ts +0 -3
  56. package/server/migrations/index.ts +0 -9
  57. package/server/routes.ts +0 -28
@@ -1,405 +1,43 @@
1
- import '@things-factory/form-ui'
2
- import '@things-factory/grist-ui'
3
- import './dynamic-menu-template.js'
4
-
5
- import { css, html } from 'lit-element'
6
-
7
- import { CommonGristStyles, ScrollbarStyles } from '@operato/styles'
8
- import { i18next, localize } from '@things-factory/i18n-base'
9
- import { PageView } from '@things-factory/shell'
10
- import { isMobileDevice } from '@things-factory/utils'
11
-
12
- import { MetaUtil } from '../../utils/meta-util'
13
- import { TermsUtil } from '../../utils/terms-util'
14
-
15
- class DynamicMenu extends localize(i18next)(PageView) {
16
- static get properties() {
17
- return {
18
- searchFields: Array,
19
- groupConfig: Object,
20
- detailConfig: Object,
21
- menuGroupId: String
22
- }
23
- }
24
-
25
- static get styles() {
26
- return [
27
- CommonGristStyles,
28
- ScrollbarStyles,
29
- css`
30
- :host {
31
- display: flex;
32
- flex-direction: column;
33
- overflow-x: auto;
34
- background-color: var(--main-section-background-color);
35
- }
36
- .container {
37
- flex: 1;
38
- display: grid;
39
- overflow: hidden;
40
- grid-template-rows: 50% 50%;
41
- }
42
- .container_detail {
43
- background-color: var(--main-section-background-color);
44
- display: flex;
45
- flex-direction: column;
46
- flex: 1;
47
- overflow-y: auto;
48
- }
49
-
50
- h2 {
51
- padding: var(--subtitle-padding);
52
- font: var(--subtitle-font);
53
- color: var(--subtitle-text-color);
54
- border-bottom: var(--subtitle-border-bottom);
55
- }
56
-
57
- .container_detail h2 {
58
- margin: var(--grist-title-margin);
59
- border: var(--grist-title-border);
60
- font: var(--grist-title-font);
61
- color: var(--secondary-color);
62
- }
63
-
64
- .container_detail h2 mwc-icon {
65
- vertical-align: middle;
66
- margin: var(--grist-title-icon-margin);
67
- font-size: var(--grist-title-icon-size);
68
- color: var(--grist-title-icon-color);
69
- }
70
-
71
- h2 {
72
- padding-bottom: var(--grist-title-with-grid-padding);
73
- }
74
- ox-grist {
75
- overflow-y: auto;
76
- flex: 1;
77
- }
78
- .button-container {
79
- padding: var(--button-container-padding);
80
- margin: var(--button-container-margin);
81
- text-align: var(--button-container-align);
82
- background-color: var(--button-container-background);
83
- height: var(--button-container-height);
84
- text-align: right;
85
- padding-right: 12px;
86
- }
87
-
88
- mwc-button {
89
- margin-left: 7px;
90
- margin-top: 7px;
91
- }
92
- `
93
- ]
94
- }
95
-
96
- // 화면
97
- render() {
98
- return html`
1
+ const a0_0x10618c=a0_0x2494;(function(_0x12ce04,_0x30e2de){const _0x4fea18=a0_0x2494,_0x3dcd7b=_0x12ce04();while(!![]){try{const _0x3c93da=parseInt(_0x4fea18(0xad))/0x1*(-parseInt(_0x4fea18(0xba))/0x2)+-parseInt(_0x4fea18(0xaa))/0x3+parseInt(_0x4fea18(0xb4))/0x4+parseInt(_0x4fea18(0x93))/0x5+parseInt(_0x4fea18(0xb9))/0x6+parseInt(_0x4fea18(0x9c))/0x7*(parseInt(_0x4fea18(0x90))/0x8)+-parseInt(_0x4fea18(0xcf))/0x9*(parseInt(_0x4fea18(0xda))/0xa);if(_0x3c93da===_0x30e2de)break;else _0x3dcd7b['push'](_0x3dcd7b['shift']());}catch(_0x23fb50){_0x3dcd7b['push'](_0x3dcd7b['shift']());}}}(a0_0x253f,0x3e860));import{html}from'lit-element';function a0_0x2494(_0x1fd3fd,_0x2d8945){const _0x253fba=a0_0x253f();return a0_0x2494=function(_0x2494fb,_0x378f1f){_0x2494fb=_0x2494fb-0x7b;let _0x478e61=_0x253fba[_0x2494fb];return _0x478e61;},a0_0x2494(_0x1fd3fd,_0x2d8945);}import{i18next,localize}from'@things-factory/i18n-base';import{PageView}from'@things-factory/shell';import'@things-factory/form-ui';import'@things-factory/grist-ui';import{TermsUtil}from'./../../utils/terms-util';import{MetaApi}from'../../utils/meta-api';import'./dynamic-menu-template.js';import{ValueUtil}from'../../utils/value-util';function a0_0x253f(){const _0x51be31=['save','shadowRoot','saveMenu','patchesForUpdateMultiple','code','getGristPagination50Config','rank','searchByPagination','checkbox','name','ox-filters-form-base','dynamic_menu','center','is_null','large','menuGroupId','menu_open','deleteListByGristSelected','groupMenuQuery','styles','889803itYHhy','template','hiddenFlag','fetch','\x0a\x20\x20\x20\x20\x20\x20\x20\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20rank\x0a\x20\x20\x20\x20\x20\x20\x20\x20description\x0a\x20\x20\x20\x20\x20\x20\x20\x20menuType\x0a\x20\x20\x20\x20\x20\x20\x20\x20category\x0a\x20\x20\x20\x20\x20\x20\x20\x20routing\x0a\x20\x20\x20\x20\x20\x20\x20\x20detailFormId\x0a\x20\x20\x20\x20\x20\x20\x20\x20hiddenFlag\x0a\x20\x20\x20\x20\x20\x20\x20\x20iconPath\x0a\x20\x20\x20\x20\x20\x20','searchForm','parentId','isMobileEnv','gutter','getGristSearchColumnConfig','detailFormId','40RxPsJn','iconPath','left','tag','fetchGroupHandler','searchFields','bind','deleteMenus','routing','forEach','detailConfig','detailGrist','getGristSelectorColumnConfig','fetchDetailHandler','context','isNotEmpty','deleteMenu','page_location','icon','groupGrist','integer','getGristColumnConfig2','category','i_like','openPopupByElement','29688WnGZrd','GRID','button','412575dayPdR','updateMultipleMenu','menus','boolean','parent','getBasicMasterDetailGristStyle','tTitle','string','delete','833hLAiWY','\x0a\x20\x20\x20\x20\x20\x20id\x0a\x20\x20\x20\x20\x20\x20name\x0a\x20\x20\x20\x20\x20\x20rank\x0a\x20\x20\x20\x20\x20\x20description\x0a\x20\x20\x20\x20\x20\x20menuType\x0a\x20\x20\x20\x20\x20\x20category\x0a\x20\x20\x20\x20\x20\x20routing\x0a\x20\x20\x20\x20\x20\x20detailFormId\x0a\x20\x20\x20\x20\x20\x20hiddenFlag\x0a\x20\x20\x20\x20\x20\x20iconPath\x0a\x20\x20\x20\x20','deleteGroup','MENU_TYPE','menuType','tMenu','getCodeSelectorData','getGristSelectableConfig','querySelector','#master-grist','menu_type','MENU_PAGE_TYPE','tLabel','define','53403hBYBDD','hidden_flag','#detail-grist','13NOFUoE','top-down','tButton','getGristGuttersConfig','getGristColumnConfig','title','updateMultiple','375568zOPxyv','groupConfig','menu_group','LIST','pageInitialized','2251308JZJJmi','49826qATSVC'];a0_0x253f=function(){return _0x51be31;};return a0_0x253f();}class DynamicMenu extends localize(i18next)(PageView){static get['properties'](){return{'searchFields':Array,'groupConfig':Object,'detailConfig':Object,'menuGroupId':String};}static get[a0_0x10618c(0xce)](){const _0x3119c3=a0_0x10618c;return MetaApi[_0x3119c3(0x98)](_0x3119c3(0xae));}['render'](){const _0x5560d0=a0_0x10618c;return html`
99
2
  <div slot="headroom">
100
3
  <div id="filters">
101
- <ox-filters-form-base
102
- .filters=${this.searchFields}
103
- @filters-change=${e => {
104
- this.groupGrist?.fetch()
105
- }}
4
+ <ox-filters-form-base
5
+ .filters=${this[_0x5560d0(0x7c)]}
6
+ @filters-change=${_0x4c21fd=>{this['groupGrist']?.['fetch']();}}
106
7
  ></ox-filters-form-base>
107
8
  </div>
108
9
  </div>
109
- <div class="container">
10
+
11
+ <div class='container'>
110
12
  <div class="container_detail">
111
- <h2><mwc-icon>list_alt</mwc-icon>${TermsUtil.tTitle('menu_group')}</h2>
112
- <ox-grist
113
- id="group-grist"
114
- .config=${this.groupConfig}
115
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
13
+ <h2>
14
+ <mwc-icon>list_alt</mwc-icon>${TermsUtil[_0x5560d0(0x99)](_0x5560d0(0xb6))}
15
+ </h2>
16
+ <ox-grist
17
+ id="master-grist"
18
+ .config=${this[_0x5560d0(0xb5)]}
19
+ .mode=${MetaApi[_0x5560d0(0xd6)]()?'LIST':_0x5560d0(0x91)}
116
20
  auto-fetch
117
- .fetchHandler=${this.fetchGroupHandler.bind(this)}
118
- >
21
+ .fetchHandler=${this[_0x5560d0(0x7b)][_0x5560d0(0x7d)](this)}>
119
22
  </ox-grist>
120
23
  <div id="button-container" class="button-container">
121
- <mwc-button raised label="${TermsUtil.tButton('save')}" @click=${e => this.saveGroup()}></mwc-button>
122
- <mwc-button raised label="${TermsUtil.tButton('delete')}" @click=${e => this.deleteGroup()}></mwc-button>
24
+ <mwc-button raised label="${TermsUtil[_0x5560d0(0xaf)]('save')}" @click=${_0xe7cab2=>this['saveGroup']()}></mwc-button>
25
+ <mwc-button raised label="${TermsUtil['tButton'](_0x5560d0(0x9b))}" @click=${_0x12f93e=>this[_0x5560d0(0x9e)]()}></mwc-button>
123
26
  </div>
124
27
  </div>
28
+
125
29
  <div class="container_detail">
126
- <ox-grist
127
- id="detail-grist"
128
- .config=${this.detailConfig}
129
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
30
+ <ox-grist
31
+ id="detail-grist"
32
+ .config=${this[_0x5560d0(0x81)]}
33
+ .mode=${MetaApi[_0x5560d0(0xd6)]()?_0x5560d0(0xb7):_0x5560d0(0x91)}
130
34
  explcit-fetch
131
- .fetchHandler=${this.fetchDetailHandler.bind(this)}
132
- >
35
+ .fetchHandler=${this[_0x5560d0(0x84)][_0x5560d0(0x7d)](this)}>
133
36
  </ox-grist>
134
37
  <div id="button-container" class="button-container">
135
- <mwc-button raised label="${TermsUtil.tButton('save')}" @click=${e => this.saveMenu()}></mwc-button>
136
- <mwc-button raised label="${TermsUtil.tButton('delete')}" @click=${e => this.deleteMenu()}></mwc-button>
38
+ <mwc-button raised label="${TermsUtil[_0x5560d0(0xaf)](_0x5560d0(0xbb))}" @click=${_0x2d214b=>this[_0x5560d0(0xbd)]()}></mwc-button>
39
+ <mwc-button raised label="${TermsUtil[_0x5560d0(0xaf)]('delete')}" @click=${_0x5aaa20=>this[_0x5560d0(0x87)]()}></mwc-button>
137
40
  </div>
138
41
  </div>
139
42
  </div>
140
- `
141
- }
142
-
143
- get context() {
144
- return {
145
- title: TermsUtil.tTitle('dynamic_menu')
146
- }
147
- }
148
-
149
- get searchForm() {
150
- return this.shadowRoot.querySelector('ox-filters-form-base')
151
- }
152
-
153
- /**
154
- * 메뉴 그룹 그리드
155
- */
156
- get groupGrist() {
157
- return this.shadowRoot.querySelector('#group-grist')
158
- }
159
-
160
- /**
161
- * 메뉴 그룹에 포함 된 메뉴 그리드
162
- */
163
- get detailGrist() {
164
- return this.shadowRoot.querySelector('#detail-grist')
165
- }
166
-
167
- /*******************************************/
168
- /* 조회 */
169
- /*******************************************/
170
-
171
- /**
172
- * @description 부모 메뉴 (메뉴 그룹) 선택시 하위 메뉴 리스트 조회
173
- *********************************
174
- * @param {Object} param0
175
- */
176
- async fetchDetailHandler({ page, limit, sorters = [{ name: 'rank' }, { name: 'name' }] }) {
177
- if (this.menuGroupId) {
178
- let filters = [
179
- {
180
- name: 'parent',
181
- operator: 'eq',
182
- value: this.menuGroupId
183
- }
184
- ]
185
-
186
- let selectFields = `
187
- id
188
- name
189
- rank
190
- description
191
- category
192
- routing
193
- detailFormId
194
- hiddenFlag
195
- iconPath
196
- `
197
- return await MetaUtil.searchByPagination('menus', filters, sorters, page, limit, selectFields)
198
- }
199
- }
200
-
201
- /**
202
- * @description 부모 메뉴 (메뉴 그룹) 조회
203
- ****************************************
204
- * @param {Object} param0
205
- * @returns
206
- */
207
- async fetchGroupHandler({ page, limit, sorters = [{ name: 'rank' }, { name: 'name' }] }) {
208
- // 선택된 부모 메뉴 ID 초기화
209
- this.menuGroupId = null
210
-
211
- if (this.detailGrist && this.detailGrist.data) {
212
- this.detailGrist.data = {}
213
- }
214
-
215
- let filters = [...(await this.searchForm.getQueryFilters()), { name: 'parent', operator: 'is_null', value: '' }]
216
-
217
- let selectFields = `
218
- id
219
- name
220
- rank
221
- description
222
- menuType
223
- category
224
- routing
225
- detailFormId
226
- hiddenFlag
227
- iconPath
228
- `
229
- return await MetaUtil.searchByPagination('menus', filters, sorters, page, limit, selectFields)
230
- }
231
-
232
- /*******************************************/
233
- /* 트랜잭션 (저장 , 삭제) */
234
- /*******************************************/
235
-
236
- /**
237
- * 메뉴 그룹 Create / Update
238
- */
239
- async saveGroup() {
240
- await MetaUtil.updateMultipleData(this.groupGrist, 'updateMultipleMenu')
241
- }
242
-
243
- /**
244
- * 메뉴 그룹 Delete
245
- * @returns
246
- */
247
- async deleteGroup() {
248
- await MetaUtil.deleteListByGristSelected(this.groupGrist, 'deleteMenus')
249
- }
250
-
251
- /**
252
- * 메뉴 Create / Update
253
- */
254
- async saveMenu() {
255
- let cudRecords = this.detailGrist.dirtyRecords
256
-
257
- if (!cudRecords || cudRecords.length == 0) {
258
- MetaUtil.showAlertPopup('text.nothing_selected', 'text.there_is_nothing_to_delete', 'info', 'confirm')
259
- } else {
260
- let patches = MetaUtil.patchForUpdateMultiple(cudRecords)
261
-
262
- patches.forEach(patch => {
263
- patch.menuType = 'SCREEN'
264
- patch.parent = { id: this.menuGroupId }
265
- })
266
-
267
- let result = await MetaUtil.updateMultiple('updateMultipleMenu', patches)
268
- if (result) {
269
- this.detailGrist.fetch()
270
- }
271
- }
272
- }
273
-
274
- /**
275
- * 메뉴 Delete
276
- * @returns
277
- */
278
- async deleteMenu() {
279
- await MetaUtil.deleteListByGristSelected(this.detailGrist, 'deleteMenus')
280
- }
281
-
282
- groupMenuQuery(record) {
283
- this.menuGroupId = record.id
284
- this.detailGrist.fetch()
285
- }
286
-
287
- /**
288
- * 메뉴 템플릿을 편집 할 수 있는 팝업을 오픈한다.
289
- * @param {Object} record
290
- */
291
- async openMenuTemplatePopup(record) {
292
- let menuTemplateElement = MetaUtil.createCustomElement('dynamic-menu-template', 'dynamic-menu-template')
293
- menuTemplateElement.title = TermsUtil.tLabel('template')
294
- menuTemplateElement.recordId = record.id
295
- await MetaUtil.openPopupByElement(record.name, 'large', menuTemplateElement, true)
296
- }
297
-
298
- /**
299
- * LifeCycle
300
- * 화면 레더링 설정
301
- */
302
- async pageInitialized() {
303
- // 공통 코드 메뉴타입 조회
304
- let menuTypes = await MetaUtil.getCodeSelectorData('MENU_TYPE')
305
-
306
- // 조회 필드
307
- this.searchFields = [
308
- // name, type, label, operator, optionValues
309
- MetaUtil.getGristSearchColumnConfig('name', 'string', 'name', 'i_like'),
310
- MetaUtil.getGristSearchColumnConfig('menuType', 'select', 'menu_type', 'eq', menuTypes),
311
- MetaUtil.getGristSearchColumnConfig('hiddenFlag', 'checkbox', 'hidden_flag', 'eq')
312
- ]
313
-
314
- // 메뉴 그룹 그리드 설정
315
- this.groupConfig = {
316
- rows: MetaUtil.getGristSelectableConfig(false),
317
- pagination: MetaUtil.getGristPagination50Config(),
318
- appendable: true,
319
- columns: [
320
- ...MetaUtil.getGristGuttersDefaultConfig(false),
321
- {
322
- type: 'gutter',
323
- gutterName: 'button',
324
- icon: 'menu_open',
325
- handlers: {
326
- click: (_columns, _data, _column, record, _rowIndex) => {
327
- if (record.id) {
328
- this.groupMenuQuery(record)
329
- }
330
- }
331
- }
332
- },
333
- // type, name, align, editable, sortable, width
334
- MetaUtil.getGristColumnConfig('integer', 'rank', 'right', true, false, 60),
335
- MetaUtil.getGristColumnConfig('string', 'name', 'left', true, false, 150),
336
- {
337
- type: 'string',
338
- name: 'title',
339
- header: TermsUtil.tLabel('title'),
340
- record: {
341
- editable: false,
342
- align: 'left',
343
- renderer: (value, column, record, rowIndex, field) => {
344
- return record.name ? TermsUtil.tMenu(record.name) : ''
345
- }
346
- },
347
- sortable: false,
348
- width: 175
349
- },
350
- MetaUtil.getGristColumnConfig('string', 'description', 'left', true, false, 250),
351
- // name, displayName, align, sortable, width, mandatory, optionValues
352
- MetaUtil.getGristSelectorColumnConfig('menuType', 'menu_type', 'left', false, 100, true, menuTypes),
353
- // type, name, displayName, align, editable, sortable, width
354
- MetaUtil.getGristColumnConfig2('string', 'iconPath', 'icon', 'left', true, false, 100),
355
- MetaUtil.getGristColumnConfig2('boolean', 'hiddenFlag', 'hidden_flag', 'center', true, false, 100)
356
- ]
357
- }
358
-
359
- // 메뉴 그리드 설정
360
- this.detailConfig = {
361
- rows: MetaUtil.getGristSelectableConfig(false),
362
- pagination: MetaUtil.getGristPagination50Config(),
363
- appendable: true,
364
- columns: [
365
- ...MetaUtil.getGristGuttersDefaultConfig(false),
366
- {
367
- type: 'gutter',
368
- gutterName: 'button',
369
- icon: 'code',
370
- handlers: {
371
- click: (_columns, _data, _column, record, _rowIndex) => {
372
- if (record.id) {
373
- this.openMenuTemplatePopup(record)
374
- }
375
- }
376
- }
377
- },
378
- MetaUtil.getGristColumnConfig('integer', 'rank', 'right', true, false, 55),
379
- MetaUtil.getGristColumnConfig('string', 'name', 'left', true, false, 135),
380
- {
381
- type: 'string',
382
- name: 'title',
383
- header: TermsUtil.tLabel('title'),
384
- record: {
385
- editable: false,
386
- align: 'left',
387
- renderer: (value, column, record, rowIndex, field) => {
388
- return record.name ? TermsUtil.tMenu(record.name) : ''
389
- }
390
- },
391
- sortable: false,
392
- width: 150
393
- },
394
- // type, name, displayName, align, editable, sortable, width
395
- MetaUtil.getGristColumnConfig2('string', 'category', 'tag', 'left', true, false, 175),
396
- MetaUtil.getGristColumnConfig('string', 'routing', 'left', true, false, 175),
397
- MetaUtil.getGristColumnConfig2('string', 'detailFormId', 'page_location', 'left', true, false, 450),
398
- MetaUtil.getGristColumnConfig2('string', 'iconPath', 'icon', 'left', true, false, 125),
399
- MetaUtil.getGristColumnConfig2('boolean', 'hiddenFlag', 'hidden_flag', 'center', true, false, 95)
400
- ]
401
- }
402
- }
403
- }
404
-
405
- customElements.define('dynamic-menu', DynamicMenu)
43
+ `;}get[a0_0x10618c(0x85)](){const _0x5a6d07=a0_0x10618c;return{'title':TermsUtil[_0x5a6d07(0x99)](_0x5a6d07(0xc6))};}get[a0_0x10618c(0xd4)](){const _0x2ee236=a0_0x10618c;return this[_0x2ee236(0xbc)][_0x2ee236(0xa4)](_0x2ee236(0xc5));}get[a0_0x10618c(0x8a)](){const _0xae953f=a0_0x10618c;return this['shadowRoot'][_0xae953f(0xa4)](_0xae953f(0xa5));}get[a0_0x10618c(0x82)](){const _0x1f3c47=a0_0x10618c;return this['shadowRoot'][_0x1f3c47(0xa4)](_0x1f3c47(0xac));}async[a0_0x10618c(0x84)]({page:_0x388d94,limit:_0xd9a46c,sorters:_0x3809a2=[{'name':'rank'},{'name':a0_0x10618c(0xc4)}]}){const _0x5ecdcc=a0_0x10618c;if(this[_0x5ecdcc(0xca)]){let _0x5a3bd5=[{'name':_0x5ecdcc(0xd5),'operator':'eq','value':this[_0x5ecdcc(0xca)]}],_0x1e7476=_0x5ecdcc(0xd3);return await MetaApi[_0x5ecdcc(0xc2)](_0x5ecdcc(0x95),_0x5a3bd5,_0x3809a2,_0x388d94,_0xd9a46c,_0x1e7476);}}async[a0_0x10618c(0x7b)]({page:_0x5342a1,limit:_0x4304d4,sorters:_0x18db36=[{'name':a0_0x10618c(0xc1)},{'name':'name'}]}){const _0x2454da=a0_0x10618c;this[_0x2454da(0xca)]=null,this['detailGrist']&&this[_0x2454da(0x82)]['data']&&(this[_0x2454da(0x82)]['data']={});let _0x5dda72=[...await this[_0x2454da(0xd4)]['getQueryFilters'](),{'name':_0x2454da(0xd5),'operator':_0x2454da(0xc8),'value':''}];return await MetaApi[_0x2454da(0xc2)]('menus',_0x5dda72,_0x18db36,_0x5342a1,_0x4304d4,_0x2454da(0x9d));}async['saveGroup'](){const _0x346781=a0_0x10618c;let _0x42b1dc=MetaApi[_0x346781(0xbe)](this['groupGrist']);ValueUtil[_0x346781(0x86)](_0x42b1dc)&&(_0x42b1dc[_0x346781(0x80)](_0x2203c7=>{const _0x432756=_0x346781;void 0x0!==_0x2203c7['hiddenFlag']&&null!=_0x2203c7[_0x432756(0xd1)]||(_0x2203c7[_0x432756(0xd1)]=!0x1);}),await MetaApi['updateMultiple'](_0x346781(0x94),_0x42b1dc)&&this[_0x346781(0x8a)][_0x346781(0xd2)]());}async['deleteGroup'](){const _0x2b5513=a0_0x10618c;await MetaApi[_0x2b5513(0xcc)](this[_0x2b5513(0x8a)],_0x2b5513(0x7e));}async[a0_0x10618c(0xbd)](){const _0x18cd69=a0_0x10618c;let _0x4cfe7a=MetaApi['patchesForUpdateMultiple'](this[_0x18cd69(0x82)]);ValueUtil[_0x18cd69(0x86)](_0x4cfe7a)&&(_0x4cfe7a[_0x18cd69(0x80)](_0x29865f=>{const _0x458b08=_0x18cd69;_0x29865f['menuType']=_0x29865f[_0x458b08(0xa0)]||'SCREEN',_0x29865f[_0x458b08(0x97)]={'id':this[_0x458b08(0xca)]},void 0x0!==_0x29865f[_0x458b08(0xd1)]&&null!=_0x29865f[_0x458b08(0xd1)]||(_0x29865f[_0x458b08(0xd1)]=!0x1);}),await MetaApi[_0x18cd69(0xb3)](_0x18cd69(0x94),_0x4cfe7a)&&this[_0x18cd69(0x82)][_0x18cd69(0xd2)]());}async[a0_0x10618c(0x87)](){const _0xf1c835=a0_0x10618c;await MetaApi[_0xf1c835(0xcc)](this[_0xf1c835(0x82)],'deleteMenus');}[a0_0x10618c(0xcd)](_0x4e1f50){const _0x39b0e6=a0_0x10618c;this[_0x39b0e6(0xca)]=_0x4e1f50['id'],this[_0x39b0e6(0x82)][_0x39b0e6(0xd2)]();}async['openMenuTemplatePopup'](_0xd5c81e){const _0x484cf8=a0_0x10618c;let _0x48d304=MetaApi['createCustomElement']('dynamic-menu-template','dynamic-menu-template');_0x48d304[_0x484cf8(0xb2)]=TermsUtil[_0x484cf8(0xa8)](_0x484cf8(0xd0)),_0x48d304['recordId']=_0xd5c81e['id'],await MetaApi[_0x484cf8(0x8f)](_0xd5c81e[_0x484cf8(0xc4)],_0x484cf8(0xc9),_0x48d304,!0x0);}['navigateMetaGenerator'](_0x25ed59){MetaApi['pageNavigate']('meta-generator',{'menuId':_0x25ed59['id']});}async[a0_0x10618c(0xb8)](){const _0x42bdfb=a0_0x10618c;let _0x464934=await MetaApi[_0x42bdfb(0xa2)](_0x42bdfb(0x9f)),_0x41a23c=await MetaApi[_0x42bdfb(0xa2)](_0x42bdfb(0xa7));this[_0x42bdfb(0x7c)]=[MetaApi[_0x42bdfb(0xd8)](_0x42bdfb(0xc4),_0x42bdfb(0x9a),_0x42bdfb(0xc4),_0x42bdfb(0x8e)),MetaApi[_0x42bdfb(0xd8)]('menuType','select',_0x42bdfb(0xa6),'eq',_0x464934),MetaApi[_0x42bdfb(0xd8)](_0x42bdfb(0xd1),_0x42bdfb(0xc3),'hidden_flag','eq')],this[_0x42bdfb(0xb5)]={'rows':MetaApi['getGristSelectableConfig'](!0x1),'pagination':MetaApi[_0x42bdfb(0xc0)](),'appendable':!0x0,'columns':[...MetaApi['getGristGuttersConfig'](!0x0,!0x1),{'type':_0x42bdfb(0xd7),'gutterName':'button','icon':_0x42bdfb(0xcb),'handlers':{'click':(_0x37e431,_0x31cbf5,_0x592e79,_0x2c9848,_0x2aa70a)=>{const _0x37617d=_0x42bdfb;_0x2c9848['id']&&this[_0x37617d(0xcd)](_0x2c9848);}}},MetaApi[_0x42bdfb(0xb1)](_0x42bdfb(0x8b),_0x42bdfb(0xc1),'right',!0x0,!0x1,0x3c),MetaApi[_0x42bdfb(0xb1)](_0x42bdfb(0x9a),'name','left',!0x0,!0x1,0x96),{'type':'string','name':_0x42bdfb(0xb2),'header':TermsUtil['tLabel'](_0x42bdfb(0xb2)),'record':{'editable':!0x1,'align':_0x42bdfb(0xdc),'renderer':(_0xa29ac7,_0xf110b8,_0x268bd2,_0x41874d,_0x25054f)=>_0x268bd2[_0x42bdfb(0xc4)]?TermsUtil[_0x42bdfb(0xa1)](_0x268bd2[_0x42bdfb(0xc4)]):''},'sortable':!0x1,'width':0xaf},MetaApi[_0x42bdfb(0x83)]('menuType',_0x42bdfb(0xa6),_0x42bdfb(0xdc),!0x1,0x64,!0x0,_0x464934),MetaApi[_0x42bdfb(0x8c)]('string',_0x42bdfb(0xdb),'icon',_0x42bdfb(0xdc),!0x0,!0x1,0x64),MetaApi['getGristColumnConfig2'](_0x42bdfb(0x96),_0x42bdfb(0xd1),_0x42bdfb(0xab),_0x42bdfb(0xc7),!0x0,!0x1,0x64),MetaApi['getGristColumnConfig'](_0x42bdfb(0x9a),'routing',_0x42bdfb(0xdc),!0x0,!0x1,0x78),MetaApi[_0x42bdfb(0x8c)](_0x42bdfb(0x9a),_0x42bdfb(0x8d),_0x42bdfb(0xdd),_0x42bdfb(0xdc),!0x0,!0x1,0x78),MetaApi[_0x42bdfb(0x8c)]('string',_0x42bdfb(0xd9),'page_location',_0x42bdfb(0xdc),!0x0,!0x1,0x12c)]},this['detailConfig']={'rows':MetaApi[_0x42bdfb(0xa3)](!0x1),'pagination':MetaApi[_0x42bdfb(0xc0)](),'appendable':!0x0,'columns':[...MetaApi[_0x42bdfb(0xb0)](!0x0,!0x1),{'type':_0x42bdfb(0xd7),'gutterName':_0x42bdfb(0x92),'icon':_0x42bdfb(0xbf),'handlers':{'click':(_0x4b3698,_0x6166e5,_0x43fea8,_0x2df609,_0x4929d1)=>{_0x2df609['id']&&this['openMenuTemplatePopup'](_0x2df609);}}},{'type':_0x42bdfb(0xd7),'gutterName':_0x42bdfb(0x92),'icon':'construction','handlers':{'click':(_0x46e91c,_0x5f51ec,_0x815635,_0x60e56f,_0x2fcdef)=>{_0x60e56f['id']&&this['navigateMetaGenerator'](_0x60e56f);}}},MetaApi[_0x42bdfb(0xb1)](_0x42bdfb(0x8b),_0x42bdfb(0xc1),'right',!0x0,!0x1,0x37),MetaApi['getGristColumnConfig']('string',_0x42bdfb(0xc4),_0x42bdfb(0xdc),!0x0,!0x1,0x87),{'type':_0x42bdfb(0x9a),'name':_0x42bdfb(0xb2),'header':TermsUtil[_0x42bdfb(0xa8)](_0x42bdfb(0xb2)),'record':{'editable':!0x1,'align':'left','renderer':(_0x303579,_0x3f324e,_0x411e7d,_0x5671b1,_0x417904)=>_0x411e7d[_0x42bdfb(0xc4)]?TermsUtil[_0x42bdfb(0xa1)](_0x411e7d[_0x42bdfb(0xc4)]):''},'sortable':!0x1,'width':0x96},MetaApi['getGristSelectorColumnConfig'](_0x42bdfb(0xa0),_0x42bdfb(0xa6),_0x42bdfb(0xdc),!0x1,0x64,!0x0,_0x41a23c),MetaApi[_0x42bdfb(0xb1)](_0x42bdfb(0x9a),_0x42bdfb(0x7f),_0x42bdfb(0xdc),!0x0,!0x1,0xaf),MetaApi[_0x42bdfb(0x8c)](_0x42bdfb(0x9a),'category',_0x42bdfb(0xdd),'left',!0x0,!0x1,0xaf),MetaApi[_0x42bdfb(0x8c)](_0x42bdfb(0x9a),_0x42bdfb(0xd9),_0x42bdfb(0x88),_0x42bdfb(0xdc),!0x0,!0x1,0x1c2),MetaApi['getGristColumnConfig2'](_0x42bdfb(0x9a),_0x42bdfb(0xdb),_0x42bdfb(0x89),_0x42bdfb(0xdc),!0x0,!0x1,0x7d),MetaApi[_0x42bdfb(0x8c)](_0x42bdfb(0x96),_0x42bdfb(0xd1),_0x42bdfb(0xab),_0x42bdfb(0xc7),!0x0,!0x1,0x5f)]};}}customElements[a0_0x10618c(0xa9)]('dynamic-menu',DynamicMenu);
@@ -0,0 +1 @@
1
+ var a0_0x1dac84=a0_0x266a;(function(_0x34cd7b,_0x164d43){var _0x36b19b=a0_0x266a,_0x25dda4=_0x34cd7b();while(!![]){try{var _0x54a35e=-parseInt(_0x36b19b(0xfc))/0x1*(-parseInt(_0x36b19b(0xfe))/0x2)+parseInt(_0x36b19b(0xfa))/0x3+-parseInt(_0x36b19b(0xfd))/0x4*(-parseInt(_0x36b19b(0xfb))/0x5)+-parseInt(_0x36b19b(0xf8))/0x6*(parseInt(_0x36b19b(0xff))/0x7)+-parseInt(_0x36b19b(0xf9))/0x8+-parseInt(_0x36b19b(0x101))/0x9*(parseInt(_0x36b19b(0x103))/0xa)+-parseInt(_0x36b19b(0x102))/0xb;if(_0x54a35e===_0x164d43)break;else _0x25dda4['push'](_0x25dda4['shift']());}catch(_0x1c4f2a){_0x25dda4['push'](_0x25dda4['shift']());}}}(a0_0x4e92,0xeed03));import{LitElement}from'lit';import{i18next,localize}from'@operato/i18n';function a0_0x4e92(){var _0x219cfd=['9442909mBteRk','define','13212bKvCiO','5260794Nfvvdk','12380iHNAqV','meta-form-element','6RKyEzB','2289200LGWrsx','5371479KsxonQ','7566690psSkhL','3gHnMnp','4IOqzTK','1070082lvulzV'];a0_0x4e92=function(){return _0x219cfd;};return a0_0x4e92();}function a0_0x266a(_0xdc4141,_0xc2edaa){var _0x4e9292=a0_0x4e92();return a0_0x266a=function(_0x266a23,_0x3a4587){_0x266a23=_0x266a23-0xf7;var _0x312353=_0x4e9292[_0x266a23];return _0x312353;},a0_0x266a(_0xdc4141,_0xc2edaa);}import{MetaBasicFormMixin}from'./../mixin/meta-basic-form-mixin.js';export class MetaFormElement extends MetaBasicFormMixin(localize(i18next)(LitElement)){}customElements[a0_0x1dac84(0x100)](a0_0x1dac84(0xf7),MetaFormElement);
@@ -0,0 +1 @@
1
+ var a0_0x59ac9e=a0_0x2789;(function(_0x29191d,_0x568531){var _0x37829a=a0_0x2789,_0x59637c=_0x29191d();while(!![]){try{var _0x520a44=-parseInt(_0x37829a(0x1a3))/0x1+parseInt(_0x37829a(0x1a2))/0x2+-parseInt(_0x37829a(0x1a4))/0x3*(parseInt(_0x37829a(0x1a1))/0x4)+parseInt(_0x37829a(0x19d))/0x5+-parseInt(_0x37829a(0x1a0))/0x6+-parseInt(_0x37829a(0x1a6))/0x7*(parseInt(_0x37829a(0x19f))/0x8)+parseInt(_0x37829a(0x19e))/0x9;if(_0x520a44===_0x568531)break;else _0x59637c['push'](_0x59637c['shift']());}catch(_0x3b559f){_0x59637c['push'](_0x59637c['shift']());}}}(a0_0x5496,0x88017));function a0_0x5496(){var _0x40d553=['meta-grist-element','259jWwBiv','3632695vFMaoj','7281054QsUsBY','70456xfHADi','1891326dNOfXu','40624QGjVJL','1819456iPMdFy','261982bevXpd','291aGAjKS'];a0_0x5496=function(){return _0x40d553;};return a0_0x5496();}import{LitElement}from'lit';import{i18next,localize}from'@operato/i18n';import{MetaBasicGristMixin}from'./../mixin/meta-basic-grist-mixin.js';export class MetaGristElement extends MetaBasicGristMixin(localize(i18next)(LitElement)){}function a0_0x2789(_0x5b3456,_0x3c7bd0){var _0x549644=a0_0x5496();return a0_0x2789=function(_0x2789ab,_0xb12673){_0x2789ab=_0x2789ab-0x19d;var _0x4d453a=_0x549644[_0x2789ab];return _0x4d453a;},a0_0x2789(_0x5b3456,_0x3c7bd0);}customElements['define'](a0_0x59ac9e(0x1a5),MetaGristElement);
@@ -0,0 +1 @@
1
+ var a0_0x2ec8d4=a0_0x2df4;function a0_0x2df4(_0x3aa982,_0x5292b6){var _0x95c547=a0_0x95c5();return a0_0x2df4=function(_0x2df43c,_0x16143f){_0x2df43c=_0x2df43c-0x1f3;var _0x25c5b5=_0x95c547[_0x2df43c];return _0x25c5b5;},a0_0x2df4(_0x3aa982,_0x5292b6);}(function(_0x115182,_0x435521){var _0x5b3e15=a0_0x2df4,_0x2d380a=_0x115182();while(!![]){try{var _0x507e8d=parseInt(_0x5b3e15(0x1fe))/0x1*(-parseInt(_0x5b3e15(0x1f9))/0x2)+parseInt(_0x5b3e15(0x1f3))/0x3*(-parseInt(_0x5b3e15(0x1f8))/0x4)+parseInt(_0x5b3e15(0x1f4))/0x5+parseInt(_0x5b3e15(0x1fa))/0x6+parseInt(_0x5b3e15(0x1fc))/0x7*(-parseInt(_0x5b3e15(0x1f7))/0x8)+-parseInt(_0x5b3e15(0x1fd))/0x9+parseInt(_0x5b3e15(0x1fb))/0xa;if(_0x507e8d===_0x435521)break;else _0x2d380a['push'](_0x2d380a['shift']());}catch(_0x54ba7b){_0x2d380a['push'](_0x2d380a['shift']());}}}(a0_0x95c5,0xb858c));import{i18next,localize}from'@operato/i18n';import{PageView}from'@things-factory/shell';import{MetaBasicGristMixin}from'./../mixin/meta-basic-grist-mixin.js';import'./meta-grist-element';import'./meta-form-element';function a0_0x95c5(){var _0x36e81f=['5928180KmGthL','28004140EpIqHW','1841pGqBvL','12699180ReaKcS','73317jLmhDo','641790TNijAv','1882070dHlmCx','define','meta-grist-page','38680fczMoV','4YWojAw','14dTowuV'];a0_0x95c5=function(){return _0x36e81f;};return a0_0x95c5();}export class MetaGristPage extends MetaBasicGristMixin(localize(i18next)(PageView)){}customElements[a0_0x2ec8d4(0x1f5)](a0_0x2ec8d4(0x1f6),MetaGristPage);