@pega/angular-sdk-components 0.24.8 → 0.25.1
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 +2835 -1810
- package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
- package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +4 -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 +2 -1
- package/lib/_components/designSystemExtension/operator/operator.component.d.ts +2 -3
- package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +2 -3
- package/lib/_components/field/auto-complete/auto-complete.component.d.ts +8 -3
- package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +0 -1
- package/lib/_components/field/check-box/check-box.component.d.ts +5 -3
- package/lib/_components/field/currency/currency.component.d.ts +6 -4
- package/lib/_components/field/date/date.component.d.ts +17 -7
- package/lib/_components/field/date-time/date-time.component.d.ts +10 -3
- package/lib/_components/field/decimal/decimal.component.d.ts +4 -4
- package/lib/_components/field/dropdown/dropdown.component.d.ts +14 -3
- package/lib/_components/field/email/email.component.d.ts +2 -1
- package/lib/_components/field/group/group.component.d.ts +0 -1
- package/lib/_components/field/integer/integer.component.d.ts +2 -1
- 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 +71 -0
- package/lib/_components/field/multiselect/multiselect.component.d.ts +3 -3
- package/lib/_components/field/percentage/percentage.component.d.ts +6 -3
- package/lib/_components/field/phone/phone.component.d.ts +6 -8
- package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +4 -2
- package/lib/_components/field/rich-text/rich-text.component.d.ts +3 -2
- package/lib/_components/field/scalar-list/scalar-list.component.d.ts +0 -1
- package/lib/_components/field/selectable-card/selectable-card.component.d.ts +75 -0
- package/lib/_components/field/semantic-link/semantic-link.component.d.ts +0 -1
- package/lib/_components/field/text/text.component.d.ts +3 -2
- package/lib/_components/field/text-area/text-area.component.d.ts +2 -1
- package/lib/_components/field/text-content/text-content.component.d.ts +0 -1
- package/lib/_components/field/text-input/text-input.component.d.ts +2 -1
- package/lib/_components/field/time/time.component.d.ts +3 -1
- package/lib/_components/field/url/url.component.d.ts +2 -1
- package/lib/_components/field/user-reference/user-reference.component.d.ts +7 -1
- package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +0 -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 +1 -4
- package/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.d.ts +0 -1
- package/lib/_components/infra/Containers/view-container/helper.d.ts +2 -0
- 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 +6 -4
- package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +0 -1
- package/lib/_components/infra/dashboard-filter/dashboard-filter.component.d.ts +0 -1
- package/lib/_components/infra/defer-load/defer-load.component.d.ts +3 -3
- 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 +2 -3
- 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 +0 -1
- package/lib/_components/infra/view/view.component.d.ts +1 -1
- package/lib/_components/template/app-shell/app-shell.component.d.ts +0 -1
- package/lib/_components/template/banner-page/banner-page.component.d.ts +0 -1
- package/lib/_components/template/base/details-template-base.d.ts +21 -0
- package/lib/_components/template/base/form-template-base.d.ts +10 -0
- package/lib/_components/template/case-summary/case-summary.component.d.ts +3 -3
- package/lib/_components/template/case-view/case-view.component.d.ts +1 -3
- package/lib/_components/template/confirmation/confirmation.component.d.ts +0 -1
- package/lib/_components/template/data-reference/data-reference.component.d.ts +0 -1
- package/lib/_components/template/default-form/default-form.component.d.ts +8 -7
- package/lib/_components/template/details/details.component.d.ts +3 -12
- package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +3 -12
- package/lib/_components/template/details-one-column/details-one-column.component.d.ts +3 -14
- package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +3 -14
- package/lib/_components/template/details-three-column/details-three-column.component.d.ts +3 -14
- package/lib/_components/template/details-two-column/details-two-column.component.d.ts +3 -14
- package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +3 -14
- package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +1 -1
- package/lib/_components/template/field-group-template/field-group-template.component.d.ts +12 -9
- 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 +6 -4
- package/lib/_components/template/list-view/listViewHelpers.d.ts +1 -1
- 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/one-column/one-column.component.d.ts +2 -2
- 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/simple-table/simple-table.component.d.ts +0 -1
- package/lib/_components/template/simple-table-manual/helpers.d.ts +19 -4
- package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +10 -3
- 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 +0 -1
- package/lib/_components/template/sub-tabs/sub-tabs.component.d.ts +0 -1
- package/lib/_components/template/three-column/three-column.component.d.ts +2 -2
- 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 +2 -2
- 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 +7 -0
- package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +2 -2
- package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +1 -2
- package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +3 -4
- package/lib/_components/widget/app-announcement/app-announcement.component.d.ts +0 -1
- package/lib/_components/widget/attachment/attachment.component.d.ts +3 -4
- 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 +1 -2
- package/lib/_components/widget/quick-create/quick-create.component.d.ts +0 -1
- package/lib/_components/widget/todo/todo.component.d.ts +10 -14
- package/lib/_components/widget/utility/utility.component.d.ts +0 -1
- package/lib/_helpers/common.d.ts +1 -1
- package/lib/_helpers/createstage-utils.d.ts +1 -0
- package/lib/_helpers/formatters/boolean.d.ts +1 -2
- package/lib/_helpers/formatters/common.d.ts +2 -2
- 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/utils.d.ts +12 -0
- package/lib/_messages/error-messages.service.d.ts +1 -1
- package/lib/_services/banner.service.d.ts +8 -0
- package/lib/_services/case.service.d.ts +1 -1
- package/lib/_services/datapage.service.d.ts +1 -1
- package/lib/_services/endpoints.d.ts +0 -1
- package/lib/_services/google-maps-loader.service.d.ts +7 -0
- package/lib/doc/KeyReleaseUpdates.md +35 -1
- package/package.json +20 -6
- package/public-api.d.ts +15 -11
- package/esm2022/lib/_bridge/angular-pconnect.mjs +0 -428
- package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +0 -114
- 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 -31
- 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 -286
- 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 -223
- package/esm2022/lib/_components/field/currency/currency.component.mjs +0 -177
- package/esm2022/lib/_components/field/date/date.component.mjs +0 -225
- package/esm2022/lib/_components/field/date-time/date-time.component.mjs +0 -181
- package/esm2022/lib/_components/field/decimal/decimal.component.mjs +0 -185
- package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +0 -192
- package/esm2022/lib/_components/field/email/email.component.mjs +0 -150
- package/esm2022/lib/_components/field/group/group.component.mjs +0 -64
- package/esm2022/lib/_components/field/integer/integer.component.mjs +0 -155
- 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 -307
- package/esm2022/lib/_components/field/multiselect/utils.mjs +0 -187
- package/esm2022/lib/_components/field/percentage/percentage.component.mjs +0 -174
- package/esm2022/lib/_components/field/phone/phone.component.mjs +0 -167
- package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +0 -184
- package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +0 -103
- package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +0 -96
- package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +0 -57
- package/esm2022/lib/_components/field/text/text.component.mjs +0 -138
- package/esm2022/lib/_components/field/text-area/text-area.component.mjs +0 -153
- 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 -152
- package/esm2022/lib/_components/field/time/time.component.mjs +0 -153
- package/esm2022/lib/_components/field/url/url.component.mjs +0 -152
- package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +0 -187
- 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 -487
- 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/view-container.component.mjs +0 -218
- package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +0 -31
- package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +0 -383
- 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 -173
- package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +0 -140
- package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +0 -43
- 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 -190
- package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +0 -68
- package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +0 -237
- package/esm2022/lib/_components/template/default-form/default-form.component.mjs +0 -61
- package/esm2022/lib/_components/template/details/details.component.mjs +0 -103
- package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +0 -72
- package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +0 -71
- package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +0 -66
- package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +0 -80
- package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +0 -77
- package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +0 -77
- package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +0 -64
- 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 -124
- 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 -1202
- 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 -30
- 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 -781
- 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 -30
- 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 -30
- 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 -30
- 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 -395
- 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 -214
- 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/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 -106
- package/esm2022/lib/_helpers/formatters/boolean.mjs +0 -20
- package/esm2022/lib/_helpers/formatters/common.mjs +0 -16
- 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 -110
- 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/get-login-status.service.mjs +0 -26
- package/esm2022/lib/_messages/oauth-response.service.mjs +0 -30
- package/esm2022/lib/_messages/progress-spinner.service.mjs +0 -30
- package/esm2022/lib/_messages/reset-pconnect.service.mjs +0 -31
- 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 -61
- 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
- package/lib/_messages/get-login-status.service.d.ts +0 -10
- package/lib/_messages/oauth-response.service.d.ts +0 -14
- package/lib/_messages/reset-pconnect.service.d.ts +0 -15
package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ReferenceComponent } from '../../reference/reference.component';
|
|
4
|
-
import { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../../../_bridge/angular-pconnect";
|
|
7
|
-
import * as i2 from "../../../../_messages/progress-spinner.service";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
export class ViewContainerComponent {
|
|
10
|
-
constructor(angularPConnect, psService, ngZone) {
|
|
11
|
-
this.angularPConnect = angularPConnect;
|
|
12
|
-
this.psService = psService;
|
|
13
|
-
this.ngZone = ngZone;
|
|
14
|
-
// For interaction with AngularPConnect
|
|
15
|
-
this.angularPConnectData = {};
|
|
16
|
-
this.title$ = '';
|
|
17
|
-
this.isViewContainer$ = true;
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
if (this.displayOnlyFA$ == null) {
|
|
21
|
-
this.displayOnlyFA$ = false;
|
|
22
|
-
}
|
|
23
|
-
// debugger;
|
|
24
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
25
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
26
|
-
// Then, continue on with other initialization
|
|
27
|
-
// this.configProps$ = this.pConn$.getConfigProps();
|
|
28
|
-
// children may have a 'reference' so normalize the children array
|
|
29
|
-
this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
|
|
30
|
-
this.buildName$ = this.buildName();
|
|
31
|
-
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
32
|
-
this.templateName$ = this.configProps$.template || '';
|
|
33
|
-
this.title$ = this.configProps$.title || '';
|
|
34
|
-
const { CONTAINER_TYPE, APP } = PCore.getConstants();
|
|
35
|
-
const { name, mode, limit } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
36
|
-
this.pConn$.isBoundToState();
|
|
37
|
-
const containerMgr = this.pConn$.getContainerManager();
|
|
38
|
-
this.prepareDispatchObject = this.prepareDispatchObject.bind(this);
|
|
39
|
-
this.dispatchObject = this.prepareDispatchObject();
|
|
40
|
-
// TODO: Plan is to rename window.constellationCore to window.pega (or similar)
|
|
41
|
-
// And expose less via ui-bootstrap.js
|
|
42
|
-
this.state = {
|
|
43
|
-
dispatchObject: this.dispatchObject,
|
|
44
|
-
// PCore is defined in pxBootstrapShell - eventually will be exported in place of constellationCore
|
|
45
|
-
visible: !PCore.checkIfSemanticURL()
|
|
46
|
-
};
|
|
47
|
-
// here, to match Nebula/Constellation, the constructor of ViewContainer is only called once, and thus init/add container is only
|
|
48
|
-
// called once. Because of Angular creating and destroy components if the parent changes a lot, this component will be
|
|
49
|
-
// created and destroyed more than once. So the sessionStore "hasViewContainer" is set to false in rootContainer and then
|
|
50
|
-
// after first round is true here. Subsequent ViewContainer creation will not init/add more containers.
|
|
51
|
-
if (sessionStorage.getItem('hasViewContainer') == 'false') {
|
|
52
|
-
// unlike Nebula/Constellation, have to initializeContainer after we create a dispatcObject and state, otherwise, when calling
|
|
53
|
-
// initializeContainer before, code will get executed that needs state that wasn't defined.
|
|
54
|
-
containerMgr.initializeContainers({
|
|
55
|
-
type: mode === CONTAINER_TYPE.MULTIPLE ? CONTAINER_TYPE.MULTIPLE : CONTAINER_TYPE.SINGLE
|
|
56
|
-
});
|
|
57
|
-
if (mode === CONTAINER_TYPE.MULTIPLE && limit) {
|
|
58
|
-
/* NOTE: setContainerLimit use is temporary. It is a non-public, unsupported API. */
|
|
59
|
-
PCore.getContainerUtils().setContainerLimit(`${APP.APP}/${name}`, limit);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (sessionStorage.getItem('hasViewContainer') == 'false') {
|
|
63
|
-
if (this.pConn$.getMetadata().children) {
|
|
64
|
-
containerMgr.addContainerItem(this.dispatchObject);
|
|
65
|
-
}
|
|
66
|
-
sessionStorage.setItem('hasViewContainer', 'true');
|
|
67
|
-
}
|
|
68
|
-
// cannot call checkAndUpdate becasue first time through, will call updateSelf and that is incorrect (causes issues).
|
|
69
|
-
// however, need angularPConnect to be initialized with currentProps for future updates, so calling shouldComponentUpdate directly
|
|
70
|
-
// without checking to update here in init, will initialize and this is correct
|
|
71
|
-
this.angularPConnect.shouldComponentUpdate(this);
|
|
72
|
-
}
|
|
73
|
-
ngOnDestroy() {
|
|
74
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
75
|
-
this.angularPConnectData.unsubscribeFn();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// Callback passed when subscribing to store change
|
|
79
|
-
onStateChange() {
|
|
80
|
-
this.checkAndUpdate();
|
|
81
|
-
}
|
|
82
|
-
checkAndUpdate() {
|
|
83
|
-
// Should always check the bridge to see if the component should
|
|
84
|
-
// update itself (re-render)
|
|
85
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
86
|
-
// ONLY call updateSelf when the component should update
|
|
87
|
-
if (bUpdateSelf) {
|
|
88
|
-
this.updateSelf();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
updateSelf() {
|
|
92
|
-
// *** DON'T call updateSelf in ngInit!! ***
|
|
93
|
-
if (this.arChildren$ == null) {
|
|
94
|
-
// children may have a 'reference' so normalize the children array
|
|
95
|
-
this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
|
|
96
|
-
}
|
|
97
|
-
// routingInfo was added as component prop in populateAdditionalProps
|
|
98
|
-
const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');
|
|
99
|
-
let loadingInfo;
|
|
100
|
-
try {
|
|
101
|
-
// @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'
|
|
102
|
-
loadingInfo = this.pConn$.getLoadingStatus();
|
|
103
|
-
this.psService.sendMessage(loadingInfo);
|
|
104
|
-
}
|
|
105
|
-
catch (ex) {
|
|
106
|
-
/* empty */
|
|
107
|
-
}
|
|
108
|
-
// const buildName = this.buildName();
|
|
109
|
-
const { CREATE_DETAILS_VIEW_NAME } = PCore.getConstants();
|
|
110
|
-
if (routingInfo) {
|
|
111
|
-
const { accessedOrder, items } = routingInfo;
|
|
112
|
-
if (accessedOrder && items) {
|
|
113
|
-
const key = accessedOrder[accessedOrder.length - 1];
|
|
114
|
-
let componentVisible = accessedOrder.length > 0;
|
|
115
|
-
const { visible } = this.state;
|
|
116
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
117
|
-
componentVisible = visible || componentVisible;
|
|
118
|
-
if (items[key] && items[key].view && Object.keys(items[key].view).length > 0) {
|
|
119
|
-
const latestItem = items[key];
|
|
120
|
-
const rootView = latestItem.view;
|
|
121
|
-
const { context, name: viewName } = rootView.config;
|
|
122
|
-
const config = { meta: rootView };
|
|
123
|
-
config.options = {
|
|
124
|
-
context: latestItem.context,
|
|
125
|
-
pageReference: context || this.pConn$.getPageReference(),
|
|
126
|
-
containerName: this.pConn$.getContainerName(),
|
|
127
|
-
containerItemName: key,
|
|
128
|
-
hasForm: viewName === CREATE_DETAILS_VIEW_NAME
|
|
129
|
-
};
|
|
130
|
-
const configObject = PCore.createPConnect(config);
|
|
131
|
-
// THIS is where the ViewContainer creates a View
|
|
132
|
-
// The config has meta.config.type = "view"
|
|
133
|
-
const newComp = configObject.getPConnect();
|
|
134
|
-
// const newCompName = newComp.getComponentName();
|
|
135
|
-
// The metadata for pyDetails changed such that the "template": "CaseView"
|
|
136
|
-
// is no longer a child of the created View but is in the created View's
|
|
137
|
-
// config. So, we DON'T want to replace this.pConn$ since the created
|
|
138
|
-
// component is a View (and not a ViewContainer). We now look for the
|
|
139
|
-
// "template" type directly in the created component (newComp) and NOT
|
|
140
|
-
// as a child of the newly created component.
|
|
141
|
-
// Use the newly created component (View) info but DO NOT replace
|
|
142
|
-
// this ViewContainer's pConn$, etc.
|
|
143
|
-
// Note that we're now using the newly created View's PConnect in the
|
|
144
|
-
// ViewContainer HTML template to guide what's rendered similar to what
|
|
145
|
-
// the Nebula/Constellation return of React.Fragment does
|
|
146
|
-
this.ngZone.run(() => {
|
|
147
|
-
if (newComp.getComponentName() === 'reference') {
|
|
148
|
-
// if a refernece, it will de reference to a "view"
|
|
149
|
-
// so hand this off to the "View" component to do that
|
|
150
|
-
this.isViewContainer$ = false;
|
|
151
|
-
this.viewPConn$ = newComp;
|
|
152
|
-
/*
|
|
153
|
-
*** this commmented out code should be removed, once we test out that
|
|
154
|
-
*** handing off refernce to View component always works
|
|
155
|
-
*/
|
|
156
|
-
// When newComp is a reference, we want to de-reference
|
|
157
|
-
// it (to get the View) and then use that View to get the
|
|
158
|
-
// template, title, children, etc.
|
|
159
|
-
/*
|
|
160
|
-
|
|
161
|
-
const theDereferencedView = ReferenceComponent.normalizePConn(newComp);
|
|
162
|
-
const newConfigProps = theDereferencedView.getConfigProps();
|
|
163
|
-
|
|
164
|
-
// children may have a 'reference' so normalize the children arra
|
|
165
|
-
|
|
166
|
-
const theDereferencedViewChildren = ReferenceComponent.normalizePConnArray(theDereferencedView.getChildren());
|
|
167
|
-
this.templateName$ = ('template' in newConfigProps) ? newConfigProps["template"] : "";
|
|
168
|
-
this.title$ = ('title' in newConfigProps) ? newConfigProps["title"] : "";
|
|
169
|
-
this.arChildren$ = theDereferencedViewChildren;
|
|
170
|
-
this.createdViewPConn$ = theDereferencedView;
|
|
171
|
-
*/
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
// old style when newComp is NOT a 'reference'
|
|
175
|
-
this.isViewContainer$ = true;
|
|
176
|
-
console.error(`ViewContainer has a newComp that is NOT a reference!`);
|
|
177
|
-
this.createdViewPConn$ = newComp;
|
|
178
|
-
const newConfigProps = newComp.getConfigProps();
|
|
179
|
-
this.templateName$ = newConfigProps.template || '';
|
|
180
|
-
this.title$ = newConfigProps.title || '';
|
|
181
|
-
// update children with new view's children
|
|
182
|
-
// children may have a 'reference' so normalize the children array
|
|
183
|
-
this.arChildren$ = ReferenceComponent.normalizePConnArray(newComp.getChildren());
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
prepareDispatchObject() {
|
|
191
|
-
const baseContext = this.pConn$.getContextName();
|
|
192
|
-
// const { acName = "primary" } = pConn.getContainerName(); // doesn't work with 8.23 typings
|
|
193
|
-
const acName = this.pConn$.getContainerName() || 'primary';
|
|
194
|
-
return {
|
|
195
|
-
semanticURL: '',
|
|
196
|
-
context: baseContext,
|
|
197
|
-
acName
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
buildName() {
|
|
201
|
-
const sContext = this.pConn$.getContextName();
|
|
202
|
-
const sName = this.pConn$.getContainerName();
|
|
203
|
-
return `${sContext.toUpperCase()}/${sName.toUpperCase()}`;
|
|
204
|
-
}
|
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewContainerComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.ProgressSpinnerService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ViewContainerComponent, isStandalone: true, selector: "app-view-container", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", displayOnlyFA$: "displayOnlyFA$" }, ngImport: i0, template: "<div class=\"psdk-view-container-top\" id=\"{{ buildName$ }}\">\n <div *ngIf=\"isViewContainer$; else isReference\">\n <h3 *ngIf=\"title$ !== ''\">{{ title$ }}</h3>\n <div *ngIf=\"templateName$; else showChildren\">\n <component-mapper\n [name]=\"templateName$\"\n [props]=\"{\n pConn$: createdViewPConn$,\n formGroup$: formGroup$,\n displayOnlyFA$: displayOnlyFA$\n }\"\n errorMsg=\"View Container missing Template {{ templateName$ }}\"\n ></component-mapper>\n </div>\n <ng-template #showChildren>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n displayOnlyFA$: displayOnlyFA$\n }\"\n errorMsg=\"ViewContainer Missing (no template): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n </div>\n <ng-template #isReference>\n <component-mapper name=\"View\" [props]=\"{ pConn$: viewPConn$, displayOnlyFA$ }\"></component-mapper>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
207
|
-
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewContainerComponent, decorators: [{
|
|
209
|
-
type: Component,
|
|
210
|
-
args: [{ selector: 'app-view-container', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-view-container-top\" id=\"{{ buildName$ }}\">\n <div *ngIf=\"isViewContainer$; else isReference\">\n <h3 *ngIf=\"title$ !== ''\">{{ title$ }}</h3>\n <div *ngIf=\"templateName$; else showChildren\">\n <component-mapper\n [name]=\"templateName$\"\n [props]=\"{\n pConn$: createdViewPConn$,\n formGroup$: formGroup$,\n displayOnlyFA$: displayOnlyFA$\n }\"\n errorMsg=\"View Container missing Template {{ templateName$ }}\"\n ></component-mapper>\n </div>\n <ng-template #showChildren>\n <div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n displayOnlyFA$: displayOnlyFA$\n }\"\n errorMsg=\"ViewContainer Missing (no template): {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n </ng-template>\n </div>\n <ng-template #isReference>\n <component-mapper name=\"View\" [props]=\"{ pConn$: viewPConn$, displayOnlyFA$ }\"></component-mapper>\n </ng-template>\n</div>\n" }]
|
|
211
|
-
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.ProgressSpinnerService }, { type: i0.NgZone }], propDecorators: { pConn$: [{
|
|
212
|
-
type: Input
|
|
213
|
-
}], formGroup$: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], displayOnlyFA$: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL0NvbnRhaW5lcnMvdmlldy1jb250YWluZXIvdmlldy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7QUEwQjNHLE1BQU0sT0FBTyxzQkFBc0I7SUF5QmpDLFlBQ1UsZUFBdUMsRUFDdkMsU0FBaUMsRUFDakMsTUFBYztRQUZkLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdkJ4Qix1Q0FBdUM7UUFDdkMsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQU85QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBSVoscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0lBWXJCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxj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WSxZQUFZLCtUQUFtQix3QkFBd0I7OzRGQUV0RCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztxSkFHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fbWVzc2FnZXMvcHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbmludGVyZmFjZSBWaWV3Q29udGFpbmVyUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHJvdXRpbmdJbmZvOiBvYmplY3Q7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZpZXctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcblxuICAvLyBGb3IgaW50ZXJhY3Rpb24gd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IFZpZXdDb250YWluZXJQcm9wcztcblxuICBhckNoaWxkcmVuJDogYW55W107XG4gIHRlbXBsYXRlTmFtZSQ6IHN0cmluZztcbiAgYnVpbGROYW1lJDogc3RyaW5nO1xuICBjb250ZXh0JDogc3RyaW5nO1xuICB0aXRsZSQgPSAnJztcblxuICB2aWV3UENvbm4kOiBhbnk7XG5cbiAgaXNWaWV3Q29udGFpbmVyJCA9IHRydWU7XG5cbiAgLy8gSkEgLSBjcmVhdGVkIG9iamVjdCBpcyBub3cgYSBWaWV3IHdpdGggYSBUZW1wbGF0ZVxuICAvLyAgVXNlIGl0cyBQQ29ubmVjdCB0byByZW5kZXIgdGhlIENhc2VWaWV3OyBET04nVCByZXBsYWNlIHRoaXMucENvbm4kXG4gIGNyZWF0ZWRWaWV3UENvbm4kOiBhbnk7XG4gIHN0YXRlOiBhbnk7XG4gIGRpc3BhdGNoT2JqZWN0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheU9ubHlGQSQgPT0gbnVsbCkge1xuICAgICAgdGhpcy5kaXNwbGF5T25seUZBJCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyBUaGVuLCBjb250aW51ZSBvbiB3aXRoIG90aGVyIGluaXRpYWxpemF0aW9uXG5cbiAgICAvLyAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCk7XG4gICAgLy8gY2hpbGRyZW4gbWF5IGhhdmUgYSAncmVmZXJlbmNlJyBzbyBub3JtYWxpemUgdGhlIGNoaWxkcmVuIGFycmF5XG4gICAgdGhpcy5hckNoaWxkcmVuJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkpO1xuXG4gICAgdGhpcy5idWlsZE5hbWUkID0gdGhpcy5idWlsZE5hbWUoKTtcbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBWaWV3Q29udGFpbmVyUHJvcHM7XG4gICAgdGhpcy50ZW1wbGF0ZU5hbWUkID0gdGhpcy5jb25maWdQcm9wcyQudGVtcGxhdGUgfHwgJyc7XG4gICAgdGhpcy50aXRsZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50aXRsZSB8fCAnJztcbiAgICBjb25zdCB7IENPTlRBSU5FUl9UWVBFLCBBUFAgfSA9IFBDb3JlLmdldENvbnN0YW50cygpO1xuICAgIGNvbnN0IHsgbmFtZSwgbW9kZSwgbGltaXQgfSA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBWaWV3Q29udGFpbmVyUHJvcHM7XG5cbiAgICB0aGlzLnBDb25uJC5pc0JvdW5kVG9TdGF0ZSgpO1xuXG4gICAgY29uc3QgY29udGFpbmVyTWdyOiBhbnkgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJNYW5hZ2VyKCk7XG5cbiAgICB0aGlzLnByZXBhcmVEaXNwYXRjaE9iamVjdCA9IHRoaXMucHJlcGFyZURpc3BhdGNoT2JqZWN0LmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLmRpc3BhdGNoT2JqZWN0ID0gdGhpcy5wcmVwYXJlRGlzcGF0Y2hPYmplY3QoKTtcblxuICAgIC8vIFRPRE86IFBsYW4gaXMgdG8gcmVuYW1lIHdpbmRvdy5jb25zdGVsbGF0aW9uQ29yZSB0byB3aW5kb3cucGVnYSAob3Igc2ltaWxhcilcbiAgICAvLyAgICBBbmQgZXhwb3NlIGxlc3MgdmlhIHVpLWJvb3RzdHJhcC5qc1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBkaXNwYXRjaE9iamVjdDogdGhpcy5kaXNwYXRjaE9iamVjdCxcbiAgICAgIC8vIFBDb3JlIGlzIGRlZmluZWQgaW4gcHhCb290c3RyYXBTaGVsbCAtIGV2ZW50dWFsbHkgd2lsbCBiZSBleHBvcnRlZCBpbiBwbGFjZSBvZiBjb25zdGVsbGF0aW9uQ29yZVxuXG4gICAgICB2aXNpYmxlOiAhUENvcmUuY2hlY2tJZlNlbWFudGljVVJMKClcbiAgICB9O1xuXG4gICAgLy8gaGVyZSwgdG8gbWF0Y2ggTmVidWxhL0NvbnN0ZWxsYXRpb24sIHRoZSBjb25zdHJ1Y3RvciBvZiBWaWV3Q29udGFpbmVyIGlzIG9ubHkgY2FsbGVkIG9uY2UsIGFuZCB0aHVzIGluaXQvYWRkIGNvbnRhaW5lciBpcyBvbmx5XG4gICAgLy8gY2FsbGVkIG9uY2UuICBCZWNhdXNlIG9mIEFuZ3VsYXIgY3JlYXRpbmcgYW5kIGRlc3Ryb3kgY29tcG9uZW50cyBpZiB0aGUgcGFyZW50IGNoYW5nZXMgYSBsb3QsIHRoaXMgY29tcG9uZW50IHdpbGwgYmVcbiAgICAvLyBjcmVhdGVkIGFuZCBkZXN0cm95ZWQgbW9yZSB0aGFuIG9uY2UuICBTbyB0aGUgc2Vzc2lvblN0b3JlIFwiaGFzVmlld0NvbnRhaW5lclwiIGlzIHNldCB0byBmYWxzZSBpbiByb290Q29udGFpbmVyIGFuZCB0aGVuXG4gICAgLy8gYWZ0ZXIgZmlyc3Qgcm91bmQgaXMgdHJ1ZSBoZXJlLiAgU3Vic2VxdWVudCBWaWV3Q29udGFpbmVyIGNyZWF0aW9uIHdpbGwgbm90IGluaXQvYWRkIG1vcmUgY29udGFpbmVycy5cblxuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdoYXNWaWV3Q29udGFpbmVyJykgPT0gJ2ZhbHNlJykge1xuICAgICAgLy8gdW5saWtlIE5lYnVsYS9Db25zdGVsbGF0aW9uLCBoYXZlIHRvIGluaXRpYWxpemVDb250YWluZXIgYWZ0ZXIgd2UgY3JlYXRlIGEgZGlzcGF0Y09iamVjdCBhbmQgc3RhdGUsIG90aGVyd2lzZSwgd2hlbiBjYWxsaW5nXG4gICAgICAvLyBpbml0aWFsaXplQ29udGFpbmVyIGJlZm9yZSwgY29kZSB3aWxsIGdldCBleGVjdXRlZCB0aGF0IG5lZWRzIHN0YXRlIHRoYXQgd2Fzbid0IGRlZmluZWQuXG5cbiAgICAgIGNvbnRhaW5lck1nci5pbml0aWFsaXplQ29udGFpbmVycyh7XG4gICAgICAgIHR5cGU6IG1vZGUgPT09IENPTlRBSU5FUl9UWVBFLk1VTFRJUExFID8gQ09OVEFJTkVSX1RZUEUuTVVMVElQTEUgOiBDT05UQUlORVJfVFlQRS5TSU5HTEVcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobW9kZSA9PT0gQ09OVEFJTkVSX1RZUEUuTVVMVElQTEUgJiYgbGltaXQpIHtcbiAgICAgICAgLyogTk9URTogc2V0Q29udGFpbmVyTGltaXQgdXNlIGlzIHRlbXBvcmFyeS4gSXQgaXMgYSBub24tcHVibGljLCB1bnN1cHBvcnRlZCBBUEkuICovXG4gICAgICAgIFBDb3JlLmdldENvbnRhaW5lclV0aWxzKCkuc2V0Q29udGFpbmVyTGltaXQoYCR7QVBQLkFQUH0vJHtuYW1lfWAsIGxpbWl0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnaGFzVmlld0NvbnRhaW5lcicpID09ICdmYWxzZScpIHtcbiAgICAgIGlmICh0aGlzLnBDb25uJC5nZXRNZXRhZGF0YSgpLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnRhaW5lck1nci5hZGRDb250YWluZXJJdGVtKHRoaXMuZGlzcGF0Y2hPYmplY3QpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdoYXNWaWV3Q29udGFpbmVyJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICAvLyBjYW5ub3QgY2FsbCBjaGVja0FuZFVwZGF0ZSBiZWNhc3VlIGZpcnN0IHRpbWUgdGhyb3VnaCwgd2lsbCBjYWxsIHVwZGF0ZVNlbGYgYW5kIHRoYXQgaXMgaW5jb3JyZWN0IChjYXVzZXMgaXNzdWVzKS5cbiAgICAvLyBob3dldmVyLCBuZWVkIGFuZ3VsYXJQQ29ubmVjdCB0byBiZSBpbml0aWFsaXplZCB3aXRoIGN1cnJlbnRQcm9wcyBmb3IgZnV0dXJlIHVwZGF0ZXMsIHNvIGNhbGxpbmcgc2hvdWxkQ29tcG9uZW50VXBkYXRlIGRpcmVjdGx5XG4gICAgLy8gd2l0aG91dCBjaGVja2luZyB0byB1cGRhdGUgaGVyZSBpbiBpbml0LCB3aWxsIGluaXRpYWxpemUgYW5kIHRoaXMgaXMgY29ycmVjdFxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgLy8gICAqKiogRE9OJ1QgY2FsbCB1cGRhdGVTZWxmIGluIG5nSW5pdCEhICAqKipcblxuICAgIGlmICh0aGlzLmFyQ2hpbGRyZW4kID09IG51bGwpIHtcbiAgICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgICAgdGhpcy5hckNoaWxkcmVuJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkpO1xuICAgIH1cblxuICAgIC8vIHJvdXRpbmdJbmZvIHdhcyBhZGRlZCBhcyBjb21wb25lbnQgcHJvcCBpbiBwb3B1bGF0ZUFkZGl0aW9uYWxQcm9wc1xuICAgIGNvbnN0IHJvdXRpbmdJbmZvID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q29tcG9uZW50UHJvcCh0aGlzLCAncm91dGluZ0luZm8nKTtcblxuICAgIGxldCBsb2FkaW5nSW5mbztcbiAgICB0cnkge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRMb2FkaW5nU3RhdHVzJyBpcyBwcml2YXRlIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIGNsYXNzICdDMTFuRW52J1xuICAgICAgbG9hZGluZ0luZm8gPSB0aGlzLnBDb25uJC5nZXRMb2FkaW5nU3RhdHVzKCk7XG5cbiAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKGxvYWRpbmdJbmZvKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLyogZW1wdHkgKi9cbiAgICB9XG5cbiAgICAvLyBjb25zdCBidWlsZE5hbWUgPSB0aGlzLmJ1aWxkTmFtZSgpO1xuICAgIGNvbnN0IHsgQ1JFQVRFX0RFVEFJTFNfVklFV19OQU1FIH0gPSBQQ29yZS5nZXRDb25zdGFudHMoKTtcbiAgICBpZiAocm91dGluZ0luZm8pIHtcbiAgICAgIGNvbnN0IHsgYWNjZXNzZWRPcmRlciwgaXRlbXMgfSA9IHJvdXRpbmdJbmZvO1xuICAgICAgaWYgKGFjY2Vzc2VkT3JkZXIgJiYgaXRlbXMpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gYWNjZXNzZWRPcmRlclthY2Nlc3NlZE9yZGVyLmxlbmd0aCAtIDFdO1xuICAgICAgICBsZXQgY29tcG9uZW50VmlzaWJsZSA9IGFjY2Vzc2VkT3JkZXIubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgeyB2aXNpYmxlIH0gPSB0aGlzLnN0YXRlO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbXBvbmVudFZpc2libGUgPSB2aXNpYmxlIHx8IGNvbXBvbmVudFZpc2libGU7XG4gICAgICAgIGlmIChpdGVtc1trZXldICYmIGl0ZW1zW2tleV0udmlldyAmJiBPYmplY3Qua2V5cyhpdGVtc1trZXldLnZpZXcpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBsYXRlc3RJdGVtID0gaXRlbXNba2V5XTtcbiAgICAgICAgICBjb25zdCByb290VmlldyA9IGxhdGVzdEl0ZW0udmlldztcbiAgICAgICAgICBjb25zdCB7IGNvbnRleHQsIG5hbWU6IHZpZXdOYW1lIH0gPSByb290Vmlldy5jb25maWc7XG4gICAgICAgICAgY29uc3QgY29uZmlnOiBhbnkgPSB7IG1ldGE6IHJvb3RWaWV3IH07XG4gICAgICAgICAgY29uZmlnLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICBjb250ZXh0OiBsYXRlc3RJdGVtLmNvbnRleHQsXG4gICAgICAgICAgICBwYWdlUmVmZXJlbmNlOiBjb250ZXh0IHx8IHRoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKSxcbiAgICAgICAgICAgIGNvbnRhaW5lck5hbWU6IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKSxcbiAgICAgICAgICAgIGNvbnRhaW5lckl0ZW1OYW1lOiBrZXksXG4gICAgICAgICAgICBoYXNGb3JtOiB2aWV3TmFtZSA9PT0gQ1JFQVRFX0RFVEFJTFNfVklFV19OQU1FXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBjb25maWdPYmplY3QgPSBQQ29yZS5jcmVhdGVQQ29ubmVjdChjb25maWcpO1xuXG4gICAgICAgICAgLy8gVEhJUyBpcyB3aGVyZSB0aGUgVmlld0NvbnRhaW5lciBjcmVhdGVzIGEgVmlld1xuICAgICAgICAgIC8vICAgIFRoZSBjb25maWcgaGFzIG1ldGEuY29uZmlnLnR5cGUgPSBcInZpZXdcIlxuICAgICAgICAgIGNvbnN0IG5ld0NvbXAgPSBjb25maWdPYmplY3QuZ2V0UENvbm5lY3QoKTtcbiAgICAgICAgICAvLyBjb25zdCBuZXdDb21wTmFtZSA9IG5ld0NvbXAuZ2V0Q29tcG9uZW50TmFtZSgpO1xuICAgICAgICAgIC8vIFRoZSBtZXRhZGF0YSBmb3IgcHlEZXRhaWxzIGNoYW5nZWQgc3VjaCB0aGF0IHRoZSBcInRlbXBsYXRlXCI6IFwiQ2FzZVZpZXdcIlxuICAgICAgICAgIC8vICBpcyBubyBsb25nZXIgYSBjaGlsZCBvZiB0aGUgY3JlYXRlZCBWaWV3IGJ1dCBpcyBpbiB0aGUgY3JlYXRlZCBWaWV3J3NcbiAgICAgICAgICAvLyAgY29uZmlnLiBTbywgd2UgRE9OJ1Qgd2FudCB0byByZXBsYWNlIHRoaXMucENvbm4kIHNpbmNlIHRoZSBjcmVhdGVkXG4gICAgICAgICAgLy8gIGNvbXBvbmVudCBpcyBhIFZpZXcgKGFuZCBub3QgYSBWaWV3Q29udGFpbmVyKS4gV2Ugbm93IGxvb2sgZm9yIHRoZVxuICAgICAgICAgIC8vICBcInRlbXBsYXRlXCIgdHlwZSBkaXJlY3RseSBpbiB0aGUgY3JlYXRlZCBjb21wb25lbnQgKG5ld0NvbXApIGFuZCBOT1RcbiAgICAgICAgICAvLyAgYXMgYSBjaGlsZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQuXG5cbiAgICAgICAgICAvLyBVc2UgdGhlIG5ld2x5IGNyZWF0ZWQgY29tcG9uZW50IChWaWV3KSBpbmZvIGJ1dCBETyBOT1QgcmVwbGFjZVxuICAgICAgICAgIC8vICB0aGlzIFZpZXdDb250YWluZXIncyBwQ29ubiQsIGV0Yy5cbiAgICAgICAgICAvLyAgTm90ZSB0aGF0IHdlJ3JlIG5vdyB1c2luZyB0aGUgbmV3bHkgY3JlYXRlZCBWaWV3J3MgUENvbm5lY3QgaW4gdGhlXG4gICAgICAgICAgLy8gIFZpZXdDb250YWluZXIgSFRNTCB0ZW1wbGF0ZSB0byBndWlkZSB3aGF0J3MgcmVuZGVyZWQgc2ltaWxhciB0byB3aGF0XG4gICAgICAgICAgLy8gIHRoZSBOZWJ1bGEvQ29uc3RlbGxhdGlvbiByZXR1cm4gb2YgUmVhY3QuRnJhZ21lbnQgZG9lc1xuXG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChuZXdDb21wLmdldENvbXBvbmVudE5hbWUoKSA9PT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgICAgICAgICAgLy8gaWYgYSByZWZlcm5lY2UsIGl0IHdpbGwgZGUgcmVmZXJlbmNlIHRvIGEgXCJ2aWV3XCJcbiAgICAgICAgICAgICAgLy8gc28gaGFuZCB0aGlzIG9mZiB0byB0aGUgXCJWaWV3XCIgY29tcG9uZW50IHRvIGRvIHRoYXRcbiAgICAgICAgICAgICAgdGhpcy5pc1ZpZXdDb250YWluZXIkID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMudmlld1BDb25uJCA9IG5ld0NvbXA7XG5cbiAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICoqKiAgdGhpcyBjb21tbWVudGVkIG91dCBjb2RlIHNob3VsZCBiZSByZW1vdmVkLCBvbmNlIHdlIHRlc3Qgb3V0IHRoYXRcbiAgICAgICAgICAgICAgICoqKiAgaGFuZGluZyBvZmYgcmVmZXJuY2UgdG8gVmlldyBjb21wb25lbnQgYWx3YXlzIHdvcmtzXG4gICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgIC8vIFdoZW4gbmV3Q29tcCBpcyBhIHJlZmVyZW5jZSwgd2Ugd2FudCB0byBkZS1yZWZlcmVuY2VcbiAgICAgICAgICAgICAgLy8gIGl0ICh0byBnZXQgdGhlIFZpZXcpIGFuZCB0aGVuIHVzZSB0aGF0IFZpZXcgdG8gZ2V0IHRoZVxuICAgICAgICAgICAgICAvLyAgdGVtcGxhdGUsIHRpdGxlLCBjaGlsZHJlbiwgZXRjLlxuXG4gICAgICAgICAgICAgIC8qXG5cbiAgICAgICAgICAgICAgY29uc3QgdGhlRGVyZWZlcmVuY2VkVmlldyA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubihuZXdDb21wKTtcbiAgICAgICAgICAgICAgY29uc3QgbmV3Q29uZmlnUHJvcHMgPSB0aGVEZXJlZmVyZW5jZWRWaWV3LmdldENvbmZpZ1Byb3BzKCk7XG5cbiAgICAgICAgICAgICAgLy8gY2hpbGRyZW4gbWF5IGhhdmUgYSAncmVmZXJlbmNlJyBzbyBub3JtYWxpemUgdGhlIGNoaWxkcmVuIGFycmFcblxuICAgICAgICAgICAgICBjb25zdCB0aGVEZXJlZmVyZW5jZWRWaWV3Q2hpbGRyZW4gPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGVEZXJlZmVyZW5jZWRWaWV3LmdldENoaWxkcmVuKCkpO1xuICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSAoJ3RlbXBsYXRlJyBpbiBuZXdDb25maWdQcm9wcykgPyBuZXdDb25maWdQcm9wc1tcInRlbXBsYXRlXCJdIDogXCJcIjtcbiAgICAgICAgICAgICAgdGhpcy50aXRsZSQgPSAoJ3RpdGxlJyBpbiBuZXdDb25maWdQcm9wcykgPyBuZXdDb25maWdQcm9wc1tcInRpdGxlXCJdIDogXCJcIjtcbiAgICAgICAgICAgICAgdGhpcy5hckNoaWxkcmVuJCA9IHRoZURlcmVmZXJlbmNlZFZpZXdDaGlsZHJlbjtcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVkVmlld1BDb25uJCA9IHRoZURlcmVmZXJlbmNlZFZpZXc7XG4gICAgICAgICAgICAgICovXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBvbGQgc3R5bGUgd2hlbiBuZXdDb21wIGlzIE5PVCBhICdyZWZlcmVuY2UnXG4gICAgICAgICAgICAgIHRoaXMuaXNWaWV3Q29udGFpbmVyJCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgVmlld0NvbnRhaW5lciBoYXMgYSBuZXdDb21wIHRoYXQgaXMgTk9UIGEgcmVmZXJlbmNlIWApO1xuXG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlZFZpZXdQQ29ubiQgPSBuZXdDb21wO1xuICAgICAgICAgICAgICBjb25zdCBuZXdDb25maWdQcm9wczogYW55ID0gbmV3Q29tcC5nZXRDb25maWdQcm9wcygpO1xuICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSBuZXdDb25maWdQcm9wcy50ZW1wbGF0ZSB8fCAnJztcbiAgICAgICAgICAgICAgdGhpcy50aXRsZSQgPSBuZXdDb25maWdQcm9wcy50aXRsZSB8fCAnJztcbiAgICAgICAgICAgICAgLy8gdXBkYXRlIGNoaWxkcmVuIHdpdGggbmV3IHZpZXcncyBjaGlsZHJlblxuICAgICAgICAgICAgICAvLyBjaGlsZHJlbiBtYXkgaGF2ZSBhICdyZWZlcmVuY2UnIHNvIG5vcm1hbGl6ZSB0aGUgY2hpbGRyZW4gYXJyYXlcbiAgICAgICAgICAgICAgdGhpcy5hckNoaWxkcmVuJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubkFycmF5KG5ld0NvbXAuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRGlzcGF0Y2hPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCBiYXNlQ29udGV4dCA9IHRoaXMucENvbm4kLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gY29uc3QgeyBhY05hbWUgPSBcInByaW1hcnlcIiB9ID0gcENvbm4uZ2V0Q29udGFpbmVyTmFtZSgpOyAvLyBkb2Vzbid0IHdvcmsgd2l0aCA4LjIzIHR5cGluZ3NcbiAgICBjb25zdCBhY05hbWUgPSB0aGlzLnBDb25uJC5nZXRDb250YWluZXJOYW1lKCkgfHwgJ3ByaW1hcnknO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbWFudGljVVJMOiAnJyxcbiAgICAgIGNvbnRleHQ6IGJhc2VDb250ZXh0LFxuICAgICAgYWNOYW1lXG4gICAgfTtcbiAgfVxuXG4gIGJ1aWxkTmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNDb250ZXh0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKTtcbiAgICBjb25zdCBzTmFtZSA9IHRoaXMucENvbm4kLmdldENvbnRhaW5lck5hbWUoKTtcblxuICAgIHJldHVybiBgJHtzQ29udGV4dC50b1VwcGVyQ2FzZSgpfS8ke3NOYW1lLnRvVXBwZXJDYXNlKCl9YDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBzZGstdmlldy1jb250YWluZXItdG9wXCIgaWQ9XCJ7eyBidWlsZE5hbWUkIH19XCI+XG4gIDxkaXYgKm5nSWY9XCJpc1ZpZXdDb250YWluZXIkOyBlbHNlIGlzUmVmZXJlbmNlXCI+XG4gICAgPGgzICpuZ0lmPVwidGl0bGUkICE9PSAnJ1wiPnt7IHRpdGxlJCB9fTwvaDM+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlTmFtZSQ7IGVsc2Ugc2hvd0NoaWxkcmVuXCI+XG4gICAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgICBbbmFtZV09XCJ0ZW1wbGF0ZU5hbWUkXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBwQ29ubiQ6IGNyZWF0ZWRWaWV3UENvbm4kLFxuICAgICAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCQsXG4gICAgICAgICAgZGlzcGxheU9ubHlGQSQ6IGRpc3BsYXlPbmx5RkEkXG4gICAgICAgIH1cIlxuICAgICAgICBlcnJvck1zZz1cIlZpZXcgQ29udGFpbmVyIG1pc3NpbmcgVGVtcGxhdGUge3sgdGVtcGxhdGVOYW1lJCB9fVwiXG4gICAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0NoaWxkcmVuPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gICAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgICAgIGRpc3BsYXlPbmx5RkEkOiBkaXNwbGF5T25seUZBJFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIGVycm9yTXNnPVwiVmlld0NvbnRhaW5lciBNaXNzaW5nIChubyB0ZW1wbGF0ZSk6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gICAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNpc1JlZmVyZW5jZT5cbiAgICA8Y29tcG9uZW50LW1hcHBlciBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJDogdmlld1BDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -1,31 +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 "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/material/grid-list";
|
|
8
|
-
import * as i3 from "@angular/material/button";
|
|
9
|
-
export class ActionButtonsComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.actionButtonClick = new EventEmitter();
|
|
12
|
-
this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
13
|
-
this.localeCategory = 'Assignment';
|
|
14
|
-
}
|
|
15
|
-
buttonClick(sAction, sButtonType) {
|
|
16
|
-
this.actionButtonClick.emit({ action: sAction, buttonType: sButtonType });
|
|
17
|
-
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionButtonsComponent, isStandalone: true, selector: "app-action-buttons", inputs: { arMainButtons$: "arMainButtons$", arSecondaryButtons$: "arSecondaryButtons$" }, outputs: { actionButtonClick: "actionButtonClick" }, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button *ngFor=\"let aButton of arSecondaryButtons$\" mat-raised-button color=\"secondary\" (click)=\"buttonClick(aButton.jsAction, 'secondary')\">\n {{ localizedVal(aButton.name, localeCategory) }}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button *ngFor=\"let aButton of arMainButtons$\" mat-raised-button color=\"primary\" (click)=\"buttonClick(aButton.jsAction, 'primary')\">\n {{ localizedVal(aButton.name, localeCategory) }}\n </button>\n </mat-grid-tile>\n</mat-grid-list>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatGridListModule }, { kind: "component", type: i2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionButtonsComponent, decorators: [{
|
|
22
|
-
type: Component,
|
|
23
|
-
args: [{ selector: 'app-action-buttons', standalone: true, imports: [CommonModule, MatGridListModule, MatButtonModule], template: "<mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n <mat-grid-tile>\n <button *ngFor=\"let aButton of arSecondaryButtons$\" mat-raised-button color=\"secondary\" (click)=\"buttonClick(aButton.jsAction, 'secondary')\">\n {{ localizedVal(aButton.name, localeCategory) }}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button *ngFor=\"let aButton of arMainButtons$\" mat-raised-button color=\"primary\" (click)=\"buttonClick(aButton.jsAction, 'primary')\">\n {{ localizedVal(aButton.name, localeCategory) }}\n </button>\n </mat-grid-tile>\n</mat-grid-list>\n" }]
|
|
24
|
-
}], propDecorators: { arMainButtons$: [{
|
|
25
|
-
type: Input
|
|
26
|
-
}], arSecondaryButtons$: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}], actionButtonClick: [{
|
|
29
|
-
type: Output
|
|
30
|
-
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL2FjdGlvbi1idXR0b25zL2FjdGlvbi1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9hY3Rpb24tYnV0dG9ucy9hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBU2hFLE1BQU0sT0FBTyxzQkFBc0I7SUFQbkM7UUFXWSxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRSxpQkFBWSxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxjQUFjLENBQUM7UUFDckQsbUJBQWMsR0FBRyxZQUFZLENBQUM7S0FLL0I7SUFIQyxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVc7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQzsrR0FYVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw2TkNabkMsMmtCQVlBLHlEREZZLFlBQVksMkpBQUUsaUJBQWlCLGlUQUFFLGVBQWU7OzRGQUUvQyxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUM7OEJBR2xELGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEdyaWRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZ3JpZC1saXN0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFjdGlvbi1idXR0b25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0R3JpZExpc3RNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQnV0dG9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGFyTWFpbkJ1dHRvbnMkOiBhbnlbXTtcbiAgQElucHV0KCkgYXJTZWNvbmRhcnlCdXR0b25zJDogYW55W107XG5cbiAgQE91dHB1dCgpIGFjdGlvbkJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBsb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICBsb2NhbGVDYXRlZ29yeSA9ICdBc3NpZ25tZW50JztcblxuICBidXR0b25DbGljayhzQWN0aW9uLCBzQnV0dG9uVHlwZSkge1xuICAgIHRoaXMuYWN0aW9uQnV0dG9uQ2xpY2suZW1pdCh7IGFjdGlvbjogc0FjdGlvbiwgYnV0dG9uVHlwZTogc0J1dHRvblR5cGUgfSk7XG4gIH1cbn1cbiIsIjxtYXQtZ3JpZC1saXN0IGNvbHM9XCIyXCIgcm93SGVpZ2h0PVwiNi4yNXJlbVwiPlxuICA8bWF0LWdyaWQtdGlsZT5cbiAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhQnV0dG9uIG9mIGFyU2Vjb25kYXJ5QnV0dG9ucyRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInNlY29uZGFyeVwiIChjbGljayk9XCJidXR0b25DbGljayhhQnV0dG9uLmpzQWN0aW9uLCAnc2Vjb25kYXJ5JylcIj5cbiAgICAgIHt7IGxvY2FsaXplZFZhbChhQnV0dG9uLm5hbWUsIGxvY2FsZUNhdGVnb3J5KSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1ncmlkLXRpbGU+XG4gIDxtYXQtZ3JpZC10aWxlPlxuICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGFCdXR0b24gb2YgYXJNYWluQnV0dG9ucyRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soYUJ1dHRvbi5qc0FjdGlvbiwgJ3ByaW1hcnknKVwiPlxuICAgICAge3sgbG9jYWxpemVkVmFsKGFCdXR0b24ubmFtZSwgbG9jYWxlQ2F0ZWdvcnkpIH19XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWdyaWQtdGlsZT5cbjwvbWF0LWdyaWQtbGlzdD5cbiJdfQ==
|