@pega/angular-sdk-components 24.2.10 → 25.1.10
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/fesm2022/pega-angular-sdk-components.mjs +5383 -3962
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_bridge/angular-pconnect.d.ts +1 -1
- package/lib/_bridge/component-mapper/component-mapper.component.d.ts +1 -1
- package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +18 -0
- package/lib/_components/designSystemExtension/banner/banner.component.d.ts +0 -1
- package/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.d.ts +0 -1
- package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +1 -1
- package/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.d.ts +1 -0
- package/lib/_components/designSystemExtension/operator/operator.component.d.ts +2 -3
- package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +0 -1
- package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +1 -0
- package/lib/_components/field/auto-complete/auto-complete.component.d.ts +14 -38
- package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +7 -6
- package/lib/_components/field/check-box/check-box.component.d.ts +10 -33
- package/lib/_components/field/currency/currency.component.d.ts +19 -35
- package/lib/_components/field/date/date.component.d.ts +7 -58
- package/lib/_components/field/date-time/date-time.component.d.ts +12 -40
- package/lib/_components/field/decimal/decimal.component.d.ts +17 -32
- package/lib/_components/field/dropdown/dropdown.component.d.ts +14 -38
- package/lib/_components/field/email/email.component.d.ts +7 -35
- package/lib/_components/field/field.base.d.ts +57 -0
- package/lib/_components/field/group/group.component.d.ts +5 -3
- package/lib/_components/field/integer/integer.component.d.ts +8 -35
- package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +1 -2
- package/lib/_components/field/location/location.component.d.ts +47 -0
- package/lib/_components/field/multiselect/multiselect.component.d.ts +7 -39
- package/lib/_components/field/object-reference/object-reference.component.d.ts +45 -0
- package/lib/_components/field/percentage/percentage.component.d.ts +19 -37
- package/lib/_components/field/phone/phone.component.d.ts +8 -38
- package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +13 -34
- package/lib/_components/field/rich-text/rich-text.component.d.ts +7 -31
- package/lib/_components/field/scalar-list/scalar-list.component.d.ts +6 -22
- package/lib/_components/field/selectable-card/selectable-card.component.d.ts +62 -0
- package/lib/_components/field/semantic-link/semantic-link.component.d.ts +21 -1
- package/lib/_components/field/text/text.component.d.ts +0 -1
- package/lib/_components/field/text-area/text-area.component.d.ts +7 -35
- package/lib/_components/field/text-content/text-content.component.d.ts +0 -1
- package/lib/_components/field/text-input/text-input.component.d.ts +7 -36
- package/lib/_components/field/time/time.component.d.ts +7 -36
- package/lib/_components/field/url/url.component.d.ts +7 -36
- package/lib/_components/field/user-reference/user-reference.component.d.ts +1 -2
- package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +1 -2
- package/lib/_components/infra/Containers/flow-container/helpers.d.ts +1 -0
- package/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.d.ts +0 -1
- package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +5 -10
- package/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.d.ts +0 -1
- package/lib/_components/infra/Containers/view-container/view-container.component.d.ts +0 -1
- package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +1 -1
- package/lib/_components/infra/assignment/assignment.component.d.ts +8 -6
- package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +3 -3
- package/lib/_components/infra/dashboard-filter/dashboard-filter.component.d.ts +0 -1
- package/lib/_components/infra/defer-load/defer-load.component.d.ts +7 -7
- package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +1 -1
- package/lib/_components/infra/multi-step/multi-step.component.d.ts +0 -1
- package/lib/_components/infra/navbar/navbar.component.d.ts +0 -2
- package/lib/_components/infra/reference/reference.component.d.ts +23 -3
- package/lib/_components/infra/region/region.component.d.ts +0 -1
- package/lib/_components/infra/root-container/root-container.component.d.ts +3 -2
- package/lib/_components/infra/stages/stages.component.d.ts +2 -2
- package/lib/_components/infra/view/view.component.d.ts +0 -1
- package/lib/_components/template/advanced-search/advanced-search.component.d.ts +21 -0
- package/lib/_components/template/advanced-search/search-group/persist-utils.d.ts +23 -0
- package/lib/_components/template/advanced-search/search-groups/search-groups.component.d.ts +47 -0
- package/lib/_components/template/advanced-search/search-groups/utils.d.ts +15 -0
- package/lib/_components/template/app-shell/app-shell.component.d.ts +6 -3
- package/lib/_components/template/banner-page/banner-page.component.d.ts +0 -1
- package/lib/_components/template/base/details-template-base.d.ts +1 -2
- package/lib/_components/template/base/form-template-base.d.ts +3 -1
- package/lib/_components/template/case-summary/case-summary.component.d.ts +3 -3
- package/lib/_components/template/case-view/case-view.component.d.ts +0 -2
- package/lib/_components/template/confirmation/confirmation.component.d.ts +0 -1
- package/lib/_components/template/data-reference/data-reference.component.d.ts +27 -3
- package/lib/_components/template/data-reference/search-form/search-form.component.d.ts +39 -0
- package/lib/_components/template/data-reference/search-form/tabsData.d.ts +2 -0
- package/lib/_components/template/data-reference/utils.d.ts +14 -0
- package/lib/_components/template/default-form/default-form.component.d.ts +9 -4
- package/lib/_components/template/default-page/default-page.component.d.ts +29 -0
- package/lib/_components/template/details/details.component.d.ts +0 -1
- package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +0 -1
- package/lib/_components/template/details-one-column/details-one-column.component.d.ts +0 -1
- package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +0 -1
- package/lib/_components/template/details-three-column/details-three-column.component.d.ts +0 -1
- package/lib/_components/template/details-two-column/details-two-column.component.d.ts +0 -1
- package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +0 -1
- package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +0 -1
- package/lib/_components/template/field-group-template/field-group-template.component.d.ts +9 -8
- package/lib/_components/template/inline-dashboard/inline-dashboard.component.d.ts +0 -1
- package/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.d.ts +0 -1
- package/lib/_components/template/list-page/list-page.component.d.ts +0 -1
- package/lib/_components/template/list-view/list-view.component.d.ts +22 -7
- package/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.d.ts +0 -1
- package/lib/_components/template/narrow-wide-form/narrow-wide-form.component.d.ts +0 -1
- package/lib/_components/template/object-page/object-page.component.d.ts +8 -0
- package/lib/_components/template/one-column/one-column.component.d.ts +0 -1
- package/lib/_components/template/one-column-page/one-column-page.component.d.ts +0 -1
- package/lib/_components/template/one-column-tab/one-column-tab.component.d.ts +0 -1
- package/lib/_components/template/page/page.component.d.ts +0 -1
- package/lib/_components/template/promoted-filters/promoted-filters.component.d.ts +0 -1
- package/lib/_components/template/repeating-structures/repeating-structures.component.d.ts +0 -1
- package/lib/_components/template/self-service-case-view/self-service-case-view.component.d.ts +58 -0
- package/lib/_components/template/simple-table/simple-table.component.d.ts +0 -1
- package/lib/_components/template/simple-table-manual/helpers.d.ts +18 -3
- package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +9 -4
- package/lib/_components/template/simple-table-select/simple-table-select.component.d.ts +0 -1
- package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +18 -3
- package/lib/_components/template/sub-tabs/sub-tabs.component.d.ts +0 -1
- package/lib/_components/template/three-column/three-column.component.d.ts +0 -1
- package/lib/_components/template/three-column-page/three-column-page.component.d.ts +0 -1
- package/lib/_components/template/two-column/two-column.component.d.ts +0 -1
- package/lib/_components/template/two-column-page/two-column-page.component.d.ts +0 -1
- package/lib/_components/template/two-column-tab/two-column-tab.component.d.ts +0 -1
- package/lib/_components/template/utils.d.ts +11 -0
- package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +0 -1
- package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +0 -1
- package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +3 -6
- package/lib/_components/widget/app-announcement/app-announcement.component.d.ts +0 -1
- package/lib/_components/widget/attachment/Attachment.types.d.ts +87 -0
- package/lib/_components/widget/attachment/AttachmentUtils.d.ts +17 -0
- package/lib/_components/widget/attachment/attachment.component.d.ts +18 -34
- package/lib/_components/widget/case-history/case-history.component.d.ts +0 -1
- package/lib/_components/widget/feed-container/feed-container.component.d.ts +2 -3
- package/lib/_components/widget/file-utility/file-utility.component.d.ts +3 -2
- package/lib/_components/widget/quick-create/quick-create.component.d.ts +0 -1
- package/lib/_components/widget/todo/todo.component.d.ts +5 -4
- package/lib/_components/widget/utility/utility.component.d.ts +0 -1
- package/lib/_helpers/field-group-utils.d.ts +1 -3
- package/lib/_helpers/filter-utils.d.ts +1 -3
- package/lib/_helpers/formatters/boolean.d.ts +1 -2
- package/lib/_helpers/formatters/common.d.ts +1 -1
- package/lib/_helpers/formatters/currency.d.ts +1 -2
- package/lib/_helpers/formatters/date.d.ts +1 -2
- package/lib/_helpers/formatters/index.d.ts +1 -2
- package/lib/_helpers/object-utils.d.ts +8 -0
- package/lib/_helpers/objectReference-utils.d.ts +6 -0
- package/lib/_helpers/semanticLink-utils.d.ts +9 -0
- package/lib/_helpers/tab-utils.d.ts +4 -0
- package/lib/_helpers/utils.d.ts +13 -1
- package/lib/_services/banner.service.d.ts +8 -0
- package/lib/_services/case.service.d.ts +1 -1
- package/lib/_services/data-reference-advanced-search.service.d.ts +9 -0
- package/lib/_services/datapage.service.d.ts +1 -1
- package/lib/_services/google-maps-loader.service.d.ts +7 -0
- package/package.json +20 -6
- package/public-api.d.ts +26 -9
- package/esm2022/lib/_bridge/angular-pconnect.mjs +0 -428
- package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +0 -107
- package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +0 -239
- package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +0 -142
- package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +0 -50
- package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +0 -29
- package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +0 -31
- package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +0 -51
- package/esm2022/lib/_components/designSystemExtension/field-group/field-group.component.mjs +0 -31
- package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +0 -83
- package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +0 -37
- package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +0 -34
- package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +0 -36
- package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +0 -25
- package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +0 -28
- package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +0 -42
- package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +0 -143
- package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +0 -33
- package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +0 -93
- package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +0 -18
- package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +0 -288
- package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +0 -96
- package/esm2022/lib/_components/field/check-box/check-box.component.mjs +0 -225
- package/esm2022/lib/_components/field/currency/currency.component.mjs +0 -190
- package/esm2022/lib/_components/field/date/date.component.mjs +0 -205
- package/esm2022/lib/_components/field/date-time/date-time.component.mjs +0 -183
- package/esm2022/lib/_components/field/decimal/decimal.component.mjs +0 -187
- package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +0 -292
- package/esm2022/lib/_components/field/email/email.component.mjs +0 -157
- package/esm2022/lib/_components/field/group/group.component.mjs +0 -64
- package/esm2022/lib/_components/field/integer/integer.component.mjs +0 -160
- package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +0 -44
- package/esm2022/lib/_components/field/multiselect/multiselect.component.mjs +0 -314
- package/esm2022/lib/_components/field/multiselect/utils.mjs +0 -187
- package/esm2022/lib/_components/field/percentage/percentage.component.mjs +0 -182
- package/esm2022/lib/_components/field/phone/phone.component.mjs +0 -160
- package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +0 -182
- package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +0 -102
- package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +0 -95
- package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +0 -57
- package/esm2022/lib/_components/field/text/text.component.mjs +0 -140
- package/esm2022/lib/_components/field/text-area/text-area.component.mjs +0 -157
- package/esm2022/lib/_components/field/text-content/text-content.component.mjs +0 -69
- package/esm2022/lib/_components/field/text-input/text-input.component.mjs +0 -157
- package/esm2022/lib/_components/field/time/time.component.mjs +0 -162
- package/esm2022/lib/_components/field/url/url.component.mjs +0 -157
- package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +0 -207
- package/esm2022/lib/_components/infra/Containers/base-components/flow-container-base.component.mjs +0 -18
- package/esm2022/lib/_components/infra/Containers/base-components/helper.mjs +0 -71
- package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +0 -490
- package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +0 -68
- package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +0 -24
- package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +0 -342
- package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +0 -32
- package/esm2022/lib/_components/infra/Containers/view-container/helper.mjs +0 -22
- package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +0 -211
- package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +0 -31
- package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +0 -382
- package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +0 -47
- package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +0 -87
- package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +0 -141
- package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +0 -18
- package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +0 -80
- package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +0 -136
- package/esm2022/lib/_components/infra/reference/reference.component.mjs +0 -133
- package/esm2022/lib/_components/infra/region/region.component.mjs +0 -33
- package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +0 -228
- package/esm2022/lib/_components/infra/stages/stages.component.mjs +0 -62
- package/esm2022/lib/_components/infra/view/view.component.mjs +0 -188
- package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +0 -156
- package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +0 -43
- package/esm2022/lib/_components/template/base/details-template-base.mjs +0 -56
- package/esm2022/lib/_components/template/base/form-template-base.mjs +0 -13
- package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +0 -101
- package/esm2022/lib/_components/template/case-view/case-view.component.mjs +0 -185
- package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +0 -68
- package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +0 -242
- package/esm2022/lib/_components/template/default-form/default-form.component.mjs +0 -49
- package/esm2022/lib/_components/template/details/details.component.mjs +0 -76
- package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +0 -45
- package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +0 -42
- package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +0 -39
- package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +0 -51
- package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +0 -48
- package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +0 -48
- package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +0 -65
- package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +0 -23
- package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +0 -122
- package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +0 -24
- package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +0 -22
- package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +0 -40
- package/esm2022/lib/_components/template/list-page/list-page.component.mjs +0 -14
- package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +0 -208
- package/esm2022/lib/_components/template/list-view/list-view.component.mjs +0 -1217
- package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +0 -60
- package/esm2022/lib/_components/template/list-view/utils.mjs +0 -662
- package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +0 -44
- package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +0 -30
- package/esm2022/lib/_components/template/one-column/one-column.component.mjs +0 -31
- package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +0 -16
- package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +0 -30
- package/esm2022/lib/_components/template/page/page.component.mjs +0 -52
- package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +0 -149
- package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +0 -138
- package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +0 -104
- package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +0 -270
- package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +0 -779
- package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +0 -129
- package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +0 -16
- package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +0 -67
- package/esm2022/lib/_components/template/three-column/three-column.component.mjs +0 -31
- package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +0 -16
- package/esm2022/lib/_components/template/two-column/two-column.component.mjs +0 -31
- package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +0 -40
- package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +0 -30
- package/esm2022/lib/_components/template/utils.mjs +0 -22
- package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +0 -31
- package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +0 -53
- package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +0 -137
- package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +0 -24
- package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +0 -393
- package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +0 -80
- package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +0 -521
- package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +0 -638
- package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +0 -57
- package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +0 -75
- package/esm2022/lib/_components/widget/todo/todo.component.mjs +0 -228
- package/esm2022/lib/_components/widget/utility/utility.component.mjs +0 -34
- package/esm2022/lib/_directives/thousand-seperator.directive.mjs +0 -28
- package/esm2022/lib/_helpers/case-utils.mjs +0 -71
- package/esm2022/lib/_helpers/common.mjs +0 -20
- package/esm2022/lib/_helpers/createstage-utils.mjs +0 -15
- package/esm2022/lib/_helpers/currency-utils.mjs +0 -57
- package/esm2022/lib/_helpers/date-format-utils.mjs +0 -68
- package/esm2022/lib/_helpers/event-util.mjs +0 -18
- package/esm2022/lib/_helpers/field-group-utils.mjs +0 -47
- package/esm2022/lib/_helpers/filter-utils.mjs +0 -105
- package/esm2022/lib/_helpers/formatters/boolean.mjs +0 -20
- package/esm2022/lib/_helpers/formatters/common.mjs +0 -14
- package/esm2022/lib/_helpers/formatters/currency-map.mjs +0 -903
- package/esm2022/lib/_helpers/formatters/currency.mjs +0 -68
- package/esm2022/lib/_helpers/formatters/date.mjs +0 -69
- package/esm2022/lib/_helpers/formatters/format-utils.mjs +0 -68
- package/esm2022/lib/_helpers/formatters/index.mjs +0 -124
- package/esm2022/lib/_helpers/instructions-utils.mjs +0 -36
- package/esm2022/lib/_helpers/tab-utils.mjs +0 -59
- package/esm2022/lib/_helpers/template-utils.mjs +0 -56
- package/esm2022/lib/_helpers/utils.mjs +0 -386
- package/esm2022/lib/_helpers/versionHelpers.mjs +0 -12
- package/esm2022/lib/_messages/error-messages.service.mjs +0 -31
- package/esm2022/lib/_messages/progress-spinner.service.mjs +0 -30
- package/esm2022/lib/_messages/update-worklist.service.mjs +0 -30
- package/esm2022/lib/_services/case.service.mjs +0 -32
- package/esm2022/lib/_services/datapage.service.mjs +0 -52
- package/esm2022/lib/_services/endpoints.mjs +0 -60
- package/esm2022/lib/_services/server-config.service.mjs +0 -52
- package/esm2022/lib/_types/PConnProps.interface.mjs +0 -2
- package/esm2022/pega-angular-sdk-components.mjs +0 -5
- package/esm2022/public-api.mjs +0 -141
- package/esm2022/sdk-local-component-map.mjs +0 -9
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { MatOptionModule } from '@angular/material/core';
|
|
5
|
-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
6
|
-
import { MatInputModule } from '@angular/material/input';
|
|
7
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
8
|
-
import { interval } from 'rxjs';
|
|
9
|
-
import { map, startWith } from 'rxjs/operators';
|
|
10
|
-
import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
|
|
11
|
-
import { handleEvent } from '../../../_helpers/event-util';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "../../../_bridge/angular-pconnect";
|
|
14
|
-
import * as i2 from "../../../_helpers/utils";
|
|
15
|
-
import * as i3 from "../../../_services/datapage.service";
|
|
16
|
-
import * as i4 from "@angular/common";
|
|
17
|
-
import * as i5 from "@angular/forms";
|
|
18
|
-
import * as i6 from "@angular/material/form-field";
|
|
19
|
-
import * as i7 from "@angular/material/input";
|
|
20
|
-
import * as i8 from "@angular/material/autocomplete";
|
|
21
|
-
import * as i9 from "@angular/material/core";
|
|
22
|
-
export class AutoCompleteComponent {
|
|
23
|
-
constructor(angularPConnect, cdRef, utils, dataPageService) {
|
|
24
|
-
this.angularPConnect = angularPConnect;
|
|
25
|
-
this.cdRef = cdRef;
|
|
26
|
-
this.utils = utils;
|
|
27
|
-
this.dataPageService = dataPageService;
|
|
28
|
-
// Used with AngularPConnect
|
|
29
|
-
this.angularPConnectData = {};
|
|
30
|
-
this.label$ = '';
|
|
31
|
-
this.value$ = '';
|
|
32
|
-
this.bRequired$ = false;
|
|
33
|
-
this.bReadonly$ = false;
|
|
34
|
-
this.bDisabled$ = false;
|
|
35
|
-
this.bVisible$ = true;
|
|
36
|
-
this.displayMode$ = '';
|
|
37
|
-
this.bHasForm$ = true;
|
|
38
|
-
this.componentReference = '';
|
|
39
|
-
this.columns = [];
|
|
40
|
-
this.fieldControl = new FormControl('', null);
|
|
41
|
-
this.filterValue = '';
|
|
42
|
-
}
|
|
43
|
-
async ngOnInit() {
|
|
44
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
45
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
46
|
-
this.controlName$ = this.angularPConnect.getComponentID(this);
|
|
47
|
-
// Then, continue on with other initialization
|
|
48
|
-
// call updateSelf when initializing
|
|
49
|
-
// this.updateSelf();
|
|
50
|
-
await this.checkAndUpdate();
|
|
51
|
-
if (this.formGroup$) {
|
|
52
|
-
// add control to formGroup
|
|
53
|
-
this.formGroup$.addControl(this.controlName$, this.fieldControl);
|
|
54
|
-
this.fieldControl.setValue(this.value$);
|
|
55
|
-
this.bHasForm$ = true;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.bReadonly$ = true;
|
|
59
|
-
this.bHasForm$ = false;
|
|
60
|
-
}
|
|
61
|
-
this.filteredOptions = this.fieldControl.valueChanges.pipe(startWith(''), map(value => this._filter(value || '')));
|
|
62
|
-
}
|
|
63
|
-
ngOnDestroy() {
|
|
64
|
-
if (this.formGroup$) {
|
|
65
|
-
this.formGroup$.removeControl(this.controlName$);
|
|
66
|
-
}
|
|
67
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
68
|
-
this.angularPConnectData.unsubscribeFn();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
_filter(value) {
|
|
72
|
-
const filterVal = (value || this.filterValue).toLowerCase();
|
|
73
|
-
return this.options$?.filter(option => option.value?.toLowerCase().includes(filterVal));
|
|
74
|
-
}
|
|
75
|
-
// Callback passed when subscribing to store change
|
|
76
|
-
async onStateChange() {
|
|
77
|
-
await this.checkAndUpdate();
|
|
78
|
-
}
|
|
79
|
-
async checkAndUpdate() {
|
|
80
|
-
// Should always check the bridge to see if the component should
|
|
81
|
-
// update itself (re-render)
|
|
82
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
83
|
-
// ONLY call updateSelf when the component should update
|
|
84
|
-
if (bUpdateSelf) {
|
|
85
|
-
await this.updateSelf();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// updateSelf
|
|
89
|
-
async updateSelf() {
|
|
90
|
-
// starting very simple...
|
|
91
|
-
// moved this from ngOnInit() and call this from there instead...
|
|
92
|
-
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
93
|
-
if (this.configProps$.value != undefined) {
|
|
94
|
-
const index = this.options$?.findIndex(element => element.key === this.configProps$.value);
|
|
95
|
-
this.value$ = index > -1 ? this.options$[index].value : this.configProps$.value;
|
|
96
|
-
}
|
|
97
|
-
this.setPropertyValuesFromProps();
|
|
98
|
-
this.actionsApi = this.pConn$.getActionsApi();
|
|
99
|
-
this.propName = this.pConn$.getStateProps().value;
|
|
100
|
-
const context = this.pConn$.getContextName();
|
|
101
|
-
const { columns, datasource } = this.generateColumnsAndDataSource();
|
|
102
|
-
if (columns) {
|
|
103
|
-
this.columns = this.preProcessColumns(columns);
|
|
104
|
-
}
|
|
105
|
-
// timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
|
|
106
|
-
setTimeout(() => {
|
|
107
|
-
if (this.configProps$.required != null) {
|
|
108
|
-
this.bRequired$ = this.utils.getBooleanValue(this.configProps$.required);
|
|
109
|
-
}
|
|
110
|
-
this.cdRef.detectChanges();
|
|
111
|
-
});
|
|
112
|
-
if (this.configProps$.visibility != null) {
|
|
113
|
-
this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
|
|
114
|
-
}
|
|
115
|
-
// disabled
|
|
116
|
-
if (this.configProps$.disabled != undefined) {
|
|
117
|
-
this.bDisabled$ = this.utils.getBooleanValue(this.configProps$.disabled);
|
|
118
|
-
}
|
|
119
|
-
if (this.bDisabled$) {
|
|
120
|
-
this.fieldControl.disable();
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
this.fieldControl.enable();
|
|
124
|
-
}
|
|
125
|
-
if (this.configProps$.readOnly != null) {
|
|
126
|
-
this.bReadonly$ = this.utils.getBooleanValue(this.configProps$.readOnly);
|
|
127
|
-
}
|
|
128
|
-
this.componentReference = this.pConn$.getStateProps().value;
|
|
129
|
-
if (this.listType === 'associated') {
|
|
130
|
-
this.options$ = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject('')); // 1st arg empty string until typedef marked correctly
|
|
131
|
-
}
|
|
132
|
-
if (!this.displayMode$ && this.listType !== 'associated') {
|
|
133
|
-
const results = await this.dataPageService.getDataPageData(datasource, this.parameters, context);
|
|
134
|
-
this.fillOptions(results);
|
|
135
|
-
}
|
|
136
|
-
// trigger display of error message with field control
|
|
137
|
-
if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
|
|
138
|
-
const timer = interval(100).subscribe(() => {
|
|
139
|
-
this.fieldControl.setErrors({ message: true });
|
|
140
|
-
this.fieldControl.markAsTouched();
|
|
141
|
-
timer.unsubscribe();
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
setPropertyValuesFromProps() {
|
|
146
|
-
this.testId = this.configProps$.testId;
|
|
147
|
-
this.label$ = this.configProps$.label;
|
|
148
|
-
this.placeholder = this.configProps$.placeholder || '';
|
|
149
|
-
this.displayMode$ = this.configProps$.displayMode;
|
|
150
|
-
this.listType = this.configProps$.listType;
|
|
151
|
-
this.hideLabel = this.configProps$.hideLabel;
|
|
152
|
-
this.helperText = this.configProps$.helperText;
|
|
153
|
-
this.parameters = this.configProps$?.parameters;
|
|
154
|
-
}
|
|
155
|
-
generateColumnsAndDataSource() {
|
|
156
|
-
let datasource = this.configProps$.datasource;
|
|
157
|
-
let columns = this.configProps$.columns;
|
|
158
|
-
// const { deferDatasource, datasourceMetadata } = this.configProps$;
|
|
159
|
-
const { deferDatasource, datasourceMetadata } = this.pConn$.getConfigProps();
|
|
160
|
-
// convert associated to datapage listtype and transform props
|
|
161
|
-
// Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList
|
|
162
|
-
if (deferDatasource && datasourceMetadata?.datasource?.name) {
|
|
163
|
-
this.listType = 'datapage';
|
|
164
|
-
datasource = datasourceMetadata.datasource.name;
|
|
165
|
-
const { parameters, propertyForDisplayText, propertyForValue } = datasourceMetadata.datasource;
|
|
166
|
-
this.parameters = this.flattenParameters(parameters);
|
|
167
|
-
const displayProp = propertyForDisplayText?.startsWith('@P') ? propertyForDisplayText.substring(3) : propertyForDisplayText;
|
|
168
|
-
const valueProp = propertyForValue?.startsWith('@P') ? propertyForValue.substring(3) : propertyForValue;
|
|
169
|
-
columns = [
|
|
170
|
-
{
|
|
171
|
-
key: 'true',
|
|
172
|
-
setProperty: 'Associated property',
|
|
173
|
-
value: valueProp
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
display: 'true',
|
|
177
|
-
primary: 'true',
|
|
178
|
-
useForSearch: true,
|
|
179
|
-
value: displayProp
|
|
180
|
-
}
|
|
181
|
-
];
|
|
182
|
-
}
|
|
183
|
-
return { columns, datasource };
|
|
184
|
-
}
|
|
185
|
-
fillOptions(results) {
|
|
186
|
-
const optionsData = [];
|
|
187
|
-
const displayColumn = this.getDisplayFieldsMetaData(this.columns);
|
|
188
|
-
results?.forEach(element => {
|
|
189
|
-
const obj = {
|
|
190
|
-
key: element[displayColumn.key] || element.pyGUID,
|
|
191
|
-
value: element[displayColumn.primary]?.toString()
|
|
192
|
-
};
|
|
193
|
-
optionsData.push(obj);
|
|
194
|
-
});
|
|
195
|
-
this.options$ = optionsData;
|
|
196
|
-
}
|
|
197
|
-
flattenParameters(params = {}) {
|
|
198
|
-
const flatParams = {};
|
|
199
|
-
Object.keys(params).forEach(key => {
|
|
200
|
-
const { name, value: theVal } = params[key];
|
|
201
|
-
flatParams[name] = theVal;
|
|
202
|
-
});
|
|
203
|
-
return flatParams;
|
|
204
|
-
}
|
|
205
|
-
getDisplayFieldsMetaData(columnList) {
|
|
206
|
-
const displayColumns = columnList.filter(col => col.display === 'true');
|
|
207
|
-
const metaDataObj = { key: '', primary: '', secondary: [] };
|
|
208
|
-
const keyCol = columnList.filter(col => col.key === 'true');
|
|
209
|
-
metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';
|
|
210
|
-
for (let index = 0; index < displayColumns.length; index += 1) {
|
|
211
|
-
if (displayColumns[index].primary === 'true') {
|
|
212
|
-
metaDataObj.primary = displayColumns[index].value;
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
metaDataObj.secondary.push(displayColumns[index].value);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return metaDataObj;
|
|
219
|
-
}
|
|
220
|
-
preProcessColumns(columnList) {
|
|
221
|
-
return columnList?.map(col => {
|
|
222
|
-
const tempColObj = { ...col };
|
|
223
|
-
tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;
|
|
224
|
-
return tempColObj;
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
fieldOnChange(event) {
|
|
228
|
-
// this works - this.pConn$.setValue( this.componentReference, `property: ${this.componentReference}`);
|
|
229
|
-
// this works - this.pConn$.setValue( this.componentReference, this.fieldControl.value);
|
|
230
|
-
// PConnect wants to use changeHandler for onChange
|
|
231
|
-
// this.angularPConnect.changeHandler( this, event);
|
|
232
|
-
const value = event.target.value;
|
|
233
|
-
this.filterValue = value;
|
|
234
|
-
handleEvent(this.actionsApi, 'change', this.propName, value);
|
|
235
|
-
}
|
|
236
|
-
optionChanged(event) {
|
|
237
|
-
const value = event?.option?.value;
|
|
238
|
-
handleEvent(this.actionsApi, 'change', this.propName, value);
|
|
239
|
-
}
|
|
240
|
-
fieldOnBlur(event) {
|
|
241
|
-
let key = '';
|
|
242
|
-
const el = event?.target;
|
|
243
|
-
if (el?.value) {
|
|
244
|
-
const index = this.options$?.findIndex(element => element.value === el.value);
|
|
245
|
-
key = index > -1 ? (key = this.options$[index].key) : el.value;
|
|
246
|
-
}
|
|
247
|
-
const value = key;
|
|
248
|
-
handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
|
|
249
|
-
if (this.configProps$?.onRecordChange) {
|
|
250
|
-
el.value = value;
|
|
251
|
-
this.configProps$.onRecordChange(event);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
getErrorMessage() {
|
|
255
|
-
let errMessage = '';
|
|
256
|
-
// look for validation messages for json, pre-defined or just an error pushed from workitem (400)
|
|
257
|
-
if (this.fieldControl.hasError('message')) {
|
|
258
|
-
errMessage = this.angularPConnectData.validateMessage ?? '';
|
|
259
|
-
return errMessage;
|
|
260
|
-
}
|
|
261
|
-
if (this.fieldControl.hasError('required')) {
|
|
262
|
-
errMessage = 'You must enter a value';
|
|
263
|
-
}
|
|
264
|
-
else if (this.fieldControl.errors) {
|
|
265
|
-
errMessage = this.fieldControl.errors.toString();
|
|
266
|
-
}
|
|
267
|
-
return errMessage;
|
|
268
|
-
}
|
|
269
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.Utils }, { token: i3.DatapageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
270
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: AutoCompleteComponent, isStandalone: true, selector: "app-auto-complete", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, hideLabel }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n (input)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n <span>{{ opt.value }}</span>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i4.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i0.forwardRef(() => i4.AsyncPipe), name: "async" }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i5.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i5.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i5.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i5.RequiredValidator), selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i0.forwardRef(() => i5.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i5.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i6.MatFormField), selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i0.forwardRef(() => i6.MatLabel), selector: "mat-label" }, { kind: "directive", type: i0.forwardRef(() => i6.MatError), selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatInputModule) }, { kind: "directive", type: i0.forwardRef(() => i7.MatInput), selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatAutocompleteModule) }, { kind: "component", type: i0.forwardRef(() => i8.MatAutocomplete), selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i0.forwardRef(() => i9.MatOption), selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i0.forwardRef(() => i8.MatAutocompleteTrigger), selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatOptionModule) }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
271
|
-
}
|
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
273
|
-
type: Component,
|
|
274
|
-
args: [{ selector: 'app-auto-complete', standalone: true, imports: [
|
|
275
|
-
CommonModule,
|
|
276
|
-
ReactiveFormsModule,
|
|
277
|
-
MatFormFieldModule,
|
|
278
|
-
MatInputModule,
|
|
279
|
-
MatAutocompleteModule,
|
|
280
|
-
MatOptionModule,
|
|
281
|
-
forwardRef(() => ComponentMapperComponent)
|
|
282
|
-
], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, hideLabel }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n <mat-label>{{ label$ }}</mat-label>\n <input\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"fieldControl\"\n [attr.data-test-id]=\"testId\"\n [value]=\"value$\"\n [required]=\"bRequired$\"\n [matAutocomplete]=\"auto\"\n (input)=\"fieldOnChange($event)\"\n (blur)=\"fieldOnBlur($event)\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n <span>{{ opt.value }}</span>\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n", styles: [".psdk-full-width{width:100%}.psdk-label-readonly{font-size:1rem;display:block;transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.psdk-data-readonly{padding-top:.625rem;width:100%}::ng-deep .mat-mdc-form-field-infix{width:auto}\n"] }]
|
|
283
|
-
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.Utils }, { type: i3.DatapageService }], propDecorators: { pConn$: [{
|
|
284
|
-
type: Input
|
|
285
|
-
}], formGroup$: [{
|
|
286
|
-
type: Input
|
|
287
|
-
}] } });
|
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvZmllbGQvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQXFCLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7QUE4QjNELE1BQU0sT0FBTyxxQkFBcUI7SUFp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QUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO3FCQUMzQzs2S0FHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhcGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvZGF0YXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBoYW5kbGVFdmVudCB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL2V2ZW50LXV0aWwnO1xuaW1wb3J0IHsgUENvbm5GaWVsZFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL1BDb25uUHJvcHMuaW50ZXJmYWNlJztcblxuaW50ZXJmYWNlIEF1dG9Db21wbGV0ZVByb3BzIGV4dGVuZHMgUENvbm5GaWVsZFByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiBBdXRvQ29tcGxldGUgaGVyZVxuICBkZWZlckRhdGFzb3VyY2U/OiBib29sZWFuO1xuICBkYXRhc291cmNlTWV0YWRhdGE/OiBhbnk7XG4gIG9uUmVjb3JkQ2hhbmdlPzogYW55O1xuICBhZGRpdGlvbmFsUHJvcHM/OiBvYmplY3Q7XG4gIGxpc3RUeXBlOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM/OiBhbnk7XG4gIGRhdGFzb3VyY2U6IGFueTtcbiAgY29sdW1uczogYW55W107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hdXRvLWNvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudClcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgLy8gVXNlZCB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG4gIGNvbmZpZ1Byb3BzJDogQXV0b0NvbXBsZXRlUHJvcHM7XG5cbiAgbGFiZWwkID0gJyc7XG4gIHZhbHVlJCA9ICcnO1xuICBiUmVxdWlyZWQkID0gZmFsc2U7XG4gIGJSZWFkb25seSQgPSBmYWxzZTtcbiAgYkRpc2FibGVkJCA9IGZhbHNlO1xuICBiVmlzaWJsZSQgPSB0cnVlO1xuICBkaXNwbGF5TW9kZSQ/OiBzdHJpbmcgPSAnJztcbiAgY29udHJvbE5hbWUkOiBzdHJpbmc7XG4gIGJIYXNGb3JtJCA9IHRydWU7XG4gIG9wdGlvbnMkOiBhbnlbXTtcbiAgY29tcG9uZW50UmVmZXJlbmNlID0gJyc7XG4gIHRlc3RJZDogc3RyaW5nO1xuICBsaXN0VHlwZTogc3RyaW5nO1xuICBjb2x1bW5zID0gW107XG4gIGhlbHBlclRleHQ6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBmaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIG51bGwpO1xuICBwYXJhbWV0ZXJzOiB7fTtcbiAgaGlkZUxhYmVsOiBib29sZWFuO1xuICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8YW55W10+O1xuICBmaWx0ZXJWYWx1ZSA9ICcnO1xuICBhY3Rpb25zQXBpOiBPYmplY3Q7XG4gIHByb3BOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHMsXG4gICAgcHJpdmF0ZSBkYXRhUGFnZVNlcnZpY2U6IERhdGFwYWdlU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgdGhpcy5jb250cm9sTmFtZSQgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKTtcblxuICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgIC8vIGNhbGwgdXBkYXRlU2VsZiB3aGVuIGluaXRpYWxpemluZ1xuICAgIC8vIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIGF3YWl0IHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCQpIHtcbiAgICAgIC8vIGFkZCBjb250cm9sIHRvIGZvcm1Hcm91cFxuICAgICAgdGhpcy5mb3JtR3JvdXAkLmFkZENvbnRyb2wodGhpcy5jb250cm9sTmFtZSQsIHRoaXMuZmllbGRDb250cm9sKTtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUkKTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iUmVhZG9ubHkkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYkhhc0Zvcm0kID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLmZpZWxkQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5fZmlsdGVyKCh2YWx1ZSBhcyBzdHJpbmcpIHx8ICcnKSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwJCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAkLnJlbW92ZUNvbnRyb2wodGhpcy5jb250cm9sTmFtZSQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWwgPSAodmFsdWUgfHwgdGhpcy5maWx0ZXJWYWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zJD8uZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udmFsdWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsKSk7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgYXN5bmMgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICBhd2FpdCB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBhc3luYyBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgYXN5bmMgdXBkYXRlU2VsZigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBzdGFydGluZyB2ZXJ5IHNpbXBsZS4uLlxuXG4gICAgLy8gbW92ZWQgdGhpcyBmcm9tIG5nT25Jbml0KCkgYW5kIGNhbGwgdGhpcyBmcm9tIHRoZXJlIGluc3RlYWQuLi5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBBdXRvQ29tcGxldGVQcm9wcztcblxuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJC52YWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zJD8uZmluZEluZGV4KGVsZW1lbnQgPT4gZWxlbWVudC5rZXkgPT09IHRoaXMuY29uZmlnUHJvcHMkLnZhbHVlKTtcbiAgICAgIHRoaXMudmFsdWUkID0gaW5kZXggPiAtMSA/IHRoaXMub3B0aW9ucyRbaW5kZXhdLnZhbHVlIDogdGhpcy5jb25maWdQcm9wcyQudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRQcm9wZXJ0eVZhbHVlc0Zyb21Qcm9wcygpO1xuXG4gICAgdGhpcy5hY3Rpb25zQXBpID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIHRoaXMucHJvcE5hbWUgPSB0aGlzLnBDb25uJC5nZXRTdGF0ZVByb3BzKCkudmFsdWU7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBjb25zdCB7IGNvbHVtbnMsIGRhdGFzb3VyY2UgfSA9IHRoaXMuZ2VuZXJhdGVDb2x1bW5zQW5kRGF0YVNvdXJjZSgpO1xuXG4gICAgaWYgKGNvbHVtbnMpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMucHJlUHJvY2Vzc0NvbHVtbnMoY29sdW1ucyk7XG4gICAgfVxuICAgIC8vIHRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlcXVpcmVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5iUmVxdWlyZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHkpO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGVkXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLmRpc2FibGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5iRGlzYWJsZWQkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJEaXNhYmxlZCQpIHtcbiAgICAgIHRoaXMuZmllbGRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuYlJlYWRvbmx5JCA9IHRoaXMudXRpbHMuZ2V0Qm9vbGVhblZhbHVlKHRoaXMuY29uZmlnUHJvcHMkLnJlYWRPbmx5KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSA9IHRoaXMucENvbm4kLmdldFN0YXRlUHJvcHMoKS52YWx1ZTtcbiAgICBpZiAodGhpcy5saXN0VHlwZSA9PT0gJ2Fzc29jaWF0ZWQnKSB7XG4gICAgICB0aGlzLm9wdGlvbnMkID0gdGhpcy51dGlscy5nZXRPcHRpb25MaXN0KHRoaXMuY29uZmlnUHJvcHMkLCB0aGlzLnBDb25uJC5nZXREYXRhT2JqZWN0KCcnKSk7IC8vIDFzdCBhcmcgZW1wdHkgc3RyaW5nIHVudGlsIHR5cGVkZWYgbWFya2VkIGNvcnJlY3RseVxuICAgIH1cblxuICAgIGlmICghdGhpcy5kaXNwbGF5TW9kZSQgJiYgdGhpcy5saXN0VHlwZSAhPT0gJ2Fzc29jaWF0ZWQnKSB7XG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5kYXRhUGFnZVNlcnZpY2UuZ2V0RGF0YVBhZ2VEYXRhKGRhdGFzb3VyY2UsIHRoaXMucGFyYW1ldGVycywgY29udGV4dCk7XG4gICAgICB0aGlzLmZpbGxPcHRpb25zKHJlc3VsdHMpO1xuICAgIH1cblxuICAgIC8vIHRyaWdnZXIgZGlzcGxheSBvZiBlcnJvciBtZXNzYWdlIHdpdGggZmllbGQgY29udHJvbFxuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlICE9IG51bGwgJiYgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnZhbGlkYXRlTWVzc2FnZSAhPSAnJykge1xuICAgICAgY29uc3QgdGltZXIgPSBpbnRlcnZhbCgxMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLnNldEVycm9ycyh7IG1lc3NhZ2U6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuZmllbGRDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICB0aW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UHJvcGVydHlWYWx1ZXNGcm9tUHJvcHMoKSB7XG4gICAgdGhpcy50ZXN0SWQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZXN0SWQ7XG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5sYWJlbDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5jb25maWdQcm9wcyQucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgdGhpcy5kaXNwbGF5TW9kZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kaXNwbGF5TW9kZTtcbiAgICB0aGlzLmxpc3RUeXBlID0gdGhpcy5jb25maWdQcm9wcyQubGlzdFR5cGU7XG4gICAgdGhpcy5oaWRlTGFiZWwgPSB0aGlzLmNvbmZpZ1Byb3BzJC5oaWRlTGFiZWw7XG4gICAgdGhpcy5oZWxwZXJUZXh0ID0gdGhpcy5jb25maWdQcm9wcyQuaGVscGVyVGV4dDtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB0aGlzLmNvbmZpZ1Byb3BzJD8ucGFyYW1ldGVycztcbiAgfVxuXG4gIGdlbmVyYXRlQ29sdW1uc0FuZERhdGFTb3VyY2UoKSB7XG4gICAgbGV0IGRhdGFzb3VyY2UgPSB0aGlzLmNvbmZpZ1Byb3BzJC5kYXRhc291cmNlO1xuICAgIGxldCBjb2x1bW5zID0gdGhpcy5jb25maWdQcm9wcyQuY29sdW1ucztcbiAgICAvLyBjb25zdCB7IGRlZmVyRGF0YXNvdXJjZSwgZGF0YXNvdXJjZU1ldGFkYXRhIH0gPSB0aGlzLmNvbmZpZ1Byb3BzJDtcbiAgICBjb25zdCB7IGRlZmVyRGF0YXNvdXJjZSwgZGF0YXNvdXJjZU1ldGFkYXRhIH0gPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpO1xuICAgIC8vIGNvbnZlcnQgYXNzb2NpYXRlZCB0byBkYXRhcGFnZSBsaXN0dHlwZSBhbmQgdHJhbnNmb3JtIHByb3BzXG4gICAgLy8gUHJvY2VzcyBkZWZlckRhdGFzb3VyY2Ugd2hlbiBkYXRhcGFnZSBuYW1lIGlzIHByZXNlbnQuIFdIaGVuIHRhYmxlVHlwZSBpcyBwcm9tcHRMaXN0IC8gbG9jYWxMaXN0XG4gICAgaWYgKGRlZmVyRGF0YXNvdXJjZSAmJiBkYXRhc291cmNlTWV0YWRhdGE/LmRhdGFzb3VyY2U/Lm5hbWUpIHtcbiAgICAgIHRoaXMubGlzdFR5cGUgPSAnZGF0YXBhZ2UnO1xuICAgICAgZGF0YXNvdXJjZSA9IGRhdGFzb3VyY2VNZXRhZGF0YS5kYXRhc291cmNlLm5hbWU7XG4gICAgICBjb25zdCB7IHBhcmFtZXRlcnMsIHByb3BlcnR5Rm9yRGlzcGxheVRleHQsIHByb3BlcnR5Rm9yVmFsdWUgfSA9IGRhdGFzb3VyY2VNZXRhZGF0YS5kYXRhc291cmNlO1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5mbGF0dGVuUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgIGNvbnN0IGRpc3BsYXlQcm9wID0gcHJvcGVydHlGb3JEaXNwbGF5VGV4dD8uc3RhcnRzV2l0aCgnQFAnKSA/IHByb3BlcnR5Rm9yRGlzcGxheVRleHQuc3Vic3RyaW5nKDMpIDogcHJvcGVydHlGb3JEaXNwbGF5VGV4dDtcbiAgICAgIGNvbnN0IHZhbHVlUHJvcCA9IHByb3BlcnR5Rm9yVmFsdWU/LnN0YXJ0c1dpdGgoJ0BQJykgPyBwcm9wZXJ0eUZvclZhbHVlLnN1YnN0cmluZygzKSA6IHByb3BlcnR5Rm9yVmFsdWU7XG4gICAgICBjb2x1bW5zID0gW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiAndHJ1ZScsXG4gICAgICAgICAgc2V0UHJvcGVydHk6ICdBc3NvY2lhdGVkIHByb3BlcnR5JyxcbiAgICAgICAgICB2YWx1ZTogdmFsdWVQcm9wXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkaXNwbGF5OiAndHJ1ZScsXG4gICAgICAgICAgcHJpbWFyeTogJ3RydWUnLFxuICAgICAgICAgIHVzZUZvclNlYXJjaDogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogZGlzcGxheVByb3BcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBjb2x1bW5zLCBkYXRhc291cmNlIH07XG4gIH1cblxuICBmaWxsT3B0aW9ucyhyZXN1bHRzOiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb25zRGF0YTogYW55W10gPSBbXTtcbiAgICBjb25zdCBkaXNwbGF5Q29sdW1uID0gdGhpcy5nZXREaXNwbGF5RmllbGRzTWV0YURhdGEodGhpcy5jb2x1bW5zKTtcbiAgICByZXN1bHRzPy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICBrZXk6IGVsZW1lbnRbZGlzcGxheUNvbHVtbi5rZXldIHx8IGVsZW1lbnQucHlHVUlELFxuICAgICAgICB2YWx1ZTogZWxlbWVudFtkaXNwbGF5Q29sdW1uLnByaW1hcnldPy50b1N0cmluZygpXG4gICAgICB9O1xuICAgICAgb3B0aW9uc0RhdGEucHVzaChvYmopO1xuICAgIH0pO1xuICAgIHRoaXMub3B0aW9ucyQgPSBvcHRpb25zRGF0YTtcbiAgfVxuXG4gIGZsYXR0ZW5QYXJhbWV0ZXJzKHBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgZmxhdFBhcmFtcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lLCB2YWx1ZTogdGhlVmFsIH0gPSBwYXJhbXNba2V5XTtcbiAgICAgIGZsYXRQYXJhbXNbbmFtZV0gPSB0aGVWYWw7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmxhdFBhcmFtcztcbiAgfVxuXG4gIGdldERpc3BsYXlGaWVsZHNNZXRhRGF0YShjb2x1bW5MaXN0KSB7XG4gICAgY29uc3QgZGlzcGxheUNvbHVtbnMgPSBjb2x1bW5MaXN0LmZpbHRlcihjb2wgPT4gY29sLmRpc3BsYXkgPT09ICd0cnVlJyk7XG4gICAgY29uc3QgbWV0YURhdGFPYmo6IGFueSA9IHsga2V5OiAnJywgcHJpbWFyeTogJycsIHNlY29uZGFyeTogW10gfTtcbiAgICBjb25zdCBrZXlDb2wgPSBjb2x1bW5MaXN0LmZpbHRlcihjb2wgPT4gY29sLmtleSA9PT0gJ3RydWUnKTtcbiAgICBtZXRhRGF0YU9iai5rZXkgPSBrZXlDb2wubGVuZ3RoID4gMCA/IGtleUNvbFswXS52YWx1ZSA6ICdhdXRvJztcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGlzcGxheUNvbHVtbnMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBpZiAoZGlzcGxheUNvbHVtbnNbaW5kZXhdLnByaW1hcnkgPT09ICd0cnVlJykge1xuICAgICAgICBtZXRhRGF0YU9iai5wcmltYXJ5ID0gZGlzcGxheUNvbHVtbnNbaW5kZXhdLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWV0YURhdGFPYmouc2Vjb25kYXJ5LnB1c2goZGlzcGxheUNvbHVtbnNbaW5kZXhdLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1ldGFEYXRhT2JqO1xuICB9XG5cbiAgcHJlUHJvY2Vzc0NvbHVtbnMoY29sdW1uTGlzdCkge1xuICAgIHJldHVybiBjb2x1bW5MaXN0Py5tYXAoY29sID0+IHtcbiAgICAgIGNvbnN0IHRlbXBDb2xPYmogPSB7IC4uLmNvbCB9O1xuICAgICAgdGVtcENvbE9iai52YWx1ZSA9IGNvbC52YWx1ZSAmJiBjb2wudmFsdWUuc3RhcnRzV2l0aCgnLicpID8gY29sLnZhbHVlLnN1YnN0cmluZygxKSA6IGNvbC52YWx1ZTtcbiAgICAgIHJldHVybiB0ZW1wQ29sT2JqO1xuICAgIH0pO1xuICB9XG5cbiAgZmllbGRPbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAvLyB0aGlzIHdvcmtzIC0gdGhpcy5wQ29ubiQuc2V0VmFsdWUoIHRoaXMuY29tcG9uZW50UmVmZXJlbmNlLCBgcHJvcGVydHk6ICR7dGhpcy5jb21wb25lbnRSZWZlcmVuY2V9YCk7XG4gICAgLy8gdGhpcyB3b3JrcyAtIHRoaXMucENvbm4kLnNldFZhbHVlKCB0aGlzLmNvbXBvbmVudFJlZmVyZW5jZSwgdGhpcy5maWVsZENvbnRyb2wudmFsdWUpO1xuICAgIC8vIFBDb25uZWN0IHdhbnRzIHRvIHVzZSBjaGFuZ2VIYW5kbGVyIGZvciBvbkNoYW5nZVxuICAgIC8vIHRoaXMuYW5ndWxhclBDb25uZWN0LmNoYW5nZUhhbmRsZXIoIHRoaXMsIGV2ZW50KTtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5maWx0ZXJWYWx1ZSA9IHZhbHVlO1xuICAgIGhhbmRsZUV2ZW50KHRoaXMuYWN0aW9uc0FwaSwgJ2NoYW5nZScsIHRoaXMucHJvcE5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIG9wdGlvbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQ/Lm9wdGlvbj8udmFsdWU7XG4gICAgaGFuZGxlRXZlbnQodGhpcy5hY3Rpb25zQXBpLCAnY2hhbmdlJywgdGhpcy5wcm9wTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgZmllbGRPbkJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgbGV0IGtleSA9ICcnO1xuICAgIGNvbnN0IGVsID0gZXZlbnQ/LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmIChlbD8udmFsdWUpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25zJD8uZmluZEluZGV4KGVsZW1lbnQgPT4gZWxlbWVudC52YWx1ZSA9PT0gZWwudmFsdWUpO1xuICAgICAga2V5ID0gaW5kZXggPiAtMSA/IChrZXkgPSB0aGlzLm9wdGlvbnMkW2luZGV4XS5rZXkpIDogZWwudmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0ga2V5O1xuICAgIGhhbmRsZUV2ZW50KHRoaXMuYWN0aW9uc0FwaSwgJ2NoYW5nZU5ibHVyJywgdGhpcy5wcm9wTmFtZSwgdmFsdWUpO1xuICAgIGlmICh0aGlzLmNvbmZpZ1Byb3BzJD8ub25SZWNvcmRDaGFuZ2UpIHtcbiAgICAgIGVsLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmNvbmZpZ1Byb3BzJC5vblJlY29yZENoYW5nZShldmVudCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xuICAgIGxldCBlcnJNZXNzYWdlID0gJyc7XG5cbiAgICAvLyBsb29rIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2VzIGZvciBqc29uLCBwcmUtZGVmaW5lZCBvciBqdXN0IGFuIGVycm9yIHB1c2hlZCBmcm9tIHdvcmtpdGVtICg0MDApXG4gICAgaWYgKHRoaXMuZmllbGRDb250cm9sLmhhc0Vycm9yKCdtZXNzYWdlJykpIHtcbiAgICAgIGVyck1lc3NhZ2UgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudmFsaWRhdGVNZXNzYWdlID8/ICcnO1xuICAgICAgcmV0dXJuIGVyck1lc3NhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpZWxkQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgZXJyTWVzc2FnZSA9ICdZb3UgbXVzdCBlbnRlciBhIHZhbHVlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRDb250cm9sLmVycm9ycykge1xuICAgICAgZXJyTWVzc2FnZSA9IHRoaXMuZmllbGRDb250cm9sLmVycm9ycy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJNZXNzYWdlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZGlzcGxheU1vZGUkOyBlbHNlIG5vRGlzcGxheU1vZGVcIj5cbiAgPGNvbXBvbmVudC1tYXBwZXIgKm5nSWY9XCJiVmlzaWJsZSQgIT09IGZhbHNlXCIgbmFtZT1cIkZpZWxkVmFsdWVMaXN0XCIgW3Byb3BzXT1cInsgbGFiZWwkLCB2YWx1ZSQsIGRpc3BsYXlNb2RlJCwgaGlkZUxhYmVsIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9EaXNwbGF5TW9kZT5cbiAgPGRpdiAqbmdJZj1cIiFiUmVhZG9ubHkkICYmIGJIYXNGb3JtJDsgZWxzZSBub0VkaXRcIj5cbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwJFwiICpuZ0lmPVwiYlZpc2libGUkXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLWZ1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgW2hpbnRMYWJlbF09XCJoZWxwZXJUZXh0XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwkIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmllbGRDb250cm9sXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgICAgICAgICBbdmFsdWVdPVwidmFsdWUkXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwiYlJlcXVpcmVkJFwiXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZmllbGRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJmaWVsZE9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBhdXRvQWN0aXZlRmlyc3RPcHRpb24gKG9wdGlvblNlbGVjdGVkKT1cIm9wdGlvbkNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHQgb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0LnZhbHVlXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBvcHQudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmaWVsZENvbnRyb2wuaW52YWxpZFwiPnt7IGdldEVycm9yTWVzc2FnZSgpIH19PC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI25vRWRpdD5cbiAgPGNvbXBvbmVudC1tYXBwZXIgKm5nSWY9XCJiVmlzaWJsZSQgIT09IGZhbHNlXCIgbmFtZT1cIlRleHRcIiBbcHJvcHNdPVwieyBwQ29ubiQsIGZvcm1hdEFzJDogJ3RleHQnIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
-
import { MatGridListModule } from '@angular/material/grid-list';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../../_messages/progress-spinner.service";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "@angular/material/grid-list";
|
|
9
|
-
import * as i4 from "@angular/material/button";
|
|
10
|
-
export class CancelAlertComponent {
|
|
11
|
-
constructor(psService) {
|
|
12
|
-
this.psService = psService;
|
|
13
|
-
this.onAlertState$ = new EventEmitter();
|
|
14
|
-
this.localeCategory = 'ModalContainer';
|
|
15
|
-
}
|
|
16
|
-
ngOnChanges() {
|
|
17
|
-
if (this.bShowAlert$) {
|
|
18
|
-
this.psService.sendMessage(false);
|
|
19
|
-
const contextName = this.pConn$.getContextName();
|
|
20
|
-
const caseInfo = this.pConn$.getCaseInfo();
|
|
21
|
-
const caseName = caseInfo.getName();
|
|
22
|
-
const ID = caseInfo.getID();
|
|
23
|
-
this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
24
|
-
this.itemKey = contextName;
|
|
25
|
-
this.heading$ = `Delete ${caseName} (${ID})`;
|
|
26
|
-
this.body1$ = `${this.localizedVal('Are you sure you want to delete ', this.localeCategory) + caseName} (${ID})?`;
|
|
27
|
-
this.body2$ = this.localizedVal('Alternatively, you can continue working or save your work for later.', this.localeCategory);
|
|
28
|
-
// this.onAlertState$.emit(true);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
dismissAlert() {
|
|
32
|
-
this.bShowAlert$ = false;
|
|
33
|
-
this.onAlertState$.emit(false);
|
|
34
|
-
}
|
|
35
|
-
dismissAlertOnly() {
|
|
36
|
-
this.bShowAlert$ = false;
|
|
37
|
-
this.onAlertState$.emit(true);
|
|
38
|
-
}
|
|
39
|
-
sendMessage(sMessage) {
|
|
40
|
-
alert(sMessage);
|
|
41
|
-
}
|
|
42
|
-
buttonClick(sAction) {
|
|
43
|
-
const actionsAPI = this.pConn$.getActionsApi();
|
|
44
|
-
this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
45
|
-
switch (sAction) {
|
|
46
|
-
case 'save':
|
|
47
|
-
this.psService.sendMessage(true);
|
|
48
|
-
// eslint-disable-next-line no-case-declarations
|
|
49
|
-
const savePromise = actionsAPI.saveAndClose(this.itemKey);
|
|
50
|
-
savePromise
|
|
51
|
-
.then(() => {
|
|
52
|
-
this.psService.sendMessage(false);
|
|
53
|
-
this.dismissAlert();
|
|
54
|
-
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CASE_CREATED);
|
|
55
|
-
})
|
|
56
|
-
.catch(() => {
|
|
57
|
-
this.psService.sendMessage(false);
|
|
58
|
-
this.sendMessage(this.localizedVal('Save failed', this.localeCategory));
|
|
59
|
-
});
|
|
60
|
-
break;
|
|
61
|
-
case 'continue':
|
|
62
|
-
this.dismissAlertOnly();
|
|
63
|
-
break;
|
|
64
|
-
case 'delete':
|
|
65
|
-
this.psService.sendMessage(true);
|
|
66
|
-
// eslint-disable-next-line no-case-declarations
|
|
67
|
-
const deletePromise = actionsAPI.deleteCaseInCreateStage(this.itemKey);
|
|
68
|
-
deletePromise
|
|
69
|
-
.then(() => {
|
|
70
|
-
this.psService.sendMessage(false);
|
|
71
|
-
this.dismissAlert();
|
|
72
|
-
PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);
|
|
73
|
-
})
|
|
74
|
-
.catch(() => {
|
|
75
|
-
this.psService.sendMessage(false);
|
|
76
|
-
this.sendMessage(this.localizedVal('Delete failed.', this.localeCategory));
|
|
77
|
-
});
|
|
78
|
-
break;
|
|
79
|
-
default:
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CancelAlertComponent, deps: [{ token: i1.ProgressSpinnerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: CancelAlertComponent, isStandalone: true, selector: "app-cancel-alert", inputs: { pConn$: "pConn$", bShowAlert$: "bShowAlert$" }, outputs: { onAlertState$: "onAlertState$" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"bShowAlert$\" class=\"psdk-cancel-alert-background\">\n <div class=\"psdk-cancel-alert-top\">\n <h3 *ngIf=\"heading$ != ''\">{{ heading$ }}</h3>\n <div>\n <p>{{ body1$ }}</p>\n <p>{{ body2$ }}</p>\n </div>\n <mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button mat-raised-button color=\"secondary\" (click)=\"buttonClick('save')\">{{ localizedVal('Save for later', localeCategory) }}</button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-raised-button color=\"secondary\" (click)=\"buttonClick('continue')\">{{ localizedVal('Continue Working', localeCategory) }}</button>\n <button mat-raised-button color=\"primary\" (click)=\"buttonClick('delete')\">{{ localizedVal('Delete', localeCategory) }}</button>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n</div>\n", styles: [".psdk-cancel-alert-background{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-dialog-background-color);position:fixed;z-index:9999;top:0;left:0}.psdk-cancel-alert-top{display:table;margin:auto;min-width:550px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatGridListModule }, { kind: "component", type: i3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
85
|
-
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CancelAlertComponent, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{ selector: 'app-cancel-alert', standalone: true, imports: [CommonModule, MatGridListModule, MatButtonModule], template: "<div *ngIf=\"bShowAlert$\" class=\"psdk-cancel-alert-background\">\n <div class=\"psdk-cancel-alert-top\">\n <h3 *ngIf=\"heading$ != ''\">{{ heading$ }}</h3>\n <div>\n <p>{{ body1$ }}</p>\n <p>{{ body2$ }}</p>\n </div>\n <mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button mat-raised-button color=\"secondary\" (click)=\"buttonClick('save')\">{{ localizedVal('Save for later', localeCategory) }}</button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-raised-button color=\"secondary\" (click)=\"buttonClick('continue')\">{{ localizedVal('Continue Working', localeCategory) }}</button>\n <button mat-raised-button color=\"primary\" (click)=\"buttonClick('delete')\">{{ localizedVal('Delete', localeCategory) }}</button>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n</div>\n", styles: [".psdk-cancel-alert-background{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-dialog-background-color);position:fixed;z-index:9999;top:0;left:0}.psdk-cancel-alert-top{display:table;margin:auto;min-width:550px;background-color:var(--app-form-color);border:1px solid var(--app-inverse-form-color);border-radius:10px;padding:20px;box-shadow:0 0 10px 3px var(--app-box-shadow-color)}\n"] }]
|
|
89
|
-
}], ctorParameters: () => [{ type: i1.ProgressSpinnerService }], propDecorators: { pConn$: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], bShowAlert$: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], onAlertState$: [{
|
|
94
|
-
type: Output
|
|
95
|
-
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9jYW5jZWwtYWxlcnQvY2FuY2VsLWFsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9maWVsZC9jYW5jZWwtYWxlcnQvY2FuY2VsLWFsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBVWhFLE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsWUFBb0IsU0FBaUM7UUFBakMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFUM0Msa0JBQWEsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU83RSxtQkFBYyxHQUFHLGdCQUFnQixDQUFDO0lBRXNCLENBQUM7SUFDekQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWxDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FB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QztvQkFDbEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ25GLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLENBQUMsQ0FBQyxDQUFDO2dCQUNMLE1BQU07WUFDUjtnQkFDRSxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBMUZVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdNQ2JqQywyMkJBa0JBLHFnQkRQWSxZQUFZLGtJQUFFLGlCQUFpQixpVEFBRSxlQUFlOzs0RkFFL0Msb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxDQUFDOzJGQUdsRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21lc3NhZ2VzL3Byb2dyZXNzLXNwaW5uZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYW5jZWwtYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FuY2VsLWFsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FuY2VsLWFsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEdyaWRMaXN0TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENhbmNlbEFsZXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGJTaG93QWxlcnQkOiBib29sZWFuO1xuICBAT3V0cHV0KCkgb25BbGVydFN0YXRlJDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGhlYWRpbmckOiBzdHJpbmc7XG4gIGJvZHkxJDogc3RyaW5nO1xuICBib2R5MiQ6IHN0cmluZztcbiAgaXRlbUtleTogc3RyaW5nO1xuICBsb2NhbGl6ZWRWYWw6IEZ1bmN0aW9uO1xuICBsb2NhbGVDYXRlZ29yeSA9ICdNb2RhbENvbnRhaW5lcic7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UpIHt9XG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmJTaG93QWxlcnQkKSB7XG4gICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG5cbiAgICAgIGNvbnN0IGNvbnRleHROYW1lID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICAgIGNvbnN0IGNhc2VJbmZvID0gdGhpcy5wQ29ubiQuZ2V0Q2FzZUluZm8oKTtcbiAgICAgIGNvbnN0IGNhc2VOYW1lID0gY2FzZUluZm8uZ2V0TmFtZSgpO1xuICAgICAgY29uc3QgSUQgPSBjYXNlSW5mby5nZXRJRCgpO1xuICAgICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuXG4gICAgICB0aGlzLml0ZW1LZXkgPSBjb250ZXh0TmFtZTtcbiAgICAgIHRoaXMuaGVhZGluZyQgPSBgRGVsZXRlICR7Y2FzZU5hbWV9ICgke0lEfSlgO1xuICAgICAgdGhpcy5ib2R5MSQgPSBgJHt0aGlzLmxvY2FsaXplZFZhbCgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAnLCB0aGlzLmxvY2FsZUNhdGVnb3J5KSArIGNhc2VOYW1lfSAoJHtJRH0pP2A7XG4gICAgICB0aGlzLmJvZHkyJCA9IHRoaXMubG9jYWxpemVkVmFsKCdBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvbnRpbnVlIHdvcmtpbmcgb3Igc2F2ZSB5b3VyIHdvcmsgZm9yIGxhdGVyLicsIHRoaXMubG9jYWxlQ2F0ZWdvcnkpO1xuXG4gICAgICAvLyB0aGlzLm9uQWxlcnRTdGF0ZSQuZW1pdCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBkaXNtaXNzQWxlcnQoKSB7XG4gICAgdGhpcy5iU2hvd0FsZXJ0JCA9IGZhbHNlO1xuICAgIHRoaXMub25BbGVydFN0YXRlJC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIGRpc21pc3NBbGVydE9ubHkoKSB7XG4gICAgdGhpcy5iU2hvd0FsZXJ0JCA9IGZhbHNlO1xuICAgIHRoaXMub25BbGVydFN0YXRlJC5lbWl0KHRydWUpO1xuICB9XG5cbiAgc2VuZE1lc3NhZ2Uoc01lc3NhZ2U6IHN0cmluZykge1xuICAgIGFsZXJ0KHNNZXNzYWdlKTtcbiAgfVxuXG4gIGJ1dHRvbkNsaWNrKHNBY3Rpb24pIHtcbiAgICBjb25zdCBhY3Rpb25zQVBJID0gdGhpcy5wQ29ubiQuZ2V0QWN0aW9uc0FwaSgpO1xuICAgIHRoaXMubG9jYWxpemVkVmFsID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZTtcblxuICAgIHN3aXRjaCAoc0FjdGlvbikge1xuICAgICAgY2FzZSAnc2F2ZSc6XG4gICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKHRydWUpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgY29uc3Qgc2F2ZVByb21pc2UgPSBhY3Rpb25zQVBJLnNhdmVBbmRDbG9zZSh0aGlzLml0ZW1LZXkpO1xuICAgICAgICBzYXZlUHJvbWlzZVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzbWlzc0FsZXJ0KCk7XG5cbiAgICAgICAgICAgIFBDb3JlLmdldFB1YlN1YlV0aWxzKCkucHVibGlzaChQQ29yZS5nZXRDb25zdGFudHMoKS5QVUJfU1VCX0VWRU5UUy5DQVNFX0VWRU5UUy5DQVNFX0NSRUFURUQpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UodGhpcy5sb2NhbGl6ZWRWYWwoJ1NhdmUgZmFpbGVkJywgdGhpcy5sb2NhbGVDYXRlZ29yeSkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbnRpbnVlJzpcbiAgICAgICAgdGhpcy5kaXNtaXNzQWxlcnRPbmx5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5wc1NlcnZpY2Uuc2VuZE1lc3NhZ2UodHJ1ZSk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgIGNvbnN0IGRlbGV0ZVByb21pc2UgPSBhY3Rpb25zQVBJLmRlbGV0ZUNhc2VJbkNyZWF0ZVN0YWdlKHRoaXMuaXRlbUtleSk7XG5cbiAgICAgICAgZGVsZXRlUHJvbWlzZVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZGlzbWlzc0FsZXJ0KCk7XG4gICAgICAgICAgICBQQ29yZS5nZXRQdWJTdWJVdGlscygpLnB1Ymxpc2goUENvcmUuZ2V0Q29uc3RhbnRzKCkuUFVCX1NVQl9FVkVOVFMuRVZFTlRfQ0FOQ0VMKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHRoaXMubG9jYWxpemVkVmFsKCdEZWxldGUgZmFpbGVkLicsIHRoaXMubG9jYWxlQ2F0ZWdvcnkpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJiU2hvd0FsZXJ0JFwiIGNsYXNzPVwicHNkay1jYW5jZWwtYWxlcnQtYmFja2dyb3VuZFwiPlxuICA8ZGl2IGNsYXNzPVwicHNkay1jYW5jZWwtYWxlcnQtdG9wXCI+XG4gICAgPGgzICpuZ0lmPVwiaGVhZGluZyQgIT0gJydcIj57eyBoZWFkaW5nJCB9fTwvaDM+XG4gICAgPGRpdj5cbiAgICAgIDxwPnt7IGJvZHkxJCB9fTwvcD5cbiAgICAgIDxwPnt7IGJvZHkyJCB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWdyaWQtbGlzdCBjb2xzPVwiMlwiIHJvd0hlaWdodD1cIjYuMjVyZW1cIj5cbiAgICAgIDxtYXQtZ3JpZC10aWxlPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKCdzYXZlJylcIj57eyBsb2NhbGl6ZWRWYWwoJ1NhdmUgZm9yIGxhdGVyJywgbG9jYWxlQ2F0ZWdvcnkpIH19PC9idXR0b24+XG4gICAgICA8L21hdC1ncmlkLXRpbGU+XG4gICAgICA8bWF0LWdyaWQtdGlsZT5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInNlY29uZGFyeVwiIChjbGljayk9XCJidXR0b25DbGljaygnY29udGludWUnKVwiPnt7IGxvY2FsaXplZFZhbCgnQ29udGludWUgV29ya2luZycsIGxvY2FsZUNhdGVnb3J5KSB9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJidXR0b25DbGljaygnZGVsZXRlJylcIj57eyBsb2NhbGl6ZWRWYWwoJ0RlbGV0ZScsIGxvY2FsZUNhdGVnb3J5KSB9fTwvYnV0dG9uPlxuICAgICAgPC9tYXQtZ3JpZC10aWxlPlxuICAgIDwvbWF0LWdyaWQtbGlzdD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|