@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,136 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
4
|
-
import { MatListModule } from '@angular/material/list';
|
|
5
|
-
import { logout } from '@pega/auth/lib/sdk-auth-manager';
|
|
6
|
-
import { Utils } from '../../../_helpers/utils';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../../_bridge/angular-pconnect";
|
|
9
|
-
import * as i2 from "../../../_messages/progress-spinner.service";
|
|
10
|
-
import * as i3 from "../../../_helpers/utils";
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
12
|
-
import * as i5 from "@angular/material/list";
|
|
13
|
-
import * as i6 from "@angular/material/menu";
|
|
14
|
-
export class NavbarComponent {
|
|
15
|
-
constructor(angularPConnect, chRef, psService, ngZone, utils) {
|
|
16
|
-
this.angularPConnect = angularPConnect;
|
|
17
|
-
this.chRef = chRef;
|
|
18
|
-
this.psService = psService;
|
|
19
|
-
this.ngZone = ngZone;
|
|
20
|
-
this.utils = utils;
|
|
21
|
-
// For interaction with AngularPConnect
|
|
22
|
-
this.angularPConnectData = {};
|
|
23
|
-
this.bShowCaseTypes$ = false;
|
|
24
|
-
this.portalApp$ = '';
|
|
25
|
-
this.showAppName$ = false;
|
|
26
|
-
this.localeCategory = 'AppShell';
|
|
27
|
-
this.localeUtils = PCore.getLocaleUtils();
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
// First thing in initialization is registering and subscribing to the AngularPConnect service
|
|
31
|
-
this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
|
|
32
|
-
this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');
|
|
33
|
-
// this is a dummy "get", because right now images are in http and the main screen is https
|
|
34
|
-
// so the images don't load automatically. This call, makes an initial hit that allows the
|
|
35
|
-
// rest of the images to show up
|
|
36
|
-
this.loadImage(this.navIcon$);
|
|
37
|
-
this.initComponent();
|
|
38
|
-
this.localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
39
|
-
}
|
|
40
|
-
// ngOnDestroy
|
|
41
|
-
// unsubscribe from Store
|
|
42
|
-
ngOnDestroy() {
|
|
43
|
-
if (this.angularPConnectData.unsubscribeFn) {
|
|
44
|
-
this.angularPConnectData.unsubscribeFn();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
loadImage(src) {
|
|
48
|
-
return new Promise(resolve => {
|
|
49
|
-
resolve(src);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
// Callback passed when subscribing to store change
|
|
53
|
-
onStateChange() {
|
|
54
|
-
// Should always check the bridge to see if the component should update itself (re-render)
|
|
55
|
-
const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
|
|
56
|
-
// NOTE: can call angularPConnect.getState with optional args for detailed logging: bLogMsg and component object
|
|
57
|
-
this.angularPConnect.getState();
|
|
58
|
-
if (bUpdateSelf) {
|
|
59
|
-
this.updateSelf();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
updateSelf() {
|
|
63
|
-
this.initComponent();
|
|
64
|
-
}
|
|
65
|
-
initComponent() {
|
|
66
|
-
this.ngZone.run(() => {
|
|
67
|
-
this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');
|
|
68
|
-
this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());
|
|
69
|
-
// Then, continue on with other initialization
|
|
70
|
-
// making a copy, so can add info
|
|
71
|
-
this.navPages$ = JSON.parse(JSON.stringify(this.pages$));
|
|
72
|
-
this.navPages$.forEach(page => {
|
|
73
|
-
page.iconName = this.utils.getImageSrc(page.pxPageViewIcon, this.utils.getSDKStaticContentUrl());
|
|
74
|
-
});
|
|
75
|
-
this.localeReference = this.pConn$.getValue('.pyLocaleReference');
|
|
76
|
-
this.actionsAPI = this.pConn$.getActionsApi();
|
|
77
|
-
this.createWork = this.actionsAPI.createWork.bind(this.actionsAPI);
|
|
78
|
-
this.showPage = this.actionsAPI.showPage.bind(this.actionsAPI);
|
|
79
|
-
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
|
|
80
|
-
this.logout = this.actionsAPI.logout.bind(this.actionsAPI);
|
|
81
|
-
// const oData = this.pConn$.getDataObject();
|
|
82
|
-
this.portalLogoImage$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');
|
|
83
|
-
this.portalOperator$ = PCore.getEnvironmentInfo().getOperatorName();
|
|
84
|
-
this.portalOperatorInitials$ = this.utils.getInitials(this.portalOperator$ ?? '');
|
|
85
|
-
this.showAppName$ = this.configProps$.showAppName;
|
|
86
|
-
this.portalApp$ = PCore.getEnvironmentInfo().getApplicationLabel();
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
navPanelButtonClick(oPageData) {
|
|
90
|
-
const { pyClassName, pyRuleName } = oPageData;
|
|
91
|
-
this.showPage(pyRuleName, pyClassName);
|
|
92
|
-
}
|
|
93
|
-
navPanelCreateButtonClick() {
|
|
94
|
-
if (this.navExpandCollapse$.indexOf('plus') > 0) {
|
|
95
|
-
this.navExpandCollapse$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());
|
|
96
|
-
this.bShowCaseTypes$ = true;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());
|
|
100
|
-
this.bShowCaseTypes$ = false;
|
|
101
|
-
}
|
|
102
|
-
this.chRef.detectChanges();
|
|
103
|
-
}
|
|
104
|
-
navPanelCreateCaseType(sCaseType, sFlowType) {
|
|
105
|
-
this.psService.sendMessage(true);
|
|
106
|
-
this.navPanelCreateButtonClick();
|
|
107
|
-
const actionInfo = {
|
|
108
|
-
containerName: 'primary',
|
|
109
|
-
flowType: sFlowType || 'pyStartCase'
|
|
110
|
-
};
|
|
111
|
-
this.createWork(sCaseType, actionInfo).then(() => {
|
|
112
|
-
console.log('createWork completed');
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
navPanelLogoutClick() {
|
|
116
|
-
logout().then(() => {
|
|
117
|
-
// Reload the page to kick off the login
|
|
118
|
-
window.location.reload();
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NavbarComponent, deps: [{ token: i1.AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: i2.ProgressSpinnerService }, { token: i0.NgZone }, { token: i3.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: NavbarComponent, isStandalone: true, selector: "app-navbar", inputs: { pConn$: "pConn$", appName$: "appName$", pages$: "pages$", caseTypes$: "caseTypes$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-appshell-nav\">\n <div class=\"psdk-nav-header\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ portalApp$ }}</div>\n </div>\n </div>\n <div class=\"psdk-nav-divider\"></div>\n <div>\n <mat-list>\n <mat-list-item id=\"create-case-button\" (click)=\"navPanelCreateButtonClick()\">\n <div class=\"flex-box\">\n <img class=\"psdk-nav-svg-icon\" src=\"{{ navExpandCollapse$ }}\" />\n <span class=\"psdk-nav-button-span\">Create</span>\n </div>\n </mat-list-item>\n <mat-list *ngIf=\"bShowCaseTypes$\" style=\"margin-left: 40px\">\n <mat-list-item\n id=\"case-list-item\"\n *ngFor=\"let caseType of caseTypes$\"\n (click)=\"navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)\"\n >\n <span class=\"psdk-nav-button-span\">{{ localeUtils.getLocaleValue(caseType.pyLabel, '', localeReference) }}</span>\n </mat-list-item>\n </mat-list>\n </mat-list>\n </div>\n <div style=\"height: 100%\">\n <mat-list *ngFor=\"let page of navPages$\">\n <mat-list-item (click)=\"navPanelButtonClick(page)\">\n <div class=\"flex-box\">\n <img class=\"psdk-nav-svg-icon\" src=\"{{ page.iconName }}\" />\n <span class=\"psdk-nav-button-span\">{{ localeUtils.getLocaleValue(page.pyLabel, '', localeReference) }}</span>\n </div>\n </mat-list-item>\n </mat-list>\n </div>\n <div class=\"psdk-nav-divider\"></div>\n <div>\n <mat-list id=\"profile\">\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n <span class=\"psdk-nav-button-span\">{{ portalOperator$ }}</span>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item>Profile</button>\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </div>\n</div>\n", styles: [".psdk-nav-divider{border-bottom:.0625rem solid var(--app-divider-color);width:100%;align-items:center}.psdk-nav-header{display:flex;padding-top:.625rem}.psdk-nav-logo{width:3.75rem;padding:.625rem;margin-right:1.25rem}.psdk-nav-svg-icon{filter:var(--app-white-color-filter);width:1.6rem;padding-right:.625rem}.psdk-nav-portal-name{font-size:.875rem}.psdk-nav-portal-app{font-size:1.25rem}.psdk-appshell-nav{z-index:199;position:fixed;display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:100%;color:var(--app-nav-color);overflow-y:auto;overflow-x:hidden;white-space:nowrap;transition:width .3s cubic-bezier(.4,.6,.1,1);will-change:width}.psdk-appshell-nav:hover{width:var(--app-nav-width-expanded)}.psdk-appshell-topnav{display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:15%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;transition:width .3s cubic-bezier(.4,.6,.1,1);will-change:width}.psdk-appshell-middlenav{display:flex;flex-direction:column;justify-content:space-between;background:var(--app-nav-bg);width:var(--app-nav-width);height:50%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;transition:width .3s cubic-bezier(.4,.6,.1,1);will-change:width}.psdk-nav-ul-middle{display:block;list-style-type:none;margin:0rem;padding-inline-start:30px}.psdk-nav-li-middle{box-sizing:border-box;text-align:left}.psdk-icon{padding:0rem .125rem;min-width:unset}.psdk-nav-button-span{padding:0 1rem;color:var(--app-nav-color)}.psdk-nav-oper-avatar{margin:0rem;padding:0rem;min-width:2.5rem;min-height:2.5rem;max-width:2.5rem;max-height:2.5rem;border-radius:50%;justify-content:center;align-items:center;text-align:center;display:inline-flex;background:var(--app-neutral-color);color:var(--app-form-color);font-weight:400;font-size:1rem}mat-list{padding:0}.psdk-profile-list-item{padding-left:24px}mat-list-item{padding:20px 0 20px 30px;cursor:pointer!important;height:auto!important}mat-list-item:hover{background-color:var(--app-label-color)}mat-list-item .flex-box{display:flex;align-items:center;width:100%;text-align:left}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
|
|
123
|
-
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NavbarComponent, decorators: [{
|
|
125
|
-
type: Component,
|
|
126
|
-
args: [{ selector: 'app-navbar', providers: [Utils], standalone: true, imports: [CommonModule, MatListModule, MatMenuModule], template: "<div class=\"psdk-appshell-nav\">\n <div class=\"psdk-nav-header\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ portalApp$ }}</div>\n </div>\n </div>\n <div class=\"psdk-nav-divider\"></div>\n <div>\n <mat-list>\n <mat-list-item id=\"create-case-button\" (click)=\"navPanelCreateButtonClick()\">\n <div class=\"flex-box\">\n <img class=\"psdk-nav-svg-icon\" src=\"{{ navExpandCollapse$ }}\" />\n <span class=\"psdk-nav-button-span\">Create</span>\n </div>\n </mat-list-item>\n <mat-list *ngIf=\"bShowCaseTypes$\" style=\"margin-left: 40px\">\n <mat-list-item\n id=\"case-list-item\"\n *ngFor=\"let caseType of caseTypes$\"\n (click)=\"navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)\"\n >\n <span class=\"psdk-nav-button-span\">{{ localeUtils.getLocaleValue(caseType.pyLabel, '', localeReference) }}</span>\n </mat-list-item>\n </mat-list>\n </mat-list>\n </div>\n <div style=\"height: 100%\">\n <mat-list *ngFor=\"let page of navPages$\">\n <mat-list-item (click)=\"navPanelButtonClick(page)\">\n <div class=\"flex-box\">\n <img class=\"psdk-nav-svg-icon\" src=\"{{ page.iconName }}\" />\n <span class=\"psdk-nav-button-span\">{{ localeUtils.getLocaleValue(page.pyLabel, '', localeReference) }}</span>\n </div>\n </mat-list-item>\n </mat-list>\n </div>\n <div class=\"psdk-nav-divider\"></div>\n <div>\n <mat-list id=\"profile\">\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n <span class=\"psdk-nav-button-span\">{{ portalOperator$ }}</span>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item>Profile</button>\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </div>\n</div>\n", styles: [".psdk-nav-divider{border-bottom:.0625rem solid var(--app-divider-color);width:100%;align-items:center}.psdk-nav-header{display:flex;padding-top:.625rem}.psdk-nav-logo{width:3.75rem;padding:.625rem;margin-right:1.25rem}.psdk-nav-svg-icon{filter:var(--app-white-color-filter);width:1.6rem;padding-right:.625rem}.psdk-nav-portal-name{font-size:.875rem}.psdk-nav-portal-app{font-size:1.25rem}.psdk-appshell-nav{z-index:199;position:fixed;display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:100%;color:var(--app-nav-color);overflow-y:auto;overflow-x:hidden;white-space:nowrap;transition:width .3s cubic-bezier(.4,.6,.1,1);will-change:width}.psdk-appshell-nav:hover{width:var(--app-nav-width-expanded)}.psdk-appshell-topnav{display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:15%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;transition:width .3s cubic-bezier(.4,.6,.1,1);will-change:width}.psdk-appshell-middlenav{display:flex;flex-direction:column;justify-content:space-between;background:var(--app-nav-bg);width:var(--app-nav-width);height:50%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;transition:width .3s cubic-bezier(.4,.6,.1,1);will-change:width}.psdk-nav-ul-middle{display:block;list-style-type:none;margin:0rem;padding-inline-start:30px}.psdk-nav-li-middle{box-sizing:border-box;text-align:left}.psdk-icon{padding:0rem .125rem;min-width:unset}.psdk-nav-button-span{padding:0 1rem;color:var(--app-nav-color)}.psdk-nav-oper-avatar{margin:0rem;padding:0rem;min-width:2.5rem;min-height:2.5rem;max-width:2.5rem;max-height:2.5rem;border-radius:50%;justify-content:center;align-items:center;text-align:center;display:inline-flex;background:var(--app-neutral-color);color:var(--app-form-color);font-weight:400;font-size:1rem}mat-list{padding:0}.psdk-profile-list-item{padding-left:24px}mat-list-item{padding:20px 0 20px 30px;cursor:pointer!important;height:auto!important}mat-list-item:hover{background-color:var(--app-label-color)}mat-list-item .flex-box{display:flex;align-items:center;width:100%;text-align:left}\n"] }]
|
|
127
|
-
}], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: i2.ProgressSpinnerService }, { type: i0.NgZone }, { type: i3.Utils }], propDecorators: { pConn$: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], appName$: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], pages$: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], caseTypes$: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLGVBQWU7SUErQjFCLFlBQ1UsZUFBdUMsRUFDdkMsS0FBd0IsRUFDeEIsU0FBaUMsRUFDakMsTUFBYyxFQUNkLEtBQVk7UUFKWixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQU87UUE5QnRCLHVDQUF1QztRQUN2Qyx3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBSzlDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FB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UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXhKVSxlQUFlO21HQUFmLGVBQWUseUpBSmYsQ0FBQyxLQUFLLENBQUMsMEJDcEJwQixtc0VBdURBLDJzRURqQ1ksWUFBWSwrUEFBRSxhQUFhLHVSQUFFLGFBQWE7OzRGQUV6QyxlQUFlO2tCQVIzQixTQUFTOytCQUNFLFlBQVksYUFHWCxDQUFDLEtBQUssQ0FBQyxjQUNOLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO3lNQUc1QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE5nWm9uZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgbG9nb3V0IH0gZnJvbSAnQHBlZ2EvYXV0aC9saWIvc2RrLWF1dGgtbWFuYWdlcic7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWVzc2FnZXMvcHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdXRpbHMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xuXG5pbnRlcmZhY2UgTmF2QmFyUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIHNob3dBcHBOYW1lPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hdmJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVXRpbHNdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRMaXN0TW9kdWxlLCBNYXRNZW51TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBhcHBOYW1lJDogc3RyaW5nO1xuICBASW5wdXQoKSBwYWdlcyQ6IGFueVtdO1xuICBASW5wdXQoKSBjYXNlVHlwZXMkOiBhbnlbXTtcblxuICAvLyBGb3IgaW50ZXJhY3Rpb24gd2l0aCBBbmd1bGFyUENvbm5lY3RcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YSA9IHt9O1xuICBjb25maWdQcm9wcyQ6IE5hdkJhclByb3BzO1xuXG4gIG5hdlBhZ2VzJDogYW55W107XG4gIG5hdkV4cGFuZENvbGxhcHNlJDogc3RyaW5nO1xuICBiU2hvd0Nhc2VUeXBlcyQgPSBmYWxzZTtcblxuICBwb3J0YWxBcHAkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcbiAgcG9ydGFsTG9nb0ltYWdlJDogc3RyaW5nO1xuICBzaG93QXBwTmFtZSQ/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcG9ydGFsT3BlcmF0b3IkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHBvcnRhbE9wZXJhdG9ySW5pdGlhbHMkOiBzdHJpbmc7XG5cbiAgYWN0aW9uc0FQSTogYW55O1xuICBjcmVhdGVXb3JrOiBhbnk7XG4gIHNob3dQYWdlOiBhbnk7XG4gIGxvZ291dDogYW55O1xuXG4gIG5hdkljb24kOiBzdHJpbmc7XG4gIGxvY2FsaXplZFZhbDogYW55O1xuICBsb2NhbGVDYXRlZ29yeSA9ICdBcHBTaGVsbCc7XG4gIGxvY2FsZVV0aWxzID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKTtcbiAgbG9jYWxlUmVmZXJlbmNlOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy5uYXZJY29uJCA9IHRoaXMudXRpbHMuZ2V0U0RLU3RhdGljQ29udGVudFVybCgpLmNvbmNhdCgnYXNzZXRzL3B6cGVnYS1sb2dvLW1hcmsuc3ZnJyk7XG5cbiAgICAvLyB0aGlzIGlzIGEgZHVtbXkgXCJnZXRcIiwgYmVjYXVzZSByaWdodCBub3cgaW1hZ2VzIGFyZSBpbiBodHRwIGFuZCB0aGUgbWFpbiBzY3JlZW4gaXMgaHR0cHNcbiAgICAvLyBzbyB0aGUgaW1hZ2VzIGRvbid0IGxvYWQgYXV0b21hdGljYWxseS4gIFRoaXMgY2FsbCwgbWFrZXMgYW4gaW5pdGlhbCBoaXQgdGhhdCBhbGxvd3MgdGhlXG4gICAgLy8gcmVzdCBvZiB0aGUgaW1hZ2VzIHRvIHNob3cgdXBcbiAgICB0aGlzLmxvYWRJbWFnZSh0aGlzLm5hdkljb24kKTtcblxuICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xuICAgIHRoaXMubG9jYWxpemVkVmFsID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZTtcbiAgfVxuXG4gIC8vIG5nT25EZXN0cm95XG4gIC8vICB1bnN1YnNjcmliZSBmcm9tIFN0b3JlXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICBsb2FkSW1hZ2Uoc3JjOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICByZXNvbHZlKHNyYyk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE5PVEU6IGNhbiBjYWxsIGFuZ3VsYXJQQ29ubmVjdC5nZXRTdGF0ZSB3aXRoIG9wdGlvbmFsIGFyZ3MgZm9yIGRldGFpbGVkIGxvZ2dpbmc6IGJMb2dNc2cgYW5kIGNvbXBvbmVudCBvYmplY3RcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRTdGF0ZSgpO1xuXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xuICB9XG5cbiAgaW5pdENvbXBvbmVudCgpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5uYXZJY29uJCA9IHRoaXMudXRpbHMuZ2V0U0RLU3RhdGljQ29udGVudFVybCgpLmNvbmNhdCgnYXNzZXRzL3B6cGVnYS1sb2dvLW1hcmsuc3ZnJyk7XG4gICAgICB0aGlzLm5hdkV4cGFuZENvbGxhcHNlJCA9IHRoaXMudXRpbHMuZ2V0SW1hZ2VTcmMoJ3BsdXMnLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG5cbiAgICAgIC8vIFRoZW4sIGNvbnRpbnVlIG9uIHdpdGggb3RoZXIgaW5pdGlhbGl6YXRpb25cblxuICAgICAgLy8gbWFraW5nIGEgY29weSwgc28gY2FuIGFkZCBpbmZvXG4gICAgICB0aGlzLm5hdlBhZ2VzJCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wYWdlcyQpKTtcblxuICAgICAgdGhpcy5uYXZQYWdlcyQuZm9yRWFjaChwYWdlID0+IHtcbiAgICAgICAgcGFnZS5pY29uTmFtZSA9IHRoaXMudXRpbHMuZ2V0SW1hZ2VTcmMocGFnZS5weFBhZ2VWaWV3SWNvbiwgdGhpcy51dGlscy5nZXRTREtTdGF0aWNDb250ZW50VXJsKCkpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxvY2FsZVJlZmVyZW5jZSA9IHRoaXMucENvbm4kLmdldFZhbHVlKCcucHlMb2NhbGVSZWZlcmVuY2UnKTtcbiAgICAgIHRoaXMuYWN0aW9uc0FQSSA9IHRoaXMucENvbm4kLmdldEFjdGlvbnNBcGkoKTtcbiAgICAgIHRoaXMuY3JlYXRlV29yayA9IHRoaXMuYWN0aW9uc0FQSS5jcmVhdGVXb3JrLmJpbmQodGhpcy5hY3Rpb25zQVBJKTtcbiAgICAgIHRoaXMuc2hvd1BhZ2UgPSB0aGlzLmFjdGlvbnNBUEkuc2hvd1BhZ2UuYmluZCh0aGlzLmFjdGlvbnNBUEkpO1xuICAgICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgTmF2QmFyUHJvcHM7XG4gICAgICB0aGlzLmxvZ291dCA9IHRoaXMuYWN0aW9uc0FQSS5sb2dvdXQuYmluZCh0aGlzLmFjdGlvbnNBUEkpO1xuXG4gICAgICAvLyBjb25zdCBvRGF0YSA9IHRoaXMucENvbm4kLmdldERhdGFPYmplY3QoKTtcblxuICAgICAgdGhpcy5wb3J0YWxMb2dvSW1hZ2UkID0gdGhpcy51dGlscy5nZXRTREtTdGF0aWNDb250ZW50VXJsKCkuY29uY2F0KCdhc3NldHMvcHpwZWdhLWxvZ28tbWFyay5zdmcnKTtcbiAgICAgIHRoaXMucG9ydGFsT3BlcmF0b3IkID0gUENvcmUuZ2V0RW52aXJvbm1lbnRJbmZvKCkuZ2V0T3BlcmF0b3JOYW1lKCk7XG4gICAgICB0aGlzLnBvcnRhbE9wZXJhdG9ySW5pdGlhbHMkID0gdGhpcy51dGlscy5nZXRJbml0aWFscyh0aGlzLnBvcnRhbE9wZXJhdG9yJCA/PyAnJyk7XG4gICAgICB0aGlzLnNob3dBcHBOYW1lJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dBcHBOYW1lO1xuXG4gICAgICB0aGlzLnBvcnRhbEFwcCQgPSBQQ29yZS5nZXRFbnZpcm9ubWVudEluZm8oKS5nZXRBcHBsaWNhdGlvbkxhYmVsKCk7XG4gICAgfSk7XG4gIH1cblxuICBuYXZQYW5lbEJ1dHRvbkNsaWNrKG9QYWdlRGF0YTogYW55KSB7XG4gICAgY29uc3QgeyBweUNsYXNzTmFtZSwgcHlSdWxlTmFtZSB9ID0gb1BhZ2VEYXRhO1xuXG4gICAgdGhpcy5zaG93UGFnZShweVJ1bGVOYW1lLCBweUNsYXNzTmFtZSk7XG4gIH1cblxuICBuYXZQYW5lbENyZWF0ZUJ1dHRvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLm5hdkV4cGFuZENvbGxhcHNlJC5pbmRleE9mKCdwbHVzJykgPiAwKSB7XG4gICAgICB0aGlzLm5hdkV4cGFuZENvbGxhcHNlJCA9IHRoaXMudXRpbHMuZ2V0SW1hZ2VTcmMoJ3RpbWVzJywgdGhpcy51dGlscy5nZXRTREtTdGF0aWNDb250ZW50VXJsKCkpO1xuICAgICAgdGhpcy5iU2hvd0Nhc2VUeXBlcyQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdkV4cGFuZENvbGxhcHNlJCA9IHRoaXMudXRpbHMuZ2V0SW1hZ2VTcmMoJ3BsdXMnLCB0aGlzLnV0aWxzLmdldFNES1N0YXRpY0NvbnRlbnRVcmwoKSk7XG4gICAgICB0aGlzLmJTaG93Q2FzZVR5cGVzJCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuY2hSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmF2UGFuZWxDcmVhdGVDYXNlVHlwZShzQ2FzZVR5cGU6IHN0cmluZywgc0Zsb3dUeXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBzU2VydmljZS5zZW5kTWVzc2FnZSh0cnVlKTtcbiAgICB0aGlzLm5hdlBhbmVsQ3JlYXRlQnV0dG9uQ2xpY2soKTtcblxuICAgIGNvbnN0IGFjdGlvbkluZm8gPSB7XG4gICAgICBjb250YWluZXJOYW1lOiAncHJpbWFyeScsXG4gICAgICBmbG93VHlwZTogc0Zsb3dUeXBlIHx8ICdweVN0YXJ0Q2FzZSdcbiAgICB9O1xuICAgIHRoaXMuY3JlYXRlV29yayhzQ2FzZVR5cGUsIGFjdGlvbkluZm8pLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ2NyZWF0ZVdvcmsgY29tcGxldGVkJyk7XG4gICAgfSk7XG4gIH1cblxuICBuYXZQYW5lbExvZ291dENsaWNrKCkge1xuICAgIGxvZ291dCgpLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gUmVsb2FkIHRoZSBwYWdlIHRvIGtpY2sgb2ZmIHRoZSBsb2dpblxuICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHNkay1hcHBzaGVsbC1uYXZcIj5cbiAgPGRpdiBjbGFzcz1cInBzZGstbmF2LWhlYWRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8aW1nIHNyYz1cInt7IHBvcnRhbExvZ29JbWFnZSQgfX1cIiBjbGFzcz1cInBzZGstbmF2LWxvZ29cIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwc2RrLW5hdi1wb3J0YWwtaW5mb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInBzZGstbmF2LXBvcnRhbC1hcHBcIj57eyBwb3J0YWxBcHAkIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHNkay1uYXYtZGl2aWRlclwiPjwvZGl2PlxuICA8ZGl2PlxuICAgIDxtYXQtbGlzdD5cbiAgICAgIDxtYXQtbGlzdC1pdGVtIGlkPVwiY3JlYXRlLWNhc2UtYnV0dG9uXCIgKGNsaWNrKT1cIm5hdlBhbmVsQ3JlYXRlQnV0dG9uQ2xpY2soKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ib3hcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwicHNkay1uYXYtc3ZnLWljb25cIiBzcmM9XCJ7eyBuYXZFeHBhbmRDb2xsYXBzZSQgfX1cIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHNkay1uYXYtYnV0dG9uLXNwYW5cIj5DcmVhdGU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgPG1hdC1saXN0ICpuZ0lmPVwiYlNob3dDYXNlVHlwZXMkXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogNDBweFwiPlxuICAgICAgICA8bWF0LWxpc3QtaXRlbVxuICAgICAgICAgIGlkPVwiY2FzZS1saXN0LWl0ZW1cIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXNlVHlwZSBvZiBjYXNlVHlwZXMkXCJcbiAgICAgICAgICAoY2xpY2spPVwibmF2UGFuZWxDcmVhdGVDYXNlVHlwZShjYXNlVHlwZS5weUNsYXNzTmFtZSwgY2FzZVR5cGUucHlGbG93VHlwZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwc2RrLW5hdi1idXR0b24tc3BhblwiPnt7IGxvY2FsZVV0aWxzLmdldExvY2FsZVZhbHVlKGNhc2VUeXBlLnB5TGFiZWwsICcnLCBsb2NhbGVSZWZlcmVuY2UpIH19PC9zcGFuPlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICA8L21hdC1saXN0PlxuICAgIDwvbWF0LWxpc3Q+XG4gIDwvZGl2PlxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XG4gICAgPG1hdC1saXN0ICpuZ0Zvcj1cImxldCBwYWdlIG9mIG5hdlBhZ2VzJFwiPlxuICAgICAgPG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cIm5hdlBhbmVsQnV0dG9uQ2xpY2socGFnZSlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYm94XCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cInBzZGstbmF2LXN2Zy1pY29uXCIgc3JjPVwie3sgcGFnZS5pY29uTmFtZSB9fVwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwc2RrLW5hdi1idXR0b24tc3BhblwiPnt7IGxvY2FsZVV0aWxzLmdldExvY2FsZVZhbHVlKHBhZ2UucHlMYWJlbCwgJycsIGxvY2FsZVJlZmVyZW5jZSkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIDwvbWF0LWxpc3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHNkay1uYXYtZGl2aWRlclwiPjwvZGl2PlxuICA8ZGl2PlxuICAgIDxtYXQtbGlzdCBpZD1cInByb2ZpbGVcIj5cbiAgICAgIDxtYXQtbGlzdC1pdGVtIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJwc2RrLXByb2ZpbGUtbGlzdC1pdGVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWJveFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwc2RrLW5hdi1vcGVyLWF2YXRhclwiPnt7IHBvcnRhbE9wZXJhdG9ySW5pdGlhbHMkIH19PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwc2RrLW5hdi1idXR0b24tc3BhblwiPnt7IHBvcnRhbE9wZXJhdG9yJCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5Qcm9maWxlPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwibmF2UGFuZWxMb2dvdXRDbGljaygpXCI+e3sgbG9jYWxpemVkVmFsKCdMb2cgb2ZmJywgbG9jYWxlQ2F0ZWdvcnkpIH19PC9idXR0b24+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbWF0LWxpc3Q+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
|
|
5
|
-
* Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
|
|
6
|
-
* is totally at your own risk.
|
|
7
|
-
*/
|
|
8
|
-
export class ReferenceComponent {
|
|
9
|
-
/* Used to toggle some class-wide logging */
|
|
10
|
-
static { this.bLogging = false; }
|
|
11
|
-
constructor() {
|
|
12
|
-
this.referencedComponent = null;
|
|
13
|
-
// With new static method approach, this shouldn't be called any more
|
|
14
|
-
window.alert(`in ReferenceComponent constructor!`);
|
|
15
|
-
console.error(`in ReferenceComponent constructor!`);
|
|
16
|
-
}
|
|
17
|
-
// onStateChange and updateSelf methods removed from original implementation
|
|
18
|
-
// when we moved to the static method implementation.
|
|
19
|
-
// STATIC method to create a normalized PConn (a fully realized View that the 'reference'
|
|
20
|
-
// component refers to) from the given pConn. Has to add in some stuff as in the constructor
|
|
21
|
-
static createFullReferencedViewFromRef(inPConn) {
|
|
22
|
-
// BAIL and ERROR if inPConn is NOT a reference!
|
|
23
|
-
if (inPConn.getComponentName() !== 'reference') {
|
|
24
|
-
// debugger;
|
|
25
|
-
console.error(`Reference component: createFullReferencedViewFromRef inPConn is NOT a reference! ${inPConn.getComponentName()}`);
|
|
26
|
-
}
|
|
27
|
-
const theResolvedConfigProps = inPConn.resolveConfigProps(inPConn.getConfigProps());
|
|
28
|
-
const referenceConfig = { ...inPConn.getComponentConfig() } || {};
|
|
29
|
-
// Since SDK-A implements Reference as static methods and we don't rely on
|
|
30
|
-
// the Reference component's handling of the visibility prop, we leave it in
|
|
31
|
-
// (and also leaving the others in for now) so the referenced View can act on
|
|
32
|
-
// the visibility prop. (The following 3 lines were carried over from React SDK)
|
|
33
|
-
delete referenceConfig?.name;
|
|
34
|
-
// delete referenceConfig?.type;
|
|
35
|
-
// delete referenceConfig?.visibility;
|
|
36
|
-
const viewMetadata = inPConn.getReferencedView();
|
|
37
|
-
if (!viewMetadata) {
|
|
38
|
-
console.log('View not found ', inPConn.getComponentConfig());
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
// If we get here, we have metadata for a View component...
|
|
42
|
-
// const referencedComponentName = viewMetadata.type;
|
|
43
|
-
const viewObject = {
|
|
44
|
-
...viewMetadata,
|
|
45
|
-
config: {
|
|
46
|
-
...viewMetadata.config,
|
|
47
|
-
...referenceConfig
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
if (ReferenceComponent.bLogging) {
|
|
51
|
-
console.log(`Reference: about to call createComponent with pageReference: context: ${theResolvedConfigProps.context}`);
|
|
52
|
-
}
|
|
53
|
-
const viewComponent = inPConn.createComponent(viewObject, null, null, {
|
|
54
|
-
pageReference: theResolvedConfigProps.context
|
|
55
|
-
});
|
|
56
|
-
// updating the referencedComponent should trigger a render
|
|
57
|
-
const newCompPConnect = viewComponent.getPConnect();
|
|
58
|
-
newCompPConnect.setInheritedConfig({
|
|
59
|
-
...referenceConfig,
|
|
60
|
-
readOnly: theResolvedConfigProps.readOnly ? theResolvedConfigProps.readOnly : false,
|
|
61
|
-
displayMode: theResolvedConfigProps.displayMode ? theResolvedConfigProps.displayMode : null
|
|
62
|
-
});
|
|
63
|
-
if (ReferenceComponent.bLogging) {
|
|
64
|
-
console.log(`Angular Reference component: createFullReferencedViewFromRef -> newCompPConnect configProps: ${JSON.stringify(newCompPConnect.getConfigProps())}`);
|
|
65
|
-
}
|
|
66
|
-
return newCompPConnect;
|
|
67
|
-
}
|
|
68
|
-
// STATIC method that other components can call to normalize
|
|
69
|
-
// a pConn object that might be a 'reference'. If the incoming
|
|
70
|
-
// pConn is a reference, return its dereferenced View PConnect's
|
|
71
|
-
// getPConnect. Otherwise, return the passed in pConn unchanged
|
|
72
|
-
// inPConn = a PConn object (ex: { getPConnect()} )
|
|
73
|
-
static normalizePConn(inPConn) {
|
|
74
|
-
// debugger;
|
|
75
|
-
let returnObj = false;
|
|
76
|
-
let thePConnType = '';
|
|
77
|
-
if (inPConn.getPConnect) {
|
|
78
|
-
// inPConn is an object (ex: { getPConnect()} ), so we want to return
|
|
79
|
-
// any referenced view as the object containing the
|
|
80
|
-
// the getPConnect function
|
|
81
|
-
returnObj = true;
|
|
82
|
-
thePConnType = inPConn.getPConnect().getComponentName();
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
// inPConn is an object with the PConnect function, so we want
|
|
86
|
-
// to return any referenced view as the object containing the
|
|
87
|
-
// the c11n function
|
|
88
|
-
returnObj = false;
|
|
89
|
-
thePConnType = inPConn.getComponentName();
|
|
90
|
-
}
|
|
91
|
-
if (thePConnType === 'reference') {
|
|
92
|
-
if (returnObj) {
|
|
93
|
-
// WAS...
|
|
94
|
-
// const theRefViewPConn = inPConn.getPConnect().getReferencedViewPConnect(true);
|
|
95
|
-
// Now: ALWAYS calling createFullReferencedViewFromRef to have options, PageReference, etc.
|
|
96
|
-
// set correctly in the C11nEnv (PConnect) object
|
|
97
|
-
// debugger;
|
|
98
|
-
let theRefViewPConn = this.createFullReferencedViewFromRef(inPConn.getPConnect());
|
|
99
|
-
// now return its PConnect
|
|
100
|
-
theRefViewPConn = theRefViewPConn.getComponent();
|
|
101
|
-
// const theFullReference = theRefViewPConn.getPConnect().getFullReference();
|
|
102
|
-
// console.log(`theFullReference: ${theFullReference}`);
|
|
103
|
-
return theRefViewPConn;
|
|
104
|
-
}
|
|
105
|
-
// console.log(`created theFullRefView full reference: ${theFullRefView.getFullReference()}`);
|
|
106
|
-
// debugger;
|
|
107
|
-
return this.createFullReferencedViewFromRef(inPConn);
|
|
108
|
-
}
|
|
109
|
-
return inPConn;
|
|
110
|
-
}
|
|
111
|
-
// STATIC method that other components can call to normalize
|
|
112
|
-
// an array of pConn objects where any of the children might
|
|
113
|
-
// be a 'reference'. The array returns an array of children
|
|
114
|
-
// where any 'reference' is replaced with its ReferencedView
|
|
115
|
-
// inPConnArray is an array of PConn objects or functions.
|
|
116
|
-
// Its value is passed to normalizePConn
|
|
117
|
-
static normalizePConnArray(inPConnArray) {
|
|
118
|
-
if (!(inPConnArray?.length > 0)) {
|
|
119
|
-
// null or empty array, return what was passed in
|
|
120
|
-
return inPConnArray;
|
|
121
|
-
}
|
|
122
|
-
return inPConnArray.map(child => {
|
|
123
|
-
return ReferenceComponent.normalizePConn(child);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: ReferenceComponent, isStandalone: true, selector: "app-reference", ngImport: i0, template: "<!-- Reference component is all static methods so .html not used -->\n", styles: [""] }); }
|
|
128
|
-
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ReferenceComponent, decorators: [{
|
|
130
|
-
type: Component,
|
|
131
|
-
args: [{ selector: 'app-reference', standalone: true, template: "<!-- Reference component is all static methods so .html not used -->\n" }]
|
|
132
|
-
}], ctorParameters: () => [] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLDRDQUE0QzthQUM3QixhQUFRLEdBQUcsS0FBSyxBQUFSLENBQVM7SUFFaEM7UUFMQSx3QkFBbUIsR0FBUSxJQUFJLENBQUM7UUFNOUIscUVBQXFFO1FBQ3JFLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxzREFBc0Q7SUFFdEQseUZBQXlGO0lBQ3pGLDZGQUE2RjtJQUM3RixNQUFNLENBQUMsK0JBQStCLENBQUMsT0FBWTtRQUNqRCxnREFBZ0Q7UUFDaEQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxZQUFZO1lBRVosT0FBTyxDQUFDLEtBQUssQ0FBQyxvRkFBb0YsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xJLENBQUM7UUFFRCxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVwRixNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFbEUsMEVBQTBFO1FBQzFFLDZFQUE2RTtRQUM3RSw4RUFBOEU7UUFDOUUsaUZBQWlGO1FBQ2pGLE9BQU8sZUFBZSxFQUFFLElBQUksQ0FBQztRQUM3QixnQ0FBZ0M7UUFDaEMsc0NBQXNDO1FBRXRDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsMkRBQTJEO1FBQzNELHFEQUFxRDtRQUVyRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLFlBQVk7WUFDZixNQUFNLEVBQUU7Z0JBQ04sR0FBRyxZQUFZLENBQUMsTUFBTTtnQkFDdEIsR0FBRyxlQUFlO2FBQ25CO1NBQ0YsQ0FBQztRQUVGLElBQUksa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5RUFBeUUsc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6SCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRSxhQUFhLEVBQUUsc0JBQXNCLENBQUMsT0FBTztTQUM5QyxDQUFDLENBQUM7UUFFSCwyREFBMkQ7UUFDM0QsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBELGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqQyxHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ25GLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUM1RixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZ0dBQWdHLElBQUksQ0FBQyxTQUFTLENBQzVHLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FDakMsRUFBRSxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELDREQUE0RDtJQUM1RCwrREFBK0Q7SUFDL0QsaUVBQWlFO0lBQ2pFLGdFQUFnRTtJQUNoRSxvREFBb0Q7SUFDcEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFZO1FBQ2hDLFlBQVk7UUFFWixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLHFFQUFxRTtZQUNyRSxvREFBb0Q7WUFDcEQsNEJBQTRCO1lBQzVCLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDakIsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ04sOERBQThEO1lBQzlELDhEQUE4RDtZQUM5RCxxQkFBcUI7WUFDckIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsVUFBVTtnQkFDVixpRkFBaUY7Z0JBQ2pGLDJGQUEyRjtnQkFDM0Ysa0RBQWtEO2dCQUNsRCxZQUFZO2dCQUNaLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDbEYsMEJBQTBCO2dCQUMxQixlQUFlLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUVqRCw2RUFBNkU7Z0JBQzdFLHdEQUF3RDtnQkFFeEQsT0FBTyxlQUFlLENBQUM7WUFDekIsQ0FBQztZQUNELDhGQUE4RjtZQUM5RixZQUFZO1lBRVosT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsNkRBQTZEO0lBQzdELDREQUE0RDtJQUM1RCw2REFBNkQ7SUFDN0QsMkRBQTJEO0lBQzNELDJDQUEyQztJQUUzQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsWUFBaUI7UUFDMUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGlEQUFpRDtZQUNqRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FySlUsa0JBQWtCO21HQUFsQixrQkFBa0IseUVDZC9CLHdFQUNBOzs0RkRhYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBXQVJOSU5HOiBJdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGlzIGZpbGUgc2hvdWxkIGJlIG1vZGlmaWVkLiAgSXQgaXMgcGFydCBvZiBpbmZyYXN0cnVjdHVyZSBjb2RlIHRoYXQgd29ya3Mgd2l0aFxuICogUmVkdXggYW5kIGNyZWF0aW9uL3VwZGF0ZSBvZiBSZWR1eCBjb250YWluZXJzIGFuZCBQQ29ubmVjdC4gIE1vZGlmeWluZyB0aGlzIGNvZGUgY291bGQgaGF2ZSB1bmRlc2lyZWFibGUgcmVzdWx0cyBhbmRcbiAqIGlzIHRvdGFsbHkgYXQgeW91ciBvd24gcmlzay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVmZXJlbmNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZmVyZW5jZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUNvbXBvbmVudCB7XG4gIHJlZmVyZW5jZWRDb21wb25lbnQ6IGFueSA9IG51bGw7XG5cbiAgLyogVXNlZCB0byB0b2dnbGUgc29tZSBjbGFzcy13aWRlIGxvZ2dpbmcgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYkxvZ2dpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBXaXRoIG5ldyBzdGF0aWMgbWV0aG9kIGFwcHJvYWNoLCB0aGlzIHNob3VsZG4ndCBiZSBjYWxsZWQgYW55IG1vcmVcbiAgICB3aW5kb3cuYWxlcnQoYGluIFJlZmVyZW5jZUNvbXBvbmVudCBjb25zdHJ1Y3RvciFgKTtcblxuICAgIGNvbnNvbGUuZXJyb3IoYGluIFJlZmVyZW5jZUNvbXBvbmVudCBjb25zdHJ1Y3RvciFgKTtcbiAgfVxuXG4gIC8vIG9uU3RhdGVDaGFuZ2UgYW5kIHVwZGF0ZVNlbGYgbWV0aG9kcyByZW1vdmVkIGZyb20gb3JpZ2luYWwgaW1wbGVtZW50YXRpb25cbiAgLy8gIHdoZW4gd2UgbW92ZWQgdG8gdGhlIHN0YXRpYyBtZXRob2QgaW1wbGVtZW50YXRpb24uXG5cbiAgLy8gU1RBVElDIG1ldGhvZCB0byBjcmVhdGUgYSBub3JtYWxpemVkIFBDb25uIChhIGZ1bGx5IHJlYWxpemVkIFZpZXcgdGhhdCB0aGUgJ3JlZmVyZW5jZSdcbiAgLy8gIGNvbXBvbmVudCByZWZlcnMgdG8pIGZyb20gdGhlIGdpdmVuIHBDb25uLiBIYXMgdG8gYWRkIGluIHNvbWUgc3R1ZmYgYXMgaW4gdGhlIGNvbnN0cnVjdG9yXG4gIHN0YXRpYyBjcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmKGluUENvbm46IGFueSkge1xuICAgIC8vIEJBSUwgYW5kIEVSUk9SIGlmIGluUENvbm4gaXMgTk9UIGEgcmVmZXJlbmNlIVxuICAgIGlmIChpblBDb25uLmdldENvbXBvbmVudE5hbWUoKSAhPT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICBjb25zb2xlLmVycm9yKGBSZWZlcmVuY2UgY29tcG9uZW50OiBjcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmIGluUENvbm4gaXMgTk9UIGEgcmVmZXJlbmNlISAke2luUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHRoZVJlc29sdmVkQ29uZmlnUHJvcHMgPSBpblBDb25uLnJlc29sdmVDb25maWdQcm9wcyhpblBDb25uLmdldENvbmZpZ1Byb3BzKCkpO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29uZmlnID0geyAuLi5pblBDb25uLmdldENvbXBvbmVudENvbmZpZygpIH0gfHwge307XG5cbiAgICAvLyBTaW5jZSBTREstQSBpbXBsZW1lbnRzIFJlZmVyZW5jZSBhcyBzdGF0aWMgbWV0aG9kcyBhbmQgd2UgZG9uJ3QgcmVseSBvblxuICAgIC8vICB0aGUgUmVmZXJlbmNlIGNvbXBvbmVudCdzIGhhbmRsaW5nIG9mIHRoZSB2aXNpYmlsaXR5IHByb3AsIHdlIGxlYXZlIGl0IGluXG4gICAgLy8gIChhbmQgYWxzbyBsZWF2aW5nIHRoZSBvdGhlcnMgaW4gZm9yIG5vdykgc28gdGhlIHJlZmVyZW5jZWQgVmlldyBjYW4gYWN0IG9uXG4gICAgLy8gIHRoZSB2aXNpYmlsaXR5IHByb3AuIChUaGUgZm9sbG93aW5nIDMgbGluZXMgd2VyZSBjYXJyaWVkIG92ZXIgZnJvbSBSZWFjdCBTREspXG4gICAgZGVsZXRlIHJlZmVyZW5jZUNvbmZpZz8ubmFtZTtcbiAgICAvLyBkZWxldGUgcmVmZXJlbmNlQ29uZmlnPy50eXBlO1xuICAgIC8vIGRlbGV0ZSByZWZlcmVuY2VDb25maWc/LnZpc2liaWxpdHk7XG5cbiAgICBjb25zdCB2aWV3TWV0YWRhdGEgPSBpblBDb25uLmdldFJlZmVyZW5jZWRWaWV3KCk7XG5cbiAgICBpZiAoIXZpZXdNZXRhZGF0YSkge1xuICAgICAgY29uc29sZS5sb2coJ1ZpZXcgbm90IGZvdW5kICcsIGluUENvbm4uZ2V0Q29tcG9uZW50Q29uZmlnKCkpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHdlIGhhdmUgbWV0YWRhdGEgZm9yIGEgVmlldyBjb21wb25lbnQuLi5cbiAgICAvLyBjb25zdCByZWZlcmVuY2VkQ29tcG9uZW50TmFtZSA9IHZpZXdNZXRhZGF0YS50eXBlO1xuXG4gICAgY29uc3Qgdmlld09iamVjdCA9IHtcbiAgICAgIC4uLnZpZXdNZXRhZGF0YSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi52aWV3TWV0YWRhdGEuY29uZmlnLFxuICAgICAgICAuLi5yZWZlcmVuY2VDb25maWdcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKFJlZmVyZW5jZUNvbXBvbmVudC5iTG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coYFJlZmVyZW5jZTogYWJvdXQgdG8gY2FsbCBjcmVhdGVDb21wb25lbnQgd2l0aCBwYWdlUmVmZXJlbmNlOiBjb250ZXh0OiAke3RoZVJlc29sdmVkQ29uZmlnUHJvcHMuY29udGV4dH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3Q29tcG9uZW50ID0gaW5QQ29ubi5jcmVhdGVDb21wb25lbnQodmlld09iamVjdCwgbnVsbCwgbnVsbCwge1xuICAgICAgcGFnZVJlZmVyZW5jZTogdGhlUmVzb2x2ZWRDb25maWdQcm9wcy5jb250ZXh0XG4gICAgfSk7XG5cbiAgICAvLyB1cGRhdGluZyB0aGUgcmVmZXJlbmNlZENvbXBvbmVudCBzaG91bGQgdHJpZ2dlciBhIHJlbmRlclxuICAgIGNvbnN0IG5ld0NvbXBQQ29ubmVjdCA9IHZpZXdDb21wb25lbnQuZ2V0UENvbm5lY3QoKTtcblxuICAgIG5ld0NvbXBQQ29ubmVjdC5zZXRJbmhlcml0ZWRDb25maWcoe1xuICAgICAgLi4ucmVmZXJlbmNlQ29uZmlnLFxuICAgICAgcmVhZE9ubHk6IHRoZVJlc29sdmVkQ29uZmlnUHJvcHMucmVhZE9ubHkgPyB0aGVSZXNvbHZlZENvbmZpZ1Byb3BzLnJlYWRPbmx5IDogZmFsc2UsXG4gICAgICBkaXNwbGF5TW9kZTogdGhlUmVzb2x2ZWRDb25maWdQcm9wcy5kaXNwbGF5TW9kZSA/IHRoZVJlc29sdmVkQ29uZmlnUHJvcHMuZGlzcGxheU1vZGUgOiBudWxsXG4gICAgfSk7XG5cbiAgICBpZiAoUmVmZXJlbmNlQ29tcG9uZW50LmJMb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYEFuZ3VsYXIgUmVmZXJlbmNlIGNvbXBvbmVudDogY3JlYXRlRnVsbFJlZmVyZW5jZWRWaWV3RnJvbVJlZiAtPiBuZXdDb21wUENvbm5lY3QgY29uZmlnUHJvcHM6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbmV3Q29tcFBDb25uZWN0LmdldENvbmZpZ1Byb3BzKClcbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdDb21wUENvbm5lY3Q7XG4gIH1cblxuICAvLyBTVEFUSUMgbWV0aG9kIHRoYXQgb3RoZXIgY29tcG9uZW50cyBjYW4gY2FsbCB0byBub3JtYWxpemVcbiAgLy8gIGEgcENvbm4gb2JqZWN0IHRoYXQgbWlnaHQgYmUgYSAncmVmZXJlbmNlJy4gSWYgdGhlIGluY29taW5nXG4gIC8vICBwQ29ubiBpcyBhIHJlZmVyZW5jZSwgcmV0dXJuIGl0cyBkZXJlZmVyZW5jZWQgVmlldyBQQ29ubmVjdCdzXG4gIC8vICBnZXRQQ29ubmVjdC4gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHBhc3NlZCBpbiBwQ29ubiB1bmNoYW5nZWRcbiAgLy8gIGluUENvbm4gPSBhIFBDb25uIG9iamVjdCAoZXg6IHsgZ2V0UENvbm5lY3QoKX0gKVxuICBzdGF0aWMgbm9ybWFsaXplUENvbm4oaW5QQ29ubjogYW55KSB7XG4gICAgLy8gZGVidWdnZXI7XG5cbiAgICBsZXQgcmV0dXJuT2JqID0gZmFsc2U7XG4gICAgbGV0IHRoZVBDb25uVHlwZSA9ICcnO1xuXG4gICAgaWYgKGluUENvbm4uZ2V0UENvbm5lY3QpIHtcbiAgICAgIC8vIGluUENvbm4gaXMgYW4gb2JqZWN0IChleDogeyBnZXRQQ29ubmVjdCgpfSApLCBzbyB3ZSB3YW50IHRvIHJldHVyblxuICAgICAgLy8gIGFueSByZWZlcmVuY2VkIHZpZXcgYXMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZVxuICAgICAgLy8gIHRoZSBnZXRQQ29ubmVjdCBmdW5jdGlvblxuICAgICAgcmV0dXJuT2JqID0gdHJ1ZTtcbiAgICAgIHRoZVBDb25uVHlwZSA9IGluUENvbm4uZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluUENvbm4gaXMgYW4gb2JqZWN0IHdpdGggdGhlIFBDb25uZWN0IGZ1bmN0aW9uLCBzbyB3ZSB3YW50XG4gICAgICAvLyAgdG8gcmV0dXJuIGFueSByZWZlcmVuY2VkIHZpZXcgYXMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZVxuICAgICAgLy8gIHRoZSBjMTFuIGZ1bmN0aW9uXG4gICAgICByZXR1cm5PYmogPSBmYWxzZTtcbiAgICAgIHRoZVBDb25uVHlwZSA9IGluUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGVQQ29ublR5cGUgPT09ICdyZWZlcmVuY2UnKSB7XG4gICAgICBpZiAocmV0dXJuT2JqKSB7XG4gICAgICAgIC8vICBXQVMuLi5cbiAgICAgICAgLy8gY29uc3QgdGhlUmVmVmlld1BDb25uID0gaW5QQ29ubi5nZXRQQ29ubmVjdCgpLmdldFJlZmVyZW5jZWRWaWV3UENvbm5lY3QodHJ1ZSk7XG4gICAgICAgIC8vIE5vdzogQUxXQVlTIGNhbGxpbmcgY3JlYXRlRnVsbFJlZmVyZW5jZWRWaWV3RnJvbVJlZiB0byBoYXZlIG9wdGlvbnMsIFBhZ2VSZWZlcmVuY2UsIGV0Yy5cbiAgICAgICAgLy8gIHNldCBjb3JyZWN0bHkgaW4gdGhlIEMxMW5FbnYgKFBDb25uZWN0KSBvYmplY3RcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGxldCB0aGVSZWZWaWV3UENvbm4gPSB0aGlzLmNyZWF0ZUZ1bGxSZWZlcmVuY2VkVmlld0Zyb21SZWYoaW5QQ29ubi5nZXRQQ29ubmVjdCgpKTtcbiAgICAgICAgLy8gbm93IHJldHVybiBpdHMgUENvbm5lY3RcbiAgICAgICAgdGhlUmVmVmlld1BDb25uID0gdGhlUmVmVmlld1BDb25uLmdldENvbXBvbmVudCgpO1xuXG4gICAgICAgIC8vIGNvbnN0IHRoZUZ1bGxSZWZlcmVuY2UgPSB0aGVSZWZWaWV3UENvbm4uZ2V0UENvbm5lY3QoKS5nZXRGdWxsUmVmZXJlbmNlKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGB0aGVGdWxsUmVmZXJlbmNlOiAke3RoZUZ1bGxSZWZlcmVuY2V9YCk7XG5cbiAgICAgICAgcmV0dXJuIHRoZVJlZlZpZXdQQ29ubjtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGBjcmVhdGVkIHRoZUZ1bGxSZWZWaWV3IGZ1bGwgcmVmZXJlbmNlOiAke3RoZUZ1bGxSZWZWaWV3LmdldEZ1bGxSZWZlcmVuY2UoKX1gKTtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmKGluUENvbm4pO1xuICAgIH1cbiAgICByZXR1cm4gaW5QQ29ubjtcbiAgfVxuXG4gIC8vIFNUQVRJQyBtZXRob2QgdGhhdCBvdGhlciBjb21wb25lbnRzIGNhbiBjYWxsIHRvIG5vcm1hbGl6ZVxuICAvLyAgYW4gYXJyYXkgb2YgcENvbm4gb2JqZWN0cyB3aGVyZSBhbnkgb2YgdGhlIGNoaWxkcmVuIG1pZ2h0XG4gIC8vICBiZSBhICdyZWZlcmVuY2UnLiBUaGUgYXJyYXkgcmV0dXJucyBhbiBhcnJheSBvZiBjaGlsZHJlblxuICAvLyAgd2hlcmUgYW55ICdyZWZlcmVuY2UnIGlzIHJlcGxhY2VkIHdpdGggaXRzIFJlZmVyZW5jZWRWaWV3XG4gIC8vICBpblBDb25uQXJyYXkgaXMgYW4gYXJyYXkgb2YgUENvbm4gb2JqZWN0cyBvciBmdW5jdGlvbnMuXG4gIC8vICAgIEl0cyB2YWx1ZSBpcyBwYXNzZWQgdG8gbm9ybWFsaXplUENvbm5cblxuICBzdGF0aWMgbm9ybWFsaXplUENvbm5BcnJheShpblBDb25uQXJyYXk6IGFueSkge1xuICAgIGlmICghKGluUENvbm5BcnJheT8ubGVuZ3RoID4gMCkpIHtcbiAgICAgIC8vIG51bGwgb3IgZW1wdHkgYXJyYXksIHJldHVybiB3aGF0IHdhcyBwYXNzZWQgaW5cbiAgICAgIHJldHVybiBpblBDb25uQXJyYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluUENvbm5BcnJheS5tYXAoY2hpbGQgPT4ge1xuICAgICAgcmV0dXJuIFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubihjaGlsZCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS0gUmVmZXJlbmNlIGNvbXBvbmVudCBpcyBhbGwgc3RhdGljIG1ldGhvZHMgc28gLmh0bWwgbm90IHVzZWQgLS0+XG4iXX0=
|
|
@@ -1,33 +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 "@angular/common";
|
|
7
|
-
export class RegionComponent {
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
// console.log(`ngOnInit (no registerAndSubscribe!): Region`);
|
|
10
|
-
this.updateSelf();
|
|
11
|
-
}
|
|
12
|
-
ngOnChanges(changes) {
|
|
13
|
-
const { pConn$ } = changes;
|
|
14
|
-
if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {
|
|
15
|
-
this.updateSelf();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
updateSelf() {
|
|
19
|
-
// The children may contain 'reference' components, so normalize the children...
|
|
20
|
-
this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
|
|
21
|
-
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RegionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RegionComponent, isStandalone: true, selector: "app-region", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, usesOnChanges: true, ngImport: i0, template: "<!-- When adding a component here, add the same component in 'default-form' template as well -->\n<div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Region wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RegionComponent, decorators: [{
|
|
26
|
-
type: Component,
|
|
27
|
-
args: [{ selector: 'app-region', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<!-- When adding a component here, add the same component in 'default-form' template as well -->\n<div *ngFor=\"let kid of arChildren$\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"Region wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n</div>\n" }]
|
|
28
|
-
}], propDecorators: { pConn$: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}], formGroup$: [{
|
|
31
|
-
type: Input
|
|
32
|
-
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWdpb24vcmVnaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWdpb24vcmVnaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7QUFTeEcsTUFBTSxPQUFPLGVBQWU7SUFNMUIsUUFBUTtRQUNOLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRTNCLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7K0dBdEJVLGVBQWU7bUdBQWYsZUFBZSxtSkNiNUIsd2JBV0EsNkVEQVksWUFBWSxzTUFBbUIsd0JBQXdCOzs0RkFFdEQsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxZQUFZLGNBR1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOzhCQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlZ2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWdpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWdpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBSZWdpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG5cbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBuZ09uSW5pdCAobm8gcmVnaXN0ZXJBbmRTdWJzY3JpYmUhKTogUmVnaW9uYCk7XG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgeyBwQ29ubiQgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocENvbm4kLnByZXZpb3VzVmFsdWUgJiYgcENvbm4kLnByZXZpb3VzVmFsdWUgIT09IHBDb25uJC5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgLy8gVGhlIGNoaWxkcmVuIG1heSBjb250YWluICdyZWZlcmVuY2UnIGNvbXBvbmVudHMsIHNvIG5vcm1hbGl6ZSB0aGUgY2hpbGRyZW4uLi5cbiAgICB0aGlzLmFyQ2hpbGRyZW4kID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uQXJyYXkodGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSk7XG4gIH1cbn1cbiIsIjwhLS0gV2hlbiBhZGRpbmcgYSBjb21wb25lbnQgaGVyZSwgYWRkIHRoZSBzYW1lIGNvbXBvbmVudCBpbiAnZGVmYXVsdC1mb3JtJyB0ZW1wbGF0ZSBhcyB3ZWxsIC0tPlxuPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCI+XG4gIDxjb21wb25lbnQtbWFwcGVyXG4gICAgW25hbWVdPVwia2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpXCJcbiAgICBbcHJvcHNdPVwie1xuICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgIGZvcm1Hcm91cCQ6IGZvcm1Hcm91cCRcbiAgICB9XCJcbiAgICBlcnJvck1zZz1cIlJlZ2lvbiB3YW50cyBjb21wb25lbnQgbm90IHlldCBhdmFpbGFibGU6IHt7IGtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSB9fVwiXG4gID48L2NvbXBvbmVudC1tYXBwZXI+XG48L2Rpdj5cbiJdfQ==
|