@pepperi-addons/ngx-composite-lib 0.4.2-beta.99 → 0.5.0-ng16.2
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/color-settings/color-settings.component.d.ts +1 -1
- package/core/common/directives/reset-configuration-field.directive.d.ts +1 -1
- package/data-view-builder/data-view-builder.component.d.ts +1 -1
- package/data-view-builder/data-view-builder.model.d.ts +1 -1
- package/data-view-builder/menu-data-view/menu-data-view.component.d.ts +1 -1
- package/esm2022/color-settings/color-settings.component.mjs +90 -0
- package/{esm2020 → esm2022}/color-settings/color-settings.module.mjs +13 -13
- package/esm2022/core/common/directives/reset-configuration-field.directive.mjs +154 -0
- package/{esm2020 → esm2022}/core/common/services/dimx.service.mjs +4 -4
- package/{esm2020 → esm2022}/core/common/services/utilities.service.mjs +4 -4
- package/esm2022/data-view-builder/data-view-builder.component.mjs +126 -0
- package/{esm2020 → esm2022}/data-view-builder/data-view-builder.module.mjs +27 -27
- package/{esm2020 → esm2022}/data-view-builder/data-view-builder.service.mjs +7 -7
- package/{esm2020 → esm2022}/data-view-builder/menu-data-view/menu-data-view.component.mjs +4 -4
- package/{esm2020 → esm2022}/file-status-panel/file-status-panel.component.mjs +4 -4
- package/esm2022/file-status-panel/file-status-panel.module.mjs +74 -0
- package/esm2022/flow-picker-button/flow-picker-button.component.mjs +94 -0
- package/{esm2020 → esm2022}/flow-picker-button/flow-picker-button.module.mjs +11 -11
- package/{esm2020 → esm2022}/flow-picker-button/flow-picker-button.service.mjs +4 -4
- package/esm2022/generic-fields-builder/field-container/field-container.component.mjs +18 -0
- package/esm2022/generic-fields-builder/generic-fields-builder.component.mjs +119 -0
- package/esm2022/generic-fields-builder/generic-fields-builder.module.mjs +82 -0
- package/esm2022/generic-fields-builder/generic-fields-builder.service.mjs +39 -0
- package/esm2022/generic-fields-builder/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +5 -0
- package/esm2022/generic-fields-builder/public-api.mjs +6 -0
- package/esm2022/generic-form/generic-form.component.mjs +194 -0
- package/{esm2020 → esm2022}/generic-form/generic-form.module.mjs +23 -23
- package/{esm2020 → esm2022}/generic-form/generic-form.service.mjs +4 -4
- package/esm2022/generic-list/generic-list.component.mjs +583 -0
- package/esm2022/generic-list/generic-list.module.mjs +114 -0
- package/esm2022/generic-list/generic-list.service.mjs +171 -0
- package/esm2022/group-buttons-settings/group-buttons-settings.component.mjs +157 -0
- package/{esm2020 → esm2022}/group-buttons-settings/group-buttons-settings.module.mjs +13 -13
- package/{esm2020 → esm2022}/icon-picker/icon-picker.component.mjs +4 -4
- package/{esm2020 → esm2022}/icon-picker/icon-picker.module.mjs +15 -15
- package/{esm2020 → esm2022}/icon-picker/icon-picker.service.mjs +4 -4
- package/{esm2020 → esm2022}/layout-builder/hide-in/hide-in.component.mjs +5 -5
- package/{esm2020 → esm2022}/layout-builder/hide-in/hide-in.module.mjs +31 -31
- package/esm2022/layout-builder/layout/layout.component.mjs +229 -0
- package/esm2022/layout-builder/layout/layout.module.mjs +56 -0
- package/{esm2020 → esm2022}/layout-builder/layout-builder-editor/layout-builder-editor.component.mjs +4 -4
- package/{esm2020 → esm2022}/layout-builder/layout-builder-editor/layout-builder-editor.module.mjs +14 -14
- package/esm2022/layout-builder/layout-builder-internal.service.mjs +628 -0
- package/esm2022/layout-builder/layout-builder.component.mjs +232 -0
- package/esm2022/layout-builder/layout-builder.model.mjs +2 -0
- package/{esm2020 → esm2022}/layout-builder/layout-builder.module.mjs +61 -61
- package/esm2022/layout-builder/layout-builder.service.mjs +49 -0
- package/esm2022/layout-builder/main-editor/main-editor.component.mjs +141 -0
- package/{esm2020 → esm2022}/layout-builder/main-editor/main-editor.module.mjs +40 -40
- package/esm2022/layout-builder/section/section.component.mjs +376 -0
- package/{esm2020 → esm2022}/layout-builder/section/section.module.mjs +16 -16
- package/esm2022/layout-builder/section-block/section-block.component.mjs +113 -0
- package/{esm2020 → esm2022}/layout-builder/section-block/section-block.module.mjs +11 -11
- package/esm2022/layout-builder/section-editor/section-editor.component.mjs +201 -0
- package/esm2022/layout-builder/section-editor/section-editor.module.mjs +48 -0
- package/esm2022/manage-parameters/manage-parameter/manage-parameter.component.mjs +86 -0
- package/esm2022/manage-parameters/manage-parameters.component.mjs +189 -0
- package/{esm2020 → esm2022}/manage-parameters/manage-parameters.model.mjs +1 -1
- package/{esm2020 → esm2022}/manage-parameters/manage-parameters.module.mjs +15 -15
- package/esm2022/manage-parameters/manage-parameters.service.mjs +149 -0
- package/esm2022/mapping-parameters/mapping-parameters.component.mjs +44 -0
- package/esm2022/mapping-parameters/mapping-parameters.model.mjs +6 -0
- package/esm2022/mapping-parameters/mapping-parameters.module.mjs +59 -0
- package/esm2022/mapping-parameters/mapping-parameters.service.mjs +37 -0
- package/esm2022/mapping-parameters/param-map/param-map.component.mjs +73 -0
- package/esm2022/mapping-parameters/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +5 -0
- package/esm2022/mapping-parameters/public-api.mjs +4 -0
- package/{esm2020 → esm2022}/ngx-composite-lib.module.mjs +12 -12
- package/esm2022/padding-settings/padding-settings.component.mjs +90 -0
- package/{esm2020 → esm2022}/padding-settings/padding-settings.model.mjs +3 -3
- package/{esm2020 → esm2022}/padding-settings/padding-settings.module.mjs +17 -17
- package/esm2022/rich-text/rich-text.component.mjs +154 -0
- package/{esm2020 → esm2022}/rich-text/rich-text.module.mjs +15 -15
- package/{esm2020 → esm2022}/rich-text/rich-text.service.mjs +4 -4
- package/esm2022/shadow-settings/shadow-settings.component.mjs +72 -0
- package/{esm2020 → esm2022}/shadow-settings/shadow-settings.module.mjs +15 -15
- package/{esm2020 → esm2022}/show-if-badge/show-if-badge.component.mjs +5 -5
- package/{esm2020 → esm2022}/show-if-badge/show-if-badge.module.mjs +14 -14
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-color-settings.mjs +24 -24
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +53 -53
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +28 -28
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +28 -28
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs +254 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-generic-fields-builder.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-generic-form.mjs +37 -37
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-composite-lib-generic-list.mjs +866 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +26 -26
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-icon-picker.mjs +20 -20
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-composite-lib-layout-builder.mjs +2439 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +91 -43
- package/fesm2022/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +1 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs +209 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-mapping-parameters.mjs.map +1 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-padding-settings.mjs +150 -0
- package/fesm2022/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-rich-text.mjs +28 -28
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +25 -25
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +1 -1
- package/fesm2022/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +100 -0
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/pepperi-addons-ngx-composite-lib.mjs +40 -40
- package/{fesm2015 → fesm2022}/pepperi-addons-ngx-composite-lib.mjs.map +1 -1
- package/file-status-panel/file-status-panel.component.d.ts +1 -1
- package/file-status-panel/file-status-panel.model.d.ts +1 -1
- package/flow-picker-button/flow-picker-button.component.d.ts +1 -1
- package/generic-fields-builder/field-container/field-container.component.d.ts +10 -0
- package/generic-fields-builder/generic-fields-builder.component.d.ts +46 -0
- package/generic-fields-builder/generic-fields-builder.module.d.ts +23 -0
- package/generic-fields-builder/generic-fields-builder.service.d.ts +14 -0
- package/generic-fields-builder/index.d.ts +5 -0
- package/generic-fields-builder/public-api.d.ts +2 -0
- package/generic-form/generic-form.component.d.ts +1 -1
- package/generic-list/generic-list.component.d.ts +25 -9
- package/generic-list/generic-list.module.d.ts +13 -11
- package/generic-list/generic-list.service.d.ts +3 -1
- package/group-buttons-settings/group-buttons-settings.component.d.ts +1 -1
- package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
- package/icon-picker/icon-picker.component.d.ts +1 -1
- package/layout-builder/hide-in/hide-in.component.d.ts +1 -1
- package/layout-builder/hide-in/hide-in.component.theme.scss +1 -1
- package/layout-builder/layout/layout.component.d.ts +12 -8
- package/layout-builder/layout-builder-editor/layout-builder-editor.component.d.ts +1 -1
- package/layout-builder/layout-builder-internal.service.d.ts +5 -10
- package/layout-builder/layout-builder.component.d.ts +11 -4
- package/layout-builder/layout-builder.component.theme.scss +1 -1
- package/layout-builder/layout-builder.model.d.ts +3 -3
- package/layout-builder/layout-builder.service.d.ts +15 -6
- package/layout-builder/main-editor/main-editor.component.d.ts +7 -5
- package/layout-builder/section/section.component.d.ts +8 -1
- package/layout-builder/section-block/section-block.component.d.ts +1 -1
- package/layout-builder/section-editor/section-editor.component.d.ts +4 -1
- package/layout-builder/section-editor/section-editor.module.d.ts +3 -2
- package/manage-parameters/manage-parameter/manage-parameter.component.d.ts +3 -1
- package/manage-parameters/manage-parameters.component.d.ts +10 -3
- package/manage-parameters/manage-parameters.model.d.ts +4 -1
- package/manage-parameters/manage-parameters.service.d.ts +2 -2
- package/mapping-parameters/index.d.ts +5 -0
- package/mapping-parameters/mapping-parameters.component.d.ts +19 -0
- package/mapping-parameters/mapping-parameters.model.d.ts +8 -0
- package/mapping-parameters/mapping-parameters.module.d.ts +18 -0
- package/mapping-parameters/mapping-parameters.service.d.ts +12 -0
- package/mapping-parameters/param-map/param-map.component.d.ts +27 -0
- package/mapping-parameters/public-api.d.ts +3 -0
- package/package.json +80 -101
- package/padding-settings/padding-settings.component.d.ts +1 -1
- package/padding-settings/padding-settings.model.d.ts +2 -2
- package/rich-text/rich-text.component.d.ts +1 -1
- package/shadow-settings/shadow-settings.component.d.ts +1 -1
- package/shadow-settings/shadow-settings.model.d.ts +1 -1
- package/show-if-badge/show-if-badge.component.d.ts +1 -1
- package/src/assets/i18n/en.ngx-composite-lib.json +22 -2
- package/esm2020/color-settings/color-settings.component.mjs +0 -90
- package/esm2020/core/common/directives/reset-configuration-field.directive.mjs +0 -154
- package/esm2020/data-view-builder/data-view-builder.component.mjs +0 -126
- package/esm2020/file-status-panel/file-status-panel.module.mjs +0 -74
- package/esm2020/flow-picker-button/flow-picker-button.component.mjs +0 -94
- package/esm2020/generic-form/generic-form.component.mjs +0 -194
- package/esm2020/generic-list/generic-list.component.mjs +0 -530
- package/esm2020/generic-list/generic-list.module.mjs +0 -106
- package/esm2020/generic-list/generic-list.service.mjs +0 -146
- package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +0 -157
- package/esm2020/layout-builder/layout/layout.component.mjs +0 -204
- package/esm2020/layout-builder/layout/layout.module.mjs +0 -54
- package/esm2020/layout-builder/layout-builder-internal.service.mjs +0 -628
- package/esm2020/layout-builder/layout-builder.component.mjs +0 -201
- package/esm2020/layout-builder/layout-builder.model.mjs +0 -2
- package/esm2020/layout-builder/layout-builder.service.mjs +0 -36
- package/esm2020/layout-builder/main-editor/main-editor.component.mjs +0 -130
- package/esm2020/layout-builder/section/section.component.mjs +0 -351
- package/esm2020/layout-builder/section-block/section-block.component.mjs +0 -113
- package/esm2020/layout-builder/section-editor/section-editor.component.mjs +0 -192
- package/esm2020/layout-builder/section-editor/section-editor.module.mjs +0 -44
- package/esm2020/manage-parameters/manage-parameter/manage-parameter.component.mjs +0 -82
- package/esm2020/manage-parameters/manage-parameters.component.mjs +0 -153
- package/esm2020/manage-parameters/manage-parameters.service.mjs +0 -142
- package/esm2020/padding-settings/padding-settings.component.mjs +0 -80
- package/esm2020/rich-text/rich-text.component.mjs +0 -154
- package/esm2020/shadow-settings/shadow-settings.component.mjs +0 -72
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs +0 -144
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +0 -378
- package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +0 -126
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +0 -161
- package/fesm2015/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs +0 -317
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +0 -801
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +0 -216
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs +0 -146
- package/fesm2015/pepperi-addons-ngx-composite-lib-icon-picker.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs +0 -2345
- package/fesm2015/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +0 -441
- package/fesm2015/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-padding-settings.mjs +0 -140
- package/fesm2015/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs +0 -234
- package/fesm2015/pepperi-addons-ngx-composite-lib-rich-text.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +0 -129
- package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +0 -100
- package/fesm2015/pepperi-addons-ngx-composite-lib-show-if-badge.mjs.map +0 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib.mjs +0 -329
- package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +0 -780
- package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs +0 -2322
- package/fesm2020/pepperi-addons-ngx-composite-lib-layout-builder.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-manage-parameters.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-padding-settings.mjs +0 -140
- package/fesm2020/pepperi-addons-ngx-composite-lib-padding-settings.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-shadow-settings.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +0 -100
- package/fesm2020/pepperi-addons-ngx-composite-lib.mjs.map +0 -1
- /package/{esm2020 → esm2022}/color-settings/color-settings.model.mjs +0 -0
- /package/{esm2020 → esm2022}/color-settings/pepperi-addons-ngx-composite-lib-color-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/color-settings/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/directives/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/common/services/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/core/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/data-view-builder/data-view-builder.model.mjs +0 -0
- /package/{esm2020 → esm2022}/data-view-builder/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/data-view-builder/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/file-status-panel/file-status-panel.model.mjs +0 -0
- /package/{esm2020 → esm2022}/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.mjs +0 -0
- /package/{esm2020 → esm2022}/file-status-panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/flow-picker-button/pepperi-addons-ngx-composite-lib-flow-picker-button.mjs +0 -0
- /package/{esm2020 → esm2022}/flow-picker-button/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/generic-form/generic-form.model.mjs +0 -0
- /package/{esm2020 → esm2022}/generic-form/pepperi-addons-ngx-composite-lib-generic-form.mjs +0 -0
- /package/{esm2020 → esm2022}/generic-form/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/generic-list/generic-list.model.mjs +0 -0
- /package/{esm2020 → esm2022}/generic-list/pepperi-addons-ngx-composite-lib-generic-list.mjs +0 -0
- /package/{esm2020 → esm2022}/generic-list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons-settings/group-buttons-settings.model.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons-settings/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/group-buttons-settings/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/icon-picker/pepperi-addons-ngx-composite-lib-icon-picker.mjs +0 -0
- /package/{esm2020 → esm2022}/icon-picker/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-builder/pepperi-addons-ngx-composite-lib-layout-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-builder/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/manage-parameters/pepperi-addons-ngx-composite-lib-manage-parameters.mjs +0 -0
- /package/{esm2020 → esm2022}/manage-parameters/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/padding-settings/pepperi-addons-ngx-composite-lib-padding-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/padding-settings/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pepperi-addons-ngx-composite-lib.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/rich-text/pepperi-addons-ngx-composite-lib-rich-text.mjs +0 -0
- /package/{esm2020 → esm2022}/rich-text/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/shadow-settings/pepperi-addons-ngx-composite-lib-shadow-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/shadow-settings/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/shadow-settings/shadow-settings.model.mjs +0 -0
- /package/{esm2020 → esm2022}/show-if-badge/pepperi-addons-ngx-composite-lib-show-if-badge.mjs +0 -0
- /package/{esm2020 → esm2022}/show-if-badge/public-api.mjs +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "../manage-parameters.service";
|
|
6
|
+
import * as i3 from "@ngx-translate/core";
|
|
7
|
+
import * as i4 from "@pepperi-addons/ngx-lib/dialog";
|
|
8
|
+
import * as i5 from "@pepperi-addons/ngx-lib/button";
|
|
9
|
+
import * as i6 from "@pepperi-addons/ngx-composite-lib/generic-form";
|
|
10
|
+
export class ManageParameterComponent {
|
|
11
|
+
constructor(dialogRef, manageParametersService, translate, incoming) {
|
|
12
|
+
this.dialogRef = dialogRef;
|
|
13
|
+
this.manageParametersService = manageParametersService;
|
|
14
|
+
this.translate = translate;
|
|
15
|
+
this.incoming = incoming;
|
|
16
|
+
this.parameter = undefined;
|
|
17
|
+
this.showType = false;
|
|
18
|
+
this.showAccessibility = false;
|
|
19
|
+
this.showPersistency = false;
|
|
20
|
+
this.readonly = false;
|
|
21
|
+
this.isValid = true;
|
|
22
|
+
}
|
|
23
|
+
loadDataView(paramType) {
|
|
24
|
+
this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility, this.showPersistency);
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.parameter = this.getParameter(this.incoming.Parameter);
|
|
28
|
+
this.showType = this.incoming.ShowType ?? false;
|
|
29
|
+
this.showAccessibility = this.incoming.ShowAccessibility ?? false;
|
|
30
|
+
this.showPersistency = this.incoming.ShowPersistency ?? false;
|
|
31
|
+
this.readonly = this.incoming.Readonly ?? false;
|
|
32
|
+
this.loadDataView(this.parameter?.Type);
|
|
33
|
+
}
|
|
34
|
+
saveParameter() {
|
|
35
|
+
// before updating the parameter, remove redundant properties
|
|
36
|
+
if (this.parameter && this.showAccessibility) {
|
|
37
|
+
delete this.parameter['Accessibility'];
|
|
38
|
+
delete this.parameter['Accessibility_Description'];
|
|
39
|
+
}
|
|
40
|
+
this.close(this.parameter);
|
|
41
|
+
}
|
|
42
|
+
close(parameter = undefined) {
|
|
43
|
+
this.dialogRef.close(parameter || null);
|
|
44
|
+
}
|
|
45
|
+
getParameter(parameter) {
|
|
46
|
+
const ret = JSON.parse(JSON.stringify(parameter));
|
|
47
|
+
Object.keys(parameter || {}).forEach(prop => {
|
|
48
|
+
if (typeof (parameter[prop]) != 'boolean') {
|
|
49
|
+
// if the value is null/undefined, don't copy it
|
|
50
|
+
if (parameter[prop]) {
|
|
51
|
+
ret[prop] = parameter[prop].toString();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (prop === 'Internal' && this.showAccessibility) {
|
|
55
|
+
ret['Accessibility'] = parameter[prop] ? 'Internal' : 'External';
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
ret[prop] = parameter[prop];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
if (this.showAccessibility) {
|
|
62
|
+
ret['Accessibility_Description'] = this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION');
|
|
63
|
+
}
|
|
64
|
+
return ret;
|
|
65
|
+
}
|
|
66
|
+
onValueChanged(event) {
|
|
67
|
+
if (event.ApiName === 'Type' && this.showType) {
|
|
68
|
+
this.loadDataView(event.Value);
|
|
69
|
+
}
|
|
70
|
+
else if (event.ApiName === 'Accessibility' && this.showAccessibility) {
|
|
71
|
+
if (this.parameter) {
|
|
72
|
+
this.parameter['Internal'] = event.Value === 'Internal';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParameterComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.ManageParametersService }, { token: i3.TranslateService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ManageParameterComponent, selector: "manage-parameter", ngImport: i0, template: "<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" [isLocked]=\"readonly\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>", styles: [":host ::ng-deep .pep-textarea-container textarea{margin-bottom:calc(var(--pep-spacing-lg, 1rem) * -1)!important}\n"], dependencies: [{ kind: "component", type: i4.PepDialogComponent, selector: "pep-dialog", inputs: ["title", "showClose", "showHeader", "showFooter"], outputs: ["close"] }, { kind: "component", type: i5.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i6.GenericFormComponent, selector: "pep-generic-form", inputs: ["dataSource", "dataView", "isLocked", "inline", "showTopBar", "addPadding"], outputs: ["valueChange", "fieldClick", "formValidationChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParameterComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'manage-parameter', template: "<pep-dialog [title]=\"(incoming.Mode === 'edit' ? 'MANAGE_PARAMETERS.EDIT_FORM_TITLE' : 'MANAGE_PARAMETERS.ADD_FORM_TITLE') | translate\">\n <ng-container pep-dialog-content>\n <pep-generic-form #addForm [dataSource]=\"parameter\" [dataView]=\"dataView\" [isLocked]=\"readonly\" (formValidationChange)=\"isValid = $event\" (valueChange)=\"onValueChanged($event)\">\n\n </pep-generic-form>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\" style=\"display: flex;\"> \n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"'Cancel' | translate\" \n [styleType]=\"'weak'\" \n (buttonClick)=\"close()\"\n ></pep-button>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'md'\" \n [value]=\"(incoming.Mode === 'edit' ? 'Update' : 'Save') | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"saveParameter()\"\n [disabled]=\"!isValid\"\n ></pep-button>\n </div>\n </ng-container>\n</pep-dialog>", styles: [":host ::ng-deep .pep-textarea-container textarea{margin-bottom:calc(var(--pep-spacing-lg, 1rem) * -1)!important}\n"] }]
|
|
82
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.ManageParametersService }, { type: i3.TranslateService }, { type: undefined, decorators: [{
|
|
83
|
+
type: Inject,
|
|
84
|
+
args: [MAT_DIALOG_DATA]
|
|
85
|
+
}] }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9tYW5hZ2UtcGFyYW1ldGVycy9tYW5hZ2UtcGFyYW1ldGVyL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbWFuYWdlLXBhcmFtZXRlcnMvbWFuYWdlLXBhcmFtZXRlci9tYW5hZ2UtcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQWN6RSxNQUFNLE9BQU8sd0JBQXdCO0lBaUJqQyxZQUFzQixTQUFpRCxFQUMzRCx1QkFBZ0QsRUFDaEQsU0FBMkIsRUFDSCxRQUE0QjtRQUgxQyxjQUFTLEdBQVQsU0FBUyxDQUF3QztRQUMzRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ0gsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFYaEUsY0FBUyxHQUE2QixTQUFTLENBQUM7UUFDaEQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBT2YsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUEwQjtRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFT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QUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNwRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7YUFDM0Q7U0FDSjtJQUNMLENBQUM7K0dBakZRLHdCQUF3QixxSEFvQnJCLGVBQWU7bUdBcEJsQix3QkFBd0Isd0RDZnJDLHV0Q0F5QmE7OzRGRFZBLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxrQkFBa0I7OzBCQXdCdkIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEdlbmVyaWNGb3JtQ29tcG9uZW50LCBJUGVwR2VuZXJpY0Zvcm1EYXRhVmlldywgSVBlcEdlbmVyaWNGb3JtVmFsdWVDaGFuZ2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1mb3JtJztcbmltcG9ydCB7IElQYXJhbWVtZXRlciwgSVBhcmFtZXRlckZvcm1EYXRhIH0gZnJvbSAnLi4vbWFuYWdlLXBhcmFtZXRlcnMubW9kZWwnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYW5hZ2VQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL21hbmFnZS1wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NoZW1lRmllbGRUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYW5hZ2UtcGFyYW1ldGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLXBhcmFtZXRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWFuYWdlLXBhcmFtZXRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZVBhcmFtZXRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAvLyBAVmlld0NoaWxkKCdmbG93c0xpc3QnLCB7cmVhZDogR2VuZXJpY0Zvcm1Db21wb25lbnR9KSBzZXQgZ2VuZXJpY0Zvcm1TZXR0ZXIoaW5Gb3JtOiBHZW5lcmljRm9ybUNvbXBvbmVudCkge1xuICAgIC8vICAgICBpZiAoaW5Gb3JtKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmZvcm0gPSBpbkZvcm07XG4gICAgLy8gICAgIH1cbiAgICAvLyB9O1xuICAgIFxuICAgIGZvcm0hOiBHZW5lcmljRm9ybUNvbXBvbmVudDtcbiAgICBwYXJhbWV0ZXI6IElQYXJhbWVtZXRlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBzaG93VHlwZSA9IGZhbHNlO1xuICAgIHNob3dBY2Nlc3NpYmlsaXR5ID0gZmFsc2U7XG4gICAgc2hvd1BlcnNpc3RlbmN5ID0gZmFsc2U7XG4gICAgZGF0YVZpZXchOiBJUGVwR2VuZXJpY0Zvcm1EYXRhVmlldztcbiAgICByZWFkb25seSA9IGZhbHNlO1xuICAgIGlzVmFsaWQgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IgKCBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE1hbmFnZVBhcmFtZXRlckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgbWFuYWdlUGFyYW1ldGVyc1NlcnZpY2U6IE1hbmFnZVBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBpbmNvbWluZzogSVBhcmFtZXRlckZvcm1EYXRhKSB7XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWREYXRhVmlldyhwYXJhbVR5cGU6IFNjaGVtZUZpZWxkVHlwZSkge1xuICAgICAgICB0aGlzLmRhdGFWaWV3ID0gdGhpcy5tYW5hZ2VQYXJhbWV0ZXJzU2VydmljZS5nZXRQYXJhbWV0ZXJGb3JtRGF0YVZpZXcodGhpcy5pbmNvbWluZy5Nb2RlLCBwYXJhbVR5cGUgfHwgJ1N0cmluZycsIHRoaXMuc2hvd1R5cGUsIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHksIHRoaXMuc2hvd1BlcnNpc3RlbmN5KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXIgPSB0aGlzLmdldFBhcmFtZXRlcih0aGlzLmluY29taW5nLlBhcmFtZXRlcik7XG4gICAgICAgIHRoaXMuc2hvd1R5cGUgPSB0aGlzLmluY29taW5nLlNob3dUeXBlID8/IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dBY2Nlc3NpYmlsaXR5ID0gdGhpcy5pbmNvbWluZy5TaG93QWNjZXNzaWJpbGl0eSA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93UGVyc2lzdGVuY3kgPSB0aGlzLmluY29taW5nLlNob3dQZXJzaXN0ZW5jeSA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWFkb25seSA9IHRoaXMuaW5jb21pbmcuUmVhZG9ubHkgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZERhdGFWaWV3KHRoaXMucGFyYW1ldGVyPy5UeXBlKTtcbiAgICB9XG5cbiAgICBzYXZlUGFyYW1ldGVyKCkge1xuICAgICAgICAvLyBiZWZvcmUgdXBkYXRpbmcgdGhlIHBhcmFtZXRlciwgcmVtb3ZlIHJlZHVuZGFudCBwcm9wZXJ0aWVzXG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlciAmJiB0aGlzLnNob3dBY2Nlc3NpYmlsaXR5KSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5wYXJhbWV0ZXJbJ0FjY2Vzc2liaWxpdHknXTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhcmFtZXRlclsnQWNjZXNzaWJpbGl0eV9EZXNjcmlwdGlvbiddO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZSh0aGlzLnBhcmFtZXRlcik7XG4gICAgfVxuXG4gICAgY2xvc2UocGFyYW1ldGVyOiBJUGFyYW1lbWV0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocGFyYW1ldGVyIHx8IG51bGwpO1xuICAgIH1cblxuICAgIGdldFBhcmFtZXRlcihwYXJhbWV0ZXI6IElQYXJhbWVtZXRlcik6IElQYXJhbWVtZXRlciB7XG4gICAgICAgIGNvbnN0IHJldDogSVBhcmFtZW1ldGVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXIpKTtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1ldGVyIHx8IHt9KS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZihwYXJhbWV0ZXJbcHJvcF0pICE9ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBudWxsL3VuZGVmaW5lZCwgZG9uJ3QgY29weSBpdFxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJbcHJvcF0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0W3Byb3BdID0gcGFyYW1ldGVyW3Byb3BdLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wID09PSAnSW50ZXJuYWwnICYmIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICByZXRbJ0FjY2Vzc2liaWxpdHknXSA9IHBhcmFtZXRlcltwcm9wXSA/ICdJbnRlcm5hbCcgOiAnRXh0ZXJuYWwnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldFtwcm9wXSA9IHBhcmFtZXRlcltwcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5zaG93QWNjZXNzaWJpbGl0eSkge1xuICAgICAgICAgICAgcmV0WydBY2Nlc3NpYmlsaXR5X0Rlc2NyaXB0aW9uJ10gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5JTlRFUk5BTF9ERVNDUklQVElPTicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlZChldmVudDogSVBlcEdlbmVyaWNGb3JtVmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LkFwaU5hbWUgPT09ICdUeXBlJyAmJiB0aGlzLnNob3dUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWREYXRhVmlldyhldmVudC5WYWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuQXBpTmFtZSA9PT0gJ0FjY2Vzc2liaWxpdHknICYmIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVyWydJbnRlcm5hbCddID0gZXZlbnQuVmFsdWUgPT09ICdJbnRlcm5hbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCI8cGVwLWRpYWxvZyBbdGl0bGVdPVwiKGluY29taW5nLk1vZGUgPT09ICdlZGl0JyA/ICdNQU5BR0VfUEFSQU1FVEVSUy5FRElUX0ZPUk1fVElUTEUnIDogJ01BTkFHRV9QQVJBTUVURVJTLkFERF9GT1JNX1RJVExFJykgfCB0cmFuc2xhdGVcIj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgPHBlcC1nZW5lcmljLWZvcm0gI2FkZEZvcm0gW2RhdGFTb3VyY2VdPVwicGFyYW1ldGVyXCIgW2RhdGFWaWV3XT1cImRhdGFWaWV3XCIgW2lzTG9ja2VkXT1cInJlYWRvbmx5XCIgKGZvcm1WYWxpZGF0aW9uQ2hhbmdlKT1cImlzVmFsaWQgPSAkZXZlbnRcIiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgIDwvcGVwLWdlbmVyaWMtZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnQtbmVnYXRpdmVcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+ICAgICAgICAgXG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplVHlwZV09XCInbWQnXCIgXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidDYW5jZWwnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgICAgICAgW3N0eWxlVHlwZV09XCInd2VhaydcIiBcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgID48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplVHlwZV09XCInbWQnXCIgXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIihpbmNvbWluZy5Nb2RlID09PSAnZWRpdCcgPyAnVXBkYXRlJyA6ICdTYXZlJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZVR5cGVdPVwiJ3N0cm9uZydcIiBcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwic2F2ZVBhcmFtZXRlcigpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWRcIlxuICAgICAgICAgICAgPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3BlcC1kaWFsb2c+Il19
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { PepDialogData } from '@pepperi-addons/ngx-lib/dialog';
|
|
3
|
+
import { ManageParameterComponent } from './manage-parameter/manage-parameter.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngx-translate/core";
|
|
6
|
+
import * as i2 from "./manage-parameters.service";
|
|
7
|
+
import * as i3 from "@pepperi-addons/ngx-lib/dialog";
|
|
8
|
+
import * as i4 from "@pepperi-addons/ngx-lib/button";
|
|
9
|
+
import * as i5 from "@pepperi-addons/ngx-composite-lib/generic-list";
|
|
10
|
+
export class ManageParametersComponent {
|
|
11
|
+
set showPersistency(value) {
|
|
12
|
+
this._showPersistency = value;
|
|
13
|
+
}
|
|
14
|
+
get showPersistency() {
|
|
15
|
+
return this._showPersistency;
|
|
16
|
+
}
|
|
17
|
+
set parameters(value) {
|
|
18
|
+
this._parameters = value || [];
|
|
19
|
+
this.notifyParametersChange(false);
|
|
20
|
+
}
|
|
21
|
+
get parameters() {
|
|
22
|
+
return this._parameters;
|
|
23
|
+
}
|
|
24
|
+
constructor(translate, dataViewService, dialogService) {
|
|
25
|
+
this.translate = translate;
|
|
26
|
+
this.dataViewService = dataViewService;
|
|
27
|
+
this.dialogService = dialogService;
|
|
28
|
+
this.showType = false;
|
|
29
|
+
this.showAccessibility = false;
|
|
30
|
+
this._showPersistency = false;
|
|
31
|
+
this.inline = true;
|
|
32
|
+
this.addPadding = false;
|
|
33
|
+
this.parametersTitle = '';
|
|
34
|
+
// If columns are not defined, the default columns will be used (default is with no Internal - Accessibility).
|
|
35
|
+
this.parametersColumns = [];
|
|
36
|
+
this._parameters = [];
|
|
37
|
+
this.parametersChange = new EventEmitter();
|
|
38
|
+
this.listMessages = {};
|
|
39
|
+
this.actions = {
|
|
40
|
+
get: async (data) => {
|
|
41
|
+
const actions = [];
|
|
42
|
+
if (data && data.rows.length == 1) {
|
|
43
|
+
const paramName = data.rows[0];
|
|
44
|
+
const readOnly = this.parameters.find(x => x.Key === paramName)?.Readonly ?? false;
|
|
45
|
+
actions.push({
|
|
46
|
+
title: this.translate.instant('Edit'),
|
|
47
|
+
handler: async (objs) => {
|
|
48
|
+
this.openCreateParamForm('edit', objs.rows[0]);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
if (!readOnly) {
|
|
52
|
+
actions.push({
|
|
53
|
+
title: this.translate.instant('Delete'),
|
|
54
|
+
handler: async (objs) => {
|
|
55
|
+
this.showDeleteDialog(objs.rows[0]);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return actions;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
notifyParametersChange(raiseEvent = true) {
|
|
65
|
+
// Sort the parameters by name
|
|
66
|
+
this._parameters = this.parameters.sort((a, b) => a.Key.localeCompare(b.Key));
|
|
67
|
+
this.dataSource = this.getDataSource();
|
|
68
|
+
if (raiseEvent) {
|
|
69
|
+
this.parametersChange.emit(this.parameters);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
getDataSource() {
|
|
73
|
+
return {
|
|
74
|
+
init: async (params) => {
|
|
75
|
+
const listDataView = this.dataViewService.getParametersListDataView(this.parametersColumns, this.showType, this.showAccessibility, this.showPersistency);
|
|
76
|
+
console.log('data view:', listDataView);
|
|
77
|
+
return {
|
|
78
|
+
dataView: listDataView,
|
|
79
|
+
totalCount: this.parameters.length,
|
|
80
|
+
items: this.parameters
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
inputs: {
|
|
84
|
+
pager: {
|
|
85
|
+
type: 'scroll'
|
|
86
|
+
},
|
|
87
|
+
selectionType: 'single',
|
|
88
|
+
emptyState: {
|
|
89
|
+
show: true,
|
|
90
|
+
title: this.listMessages['MANAGE_PARAMETERS.EMPTY_STATE_TITLE'],
|
|
91
|
+
description: this.listMessages['MANAGE_PARAMETERS.EMPTY_STATE_DESCRIPTION'],
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
ngOnInit() {
|
|
97
|
+
this.translate.get(['MANAGE_PARAMETERS.EMPTY_STATE_TITLE', 'MANAGE_PARAMETERS.EMPTY_STATE_DESCRIPTION']).subscribe(translations => {
|
|
98
|
+
this.listMessages = translations;
|
|
99
|
+
this.dataSource = this.getDataSource();
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
onFieldClick(event) {
|
|
103
|
+
this.openCreateParamForm('edit', event.value);
|
|
104
|
+
}
|
|
105
|
+
openCreateParamForm(formMode, paramName = '') {
|
|
106
|
+
const paramItem = this.parameters.find(x => x.Key === paramName);
|
|
107
|
+
const defaultParam = {
|
|
108
|
+
DefaultValue: '',
|
|
109
|
+
Key: '',
|
|
110
|
+
Type: 'String',
|
|
111
|
+
Description: ''
|
|
112
|
+
};
|
|
113
|
+
// Add Accessibility field only if showAccessibility is true.
|
|
114
|
+
if (this.showAccessibility) {
|
|
115
|
+
defaultParam['Internal'] = false;
|
|
116
|
+
}
|
|
117
|
+
// Add Persistency field only if showPersistency is true.
|
|
118
|
+
if (this.showPersistency) {
|
|
119
|
+
defaultParam['Persistency'] = false;
|
|
120
|
+
}
|
|
121
|
+
const parameter = { ...defaultParam, ...paramItem };
|
|
122
|
+
const formData = {
|
|
123
|
+
Parameter: parameter,
|
|
124
|
+
Mode: formMode,
|
|
125
|
+
ShowType: this.showType,
|
|
126
|
+
ShowAccessibility: this.showAccessibility,
|
|
127
|
+
ShowPersistency: this.showPersistency,
|
|
128
|
+
Readonly: paramItem?.Readonly
|
|
129
|
+
};
|
|
130
|
+
const config = this.dialogService.getDialogConfig({}, 'large');
|
|
131
|
+
config.data = new PepDialogData({
|
|
132
|
+
content: ManageParameterComponent
|
|
133
|
+
});
|
|
134
|
+
this.dialogService.openDialog(ManageParameterComponent, formData, config).afterClosed().subscribe((value) => {
|
|
135
|
+
if (value) {
|
|
136
|
+
const index = this.parameters.findIndex(param => param.Key === value.Key);
|
|
137
|
+
// if the param doesn't exist, push to the end of the array, otherwise edit existing
|
|
138
|
+
if (index < 0) {
|
|
139
|
+
this.parameters.push(value);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
this.parameters.splice(index, 1, value);
|
|
143
|
+
}
|
|
144
|
+
this.notifyParametersChange();
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
showDeleteDialog(paramName) {
|
|
149
|
+
const dataMsg = new PepDialogData({
|
|
150
|
+
title: this.translate.instant('MANAGE_PARAMETERS.DELETE_DIALOG_TITLE', { param_name: paramName }),
|
|
151
|
+
actionsType: 'cancel-delete',
|
|
152
|
+
content: this.translate.instant('MANAGE_PARAMETERS.DELETE_DIALOG_CONTENT')
|
|
153
|
+
});
|
|
154
|
+
this.dialogService.openDefaultDialog(dataMsg).afterClosed().subscribe(async (isDeletePressed) => {
|
|
155
|
+
if (isDeletePressed) {
|
|
156
|
+
const index = this.parameters.findIndex(x => x.Key === paramName);
|
|
157
|
+
if (index > -1) {
|
|
158
|
+
this.parameters.splice(index, 1);
|
|
159
|
+
this.notifyParametersChange();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParametersComponent, deps: [{ token: i1.TranslateService }, { token: i2.ManageParametersService }, { token: i3.PepDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ManageParametersComponent, selector: "pep-manage-parameters", inputs: { showType: "showType", showAccessibility: "showAccessibility", showPersistency: "showPersistency", inline: "inline", addPadding: "addPadding", parametersTitle: "parametersTitle", parametersColumns: "parametersColumns", parameters: "parameters" }, outputs: { parametersChange: "parametersChange" }, ngImport: i0, template: "<pep-generic-list class=\"generic-list\"\n [title]=\"parametersTitle || ('MANAGE_PARAMETERS.TITLE' | translate)\"\n [showTopBar]=\"true\" \n [dataSource]=\"dataSource\" \n [inline]=\"inline\"\n [actions]=\"actions\"\n [addPadding]=\"addPadding\"\n [uuidMapping]=\"'Key'\"\n (fieldClick)=\"onFieldClick($event)\"\n >\n <ng-container right-buttons>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'sm'\" \n [value]=\"'MANAGE_PARAMETERS.ADD_BUTTON_TITLE' | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"openCreateParamForm('add', '')\"\n ></pep-button>\n </ng-container>\n</pep-generic-list>", styles: [":host .generic-list{height:100%}\n"], dependencies: [{ kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.GenericListComponent, selector: "pep-generic-list", inputs: ["dataSource", "actions", "uuidMapping", "disabled", "addPadding", "title", "sideBarTitle", "description", "inline", "showSearch", "noDataFoundMsg", "emptyState", "selectionType", "supportSorting", "supportSortingFields", "separator", "sorting", "cacheSize", "hideSelectAll", "pager", "tableViewType", "zebraStripes", "smartFilter", "showTopBar", "breadCrumbsItems", "selectAll", "scrollPosition", "unknownCount"], outputs: ["itemClick", "fieldClick", "valueChange", "breadCrumbItemClick", "startIndexChange", "listLoad"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
166
|
+
}
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParametersComponent, decorators: [{
|
|
168
|
+
type: Component,
|
|
169
|
+
args: [{ selector: 'pep-manage-parameters', template: "<pep-generic-list class=\"generic-list\"\n [title]=\"parametersTitle || ('MANAGE_PARAMETERS.TITLE' | translate)\"\n [showTopBar]=\"true\" \n [dataSource]=\"dataSource\" \n [inline]=\"inline\"\n [actions]=\"actions\"\n [addPadding]=\"addPadding\"\n [uuidMapping]=\"'Key'\"\n (fieldClick)=\"onFieldClick($event)\"\n >\n <ng-container right-buttons>\n <pep-button \n class=\"pep-spacing-element\"\n [sizeType]=\"'sm'\" \n [value]=\"'MANAGE_PARAMETERS.ADD_BUTTON_TITLE' | translate\"\n [styleType]=\"'strong'\" \n (buttonClick)=\"openCreateParamForm('add', '')\"\n ></pep-button>\n </ng-container>\n</pep-generic-list>", styles: [":host .generic-list{height:100%}\n"] }]
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.ManageParametersService }, { type: i3.PepDialogService }]; }, propDecorators: { showType: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], showAccessibility: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], showPersistency: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], inline: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], addPadding: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], parametersTitle: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], parametersColumns: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], parameters: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], parametersChange: [{
|
|
187
|
+
type: Output
|
|
188
|
+
}] } });
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbWFuYWdlLXBhcmFtZXRlcnMvbWFuYWdlLXBhcmFtZXRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbWFuYWdlLXBhcmFtZXRlcnMvbWFuYWdlLXBhcmFtZXRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFvQixNQUFNLGdDQUFnQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7O0FBU3pGLE1BQU0sT0FBTyx5QkFBeUI7SUFNbEMsSUFDSSxlQUFlLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBVUQsSUFDSSxVQUFVLENBQUMsS0FBcUI7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFpQ0QsWUFBcUIsU0FBMkIsRUFDcEMsZUFBd0MsRUFDeEMsYUFBK0I7UUFGdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQXlCO1FBQ3hDLGtCQUFhLEdB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LENBQUM7SUFDUCxDQUFDOytHQXRMUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixnWENmdEMsOHNCQW1CbUI7OzRGREpOLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSx1QkFBdUI7NEtBTXhCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUlGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBUUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUYsVUFBVTtzQkFEYixLQUFLO2dCQVdOLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSVBlcEdlbmVyaWNMaXN0QWN0aW9ucywgSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSwgSVBlcEdlbmVyaWNMaXN0UGFyYW1zIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtbGlzdCc7XG5pbXBvcnQgeyBQZXBEaWFsb2dEYXRhLCBQZXBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZGlhbG9nJztcbmltcG9ydCB7IFBlcFNlbGVjdGlvbkRhdGEgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9saXN0JztcbmltcG9ydCB7IFBhcmFtZXRlckZvcm1UeXBlLCBJUGFyYW1ldGVyRm9ybURhdGEsIElQYXJhbWVtZXRlciwgSVBhcmFtZXRlcnNDb2x1bW4gfSBmcm9tICcuL21hbmFnZS1wYXJhbWV0ZXJzLm1vZGVsJztcbmltcG9ydCB7IE1hbmFnZVBhcmFtZXRlckNvbXBvbmVudCB9IGZyb20gJy4vbWFuYWdlLXBhcmFtZXRlci9tYW5hZ2UtcGFyYW1ldGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGVwRmllbGRDbGlja0V2ZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuL21hbmFnZS1wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1tYW5hZ2UtcGFyYW1ldGVycycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1wYXJhbWV0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtcGFyYW1ldGVycy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZVBhcmFtZXRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgc2hvd1R5cGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93QWNjZXNzaWJpbGl0eSA9IGZhbHNlO1xuICAgIFxuICAgIHByaXZhdGUgX3Nob3dQZXJzaXN0ZW5jeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNob3dQZXJzaXN0ZW5jeSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93UGVyc2lzdGVuY3kgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHNob3dQZXJzaXN0ZW5jeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dQZXJzaXN0ZW5jeTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpbmxpbmUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGFkZFBhZGRpbmcgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXJzVGl0bGUgPSAnJztcblxuICAgIC8vIElmIGNvbHVtbnMgYXJlIG5vdCBkZWZpbmVkLCB0aGUgZGVmYXVsdCBjb2x1bW5zIHdpbGwgYmUgdXNlZCAoZGVmYXVsdCBpcyB3aXRoIG5vIEludGVybmFsIC0gQWNjZXNzaWJpbGl0eSkuXG4gICAgQElucHV0KCkgcGFyYW1ldGVyc0NvbHVtbnM6IElQYXJhbWV0ZXJzQ29sdW1uW10gPSBbXTtcblxuICAgIHByaXZhdGUgX3BhcmFtZXRlcnM6IElQYXJhbWVtZXRlcltdID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyYW1ldGVycyh2YWx1ZTogSVBhcmFtZW1ldGVyW10pIHtcbiAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHZhbHVlIHx8IFtdO1xuXG4gICAgICAgIHRoaXMubm90aWZ5UGFyYW1ldGVyc0NoYW5nZShmYWxzZSk7XG4gICAgfVxuICAgIGdldCBwYXJhbWV0ZXJzKCk6IElQYXJhbWVtZXRlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcGFyYW1ldGVyc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVBhcmFtZW1ldGVyW10+KCk7XG4gICAgXG4gICAgZGF0YVNvdXJjZSE6IElQZXBHZW5lcmljTGlzdERhdGFTb3VyY2U7XG4gICAgbGlzdE1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICBhY3Rpb25zOiBJUGVwR2VuZXJpY0xpc3RBY3Rpb25zID0ge1xuICAgICAgICBnZXQ6IGFzeW5jIChkYXRhOiBQZXBTZWxlY3Rpb25EYXRhKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnJvd3MubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSBkYXRhLnJvd3NbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZE9ubHkgPSB0aGlzLnBhcmFtZXRlcnMuZmluZCh4ID0+IHguS2V5ID09PSBwYXJhbU5hbWUpPy5SZWFkb25seSA/PyBmYWxzZTtcbiAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnRWRpdCcpLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVyOiBhc3luYyAob2JqczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5DcmVhdGVQYXJhbUZvcm0oJ2VkaXQnLCBvYmpzLnJvd3NbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0RlbGV0ZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcjogYXN5bmMgKG9ianM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0RlbGV0ZURpYWxvZyhvYmpzLnJvd3NbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IgKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRhdGFWaWV3U2VydmljZTogTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogUGVwRGlhbG9nU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBwcml2YXRlIG5vdGlmeVBhcmFtZXRlcnNDaGFuZ2UocmFpc2VFdmVudCA9IHRydWUpIHtcbiAgICAgICAgLy8gU29ydCB0aGUgcGFyYW1ldGVycyBieSBuYW1lXG4gICAgICAgIHRoaXMuX3BhcmFtZXRlcnMgPSB0aGlzLnBhcmFtZXRlcnMuc29ydCgoYSwgYikgPT4gYS5LZXkubG9jYWxlQ29tcGFyZShiLktleSkpO1xuXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuZ2V0RGF0YVNvdXJjZSgpO1xuICAgICAgICBcbiAgICAgICAgaWYgKHJhaXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1ldGVyc0NoYW5nZS5lbWl0KHRoaXMucGFyYW1ldGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGFTb3VyY2UoKTogSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbml0OiBhc3luYyAocGFyYW1zOiBJUGVwR2VuZXJpY0xpc3RQYXJhbXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0RGF0YVZpZXcgPSB0aGlzLmRhdGFWaWV3U2VydmljZS5nZXRQYXJhbWV0ZXJzTGlzdERhdGFWaWV3KHRoaXMucGFyYW1ldGVyc0NvbHVtbnMsIHRoaXMuc2hvd1R5cGUsIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHksIHRoaXMuc2hvd1BlcnNpc3RlbmN5KTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZGF0YSB2aWV3OicsIGxpc3REYXRhVmlldyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVZpZXc6IGxpc3REYXRhVmlldyxcbiAgICAgICAgICAgICAgICAgICAgdG90YWxDb3VudDogdGhpcy5wYXJhbWV0ZXJzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHRoaXMucGFyYW1ldGVyc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5wdXRzOiB7XG4gICAgICAgICAgICAgICAgcGFnZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3Njcm9sbCdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGU6ICdzaW5nbGUnLFxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMubGlzdE1lc3NhZ2VzWydNQU5BR0VfUEFSQU1FVEVSUy5FTVBUWV9TVEFURV9USVRMRSddLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5saXN0TWVzc2FnZXNbJ01BTkFHRV9QQVJBTUVURVJTLkVNUFRZX1NUQVRFX0RFU0NSSVBUSU9OJ10sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSBhcyBJUGVwR2VuZXJpY0xpc3REYXRhU291cmNlXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldChbJ01BTkFHRV9QQVJBTUVURVJTLkVNUFRZX1NUQVRFX1RJVExFJywgJ01BTkFHRV9QQVJBTUVURVJTLkVNUFRZX1NUQVRFX0RFU0NSSVBUSU9OJ10pLnN1YnNjcmliZSh0cmFuc2xhdGlvbnMgPT4ge1xuICAgICAgICAgICAgdGhpcy5saXN0TWVzc2FnZXMgPSB0cmFuc2xhdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSB0aGlzLmdldERhdGFTb3VyY2UoKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBvbkZpZWxkQ2xpY2soZXZlbnQ6IElQZXBGaWVsZENsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vcGVuQ3JlYXRlUGFyYW1Gb3JtKCdlZGl0JywgZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIG9wZW5DcmVhdGVQYXJhbUZvcm0oZm9ybU1vZGU6IFBhcmFtZXRlckZvcm1UeXBlLCBwYXJhbU5hbWUgPSAnJykge1xuICAgICAgICBjb25zdCBwYXJhbUl0ZW0gPSB0aGlzLnBhcmFtZXRlcnMuZmluZCh4ID0+IHguS2V5ID09PSBwYXJhbU5hbWUpO1xuICAgICAgICBjb25zdCBkZWZhdWx0UGFyYW06IElQYXJhbWVtZXRlciA9IHtcbiAgICAgICAgICAgIERlZmF1bHRWYWx1ZTogJycsXG4gICAgICAgICAgICBLZXk6ICcnLFxuICAgICAgICAgICAgVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogJydcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgQWNjZXNzaWJpbGl0eSBmaWVsZCBvbmx5IGlmIHNob3dBY2Nlc3NpYmlsaXR5IGlzIHRydWUuXG4gICAgICAgIGlmICh0aGlzLnNob3dBY2Nlc3NpYmlsaXR5KSB7XG4gICAgICAgICAgICBkZWZhdWx0UGFyYW1bJ0ludGVybmFsJ10gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBQZXJzaXN0ZW5jeSBmaWVsZCBvbmx5IGlmIHNob3dQZXJzaXN0ZW5jeSBpcyB0cnVlLlxuICAgICAgICBpZiAodGhpcy5zaG93UGVyc2lzdGVuY3kpIHtcbiAgICAgICAgICAgIGRlZmF1bHRQYXJhbVsnUGVyc2lzdGVuY3knXSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1ldGVyID0geyAuLi5kZWZhdWx0UGFyYW0sIC4uLnBhcmFtSXRlbSB9O1xuXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhOiBJUGFyYW1ldGVyRm9ybURhdGEgPSB7XG4gICAgICAgICAgICBQYXJhbWV0ZXI6IHBhcmFtZXRlcixcbiAgICAgICAgICAgIE1vZGU6IGZvcm1Nb2RlLFxuICAgICAgICAgICAgU2hvd1R5cGU6IHRoaXMuc2hvd1R5cGUsXG4gICAgICAgICAgICBTaG93QWNjZXNzaWJpbGl0eTogdGhpcy5zaG93QWNjZXNzaWJpbGl0eSxcbiAgICAgICAgICAgIFNob3dQZXJzaXN0ZW5jeTogdGhpcy5zaG93UGVyc2lzdGVuY3ksXG4gICAgICAgICAgICBSZWFkb25seTogcGFyYW1JdGVtPy5SZWFkb25seVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXREaWFsb2dDb25maWcoe30sICdsYXJnZScpO1xuICAgICAgICBjb25maWcuZGF0YSA9IG5ldyBQZXBEaWFsb2dEYXRhKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IE1hbmFnZVBhcmFtZXRlckNvbXBvbmVudFxuICAgICAgICB9KVxuICAgICAgICBcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coTWFuYWdlUGFyYW1ldGVyQ29tcG9uZW50LCBmb3JtRGF0YSwgY29uZmlnKS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgodmFsdWU6IElQYXJhbWVtZXRlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBhcmFtZXRlcnMuZmluZEluZGV4KHBhcmFtID0+IHBhcmFtLktleSA9PT0gdmFsdWUuS2V5KTtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcGFyYW0gZG9lc24ndCBleGlzdCwgcHVzaCB0byB0aGUgZW5kIG9mIHRoZSBhcnJheSwgb3RoZXJ3aXNlIGVkaXQgZXhpc3RpbmdcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5zcGxpY2UoaW5kZXgsIDEsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeVBhcmFtZXRlcnNDaGFuZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0RlbGV0ZURpYWxvZyhwYXJhbU5hbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBkYXRhTXNnID0gbmV3IFBlcERpYWxvZ0RhdGEoe1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ01BTkFHRV9QQVJBTUVURVJTLkRFTEVURV9ESUFMT0dfVElUTEUnLCB7IHBhcmFtX25hbWU6IHBhcmFtTmFtZSB9KSxcbiAgICAgICAgICAgIGFjdGlvbnNUeXBlOiAnY2FuY2VsLWRlbGV0ZScsXG4gICAgICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5ERUxFVEVfRElBTE9HX0NPTlRFTlQnKVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRlZmF1bHREaWFsb2coZGF0YU1zZykuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgKGlzRGVsZXRlUHJlc3NlZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRGVsZXRlUHJlc3NlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYXJhbWV0ZXJzLmZpbmRJbmRleCh4ID0+IHguS2V5ID09PSBwYXJhbU5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeVBhcmFtZXRlcnNDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxwZXAtZ2VuZXJpYy1saXN0IGNsYXNzPVwiZ2VuZXJpYy1saXN0XCJcbiAgICBbdGl0bGVdPVwicGFyYW1ldGVyc1RpdGxlIHx8ICgnTUFOQUdFX1BBUkFNRVRFUlMuVElUTEUnIHwgdHJhbnNsYXRlKVwiXG4gICAgW3Nob3dUb3BCYXJdPVwidHJ1ZVwiIFxuICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBcbiAgICBbaW5saW5lXT1cImlubGluZVwiXG4gICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXG4gICAgW2FkZFBhZGRpbmddPVwiYWRkUGFkZGluZ1wiXG4gICAgW3V1aWRNYXBwaW5nXT1cIidLZXknXCJcbiAgICAoZmllbGRDbGljayk9XCJvbkZpZWxkQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgIDxuZy1jb250YWluZXIgcmlnaHQtYnV0dG9ucz5cbiAgICAgICAgPHBlcC1idXR0b24gXG4gICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgW3NpemVUeXBlXT1cIidzbSdcIiBcbiAgICAgICAgICAgIFt2YWx1ZV09XCInTUFOQUdFX1BBUkFNRVRFUlMuQUREX0JVVFRPTl9USVRMRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3N0eWxlVHlwZV09XCInc3Ryb25nJ1wiIFxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9wZW5DcmVhdGVQYXJhbUZvcm0oJ2FkZCcsICcnKVwiXG4gICAgICAgID48L3BlcC1idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3BlcC1nZW5lcmljLWxpc3Q+Il19
|
|
@@ -21,4 +21,4 @@ export {};
|
|
|
21
21
|
// Disabled: boolean
|
|
22
22
|
// }
|
|
23
23
|
// export type PollResultCallback = (status: DebugFlowResult)=> void;
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlcnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9tYW5hZ2UtcGFyYW1ldGVycy9tYW5hZ2UtcGFyYW1ldGVycy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0R0FBNEc7QUFDNUcsMEZBQTBGOztBQXlEMUYsaUVBQWlFO0FBQ2pFLGNBQWM7QUFDZCx1QkFBdUI7QUFDdkIsNkJBQTZCO0FBQzdCLDZDQUE2QztBQUM3Qyw4QkFBOEI7QUFDOUIsaUNBQWlDO0FBQ2pDLFFBQVE7QUFDUixJQUFJO0FBRUosb0NBQW9DO0FBQ3BDLCtCQUErQjtBQUMvQix5Q0FBeUM7QUFDekMsSUFBSTtBQUVKLHFDQUFxQztBQUNyQyxtQkFBbUI7QUFDbkIscUJBQXFCO0FBQ3JCLCtCQUErQjtBQUMvQix3QkFBd0I7QUFDeEIsSUFBSTtBQUVKLHFFQUFxRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IEFkZG9uRGF0YVNjaGVtZSwgRmxvd1BhcmFtLCBGb3JtRGF0YVZpZXcsIE5nQ29tcG9uZW50UmVsYXRpb24gfSBmcm9tIFwiQHBlcHBlcmktYWRkb25zL3BhcGktc2RrXCI7XHJcbi8vIGltcG9ydCB7IElBZGRvbkJsb2NrTG9hZGVyRGlhbG9nT3B0aW9ucyB9IGZyb20gXCJAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9yZW1vdGUtbG9hZGVyXCI7XHJcblxyXG5pbXBvcnQgeyBEYXRhVmlld0ZpZWxkVHlwZSwgU2NoZW1lRmllbGRUeXBlIH0gZnJvbSBcIkBwZXBwZXJpLWFkZG9ucy9wYXBpLXNka1wiO1xyXG5cclxuLy8gaW1wb3J0IHsgRGVidWdGbG93UmVzdWx0LCBGbG93T2JqZWN0LCBMb2dpY0Jsb2NrIH0gZnJvbSBcInNoYXJlZFwiO1xyXG4vLyBpbXBvcnQgeyBJUGVwRHJhZ2dhYmxlSXRlbSB9IGZyb20gXCJAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXNcIjtcclxuLy8gaW1wb3J0IHsgUGVwU3R5bGVUeXBlIH0gZnJvbSBcIkBwZXBwZXJpLWFkZG9ucy9uZ3gtbGliXCI7XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIExvZ2ljQmxvY2tFZGl0b3JPcHRpb25zIGV4dGVuZHMgSUFkZG9uQmxvY2tMb2FkZXJEaWFsb2dPcHRpb25zIHtcclxuLy8gICAgIGJsb2NrOiBMb2dpY0Jsb2NrO1xyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIExvZ2ljQmxvY2tSZWxhdGlvbiBleHRlbmRzIE5nQ29tcG9uZW50UmVsYXRpb24ge1xyXG4vLyAgICAgQmxvY2tFeGVjdXRpb25SZWxhdGl2ZVVSTDogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgdHlwZSBBY3Rpb25UeXBlID0gJ0FkZCcgfCAnRWRpdCcgfCAnRGVsZXRlJyB8ICdEdXBsaWNhdGUnIHwgJ0xvZ3MnIHwgJ1Rlc3QnO1xyXG5cclxuLy8gZXhwb3J0IGludGVyZmFjZSBBY3Rpb25DbGlja2VkRXZlbnREYXRhIHtcclxuLy8gICAgIEFjdGlvblR5cGU6IEFjdGlvblR5cGUsXHJcbi8vICAgICBJdGVtS2V5Pzogc3RyaW5nXHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBjb25zdCBHTF9QQUdFX1NJWkUgPSAzMDtcclxuLy8gZXhwb3J0IGNvbnN0IEFQSV9QQUdFX1NJWkUgPSAxMDA7XHJcbi8vIGV4cG9ydCBjb25zdCBTRUxFQ1RJT05fRklFTERfUFJFRklYID0gJ1ZhbHVlU2VsZWN0aW9uVHlwZV8nO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IFNFQ09ORCA9IDEwMDA7XHJcbi8vIGV4cG9ydCBjb25zdCBNSU5VVEUgPSA2MCAqIFNFQ09ORDtcclxuXHJcbmV4cG9ydCB0eXBlIFBhcmFtZXRlckZvcm1UeXBlID0gJ2FkZCcgfCAnZWRpdCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQYXJhbWV0ZXJzQ29sdW1uIHtcclxuICAgIEtleTogc3RyaW5nOyAvLyBUaGlzIGlzIHRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuXHJcbiAgICBUaXRsZTogc3RyaW5nO1xyXG4gICAgVHlwZTogRGF0YVZpZXdGaWVsZFR5cGUsXHJcbiAgICBXaWR0aDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQYXJhbWVtZXRlciB7XHJcbiAgICBLZXk6IHN0cmluZztcclxuICAgIFR5cGU6IFNjaGVtZUZpZWxkVHlwZTtcclxuICAgIERlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gICAgRGVmYXVsdFZhbHVlOiBhbnk7XHJcbiAgICBSZWFkb25seT86IGJvb2xlYW47XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBhcmFtZXRlckZvcm1EYXRhIHtcclxuICAgIE1vZGU6IFBhcmFtZXRlckZvcm1UeXBlO1xyXG4gICAgUGFyYW1ldGVyOiBJUGFyYW1lbWV0ZXI7XHJcbiAgICBTaG93VHlwZT86IGJvb2xlYW47XHJcbiAgICBTaG93QWNjZXNzaWJpbGl0eT86IGJvb2xlYW47XHJcbiAgICBTaG93UGVyc2lzdGVuY3k/OiBib29sZWFuO1xyXG4gICAgUmVhZG9ubHk/OiBib29sZWFuO1xyXG59XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIEZsb3dEcmFnZ2FibGVJdGVtIGV4dGVuZHMgSVBlcERyYWdnYWJsZUl0ZW0ge1xyXG4vLyAgICAgZGF0YToge1xyXG4vLyAgICAgICAgIGtleTogc3RyaW5nO1xyXG4vLyAgICAgICAgIGFkZG9uVVVJRDogc3RyaW5nO1xyXG4vLyAgICAgICAgIGJsb2NrRXhlY3V0aW9uUmVsYXRpdmVVUkw6IHN0cmluZztcclxuLy8gICAgICAgICBtb2R1bGVOYW1lOiBzdHJpbmc7XHJcbi8vICAgICAgICAgY29tcG9uZW50TmFtZTogc3RyaW5nO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIEZsb3dQaWNrZXJEYXRhIHtcclxuLy8gICAgIHJ1bkZsb3dEYXRhPzogRmxvd09iamVjdFxyXG4vLyAgICAgZmllbGRzPzogQWRkb25EYXRhU2NoZW1lWydGaWVsZHMnXVxyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIFBhZ2VUaXRsZUJ1dHRvbiB7XHJcbi8vICAgICBLZXk6IHN0cmluZztcclxuLy8gICAgIFRpdGxlOiBzdHJpbmc7XHJcbi8vICAgICBTdHlsZVR5cGU6IFBlcFN0eWxlVHlwZTtcclxuLy8gICAgIERpc2FibGVkOiBib29sZWFuXHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCB0eXBlIFBvbGxSZXN1bHRDYWxsYmFjayA9IChzdGF0dXM6IERlYnVnRmxvd1Jlc3VsdCk9PiB2b2lkOyJdfQ==
|
|
@@ -10,21 +10,21 @@ import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
|
10
10
|
import { ManageParametersService } from './manage-parameters.service';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class PepManageParametersModule {
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepManageParametersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PepManageParametersModule, declarations: [ManageParametersComponent, ManageParameterComponent], imports: [CommonModule,
|
|
15
|
+
PepNgxLibModule,
|
|
16
|
+
PepDialogModule,
|
|
17
|
+
PepButtonModule,
|
|
18
|
+
PepGenericListModule,
|
|
19
|
+
PepGenericFormModule], exports: [ManageParametersComponent] }); }
|
|
20
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepManageParametersModule, providers: [ManageParametersService], imports: [CommonModule,
|
|
21
|
+
PepNgxLibModule,
|
|
22
|
+
PepDialogModule,
|
|
23
|
+
PepButtonModule,
|
|
24
|
+
PepGenericListModule,
|
|
25
|
+
PepGenericFormModule] }); }
|
|
13
26
|
}
|
|
14
|
-
|
|
15
|
-
PepManageParametersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, declarations: [ManageParametersComponent, ManageParameterComponent], imports: [CommonModule,
|
|
16
|
-
PepNgxLibModule,
|
|
17
|
-
PepDialogModule,
|
|
18
|
-
PepButtonModule,
|
|
19
|
-
PepGenericListModule,
|
|
20
|
-
PepGenericFormModule], exports: [ManageParametersComponent] });
|
|
21
|
-
PepManageParametersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, providers: [ManageParametersService], imports: [CommonModule,
|
|
22
|
-
PepNgxLibModule,
|
|
23
|
-
PepDialogModule,
|
|
24
|
-
PepButtonModule,
|
|
25
|
-
PepGenericListModule,
|
|
26
|
-
PepGenericFormModule] });
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepManageParametersModule, decorators: [{
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepManageParametersModule, decorators: [{
|
|
28
28
|
type: NgModule,
|
|
29
29
|
args: [{
|
|
30
30
|
declarations: [
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
42
42
|
exports: [ManageParametersComponent],
|
|
43
43
|
}]
|
|
44
44
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbWFuYWdlLXBhcmFtZXRlcnMvbWFuYWdlLXBhcmFtZXRlcnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWlCdEUsTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsaUJBYjlCLHlCQUF5QixFQUFFLHdCQUF3QixhQUduRCxZQUFZO1lBQ1osZUFBZTtZQUNmLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLG9CQUFvQixhQUdkLHlCQUF5QjtnSEFFMUIseUJBQXlCLGFBSHZCLENBQUMsdUJBQXVCLENBQUMsWUFQaEMsWUFBWTtZQUNaLGVBQWU7WUFDZixlQUFlO1lBQ2YsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixvQkFBb0I7OzRGQUtmLHlCQUF5QjtrQkFmckMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YseUJBQXlCLEVBQUUsd0JBQXdCO3FCQUN0RDtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGVwTmd4TGliTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgTWFuYWdlUGFyYW1ldGVyc0NvbXBvbmVudCB9IGZyb20gJy4vbWFuYWdlLXBhcmFtZXRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IE1hbmFnZVBhcmFtZXRlckNvbXBvbmVudCB9IGZyb20gJy4vbWFuYWdlLXBhcmFtZXRlci9tYW5hZ2UtcGFyYW1ldGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBEaWFsb2dNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuaW1wb3J0IHsgUGVwR2VuZXJpY0xpc3RNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0JztcbmltcG9ydCB7IFBlcEdlbmVyaWNGb3JtTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtZm9ybSc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuL21hbmFnZS1wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBNYW5hZ2VQYXJhbWV0ZXJzQ29tcG9uZW50LCBNYW5hZ2VQYXJhbWV0ZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQZXBOZ3hMaWJNb2R1bGUsXG4gICAgICAgIFBlcERpYWxvZ01vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBHZW5lcmljTGlzdE1vZHVsZSxcbiAgICAgICAgUGVwR2VuZXJpY0Zvcm1Nb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW01hbmFnZVBhcmFtZXRlcnNTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbTWFuYWdlUGFyYW1ldGVyc0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcE1hbmFnZVBhcmFtZXRlcnNNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { SchemeFieldTypes } from "@pepperi-addons/papi-sdk";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
export class ManageParametersService {
|
|
6
|
+
constructor(translate) {
|
|
7
|
+
this.translate = translate;
|
|
8
|
+
}
|
|
9
|
+
getAvailableTypes() {
|
|
10
|
+
const types = SchemeFieldTypes.filter(type => ['Array', 'DateTime', 'Resource', 'ContainedResource', 'DynamicResource', 'ContainedDynamicResource', 'MultipleStringValues'].includes(type) === false);
|
|
11
|
+
return types.map(type => {
|
|
12
|
+
return {
|
|
13
|
+
Key: type,
|
|
14
|
+
Value: type
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
convertParamsTypeToDVType(paramType) {
|
|
19
|
+
let res = 'TextBox';
|
|
20
|
+
switch (paramType) {
|
|
21
|
+
case 'Bool': {
|
|
22
|
+
res = 'Boolean';
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case 'Integer': {
|
|
26
|
+
res = 'NumberInteger';
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
case 'Double': {
|
|
30
|
+
res = 'NumberReal';
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return res;
|
|
35
|
+
}
|
|
36
|
+
getDataViewField(fieldId, type, title, mandatory, readOnly, optionalValues = undefined, additionalProps = undefined, layout = undefined) {
|
|
37
|
+
const res = {
|
|
38
|
+
FieldID: fieldId,
|
|
39
|
+
Type: type,
|
|
40
|
+
Title: title,
|
|
41
|
+
Mandatory: mandatory,
|
|
42
|
+
ReadOnly: readOnly
|
|
43
|
+
};
|
|
44
|
+
if (optionalValues) {
|
|
45
|
+
res['OptionalValues'] = optionalValues;
|
|
46
|
+
}
|
|
47
|
+
if (additionalProps) {
|
|
48
|
+
res['AdditionalProps'] = additionalProps;
|
|
49
|
+
}
|
|
50
|
+
if (layout) {
|
|
51
|
+
res['Layout'] = layout;
|
|
52
|
+
}
|
|
53
|
+
return res;
|
|
54
|
+
}
|
|
55
|
+
getParametersListDataView(parametersColumns, showType, showAccessibility, showPersistency) {
|
|
56
|
+
let fields;
|
|
57
|
+
let columns;
|
|
58
|
+
// If columns are defined, use them. Otherwise, use the default columns.
|
|
59
|
+
if (parametersColumns.length > 0) {
|
|
60
|
+
fields = parametersColumns.map(column => {
|
|
61
|
+
return this.getDataViewField(column.Key, column.Type, column.Title, false, true, [], {});
|
|
62
|
+
});
|
|
63
|
+
columns = parametersColumns.map(column => {
|
|
64
|
+
return { Width: column.Width };
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Add Key and Description fields.
|
|
69
|
+
fields = [
|
|
70
|
+
this.getDataViewField('Key', 'Link', this.translate.instant('MANAGE_PARAMETERS.KEY_TITLE'), false, true),
|
|
71
|
+
this.getDataViewField('Description', 'TextArea', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, true),
|
|
72
|
+
];
|
|
73
|
+
// Add Type field only if showType is true.
|
|
74
|
+
if (showType) {
|
|
75
|
+
fields.push(this.getDataViewField('Type', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.TYPE_TITLE'), false, true));
|
|
76
|
+
}
|
|
77
|
+
// Add DefaultValue field.
|
|
78
|
+
fields.push(this.getDataViewField('DefaultValue', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.DEFAULT_VALUE_TITLE'), false, true));
|
|
79
|
+
// Add Internal field.
|
|
80
|
+
if (showAccessibility) {
|
|
81
|
+
fields.push(this.getDataViewField('Internal', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_TITLE'), false, true));
|
|
82
|
+
}
|
|
83
|
+
// Add Internal field.
|
|
84
|
+
if (showPersistency) {
|
|
85
|
+
fields.push(this.getDataViewField('Persistency', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.PERSISTENCY_TITLE'), false, true));
|
|
86
|
+
}
|
|
87
|
+
columns = fields.map(field => {
|
|
88
|
+
return { Width: 100 / fields.length };
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
Context: {
|
|
93
|
+
Name: '',
|
|
94
|
+
Profile: { InternalID: 0 },
|
|
95
|
+
ScreenSize: 'Landscape'
|
|
96
|
+
},
|
|
97
|
+
Type: 'Grid',
|
|
98
|
+
Title: '',
|
|
99
|
+
Fields: fields,
|
|
100
|
+
Columns: columns,
|
|
101
|
+
FrozenColumnsCount: 0,
|
|
102
|
+
MinimumColumnWidth: 0
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
getParameterFormDataView(formMode, paramType, showType, showAccessibility, showPersistency) {
|
|
106
|
+
const fieldTypes = this.getAvailableTypes();
|
|
107
|
+
const noEmptyOption = { emptyOption: false };
|
|
108
|
+
// Add Key and Description fields.
|
|
109
|
+
const fields = [
|
|
110
|
+
this.getDataViewField('Key', 'TextBox', this.translate.instant('MANAGE_PARAMETERS.KEY_TITLE'), formMode === 'add', formMode != 'add', [], { regex: '^([a-zA-Z0-9-_])*$', regexError: this.translate.instant('MANAGE_PARAMETERS.KEY_REGEX_ERROR') }),
|
|
111
|
+
this.getDataViewField('Description', 'TextArea', this.translate.instant('MANAGE_PARAMETERS.DESCRIPTION_TITLE'), false, false, [], {}, { Size: { Width: 1, Height: 2 } })
|
|
112
|
+
];
|
|
113
|
+
// Add Type field only if showType is true.
|
|
114
|
+
if (showType) {
|
|
115
|
+
this.getDataViewField('Type', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.TYPE_TITLE'), false, formMode != 'add', fieldTypes, noEmptyOption);
|
|
116
|
+
}
|
|
117
|
+
// Add DefaultValue field.
|
|
118
|
+
fields.push(this.getDataViewField('DefaultValue', this.convertParamsTypeToDVType(paramType), this.translate.instant('MANAGE_PARAMETERS.DEFAULT_VALUE_TITLE'), false, false, [], {}));
|
|
119
|
+
// Add Internal and Accessibility_Description fields.
|
|
120
|
+
if (showAccessibility) {
|
|
121
|
+
const accessibilityDescAdditionalProps = { renderTitle: false, renderEnlargeButton: false };
|
|
122
|
+
const accessibilityDescLayout = { Size: { Height: 0, Width: 1 } };
|
|
123
|
+
fields.push(this.getDataViewField('Accessibility_Description', 'RichTextHTML', this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION'), false, true, [], accessibilityDescAdditionalProps, accessibilityDescLayout));
|
|
124
|
+
const accessibilityOptionalValues = [{ Key: 'Internal', Value: 'Internal' }, { Key: 'External', Value: 'External' }];
|
|
125
|
+
fields.push(this.getDataViewField('Accessibility', 'ComboBox', this.translate.instant('MANAGE_PARAMETERS.ACCESSIBILITY_TITLE'), false, false, accessibilityOptionalValues, noEmptyOption));
|
|
126
|
+
}
|
|
127
|
+
if (showPersistency) {
|
|
128
|
+
fields.push(this.getDataViewField('Persistency', 'Boolean', this.translate.instant('MANAGE_PARAMETERS.PERSISTENCY_TITLE'), false, false));
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
Type: 'Form',
|
|
132
|
+
Fields: fields,
|
|
133
|
+
Context: {
|
|
134
|
+
Name: '',
|
|
135
|
+
Profile: {},
|
|
136
|
+
ScreenSize: 'Tablet'
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParametersService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
141
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParametersService, providedIn: 'root' }); }
|
|
142
|
+
}
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManageParametersService, decorators: [{
|
|
144
|
+
type: Injectable,
|
|
145
|
+
args: [{
|
|
146
|
+
providedIn: 'root'
|
|
147
|
+
}]
|
|
148
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL21hbmFnZS1wYXJhbWV0ZXJzL21hbmFnZS1wYXJhbWV0ZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQW9ELGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQU05RyxNQUFNLE9BQU8sdUJBQXVCO0lBRWhDLFlBQXFCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBRWhELENBQUM7SUFFTyxpQkFBaUI7UUFDckIsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUN0TSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsT0FBTztnQkFDSCxHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsSUFBSTthQUNkLENBQUE7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxTQUEwQjtRQUN4RCxJQUFJLEdBQUcsR0FBc0IsU0FBUyxDQUFDO1FBQ3ZDLFFBQVEsU0FBUyxFQUFFO1lBQ2YsS0FBSyxNQUFNLENBQUMsQ0FBQztnQkFDVCxHQUFHLEdBQUcsU0FBUyxDQUFDO2dCQUNoQixNQUFNO2FBQ1Q7WUFDRCxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUNaLEdBQUcsR0FBRyxlQUFlLENBQUM7Z0JBQ3RC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Z0JBQ1osVUFBVSxFQUFFLFFBQVE7YUFDdkI7U0FDSixDQUFDO0lBQ04sQ0FBQzsrR0E1S1EsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGckIsTUFBTTs7NEZBRVIsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBQyxNQUFNO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBJUGVwR2VuZXJpY0Zvcm1EYXRhVmlldyB9IGZyb20gXCJAcGVwcGVyaS1hZGRvbnMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1mb3JtXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZVBhaXIgfSBmcm9tIFwiQHBlcHBlcmktYWRkb25zL25neC1saWJcIjtcbmltcG9ydCB7IERhdGFWaWV3RmllbGRUeXBlLCBHcmlkRGF0YVZpZXcsIFNjaGVtZUZpZWxkVHlwZSwgU2NoZW1lRmllbGRUeXBlcyB9IGZyb20gXCJAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGtcIjtcbmltcG9ydCB7IElQYXJhbWV0ZXJzQ29sdW1uLCBQYXJhbWV0ZXJGb3JtVHlwZSB9IGZyb20gXCIuL21hbmFnZS1wYXJhbWV0ZXJzLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOidyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VQYXJhbWV0ZXJzU2VydmljZSB7XG4gICAgXG4gICAgY29uc3RydWN0b3IgKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEF2YWlsYWJsZVR5cGVzKCk6IEtleVZhbHVlUGFpcjxzdHJpbmc+W10ge1xuICAgICAgICBjb25zdCB0eXBlcyA9IFNjaGVtZUZpZWxkVHlwZXMuZmlsdGVyKHR5cGUgPT4gWydBcnJheScsICdEYXRlVGltZScsICdSZXNvdXJjZScsICdDb250YWluZWRSZXNvdXJjZScsICdEeW5hbWljUmVzb3VyY2UnLCAnQ29udGFpbmVkRHluYW1pY1Jlc291cmNlJywgJ011bHRpcGxlU3RyaW5nVmFsdWVzJ10uaW5jbHVkZXModHlwZSkgPT09IGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHR5cGVzLm1hcCh0eXBlID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgS2V5OiB0eXBlLFxuICAgICAgICAgICAgICAgIFZhbHVlOiB0eXBlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0UGFyYW1zVHlwZVRvRFZUeXBlKHBhcmFtVHlwZTogU2NoZW1lRmllbGRUeXBlKTogRGF0YVZpZXdGaWVsZFR5cGUge1xuICAgICAgICBsZXQgcmVzOiBEYXRhVmlld0ZpZWxkVHlwZSA9ICdUZXh0Qm94JztcbiAgICAgICAgc3dpdGNoIChwYXJhbVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Jvb2wnOiB7XG4gICAgICAgICAgICAgICAgcmVzID0gJ0Jvb2xlYW4nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnSW50ZWdlcic6IHtcbiAgICAgICAgICAgICAgICByZXMgPSAnTnVtYmVySW50ZWdlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdEb3VibGUnOiB7XG4gICAgICAgICAgICAgICAgcmVzID0gJ051bWJlclJlYWwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRhVmlld0ZpZWxkKGZpZWxkSWQ6IHN0cmluZywgdHlwZTogRGF0YVZpZXdGaWVsZFR5cGUsIHRpdGxlOiBzdHJpbmcsIG1hbmRhdG9yeTogYm9vbGVhbiwgcmVhZE9ubHk6IGJvb2xlYW4sIFxuICAgICAgICBvcHRpb25hbFZhbHVlczogYW55W10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsIGFkZGl0aW9uYWxQcm9wczogYW55ID0gdW5kZWZpbmVkLCBsYXlvdXQ6IGFueSA9IHVuZGVmaW5lZCk6IGFueSB7XG5cbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSB7XG4gICAgICAgICAgICBGaWVsZElEOiBmaWVsZElkLFxuICAgICAgICAgICAgVHlwZTogdHlwZSxcbiAgICAgICAgICAgIFRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIE1hbmRhdG9yeTogbWFuZGF0b3J5LFxuICAgICAgICAgICAgUmVhZE9ubHk6IHJlYWRPbmx5XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9uYWxWYWx1ZXMpIHtcbiAgICAgICAgICAgIHJlc1snT3B0aW9uYWxWYWx1ZXMnXSA9IG9wdGlvbmFsVmFsdWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFkZGl0aW9uYWxQcm9wcykge1xuICAgICAgICAgICAgcmVzWydBZGRpdGlvbmFsUHJvcHMnXSA9IGFkZGl0aW9uYWxQcm9wcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXlvdXQpIHtcbiAgICAgICAgICAgIHJlc1snTGF5b3V0J10gPSBsYXlvdXQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGdldFBhcmFtZXRlcnNMaXN0RGF0YVZpZXcocGFyYW1ldGVyc0NvbHVtbnM6IElQYXJhbWV0ZXJzQ29sdW1uW10sIHNob3dUeXBlOiBib29sZWFuLCBzaG93QWNjZXNzaWJpbGl0eTogYm9vbGVhbiwgc2hvd1BlcnNpc3RlbmN5OiBib29sZWFuKTogR3JpZERhdGFWaWV3IHtcbiAgICAgICAgbGV0IGZpZWxkcztcbiAgICAgICAgbGV0IGNvbHVtbnM7XG5cbiAgICAgICAgLy8gSWYgY29sdW1ucyBhcmUgZGVmaW5lZCwgdXNlIHRoZW0uIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbnMuXG4gICAgICAgIGlmIChwYXJhbWV0ZXJzQ29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmaWVsZHMgPSBwYXJhbWV0ZXJzQ29sdW1ucy5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhVmlld0ZpZWxkKGNvbHVtbi5LZXksIGNvbHVtbi5UeXBlLCBjb2x1bW4uVGl0bGUsIGZhbHNlLCB0cnVlLCBbXSwge30pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbHVtbnMgPSBwYXJhbWV0ZXJzQ29sdW1ucy5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBXaWR0aDogY29sdW1uLldpZHRoIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQWRkIEtleSBhbmQgRGVzY3JpcHRpb24gZmllbGRzLlxuICAgICAgICAgICAgZmllbGRzID0gW1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnS2V5JywgJ0xpbmsnLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5LRVlfVElUTEUnKSwgZmFsc2UsIHRydWUpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnRGVzY3JpcHRpb24nLCAnVGV4dEFyZWEnLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5ERVNDUklQVElPTl9USVRMRScpLCBmYWxzZSwgdHJ1ZSksXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAvLyBBZGQgVHlwZSBmaWVsZCBvbmx5IGlmIHNob3dUeXBlIGlzIHRydWUuXG4gICAgICAgICAgICBpZiAoc2hvd1R5cGUpIHtcbiAgICAgICAgICAgICAgICBmaWVsZHMucHVzaCh0aGlzLmdldERhdGFWaWV3RmllbGQoJ1R5cGUnLCAnVGV4dEJveCcsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ01BTkFHRV9QQVJBTUVURVJTLlRZUEVfVElUTEUnKSwgZmFsc2UsIHRydWUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQWRkIERlZmF1bHRWYWx1ZSBmaWVsZC5cbiAgICAgICAgICAgIGZpZWxkcy5wdXNoKHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnRGVmYXVsdFZhbHVlJywgJ1RleHRCb3gnLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5ERUZBVUxUX1ZBTFVFX1RJVExFJyksIGZhbHNlLCB0cnVlKSk7XG5cbiAgICAgICAgICAgIC8vIEFkZCBJbnRlcm5hbCBmaWVsZC5cbiAgICAgICAgICAgIGlmIChzaG93QWNjZXNzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIGZpZWxkcy5wdXNoKHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnSW50ZXJuYWwnLCAnQm9vbGVhbicsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ01BTkFHRV9QQVJBTUVURVJTLklOVEVSTkFMX1RJVExFJyksIGZhbHNlLCB0cnVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFkZCBJbnRlcm5hbCBmaWVsZC5cbiAgICAgICAgICAgIGlmIChzaG93UGVyc2lzdGVuY3kpIHtcbiAgICAgICAgICAgICAgICBmaWVsZHMucHVzaCh0aGlzLmdldERhdGFWaWV3RmllbGQoJ1BlcnNpc3RlbmN5JywgJ0Jvb2xlYW4nLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5QRVJTSVNURU5DWV9USVRMRScpLCBmYWxzZSwgdHJ1ZSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb2x1bW5zID0gZmllbGRzLm1hcChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgV2lkdGg6IDEwMCAvIGZpZWxkcy5sZW5ndGggfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQ29udGV4dDoge1xuICAgICAgICAgICAgICAgIE5hbWU6ICcnLFxuICAgICAgICAgICAgICAgIFByb2ZpbGU6IHsgSW50ZXJuYWxJRDogMCB9LFxuICAgICAgICAgICAgICAgIFNjcmVlblNpemU6ICdMYW5kc2NhcGUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgVHlwZTogJ0dyaWQnLFxuICAgICAgICAgICAgVGl0bGU6ICcnLFxuICAgICAgICAgICAgRmllbGRzOiBmaWVsZHMsXG4gICAgICAgICAgICBDb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgICAgICAgRnJvemVuQ29sdW1uc0NvdW50OiAwLFxuICAgICAgICAgICAgTWluaW11bUNvbHVtbldpZHRoOiAwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQYXJhbWV0ZXJGb3JtRGF0YVZpZXcoZm9ybU1vZGU6IFBhcmFtZXRlckZvcm1UeXBlLCBwYXJhbVR5cGU6IFNjaGVtZUZpZWxkVHlwZSwgc2hvd1R5cGU6IGJvb2xlYW4sIHNob3dBY2Nlc3NpYmlsaXR5OiBib29sZWFuLCBzaG93UGVyc2lzdGVuY3k6IGJvb2xlYW4pOiBJUGVwR2VuZXJpY0Zvcm1EYXRhVmlldyB7XG4gICAgICAgIGNvbnN0IGZpZWxkVHlwZXMgPSB0aGlzLmdldEF2YWlsYWJsZVR5cGVzKCk7XG4gICAgICAgIGNvbnN0IG5vRW1wdHlPcHRpb24gPSB7IGVtcHR5T3B0aW9uOiBmYWxzZSB9O1xuXG4gICAgICAgIC8vIEFkZCBLZXkgYW5kIERlc2NyaXB0aW9uIGZpZWxkcy5cbiAgICAgICAgY29uc3QgZmllbGRzID0gW1xuICAgICAgICAgICAgdGhpcy5nZXREYXRhVmlld0ZpZWxkKCdLZXknLCAnVGV4dEJveCcsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ01BTkFHRV9QQVJBTUVURVJTLktFWV9USVRMRScpLCBmb3JtTW9kZSA9PT0gJ2FkZCcsIGZvcm1Nb2RlICE9ICdhZGQnLCBbXSwgXG4gICAgICAgICAgICAgICAgeyByZWdleDogJ14oW2EtekEtWjAtOS1fXSkqJCcsIHJlZ2V4RXJyb3I6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ01BTkFHRV9QQVJBTUVURVJTLktFWV9SRUdFWF9FUlJPUicpfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnRGVzY3JpcHRpb24nLCAnVGV4dEFyZWEnLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5ERVNDUklQVElPTl9USVRMRScpLCBmYWxzZSwgZmFsc2UsIFtdLCB7fSwgXG4gICAgICAgICAgICAgICAgeyBTaXplOiB7IFdpZHRoOjEsIEhlaWdodDoyIH0gfVxuICAgICAgICAgICAgKVxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIEFkZCBUeXBlIGZpZWxkIG9ubHkgaWYgc2hvd1R5cGUgaXMgdHJ1ZS5cbiAgICAgICAgaWYgKHNob3dUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmdldERhdGFWaWV3RmllbGQoJ1R5cGUnLCAnQ29tYm9Cb3gnLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5UWVBFX1RJVExFJyksIGZhbHNlLCBmb3JtTW9kZSAhPSAnYWRkJywgZmllbGRUeXBlcywgbm9FbXB0eU9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEFkZCBEZWZhdWx0VmFsdWUgZmllbGQuXG4gICAgICAgIGZpZWxkcy5wdXNoKHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnRGVmYXVsdFZhbHVlJywgdGhpcy5jb252ZXJ0UGFyYW1zVHlwZVRvRFZUeXBlKHBhcmFtVHlwZSksIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ01BTkFHRV9QQVJBTUVURVJTLkRFRkFVTFRfVkFMVUVfVElUTEUnKSwgXG4gICAgICAgICAgICBmYWxzZSwgZmFsc2UsIFtdLCB7fSkpXG4gICAgICAgICAgICBcbiAgICAgICAgLy8gQWRkIEludGVybmFsIGFuZCBBY2Nlc3NpYmlsaXR5X0Rlc2NyaXB0aW9uIGZpZWxkcy5cbiAgICAgICAgaWYgKHNob3dBY2Nlc3NpYmlsaXR5KSB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NpYmlsaXR5RGVzY0FkZGl0aW9uYWxQcm9wcyA9IHsgcmVuZGVyVGl0bGU6IGZhbHNlLCByZW5kZXJFbmxhcmdlQnV0dG9uOiBmYWxzZSB9O1xuICAgICAgICAgICAgY29uc3QgYWNjZXNzaWJpbGl0eURlc2NMYXlvdXQgPSB7IFNpemU6IHsgSGVpZ2h0OiAwLCBXaWR0aDogMSB9IH07XG5cbiAgICAgICAgICAgIGZpZWxkcy5wdXNoKHRoaXMuZ2V0RGF0YVZpZXdGaWVsZCgnQWNjZXNzaWJpbGl0eV9EZXNjcmlwdGlvbicsICdSaWNoVGV4dEhUTUwnLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5JTlRFUk5BTF9ERVNDUklQVElPTicpLCBcbiAgICAgICAgICAgIGZhbHNlLCB0cnVlLCBbXSwgYWNjZXNzaWJpbGl0eURlc2NBZGRpdGlvbmFsUHJvcHMsIGFjY2Vzc2liaWxpdHlEZXNjTGF5b3V0KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc2liaWxpdHlPcHRpb25hbFZhbHVlcyA9IFt7IEtleTogJ0ludGVybmFsJywgVmFsdWU6ICdJbnRlcm5hbCcgfSwgeyBLZXk6ICdFeHRlcm5hbCcsIFZhbHVlOiAnRXh0ZXJuYWwnIH1dO1xuICAgICAgICAgICAgZmllbGRzLnB1c2godGhpcy5nZXREYXRhVmlld0ZpZWxkKCdBY2Nlc3NpYmlsaXR5JywgJ0NvbWJvQm94JywgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTUFOQUdFX1BBUkFNRVRFUlMuQUNDRVNTSUJJTElUWV9USVRMRScpLCBcbiAgICAgICAgICAgICAgICBmYWxzZSwgZmFsc2UsIGFjY2Vzc2liaWxpdHlPcHRpb25hbFZhbHVlcywgbm9FbXB0eU9wdGlvbilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hvd1BlcnNpc3RlbmN5KSB7XG4gICAgICAgICAgICBmaWVsZHMucHVzaCh0aGlzLmdldERhdGFWaWV3RmllbGQoJ1BlcnNpc3RlbmN5JywgJ0Jvb2xlYW4nLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5QRVJTSVNURU5DWV9USVRMRScpLCBcbiAgICAgICAgICAgICAgICBmYWxzZSwgZmFsc2UpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFR5cGU6ICdGb3JtJyxcbiAgICAgICAgICAgIEZpZWxkczogZmllbGRzLFxuICAgICAgICAgICAgQ29udGV4dDoge1xuICAgICAgICAgICAgICAgIE5hbWU6ICcnLFxuICAgICAgICAgICAgICAgIFByb2ZpbGU6IHsgfSxcbiAgICAgICAgICAgICAgICBTY3JlZW5TaXplOiAnVGFibGV0J1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn0iXX0=
|