@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
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../layout-builder-internal.service";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/cdk/drag-drop";
|
|
7
|
-
import * as i4 from "@pepperi-addons/ngx-lib/button";
|
|
8
|
-
import * as i5 from "@pepperi-addons/ngx-lib/draggable-items";
|
|
9
|
-
export class SectionBlockComponent extends BaseDestroyerDirective {
|
|
10
|
-
constructor(layoutBuilderInternalService) {
|
|
11
|
-
super();
|
|
12
|
-
this.layoutBuilderInternalService = layoutBuilderInternalService;
|
|
13
|
-
this.sectionKey = '';
|
|
14
|
-
this.sectionHeight = '';
|
|
15
|
-
this.isMainEditorState = false;
|
|
16
|
-
this.editable = false;
|
|
17
|
-
this.active = false;
|
|
18
|
-
this.dragExited = new EventEmitter();
|
|
19
|
-
this.dragEntered = new EventEmitter();
|
|
20
|
-
this.hideForCurrentScreenType = false;
|
|
21
|
-
// protected remoteLoaderOptions: PepRemoteLoaderOptions;
|
|
22
|
-
// protected availableBlock: IPepDraggableItem | undefined;
|
|
23
|
-
this.blockTitle = '';
|
|
24
|
-
}
|
|
25
|
-
set blockContainer(value) {
|
|
26
|
-
this._blockContainer = value;
|
|
27
|
-
// if (this._blockContainer) {
|
|
28
|
-
// this.availableBlock = this.layoutBuilderInternalService.availableBlocksForDragMap?.get(this._blockContainer?.DraggableItemKey);
|
|
29
|
-
// }
|
|
30
|
-
this.setIfHideForCurrentScreenType();
|
|
31
|
-
}
|
|
32
|
-
get blockContainer() {
|
|
33
|
-
return this._blockContainer;
|
|
34
|
-
}
|
|
35
|
-
set screenType(value) {
|
|
36
|
-
this._screenType = value;
|
|
37
|
-
this.setIfHideForCurrentScreenType();
|
|
38
|
-
}
|
|
39
|
-
get screenType() {
|
|
40
|
-
return this._screenType;
|
|
41
|
-
}
|
|
42
|
-
setIfHideForCurrentScreenType() {
|
|
43
|
-
this.hideForCurrentScreenType = this.blockContainer ?
|
|
44
|
-
this.layoutBuilderInternalService.getIsHidden(this.blockContainer.Hide, this.screenType) : false;
|
|
45
|
-
}
|
|
46
|
-
ngOnInit() {
|
|
47
|
-
this.blockTitle = this.layoutBuilderInternalService.getBlockTitle(this.blockContainer?.BlockKey || '');
|
|
48
|
-
//
|
|
49
|
-
// this.layoutBuilderInternalService.availableBlocksForDragMapChange$.pipe(this.getDestroyer()).subscribe((availableBlocksForDragMap) => {
|
|
50
|
-
// if (availableBlocksForDragMap && this.blockContainer) {
|
|
51
|
-
// this.availableBlock = (availableBlocksForDragMap as ReadonlyMap<string, IPepDraggableItem>).get(this.blockContainer.DraggableItemKey);
|
|
52
|
-
// }
|
|
53
|
-
// });
|
|
54
|
-
}
|
|
55
|
-
onEditBlockClick() {
|
|
56
|
-
if (this.blockContainer?.BlockKey) {
|
|
57
|
-
this.layoutBuilderInternalService.navigateToEditor('block', this.blockContainer.BlockKey, this.blockTitle);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
onRemoveBlockClick() {
|
|
61
|
-
if (this.blockContainer?.BlockKey) {
|
|
62
|
-
this.layoutBuilderInternalService.removeBlockFromSection(this.blockContainer.BlockKey);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
onHideBlockChange(hideIn) {
|
|
66
|
-
if (this.blockContainer?.BlockKey) {
|
|
67
|
-
this.layoutBuilderInternalService.hideBlock(this.sectionKey, this.blockContainer.BlockKey, hideIn);
|
|
68
|
-
this.setIfHideForCurrentScreenType();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// onBlockLoad(event: any) {
|
|
72
|
-
// this.layoutBuilderService.updateBlockLoaded(this.blockContainer.BlockKey);
|
|
73
|
-
// }
|
|
74
|
-
onDragStart(event) {
|
|
75
|
-
this.layoutBuilderInternalService.onBlockDragStart(event);
|
|
76
|
-
}
|
|
77
|
-
onDragEnd(event) {
|
|
78
|
-
this.layoutBuilderInternalService.onBlockDragEnd(event);
|
|
79
|
-
}
|
|
80
|
-
onDragExited(event) {
|
|
81
|
-
this.dragExited.emit(event);
|
|
82
|
-
}
|
|
83
|
-
onDragEntered(event) {
|
|
84
|
-
this.dragEntered.emit(event);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
SectionBlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, deps: [{ token: i1.LayoutBuilderInternalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
-
SectionBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionBlockComponent, selector: "section-block", inputs: { blockTemplate: "blockTemplate", sectionKey: "sectionKey", sectionHeight: "sectionHeight", isMainEditorState: "isMainEditorState", editable: "editable", active: "active", blockContainer: "blockContainer", screenType: "screenType" }, outputs: { dragExited: "dragExited", dragEntered: "dragEntered" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"blockTitle\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey }\">\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { 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.DraggableItemComponent, selector: "pep-draggable-item", inputs: ["title", "titlePrefix", "titleClassNames", "data", "disabled", "shadow", "styleType", "toggleContent", "isToggleContentOpen", "actionsMenu", "menuStyleType"], outputs: ["contentToggle", "actionsMenuItemClick"] }] });
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionBlockComponent, decorators: [{
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{ selector: 'section-block', template: "<div *ngIf=\"blockContainer?.BlockKey && (editable || !hideForCurrentScreenType)\" \n class=\"section-block-container\"\n [ngClass]=\"{ 'editable-state': editable, 'block-hidden-state': hideForCurrentScreenType, 'active-block': active }\"\n cdkDrag [cdkDragData]=\"blockContainer\" [cdkDragDisabled]=\"!editable || !isMainEditorState\" \n (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\"\n (cdkDragExited)=\"onDragExited($event)\" (cdkDragEntered)=\"onDragEntered($event)\">\n \n <pep-draggable-item *ngIf=\"editable && isMainEditorState\" cdkDragHandle style=\"cursor: grab;\"\n class=\"block-toolbar\" [title]=\"blockTitle\" >\n <ng-container pep-actions>\n <pep-button classNames=\"caution\" sizeType=\"xs\" iconName=\"system_bin\" (buttonClick)=\"onRemoveBlockClick();\"></pep-button>\n <!-- <hide-in [hideIn]=\"blockContainer.Hide\" (hideInChange)=\"onHideBlockChange($event)\"></hide-in> -->\n <pep-button sizeType=\"xs\" iconName=\"system_edit\" (buttonClick)=\"onEditBlockClick();\"></pep-button>\n </ng-container>\n </pep-draggable-item>\n <div class=\"block-template-wrapper\" [ngStyle]=\"{ 'overflow': (sectionHeight === 'unset' ? 'unset' : 'auto') }\">\n <div *ngIf=\"blockTemplate\" class=\"block-template\">\n <ng-container *ngTemplateOutlet=\"blockTemplate; context: { blockKey: blockContainer?.BlockKey }\">\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [".section-block-container{height:100%;width:100%}.section-block-container.editable-state:not(.active-block) .block-template-wrapper .block-template{pointer-events:none;opacity:.5}.section-block-container.editable-state.cdk-drag-preview .block-template-wrapper,.section-block-container.editable-state.cdk-drag-placeholder .block-toolbar{opacity:0}.section-block-container.editable-state .block-toolbar{position:absolute;top:50%;left:50%;width:95%;max-width:240px;transform:translate(-50%,-50%);z-index:3}.section-block-container.editable-state .block-toolbar:hover{z-index:12!important}.section-block-container .block-template-wrapper{height:100%;position:relative}.section-block-container .block-template-wrapper .block-template{display:block;height:100%;width:100%}\n", ".section-block-container.editable-state.block-hidden-state:not(.active-block){background:repeating-linear-gradient(45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem),repeating-linear-gradient(-45deg,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0),hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),0) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .65rem,hsla(var(--pep-color-system-caution-h, 360),var(--pep-color-system-caution-s, 100%),var(--pep-color-system-caution-l, 45%),.32) .8rem)}\n"] }]
|
|
92
|
-
}], ctorParameters: function () { return [{ type: i1.LayoutBuilderInternalService }]; }, propDecorators: { blockTemplate: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], sectionKey: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], sectionHeight: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], isMainEditorState: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], editable: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], active: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], blockContainer: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], screenType: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], dragExited: [{
|
|
109
|
-
type: Output
|
|
110
|
-
}], dragEntered: [{
|
|
111
|
-
type: Output
|
|
112
|
-
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uLWJsb2NrL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1ibG9jay9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSXZHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBV2pFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxzQkFBc0I7SUF5QzdELFlBQ1ksNEJBQTBEO1FBRWxFLEtBQUssRUFBRSxDQUFDO1FBRkEsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQXZDN0QsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBMEJkLGVBQVUsR0FBOEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCxnQkFBVyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdELDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUMzQyx5REFBeUQ7UUFDekQsMkRBQTJEO1FBQ2pELGVBQVUsR0FBRyxFQUFFLENBQUM7SUFNMUIsQ0FBQztJQW5DRCxJQUNJLGNBQWMsQ0FBQyxLQUEyQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3Qiw4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QkFJRixjQUFjO3NCQURqQixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnRW5kLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBJUGVwRHJhZ2dhYmxlSXRlbSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RyYWdnYWJsZS1pdGVtcyc7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcmVtb3RlLWxvYWRlcic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbi1ibG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tYmxvY2suY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLWJsb2NrLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkJsb2NrQ29tcG9uZW50IGV4dGVuZHMgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBzZWN0aW9uS2V5ID0gJyc7XG4gICAgQElucHV0KCkgc2VjdGlvbkhlaWdodCA9ICcnO1xuICAgIEBJbnB1dCgpIGlzTWFpbkVkaXRvclN0YXRlID0gZmFsc2U7XG4gICAgQElucHV0KCkgZWRpdGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcbiAgICBcbiAgICBwcml2YXRlIF9ibG9ja0NvbnRhaW5lcjogSVBlcExheW91dEJsb2NrQ29udGFpbmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJsb2NrQ29udGFpbmVyKHZhbHVlOiBJUGVwTGF5b3V0QmxvY2tDb250YWluZXIgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fYmxvY2tDb250YWluZXIgPSB2YWx1ZTtcbiAgICAgICAgLy8gaWYgKHRoaXMuX2Jsb2NrQ29udGFpbmVyKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmF2YWlsYWJsZUJsb2NrID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXA/LmdldCh0aGlzLl9ibG9ja0NvbnRhaW5lcj8uRHJhZ2dhYmxlSXRlbUtleSk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgZ2V0IGJsb2NrQ29udGFpbmVyKCk6IElQZXBMYXlvdXRCbG9ja0NvbnRhaW5lciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibG9ja0NvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JlZW5UeXBlITogRGF0YVZpZXdTY3JlZW5TaXplO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNjcmVlblR5cGUodmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZSkge1xuICAgICAgICB0aGlzLl9zY3JlZW5UeXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0SWZIaWRlRm9yQ3VycmVudFNjcmVlblR5cGUoKTtcbiAgICB9XG4gICAgZ2V0IHNjcmVlblR5cGUoKTogRGF0YVZpZXdTY3JlZW5TaXplIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmVlblR5cGU7XG4gICAgfVxuICAgIFxuICAgIEBPdXRwdXQoKSBkcmFnRXhpdGVkOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0V4aXQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkcmFnRW50ZXJlZDogRXZlbnRFbWl0dGVyPENka0RyYWdFbnRlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gZmFsc2U7XG4gICAgLy8gcHJvdGVjdGVkIHJlbW90ZUxvYWRlck9wdGlvbnM6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnM7XG4gICAgLy8gcHJvdGVjdGVkIGF2YWlsYWJsZUJsb2NrOiBJUGVwRHJhZ2dhYmxlSXRlbSB8IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgYmxvY2tUaXRsZSA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzZXRJZkhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlRm9yQ3VycmVudFNjcmVlblR5cGUgPSB0aGlzLmJsb2NrQ29udGFpbmVyID8gXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4odGhpcy5ibG9ja0NvbnRhaW5lci5IaWRlLCB0aGlzLnNjcmVlblR5cGUpIDogZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJsb2NrVGl0bGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0QmxvY2tUaXRsZSh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSB8fCAnJyk7XG4gICAgICAgIC8vIFxuICAgICAgICAvLyB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ01hcENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXApID0+IHtcbiAgICAgICAgLy8gICAgIGlmIChhdmFpbGFibGVCbG9ja3NGb3JEcmFnTWFwICYmIHRoaXMuYmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmF2YWlsYWJsZUJsb2NrID0gKGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdNYXAgYXMgUmVhZG9ubHlNYXA8c3RyaW5nLCBJUGVwRHJhZ2dhYmxlSXRlbT4pLmdldCh0aGlzLmJsb2NrQ29udGFpbmVyLkRyYWdnYWJsZUl0ZW1LZXkpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBvbkVkaXRCbG9ja0NsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5ibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5uYXZpZ2F0ZVRvRWRpdG9yKCdibG9jaycsIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIHRoaXMuYmxvY2tUaXRsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlbW92ZUJsb2NrQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnJlbW92ZUJsb2NrRnJvbVNlY3Rpb24odGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhpZGVCbG9ja0NoYW5nZShoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmhpZGVCbG9jayh0aGlzLnNlY3Rpb25LZXksIHRoaXMuYmxvY2tDb250YWluZXIuQmxvY2tLZXksIGhpZGVJbik7XG4gICAgICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvbkJsb2NrTG9hZChldmVudDogYW55KSB7XG4gICAgLy8gICAgIHRoaXMubGF5b3V0QnVpbGRlclNlcnZpY2UudXBkYXRlQmxvY2tMb2FkZWQodGhpcy5ibG9ja0NvbnRhaW5lci5CbG9ja0tleSk7XG4gICAgLy8gfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25CbG9ja0RyYWdTdGFydChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBDZGtEcmFnRW5kKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vbkJsb2NrRHJhZ0VuZChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRXhpdGVkKGV2ZW50OiBDZGtEcmFnRXhpdCkge1xuICAgICAgICB0aGlzLmRyYWdFeGl0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW50ZXJlZChldmVudDogQ2RrRHJhZ0VudGVyKSB7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImJsb2NrQ29udGFpbmVyPy5CbG9ja0tleSAmJiAoZWRpdGFibGUgfHwgIWhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSlcIiBcbiAgICBjbGFzcz1cInNlY3Rpb24tYmxvY2stY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdlZGl0YWJsZS1zdGF0ZSc6IGVkaXRhYmxlLCAnYmxvY2staGlkZGVuLXN0YXRlJzogaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlLCAnYWN0aXZlLWJsb2NrJzogYWN0aXZlIH1cIlxuICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImJsb2NrQ29udGFpbmVyXCIgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgIWlzTWFpbkVkaXRvclN0YXRlXCIgXG4gICAgKGNka0RyYWdTdGFydGVkKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIiAoY2RrRHJhZ0VuZGVkKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCJcbiAgICAoY2RrRHJhZ0V4aXRlZCk9XCJvbkRyYWdFeGl0ZWQoJGV2ZW50KVwiIChjZGtEcmFnRW50ZXJlZCk9XCJvbkRyYWdFbnRlcmVkKCRldmVudClcIj5cbiAgIFxuICAgIDxwZXAtZHJhZ2dhYmxlLWl0ZW0gKm5nSWY9XCJlZGl0YWJsZSAmJiBpc01haW5FZGl0b3JTdGF0ZVwiIGNka0RyYWdIYW5kbGUgc3R5bGU9XCJjdXJzb3I6IGdyYWI7XCJcbiAgICAgICAgY2xhc3M9XCJibG9jay10b29sYmFyXCIgW3RpdGxlXT1cImJsb2NrVGl0bGVcIiA+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWFjdGlvbnM+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzc05hbWVzPVwiY2F1dGlvblwiIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiAoYnV0dG9uQ2xpY2spPVwib25SZW1vdmVCbG9ja0NsaWNrKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgPCEtLSA8aGlkZS1pbiBbaGlkZUluXT1cImJsb2NrQ29udGFpbmVyLkhpZGVcIiAoaGlkZUluQ2hhbmdlKT1cIm9uSGlkZUJsb2NrQ2hhbmdlKCRldmVudClcIj48L2hpZGUtaW4+IC0tPlxuICAgICAgICAgICAgPHBlcC1idXR0b24gc2l6ZVR5cGU9XCJ4c1wiIGljb25OYW1lPVwic3lzdGVtX2VkaXRcIiAoYnV0dG9uQ2xpY2spPVwib25FZGl0QmxvY2tDbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLXRlbXBsYXRlLXdyYXBwZXJcIiBbbmdTdHlsZV09XCJ7ICdvdmVyZmxvdyc6IChzZWN0aW9uSGVpZ2h0ID09PSAndW5zZXQnID8gJ3Vuc2V0JyA6ICdhdXRvJykgfVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tUZW1wbGF0ZVwiIGNsYXNzPVwiYmxvY2stdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJibG9ja1RlbXBsYXRlOyBjb250ZXh0OiB7IGJsb2NrS2V5OiBibG9ja0NvbnRhaW5lcj8uQmxvY2tLZXkgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { PepDialogActionButton, PepDialogData } from '@pepperi-addons/ngx-lib/dialog';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@ngx-translate/core";
|
|
6
|
-
import * as i2 from "@pepperi-addons/ngx-lib/dialog";
|
|
7
|
-
import * as i3 from "@pepperi-addons/ngx-lib/textbox";
|
|
8
|
-
import * as i4 from "@pepperi-addons/ngx-lib/select";
|
|
9
|
-
import * as i5 from "@pepperi-addons/ngx-lib/checkbox";
|
|
10
|
-
import * as i6 from "../layout-builder-editor/layout-builder-editor.component";
|
|
11
|
-
export class SectionEditorComponent {
|
|
12
|
-
constructor(translate, dialog) {
|
|
13
|
-
this.translate = translate;
|
|
14
|
-
this.dialog = dialog;
|
|
15
|
-
this.MIN_HEIGHT = 40;
|
|
16
|
-
this.sectionName = '';
|
|
17
|
-
this.isAutoHeight = true;
|
|
18
|
-
this.height = this.MIN_HEIGHT;
|
|
19
|
-
this.hostObjectChange = new EventEmitter();
|
|
20
|
-
this.collapseOnTablet = false;
|
|
21
|
-
this.fillHeight = false;
|
|
22
|
-
this.subSections = false;
|
|
23
|
-
this.partsNumber = "2";
|
|
24
|
-
this.partsNumberOptions = Array();
|
|
25
|
-
this.splitOptions = Array();
|
|
26
|
-
this.allSplitOptions = Array();
|
|
27
|
-
this.initData();
|
|
28
|
-
}
|
|
29
|
-
set hostObject(value) {
|
|
30
|
-
this._hostObject = value;
|
|
31
|
-
this.sectionName = value.sectionName;
|
|
32
|
-
this.split = value.split;
|
|
33
|
-
this.isAutoHeight = !value.height || value.height === 0;
|
|
34
|
-
this.height = this.isAutoHeight ? this.MIN_HEIGHT : value.height;
|
|
35
|
-
this.collapseOnTablet = value.collapseOnTablet ?? false;
|
|
36
|
-
this.fillHeight = value.fillHeight ?? false;
|
|
37
|
-
}
|
|
38
|
-
get hostObject() {
|
|
39
|
-
return this._hostObject;
|
|
40
|
-
}
|
|
41
|
-
set split(value) {
|
|
42
|
-
this._split = value;
|
|
43
|
-
this.subSections = (this._split && this._split.length > 0) ? true : false;
|
|
44
|
-
// Check how many parts we have.
|
|
45
|
-
const arr = value?.split(' ');
|
|
46
|
-
if (arr && arr.length > 1 && arr.length <= 4) {
|
|
47
|
-
this.partsNumber = arr.length.toString();
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.partsNumber = "2";
|
|
51
|
-
}
|
|
52
|
-
this.loadSplitOptions();
|
|
53
|
-
}
|
|
54
|
-
get split() {
|
|
55
|
-
return this._split;
|
|
56
|
-
}
|
|
57
|
-
initData() {
|
|
58
|
-
this.partsNumberOptions = [
|
|
59
|
-
{ 'key': '2', 'value': '2 Parts' },
|
|
60
|
-
{ 'key': '3', 'value': '3 Parts' },
|
|
61
|
-
{ 'key': '4', 'value': '4 Parts' }
|
|
62
|
-
];
|
|
63
|
-
this.allSplitOptions = [
|
|
64
|
-
{ 'key': '2', 'value': [
|
|
65
|
-
{ 'key': '1/4 3/4', 'value': '1/4-3/4' },
|
|
66
|
-
{ 'key': '1/3 2/3', 'value': '1/3-2/3' },
|
|
67
|
-
{ 'key': '1/2 1/2', 'value': '1/2-1/2' },
|
|
68
|
-
{ 'key': '2/3 1/3', 'value': '2/3-1/3' },
|
|
69
|
-
{ 'key': '3/4 1/4', 'value': '3/4-1/4' },
|
|
70
|
-
] },
|
|
71
|
-
{ 'key': '3', 'value': [
|
|
72
|
-
{ 'key': '1/3 1/3 1/3', 'value': '1/3-1/3-1/3' },
|
|
73
|
-
{ 'key': '1/2 1/4 1/4', 'value': '1/2-1/4-1/4' },
|
|
74
|
-
{ 'key': '1/4 1/2 1/4', 'value': '1/4-1/2-1/4' },
|
|
75
|
-
{ 'key': '1/4 1/4 1/2', 'value': '1/4-1/4-1/2' },
|
|
76
|
-
] },
|
|
77
|
-
{ 'key': '4', 'value': [
|
|
78
|
-
{ 'key': '1/4 1/4 1/4 1/4', 'value': '1/4-1/4-1/4-1/4' },
|
|
79
|
-
] }
|
|
80
|
-
];
|
|
81
|
-
}
|
|
82
|
-
loadSplitOptions() {
|
|
83
|
-
const splitOptions = this.allSplitOptions.find((option) => option.key === this.partsNumber);
|
|
84
|
-
if (splitOptions) {
|
|
85
|
-
this.splitOptions = splitOptions.value;
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
this.splitOptions = this.allSplitOptions[0].value;
|
|
89
|
-
}
|
|
90
|
-
if (!this._split) {
|
|
91
|
-
this._split = this.splitOptions[0].key;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
updateHostObject() {
|
|
95
|
-
this._hostObject.sectionName = this.sectionName;
|
|
96
|
-
this._hostObject.split = this.subSections ? this.split : undefined;
|
|
97
|
-
this._hostObject.height = this.isAutoHeight ? 0 : this.height;
|
|
98
|
-
this._hostObject.collapseOnTablet = this.collapseOnTablet;
|
|
99
|
-
this._hostObject.fillHeight = this.fillHeight;
|
|
100
|
-
this.hostObjectChange.emit(this.hostObject);
|
|
101
|
-
}
|
|
102
|
-
ngOnInit() {
|
|
103
|
-
this.loadSplitOptions();
|
|
104
|
-
}
|
|
105
|
-
isAutoHeightChange(isChecked) {
|
|
106
|
-
this.isAutoHeight = isChecked;
|
|
107
|
-
this.updateHostObject();
|
|
108
|
-
}
|
|
109
|
-
onHeightChange(height) {
|
|
110
|
-
if (height >= this.MIN_HEIGHT) {
|
|
111
|
-
this.height = coerceNumberProperty(height, this.height);
|
|
112
|
-
this.updateHostObject();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
onSectionNameChange(value) {
|
|
116
|
-
this.sectionName = value;
|
|
117
|
-
this.updateHostObject();
|
|
118
|
-
}
|
|
119
|
-
onCollapseOnTabletChange(value) {
|
|
120
|
-
this.collapseOnTablet = value;
|
|
121
|
-
this.updateHostObject();
|
|
122
|
-
}
|
|
123
|
-
onFillHeightChange(value) {
|
|
124
|
-
this.fillHeight = value;
|
|
125
|
-
this.updateHostObject();
|
|
126
|
-
}
|
|
127
|
-
onSubSectionsChange(value) {
|
|
128
|
-
const oldValue = this.subSections;
|
|
129
|
-
// Check if cancel the sub sections ( change from any -> 1 section ), if true need to show confirm message
|
|
130
|
-
if (value === false) {
|
|
131
|
-
this.subSections = value;
|
|
132
|
-
this.showDeleteSectionMsg(() => {
|
|
133
|
-
this.updateHostObject();
|
|
134
|
-
}, () => {
|
|
135
|
-
this.subSections = oldValue;
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
this.subSections = value;
|
|
140
|
-
this.updateHostObject();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
onPartsNumberChange(key) {
|
|
144
|
-
const oldKey = this.partsNumber;
|
|
145
|
-
// Check if decrease on sub sections number, if true need to show confirm message
|
|
146
|
-
if (key && parseInt(key) < parseInt(this.partsNumber)) {
|
|
147
|
-
this.partsNumber = key;
|
|
148
|
-
this.showDeleteSectionMsg(() => {
|
|
149
|
-
this.loadSplitOptions();
|
|
150
|
-
this._split = this.splitOptions[0].key;
|
|
151
|
-
this.updateHostObject();
|
|
152
|
-
}, () => {
|
|
153
|
-
this.partsNumber = oldKey;
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
this.partsNumber = key;
|
|
158
|
-
this.loadSplitOptions();
|
|
159
|
-
this._split = this.splitOptions[0].key;
|
|
160
|
-
this.updateHostObject();
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
showDeleteSectionMsg(continueCB, cancelCB) {
|
|
164
|
-
const actionButtons = [
|
|
165
|
-
new PepDialogActionButton(this.translate.instant('ACTIONS.CANCEL'), '', () => {
|
|
166
|
-
cancelCB();
|
|
167
|
-
}),
|
|
168
|
-
new PepDialogActionButton(this.translate.instant('ACTIONS.CONTINUE'), 'strong caution', () => {
|
|
169
|
-
continueCB();
|
|
170
|
-
})
|
|
171
|
-
];
|
|
172
|
-
const content = this.translate.instant('LAYOUT_BUILDER.DELETE_SECTION_MSG');
|
|
173
|
-
const title = this.translate.instant('LAYOUT_BUILDER.DELETE_SECTION_TITLE');
|
|
174
|
-
const dataMsg = new PepDialogData({ title, actionsType: 'custom', content, actionButtons });
|
|
175
|
-
this.dialog.openDefaultDialog(dataMsg);
|
|
176
|
-
}
|
|
177
|
-
onSplitChange(key) {
|
|
178
|
-
this._split = key;
|
|
179
|
-
this.updateHostObject();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
SectionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorComponent, deps: [{ token: i1.TranslateService }, { token: i2.PepDialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
SectionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: SectionEditorComponent, selector: "section-editor", inputs: { hostObject: "hostObject" }, outputs: { hostObjectChange: "hostObjectChange" }, ngImport: i0, template: "<pep-layout-builder-editor class=\"section-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <!-- \n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"isAutoHeight\" [label]=\"'LAYOUT_BUILDER.AUTO_HEIGHT_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"isAutoHeightChange($event)\"></pep-checkbox>\n <pep-textbox [label]=\"'LAYOUT_BUILDER.HEIGHT_TITLE' | translate\" type=\"int\" [minValue]=\"MIN_HEIGHT\" [disabled]=\"isAutoHeight\" [value]=\"height\" (valueChange)=\"onHeightChange($event)\"></pep-textbox> \n </div>\n -->\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</pep-layout-builder-editor>\n\n<!-- <div class=\"section-editor-container layout-builder-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</div> -->\n", styles: [".section-editor-container .split-area{display:grid;grid-template-columns:1fr 1fr;gap:var(--pep-spacing-lg, 1rem)}\n"], dependencies: [{ kind: "component", type: i3.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "minFractionDigits", "maxFractionDigits", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey", "regex", "regexError", "isInFocus"], outputs: ["valueChange", "keyup"] }, { kind: "component", type: i4.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "placeholder", "placeholderWhenDisabled", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval", "addValueToOptionsIfNotExist"], outputs: ["valueChange"] }, { kind: "component", type: i5.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepLayoutBuilderEditorComponent, selector: "pep-layout-builder-editor", inputs: ["editorTabs"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorComponent, decorators: [{
|
|
185
|
-
type: Component,
|
|
186
|
-
args: [{ selector: 'section-editor', template: "<pep-layout-builder-editor class=\"section-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <!-- \n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"isAutoHeight\" [label]=\"'LAYOUT_BUILDER.AUTO_HEIGHT_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"isAutoHeightChange($event)\"></pep-checkbox>\n <pep-textbox [label]=\"'LAYOUT_BUILDER.HEIGHT_TITLE' | translate\" type=\"int\" [minValue]=\"MIN_HEIGHT\" [disabled]=\"isAutoHeight\" [value]=\"height\" (valueChange)=\"onHeightChange($event)\"></pep-textbox> \n </div>\n -->\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</pep-layout-builder-editor>\n\n<!-- <div class=\"section-editor-container layout-builder-editor-container\">\n <div>\n <pep-textbox [value]=\"sectionName\" [label]=\"'LAYOUT_BUILDER.SECTION_NAME_TITLE' | translate\" (valueChange)=\"onSectionNameChange($event)\"></pep-textbox>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"subSections\" [label]=\"'LAYOUT_BUILDER.SUB_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onSubSectionsChange($event)\"></pep-checkbox>\n <div class=\"split-area\">\n <pep-select [label]=\"'LAYOUT_BUILDER.SECTIONS_TITLE' | translate\" [value]=\"partsNumber\" [options]=\"partsNumberOptions\" \n (valueChange)=\"onPartsNumberChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n <pep-select [label]=\"'LAYOUT_BUILDER.SPLIT_TITLE' | translate\" [value]=\"split || ''\" [options]=\"splitOptions\"\n (valueChange)=\"onSplitChange($event)\" [emptyOption]=\"false\" [disabled]=\"!subSections\"></pep-select>\n </div>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"collapseOnTablet\" [label]=\"'LAYOUT_BUILDER.COLLAPSE_ON_TABLET_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onCollapseOnTabletChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.COLLAPSE_ON_TABLET_DESCRIPTION' | translate)}}</span>\n </div>\n <div class=\"editor-separator\"></div>\n <div>\n <pep-checkbox class=\"checkbox-as-title\" [value]=\"fillHeight\" [label]=\"'LAYOUT_BUILDER.FILL_HEIGHT_SECTION_TITLE' | translate\" [renderTitle]=\"false\" (valueChange)=\"onFillHeightChange($event)\"></pep-checkbox>\n <span class=\"header-title body-xs\">{{('LAYOUT_BUILDER.FILL_HEIGHT_SECTION_DESCRIPTION' | translate)}}</span>\n </div>\n</div> -->\n", styles: [".section-editor-container .split-area{display:grid;grid-template-columns:1fr 1fr;gap:var(--pep-spacing-lg, 1rem)}\n"] }]
|
|
187
|
-
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.PepDialogService }]; }, propDecorators: { hostObject: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}], hostObjectChange: [{
|
|
190
|
-
type: Output
|
|
191
|
-
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1lZGl0b3Ivc2VjdGlvbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1lZGl0b3Ivc2VjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFvQixNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztBQWlCeEcsTUFBTSxPQUFPLHNCQUFzQjtJQXNEL0IsWUFBb0IsU0FBMkIsRUFBVSxNQUF3QjtRQUE3RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBckR4RSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBa0J6QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQXNCakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsV0FBTSxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFdkIscUJBQWdCLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRTFHLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLHVCQUFrQixHQUFHLEtBQUssRUFBYyxDQUFDO1FBQ3pDLGlC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LENBQUM7O21IQTVNUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwrSUN0Qm5DLHkxSUF5REE7MkZEbkNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxnQkFBZ0I7c0lBU3RCLFVBQVU7c0JBRGIsS0FBSztnQkF3Q0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSVBlcE9wdGlvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFNwbGl0VHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBQZXBEaWFsb2dBY3Rpb25CdXR0b24sIFBlcERpYWxvZ0RhdGEsIFBlcERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuaW1wb3J0IHsgSUxheW91dFNlY3Rpb25FZGl0b3IgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci1pbnRlcm5hbC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3BsaXRPcHRpb24ge1xuICAgIGtleTogU3BsaXRUeXBlOyBcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJQWxsU3BsaXRPcHRpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBBcnJheTxJU3BsaXRPcHRpb24+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NlY3Rpb24tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgTUlOX0hFSUdIVCA9IDQwO1xuICAgIFxuICAgIHByaXZhdGUgX2hvc3RPYmplY3QhOiBJTGF5b3V0U2VjdGlvbkVkaXRvcjtcbiAgICBASW5wdXQoKVxuICAgIHNldCBob3N0T2JqZWN0KHZhbHVlOiBJTGF5b3V0U2VjdGlvbkVkaXRvcikge1xuICAgICAgICB0aGlzLl9ob3N0T2JqZWN0ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zZWN0aW9uTmFtZSA9IHZhbHVlLnNlY3Rpb25OYW1lO1xuICAgICAgICB0aGlzLnNwbGl0ID0gdmFsdWUuc3BsaXQ7XG4gICAgICAgIHRoaXMuaXNBdXRvSGVpZ2h0ID0gIXZhbHVlLmhlaWdodCB8fCB2YWx1ZS5oZWlnaHQgPT09IDA7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5pc0F1dG9IZWlnaHQgPyB0aGlzLk1JTl9IRUlHSFQgOiB2YWx1ZS5oZWlnaHQ7XG4gICAgICAgIHRoaXMuY29sbGFwc2VPblRhYmxldCA9IHZhbHVlLmNvbGxhcHNlT25UYWJsZXQgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMuZmlsbEhlaWdodCA9IHZhbHVlLmZpbGxIZWlnaHQgPz8gZmFsc2U7XG4gICAgfVxuICAgIGdldCBob3N0T2JqZWN0KCk6IElMYXlvdXRTZWN0aW9uRWRpdG9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3RPYmplY3Q7XG4gICAgfVxuXG4gICAgc2VjdGlvbk5hbWUgPSAnJztcbiAgICBcbiAgICBwcml2YXRlIF9zcGxpdDogU3BsaXRUeXBlIHwgdW5kZWZpbmVkO1xuICAgIHNldCBzcGxpdCh2YWx1ZTogU3BsaXRUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3NwbGl0ID0gdmFsdWU7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnN1YlNlY3Rpb25zID0gKHRoaXMuX3NwbGl0ICYmIHRoaXMuX3NwbGl0Lmxlbmd0aCA+IDApID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIC8vIENoZWNrIGhvdyBtYW55IHBhcnRzIHdlIGhhdmUuXG4gICAgICAgIGNvbnN0IGFyciA9IHZhbHVlPy5zcGxpdCgnICcpO1xuICAgICAgICBpZiAoYXJyICYmIGFyci5sZW5ndGggPiAxICYmIGFyci5sZW5ndGggPD0gNCkge1xuICAgICAgICAgICAgdGhpcy5wYXJ0c051bWJlciA9IGFyci5sZW5ndGgudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFydHNOdW1iZXIgPSBcIjJcIjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5sb2FkU3BsaXRPcHRpb25zKCk7XG4gICAgfVxuICAgIGdldCBzcGxpdCgpOiBTcGxpdFR5cGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXQ7XG4gICAgfVxuICAgIFxuICAgIGlzQXV0b0hlaWdodCA9IHRydWU7XG4gICAgaGVpZ2h0OiBudW1iZXIgPSB0aGlzLk1JTl9IRUlHSFQ7XG5cbiAgICBAT3V0cHV0KCkgaG9zdE9iamVjdENoYW5nZTogRXZlbnRFbWl0dGVyPElMYXlvdXRTZWN0aW9uRWRpdG9yPiA9IG5ldyBFdmVudEVtaXR0ZXI8SUxheW91dFNlY3Rpb25FZGl0b3I+KCk7XG4gICAgXG4gICAgY29sbGFwc2VPblRhYmxldCA9IGZhbHNlO1xuICAgIGZpbGxIZWlnaHQgPSBmYWxzZTtcbiAgICBzdWJTZWN0aW9ucyA9IGZhbHNlO1xuICAgIHBhcnRzTnVtYmVyID0gXCIyXCI7XG4gICAgcGFydHNOdW1iZXJPcHRpb25zID0gQXJyYXk8SVBlcE9wdGlvbj4oKTtcbiAgICBzcGxpdE9wdGlvbnMgPSBBcnJheTxJU3BsaXRPcHRpb24+KCk7XG4gICAgYWxsU3BsaXRPcHRpb25zID0gQXJyYXk8SUFsbFNwbGl0T3B0aW9uPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBQZXBEaWFsb2dTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuaW5pdERhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXREYXRhKCkge1xuICAgICAgICB0aGlzLnBhcnRzTnVtYmVyT3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHsgJ2tleSc6ICcyJywgJ3ZhbHVlJzogJzIgUGFydHMnIH0sIFxuICAgICAgICAgICAgeyAna2V5JzogJzMnLCAndmFsdWUnOiAnMyBQYXJ0cycgfSxcbiAgICAgICAgICAgIHsgJ2tleSc6ICc0JywgJ3ZhbHVlJzogJzQgUGFydHMnIH1cbiAgICAgICAgXTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuYWxsU3BsaXRPcHRpb25zID0gW1xuICAgICAgICAgICAgeyAna2V5JzogJzInLCAndmFsdWUnOiBbXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzEvNCAzLzQnLCAndmFsdWUnOiAnMS80LTMvNCcgfSxcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMS8zIDIvMycsICd2YWx1ZSc6ICcxLzMtMi8zJyB9LFxuICAgICAgICAgICAgICAgIHsgJ2tleSc6ICcxLzIgMS8yJywgJ3ZhbHVlJzogJzEvMi0xLzInIH0sXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzIvMyAxLzMnLCAndmFsdWUnOiAnMi8zLTEvMycgfSxcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMy80IDEvNCcsICd2YWx1ZSc6ICczLzQtMS80JyB9LFxuICAgICAgICAgICAgXX0sIFxuICAgICAgICAgICAgeyAna2V5JzogJzMnLCAndmFsdWUnOiBbXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzEvMyAxLzMgMS8zJywgJ3ZhbHVlJzogJzEvMy0xLzMtMS8zJyB9LFxuICAgICAgICAgICAgICAgIHsgJ2tleSc6ICcxLzIgMS80IDEvNCcsICd2YWx1ZSc6ICcxLzItMS80LTEvNCcgfSxcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMS80IDEvMiAxLzQnLCAndmFsdWUnOiAnMS80LTEvMi0xLzQnIH0sXG4gICAgICAgICAgICAgICAgeyAna2V5JzogJzEvNCAxLzQgMS8yJywgJ3ZhbHVlJzogJzEvNC0xLzQtMS8yJyB9LFxuICAgICAgICAgICAgXX0sXG4gICAgICAgICAgICB7ICdrZXknOiAnNCcsICd2YWx1ZSc6IFtcbiAgICAgICAgICAgICAgICB7ICdrZXknOiAnMS80IDEvNCAxLzQgMS80JywgJ3ZhbHVlJzogJzEvNC0xLzQtMS80LTEvNCcgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkU3BsaXRPcHRpb25zKCkge1xuICAgICAgICBjb25zdCBzcGxpdE9wdGlvbnMgPSB0aGlzLmFsbFNwbGl0T3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHRoaXMucGFydHNOdW1iZXIpO1xuICAgICAgICBpZiAoc3BsaXRPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnNwbGl0T3B0aW9ucyA9IHNwbGl0T3B0aW9ucy52YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3BsaXRPcHRpb25zID0gdGhpcy5hbGxTcGxpdE9wdGlvbnNbMF0udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3NwbGl0KSB7XG4gICAgICAgICAgICB0aGlzLl9zcGxpdCA9IHRoaXMuc3BsaXRPcHRpb25zWzBdLmtleTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSG9zdE9iamVjdCgpIHtcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdC5zZWN0aW9uTmFtZSA9IHRoaXMuc2VjdGlvbk5hbWU7XG4gICAgICAgIHRoaXMuX2hvc3RPYmplY3Quc3BsaXQgPSB0aGlzLnN1YlNlY3Rpb25zID8gdGhpcy5zcGxpdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdC5oZWlnaHQgPSB0aGlzLmlzQXV0b0hlaWdodCA/IDAgOiB0aGlzLmhlaWdodDtcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdC5jb2xsYXBzZU9uVGFibGV0ID0gdGhpcy5jb2xsYXBzZU9uVGFibGV0O1xuICAgICAgICB0aGlzLl9ob3N0T2JqZWN0LmZpbGxIZWlnaHQgPSB0aGlzLmZpbGxIZWlnaHQ7XG5cbiAgICAgICAgdGhpcy5ob3N0T2JqZWN0Q2hhbmdlLmVtaXQodGhpcy5ob3N0T2JqZWN0KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkU3BsaXRPcHRpb25zKCk7XG4gICAgfVxuICAgIFxuICAgIGlzQXV0b0hlaWdodENoYW5nZShpc0NoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0F1dG9IZWlnaHQgPSBpc0NoZWNrZWQ7XG4gICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgIH1cblxuICAgIG9uSGVpZ2h0Q2hhbmdlKGhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChoZWlnaHQgPj0gdGhpcy5NSU5fSEVJR0hUKSB7XG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IGNvZXJjZU51bWJlclByb3BlcnR5KGhlaWdodCwgdGhpcy5oZWlnaHQpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIb3N0T2JqZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgb25TZWN0aW9uTmFtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VjdGlvbk5hbWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVIb3N0T2JqZWN0KCk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZU9uVGFibGV0Q2hhbmdlKHZhbHVlOiBib29sZWFuKXtcbiAgICAgICAgdGhpcy5jb2xsYXBzZU9uVGFibGV0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgIH1cblxuICAgIG9uRmlsbEhlaWdodENoYW5nZSh2YWx1ZTogYm9vbGVhbil7XG4gICAgICAgIHRoaXMuZmlsbEhlaWdodCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZUhvc3RPYmplY3QoKTtcbiAgICB9XG5cbiAgICBvblN1YlNlY3Rpb25zQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5zdWJTZWN0aW9ucztcbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FuY2VsIHRoZSBzdWIgc2VjdGlvbnMgKCBjaGFuZ2UgZnJvbSBhbnkgLT4gMSBzZWN0aW9uICksIGlmIHRydWUgbmVlZCB0byBzaG93IGNvbmZpcm0gbWVzc2FnZVxuICAgICAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnN1YlNlY3Rpb25zID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNob3dEZWxldGVTZWN0aW9uTXNnKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUhvc3RPYmplY3QoKTtcbiAgICAgICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YlNlY3Rpb25zID0gb2xkVmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3ViU2VjdGlvbnMgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICBcbiAgICBvblBhcnRzTnVtYmVyQ2hhbmdlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG9sZEtleSA9IHRoaXMucGFydHNOdW1iZXI7XG4gICAgICAgIC8vIENoZWNrIGlmIGRlY3JlYXNlIG9uIHN1YiBzZWN0aW9ucyBudW1iZXIsIGlmIHRydWUgbmVlZCB0byBzaG93IGNvbmZpcm0gbWVzc2FnZVxuICAgICAgICBpZiAoa2V5ICYmIHBhcnNlSW50KGtleSkgPCBwYXJzZUludCh0aGlzLnBhcnRzTnVtYmVyKSkge1xuICAgICAgICAgICAgdGhpcy5wYXJ0c051bWJlciA9IGtleTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RlbGV0ZVNlY3Rpb25Nc2coKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZFNwbGl0T3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NwbGl0ID0gdGhpcy5zcGxpdE9wdGlvbnNbMF0ua2V5O1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgICAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGFydHNOdW1iZXIgPSBvbGRLZXk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXJ0c051bWJlciA9IGtleTtcbiAgICAgICAgICAgIHRoaXMubG9hZFNwbGl0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5fc3BsaXQgPSB0aGlzLnNwbGl0T3B0aW9uc1swXS5rZXk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUhvc3RPYmplY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dEZWxldGVTZWN0aW9uTXNnKGNvbnRpbnVlQ0I6ICgpID0+IHZvaWQsIGNhbmNlbENCOiAoKSA9PiB2b2lkKXtcbiAgICAgICAgY29uc3QgYWN0aW9uQnV0dG9ucyA9IFtcbiAgICAgICAgICAgIG5ldyBQZXBEaWFsb2dBY3Rpb25CdXR0b24oXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQUNUSU9OUy5DQU5DRUwnKSxcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbENCKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBQZXBEaWFsb2dBY3Rpb25CdXR0b24oXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQUNUSU9OUy5DT05USU5VRScpLFxuICAgICAgICAgICAgICAgICdzdHJvbmcgY2F1dGlvbicsXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZUNCKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICBdO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLkRFTEVURV9TRUNUSU9OX01TRycpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLkRFTEVURV9TRUNUSU9OX1RJVExFJyk7XG4gICAgICAgIGNvbnN0IGRhdGFNc2cgPSBuZXcgUGVwRGlhbG9nRGF0YSh7dGl0bGUsIGFjdGlvbnNUeXBlOiAnY3VzdG9tJywgY29udGVudCwgYWN0aW9uQnV0dG9uc30pO1xuXG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW5EZWZhdWx0RGlhbG9nKGRhdGFNc2cpO1xuICAgIH1cblxuXG4gICAgb25TcGxpdENoYW5nZShrZXk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zcGxpdCA9IGtleSBhcyBTcGxpdFR5cGU7XG4gICAgICAgIHRoaXMudXBkYXRlSG9zdE9iamVjdCgpO1xuICAgIH1cbn1cbiIsIjxwZXAtbGF5b3V0LWJ1aWxkZXItZWRpdG9yIGNsYXNzPVwic2VjdGlvbi1lZGl0b3ItY29udGFpbmVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC10ZXh0Ym94IFt2YWx1ZV09XCJzZWN0aW9uTmFtZVwiIFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuU0VDVElPTl9OQU1FX1RJVExFJyB8IHRyYW5zbGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJvblNlY3Rpb25OYW1lQ2hhbmdlKCRldmVudClcIj48L3BlcC10ZXh0Ym94PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gXG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cImlzQXV0b0hlaWdodFwiIFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuQVVUT19IRUlHSFRfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cImlzQXV0b0hlaWdodENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxwZXAtdGV4dGJveCBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLkhFSUdIVF9USVRMRScgfCB0cmFuc2xhdGVcIiB0eXBlPVwiaW50XCIgW21pblZhbHVlXT1cIk1JTl9IRUlHSFRcIiBbZGlzYWJsZWRdPVwiaXNBdXRvSGVpZ2h0XCIgW3ZhbHVlXT1cImhlaWdodFwiICh2YWx1ZUNoYW5nZSk9XCJvbkhlaWdodENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtdGV4dGJveD4gXG4gICAgPC9kaXY+XG4gICAgLS0+XG4gICAgPGRpdiBjbGFzcz1cImVkaXRvci1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8cGVwLWNoZWNrYm94IGNsYXNzPVwiY2hlY2tib3gtYXMtdGl0bGVcIiBbdmFsdWVdPVwic3ViU2VjdGlvbnNcIiBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLlNVQl9TRUNUSU9OX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiICh2YWx1ZUNoYW5nZSk9XCJvblN1YlNlY3Rpb25zQ2hhbmdlKCRldmVudClcIj48L3BlcC1jaGVja2JveD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwbGl0LWFyZWFcIj5cbiAgICAgICAgICAgIDxwZXAtc2VsZWN0IFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuU0VDVElPTlNfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3ZhbHVlXT1cInBhcnRzTnVtYmVyXCIgW29wdGlvbnNdPVwicGFydHNOdW1iZXJPcHRpb25zXCIgXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGFydHNOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiIFtlbXB0eU9wdGlvbl09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCIhc3ViU2VjdGlvbnNcIj48L3BlcC1zZWxlY3Q+XG4gICAgICAgICAgICA8cGVwLXNlbGVjdCBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLlNQTElUX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFt2YWx1ZV09XCJzcGxpdCB8fCAnJ1wiIFtvcHRpb25zXT1cInNwbGl0T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uU3BsaXRDaGFuZ2UoJGV2ZW50KVwiIFtlbXB0eU9wdGlvbl09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCIhc3ViU2VjdGlvbnNcIj48L3BlcC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cImNvbGxhcHNlT25UYWJsZXRcIiBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLkNPTExBUFNFX09OX1RBQkxFVF9USVRMRScgfCB0cmFuc2xhdGVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIiAodmFsdWVDaGFuZ2UpPVwib25Db2xsYXBzZU9uVGFibGV0Q2hhbmdlKCRldmVudClcIj48L3BlcC1jaGVja2JveD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItdGl0bGUgYm9keS14c1wiPnt7KCdMQVlPVVRfQlVJTERFUi5DT0xMQVBTRV9PTl9UQUJMRVRfREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cImZpbGxIZWlnaHRcIiBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLkZJTExfSEVJR0hUX1NFQ1RJT05fVElUTEUnIHwgdHJhbnNsYXRlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uRmlsbEhlaWdodENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlIGJvZHkteHNcIj57eygnTEFZT1VUX0JVSUxERVIuRklMTF9IRUlHSFRfU0VDVElPTl9ERVNDUklQVElPTicgfCB0cmFuc2xhdGUpfX08L3NwYW4+XG4gICAgPC9kaXY+XG48L3BlcC1sYXlvdXQtYnVpbGRlci1lZGl0b3I+XG5cbjwhLS0gPGRpdiBjbGFzcz1cInNlY3Rpb24tZWRpdG9yLWNvbnRhaW5lciBsYXlvdXQtYnVpbGRlci1lZGl0b3ItY29udGFpbmVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC10ZXh0Ym94IFt2YWx1ZV09XCJzZWN0aW9uTmFtZVwiIFtsYWJlbF09XCInTEFZT1VUX0JVSUxERVIuU0VDVElPTl9OQU1FX1RJVExFJyB8IHRyYW5zbGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJvblNlY3Rpb25OYW1lQ2hhbmdlKCRldmVudClcIj48L3BlcC10ZXh0Ym94PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPHBlcC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94LWFzLXRpdGxlXCIgW3ZhbHVlXT1cInN1YlNlY3Rpb25zXCIgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5TVUJfU0VDVElPTl9USVRMRScgfCB0cmFuc2xhdGVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIiAodmFsdWVDaGFuZ2UpPVwib25TdWJTZWN0aW9uc0NoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGxpdC1hcmVhXCI+XG4gICAgICAgICAgICA8cGVwLXNlbGVjdCBbbGFiZWxdPVwiJ0xBWU9VVF9CVUlMREVSLlNFQ1RJT05TX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFt2YWx1ZV09XCJwYXJ0c051bWJlclwiIFtvcHRpb25zXT1cInBhcnRzTnVtYmVyT3B0aW9uc1wiIFxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblBhcnRzTnVtYmVyQ2hhbmdlKCRldmVudClcIiBbZW1wdHlPcHRpb25dPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiIXN1YlNlY3Rpb25zXCI+PC9wZXAtc2VsZWN0PlxuICAgICAgICAgICAgPHBlcC1zZWxlY3QgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5TUExJVF9USVRMRScgfCB0cmFuc2xhdGVcIiBbdmFsdWVdPVwic3BsaXQgfHwgJydcIiBbb3B0aW9uc109XCJzcGxpdE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblNwbGl0Q2hhbmdlKCRldmVudClcIiBbZW1wdHlPcHRpb25dPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiIXN1YlNlY3Rpb25zXCI+PC9wZXAtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxwZXAtY2hlY2tib3ggY2xhc3M9XCJjaGVja2JveC1hcy10aXRsZVwiIFt2YWx1ZV09XCJjb2xsYXBzZU9uVGFibGV0XCIgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5DT0xMQVBTRV9PTl9UQUJMRVRfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ29sbGFwc2VPblRhYmxldENoYW5nZSgkZXZlbnQpXCI+PC9wZXAtY2hlY2tib3g+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlIGJvZHkteHNcIj57eygnTEFZT1VUX0JVSUxERVIuQ09MTEFQU0VfT05fVEFCTEVUX0RFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZSl9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxwZXAtY2hlY2tib3ggY2xhc3M9XCJjaGVja2JveC1hcy10aXRsZVwiIFt2YWx1ZV09XCJmaWxsSGVpZ2h0XCIgW2xhYmVsXT1cIidMQVlPVVRfQlVJTERFUi5GSUxMX0hFSUdIVF9TRUNUSU9OX1RJVExFJyB8IHRyYW5zbGF0ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiICh2YWx1ZUNoYW5nZSk9XCJvbkZpbGxIZWlnaHRDaGFuZ2UoJGV2ZW50KVwiPjwvcGVwLWNoZWNrYm94PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci10aXRsZSBib2R5LXhzXCI+e3soJ0xBWU9VVF9CVUlMREVSLkZJTExfSEVJR0hUX1NFQ1RJT05fREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+IC0tPlxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { SectionEditorComponent } from './section-editor.component';
|
|
4
|
-
import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
5
|
-
import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';
|
|
6
|
-
import { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';
|
|
7
|
-
import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
|
|
8
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
9
|
-
import { PepLayoutBuilderEditorModule } from '../layout-builder-editor/layout-builder-editor.module';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@ngx-translate/core";
|
|
12
|
-
export class SectionEditorModule {
|
|
13
|
-
}
|
|
14
|
-
SectionEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
-
SectionEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, declarations: [SectionEditorComponent], imports: [CommonModule,
|
|
16
|
-
PepButtonModule,
|
|
17
|
-
PepTextboxModule,
|
|
18
|
-
PepSelectModule,
|
|
19
|
-
PepCheckboxModule,
|
|
20
|
-
PepLayoutBuilderEditorModule, i1.TranslateModule], exports: [SectionEditorComponent] });
|
|
21
|
-
SectionEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, imports: [CommonModule,
|
|
22
|
-
PepButtonModule,
|
|
23
|
-
PepTextboxModule,
|
|
24
|
-
PepSelectModule,
|
|
25
|
-
PepCheckboxModule,
|
|
26
|
-
PepLayoutBuilderEditorModule,
|
|
27
|
-
TranslateModule.forChild()] });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: SectionEditorModule, decorators: [{
|
|
29
|
-
type: NgModule,
|
|
30
|
-
args: [{
|
|
31
|
-
declarations: [SectionEditorComponent],
|
|
32
|
-
imports: [
|
|
33
|
-
CommonModule,
|
|
34
|
-
PepButtonModule,
|
|
35
|
-
PepTextboxModule,
|
|
36
|
-
PepSelectModule,
|
|
37
|
-
PepCheckboxModule,
|
|
38
|
-
PepLayoutBuilderEditorModule,
|
|
39
|
-
TranslateModule.forChild()
|
|
40
|
-
],
|
|
41
|
-
exports: [SectionEditorComponent]
|
|
42
|
-
}]
|
|
43
|
-
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi1lZGl0b3Ivc2VjdGlvbi1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFlckcsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVpiLHNCQUFzQixhQUVqQyxZQUFZO1FBQ1osZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLDRCQUE0QixpQ0FHdEIsc0JBQXNCO2lIQUV2QixtQkFBbUIsWUFWeEIsWUFBWTtRQUNaLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsZUFBZSxDQUFDLFFBQVEsRUFBRTsyRkFJckIsbUJBQW1CO2tCQWIvQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIsZUFBZSxDQUFDLFFBQVEsRUFBRTtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWN0aW9uRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLWVkaXRvci5jb21wb25lbnQnXG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwVGV4dGJveE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3RleHRib3gnO1xuaW1wb3J0IHsgUGVwQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9jaGVja2JveCc7XG5pbXBvcnQgeyBQZXBTZWxlY3RNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQZXBMYXlvdXRCdWlsZGVyRWRpdG9yTW9kdWxlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItZWRpdG9yL2xheW91dC1idWlsZGVyLWVkaXRvci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NlY3Rpb25FZGl0b3JDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFBlcFRleHRib3hNb2R1bGUsXG4gICAgICAgIFBlcFNlbGVjdE1vZHVsZSxcbiAgICAgICAgUGVwQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFBlcExheW91dEJ1aWxkZXJFZGl0b3JNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpXG4gICAgXSxcbiAgICBleHBvcnRzOiBbU2VjdGlvbkVkaXRvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkVkaXRvck1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -1,82 +0,0 @@
|
|
|
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.isValid = true;
|
|
20
|
-
}
|
|
21
|
-
loadDataView(paramType) {
|
|
22
|
-
this.dataView = this.manageParametersService.getParameterFormDataView(this.incoming.Mode, paramType || 'String', this.showType, this.showAccessibility);
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
this.parameter = this.getParameter(this.incoming.Parameter);
|
|
26
|
-
this.showType = this.incoming.ShowType ?? false;
|
|
27
|
-
this.showAccessibility = this.incoming.ShowAccessibility ?? false;
|
|
28
|
-
this.loadDataView(this.parameter?.Type);
|
|
29
|
-
}
|
|
30
|
-
saveParameter() {
|
|
31
|
-
// before updating the parameter, remove redundant properties
|
|
32
|
-
if (this.parameter && this.showAccessibility) {
|
|
33
|
-
delete this.parameter['Accessibility'];
|
|
34
|
-
delete this.parameter['Accessibility_Description'];
|
|
35
|
-
}
|
|
36
|
-
this.close(this.parameter);
|
|
37
|
-
}
|
|
38
|
-
close(parameter = undefined) {
|
|
39
|
-
this.dialogRef.close(parameter || null);
|
|
40
|
-
}
|
|
41
|
-
getParameter(parameter) {
|
|
42
|
-
const ret = JSON.parse(JSON.stringify(parameter));
|
|
43
|
-
Object.keys(parameter || {}).forEach(prop => {
|
|
44
|
-
if (typeof (parameter[prop]) != 'boolean') {
|
|
45
|
-
// if the value is null/undefined, don't copy it
|
|
46
|
-
if (parameter[prop]) {
|
|
47
|
-
ret[prop] = parameter[prop].toString();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
else if (prop === 'Internal' && this.showAccessibility) {
|
|
51
|
-
ret['Accessibility'] = parameter[prop] ? 'Internal' : 'External';
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
ret[prop] = parameter[prop];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
if (this.showAccessibility) {
|
|
58
|
-
ret['Accessibility_Description'] = this.translate.instant('MANAGE_PARAMETERS.INTERNAL_DESCRIPTION');
|
|
59
|
-
}
|
|
60
|
-
return ret;
|
|
61
|
-
}
|
|
62
|
-
onValueChanged(event) {
|
|
63
|
-
if (event.ApiName === 'Type' && this.showType) {
|
|
64
|
-
this.loadDataView(event.Value);
|
|
65
|
-
}
|
|
66
|
-
else if (event.ApiName === 'Accessibility' && this.showAccessibility) {
|
|
67
|
-
if (this.parameter) {
|
|
68
|
-
this.parameter['Internal'] = event.Value === 'Internal';
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
ManageParameterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParameterComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.ManageParametersService }, { token: i3.TranslateService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
ManageParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", 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\" (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: [""], 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" }] });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ManageParameterComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
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\" (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>" }]
|
|
78
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.ManageParametersService }, { type: i3.TranslateService }, { type: undefined, decorators: [{
|
|
79
|
-
type: Inject,
|
|
80
|
-
args: [MAT_DIALOG_DATA]
|
|
81
|
-
}] }]; } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBhcmFtZXRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9tYW5hZ2UtcGFyYW1ldGVycy9tYW5hZ2UtcGFyYW1ldGVyL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbWFuYWdlLXBhcmFtZXRlcnMvbWFuYWdlLXBhcmFtZXRlci9tYW5hZ2UtcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQWN6RSxNQUFNLE9BQU8sd0JBQXdCO0lBZWpDLFlBQXNCLFNBQWlELEVBQzNELHVCQUFnRCxFQUNoRCxTQUEyQixFQUNILFFBQTRCO1FBSDFDLGNBQVMsR0FBVCxTQUFTLENBQXdDO1FBQzNELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDSCxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQVRoRSxjQUFTLEdBQTZCLFNBQVMsQ0FBQztRQUNoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBT2YsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUEwQjtRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixD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YTsyRkRWQSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksa0JBQWtCOzswQkFzQnZCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBHZW5lcmljRm9ybUNvbXBvbmVudCwgSVBlcEdlbmVyaWNGb3JtRGF0YVZpZXcsIElQZXBHZW5lcmljRm9ybVZhbHVlQ2hhbmdlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtZm9ybSc7XG5pbXBvcnQgeyBJUGFyYW1lbWV0ZXIsIElQYXJhbWV0ZXJGb3JtRGF0YSB9IGZyb20gJy4uL21hbmFnZS1wYXJhbWV0ZXJzLm1vZGVsJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9tYW5hZ2UtcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFNjaGVtZUZpZWxkVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWFuYWdlLXBhcmFtZXRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21hbmFnZS1wYXJhbWV0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VQYXJhbWV0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgLy8gQFZpZXdDaGlsZCgnZmxvd3NMaXN0Jywge3JlYWQ6IEdlbmVyaWNGb3JtQ29tcG9uZW50fSkgc2V0IGdlbmVyaWNGb3JtU2V0dGVyKGluRm9ybTogR2VuZXJpY0Zvcm1Db21wb25lbnQpIHtcbiAgICAvLyAgICAgaWYgKGluRm9ybSkge1xuICAgIC8vICAgICAgICAgdGhpcy5mb3JtID0gaW5Gb3JtO1xuICAgIC8vICAgICB9XG4gICAgLy8gfTtcbiAgICBcbiAgICBmb3JtITogR2VuZXJpY0Zvcm1Db21wb25lbnQ7XG4gICAgcGFyYW1ldGVyOiBJUGFyYW1lbWV0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgc2hvd1R5cGUgPSBmYWxzZTtcbiAgICBzaG93QWNjZXNzaWJpbGl0eSA9IGZhbHNlO1xuICAgIGRhdGFWaWV3ITogSVBlcEdlbmVyaWNGb3JtRGF0YVZpZXc7XG4gICAgaXNWYWxpZCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvciAoIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TWFuYWdlUGFyYW1ldGVyQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBtYW5hZ2VQYXJhbWV0ZXJzU2VydmljZTogTWFuYWdlUGFyYW1ldGVyc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGluY29taW5nOiBJUGFyYW1ldGVyRm9ybURhdGEpIHtcblxuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZERhdGFWaWV3KHBhcmFtVHlwZTogU2NoZW1lRmllbGRUeXBlKSB7XG4gICAgICAgIHRoaXMuZGF0YVZpZXcgPSB0aGlzLm1hbmFnZVBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlckZvcm1EYXRhVmlldyh0aGlzLmluY29taW5nLk1vZGUsIHBhcmFtVHlwZSB8fCAnU3RyaW5nJywgdGhpcy5zaG93VHlwZSwgdGhpcy5zaG93QWNjZXNzaWJpbGl0eSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyYW1ldGVyID0gdGhpcy5nZXRQYXJhbWV0ZXIodGhpcy5pbmNvbWluZy5QYXJhbWV0ZXIpO1xuICAgICAgICB0aGlzLnNob3dUeXBlID0gdGhpcy5pbmNvbWluZy5TaG93VHlwZSA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93QWNjZXNzaWJpbGl0eSA9IHRoaXMuaW5jb21pbmcuU2hvd0FjY2Vzc2liaWxpdHkgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZERhdGFWaWV3KHRoaXMucGFyYW1ldGVyPy5UeXBlKTtcbiAgICB9XG5cbiAgICBzYXZlUGFyYW1ldGVyKCkge1xuICAgICAgICAvLyBiZWZvcmUgdXBkYXRpbmcgdGhlIHBhcmFtZXRlciwgcmVtb3ZlIHJlZHVuZGFudCBwcm9wZXJ0aWVzXG4gICAgICAgIGlmICh0aGlzLnBhcmFtZXRlciAmJiB0aGlzLnNob3dBY2Nlc3NpYmlsaXR5KSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5wYXJhbWV0ZXJbJ0FjY2Vzc2liaWxpdHknXTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnBhcmFtZXRlclsnQWNjZXNzaWJpbGl0eV9EZXNjcmlwdGlvbiddO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZSh0aGlzLnBhcmFtZXRlcik7XG4gICAgfVxuXG4gICAgY2xvc2UocGFyYW1ldGVyOiBJUGFyYW1lbWV0ZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocGFyYW1ldGVyIHx8IG51bGwpO1xuICAgIH1cblxuICAgIGdldFBhcmFtZXRlcihwYXJhbWV0ZXI6IElQYXJhbWVtZXRlcik6IElQYXJhbWVtZXRlciB7XG4gICAgICAgIGNvbnN0IHJldDogSVBhcmFtZW1ldGVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXIpKTtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1ldGVyIHx8IHt9KS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZihwYXJhbWV0ZXJbcHJvcF0pICE9ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBudWxsL3VuZGVmaW5lZCwgZG9uJ3QgY29weSBpdFxuICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJbcHJvcF0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0W3Byb3BdID0gcGFyYW1ldGVyW3Byb3BdLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wID09PSAnSW50ZXJuYWwnICYmIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICByZXRbJ0FjY2Vzc2liaWxpdHknXSA9IHBhcmFtZXRlcltwcm9wXSA/ICdJbnRlcm5hbCcgOiAnRXh0ZXJuYWwnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldFtwcm9wXSA9IHBhcmFtZXRlcltwcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5zaG93QWNjZXNzaWJpbGl0eSkge1xuICAgICAgICAgICAgcmV0WydBY2Nlc3NpYmlsaXR5X0Rlc2NyaXB0aW9uJ10gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNQU5BR0VfUEFSQU1FVEVSUy5JTlRFUk5BTF9ERVNDUklQVElPTicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlZChldmVudDogSVBlcEdlbmVyaWNGb3JtVmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LkFwaU5hbWUgPT09ICdUeXBlJyAmJiB0aGlzLnNob3dUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWREYXRhVmlldyhldmVudC5WYWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuQXBpTmFtZSA9PT0gJ0FjY2Vzc2liaWxpdHknICYmIHRoaXMuc2hvd0FjY2Vzc2liaWxpdHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmFtZXRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVyWydJbnRlcm5hbCddID0gZXZlbnQuVmFsdWUgPT09ICdJbnRlcm5hbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCI8cGVwLWRpYWxvZyBbdGl0bGVdPVwiKGluY29taW5nLk1vZGUgPT09ICdlZGl0JyA/ICdNQU5BR0VfUEFSQU1FVEVSUy5FRElUX0ZPUk1fVElUTEUnIDogJ01BTkFHRV9QQVJBTUVURVJTLkFERF9GT1JNX1RJVExFJykgfCB0cmFuc2xhdGVcIj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgPHBlcC1nZW5lcmljLWZvcm0gI2FkZEZvcm0gW2RhdGFTb3VyY2VdPVwicGFyYW1ldGVyXCIgW2RhdGFWaWV3XT1cImRhdGFWaWV3XCIgKGZvcm1WYWxpZGF0aW9uQ2hhbmdlKT1cImlzVmFsaWQgPSAkZXZlbnRcIiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgIDwvcGVwLWdlbmVyaWMtZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnQtbmVnYXRpdmVcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+ICAgICAgICAgXG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplVHlwZV09XCInbWQnXCIgXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidDYW5jZWwnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgICAgICAgW3N0eWxlVHlwZV09XCInd2VhaydcIiBcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgID48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzaXplVHlwZV09XCInbWQnXCIgXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIihpbmNvbWluZy5Nb2RlID09PSAnZWRpdCcgPyAnVXBkYXRlJyA6ICdTYXZlJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZVR5cGVdPVwiJ3N0cm9uZydcIiBcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwic2F2ZVBhcmFtZXRlcigpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWRcIlxuICAgICAgICAgICAgPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3BlcC1kaWFsb2c+Il19
|