@things-factory/meta-ui 9.0.0-beta.24 → 9.0.0-beta.27
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/package.json +9 -9
- package/dist-client/bootstrap.d.ts +0 -7
- package/dist-client/bootstrap.js +0 -142
- package/dist-client/bootstrap.js.map +0 -1
- package/dist-client/component/filter/filter-form-meta-code-select.d.ts +0 -4
- package/dist-client/component/filter/filter-form-meta-code-select.js +0 -80
- package/dist-client/component/filter/filter-form-meta-code-select.js.map +0 -1
- package/dist-client/component/filter/filter-form-meta-object-select.d.ts +0 -4
- package/dist-client/component/filter/filter-form-meta-object-select.js +0 -82
- package/dist-client/component/filter/filter-form-meta-object-select.js.map +0 -1
- package/dist-client/component/filter/filter-grist-meta-code-select.d.ts +0 -3
- package/dist-client/component/filter/filter-grist-meta-code-select.js +0 -76
- package/dist-client/component/filter/filter-grist-meta-code-select.js.map +0 -1
- package/dist-client/component/filter/filter-grist-meta-object-select.d.ts +0 -3
- package/dist-client/component/filter/filter-grist-meta-object-select.js +0 -81
- package/dist-client/component/filter/filter-grist-meta-object-select.js.map +0 -1
- package/dist-client/component/grist/editor/grist-editor-code-input.d.ts +0 -15
- package/dist-client/component/grist/editor/grist-editor-code-input.js +0 -81
- package/dist-client/component/grist/editor/grist-editor-code-input.js.map +0 -1
- package/dist-client/component/grist/editor/grist-editor-meta-code-selector.d.ts +0 -15
- package/dist-client/component/grist/editor/grist-editor-meta-code-selector.js +0 -130
- package/dist-client/component/grist/editor/grist-editor-meta-code-selector.js.map +0 -1
- package/dist-client/component/grist/editor/grist-editor-meta-object-selector.d.ts +0 -15
- package/dist-client/component/grist/editor/grist-editor-meta-object-selector.js +0 -98
- package/dist-client/component/grist/editor/grist-editor-meta-object-selector.js.map +0 -1
- package/dist-client/component/grist/renderer/grist-renderer-code-input.d.ts +0 -1
- package/dist-client/component/grist/renderer/grist-renderer-code-input.js +0 -19
- package/dist-client/component/grist/renderer/grist-renderer-code-input.js.map +0 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-code-selector.d.ts +0 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-code-selector.js +0 -29
- package/dist-client/component/grist/renderer/grist-renderer-meta-code-selector.js.map +0 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.d.ts +0 -1
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js +0 -23
- package/dist-client/component/grist/renderer/grist-renderer-meta-object-selector.js.map +0 -1
- package/dist-client/component/popup/code-input-editor-popup.d.ts +0 -36
- package/dist-client/component/popup/code-input-editor-popup.js +0 -103
- package/dist-client/component/popup/code-input-editor-popup.js.map +0 -1
- package/dist-client/component/popup/file-upload-popup.d.ts +0 -1
- package/dist-client/component/popup/file-upload-popup.js +0 -118
- package/dist-client/component/popup/file-upload-popup.js.map +0 -1
- package/dist-client/component/popup/meta-object-selector-popup.d.ts +0 -60
- package/dist-client/component/popup/meta-object-selector-popup.js +0 -300
- package/dist-client/component/popup/meta-object-selector-popup.js.map +0 -1
- package/dist-client/component/popup/record-based-code-editor-popup.d.ts +0 -52
- package/dist-client/component/popup/record-based-code-editor-popup.js +0 -174
- package/dist-client/component/popup/record-based-code-editor-popup.js.map +0 -1
- package/dist-client/dynamic-menus.d.ts +0 -1
- package/dist-client/dynamic-menus.js +0 -16
- package/dist-client/dynamic-menus.js.map +0 -1
- package/dist-client/index.d.ts +0 -17
- package/dist-client/index.js +0 -18
- package/dist-client/index.js.map +0 -1
- package/dist-client/load-components.d.ts +0 -15
- package/dist-client/load-components.js +0 -17
- package/dist-client/load-components.js.map +0 -1
- package/dist-client/mixin/meta-base-mixin.d.ts +0 -89
- package/dist-client/mixin/meta-base-mixin.js +0 -287
- package/dist-client/mixin/meta-base-mixin.js.map +0 -1
- package/dist-client/mixin/meta-basic-grist-mixin.d.ts +0 -108
- package/dist-client/mixin/meta-basic-grist-mixin.js +0 -253
- package/dist-client/mixin/meta-basic-grist-mixin.js.map +0 -1
- package/dist-client/mixin/meta-button-mixin.d.ts +0 -106
- package/dist-client/mixin/meta-button-mixin.js +0 -106
- package/dist-client/mixin/meta-button-mixin.js.map +0 -1
- package/dist-client/mixin/meta-form-mixin.d.ts +0 -153
- package/dist-client/mixin/meta-form-mixin.js +0 -373
- package/dist-client/mixin/meta-form-mixin.js.map +0 -1
- package/dist-client/mixin/meta-grist-tab-mixin.d.ts +0 -132
- package/dist-client/mixin/meta-grist-tab-mixin.js +0 -301
- package/dist-client/mixin/meta-grist-tab-mixin.js.map +0 -1
- package/dist-client/mixin/meta-main-tab-mixin.d.ts +0 -109
- package/dist-client/mixin/meta-main-tab-mixin.js +0 -242
- package/dist-client/mixin/meta-main-tab-mixin.js.map +0 -1
- package/dist-client/mixin/meta-master-detail-mixin.d.ts +0 -172
- package/dist-client/mixin/meta-master-detail-mixin.js +0 -359
- package/dist-client/mixin/meta-master-detail-mixin.js.map +0 -1
- package/dist-client/mixin/meta-service-mixin.d.ts +0 -66
- package/dist-client/mixin/meta-service-mixin.js +0 -268
- package/dist-client/mixin/meta-service-mixin.js.map +0 -1
- package/dist-client/mixin/meta-tab-detail-mixin.d.ts +0 -110
- package/dist-client/mixin/meta-tab-detail-mixin.js +0 -255
- package/dist-client/mixin/meta-tab-detail-mixin.js.map +0 -1
- package/dist-client/mixin/meta-tab-mixin.d.ts +0 -108
- package/dist-client/mixin/meta-tab-mixin.js +0 -168
- package/dist-client/mixin/meta-tab-mixin.js.map +0 -1
- package/dist-client/pages/activity/meta-activity-define-page.d.ts +0 -1
- package/dist-client/pages/activity/meta-activity-define-page.js +0 -398
- package/dist-client/pages/activity/meta-activity-define-page.js.map +0 -1
- package/dist-client/pages/activity/meta-activity-list-page.d.ts +0 -1
- package/dist-client/pages/activity/meta-activity-list-page.js +0 -223
- package/dist-client/pages/activity/meta-activity-list-page.js.map +0 -1
- package/dist-client/pages/activity/meta-activity-viewer-element.d.ts +0 -25
- package/dist-client/pages/activity/meta-activity-viewer-element.js +0 -29
- package/dist-client/pages/activity/meta-activity-viewer-element.js.map +0 -1
- package/dist-client/pages/activity/meta-activity-writer-element.d.ts +0 -27
- package/dist-client/pages/activity/meta-activity-writer-element.js +0 -38
- package/dist-client/pages/activity/meta-activity-writer-element.js.map +0 -1
- package/dist-client/pages/activity/meta-activiy-mixin.d.ts +0 -17
- package/dist-client/pages/activity/meta-activiy-mixin.js +0 -70
- package/dist-client/pages/activity/meta-activiy-mixin.js.map +0 -1
- package/dist-client/pages/button-role/button-role-detail.d.ts +0 -74
- package/dist-client/pages/button-role/button-role-detail.js +0 -39
- package/dist-client/pages/button-role/button-role-detail.js.map +0 -1
- package/dist-client/pages/button-role/button-role-page.d.ts +0 -82
- package/dist-client/pages/button-role/button-role-page.js +0 -21
- package/dist-client/pages/button-role/button-role-page.js.map +0 -1
- package/dist-client/pages/doc-number/doc-number-page.d.ts +0 -1
- package/dist-client/pages/doc-number/doc-number-page.js +0 -20
- package/dist-client/pages/doc-number/doc-number-page.js.map +0 -1
- package/dist-client/pages/doc-number/next-doc-number-popup.d.ts +0 -1
- package/dist-client/pages/doc-number/next-doc-number-popup.js +0 -21
- package/dist-client/pages/doc-number/next-doc-number-popup.js.map +0 -1
- package/dist-client/pages/entity/config-entity.d.ts +0 -1
- package/dist-client/pages/entity/config-entity.js +0 -801
- package/dist-client/pages/entity/config-entity.js.map +0 -1
- package/dist-client/pages/entity/main-menu-selector.d.ts +0 -61
- package/dist-client/pages/entity/main-menu-selector.js +0 -233
- package/dist-client/pages/entity/main-menu-selector.js.map +0 -1
- package/dist-client/pages/history/history-copy-list-popup.d.ts +0 -50
- package/dist-client/pages/history/history-copy-list-popup.js +0 -122
- package/dist-client/pages/history/history-copy-list-popup.js.map +0 -1
- package/dist-client/pages/history/history-json-list-popup.d.ts +0 -50
- package/dist-client/pages/history/history-json-list-popup.js +0 -132
- package/dist-client/pages/history/history-json-list-popup.js.map +0 -1
- package/dist-client/pages/menu/dynamic-menu-template.d.ts +0 -1
- package/dist-client/pages/menu/dynamic-menu-template.js +0 -80
- package/dist-client/pages/menu/dynamic-menu-template.js.map +0 -1
- package/dist-client/pages/menu/dynamic-menu.d.ts +0 -83
- package/dist-client/pages/menu/dynamic-menu.js +0 -663
- package/dist-client/pages/menu/dynamic-menu.js.map +0 -1
- package/dist-client/pages/menu/export-menu-popup.d.ts +0 -55
- package/dist-client/pages/menu/export-menu-popup.js +0 -392
- package/dist-client/pages/menu/export-menu-popup.js.map +0 -1
- package/dist-client/pages/meta-form-element.d.ts +0 -63
- package/dist-client/pages/meta-form-element.js +0 -8
- package/dist-client/pages/meta-form-element.js.map +0 -1
- package/dist-client/pages/meta-grist-element.d.ts +0 -70
- package/dist-client/pages/meta-grist-element.js +0 -11
- package/dist-client/pages/meta-grist-element.js.map +0 -1
- package/dist-client/pages/meta-grist-page.d.ts +0 -70
- package/dist-client/pages/meta-grist-page.js +0 -14
- package/dist-client/pages/meta-grist-page.js.map +0 -1
- package/dist-client/pages/meta-grist-tab-element.d.ts +0 -82
- package/dist-client/pages/meta-grist-tab-element.js +0 -14
- package/dist-client/pages/meta-grist-tab-element.js.map +0 -1
- package/dist-client/pages/meta-grist-tab-page.d.ts +0 -82
- package/dist-client/pages/meta-grist-tab-page.js +0 -14
- package/dist-client/pages/meta-grist-tab-page.js.map +0 -1
- package/dist-client/pages/meta-main-tab-element.d.ts +0 -75
- package/dist-client/pages/meta-main-tab-element.js +0 -11
- package/dist-client/pages/meta-main-tab-element.js.map +0 -1
- package/dist-client/pages/meta-main-tab-page.d.ts +0 -75
- package/dist-client/pages/meta-main-tab-page.js +0 -14
- package/dist-client/pages/meta-main-tab-page.js.map +0 -1
- package/dist-client/pages/meta-master-detail-element.d.ts +0 -80
- package/dist-client/pages/meta-master-detail-element.js +0 -11
- package/dist-client/pages/meta-master-detail-element.js.map +0 -1
- package/dist-client/pages/meta-master-detail-page.d.ts +0 -80
- package/dist-client/pages/meta-master-detail-page.js +0 -14
- package/dist-client/pages/meta-master-detail-page.js.map +0 -1
- package/dist-client/pages/meta-tab-detail-element.d.ts +0 -76
- package/dist-client/pages/meta-tab-detail-element.js +0 -11
- package/dist-client/pages/meta-tab-detail-element.js.map +0 -1
- package/dist-client/pages/meta-tab-detail-page.d.ts +0 -76
- package/dist-client/pages/meta-tab-detail-page.js +0 -14
- package/dist-client/pages/meta-tab-detail-page.js.map +0 -1
- package/dist-client/pages/meta-tab-element.d.ts +0 -57
- package/dist-client/pages/meta-tab-element.js +0 -13
- package/dist-client/pages/meta-tab-element.js.map +0 -1
- package/dist-client/pages/printer-device/printer-device-page.d.ts +0 -1
- package/dist-client/pages/printer-device/printer-device-page.js +0 -20
- package/dist-client/pages/printer-device/printer-device-page.js.map +0 -1
- package/dist-client/pages/template/doc-template-page.d.ts +0 -1
- package/dist-client/pages/template/doc-template-page.js +0 -20
- package/dist-client/pages/template/doc-template-page.js.map +0 -1
- package/dist-client/pages/template/template-file-page.d.ts +0 -1
- package/dist-client/pages/template/template-file-page.js +0 -20
- package/dist-client/pages/template/template-file-page.js.map +0 -1
- package/dist-client/pages/terms/config-terminology.d.ts +0 -1
- package/dist-client/pages/terms/config-terminology.js +0 -188
- package/dist-client/pages/terms/config-terminology.js.map +0 -1
- package/dist-client/pages/work-code/work-code-detail-popup.d.ts +0 -69
- package/dist-client/pages/work-code/work-code-detail-popup.js +0 -13
- package/dist-client/pages/work-code/work-code-detail-popup.js.map +0 -1
- package/dist-client/pages/work-code/work-code-page.d.ts +0 -1
- package/dist-client/pages/work-code/work-code-page.js +0 -19
- package/dist-client/pages/work-code/work-code-page.js.map +0 -1
- package/dist-client/route.d.ts +0 -1
- package/dist-client/route.js +0 -30
- package/dist-client/route.js.map +0 -1
- package/dist-client/tsconfig.tsbuildinfo +0 -1
- package/dist-client/utils/grist-default-value.d.ts +0 -8
- package/dist-client/utils/grist-default-value.js +0 -33
- package/dist-client/utils/grist-default-value.js.map +0 -1
- package/dist-client/utils/meta-api.d.ts +0 -572
- package/dist-client/utils/meta-api.js +0 -728
- package/dist-client/utils/meta-api.js.map +0 -1
- package/dist-client/utils/meta-crypto.d.ts +0 -4
- package/dist-client/utils/meta-crypto.js +0 -45
- package/dist-client/utils/meta-crypto.js.map +0 -1
- package/dist-client/utils/meta-ui-util.d.ts +0 -566
- package/dist-client/utils/meta-ui-util.js +0 -2985
- package/dist-client/utils/meta-ui-util.js.map +0 -1
- package/dist-client/utils/rest-service-util.d.ts +0 -120
- package/dist-client/utils/rest-service-util.js +0 -291
- package/dist-client/utils/rest-service-util.js.map +0 -1
- package/dist-client/utils/service-util.d.ts +0 -286
- package/dist-client/utils/service-util.js +0 -1204
- package/dist-client/utils/service-util.js.map +0 -1
- package/dist-client/utils/terms-util.d.ts +0 -81
- package/dist-client/utils/terms-util.js +0 -105
- package/dist-client/utils/terms-util.js.map +0 -1
- package/dist-client/utils/ui-util.d.ts +0 -153
- package/dist-client/utils/ui-util.js +0 -307
- package/dist-client/utils/ui-util.js.map +0 -1
- package/dist-client/utils/value-util.d.ts +0 -99
- package/dist-client/utils/value-util.js +0 -214
- package/dist-client/utils/value-util.js.map +0 -1
- package/dist-server/activity/CommonActivity.d.ts +0 -2
- package/dist-server/activity/CommonActivity.js +0 -58
- package/dist-server/activity/CommonActivity.js.map +0 -1
- package/dist-server/index.d.ts +0 -2
- package/dist-server/index.js +0 -6
- package/dist-server/index.js.map +0 -1
- package/dist-server/routes.d.ts +0 -1
- package/dist-server/routes.js +0 -58
- package/dist-server/routes.js.map +0 -1
- package/dist-server/service/button-role/button-role-mutation.d.ts +0 -9
- package/dist-server/service/button-role/button-role-mutation.js +0 -112
- package/dist-server/service/button-role/button-role-mutation.js.map +0 -1
- package/dist-server/service/button-role/button-role-query.d.ts +0 -11
- package/dist-server/service/button-role/button-role-query.js +0 -79
- package/dist-server/service/button-role/button-role-query.js.map +0 -1
- package/dist-server/service/button-role/button-role-type.d.ts +0 -15
- package/dist-server/service/button-role/button-role-type.js +0 -57
- package/dist-server/service/button-role/button-role-type.js.map +0 -1
- package/dist-server/service/button-role/button-role.d.ts +0 -15
- package/dist-server/service/button-role/button-role.js +0 -69
- package/dist-server/service/button-role/button-role.js.map +0 -1
- package/dist-server/service/button-role/index.d.ts +0 -5
- package/dist-server/service/button-role/index.js +0 -9
- package/dist-server/service/button-role/index.js.map +0 -1
- package/dist-server/service/dynamic-menu/dynamic-menu-query.d.ts +0 -11
- package/dist-server/service/dynamic-menu/dynamic-menu-query.js +0 -244
- package/dist-server/service/dynamic-menu/dynamic-menu-query.js.map +0 -1
- package/dist-server/service/dynamic-menu/dynamic-menu-type.d.ts +0 -30
- package/dist-server/service/dynamic-menu/dynamic-menu-type.js +0 -109
- package/dist-server/service/dynamic-menu/dynamic-menu-type.js.map +0 -1
- package/dist-server/service/dynamic-menu/index.d.ts +0 -2
- package/dist-server/service/dynamic-menu/index.js +0 -6
- package/dist-server/service/dynamic-menu/index.js.map +0 -1
- package/dist-server/service/entity-event-subscriber/entity-event-subscriber.d.ts +0 -6
- package/dist-server/service/entity-event-subscriber/entity-event-subscriber.js +0 -71
- package/dist-server/service/entity-event-subscriber/entity-event-subscriber.js.map +0 -1
- package/dist-server/service/entity-event-subscriber/index.d.ts +0 -2
- package/dist-server/service/entity-event-subscriber/index.js +0 -6
- package/dist-server/service/entity-event-subscriber/index.js.map +0 -1
- package/dist-server/service/index.d.ts +0 -9
- package/dist-server/service/index.js +0 -42
- package/dist-server/service/index.js.map +0 -1
- package/dist-server/service/menu-button-auth/index.d.ts +0 -5
- package/dist-server/service/menu-button-auth/index.js +0 -9
- package/dist-server/service/menu-button-auth/index.js.map +0 -1
- package/dist-server/service/menu-button-auth/menu-button-auth-mutation.d.ts +0 -10
- package/dist-server/service/menu-button-auth/menu-button-auth-mutation.js +0 -127
- package/dist-server/service/menu-button-auth/menu-button-auth-mutation.js.map +0 -1
- package/dist-server/service/menu-button-auth/menu-button-auth-query.d.ts +0 -16
- package/dist-server/service/menu-button-auth/menu-button-auth-query.js +0 -167
- package/dist-server/service/menu-button-auth/menu-button-auth-query.js.map +0 -1
- package/dist-server/service/menu-button-auth/menu-button-auth-type.d.ts +0 -24
- package/dist-server/service/menu-button-auth/menu-button-auth-type.js +0 -90
- package/dist-server/service/menu-button-auth/menu-button-auth-type.js.map +0 -1
- package/dist-server/service/menu-button-auth/menu-button-auth.d.ts +0 -23
- package/dist-server/service/menu-button-auth/menu-button-auth.js +0 -102
- package/dist-server/service/menu-button-auth/menu-button-auth.js.map +0 -1
- package/dist-server/service/meta-activity/index.d.ts +0 -3
- package/dist-server/service/meta-activity/index.js +0 -7
- package/dist-server/service/meta-activity/index.js.map +0 -1
- package/dist-server/service/meta-activity/meta-activity-mutation.d.ts +0 -18
- package/dist-server/service/meta-activity/meta-activity-mutation.js +0 -183
- package/dist-server/service/meta-activity/meta-activity-mutation.js.map +0 -1
- package/dist-server/service/meta-activity/meta-activity-query.d.ts +0 -10
- package/dist-server/service/meta-activity/meta-activity-query.js +0 -66
- package/dist-server/service/meta-activity/meta-activity-query.js.map +0 -1
- package/dist-server/service/meta-activity/meta-activity-type.d.ts +0 -21
- package/dist-server/service/meta-activity/meta-activity-type.js +0 -80
- package/dist-server/service/meta-activity/meta-activity-type.js.map +0 -1
- package/dist-server/service/set-translations/index.d.ts +0 -2
- package/dist-server/service/set-translations/index.js +0 -6
- package/dist-server/service/set-translations/index.js.map +0 -1
- package/dist-server/service/set-translations/set-translation-resolver.d.ts +0 -4
- package/dist-server/service/set-translations/set-translation-resolver.js +0 -67
- package/dist-server/service/set-translations/set-translation-resolver.js.map +0 -1
- package/dist-server/service/work-code/index.d.ts +0 -5
- package/dist-server/service/work-code/index.js +0 -9
- package/dist-server/service/work-code/index.js.map +0 -1
- package/dist-server/service/work-code/work-code-mutation.d.ts +0 -10
- package/dist-server/service/work-code/work-code-mutation.js +0 -136
- package/dist-server/service/work-code/work-code-mutation.js.map +0 -1
- package/dist-server/service/work-code/work-code-query.d.ts +0 -14
- package/dist-server/service/work-code/work-code-query.js +0 -106
- package/dist-server/service/work-code/work-code-query.js.map +0 -1
- package/dist-server/service/work-code/work-code-type.d.ts +0 -23
- package/dist-server/service/work-code/work-code-type.js +0 -89
- package/dist-server/service/work-code/work-code-type.js.map +0 -1
- package/dist-server/service/work-code/work-code.d.ts +0 -20
- package/dist-server/service/work-code/work-code.js +0 -94
- package/dist-server/service/work-code/work-code.js.map +0 -1
- package/dist-server/service/work-code-detail/index.d.ts +0 -5
- package/dist-server/service/work-code-detail/index.js +0 -9
- package/dist-server/service/work-code-detail/index.js.map +0 -1
- package/dist-server/service/work-code-detail/work-code-detail-mutation.d.ts +0 -10
- package/dist-server/service/work-code-detail/work-code-detail-mutation.js +0 -138
- package/dist-server/service/work-code-detail/work-code-detail-mutation.js.map +0 -1
- package/dist-server/service/work-code-detail/work-code-detail-query.d.ts +0 -13
- package/dist-server/service/work-code-detail/work-code-detail-query.js +0 -89
- package/dist-server/service/work-code-detail/work-code-detail-query.js.map +0 -1
- package/dist-server/service/work-code-detail/work-code-detail-type.d.ts +0 -20
- package/dist-server/service/work-code-detail/work-code-detail-type.js +0 -74
- package/dist-server/service/work-code-detail/work-code-detail-type.js.map +0 -1
- package/dist-server/service/work-code-detail/work-code-detail.d.ts +0 -19
- package/dist-server/service/work-code-detail/work-code-detail.js +0 -93
- package/dist-server/service/work-code-detail/work-code-detail.js.map +0 -1
- package/dist-server/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-menu.js","sourceRoot":"","sources":["../../../client/pages/menu/dynamic-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@things-factory/form-ui'\n\nimport gql from 'graphql-tag'\nimport { html } from 'lit'\nimport { customElement, property, state, query } from 'lit/decorators.js'\n\nimport { PageView } from '@operato/shell'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { p13n } from '@operato/p13n'\nimport { OxFiltersFormBase } from '@operato/form'\n\nimport { TermsUtil } from './../../utils/terms-util'\nimport { MetaApi } from '../../utils/meta-api'\n\nimport './dynamic-menu-template.js'\nimport './export-menu-popup.js'\nimport { ValueUtil } from '../../utils/value-util'\nimport { UiUtil } from '../../utils/ui-util'\nimport { DataGrist, FetchOption } from '@operato/data-grist'\n\n@customElement('dynamic-menu')\nexport class DynamicMenu extends p13n(localize(i18next)(PageView)) {\n static styles = [...MetaApi.getBasicMasterDetailGristStyle('top-down')]\n\n @state() searchFields?: string[]\n @state() groupConfig: any\n @state() detailConfig: any\n\n @query('ox-filters-form-base') searchForm!: OxFiltersFormBase\n @query('#master-grist') groupGrist!: DataGrist\n @query('#detail-grist') detailGrist!: DataGrist\n\n private menuGroupId?: string\n\n render() {\n return html`\n <div slot=\"headroom\" class=\"header\">\n <div class=\"filters\">\n <ox-filters-form-base\n .filters=${this.searchFields || []}\n @filters-change=${e => {\n this.groupGrist?.fetch()\n }}\n ></ox-filters-form-base>\n </div>\n </div>\n\n <div class=\"container\">\n <div class=\"container_detail\">\n <!--h2>\n <md-icon>list_alt</md-icon>${TermsUtil.tTitle('menu_group')}\n </h2-->\n <ox-grist\n id=\"master-grist\"\n .config=${this.groupConfig}\n .mode=${MetaApi.isMobileEnv() ? 'LIST' : 'GRID'}\n .personalConfigProvider=${this.getPagePreferenceProvider('master-grist')!}\n .fetchHandler=${this.fetchGroupHandler.bind(this)}\n >\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n <div class=\"button-container\">\n <button @click=${e => this.saveGroup()}><md-icon>save</md-icon>${TermsUtil.tButton('save')}</button>\n <button danger @click=${e => this.deleteGroup()}>\n <md-icon>delete</md-icon>${TermsUtil.tButton('delete')}\n </button>\n </div>\n </div>\n\n <div class=\"container_detail\">\n <ox-grist\n id=\"detail-grist\"\n .config=${this.detailConfig}\n .mode=${MetaApi.isMobileEnv() ? 'LIST' : 'GRID'}\n .fetchHandler=${this.fetchDetailHandler.bind(this)}\n .personalConfigProvider=${this.getPagePreferenceProvider('detail-grist')!}\n explcit-fetch\n >\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n <div class=\"button-container\">\n <button @click=${e => this.copyMenu()}><md-icon>content_copy</md-icon>${TermsUtil.tButton('copy')}</button>\n <button @click=${e => this.saveMenu()}><md-icon>save</md-icon>${TermsUtil.tButton('save')}</button>\n <button danger @click=${e => this.deleteMenu()}>\n <md-icon>delete</md-icon>${TermsUtil.tButton('delete')}\n </button>\n </div>\n </div>\n </div>\n `\n }\n\n get context() {\n return {\n title: TermsUtil.tTitle('dynamic_menu')\n }\n }\n\n /*******************************************/\n /* 조회 */\n /*******************************************/\n\n /**\n * @description 부모 메뉴 (메뉴 그룹) 선택시 하위 메뉴 리스트 조회\n *********************************\n * @param {Object} param0\n */\n async fetchDetailHandler({ page, limit = 999999, sorters = [{ name: 'rank' }, { name: 'name' }] }: FetchOption) {\n if (this.menuGroupId) {\n let filters = [\n {\n name: 'parentId',\n operator: 'eq',\n value: this.menuGroupId\n },\n ...(await this.searchForm.getQueryFilters()).filter(x => ['templateCode', 'templateText'].includes(x.name))\n ]\n\n let selectFields = `\n id\n name\n rank\n description\n menuType\n category\n resourceUrl\n routingType\n routing\n hiddenFlag\n iconPath\n parent {\n id\n name\n routing\n }\n role {\n id\n name\n description\n }\n `\n\n limit = 999999\n let fetchResult = await MetaApi.searchByPagination('dynamicMenus', filters, sorters, page, limit, selectFields)\n\n if (fetchResult && fetchResult.records) {\n fetchResult.records.forEach(x => {\n x.parentId = this.menuGroupId\n })\n }\n\n return fetchResult\n }\n }\n\n /**\n * @description 부모 메뉴 (메뉴 그룹) 조회\n ****************************************\n * @param {Object} param0\n * @returns\n */\n async fetchGroupHandler({ page, limit = 999999, sorters = [{ name: 'rank' }, { name: 'name' }] }: FetchOption) {\n // 선택된 부모 메뉴 ID 초기화\n this.menuGroupId = ''\n\n if (this.detailGrist && this.detailGrist.data) {\n this.detailGrist.data = { records: [] }\n }\n\n let filters = [...(await this.searchForm.getQueryFilters()), { name: 'parentId', operator: 'is_null', value: '' }]\n\n let selectFields = `\n id\n name\n rank\n description\n menuType\n category\n resourceUrl\n routing\n hiddenFlag\n iconPath\n role {\n id\n name\n description\n }\n `\n limit = 999999\n return await MetaApi.searchByPagination('dynamicMenus', filters, sorters, page, limit, selectFields)\n }\n\n /*******************************************/\n /* 트랜잭션 (저장 , 삭제) */\n /*******************************************/\n\n /**\n * 메뉴 그룹 Create / Update\n */\n async saveGroup() {\n var patches = this.groupGrist.dirtyRecords\n\n if (ValueUtil.isNotEmpty(patches)) {\n patches = patches.map(patch => {\n const {\n creator,\n updater,\n createdAt,\n updatedAt,\n __dirty__,\n __dirtyfields__,\n __origin__,\n __seq__,\n __selected__,\n ...others\n } = patch\n\n patch = others\n\n if (patch.hiddenFlag === undefined || patch.hiddenFlag == null) {\n patch.hiddenFlag = false\n }\n\n patch.cuFlag = __dirty__\n\n return patch\n })\n\n let result = await MetaApi.updateMultiple('updateMultipleMenu', patches)\n if (result) {\n this.groupGrist.fetch()\n }\n }\n }\n\n /**\n * 메뉴 그룹 Delete\n * @returns\n */\n async deleteGroup() {\n await MetaApi.deleteListByGristSelected(this.groupGrist, 'deleteMenus')\n }\n\n /**\n * 메뉴 Create / Update\n */\n async saveMenu() {\n var patches = this.detailGrist.dirtyRecords\n\n if (ValueUtil.isNotEmpty(patches)) {\n patches = patches.map(patch => {\n const {\n creator,\n updater,\n createdAt,\n updatedAt,\n __dirty__,\n __dirtyfields__,\n __origin__,\n __seq__,\n __selected__,\n ...others\n } = patch\n\n patch = others\n patch.menuType = patch.menuType || 'SCREEN'\n\n if (!patch.parentId) {\n patch.parent = { id: this.menuGroupId }\n } else {\n patch.parent = { id: patch.parentId }\n }\n\n delete patch.parentId\n\n if (patch.hiddenFlag === undefined || patch.hiddenFlag == null) {\n patch.hiddenFlag = false\n }\n\n patch.cuFlag = __dirty__\n\n return patch\n })\n\n const response = await client.mutate({\n mutation: gql`\n mutation UpdateMultipleMenu($patches: [MenuPatch!]!) {\n updateMultipleMenu(patches: $patches) {\n id\n }\n }\n `,\n variables: {\n patches\n }\n })\n\n if (!response.errors) {\n const result = response.data.updateMultipleMenu\n\n if (result) {\n this.detailGrist.fetch()\n }\n }\n }\n }\n\n async exportMenu(record) {\n let exportMenuElement = MetaApi.createCustomElement('export-menu-popup', 'export-menu-popup')\n\n exportMenuElement.title = TermsUtil.tLabel('export')\n ;(exportMenuElement as any).recordId = record.id\n ;(exportMenuElement as any).recordName = record.name\n\n await MetaApi.openPopupByElement(record.name, 'large', exportMenuElement, true)\n }\n\n /**\n * 메뉴 Delete\n * @returns\n */\n async deleteMenu() {\n await MetaApi.deleteListByGristSelected(this.detailGrist, 'deleteMenus')\n }\n\n /**\n * 메뉴 복사\n */\n async copyMenu() {\n let selectMenus = this.detailGrist.selected\n\n if (!selectMenus || selectMenus.length == 0) {\n UiUtil.showAlertPopup('text.nothing_selected', 'text.there_is_no_selected_items', 'info', 'confirm')\n return\n }\n\n let copyMenu = selectMenus[0]\n\n if (!copyMenu.id) {\n return\n }\n\n Object.keys(copyMenu).forEach(x => {\n if (x.startsWith('__')) {\n delete copyMenu[x]\n }\n })\n\n let menu = await MetaApi.findOne('menu', copyMenu.id, 'template')\n copyMenu.template = menu ? menu.template || '' : ''\n\n copyMenu.rank = 99999\n copyMenu.cuFlag = '+'\n\n copyMenu.name = copyMenu.name + '-copy'\n copyMenu.routing = copyMenu.routing + '-copy'\n copyMenu.parent = { id: copyMenu.parentId }\n delete copyMenu.id\n delete copyMenu.parentId\n\n let result = await MetaApi.updateMultiple('updateMultipleMenu', [copyMenu])\n if (result) {\n this.detailGrist.fetch()\n }\n }\n\n groupMenuQuery(record) {\n this.menuGroupId = record.id\n this.detailGrist.fetch()\n }\n\n /**\n * 메뉴 템플릿을 편집 할 수 있는 팝업을 오픈한다.\n * @param {Object} record\n */\n async openMenuTemplatePopup(record) {\n let menuTemplateElement = MetaApi.createCustomElement('dynamic-menu-template', 'dynamic-menu-template')\n\n menuTemplateElement.title = TermsUtil.tLabel('template')\n ;(menuTemplateElement as any).recordId = record.id\n\n await MetaApi.openPopupByElement(record.name, 'large', menuTemplateElement, true)\n }\n\n /**\n * 메뉴 템플릿을 생성 할 수 있는 화면으로 이동한다.\n * @param {Object} record\n */\n navigateMetaGenerator(record) {\n MetaApi.pageNavigate(`meta-generator?menuId=${record.id}`)\n }\n\n /**\n * LifeCycle - 화면 레더링 설정\n */\n async pageInitialized(lifecycle) {\n // 조회 필드\n this.searchFields = [\n // name, type, label, operator, optionValues\n MetaApi.getGristSearchColumnConfig('name', 'string', 'name', 'i_like'),\n // name, type, label, operator, codeName\n await MetaApi.getGristSearchCodeColumnConfig('menuType', 'select', 'menu_type', 'eq', 'MENU_TYPE'),\n // name, type, label, operator\n MetaApi.getGristSearchColumnConfig('hiddenFlag', 'checkbox', 'hidden', 'eq'),\n await MetaApi.getGristSearchCodeColumnConfig(\n 'templateCode',\n 'select',\n 'menu_template_search_code',\n 'eq',\n 'MENU_TEXT_SEARCH_TYPE'\n ),\n MetaApi.getGristSearchColumnConfig('templateText', 'string', 'menu_template_search_text', 'i_like')\n ]\n\n // 메뉴 그룹 그리드 설정\n this.groupConfig = {\n rows: MetaApi.getGristSelectableConfig(false),\n // 공간이 부족해서 페이지네이션 제거\n pagination: { infinite: true },\n appendable: true,\n columns: [\n ...MetaApi.getGristGuttersConfig(true, false),\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'menu_open',\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record.id) {\n this.groupMenuQuery(record)\n }\n }\n }\n },\n {\n type: 'integer',\n name: 'rank',\n header: TermsUtil.tLabel('rank'),\n record: {\n align: 'left',\n editable: true,\n format: '#,###'\n },\n sortable: false,\n width: 60\n },\n // type, name, align, editable, sortable, width\n MetaApi.getGristColumnConfig('string', 'name', 'left', true, false, 200),\n {\n type: 'string',\n name: 'title',\n header: TermsUtil.tLabel('title'),\n record: {\n editable: false,\n align: 'left',\n renderer: (value, column, record, rowIndex, field) => {\n return record.name ? TermsUtil.tMenu(record.name) : ''\n }\n },\n sortable: false,\n width: 200\n },\n // name, displayName, align, sortable, width, mandatory, codeName\n await MetaApi.getGristCodeSelectorColumnConfig('menuType', 'menu_type', 'left', false, 90, true, 'MENU_TYPE'),\n // type, name, displayName, align, editable, sortable, width\n MetaApi.getGristColumnConfig2('string', 'iconPath', 'icon', 'left', true, false, 115),\n MetaApi.getGristColumnConfig2('boolean', 'hiddenFlag', 'hidden', 'center', true, false, 55),\n MetaApi.getGristColumnConfig2('string', 'routing', 'routing', 'left', true, false, 135),\n MetaApi.getGristColumnConfig2('string', 'category', 'tag', 'left', true, false, 135),\n MetaApi.getGristColumnConfig2('string', 'resourceUrl', 'page_location', 'left', true, false, 350),\n {\n type: 'resource-object',\n name: 'role',\n label: true,\n header: i18next.t('field.required role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n width: 200\n }\n ]\n }\n\n // 메뉴 그리드 설정\n this.detailConfig = {\n rows: MetaApi.getGristSelectableConfig(false),\n // 공간이 부족해서 페이지네이션 제거\n pagination: { infinite: true },\n appendable: true,\n columns: [\n ...MetaApi.getGristGuttersConfig(true, false),\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'download',\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record.id) {\n this.exportMenu(record)\n }\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'code',\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record.id) {\n this.openMenuTemplatePopup(record)\n }\n }\n }\n },\n {\n type: 'gutter',\n gutterName: 'button',\n icon: 'construction',\n handlers: {\n click: (_columns, _data, _column, record, _rowIndex) => {\n if (record.id) {\n this.navigateMetaGenerator(record)\n }\n }\n }\n },\n {\n type: 'integer',\n name: 'rank',\n header: TermsUtil.tLabel('rank'),\n record: {\n align: 'left',\n editable: true,\n format: '#,###'\n },\n sortable: false,\n width: 60\n },\n MetaApi.getGristColumnConfig('string', 'name', 'left', true, false, 175),\n {\n type: 'string',\n name: 'title',\n header: TermsUtil.tLabel('title'),\n record: {\n editable: false,\n align: 'left',\n renderer: (value, column, record, rowIndex, field) => {\n return record.name ? TermsUtil.tMenu(record.name) : ''\n }\n },\n sortable: false,\n width: 175\n },\n // name, displayName, align, sortable, width, mandatory, codeName\n await MetaApi.getGristCodeSelectorColumnConfig(\n 'menuType',\n 'page_type',\n 'left',\n false,\n 90,\n true,\n 'MENU_PAGE_TYPE'\n ),\n await MetaApi.getGristCodeSelectorColumnConfig(\n 'routingType',\n 'routing_type',\n 'left',\n false,\n 0,\n false,\n 'MENU_PAGE_ROUTING_TYPE'\n ),\n // type, name, displayName, align, editable, sortable, width\n MetaApi.getGristColumnConfig2('string', 'routing', 'routing', 'left', true, false, 175),\n MetaApi.getGristColumnConfig2('string', 'category', 'tag', 'left', true, false, 175),\n MetaApi.getGristColumnConfig2('string', 'resourceUrl', 'page_location', 'left', true, false, 450),\n MetaApi.getGristColumnConfig2('string', 'iconPath', 'icon', 'left', true, false, 100),\n MetaApi.getGristColumnConfig2('boolean', 'hiddenFlag', 'hidden', 'center', true, false, 55),\n {\n type: 'resource-object',\n name: 'parent',\n header: TermsUtil.tLabel('parent-menu'),\n record: {\n renderer: (value, column, record, rowIndex, field) => {\n return value ? value.name + ' (' + TermsUtil.tMenu(value.name) + ')' : ''\n },\n editable: true,\n options: {\n title: TermsUtil.tLabel('parent-menu'),\n queryName: 'menus',\n pagination: { pages: [1000] },\n basicArgs: {\n filters: [\n {\n name: 'parentId',\n operator: 'is_null'\n }\n ],\n sortings: [\n {\n name: 'rank',\n desc: false\n }\n ]\n },\n list: { fields: ['id', 'name'] },\n columns: [\n { name: 'id', hidden: true },\n {\n name: 'rank',\n header: TermsUtil.tLabel('rank'),\n width: 75,\n record: {\n editable: false,\n format: '#,###',\n align: 'left'\n },\n sortable: true\n },\n {\n name: 'name',\n width: 300,\n header: TermsUtil.tLabel('name'),\n filter: 'search'\n },\n {\n name: 'description',\n width: 350,\n header: TermsUtil.tLabel('title'),\n record: {\n editable: false,\n renderer: function (value, column, record, rowIndex, field) {\n return TermsUtil.tMenu(record.name)\n }\n }\n },\n {\n type: 'code',\n name: 'menuType',\n width: 120,\n header: TermsUtil.tLabel('menu_type'),\n record: {\n editable: false,\n codeName: 'MENU_TYPE'\n }\n },\n {\n name: 'routing',\n width: 150,\n header: TermsUtil.tLabel('routing'),\n record: {\n editable: false\n }\n }\n ],\n valueField: 'id',\n nameField: 'name',\n descriptionField: 'routing'\n }\n },\n width: 200\n },\n {\n type: 'resource-object',\n name: 'role',\n label: true,\n header: i18next.t('field.required role'),\n record: {\n editable: true,\n options: {\n title: i18next.t('title.lookup role'),\n queryName: 'roles'\n }\n },\n width: 200\n }\n /*{\n type: 'meta-code-selector',\n header: TermsUtil.tLabel('parent-menu'),\n name: 'parentId',\n record: {\n editable: true,\n align: 'left',\n options: {\n codes: await ServiceUtil.getCodeByEntity({queryName:'menus', codeField:'id', dispField:'name', filters:[{ name: 'parentId', operator: 'is_null', value: '' }]}),\n queryName: 'menus',\n codeField: 'id',\n dispField: 'name',\n filterFields: [{name: 'name', operator: 'like'}],\n selectorName: TermsUtil.tLabel('parent-menu'),\n columns: [\n {\n name: 'id',\n hidden: true\n },\n //MetaApi.getGristColumnConfig('integer', 'rank', 'right', false, true, 65),\n {\n type: 'integer',\n name: 'rank',\n header: TermsUtil.tLabel('rank'),\n record: {\n align: 'left',\n editable: false,\n format: '#,###'\n },\n sortable: false,\n width: 65\n },\n MetaApi.getGristColumnConfig2('boolean', 'hiddenFlag', 'hidden', 'center', true, false, 60),\n {\n type:'select',\n name: 'menuType',\n header: 'menu_type',\n record: {\n align:'left',\n editable: false\n },\n options:{\n type: 'code',\n name: 'MENU_TYPE'\n },\n sortable: false,\n width: 100\n },\n MetaApi.getGristColumnConfig('string', 'name', 'left', false, true, 450)\n ],\n filters: [{ name: 'parentId', operator: 'is_null', value: '' }],\n sorters: [{ name: 'rank', desc: false }],\n }\n },\n sortable: false,\n width: 120\n }*/\n ]\n }\n }\n}\n"]}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
4
|
-
* @author Yang
|
|
5
|
-
* @description
|
|
6
|
-
*/
|
|
7
|
-
export class ExportMenuPopup extends LitElement {
|
|
8
|
-
/**
|
|
9
|
-
* @description 스타일 정의
|
|
10
|
-
***********************************
|
|
11
|
-
* @returns {Object} 화면의 스타일 정의
|
|
12
|
-
*/
|
|
13
|
-
static get styles(): any;
|
|
14
|
-
/**
|
|
15
|
-
* @description 라이트 사이클
|
|
16
|
-
***************************
|
|
17
|
-
*/
|
|
18
|
-
connectedCallback(): Promise<void>;
|
|
19
|
-
gridConfig: {
|
|
20
|
-
rows: any;
|
|
21
|
-
pagination: {
|
|
22
|
-
infinite: boolean;
|
|
23
|
-
};
|
|
24
|
-
columns: any[];
|
|
25
|
-
} | undefined;
|
|
26
|
-
/**
|
|
27
|
-
* @description 라이프 사이클
|
|
28
|
-
***************************
|
|
29
|
-
*/
|
|
30
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
31
|
-
/**
|
|
32
|
-
* @description 그리드 리턴
|
|
33
|
-
**************************
|
|
34
|
-
* @returns {Object} 그리드
|
|
35
|
-
*/
|
|
36
|
-
get grist(): any;
|
|
37
|
-
export(): Promise<any>;
|
|
38
|
-
/**
|
|
39
|
-
* @description 이력 조회
|
|
40
|
-
***************************
|
|
41
|
-
* @returns
|
|
42
|
-
*/
|
|
43
|
-
fetchHandler({ page, limit, sortings, filters }: {
|
|
44
|
-
page?: number | undefined;
|
|
45
|
-
limit?: number | undefined;
|
|
46
|
-
sortings?: never[] | undefined;
|
|
47
|
-
filters?: never[] | undefined;
|
|
48
|
-
}): Promise<{
|
|
49
|
-
records: any;
|
|
50
|
-
total: any;
|
|
51
|
-
}>;
|
|
52
|
-
getTerms(locale: any, category: any, name: any): Promise<any>;
|
|
53
|
-
getI18t(locale: any, category: any, name: any): string | undefined;
|
|
54
|
-
}
|
|
55
|
-
import { LitElement } from 'lit';
|
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
import '@material/web/icon/icon.js';
|
|
2
|
-
import { css, html, LitElement } from 'lit';
|
|
3
|
-
import { i18next, localize } from '@operato/i18n';
|
|
4
|
-
import { ScrollbarStyles, CommonGristStyles, CommonHeaderStyles } from '@operato/styles';
|
|
5
|
-
import { TermsUtil } from './../../utils/terms-util';
|
|
6
|
-
import { MetaUiUtil } from './../../utils/meta-ui-util';
|
|
7
|
-
import { MetaApi } from '../../utils/meta-api';
|
|
8
|
-
import { MetaCrypto } from '../../utils/meta-crypto';
|
|
9
|
-
import snakeCase from 'lodash-es/snakeCase';
|
|
10
|
-
import upperFirst from 'lodash-es/upperFirst';
|
|
11
|
-
import { singular } from 'pluralize';
|
|
12
|
-
const i18nextEn = i18next.getFixedT('en', null, null);
|
|
13
|
-
const i18nextKo = i18next.getFixedT('ko', null, null);
|
|
14
|
-
const colTypes = {
|
|
15
|
-
'character varying': 'VARCHAR',
|
|
16
|
-
numeric: 'NUMERIC',
|
|
17
|
-
boolean: 'BOOLEAN',
|
|
18
|
-
uuid: 'VARCHAR',
|
|
19
|
-
timestamp: 'TIMESTAMP',
|
|
20
|
-
date: 'DATE',
|
|
21
|
-
datetime: 'DATETIME',
|
|
22
|
-
integer: 'INT'
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* @license
|
|
26
|
-
* Copyright © HatioLab Inc. All rights reserved.
|
|
27
|
-
* @author Yang
|
|
28
|
-
* @description
|
|
29
|
-
*/
|
|
30
|
-
export class ExportMenuPopup extends localize(i18next)(LitElement) {
|
|
31
|
-
/**
|
|
32
|
-
* @description 스타일 정의
|
|
33
|
-
***********************************
|
|
34
|
-
* @returns {Object} 화면의 스타일 정의
|
|
35
|
-
*/
|
|
36
|
-
static get styles() {
|
|
37
|
-
return [
|
|
38
|
-
ScrollbarStyles,
|
|
39
|
-
CommonGristStyles,
|
|
40
|
-
CommonHeaderStyles,
|
|
41
|
-
css `
|
|
42
|
-
:host {
|
|
43
|
-
display: flex;
|
|
44
|
-
flex-direction: column;
|
|
45
|
-
overflow-x: overlay;
|
|
46
|
-
background-color: var(--md-sys-color-background);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
ox-grist {
|
|
50
|
-
overflow-y: auto;
|
|
51
|
-
flex: 1;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
ox-filters-form {
|
|
55
|
-
flex: 1;
|
|
56
|
-
}
|
|
57
|
-
`
|
|
58
|
-
];
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* @description 라이트 사이클
|
|
62
|
-
***************************
|
|
63
|
-
*/
|
|
64
|
-
async connectedCallback() {
|
|
65
|
-
this.gridConfig = {
|
|
66
|
-
rows: MetaApi.getGristSelectableConfig(false),
|
|
67
|
-
pagination: { infinite: true },
|
|
68
|
-
columns: [
|
|
69
|
-
MetaApi.getGristColumnConfig2('integer', 'seq', 'seq', 'center', false, false, 80),
|
|
70
|
-
MetaApi.getGristColumnConfig2('string', 'column_ko', 'column_display_ko', 'left', false, false, 150),
|
|
71
|
-
MetaApi.getGristColumnConfig2('string', 'column_en', 'column_display_en', 'left', false, false, 150),
|
|
72
|
-
MetaApi.getGristColumnConfig2('string', 'group_cd', 'screen_group_cd', 'left', false, false, 100),
|
|
73
|
-
MetaApi.getGristColumnConfig2('string', 'group_nm_en', 'screen_group_display_en', 'left', false, false, 150),
|
|
74
|
-
MetaApi.getGristColumnConfig2('string', 'group_nm_ko', 'screen_group_display_ko', 'left', false, false, 150),
|
|
75
|
-
MetaApi.getGristColumnConfig2('string', 'group_type', 'screen_group_type', 'left', false, false, 100),
|
|
76
|
-
MetaApi.getGristColumnConfig2('string', 'column_id', 'column_id', 'left', false, false, 150),
|
|
77
|
-
MetaApi.getGristColumnConfig2('string', 'search_field', 'is_search_field', 'center', false, false, 80),
|
|
78
|
-
MetaApi.getGristColumnConfig2('string', 'entity_ref', 'entity_object_reference_field', 'left', false, false, 100),
|
|
79
|
-
MetaApi.getGristColumnConfig2('string', 'entity_code_ref', 'entity_code_reference_field', 'left', false, false, 100),
|
|
80
|
-
MetaApi.getGristColumnConfig2('string', 'code_ref', 'code_reference_field', 'left', false, false, 100),
|
|
81
|
-
MetaApi.getGristColumnConfig2('string', 'main_column', 'is_main_list_field', 'center', false, false, 80),
|
|
82
|
-
MetaApi.getGristColumnConfig2('string', 'editable', 'is_editable', 'center', false, false, 80),
|
|
83
|
-
MetaApi.getGristColumnConfig2('string', 'hidden', 'hidden', 'center', false, false, 80),
|
|
84
|
-
MetaApi.getGristColumnConfig2('string', 'grid_align', 'grid_align', 'center', false, false, 100),
|
|
85
|
-
MetaApi.getGristColumnConfig2('string', 'export_field', 'is_export_field', 'center', false, false, 100),
|
|
86
|
-
MetaApi.getGristColumnConfig2('string', 'grid_width', 'field_width', 'center', false, false, 80),
|
|
87
|
-
MetaApi.getGristColumnConfig2('string', 'column_type', 'column_type', 'center', false, false, 100),
|
|
88
|
-
MetaApi.getGristColumnConfig2('string', 'column_length', 'column_size', 'center', false, false, 80),
|
|
89
|
-
MetaApi.getGristColumnConfig2('string', 'column_not_null', 'is_not_null', 'center', false, false, 80),
|
|
90
|
-
MetaApi.getGristColumnConfig2('string', 'default_value', 'default_value', 'left', false, false, 80),
|
|
91
|
-
MetaApi.getGristColumnConfig2('string', 'index', 'table_index', 'left', false, false, 100),
|
|
92
|
-
MetaApi.getGristColumnConfig2('string', 'unique', 'is_unique', 'center', false, false, 100)
|
|
93
|
-
]
|
|
94
|
-
};
|
|
95
|
-
if (super.connectedCallback) {
|
|
96
|
-
await super.connectedCallback();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* @description 라이프 사이클
|
|
101
|
-
***************************
|
|
102
|
-
*/
|
|
103
|
-
render() {
|
|
104
|
-
return html `
|
|
105
|
-
<ox-grist
|
|
106
|
-
id="ox-grist"
|
|
107
|
-
.config=${this.gridConfig}
|
|
108
|
-
.mode=${'GRID'}
|
|
109
|
-
auto-fetch
|
|
110
|
-
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
111
|
-
>
|
|
112
|
-
</ox-grist>
|
|
113
|
-
<div class="footer">
|
|
114
|
-
<div filler></div>
|
|
115
|
-
<button @click=${this.export.bind(this)} done>
|
|
116
|
-
<md-icon>export_notes</md-icon>${TermsUtil.tButton('export')}
|
|
117
|
-
</button>
|
|
118
|
-
</div>
|
|
119
|
-
`;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* @description 그리드 리턴
|
|
123
|
-
**************************
|
|
124
|
-
* @returns {Object} 그리드
|
|
125
|
-
*/
|
|
126
|
-
get grist() {
|
|
127
|
-
return this.shadowRoot.querySelector('#ox-grist');
|
|
128
|
-
}
|
|
129
|
-
async export() {
|
|
130
|
-
let exportTitle = TermsUtil.tTitle(this.recordName);
|
|
131
|
-
return await MetaApi.exportableData(true, exportTitle, this.grist);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* @description 이력 조회
|
|
135
|
-
***************************
|
|
136
|
-
* @returns
|
|
137
|
-
*/
|
|
138
|
-
async fetchHandler({ page = 0, limit = 0, sortings = [], filters = [] }) {
|
|
139
|
-
let selectFields = `
|
|
140
|
-
id
|
|
141
|
-
menu{
|
|
142
|
-
id
|
|
143
|
-
name
|
|
144
|
-
routing
|
|
145
|
-
template
|
|
146
|
-
}
|
|
147
|
-
entity {
|
|
148
|
-
id
|
|
149
|
-
bundle
|
|
150
|
-
name
|
|
151
|
-
tableName
|
|
152
|
-
dataProp
|
|
153
|
-
delStrategy
|
|
154
|
-
description
|
|
155
|
-
}
|
|
156
|
-
entityColumns{
|
|
157
|
-
id
|
|
158
|
-
name
|
|
159
|
-
rank
|
|
160
|
-
description
|
|
161
|
-
term
|
|
162
|
-
colType
|
|
163
|
-
colSize
|
|
164
|
-
nullable
|
|
165
|
-
uniqRank
|
|
166
|
-
searchRank
|
|
167
|
-
searchOper
|
|
168
|
-
gridRank
|
|
169
|
-
gridWidth
|
|
170
|
-
gridEditor
|
|
171
|
-
refType
|
|
172
|
-
refName
|
|
173
|
-
refUrl
|
|
174
|
-
defVal
|
|
175
|
-
},
|
|
176
|
-
indices{
|
|
177
|
-
name
|
|
178
|
-
isUnique
|
|
179
|
-
columns
|
|
180
|
-
}
|
|
181
|
-
columns{
|
|
182
|
-
name
|
|
183
|
-
isNullable
|
|
184
|
-
length
|
|
185
|
-
type
|
|
186
|
-
default
|
|
187
|
-
}
|
|
188
|
-
parentMenu{
|
|
189
|
-
id
|
|
190
|
-
name
|
|
191
|
-
}
|
|
192
|
-
`;
|
|
193
|
-
let res = await MetaApi.findOne('exportMenuInfo', this.recordId, selectFields);
|
|
194
|
-
// table 컬럼 정보
|
|
195
|
-
let records = res.columns
|
|
196
|
-
.filter(column => ['id', 'data_revision_no', 'deleted_at'].includes(column.name) === false)
|
|
197
|
-
.map(column => {
|
|
198
|
-
let record = {
|
|
199
|
-
column_id: column.name,
|
|
200
|
-
column_type: column.type,
|
|
201
|
-
column_length: column.length,
|
|
202
|
-
column_not_null: column.isNullable === true ? '' : 'O',
|
|
203
|
-
default_value: column.default
|
|
204
|
-
};
|
|
205
|
-
let entityIdx = res.entityColumns.findIndex(col => col.name == column.name);
|
|
206
|
-
if (entityIdx > -1) {
|
|
207
|
-
record.rank = res.entityColumns[entityIdx].rank;
|
|
208
|
-
}
|
|
209
|
-
return record;
|
|
210
|
-
});
|
|
211
|
-
let total = records.length;
|
|
212
|
-
// entity Column 기반 정렬
|
|
213
|
-
records = records.sort((a, b) => a.rank - b.rank);
|
|
214
|
-
// index
|
|
215
|
-
for (let idx = 0; idx < res.indices.length; idx++) {
|
|
216
|
-
records[idx].unique = res.indices[idx].isUnique === true ? 'O' : '';
|
|
217
|
-
records[idx].index = res.indices[idx].columns.filter(x => x != 'deleted_at').join(',');
|
|
218
|
-
}
|
|
219
|
-
let mainMenu = JSON.parse(MetaCrypto.dec(res.menu.template));
|
|
220
|
-
// 메인 메뉴 컬럼 정보
|
|
221
|
-
mainMenu.grid_column.forEach(x => {
|
|
222
|
-
let mainColName = snakeCase(x.name);
|
|
223
|
-
if (['object', 'meta-object-selector', 'resource-object'].includes(x.type)) {
|
|
224
|
-
mainColName = mainColName + '_id';
|
|
225
|
-
}
|
|
226
|
-
let recIdx = records.findIndex(rec => rec.column_id == mainColName);
|
|
227
|
-
if (recIdx > -1) {
|
|
228
|
-
records[recIdx].main_column = 'O';
|
|
229
|
-
records[recIdx].editable = x.editable === true ? 'O' : '';
|
|
230
|
-
records[recIdx].hidden = x.hidden === true ? 'O' : '';
|
|
231
|
-
records[recIdx].grid_align = x.align;
|
|
232
|
-
records[recIdx].export_field = x.exportable === true ? 'O' : '';
|
|
233
|
-
records[recIdx].grid_width = x.width;
|
|
234
|
-
records[recIdx].entity_ref = '';
|
|
235
|
-
records[recIdx].entity_code_ref = '';
|
|
236
|
-
records[recIdx].code_ref = '';
|
|
237
|
-
if (x.select_opt) {
|
|
238
|
-
let opt = x.select_opt;
|
|
239
|
-
if (opt.type == 'code') {
|
|
240
|
-
records[recIdx].code_ref = opt.name;
|
|
241
|
-
}
|
|
242
|
-
else if (opt.type == 'entity') {
|
|
243
|
-
records[recIdx].entity_code_ref = `${opt.name},${opt.args.codeField},${opt.args.dispField}`;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
else if (x.object_opt) {
|
|
247
|
-
let opt = x.object_opt;
|
|
248
|
-
if (opt.menu) {
|
|
249
|
-
records[recIdx].entity_ref = `menu,${opt.menu}`;
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
records[recIdx].entity_ref = `${upperFirst(singular(opt.queryName))},${opt.nameField}`;
|
|
253
|
-
if (opt.descriptionField && opt.descriptionField.length > 0) {
|
|
254
|
-
records[recIdx].entity_ref += `,${opt.descriptionField}`;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
// 메인메뉴 검색 정보
|
|
261
|
-
let searchFields = [...mainMenu.gql.query.filters, ...mainMenu.search];
|
|
262
|
-
searchFields.forEach(x => {
|
|
263
|
-
let searchName = snakeCase(x.name);
|
|
264
|
-
let recIdx = records.findIndex(rec => rec.column_id == searchName);
|
|
265
|
-
if (recIdx > -1) {
|
|
266
|
-
records[recIdx].search_field = 'O';
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
// tab etc
|
|
270
|
-
let tabs = [...mainMenu.tab];
|
|
271
|
-
if (mainMenu.etc.master_detail_element) {
|
|
272
|
-
tabs.push(JSON.parse(mainMenu.etc.master_detail_element));
|
|
273
|
-
}
|
|
274
|
-
// tab 설정 검색 ....
|
|
275
|
-
for (let tabIdx = 0; tabIdx < tabs.length; tabIdx++) {
|
|
276
|
-
// name, tagname, menu(routing), display,
|
|
277
|
-
let tab = tabs[tabIdx];
|
|
278
|
-
let tabNmEn = await this.getTerms('en-US', ['label', 'field'], tab.display);
|
|
279
|
-
let tabNmKo = await this.getTerms('ko-KR', ['label', 'field'], tab.display);
|
|
280
|
-
let data = await MetaUiUtil.getMenuMetaData(tab.menu ? tab.menu : tab.routing);
|
|
281
|
-
if (!data || !data.records || data.records.length == 0) {
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
let tabMenuConfig = JSON.parse(MetaCrypto.dec(data.records[0].template));
|
|
285
|
-
for (let idx in tabMenuConfig.grid_column) {
|
|
286
|
-
let x = tabMenuConfig.grid_column[idx];
|
|
287
|
-
let colName = snakeCase(x.name);
|
|
288
|
-
if (['object', 'meta-object-selector', 'resource-object'].includes(x.type)) {
|
|
289
|
-
colName = colName + '_id';
|
|
290
|
-
}
|
|
291
|
-
let recIdx = records.findIndex(rec => rec.column_id == colName);
|
|
292
|
-
if (recIdx > -1) {
|
|
293
|
-
console.log(tab.tagName);
|
|
294
|
-
records[recIdx].group_cd = tab.name;
|
|
295
|
-
records[recIdx].group_nm_en = tabNmEn;
|
|
296
|
-
records[recIdx].group_nm_ko = tabNmKo;
|
|
297
|
-
records[recIdx].group_type = tab.tagname == 'meta-form-element' ? 'Form' : 'Grist';
|
|
298
|
-
records[recIdx].editable = x.editable === true ? 'O' : '';
|
|
299
|
-
records[recIdx].hidden = x.hidden === true ? 'O' : '';
|
|
300
|
-
records[recIdx].grid_align = x.align;
|
|
301
|
-
records[recIdx].export_field = x.exportable === true ? 'O' : '';
|
|
302
|
-
records[recIdx].grid_width = x.width;
|
|
303
|
-
records[recIdx].entity_ref = '';
|
|
304
|
-
records[recIdx].entity_code_ref = '';
|
|
305
|
-
records[recIdx].code_ref = '';
|
|
306
|
-
if (x.select_opt) {
|
|
307
|
-
let opt = x.select_opt;
|
|
308
|
-
if (opt.type == 'code') {
|
|
309
|
-
records[recIdx].code_ref = opt.name;
|
|
310
|
-
}
|
|
311
|
-
else if (opt.type == 'entity') {
|
|
312
|
-
records[recIdx].entity_code_ref = `${opt.name},${opt.args.codeField},${opt.args.dispField}`;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
else if (x.object_opt) {
|
|
316
|
-
let opt = x.object_opt;
|
|
317
|
-
if (opt.menu) {
|
|
318
|
-
records[recIdx].entity_ref = `menu,${opt.menu}`;
|
|
319
|
-
}
|
|
320
|
-
else {
|
|
321
|
-
records[recIdx].entity_ref = `${upperFirst(singular(opt.queryName))},${opt.nameField}`;
|
|
322
|
-
if (opt.descriptionField && opt.descriptionField.length > 0) {
|
|
323
|
-
records[recIdx].entity_ref += `,${opt.descriptionField}`;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
// 최종 ~~
|
|
331
|
-
for (let recIdx in records) {
|
|
332
|
-
let x = records[recIdx];
|
|
333
|
-
x.seq = Number(recIdx) + 1;
|
|
334
|
-
// 컬럼 명칭 termionologies 에 없으면 i18next 에서 찾는다 .
|
|
335
|
-
x.column_ko = await this.getTerms('ko-KR', ['label', 'field'], x.column_id.endsWith('_id') ? x.column_id.substring(0, x.column_id.length - 3) : x.column_id);
|
|
336
|
-
x.column_en = await this.getTerms('en-US', ['label', 'field'], x.column_id.endsWith('_id') ? x.column_id.substring(0, x.column_id.length - 3) : x.column_id);
|
|
337
|
-
x.column_id = x.column_id.toUpperCase();
|
|
338
|
-
x.column_type = colTypes[x.column_type];
|
|
339
|
-
}
|
|
340
|
-
return {
|
|
341
|
-
records,
|
|
342
|
-
total
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
async getTerms(locale, category, name) {
|
|
346
|
-
let filters = [
|
|
347
|
-
{ name: 'name', operator: 'eq', value: name },
|
|
348
|
-
{ name: 'locale', operator: 'eq', value: locale }
|
|
349
|
-
];
|
|
350
|
-
if (Array.isArray(category)) {
|
|
351
|
-
filters.push({ name: 'category', operator: 'in', value: category });
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
filters.push({ name: 'category', operator: 'eq', value: category });
|
|
355
|
-
}
|
|
356
|
-
let res = await MetaApi.searchByPagination('terminologies', filters, [], 0, 0, 'display');
|
|
357
|
-
if (res.records.length > 0) {
|
|
358
|
-
return res.records[0].display;
|
|
359
|
-
}
|
|
360
|
-
if (Array.isArray(category)) {
|
|
361
|
-
for (let catIdx in category) {
|
|
362
|
-
let disp = this.getI18t(locale, category[catIdx], name);
|
|
363
|
-
if (disp) {
|
|
364
|
-
return disp;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
else {
|
|
369
|
-
let disp = this.getI18t(locale, category, name);
|
|
370
|
-
if (disp) {
|
|
371
|
-
return disp;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
return '';
|
|
375
|
-
}
|
|
376
|
-
getI18t(locale, category, name) {
|
|
377
|
-
let tName = `${category}.${name}`;
|
|
378
|
-
let disp = '';
|
|
379
|
-
if (locale == 'en-US') {
|
|
380
|
-
disp = i18nextEn(tName);
|
|
381
|
-
}
|
|
382
|
-
else {
|
|
383
|
-
disp = i18nextKo(tName);
|
|
384
|
-
}
|
|
385
|
-
if (disp == tName) {
|
|
386
|
-
return undefined;
|
|
387
|
-
}
|
|
388
|
-
return disp;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
customElements.define('export-menu-popup', ExportMenuPopup);
|
|
392
|
-
//# sourceMappingURL=export-menu-popup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-menu-popup.js","sourceRoot":"","sources":["../../../client/pages/menu/export-menu-popup.js"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport { css, html, LitElement } from 'lit'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles, CommonGristStyles, CommonHeaderStyles } from '@operato/styles'\n\nimport { TermsUtil } from './../../utils/terms-util'\nimport { MetaUiUtil } from './../../utils/meta-ui-util'\nimport { MetaApi } from '../../utils/meta-api'\nimport { MetaCrypto } from '../../utils/meta-crypto'\n\nimport snakeCase from 'lodash-es/snakeCase'\nimport upperFirst from 'lodash-es/upperFirst'\nimport { singular } from 'pluralize'\n\nconst i18nextEn = i18next.getFixedT('en', null, null)\nconst i18nextKo = i18next.getFixedT('ko', null, null)\nconst colTypes = {\n 'character varying': 'VARCHAR',\n numeric: 'NUMERIC',\n boolean: 'BOOLEAN',\n uuid: 'VARCHAR',\n timestamp: 'TIMESTAMP',\n date: 'DATE',\n datetime: 'DATETIME',\n integer: 'INT'\n}\n\n/**\n * @license\n * Copyright © HatioLab Inc. All rights reserved.\n * @author Yang\n * @description\n */\nexport class ExportMenuPopup extends localize(i18next)(LitElement) {\n /**\n * @description 스타일 정의\n ***********************************\n * @returns {Object} 화면의 스타일 정의\n */\n static get styles() {\n return [\n ScrollbarStyles,\n CommonGristStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n overflow-x: overlay;\n background-color: var(--md-sys-color-background);\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n\n ox-filters-form {\n flex: 1;\n }\n `\n ]\n }\n\n /**\n * @description 라이트 사이클\n ***************************\n */\n async connectedCallback() {\n this.gridConfig = {\n rows: MetaApi.getGristSelectableConfig(false),\n pagination: { infinite: true },\n columns: [\n MetaApi.getGristColumnConfig2('integer', 'seq', 'seq', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'column_ko', 'column_display_ko', 'left', false, false, 150),\n MetaApi.getGristColumnConfig2('string', 'column_en', 'column_display_en', 'left', false, false, 150),\n MetaApi.getGristColumnConfig2('string', 'group_cd', 'screen_group_cd', 'left', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'group_nm_en', 'screen_group_display_en', 'left', false, false, 150),\n MetaApi.getGristColumnConfig2('string', 'group_nm_ko', 'screen_group_display_ko', 'left', false, false, 150),\n MetaApi.getGristColumnConfig2('string', 'group_type', 'screen_group_type', 'left', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'column_id', 'column_id', 'left', false, false, 150),\n MetaApi.getGristColumnConfig2('string', 'search_field', 'is_search_field', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2(\n 'string',\n 'entity_ref',\n 'entity_object_reference_field',\n 'left',\n false,\n false,\n 100\n ),\n MetaApi.getGristColumnConfig2(\n 'string',\n 'entity_code_ref',\n 'entity_code_reference_field',\n 'left',\n false,\n false,\n 100\n ),\n MetaApi.getGristColumnConfig2('string', 'code_ref', 'code_reference_field', 'left', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'main_column', 'is_main_list_field', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'editable', 'is_editable', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'hidden', 'hidden', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'grid_align', 'grid_align', 'center', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'export_field', 'is_export_field', 'center', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'grid_width', 'field_width', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'column_type', 'column_type', 'center', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'column_length', 'column_size', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'column_not_null', 'is_not_null', 'center', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'default_value', 'default_value', 'left', false, false, 80),\n MetaApi.getGristColumnConfig2('string', 'index', 'table_index', 'left', false, false, 100),\n MetaApi.getGristColumnConfig2('string', 'unique', 'is_unique', 'center', false, false, 100)\n ]\n }\n\n if (super.connectedCallback) {\n await super.connectedCallback()\n }\n }\n\n /**\n * @description 라이프 사이클\n ***************************\n */\n render() {\n return html`\n <ox-grist\n id=\"ox-grist\"\n .config=${this.gridConfig}\n .mode=${'GRID'}\n auto-fetch\n .fetchHandler=${this.fetchHandler.bind(this)}\n >\n </ox-grist>\n <div class=\"footer\">\n <div filler></div>\n <button @click=${this.export.bind(this)} done>\n <md-icon>export_notes</md-icon>${TermsUtil.tButton('export')}\n </button>\n </div>\n `\n }\n\n /**\n * @description 그리드 리턴\n **************************\n * @returns {Object} 그리드\n */\n get grist() {\n return this.shadowRoot.querySelector('#ox-grist')\n }\n\n async export() {\n let exportTitle = TermsUtil.tTitle(this.recordName)\n return await MetaApi.exportableData(true, exportTitle, this.grist)\n }\n\n /**\n * @description 이력 조회\n ***************************\n * @returns\n */\n async fetchHandler({ page = 0, limit = 0, sortings = [], filters = [] }) {\n let selectFields = `\n id\n menu{\n id\n name\n routing\n template\n }\n entity {\n id\n bundle\n name\n tableName\n dataProp\n delStrategy\n description\n }\n entityColumns{\n id\n name\n rank\n description\n term\n colType\n colSize\n nullable\n uniqRank\n searchRank\n searchOper\n gridRank\n gridWidth\n gridEditor\n refType\n refName\n refUrl\n defVal\n },\n indices{\n name\n isUnique\n columns\n }\n columns{\n name\n isNullable\n length\n type\n default\n }\n parentMenu{\n id\n name\n }\n `\n\n let res = await MetaApi.findOne('exportMenuInfo', this.recordId, selectFields)\n\n // table 컬럼 정보\n let records = res.columns\n .filter(column => ['id', 'data_revision_no', 'deleted_at'].includes(column.name) === false)\n .map(column => {\n let record = {\n column_id: column.name,\n column_type: column.type,\n column_length: column.length,\n column_not_null: column.isNullable === true ? '' : 'O',\n default_value: column.default\n }\n\n let entityIdx = res.entityColumns.findIndex(col => col.name == column.name)\n if (entityIdx > -1) {\n record.rank = res.entityColumns[entityIdx].rank\n }\n\n return record\n })\n let total = records.length\n\n // entity Column 기반 정렬\n records = records.sort((a, b) => a.rank - b.rank)\n\n // index\n for (let idx = 0; idx < res.indices.length; idx++) {\n records[idx].unique = res.indices[idx].isUnique === true ? 'O' : ''\n records[idx].index = res.indices[idx].columns.filter(x => x != 'deleted_at').join(',')\n }\n\n let mainMenu = JSON.parse(MetaCrypto.dec(res.menu.template))\n\n // 메인 메뉴 컬럼 정보\n mainMenu.grid_column.forEach(x => {\n let mainColName = snakeCase(x.name)\n\n if (['object', 'meta-object-selector', 'resource-object'].includes(x.type)) {\n mainColName = mainColName + '_id'\n }\n\n let recIdx = records.findIndex(rec => rec.column_id == mainColName)\n\n if (recIdx > -1) {\n records[recIdx].main_column = 'O'\n records[recIdx].editable = x.editable === true ? 'O' : ''\n records[recIdx].hidden = x.hidden === true ? 'O' : ''\n records[recIdx].grid_align = x.align\n records[recIdx].export_field = x.exportable === true ? 'O' : ''\n records[recIdx].grid_width = x.width\n records[recIdx].entity_ref = ''\n records[recIdx].entity_code_ref = ''\n records[recIdx].code_ref = ''\n\n if (x.select_opt) {\n let opt = x.select_opt\n\n if (opt.type == 'code') {\n records[recIdx].code_ref = opt.name\n } else if (opt.type == 'entity') {\n records[recIdx].entity_code_ref = `${opt.name},${opt.args.codeField},${opt.args.dispField}`\n }\n } else if (x.object_opt) {\n let opt = x.object_opt\n\n if (opt.menu) {\n records[recIdx].entity_ref = `menu,${opt.menu}`\n } else {\n records[recIdx].entity_ref = `${upperFirst(singular(opt.queryName))},${opt.nameField}`\n\n if (opt.descriptionField && opt.descriptionField.length > 0) {\n records[recIdx].entity_ref += `,${opt.descriptionField}`\n }\n }\n }\n }\n })\n\n // 메인메뉴 검색 정보\n let searchFields = [...mainMenu.gql.query.filters, ...mainMenu.search]\n searchFields.forEach(x => {\n let searchName = snakeCase(x.name)\n\n let recIdx = records.findIndex(rec => rec.column_id == searchName)\n\n if (recIdx > -1) {\n records[recIdx].search_field = 'O'\n }\n })\n\n // tab etc\n let tabs = [...mainMenu.tab]\n if (mainMenu.etc.master_detail_element) {\n tabs.push(JSON.parse(mainMenu.etc.master_detail_element))\n }\n\n // tab 설정 검색 ....\n for (let tabIdx = 0; tabIdx < tabs.length; tabIdx++) {\n // name, tagname, menu(routing), display,\n\n let tab = tabs[tabIdx]\n let tabNmEn = await this.getTerms('en-US', ['label', 'field'], tab.display)\n let tabNmKo = await this.getTerms('ko-KR', ['label', 'field'], tab.display)\n\n let data = await MetaUiUtil.getMenuMetaData(tab.menu ? tab.menu : tab.routing)\n\n if (!data || !data.records || data.records.length == 0) {\n continue\n }\n\n let tabMenuConfig = JSON.parse(MetaCrypto.dec(data.records[0].template))\n\n for (let idx in tabMenuConfig.grid_column) {\n let x = tabMenuConfig.grid_column[idx]\n\n let colName = snakeCase(x.name)\n\n if (['object', 'meta-object-selector', 'resource-object'].includes(x.type)) {\n colName = colName + '_id'\n }\n\n let recIdx = records.findIndex(rec => rec.column_id == colName)\n\n if (recIdx > -1) {\n console.log(tab.tagName)\n records[recIdx].group_cd = tab.name\n records[recIdx].group_nm_en = tabNmEn\n records[recIdx].group_nm_ko = tabNmKo\n records[recIdx].group_type = tab.tagname == 'meta-form-element' ? 'Form' : 'Grist'\n\n records[recIdx].editable = x.editable === true ? 'O' : ''\n records[recIdx].hidden = x.hidden === true ? 'O' : ''\n records[recIdx].grid_align = x.align\n records[recIdx].export_field = x.exportable === true ? 'O' : ''\n records[recIdx].grid_width = x.width\n records[recIdx].entity_ref = ''\n records[recIdx].entity_code_ref = ''\n records[recIdx].code_ref = ''\n\n if (x.select_opt) {\n let opt = x.select_opt\n\n if (opt.type == 'code') {\n records[recIdx].code_ref = opt.name\n } else if (opt.type == 'entity') {\n records[recIdx].entity_code_ref = `${opt.name},${opt.args.codeField},${opt.args.dispField}`\n }\n } else if (x.object_opt) {\n let opt = x.object_opt\n if (opt.menu) {\n records[recIdx].entity_ref = `menu,${opt.menu}`\n } else {\n records[recIdx].entity_ref = `${upperFirst(singular(opt.queryName))},${opt.nameField}`\n\n if (opt.descriptionField && opt.descriptionField.length > 0) {\n records[recIdx].entity_ref += `,${opt.descriptionField}`\n }\n }\n }\n }\n }\n }\n\n // 최종 ~~\n for (let recIdx in records) {\n let x = records[recIdx]\n x.seq = Number(recIdx) + 1\n\n // 컬럼 명칭 termionologies 에 없으면 i18next 에서 찾는다 .\n x.column_ko = await this.getTerms(\n 'ko-KR',\n ['label', 'field'],\n x.column_id.endsWith('_id') ? x.column_id.substring(0, x.column_id.length - 3) : x.column_id\n )\n x.column_en = await this.getTerms(\n 'en-US',\n ['label', 'field'],\n x.column_id.endsWith('_id') ? x.column_id.substring(0, x.column_id.length - 3) : x.column_id\n )\n\n x.column_id = x.column_id.toUpperCase()\n x.column_type = colTypes[x.column_type]\n }\n\n return {\n records,\n total\n }\n }\n\n async getTerms(locale, category, name) {\n let filters = [\n { name: 'name', operator: 'eq', value: name },\n { name: 'locale', operator: 'eq', value: locale }\n ]\n\n if (Array.isArray(category)) {\n filters.push({ name: 'category', operator: 'in', value: category })\n } else {\n filters.push({ name: 'category', operator: 'eq', value: category })\n }\n\n let res = await MetaApi.searchByPagination('terminologies', filters, [], 0, 0, 'display')\n\n if (res.records.length > 0) {\n return res.records[0].display\n }\n\n if (Array.isArray(category)) {\n for (let catIdx in category) {\n let disp = this.getI18t(locale, category[catIdx], name)\n\n if (disp) {\n return disp\n }\n }\n } else {\n let disp = this.getI18t(locale, category, name)\n\n if (disp) {\n return disp\n }\n }\n\n return ''\n }\n\n getI18t(locale, category, name) {\n let tName = `${category}.${name}`\n let disp = ''\n\n if (locale == 'en-US') {\n disp = i18nextEn(tName)\n } else {\n disp = i18nextKo(tName)\n }\n\n if (disp == tName) {\n return undefined\n }\n\n return disp\n }\n}\n\ncustomElements.define('export-menu-popup', ExportMenuPopup)\n"]}
|