{"version":3,"file":"pega-angular-sdk-components.mjs","sources":["../../../packages/angular-sdk-components/src/sdk-local-component-map.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/action-buttons/action-buttons.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/action-buttons/action-buttons.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/reference/reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/reference/reference.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment-card/assignment-card.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment-card/assignment-card.component.html","../../../packages/angular-sdk-components/src/lib/_services/server-config.service.ts","../../../packages/angular-sdk-components/src/lib/_helpers/utils.ts","../../../packages/angular-sdk-components/src/lib/_messages/progress-spinner.service.ts","../../../packages/angular-sdk-components/src/lib/_messages/error-messages.service.ts","../../../packages/angular-sdk-components/src/lib/_bridge/angular-pconnect.ts","../../../packages/angular-sdk-components/src/lib/_services/banner.service.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment/assignment.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/assignment/assignment.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/filter-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/dashboard-filter/dashboard-filter.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/dashboard-filter/dashboard-filter.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/defer-load/defer-load.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/defer-load/defer-load.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/error-boundary/error-boundary.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/error-boundary/error-boundary.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/flow-container/helpers.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/base-components/helper.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/base-components/flow-container-base.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/flow-container/flow-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/flow-container/flow-container.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/case-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/multi-step/multi-step.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/multi-step/multi-step.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/navbar/navbar.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/navbar/navbar.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/region/region.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/region/region.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/root-container/root-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/root-container/root-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/stages/stages.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/stages/stages.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/tab-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/sub-tabs/sub-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/sub-tabs/sub-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/view/view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/view/view.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/view-container/helper.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/view-container/view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/view-container/view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/field.base.ts","../../../packages/angular-sdk-components/src/lib/_services/endpoints.ts","../../../packages/angular-sdk-components/src/lib/_services/datapage.service.ts","../../../packages/angular-sdk-components/src/lib/_helpers/event-util.ts","../../../packages/angular-sdk-components/src/lib/_components/field/auto-complete/auto-complete.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/auto-complete/auto-complete.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/cancel-alert/cancel-alert.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/cancel-alert/cancel-alert.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/instructions-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/check-box/check-box.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/check-box/check-box.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/common.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/currency-map.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/format-utils.ts","../../../packages/angular-sdk-components/src/lib/_helpers/currency-utils.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/boolean.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/common.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/currency.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/date.ts","../../../packages/angular-sdk-components/src/lib/_helpers/formatters/index.ts","../../../packages/angular-sdk-components/src/lib/_components/field/currency/currency.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/currency/currency.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/date-format-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/date/date.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/date/date.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/date-time/date-time.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/date-time/date-time.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/decimal/decimal.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/decimal/decimal.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/dropdown/dropdown.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/dropdown/dropdown.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/email/email.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/email/email.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/group/group.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/group/group.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/integer/integer.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/integer/integer.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.html","../../../packages/angular-sdk-components/src/lib/_services/google-maps-loader.service.ts","../../../packages/angular-sdk-components/src/lib/_components/field/location/location.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/location/location.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/objectReference-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/object-reference/object-reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/object-reference/object-reference.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/percentage/percentage.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/percentage/percentage.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/phone/phone.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/phone/phone.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/radio-buttons/radio-buttons.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/radio-buttons/radio-buttons.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/semanticLink-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/semantic-link/semantic-link.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/semantic-link/semantic-link.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text-area/text-area.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text-area/text-area.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text/text.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text/text.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text-content/text-content.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text-content/text-content.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/text-input/text-input.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/text-input/text-input.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/time/time.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/time/time.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/url/url.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/url/url.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/user-reference/user-reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/user-reference/user-reference.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/scalar-list/scalar-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/scalar-list/scalar-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/search-form/tabsData.ts","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/search-form/search-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/search-form/search-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/selectable-card/selectable-card.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/selectable-card/selectable-card.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/rich-text/rich-text.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/rich-text/rich-text.component.html","../../../packages/angular-sdk-components/src/lib/_services/data-reference-advanced-search.service.ts","../../../packages/angular-sdk-components/src/lib/_components/template/advanced-search/advanced-search.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/advanced-search/advanced-search.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/app-shell/app-shell.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/app-shell/app-shell.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/banner-page/banner-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/banner-page/banner-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/case-summary/case-summary.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/case-summary/case-summary.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/case-view/case-view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/case-view/case-view.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/confirmation/confirmation.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/confirmation/confirmation.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/advanced-search/search-group/persist-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/data-reference.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/data-reference/data-reference.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/base/form-template-base.ts","../../../packages/angular-sdk-components/src/lib/_helpers/template-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/default-form/default-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/default-form/default-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/default-page/default-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/default-page/default-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/base/details-template-base.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details/details.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details/details.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-narrow-wide/details-narrow-wide.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-one-column/details-one-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-sub-tabs/details-sub-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-sub-tabs/details-sub-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-three-column/details-three-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-two-column/details-two-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/details-wide-narrow/details-wide-narrow.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/field-group-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/dynamic-tabs/dynamic-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/dynamic-tabs/dynamic-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-list/field-group-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-list/field-group-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-template/field-group-template.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-group-template/field-group-template.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/field-value-list/field-value-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/field-value-list/field-value-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard/inline-dashboard.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard/inline-dashboard.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/list-page/list-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-page/list-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/DefaultViewMeta.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/listViewHelpers.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/list-view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/list-view/list-view.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.html","../../../packages/angular-sdk-components/src/lib/_components/field/multiselect/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/field/multiselect/multiselect.component.ts","../../../packages/angular-sdk-components/src/lib/_components/field/multiselect/multiselect.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/narrow-wide-form/narrow-wide-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/narrow-wide-form/narrow-wide-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/object-page/object-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/object-page/object-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/one-column/one-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/one-column/one-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-page/one-column-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-page/one-column-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-tab/one-column-tab.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/one-column-tab/one-column-tab.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/page/page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/page/page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/promoted-filters/promoted-filters.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/promoted-filters/promoted-filters.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/advanced-search/search-groups/utils.ts","../../../packages/angular-sdk-components/src/lib/_components/template/advanced-search/search-groups/search-groups.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/advanced-search/search-groups/search-groups.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/self-service-case-view/self-service-case-view.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/self-service-case-view/self-service-case-view.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-manual/helpers.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table/simple-table.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table/simple-table.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-manual/simple-table-manual.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-manual/simple-table-manual.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-select/simple-table-select.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/simple-table-select/simple-table-select.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/single-reference-readonly/single-reference-readonly.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/single-reference-readonly/single-reference-readonly.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/three-column/three-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/three-column/three-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/three-column-page/three-column-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/three-column-page/three-column-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/two-column/two-column.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/two-column/two-column.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-page/two-column-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-page/two-column-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-tab/two-column-tab.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/two-column-tab/two-column-tab.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-form/wide-narrow-form.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-form/wide-narrow-form.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-page/wide-narrow-page.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/wide-narrow-page/wide-narrow-page.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/wss-nav-bar/wss-nav-bar.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/wss-nav-bar/wss-nav-bar.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/app-announcement/app-announcement.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/app-announcement/app-announcement.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/attachment/AttachmentUtils.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/attachment/attachment.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/attachment/attachment.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/case-history/case-history.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/case-history/case-history.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/object-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/file-utility/file-utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/file-utility/file-utility.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/feed-container/feed-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/feed-container/feed-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/list-utility/list-utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/list-utility/list-utility.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/quick-create/quick-create.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/quick-create/quick-create.component.html","../../../packages/angular-sdk-components/src/lib/_helpers/createstage-utils.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/todo/todo.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/todo/todo.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert-banner/alert-banner.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert-banner/alert-banner.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert/alert.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/alert/alert.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/banner/banner.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/banner/banner.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/field-group/field-group.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/field-group/field-group.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details/material-details.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details/material-details.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-utility/material-utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-utility/material-utility.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/operator/operator.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/operator/operator.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/pulse/pulse.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/pulse/pulse.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.html","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.ts","../../../packages/angular-sdk-components/src/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.html","../../../packages/angular-sdk-components/src/lib/_bridge/helpers/sdk-pega-component-map.ts","../../../packages/angular-sdk-components/src/lib/_bridge/helpers/sdk_component_map.ts","../../../packages/angular-sdk-components/src/lib/_bridge/component-mapper/component-mapper.component.ts","../../../packages/angular-sdk-components/src/lib/_bridge/component-mapper/component-mapper.component.html","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.ts","../../../packages/angular-sdk-components/src/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.html","../../../packages/angular-sdk-components/src/lib/_components/template/repeating-structures/repeating-structures.component.ts","../../../packages/angular-sdk-components/src/lib/_components/template/repeating-structures/repeating-structures.component.html","../../../packages/angular-sdk-components/src/lib/_components/widget/utility/utility.component.ts","../../../packages/angular-sdk-components/src/lib/_components/widget/utility/utility.component.html","../../../packages/angular-sdk-components/src/lib/_directives/thousand-seperator.directive.ts","../../../packages/angular-sdk-components/src/lib/_services/case.service.ts","../../../packages/angular-sdk-components/src/lib/_helpers/versionHelpers.ts","../../../packages/angular-sdk-components/src/lib/_messages/update-worklist.service.ts","../../../packages/angular-sdk-components/src/public-api.ts","../../../packages/angular-sdk-components/src/pega-angular-sdk-components.ts"],"sourcesContent":["// Statically load all \"local\" components that aren't yet in the npm package\n\n/* import end - DO NOT REMOVE */\n\n// localSdkComponentMap is the JSON object where we'll store the components that are\n// found locally. If not found here, we'll look in the Pega-provided component map\n\nconst localSdkComponentMap = {\n  /* map end - DO NOT REMOVE */\n};\n\nexport default localSdkComponentMap;\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n  selector: 'app-action-buttons',\n  templateUrl: './action-buttons.component.html',\n  styleUrls: ['./action-buttons.component.scss'],\n  imports: [CommonModule, MatButtonModule]\n})\nexport class ActionButtonsComponent {\n  @Input() arMainButtons$: any[];\n  @Input() arSecondaryButtons$: any[];\n\n  @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();\n\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  localeCategory = 'Assignment';\n\n  buttonClick(sAction, sButtonType) {\n    this.actionButtonClick.emit({ action: sAction, buttonType: sButtonType });\n  }\n}\n","<div class=\"button-bar\" *ngIf=\"arMainButtons$ && arSecondaryButtons$\">\n  <div class=\"left-group\">\n    <button\n      *ngFor=\"let aButton of arSecondaryButtons$\"\n      mat-stroked-button\n      class=\"secondary-button\"\n      (click)=\"buttonClick(aButton.jsAction, 'secondary')\"\n    >\n      {{ localizedVal(aButton.name, localeCategory) }}\n    </button>\n  </div>\n  <div class=\"right-group\">\n    <button *ngFor=\"let aButton of arMainButtons$\" mat-flat-button (click)=\"buttonClick(aButton.jsAction, 'primary')\">\n      {{ localizedVal(aButton.name, localeCategory) }}\n    </button>\n  </div>\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\n@Component({\n  selector: 'app-reference',\n  templateUrl: './reference.component.html',\n  styleUrls: ['./reference.component.scss'],\n  standalone: true\n})\nexport class ReferenceComponent {\n  /* Used to toggle some class-wide logging */\n  private static bLogging = false;\n\n  /**\n   * Creates a normalized PConn from a reference component.\n   * Resolves the reference to its fully realized View with proper configuration.\n   *\n   * @param inPConn - The PConn object that represents a reference component\n   * @returns The dereferenced PConnect object, or null if reference can't be resolved\n   */\n  static createFullReferencedViewFromRef(inPConn: any): any {\n    // Validate that inPConn is a reference component\n    if (inPConn.getComponentName() !== 'reference') {\n      console.error(`Reference component: createFullReferencedViewFromRef inPConn is NOT a reference! ${inPConn.getComponentName()}`);\n      return null;\n    }\n\n    // Get reference configuration and make a copy\n    const referenceConfig = { ...inPConn.getComponentConfig() };\n\n    // Remove properties that should not be inherited by the referenced view\n    // (Maintained from React SDK implementation)\n    delete referenceConfig?.name;\n    delete referenceConfig?.type;\n    delete referenceConfig?.visibility;\n\n    // Get the metadata for the referenced view\n    const viewMetadata = inPConn.getReferencedView();\n\n    // Return null if view metadata is not found\n    if (!viewMetadata) {\n      console.log('View not found ', inPConn.getComponentConfig());\n      return null;\n    }\n\n    // Create the view object by merging metadata with reference config\n    const viewObject = {\n      ...viewMetadata,\n      config: {\n        ...viewMetadata.config,\n        ...referenceConfig\n      }\n    };\n\n    // Resolve configuration properties\n    const resolvedConfigProps = inPConn.resolveConfigProps(inPConn.getConfigProps());\n    const { visibility = true, context, readOnly = false, displayMode = '' } = resolvedConfigProps;\n\n    // Log debug information if logging is enabled\n    if (ReferenceComponent.bLogging) {\n      console.log(`Reference: about to call createComponent with pageReference: context: ${inPConn.getContextName()}`);\n    }\n\n    // Create the component with the right context\n    const viewComponent = inPConn.createComponent(viewObject, null, null, {\n      pageReference: context && context.startsWith('@CLASS') ? '' : context\n    });\n\n    if (referenceConfig.inheritedProps && referenceConfig.inheritedProps.length > 0) {\n      const inheritedProps = inPConn.getInheritedProps();\n      referenceConfig.inheritedProps = Object.keys(inheritedProps).map(prop => ({ prop, value: inheritedProps[prop] }));\n    }\n\n    // Get the PConnect object from the created component\n    const newCompPConnect = viewComponent.getPConnect();\n\n    // Set inherited configuration on the new component\n    newCompPConnect.setInheritedConfig({\n      ...referenceConfig,\n      readOnly,\n      displayMode\n    });\n\n    // Log debug information if logging is enabled\n    if (ReferenceComponent.bLogging) {\n      console.log(\n        `Angular Reference component: createFullReferencedViewFromRef -> newCompPConnect configProps: ${JSON.stringify(\n          newCompPConnect.getConfigProps()\n        )}`\n      );\n    }\n\n    // Return the component if it should be visible, otherwise null\n    return visibility !== false ? newCompPConnect : null;\n  }\n\n  /**\n   * Normalizes a PConn object that might be a 'reference'.\n   * If the incoming PConn is a reference, returns its dereferenced View.\n   * Otherwise, returns the passed in PConn unchanged.\n   *\n   * @param inPConn - A PConn object (ex: { getPConnect() } or direct PConnect)\n   * @returns The normalized PConn object with references resolved\n   */\n  static normalizePConn(inPConn: any): any {\n    // Early return for null or undefined input\n    if (!inPConn) {\n      return inPConn;\n    }\n\n    // Determine if we have an object with getPConnect method or direct PConnect\n    const hasGetPConnectMethod = !!inPConn.getPConnect;\n\n    // Get the component name in the appropriate way based on the object type\n    const componentName = hasGetPConnectMethod ? inPConn.getPConnect().getComponentName() : inPConn.getComponentName();\n\n    // Only process if this is a reference component\n    if (componentName === 'reference') {\n      if (hasGetPConnectMethod) {\n        // For objects with getPConnect method, get the referenced view and its component\n        const refViewPConn = this.createFullReferencedViewFromRef(inPConn.getPConnect());\n        return refViewPConn?.getComponent();\n      }\n\n      // For direct PConnect objects, just create the referenced view\n      return this.createFullReferencedViewFromRef(inPConn);\n    }\n\n    // Not a reference component, return unchanged\n    return inPConn;\n  }\n\n  /**\n   * Normalizes an array of PConn objects by replacing any 'reference' components\n   * with their referenced views.\n   *\n   * @param inPConnArray - Array of PConn objects to normalize\n   * @returns Normalized array with references resolved, or empty array if input is invalid\n   */\n  static normalizePConnArray(inPConnArray: any[]): any[] {\n    // Handle null, undefined, or empty array case\n    if (!inPConnArray?.length) {\n      return inPConnArray || [];\n    }\n\n    // Process array: normalize each item and filter out any null/undefined results\n    const normalizedArray = inPConnArray.map(child => ReferenceComponent.normalizePConn(child)).filter(Boolean);\n\n    // Ensure we always return an array (even if filter removes all items)\n    return normalizedArray || [];\n  }\n}\n","<!-- Reference component is all static methods so .html not used -->\n","import { Component, OnInit, Input, Output, EventEmitter, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\nfunction isChildrenUpdated(children) {\n  if (!children || children.firstChange) {\n    return false;\n  }\n  for (let i = 0; i < children.previousValue.length; i++) {\n    if (!PCore.isDeepEqual(children.previousValue[i].getPConnect().getConfigProps(), children.currentValue[i].getPConnect().getConfigProps())) {\n      return true;\n    }\n  }\n  return false;\n}\n@Component({\n  selector: 'app-assignment-card',\n  templateUrl: './assignment-card.component.html',\n  styleUrls: ['./assignment-card.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AssignmentCardComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() arMainButtons$: any[];\n  @Input() arSecondaryButtons$: any[];\n  @Input() arChildren$: any[];\n  @Input() updateToken$: number;\n\n  childrenArray: any[] = [];\n\n  @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();\n\n  ngOnInit(): void {\n    // Children may contain 'reference' component, so we need to\n    //  normalize them\n    this.childrenArray = ReferenceComponent.normalizePConnArray(this.arChildren$);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    // Children may contain 'reference' component, so we need to\n    //  normalize them\n\n    const { arChildren$ } = changes;\n    if (isChildrenUpdated(arChildren$)) {\n      this.childrenArray = ReferenceComponent.normalizePConnArray(this.arChildren$);\n    }\n  }\n\n  onActionButtonClick(oData: any) {\n    this.actionButtonClick.emit(oData);\n  }\n}\n","<form [formGroup]=\"formGroup$\" name=\"flowContainer\" class=\"psdk-flow-container\">\n  <div *ngFor=\"let kid of childrenArray\" class=\"psdk-assignment-card-child\">\n    <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n      <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n      <component-mapper\n        *ngSwitchCase=\"'CaseCreateStage'\"\n        name=\"CaseCreateStage\"\n        [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"\n      ></component-mapper>\n      <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ formGroup$, pConn$: kid.getPConnect() }\"></component-mapper>\n      <div *ngSwitchDefault>Assignment Card wants component not yet available: {{ kid.getPConnect().getComponentName() }}</div>\n    </div>\n  </div>\n</form>\n\n<div>\n  <div class=\"psdk-case-view-divider\"></div>\n\n  <component-mapper\n    *ngIf=\"arMainButtons$ && arSecondaryButtons$\"\n    name=\"ActionButtons\"\n    [props]=\"{ arMainButtons$, arSecondaryButtons$ }\"\n    [parent]=\"this\"\n    [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n  ></component-mapper>\n</div>\n","import { Injectable } from '@angular/core';\nimport { getSdkConfig, SdkConfigAccess } from '@pega/auth/lib/sdk-auth-manager';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ServerConfigService {\n  /**\n   * Asynchronous initialization of the config file contents.\n   * @returns Promise of config file fetch\n   */\n  readSdkConfig(): Promise<any> {\n    return getSdkConfig();\n  }\n\n  /**\n   *\n   * @returns the sdk-config JSON object\n   */\n  async getSdkConfig(): Promise<any> {\n    return SdkConfigAccess.getSdkConfig();\n  }\n\n  /**\n   *\n   * @returns the authConfig block in the SDK Config object\n   */\n  async getSdkConfigAuth(): Promise<any> {\n    return SdkConfigAccess.getSdkConfigAuth();\n  }\n\n  /**\n   *\n   * @returns the serverConfig bloc from the sdk-config.json file\n   */\n  getSdkConfigServer(): any {\n    return SdkConfigAccess.getSdkConfigServer();\n  }\n\n  /**\n   * @param {String} key the key to be inserted/updated in serverConfig\n   * @param {String} value the value to be assigned to the given key\n   */\n  setSdkConfigServer(key: string, value: string) {\n    SdkConfigAccess.setSdkConfigServer(key, value);\n  }\n\n  getBaseUrl(): string {\n    return SdkConfigAccess.getSdkConfigServer().infinityRestServerUrl;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport { ServerConfigService } from '../_services/server-config.service';\n\ndayjs.extend(customParseFormat);\ndayjs.extend(localizedFormat);\ndayjs.extend(relativeTime);\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class Utils {\n  lastControlID = 0;\n\n  viewContainerCount = 0;\n\n  timezone = PCore.getEnvironmentInfo()?.getTimeZone();\n\n  constructor(private scService: ServerConfigService) {}\n\n  getSDKStaticContentUrl() {\n    const sdkConfigServer = this.scService.getSdkConfigServer();\n\n    // NOTE: Needs a trailing slash! So add one if not provided\n    if (!sdkConfigServer.sdkContentServerUrl.endsWith('/')) {\n      sdkConfigServer.sdkContentServerUrl = `${sdkConfigServer.sdkContentServerUrl}/`;\n    }\n\n    return `${sdkConfigServer.sdkContentServerUrl}constellation/`;\n  }\n\n  consoleKidDump(pConn: any, level: number = 1, kidNum: number = 1) {\n    let sDash = '';\n    for (let i = 0; i < level; i++) {\n      sDash = sDash.concat('-');\n    }\n    let cName = 'blank';\n    let ctxName = '';\n    try {\n      cName = pConn.getComponentName();\n      ctxName = pConn.getContextName();\n      console.log(`${sDash}level ${level} component(${kidNum}):${cName} context:${ctxName}`);\n      if (pConn.getConfigProps() != null) {\n        console.log(`${sDash}configProps:${JSON.stringify(pConn.getConfigProps())}`);\n      }\n      if (pConn.getRawMetadata() != null) {\n        console.log(`${sDash}rawMetadata:${JSON.stringify(pConn.getRawMetadata())}`);\n      }\n\n      if (pConn.hasChildren() && pConn.getChildren() != null) {\n        console.log(`${sDash}kidCount:${pConn.getChildren().length}`);\n        const kids = pConn.getChildren();\n        const kidsKeys = Object.keys(kids);\n\n        for (let i = 0, len = kidsKeys.length; i < len; i++) {\n          const index = parseInt(kidsKeys[i], 10) + 1;\n          const kid = kids[kidsKeys[i]];\n          this.consoleKidDump(kid.getPConnect(), level + 1, index);\n        }\n      }\n    } catch (ex) {\n      console.log(ex);\n    }\n  }\n\n  htmlDecode(sVal: string): string | null {\n    const doc = new DOMParser().parseFromString(sVal, 'text/html');\n    return doc.documentElement.textContent;\n  }\n\n  getUniqueControlID(): string {\n    const sPrefix = 'control-';\n\n    this.lastControlID++;\n\n    return sPrefix + this.lastControlID.toString();\n  }\n\n  getOptionList(configProps: any, dataObject: any): any[] {\n    const listType = configProps.listType;\n\n    if (listType == null) {\n      return [];\n    }\n\n    switch (listType.toLowerCase()) {\n      case 'associated':\n        return this.handleAssociatedList(configProps);\n      case 'datapage':\n        return this.handleDataPageList(configProps, dataObject);\n      default:\n        return [];\n    }\n  }\n\n  handleAssociatedList(configProps: any): any[] {\n    const dataSource = configProps.datasource;\n\n    if (Array.isArray(dataSource)) {\n      return dataSource;\n    }\n\n    return [];\n  }\n\n  handleDataPageList(configProps: any, dataObject: any): any[] {\n    const dataPage = configProps.datasource;\n\n    if (dataObject && dataObject[dataPage]) {\n      alert('need to handle data page');\n      return [];\n    }\n\n    let listSourceItems = configProps.listOutput;\n\n    if (typeof dataPage === 'object' && !Array.isArray(listSourceItems)) {\n      listSourceItems = dataPage.source ? dataPage.source : [];\n    }\n\n    return this.transformListSourceItems(listSourceItems);\n  }\n\n  transformListSourceItems(listSourceItems: any[]): any[] {\n    return (listSourceItems || []).map(item => {\n      return { ...item, value: item.text || item.value };\n    });\n  }\n\n  getInitials(userName: string): string {\n    let userInitials = userName;\n\n    if (userName && userName != '') {\n      userInitials = userName.charAt(0);\n\n      if (userName.lastIndexOf(' ') > 0) {\n        const lastName = userName.substring(userName.lastIndexOf(' ') + 1);\n        userInitials += lastName.charAt(0);\n      } else if (userName.lastIndexOf('.') > 0) {\n        const lastName = userName.substring(userName.lastIndexOf('.') + 1);\n        userInitials += lastName.charAt(0);\n      }\n    } else {\n      userInitials = '';\n    }\n\n    return userInitials.toUpperCase();\n  }\n\n  getImageSrc(name: string, serverUrl: string): string {\n    let iconName = name.replace('pi-', '').replace('pi ', '').trim();\n    if (iconName === 'line-chart') {\n      iconName = 'chart-line';\n    }\n\n    // return serverUrl.concat(\"assets/icons/\").concat(iconName).concat(\".svg\");\n    return this.getIconPath(serverUrl).concat(iconName).concat('.svg');\n  }\n\n  getIconPath(serverUrl: string): string {\n    return serverUrl.concat('assets/icons/');\n  }\n\n  getBooleanValue(inValue: any): boolean {\n    let bReturn = false;\n\n    if (typeof inValue === 'string') {\n      if (inValue.toLowerCase() == 'true') {\n        bReturn = true;\n      }\n    } else {\n      bReturn = inValue;\n    }\n\n    return bReturn;\n  }\n\n  generateDate(dateVal, dateFormat) {\n    let sReturnDate = dateVal;\n\n    if (dateVal == null || dateVal == '') {\n      return dateVal;\n    }\n\n    // Commenting out per Vinod note in webc components\n    // VRS: Dont think we need the below line.  Commenting out for now. (2020.05.20)\n    // if date has a \".\", then of the format YYYMMDD[T]HHmmss[.]SSS Z, need to change to YYYYMMDD\n    // if (dateVal.indexOf(\".\") >= 0) {\n    //   dateVal = moment(dateVal.replace(\"GMT\", \"+0000\"), \"YYYYMMDD[T]HHmmss[.]SSS Z\").format(\"YYYYMMDD\");\n    //   sReturnDate = dateVal;\n    // }\n\n    switch (dateFormat) {\n      case 'Date-Short':\n        // 1/1/01\n        sReturnDate = dayjs(dateVal).format('M/D/YY');\n        break;\n      case 'Date-Short-YYYY':\n        // 1/1/2001\n        sReturnDate = dayjs(dateVal).format('M/D/YYYY');\n        break;\n      case 'Date-Short-Custom':\n        // 01/01/01\n        sReturnDate = dayjs(dateVal).format('MM/DD/YY');\n        break;\n      case 'Date-Short-Custom-YYYY':\n        // 01/01/2001\n        sReturnDate = dayjs(dateVal).format('L');\n        break;\n      case 'Date-Long-Custom-YYYY':\n        // 05/22/2021\n        sReturnDate = dayjs(dateVal).format('MM/DD/YYYY');\n        break;\n      case 'Date-Long-Custom-DD/MM/YYYY':\n        // 22/05/2021\n        sReturnDate = dayjs(dateVal).format('DD/MM/YYYY');\n        break;\n      case 'Date':\n      case 'Date-Medium':\n        // Jan 1, 2001\n        sReturnDate = dayjs(dateVal).format('ll');\n        break;\n      case 'Date-DayMonthYear-Custom':\n        // 01-Jan-2001\n        sReturnDate = dayjs(dateVal).format('DD-MMM-YYYY');\n        break;\n      case 'Date-Full':\n        // Monday, January 1, 2001\n        sReturnDate = dayjs(dateVal).format('dddd, MMMM D, YYYY');\n        break;\n      case 'DateTime-Frame':\n      case 'DateTime-Frame-Short':\n      case 'DateTime-Since':\n        // 2 days, 5 hours ago\n        sReturnDate = dayjs(dateVal).fromNow();\n        break;\n      case 'Date-Long':\n        // January 1, 2001\n        sReturnDate = dayjs(dateVal).format('MMMM D, YYYY');\n        break;\n      case 'Date-ISO-8601':\n        // 2001/01/01 y/m/d\n        sReturnDate = dayjs(dateVal).format('YYYY/MM/DD');\n        break;\n      case 'Date-Gregorian-1':\n        // 01 January, 2001\n        sReturnDate = dayjs(dateVal).format('DD MMMM, YYYY');\n        break;\n      case 'Date-Gregorian-2':\n        // January 01, 2001\n        sReturnDate = dayjs(dateVal).format('MMMM DD, YYYY');\n        break;\n      case 'Date-Gregorian-3':\n        // 2001, January 01\n        sReturnDate = dayjs(dateVal).format('YYYY, MMMM DD');\n        break;\n      case 'DateTime-Custom':\n        break;\n      default:\n        break;\n    }\n\n    return sReturnDate;\n  }\n\n  generateDateTime(dateTimeVal, dateFormat) {\n    let sReturnDate = dateTimeVal;\n\n    if (dateTimeVal == null || dateTimeVal == '') {\n      return dateTimeVal;\n    }\n\n    dateTimeVal = dateTimeVal.replace('GMT', '+0000');\n\n    switch (dateFormat) {\n      case 'DateTime-Short':\n        // 1/1/01 1:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('M/D/YY h:mm A');\n        break;\n      case 'DateTime-Short-Custom':\n        // 01/01/01 01:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('MM/DD/YY hh:mm A');\n        break;\n      case 'DateTime-Short-YYYY-Custom':\n        // 01/01/2001 01:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('M/D/YYYY hh:mm A');\n        break;\n      case 'DateTime-Long-YYYY-Custom':\n        // 01/01/01 01:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('MM/DD/YYYY, hh:mm A');\n        break;\n      case 'DateTime-Short-YYYY':\n        // 1/1/2001 1:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('M/D/YYYY h:mm A');\n        break;\n      case 'DateTime-Medium':\n        // Jan 1, 2001 1:00:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('MMM D, YYYY h:mm:ss A');\n        break;\n      case 'DateTime-Long':\n        // January 1, 2001 1:00:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('MMMM D, YYYY h:mm:ss A');\n        break;\n      case 'DateTime-DayMonthYear-Custom':\n        // 01-Jan-2001 1:00:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('DD-MMM-YYYY h:mm:ss A');\n        break;\n      case 'DateTime-Full':\n        // Monday, January 1, 2001 1:00 AM EDT\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('dddd, MMMM D, YYYY h:mm A z');\n        break;\n      case 'DateTime-Frame':\n      case 'DateTime-Frame-Short':\n      case 'DateTime-Since':\n        // 2 days, 5 hours ago\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).fromNow();\n        break;\n      case 'DateTime-ISO-8601':\n        // 2001/01/01 1:00:00 AM     y/m/d\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('YYYY/MM/DD h:mm:ss A');\n        break;\n      case 'DateTime-Gregorian-1':\n        // 01 January, 2001 1:00:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('DD MMMM, YYYY h:mm:ss A');\n        break;\n      case 'DateTime-Gregorian-2':\n        // January 01, 2001 1:00:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('MMMM DD, YYYY h:mm:ss A');\n        break;\n      case 'DateTime-Gregorian-3':\n        // 2001, January 01 1:00:00 AM\n        sReturnDate = dayjs(dateTimeVal).tz(this.timezone).format('YYYY, MMMM DD h:mm:ss A');\n        break;\n      case 'DateTime-Custom':\n        break;\n      default:\n        break;\n    }\n\n    return sReturnDate;\n  }\n\n  getIconFromFileType(fileType): string {\n    let icon = 'document-doc';\n    if (!fileType) return icon;\n    if (fileType.startsWith('audio')) {\n      icon = 'audio';\n    } else if (fileType.startsWith('video')) {\n      icon = 'video';\n    } else if (fileType.startsWith('image')) {\n      icon = 'picture';\n    } else if (fileType.includes('pdf')) {\n      icon = 'document-pdf';\n    } else {\n      const [, subtype] = fileType.split('/');\n      const foundMatch = sources => {\n        return sources.some(key => subtype.includes(key));\n      };\n\n      if (foundMatch(['excel', 'spreadsheet'])) {\n        icon = 'document-xls';\n      } else if (foundMatch(['zip', 'compressed', 'gzip', 'rar', 'tar'])) {\n        icon = 'document-compress';\n      }\n    }\n\n    return icon;\n  }\n\n  getIconForAttachment(attachment) {\n    let icon;\n    switch (attachment.type) {\n      case 'FILE':\n        icon = this.getIconFromFileType(attachment.mimeType);\n        break;\n      case 'URL':\n        icon = 'chain';\n        break;\n      default:\n        icon = 'document-doc';\n    }\n    return icon;\n  }\n\n  addViewContainer() {\n    if (sessionStorage.getItem('viewContainerCount') == null) {\n      sessionStorage.setItem('viewContainerCount', '0');\n    }\n\n    let count = parseInt(sessionStorage.getItem('viewContainerCount') as string, 10);\n    count++;\n\n    sessionStorage.setItem('viewContainerCount', count.toString());\n  }\n\n  removeViewContainer() {\n    return;\n\n    let count = parseInt(sessionStorage.getItem('viewContainerCount') as string, 10);\n    count--;\n\n    sessionStorage.setItem('viewContainerCount', count.toString());\n  }\n\n  okToAddContainerToVC(): boolean {\n    if (sessionStorage.getItem('viewContainerCount') == null) {\n      sessionStorage.setItem('viewContainerCount', '0');\n    }\n\n    const count = parseInt(sessionStorage.getItem('viewContainerCount') as string, 10);\n\n    return count === 0;\n  }\n\n  getUserId = user => {\n    let userId = '';\n    if (typeof user === 'object' && user !== null && user.userId) {\n      userId = user.userId;\n    } else if (typeof user === 'string' && user) {\n      userId = user;\n    }\n    return userId;\n  };\n\n  static sdkGetAuthHeader(): string {\n    return sessionStorage.getItem('asdk_AH') as string;\n  }\n\n  static isEmptyObject(obj: object): boolean {\n    return Object.keys(obj).length === 0;\n  }\n\n  /**\n   * Get a localized value from the Generic Fields\n   * @param path - The path within Generic Fields (e.g., 'CosmosFields.fields.lists')\n   * @param key - The key of the string to localize\n   * @returns The localized string or the key itself if no translation is found\n   */\n  getGenericFieldsLocalizedValue(path: string, key: string): string {\n    const localeStore = PCore.getLocaleUtils().localeStore;\n\n    if (!localeStore) return key;\n\n    // Split the path and traverse the object\n    const pathParts = path.split('.');\n    let currentObj: any = localeStore;\n\n    for (const part of pathParts) {\n      if (!currentObj[part]) return key;\n      currentObj = currentObj[part] as any;\n    }\n\n    return currentObj[key] || key;\n  }\n\n  prepareComponentInCaseSummary(pConnectMeta, getPConnect) {\n    const { config, children } = pConnectMeta;\n    const pConnect = getPConnect();\n\n    const caseSummaryComponentObject: any = {};\n\n    caseSummaryComponentObject.name = pConnect.resolveConfigProps({ label: config.label }).label;\n\n    const { type } = pConnectMeta;\n    const createdComponent = pConnect.createComponent({\n      type,\n      children: children ? [...children] : [],\n      config: {\n        ...config\n      }\n    });\n\n    caseSummaryComponentObject.value = createdComponent;\n    return caseSummaryComponentObject;\n  }\n\n  resolveReferenceFields(\n    item: {\n      [key: string]: unknown;\n    },\n    hideFieldLabels: boolean,\n    recordKey: string,\n    pConnect: typeof PConnect\n  ) {\n    const presets: {\n      children?: {\n        children?: {\n          config;\n          type;\n        };\n        config?;\n      };\n    } = (pConnect.getRawMetadata()?.config as any).presets ?? [];\n\n    const presetChildren = presets[0]?.children?.[0]?.children ?? [];\n\n    const maxFields = 5;\n    return presetChildren.slice(0, maxFields).map((preset, index) => {\n      const fieldMeta = {\n        meta: {\n          ...preset,\n          config: {\n            ...preset.config,\n            displayMode: 'DISPLAY_ONLY'\n          }\n        },\n        useCustomContext: item\n      };\n      const configObj = PCore.createPConnect(fieldMeta);\n      const meta = configObj.getPConnect().getMetadata();\n      const fieldInfo: {\n        name?: string;\n        value?: any;\n      } = meta ? this.prepareComponentInCaseSummary(meta, configObj.getPConnect) : {};\n      return hideFieldLabels\n        ? { id: `${item[recordKey]} - ${index}`, value: fieldInfo.value }\n        : {\n            id: `${item[recordKey]} - ${index}`,\n            name: fieldInfo.name,\n            value: fieldInfo.value,\n            type: preset.type\n          };\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProgressSpinnerService {\n  private subject = new Subject<void | object>();\n\n  /**\n   * Function to show/hide spinner\n   * @param bShow - true: show spinner, false: hide spinner\n   */\n  sendMessage(bShow: boolean) {\n    this.subject.next({ show: bShow });\n  }\n\n  clearMessage() {\n    this.subject.next();\n  }\n\n  getMessage(): Observable<any> {\n    return this.subject.asObservable();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ErrorMessagesService {\n  private subject = new Subject<void | object>();\n\n  /**\n   *\n   * @param sAction - show, dismiss\n   * @param sActionMessage - text to displayed, will be queued with others until dismiss\n   */\n  sendMessage(sAction: string, sActionMessage: string) {\n    this.subject.next({ action: sAction, actionMessage: sActionMessage });\n  }\n\n  clearMessage() {\n    this.subject.next();\n  }\n\n  getMessage(): Observable<void | object> {\n    return this.subject.asObservable();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { interval } from 'rxjs';\nimport isEqual from 'fast-deep-equal';\nimport { ProgressSpinnerService } from '../_messages/progress-spinner.service';\nimport { ErrorMessagesService } from '../_messages/error-messages.service';\nimport { Utils } from '../_helpers/utils';\n\nexport interface AngularPConnectData {\n  compID?: string;\n  unsubscribeFn?: Function;\n  validateMessage?: string;\n  actions?: {\n    onChange: Function;\n    onBlur: Function;\n  };\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AngularPConnectService {\n  /**\n   * Local variable for access to the store once the service is connected to it.\n   */\n  private theStore: any = null;\n\n  /**\n   * Local variable used to compute the next componentID\n   */\n  private counterComponentID = 0;\n\n  /**\n   * Local array used to store the association of an component to its most recent \"props\"\n   *  where \"props\" is the object containing the component's getConfigProps along with\n   * anything added by populateAdditionalProps.\n   * Each entry is: { __componentID__: _the component's most recent props_ }\n   */\n  private componentPropsArr: object[] = [];\n\n  /* Used to toggle some class-wide logging */\n  private static bLogging = false;\n\n  constructor(\n    private psService: ProgressSpinnerService,\n    private erService: ErrorMessagesService,\n    private utils: Utils\n  ) {\n    // Establish necessary override flags for our use of Core\n    // const coreOverrides = { \"dynamicLoadComponents\": false };\n    // let coreOverrides = PCore.getBehaviorOverrides();\n    // coreOverrides[\"dynamicLoadComponents\"] = false;\n    // PCore.setBehaviorOverrides( coreOverrides );\n    PCore.setBehaviorOverride('dynamicLoadComponents', false);\n\n    // Always best to use deep object compare when it's available\n    // if (isEqual !== undefined) {\n    // console.log(`AngularPConnect is using deep object compare`);\n    // } else {\n    // console.log(`AngularPConnect is using JSON.stringify compare`);\n    // }\n  }\n\n  /**\n   * Returns a unique (for this session) ComponentID that should\n   * be used for that component to update its most recent props\n   * (which can also be compared against its previous value\n   * before updating). Note that this returns a string so we can use\n   * it as a key in an associative array\n   * @returns the next componentID\n   */\n  private getNextComponentId(): string {\n    this.counterComponentID += 1;\n    // Note that we use the string version of the number so we have an\n    //  associative array that we can clean up later, if needed.\n    return this.counterComponentID.toString();\n  }\n\n  /**\n   * The Calling object (inComp) subscribes to store changes.\n   * @param inComp The component that's subscribing to the store\n   * @param inCallback The component's callback function (typically called onStateChange) that will\n   * be called when the store changes.\n   * @returns The **unsubscribe** function that should be called when the component needs\n   * to unsubscribe from the store. (Typically during ngOnDestroy)\n   */\n  private subscribeToStore(inComp: any = null, inCallback: Function | null = null): Function {\n    // const theCompName: string = inComp ? `${inComp.constructor.name}` : 'no component provided';\n    let fnUnsubscribe;\n    // console.log( `Bridge subscribing: ${theCompName} `);\n    if (inComp) {\n      let bSubscribed = true;\n      const wrappedCallback = () => {\n        if (bSubscribed && inCallback) {\n          inCallback();\n        }\n      };\n      const storeUnsubscribe = this.getStore().subscribe(wrappedCallback);\n      fnUnsubscribe = () => {\n        bSubscribed = false;\n        storeUnsubscribe();\n      };\n    }\n    return fnUnsubscribe;\n  }\n\n  /**\n   * Gets the Component's properties that are used (a) to populate componentPropsArr\n  //  and (b) to determine whether the component should update itself (re-render)\n   * @param inComp The component whose properties are being obtained\n   */\n  private getComponentProps(inComp: any = null): object {\n    let compProps: any = {};\n    let addProps = {};\n\n    if (inComp === null) {\n      console.error(`AngularPConnect: getComponentProps called with bad component: ${inComp}`);\n    }\n\n    // if ((inComp.constructor.name === \"FlowContainerComponent\") || (inComp.constructor.name === \"ViewContainerComponent\")\n    //     || (inComp.constructor.name === \"ViewComponent\") || (inComp.constructor.name === \"DeferLoadComponent\")) {\n    //   console.log(`--> AngularPConnect getComponentProps: ${inComp.constructor.name}`);\n    // }\n\n    if (inComp.additionalProps !== undefined) {\n      if (typeof inComp.additionalProps === 'object') {\n        addProps = inComp.pConn$.resolveConfigProps(inComp.additionalProps);\n      } else if (typeof inComp.additionalProps === 'function') {\n        const propsToAdd = inComp.additionalProps(PCore.getStore().getState(), inComp.pConn$);\n        addProps = inComp.pConn$.resolveConfigProps(propsToAdd);\n      }\n    }\n\n    compProps = inComp.pConn$.getConfigProps();\n\n    // const componentName = inComp.constructor.name;\n\n    // The following comment is from the Nebula/Constellation version of this code. Meant as a reminder to check this occasionally\n    // populate additional props which are component specific and not present in configurations\n    // This block can be removed once all these props will be added as part of configs\n    inComp.pConn$.populateAdditionalProps(compProps);\n\n    compProps = inComp.pConn$.resolveConfigProps(compProps);\n\n    if (compProps && undefined !== compProps.validatemessage && compProps.validatemessage != '') {\n      // console.log( `   validatemessage for ${inComp.constructor.name} ${inComp.angularPConnectData.compID}: ${compProps.validatemessage}`);\n    }\n\n    return {\n      ...compProps,\n      ...addProps\n    };\n  }\n\n  /**\n   * Returns the unique id for given component created when registering\n   * Otherwise, return undefined.\n   * @param inComp The component whose property is being requested.\n   */\n  public getComponentID(inComp): string {\n    return inComp.bridgeComponentID || inComp.angularPConnectData.compID;\n  }\n\n  /**\n   * Returns the value of requested property for the component if it exists.\n   * Otherwise, return undefined.\n   * @param inComp The component whose property is being requested.\n   * @param inProp The property being requested.\n   */\n  public getComponentProp(inComp: any = null, inProp = '') {\n    if (inComp === null) {\n      console.error(`AngularPConnect: getComponentProp called with bad component: ${inComp}`);\n    }\n\n    const compID = inComp.angularPConnectData.compID;\n\n    // Look up property in the component's entry in componentPropArray (which should have the most recent value)\n    return this.componentPropsArr[compID][inProp];\n  }\n\n  /**\n   *\n   * @returns The current complete set of resolved properties that are associated with\n   * this component.\n   * This is the full set of properties that are tracked in Redux for this component.\n   */\n  public getCurrentCompleteProps(inComp: any = null) {\n    if (inComp === null) {\n      console.error(`AngularPConnect: getCurrentCompleteProps called with bad component: ${inComp}`);\n    }\n    return this.componentPropsArr[inComp.angularPConnectData.compID];\n  }\n\n  /**\n   * Registers the component and its callback function. When a component calls this method\n   * (typically from its ngOnInit), the component is given a unique componentID (for this session)\n   * and subscribes the component to the store. As a side effect, it also assigns the component's\n   * actions (from its metadata) to the component's ___actions___ and binds the component's callback\n   * (passed in as ___inCallback___) to the component. If a problem is encountered, an empty object,\n   * {}, is returned.\n   * @param inComp The component being registered and subscribed\n   * @param inCallback The component's callback function (typically called onStateChange) that\n   * will be called whenever the state changes.\n   * @returns A JSON object with the following keys:\n   * compID: the unique ID associated with this component,\n   * unsubscribeFn: the function to be called when the component needs to unsubscribe from the store,\n   * validateMessage: any validation/error message that gets generated for this object,\n   * actions: any actions that are defined for this object\n   */\n  registerAndSubscribeComponent(inComp, inCallback: Function | null = null): AngularPConnectData {\n    // Create an initial object to be returned.\n    const returnObject: AngularPConnectData = {\n      compID: '',\n      unsubscribeFn: undefined,\n      validateMessage: '',\n      actions: undefined\n    };\n\n    if (inComp === null || inCallback === null) {\n      console.error(`AngularPConnect: bad call to registerAndSubscribe: inComp: ${inComp} inCallback: ${inCallback}`);\n      return returnObject;\n    }\n\n    const compType = inComp.constructor.name;\n\n    if (AngularPConnectService.bLogging) {\n      console.log(`registerAndSubscribeComponent: ${compType}`);\n    }\n\n    if (undefined !== inComp.bridgeComponentID) {\n      console.error(`OLD SCHOOL: ${compType}`);\n    }\n\n    if (undefined === inComp.actions && undefined === inComp.angularPConnectData) {\n      console.error(`AngularPConnect: bad call to registerAndSubscribe from ${compType}: actions not defined as a class variable for inComp`);\n      return returnObject;\n    }\n    if (undefined === inComp.bridgeComponentID && undefined === inComp.angularPConnectData) {\n      console.error(\n        `AngularPConnect: bad call to registerAndSubscribe from ${compType}: bridgeComponentID not defined as a class variable for inComp`\n      );\n      return returnObject;\n    }\n    if (undefined === inComp.unsubscribeStore && undefined === inComp.angularPConnectData) {\n      console.error(\n        `AngularPConnect: bad call to registerAndSubscribe from ${compType}: unsubscribeStore not defined as a class variable for inComp`\n      );\n      return returnObject;\n    }\n    if (undefined === inComp.validateMessage && undefined === inComp.angularPConnectData) {\n      console.error(`AngularPConnect: bad call to registerAndSubscribe from ${compType}: validateMessage not defined as a class variable for inComp`);\n      return returnObject;\n    }\n\n    // call processActions to populate metadata with actions as in PConnectHOR initialize\n    this.processActions(inComp);\n    if (undefined === inComp.actions) {\n      returnObject.actions = inComp.pConn$.getActions();\n    } else {\n      inComp.actions = inComp.pConn$.getActions();\n    }\n\n    // bind the provided callback to the component it's associated with\n    inCallback = inCallback.bind(inComp);\n\n    // Now proceed to register and subscribe...\n    const theCompID: string = this.getNextComponentId();\n    const theUnsub: Function | null = this.subscribeToStore(inComp, inCallback);\n\n    if (undefined === inComp.angularPConnectData) {\n      inComp.bridgeComponentID = theCompID;\n    } else {\n      returnObject.compID = theCompID;\n      returnObject.unsubscribeFn = () => {\n        this.removeFormField(inComp);\n        theUnsub();\n      };\n    }\n\n    // initialize this components entry in the componentPropsArr\n    this.componentPropsArr[theCompID] = {};\n\n    this.addFormField(inComp);\n\n    // return object with compID and unsubscribe...\n    return returnObject;\n  }\n\n  addFormField(inComp) {\n    inComp.pConn$?.addFormField();\n  }\n\n  removeFormField(inComp) {\n    if (inComp.pConn$?.removeFormField) {\n      inComp.pConn$?.removeFormField();\n    }\n\n    const contextName = inComp.pConn$.getContextName();\n    const pageReference = inComp.pConn$.getPageReference();\n    const rawConfig = inComp.pConn$._rawConfig;\n    const index = inComp.pConn$.index;\n\n    if (Object.hasOwn(rawConfig?.config ?? {}, 'value') && inComp.pConn$._type !== 'Address') {\n      PCore.getContextTreeManager().removeFieldNode(\n        contextName,\n        pageReference,\n        inComp.pConn$.viewName || '',\n        inComp.pConn$._getPropertyName(),\n        index as number\n      );\n    } else if (inComp.pConn$._type === 'Address' && rawConfig?.config?.associatedView) {\n      // remove address node and its children\n      PCore.getContextTreeManager().removeViewNode(contextName, pageReference, rawConfig.config.associatedView, index as number);\n    } else {\n      // remove view node and its children\n      const pageRef = rawConfig?.config?.context ? `${pageReference}${rawConfig?.config.context}` : pageReference;\n      PCore.getContextTreeManager().removeViewNode(contextName, pageRef, rawConfig?.config?.name || rawConfig?.config?.id || '', index);\n    }\n  }\n\n  // Returns true if the component's entry in ___componentPropsArr___ is\n  //  the same as the inCompProps passed in.\n  //  As a side effect, update the component's entry in componentPropsArr\n  //  NOTE: It is assumed that the incoming component has the following:\n  //  * a bridgeComponentID <string> property - used as lookup key in componentPropsArr\n  //  * a pConn$ <?> property - used to access functions accessed in getComponentProps\n  // Return true: means the component props are different and the component should update itself (re-render)\n  // Return false: means the component props are the same and the component doesn't need to update (re-render)\n  //  On bad input, return false;\n  /**\n   * Returns **true** if the component's entry in ___componentPropsArr___ is\n   * the same as the properties that are current associated with the component (___inComp___) passed in.\n   * As a side effect, the component's entry in ___componentPropsArr___ is updated.\n   * **Note**: It is assumed that the incoming component has the following:\n   * (a) a bridgeComponentID _string_ property used as lookup key in ___componentPropsArr___\n   * and (b) a ___pConn$___ property used to access functions called in ___getComponentProps___\n   *\n   * @param inComp The component asking if it should update itself\n   * @returns Return **true**: means the component props are different and the component should update itself (re-render).\n   * Return **false**: means the component props are the same and the component doesn't need to update (re-render).\n   * If the ***inComp*** input is bad, false is also returned.\n   */\n  shouldComponentUpdate(inComp): boolean {\n    // const bShowLogging = false;\n    let bRet = false;\n    // check for reasonable input\n    if (Utils.isEmptyObject(inComp)) {\n      console.error(`AngularPConnect: bad call to shouldComponentUpdate: inComp: ${JSON.stringify(inComp)}`);\n      return bRet;\n    }\n    if (undefined === inComp.validateMessage && undefined === inComp.angularPConnectData) {\n      console.error(`AngularPConnect: bad call to shouldComponentUpdate: ${inComp.constructor.name} does not have a validateMessage property.`);\n    }\n\n    const compID = this.getComponentID(inComp);\n\n    const currentProps: any = this.componentPropsArr[compID];\n    const currentPropsAsStr: string = JSON.stringify(currentProps);\n\n    const incomingProps: any = this.getComponentProps(inComp);\n\n    // if have pageMessages, and it is blank, remove it.  This causes issues of making it appear\n    // that a will cause an update, when there is no change\n    if (this.isPageMessagesEmpty(incomingProps)) {\n      inComp.angularPConnectData.pageMessages = incomingProps.pageMessages;\n      delete incomingProps.pageMessages;\n    }\n\n    if (incomingProps.httpMessages) {\n      inComp.angularPConnectData.httpMessages = incomingProps.httpMessages;\n      incomingProps.httpMessages = undefined;\n    }\n\n    const incomingPropsAsStr: string = JSON.stringify(incomingProps);\n\n    bRet = isEqual ? !isEqual(currentProps, incomingProps) : currentPropsAsStr != incomingPropsAsStr;\n\n    // Below piece of code is needed to re-render the component since we wanna evaluate the Visibility expression within View component in such cases\n    if (inComp.pConn$.meta.config.context?.length > 0 && inComp.pConn$.getPageReference().length > 'caseInfo.content'.length) {\n      return true;\n    }\n\n    // Now update the entry in componentPropsArr with the incoming value so\n    //  we can compare against that next time...\n    this.componentPropsArr[compID] = incomingProps;\n    const validatemessage = incomingProps.validatemessage === undefined ? '' : this.utils.htmlDecode(incomingProps.validatemessage);\n    // and update the component's validation message (if undefined, it should be set to \"\")\n    if (undefined !== inComp.angularPConnectData) {\n      inComp.angularPConnectData.validateMessage = validatemessage;\n\n      if (inComp.angularPConnectData.validateMessage != '') {\n        // if have a validate message, turn off spinner\n        const timer = interval(100).subscribe(() => {\n          this.psService.sendMessage(false);\n\n          timer.unsubscribe();\n        });\n\n        let sErrorMessage = currentProps && currentProps.label ? currentProps.label.concat(' - ') : '';\n        sErrorMessage = sErrorMessage.concat(inComp.angularPConnectData.validateMessage);\n        this.erService.sendMessage('update', sErrorMessage);\n      }\n    } else {\n      inComp.validateMessage = validatemessage;\n    }\n\n    if (bRet && compID === undefined) {\n      bRet = false;\n    }\n\n    // console.log( `AngularPConnect component ${compID} - ${inComp.constructor.name} - shouldComponentUpdate: ${bRet}`);\n    // console.log(\"current props: \" + currentPropsAsStr);\n\n    if (bRet) {\n      // console.log(`**** change for: ${inComp.constructor.name}`);\n      // console.log(\"current props: \" + currentPropsAsStr);\n      // console.log(\"incoming props: \" + incomingPropsAsStr);\n      // console.log(`    ${inComp.constructor.name}: shouldComponentUpdate returning: ${bRet}, compId: ${compID}` );\n      // console.log( `    Updating with componentProps for ${inComp.constructor.name}: ${JSON.stringify(this.componentPropsArr[compID])}`);\n      // console.log( `          and validateMessage: ${inComp.validateMessage}`);\n    }\n    // else if (inComp.constructor.name.indexOf(\"View\") >= 0 || inComp.constructor.name.indexOf(\"Root\") >= 0) {\n    //   console.log(\"no change\");\n    //   console.log(\"current props: \" + currentPropsAsStr);\n    //   console.log(\"incoming props: \" + incomingPropsAsStr);\n    //   console.log(`    ${inComp.constructor.name}: shouldComponentUpdate returning: ${bRet}, compId: ${compID}` );\n\n    // }\n\n    // console.log(`    ${inComp.constructor.name}: shouldComponentUpdate returning: ${bRet}`);\n\n    return bRet;\n  }\n\n  isPageMessagesEmpty(incomingProps) {\n    return incomingProps.pageMessages && incomingProps.pageMessages.length === 0;\n  }\n\n  /**\n   * Can be called when the component has encountered a change event\n   * @param inComp The component calling the change event\n   * @param event The event\n   */\n  changeHandler(inComp, event) {\n    const bLogging = false;\n    if (bLogging) {\n      // console.log(`AngularPConnect.changeHandler`);\n    }\n    // check for reasonable input\n    if (undefined === inComp || Utils.isEmptyObject(inComp)) {\n      console.error(`AngularPConnect: bad call to changeHandler: inComp: ${JSON.stringify(inComp)}`);\n      return;\n    }\n\n    const pConnect = inComp.pConn$;\n    if (undefined === pConnect) {\n      console.error(`AngularPConnect: bad call to changeHandler: inComp.pConn$: ${pConnect}`);\n      return;\n    }\n\n    // clear out errors\n    this.erService.sendMessage('dismiss', '');\n\n    pConnect.getActionsApi().changeHandler(pConnect, event);\n  }\n\n  /**\n   * Can be called when the component has encountered an event (such as blur)\n   * @param inComp The component calling the event\n   * @param event The event\n   */\n  eventHandler(inComp, event) {\n    const bLogging = false;\n    if (bLogging) {\n      // console.log(`AngularPConnect.eventHandler`);\n    }\n    // check for reasonable input\n    if (undefined === inComp || Utils.isEmptyObject(inComp)) {\n      console.error(`AngularPConnect: bad call to eventHandler: inComp: ${JSON.stringify(inComp)}`);\n      return;\n    }\n\n    const pConnect = inComp.pConn$;\n    if (undefined === pConnect) {\n      console.error(`AngularPConnect: bad call to eventHandler: inComp.pConn$: ${pConnect}`);\n      return;\n    }\n\n    pConnect.getActionsApi().eventHandler(pConnect, event);\n  }\n\n  /**\n   * @returns A handle to the application's store\n   */\n  getStore() {\n    if (this.theStore === null) {\n      this.theStore = PCore.getStore();\n    }\n    return this.theStore;\n  }\n\n  /**\n   * @param bLogMsg If true, will write the stringified state to the store for debugging/inspection\n   * @param inComp If supplied, the component that is requesting the store's state\n   * @returns A handle to the __state__ of application's store\n   */\n  getState(bLogMsg: boolean = false, inComp: any = null) {\n    const theState: object = this.getStore().getState();\n    if (bLogMsg) {\n      const theCompName: string = inComp ? `${inComp.constructor.name}: ` : '';\n      console.log(`${theCompName} Store state: ${JSON.stringify(theState)}`);\n    }\n    return theState;\n  }\n\n  // processActions - carried over from PConnectHOC initialize\n  /**\n   *  processActions exposes all actions in the metadata.\n   *  Attaches common handler (eventHandler) for all actions.\n   */\n  private processActions(inComp) {\n    const pConnect = inComp.pConn$;\n    if (undefined === pConnect) {\n      console.error(`AngularPConnect: bad call to processActions: pConn$: ${pConnect} from component: ${inComp.constructor.name}`);\n      return;\n    }\n\n    if (inComp.pConn$.isEditable()) {\n      inComp.pConn$.setAction('onChange', this.changeHandler.bind(this));\n      inComp.pConn$.setAction('onBlur', this.eventHandler.bind(this));\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BannerService {\n  banners: any[] = [];\n\n  clearBanners() {\n    this.banners = [];\n  }\n\n  updateBanners(itemKey) {\n    const localizedValue = PCore.getLocaleUtils().getLocaleValue;\n    const validationErrors = PCore.getMessageManager().getValidationErrorMessages(itemKey) || [];\n\n    const formattedErrors = validationErrors.map(error => {\n      let message = '';\n\n      if (typeof error === 'string') {\n        message = error;\n      } else {\n        error.label = error.label.endsWith(':') ? error.label : `${error.label}:`;\n        message = `${error.label} ${error.description}`;\n      }\n\n      return localizedValue(message, 'Messages');\n    });\n\n    this.banners = formattedErrors.length ? [{ messages: formattedErrors, variant: 'urgent' }] : [];\n  }\n}\n","/* eslint-disable no-case-declarations */\nimport { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarModule, MatSnackBar } from '@angular/material/snack-bar';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ErrorMessagesService } from '../../../_messages/error-messages.service';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { BannerService } from '../../../_services/banner.service';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\nfunction getRefreshProps(refreshConditions) {\n  // refreshConditions cuurently supports only \"Changes\" event\n  if (!refreshConditions) {\n    return [];\n  }\n  return refreshConditions.filter(item => item.event && item.event === 'Changes').map(item => [item.field, item.field?.substring(1)]) || [];\n}\n\nfunction scrollToTop() {\n  const scrollElement = document.querySelector('.psdk-view-container-top');\n  scrollElement?.scrollIntoView();\n}\n\ninterface AssignmentProps {\n  // If any, enter additional props that only exist on this component\n  template: string;\n}\n\n@Component({\n  selector: 'app-assignment',\n  templateUrl: './assignment.component.html',\n  styleUrls: ['./assignment.component.scss'],\n  imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AssignmentComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() arChildren$: any[];\n  @Input() itemKey$: string;\n  @Input() isCreateStage$: boolean;\n  @Input() updateToken$: number;\n  @Input() isInModal$ = false;\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: AssignmentProps;\n\n  newPConn$: any;\n  containerName$: string;\n\n  bInitialized = false;\n\n  templateName$: string;\n\n  arMainButtons$: any[];\n  arSecondaryButtons$: any[];\n\n  actionsAPI: any;\n\n  bHasNavigation$ = false;\n  bIsVertical$ = false;\n  prevNavigationSteps: any[] = [];\n  arCurrentStepIndicies$: number[] = [];\n  arNavigationSteps$: any[] = [];\n\n  init: boolean;\n  finishAssignment: any;\n  navigateToStep: any;\n  saveAssignment: any;\n  cancelAssignment: any;\n  cancelCreateStageAssignment: any;\n  showPage: any;\n  approveCase: any;\n  rejectCase: any;\n\n  // itemKey: string = \"\";   // JA - this is what Nebula/Constellation uses to pass to finishAssignment, navigateToStep\n\n  bReInit = false;\n  localizedVal;\n  localeCategory = 'Assignment';\n  localeReference;\n\n  snackBarRef;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private psService: ProgressSpinnerService,\n    private erService: ErrorMessagesService,\n    private snackBar: MatSnackBar,\n    public bannerService: BannerService\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.initComponent();\n\n    this.angularPConnect.shouldComponentUpdate(this);\n\n    this.bInitialized = true;\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n    this.localeReference = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    this.bannerService.updateBanners(this.itemKey$);\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n    if (bUpdateSelf) {\n      let loadingInfo;\n      try {\n        // loadingInfo = this.pConn$.getLoadingStatus();\n        loadingInfo = this.newPConn$.getLoadingStatus();\n\n        this.psService.sendMessage(loadingInfo);\n      } catch (ex) {\n        console.log(ex);\n      }\n    }\n  }\n\n  ngOnChanges() {\n    if (this.bInitialized) {\n      this.updateChanges();\n    }\n  }\n\n  updateChanges() {\n    scrollToTop();\n\n    this.registerForRefresh();\n\n    // pConn$ may be a 'reference' component, so normalize it\n    this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n    if (this.arChildren$) {\n      this.createButtons();\n    }\n  }\n\n  initComponent() {\n    // pConn$ may be a 'reference' component, so normalize it\n    // this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n    this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n    // prevent re-intializing with flowContainer update unless an action is taken\n    this.bReInit = false;\n    this.bHasNavigation$ = false;\n\n    // this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    this.configProps$ = this.newPConn$.resolveConfigProps(this.newPConn$.getConfigProps());\n\n    this.templateName$ = this.configProps$.template;\n\n    // create pointers to functions\n    /*\n    let containerMgr = this.pConn$.getContainerManager();\n    let actionsAPI = this.pConn$.getActionsApi();\n    let baseContext = this.pConn$.getContextName();\n    let acName = this.pConn$.getContainerName();\n    */\n\n    const actionsAPI = this.newPConn$.getActionsApi();\n    const baseContext = this.newPConn$.getContextName();\n    const acName = this.newPConn$.getContainerName();\n\n    // for now, in general this should be overridden by updateSelf(), and not be blank\n    if (this.itemKey$ === '') {\n      this.itemKey$ = baseContext.concat('/').concat(acName);\n    }\n\n    // this.pConn$.isBoundToState();\n    this.newPConn$.isBoundToState();\n\n    this.init = false;\n\n    // store off bound functions to above pointers\n    this.finishAssignment = actionsAPI.finishAssignment.bind(actionsAPI);\n    this.navigateToStep = actionsAPI.navigateToStep.bind(actionsAPI);\n    this.saveAssignment = actionsAPI.saveAssignment.bind(actionsAPI);\n    this.cancelAssignment = actionsAPI.cancelAssignment.bind(actionsAPI);\n    this.showPage = actionsAPI.showPage.bind(actionsAPI);\n\n    this.cancelCreateStageAssignment = actionsAPI.cancelCreateStageAssignment.bind(actionsAPI);\n    this.approveCase = actionsAPI.approveCase?.bind(actionsAPI);\n    this.rejectCase = actionsAPI.rejectCase?.bind(actionsAPI);\n\n    if (this.arChildren$) {\n      this.createButtons();\n    }\n  }\n\n  createButtons() {\n    // let oData = this.pConn$.getDataObject();\n    const oData = this.newPConn$.getDataObject();\n\n    // inside\n    // get fist kid, get the name and displa\n    // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.\n    const oWorkItem = this.arChildren$[0].getPConnect();\n    const oWorkData = oWorkItem.getDataObject();\n\n    if (oWorkData) {\n      this.actionsAPI = oWorkItem.getActionsApi();\n\n      // this.containerName$ = oWorkMeta[\"name\"];\n\n      if (oWorkData.caseInfo && oWorkData.caseInfo.assignments !== null) {\n        this.containerName$ = oWorkData.caseInfo.assignments?.[0]?.name;\n\n        // get caseInfo\n        const oCaseInfo = oData.caseInfo;\n\n        if (oCaseInfo && oCaseInfo.actionButtons) {\n          this.arMainButtons$ = oCaseInfo.actionButtons.main;\n          this.arSecondaryButtons$ = oCaseInfo.actionButtons.secondary;\n        }\n\n        if (oCaseInfo.navigation != null) {\n          this.createButtonsForMultiStepForm(oCaseInfo);\n        } else {\n          this.bHasNavigation$ = false;\n        }\n      }\n    }\n  }\n\n  createButtonsForMultiStepForm(oCaseInfo) {\n    this.bHasNavigation$ = true;\n\n    if ((oCaseInfo.navigation.template && oCaseInfo.navigation.template.toLowerCase() === 'standard') || oCaseInfo?.navigation?.steps?.length === 1) {\n      this.bHasNavigation$ = false;\n    } else if (oCaseInfo.navigation.template && oCaseInfo.navigation.template.toLowerCase() === 'vertical') {\n      this.bIsVertical$ = true;\n    } else {\n      this.bIsVertical$ = false;\n    }\n\n    // iterate through steps to find current one(s)\n    // immutable, so we want to change the local copy, so need to make a copy\n\n    if (!PCore.isDeepEqual(this.prevNavigationSteps, oCaseInfo.navigation.steps)) {\n      // what comes back now in configObject is the children of the flowContainer\n      this.arNavigationSteps$ = JSON.parse(JSON.stringify(oCaseInfo.navigation.steps));\n      this.prevNavigationSteps = JSON.parse(JSON.stringify(oCaseInfo.navigation.steps));\n      this.arNavigationSteps$.forEach(step => {\n        if (step.name) {\n          step.name = this.pConn$.getLocalizationService().getLocalizedText(step.name);\n        }\n      });\n      this.arCurrentStepIndicies$ = [];\n      this.arCurrentStepIndicies$ = this.findCurrentIndicies(this.arNavigationSteps$, this.arCurrentStepIndicies$, 0);\n    }\n  }\n\n  findCurrentIndicies(arStepperSteps: any[], arIndicies: number[], depth: number): number[] {\n    let count = 0;\n    arStepperSteps.forEach(step => {\n      if (step.visited_status == 'current') {\n        arIndicies[depth] = count;\n\n        // add in\n        step.step_status = '';\n      } else if (step.visited_status == 'success') {\n        count++;\n        step.step_status = 'completed';\n      } else {\n        count++;\n        step.step_status = '';\n      }\n\n      if (step.steps) {\n        arIndicies = this.findCurrentIndicies(step.steps, arIndicies, depth + 1);\n      }\n    });\n\n    return arIndicies;\n  }\n\n  onSaveActionSuccess(data) {\n    this.actionsAPI.cancelAssignment(this.itemKey$).then(() => {\n      this.psService.sendMessage(false);\n      PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CREATE_STAGE_SAVED, data);\n    });\n  }\n\n  onActionButtonClick(oData: any) {\n    this.buttonClick(oData.action, oData.buttonType);\n  }\n\n  buttonClick(sAction, sButtonType) {\n    this.snackBarRef?.dismiss();\n    this.bannerService.clearBanners();\n    PCore.getPubSubUtils().publish('clearBannerMessages');\n    // right now, done on an individual basis, setting bReInit to true\n    // upon the next flow container state change, will cause the flow container\n    // to re-initialize\n    // this.bReInit =true;\n\n    /*\n    let baseContext = this.pConn$.getContextName();\n    let acName = this.pConn$.getContainerName();\n    let itemID = baseContext.concat(\"/\").concat(acName);\n    */\n\n    // const baseContext = this.newPConn$.getContextName();\n    // const acName = this.newPConn$.getContainerName();\n    // const itemID = baseContext.concat('/').concat(acName);\n\n    if (sButtonType == 'secondary') {\n      // const stepID = ''; // ???\n\n      // need to handle cancel as this.cancel(dispatchInfo)\n      // this.actionsAPI[sAction](dispatchInfo);\n      switch (sAction) {\n        case 'navigateToStep':\n          this.erService.sendMessage('publish', '');\n\n          this.bReInit = true;\n          this.psService.sendMessage(true);\n\n          const navigatePromise = this.navigateToStep('previous', this.itemKey$);\n          navigatePromise\n            .then(() => {\n              this.updateChanges();\n              this.psService.sendMessage(false);\n            })\n            .catch(() => {\n              this.psService.sendMessage(false);\n              this.snackBarRef = this.snackBar.open(`${this.localizedVal('Navigation failed!', this.localeCategory)}`, 'Ok');\n            });\n\n          break;\n\n        case 'saveAssignment': {\n          const caseID = this.pConn$.getCaseInfo().getKey();\n          const assignmentID = this.pConn$.getCaseInfo().getAssignmentID();\n          const savePromise = this.saveAssignment(this.itemKey$);\n\n          savePromise\n            .then(() => {\n              const caseType = this.pConn$.getCaseInfo().c11nEnv.getValue(PCore.getConstants().CASE_INFO.CASE_TYPE_ID);\n              PCore.getPubSubUtils().publish('cancelPressed');\n              this.onSaveActionSuccess({ caseType, caseID, assignmentID });\n            })\n            .catch(() => {\n              this.psService.sendMessage(false);\n              this.snackBarRef = this.snackBar.open(`${this.localizedVal('Save failed', this.localeCategory)}`, 'Ok');\n            });\n\n          break;\n        }\n\n        case 'cancelAssignment':\n          this.bReInit = true;\n          this.erService.sendMessage('dismiss', '');\n          const isAssignmentInCreateStage = this.pConn$.getCaseInfo().isAssignmentInCreateStage();\n          const isLocalAction =\n            this.pConn$.getCaseInfo().isLocalAction() ||\n            (PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION && this.pConn$.getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION));\n          // check if create stage (modal)\n          if (isAssignmentInCreateStage && this.isInModal$ && !isLocalAction) {\n            const cancelPromise = this.cancelCreateStageAssignment(this.itemKey$);\n            cancelPromise\n              .then(() => {\n                this.psService.sendMessage(false);\n                // PCore.getPubSubUtils().publish(\n                //   PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);\n              })\n              .catch(() => {\n                this.psService.sendMessage(false);\n                this.snackBarRef = this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');\n              });\n          } else {\n            this.psService.sendMessage(true);\n\n            // publish before cancel pressed, because\n            // cancel assignment happens \"after\" cancel assignment happens\n            PCore.getPubSubUtils().publish('cancelPressed');\n\n            const cancelPromise = this.cancelAssignment(this.itemKey$);\n            cancelPromise\n              .then(() => {\n                this.psService.sendMessage(false);\n                PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);\n              })\n              .catch(() => {\n                this.psService.sendMessage(false);\n                this.snackBarRef = this.snackBar.open(`${this.localizedVal('Cancel failed!', this.localeCategory)}`, 'Ok');\n              });\n          }\n          break;\n\n        case 'rejectCase': {\n          const rejectPromise = this.rejectCase(this.itemKey$);\n\n          rejectPromise\n            .then(() => {})\n            .catch(() => {\n              this.psService.sendMessage(false);\n              this.snackBarRef = this.snackBar.open(`${this.localizedVal('Rejection failed!', this.localeCategory)}`, 'Ok');\n            });\n\n          break;\n        }\n\n        default:\n          break;\n      }\n    } else if (sButtonType == 'primary') {\n      switch (sAction) {\n        case 'finishAssignment':\n          this.erService.sendMessage('publish', '');\n          this.bReInit = true;\n          this.psService.sendMessage(true);\n          const finishPromise = this.finishAssignment(this.itemKey$); // JA - was itemID but Nebula/Constellation uses itemKey\n          finishPromise\n            .then(() => {\n              this.updateChanges();\n            })\n            .catch(() => {\n              this.snackBarRef = this.snackBar.open(`${this.localizedVal('Submit failed!', this.localeCategory)}`, 'Ok');\n            })\n            .finally(() => {\n              this.psService.sendMessage(false);\n            });\n          break;\n\n        case 'approveCase': {\n          const approvePromise = this.approveCase(this.itemKey$);\n\n          approvePromise\n            .then(() => {})\n            .catch(() => {\n              this.snackBarRef = this.snackBar.open(`${this.localizedVal('Approve failed!', this.localeCategory)}`, 'Ok');\n            })\n            .finally(() => {\n              this.psService.sendMessage(false);\n            });\n\n          break;\n        }\n        default:\n          break;\n      }\n    }\n  }\n\n  formValid(): boolean {\n    this.touchAll();\n    return this.formGroup$.valid;\n  }\n\n  touchAll(): void {\n    Object.values(this.formGroup$.controls).forEach((control: any) => {\n      control.markAsTouched();\n    });\n  }\n\n  topViewRefresh(): void {\n    Object.values(this.formGroup$.controls).forEach((control: any) => {\n      control.markAsTouched();\n    });\n  }\n\n  registerForRefresh() {\n    const refreshConditions = this.pConn$.getCaseInfo()?.getActionRefreshConditions();\n    const pageReference = this.pConn$.getPageReference();\n    const context = this.pConn$.getContextName();\n\n    // refresh api de-registration\n    PCore.getRefreshManager().deRegisterForRefresh(context);\n\n    // refresh api registration\n    const refreshProps = getRefreshProps(refreshConditions);\n    const caseKey = this.pConn$.getCaseInfo().getKey();\n    const refreshOptions = {\n      autoDetectRefresh: true,\n      preserveClientChanges: false\n    };\n    if (refreshProps.length > 0) {\n      refreshProps.forEach(prop => {\n        PCore.getRefreshManager().registerForRefresh(\n          'PROP_CHANGE',\n          this.pConn$.getActionsApi().refreshCaseView.bind(this.pConn$.getActionsApi(), caseKey, '', pageReference, {\n            ...refreshOptions,\n            refreshFor: prop[0]\n          }),\n          `${pageReference}.${prop[1]}`,\n          `${context}/${pageReference}`,\n          context\n        );\n      });\n    }\n  }\n}\n","<div>\n  <div><component-mapper name=\"AlertBanner\" [props]=\"{ banners: bannerService.banners }\" [parent]=\"this\"></component-mapper></div>\n  <div *ngIf=\"bHasNavigation$\" class=\"psdk-stepper\">\n    <component-mapper\n      name=\"MultiStep\"\n      [props]=\"{\n        pConn$: newPConn$,\n        formGroup$,\n        arChildren$,\n        arMainButtons$,\n        arSecondaryButtons$,\n        bIsVertical$,\n        arCurrentStepIndicies$,\n        arNavigationSteps$\n      }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n    ></component-mapper>\n  </div>\n  <div *ngIf=\"!bHasNavigation$\">\n    <component-mapper\n      name=\"AssignmentCard\"\n      [props]=\"{ pConn$: newPConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$, updateToken$ }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n    ></component-mapper>\n  </div>\n</div>\n","/** This file contains various utility methods to generate filter components, regionLayout data, filter expressions, etc.  */\n// Remove this and use \"real\" PCore type once .d.ts is fixed (currently shows 5 errors)\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const createFilter = (value, fieldId, comparator = 'EQ') => {\n  return {\n    condition: {\n      lhs: {\n        field: fieldId\n      },\n      comparator,\n      rhs: {\n        value\n      }\n    }\n  };\n};\n\nexport const combineFilters = (filterList, existingFilters) => {\n  if (filterList && filterList.length) {\n    // Need to combine them\n    if (existingFilters) {\n      return { AND: [existingFilters, ...filterList] };\n    }\n\n    // No existing, just return the one(s) from the list\n    if (filterList.length > 1) {\n      return { AND: [...filterList] };\n    }\n\n    return filterList[0];\n  }\n\n  // No filter list,\n  return existingFilters;\n};\n\nexport const createFilterComponent = (getPConnect, filterMeta, index) => {\n  // const dashboardFilter = [];\n  const name = filterMeta.config.value.substring(4);\n  const filterId = uuidv4();\n  let cleanedName = name;\n  if (name.indexOf('.') !== -1) {\n    cleanedName = name.substring(name.indexOf('.') + 1);\n  }\n  let propInfo: any = PCore.getMetadataUtils().getPropertyMetadata(cleanedName, filterMeta.config.ruleClass);\n  if (!propInfo) {\n    propInfo = PCore.getMetadataUtils().getPropertyMetadata(cleanedName);\n  }\n  const { type: propertyType } = propInfo || { type: 'Text' };\n  const isNumber = propertyType && (propertyType === 'Decimal' || propertyType === 'Integer');\n  filterMeta.isNumber = isNumber;\n  const { filterType, datasource } = filterMeta.config;\n  const type = filterType || filterMeta.type;\n  const filterProp = `.pyDashboardFilter${index}`;\n  if (type === 'DateTime') {\n    const label = filterMeta.config.label.substring(3);\n    return { type: filterMeta.type, getPConnect, name, filterProp, metadata: filterMeta, label, filterId };\n  }\n  if (datasource && datasource.fields) {\n    datasource.fields.key = datasource.fields.value;\n  }\n  if (filterMeta.config.listType === 'associated' && propInfo && propInfo.datasource) {\n    filterMeta.config.datasource = propInfo.datasource.records;\n  }\n  filterMeta.config.value = `@P ${filterProp}`;\n  filterMeta.type = filterMeta.config.displayAs || type;\n  filterMeta.config.placeholder = 'ALL';\n  const c11nEnv = PCore.createPConnect({\n    meta: filterMeta,\n    options: {\n      hasForm: true\n    }\n  });\n  return { type: filterMeta.type, getPConnect, name, filterProp, metadata: filterMeta, c11nEnv, filterId };\n};\n\nexport const buildFilterComponents = (getPConnect, allFilters) => {\n  return allFilters.children.map((filter, index) => createFilterComponent(getPConnect, filter, index));\n};\n\nexport const getFilterExpression = (filterValue, name, metadata) => {\n  if (filterValue === '') {\n    return null;\n  }\n  let comparator = 'EQ';\n  if (metadata.type === 'TextInput' && !metadata.isNumber) {\n    comparator = 'CONTAINS';\n  }\n\n  if (metadata.config.filterType && metadata.config.filterType === 'RelativeDates') {\n    const fieldSource = metadata.config.datasource.filter(source => source.key === filterValue)[0];\n    const relativeDateExpression = JSON.parse(fieldSource.json);\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const fields = [\n      {\n        name: relativeDateExpression.condition.lhs.field,\n        type: 'DATE_TIME'\n      }\n    ];\n    return '';\n  }\n\n  return createFilter(filterValue, name, comparator);\n};\n\nexport const getFormattedDate = date => {\n  if (!date) {\n    return date;\n  }\n  const year = date.getFullYear();\n  const month = `0${date.getMonth() + 1}`.slice(-2);\n  const day = `0${date.getDate()}`.slice(-2);\n\n  return `${year}-${month}-${day}`;\n};\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { debounceTime } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getFilterExpression, getFormattedDate, createFilter, combineFilters } from '../../../_helpers/filter-utils';\n\n@Component({\n  selector: 'app-dashboard-filter',\n  templateUrl: './dashboard-filter.component.html',\n  styleUrls: ['./dashboard-filter.component.scss'],\n  imports: [\n    CommonModule,\n    MatFormFieldModule,\n    ReactiveFormsModule,\n    MatDatepickerModule,\n    MatButtonModule,\n    MatNativeDateModule,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class DashboardFilterComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n  @Input() filtersFormGroup$: FormGroup;\n  @Input() inlineProps;\n  @Input() children;\n\n  arChildren$: any[];\n  private filterChangeSubject = new Subject<string>();\n\n  constructor() {\n    this.filterChangeSubject.pipe(debounceTime(500)).subscribe(val => this.fireFilterChange(val));\n  }\n\n  ngOnInit() {\n    if (this.filtersFormGroup$ != null) {\n      this.filtersFormGroup$.addControl('start', new FormControl(null));\n      this.filtersFormGroup$.addControl('end', new FormControl(null));\n    }\n  }\n\n  clearFilters() {\n    this.filtersFormGroup$.reset();\n    PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL);\n  }\n\n  updateTmpData(filterData) {\n    this.filterChangeSubject.next(filterData);\n  }\n\n  dateRangeChangeHandler(field) {\n    const { filterId, name } = field;\n    const start = (this.filtersFormGroup$.get('start') as FormControl).value;\n    const end = (this.filtersFormGroup$.get('end') as FormControl).value;\n    if (start && end) {\n      let startDate = getFormattedDate(start);\n      let endDate = getFormattedDate(end);\n\n      if (startDate && endDate) {\n        startDate = `${startDate}T00:00:00`;\n        endDate = `${endDate}T00:00:00`;\n        const startFilter = createFilter(startDate, name, 'GT');\n        const endFilter = createFilter(endDate, name, 'LT');\n\n        const filterData = {\n          filterId,\n          filterExpression: combineFilters([startFilter, endFilter], null)\n        };\n        PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE, filterData);\n      }\n    }\n  }\n\n  fireFilterChange(data: any) {\n    const { event, field } = data;\n    const filterData = {\n      filterId: field.filterId,\n      filterExpression: getFilterExpression(event.target.value, field.name, field.metadata)\n    };\n\n    PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE, filterData);\n  }\n}\n","<div\n  [ngClass]=\"{\n    'psdk-block-style': inlineProps.filterPosition === 'block-start'\n  }\"\n>\n  <div *ngFor=\"let kid of children\">\n    <div *ngIf=\"kid.type === 'DateTime'\" [formGroup]=\"filtersFormGroup$\">\n      <mat-form-field class=\"psdk-full-width\">\n        <mat-label>{{ kid.label }}</mat-label>\n        <mat-date-range-input [rangePicker]=\"picker\">\n          <input matStartDate placeholder=\"Start date\" formControlName=\"start\" />\n          <input matEndDate placeholder=\"End date\" formControlName=\"end\" (dateChange)=\"dateRangeChangeHandler(kid)\" />\n        </mat-date-range-input>\n        <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n        <mat-date-range-picker #picker></mat-date-range-picker>\n      </mat-form-field>\n    </div>\n    <div *ngIf=\"kid.c11nEnv\">\n      <span (input)=\"updateTmpData({ event: $event, field: kid })\">\n        <component-mapper\n          [name]=\"kid.c11nEnv.getPConnect().getComponentName()\"\n          [props]=\"{\n            pConn$: kid.c11nEnv.getPConnect(),\n            formGroup$: filtersFormGroup$\n          }\"\n          errorMsg=\"Dashboard filter wants component not yet available: {{ kid.c11nEnv.getPConnect().getComponentName() }}\"\n        >\n        </component-mapper>\n      </span>\n    </div>\n  </div>\n  <div>\n    <button mat-button color=\"primary\" (click)=\"clearFilters()\">Clear All</button>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\n@Component({\n  selector: 'app-defer-load',\n  templateUrl: './defer-load.component.html',\n  styleUrls: ['./defer-load.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DeferLoadComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$;\n  @Input() name;\n\n  childComponentPConnect: typeof PConnect;\n  bShowDefer$ = false;\n\n  angularPConnectData: AngularPConnectData = {};\n  constants: typeof publicConstants;\n  currentLoadedAssignment = '';\n  isContainerPreview: boolean;\n  loadViewCaseID: any;\n  resourceType: any;\n  deferLoadId: any;\n  containerName: any;\n  CASE: any;\n  PAGE: any;\n  DATA: any;\n  lastUpdateCaseTime;\n  constructor(private angularPConnect: AngularPConnectService) {\n    this.constants = PCore.getConstants();\n  }\n\n  ngOnInit(): void {\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    // The below call is causing an error while creating/opening a case, hence commenting it out\n    this.updateSelf();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const theRequestedAssignment = this.pConn$.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);\n    const lastUpdateCaseTime = this.pConn$.getValue('caseInfo.lastUpdateTime');\n    if (\n      (theRequestedAssignment && theRequestedAssignment !== this.currentLoadedAssignment) ||\n      (lastUpdateCaseTime && lastUpdateCaseTime !== this.lastUpdateCaseTime)\n    ) {\n      this.currentLoadedAssignment = theRequestedAssignment;\n      this.lastUpdateCaseTime = lastUpdateCaseTime;\n      this.updateSelf();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!Object.values(changes).every(val => val.firstChange === true)) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.loadViewCaseID = this.pConn$.getValue(this.constants.PZINSKEY) || this.pConn$.getValue(this.constants.CASE_INFO.CASE_INFO_ID);\n    let containerItemData;\n    const targetName = this.pConn$.getTarget();\n    if (targetName) {\n      this.containerName = PCore.getContainerUtils().getActiveContainerItemName(targetName);\n      containerItemData = PCore.getContainerUtils().getContainerItemData(targetName, this.containerName);\n    }\n    const { CASE, PAGE, DATA } = this.constants.RESOURCE_TYPES;\n    this.CASE = CASE;\n    this.PAGE = PAGE;\n    this.DATA = DATA;\n\n    const { resourceType = this.CASE } = containerItemData || { resourceType: this.loadViewCaseID ? this.CASE : this.PAGE };\n    this.resourceType = resourceType;\n    this.isContainerPreview = /preview_[0-9]*/g.test(this.pConn$.getContextName());\n\n    const theConfigProps = this.pConn$.getConfigProps();\n    this.deferLoadId = theConfigProps.deferLoadId;\n    this.name = this.name || theConfigProps.name;\n\n    this.loadActiveTab();\n  }\n\n  getViewOptions = () => ({\n    viewContext: this.resourceType,\n    pageClass: this.loadViewCaseID ? '' : this.pConn$.getDataObject()?.pyPortal?.classID,\n    container: this.isContainerPreview ? 'preview' : undefined,\n    containerName: this.isContainerPreview ? 'preview' : undefined,\n    updateData: this.isContainerPreview\n  });\n\n  onResponse(data) {\n    if (this.deferLoadId) {\n      PCore.getDeferLoadManager().start(\n        this.name,\n        this.pConn$.getCaseInfo().getKey(),\n        this.pConn$.getPageReference().replace('caseInfo.content', ''),\n        this.pConn$.getContextName(),\n        this.deferLoadId\n      );\n    }\n\n    if (data && !(data.type && data.type === 'error')) {\n      const config = {\n        meta: data,\n        options: {\n          context: this.pConn$.getContextName(),\n          pageReference: this.pConn$.getPageReference()\n        }\n      };\n      const configObject = PCore.createPConnect(config);\n      configObject.getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY');\n\n      this.childComponentPConnect = ReferenceComponent.normalizePConn(configObject.getPConnect());\n\n      if (this.deferLoadId) {\n        PCore.getDeferLoadManager().stop(this.deferLoadId, this.pConn$.getContextName());\n      }\n    }\n    // this.cdRef.detectChanges();\n  }\n\n  loadActiveTab() {\n    if (this.resourceType === this.DATA) {\n      // Rendering defer loaded tabs in data context\n      if (this.containerName) {\n        const dataContext = PCore.getStoreValue('.dataContext', 'dataInfo', this.containerName);\n        const dataContextParameters = PCore.getStoreValue('.dataContextParameters', 'dataInfo', this.containerName);\n\n        this.pConn$\n          .getActionsApi()\n          .showData(this.name, dataContext, dataContextParameters, {\n            skipSemanticUrl: true,\n            // @ts-ignore - Object literal may only specify known properties, and 'isDeferLoaded' does not exist in type '{ containerName: string; skipSemanticUrl: boolean; }'\n            isDeferLoaded: true\n          })\n          .then(data => {\n            this.onResponse(data);\n          });\n      } else {\n        console.error('Cannot load the defer loaded view without container information');\n      }\n    } else if (this.resourceType === this.PAGE) {\n      if (!this.loadViewCaseID) return;\n\n      // Rendering defer loaded tabs in case/ page context\n      this.pConn$\n        .getActionsApi()\n        .loadView(encodeURI(this.loadViewCaseID), this.name, this.getViewOptions())\n        .then(data => {\n          this.onResponse(data);\n        });\n    } else {\n      this.pConn$\n        .getActionsApi()\n        .refreshCaseView(encodeURI(this.loadViewCaseID), this.name, '')\n        .then((data: any) => {\n          this.onResponse(data.root);\n        });\n    }\n  }\n}\n","<div *ngIf=\"childComponentPConnect\">\n  <component-mapper\n    [name]=\"childComponentPConnect.getComponentName()\"\n    [props]=\"{ pConn$: childComponentPConnect, formGroup$ }\"\n    errorMsg=\"Defer Load Missing: {{ childComponentPConnect.getComponentName() }}\"\n  ></component-mapper>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'app-error-boundary',\n  templateUrl: './error-boundary.component.html',\n  styleUrls: ['./error-boundary.component.scss'],\n  imports: [CommonModule]\n})\nexport class ErrorBoundaryComponent {\n  @Input() message: string;\n\n  localizedVal = window.PCore.getLocaleUtils().getLocaleValue;\n  localeCategory = 'Messages';\n}\n","<p>{{ localizedVal(message, localeCategory) }}</p>\n","function hasNotificationMessages(pConnect) {\n  return !!pConnect.getValue('caseMessages');\n}\n\nfunction isCaseWideLocalAction(pConnect) {\n  const { CASE_INFO } = PCore.getConstants();\n  const actionID = pConnect.getValue(CASE_INFO.ACTIVE_ACTION_ID);\n  const caseActions = pConnect.getValue(CASE_INFO.CASE_INFO_ACTIONS);\n  if (caseActions && actionID) {\n    const activeAction = caseActions.find(caseAction => caseAction.ID === actionID);\n    return activeAction?.type === 'Case';\n  }\n  return false;\n}\n\nfunction getChildCaseAssignments(pConnect) {\n  const childCases = pConnect.getValue(PCore.getConstants().CASE_INFO.CHILD_ASSIGNMENTS);\n  let allAssignments: any[] = [];\n  if (childCases && childCases.length > 0) {\n    childCases.forEach(({ assignments = [], Name }) => {\n      const childCaseAssignments = assignments.map((assignment: any) => ({\n        ...assignment,\n        caseName: Name\n      }));\n      allAssignments = allAssignments.concat(childCaseAssignments);\n    });\n  }\n  return allAssignments;\n}\n\nexport function hasAssignments(pConnect) {\n  const { CASE_INFO } = PCore.getConstants();\n  const assignments = pConnect.getValue(CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);\n  const childCasesAssignments = getChildCaseAssignments(pConnect);\n\n  return assignments?.length || childCasesAssignments?.length || isCaseWideLocalAction(pConnect);\n}\n\nexport const showBanner = getPConnect => {\n  const pConnect = getPConnect;\n  return hasNotificationMessages(pConnect) || !hasAssignments(pConnect);\n};\n\nfunction getActiveCaseActionName(pConnect) {\n  const caseActions = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ACTIONS);\n  const activeActionID = pConnect.getValue(PCore.getConstants().CASE_INFO.ACTIVE_ACTION_ID);\n  const activeAction = caseActions.find(action => action.ID === activeActionID);\n  return activeAction?.name || '';\n}\n\nfunction showTodo(pConnect) {\n  const caseViewMode = pConnect.getValue('context_data.caseViewMode');\n  return caseViewMode !== 'perform';\n}\n\nexport function getToDoAssignments(pConnect) {\n  const caseActions = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ACTIONS);\n  const assignmentLabel = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENT_LABEL);\n  const assignments = pConnect.getValue(PCore.getConstants().CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS) || [];\n  const childCasesAssignments = getChildCaseAssignments(pConnect) || [];\n  let childCasesAssignmentsCopy = JSON.parse(JSON.stringify(childCasesAssignments));\n\n  childCasesAssignmentsCopy = childCasesAssignmentsCopy.map(assignment => {\n    assignment.isChild = true;\n    return assignment;\n  });\n\n  const todoAssignments = [...assignments, ...childCasesAssignmentsCopy];\n  let todoAssignmentsCopy = JSON.parse(JSON.stringify(todoAssignments));\n\n  if (caseActions && !showTodo(pConnect)) {\n    todoAssignmentsCopy = todoAssignmentsCopy.map(assignment => {\n      assignment.name = getActiveCaseActionName(pConnect) || assignmentLabel;\n      return assignment;\n    });\n  }\n\n  return todoAssignmentsCopy;\n}\n","const processRootViewDetails = (rootView, containerItem, options) => {\n  const {\n    config: { context: viewContext, name: viewName }\n  } = rootView;\n  const { context: containerContext } = containerItem;\n  const { parentPConnect } = options;\n  let resolvedViewName = viewName;\n  let resolvedViewContext = viewContext;\n\n  const isAnnotedViewName = PCore.getAnnotationUtils().isProperty(viewName);\n  const isAnnotedViewContext = PCore.getAnnotationUtils().isProperty(viewContext);\n\n  // resolving annoted view context\n  if (isAnnotedViewContext) {\n    const viewContextProperty = PCore.getAnnotationUtils().getPropertyName(viewContext);\n    resolvedViewContext = PCore.getStoreValue(\n      `.${viewContextProperty}`,\n      viewContextProperty.startsWith('.') ? parentPConnect.getPageReference() : '',\n      containerContext\n    );\n  }\n\n  if (!resolvedViewContext) {\n    resolvedViewContext = parentPConnect.getPageReference();\n  }\n\n  // resolving annoted view name\n  if (isAnnotedViewName) {\n    const viewNameProperty = PCore.getAnnotationUtils().getPropertyName(viewName);\n    resolvedViewName = PCore.getStoreValue(`.${viewNameProperty}`, resolvedViewContext, containerContext);\n  }\n\n  /* Special case where context and viewname are dynamic values\n    Use case - split for each shape\n    Ex - (caseInfo.content.SCRequestWorkQueues[1]):context --> .pyViewName:viewName\n  */\n  if (isAnnotedViewName && isAnnotedViewContext && resolvedViewName !== '') {\n    /* Allow context processor to resolve view and context when both are dynamic */\n    resolvedViewName = viewName;\n    resolvedViewContext = viewContext;\n  }\n\n  return {\n    viewName: resolvedViewName,\n    viewContext: resolvedViewContext\n  };\n};\n\nexport const getPConnectOfActiveContainerItem = (containerInfo, options) => {\n  const { accessedOrder, items } = containerInfo;\n  const { isAssignmentView = false, parentPConnect } = options;\n  const containerName = parentPConnect.getContainerName();\n  const { CONTAINER_NAMES } = PCore.getContainerUtils();\n  const { CREATE_DETAILS_VIEW_NAME } = PCore.getConstants();\n\n  if (accessedOrder && items) {\n    const activeContainerItemKey = accessedOrder[accessedOrder.length - 1];\n\n    if (items[activeContainerItemKey] && items[activeContainerItemKey].view && Object.keys(items[activeContainerItemKey].view).length > 0) {\n      const activeContainerItem = items[activeContainerItemKey];\n      const target = activeContainerItemKey.substring(0, activeContainerItemKey.lastIndexOf('_'));\n\n      const { view: rootView, context } = activeContainerItem;\n      const { viewName, viewContext } = processRootViewDetails(rootView, activeContainerItem, { parentPConnect });\n\n      if (!viewName) return null;\n\n      const config = {\n        meta: rootView,\n        options: {\n          context,\n          pageReference: viewContext || parentPConnect.getPageReference(),\n          containerName,\n          containerItemID: activeContainerItemKey,\n          parentPageReference: parentPConnect.getPageReference(),\n          hasForm:\n            isAssignmentView ||\n            containerName === CONTAINER_NAMES.WORKAREA ||\n            containerName === CONTAINER_NAMES.MODAL ||\n            viewName === CREATE_DETAILS_VIEW_NAME,\n          target\n        }\n      };\n\n      return PCore.createPConnect(config).getPConnect();\n    }\n  }\n  return null;\n};\n","import { Injector } from '@angular/core';\nimport { getPConnectOfActiveContainerItem } from './helper';\nimport { AngularPConnectData, AngularPConnectService } from '../../../../_bridge/angular-pconnect';\n\nexport class FlowContainerBaseComponent {\n  // For interaction with AngularPConnect\n  protected angularPConnectData: AngularPConnectData = {};\n  protected angularPConnect;\n\n  constructor(injector: Injector) {\n    this.angularPConnect = injector.get(AngularPConnectService);\n  }\n\n  getPConnectOfActiveContainerItem(parentPConnect) {\n    const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n    const isAssignmentView = this.angularPConnect.getComponentProp(this, 'isAssignmentView');\n    return getPConnectOfActiveContainerItem(routingInfo, {\n      isAssignmentView,\n      parentPConnect\n    });\n  }\n}\n","import { Component, OnInit, Input, ChangeDetectorRef, NgZone, forwardRef, OnDestroy, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { ProgressSpinnerService } from '../../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../../reference/reference.component';\nimport { Utils } from '../../../../_helpers/utils';\nimport { getToDoAssignments, hasAssignments, showBanner } from './helpers';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\nimport { FlowContainerBaseComponent } from '../base-components/flow-container-base.component';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\ninterface FlowContainerProps {\n  // If any, enter additional props that only exist on this component\n  children?: any[];\n  name?: string;\n  routingInfo?: any;\n  pageMessages: any[];\n}\n\n@Component({\n  selector: 'app-flow-container',\n  templateUrl: './flow-container.component.html',\n  styleUrls: ['./flow-container.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatCardModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FlowContainerComponent extends FlowContainerBaseComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  pCoreConstants: typeof publicConstants;\n  configProps$: FlowContainerProps;\n\n  formGroup$: FormGroup;\n  arChildren$: any[];\n  itemKey$ = '';\n  containerName$: string;\n  buildName$: string;\n\n  // todo\n  todo_showTodo$ = false;\n  todo_caseInfoID$: string;\n  todo_showTodoList$ = false;\n  todo_datasource$: any;\n  todo_headerText$ = 'To do';\n  todo_type$: string;\n  todo_context$: string;\n  todo_pConn$: typeof PConnect;\n\n  bHasCancel = false;\n\n  // messages\n  caseMessages$: string;\n  bHasCaseMessages$ = false;\n  checkSvg$: string;\n  TODO: any;\n  bShowConfirm = false;\n  bShowBanner: boolean;\n  confirm_pconn: any;\n  localizedVal: any;\n  localeCategory = 'Messages';\n  localeReference: any;\n  banners: any[] = [];\n  // itemKey: string = \"\";   // JA - this is what Nebula/Constellation uses to pass to finishAssignment, navigateToStep\n\n  pConnectOfActiveContainerItem;\n  isMultiStep: any;\n\n  constructor(\n    injector: Injector,\n    private cdRef: ChangeDetectorRef,\n    private psService: ProgressSpinnerService,\n    private fb: FormBuilder,\n    private ngZone: NgZone,\n    private utils: Utils\n  ) {\n    super(injector);\n    // create the formGroup\n    this.formGroup$ = this.fb.group({ hideRequired: false });\n  }\n\n  ngOnInit() {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n    this.localeReference = this.pConn$?.getCaseLocaleReference();\n\n    // Then, continue on with other initialization\n\n    // get the PCore constants\n    this.pCoreConstants = PCore.getConstants();\n    const { TODO } = this.pCoreConstants;\n    this.TODO = TODO;\n    // with init, force children to be loaded of global pConn\n    this.initComponent(true);\n\n    this.initContainer();\n\n    this.checkAndUpdate();\n\n    PCore.getPubSubUtils().subscribe(\n      PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL,\n      () => {\n        this.handleCancel();\n      },\n      'cancelAssignment'\n    );\n\n    PCore.getPubSubUtils().subscribe(\n      'cancelPressed',\n      () => {\n        this.handleCancelPressed();\n      },\n      'cancelPressed'\n    );\n\n    PCore.getPubSubUtils().subscribe(\n      'clearBannerMessages',\n      () => {\n        this.banners = [];\n      },\n      'clearBannerMessages'\n    );\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n\n    PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, 'cancelAssignment');\n\n    PCore.getPubSubUtils().unsubscribe('cancelPressed', 'cancelPressed');\n\n    PCore.getPubSubUtils().unsubscribe('clearBannerMessages', 'clearBannerMessages');\n  }\n\n  handleCancel() {\n    // cancel happened, so ok to initialize the flow container\n    sessionStorage.setItem('okToInitFlowContainer', 'true');\n  }\n\n  handleCancelPressed() {\n    this.bHasCancel = true;\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    const pConn = this.pConnectOfActiveContainerItem || this.pConn$;\n    const caseViewModeFromProps = this.angularPConnect.getComponentProp(this, 'caseViewMode');\n    const caseViewModeFromRedux = pConn.getValue('context_data.caseViewMode', '');\n\n    const completeProps = this.angularPConnect.getCurrentCompleteProps(this) as FlowContainerProps;\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n\n    if (bUpdateSelf || caseViewModeFromProps !== caseViewModeFromRedux) {\n      // don't want to redraw the flow container when there are page messages, because\n      // the redraw causes us to loose the errors on the elements\n      if (!completeProps.pageMessages || completeProps.pageMessages.length == 0) {\n        // with a cancel, need to timeout so todo will update correctly\n        if (this.bHasCancel) {\n          this.bHasCancel = false;\n          setTimeout(() => {\n            this.updateSelf();\n          }, 500);\n        } else {\n          this.updateSelf();\n        }\n      }\n    }\n\n    this.showPageMessages(completeProps);\n  }\n\n  showPageMessages(completeProps: FlowContainerProps) {\n    this.ngZone.run(() => {\n      const pageMessages = completeProps.pageMessages;\n      this.banners = [{ messages: pageMessages?.map(msg => this.localizedVal(msg.message, 'Messages')), variant: 'urgent' }];\n    });\n  }\n\n  getTodoVisibilty() {\n    const caseViewMode = this.pConn$.getValue('context_data.caseViewMode');\n    if (caseViewMode && caseViewMode === 'review') {\n      const kid = this.pConn$.getChildren()[0];\n      const todoKid = kid.getPConnect().getChildren()[0];\n\n      this.todo_pConn$ = todoKid?.getPConnect();\n\n      return !!this.todo_pConn$;\n    }\n\n    return !(caseViewMode && caseViewMode === 'perform');\n  }\n\n  initContainer() {\n    const containerMgr = this.pConn$.getContainerManager();\n    const baseContext = this.pConn$.getContextName();\n    const containerName = this.pConn$.getContainerName();\n    const containerType = 'single';\n\n    const flowContainerTarget = `${baseContext}/${containerName}`;\n    const isContainerItemAvailable = PCore.getContainerUtils().getActiveContainerItemName(flowContainerTarget);\n\n    // clear out since we are initializing\n    sessionStorage.setItem('okToInitFlowContainer', 'false');\n\n    if (!isContainerItemAvailable) {\n      containerMgr.initializeContainers({\n        type: containerType\n      });\n\n      /* remove commented out code when update React/WC\n       *** instead of getting values here to pass to addContainerItem, we call the function below \"addContainerItem\"\n       *** which comes from flow container helpers in Nebula\n       */\n      // containerMgr.addContainerItem({\n      //   semanticURL: \"\",\n      //   key: this.pConn$.getValue(\"key\"),\n      //   flowName: this.pConn$.getValue(\"flowName\"),\n      //   caseViewMode: \"perform\",\n      //   data: this.pConn$.getDataObject(baseContext),\n      //   containerType\n      // });\n\n      this.addContainerItem(this.pConn$);\n    }\n  }\n\n  initComponent(bLoadChildren: boolean) {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as FlowContainerProps;\n    this.showPageMessages(this.configProps$);\n\n    // when true, update arChildren from pConn, otherwise, arChilren will be updated in updateSelf()\n    if (bLoadChildren) {\n      this.arChildren$ = this.pConn$.getChildren();\n    }\n\n    // const oData = this.pConn$.getDataObject();\n\n    // const activeActionLabel: string = '';\n    // const { getPConnect } = this.arChildren$[0].getPConnect();\n\n    this.todo_showTodo$ = this.getTodoVisibilty();\n\n    // create pointers to functions\n    // const containerMgr = this.pConn$.getContainerManager();\n    // const actionsAPI = this.pConn$.getActionsApi();\n    const baseContext = this.pConn$.getContextName();\n    const acName = this.pConn$.getContainerName();\n\n    if (this.itemKey$ === '') {\n      this.itemKey$ = baseContext.concat('/').concat(acName);\n    }\n\n    this.pConn$.isBoundToState();\n\n    // inside\n    // get fist kid, get the name and display\n    // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.\n    const oWorkItem = this.arChildren$[0].getPConnect();\n    // const oWorkMeta = oWorkItem.getRawMetadata();\n    const oWorkData = oWorkItem.getDataObject();\n\n    // this.containerName$ = oWorkMeta[\"name\"];\n    if (bLoadChildren && oWorkData) {\n      this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments?.[0].name, undefined, this.localeReference);\n      this.isMultiStep = this.utils.getBooleanValue(oWorkData.caseInfo.assignments?.[0].isMultiStep);\n    }\n\n    // turn off spinner\n    this.psService.sendMessage(false);\n  }\n\n  isCaseWideLocalAction() {\n    const actionID = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.ACTIVE_ACTION_ID);\n    const caseActions = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.AVAILABLEACTIONS);\n    let bCaseWideAction = false;\n    if (caseActions && actionID) {\n      const actionObj = caseActions.find(caseAction => caseAction.ID === actionID);\n      if (actionObj) {\n        bCaseWideAction = actionObj.type === 'Case';\n      }\n    }\n    return bCaseWideAction;\n  }\n\n  hasChildCaseAssignments() {\n    const childCases = this.pConn$.getValue(this.pCoreConstants.CASE_INFO.CHILD_ASSIGNMENTS);\n\n    return childCases && childCases.length > 0;\n  }\n\n  getActiveViewLabel() {\n    let activeActionLabel = '';\n\n    const { CASE_INFO: CASE_CONSTS } = PCore.getConstants();\n\n    const caseActions = this.pConn$.getValue(CASE_CONSTS.CASE_INFO_ACTIONS) as any[];\n    const activeActionID = this.pConn$.getValue(CASE_CONSTS.ACTIVE_ACTION_ID);\n    const activeAction = caseActions?.find(action => action.ID === activeActionID);\n    if (activeAction) {\n      activeActionLabel = activeAction.name;\n    }\n    return activeActionLabel;\n  }\n\n  findCurrentIndicies(arStepperSteps: any[], arIndicies: number[], depth: number): number[] {\n    let count = 0;\n    arStepperSteps.forEach(step => {\n      if (step.visited_status == 'current') {\n        arIndicies[depth] = count;\n\n        // add in\n        step.step_status = '';\n      } else if (step.visited_status == 'success') {\n        count++;\n        step.step_status = 'completed';\n      } else {\n        count++;\n        step.step_status = '';\n      }\n\n      if (step.steps) {\n        arIndicies = this.findCurrentIndicies(step.steps, arIndicies, depth + 1);\n      }\n    });\n\n    return arIndicies;\n  }\n\n  // Called when bridge shouldComponentUpdate indicates that this component\n  // should update itself (re-render)\n  updateSelf() {\n    // for now\n    // const { getPConnect } = this.arChildren$[0].getPConnect();\n    const localPConn = this.arChildren$[0].getPConnect();\n\n    this.pConnectOfActiveContainerItem = this.getPConnectOfActiveContainerItem(this.pConn$) || this.pConn$;\n\n    const caseViewMode = this.pConnectOfActiveContainerItem.getValue('context_data.caseViewMode');\n    this.bShowBanner = showBanner(this.pConn$);\n\n    if (caseViewMode && caseViewMode == 'review') {\n      this.loadReviewPage(localPConn);\n\n      // in Nebula/Constellation, when cancel is called, somehow the constructor for flowContainer is called which\n      // does init/add of containers.  This mimics that\n      if (sessionStorage.getItem('okToInitFlowContainer') == 'true') {\n        this.initContainer();\n      }\n    } else if (caseViewMode && caseViewMode === 'perform') {\n      // perform\n      this.todo_showTodo$ = false;\n\n      // this is different than Angular SDK, as we need to initContainer if root container reloaded\n      if (sessionStorage.getItem('okToInitFlowContainer') == 'true') {\n        this.initContainer();\n      }\n    }\n\n    // if have caseMessage show message and end\n    this.showCaseMessages();\n\n    this.updateFlowContainerChildren();\n  }\n\n  loadReviewPage(localPConn) {\n    const { CASE_INFO: CASE_CONSTS } = PCore.getConstants();\n\n    setTimeout(() => {\n      this.ngZone.run(() => {\n        /*\n          *** renove this commmented out code when React/WC is updated\n          *** this code is replace with the call to \"getToDoAssigments\" function below\n\n          const assignmentsList = localPConn.getValue(\n            CASE_CONSTS.D_CASE_ASSIGNMENTS_RESULTS\n          );\n                  // add status\n          const status = localPConn.getValue(\"caseInfo.status\");\n\n          let localAssignment = JSON.parse(JSON.stringify(assignmentsList[0]));\n          localAssignment.status = status;\n          let locaAssignmentsList: Array<any> = [];\n          locaAssignmentsList.push(localAssignment);\n\n          const caseActions = localPConn.getValue(CASE_CONSTS.CASE_INFO_ACTIONS);\n          */\n\n        const todoAssignments = getToDoAssignments(this.pConn$);\n\n        if (todoAssignments && todoAssignments.length > 0) {\n          this.todo_caseInfoID$ = this.pConn$.getValue(CASE_CONSTS.CASE_INFO_ID);\n          this.todo_datasource$ = { source: todoAssignments };\n        }\n\n        /* remove this commented out code when update React/WC */\n        // let kid = this.pConn$.getChildren()[0];\n\n        // kid.getPConnect() can be a Reference component. So normalize it just in case\n        //        let todoKid = ReferenceComponent.normalizePConn(kid.getPConnect()).getChildren()[0];\n\n        //        this.todo_pConn$ = todoKid.getPConnect();\n\n        /* code change here to note for React/WC  */\n        // todo now needs pConn to open the work item on click \"go\"\n        this.todo_pConn$ = this.pConn$;\n\n        // still needs the context of the original work item\n        this.todo_context$ = localPConn.getContextName();\n\n        this.todo_showTodo$ = true;\n\n        this.psService.sendMessage(false);\n      });\n    });\n  }\n\n  showCaseMessages() {\n    this.caseMessages$ = this.localizedVal(this.pConn$.getValue('caseMessages'), this.localeCategory);\n    // caseMessages's behavior has changed in 24.2, and hence it doesn't let Optional Action work.\n    // Changing the below condition for now. Was: (theCaseMessages || !hasAssignments())\n    if (!hasAssignments(this.pConn$)) {\n      this.bHasCaseMessages$ = true;\n      this.bShowConfirm = true;\n      this.checkSvg$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());\n      // Temp fix for 8.7 change: confirmationNote no longer coming through in caseMessages$.\n      // So, if we get here and caseMessages$ is empty, use default value in DX API response\n      if (!this.caseMessages$) {\n        this.caseMessages$ = this.localizedVal('Thank you! The next step in this case has been routed appropriately.', this.localeCategory);\n      }\n\n      this.psService.sendMessage(false);\n    } else {\n      this.bHasCaseMessages$ = false;\n      this.bShowConfirm = false;\n    }\n  }\n\n  updateFlowContainerChildren() {\n    // routingInfo was added as component prop in populateAdditionalProps\n    const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n    this.confirm_pconn = null;\n\n    let loadingInfo: any;\n    try {\n      // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'\n      loadingInfo = this.pConn$.getLoadingStatus();\n    } catch (ex) {\n      console.log(ex);\n    }\n\n    // this check in routingInfo, mimic Nebula/Constellation (React) to check and get the internals of the\n    // flowContainer and force updates to pConnect/redux\n    if (routingInfo && loadingInfo !== undefined) {\n      const currentOrder = routingInfo.accessedOrder;\n      const currentItems = routingInfo.items;\n      const type = routingInfo.type;\n      if (currentOrder && currentItems) {\n        // JA - making more similar to Nebula/Constellation\n        const key = currentOrder[currentOrder.length - 1];\n\n        // save off itemKey to be used for finishAssignment, etc.\n        // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError\n        setTimeout(() => {\n          if (key && key != '') {\n            this.itemKey$ = key;\n            this.cdRef.detectChanges();\n          }\n        });\n\n        if (currentOrder.length > 0) {\n          if (currentItems[key] && currentItems[key].view && type === 'single' && Object.keys(currentItems[key].view).length > 0) {\n            // when we get here, it it because the flow action data has changed\n            // from the server, and need to add to pConnect and update children\n\n            this.addPConnectAndUpdateChildren(currentItems[key], key);\n          }\n        }\n      }\n    }\n  }\n\n  addPConnectAndUpdateChildren(currentItem, key) {\n    const localPConn = this.arChildren$[0].getPConnect();\n\n    const rootView = currentItem.view;\n    const { context, name: ViewName } = rootView.config;\n    const config: any = { meta: rootView };\n\n    // Don't go ahead if View doesn't exist\n    if (!ViewName) {\n      return;\n    }\n\n    this.todo_context$ = currentItem.context;\n\n    config.options = {\n      context: currentItem.context,\n      pageReference: context || localPConn.getPageReference(),\n      hasForm: true,\n      isFlowContainer: true,\n      containerName: localPConn.getContainerName(),\n      containerItemName: key,\n      parentPageReference: localPConn.getPageReference()\n    };\n\n    const configObject = PCore.createPConnect(config);\n    this.confirm_pconn = configObject.getPConnect();\n    // 8.7 - config might be a Reference component so, need to normalize it to get\n    //  the View if it is a Reference component. And need to pass in the getPConnect\n    //  to have normalize do a c11Env createComponent (that makes sure options.hasForm\n    //  is passed along to all the component's children)\n    const normalizedConfigObject = ReferenceComponent.normalizePConn(configObject.getPConnect());\n    // We want the children to be the PConnect itself, not the result of calling getPConnect(),\n    //  So need to get the PConnect of the normalized component we just created...\n    const normalizedConfigObjectAsPConnect = normalizedConfigObject.getComponent();\n\n    // makes sure Angular tracks these changes\n    this.ngZone.run(() => {\n      this.buildName$ = this.getBuildName();\n      // what comes back now in configObject is the children of the flowContainer\n\n      this.arChildren$ = [];\n      this.arChildren$.push(normalizedConfigObjectAsPConnect);\n\n      this.psService.sendMessage(false);\n\n      const oWorkItem = configObject.getPConnect();\n      const oWorkData: any = oWorkItem.getDataObject();\n\n      this.containerName$ = this.localizedVal(\n        this.getActiveViewLabel() || oWorkData.caseInfo.assignments?.[0]?.name,\n        undefined,\n        this.localeReference\n      );\n    });\n  }\n\n  getBuildName(): string {\n    // let { getPConnect, name } = this.pConn$.props;\n    const context = this.pConn$.getContextName();\n    let viewContainerName = this.pConn$.getContainerName();\n\n    if (!viewContainerName) viewContainerName = '';\n    return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;\n  }\n\n  formValid(): boolean {\n    this.touchAll();\n    return this.formGroup$.valid;\n  }\n\n  touchAll(): void {\n    Object.values(this.formGroup$.controls).forEach(control => {\n      control.markAsTouched();\n    });\n  }\n\n  topViewRefresh(): void {\n    Object.values(this.formGroup$.controls).forEach(control => {\n      control.markAsTouched();\n    });\n  }\n\n  // helpers - copyied from flow container helpers.js\n\n  addContainerItem(pConnect) {\n    // copied from flow container helper.js\n    const containerManager = pConnect.getContainerManager();\n    const contextName = pConnect.getContextName(); // here we will get parent context name, as flow container is child of view container\n    const caseViewMode = pConnect.getValue('context_data.caseViewMode');\n\n    let key;\n    let flowName;\n\n    if (caseViewMode !== 'review') {\n      const target = contextName.substring(0, contextName.lastIndexOf('_'));\n      const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(target);\n      const containerItemData = PCore.getContainerUtils().getContainerItemData(target, activeContainerItemID);\n\n      if (containerItemData) {\n        ({ key, flowName } = containerItemData);\n      }\n    }\n\n    containerManager.addContainerItem({\n      semanticURL: '',\n      key,\n      flowName,\n      caseViewMode: 'perform',\n      resourceType: 'ASSIGNMENT',\n      data: pConnect.getDataObject(contextName)\n    });\n  }\n  // helpers end\n}\n","<div style=\"text-align: left\" class=\"psdk-flow-container-top\">\n  <div *ngIf=\"!bShowConfirm\">\n    <div *ngIf=\"!todo_showTodo$\">\n      <h2 *ngIf=\"!isMultiStep\">{{ containerName$ }}</h2>\n      <div *ngIf=\"banners.length\">\n        <component-mapper name=\"AlertBanner\" [props]=\"{ banners }\"></component-mapper>\n      </div>\n    </div>\n    <div *ngIf=\"todo_showTodo$\">\n      <component-mapper\n        *ngIf=\"pConnectOfActiveContainerItem\"\n        name=\"Todo\"\n        [props]=\"{\n          pConn$: pConnectOfActiveContainerItem,\n          caseInfoID$: todo_caseInfoID$,\n          datasource$: todo_datasource$,\n          showTodoList$: todo_showTodoList$,\n          headerText$: todo_headerText$,\n          type$: 'TODO',\n          context$: todo_context$,\n          isConfirm: true\n        }\"\n      ></component-mapper>\n    </div>\n    <div *ngIf=\"!todo_showTodo$\">\n      <component-mapper\n        *ngIf=\"pConnectOfActiveContainerItem\"\n        name=\"Assignment\"\n        [props]=\"{ pConn$: pConnectOfActiveContainerItem, formGroup$, arChildren$, itemKey$ }\"\n      ></component-mapper>\n    </div>\n  </div>\n  <div *ngIf=\"bHasCaseMessages$\">\n    <mat-card class=\"psdk-message-card\">\n      <div style=\"display: flex; flex-direction: row; align-items: center\">\n        <div><img class=\"psdk-icon\" src=\"{{ checkSvg$ }}\" /></div>\n        <div>{{ caseMessages$ }}</div>\n      </div>\n    </mat-card>\n  </div>\n  <div *ngIf=\"bShowBanner && bShowConfirm && confirm_pconn\">\n    <component-mapper name=\"View\" [props]=\"{ formGroup$, pConn$: confirm_pconn }\"></component-mapper>\n  </div>\n</div>\n","/**\n * Function that accepts array of messages as input and group them by their type and returns the resulting object\n * @param {Array} inputMessages\n * Eg: [\n * {message: 'First Name is required', type: 'error'},\n * {message: 'Last Name is required', type: 'error'},\n * {message: 'Address field should be clear and precise', type: 'info'}\n * ]\n *\n * @returns {object}\n *\n * Eg: {\n *  error: ['First Name is required', 'Last Name is required'],\n *  info: ['Address field should be clear and precise']\n * }\n */\n\nfunction getMessagesGrouped(inputMessages) {\n  const messages = {};\n\n  if (inputMessages && inputMessages instanceof Array && inputMessages.length > 0) {\n    inputMessages.forEach(item => {\n      const { message, type } = item;\n      messages[type] = [...(messages[type] || []), message];\n    });\n  }\n  return messages;\n}\n\n/**\n * Function accepts a error type and variant of the banner\n * @param {string} type\n * Eg: 'error'\n * @returns {string}\n * Eg: 'urgent'\n */\nfunction getVariant(type) {\n  const { BANNER_VARIANT_SUCCESS, BANNER_VARIANT_INFO, BANNER_VARIANT_URGENT, MESSAGES } = PCore.getConstants();\n  const { MESSAGES_TYPE_ERROR, MESSAGES_TYPE_INFO, MESSAGES_TYPE_SUCCESS } = MESSAGES;\n\n  let variant;\n  switch (type) {\n    case MESSAGES_TYPE_ERROR:\n      variant = BANNER_VARIANT_URGENT;\n      break;\n    case MESSAGES_TYPE_INFO:\n      variant = BANNER_VARIANT_INFO;\n      break;\n    case MESSAGES_TYPE_SUCCESS:\n      variant = BANNER_VARIANT_SUCCESS;\n      break;\n    default:\n      variant = '';\n  }\n  return variant;\n}\n\nfunction getBanners(config) {\n  const { target, pageMessages, httpMessages } = config;\n  const { PAGE } = PCore.getConstants();\n  // const { clearMessages } = PCore.getMessageManager();\n  const banners: any = [];\n  const groupedPageMessages = getMessagesGrouped(pageMessages);\n\n  Object.keys(groupedPageMessages).forEach(type => {\n    const messagesByType = groupedPageMessages[type];\n    const variant = getVariant(type);\n    const pageMessagesBannerID = `${target}_${PAGE}_${type}`.toLowerCase().replace('/', '_');\n    banners.push({ id: pageMessagesBannerID, messages: messagesByType, variant, PAGE, type, target });\n  });\n\n  if (httpMessages && httpMessages.length > 0) {\n    banners.push({ id: 'modalViewContainerBanner', messages: httpMessages, variant: 'urgent' });\n  }\n\n  return banners;\n}\n\nexport { getMessagesGrouped, getBanners };\n","import { Component, OnInit, Input, Output, EventEmitter, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport isEqual from 'fast-deep-equal';\nimport { AngularPConnectData, AngularPConnectService } from '../../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../../_messages/progress-spinner.service';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\nimport { getBanners } from '../../../../_helpers/case-utils';\nimport { ReferenceComponent } from '../../reference/reference.component';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\n@Component({\n  selector: 'app-modal-view-container',\n  templateUrl: './modal-view-container.component.html',\n  styleUrls: ['./modal-view-container.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ModalViewContainerComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // for when non modal\n  @Output() modalVisibleChange = new EventEmitter<boolean>();\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  arChildren$: any[];\n  stateProps$: object;\n  banners: any;\n  templateName$: string;\n  buildName$: string;\n  context$: string;\n  title$ = '';\n  bShowModal$ = false;\n  itemKey$: string;\n  formGroup$: FormGroup;\n  oCaseInfo: object = {};\n\n  // for causing a change on assignment\n  updateToken$ = 0;\n\n  routingInfoRef: any = {};\n\n  // created object is now a View with a Template\n  //  Use its PConnect to render the CaseView; DON'T replace this.pConn$\n  createdViewPConn$: any;\n\n  bSubscribed = false;\n  cancelPConn$?: typeof PConnect;\n  bShowCancelAlert$ = false;\n  bAlertState: boolean;\n  localizedVal: Function;\n  localeCategory = 'Data Object';\n  isMultiRecord = false;\n  actionsDialog = false;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private ngZone: NgZone,\n    private psService: ProgressSpinnerService,\n    private fb: FormBuilder\n  ) {\n    // create the formGroup\n    this.formGroup$ = fb.group({ hideRequired: false });\n  }\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    const baseContext = this.pConn$.getContextName();\n    const acName = this.pConn$.getContainerName();\n\n    // for now, in general this should be overridden by updateSelf(), and not be blank\n    if (this.itemKey$ === '') {\n      this.itemKey$ = baseContext.concat('/').concat(acName);\n    }\n\n    const containerMgr = this.pConn$.getContainerManager();\n\n    containerMgr.initializeContainers({\n      type: 'multiple'\n    });\n\n    // const { CONTAINER_TYPE, PUB_SUB_EVENTS } = PCore.getConstants();\n\n    this.angularPConnect.shouldComponentUpdate(this);\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n\n    const { PUB_SUB_EVENTS } = PCore.getConstants();\n\n    PCore.getPubSubUtils().unsubscribe(\n      PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT,\n      PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT /* Should be same unique string passed during subscription */\n    );\n    this.bSubscribed = false;\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    } else if (this.bShowModal$) {\n      // right now onlu get one updated when initial diaplay.  So, once modal is up\n      // let fall through and do a check with \"compareCaseInfoIsDifferent\" until fixed\n      // this.updateSelf();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    // routingInfo was added as component prop in populateAdditionalProps\n    const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n    this.routingInfoRef.current = routingInfo;\n\n    let loadingInfo;\n    try {\n      // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'\n      loadingInfo = this.pConn$.getLoadingStatus();\n    } catch (ex) {\n      console.log(ex);\n    }\n    // const configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    this.stateProps$ = this.pConn$.getStateProps();\n    this.banners = this.getBanners();\n\n    if (!loadingInfo) {\n      // turn off spinner\n      // this.psService.sendMessage(false);\n    }\n\n    if (routingInfo && !loadingInfo /* && this.bUpdate */) {\n      const currentOrder = routingInfo.accessedOrder;\n\n      if (undefined == currentOrder) {\n        return;\n      }\n\n      const currentItems = routingInfo.items;\n\n      const { key, latestItem } = this.getKeyAndLatestItem(routingInfo);\n\n      if (currentOrder.length > 0) {\n        if (currentItems[key] && currentItems[key].view && Object.keys(currentItems[key].view).length > 0) {\n          const currentItem = currentItems[key];\n          const rootView = currentItem.view;\n          const { context } = rootView.config;\n          const config: any = { meta: rootView };\n          config.options = {\n            context: currentItem.context,\n            hasForm: true,\n            pageReference: context || this.pConn$.getPageReference()\n          };\n\n          if (!this.bSubscribed) {\n            this.bSubscribed = true;\n            const { PUB_SUB_EVENTS } = PCore.getConstants();\n            PCore.getPubSubUtils().subscribe(\n              PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT,\n              payload => {\n                this.showAlert(payload);\n              },\n              PUB_SUB_EVENTS.EVENT_SHOW_CANCEL_ALERT\n            );\n          }\n\n          // let configObject = PCore.createPConnect(config);\n\n          // THIS is where the ViewContainer creates a View\n          // The config has meta.config.type = \"view\"\n          this.createView(routingInfo, currentItem, latestItem, key);\n        }\n      } else {\n        this.hideModal();\n      }\n    }\n  }\n\n  createView(routingInfo, currentItem, latestItem, key) {\n    const configObject = this.getConfigObject(currentItem, null, false);\n    const newComp = configObject?.getPConnect();\n    // const newCompName = newComp.getComponentName();\n    const caseInfo = newComp && newComp.getDataObject() && newComp.getDataObject().caseInfo ? newComp.getDataObject().caseInfo : null;\n    // The metadata for pyDetails changed such that the \"template\": \"CaseView\"\n    //  is no longer a child of the created View but is in the created View's\n    //  config. So, we DON'T want to replace this.pConn$ since the created\n    //  component is a View (and not a ViewContainer). We now look for the\n    //  \"template\" type directly in the created component (newComp) and NOT\n    //  as a child of the newly created component.\n    // console.log(`---> ModalViewContainer created new ${newCompName}`);\n\n    // Use the newly created component (View) info but DO NOT replace\n    //  this ModalViewContainer's pConn$, etc.\n    //  Note that we're now using the newly created View's PConnect in the\n    //  ViewContainer HTML template to guide what's rendered similar to what\n    //  the Nebula/Constellation return of React.Fragment does\n\n    // right now need to check caseInfo for changes, to trigger redraw, not getting\n    // changes from angularPconnect except for first draw\n    if (newComp && caseInfo && this.compareCaseInfoIsDifferent(caseInfo)) {\n      this.psService.sendMessage(false);\n\n      this.ngZone.run(() => {\n        this.createdViewPConn$ = newComp;\n        const newConfigProps = newComp.getConfigProps();\n        this.templateName$ = 'template' in newConfigProps ? (newConfigProps.template as string) : '';\n\n        const { actionName } = latestItem;\n        const theNewCaseInfo = newComp.getCaseInfo();\n        // const caseName = theNewCaseInfo.getName();\n        const ID = theNewCaseInfo.getBusinessID() || theNewCaseInfo.getID();\n\n        const caseTypeName = theNewCaseInfo.getCaseTypeName();\n        const isDataObject = routingInfo.items[latestItem.context].resourceType === PCore.getConstants().RESOURCE_TYPES.DATA;\n        const dataObjectAction = routingInfo.items[latestItem.context].resourceStatus;\n        this.isMultiRecord = routingInfo.items[latestItem.context].isMultiRecordData;\n        this.context$ = latestItem.context;\n        this.title$ =\n          isDataObject || this.isMultiRecord\n            ? this.getModalHeading(dataObjectAction)\n            : this.determineModalHeaderByAction(actionName, caseTypeName, ID, this.createdViewPConn$?.getCaseLocaleReference());\n\n        const bIsRefComponent = this.checkIfRefComponent(newComp);\n\n        if (bIsRefComponent) {\n          const newPConn = ReferenceComponent.normalizePConn(newComp);\n          this.arChildren$ = ReferenceComponent.normalizePConnArray(newPConn.getChildren());\n        } else {\n          // update children with new view's children\n          this.arChildren$ = newComp.getChildren();\n        }\n\n        this.bShowModal$ = true;\n\n        // for when non modal\n        this.modalVisibleChange.emit(this.bShowModal$);\n\n        // save off itemKey to be used for finishAssignment, etc.\n        this.itemKey$ = key;\n\n        // cause a change for assignment\n        this.updateToken$ = new Date().getTime();\n      });\n    }\n  }\n\n  hideModal() {\n    if (this.bShowModal$) {\n      // other code in Nebula/Constellation not needed currently, but if so later,\n      // should put here\n    }\n\n    this.ngZone.run(() => {\n      this.bShowModal$ = false;\n\n      // for when non modal\n      this.modalVisibleChange.emit(this.bShowModal$);\n\n      this.oCaseInfo = {};\n    });\n  }\n\n  getConfigObject(item, pConnect, isReverseCoexistence = false) {\n    let config;\n    if (isReverseCoexistence) {\n      config = {\n        options: {\n          pageReference: pConnect?.getPageReference(),\n          hasForm: true,\n          containerName: pConnect?.getContainerName() || PCore.getConstants().MODAL\n        }\n      };\n      return PCore.createPConnect(config);\n    }\n    if (item) {\n      const { context, view, isBulkAction } = item;\n      const target = PCore.getContainerUtils().getTargetFromContainerItemID(context);\n      config = {\n        meta: view,\n        options: {\n          context,\n          pageReference: view.config.context || pConnect.getPageReference(),\n          hasForm: true,\n          ...(isBulkAction && { isBulkAction }),\n          containerName: pConnect?.getContainerName() || PCore.getConstants().MODAL,\n          target\n        }\n      };\n      return PCore.createPConnect(config);\n    }\n    return null;\n  }\n\n  checkIfRefComponent(thePConn: any): boolean {\n    let bReturn = false;\n    if (thePConn && thePConn.getComponentName() == 'reference') {\n      bReturn = true;\n    }\n\n    return bReturn;\n  }\n\n  onAlertState(bData: boolean) {\n    this.bAlertState = bData;\n    this.bShowCancelAlert$ = false;\n    if (this.bAlertState) {\n      this.hideModal();\n    }\n  }\n\n  showAlert(payload) {\n    const { latestItem } = this.getKeyAndLatestItem(this.routingInfoRef.current);\n    const { isModalAction } = payload;\n\n    /*\n      If we are in create stage full page mode, created a new case and trying to click on cancel button\n      it will show two alert dialogs which is not expected. Hence isModalAction flag to avoid that.\n    */\n    if (latestItem && isModalAction && !this.actionsDialog) {\n      const configObject = this.getConfigObject(latestItem, this.pConn$);\n      this.ngZone.run(() => {\n        this.cancelPConn$ = configObject?.getPConnect();\n        this.bShowCancelAlert$ = true;\n      });\n    }\n  }\n\n  hasContainerItems(routingInfo) {\n    if (routingInfo) {\n      const { accessedOrder, items } = routingInfo;\n      return accessedOrder && accessedOrder.length > 0 && items;\n    }\n    return false;\n  }\n\n  getKeyAndLatestItem(routinginfo) {\n    if (this.hasContainerItems(routinginfo)) {\n      const { accessedOrder, items } = routinginfo;\n      const key = accessedOrder[accessedOrder.length - 1];\n      const latestItem = items[key];\n      return { key, latestItem };\n    }\n    return {};\n  }\n\n  compareCaseInfoIsDifferent(oCurrentCaseInfo: object): boolean {\n    let bRet = false;\n\n    // fast-deep-equal version\n    if (isEqual !== undefined) {\n      bRet = !isEqual(this.oCaseInfo, oCurrentCaseInfo);\n    } else {\n      const sCurrnentCaseInfo = JSON.stringify(oCurrentCaseInfo);\n      const sOldCaseInfo = JSON.stringify(this.oCaseInfo);\n      // stringify compare version\n      if (sCurrnentCaseInfo != sOldCaseInfo) {\n        bRet = true;\n      }\n    }\n\n    // if different, save off new case info\n    if (bRet) {\n      this.oCaseInfo = JSON.parse(JSON.stringify(oCurrentCaseInfo));\n    }\n\n    return bRet;\n  }\n\n  getBanners() {\n    return getBanners({ target: this.itemKey$, ...this.stateProps$ });\n  }\n\n  getModalHeading(dataObjectAction) {\n    return dataObjectAction === PCore.getConstants().RESOURCE_STATUS.CREATE\n      ? this.localizedVal('Add Record', this.localeCategory)\n      : this.localizedVal('Edit Record', this.localeCategory);\n  }\n\n  determineModalHeaderByAction(actionName, caseTypeName, ID, caseLocaleRef) {\n    if (actionName) {\n      return this.localizedVal(actionName, this.localeCategory);\n    }\n    return `${this.localizedVal('Create', this.localeCategory)} ${this.localizedVal(caseTypeName, undefined, caseLocaleRef)} (${ID})`;\n  }\n\n  closeActionsDialog = () => {\n    this.actionsDialog = true;\n    // this.ngZone.run(() => {\n    this.bShowModal$ = false;\n\n    // for when non modal\n    this.modalVisibleChange.emit(this.bShowModal$);\n\n    this.oCaseInfo = {};\n    // });\n  };\n}\n","<div id=\"dialog\" *ngIf=\"bShowModal$\" class=\"psdk-dialog-background\">\n  <div class=\"psdk-modal-view-container-top\" id=\"{{ buildName$ }}\">\n    <h3 *ngIf=\"title$ != ''\">{{ title$ }}</h3>\n    <component-mapper\n      name=\"Assignment\"\n      [props]=\"{ pConn$: createdViewPConn$, formGroup$, arChildren$, itemKey$, isCreateStage$: true, updateToken$, isInModal$: true, banners }\"\n    ></component-mapper>\n    <div *ngIf=\"isMultiRecord\">\n      <component-mapper\n        name=\"ListViewActionButtons\"\n        [props]=\"{ pConn$: createdViewPConn$, context$ }\"\n        [outputEvents]=\"{ closeActionsDialog: closeActionsDialog }\"\n      ></component-mapper>\n    </div>\n  </div>\n</div>\n\n<div *ngIf=\"bShowCancelAlert$\">\n  <component-mapper\n    name=\"CancelAlert\"\n    [props]=\"{ bShowAlert$: bShowCancelAlert$, pConn$: cancelPConn$ }\"\n    [parent]=\"this\"\n    [outputEvents]=\"{ onAlertState$: onAlertState }\"\n  ></component-mapper>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-multi-step',\n  templateUrl: './multi-step.component.html',\n  styleUrls: ['./multi-step.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MultiStepComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() arMainButtons$: any[];\n  @Input() arSecondaryButtons$: any[];\n  @Input() arChildren$: any[];\n  @Input() bIsVertical$: boolean;\n  @Input() arCurrentStepIndicies$: number[];\n  @Input() arNavigationSteps$: any[];\n  @Output() actionButtonClick: EventEmitter<any> = new EventEmitter();\n\n  svgCurrent$: string;\n  svgNotCurrent$: string;\n  bShow$ = true;\n\n  constructor(private utils: Utils) {}\n\n  ngOnInit(): void {\n    // svg icons\n    this.svgCurrent$ = this.utils.getImageSrc('circle-solid', this.utils.getSDKStaticContentUrl());\n    this.svgNotCurrent$ = this.utils.getImageSrc('circle-solid', this.utils.getSDKStaticContentUrl());\n  }\n\n  onActionButtonClick(oData: any) {\n    this.actionButtonClick.emit(oData);\n  }\n\n  _getVIconClass(status): string {\n    if (status == 'current') {\n      return 'psdk-vertical-step-icon-selected';\n    }\n\n    return 'psdk-vertical-step-icon';\n  }\n\n  _getVLabelClass(status): string {\n    if (status == 'current') {\n      return 'psdk-vertical-step-label-selected';\n    }\n\n    return 'psdk-vertical-step-label';\n  }\n\n  _getVBodyClass(index: number): string {\n    if (index < this.arNavigationSteps$.length - 1) {\n      return 'psdk-vertical-step-body psdk-vertical-step-line';\n    }\n\n    return 'psdk-vertical-step-body';\n  }\n\n  _getHIconClass(status): string {\n    if (status == 'current') {\n      return 'psdk-horizontal-step-icon-selected';\n    }\n\n    return 'psdk-horizontal-step-icon';\n  }\n\n  _getHLabelClass(status): string {\n    if (status == 'current') {\n      return 'psdk-horizontal-step-label-selected';\n    }\n\n    return 'psdk-horizontal-step-label';\n  }\n\n  _showHLine(index: number): boolean {\n    return index < this.arNavigationSteps$.length - 1;\n  }\n}\n","<div *ngIf=\"bShow$\">\n  <div *ngIf=\"bIsVertical$\" class=\"psdk-vertical-stepper\">\n    <div *ngFor=\"let mainStep of arNavigationSteps$; let i = index\" class=\"psdk-vertical-step\">\n      <div class=\"psdk-vertical-step-header\">\n        <div class=\"{{ _getVIconClass(mainStep.visited_status) }}\">\n          <div class=\"psdk-vertical-step-icon-content\">\n            <span>{{ i + 1 }}</span>\n          </div>\n        </div>\n        <div class=\"{{ _getVLabelClass(mainStep.visited_status) }}\">\n          {{ mainStep.name }}\n        </div>\n      </div>\n      <div class=\"{{ _getVBodyClass(i) }}\">\n        <ng-container *ngIf=\"mainStep?.steps && mainStep.visited_status == 'current'\">\n          <div *ngFor=\"let subStep of mainStep.steps\">\n            <div *ngIf=\"subStep.visited_status == 'current'\">\n              <component-mapper\n                name=\"AssignmentCard\"\n                [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n                [parent]=\"this\"\n                [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n              ></component-mapper>\n            </div>\n          </div>\n        </ng-container>\n\n        <ng-container *ngIf=\"!mainStep?.steps && mainStep.visited_status == 'current'\">\n          <component-mapper\n            name=\"AssignmentCard\"\n            [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n            [parent]=\"this\"\n            [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n          ></component-mapper>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"!bIsVertical$\" class=\"psdk-horizontal-stepper\">\n    <div class=\"psdk-horizontal-stepper-header-container\">\n      <ng-container *ngFor=\"let mainStep of arNavigationSteps$; let i = index\">\n        <div class=\"psdk-horizontal-step-header\">\n          <div class=\"{{ _getHIconClass(mainStep.visited_status) }}\">\n            <div class=\"psdk-horizontal-step-icon-content\">\n              <span>{{ i + 1 }}</span>\n            </div>\n          </div>\n          <div id=\"multi-step-label\" class=\"{{ _getHLabelClass(mainStep.visited_status) }}\">\n            <div class=\"psdk-horizontal-step-text-label\">\n              {{ mainStep.name }}\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"_showHLine(i)\" class=\"psdk-horizontal-step-line\"></div>\n      </ng-container>\n    </div>\n    <div *ngFor=\"let mainStep of arNavigationSteps$\" class=\"psdk-horizontal-stepper-body\">\n      <ng-container *ngIf=\"mainStep?.steps && mainStep.visited_status == 'current'\">\n        <div *ngFor=\"let subStep of mainStep.steps\">\n          <div *ngIf=\"subStep.visited_status == 'current'\">\n            <component-mapper\n              name=\"AssignmentCard\"\n              [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n              [parent]=\"this\"\n              [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n            ></component-mapper>\n          </div>\n        </div>\n      </ng-container>\n\n      <ng-container *ngIf=\"!mainStep?.steps && mainStep.visited_status == 'current'\">\n        <component-mapper\n          name=\"AssignmentCard\"\n          [props]=\"{ pConn$, formGroup$, arChildren$, arMainButtons$, arSecondaryButtons$ }\"\n          [parent]=\"this\"\n          [outputEvents]=\"{ actionButtonClick: onActionButtonClick }\"\n        ></component-mapper>\n      </ng-container>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, ChangeDetectorRef, NgZone, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatListModule } from '@angular/material/list';\nimport { logout } from '@pega/auth/lib/sdk-auth-manager';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface NavBarProps {\n  // If any, enter additional props that only exist on this component\n  showAppName?: boolean;\n}\n\n@Component({\n  selector: 'app-navbar',\n  templateUrl: './navbar.component.html',\n  styleUrls: ['./navbar.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatListModule, MatMenuModule]\n})\nexport class NavbarComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() appName$: string;\n  @Input() pages$: any[];\n  @Input() caseTypes$: any[];\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: NavBarProps;\n\n  navPages$: any[];\n  navExpandCollapse$: string;\n  bShowCaseTypes$ = false;\n\n  portalApp$: string | undefined = '';\n  portalLogoImage$: string;\n  showAppName$?: boolean = false;\n\n  portalOperator$: string | undefined;\n  portalOperatorInitials$: string;\n\n  actionsAPI: any;\n  createWork: any;\n  showPage: any;\n  logout: any;\n\n  navIcon$: string;\n  localizedVal: any;\n  localeCategory = 'AppShell';\n  localeUtils = PCore.getLocaleUtils();\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private chRef: ChangeDetectorRef,\n    private psService: ProgressSpinnerService,\n    private ngZone: NgZone,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n\n    // this is a dummy \"get\", because right now images are in http and the main screen is https\n    // so the images don't load automatically.  This call, makes an initial hit that allows the\n    // rest of the images to show up\n    this.loadImage(this.navIcon$);\n\n    this.initComponent();\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  }\n\n  // ngOnDestroy\n  //  unsubscribe from Store\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  loadImage(src: string) {\n    return new Promise(resolve => {\n      resolve(src);\n    });\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // NOTE: can call angularPConnect.getState with optional args for detailed logging: bLogMsg and component object\n    this.angularPConnect.getState();\n\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf(): void {\n    this.initComponent();\n  }\n\n  initComponent() {\n    this.ngZone.run(() => {\n      this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n      this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n\n      // Then, continue on with other initialization\n\n      // making a copy, so can add info\n      this.navPages$ = JSON.parse(JSON.stringify(this.pages$));\n      // @ts-ignore\n      const localeReference = PCore.getLocaleUtils().getPortalLocaleReference() || this.pConn$.getValue('.pyLocaleReference');\n      this.navPages$.forEach(page => {\n        const destinationObject: any = {};\n        this.pConn$.resolveConfigProps(\n          { defaultHeading: page.pyDefaultHeading || page.pyLabel, localeReference: page.pyLocalizationReference },\n          destinationObject\n        );\n        page.name = this.localeUtils.getLocaleValue(destinationObject.defaultHeading, '', destinationObject.localeReference || localeReference);\n        page.iconName = this.utils.getImageSrc(page.pxPageViewIcon, this.utils.getSDKStaticContentUrl());\n      });\n      this.actionsAPI = this.pConn$.getActionsApi();\n      this.createWork = this.actionsAPI.createWork.bind(this.actionsAPI);\n      this.showPage = this.actionsAPI.showPage.bind(this.actionsAPI);\n      this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as NavBarProps;\n      this.logout = this.actionsAPI.logout.bind(this.actionsAPI);\n\n      // const oData = this.pConn$.getDataObject();\n\n      this.portalLogoImage$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n      this.portalOperator$ = PCore.getEnvironmentInfo().getOperatorName();\n      this.portalOperatorInitials$ = this.utils.getInitials(this.portalOperator$ ?? '');\n      this.showAppName$ = this.configProps$.showAppName;\n\n      this.portalApp$ = PCore.getEnvironmentInfo().getApplicationLabel();\n    });\n  }\n\n  navPanelButtonClick(oPageData: any) {\n    const { pyClassName, pyRuleName } = oPageData;\n\n    this.showPage(pyRuleName, pyClassName);\n  }\n\n  navPanelCreateButtonClick() {\n    if (this.navExpandCollapse$.indexOf('plus') > 0) {\n      this.navExpandCollapse$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());\n      this.bShowCaseTypes$ = true;\n    } else {\n      this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n      this.bShowCaseTypes$ = false;\n    }\n\n    this.chRef.detectChanges();\n  }\n\n  navPanelCreateCaseType(sCaseType: string, sFlowType: string) {\n    this.psService.sendMessage(true);\n    this.navPanelCreateButtonClick();\n\n    const actionInfo = {\n      containerName: 'primary',\n      flowType: sFlowType || 'pyStartCase'\n    };\n    this.createWork(sCaseType, actionInfo).then(() => {\n      console.log('createWork completed');\n    });\n  }\n\n  navPanelLogoutClick() {\n    logout().then(() => {\n      // Reload the page to kick off the login\n      window.location.reload();\n    });\n  }\n}\n","<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  <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\">{{\n          localeUtils.getLocaleValue(caseType.pyLabel, '', localeUtils.getCaseLocaleReference(caseType.pyClassName))\n        }}</span>\n      </mat-list-item>\n    </mat-list>\n  </mat-list>\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\">{{ page.name }}</span>\n      </div>\n    </mat-list-item>\n  </mat-list>\n  <div class=\"psdk-nav-divider\"></div>\n  <mat-list id=\"profile\" class=\"psdk-logout-button\">\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 (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n    </mat-menu>\n  </mat-list>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-region',\n  templateUrl: './region.component.html',\n  styleUrls: ['./region.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class RegionComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit() {\n    // console.log(`ngOnInit (no registerAndSubscribe!): Region`);\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    // The children may contain 'reference' components, so normalize the children...\n    this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n  }\n}\n","<!-- 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","import { Component, OnInit, Input } from '@angular/core';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\n// Right this is a skeleton, as Preview hasn't been implemented\n\n@Component({\n  selector: 'app-preview-view-container',\n  templateUrl: './preview-view-container.component.html',\n  styleUrls: ['./preview-view-container.component.scss'],\n  standalone: true\n})\nexport class PreviewViewContainerComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n\n  ngOnInit(): void {\n    const containerMgr = this.pConn$.getContainerManager();\n\n    containerMgr.initializeContainers({\n      type: 'multiple'\n    });\n  }\n\n  buildName() {\n    const context = this.pConn$.getContextName();\n    let viewContainerName = this.pConn$.getComponentName();\n\n    if (!viewContainerName) viewContainerName = '';\n    return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;\n  }\n}\n","<div class=\"psdk-preview\"></div>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { interval, Subscription } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ServerConfigService } from '../../../_services/server-config.service';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { PreviewViewContainerComponent } from '../Containers/preview-view-container/preview-view-container.component';\nimport { ModalViewContainerComponent } from '../Containers/modal-view-container/modal-view-container.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\nconst options = { context: 'app' };\n\n@Component({\n  selector: 'app-root-container',\n  templateUrl: './root-container.component.html',\n  styleUrls: ['./root-container.component.scss'],\n  imports: [\n    CommonModule,\n    MatProgressSpinnerModule,\n    ModalViewContainerComponent,\n    PreviewViewContainerComponent,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class RootContainerComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() displayOnlyFA$: boolean;\n  @Input() isMashup$: boolean;\n\n  scService = inject(ServerConfigService);\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  componentName$ = '';\n  bIsProgress$ = false;\n\n  // preview and modalview pConn\n  pvConn$: any = null;\n  mConn$: any = null;\n\n  bShowRoot$ = true;\n\n  progressSpinnerSubscription: Subscription;\n  spinnerTimer: any = null;\n  viewContainerPConn$: any = null;\n  localizedVal: any;\n  localeCategory = 'Messages';\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private psService: ProgressSpinnerService,\n    private ngZone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    const { containers } = PCore.getStore().getState();\n    const items = Object.keys(containers).filter(item => item.includes('root'));\n\n    PCore.getContainerUtils().getContainerAPI().addContainerItems(items);\n\n    // add preview and modalview containers to redux\n    // keep local copies of the the pConnect that is related\n\n    const configObjPreview = PCore.createPConnect({\n      meta: {\n        type: 'PreviewViewContainer',\n        config: {\n          name: 'preview'\n        }\n      },\n      options\n    });\n\n    this.pvConn$ = configObjPreview.getPConnect();\n\n    this.configureModalContainer();\n\n    // clear out hasViewContainer\n    sessionStorage.setItem('hasViewContainer', 'false');\n\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // handle showing and hiding the progress spinner\n    this.progressSpinnerSubscription = this.psService.getMessage().subscribe(message => {\n      this.showHideProgress(message.show);\n    });\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    // need to call this.getCurrentCompleteProps (not this.thePConn.getConfigProps)\n    //  to get full set of props that affect this component in Redux\n    const myProps: any = this.angularPConnect.getCurrentCompleteProps(this);\n\n    const renderingModes = ['portal', 'view'];\n    const noPortalMode = 'noPortal';\n\n    const { renderingMode, children, skeleton, routingInfo } = myProps;\n\n    if (routingInfo && renderingModes.includes(renderingMode)) {\n      const { accessedOrder, items } = routingInfo;\n      if (accessedOrder && items) {\n        // bootstrap loadPortal resolves to here\n        const key = accessedOrder[accessedOrder.length - 1];\n        if (items[key] && items[key].view && Object.keys(items[key].view).length > 0) {\n          const itemView = items[key].view;\n\n          const rootObject = PCore.createPConnect({\n            meta: itemView,\n            options: {\n              context: items[key].context\n            }\n          });\n\n          setTimeout(() => {\n            // makes sure Angular tracks these changes\n            this.ngZone.run(() => {\n              // the new rootObject may be a 'reference'. So,\n              //  normalize it to get the referencedView if that's the case\n              const theNewPConn = ReferenceComponent.normalizePConn(rootObject.getPConnect());\n              // update ComponentName$ before we update pConn$ to make sure they're in sync\n              //  when rendering...\n              this.componentName$ = theNewPConn.getComponentName();\n\n              this.pConn$ = theNewPConn;\n              // this.pConn$ = rootObject.getPConnect();\n\n              console.log(`RootContainer updated pConn$ to be: ${this.componentName$}`);\n            });\n          });\n        }\n      }\n    } else if (renderingMode === noPortalMode) {\n      // console.log(`RootContainer: renderingMode === noPortalMode: ${noPortalMode}`);\n      this.generateViewContainerForNoPortal();\n    } else if (children && children.length > 0) {\n      // haven't resolved to here\n    } else if (skeleton !== undefined) {\n      // TODO: need to update once skeletons are available;\n    }\n  }\n\n  async configureModalContainer() {\n    const sdkConfig = await this.scService.getSdkConfig();\n    const showModalsInEmbeddedMode = sdkConfig.serverConfig.showModalsInEmbeddedMode;\n\n    if (!this.displayOnlyFA$ || showModalsInEmbeddedMode) {\n      const configObjModal = PCore.createPConnect({\n        meta: {\n          type: 'ModalViewContainer',\n          config: {\n            name: 'modal'\n          }\n        },\n        options\n      });\n\n      this.mConn$ = configObjModal.getPConnect();\n    }\n  }\n\n  generateViewContainerForNoPortal() {\n    // bootstrap loadMashup resolves to here\n    const arChildren = this.pConn$.getChildren() as any[];\n    if (arChildren && arChildren.length == 1) {\n      // have to have a quick timeout or get an \"expressions changed\" angular error\n      setTimeout(() => {\n        this.ngZone.run(() => {\n          const localPConn = arChildren[0].getPConnect();\n\n          this.componentName$ = localPConn.getComponentName();\n          if (this.componentName$ === 'ViewContainer') {\n            const configProps = this.pConn$.getConfigProps();\n            const viewContConfig = {\n              meta: {\n                type: 'ViewContainer',\n                config: configProps\n              },\n              options\n            };\n\n            this.viewContainerPConn$ = PCore.createPConnect(viewContConfig).getPConnect();\n          }\n          this.bShowRoot$ = true;\n        });\n      });\n    }\n  }\n\n  showHideProgress(bShow: boolean) {\n    // only show spinner after 500ms wait, so if server fast, won't see\n    if (bShow) {\n      if (!this.bIsProgress$) {\n        // makes sure Angular tracks these changes\n        if (!this.spinnerTimer || this.spinnerTimer.isStopped) {\n          this.spinnerTimer = interval(500).subscribe(() => {\n            try {\n              this.spinnerTimer.unsubscribe();\n            } catch (ex) {\n              console.log(ex);\n            }\n\n            this.ngZone.run(() => {\n              this.bIsProgress$ = true;\n            });\n          });\n        }\n      }\n    } else {\n      if (this.spinnerTimer && !this.spinnerTimer.isStopped) {\n        this.spinnerTimer.unsubscribe();\n      }\n\n      // don't touch bIsProgress$ unless differnent\n      if (bShow != this.bIsProgress$) {\n        // makes sure Angular tracks these changes\n        this.ngZone.run(() => {\n          this.bIsProgress$ = bShow;\n        });\n      }\n    }\n  }\n}\n","<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n  <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n  <div [ngSwitch]=\"componentName$\">\n    <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n    <component-mapper\n      *ngSwitchCase=\"'ViewContainer'\"\n      name=\"ViewContainer\"\n      [props]=\"{ pConn$: viewContainerPConn$, displayOnlyFA$ }\"\n    ></component-mapper>\n    <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n  </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n  <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n  <app-modal-view-container [pConn$]=\"mConn$\"></app-modal-view-container>\n</div>\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface StagesProps {\n  // If any, enter additional props that only exist on this component\n  stages: any[];\n}\n\n@Component({\n  selector: 'app-stages',\n  templateUrl: './stages.component.html',\n  styleUrls: ['./stages.component.scss'],\n  imports: [CommonModule]\n})\nexport class StagesComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  PCore$: typeof PCore = PCore;\n  configProps$: StagesProps;\n\n  arStageResults$: any[];\n  lastStage$: any;\n  checkSvgIcon$: string;\n  key: any;\n  localizationService: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // const imagePath = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());\n    this.checkSvgIcon$ = this.utils.getImageSrc('check', this.utils.getSDKStaticContentUrl());\n    this.key = this.pConn$?.getCaseLocaleReference();\n    this.localizationService = this.pConn$?.getLocalizationService();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as StagesProps;\n\n    const timer = interval(50).subscribe(() => {\n      timer.unsubscribe();\n\n      const arStages = this.angularPConnect.getComponentProp(this, 'stages');\n\n      // this.stageResults$ = this.configProps$.stages;\n      if (arStages != null) {\n        this.arStageResults$ = arStages;\n        this.lastStage$ = this.arStageResults$[this.arStageResults$.length - 1];\n      }\n    });\n  }\n}\n","<div class=\"psdk-stages-bar\">\n  <div class=\"psdk-stages-chevron\" *ngFor=\"let stage of arStageResults$\">\n    <div *ngIf=\"stage.visited_status == 'completed'\" class=\"psdk-stages-inner-past\">\n      <img class=\"psdk-stages-icon\" src=\"{{ checkSvgIcon$ }}\" />\n      <div>{{ PCore$.getLocaleUtils().getLocaleValue(stage.name, '', key) }}</div>\n    </div>\n    <div *ngIf=\"stage.visited_status == 'active'\" class=\"psdk-stages-inner-present\">\n      {{ localizationService.getLocalizedText(stage.name) }}\n    </div>\n    <div *ngIf=\"stage.visited_status == 'future'\" class=\"psdk-stages-inner-future\">\n      {{ localizationService.getLocalizedText(stage.name) }}\n    </div>\n  </div>\n</div>\n\n<div class=\"psdk-stages-divider\"></div>\n","export const getDeferFriendlyTabs = allTabs => {\n  return allTabs.map(tab => {\n    const theTabCompConfig = tab.getPConnect().getConfigProps();\n    return { type: 'DeferLoad', config: theTabCompConfig };\n  });\n};\n\nexport const searchtabsClick = (id, mainTabs, currentTabId) => {\n  const currentTab = mainTabs.find(item => item.id === currentTabId && item.visibility());\n  const currentPConn = currentTab?.getPConnect();\n  const { deferLoadId } = currentPConn?.getConfigProps() ?? {};\n  PCore.getDeferLoadManager().deactivate(deferLoadId, currentPConn.getContextName());\n\n  // setCurrentTabId(id);\n  const nextActiveTab = mainTabs.find(item => item.id === id && item.visibility());\n  if (mainTabs && nextActiveTab?.content === null) {\n    nextActiveTab.content = nextActiveTab.getPConnect().getComponent();\n  }\n\n  const nextPConn = nextActiveTab.getPConnect();\n  const { deferLoadId: activeId } = nextPConn.getConfigProps();\n  PCore.getDeferLoadManager().activate(activeId, nextPConn.getContextName());\n  PCore.getDeferLoadManager().refreshComponent(activeId, nextPConn.getContextName());\n};\n\nexport const getVisibleTabs = (allTabs, uuid) => {\n  let index = 0;\n  return allTabs\n    .getPConnect()\n    .getChildren()\n    ?.filter(child => {\n      // US-402838: Filter out tab entries if the config object does not contain the visibility attribute or it evaluates to the boolean true,\n      const config = child.getPConnect().getConfigProps();\n\n      // BUG-642335 - adding isChildDeferLoad prop\n      if (child.getPConnect().getComponentName() === 'DeferLoad') {\n        const { name: viewName, deferLoadId = `${viewName}_${uuid}_${index}` } = config;\n        child.getPConnect().registerAdditionalProps({\n          deferLoadId,\n          isChildDeferLoad: true\n        });\n      }\n      index += 1;\n      return !('visibility' in config) || config.visibility === true;\n    });\n};\n\nexport const getTransientTabs = (availableTabs, currentTabId, tabItems) => {\n  return (\n    availableTabs?.map((child, i) => {\n      const config = child.getPConnect().getConfigProps();\n      const tabLabel =\n        config.label ||\n        config.inheritedProps?.find(obj => obj.prop === 'label')?.value ||\n        PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');\n      const tabContent = () => {\n        if (i.toString() === currentTabId) {\n          return tabItems?.[i.toString()]?.content ? tabItems?.[i.toString()]?.content : child.getPConnect().getComponent();\n        }\n        return tabItems?.[i.toString()]?.content;\n      };\n      return {\n        name: tabLabel,\n        id: i.toString(),\n        content: tabContent()\n      };\n    }) || []\n  );\n};\n\nexport const tabClick = (id, availableTabs, currentTabId, tabItems) => {\n  const currentPConn = availableTabs[currentTabId].getPConnect();\n  const { deferLoadId } = currentPConn.getConfigProps();\n  PCore.getDeferLoadManager().deactivate(deferLoadId, currentPConn.getContextName());\n\n  const index = parseInt(id, 10);\n  if (tabItems[index]?.content === null) {\n    tabItems[index].content = availableTabs[index].getPConnect().getComponent();\n  }\n\n  const nextPConn = availableTabs[id].getPConnect();\n  const { deferLoadId: activeId } = nextPConn && nextPConn.getConfigProps();\n  PCore.getDeferLoadManager().activate(activeId, nextPConn?.getContextName());\n  PCore.getDeferLoadManager().refreshComponent(activeId, nextPConn?.getContextName());\n};\n\nexport const getTabLabel = tabPConnect => {\n  const config = tabPConnect.getConfigProps();\n\n  const label = config.inheritedProps?.find(obj => obj.prop === 'label')?.value;\n\n  if (label) {\n    return label;\n  }\n  if (config.label) {\n    return config.label;\n  }\n\n  if (tabPConnect.getReferencedView()?.config?.label) {\n    return tabPConnect.getReferencedView()?.config?.label;\n  }\n\n  return PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');\n};\n\nexport const getActiveTabId = (mainTabs, currentTabId) => {\n  let firstVisibleTabId = null;\n  let updatedActiveId = currentTabId;\n  let isCurrentTabFound = false;\n\n  if (!mainTabs?.length) {\n    return updatedActiveId;\n  }\n\n  for (let i = 0; i < mainTabs.length; i += 1) {\n    const tab = mainTabs[i];\n    const tabConfig = tab.getPConnect().getConfigProps();\n    const tabId = tab?.id || `${tab.getPConnect().viewName}-${tabConfig.name || getTabLabel(tab.getPConnect())}-${i}`;\n    const isTabVisible = !Object.hasOwn(tabConfig, 'visibility') || tabConfig.visibility === true;\n    if (isTabVisible && !firstVisibleTabId) {\n      firstVisibleTabId = tabId;\n      if (isCurrentTabFound) {\n        updatedActiveId = firstVisibleTabId;\n        break;\n      }\n    }\n    if (tabId === currentTabId) {\n      isCurrentTabFound = true;\n      if (isTabVisible) {\n        break;\n      } else if (firstVisibleTabId) {\n        updatedActiveId = firstVisibleTabId;\n        break;\n      }\n    }\n  }\n  return updatedActiveId;\n};\n\nexport const getFirstVisibleTabId = (deferLoadedTabs, tabViewName) => {\n  let tabIndex = 0;\n\n  const viewName = deferLoadedTabs?.getPConnect()?.options?.viewName;\n\n  const deferTabsChildren = deferLoadedTabs.getPConnect().getChildren();\n  if (tabViewName) {\n    const firstVisibleTab = deferTabsChildren?.find((item, index) => {\n      const tabConfig = item.getPConnect().getConfigProps();\n      if (tabViewName === tabConfig.name) {\n        tabIndex = index;\n        return true;\n      }\n      return false;\n    });\n    const tabConfig = firstVisibleTab.getPConnect().getConfigProps();\n\n    return `${viewName}-${tabConfig.name || getTabLabel(firstVisibleTab.getPConnect())}-${tabIndex}`;\n  }\n\n  const firstVisibleTab = deferLoadedTabs\n    .getPConnect()\n    .getChildren()\n    ?.find((item, index) => {\n      const tabConfig = item.getPConnect().getConfigProps();\n      if (!('visibility' in tabConfig) || tabConfig.visibility === true) {\n        tabIndex = index;\n        return true;\n      }\n      return false;\n    });\n\n  if (!firstVisibleTab) {\n    return null;\n  }\n\n  const tabConfig = firstVisibleTab.getPConnect().getConfigProps();\n  return `${viewName}-${tabConfig.name || getTabLabel(firstVisibleTab.getPConnect())}-${tabIndex}`;\n};\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { getTransientTabs, getVisibleTabs, tabClick } from '../../../_helpers/tab-utils';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-sub-tabs',\n  templateUrl: './sub-tabs.component.html',\n  styleUrls: ['./sub-tabs.component.scss'],\n  imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SubTabsComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n\n  arChildren$: any[];\n  defaultTabIndex = 0;\n  currentTabId = this.defaultTabIndex.toString();\n  tabItems: any[];\n  availableTabs: any;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    const children = this.pConn$?.getChildren();\n    const deferLoadedTabs = children[0];\n    this.availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');\n    this.updateTabContent();\n  }\n\n  updateTabContent() {\n    const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n    this.tabItems = tempTabItems;\n  }\n\n  handleTabClick(event) {\n    const { index } = event;\n    this.currentTabId = index.toString();\n    tabClick(index, this.availableTabs, this.currentTabId, this.tabItems);\n    const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n    this.tabItems[index].content = tempTabItems[index].content;\n  }\n}\n","<mat-tab-group (selectedTabChange)=\"handleTabClick($event)\">\n  <mat-tab *ngFor=\"let tab of tabItems; let i = index\" [label]=\"tab.name\">\n    <div class=\"psdk-sub-tabs\" *ngIf=\"+currentTabId == i\">\n      <component-mapper\n        *ngIf=\"tab.content?.getPConnect() as tabPConn\"\n        [name]=\"tabPConn.getComponentName()\"\n        [props]=\"{ pConn$: tabPConn, formGroup$ }\"\n        errorMsg=\"SubTabs wants component not yet available: {{ tabPConn.getComponentName() }}\"\n      ></component-mapper>\n    </div>\n  </mat-tab>\n</mat-tab-group>\n","//  This file is adapted from Nebula/Constellation components/Templates/utils.js\n\nexport function getAllFields(pConnect: any) {\n  const metadata = pConnect.getRawMetadata();\n  let allFields = [];\n  if (metadata.children && metadata.children.map) {\n    allFields = metadata.children.map(fields => {\n      const children = fields.children instanceof Array ? fields.children : [];\n      return children.map(field => field.config);\n    });\n  }\n  return allFields;\n}\n\nexport function filterForFieldValueList(fields: any) {\n  return fields\n    .filter(({ visibility }) => visibility !== false)\n    .map(({ value, label }) => ({\n      id: label.toLowerCase(),\n      name: label,\n      value\n    }));\n}\n\n/**\n * This method evaluates whether a row action is allowed based on the provided conditions.\n * @param {string|boolean|undefined} allowRowDelete - The condition for allowing row deletion.\n * @param {object} rowData - The data of the row being evaluated.\n * @returns {boolean} - Returns true if the row action is allowed, false otherwise.\n */\nexport const evaluateAllowRowAction = (allowRowDelete, rowData) => {\n  if (allowRowDelete === undefined || allowRowDelete === true) return true;\n  if (allowRowDelete.startsWith?.('@E ')) {\n    const expression = allowRowDelete.replace('@E ', '');\n    // @ts-ignore - Expected 3 arguments, but got 2\n    return PCore.getExpressionEngine().evaluate(expression, rowData);\n  }\n  return false;\n};\n\nexport function prepareCaseSummaryData(caseSummaryRegion, portalSpecificVisibilityChecker?) {\n  const filterVisibleChildren = children => {\n    return children\n      ?.getPConnect()\n      ?.getChildren()\n      ?.filter(child => {\n        const configProps = child.getPConnect().getConfigProps();\n        const defaultVisibilityCn = !('visibility' in configProps) || configProps.visibility === true;\n        return defaultVisibilityCn && (portalSpecificVisibilityChecker?.(configProps) ?? true);\n      });\n  };\n  const convertChildrenToSummaryData = children => {\n    return children?.map(childItem => {\n      const childPConnData = childItem.getPConnect().resolveConfigProps(childItem.getPConnect().getRawMetadata());\n      childPConnData.kid = childItem.getPConnect();\n      return childPConnData;\n    });\n  };\n\n  const summaryFieldChildren = caseSummaryRegion\n    .getPConnect()\n    .getChildren()[0]\n    ?.getPConnect()\n    ?.getReferencedViewPConnect()\n    ?.getPConnect()\n    ?.getChildren();\n\n  const primarySummaryFields =\n    summaryFieldChildren && summaryFieldChildren.length > 0\n      ? convertChildrenToSummaryData(filterVisibleChildren(summaryFieldChildren[0]))\n      : undefined;\n  const secondarySummaryFields =\n    summaryFieldChildren && summaryFieldChildren.length > 1\n      ? convertChildrenToSummaryData(filterVisibleChildren(summaryFieldChildren[1]))\n      : undefined;\n\n  return {\n    primarySummaryFields,\n    secondarySummaryFields\n  };\n}\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnDestroy, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { getAllFields } from '../../template/utils';\nimport { ReferenceComponent } from '../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\nconst NO_HEADER_TEMPLATES = ['SubTabs', 'SimpleTable', 'Confirmation', 'DynamicTabs', 'DetailsSubTabs', 'ListView'];\nconst DETAILS_TEMPLATES = [\n  'Details',\n  'DetailsFields',\n  'DetailsOneColumn',\n  'DetailsSubTabs',\n  'DetailsThreeColumn',\n  'DetailsTwoColumn',\n  'NarrowWideDetails',\n  'WideNarrowDetails'\n];\n\nfunction isDetailsTemplate(template) {\n  return DETAILS_TEMPLATES.includes(template);\n}\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\n/**\n *\n * @param pConnn - PConnect Object\n * @returns visibility expression result if exists, otherwise true\n */\nfunction evaluateVisibility(pConnn) {\n  let bVisibility = true;\n  const sVisibility = pConnn.meta.config.visibility;\n  if (sVisibility && sVisibility.length) {\n    // e.g. \"@E .EmbeddedData_SelectedTestName == 'Readonly' && .EmbeddedData_SelectedSubCategory == 'Mode'\"\n    const aVisibility = sVisibility.split('&&');\n    // e.g. [\"EmbeddedData_SelectedTestName\": \"Readonly\", \"EmbeddedData_SelectedSubCategory\": \"Mode\"]\n    const context = pConnn.getContextName();\n    // Reading values from the Store to evaluate the visibility expressions\n    const storeData = PCore.getStore().getState()?.data[context].caseInfo.content;\n\n    const initialVal = {};\n    const oProperties = aVisibility.reduce((properties, property) => {\n      const keyStartIndex = property.indexOf('.');\n      const keyEndIndex = property.indexOf('=') - 1;\n      const valueStartIndex = property.indexOf(\"'\");\n      const valueEndIndex = property.lastIndexOf(\"'\") - 1;\n      return {\n        ...properties,\n        [property.substr(keyStartIndex + 1, keyEndIndex - keyStartIndex - 1)]: property.substr(valueStartIndex + 1, valueEndIndex - valueStartIndex)\n      };\n    }, initialVal);\n\n    const propertyKeys = Object.keys(oProperties);\n    const propertyValues = Object.values(oProperties);\n\n    for (let propertyIndex = 0; propertyIndex < propertyKeys.length; propertyIndex++) {\n      if (storeData[propertyKeys[propertyIndex]] !== propertyValues[propertyIndex]) {\n        bVisibility = false;\n      }\n    }\n  }\n  return bVisibility;\n}\n\ninterface ViewProps {\n  // If any, enter additional props that only exist on this component\n  template?: string;\n  label?: string;\n  showLabel: boolean;\n  title?: string;\n  visibility?: boolean;\n}\n\n@Component({\n  selector: 'app-view',\n  templateUrl: './view.component.html',\n  styleUrls: ['./view.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ViewComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() displayOnlyFA$: boolean;\n  // @Input() updateToken$: number;\n\n  angularPConnectData: AngularPConnectData = {};\n\n  noHeaderTemplates = NO_HEADER_TEMPLATES;\n\n  configProps$: ViewProps;\n  inheritedProps$: any;\n  arChildren$: any[];\n  templateName$: string;\n  title$ = '';\n  label$ = '';\n  showLabel$ = false;\n  visibility$ = true;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit() {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.checkAndUpdate();\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.checkAndUpdate();\n    }\n  }\n\n  updateSelf() {\n    if (this.angularPConnect.getComponentID(this) === undefined) {\n      return;\n    }\n\n    // debugger;\n\n    // normalize this.pConn$ in case it contains a 'reference'\n    this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewProps;\n    this.inheritedProps$ = this.pConn$.getInheritedProps();\n\n    // NOTE: this.configProps$.visibility'] is used in view.component.ts such that\n    //  the View will only be rendered when this.configProps$.visibility'] is false.\n    //  It WILL render if true or undefined.\n\n    this.templateName$ = this.configProps$.template || '';\n    this.title$ = this.configProps$.title || '';\n    // label & showLabel within inheritedProps takes precedence over configProps\n    this.label$ = this.inheritedProps$.label || this.configProps$.label || '';\n    this.showLabel$ = this.inheritedProps$.showLabel || this.configProps$.showLabel || isDetailsTemplate(this.templateName$);\n    // children may have a 'reference' so normalize the children array\n    this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n    this.visibility$ = this.configProps$.visibility ?? this.visibility$;\n\n    /**\n     * In instances where there is context, like with \"shippingAddress,\" the pageReference becomes \"caseInfo.content.shippingAddress.\"\n     * This leads to problems in the getProperty API, as it incorrectly assesses the visibility condition by looking in the wrong location\n     * in the Store for the property values. Reference component should be able to handle such scenarios(as done in SDK-R) since it has the\n     * expected pageReference values, the View component currently cannot handle this.\n     * The resolution lies in transferring this responsibility to the Reference component, eliminating the need for this code when Reference\n     * component is able to handle it.\n     */\n    if (!this.configProps$.visibility && this.pConn$.getPageReference().length > 'caseInfo.content'.length) {\n      this.visibility$ = evaluateVisibility(this.pConn$);\n    }\n\n    // was:  this.arChildren$ = this.pConn$.getChildren() as Array<any>;\n\n    // debug\n    // let  kidList: string = \"\";\n    // for (let i in this.arChildren$) {\n    //   kidList = kidList.concat(this.arChildren$[i].getPConnect().getComponentName()).concat(\",\");\n    // }\n    // console.log(\"-->view update: \" + this.angularPConnect.getComponentID(this) + \", template: \" + this.templateName$ + \", kids: \" + kidList);\n  }\n\n  // JA - adapting additionalProps from Nebula/Constellation version which uses static methods\n  //    on the component classes stored in PComponents (that Angular doesn't have)...\n  additionalProps(state: any, getPConnect: any) {\n    let propObj = {};\n\n    // We already have the template name in this.templateName$\n    if (this.templateName$ !== '') {\n      let allFields = {};\n\n      // These uses are adapted from Nebula/Constellation CaseSummary.additionalProps\n      switch (this.templateName$) {\n        case 'CaseSummary':\n          allFields = getAllFields(getPConnect);\n          // eslint-disable-next-line no-case-declarations\n          const unresFields = {\n            primaryFields: allFields[0],\n            secondaryFields: allFields[1]\n          };\n          propObj = getPConnect.resolveConfigProps(unresFields);\n          break;\n\n        case 'Details':\n          allFields = getAllFields(getPConnect);\n          propObj = { fields: allFields[0] };\n          break;\n        default:\n          break;\n      }\n    }\n\n    return propObj;\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n}\n","<div *ngIf=\"visibility$ !== false\" class=\"ng-view-top\">\n  <div *ngIf=\"showLabel$ && label$ && !noHeaderTemplates.includes(templateName$)\" class=\"template-title-container\">\n    <span>{{ label$ }}</span>\n  </div>\n\n  <ng-container *ngIf=\"templateName$; else noTemplate\">\n    <div>\n      <component-mapper\n        [name]=\"templateName$\"\n        [props]=\"{ formGroup$, pConn$, displayOnlyFA$ }\"\n        errorMsg=\"View template not recognized: [{{ templateName$ }}]\"\n      ></component-mapper>\n    </div>\n  </ng-container>\n\n  <ng-template #noTemplate>\n    <div *ngFor=\"let kid of arChildren$\">\n      <component-mapper\n        [name]=\"kid.getPConnect().getComponentName()\"\n        [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"\n        errorMsg=\"View Missing (displayAll): {{ kid.getPConnect().getComponentName() }}\"\n      ></component-mapper>\n    </div>\n  </ng-template>\n</div>\n","export const addContainerItem = pConnect => {\n  const containerManager = pConnect.getContainerManager();\n  const context = pConnect.getContextName();\n  containerManager.addContainerItem({\n    context,\n    semanticURL: ''\n  });\n};\n\nexport const configureBrowserBookmark = pConnect => {\n  const context = pConnect.getContextName();\n  const containerName = pConnect.getContainerName();\n  const envInfo = PCore.getEnvironmentInfo();\n  const { APP } = PCore.getConstants();\n\n  const navPages = pConnect.getValue('pyPortal.pyPrimaryNavPages');\n  let ruleName = '';\n  let className = '';\n  let defaultViewLabel = '';\n\n  const isNextGenLandingPageRouting = (envInfo?.environmentInfoObject as any)?.pyExecutionRuntimeName === (APP as any).INFINITY_RUNTIME;\n\n  if (Array.isArray(navPages) && navPages.length > 0) {\n    const firstNavPage = navPages[0];\n    const nestedNavPage = firstNavPage.NavigationPages?.[0];\n\n    if (isNextGenLandingPageRouting) {\n      if (nestedNavPage?.pyRuleName) {\n        ruleName = nestedNavPage.pyRuleName;\n        className = nestedNavPage.pyClassName || '';\n      } else if (firstNavPage?.pyRuleName) {\n        ruleName = firstNavPage.pyRuleName;\n        className = firstNavPage.pyClassName || '';\n      } else if (nestedNavPage?.pyLabel) {\n        defaultViewLabel = nestedNavPage.pyLabel;\n      } else if (firstNavPage?.pyLabel) {\n        defaultViewLabel = firstNavPage.pyLabel;\n      }\n    } else if (nestedNavPage?.pyLabel) {\n      defaultViewLabel = nestedNavPage.pyLabel;\n    } else if (firstNavPage?.pyLabel) {\n      defaultViewLabel = firstNavPage.pyLabel;\n    }\n  }\n\n  PCore.configureForBrowserBookmark({\n    context,\n    containerName,\n    acName: containerName,\n    semanticURL: '',\n    defaultViewLabel,\n    ruleName,\n    className\n  });\n};\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../../_messages/progress-spinner.service';\nimport { ReferenceComponent } from '../../reference/reference.component';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\nimport { configureBrowserBookmark } from './helper';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\ninterface ViewContainerProps {\n  // If any, enter additional props that only exist on this component\n  mode?: string;\n  name?: string;\n  limit?: number;\n  template?: string;\n  title?: string;\n  routingInfo: object;\n  readOnly?: boolean;\n}\n\n@Component({\n  selector: 'app-view-container',\n  templateUrl: './view-container.component.html',\n  styleUrls: ['./view-container.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ViewContainerComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() displayOnlyFA$: boolean;\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: ViewContainerProps;\n\n  arChildren$: any[];\n  templateName$: string;\n  buildName$: string;\n  context$: string;\n  title$ = '';\n\n  viewPConn$: any;\n\n  isViewContainer$ = true;\n\n  // JA - created object is now a View with a Template\n  //  Use its PConnect to render the CaseView; DON'T replace this.pConn$\n  createdViewPConn$: any;\n  state: any;\n  dispatchObject: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private psService: ProgressSpinnerService,\n    private ngZone: NgZone\n  ) {}\n\n  ngOnInit() {\n    if (this.displayOnlyFA$ == null) {\n      this.displayOnlyFA$ = false;\n    }\n\n    // debugger;\n\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // Then, continue on with other initialization\n\n    //    this.configProps$ = this.pConn$.getConfigProps();\n    // children may have a 'reference' so normalize the children array\n    this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n\n    this.buildName$ = this.buildName();\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewContainerProps;\n    this.templateName$ = this.configProps$.template || '';\n    this.title$ = this.configProps$.title || '';\n    const { CONTAINER_TYPE, APP } = PCore.getConstants();\n    const { name, mode, limit } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ViewContainerProps;\n\n    this.pConn$.isBoundToState();\n\n    const containerMgr = this.pConn$.getContainerManager();\n\n    this.prepareDispatchObject = this.prepareDispatchObject.bind(this);\n\n    this.dispatchObject = this.prepareDispatchObject();\n\n    // TODO: Plan is to rename window.constellationCore to window.pega (or similar)\n    //    And expose less via ui-bootstrap.js\n    this.state = {\n      dispatchObject: this.dispatchObject,\n      visible: !PCore.checkIfSemanticURL()\n    };\n\n    if (sessionStorage.getItem('hasViewContainer') == 'false') {\n      containerMgr.initializeContainers({\n        type: mode === CONTAINER_TYPE.MULTIPLE ? CONTAINER_TYPE.MULTIPLE : CONTAINER_TYPE.SINGLE\n      });\n\n      if (mode === CONTAINER_TYPE.MULTIPLE && limit) {\n        /* NOTE: setContainerLimit use is temporary. It is a non-public, unsupported API. */\n        PCore.getContainerUtils().setContainerLimit(`${APP.APP}/${name}`, limit);\n      }\n\n      if (!PCore.checkIfSemanticURL()) containerMgr.addContainerItem(this.pConn$ as any);\n      if (!this.displayOnlyFA$) configureBrowserBookmark(this.pConn$);\n\n      sessionStorage.setItem('hasViewContainer', 'true');\n    }\n\n    // cannot call checkAndUpdate becasue first time through, will call updateSelf and that is incorrect (causes issues).\n    // however, need angularPConnect to be initialized with currentProps for future updates, so calling shouldComponentUpdate directly\n    // without checking to update here in init, will initialize and this is correct\n    this.angularPConnect.shouldComponentUpdate(this);\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    //   *** DON'T call updateSelf in ngInit!!  ***\n\n    if (this.arChildren$ == null) {\n      // children may have a 'reference' so normalize the children array\n      this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n    }\n\n    // routingInfo was added as component prop in populateAdditionalProps\n    const routingInfo = this.angularPConnect.getComponentProp(this, 'routingInfo');\n\n    let loadingInfo;\n    try {\n      // @ts-ignore - Property 'getLoadingStatus' is private and only accessible within class 'C11nEnv'\n      loadingInfo = this.pConn$.getLoadingStatus();\n\n      this.psService.sendMessage(loadingInfo);\n    } catch (ex) {\n      console.log(ex);\n    }\n\n    // const buildName = this.buildName();\n    const { CREATE_DETAILS_VIEW_NAME } = PCore.getConstants();\n    if (routingInfo) {\n      const { accessedOrder, items } = routingInfo;\n      if (accessedOrder && items) {\n        const key = accessedOrder[accessedOrder.length - 1];\n        let componentVisible = accessedOrder.length > 0;\n        const { visible } = this.state;\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        componentVisible = visible || componentVisible;\n        if (items[key] && items[key].view && Object.keys(items[key].view).length > 0) {\n          const latestItem = items[key];\n          const rootView = latestItem.view;\n          const { context, name: viewName } = rootView.config;\n          const config: any = { meta: rootView };\n          config.options = {\n            context: latestItem.context,\n            pageReference: context || this.pConn$.getPageReference(),\n            containerName: this.pConn$.getContainerName(),\n            containerItemName: key,\n            hasForm: viewName === CREATE_DETAILS_VIEW_NAME\n          };\n          const configObject = PCore.createPConnect(config);\n\n          // THIS is where the ViewContainer creates a View\n          //    The config has meta.config.type = \"view\"\n          const newComp = configObject.getPConnect();\n          // const newCompName = newComp.getComponentName();\n          // The metadata for pyDetails changed such that the \"template\": \"CaseView\"\n          //  is no longer a child of the created View but is in the created View's\n          //  config. So, we DON'T want to replace this.pConn$ since the created\n          //  component is a View (and not a ViewContainer). We now look for the\n          //  \"template\" type directly in the created component (newComp) and NOT\n          //  as a child of the newly created component.\n\n          // Use the newly created component (View) info but DO NOT replace\n          //  this ViewContainer's pConn$, etc.\n          //  Note that we're now using the newly created View's PConnect in the\n          //  ViewContainer HTML template to guide what's rendered similar to what\n          //  the Nebula/Constellation return of React.Fragment does\n\n          this.ngZone.run(() => {\n            if (newComp.getComponentName() === 'reference') {\n              // if a refernece, it will de reference to a \"view\"\n              // so hand this off to the \"View\" component to do that\n              this.isViewContainer$ = false;\n              this.viewPConn$ = newComp;\n\n              /*\n               ***  this commmented out code should be removed, once we test out that\n               ***  handing off refernce to View component always works\n               */\n\n              // When newComp is a reference, we want to de-reference\n              //  it (to get the View) and then use that View to get the\n              //  template, title, children, etc.\n\n              /*\n\n              const theDereferencedView = ReferenceComponent.normalizePConn(newComp);\n              const newConfigProps = theDereferencedView.getConfigProps();\n\n              // children may have a 'reference' so normalize the children arra\n\n              const theDereferencedViewChildren = ReferenceComponent.normalizePConnArray(theDereferencedView.getChildren());\n              this.templateName$ = ('template' in newConfigProps) ? newConfigProps[\"template\"] : \"\";\n              this.title$ = ('title' in newConfigProps) ? newConfigProps[\"title\"] : \"\";\n              this.arChildren$ = theDereferencedViewChildren;\n              this.createdViewPConn$ = theDereferencedView;\n              */\n            } else {\n              // old style when newComp is NOT a 'reference'\n              this.isViewContainer$ = true;\n\n              console.error(`ViewContainer has a newComp that is NOT a reference!`);\n\n              this.createdViewPConn$ = newComp;\n              const newConfigProps = newComp.getConfigProps();\n              this.templateName$ = newConfigProps.template || '';\n              this.title$ = newConfigProps.title || '';\n              // update children with new view's children\n              // children may have a 'reference' so normalize the children array\n              this.arChildren$ = ReferenceComponent.normalizePConnArray(newComp.getChildren());\n            }\n          });\n        }\n      }\n    }\n  }\n\n  prepareDispatchObject(): any {\n    const baseContext = this.pConn$.getContextName();\n    // const { acName = \"primary\" } = pConn.getContainerName(); // doesn't work with 8.23 typings\n    const acName = this.pConn$.getContainerName() || 'primary';\n\n    return {\n      semanticURL: '',\n      context: baseContext,\n      acName\n    };\n  }\n\n  buildName(): string {\n    const sContext = this.pConn$.getContextName();\n    const sName = this.pConn$.getContainerName();\n\n    return `${sContext.toUpperCase()}/${sName.toUpperCase()}`;\n  }\n}\n","<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","import { Directive, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nimport { AngularPConnectData, AngularPConnectService } from '../../_bridge/angular-pconnect';\nimport { Utils } from '../../_helpers/utils';\n\n@Directive()\nexport class FieldBase implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  protected angularPConnect = inject(AngularPConnectService);\n  protected utils = inject(Utils);\n\n  protected angularPConnectData: AngularPConnectData = {};\n\n  fieldControl: FormControl<any> = new FormControl('', null);\n  controlName$: string;\n  actionsApi: object;\n  propName: string;\n\n  bHasForm$ = true;\n  testId: string;\n  helperText: string;\n  placeholder: string;\n  value$: any = '';\n  label$ = '';\n  hideLabel = false;\n  bRequired$ = false;\n  bReadonly$ = false;\n  bDisabled$ = false;\n  bVisible$ = true;\n  displayMode$ = '';\n\n  /**\n   * Initializes the component, registers with AngularPConnect, and sets up form control.\n   */\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange.bind(this));\n    this.controlName$ = this.angularPConnect.getComponentID(this);\n\n    // call checkAndUpdate\n    this.checkAndUpdate();\n\n    if (this.formGroup$) {\n      this.formGroup$.addControl(this.controlName$, this.fieldControl);\n      this.fieldControl.setValue(this.value$);\n      this.bHasForm$ = true;\n    } else {\n      this.bReadonly$ = true;\n      this.bHasForm$ = false;\n    }\n\n    this.actionsApi = this.pConn$.getActionsApi();\n    this.propName = this.pConn$.getStateProps().value;\n  }\n\n  /**\n   * Cleans up the component by removing it from the form group and unsubscribing from any observables.\n   */\n  ngOnDestroy(): void {\n    if (this.formGroup$) {\n      this.formGroup$.removeControl(this.controlName$);\n    }\n\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  // Should always check the bridge to see if the component should update itself (re-render)\n  checkAndUpdate() {\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  // will be overriden by child components\n  updateSelf(): void {}\n\n  /**\n   * Updates the component's common properties based on the provided configuration.\n   *\n   * @param configProps The configuration properties to update.\n   */\n  protected updateComponentCommonProperties(configProps) {\n    // Extract properties from config\n    const { testId, label, hideLabel, displayMode = '', helperText, placeholder, required, visibility = true, disabled, readOnly } = configProps;\n\n    // Update component properties\n    this.testId = testId;\n    this.label$ = label;\n    this.hideLabel = hideLabel;\n    this.displayMode$ = displayMode;\n    this.helperText = helperText;\n    this.placeholder = placeholder || '';\n\n    // Convert boolean properties\n    this.bVisible$ = this.utils.getBooleanValue(visibility);\n    this.bRequired$ = this.utils.getBooleanValue(required);\n    this.bDisabled$ = this.utils.getBooleanValue(disabled);\n    this.bReadonly$ = this.utils.getBooleanValue(readOnly);\n\n    // Enable or disable field control\n    this.fieldControl[this.bDisabled$ ? 'disable' : 'enable']();\n\n    // Display error message if validation message exists\n    this.displayValidationMessage();\n  }\n\n  /**\n   * Displays the validation message if it exists.\n   */\n  private displayValidationMessage(): void {\n    if (this.angularPConnectData.validateMessage) {\n      setTimeout(() => {\n        this.fieldControl.setErrors({ message: true });\n        this.fieldControl.markAsTouched();\n      }, 100);\n    }\n  }\n\n  /**\n   * Retrieves the error message for the current field control.\n   *\n   * @returns The error message, or an empty string if no error is found.\n   */\n  getErrorMessage() {\n    // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n    if (this.fieldControl.hasError('message')) {\n      return this.angularPConnectData.validateMessage ?? '';\n    }\n\n    if (this.fieldControl.hasError('required')) {\n      return 'You must enter a value';\n    }\n\n    return this.fieldControl.errors?.toString() ?? '';\n  }\n}\n","// OAuth login box type (only recent testing with Main)\nexport const loginBoxType = {\n  Main: 1,\n  Popup: 2,\n  Modal: 3\n};\n\nexport const endpoints = {\n  // Change this URL if you want to point the React application at another Pega server.\n  // local\n  // BASEURL: \"http://localhost:1080/prweb/api\",\n  // BASEURL: \"https://localhost:1080/prweb/api\",\n  // 85\n  // BASEURL: \"https://lu-85-cam.eng.pega.com/prweb/api\",\n\n  loginExperience: loginBoxType.Main,\n\n  // OAUTHCFG: {\n  //   providerID: \"pega\",\n  //   authorization: \"https://localhost:1080/prweb/PRRestService/oauth2/v1/authorize\",\n  //   authority: \"https://localhost:1080/prweb/PRRestService/oauth2/v1\",\n  //   token: \"https://localhost:1080/prweb/PRRestService/oauth2/v1/token\",\n  //   scope: [],\n  //   // for mashup MediaCo login customer, otherwise, regular login pass in client id\n  //   client_id: \"12595401538569726922\",\n  //   client_secret:  \"CC374FD41B4F0726C7F2A4DD8CE1E991\",\n  //   grant_type:  \"client_credentials\",\n  //   // main window login\n  //   use_pkce: true,\n  //   loginExperience: loginBoxType.Main\n  // },\n\n  AUTH: '/v1/authenticate',\n  CASES: '/v1/cases',\n  CASES_V2: '/application/v2/cases',\n  CASETYPES: '/v1/casetypes',\n  CASETYPES_V2: '/application/v2/casetypes',\n  CONFIG_V2: '/application/v2/config',\n  VIEWS: '/views',\n  ASSIGNMENTS: '/v1/assignments',\n  ASSIGNMENTS_V2: '/application/v2/assignments',\n  ACTIONS: '/actions',\n  PAGES: '/pages',\n  DATA: '/v1/data',\n  DATA_V2: '/application/v2/data',\n  REFRESH: '/refresh',\n  BACK_V2: '/navigation_steps/previous',\n  PULSE: '/v1/messages',\n  PULSE_V2: '/v2/messages',\n  ROUTING: 'mashup',\n  MEDIACO: 'MediaCo',\n  API: 'api',\n\n  EMBEDDED: 'embedded',\n  EMBEDDEDHTML: 'embedded.html',\n  MASHUP: 'mashup',\n  MASHUPHTML: 'mashup.html',\n  SIMPLEPORTAL: 'simpleportal',\n  SIMPLEPORTALHTML: 'simpleportal.html',\n  PORTAL: 'portal',\n  PORTALHTML: 'portal.html',\n  FULLPORTAL: 'fullportal',\n  FULLPORTALHTML: 'fullportal.html'\n};\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { endpoints } from './endpoints';\nimport { ServerConfigService } from './server-config.service';\nimport { Utils } from '../_helpers/utils';\n\n@Injectable()\nexport class DatapageService {\n  constructor(\n    private http: HttpClient,\n    private scService: ServerConfigService\n  ) {}\n\n  // dataPageUrl = endpoints.BASEURL + endpoints.DATA;\n  // dataPageUrl = this.scService.getBaseUrl() + endpoints.API + endpoints.DATA;\n  dataPageUrl: string;\n\n  getDataPage(id, dpParams) {\n    this.dataPageUrl = this.scService.getBaseUrl() + endpoints.API + endpoints.DATA;\n\n    let dataHeaders = new HttpHeaders();\n\n    dataHeaders = dataHeaders.append('Authorization', Utils.sdkGetAuthHeader());\n\n    dataHeaders = dataHeaders.append('Content-Type', 'application/json');\n\n    return this.http.get(`${this.dataPageUrl}/${id}`, { observe: 'response', params: dpParams, headers: dataHeaders });\n  }\n\n  getResults(response) {\n    return response.pxResults;\n  }\n\n  getDataPageData(dataPageName, parameters, context) {\n    let dataViewParams;\n    if (parameters) {\n      dataViewParams = {\n        dataViewParameters: parameters\n      };\n    }\n    return new Promise((resolve, reject) => {\n      (PCore.getDataApiUtils().getData(dataPageName, dataViewParams, context) as Promise<object>)\n        .then((response: any) => {\n          resolve(response.data.data);\n        })\n        .catch(e => {\n          if (e) {\n            // check specific error if 401, and wiped out if so stored token is stale.  Fetcch new tokens.\n            reject(e);\n          }\n        });\n    });\n  }\n}\n","// From npm-nebula/src/utils/event-utils.js\n\nexport function handleEvent(actions, eventType, propName, value) {\n  switch (eventType) {\n    case 'change':\n      actions.updateFieldValue(propName, value);\n      break;\n    case 'blur':\n      actions.triggerFieldChange(propName, value);\n      break;\n    case 'changeNblur':\n      actions.updateFieldValue(propName, value);\n      actions.triggerFieldChange(propName, value);\n      break;\n    default:\n      break;\n  }\n}\n","import { Component, EventEmitter, OnInit, Output, forwardRef, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DatapageService } from '../../../_services/datapage.service';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface IOption {\n  key: string;\n  value: string;\n}\ninterface AutoCompleteProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on AutoComplete here\n  deferDatasource?: boolean;\n  datasourceMetadata?: any;\n  onRecordChange?: any;\n  additionalProps?: object;\n  listType: string;\n  parameters?: any;\n  datasource: any;\n  columns: any[];\n}\n\n@Component({\n  selector: 'app-auto-complete',\n  templateUrl: './auto-complete.component.html',\n  styleUrls: ['./auto-complete.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatAutocompleteModule,\n    MatOptionModule,\n    forwardRef(() => ComponentMapperComponent)\n  ],\n  providers: [DatapageService]\n})\nexport class AutoCompleteComponent extends FieldBase implements OnInit {\n  protected dataPageService = inject(DatapageService);\n\n  @Output() onRecordChange: EventEmitter<any> = new EventEmitter();\n\n  configProps$: AutoCompleteProps;\n\n  options$: any[];\n  listType: string;\n  columns = [];\n  parameters: {};\n  filteredOptions: Observable<any[]>;\n  filterValue = '';\n\n  // Override ngOnInit method\n  override async ngOnInit(): Promise<void> {\n    super.ngOnInit();\n\n    this.filteredOptions = this.fieldControl.valueChanges.pipe(\n      startWith(''),\n      map(value => this._filter((value as string) || ''))\n    );\n  }\n\n  setOptions(options: IOption[]) {\n    this.options$ = options;\n    const index = this.options$?.findIndex(element => element.key === this.configProps$.value);\n    this.value$ = index > -1 ? this.options$[index].value : this.configProps$.value;\n    this.fieldControl.setValue(this.value$);\n  }\n\n  private _filter(value: string): string[] {\n    const filterVal = (value || this.filterValue).toLowerCase();\n    return this.options$?.filter(option => option.value?.toLowerCase().includes(filterVal));\n  }\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override async updateSelf(): Promise<void> {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AutoCompleteProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Set component specific properties\n    const { value, listType, parameters } = this.configProps$;\n\n    if (value != undefined) {\n      const index = this.options$?.findIndex(element => element.key === value);\n      this.value$ = index > -1 ? this.options$[index].value : value;\n      this.fieldControl.setValue(this.value$);\n    }\n\n    this.listType = listType;\n    this.parameters = parameters;\n\n    const context = this.pConn$.getContextName();\n    const { columns, datasource } = this.generateColumnsAndDataSource();\n\n    if (columns) {\n      this.columns = this.preProcessColumns(columns);\n    }\n\n    if (this.listType === 'associated') {\n      const optionsList = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject('')); // 1st arg empty string until typedef marked correctly\n      this.setOptions(optionsList);\n    }\n\n    if (!this.displayMode$ && this.listType !== 'associated') {\n      const results = await this.dataPageService.getDataPageData(datasource, this.parameters, context);\n      this.fillOptions(results);\n    }\n  }\n\n  generateColumnsAndDataSource() {\n    let datasource = this.configProps$.datasource;\n    let columns = this.configProps$.columns;\n    // const { deferDatasource, datasourceMetadata } = this.configProps$;\n    const { deferDatasource, datasourceMetadata } = this.pConn$.getConfigProps();\n    // convert associated to datapage listtype and transform props\n    // Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList\n    if (deferDatasource && datasourceMetadata?.datasource?.name) {\n      this.listType = 'datapage';\n      datasource = datasourceMetadata.datasource.name;\n      const { parameters, propertyForDisplayText, propertyForValue } = datasourceMetadata.datasource;\n      this.parameters = this.flattenParameters(parameters);\n      const displayProp = propertyForDisplayText?.startsWith('@P') ? propertyForDisplayText.substring(3) : propertyForDisplayText;\n      const valueProp = propertyForValue?.startsWith('@P') ? propertyForValue.substring(3) : propertyForValue;\n      columns = [\n        {\n          key: 'true',\n          setProperty: 'Associated property',\n          value: valueProp\n        },\n        {\n          display: 'true',\n          primary: 'true',\n          useForSearch: true,\n          value: displayProp\n        }\n      ];\n    }\n\n    return { columns, datasource };\n  }\n\n  fillOptions(results: any) {\n    const optionsData: any[] = [];\n    const displayColumn = this.getDisplayFieldsMetaData(this.columns);\n    results?.forEach(element => {\n      const obj = {\n        key: element[displayColumn.key] || element.pyGUID,\n        value: element[displayColumn.primary]?.toString()\n      };\n      optionsData.push(obj);\n    });\n    this.setOptions(optionsData);\n  }\n\n  flattenParameters(params = {}) {\n    const flatParams = {};\n    Object.keys(params).forEach(key => {\n      const { name, value: theVal } = params[key];\n      flatParams[name] = theVal;\n    });\n\n    return flatParams;\n  }\n\n  getDisplayFieldsMetaData(columnList) {\n    const displayColumns = columnList.filter(col => col.display === 'true');\n    const metaDataObj: any = { key: '', primary: '', secondary: [] };\n    const keyCol = columnList.filter(col => col.key === 'true');\n    metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';\n    for (let index = 0; index < displayColumns.length; index += 1) {\n      if (displayColumns[index].primary === 'true') {\n        metaDataObj.primary = displayColumns[index].value;\n      } else {\n        metaDataObj.secondary.push(displayColumns[index].value);\n      }\n    }\n    return metaDataObj;\n  }\n\n  preProcessColumns(columnList) {\n    return columnList?.map(col => {\n      const tempColObj = { ...col };\n      tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n      return tempColObj;\n    });\n  }\n\n  fieldOnChange(event: Event) {\n    const value = (event.target as HTMLInputElement).value;\n    this.filterValue = value;\n    handleEvent(this.actionsApi, 'change', this.propName, value);\n  }\n\n  optionChanged(event: any) {\n    const val = event?.option?.value;\n\n    let key = '';\n    if (val) {\n      const index = this.options$?.findIndex(element => element.value === val);\n      key = index > -1 ? (key = this.options$[index].key) : val;\n    }\n    const value = key;\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n\n    if (this.onRecordChange) {\n      this.onRecordChange.emit(value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, hideLabel }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [placeholder]=\"placeholder\"\n          [formControl]=\"fieldControl\"\n          [attr.data-test-id]=\"testId\"\n          [required]=\"bRequired$\"\n          [matAutocomplete]=\"auto\"\n          (input)=\"fieldOnChange($event)\"\n        />\n        <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n          <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n            <span>{{ opt.value }}</span>\n          </mat-option>\n        </mat-autocomplete>\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, Input, Output, EventEmitter, OnChanges, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-cancel-alert',\n  templateUrl: './cancel-alert.component.html',\n  styleUrls: ['./cancel-alert.component.scss'],\n  imports: [CommonModule, MatGridListModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CancelAlertComponent implements OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() bShowAlert$: boolean;\n  @Output() onAlertState$: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  itemKey: string;\n  localizedVal: Function;\n  localeCategory = 'ModalContainer';\n  discardButton: any;\n  goBackButton: any;\n\n  constructor(private psService: ProgressSpinnerService) {}\n  ngOnChanges() {\n    if (this.bShowAlert$) {\n      this.psService.sendMessage(false);\n      const contextName = this.pConn$.getContextName();\n      this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n      this.itemKey = contextName;\n      this.createCancelAlertButtons();\n    }\n  }\n\n  dismissAlertOnly() {\n    this.bShowAlert$ = false;\n    this.onAlertState$.emit(false);\n  }\n\n  dismissAlert() {\n    this.bShowAlert$ = false;\n    this.onAlertState$.emit(true);\n  }\n\n  sendMessage(sMessage: string) {\n    alert(sMessage);\n  }\n\n  createCancelAlertButtons() {\n    this.discardButton = {\n      actionID: 'discard',\n      jsAction: 'discard',\n      name: this.pConn$.getLocalizedValue('Discard', '', '')\n    };\n    this.goBackButton = {\n      actionID: 'continue',\n      jsAction: 'continue',\n      name: this.pConn$.getLocalizedValue('Go back', '', '')\n    };\n  }\n\n  buttonClick({ action }) {\n    const actionsAPI = this.pConn$.getActionsApi();\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n\n    switch (action) {\n      case 'continue':\n        this.dismissAlertOnly();\n        break;\n      case 'discard':\n        this.psService.sendMessage(true);\n\n        // eslint-disable-next-line no-case-declarations\n        const deletePromise = actionsAPI.deleteCaseInCreateStage(this.itemKey);\n\n        deletePromise\n          .then(() => {\n            this.psService.sendMessage(false);\n            this.dismissAlert();\n            PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);\n          })\n          .catch(() => {\n            this.psService.sendMessage(false);\n            this.sendMessage(this.localizedVal('Delete failed.', this.localeCategory));\n          });\n        break;\n      default:\n        break;\n    }\n  }\n}\n","<div *ngIf=\"bShowAlert$\" class=\"psdk-cancel-alert-background\">\n  <div class=\"psdk-cancel-alert-top\">\n    <h3>{{ localizedVal('Discard unsaved changes?', localeCategory) }}</h3>\n    <div>\n      <p>{{ localizedVal('You have unsaved changes. You can discard them or go back to keep working.', localeCategory) }}</p>\n    </div>\n    <component-mapper\n      name=\"ActionButtons\"\n      [props]=\"{ arMainButtons$: [discardButton], arSecondaryButtons$: [goBackButton] }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ actionButtonClick: buttonClick }\"\n    ></component-mapper>\n  </div>\n</div>\n","function isSelfReferencedProperty(param, referenceProp) {\n  const [, parentPropName] = param.split('.');\n  const referencePropParent = referenceProp?.split('.').pop();\n  return parentPropName === referencePropParent;\n}\n\nfunction updateNewInstructions(c11nEnv, selectionList) {\n  const { datasource: { parameters = {} } = {} } = c11nEnv.getFieldMetadata(selectionList) || {};\n  const compositeKeys: any = [];\n  Object.values(parameters).forEach((param: any) => {\n    if (isSelfReferencedProperty(param, selectionList)) compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));\n  });\n  c11nEnv.getListActions().initDefaultPageInstructions(selectionList, compositeKeys);\n}\n\nfunction insertInstruction(c11nEnv, selectionList, selectionKey, primaryField, item) {\n  const { id, primary } = item;\n  const actualProperty = selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey;\n  const displayProperty = primaryField.startsWith('.') ? primaryField.substring(1) : primaryField;\n  const rows = c11nEnv.getValue(`${c11nEnv.getPageReference()}${selectionList}`) || [];\n  const startIndex = rows.length;\n  const content = {\n    [actualProperty]: id,\n    [displayProperty]: primary,\n    nonFormProperties: actualProperty !== displayProperty ? [displayProperty] : []\n  };\n  c11nEnv.getListActions().insert(content, startIndex);\n}\n\nfunction deleteInstruction(c11nEnv, selectionList, selectionKey, item) {\n  const { id } = item;\n  const actualProperty = selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey;\n  const rows = c11nEnv.getValue(`${c11nEnv.getPageReference()}${selectionList}`) || [];\n  const index = rows.findIndex(row => row[actualProperty] === id);\n  c11nEnv.getListActions().deleteEntry(index);\n}\n\nexport { updateNewInstructions, insertInstruction, deleteInstruction };\n","import { Component, OnInit, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\nimport { deleteInstruction, insertInstruction, updateNewInstructions } from '../../../_helpers/instructions-utils';\nimport { handleEvent } from '../../../_helpers/event-util';\n\ninterface CheckboxProps extends Omit<PConnFieldProps, 'value'> {\n  // If any, enter additional props that only exist on Checkbox here\n  // Everything from PConnFieldProps except value and change type of value to boolean\n  value: boolean;\n  caption?: string;\n  trueLabel?: string;\n  falseLabel?: string;\n  selectionMode?: string;\n  datasource?: any;\n  selectionKey?: string;\n  selectionList?: any;\n  primaryField: string;\n  readonlyContextList: any;\n  referenceList: string;\n  variant?: string;\n  renderMode: string;\n}\n\n@Component({\n  selector: 'app-check-box',\n  templateUrl: './check-box.component.html',\n  styleUrls: ['./check-box.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatCheckboxModule, MatFormFieldModule, MatOptionModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CheckBoxComponent extends FieldBase implements OnInit, OnDestroy {\n  configProps$: CheckboxProps;\n\n  caption$?: string = '';\n  showLabel$ = false;\n  isChecked$ = false;\n  trueLabel$?: string;\n  falseLabel$?: string;\n\n  selectionMode?: string;\n  datasource?: any;\n  selectionKey?: string;\n  selectionList?: any;\n  primaryField: string;\n  selectedvalues: any;\n  referenceList: string;\n  listOfCheckboxes: any[] = [];\n  variant?: string;\n\n  // Override ngOnInit method\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    if (this.selectionMode === 'multi' && this.referenceList?.length > 0 && !this.bReadonly$) {\n      this.pConn$.setReferenceList(this.selectionList);\n      updateNewInstructions(this.pConn$, this.selectionList);\n    }\n  }\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // moved this from ngOnInit() and call this from there instead...\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CheckboxProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    if (this.label$ != '') {\n      this.showLabel$ = true;\n    }\n    this.variant = this.configProps$.variant;\n    if (this.bReadonly$) {\n      this.fieldControl?.disable();\n    }\n\n    // multi case\n    this.selectionMode = this.configProps$.selectionMode;\n    if (this.selectionMode === 'multi') {\n      this.referenceList = this.configProps$.referenceList;\n      this.selectionList = this.configProps$.selectionList;\n      this.selectedvalues = this.configProps$.readonlyContextList;\n      this.primaryField = this.configProps$.primaryField;\n      this.bReadonly$ = this.configProps$.renderMode === 'ReadOnly' || this.displayMode$ === 'DISPLAY_ONLY' || this.configProps$.readOnly;\n\n      this.datasource = this.configProps$.datasource;\n      this.selectionKey = this.configProps$.selectionKey;\n      const listSourceItems = this.datasource?.source ?? [];\n      const dataField = this.selectionKey?.split?.('.')[1] ?? '';\n      const listToDisplay: any[] = [];\n      listSourceItems.forEach(element => {\n        element.selected = this.selectedvalues?.some?.(data => data[dataField] === element.key);\n        listToDisplay.push(element);\n      });\n      this.listOfCheckboxes = listToDisplay;\n    } else {\n      if (this.configProps$.value != undefined) {\n        this.value$ = this.configProps$.value;\n      }\n\n      this.caption$ = this.configProps$.caption;\n      this.trueLabel$ = this.configProps$.trueLabel || 'Yes';\n      this.falseLabel$ = this.configProps$.falseLabel || 'No';\n\n      this.isChecked$ = this.value$ === 'true' || this.value$ == true;\n    }\n  }\n\n  fieldOnChange(event: any) {\n    event.value = event.checked;\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, event.checked);\n    this.pConn$.clearErrorMessages({\n      property: this.propName\n    });\n  }\n\n  fieldOnBlur(event: any) {\n    if (this.selectionMode === 'multi') {\n      this.pConn$.getValidationApi().validate(this.selectedvalues, this.selectionList);\n    } else {\n      this.pConn$.getValidationApi().validate(event.target.checked);\n    }\n  }\n\n  handleChangeMultiMode(event, element) {\n    if (!element.selected) {\n      insertInstruction(this.pConn$, this.selectionList, this.selectionKey, this.primaryField, {\n        id: element.key,\n        primary: element.text ?? element.value\n      });\n    } else {\n      deleteInstruction(this.pConn$, this.selectionList, this.selectionKey, {\n        id: element.key,\n        primary: element.text ?? element.value\n      });\n    }\n    this.pConn$.clearErrorMessages({\n      property: this.selectionList,\n      category: '',\n      context: ''\n    });\n  }\n}\n","<div *ngIf=\"variant !== 'card'; else cardMode\">\n  <div *ngIf=\"displayMode$; else noDisplayMode\">\n    <component-mapper\n      *ngIf=\"bVisible$ !== false\"\n      name=\"FieldValueList\"\n      [props]=\"{ label$: caption$, value$: value$ ? trueLabel$ : falseLabel$, displayMode$ }\"\n    ></component-mapper>\n  </div>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <div class=\"mat-form-field-infix\" *ngIf=\"showLabel$\">\n        <span>\n          <label class=\"mat-form-field-label psdk-label-readonly\" [ngClass]=\"{ 'label-required': bRequired$ && selectionMode === 'multi' }\">{{\n            label$\n          }}</label>\n        </span>\n      </div>\n      <div *ngIf=\"selectionMode === 'multi'; else single\">\n        <mat-option *ngFor=\"let item of listOfCheckboxes\" (click)=\"handleChangeMultiMode($event, item)\">\n          <mat-checkbox\n            [labelPosition]=\"'after'\"\n            [checked]=\"item.selected\"\n            [required]=\"bRequired$\"\n            [attr.data-test-id]=\"testId + ':' + item.value\"\n            (change)=\"handleChangeMultiMode($event, item)\"\n            (blur)=\"fieldOnBlur($event)\"\n            >{{ item.text ?? item.value }}\n          </mat-checkbox>\n        </mat-option>\n      </div>\n      <ng-template #single>\n        <mat-checkbox\n          [labelPosition]=\"'after'\"\n          [checked]=\"isChecked$\"\n          [disabled]=\"bDisabled$ || bReadonly$\"\n          [required]=\"bRequired$\"\n          [attr.data-test-id]=\"testId\"\n          [formControl]=\"fieldControl\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n          ><span [ngClass]=\"{ 'label-required': bRequired$ }\">{{ caption$ }}</span></mat-checkbox\n        >\n        <p *ngIf=\"helperText\">{{ helperText }}</p>\n      </ng-template>\n      <mat-error *ngIf=\"fieldControl.invalid && (fieldControl.touched || fieldControl.dirty)\">{{ getErrorMessage() }}</mat-error>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n<ng-template #cardMode>\n  <h4>{{ label$ }}</h4>\n  <div>\n    <component-mapper name=\"SelectableCard\" [props]=\"{ pConn$: pConn$, type: 'checkbox' }\" [parent]=\"this\"></component-mapper>\n  </div>\n</ng-template>\n","import dayjs from 'dayjs';\n\nexport function getLocale(locale = ''): string | undefined {\n  // use locale if specified\n  if (locale) return locale;\n  // otherwise, use operator locale if it's defined\n  if (PCore?.getEnvironmentInfo().getLocale()) return PCore.getEnvironmentInfo().getLocale();\n  // fallback\n  return Intl.DateTimeFormat().resolvedOptions().locale;\n}\n\nexport function getCurrentTimezone(timezone = 'America/New_York') {\n  if (timezone) return timezone;\n  return PCore?.getLocaleUtils?.().getTimeZoneInUse?.();\n}\n\nexport function getSeconds(sTime): any {\n  return dayjs(sTime).valueOf();\n}\n","const EURO = {\n  name: 'Euro (EUR)',\n  symbolFormat: '\\u20AC{#}',\n  currencyCode: 'EUR {#}'\n};\n\nconst USD = {\n  name: 'U.S. Dollar (USD)',\n  symbolFormat: '${#}',\n  currencyCode: 'USD {#}'\n};\n\nconst XAF = {\n  name: 'CFA Franc (BEAC) (XAF)',\n  symbolFormat: 'XAF {#}',\n  currencyCode: 'XAF {#}'\n};\n\nconst XCD = {\n  name: 'East Caribbean Dollar (XCD)',\n  symbolFormat: '${#}',\n  currencyCode: 'XCD {#}'\n};\n\nconst XPF = {\n  name: 'Pacific Franc (XPF)',\n  symbolFormat: '₣{#}',\n  currencyCode: 'XPF {#}'\n};\n\nexport const currencyMap = {\n  AF: {\n    name: 'Afghanistan Afghani (AFA)',\n    symbolFormat: '{#} ؋',\n    currencyCode: 'AFA {#}'\n  },\n  AL: {\n    name: 'Albanian Lek (ALL)',\n    symbolFormat: '{#} L',\n    currencyCode: 'ALL {#}'\n  },\n  DZ: {\n    name: 'Algerian Dinar (DZD)',\n    symbolFormat: '{#} DA',\n    currencyCode: 'DZD {#}'\n  },\n  AO: {\n    name: 'Angolan New Kwanza (AOA)',\n    symbolFormat: '{#} Kz',\n    currencyCode: 'AOA {#}'\n  },\n  AR: {\n    name: 'Argentine Peso (ARS)',\n    symbolFormat: '${#}',\n    currencyCode: 'ARS {#}'\n  },\n  AM: {\n    name: 'Armenian Dram (AMD)',\n    symbolFormat: '{#}֏',\n    currencyCode: 'AMD {#}'\n  },\n  AW: {\n    name: 'Aruba Florin (AWG)',\n    symbolFormat: 'Afl {#}',\n    currencyCode: 'AWG {#}'\n  },\n  AU: {\n    name: 'Australian Dollar (AUD)',\n    symbolFormat: 'AU${#}',\n    currencyCode: 'AUD {#}'\n  },\n  AZ: {\n    name: 'Azerbaijani Manat (AZM)',\n    symbolFormat: '₼{#}',\n    currencyCode: 'AZM {#}'\n  },\n  BS: {\n    name: 'Bahamian Dollar (BSD)',\n    symbolFormat: 'B${#}',\n    currencyCode: 'BSD {#}'\n  },\n  BH: {\n    name: 'Bahraini Dinar (BHD)',\n    symbolFormat: '{#} BD',\n    currencyCode: 'BHD {#}'\n  },\n  BD: {\n    name: 'Bangladesh Taka (BDT)',\n    symbolFormat: '৳{#}',\n    currencyCode: 'BDT {#}'\n  },\n  BB: {\n    name: 'Barbados Dollar (BBD)',\n    symbolFormat: 'Bds${#}',\n    currencyCode: 'BBD {#}'\n  },\n  BY: {\n    name: 'Belarus Ruble (BYR)',\n    symbolFormat: 'Br {#}',\n    currencyCode: 'BYR {#}'\n  },\n  BZ: {\n    name: 'Belize Dollar (BZD)',\n    symbolFormat: 'BZ${#}',\n    currencyCode: 'BZD {#}'\n  },\n  BM: {\n    name: 'Bermuda Dollar (BMD)',\n    symbolFormat: '${#}',\n    currencyCode: 'BMD {#}'\n  },\n  BT: {\n    name: 'Bhutan Ngultrum (BTN)',\n    symbolFormat: 'Nu.{#}',\n    currencyCode: 'BTN {#}'\n  },\n  BO: {\n    name: 'Bolivian Boliviano (BOB)',\n    symbolFormat: 'Bs. {#}',\n    currencyCode: 'BOB {#}'\n  },\n  BA: {\n    name: 'Bosnian Marka (BAM)',\n    symbolFormat: '{#} KM',\n    currencyCode: 'BAM {#}'\n  },\n  BW: {\n    name: 'Botswana Pula (BWP)',\n    symbolFormat: 'P {#}',\n    currencyCode: 'BWP {#}'\n  },\n  BR: {\n    name: 'Brazilian Real (BRL)',\n    symbolFormat: 'R${#}',\n    currencyCode: 'BRL {#}'\n  },\n  GB: {\n    name: 'British Pound (GBP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'GBP {#}'\n  },\n  BN: {\n    name: 'Brunei Dollar (BND)',\n    symbolFormat: 'B${#}',\n    currencyCode: 'BND {#}'\n  },\n  BG: {\n    name: 'Bulgarian Lev (BGN)',\n    symbolFormat: 'BGN {#}',\n    currencyCode: 'BGN {#}'\n  },\n  BI: {\n    name: 'Burundi Franc (BIF)',\n    symbolFormat: '{#} FBu',\n    currencyCode: 'BIF {#}'\n  },\n  KH: {\n    name: 'Cambodia Riel (KHR)',\n    symbolFormat: 'KHR {#}',\n    currencyCode: 'KHR {#}'\n  },\n  CA: {\n    name: 'Canadian Dollar (CAD)',\n    symbolFormat: 'C${#}',\n    currencyCode: 'CAD {#}'\n  },\n  CV: {\n    name: 'Cape Verde Escudo (CVE)',\n    symbolFormat: '{#} CVE',\n    currencyCode: 'CVE {#}'\n  },\n  KYD: {\n    name: 'Cayman Islands Dollar (KYD)',\n    symbolFormat: 'CI${#}',\n    currencyCode: ' {#}'\n  },\n  XO: {\n    name: 'CFA Franc (BCEAO) (XOF)',\n    symbolFormat: 'XOF {#}',\n    currencyCode: 'XOF {#}'\n  },\n  XA: XAF,\n  BJ: XAF,\n  BF: XAF,\n  CM: XAF,\n  CF: XAF,\n  TD: XAF,\n  CG: XAF,\n  CI: XAF,\n  GQ: XAF,\n  GA: XAF,\n  GW: XAF,\n  ML: XAF,\n  NE: XAF,\n  SN: XAF,\n  TG: XAF,\n  CL: {\n    name: 'Chilean Peso (CLP)',\n    symbolFormat: 'CLP${#}',\n    currencyCode: 'CLP {#}'\n  },\n  CN: {\n    name: 'Chinese Yuan (CNY)',\n    symbolFormat: '¥{#}',\n    currencyCode: 'CNY {#}'\n  },\n  CO: {\n    name: 'Colombian Peso (COP)',\n    symbolFormat: 'COL${#}',\n    currencyCode: 'COP {#}'\n  },\n  KM: {\n    name: 'Comoros Franc (KMF)',\n    symbolFormat: 'CF {#}',\n    currencyCode: 'KMF {#}'\n  },\n  CD: {\n    name: 'Congolese Franc (CDF)',\n    symbolFormat: 'FC {#}',\n    currencyCode: 'CDF {#}'\n  },\n  CR: {\n    name: 'Costa Rica Colon (CRC)',\n    symbolFormat: '₡{#}',\n    currencyCode: 'CRC {#}'\n  },\n  HR: {\n    name: 'Croatian Kuna (HRK)',\n    symbolFormat: '{#} kn',\n    currencyCode: 'HRK {#}'\n  },\n  CU: {\n    name: 'Cuban Peso (CUP)',\n    symbolFormat: '${#}',\n    currencyCode: 'CUP {#}'\n  },\n  CZ: {\n    name: 'Czech Koruna (CZK)',\n    symbolFormat: '{#} Kč',\n    currencyCode: 'CZK {#}'\n  },\n  DK: {\n    name: 'Danish Krone (DKK)',\n    symbolFormat: '{#} Kr.',\n    currencyCode: 'DKK {#}'\n  },\n  DJ: {\n    name: 'Dijibouti Franc (DJF)',\n    symbolFormat: '{#} Fdj',\n    currencyCode: 'DJF {#}'\n  },\n  DO: {\n    name: 'Dominican Peso (DOP)',\n    symbolFormat: 'RD${#}',\n    currencyCode: 'DOP {#}'\n  },\n  AI: XCD,\n  AG: XCD,\n  DM: XCD,\n  GD: XCD,\n  MS: XCD,\n  KN: XCD,\n  LC: XCD,\n  VC: XCD,\n  EG: {\n    name: 'Egyptian Pound (EGP)',\n    symbolFormat: 'E\\xA3 {#}',\n    currencyCode: 'EGP {#}'\n  },\n  SV: {\n    name: 'El Salvador Colon (SVC)',\n    symbolFormat: '₡{#}',\n    currencyCode: 'SVC {#}'\n  },\n  ER: {\n    name: 'Eritrea Nakfa (ERN)',\n    symbolFormat: '{#} Nkf',\n    currencyCode: 'ERN {#}'\n  },\n  ET: {\n    name: 'Ethiopian Birr (ETB)',\n    symbolFormat: '{#} Br',\n    currencyCode: 'ETB {#}'\n  },\n\n  FK: {\n    name: 'Falkland Islands Pound (FKP)',\n    symbolFormat: 'FK\\xA3 {#}',\n    currencyCode: 'FKP {#}'\n  },\n  FJ: {\n    name: 'Fiji Dollar (FJD)',\n    symbolFormat: 'FJ${#}',\n    currencyCode: 'FJD {#}'\n  },\n  GM: {\n    name: 'Gambian Dalasi (GMD)',\n    symbolFormat: 'GMD {#}',\n    currencyCode: 'GMD {#}'\n  },\n  GE: {\n    name: 'Georgian Lari (GEL)',\n    symbolFormat: '₾{#}',\n    currencyCode: 'GEL {#}'\n  },\n  GH: {\n    name: 'Ghanian Cedi (GHC)',\n    symbolFormat: 'GH₵ {#}',\n    currencyCode: 'GHC {#}'\n  },\n  GI: {\n    name: 'Gibraltar Pound (GIP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'GIP {#}'\n  },\n  XAU: {\n    name: 'Gold Ounces (XAU)',\n    symbolFormat: 'XAU {#}',\n    currencyCode: 'XAU {#}'\n  },\n  GT: {\n    name: 'Guatemala Quetzal (GTQ)',\n    symbolFormat: '{#} Q',\n    currencyCode: 'GTQ {#}'\n  },\n  GG: {\n    name: 'Guernsey Pound (GGP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'GGP {#}'\n  },\n  GN: {\n    name: 'Guinea Franc (GNF)',\n    symbolFormat: 'GNF {#}',\n    currencyCode: 'GNF {#}'\n  },\n  GY: {\n    name: 'Guyana Dollar (GYD)',\n    symbolFormat: 'GY${#}',\n    currencyCode: 'GYD {#}'\n  },\n  HN: {\n    name: 'Honduras Lempira (HNL)',\n    symbolFormat: 'HNL {#}',\n    currencyCode: 'HNL {#}'\n  },\n  HK: {\n    name: 'Hong Kong Dollar (HKD)',\n    symbolFormat: 'HK${#}',\n    currencyCode: 'HKD {#}'\n  },\n  HU: {\n    name: 'Hungarian Forint (HUF)',\n    symbolFormat: '{#} Ft',\n    currencyCode: 'HUF {#}'\n  },\n  IS: {\n    name: 'Iceland Krona (ISK)',\n    symbolFormat: '{#} kr',\n    currencyCode: 'ISK {#}'\n  },\n  IN: {\n    name: 'Indian Rupee (INR)',\n    symbolFormat: '₹{#}',\n    currencyCode: 'INR {#}'\n  },\n  ID: {\n    name: 'Indonesian Rupiah (IDR)',\n    symbolFormat: 'Rp {#}',\n    currencyCode: 'IDR {#}'\n  },\n  IR: {\n    name: 'Iran Rial (IRR)',\n    symbolFormat: 'IRR {#}',\n    currencyCode: 'IRR {#}'\n  },\n  IQ: {\n    name: 'Iraqi Dinar (IQD)',\n    symbolFormat: 'IQD {#}',\n    currencyCode: 'IQD {#}'\n  },\n  IM: {\n    name: 'Isle of Man Pound (IMP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'IMP {#}'\n  },\n  IL: {\n    name: 'Israeli Shekel (ILS)',\n    symbolFormat: '₪{#}',\n    currencyCode: 'ILS {#}'\n  },\n  JM: {\n    name: 'Jamaican Dollar (JMD)',\n    symbolFormat: 'JA${#}',\n    currencyCode: 'JMD {#}'\n  },\n  JP: {\n    name: 'Japanese Yen (JPY)',\n    symbolFormat: '\\xA5{#}',\n    currencyCode: 'JPY {#}'\n  },\n  JEP: {\n    name: 'Jersey Pound (JEP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'JEP {#}'\n  },\n  JO: {\n    name: 'Jordanian Dinar (JOD)',\n    symbolFormat: 'JOD {#}',\n    currencyCode: 'JOD {#}'\n  },\n  KZ: {\n    name: 'Kazakhstan Tenge (KZT)',\n    symbolFormat: '₸{#}',\n    currencyCode: 'KZT {#}'\n  },\n  KE: {\n    name: 'Kenyan Shilling (KES)',\n    symbolFormat: 'KSh {#}',\n    currencyCode: 'KES {#}'\n  },\n  KR: {\n    name: 'Korean Won (KRW)',\n    symbolFormat: '₩{#}',\n    currencyCode: 'KRW {#}'\n  },\n  KW: {\n    name: 'Kuwaiti Dinar (KWD)',\n    symbolFormat: '{#} KD',\n    currencyCode: 'KWD {#}'\n  },\n  KG: {\n    name: 'Kyrgyzstan Som (KGS)',\n    symbolFormat: 'KGS {#}',\n    currencyCode: 'KGS {#}'\n  },\n  LA: {\n    name: 'Lao Kip (LAK)',\n    symbolFormat: '₭{#}',\n    currencyCode: 'LAK {#}'\n  },\n  LB: {\n    name: 'Lebanese Pound (LBP)',\n    symbolFormat: 'LBP {#}',\n    currencyCode: 'LBP {#}'\n  },\n  LS: {\n    name: 'Lesotho Rand (ZAR)',\n    symbolFormat: 'R{#}',\n    currencyCode: 'ZAR {#}'\n  },\n  LR: {\n    name: 'Liberian Dollar (LRD)',\n    symbolFormat: 'L${#}',\n    currencyCode: 'LRD {#}'\n  },\n  LY: {\n    name: 'Libyan Dinar (LYD)',\n    symbolFormat: '{#} LD',\n    currencyCode: 'LYD {#}'\n  },\n  MO: {\n    name: 'Macau Pataca (MOP)',\n    symbolFormat: 'MOP${#}',\n    currencyCode: 'MOP {#}'\n  },\n  MK: {\n    name: 'Macedonian Denar (MKD)',\n    symbolFormat: 'MKD {#}',\n    currencyCode: 'MKD {#}'\n  },\n  MG: {\n    name: 'Malagasy Franc (MGF)',\n    symbolFormat: 'MGF {#}',\n    currencyCode: 'MGF {#}'\n  },\n  MW: {\n    name: 'Malawi Kwacha (MWK)',\n    symbolFormat: 'MK {#}',\n    currencyCode: 'MWK {#}'\n  },\n  MY: {\n    name: 'Malaysian Ringgit (MYR)',\n    symbolFormat: 'RM {#}',\n    currencyCode: 'MYR {#}'\n  },\n  MV: {\n    name: 'Maldives Rufiyaa (MVR)',\n    symbolFormat: 'MVR {#}',\n    currencyCode: 'MVR {#}'\n  },\n  MR: {\n    name: 'Mauritania Ougulya (MRO)',\n    symbolFormat: 'MRO {#}',\n    currencyCode: 'MRO {#}'\n  },\n  MU: {\n    name: 'Mauritius Rupee (MUR)',\n    symbolFormat: 'Rs {#}',\n    currencyCode: 'MUR {#}'\n  },\n  MX: {\n    name: 'Mexican Peso (MXN)',\n    symbolFormat: '${#}',\n    currencyCode: 'MXN {#}'\n  },\n  MD: {\n    name: 'Moldovan Leu (MDL)',\n    symbolFormat: 'MDL {#}',\n    currencyCode: 'MDL {#}'\n  },\n  MN: {\n    name: 'Mongolian Tugrik (MNT)',\n    symbolFormat: 'MNT {#}',\n    currencyCode: 'MNT {#}'\n  },\n  MA: {\n    name: 'Moroccan Dirham (MAD)',\n    symbolFormat: 'MAD {#}',\n    currencyCode: 'MAD {#}'\n  },\n  MZ: {\n    name: 'Mozambique Metical (MZM)',\n    symbolFormat: 'MZM {#}',\n    currencyCode: 'MZM {#}'\n  },\n  MM: {\n    name: 'Myanmar Kyat (MMK)',\n    symbolFormat: 'K{#}',\n    currencyCode: 'MMK {#}'\n  },\n  NA: {\n    name: 'Namibian Dollar (NAD)',\n    symbolFormat: 'N${#}',\n    currencyCode: 'NAD {#}'\n  },\n  NP: {\n    name: 'Nepalese Rupee (NPR)',\n    symbolFormat: 'रू{#}',\n    currencyCode: 'NPR {#}'\n  },\n  AN: {\n    name: 'Neth Antilles Guilder (ANG)',\n    symbolFormat: 'ƒ{#}',\n    currencyCode: 'ANG {#}'\n  },\n  NZ: {\n    name: 'New Zealand Dollar (NZD)',\n    symbolFormat: 'NZ${#}',\n    currencyCode: 'NZD {#}'\n  },\n  CK: {\n    name: 'New Zealand Dollar (NZD)',\n    symbolFormat: 'NZ${#}',\n    currencyCode: 'NZD {#}'\n  },\n  NU: {\n    name: 'New Zealand Dollar (NZD)',\n    symbolFormat: 'NZ${#}',\n    currencyCode: 'NZD {#}'\n  },\n  PN: {\n    name: 'New Zealand Dollar (NZD)',\n    symbolFormat: 'NZ${#}',\n    currencyCode: 'NZD {#}'\n  },\n  NI: {\n    name: 'Nicaragua Cordoba (NIO)',\n    symbolFormat: 'C${#}',\n    currencyCode: 'NIO {#}'\n  },\n  NG: {\n    name: 'Nigerian Naira (NGN)',\n    symbolFormat: '₦{#}',\n    currencyCode: 'NGN {#}'\n  },\n  KP: {\n    name: 'North Korean Won (KPW)',\n    symbolFormat: '₩{#}',\n    currencyCode: 'KPW {#}'\n  },\n  NO: {\n    name: 'Norwegian Krone (NOK)',\n    symbolFormat: '{#} kr',\n    currencyCode: 'NOK {#}'\n  },\n  OM: {\n    name: 'Omani Rial (OMR)',\n    symbolFormat: 'OMR {#}',\n    currencyCode: 'OMR {#}'\n  },\n  PF: XPF,\n  NC: XPF,\n  WF: XPF,\n  PK: {\n    name: 'Pakistani Rupee (PKR)',\n    symbolFormat: 'Rs {#}',\n    currencyCode: 'PKR {#}'\n  },\n  XPD: {\n    name: 'Palladium Ounces (XPD)',\n    symbolFormat: 'XPD {#}',\n    currencyCode: 'XPD {#}'\n  },\n  PA: {\n    name: 'Panama Balboa (PAB)',\n    symbolFormat: 'B/. {#}',\n    currencyCode: 'PAB {#}'\n  },\n  PG: {\n    name: 'Papua New Guinea Kina (PGK)',\n    symbolFormat: 'K {#}',\n    currencyCode: 'PGK {#}'\n  },\n  PY: {\n    name: 'Paraguayan Guarani (PYG)',\n    symbolFormat: '₲{#}',\n    currencyCode: 'PYG {#}'\n  },\n  PE: {\n    name: 'Peruvian Nuevo Sol (PEN)',\n    symbolFormat: 'S/{#}',\n    currencyCode: 'PEN {#}'\n  },\n  PH: {\n    name: 'Philippine Peso (PHP)',\n    symbolFormat: '₱{#}',\n    currencyCode: 'PHP {#}'\n  },\n  XPT: {\n    name: 'Platinum Ounces (XPT)',\n    symbolFormat: 'XPT {#}',\n    currencyCode: 'XPT {#}'\n  },\n  PL: {\n    name: 'Polish Zloty (PL)',\n    symbolFormat: '{#}zł',\n    currencyCode: 'PLN {#}'\n  },\n  QA: {\n    name: 'Qatar Rial (QAR)',\n    symbolFormat: 'QAR {#}',\n    currencyCode: 'QAR {#}'\n  },\n  RO: {\n    name: 'Romanian Leu (ROL)',\n    symbolFormat: 'RON {#}',\n    currencyCode: 'ROL {#}'\n  },\n  RU: {\n    name: 'Russian Rouble (RUB)',\n    symbolFormat: '{#}₽',\n    currencyCode: 'RUB {#}'\n  },\n  RW: {\n    name: 'Rwanda Franc (RWF)',\n    symbolFormat: 'FRw {#}',\n    currencyCode: 'RWF {#}'\n  },\n  WS: {\n    name: 'Samoa Tala (WST)',\n    symbolFormat: 'WS${#}',\n    currencyCode: 'WST {#}'\n  },\n  ST: {\n    name: 'Sao Tome Dobra (STN)',\n    symbolFormat: 'STN {#}',\n    currencyCode: 'STD {#}'\n  },\n  SA: {\n    name: 'Saudi Arabian Riyal (SAR)',\n    symbolFormat: 'SAR {#}',\n    currencyCode: 'SAR {#}'\n  },\n  RS: {\n    name: 'Serbian Dinar (RSD)',\n    symbolFormat: 'RSD {#}',\n    currencyCode: 'RSD {#}'\n  },\n  SC: {\n    name: 'Seychelles Rupee (SCR)',\n    symbolFormat: 'SCR {#}',\n    currencyCode: 'SCR {#}'\n  },\n  SL: {\n    name: 'Sierra Leone Leone (SLL)',\n    symbolFormat: 'SLL {#}',\n    currencyCode: 'SLL {#}'\n  },\n  XAG: {\n    name: 'Silver Ounces (XAG)',\n    symbolFormat: 'XAG {#}',\n    currencyCode: 'XAG {#}'\n  },\n  SG: {\n    name: 'Singapore Dollar (SGD)',\n    symbolFormat: 'S${#}',\n    currencyCode: 'SGD {#}'\n  },\n  SB: {\n    name: 'Solomon Islands Dollar (SBD)',\n    symbolFormat: 'SI${#}',\n    currencyCode: 'SBD {#}'\n  },\n  SO: {\n    name: 'Somali Shilling (SOS)',\n    symbolFormat: 'SOS {#}',\n    currencyCode: 'SOS {#}'\n  },\n  TJ: {\n    name: 'Somoni (TJS)',\n    symbolFormat: '${#}',\n    currencyCode: 'USD {#}'\n  },\n  ZA: {\n    name: 'South African Rand (ZAR)',\n    symbolFormat: 'R{#}',\n    currencyCode: 'ZAR {#}'\n  },\n  LK: {\n    name: 'Sri Lanka Rupee (LKR)',\n    symbolFormat: 'Rs {#}',\n    currencyCode: 'LKR {#}'\n  },\n  SH: {\n    name: 'St Helena Pound (SHP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'SHP {#}'\n  },\n  AC: {\n    name: 'St Helena Pound (SHP)',\n    symbolFormat: '\\xA3{#}',\n    currencyCode: 'SHP {#}'\n  },\n  SS: {\n    name: 'Sudanese Pound (SSP)',\n    symbolFormat: 'SSP {#}',\n    currencyCode: 'SSP {#}'\n  },\n  SR: {\n    name: 'Surinam Dollar (SRD)',\n    symbolFormat: 'Sr${#}',\n    currencyCode: 'SRD {#}'\n  },\n  SZ: {\n    name: 'Swaziland Lilageni (SZL)',\n    symbolFormat: 'E{#}',\n    currencyCode: 'SZL {#}'\n  },\n  SE: {\n    name: 'Swedish Krona (SEK)',\n    symbolFormat: '{#} kr',\n    currencyCode: 'SEK {#}'\n  },\n  CH: {\n    name: 'Swiss Franc (CHF)',\n    symbolFormat: '{#} Fr.',\n    currencyCode: 'CHF {#}'\n  },\n  SY: {\n    name: 'Syrian Pound (SYP)',\n    symbolFormat: 'SYP {#}',\n    currencyCode: 'SYP {#}'\n  },\n  TW: {\n    name: 'Taiwan Dollar (TWD)',\n    symbolFormat: 'NT${#}',\n    currencyCode: 'TWD {#}'\n  },\n  TZ: {\n    name: 'Tanzanian Shilling (TZS)',\n    symbolFormat: 'TZS {#}',\n    currencyCode: 'TZS {#}'\n  },\n  TH: {\n    name: 'Thai Baht (THB)',\n    symbolFormat: '฿{#}',\n    currencyCode: 'THB {#}'\n  },\n  TO: {\n    name: \"Tonga Pa'anga (TOP)\",\n    symbolFormat: 'T${#}',\n    currencyCode: 'TOP {#}'\n  },\n  TT: {\n    name: 'Trinidad&Tobago Dollar (TTD)',\n    symbolFormat: 'TT${#}',\n    currencyCode: 'TTD {#}'\n  },\n  TN: {\n    name: 'Tunisian Dinar (TND)',\n    symbolFormat: 'TND {#}',\n    currencyCode: 'TND {#}'\n  },\n  TR: {\n    name: 'Turkish Lira (TRL)',\n    symbolFormat: '₺{#}',\n    currencyCode: 'TRL {#}'\n  },\n  TM: {\n    name: 'Turkmen Manat (TMM)',\n    symbolFormat: 'TMM {#}',\n    currencyCode: 'TMM {#}'\n  },\n  US: USD,\n  AS: USD,\n  IO: USD,\n  VG: USD,\n  GU: USD,\n  HT: USD,\n  MH: USD,\n  FM: USD,\n  MP: USD,\n  PW: USD,\n  PR: USD,\n  TC: USD,\n  VI: USD,\n  AE: {\n    name: 'UAE Dirham (AED)',\n    symbolFormat: 'AED {#}',\n    currencyCode: 'AED {#}'\n  },\n  UG: {\n    name: 'Ugandan Shilling (UGX)',\n    symbolFormat: 'USh {#}',\n    currencyCode: 'UGX {#}'\n  },\n  UA: {\n    name: 'Ukraine Hryvnia (UAH)',\n    symbolFormat: '₴{#}',\n    currencyCode: 'UAH {#}'\n  },\n  UY: {\n    name: 'Uruguayan New Peso (UYU)',\n    symbolFormat: '${#}',\n    currencyCode: 'UYU {#}'\n  },\n  UZ: {\n    name: 'Uzbekistani Sum (UZS)',\n    symbolFormat: '{#} soʻm',\n    currencyCode: 'UZS {#}'\n  },\n  VU: {\n    name: 'Vanuatu Vatu (VUV)',\n    symbolFormat: '{#}VT',\n    currencyCode: 'VUV {#}'\n  },\n  VE: {\n    name: 'Venezuelan Bolivar (VEB)',\n    symbolFormat: '{#} Bs.',\n    currencyCode: 'VEB {#}'\n  },\n  VN: {\n    name: 'Vietnam Dong (VND)',\n    symbolFormat: '{#}₫',\n    currencyCode: 'VND {#}'\n  },\n  YE: {\n    name: 'Yemen Riyal (YER)',\n    symbolFormat: 'YER {#}',\n    currencyCode: 'YER {#}'\n  },\n  YU: {\n    name: 'Yugoslav Dinar (YUM)',\n    symbolFormat: 'YUM {#}',\n    currencyCode: 'YUM {#}'\n  },\n  ZR: {\n    name: 'Zaire New Zaire (ZRN)',\n    symbolFormat: 'ZRN {#}',\n    currencyCode: 'ZRN {#}'\n  },\n  ZM: {\n    name: 'Zambian Kwacha (ZMK)',\n    symbolFormat: 'ZMK {#}',\n    currencyCode: 'ZMK {#}'\n  },\n  ZW: {\n    name: 'Zimbabwe Dollar (ZWD)',\n    symbolFormat: 'Z${#}',\n    currencyCode: 'ZWD {#}'\n  },\n  AD: EURO,\n  AT: EURO,\n  BE: EURO,\n  CY: EURO,\n  EE: EURO,\n  FI: EURO,\n  FR: EURO,\n  DE: EURO,\n  GR: EURO,\n  IE: EURO,\n  IT: EURO,\n  XK: EURO,\n  LV: EURO,\n  LT: EURO,\n  LU: EURO,\n  MT: EURO,\n  MC: EURO,\n  ME: EURO,\n  NL: EURO,\n  PT: EURO,\n  SM: EURO,\n  SK: EURO,\n  SI: EURO,\n  ES: EURO,\n  VA: EURO\n};\n","import { getLocale } from '../common';\nimport { currencyMap } from './currency-map';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction NumberFormatter(value, { locale = 'en-US', decPlaces = 2, style = '', currency = 'USD' } = {}) {\n  const currentLocale = getLocale(locale);\n  if (value !== null && value !== undefined) {\n    return Number(value).toLocaleString(currentLocale, {\n      minimumFractionDigits: decPlaces,\n      maximumFractionDigits: decPlaces\n    });\n  }\n  return value;\n}\n\nfunction CurrencyFormatter(\n  value,\n  { symbol = true, position = 'before', locale = 'en-US', decPlaces = 2, style = 'currency', currency = 'USD' } = {}\n) {\n  const currentLocale = getLocale(locale);\n  let formattedValue = value;\n  if (value !== null && value !== undefined && value !== '') {\n    formattedValue = NumberFormatter(value, {\n      locale: currentLocale,\n      decPlaces,\n      style,\n      currency\n    });\n\n    // For currency other than EUR, we need to determine the country code from currency code\n    // If currency is EUR, we use the locale to determine the country code\n    let countryCode: string | undefined;\n    if (currency !== 'EUR') {\n      countryCode = currency.substring(0, 2);\n    } else {\n      countryCode = currentLocale?.split('-')[1].toUpperCase();\n    }\n\n    // If countryCode is still undefined, setting it as US\n    if (!countryCode) {\n      countryCode = 'US';\n    }\n\n    let code;\n    if (symbol) {\n      code = currencyMap[countryCode]?.symbolFormat;\n    } else {\n      code = currencyMap[countryCode]?.currencyCode;\n    }\n\n    // if position is provided, change placeholder accordingly.\n    if (position && code) {\n      if (position.toLowerCase() === 'before' && code.startsWith('{#}')) {\n        code = code.slice(3) + code.slice(0, 3);\n      } else if (position.toLowerCase() === 'after' && code.endsWith('{#}')) {\n        code = code.slice(-3) + code.slice(0, -3);\n      }\n    }\n    return code?.replace('{#}', formattedValue) || formattedValue;\n  }\n  return formattedValue;\n}\n\nfunction SymbolFormatter(value, { symbol = '$', suffix = true, locale = 'en-US' } = {}) {\n  let formattedValue = value;\n  if (value !== null && value !== undefined) {\n    formattedValue = NumberFormatter(value, { locale });\n    return suffix ? `${formattedValue}${symbol}` : `${symbol}${formattedValue}`;\n  }\n  return formattedValue;\n}\n\nexport const formatters = {\n  Currency: (value, options) => CurrencyFormatter(value, options),\n  'Currency-Code': (value, options) => CurrencyFormatter(value, { ...options, symbol: false }),\n  Decimal: (value, options) => NumberFormatter(value, options),\n  'Decimal-Auto': (value, options) =>\n    NumberFormatter(value, {\n      ...options,\n      decPlaces: Number.isInteger(value) ? 0 : 2\n    }),\n  Integer: (value, options) => NumberFormatter(value, { ...options, decPlaces: 0 }),\n  Percentage: (value, options) => SymbolFormatter(value, { ...options, symbol: '%' })\n};\n","import { formatters } from './formatters/format-utils';\nimport { currencyMap } from './formatters/currency-map';\n\nexport const getCurrencyOptions = (inISOCode: string) => {\n  const operatorLocale = PCore.getEnvironmentInfo().getUseLocale() || PCore.getEnvironmentInfo().getLocale() || 'en-US';\n\n  let currMapToUse = currencyMap.US;\n  let localeToUse = operatorLocale;\n\n  // Determine CurrencyMap lookup based on ISO code (if specified).\n  //  If no ISO code, use locale\n  //  If no locale, default to US\n  if (inISOCode) {\n    if (inISOCode === 'EUR') {\n      currMapToUse = currencyMap.NL;\n      localeToUse = 'nl-NL';\n    } else {\n      // For all other ISO codes, use first 2 characters as the lookup from CurrencyMap\n      const countryCode = inISOCode.substring(0, 2);\n      currMapToUse = currencyMap[countryCode];\n    }\n  } else if (operatorLocale) {\n    // No ISO Code so check for operator locale (and force upper case for lookup)\n    const countryCode = operatorLocale.substring(3).toUpperCase();\n    currMapToUse = currencyMap[countryCode];\n  } else {\n    // no ISO code and no operator locale, default to US\n    currMapToUse = currencyMap.US;\n  }\n\n  // If no currMapToUse at this point, default to US as a failsafe\n  if (!currMapToUse) {\n    currMapToUse = currencyMap.US;\n  }\n\n  const theCode = currMapToUse.currencyCode.substring(0, 3);\n  return { locale: localeToUse, style: 'currency', currency: theCode };\n};\n\nexport const getCurrencyCharacters = (inISOCode: string) => {\n  const theCurrencyChars = {\n    theCurrencySymbol: '$',\n    theDecimalIndicator: '.',\n    theDigitGroupSeparator: ','\n  };\n\n  const theCurrencyOptions = getCurrencyOptions(inISOCode);\n\n  const testValue = 1234.56;\n  const formattedString = formatters.Currency(testValue, theCurrencyOptions);\n\n  // console.log(`formattedString: ${formattedString}`);\n\n  // Here, we have the formatted string (ex: $1,234.56) where:\n  //  Currency symbol = formattedString[0]\n  //  Separator = formattedString[2]\n  //  DecimalIndicator = formattedString[6];\n\n  theCurrencyChars.theCurrencySymbol = formattedString[0];\n  theCurrencyChars.theDigitGroupSeparator = formattedString[2];\n  theCurrencyChars.theDecimalIndicator = formattedString[6];\n\n  // console.log(`theCurrencyChars: symbol: ${theCurrencyChars.theCurrencySymbol} | theDigitGroupSeparator: ${theCurrencyChars.theDigitGroupSeparator} | theDecimalIndicator: ${theCurrencyChars.theDecimalIndicator}`);\n\n  return theCurrencyChars;\n};\n","function Boolean(value, { allowEmpty = true, tick = '', cross = '' } = {}) {\n  if ((!allowEmpty && !value) || value === false || value?.toString()?.toLowerCase() === 'false' || value === 0 || value === '0') {\n    return cross || '';\n  }\n  if (value === true || value?.toString()?.toLowerCase() === 'true' || value === 1 || value === '1') {\n    return tick || '';\n  }\n  if (allowEmpty && (value === 'null' || value === '' || value === null || typeof value === 'undefined')) {\n    return '- -';\n  }\n  return value;\n}\n\nexport const BooleanFormatters = {\n  TrueFalse: (value, options) =>\n    Boolean(value, {\n      ...options,\n      tick: options.trueLabel || 'True',\n      cross: options.falseLabel || 'False'\n    })\n};\n","export function getLocale(locale: string = '') {\n  // use locale if specified\n  if (locale) return locale;\n  // otherwise, use operator locale if it's defined\n  if (PCore.getEnvironmentInfo().getLocale()) return PCore.getEnvironmentInfo().getLocale();\n  // fallback\n  return Intl.DateTimeFormat().resolvedOptions().locale;\n}\n\nexport function getCurrentTimezone(timezone?: string) {\n  // use timezone if specified\n  if (timezone) return timezone;\n  return PCore?.getLocaleUtils?.().getTimeZoneInUse?.();\n}\n","import { getLocale } from './common';\nimport { currencyMap } from './currency-map';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction NumberFormatter(value, { locale = 'en-US', decPlaces = 2, style = '', currency = 'USD' } = {}): string {\n  const currentLocale: string | undefined = getLocale(locale);\n  if (value !== null && value !== undefined) {\n    return Number(value).toLocaleString(currentLocale, {\n      minimumFractionDigits: decPlaces,\n      maximumFractionDigits: decPlaces\n    });\n  }\n  return value;\n}\n\nfunction CurrencyFormatter(\n  value: string,\n  { symbol = true, position = 'before', locale = 'en-US', decPlaces = 2, style = 'currency', currency = 'USD' } = {}\n): string {\n  const currentLocale: string | undefined = getLocale(locale);\n  let formattedValue: string = value;\n  if (value !== null && value !== undefined && value !== '') {\n    formattedValue = NumberFormatter(value, {\n      locale: currentLocale,\n      decPlaces,\n      style,\n      currency\n    });\n\n    let countryCode: string | undefined = currentLocale?.split('-')[1].toUpperCase();\n\n    // If countryCode is still undefined, setting it as US\n    if (!countryCode) {\n      countryCode = 'US';\n    }\n\n    let code: string;\n    if (symbol) {\n      code = currencyMap[countryCode]?.symbolFormat;\n    } else {\n      code = currencyMap[countryCode]?.currencyCode;\n    }\n\n    // if position is provided, change placeholder accordingly.\n    if (position && code) {\n      if (position.toLowerCase() === 'before' && code.startsWith('{#}')) {\n        code = code.slice(3) + code.slice(0, 3);\n      } else if (position.toLowerCase() === 'after' && code.endsWith('{#}')) {\n        code = code.slice(-3) + code.slice(0, -3);\n      }\n    }\n    return code?.replace('{#}', formattedValue) || formattedValue;\n  }\n  return formattedValue;\n}\n\nfunction SymbolFormatter(value, { symbol = '$', suffix = true, locale = 'en-US' } = {}): string {\n  let formattedValue: string = value;\n  if (value !== null && value !== undefined) {\n    formattedValue = NumberFormatter(value, { locale });\n    return suffix ? `${formattedValue}${symbol}` : `${symbol}${formattedValue}`;\n  }\n  return formattedValue;\n}\n\nexport const CurrencyFormatters = {\n  Currency: (value, options) => CurrencyFormatter(value, options),\n  'Currency-Code': (value, options) => CurrencyFormatter(value, { ...options, symbol: false }),\n  Decimal: (value, options) => NumberFormatter(value, options),\n  'Decimal-Auto': (value, options) =>\n    NumberFormatter(value, {\n      ...options,\n      decPlaces: Number.isInteger(value) ? 0 : 2\n    }),\n  Integer: (value, options) => NumberFormatter(value, { ...options, decPlaces: 0 }),\n  Percentage: (value, options) => SymbolFormatter(value, { ...options, symbol: '%' })\n};\n","import dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport utc from 'dayjs/plugin/utc';\nimport tzone from 'dayjs/plugin/timezone';\n\ndayjs.extend(relativeTime);\ndayjs.extend(localizedFormat);\ndayjs.extend(utc);\ndayjs.extend(tzone);\n\nconst types = ['fromNow', 'customFormat'];\n\n// value should be in ISO 8601 format.\nfunction DateFormatter(value: string, { type = types[1], format = 'DD/MM/YYYY', timezone = 'America/New_York' } = {}) {\n  if (!value) return value;\n  switch (type) {\n    case types[1]:\n      if (timezone) return dayjs(value).tz(timezone).format(format);\n      return dayjs(value).format(format);\n    case types[0]:\n      return dayjs(value).from(dayjs());\n    default:\n      return value;\n  }\n}\n// value should be in hh:mm:ss format (00:00:00 - 23:59:59).\nfunction TimeFormatter(value, options) {\n  if (!value) return value;\n  const { locale = 'en-US' } = options;\n  const timeOnlyRegex = /^(?:[01]\\d|2[0123]):(?:[012345]\\d):(?:[012345]\\d)$/;\n  if (value.length === 8 && timeOnlyRegex.test(value)) {\n    const tempDate = new Date();\n    const hours = parseInt(value.substr(0, 2), 10);\n    const minutes = parseInt(value.substr(3, 2), 10);\n    const seconds = parseInt(value.substr(6, 2), 10);\n    tempDate.setHours(hours);\n    tempDate.setMinutes(minutes);\n    tempDate.setSeconds(seconds);\n    return tempDate.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit' });\n  }\n  return DateFormatter(value, options);\n}\n\nexport const DateFormatters = {\n  'DateTime-Long': (value, options) => DateFormatter(value, { ...options, type: 'customFormat', format: 'LLL' }),\n  'DateTime-Short': (value, options) =>\n    DateFormatter(value, {\n      ...options,\n      type: 'customFormat',\n      format: 'MMM DD, YYYY'\n    }),\n  'DateTime-Since': value => DateFormatter(value, { type: 'fromNow' }),\n  'Time-Only': (value, options) =>\n    TimeFormatter(value, {\n      type: 'customFormat',\n      format: 'hh:mm:ss A',\n      ...options\n    }),\n  convertToTimezone: (value, options) => {\n    return value && options && options.timezone\n      ? DateFormatter(value, {\n          ...options,\n          type: 'customFormat',\n          format: 'YYYY-MM-DDTHH:mm:ss'\n        })\n      : value;\n  },\n  convertFromTimezone: (value, timezone) => (value && timezone ? dayjs.tz(value, timezone).utc().format() : value),\n  Date: (value, options) => DateFormatter(value, { type: 'customFormat', ...options })\n};\n","import { BooleanFormatters } from './boolean';\nimport { CurrencyFormatters } from './currency';\nimport { DateFormatters } from './date';\nimport { getCurrentTimezone, getLocale } from './common';\n\nexport const CommonFormatters = {\n  ...BooleanFormatters,\n  ...CurrencyFormatters,\n  ...DateFormatters\n};\n\nfunction getDateObject(text): Date {\n  // TODO - cleanup formatters util functions as DX APIs are returning values per ISO std now.\n  const timeStamp = text.replace(/-/g, '');\n  const isDateTime = timeStamp.indexOf('GMT') !== -1;\n  const year = parseInt(timeStamp.substr(0, 4), 10);\n  const month = parseInt(timeStamp.substr(4, 2), 10) - 1;\n  const day = parseInt(timeStamp.substr(6, 2), 10);\n\n  const date = new Date();\n\n  date.setDate(day);\n  date.setMonth(month);\n  date.setFullYear(year);\n\n  if (isDateTime) {\n    const hours = parseInt(timeStamp.substr(9, 2), 10);\n    const minutes = parseInt(timeStamp.substr(11, 2), 10);\n    const seconds = parseInt(timeStamp.substr(13, 2), 10);\n    const ms = parseInt(timeStamp.substr(16, 3), 10);\n    date.setHours(hours);\n    date.setMinutes(minutes);\n    date.setSeconds(seconds);\n    date.setMilliseconds(ms);\n  }\n\n  return date;\n}\n\nfunction isIsoDate(str) {\n  if (!/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/.test(str)) return false;\n  const d = new Date(str);\n  return d.toISOString() === str;\n}\n\nfunction parseDateInISO(value) {\n  const isMilliSeconds = /^[0-9]+$/.exec(value);\n  if (isMilliSeconds) {\n    const date = new Date(parseInt(value, 10));\n    return date.toISOString();\n  }\n\n  if (isIsoDate(value)) {\n    const date = new Date(value);\n    return date.toISOString();\n  }\n\n  return value ? getDateObject(value).toISOString() : value;\n}\n\nexport function format(value, type, options = {}): string {\n  let formattedValue: string;\n\n  switch (type?.toLowerCase()) {\n    case 'currency': {\n      const defaultOptions = {\n        locale: getLocale(),\n        position: 'before',\n        decPlaces: 2\n      };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = CurrencyFormatters.Currency(value, params);\n      break;\n    }\n\n    case 'percentage': {\n      const defaultOptions = { locale: getLocale(), decPlaces: 2 };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = CurrencyFormatters.Percentage(value, params);\n      break;\n    }\n\n    case 'decimal': {\n      const defaultOptions = { locale: getLocale(), decPlaces: 2 };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = CurrencyFormatters.Decimal(value, params);\n      break;\n    }\n\n    case 'integer': {\n      const defaultOptions = { locale: getLocale() };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = CurrencyFormatters.Integer(value, params);\n      break;\n    }\n\n    case 'date': {\n      const defaultOptions = {\n        format: 'MMM DD, YYYY',\n        timezone: getCurrentTimezone()\n      };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = DateFormatters.Date(parseDateInISO(value), params);\n      break;\n    }\n\n    case 'datetime': {\n      const defaultOptions = {\n        format: 'MMM DD, YYYY h:mm A',\n        timezone: getCurrentTimezone()\n      };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = DateFormatters.Date(parseDateInISO(value), params);\n      break;\n    }\n\n    case 'boolean':\n    case 'checkbox': {\n      formattedValue = BooleanFormatters.TrueFalse(value, { allowEmpty: false, ...options });\n      break;\n    }\n\n    case 'userreference': {\n      formattedValue = value.userName;\n      break;\n    }\n\n    case 'timeonly': {\n      const defaultOptions = {\n        locale: getLocale(),\n        format: 'hh:mm A',\n        timezone: getCurrentTimezone()\n      };\n      const params = { ...defaultOptions, ...options };\n      formattedValue = DateFormatters['Time-Only'](value, params);\n      break;\n    }\n\n    default:\n      formattedValue = value;\n  }\n  return formattedValue;\n}\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { NgxCurrencyDirective, NgxCurrencyInputMode } from 'ngx-currency';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { getCurrencyCharacters, getCurrencyOptions } from '../../../_helpers/currency-utils';\nimport { format } from '../../../_helpers/formatters';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface CurrrencyProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Currency here\n  currencyISOCode?: string;\n  allowDecimals: boolean;\n  formatter?: string;\n}\n\n@Component({\n  selector: 'app-currency',\n  templateUrl: './currency.component.html',\n  styleUrls: ['./currency.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, NgxCurrencyDirective, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CurrencyComponent extends FieldBase {\n  configProps$: CurrrencyProps;\n  override fieldControl = new FormControl<number | null>(null, { updateOn: 'blur' });\n\n  currencyOptions: object = {};\n  currencySymbol: string;\n  thousandSeparator: string;\n  decimalSeparator: string;\n  decimalPrecision: number | undefined;\n  formattedValue: string;\n  formatter;\n  inputMode = NgxCurrencyInputMode.Natural;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CurrrencyProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    if (value) {\n      this.value$ = typeof value === 'string' ? parseFloat(value) : value;\n      this.fieldControl.setValue(this.value$);\n    }\n\n    // update currency properties\n    this.updateCurrencyProperties(this.configProps$);\n  }\n\n  /**\n   * Updates the currency properties\n   *\n   * @param {Object} configProps - Configuration properties.\n   * @param {boolean} configProps.allowDecimals - Whether to allow decimal values.\n   * @param {string} configProps.currencyISOCode - The ISO code of the currency.\n   * @param {string} configProps.formatter - The formatter type (e.g., 'currency').\n   */\n  protected updateCurrencyProperties(configProps): void {\n    const { allowDecimals, currencyISOCode = 'USD', formatter } = configProps;\n\n    const theSymbols = getCurrencyCharacters(currencyISOCode);\n    this.currencySymbol = theSymbols.theCurrencySymbol;\n    this.thousandSeparator = theSymbols.theDigitGroupSeparator;\n    this.decimalSeparator = theSymbols.theDecimalIndicator;\n    this.decimalPrecision = allowDecimals ? 2 : 0;\n\n    if (['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(this.displayMode$)) {\n      this.formattedValue = format(this.value$, formatter ? formatter.toLowerCase() : 'currency', getCurrencyOptions(currencyISOCode));\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const actionsApi = this.pConn$?.getActionsApi();\n      const propName = this.pConn$?.getStateProps().value;\n      let value = event?.target?.value;\n      value = value?.substring(1);\n      // replacing thousand separator with empty string as not required in api call\n      const thousandSep = this.thousandSeparator === '.' ? '\\\\.' : this.thousandSeparator;\n      let regExp = new RegExp(String.raw`${thousandSep}`, 'g');\n      value = value?.replace(regExp, '');\n      // replacing decimal separator with '.'\n      if (this.decimalSeparator !== '.') {\n        regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');\n        value = value.replace(regExp, '.');\n      }\n      handleEvent(actionsApi, 'changeNblur', propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\" class=\"psdk-currency-field\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <div class=\"psdk-currency-input\">\n          <input\n            style=\"margin-left: 5px; margin-top: -1rem\"\n            type=\"text\"\n            matInput\n            currencyMask\n            [options]=\"{\n              prefix: currencySymbol,\n              thousands: thousandSeparator,\n              decimal: decimalSeparator,\n              align: 'left',\n              nullable: true,\n              precision: decimalPrecision,\n              inputMode: inputMode\n            }\"\n            [placeholder]=\"placeholder\"\n            [formControlName]=\"controlName$\"\n            [required]=\"bRequired$\"\n            [formControl]=\"fieldControl\"\n            [attr.data-test-id]=\"testId\"\n            (blur)=\"fieldOnBlur($event)\"\n            [readonly]=\"bReadonly$\"\n          />\n        </div>\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { getLocale } from './common';\n\nexport const dateFormatInfoDefault = {\n  dateFormatString: 'MM/DD/YYYY',\n  dateFormatStringLong: 'MMM DD, YYYY',\n  dateFormatStringLC: 'mm/dd/yyyy',\n  dateFormatMask: '__/__/____'\n};\n\nexport const getDateFormatInfo = () => {\n  const localizedVal = PCore?.getLocaleUtils().getLocaleValue;\n  const localeCategory = 'CosmosFields';\n  const theDateFormatInfo = dateFormatInfoDefault;\n  const theLocale = getLocale();\n\n  // NOTE: this date was chosen since it has a day larger than 12. If you change it,\n  //  you'll need to change the indexOf values below!\n  const theTestDate = new Date(Date.parse('30 November 2023 12:00:00 GMT'));\n  const theTestDateLocaleString = new Intl.DateTimeFormat(theLocale).format(theTestDate);\n\n  // console.log(`theLocale: ${theLocale} theTestDateLocaleString: ${theTestDateLocaleString}`);\n\n  // Build the format string based on where '11' (mm), '30' (dd), and '2023' (yyyy) are\n  //  Example: US locations are 0, 3, 6 but for NL locations are 3, 0, 6\n  const locMM = theTestDateLocaleString.indexOf('11');\n  const locDD = theTestDateLocaleString.indexOf('30');\n  const locYYYY = theTestDateLocaleString.indexOf('2023');\n\n  // If localized placeholder exists for one of day/month/year then show it otherwise fall back to ddmmyyyy\n  const localizedPlaceholderExists =\n    localizedVal('month_placeholder', localeCategory) !== 'month_placeholder' ||\n    localizedVal('day_placeholder', localeCategory) !== 'day_placeholder' ||\n    localizedVal('year_placeholder', localeCategory) !== 'year_placeholder';\n\n  const arrPieces = [\n    {\n      loc: locMM,\n      format: 'MM',\n      longFormat: 'MMM',\n      placeholder: localizedPlaceholderExists ? localizedVal('month_placeholder', localeCategory) : 'mm',\n      mask: '__',\n      separator: theTestDateLocaleString[locMM + 2]\n    },\n    {\n      loc: locDD,\n      format: 'DD',\n      longFormat: 'DD',\n      placeholder: localizedPlaceholderExists ? localizedVal('day_placeholder', localeCategory) : 'dd',\n      mask: '__',\n      separator: theTestDateLocaleString[locDD + 2]\n    },\n    {\n      loc: locYYYY,\n      format: 'YYYY',\n      longFormat: 'YYYY',\n      placeholder: localizedPlaceholderExists ? localizedVal('year_placeholder', localeCategory) : 'yyyy',\n      mask: '____',\n      separator: theTestDateLocaleString[locYYYY + 4]\n    }\n  ];\n\n  // Sort the associative array by order of appearance (loc) of each piece\n  arrPieces.sort((a, b) => {\n    if (a.loc < b.loc) return -1;\n    if (a.loc > b.loc) return 1;\n    return 0;\n  });\n\n  // Construct the structure to return...\n  theDateFormatInfo.dateFormatString = `${arrPieces[0].format}${arrPieces[0].separator}${arrPieces[1].format}${arrPieces[1].separator}${arrPieces[2].format}`;\n  theDateFormatInfo.dateFormatStringLong = `${arrPieces[0].longFormat} ${arrPieces[1].longFormat}, ${arrPieces[2].longFormat}`;\n  theDateFormatInfo.dateFormatStringLC = `${arrPieces[0].placeholder}${arrPieces[0].separator}${arrPieces[1].placeholder}${arrPieces[1].separator}${arrPieces[2].placeholder}`;\n  theDateFormatInfo.dateFormatMask = `${arrPieces[0].mask}${arrPieces[0].separator}${arrPieces[1].mask}${arrPieces[1].separator}${arrPieces[2].mask}`;\n\n  return theDateFormatInfo;\n};\n","import { Component, OnInit, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateModule } from '@angular/material-moment-adapter';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getDateFormatInfo } from '../../../_helpers/date-format-utils';\nimport { format } from '../../../_helpers/formatters';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface DateProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Date here\n}\n\nclass MyFormat {\n  theDateFormat = getDateFormatInfo();\n\n  get display() {\n    return {\n      dateInput: this.theDateFormat.dateFormatString,\n      monthYearLabel: 'MMM YYYY',\n      dateA11yLabel: 'LL',\n      monthYearA11yLabel: 'MMMM YYYY'\n    };\n  }\n\n  get parse() {\n    return {\n      dateInput: this.theDateFormat.dateFormatString\n    };\n  }\n}\n\n@Component({\n  selector: 'app-date',\n  templateUrl: './date.component.html',\n  styleUrls: ['./date.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    MomentDateModule,\n    forwardRef(() => ComponentMapperComponent)\n  ],\n  providers: [{ provide: MAT_DATE_FORMATS, useClass: MyFormat }]\n})\nexport class DateComponent extends FieldBase implements OnInit, OnDestroy {\n  configProps$: DateProps;\n\n  theDateFormat = getDateFormatInfo();\n  formattedValue$: any;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DateProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    this.value$ = value;\n\n    // Format value for display modes\n    if (['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(this.displayMode$)) {\n      this.formattedValue$ = format(this.value$, 'date', {\n        format: this.theDateFormat.dateFormatString\n      });\n    }\n  }\n\n  fieldOnDateChange(event: any) {\n    // this comes from the date pop up\n    const value = event?.target?.value.format('YYYY-MM-DD');\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    this.pConn$.clearErrorMessages({\n      property: this.propName\n    });\n  }\n\n  hasErrors() {\n    return this.fieldControl.status === 'INVALID';\n  }\n\n  override getErrorMessage() {\n    // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n    if (this.fieldControl.hasError('message')) {\n      return this.angularPConnectData.validateMessage ?? '';\n    }\n\n    if (this.fieldControl.hasError('required')) {\n      return 'You must enter a value';\n    }\n\n    if (this.fieldControl.errors) {\n      return `${this.fieldControl.errors['matDatepickerParse'].text} is not a valid date value`;\n    }\n\n    return '';\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          #dateInput\n          [attr.data-test-id]=\"testId\"\n          [matDatepicker]=\"pegadate\"\n          [placeholder]=\"theDateFormat.dateFormatStringLC\"\n          type=\"text\"\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [disabled]=\"bDisabled$\"\n          [formControl]=\"fieldControl\"\n          (dateChange)=\"fieldOnDateChange($event)\"\n        />\n        <mat-datepicker-toggle matSuffix [for]=\"pegadate\" [disabled]=\"bDisabled$\"></mat-datepicker-toggle>\n        <mat-datepicker #pegadate [startAt]=\"value$\" xPosition=\"end\"></mat-datepicker>\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, forwardRef, OnDestroy, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';\nimport dayjs from 'dayjs';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getDateFormatInfo } from '../../../_helpers/date-format-utils';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { DateFormatters } from '../../../_helpers/formatters/date';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface DateTimeProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on DateTime here\n}\n\n@Component({\n  selector: 'app-date-time',\n  templateUrl: './date-time.component.html',\n  styleUrls: ['./date-time.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatDatepickerModule,\n    OwlDateTimeModule,\n    OwlNativeDateTimeModule,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class DateTimeComponent extends FieldBase implements OnInit, OnDestroy {\n  configProps$: DateTimeProps;\n\n  stepHour = 1;\n  stepMinute = 1;\n  stepSecond = 1;\n  public color = 'primary';\n  formattedValue$: any;\n  theDateFormat = getDateFormatInfo();\n  timezone = PCore.getEnvironmentInfo()?.getTimeZone();\n  override placeholder = `${this.theDateFormat.dateFormatStringLC}, hh:mm A`;\n\n  private sso = inject(ScrollStrategyOptions);\n  scrollStrategy = this.sso.reposition();\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    if (this.formGroup$) {\n      let dateTimeValue = this.value$ ?? '';\n\n      if (this.value$) {\n        dateTimeValue = dayjs(DateFormatters?.convertToTimezone(this.value$, { timezone: this.timezone }))?.toISOString();\n      }\n      this.fieldControl.setValue(dateTimeValue);\n    }\n  }\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DateTimeProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract the value property\n    const { value } = this.configProps$;\n\n    // Update component properties\n    this.value$ = value;\n    let dateTimeValue = value ?? '';\n    if (this.value$) {\n      dateTimeValue = dayjs(DateFormatters?.convertToTimezone(this.value$, { timezone: this.timezone }))?.toISOString();\n    }\n    this.fieldControl.setValue(dateTimeValue);\n\n    if (['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(this.displayMode$)) {\n      this.formattedValue$ = this.generateDateTime(this.value$);\n    }\n  }\n\n  generateDateTime(sVal): string {\n    if (!sVal) return '';\n    if (sVal.length === 10) return this.utils.generateDate(sVal, 'Date-Long-Custom-YYYY');\n    return this.utils.generateDateTime(sVal, 'DateTime-Long-YYYY-Custom');\n  }\n\n  fieldOnDateChange(event: any) {\n    // this comes from the date pop up\n    if (typeof event.value === 'object') {\n      // convert date to pega \"date\" format\n      const dateTime = dayjs(event.value?.toISOString());\n      const timeZoneDateTime = (dayjs as any).tz(dateTime.format('YYYY-MM-DDTHH:mm:ss'), this.timezone);\n      event.value = timeZoneDateTime && timeZoneDateTime.isValid() ? timeZoneDateTime.toISOString() : '';\n    }\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, event.value);\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [owlDateTime]=\"dtPicker\"\n          [attr.data-test-id]=\"testId\"\n          [placeholder]=\"placeholder\"\n          [formControl]=\"fieldControl\"\n          (dateTimeChange)=\"fieldOnDateChange($event)\"\n          [required]=\"bRequired$\"\n          [readonly]=\"bDisabled$\"\n        />\n        <mat-datepicker-toggle matSuffix [owlDateTimeTrigger]=\"dtPicker\"></mat-datepicker-toggle>\n        <owl-date-time #dtPicker [disabled]=\"bDisabled$\" [scrollStrategy]=\"scrollStrategy\"></owl-date-time>\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'date-time' }\"></component-mapper>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { NgxCurrencyDirective, NgxCurrencyInputMode } from 'ngx-currency';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { getCurrencyCharacters, getCurrencyOptions } from '../../../_helpers/currency-utils';\nimport { format } from '../../../_helpers/formatters';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface DecimalProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Decimal here\n  currencyISOCode?: string;\n  decimalPrecision?: number;\n  showGroupSeparators?: string;\n  formatter?: string;\n}\n\n@Component({\n  selector: 'app-decimal',\n  templateUrl: './decimal.component.html',\n  styleUrls: ['./decimal.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    NgxCurrencyDirective,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class DecimalComponent extends FieldBase {\n  configProps$: DecimalProps;\n  override fieldControl = new FormControl<number | null>(null, null);\n\n  decimalSeparator: string;\n  thousandSeparator: string;\n  currencySymbol = '';\n  decimalPrecision: number | undefined;\n  formatter;\n  formattedValue: any;\n  inputMode: any = NgxCurrencyInputMode.Natural;\n  suffix = '';\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DecimalProps;\n\n    // Update common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    if (value) {\n      this.value$ = typeof value === 'string' ? parseFloat(value) : value;\n      this.fieldControl.setValue(this.value$);\n    }\n\n    // updates decimal properties\n    this.updateDecimalProperties(this.configProps$);\n  }\n\n  /**\n   * Updates decimal properties based on the provided configuration.\n   *\n   * @param {Object} configProps - Configuration properties.\n   * @param {string} configProps.currencyISOCode - ISO code of the currency.\n   * @param {string} configProps.formatter - Formatter type (e.g., 'decimal', 'currency').\n   * @param {boolean} configProps.showGroupSeparators - Whether to show group separators.\n   */\n  protected updateDecimalProperties(configProps): void {\n    const { currencyISOCode = '', formatter, showGroupSeparators } = configProps;\n\n    // Extract currency symbols and options\n    const theSymbols = getCurrencyCharacters(currencyISOCode);\n    this.decimalSeparator = theSymbols.theDecimalIndicator;\n    this.thousandSeparator = showGroupSeparators ? theSymbols.theDigitGroupSeparator : '';\n\n    const theCurrencyOptions = getCurrencyOptions(currencyISOCode);\n    const formatterLower = formatter?.toLowerCase() || 'decimal';\n    this.formattedValue = format(this.value$, formatterLower, theCurrencyOptions);\n\n    if (this.bReadonly$ && formatter === 'Currency') {\n      this.currencySymbol = theSymbols.theCurrencySymbol;\n    }\n\n    if (this.bReadonly$ && formatter === 'Percentage') {\n      this.suffix = '%';\n    }\n\n    this.decimalPrecision = this.configProps$?.decimalPrecision ?? 2;\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const actionsApi = this.pConn$?.getActionsApi();\n      const propName = this.pConn$?.getStateProps().value;\n      let value = event?.target?.value;\n      // replacing thousand separator with empty string as not required in api call\n      if (this.configProps$.showGroupSeparators) {\n        const thousandSep = this.thousandSeparator === '.' ? '\\\\.' : this.thousandSeparator;\n        const regExp = new RegExp(String.raw`${thousandSep}`, 'g');\n        value = value?.replace(regExp, '');\n      }\n      // replacing decimal separator with '.'\n      if (this.decimalSeparator !== '.') {\n        const regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');\n        value = value.replace(regExp, '.');\n      }\n      handleEvent(actionsApi, 'changeNblur', propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          type=\"text\"\n          matInput\n          currencyMask\n          [options]=\"{\n            prefix: currencySymbol,\n            suffix: suffix,\n            thousands: thousandSeparator,\n            decimal: decimalSeparator,\n            align: 'left',\n            nullable: true,\n            precision: decimalPrecision,\n            inputMode: inputMode\n          }\"\n          [placeholder]=\"placeholder\"\n          step=\"0.01\"\n          [formControlName]=\"controlName$\"\n          [required]=\"bRequired$\"\n          [formControl]=\"fieldControl\"\n          [attr.data-test-id]=\"testId\"\n          (blur)=\"fieldOnBlur($event)\"\n          [readonly]=\"bReadonly$\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, forwardRef, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport isEqual from 'fast-deep-equal';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\nfunction flattenParameters(params = {}) {\n  const flatParams = {};\n  Object.keys(params).forEach(key => {\n    const { name, value: theVal } = params[key];\n    flatParams[name] = theVal;\n  });\n\n  return flatParams;\n}\n\nfunction preProcessColumns(columnList) {\n  return columnList.map(col => {\n    const tempColObj = { ...col };\n    tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n    return tempColObj;\n  });\n}\n\nfunction getDisplayFieldsMetaData(columnList) {\n  const displayColumns = columnList.filter(col => col.display === 'true');\n  const metaDataObj: any = { key: '', primary: '', secondary: [] };\n  const keyCol = columnList.filter(col => col.key === 'true');\n  metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';\n  for (let index = 0; index < displayColumns.length; index += 1) {\n    if (displayColumns[index].primary === 'true') {\n      metaDataObj.primary = displayColumns[index].value;\n    } else {\n      metaDataObj.secondary.push(displayColumns[index].value);\n    }\n  }\n  return metaDataObj;\n}\n\ninterface IOption {\n  key: string;\n  value: string;\n}\n\n// Can't use DropdownProps with 8.23 until getLocaleRuleNameFromKeys is NOT private\ninterface DropdownProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Dropdown here\n  datasource?: any[];\n  onRecordChange?: any;\n  fieldMetadata?: any;\n  listType?: string;\n  columns?: any[];\n  deferDatasource?: boolean;\n  datasourceMetadata?: any;\n  parameters?: any;\n}\n\n@Component({\n  selector: 'app-dropdown',\n  templateUrl: './dropdown.component.html',\n  styleUrls: ['./dropdown.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, MatOptionModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DropdownComponent extends FieldBase implements OnInit, OnDestroy {\n  @Output() onRecordChange: EventEmitter<any> = new EventEmitter();\n\n  configProps$: DropdownProps;\n\n  options$: IOption[];\n  theDatasource: any[] | null;\n  localeContext = '';\n  localeClass = '';\n  localeName = '';\n  localePath = '';\n  localizedValue = '';\n\n  set options(options: IOption[]) {\n    this.options$ = options;\n    if (this.displayMode$) {\n      this.value$ = this.options$?.find(option => option.key === this.value$)?.value || this.value$;\n      this.localizedValue = this.pConn$.getLocalizedValue(\n        this.value$ === 'Select...' ? '' : this.value$,\n        this.localePath,\n        this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n      );\n    }\n  }\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DropdownProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Set component specific properties\n    this.updateDropdownProperties(this.configProps$);\n  }\n\n  /**\n   * Updates dropdown properties based on the provided configuration.\n   * @param configProps - Configuration properties\n   */\n  updateDropdownProperties(configProps) {\n    const { value, fieldMetadata, datasource } = configProps;\n\n    this.value$ = value;\n\n    if (!isEqual(datasource, this.theDatasource)) {\n      // inbound datasource is different, so update theDatasource\n      this.theDatasource = datasource || null;\n    }\n\n    if (this.value$ === '' && !this.bReadonly$) {\n      this.value$ = 'Select';\n    }\n\n    if (this.theDatasource) {\n      const optionsList = [...this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject())];\n      optionsList?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });\n      this.options = optionsList;\n    }\n\n    this.actionsApi = this.pConn$.getActionsApi();\n\n    this.propName = this.pConn$.getStateProps().value;\n    const className = this.pConn$.getCaseInfo().getClassName();\n    const refName = this.propName?.slice(this.propName.lastIndexOf('.') + 1);\n\n    const metaData = Array.isArray(fieldMetadata) ? fieldMetadata.filter(field => field?.classID === className)[0] : fieldMetadata;\n\n    let displayName = metaData?.datasource?.propertyForDisplayText;\n    displayName = displayName?.slice(displayName.lastIndexOf('.') + 1);\n    this.localeContext = metaData?.datasource?.tableType === 'DataPage' ? 'datapage' : 'associated';\n    this.localeClass = this.localeContext === 'datapage' ? '@baseclass' : className;\n    this.localeName = this.localeContext === 'datapage' ? metaData?.datasource?.name : refName;\n    this.localePath = this.localeContext === 'datapage' ? displayName : this.localeName;\n\n    this.localizedValue = this.pConn$.getLocalizedValue(\n      this.value$,\n      this.localePath,\n      this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n    );\n\n    this.localizedValue = this.options$?.find(opt => opt.key === this.value$)?.value || this.localizedValue;\n\n    this.getDatapageData();\n  }\n\n  getDatapageData() {\n    const configProps = this.pConn$.getConfigProps() as DropdownProps;\n    let { listType, parameters, datasource = [], columns = [] } = configProps;\n    const { deferDatasource, datasourceMetadata } = configProps;\n    const context = this.pConn$.getContextName();\n    if (deferDatasource && datasourceMetadata?.datasource?.name) {\n      listType = 'datapage';\n      datasource = datasourceMetadata.datasource.name;\n      const { parameters: dataSourceParameters, propertyForDisplayText, propertyForValue } = datasourceMetadata.datasource;\n      parameters = flattenParameters(dataSourceParameters);\n      const displayProp = propertyForDisplayText?.startsWith('@P') ? propertyForDisplayText.substring(3) : propertyForDisplayText;\n      const valueProp = propertyForValue?.startsWith('@P') ? propertyForValue.substring(3) : propertyForValue;\n      columns = [\n        {\n          key: 'true',\n          setProperty: 'Associated property',\n          value: valueProp\n        },\n        {\n          display: 'true',\n          primary: 'true',\n          useForSearch: true,\n          value: displayProp\n        }\n      ];\n    }\n\n    columns = preProcessColumns(columns) || [];\n    if (listType !== 'associated' && typeof datasource === 'string') {\n      this.getData(datasource, parameters, columns, context, listType);\n    }\n  }\n\n  getData(dataSource, parameters, columns, context, listType) {\n    const dataConfig: any = {\n      columns,\n      dataSource,\n      deferDatasource: true,\n      listType,\n      parameters,\n      matchPosition: 'contains',\n      maxResultsDisplay: '5000',\n      cacheLifeSpan: 'form'\n    };\n    PCore.getDataApi()\n      .init(dataConfig, context)\n      .then((dataApiObj: any) => {\n        const optionsData: any[] = [];\n        const displayColumn = getDisplayFieldsMetaData(columns);\n        dataApiObj?.fetchData('').then(response => {\n          response.data?.forEach(element => {\n            const val = element[displayColumn.primary]?.toString();\n            const obj = {\n              key: element[displayColumn.key] || element.pyGUID,\n              value: val\n            };\n            optionsData.push(obj);\n          });\n          optionsData?.unshift({ key: 'Select', value: this.pConn$.getLocalizedValue('Select...', '', '') });\n          this.options = optionsData;\n        });\n      });\n  }\n\n  isSelected(buttonValue: string): boolean {\n    return this.value$ === buttonValue;\n  }\n\n  fieldOnChange(event: any) {\n    if (event?.value === 'Select') {\n      event.value = '';\n    }\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, event.value);\n\n    this.pConn$.clearErrorMessages({\n      property: this.propName\n    });\n    if (this.onRecordChange) {\n      this.onRecordChange.emit(event.value);\n    }\n  }\n\n  getLocalizedOptionValue(opt: IOption) {\n    return this.pConn$.getLocalizedValue(\n      opt.value,\n      this.localePath,\n      this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n    );\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper\n    *ngIf=\"bVisible$ !== false\"\n    name=\"FieldValueList\"\n    [props]=\"{ label$, value$: this.localizedValue, displayMode$ }\"\n  ></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-select\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [disabled]=\"bDisabled$\"\n          [attr.data-test-id]=\"testId\"\n          (selectionChange)=\"fieldOnChange($event)\"\n          [formControl]=\"fieldControl\"\n        >\n          <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.key\">\n            {{ getLocalizedOptionValue(opt) }}\n          </mat-option>\n        </mat-select>\n        <mat-label>{{ label$ }}</mat-label>\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface EmailProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Email here\n}\n\n@Component({\n  selector: 'app-email',\n  templateUrl: './email.component.html',\n  styleUrls: ['./email.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class EmailComponent extends FieldBase implements OnInit, OnDestroy {\n  configProps$: EmailProps;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as EmailProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Set component specific properties\n    const { value } = this.configProps$;\n    this.value$ = value;\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const value = event?.target?.value;\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [placeholder]=\"placeholder\"\n          type=\"email\"\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [formControl]=\"fieldControl\"\n          [attr.data-test-id]=\"testId\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface GroupProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Group here\n  showHeading: boolean;\n  heading: string;\n  instructions: string;\n  collapsible: boolean;\n}\n\n@Component({\n  selector: 'app-group',\n  templateUrl: './group.component.html',\n  styleUrls: ['./group.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class GroupComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: GroupProps;\n\n  arChildren$: any[];\n  visibility$?: boolean;\n  showHeading$?: boolean;\n  heading$: string;\n  instructions$: string;\n  collapsible$: boolean;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.checkAndUpdate();\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  updateSelf(): void {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as GroupProps;\n    this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n    this.visibility$ = this.configProps$.visibility;\n    this.showHeading$ = this.configProps$.showHeading;\n    this.heading$ = this.configProps$.heading;\n    this.instructions$ = this.configProps$.instructions;\n    this.collapsible$ = this.configProps$.collapsible;\n\n    if (this.configProps$.visibility === undefined) {\n      this.visibility$ = this.pConn$.getComputedVisibility();\n    }\n\n    if (this.configProps$.displayMode === 'DISPLAY_ONLY') {\n      if (this.configProps$.visibility === undefined) this.visibility$ = true;\n\n      this.arChildren$.forEach(child => {\n        const pConn = child.getPConnect();\n        pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n        pConn.setInheritedProp('readOnly', true);\n\n        return child;\n      });\n    }\n  }\n}\n","<ng-container *ngIf=\"visibility$ && arChildren$.length\">\n  <component-mapper\n    name=\"FieldGroup\"\n    [props]=\"{\n      name: showHeading$ ? heading$ : undefined,\n      collapsible: collapsible$,\n      instructions: instructions$,\n      childrenTemplate: childrenTemplate\n    }\"\n  >\n  </component-mapper>\n\n  <ng-template #childrenTemplate>\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=\"Field Group wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n      ></component-mapper>\n    </div>\n  </ng-template>\n</ng-container>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface IntegerProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Integer here\n}\n\n@Component({\n  selector: 'app-integer',\n  templateUrl: './integer.component.html',\n  styleUrls: ['./integer.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class IntegerComponent extends FieldBase {\n  configProps$: IntegerProps;\n  override fieldControl = new FormControl<number | null>(null, null);\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as IntegerProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    if (value) {\n      this.value$ = typeof value === 'string' ? parseInt(value, 10) : value;\n    }\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const value = event?.target?.value;\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [placeholder]=\"placeholder\"\n          type=\"number\"\n          step=\"1\"\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [formControl]=\"fieldControl\"\n          [attr.data-test-id]=\"testId\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\n@Component({\n  selector: 'app-list-view-action-buttons',\n  templateUrl: './list-view-action-buttons.component.html',\n  styleUrls: ['./list-view-action-buttons.component.scss'],\n  imports: [CommonModule, MatGridListModule, MatButtonModule]\n})\nexport class ListViewActionButtonsComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() context$: string;\n  // @Input() closeActionsDialog: any;\n  @Output() closeActionsDialog: EventEmitter<any> = new EventEmitter();\n\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  localeCategory = 'Data Object';\n  isDisabled: boolean;\n\n  onCancel() {\n    // this.closeActionsDialog();\n    this.closeActionsDialog.emit();\n    this.pConn$.getActionsApi().cancelDataObject(this.context$);\n  }\n\n  onSubmit() {\n    this.isDisabled = true;\n    this.pConn$\n      .getActionsApi()\n      .submitEmbeddedDataModal(this.context$)\n      .then(() => {\n        this.closeActionsDialog.emit();\n      })\n      .finally(() => {\n        this.isDisabled = false;\n      });\n  }\n}\n","<mat-grid-list cols=\"2\" rowHeight=\"4.25rem\">\n  <mat-grid-tile>\n    <button mat-raised-button variant=\"contained\" color=\"secondary\" (click)=\"onCancel()\">\n      {{ localizedVal('Cancel', localeCategory) }}\n    </button>\n  </mat-grid-tile>\n  <mat-grid-tile>\n    <button mat-raised-button variant=\"contained\" color=\"primary\" [disabled]=\"isDisabled\" (click)=\"onSubmit()\">\n      {{ localizedVal('Submit', localeCategory) }}\n    </button>\n  </mat-grid-tile>\n</mat-grid-list>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GoogleMapsLoaderService {\n  private loadingPromise?: Promise<void>;\n\n  load(apiKey: string): Promise<void> {\n    if (typeof google !== 'undefined' && google.maps) {\n      return Promise.resolve();\n    }\n    if (this.loadingPromise) {\n      return this.loadingPromise;\n    }\n\n    this.loadingPromise = new Promise<void>((resolve, reject) => {\n      const script = document.createElement('script');\n      script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places`;\n      script.async = true;\n      script.defer = true;\n\n      script.onload = () => resolve();\n      script.onerror = error => reject(error);\n\n      document.head.appendChild(script);\n    });\n\n    return this.loadingPromise;\n  }\n}\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { debounceTime, from, of, switchMap } from 'rxjs';\n\nimport { FieldBase } from '../field.base';\nimport { GoogleMapsLoaderService } from '../../../_services/google-maps-loader.service';\nimport { handleEvent } from '../../../_helpers/event-util';\n\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface LocationProps extends PConnFieldProps {\n  coordinates: string;\n  showMap: boolean;\n  onlyCoordinates: boolean;\n  showMapReadOnly: boolean;\n}\n\n@Component({\n  selector: 'app-location',\n  imports: [\n    CommonModule,\n    GoogleMapsModule,\n    MatAutocompleteModule,\n    MatButtonModule,\n    MatFormFieldModule,\n    MatIconModule,\n    MatInputModule,\n    MatProgressSpinnerModule,\n    ReactiveFormsModule\n  ],\n  templateUrl: './location.component.html',\n  styleUrl: './location.component.scss'\n})\nexport class LocationComponent extends FieldBase {\n  private loader = inject(GoogleMapsLoaderService);\n\n  private autocompleteService!: google.maps.places.AutocompleteService;\n  private geocoder!: google.maps.Geocoder;\n\n  // Dom variables\n  mapReady = false;\n  isLocating = false;\n  showMap = true;\n  filteredOptions: string[] = [];\n  center: google.maps.LatLngLiteral;\n  markerPosition: google.maps.LatLngLiteral | null = null;\n\n  configProps$: LocationProps;\n  onlyCoordinates: boolean;\n  coordinates: string;\n  showMapReadOnly$: boolean;\n  valueProp: string;\n  coordinatesProp: string;\n\n  override async ngOnInit() {\n    super.ngOnInit();\n\n    // Loading map\n    const apiKey = this.pConn$.getGoogleMapsAPIKey();\n    await this.loader.load(apiKey);\n    this.mapReady = true;\n    this.initializeGoogleServices();\n    this.getPlacePredictions();\n  }\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as LocationProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    this.onlyCoordinates = !!this.configProps$.onlyCoordinates;\n    this.showMapReadOnly$ = !!this.configProps$.showMapReadOnly;\n    this.showMap = this.bReadonly$ ? this.showMapReadOnly$ : !!this.configProps$.showMap;\n\n    if (this.configProps$.coordinates) {\n      const latAndLong: number[] = this.configProps$.coordinates.split(',').map(Number);\n      const latitude = Number(latAndLong[0]);\n      const longitude = Number(latAndLong[1]);\n      this.updateMap(latitude, longitude, this.configProps$.value);\n    }\n\n    this.valueProp = this.pConn$.getStateProps().value;\n    this.coordinatesProp = this.pConn$.getStateProps().coordinates;\n  }\n\n  onOptionSelected(event: any) {\n    const value = event.option.value;\n    if (this.isCoordinateString(value)) {\n      const [lat, lng] = value.split(',').map(Number);\n      this.updateMap(lat, lng, value);\n      this.updateProps();\n    } else {\n      this.geocoder.geocode({ address: value }, (res, status) => {\n        if (status === google.maps.GeocoderStatus.OK && res && res[0]) {\n          const loc = res[0].geometry.location;\n          this.updateMap(loc.lat(), loc.lng(), value);\n          this.updateProps();\n        }\n      });\n    }\n  }\n\n  fieldOnBlur() {\n    this.updateProps();\n  }\n\n  locateMe() {\n    if (!navigator.geolocation) {\n      alert('Geolocation not supported by this browser.');\n      return;\n    }\n\n    this.isLocating = true;\n    this.tryGetLocation(0);\n  }\n\n  onMapClick(event: google.maps.MapMouseEvent) {\n    if (!event.latLng) return;\n\n    const lat = event.latLng.lat();\n    const lng = event.latLng.lng();\n\n    if (this.onlyCoordinates) {\n      this.updateMap(lat, lng);\n      this.updateProps();\n    } else {\n      this.geocoder.geocode({ location: { lat, lng } }, (res, status) => {\n        if (status === google.maps.GeocoderStatus.OK && res && res[0]) {\n          this.updateMap(lat, lng, res[0].formatted_address);\n        } else {\n          this.updateMap(lat, lng);\n        }\n        this.updateProps();\n      });\n    }\n  }\n\n  private tryGetLocation(retryCount: number) {\n    navigator.geolocation.getCurrentPosition(\n      position => {\n        const lat = position.coords.latitude;\n        const lng = position.coords.longitude;\n        if (this.onlyCoordinates) {\n          this.updateMap(lat, lng);\n          this.updateProps();\n          this.isLocating = false;\n        } else {\n          this.geocoder.geocode({ location: { lat, lng } }, (res, status) => {\n            this.isLocating = false;\n            if (status === google.maps.GeocoderStatus.OK && res && res[0]) {\n              this.updateMap(lat, lng, res[0].formatted_address);\n            } else {\n              this.updateMap(lat, lng);\n            }\n            this.updateProps();\n          });\n        }\n      },\n      err => {\n        console.error('Geolocation error', err);\n\n        if (err.code === err.POSITION_UNAVAILABLE && retryCount < 2) {\n          console.warn('Retrying location fetch...');\n          setTimeout(() => this.tryGetLocation(retryCount + 1), 2000);\n        } else {\n          this.isLocating = false;\n\n          switch (err.code) {\n            case err.PERMISSION_DENIED:\n              alert('Location permission denied. Please allow access in your browser settings.');\n              break;\n            case err.POSITION_UNAVAILABLE:\n              alert('Location unavailable. Please check your internet or GPS.');\n              break;\n            case err.TIMEOUT:\n              alert('Timed out while trying to get your location. Try again.');\n              break;\n            default:\n              alert('Could not get your location. Please try again.');\n          }\n        }\n      },\n      {\n        enableHighAccuracy: true,\n        timeout: 10000,\n        maximumAge: 0\n      }\n    );\n  }\n\n  private initializeGoogleServices() {\n    this.autocompleteService = new google.maps.places.AutocompleteService();\n    this.geocoder = new google.maps.Geocoder();\n  }\n\n  private getPlacePredictions() {\n    this.fieldControl.valueChanges\n      .pipe(\n        debounceTime(300),\n        switchMap(value => this.getSuggestions(value || ''))\n      )\n      .subscribe(predictions => {\n        this.filteredOptions = predictions;\n      });\n  }\n\n  private isCoordinateString(value: string): boolean {\n    const regex = /^-?\\d+(\\.\\d+)?\\s*,\\s*-?\\d+(\\.\\d+)?$/;\n    return regex.test(value.trim());\n  }\n\n  private getSuggestions(input: string) {\n    if (!input.trim()) return of([]);\n\n    if (this.isCoordinateString(input)) {\n      return of([input]);\n    }\n\n    return from(\n      new Promise<string[]>(resolve => {\n        this.autocompleteService.getPlacePredictions({ input }, (preds, status) => {\n          if (status === google.maps.places.PlacesServiceStatus.OK && preds) {\n            if (this.onlyCoordinates) {\n              // only first exact match as coordinates\n              this.geocoder.geocode({ placeId: preds[0].place_id }, (response, geocoderStatus) => {\n                if (geocoderStatus === google.maps.GeocoderStatus.OK && response && response[0]) {\n                  const loc = response[0].geometry.location;\n                  resolve([`${loc.lat()}, ${loc.lng()}`]);\n                } else {\n                  resolve([]);\n                }\n              });\n            } else {\n              resolve(preds.map(p => p.description));\n            }\n          } else {\n            resolve([]);\n          }\n        });\n      })\n    );\n  }\n\n  private updateMap(lat: number, lng: number, value?: string) {\n    this.center = { lat, lng };\n    this.markerPosition = { lat, lng };\n    this.setCoordinates(lat, lng);\n    if (this.onlyCoordinates) {\n      this.setLocationValue(this.coordinates);\n    } else {\n      this.setLocationValue(value || '');\n    }\n  }\n\n  private updateProps() {\n    handleEvent(this.actionsApi, 'change', this.valueProp, this.fieldControl.value);\n    handleEvent(this.actionsApi, 'change', this.coordinatesProp, this.coordinates);\n  }\n\n  private setCoordinates(latitude: number, longitude: number) {\n    this.coordinates = `${latitude}, ${longitude}`;\n  }\n\n  private setLocationValue(value: string) {\n    this.fieldControl.setValue(value, { emitEvent: false });\n  }\n}\n","<div *ngIf=\"mapReady && bVisible$\">\n  <!-- Google suggestions -->\n  <mat-form-field class=\"psdk-full-width\" [hintLabel]=\"helperText\">\n    <mat-label>{{ label$ }}</mat-label>\n    <input\n      matInput\n      type=\"text\"\n      [placeholder]=\"placeholder\"\n      [formControl]=\"fieldControl\"\n      [required]=\"bRequired$\"\n      [matAutocomplete]=\"auto\"\n      [readonly]=\"bReadonly$\"\n      [attr.data-test-id]=\"testId\"\n      (blur)=\"fieldOnBlur()\"\n    />\n    <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n    <button\n      mat-icon-button\n      matSuffix\n      type=\"button\"\n      (click)=\"locateMe()\"\n      [disabled]=\"isLocating || bDisabled$ || bReadonly$\"\n      aria-label=\"Use my location\"\n    >\n      <ng-container *ngIf=\"!isLocating; else loadingSpinner\">\n        <mat-icon>location_on</mat-icon>\n      </ng-container>\n      <ng-template #loadingSpinner>\n        <mat-progress-spinner diameter=\"24\" mode=\"indeterminate\" strokeWidth=\"3\"></mat-progress-spinner>\n      </ng-template>\n    </button>\n\n    <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onOptionSelected($event)\">\n      <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">\n        {{ option }}\n      </mat-option>\n    </mat-autocomplete>\n  </mat-form-field>\n  <!-- Google map -->\n  <div *ngIf=\"showMap\" class=\"map-wrapper\">\n    <google-map height=\"400px\" width=\"100%\" [center]=\"center\" [zoom]=\"13\" (mapClick)=\"onMapClick($event)\">\n      <map-marker *ngIf=\"markerPosition\" [position]=\"markerPosition\" [title]=\"'Selected Location'\"></map-marker>\n    </google-map>\n    <div class=\"map-blocker\" *ngIf=\"bDisabled$ || bReadonly$\"></div>\n  </div>\n</div>\n","const PERIOD = '.';\nconst AT = '@';\nconst SQUARE_BRACKET_START = '[';\nconst SQUARE_BRACKET_END = ']';\n\nfunction getMappedKey(key) {\n  const mappedKey = PCore.getEnvironmentInfo().getKeyMapping(key);\n  if (!mappedKey) {\n    return key;\n  }\n  return mappedKey;\n}\n\nfunction updatePageListPropertyValue(value) {\n  value = value.substring(0, value.indexOf(SQUARE_BRACKET_START)) + value.substring(value.indexOf(SQUARE_BRACKET_END) + 1);\n  return value;\n}\n\nfunction getPropertyValue(value) {\n  if (value.startsWith(AT)) {\n    value = value.substring(value.indexOf(' ') + 1);\n    if (value.startsWith(PERIOD)) value = value.substring(1);\n  }\n  if (value.includes(SQUARE_BRACKET_START)) {\n    value = updatePageListPropertyValue(value);\n  }\n  return value;\n}\n\nfunction getLeafNameFromPropertyName(property): string {\n  return property?.substr(property.lastIndexOf('.'));\n}\n\nfunction isSelfReferencedProperty(param, referenceProp): boolean {\n  return param === referenceProp?.split('.', 2)[1];\n}\n\nfunction getCompositeKeys(c11nEnv, property): any {\n  const { datasource: { parameters = {} } = {} } = c11nEnv.getFieldMetadata(property) || {};\n  return Object.values(parameters).reduce((compositeKeys: any, param: any) => {\n    if (isSelfReferencedProperty(property, param)) {\n      let propName = getPropertyValue(param);\n      propName = propName.substring(propName.indexOf('.'));\n      compositeKeys.push(propName);\n    }\n    return compositeKeys;\n  }, []);\n}\n\nfunction generateColumns(config, pConn, referenceType) {\n  const displayField = getLeafNameFromPropertyName(config.displayField);\n  const referenceProp = config.value.split('.', 2)[1];\n  const compositeKeys = getCompositeKeys(pConn, referenceProp);\n  let value = getLeafNameFromPropertyName(config.value);\n\n  const columns: any[] = [];\n  if (displayField) {\n    columns.push({\n      value: displayField,\n      display: 'true',\n      useForSearch: true,\n      primary: 'true'\n    });\n  }\n  if (value && compositeKeys.indexOf(value) !== -1) {\n    columns.push({\n      value,\n      setProperty: 'Associated property',\n      key: 'true'\n    });\n  } else {\n    const actualValue = compositeKeys.length > 0 ? compositeKeys[0] : value;\n    config.value = `@P .${referenceProp}${actualValue}`;\n    value = actualValue;\n    columns.push({\n      value: actualValue,\n      setProperty: 'Associated property',\n      key: 'true'\n    });\n  }\n\n  config.datasource = {\n    fields: {\n      key: getLeafNameFromPropertyName(config.value),\n      text: getLeafNameFromPropertyName(config.displayField),\n      value: getLeafNameFromPropertyName(config.value)\n    }\n  };\n\n  if (referenceType === 'Case') {\n    columns.push({\n      secondary: 'true',\n      display: 'true',\n      value: getMappedKey('pyID'),\n      useForSearch: true\n    });\n  }\n\n  compositeKeys.forEach(key => {\n    if (value !== key)\n      columns.push({\n        value: key,\n        display: 'false',\n        secondary: 'true',\n        useForSearch: false,\n        setProperty: `.${referenceProp}${key}`\n      });\n  });\n\n  config.columns = columns;\n}\n\nfunction getDataRelationshipContextFromKey(key) {\n  return key.split('.', 2)[1];\n}\n\nexport { getLeafNameFromPropertyName, isSelfReferencedProperty, getCompositeKeys, generateColumns, getDataRelationshipContextFromKey };\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMetadataConfig } from '@pega/pcore-pconnect-typedefs/interpreter/types';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { generateColumns, getDataRelationshipContextFromKey } from '../../../_helpers/objectReference-utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface ObjectReferenceProps extends PConnFieldProps {\n  showPromotedFilters: boolean;\n  inline: boolean;\n  parameters: object;\n  mode: string;\n  targetObjectType: any;\n  allowAndPersistChangesInReviewMode: boolean;\n}\n\n@Component({\n  selector: 'app-object-reference',\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)],\n  templateUrl: './object-reference.component.html',\n  styleUrl: './object-reference.component.scss'\n})\nexport class ObjectReferenceComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n  configProps: ObjectReferenceProps;\n  value: { [key: string]: any };\n  readOnly: boolean;\n  isForm: boolean;\n  type: string;\n  isDisplayModeEnabled: boolean;\n  canBeChangedInReviewMode: boolean;\n  newComponentName: string;\n  newPconn: typeof PConnect;\n  rawViewMetadata: ComponentMetadataConfig | undefined;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit() {\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n  }\n\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  checkAndUpdate() {\n    const shouldUpdate = this.angularPConnect.shouldComponentUpdate(this);\n    if (shouldUpdate) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ObjectReferenceProps;\n    const {\n      displayMode,\n      allowAndPersistChangesInReviewMode: editableInReview = false,\n      targetObjectType,\n      mode,\n      parameters,\n      hideLabel,\n      inline,\n      showPromotedFilters\n    } = this.configProps;\n\n    const referenceType: string = targetObjectType === 'case' ? 'Case' : 'Data';\n    this.rawViewMetadata = this.pConn$.getRawMetadata();\n    const refFieldMetadata = this.pConn$.getFieldMetadata(this.rawViewMetadata?.config?.value?.split('.', 2)[1] ?? '');\n    const propsToUse = { ...this.pConn$.getInheritedProps(), ...this.configProps };\n\n    this.isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n    this.type = this.getComponentType();\n    this.canBeChangedInReviewMode = editableInReview && ['Autocomplete', 'Dropdown'].includes(this.type);\n\n    if (this.type === 'SemanticLink' && !this.canBeChangedInReviewMode) {\n      const config: any = {\n        ...this.rawViewMetadata?.config,\n        primaryField: (this.rawViewMetadata?.config as any).displayField,\n        caseClass: (this.rawViewMetadata?.config as any).targetObjectClass,\n        text: (this.rawViewMetadata?.config as any).displayField,\n        caseID: (this.rawViewMetadata?.config as any).value,\n        contextPage: `@P .${(this.rawViewMetadata?.config as any).displayField ? getDataRelationshipContextFromKey((this.rawViewMetadata?.config as any).displayField) : null}`,\n        resourceParams: { workID: (this.rawViewMetadata?.config as any).value },\n        resourcePayload: { caseClassName: (this.rawViewMetadata?.config as any).targetObjectClass }\n      };\n      this.createSemanticLinkPConnect(config, displayMode ?? '', referenceType, hideLabel);\n      return;\n    }\n\n    if (this.type !== 'SemanticLink' && !this.isDisplayModeEnabled) {\n      const config: any = { ...this.rawViewMetadata?.config };\n      generateColumns(config, this.pConn$, referenceType);\n      config.deferDatasource = true;\n      config.listType = 'datapage';\n      if (['Dropdown', 'AutoComplete'].includes(this.type) && !config.placeholder) {\n        config.placeholder = '@L Select...';\n      }\n      config.showPromotedFilters = showPromotedFilters;\n      if (!this.canBeChangedInReviewMode) {\n        config.displayMode = displayMode;\n      }\n      config.parameters = parameters;\n\n      this.createOtherComponentPConnect(config, propsToUse, mode, refFieldMetadata, referenceType, hideLabel, inline);\n    }\n  }\n\n  onRecordChange(value) {\n    const caseKey = this.pConn$.getCaseInfo().getKey() ?? '';\n    const refreshOptions = { autoDetectRefresh: true, propertyName: '' };\n    refreshOptions.propertyName = this.rawViewMetadata?.config?.value ?? '';\n\n    if (!this.canBeChangedInReviewMode || !this.pConn$.getValue('__currentPageTabViewName')) {\n      const pgRef = this.pConn$.getPageReference().replace('caseInfo.content', '') ?? '';\n      const viewName = this.rawViewMetadata?.name;\n      if (viewName && viewName.length > 0) {\n        getPConnect().getActionsApi().refreshCaseView(caseKey, viewName, pgRef, refreshOptions);\n      }\n    }\n\n    const propValue = value;\n    const propName =\n      this.rawViewMetadata?.type === 'SimpleTableSelect' && this.configProps.mode === 'multi'\n        ? PCore.getAnnotationUtils().getPropertyName(this.rawViewMetadata?.config?.selectionList ?? '')\n        : PCore.getAnnotationUtils().getPropertyName(this.rawViewMetadata?.config?.value ?? '');\n\n    if (propValue && this.canBeChangedInReviewMode && this.isDisplayModeEnabled) {\n      PCore.getCaseUtils()\n        .getCaseEditLock(caseKey, '')\n        .then(caseResponse => {\n          const pageTokens = this.pConn$.getPageReference().replace('caseInfo.content', '').split('.');\n          let curr = {};\n          const commitData = curr;\n\n          pageTokens?.forEach(el => {\n            if (el !== '') {\n              curr[el] = {};\n              curr = curr[el];\n            }\n          });\n\n          // expecting format like {Customer: {pyID:\"C-100\"}}\n          const propArr = propName.split('.');\n          propArr.forEach((element, idx) => {\n            if (idx + 1 === propArr.length) {\n              curr[element] = propValue;\n            } else {\n              curr[element] = {};\n              curr = curr[element];\n            }\n          });\n\n          PCore.getCaseUtils()\n            .updateCaseEditFieldsData(caseKey, { [caseKey]: commitData }, caseResponse.headers.etag, this.pConn$?.getContextName() ?? '')\n            .then(response => {\n              PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName() ?? '', response.data.data.caseInfo.lastUpdateTime);\n              PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName() ?? '', response.headers.etag);\n            });\n        });\n    }\n  }\n\n  private getComponentType(): string {\n    // componentType is not defined in ComponentMetadataConfig type so using any\n    return (this.rawViewMetadata?.config as any)?.componentType;\n  }\n\n  private createSemanticLinkPConnect(config: any, displayMode: string, referenceType: string, hideLabel: boolean) {\n    const semanticLinkConfig = {\n      ...config,\n      displayMode,\n      referenceType,\n      hideLabel,\n      dataRelationshipContext: config.displayField ? getDataRelationshipContextFromKey(config.displayField) : null\n    };\n\n    const component = this.pConn$.createComponent({ type: 'SemanticLink', config: semanticLinkConfig }, '', 0, {});\n    this.newPconn = component?.getPConnect();\n  }\n\n  private createOtherComponentPConnect(\n    config: any,\n    propsToUse: any,\n    mode: string,\n    refFieldMetadata: any,\n    referenceType: string,\n    hideLabel: boolean,\n    inline: boolean\n  ) {\n    const fieldMetaData = {\n      datasourceMetadata: {\n        datasource: {\n          parameters: config.parameters ?? {},\n          propertyForDisplayText: config.datasource?.fields?.text?.substring(3) ?? config.datasource?.fields?.text,\n          propertyForValue: config.datasource?.fields?.value?.substring(3) ?? config.datasource?.fields?.value,\n          name: config.referenceList ?? ''\n        }\n      }\n    };\n\n    const componentConfig = {\n      ...config,\n      descriptors: mode === 'single' ? refFieldMetadata?.descriptors : null,\n      datasourceMetadata: fieldMetaData.datasourceMetadata,\n      required: propsToUse.required,\n      visibility: propsToUse.visibility,\n      disabled: propsToUse.disabled,\n      label: propsToUse.label,\n      readOnly: false,\n      ...(mode === 'single' && { referenceType }),\n      contextClass: config.targetObjectClass,\n      primaryField: config.displayField,\n      dataRelationshipContext: config.displayField ? getDataRelationshipContextFromKey(config.displayField) : null,\n      hideLabel,\n      inline\n    };\n\n    const component = this.pConn$.createComponent({ type: this.type, config: componentConfig }, '', 0, {});\n    this.newComponentName = component?.getPConnect().getComponentName();\n    this.newPconn = component?.getPConnect();\n    if (this.rawViewMetadata?.config) {\n      this.rawViewMetadata.config = { ...config };\n    }\n  }\n}\n","<div *ngIf=\"isDisplayModeEnabled && !canBeChangedInReviewMode; else semanticLinkCheck\">\n  <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$ }\"></component-mapper>\n</div>\n<ng-template #semanticLinkCheck>\n  <div *ngIf=\"type === 'SemanticLink' && !canBeChangedInReviewMode; else loadDynamicComp\">\n    <component-mapper name=\"SemanticLink\" [props]=\"{ pConn$: newPconn }\"></component-mapper>\n  </div>\n</ng-template>\n<ng-template #loadDynamicComp>\n  <component-mapper\n    *ngIf=\"newComponentName\"\n    [name]=\"newComponentName\"\n    [props]=\"{ pConn$: newPconn, formGroup$ }\"\n    [parent]=\"this\"\n    [outputEvents]=\"{ onRecordChange: onRecordChange }\"\n  ></component-mapper>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { NgxCurrencyDirective, NgxCurrencyInputMode } from 'ngx-currency';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { getCurrencyCharacters } from '../../../_helpers/currency-utils';\nimport { format } from '../../../_helpers/formatters';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface PercentageProps extends Omit<PConnFieldProps, 'value'> {\n  value?: number;\n  showGroupSeparators?: string;\n  decimalPrecision?: number;\n  currencyISOCode?: string;\n  // If any, enter additional props that only exist on Percentage here\n}\n\n@Component({\n  selector: 'app-percentage',\n  templateUrl: './percentage.component.html',\n  styleUrls: ['./percentage.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, NgxCurrencyDirective, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PercentageComponent extends FieldBase {\n  configProps$: PercentageProps;\n  override fieldControl = new FormControl<number | null>(null, null);\n\n  decimalSeparator: string;\n  thousandSeparator: string;\n  inputMode: any = NgxCurrencyInputMode.Natural;\n  decimalPrecision: number | undefined;\n  formattedValue: string;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PercentageProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Set component specific properties\n    const { value } = this.configProps$;\n    if (value) {\n      this.value$ = value;\n      this.fieldControl.setValue(value);\n    }\n\n    // update percentage properties\n    this.updatePercentageProperties(this.configProps$);\n  }\n\n  /**\n   * Updates the percentage properties\n   *\n   * @param {Object} configProps - Configuration properties.\n   * @param {boolean} configProps.showGroupSeparators - Whether to show group separators.\n   * @param {number} configProps.decimalPrecision - The number of decimal places to display.\n   */\n  updatePercentageProperties(configProps): void {\n    const { showGroupSeparators, decimalPrecision } = configProps;\n\n    const theSymbols = getCurrencyCharacters('');\n    this.decimalSeparator = theSymbols.theDecimalIndicator;\n    this.thousandSeparator = showGroupSeparators ? theSymbols.theDigitGroupSeparator : '';\n    this.decimalPrecision = decimalPrecision ?? 2;\n\n    if (['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(this.displayMode$)) {\n      this.formattedValue = this.value$ ? format(this.value$, 'percentage') : '';\n    }\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      let value = event?.target?.value;\n      value = value ? value.replace(/%/g, '') : '';\n      // replacing thousand separator with empty string as not required in api call\n      if (this.configProps$.showGroupSeparators) {\n        const thousandSep = this.thousandSeparator === '.' ? '\\\\.' : this.thousandSeparator;\n        const regExp = new RegExp(String.raw`${thousandSep}`, 'g');\n        value = value?.replace(regExp, '');\n      }\n      // replacing decimal separator with '.'\n      if (this.decimalSeparator !== '.') {\n        const regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');\n        value = value.replace(regExp, '.');\n      }\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          type=\"text\"\n          matInput\n          currencyMask\n          [options]=\"{\n            prefix: '',\n            suffix: '%',\n            thousands: thousandSeparator,\n            decimal: decimalSeparator,\n            align: 'left',\n            nullable: true,\n            precision: decimalPrecision,\n            inputMode: inputMode\n          }\"\n          [placeholder]=\"placeholder\"\n          step=\".01\"\n          [formControlName]=\"controlName$\"\n          [required]=\"bRequired$\"\n          [formControl]=\"fieldControl\"\n          [attr.data-test-id]=\"testId\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n          [readonly]=\"bReadonly$\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatTelInput } from 'mat-tel-input';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface PhoneProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Phone here\n}\n\n@Component({\n  selector: 'app-phone',\n  templateUrl: './phone.component.html',\n  styleUrls: ['./phone.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatTelInput, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PhoneComponent extends FieldBase {\n  configProps$: PhoneProps;\n\n  preferredCountries: string[] = ['us'];\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PhoneProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    if (value) {\n      this.value$ = value;\n      this.fieldControl.setValue(this.value$);\n      this.updatePreferredCountries();\n    }\n  }\n\n  fieldOnBlur() {\n    // 'blur' isn't getting fired\n  }\n\n  fieldOnChange() {\n    const oldVal = this.value$ ?? '';\n    const newVal = this.formGroup$.controls[this.controlName$].value;\n    const isValueChanged = newVal?.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, newVal);\n    }\n  }\n\n  updatePreferredCountries() {\n    if (this.value$ && typeof this.value$ === 'string') {\n      const phoneNumber = parsePhoneNumberFromString(this.value$);\n      this.preferredCountries =\n        phoneNumber?.country && !this.preferredCountries.includes(phoneNumber?.country.toLowerCase())\n          ? [phoneNumber?.country?.toLowerCase(), ...this.preferredCountries]\n          : this.preferredCountries;\n    }\n  }\n\n  override getErrorMessage() {\n    // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n    if (this.fieldControl.hasError('message')) {\n      return this.angularPConnectData.validateMessage ?? '';\n    }\n\n    if (this.fieldControl.hasError('required')) {\n      return 'You must enter a value';\n    }\n\n    if (this.fieldControl.errors) {\n      return 'Invalid Phone';\n    }\n\n    return '';\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bHasForm$ && bVisible$; else noEdit\">\n    <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\" floatLabel=\"always\">\n      <mat-tel-input\n        [attr.data-test-id]=\"testId\"\n        [formControl]=\"fieldControl\"\n        [preferredCountries]=\"preferredCountries\"\n        [enablePlaceholder]=\"true\"\n        [enableSearch]=\"true\"\n        [placeholder]=\"placeholder\"\n        [required]=\"bRequired$\"\n        [disabled]=\"bDisabled$ || bReadonly$\"\n        (change)=\"fieldOnChange()\"\n        (blur)=\"fieldOnBlur()\"\n      >\n      </mat-tel-input>\n      <mat-label>{{ label$ }}</mat-label>\n      <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n    </mat-form-field>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { Utils } from '../../../_helpers/utils';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface IOption {\n  key: string;\n  value: string;\n}\n\ninterface RadioButtonsProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on RadioButtons here\n  inline: boolean;\n  fieldMetadata?: any;\n  variant?: string;\n}\n\n@Component({\n  selector: 'app-radio-buttons',\n  templateUrl: './radio-buttons.component.html',\n  styleUrls: ['./radio-buttons.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatRadioModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class RadioButtonsComponent extends FieldBase {\n  configProps$: RadioButtonsProps;\n\n  bInline$ = false;\n\n  options$: IOption[];\n  componentReference = '';\n  fieldMetadata: any[];\n  localeContext = '';\n  localeClass = '';\n  localeName = '';\n  localePath = '';\n  localizedValue = '';\n  variant?: string;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as RadioButtonsProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    this.value$ = value;\n\n    // Set component specific properties\n    this.updateRadioButtonsProperties(this.configProps$);\n  }\n\n  /**\n   * Updates radio buttons properties based on the provided config props.\n   * @param configProps Configuration properties.\n   */\n  protected updateRadioButtonsProperties(configProps) {\n    const { inline, fieldMetadata, variant } = configProps;\n\n    this.variant = variant;\n    this.bInline$ = this.utils.getBooleanValue(inline);\n\n    // Get options from config props and data object\n    this.options$ = this.utils.getOptionList(configProps, this.pConn$.getDataObject());\n\n    // Extract metadata and locale information\n    const className = this.pConn$.getCaseInfo().getClassName();\n    const refName = this.propName?.slice(this.propName.lastIndexOf('.') + 1);\n    const metaData = Array.isArray(fieldMetadata) ? fieldMetadata.filter(field => field?.classID === className)[0] : fieldMetadata;\n\n    // Determine display name and locale context\n    let displayName = metaData?.datasource?.propertyForDisplayText;\n    displayName = displayName?.slice(displayName.lastIndexOf('.') + 1);\n    this.localeContext = metaData?.datasource?.tableType === 'DataPage' ? 'datapage' : 'associated';\n    this.localeClass = this.localeContext === 'datapage' ? '@baseclass' : className;\n    this.localeName = this.localeContext === 'datapage' ? metaData?.datasource?.name : refName;\n    this.localePath = this.localeContext === 'datapage' ? displayName : this.localeName;\n\n    // Get localized value\n    this.localizedValue = this.pConn$.getLocalizedValue(\n      this.value$,\n      this.localePath,\n      this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n    );\n  }\n\n  isSelected(buttonValue: string): boolean {\n    return this.value$ === buttonValue;\n  }\n\n  fieldOnChange(event: any) {\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, event.value);\n  }\n\n  getLocalizedOptionValue(opt: IOption) {\n    return this.pConn$.getLocalizedValue(\n      opt.value,\n      this.localePath,\n      this.pConn$.getLocaleRuleNameFromKeys(this.localeClass, this.localeContext, this.localeName)\n    );\n  }\n}\n","<div *ngIf=\"variant !== 'card'; else cardMode\">\n  <div *ngIf=\"displayMode$; else noDisplayMode\">\n    <component-mapper\n      *ngIf=\"bVisible$ !== false\"\n      name=\"FieldValueList\"\n      [props]=\"{ label$, value$: this.localizedValue, displayMode$ }\"\n    ></component-mapper>\n  </div>\n</div>\n<ng-template #noDisplayMode>\n  <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n    <mat-form-field class=\"psdk-radio-form\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n      <mat-label>{{ label$ }}</mat-label>\n      <input matInput [placeholder]=\"placeholder\" style=\"display: none\" [required]=\"bRequired$\" />\n      <mat-radio-group\n        [value]=\"value$\"\n        [required]=\"bRequired$\"\n        [formControl]=\"fieldControl\"\n        [attr.data-test-id]=\"testId\"\n        (change)=\"fieldOnChange($event)\"\n        class=\"{{ bInline$ ? 'psdk-radio-horizontal' : 'psdk-radio-vertical' }}\"\n      >\n        <mat-radio-button\n          *ngFor=\"let opt of options$\"\n          [checked]=\"isSelected(opt.key)\"\n          [disabled]=\"bDisabled$ || bReadonly$\"\n          [value]=\"opt.key\"\n          class=\"psdk-radio-button\"\n        >\n          {{ getLocalizedOptionValue(opt) }}\n        </mat-radio-button>\n      </mat-radio-group>\n      <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n    </mat-form-field>\n  </div>\n</ng-template>\n<ng-template #cardMode>\n  <h4>{{ label$ }}</h4>\n  <div>\n    <component-mapper name=\"SelectableCard\" [props]=\"{ pConn$: pConn$, type: 'radio' }\" [parent]=\"this\"></component-mapper>\n  </div>\n</ng-template>\n","function getContextProperty(pageReference, dataRelationshipContext) {\n  const propertySplit = pageReference.split('.');\n  // Regex to match if the property is list type. Eg: EmployeeRef[1]\n  const listPropertyRegex = /([a-z|A-Z]*[[][\\d]*)[\\]]$/gm;\n  // Regex to match [1] part of the property EmployeeRef[1]\n  const indexRegex = /([[][\\d]*[\\]])+/gm;\n\n  let contextProperty = dataRelationshipContext ?? propertySplit.pop();\n  if (listPropertyRegex.test(contextProperty)) {\n    contextProperty = contextProperty.replace(indexRegex, '');\n  }\n  return contextProperty;\n}\n\nfunction buildPayload(parameters, pConnect, contextPage, dataRelationshipContext) {\n  const payload = {};\n  const annotationUtils = PCore.getAnnotationUtils();\n\n  for (const [key, value] of Object.entries(parameters)) {\n    if (contextPage && Object.hasOwn(contextPage, key)) {\n      payload[key] = contextPage[key];\n    } else {\n      const isProperty = annotationUtils.isProperty(value as string);\n      const property =\n        dataRelationshipContext !== null ? annotationUtils.getPropertyName(value as string) : annotationUtils.getLeafPropertyName(value as string);\n      payload[key] = isProperty ? pConnect.getValue(`.${property}`) : value;\n    }\n  }\n  return payload;\n}\n\nfunction getDataReferenceInfo(pConnect, dataRelationshipContext, contextPage) {\n  if (!pConnect) {\n    throw Error('PConnect parameter is required');\n  }\n\n  const pageReference = pConnect.getPageReference();\n  if (!pageReference) {\n    return {};\n  }\n\n  const contextProperty = getContextProperty(pageReference, dataRelationshipContext);\n  const fieldMetadata = pConnect.getFieldMetadata(contextProperty);\n\n  if (fieldMetadata?.datasource) {\n    const { name, parameters } = fieldMetadata.datasource;\n    const payload = buildPayload(parameters, pConnect, contextPage, dataRelationshipContext);\n    return { dataContext: name, dataContextParameters: payload };\n  }\n\n  return {};\n}\n\nfunction isLinkTextEmpty(text) {\n  return text === '' || text === undefined || text === null;\n}\n\nexport { getDataReferenceInfo, isLinkTextEmpty };\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { getDataReferenceInfo, isLinkTextEmpty } from '../../../_helpers/semanticLink-utils';\nimport { Utils } from '../../../_helpers/utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface SemanticLinkProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on SemanticLink here\n  text: string;\n  resourcePayload: any;\n  resourceParams: any;\n  previewKey: string;\n  referenceType: string;\n  dataRelationshipContext: string;\n  contextPage: any;\n}\n\n@Component({\n  selector: 'app-semantic-link',\n  templateUrl: './semantic-link.component.html',\n  styleUrls: ['./semantic-link.component.scss'],\n  imports: [CommonModule]\n})\nexport class SemanticLinkComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: SemanticLinkProps;\n\n  label$ = '';\n  value$ = '';\n  displayMode$?: string = '';\n  bVisible$ = true;\n  linkURL = '';\n  dataResourcePayLoad: any;\n  referenceType: string;\n  shouldTreatAsDataReference: boolean;\n  previewKey: string;\n  resourcePayload: any = {};\n  payload: object;\n  dataViewName = '';\n  isLinkTextEmpty = false;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    this.updateSelf();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.initializeComponentState();\n    const isData = this.buildDataPayload();\n    this.linkURL = this.buildLinkURL(isData);\n    this.isLinkTextEmpty = isLinkTextEmpty(this.value$);\n  }\n\n  showDataAction() {\n    if (this.dataResourcePayLoad && this.dataResourcePayLoad.resourceType === 'DATA') {\n      const { content } = this.dataResourcePayLoad;\n      const lookUpDataPageInfo = PCore.getDataTypeUtils().getLookUpDataPageInfo(this.dataResourcePayLoad?.className);\n      const lookUpDataPage = PCore.getDataTypeUtils().getLookUpDataPage(this.dataResourcePayLoad?.className);\n      if (lookUpDataPageInfo) {\n        const { parameters } = lookUpDataPageInfo as any;\n        this.payload = Object.keys(parameters).reduce((acc, param) => {\n          const paramValue = parameters[param];\n          return {\n            ...acc,\n            [param]: PCore.getAnnotationUtils().isProperty(paramValue) ? content[PCore.getAnnotationUtils().getPropertyName(paramValue)] : paramValue\n          };\n        }, {});\n      }\n      this.pConn$.getActionsApi().showData('pyDetails', lookUpDataPage, {\n        ...this.payload\n      });\n    }\n    if ((this.referenceType && this.referenceType.toUpperCase() === 'DATA') || this.shouldTreatAsDataReference) {\n      this.pConn$.getActionsApi().showData('pyDetails', this.dataViewName, {\n        ...this.payload\n      });\n    }\n  }\n\n  openLinkClick(e) {\n    if (!e.metaKey && !e.ctrlKey) {\n      e.preventDefault();\n      if (\n        (this.dataResourcePayLoad && this.dataResourcePayLoad.resourceType === 'DATA') ||\n        (this.referenceType && this.referenceType.toUpperCase() === 'DATA') ||\n        this.shouldTreatAsDataReference\n      ) {\n        this.showDataAction();\n      } else if (this.previewKey) {\n        this.pConn$.getActionsApi().openWorkByHandle(this.previewKey, this.resourcePayload.caseClassName);\n      }\n    }\n  }\n\n  private initializeComponentState() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SemanticLinkProps;\n    this.value$ = this.configProps$.text || this.configProps$.value || '';\n    this.displayMode$ = this.configProps$.displayMode;\n    this.label$ = this.configProps$.label;\n    if (this.configProps$.visibility) {\n      this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n    }\n    this.referenceType = this.configProps$.referenceType;\n    this.previewKey = this.configProps$.previewKey;\n    this.resourcePayload = this.configProps$.resourcePayload ?? {};\n    this.dataResourcePayLoad = this.resourcePayload?.resourceType === 'DATA' ? this.resourcePayload : null;\n    this.shouldTreatAsDataReference = !this.previewKey && this.resourcePayload?.caseClassName;\n\n    const { contextPage } = this.configProps$;\n    if (contextPage?.classID) {\n      this.resourcePayload.caseClassName = contextPage.classID;\n    }\n\n    const {\n      WORKCLASS,\n      CASE_INFO: { CASE_INFO_CLASSID }\n    } = PCore.getConstants();\n    if (this.resourcePayload.caseClassName === WORKCLASS) {\n      this.resourcePayload.caseClassName = this.pConn$.getValue(CASE_INFO_CLASSID);\n    }\n  }\n\n  private buildDataPayload() {\n    const { dataRelationshipContext = null, contextPage } = this.configProps$;\n    const {\n      RESOURCE_TYPES: { DATA }\n    } = PCore.getConstants();\n\n    if ((this.referenceType && this.referenceType.toUpperCase() === DATA) || this.shouldTreatAsDataReference) {\n      try {\n        const dataRefContext = getDataReferenceInfo(this.pConn$, dataRelationshipContext, contextPage);\n        this.dataViewName = dataRefContext.dataContext ?? '';\n        this.payload = dataRefContext.dataContextParameters ?? {};\n        return true;\n      } catch (error) {\n        console.log('Error in getting the data reference info', error);\n        return false;\n      }\n    }\n\n    if (this.resourcePayload?.resourceType === 'DATA') {\n      this.dataViewName = PCore.getDataTypeUtils().getLookUpDataPage(this.resourcePayload.className);\n      const lookUpDataPageInfo: any = PCore.getDataTypeUtils().getLookUpDataPageInfo(this.resourcePayload.className);\n      const { content } = this.resourcePayload;\n\n      if (lookUpDataPageInfo) {\n        const { parameters } = lookUpDataPageInfo;\n        this.payload = Object.keys(parameters).reduce((acc, param) => {\n          const paramValue = parameters[param];\n          const propName = PCore.getAnnotationUtils().getPropertyName(paramValue);\n          const value = PCore.getAnnotationUtils().isProperty(paramValue) ? content[propName] : paramValue;\n          return { ...acc, [param]: value };\n        }, {});\n      } else {\n        const keysInfo = PCore.getDataTypeUtils().getDataPageKeys(this.dataViewName) ?? [];\n        this.payload = keysInfo.reduce((acc, curr) => {\n          const key = curr.isAlternateKeyStorage ? curr.linkedField : curr.keyName;\n          return { ...acc, [curr.keyName]: content[key] };\n        }, {});\n      }\n      return true;\n    }\n    return false;\n  }\n\n  private buildLinkURL(isData: boolean) {\n    const { ACTION_OPENWORKBYHANDLE, ACTION_SHOWDATA, ACTION_GETOBJECT } = PCore.getSemanticUrlUtils().getActions() as any;\n\n    if (isData && this.dataViewName && this.payload) {\n      return PCore.getSemanticUrlUtils().getResolvedSemanticURL(\n        ACTION_SHOWDATA,\n        { pageName: 'pyDetails', dataViewName: this.dataViewName },\n        { ...this.payload }\n      );\n    }\n\n    const { resourceParams = {} } = this.configProps$;\n    const isObjectType = (PCore.getCaseUtils() as any).isObjectCaseType(this.resourcePayload.caseClassName);\n    const idKey = isObjectType ? 'objectID' : 'workID';\n\n    if (resourceParams.workID === '' && typeof this.previewKey === 'string') {\n      resourceParams[idKey] = this.previewKey.split(' ')[1];\n    } else {\n      resourceParams[idKey] = resourceParams.workID;\n    }\n\n    if (this.previewKey) {\n      resourceParams.id = this.previewKey;\n    }\n\n    return PCore.getSemanticUrlUtils().getResolvedSemanticURL(\n      isObjectType ? ACTION_GETOBJECT : ACTION_OPENWORKBYHANDLE,\n      this.resourcePayload,\n      resourceParams\n    );\n  }\n}\n","<div *ngIf=\"bVisible$ !== false\">\n  <a *ngIf=\"!isLinkTextEmpty; else noLink\" class=\"psdk-value\" href=\"#\" (click)=\"openLinkClick($event)\">{{ value$ || '---' }}</a>\n</div>\n<ng-template #noLink>\n  <div class=\"psdk-value\">{{ value$ || '---' }}</div>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextAreaProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on TextArea here\n  fieldMetadata?: any;\n}\n\n@Component({\n  selector: 'app-text-area',\n  templateUrl: './text-area.component.html',\n  styleUrls: ['./text-area.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TextAreaComponent extends FieldBase {\n  configProps$: TextAreaProps;\n\n  nMaxLength$: number;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextAreaProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract properties from config\n    const { value } = this.configProps$;\n\n    // Set component specific properties\n    this.value$ = value;\n    this.nMaxLength$ = this.pConn$.getFieldMetadata(this.pConn$.getRawConfigProps()?.value)?.maxLength || 100;\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const value = event?.target?.value;\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\">\n      <div *ngIf=\"bVisible$\">\n        <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n          <mat-label>{{ label$ }}</mat-label>\n          <textarea\n            matInput\n            rows=\"5\"\n            [placeholder]=\"label$\"\n            type=\"text\"\n            [attr.data-test-id]=\"testId\"\n            [value]=\"value$\"\n            [required]=\"bRequired$\"\n            [disabled]=\"bDisabled$\"\n            [readonly]=\"bReadonly$\"\n            [formControl]=\"fieldControl\"\n            (change)=\"fieldOnChange($event)\"\n            (blur)=\"fieldOnBlur($event)\"\n          ></textarea>\n          <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n        </mat-form-field>\n      </div>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\nimport { format } from '../../../_helpers/formatters';\n\ninterface TextProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Text here\n}\n\n@Component({\n  selector: 'app-text',\n  templateUrl: './text.component.html',\n  styleUrls: ['./text.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TextComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() formatAs$: string;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: TextProps;\n\n  label$ = '';\n  value$ = '';\n  bRequired$ = false;\n  bReadonly$ = false;\n  bDisabled$ = false;\n  bVisible$ = true;\n  displayMode$?: string = '';\n  controlName$: string;\n  componentReference = '';\n  formattedValue$: string;\n  format$ = 'text';\n  formattedUrl$ = '';\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // Then, continue on with other initialization\n\n    // call updateSelf when initializing\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    // moved this from ngOnInit() and call this from there instead...\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextProps;\n    if (this.configProps$.value != undefined) {\n      this.value$ = this.configProps$.value;\n    }\n\n    if (this.configProps$.visibility != null) {\n      this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n    }\n\n    this.label$ = this.configProps$.label;\n    this.displayMode$ = this.configProps$.displayMode;\n\n    // TDB - get formats\n    switch (this.formatAs$) {\n      case 'text':\n        this.formattedValue$ = this.value$;\n        break;\n      case 'date':\n        this.formattedValue$ = this.generateDate(this.value$);\n        break;\n      case 'date-time':\n        this.formattedValue$ = this.generateDateTime(this.value$);\n        break;\n      case 'time':\n        if (this.value$) {\n          this.formattedValue$ = format(this.value$, 'timeonly', {\n            format: 'hh:mm A'\n          });\n        } else {\n          this.formattedValue$ = '';\n        }\n        break;\n      case 'url':\n        this.formattedUrl$ = this.generateUrl(this.value$);\n        this.formattedValue$ = this.value$;\n        break;\n      default:\n        break;\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  generateUrl(sVal): string {\n    if (sVal.indexOf('https://') == 0 || sVal.indexOf('http://') == 0) {\n      /* empty */\n    } else {\n      // assume no http\n      sVal = `http://${sVal}`;\n    }\n\n    return sVal;\n  }\n\n  generateDate(sVal): string {\n    if (!sVal) return '';\n    // const value = new Intl.DateTimeFormat('default', {\n    //   year: 'numeric',\n    //   month: 'numeric',\n    //   day: 'numeric'\n    // }).format(new Date(sVal + \"T00:00\"));\n\n    return this.utils.generateDate(sVal, 'Date-Long-Custom-YYYY');\n  }\n\n  generateDateTime(sVal): string {\n    if (!sVal) return '';\n    if (sVal.length === 10) return this.generateDate(sVal);\n    // const value = sVal.substring(0, sVal.length - 1);\n    // value = new Intl.DateTimeFormat('default', {\n    //   year: 'numeric',\n    //   month: 'numeric',\n    //   day: 'numeric',\n    //   hour: 'numeric',\n    //   minute: 'numeric',\n    //   second: 'numeric',\n    //   hour12: true,\n    // }).format(new Date(value))\n\n    return this.utils.generateDateTime(sVal, 'DateTime-Long-YYYY-Custom');\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"bVisible$ !== false\" class=\"psdk-label-infix-readonly\">\n    <span class=\"psdk-label-wrapper-readonly\">\n      <label class=\"psdk-label-readonly\">{{ label$ }}</label>\n    </span>\n    <div class=\"psdk-data-readonly\">\n      <label *ngIf=\"formatAs$ != 'url'\">{{ formattedValue$ }}</label>\n      <a *ngIf=\"formatAs$ == 'url'\" href=\"{{ formattedUrl$ }}\">{{ formattedValue$ }}</a>\n    </div>\n  </div>\n</ng-template>\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextContentProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on TextContent here\n  content: string;\n  displayAs: 'Paragraph' | 'Heading 1' | 'Heading 2' | 'Heading 3' | 'Heading 4';\n}\n\n@Component({\n  selector: 'app-text-content',\n  templateUrl: './text-content.component.html',\n  styleUrls: ['./text-content.component.scss'],\n  imports: [CommonModule]\n})\nexport class TextContentComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: TextContentProps;\n\n  content$ = '';\n  displayAs$: string;\n  displayMode$?: string = '';\n  bVisible$ = true;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // Then, continue on with other initialization\n\n    // call updateSelf when initializing\n    // this.updateSelf();\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    // moved this from ngOnInit() and call this from there instead...\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextContentProps;\n    if (this.configProps$.content != undefined) {\n      this.content$ = this.configProps$.content;\n    }\n    if (this.configProps$.displayAs != undefined) {\n      this.displayAs$ = this.configProps$.displayAs;\n    }\n    this.displayMode$ = this.configProps$.displayMode;\n\n    if (this.configProps$.visibility != null) {\n      this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n    }\n\n    // Any update to content or displayAs will re-render this component.\n    //  All rendering logic is in the .html file.\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n}\n","<div *ngIf=\"bVisible$ !== false\" class=\"psdk-data-readonly\">\n  <div *ngIf=\"displayAs$ == 'Paragraph'\" class=\"mat-subtitle-2\">{{ content$ }}</div>\n  <div *ngIf=\"displayAs$ == 'Heading 1'\" class=\"mat-h1\">{{ content$ }}</div>\n  <div *ngIf=\"displayAs$ == 'Heading 2'\" class=\"mat-h2\">{{ content$ }}</div>\n  <div *ngIf=\"displayAs$ == 'Heading 3'\" class=\"mat-h3\">{{ content$ }}</div>\n  <div *ngIf=\"displayAs$ == 'Heading 4'\" class=\"mat-h4\">{{ content$ }}</div>\n</div>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TextInputProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on TextInput here\n  fieldMetadata?: any;\n}\n\n@Component({\n  selector: 'app-text-input',\n  templateUrl: './text-input.component.html',\n  styleUrls: ['./text-input.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TextInputComponent extends FieldBase {\n  configProps$: TextInputProps;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TextInputProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Get and set component specific properties\n    const { value } = this.configProps$;\n    this.value$ = value;\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const value = event?.target?.value;\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [placeholder]=\"placeholder\"\n          type=\"text\"\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [attr.data-test-id]=\"testId\"\n          [formControl]=\"fieldControl\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'text' }\"></component-mapper>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { format } from '../../../_helpers/formatters';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface TimeProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on Time here\n}\n\n@Component({\n  selector: 'app-time',\n  templateUrl: './time.component.html',\n  styleUrls: ['./time.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TimeComponent extends FieldBase {\n  configProps$: TimeProps;\n  formattedValue$: any;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as TimeProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract the value property\n    const { value } = this.configProps$;\n    this.value$ = value;\n\n    if (['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(this.displayMode$)) {\n      this.formattedValue$ = format(this.value$, 'timeonly', {\n        format: 'hh:mm A'\n      });\n    }\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event?.target?.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      let value = event?.target?.value;\n      const hhmmPattern = /^\\d{2}:\\d{2}$/;\n      if (hhmmPattern.test(value)) {\n        value = `${value}:00`; // append \":00\"\n      }\n\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$: formattedValue$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [placeholder]=\"placeholder\"\n          type=\"time\"\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [attr.data-test-id]=\"testId\"\n          [formControl]=\"fieldControl\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'time' }\"></component-mapper>\n</ng-template>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface URLProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on URL here\n}\n\n@Component({\n  selector: 'app-url',\n  templateUrl: './url.component.html',\n  styleUrls: ['./url.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class UrlComponent extends FieldBase {\n  configProps$: URLProps;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as URLProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value } = this.configProps$;\n    this.value$ = value;\n  }\n\n  fieldOnChange(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      this.pConn$.clearErrorMessages({\n        property: this.propName\n      });\n    }\n  }\n\n  fieldOnBlur(event: any) {\n    const oldVal = this.value$ ?? '';\n    const isValueChanged = event.target.value.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      const value = event?.target?.value;\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$ && bHasForm$; else noEdit\">\n    <div [formGroup]=\"formGroup$\" *ngIf=\"bVisible$\">\n      <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n        <mat-label>{{ label$ }}</mat-label>\n        <input\n          matInput\n          [placeholder]=\"placeholder\"\n          type=\"url\"\n          [value]=\"value$\"\n          [required]=\"bRequired$\"\n          [attr.data-test-id]=\"testId\"\n          [formControl]=\"fieldControl\"\n          (change)=\"fieldOnChange($event)\"\n          (blur)=\"fieldOnBlur($event)\"\n        />\n        <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n      </mat-form-field>\n    </div>\n  </div>\n</ng-template>\n<ng-template #noEdit>\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"Text\" [props]=\"{ pConn$, formatAs$: 'url' }\"></component-mapper>\n</ng-template>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\nimport { map, Observable, startWith } from 'rxjs';\nimport { handleEvent } from '../../../_helpers/event-util';\n\nconst OPERATORS_DP = 'D_pyGetOperatorsForCurrentApplication';\nconst DROPDOWN_LIST = 'Drop-down list';\nconst SEARCH_BOX = 'Search box';\n\ninterface UserReferenceProps extends Omit<PConnFieldProps, 'value'> {\n  // If any, enter additional props that only exist on UserReference here\n  displayAs?: string;\n  value?: any;\n  showAsFormattedText?: boolean;\n  additionalProps?: object;\n  onRecordChange?: any;\n}\n\n@Component({\n  selector: 'app-user-reference',\n  templateUrl: './user-reference.component.html',\n  styleUrls: ['./user-reference.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatSelectModule,\n    MatOptionModule,\n    MatInputModule,\n    MatAutocompleteModule,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class UserReferenceComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n  controlName$: string;\n  value$;\n  userName$: string;\n  label$: string;\n  userID$: string;\n  options$: any;\n  bReadonly$: boolean;\n  bRequired$: boolean;\n  showAsFormattedText$?: boolean;\n  displayAs$?: string;\n  testId: string;\n  helperText: string;\n  placeholder: string;\n  displayMode$?: string;\n  filteredOptions: Observable<any[]>;\n  filterValue = '';\n\n  fieldControl = new FormControl('', null);\n  actionsApi: object;\n  propName: string;\n  onRecordChange: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  async ngOnInit(): Promise<void> {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.controlName$ = this.angularPConnect.getComponentID(this);\n\n    await this.checkAndUpdate();\n\n    if (this.formGroup$) {\n      // add control to formGroup\n      this.formGroup$.addControl(this.controlName$, this.fieldControl);\n      this.fieldControl.setValue(this.getValue(this.value$));\n    }\n\n    this.filteredOptions = this.fieldControl.valueChanges.pipe(\n      startWith(this.getValue(this.value$) || ''),\n      map(value => this._filter(value || ''))\n    );\n  }\n\n  ngOnDestroy() {\n    if (this.formGroup$) {\n      this.formGroup$.removeControl(this.controlName$);\n    }\n\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  get type(): string {\n    if (this.bReadonly$ && this.showAsFormattedText$) {\n      return 'operator';\n    }\n    if (this.displayAs$ === DROPDOWN_LIST) {\n      return 'dropdown';\n    }\n    if (this.displayAs$ === SEARCH_BOX) {\n      return 'searchbox';\n    }\n\n    return '';\n  }\n\n  // Callback passed when subscribing to store change\n  async onStateChange() {\n    await this.checkAndUpdate();\n  }\n\n  private _filter(value: string): string[] {\n    const filterVal = (value || this.filterValue).toLowerCase();\n    return this.options$?.filter(option => option.value?.toLowerCase().includes(filterVal));\n  }\n\n  isUserNameAvailable = user => {\n    return typeof user === 'object' && user !== null && user.userName;\n  };\n\n  getUserName = user => {\n    return user.userName;\n  };\n\n  getValue = user => {\n    if (this.displayAs$ === DROPDOWN_LIST) {\n      return this.utils.getUserId(user) || this.getUserName(user);\n    }\n    return this.isUserNameAvailable(user) ? this.getUserName(user) : this.utils.getUserId(user);\n  };\n\n  async checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      await this.updateSelf();\n    }\n  }\n\n  async updateSelf() {\n    const props = this.pConn$.getConfigProps() as UserReferenceProps;\n    this.testId = props.testId;\n    this.onRecordChange = props?.onRecordChange;\n\n    const { label, displayAs, value, showAsFormattedText, helperText, placeholder, displayMode } = props;\n\n    this.label$ = label;\n    this.showAsFormattedText$ = showAsFormattedText;\n    this.displayAs$ = displayAs;\n    this.helperText = helperText;\n    this.placeholder = placeholder || '';\n    this.displayMode$ = displayMode;\n\n    if (value && typeof value === 'object') {\n      this.value$ = value.userName ? value.userName : '';\n    } else {\n      this.value$ = value || '';\n    }\n\n    const { readOnly, required } = props;\n    [this.bReadonly$, this.bRequired$] = [readOnly, required].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));\n\n    this.actionsApi = this.pConn$.getActionsApi();\n    this.propName = this.pConn$.getStateProps().value;\n\n    this.userID$ = this.utils.getUserId(value);\n\n    if (this.userID$ && this.bReadonly$ && this.showAsFormattedText$) {\n      if (this.isUserNameAvailable(value)) {\n        this.userName$ = value.userName;\n      } else {\n        // if same user ref field is referred in view as editable & readonly formatted text\n        // referenced users won't be available, so get user details from dx api\n\n        this.userName$ = await getUserName(this.pConn$, this.userID$);\n      }\n    } else if (displayAs === DROPDOWN_LIST || displayAs === SEARCH_BOX) {\n      const queryPayload = {\n        dataViewName: OPERATORS_DP\n      };\n      try {\n        const resp = await PCore.getRestClient().invokeRestApi('getListData', { queryPayload }, ''); // 3rd arg empty string until typedef marked correctly\n        if (resp?.data) {\n          const ddDataSource = resp.data.data.map(listItem => ({\n            key: listItem.pyUserIdentifier,\n            value: listItem.pyUserName\n          }));\n          this.options$ = ddDataSource;\n        }\n      } catch (error) {\n        console.log(error);\n      }\n    }\n  }\n\n  fieldOnChange(event: any) {\n    if (event?.value === 'Select') {\n      event.value = '';\n    }\n    if (event?.target) {\n      this.filterValue = (event.target as HTMLInputElement).value;\n    }\n    const value = event?.value;\n    handleEvent(this.actionsApi, 'change', this.propName, value);\n  }\n\n  optionChanged(event: any) {\n    const value = event?.option?.value;\n    handleEvent(this.actionsApi, 'change', this.propName, value);\n  }\n\n  fieldOnBlur(event: any) {\n    let key = '';\n    if (event?.target?.value) {\n      const index = this.options$?.findIndex(element => element.value === event.target.value);\n      key = index > -1 ? (key = this.options$[index].key) : event.target.value;\n    }\n    const value = key;\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n    if (this.onRecordChange) {\n      event.target.value = value;\n      this.onRecordChange(event);\n    }\n  }\n\n  getErrorMessage() {\n    let errMessage = '';\n\n    // look for validation messages for json, pre-defined or just an error pushed from workitem (400)\n    if (this.fieldControl.hasError('message')) {\n      errMessage = this.angularPConnectData.validateMessage ?? '';\n      return errMessage;\n    }\n    if (this.fieldControl.hasError('required')) {\n      errMessage = 'You must enter a value';\n    } else if (this.fieldControl.errors) {\n      errMessage = this.fieldControl.errors.toString();\n    }\n\n    return errMessage;\n  }\n}\n\nconst buildColumnForDisplayValue = dataObj => {\n  if (dataObj.columns) {\n    dataObj.columns = dataObj.columns.map(column => {\n      const tempColObj = { ...column };\n      if (tempColObj.key === 'true') {\n        tempColObj.useForSearch = true;\n      } else {\n        tempColObj.useForSearch = false;\n      }\n      return tempColObj;\n    });\n  }\n};\n\nfunction getUserName(pConn, userId = ''): Promise<string> {\n  return new Promise(resolve => {\n    const { parameters = {}, referenceList } = pConn.getConfigProps();\n    const contextName = pConn.getContextName();\n\n    const OPERATORS_DP = referenceList || PCore.getEnvironmentInfo().getDefaultOperatorDP() || '';\n\n    const columns = [\n      {\n        value: 'pyUserName',\n        display: 'true',\n        useForSearch: true,\n        primary: 'true'\n      },\n      {\n        value: 'pyUserIdentifier',\n        setProperty: 'Associated property',\n        key: 'true',\n        display: 'true',\n        secondary: 'true',\n        useForSearch: true\n      }\n    ];\n\n    const dataConfig: any = {\n      dataSource: OPERATORS_DP,\n      parameters,\n      matchPosition: 'equals',\n      listType: 'datapage',\n      columns,\n      cacheLifeSpan: 'form',\n      deferDatasource: false,\n      maxResultsDisplay: '1',\n      ignoreCase: true\n    };\n\n    PCore.getDataApi()\n      .init(dataConfig, contextName)\n      .then(dataApiObj => {\n        buildColumnForDisplayValue(dataApiObj);\n        dataApiObj.registerForBufferedCall({ waitTime: 50 });\n        dataApiObj.fetchData(userId).then((response: any) => {\n          resolve(response.data?.[0]?.pyUserName || userId);\n        });\n      });\n  });\n}\n","<div>\n  <div *ngIf=\"displayMode$; else noDisplayMode\">\n    <component-mapper name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n  </div>\n  <ng-template #noDisplayMode>\n    <div class=\"psdk-user-reference\">\n      <div *ngIf=\"this.userID$ && type === 'operator'\">\n        <component-mapper name=\"Operator\" [props]=\"{ pConn$, name$: userName$ }\"></component-mapper>\n      </div>\n      <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'dropdown'\">\n        <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n          <mat-select [required]=\"bRequired$\" [formControl]=\"fieldControl\" [attr.data-test-id]=\"testId\" (selectionChange)=\"fieldOnChange($event)\">\n            <mat-option *ngFor=\"let opt of options$\" [value]=\"opt.key\">\n              {{ opt.value }}\n            </mat-option>\n          </mat-select>\n          <mat-label>{{ label$ }}</mat-label>\n          <mat-error *ngIf=\"fieldControl.invalid\">\n            {{ getErrorMessage() }}\n          </mat-error>\n        </mat-form-field>\n      </div>\n      <div [formGroup]=\"formGroup$\" *ngIf=\"type === 'searchbox'\">\n        <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\" [hintLabel]=\"helperText\">\n          <mat-label>{{ label$ }}</mat-label>\n          <input\n            matInput\n            [placeholder]=\"placeholder\"\n            [formControl]=\"fieldControl\"\n            [required]=\"bRequired$\"\n            [matAutocomplete]=\"auto\"\n            [attr.data-test-id]=\"testId\"\n            (blur)=\"fieldOnBlur($event)\"\n          />\n          <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"optionChanged($event)\">\n            <mat-option *ngFor=\"let opt of filteredOptions | async\" [value]=\"opt.value\">\n              <span>{{ opt.value }}</span>\n            </mat-option>\n          </mat-autocomplete>\n          <mat-error *ngIf=\"fieldControl.invalid\">\n            {{ getErrorMessage() }}\n          </mat-error>\n        </mat-form-field>\n      </div>\n    </div>\n  </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef } from '@angular/core';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface ScalarListProps extends Omit<PConnFieldProps, 'value'> {\n  // If any, enter additional props that only exist on ScalarList here\n  displayInModal: boolean;\n  value: any[];\n  componentType: string;\n  restProps?: object;\n}\n\n@Component({\n  selector: 'app-scalar-list',\n  templateUrl: './scalar-list.component.html',\n  styleUrls: ['./scalar-list.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ScalarListComponent extends FieldBase {\n  configProps$: ScalarListProps;\n\n  items: any[];\n  isDisplayModeEnabled = false;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ScalarListProps;\n\n    // Extract properties from config props\n    const { componentType, displayMode = '', label, value, restProps } = this.configProps$;\n\n    // Update component properties\n    this.label$ = label;\n    this.displayMode$ = displayMode;\n\n    this.items = value?.map(scalarValue => {\n      return this.pConn$.createComponent(\n        {\n          type: componentType,\n          config: {\n            value: scalarValue,\n            displayMode: 'DISPLAY_ONLY',\n            label: this.label$,\n            ...restProps,\n            readOnly: true\n          }\n        },\n        '',\n        0,\n        {}\n      ); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional;\n    });\n\n    this.isDisplayModeEnabled = ['STACKED_LARGE_VAL', 'DISPLAY_ONLY'].includes(this.displayMode$ as string);\n    this.value$ = this.items;\n  }\n}\n","<div *ngIf=\"isDisplayModeEnabled\">\n  <div *ngFor=\"let value of items\">\n    <component-mapper [name]=\"value?.getPConnect().getComponentName()\" [props]=\"{ pConn$: value.getPConnect(), formGroup$ }\"></component-mapper>\n    <!-- <span key=\"i\">{{ value }}</span> -->\n  </div>\n</div>\n<div *ngIf=\"!isDisplayModeEnabled\">\n  <component-mapper name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$ }\"></component-mapper>\n</div>\n","import { getTabLabel } from '../../../../_helpers/tab-utils';\n\nexport function getTabCountSources(deferLoadedTabs) {\n  const availableTabs = deferLoadedTabs.getPConnect().getChildren() || [];\n  const viewName = deferLoadedTabs?.getPConnect()?.options?.viewName || null;\n  return availableTabs.reduce(\n    (prev, tab, index) => {\n      const config = tab.getPConnect().getConfigProps();\n      const { value: showTabCount } = config.inheritedProps?.find(item => item.prop === 'showTabCount') || {};\n      const { value } = config.inheritedProps?.find(item => item.prop === 'count') || {};\n      const tabCountSource = config.inheritedProps?.find(item => item.prop === 'tabCount');\n      const name = getTabLabel(tab.getPConnect());\n      const tabId = `${viewName}-${config.name || name}-${index}`;\n      if (showTabCount) {\n        if (tabCountSource?.value?.fields?.count) {\n          const isPrefixedByDot = tabCountSource.value.fields.count.substring(0, 1) === '.';\n          return {\n            ...prev,\n            dataPageSources: [\n              ...prev.dataPageSources,\n              {\n                dataPageName: tabCountSource.value.source,\n                tabId,\n                tabCountProp: isPrefixedByDot ? tabCountSource.value.fields.count.substring(1) : tabCountSource.value.fields.count,\n                dataViewParameters: tabCountSource.value?.parameters || {}\n              }\n            ]\n          };\n        }\n        if (Number.isInteger(value) && value % 1 === 0) {\n          return {\n            ...prev,\n            calculatedFields: [\n              ...prev.calculatedFields,\n              {\n                count: value,\n                context: tab.getPConnect().getContextName(),\n                tabId\n              }\n            ]\n          };\n        }\n        if (value?.isDeferred) {\n          return {\n            ...prev,\n            calculatedFields: [\n              ...prev.calculatedFields,\n              {\n                propertyName: value.propertyName,\n                context: 'content',\n                tabId\n              }\n            ]\n          };\n        }\n      }\n      return prev;\n    },\n    {\n      dataPageSources: [],\n      calculatedFields: []\n    }\n  );\n}\n\nfunction tabContent(id, index, overideTabContent, tab, data, currentTabId, template) {\n  if (id === currentTabId || template === 'HierarchicalForm') {\n    if (overideTabContent) {\n      return tab.getPConnect().getComponent();\n    }\n    if (data[index]?.content) {\n      return data[index]?.content;\n    }\n    return tab.getPConnect().getComponent();\n  }\n  if (template !== 'HierarchicalForm') {\n    return overideTabContent ? null : data[index]?.content;\n  }\n}\n\nfunction getTabsData(deferLoadedTabs, countMetadata, currentTabId, data) {\n  const availableTabs = deferLoadedTabs.getPConnect().getChildren() || [];\n  const viewName = deferLoadedTabs?.getPConnect()?.options?.viewName || null;\n  return availableTabs.map((tab, index) => {\n    const config = tab.getPConnect().getConfigProps();\n    const name = getTabLabel(tab.getPConnect());\n    const tabId = `${viewName}-${config.name || name}-${index}`;\n    const count = countMetadata.find(item => item.tabId === tabId)?.count;\n\n    return {\n      name,\n      id: tabId,\n      getPConnect: tab.getPConnect,\n      content: tabContent(tabId, index, '', tab, data, currentTabId, ''),\n      loaded: tabId === currentTabId || Boolean(data[index]?.content),\n      visibility: () => {\n        const tabConfig = tab.getPConnect().getConfigProps();\n        const isVisible = !('visibility' in tabConfig) || tabConfig.visibility === true;\n        if (!isVisible) {\n          tab.getPConnect().removeNode();\n        }\n        return isVisible;\n      },\n      count\n    };\n  });\n}\n\nexport function getData(deferLoadedTabs, tabCountSources, currentTabId, data) {\n  let countMetadata;\n  let tabData;\n  const pConn = deferLoadedTabs.getPConnect();\n  const { dataPageSources, calculatedFields } = tabCountSources;\n  const calculatedFieldsWithoutValue = calculatedFields.filter(item => item.propertyName);\n  if (dataPageSources.length) {\n    Promise.all(dataPageSources.map(item => PCore.getDataPageUtils().getPageDataAsync(item.dataPageName, '', item.dataViewParameters)))\n      .then(res => {\n        const temp = res.map((r, index) => ({\n          ...dataPageSources[index],\n          count: r[dataPageSources[index].tabCountProp]\n        }));\n        countMetadata = temp;\n        tabData = getTabsData(deferLoadedTabs, countMetadata, currentTabId, data);\n      })\n      .catch(err => {\n        console.log(err);\n      });\n  } else if (calculatedFieldsWithoutValue.length) {\n    PCore.getViewRuleApi()\n      // @ts-ignore\n      .getCalculatedFields(\n        pConn.getCaseInfo().getKey(),\n        pConn.getCurrentView(),\n        calculatedFieldsWithoutValue.map(({ propertyName, context }) => ({\n          name: propertyName,\n          context\n        }))\n      )\n      .then(res => {\n        const values = (res?.data as any)?.caseInfo?.content || {};\n        const temp = calculatedFields.map(field => ({\n          ...field,\n          count: values[field.propertyName?.substring(1)] || field.count\n        }));\n        countMetadata = temp;\n        tabData = getTabsData(deferLoadedTabs, countMetadata, currentTabId, data);\n      })\n      .catch(err => {\n        console.log(err);\n      });\n  } else {\n    countMetadata = calculatedFields.map(field => ({\n      ...field,\n      count: field.count\n    }));\n    tabData = getTabsData(deferLoadedTabs, countMetadata, currentTabId, data);\n  }\n\n  return tabData;\n}\n","const isSelfReferencedProperty = (param, referenceProp) => {\n  const [, parentPropName] = param.split('.');\n  const referencePropParent = referenceProp?.split('.').pop();\n  return parentPropName === referencePropParent;\n};\n\nexport function getFieldMeta(getPConnect, dataRelationshipContext) {\n  const pConn = getPConnect;\n  const { selectionMode, selectionList } = pConn.getConfigProps();\n  const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n\n  const isMultiSelectMode = selectionMode === MULTI;\n\n  const pageReference = pConn.getPageReference();\n  let referenceProp = isMultiSelectMode ? selectionList.substring(1) : pageReference.substring(pageReference.lastIndexOf('.') + 1);\n  // Replace here to use the context name instead\n  let contextPageReference = null;\n  if (dataRelationshipContext !== null && selectionMode === 'single') {\n    referenceProp = dataRelationshipContext;\n    contextPageReference = pageReference.concat('.').concat(referenceProp);\n  }\n\n  const fieldMetadata =\n    (isMultiSelectMode ? pConn.getFieldMetadata(`${referenceProp}`) : pConn.getCurrentPageFieldMetadata(contextPageReference)) ?? {};\n  const { datasource: { parameters: fieldParameters = {} } = {} } = fieldMetadata;\n  const compositeKeys: any = [];\n  Object.values(fieldParameters).forEach((param: any) => {\n    if (isSelfReferencedProperty(param, referenceProp)) {\n      compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));\n    }\n  });\n\n  return { compositeKeys, fieldMetadata };\n}\n\n/**\n * returns array of self-referenced properties of the datasource\n * Ex: returns [\"@P .DataRef.pyGUID\", \"@P .DataRef.customerID\"]\n */\nconst getCompositeKeys = (pConnect, property) => {\n  const fieldMetadata = pConnect.getFieldMetadata(property) || {};\n  const { datasource: { parameters: fieldParameters = {} } = {} } = fieldMetadata;\n  const compositeKeys: any = [];\n  Object.values(fieldParameters).forEach(param => {\n    if (isSelfReferencedProperty(param, property)) {\n      compositeKeys.push(param);\n    }\n  });\n  return compositeKeys;\n};\n\nexport const getFirstChildConfig = ({\n  firstChildMeta,\n  getPConnect,\n  rawViewMetadata,\n  contextClass,\n  dataReferenceConfigToChild,\n  isCreateNewReferenceEnabled,\n  disableStartingFieldsForReference,\n  pyID\n}) => {\n  const config = {\n    ...firstChildMeta.config,\n    ...dataReferenceConfigToChild\n  };\n  const compositeKeys = getCompositeKeys(getPConnect, dataReferenceConfigToChild?.dataRelationshipContext);\n  return {\n    ...config,\n    viewName: getPConnect.getCurrentView(),\n    referenceList: config.referenceList ?? rawViewMetadata.config.referenceList,\n    parameters: rawViewMetadata.config.parameters,\n    localeReference: rawViewMetadata.config.localeReference,\n    contextClass: config.contextClass || rawViewMetadata?.config?.contextClass || rawViewMetadata?.config?.targetObjectClass,\n    allowAddingNewRecords: firstChildMeta.type === 'SimpleTableSelect' && isCreateNewReferenceEnabled ? true : undefined,\n    actions: firstChildMeta.type === 'SimpleTableSelect' &&\n      isCreateNewReferenceEnabled && [\n        {\n          action: 'ADD_CASE',\n          config: {\n            label: '@L Add',\n            caseType: contextClass,\n            inputFields: disableStartingFieldsForReference\n              ? {}\n              : {\n                  [`.pyAddCaseContextPage.${pyID}`]: `@P .${pyID}`\n                }\n          }\n        }\n      ],\n    compositeKeys\n  };\n};\n","import { Component, forwardRef, Input, OnChanges, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { getFirstVisibleTabId, getActiveTabId, searchtabsClick } from '../../../../_helpers/tab-utils';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule, MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\nimport { getTabCountSources, getData } from './tabsData';\nimport { getFieldMeta } from '../utils';\n\n@Component({\n  selector: 'app-search-form',\n  templateUrl: './search-form.component.html',\n  styleUrls: ['./search-form.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatRadioModule,\n    MatOptionModule,\n    MatSelectModule,\n    MatTabsModule,\n    MatDialogModule,\n    MatDialogActions,\n    MatDialogContent,\n    MatDialogTitle,\n    MatButtonModule,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class SearchFormComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() searchSelectCacheKey;\n\n  configProps$: any;\n  isInitialized = false;\n\n  currentTabId: string;\n  nextTabId: string;\n  openDialog = false;\n  tabItems: any[] = [];\n  searchCategoriesComp: any;\n  propsToUse: any;\n  tabData: any = [];\n  tabCountSources: any;\n  deferLoadedTabs: any;\n  @ViewChild('dialogTemplate') dialogTemplate!: TemplateRef<any>;\n  dialogRef: any;\n  constructor(private dialog: MatDialog) {}\n\n  ngOnInit(): void {\n    this.isInitialized = true;\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    this.propsToUse = { ...this.pConn$.getInheritedProps() };\n    this.deferLoadedTabs = this.pConn$.getChildren()[2];\n    const cache: any = PCore.getNavigationUtils().getComponentCache(this.searchSelectCacheKey) ?? {};\n    const { selectedCategory } = cache;\n    const firstTabId = getFirstVisibleTabId(this.deferLoadedTabs, selectedCategory);\n    this.currentTabId = getActiveTabId(this.deferLoadedTabs.getPConnect().getChildren(), firstTabId);\n    this.updateSelf();\n  }\n\n  ngOnChanges() {\n    if (this.isInitialized) {\n      this.updateSelf();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    this.tabCountSources = getTabCountSources(this.deferLoadedTabs);\n    this.tabData = getData(this.deferLoadedTabs, this.tabCountSources, this.currentTabId, this.tabData);\n    this.tabItems = this.tabData?.filter(tab => tab.visibility()) || [];\n    this.initializeSearchCategories();\n  }\n\n  initializeSearchCategories(): void {\n    if (this.tabItems.length >= 3) {\n      this.searchCategoriesComp = 'dropdown';\n    } else if (this.tabItems.length > 1) {\n      this.searchCategoriesComp = 'radio';\n    }\n  }\n\n  handleTabClick(event) {\n    const tabId = event.target.value;\n    const viewName = this.tabData\n      .find((tab: any) => tab.id === this.currentTabId)\n      ?.getPConnect()\n      .getConfigProps().name;\n\n    if (this.checkIfSelectionsExist(this.pConn$)) {\n      event.preventDefault();\n      this.nextTabId = tabId;\n      this.dialogRef = this.dialog.open(this.dialogTemplate, {\n        width: '400px'\n      });\n    } else {\n      // @ts-ignore\n      this.publishEvent({ viewName, tabId });\n      this.currentTabId = tabId;\n      this.tabData = getData(this.deferLoadedTabs, this.tabCountSources, this.currentTabId, this.tabData);\n      this.tabItems = this.tabData?.filter(tab => tab.visibility()) || [];\n    }\n  }\n\n  clearSelectionAndSwitchTab(): void {\n    const viewName = this.tabItems\n      .find((tab: any) => tab.id === this.currentTabId)\n      .getPConnect()\n      .getConfigProps().name;\n\n    this.publishEvent({ clearSelections: true, viewName });\n    searchtabsClick(this.nextTabId, this.tabData, this.currentTabId);\n    this.onDialogClose();\n    this.currentTabId = this.nextTabId;\n    this.tabData = getData(this.deferLoadedTabs, this.tabCountSources, this.currentTabId, this.tabData);\n    this.tabItems = this.tabData?.filter(tab => tab.visibility()) || [];\n  }\n\n  onDialogClose(): void {\n    this.dialogRef.close();\n  }\n\n  publishEvent({ clearSelections, viewName }) {\n    const payload: any = {};\n\n    if (clearSelections) {\n      payload.clearSelections = clearSelections;\n    }\n\n    if (viewName) {\n      payload.viewName = viewName;\n    }\n\n    PCore.getPubSubUtils().publish('update-advanced-search-selections', payload);\n  }\n\n  get activeTabPConnect() {\n    const tabData = this.tabItems.find(tab => tab.id === this.currentTabId);\n    return tabData.content?.getPConnect();\n  }\n\n  checkIfSelectionsExist(getPConnect) {\n    const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n    const { selectionMode, readonlyContextList, contextPage, contextClass, name } = getPConnect.getConfigProps();\n    const isMultiSelectMode = selectionMode === MULTI;\n\n    const dataRelationshipContext = contextClass && name ? name : null;\n\n    const { compositeKeys } = getFieldMeta(getPConnect, dataRelationshipContext);\n\n    let selectionsExist = false;\n    if (isMultiSelectMode) {\n      selectionsExist = readonlyContextList?.length > 0;\n    } else if (contextPage) {\n      selectionsExist = compositeKeys?.filter(key => !['', null, undefined].includes(contextPage[key]))?.length > 0;\n    }\n    return selectionsExist;\n  }\n}\n","<div class=\"search-form\" style=\"display: flex; flex-direction: column\">\n  <h5>{{ propsToUse.label }}</h5>\n  <div *ngIf=\"searchCategoriesComp === 'dropdown'\">\n    <mat-form-field class=\"psdk-full-width\">\n      <mat-select [value]=\"currentTabId\" (selectionChange)=\"handleTabClick($event.value)\">\n        <mat-option *ngFor=\"let tab of tabItems\" [value]=\"tab.id\">{{ tab.name }}</mat-option>\n      </mat-select>\n    </mat-form-field>\n  </div>\n  <div *ngIf=\"searchCategoriesComp === 'radio'\">\n    <mat-radio-group [value]=\"currentTabId\">\n      <mat-radio-button *ngFor=\"let tab of tabItems\" [value]=\"tab.id\" (click)=\"handleTabClick($event)\">{{ tab.name }}</mat-radio-button>\n    </mat-radio-group>\n  </div>\n\n  <!-- Tab Content -->\n  <div>\n    <div *ngFor=\"let tab of tabItems; let index = index\">\n      <div *ngIf=\"tab.id === currentTabId\" class=\"psdk-sub-tabs\">\n        <component-mapper\n          *ngIf=\"tab.content?.getPConnect() as tabPConn\"\n          [name]=\"tabPConn.getComponentName()\"\n          [props]=\"{ pConn$: tabPConn, formGroup$ }\"\n        ></component-mapper>\n      </div>\n    </div>\n  </div>\n  <!-- Dialog -->\n  <ng-template #dialogTemplate>\n    <h2 mat-dialog-title>Discard selections?</h2>\n    <mat-dialog-content>\n      <p>When changing search categories, any previous selections will be lost.</p>\n    </mat-dialog-content>\n    <mat-dialog-actions>\n      <button mat-stroked-button type=\"button\" (click)=\"onDialogClose()\">Go back</button>\n      <button mat-raised-button color=\"primary\" (click)=\"clearSelectionAndSwitchTab()\">Discard</button>\n    </mat-dialog-actions>\n  </ng-template>\n</div>\n","import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { deleteInstruction, insertInstruction } from '../../../_helpers/instructions-utils';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\nimport { FieldBase } from '../field.base';\n\ninterface SelectableCardProps extends PConnFieldProps {\n  selectionList: any;\n  readonlyContextList: any;\n  image: string;\n  primaryField: string;\n  selectionKey: string;\n  renderMode: string;\n  hideFieldLabels?: boolean;\n  additionalProps?: any;\n  imagePosition?: string;\n  imageSize?: string;\n  showImageDescription?: boolean;\n  datasource?: any;\n}\n\n@Component({\n  selector: 'lib-selectable-card',\n  imports: [MatCardModule, CommonModule, MatRadioModule, MatCheckboxModule],\n  templateUrl: './selectable-card.component.html',\n  styleUrl: './selectable-card.component.scss'\n})\nexport class SelectableCardComponent extends FieldBase implements OnInit {\n  @Input() type: string;\n  @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n  configProps$: SelectableCardProps;\n  readOnly = false;\n  disabled = false;\n  radioBtnValue;\n  additionalProps;\n  showNoValue = false;\n  selectionKey?: string;\n  defaultStyle = {};\n  specialStyle = {};\n  cardStyle = {};\n  noLabelStyle: {};\n  selectedvalues: any;\n  selectionList: any;\n  primaryField: string;\n  commonProps: any = {};\n  contentList: [\n    {\n      commonCardProps: { id: string; key: string; fields: any; label: string; selected: boolean };\n      cardImage: { src: string; alt: string; style: any };\n    }\n  ];\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    // styles used in displaying common field props\n    this.defaultStyle = {\n      display: 'grid',\n      gridTemplateColumns: '1fr 1fr',\n      margin: '0.5rem',\n      wordBreak: 'break-word',\n      fontSize: '0.875rem'\n    };\n    this.specialStyle = {\n      margin: '0.5rem',\n      fontSize: '0.875rem'\n    };\n    this.noLabelStyle = {\n      alignItems: 'start',\n      marginLeft: '0.5rem'\n    };\n  }\n\n  override updateSelf(): void {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SelectableCardProps;\n\n    const hideFieldLabels = this.configProps$.hideFieldLabels;\n    const datasource: any = this.configProps$.datasource;\n    const additionalProps: any = this.configProps$.additionalProps;\n    const imageSize: string = this.configProps$.imageSize ?? ''; // not using\n    const showImageDescription: boolean = this.configProps$.showImageDescription ?? false;\n    let recordKey = '';\n    let cardLabel = '';\n    let image: any;\n\n    this.disabled = this.configProps$.disabled;\n    this.readOnly = this.configProps$.renderMode === 'ReadOnly' || this.displayMode$ === 'DISPLAY_ONLY' || this.configProps$.readOnly;\n    const imagePosition = this.configProps$.imagePosition;\n\n    // dynamic styling based on image position and readOnly option\n    let imageWidth = '100%';\n    this.cardStyle = { display: 'flex', flexDirection: 'column', height: '100%' };\n    if (imagePosition && imagePosition !== 'block-start') {\n      imageWidth = '30%';\n      if (imagePosition === 'inline-start') {\n        this.cardStyle = { display: 'flex', flexDirection: 'row', alignItems: this.readOnly ? 'center' : '' };\n      } else if (imagePosition === 'inline-end') {\n        this.cardStyle = {\n          display: 'flex',\n          flexDirection: 'row-reverse',\n          justifyContent: this.readOnly ? 'space-between' : '',\n          alignItems: this.readOnly ? 'center' : ''\n        };\n      }\n    }\n    if (this.type === 'radio') {\n      const stateProps = this.pConn$.getStateProps();\n      image = {\n        imagePosition,\n        imageSize,\n        showImageDescription,\n        imageField: stateProps.image?.split('.').pop(),\n        imageDescription: stateProps.imageDescription?.split('.').pop()\n      };\n\n      recordKey = stateProps.value?.split('.').pop() ?? '';\n      cardLabel = stateProps.primaryField?.split('.').pop() ?? '';\n\n      this.value$ = this.configProps$.value;\n      this.radioBtnValue = this.value$;\n    }\n\n    if (this.type === 'checkbox') {\n      this.testId = this.configProps$.testId;\n      this.displayMode$ = this.configProps$.displayMode ?? '';\n\n      this.selectionKey = this.configProps$.selectionKey;\n      recordKey = this.selectionKey?.split('.').pop() ?? '';\n      cardLabel = this.configProps$.primaryField.split('.').pop() ?? '';\n\n      image = {\n        imagePosition,\n        imageSize,\n        showImageDescription,\n        imageField: this.configProps$.image?.split('.').pop(),\n        imageDescription: (this.pConn$?.getRawMetadata()?.config as any).imageDescription?.split('.').pop()\n      };\n\n      this.selectionList = this.configProps$.selectionList;\n      this.selectedvalues = this.configProps$.readonlyContextList;\n      this.showNoValue = this.readOnly && this.selectedvalues?.length === 0; // not used\n      this.primaryField = this.configProps$.primaryField;\n    }\n\n    this.commonProps = { hideFieldLabels, datasource, additionalProps, image, recordKey, cardLabel, radioBtnValue: this.radioBtnValue ?? '' };\n    const imageDescriptionKey = this.commonProps?.image?.showImageDescription ? this.commonProps?.image?.imageDescription : undefined;\n    const cardDataSource = this.readOnly || this.displayMode$ == 'DISPLAY_ONLY' ? this.selectedvalues || [] : this.commonProps?.datasource?.source;\n\n    this.contentList = cardDataSource.map(item => {\n      const resolvedFields = this.utils.resolveReferenceFields(item, this.commonProps.hideFieldLabels, this.commonProps.recordKey, this.pConn$);\n      const commonCardProps = {\n        id: item[this.commonProps.recordKey],\n        key: item[this.commonProps.recordKey],\n        fields: resolvedFields,\n        label: item[this.commonProps.cardLabel],\n        selected: this.selectedvalues\n          ? this.selectedvalues?.some?.(data => data[this.commonProps.recordKey] === item[this.commonProps.recordKey])\n          : false\n      };\n      const cardImage = item[this.commonProps.image.imageField]\n        ? {\n            src: item[this.commonProps.image.imageField],\n            alt: this.commonProps.image.showImageDescription && imageDescriptionKey ? item[imageDescriptionKey] : '',\n            style: {\n              width: imageWidth,\n              backgroundColor: 'transparent',\n              aspectRatio: '16/9',\n              maxHeight: '100%',\n              objectFit: 'contain',\n              maxWidth: '100%',\n              height: this.readOnly && imagePosition !== 'block-start' ? '5rem' : ''\n            }\n          }\n        : undefined;\n\n      return { cardImage, commonCardProps };\n    });\n  }\n\n  fieldOnChange(value: any) {\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n  }\n\n  fieldOnBlur() {\n    this.pConn$.getValidationApi().validate(this.selectedvalues, this.selectionList);\n  }\n\n  handleChangeMultiMode(event, element) {\n    if (!element.selected) {\n      insertInstruction(this.pConn$, this.selectionList, this.selectionKey, this.primaryField, {\n        id: element.id,\n        primary: element.label\n      });\n    } else {\n      deleteInstruction(this.pConn$, this.selectionList, this.selectionKey, {\n        id: element.key,\n        primary: element.label\n      });\n    }\n    this.pConn$.clearErrorMessages({\n      property: this.selectionList,\n      category: '',\n      context: ''\n    });\n  }\n\n  cardSelect(event, element) {\n    if (this.type === 'radio') {\n      this.fieldOnChange(element.key);\n    } else if (this.type === 'checkbox') {\n      this.handleChangeMultiMode(event, element);\n    }\n  }\n}\n","<div\n  *ngIf=\"type === 'checkbox'\"\n  style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); grid-auto-rows: 1fr; gap: 0.5rem\"\n>\n  <div *ngFor=\"let cardContent of contentList\">\n    <mat-card [ngStyle]=\"cardStyle\" appearance=\"outlined\" (click)=\"cardSelect($event, cardContent.commonCardProps)\">\n      <img\n        *ngIf=\"cardContent.cardImage\"\n        mat-card-image\n        src=\"{{ cardContent.cardImage.src }}\"\n        alt=\"{{ cardContent.cardImage.alt }}\"\n        [ngStyle]=\"cardContent.cardImage.style\"\n      />\n      <mat-card-content>\n        <mat-checkbox\n          [labelPosition]=\"'after'\"\n          [checked]=\"cardContent.commonCardProps.selected\"\n          [disabled]=\"disabled || readOnly\"\n          [attr.data-test-id]=\"testId + ':' + cardContent.commonCardProps.label\"\n          (change)=\"handleChangeMultiMode($event, cardContent.commonCardProps)\"\n          (blur)=\"fieldOnBlur()\"\n          >{{ cardContent.commonCardProps.label }}</mat-checkbox\n        >\n        <div\n          *ngFor=\"let field of cardContent.commonCardProps.fields\"\n          [ngStyle]=\"field.type !== 'TextArea' ? (field.name ? defaultStyle : noLabelStyle) : specialStyle\"\n        >\n          <div>{{ field.name }}</div>\n          <div>{{ field?.value?.getPConnect().getConfigProps().value ?? '--' }}</div>\n        </div>\n      </mat-card-content>\n    </mat-card>\n  </div>\n</div>\n\n<mat-radio-group\n  *ngIf=\"type === 'radio'\"\n  style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); grid-auto-rows: 1fr; gap: 0.5rem\"\n  [name]=\"propName\"\n  [value]=\"radioBtnValue\"\n  (change)=\"fieldOnChange($event.value)\"\n>\n  <div *ngFor=\"let cardContent of contentList\">\n    <mat-card [ngStyle]=\"cardStyle\" appearance=\"outlined\" (click)=\"cardSelect($event, cardContent.commonCardProps)\">\n      <img\n        *ngIf=\"cardContent.cardImage\"\n        mat-card-image\n        src=\"{{ cardContent.cardImage.src }}\"\n        alt=\"{{ cardContent.cardImage.alt }}\"\n        [ngStyle]=\"cardContent.cardImage.style\"\n      />\n      <mat-card-content>\n        <mat-radio-button\n          [checked]=\"radioBtnValue === cardContent?.commonCardProps?.key\"\n          [disabled]=\"disabled\"\n          [value]=\"cardContent.commonCardProps.key\"\n        >\n          {{ cardContent.commonCardProps.label }}\n        </mat-radio-button>\n        <div\n          *ngFor=\"let field of cardContent.commonCardProps.fields\"\n          [ngStyle]=\"field.type !== 'TextArea' ? (field.name ? defaultStyle : noLabelStyle) : specialStyle\"\n        >\n          <div>{{ field.name }}</div>\n          <div>{{ field?.value?.getPConnect().getConfigProps().value ?? '--' }}</div>\n        </div>\n      </mat-card-content>\n    </mat-card>\n  </div>\n</mat-radio-group>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { FieldBase } from '../field.base';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { handleEvent } from '../../../_helpers/event-util';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\n\ninterface RichTextProps extends PConnFieldProps {\n  // If any, enter additional props that only exist on RichText here\n}\n\n@Component({\n  selector: 'app-rich-text',\n  templateUrl: './rich-text.component.html',\n  styleUrls: ['./rich-text.component.scss'],\n  imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class RichTextComponent extends FieldBase {\n  configProps$: RichTextProps;\n\n  info: any;\n  error: boolean;\n  status: any;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf(): void {\n    // Resolve config properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as RichTextProps;\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    // Extract and normalize the value property\n    const { value, helperText } = this.configProps$;\n    this.value$ = value;\n\n    const { status, validatemessage } = this.pConn$.getStateProps();\n    this.status = status;\n    this.info = validatemessage || helperText;\n    this.error = status === 'error';\n  }\n\n  fieldOnChange(editorValue: any) {\n    const oldVal = this.value$ ?? '';\n    const newVal = editorValue?.editor?.getBody()?.innerHTML ?? '';\n\n    const isValueChanged = newVal.toString() !== oldVal.toString();\n\n    if (isValueChanged || this.status === 'error') {\n      const property = this.propName;\n      this.pConn$.clearErrorMessages({\n        property,\n        category: '',\n        context: ''\n      });\n    }\n  }\n\n  fieldOnBlur(editorValue: any) {\n    const oldVal = this.value$ ?? '';\n\n    const isValueChanged = editorValue.toString() !== oldVal.toString();\n\n    if (isValueChanged) {\n      handleEvent(this.actionsApi, 'changeNblur', this.propName, editorValue);\n    }\n  }\n}\n","<div *ngIf=\"displayMode$; else noDisplayMode\">\n  <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, isHtml$: true }\"></component-mapper>\n</div>\n\n<ng-template #noDisplayMode>\n  <div *ngIf=\"!bReadonly$; else noEdit\">\n    <div *ngIf=\"bVisible$\">\n      <component-mapper\n        name=\"RichTextEditor\"\n        [props]=\"{ placeholder, required: bRequired$, disabled: bDisabled$, label: label$, readonly: false, error, info, testId, value: value$ }\"\n        [parent]=\"this\"\n        [outputEvents]=\"{ onBlur: fieldOnBlur, onChange: fieldOnChange }\"\n      ></component-mapper>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #noEdit>\n  <div *ngIf=\"bVisible$ !== false\">\n    <component-mapper name=\"RichTextEditor\" [props]=\"{ label: label$, value: value$, readonly: true, testId }\" [parent]=\"this\"></component-mapper>\n  </div>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class DataReferenceAdvancedSearchService {\n  private configSubject = new BehaviorSubject(null);\n  config$ = this.configSubject.asObservable();\n\n  setConfig(config) {\n    this.configSubject.next(config);\n  }\n\n  getConfig() {\n    return this.configSubject.getValue();\n  }\n}\n","import { Component, forwardRef, Input, OnInit, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DataReferenceAdvancedSearchService } from '../../../_services/data-reference-advanced-search.service';\nimport { getFirstChildConfig } from '../data-reference/utils';\n\n@Component({\n  selector: 'app-advanced-search',\n  templateUrl: './advanced-search.component.html',\n  styleUrls: ['./advanced-search.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AdvancedSearchComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() searchSelectCacheKey;\n\n  isInitialized = false;\n\n  configProps$: any;\n  showRecords: any;\n  searchGroupsProps: any;\n  editableFieldComp: any;\n\n  constructor(private advancedSearchService: DataReferenceAdvancedSearchService) {}\n\n  ngOnInit(): void {\n    this.isInitialized = true;\n    this.updateSelf();\n  }\n\n  ngOnChanges() {\n    if (this.isInitialized) {\n      this.updateSelf();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    const targetObjectClass = this.configProps$.targetObjectClass;\n    const localeReference = this.configProps$.localeReference;\n    const data: any = this.advancedSearchService.getConfig();\n    const { dataReferenceConfigToChild, isCreateNewReferenceEnabled, disableStartingFieldsForReference, pyID, searchSelectCacheKey } = data;\n    const { selectionMode, value: singleSelectFieldValue, readonlyContextList: multiSelectField } = dataReferenceConfigToChild;\n\n    // let isSelectionExist = false;\n    const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n\n    if (selectionMode === MULTI) {\n      this.showRecords = this.pConn$.getValue(multiSelectField)?.length || false;\n    } else {\n      this.showRecords = this.pConn$.getValue(singleSelectFieldValue) || false;\n    }\n\n    const rawViewMetadata = this.pConn$.getRawMetadata() as any;\n\n    const searchFieldsSet = new Set();\n    const searchFields: any = [];\n    rawViewMetadata?.config?.searchGroups?.forEach((group: any) => {\n      group.children.forEach((child: any) => {\n        if (!searchFieldsSet.has(child.config.value) && !child.config.validator) {\n          searchFields.push(child);\n          searchFieldsSet.add(child.config.value);\n        }\n      });\n    });\n\n    const firstChildPConnect = this.pConn$.getChildren()[0].getPConnect as any;\n    const [firstChildMeta] = rawViewMetadata.children;\n\n    const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n    // @ts-ignore\n    const cache = PCore.getNavigationUtils().getComponentCache(searchSelectCacheKey) ?? {};\n\n    this.editableFieldComp = firstChildPConnect().createComponent({\n      type: firstChildMeta.type,\n      config: {\n        ...getFirstChildConfig({\n          firstChildMeta,\n          getPConnect: this.pConn$,\n          rawViewMetadata,\n          contextClass: targetObjectClass,\n          dataReferenceConfigToChild,\n          isCreateNewReferenceEnabled,\n          disableStartingFieldsForReference,\n          pyID\n        }),\n        searchFields,\n        showRecords: this.showRecords,\n        label: localizedVal('Search results', 'DataReference'),\n        searchSelectCacheKey,\n        cache\n      }\n    });\n\n    const { selectionList, dataRelationshipContext } = this.editableFieldComp.getPConnect().getConfigProps();\n    const editableField = selectionMode === MULTI ? selectionList.substring(1) : dataRelationshipContext;\n\n    this.searchGroupsProps = {\n      getPConnect: this.pConn$,\n      editableField,\n      localeReference,\n      setShowRecords: (value: boolean) => {\n        this.showRecords = value;\n      },\n      searchSelectCacheKey: dataReferenceConfigToChild.searchSelectCacheKey,\n      cache\n    };\n  }\n}\n","<div class=\"advanced-search\">\n  <!-- Search Groups Component -->\n  <component-mapper name=\"SearchGroups\" [props]=\"{ pConn$, formGroup$, searchGroupsProps }\"></component-mapper>\n  <!-- Editable Field Component -->\n  <ng-container *ngIf=\"editableFieldComp\">\n    <component-mapper\n      [name]=\"editableFieldComp.getPConnect().getComponentName()\"\n      [props]=\"{ pConn$: editableFieldComp.getPConnect() }\"\n      errorMsg=\"View Missing (displayAll): {{ editableFieldComp.getPConnect().getComponentName() }}\"\n    ></component-mapper>\n  </ng-container>\n</div>\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarModule, MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ErrorMessagesService } from '../../../_messages/error-messages.service';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface IPage {\n  classID: string;\n  pxPageViewIcon: string;\n  pyClassName: string;\n  pyLabel: string;\n  pyRuleName: string;\n  pyURLContent: string;\n}\n\ninterface AppShellProps {\n  // If any, enter additional props that only exist on this component\n  pages: IPage[];\n  caseTypes?: object[];\n  portalLogo: string;\n  portalName: string;\n  portalTemplate: string;\n  readOnly?: boolean;\n  showAppHeaderBar: boolean;\n  showAppName: any;\n}\n\n@Component({\n  selector: 'app-app-shell',\n  templateUrl: './app-shell.component.html',\n  styleUrls: ['./app-shell.component.scss'],\n  imports: [CommonModule, MatSnackBarModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AppShellComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: AppShellProps;\n\n  pages$: IPage[];\n  caseTypes$?: object[];\n  arChildren$: any[];\n  bShowAppShell$ = false;\n  appName$ = '';\n  errorMessagesSubscription: Subscription;\n  sErrorMessages = '';\n  snackBarRef: any;\n  bOkDisplayError = false;\n  portalTemplate: string;\n  links: any = [];\n  imageURL: string | Blob;\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private erService: ErrorMessagesService,\n    private snackBar: MatSnackBar,\n    private ngZone: NgZone,\n    private utils: Utils\n  ) {}\n\n  ngOnInit() {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // Then, continue on with other initialization\n\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AppShellProps;\n\n    this.portalTemplate = this.configProps$.portalTemplate;\n\n    // making a copy, so can add info\n    this.pages$ = this.configProps$.pages;\n\n    this.links = this.pages$.filter((page, index) => {\n      return index !== 0;\n    });\n\n    if (this.pages$) {\n      this.bShowAppShell$ = true;\n    }\n\n    /* TODO: We're setting the `pyPortalTemplate` for now, this would be handled by the CoreJS in the future releases */\n    if (this.portalTemplate === 'wss') {\n      PCore.getEnvironmentInfo().setEnvironmentInfo({ ...PCore.getEnvironmentInfo().environmentInfoObject, pyPortalTemplate: 'wss' } as any);\n    }\n\n    // @ts-ignore - Property 'pyCaseTypesAvailableToCreateDP' does not exist on type pxApplication\n    const caseTypesAvailableToCreateDP = PCore.getEnvironmentInfo().environmentInfoObject?.pxApplication?.pyCaseTypesAvailableToCreateDP;\n    if (caseTypesAvailableToCreateDP) {\n      const portalID = this.pConn$.getValue('.pyOwner');\n      PCore.getDataPageUtils()\n        .getPageDataAsync(caseTypesAvailableToCreateDP, this.pConn$.getContextName(), {\n          PortalName: portalID\n        })\n        .then((response: any) => {\n          if (response?.pyCaseTypesAvailableToCreate) {\n            this.pConn$.replaceState('.pyCaseTypesAvailableToCreate', response.pyCaseTypesAvailableToCreate, {\n              skipDirtyValidation: true\n            });\n          }\n        });\n    }\n\n    this.caseTypes$ = this.configProps$.caseTypes;\n\n    this.arChildren$ = this.pConn$.getChildren();\n\n    // handle showing and hiding the progress spinner\n    this.errorMessagesSubscription = this.erService.getMessage().subscribe(message => {\n      this.showDismissErrorMessages(message);\n    });\n\n    // cannot call checkAndUpdate becasue first time through, will call updateSelf and that is incorrect (causes issues).\n    // however, need angularPConnect to be initialized with currentProps for future updates, so calling shouldComponentUpdate directly\n    // without checking to update here in init, will initialize and this is correct\n    this.angularPConnect.shouldComponentUpdate(this);\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AppShellProps;\n\n    const showAppName = this.configProps$.showAppName;\n    const envInfo = PCore.getEnvironmentInfo();\n    const appNameToDisplay = showAppName ? envInfo.getApplicationLabel() : '';\n    const portalClass = this.pConn$.getValue('.classID', ''); // 2nd arg empty string until typedef marked correctly\n    const envPortalName = envInfo.getPortalName();\n\n    this.ngZone.run(() => {\n      // making a copy, so can add info\n      this.pages$ = this.configProps$.pages;\n\n      if (this.pages$) {\n        this.bShowAppShell$ = true;\n      }\n\n      this.caseTypes$ = this.configProps$.caseTypes;\n      this.arChildren$ = this.pConn$.getChildren();\n    });\n\n    const portalLogo = this.configProps$.portalLogo;\n    // using the default icon then fetch it from the static folder (not auth involved)\n    if (\n      !portalLogo ||\n      portalLogo.toLowerCase().includes('pzpega-logo-mark') ||\n      portalLogo.toLowerCase().includes('py-logo') ||\n      portalLogo.toLowerCase().includes('py-full-logo')\n    ) {\n      const portalLogoImage = this.utils.getIconPath(this.utils.getSDKStaticContentUrl()).concat('pzpega-logo-mark.svg');\n      this.imageURL = portalLogoImage;\n    }\n    // not using default icon to fetch it using the way which uses authentication\n    else {\n      PCore.getAssetLoader()\n        .getSvcImageUrl(portalLogo)\n        .then(data => {\n          this.imageURL = data;\n        })\n        .catch(() => {\n          console.error(`${this.localizedVal('Unable to load the image for the portal logo/icon with the insName', 'AppShell')}:${portalLogo}`);\n        });\n    }\n    this.appName$ = this.localizedVal(appNameToDisplay || '', '', `${portalClass}!PORTAL!${envPortalName}`.toUpperCase());\n  }\n\n  // fpr show/hiding error messages in the SnackBar component\n  showDismissErrorMessages(errorMessages: any) {\n    switch (errorMessages.action) {\n      case 'update':\n        // won't show unless publish is turned on\n\n        if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {\n          this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\\n');\n\n          if (this.bOkDisplayError) {\n            const config = { panelClass: ['snackbar-newline'], duration: 5000 };\n            this.snackBarRef = this.snackBar.open(this.sErrorMessages, 'Ok', config);\n          }\n        }\n        break;\n      case 'show':\n        // add error message if not in the list\n        // won't show unless publish is turned on\n\n        if (this.sErrorMessages.indexOf(errorMessages.actionMessage) < 0) {\n          this.sErrorMessages = this.sErrorMessages.concat(errorMessages.actionMessage).concat('\\n');\n        }\n\n        this.bOkDisplayError = true;\n\n        if (this.bOkDisplayError) {\n          const config = { panelClass: ['snackbar-newline'], duration: 5000 };\n          this.snackBarRef = this.snackBar.open(this.sErrorMessages, 'Ok', config);\n        }\n        // this.snackBarRef.afterDismissed().subscribe( info => {\n        //     this.sErrorMessages = \"\";\n        //   }\n        // )\n        break;\n      case 'dismiss':\n        // closes snack bar\n        // turns publish off\n        // clears out errors\n        // should be called to dimiss and at \"cancel\"\n        if (this.snackBarRef != null) {\n          this.snackBarRef.dismiss();\n          this.sErrorMessages = '';\n          this.bOkDisplayError = false;\n        }\n        break;\n      case 'publish':\n        // allows errors to be shown, clears out existing ones\n        // should be turned on at \"submit\" (finishAssignment, nextAssignment, etc.)\n\n        this.bOkDisplayError = true;\n        this.sErrorMessages = '';\n        break;\n      default:\n        break;\n    }\n  }\n}\n","<div class=\"appshell-top\">\n  <div *ngIf=\"bShowAppShell$ && portalTemplate !== 'wss'\">\n    <component-mapper name=\"NavBar\" [props]=\"{ pConn$, appName$, pages$, caseTypes$ }\"></component-mapper>\n  </div>\n  <div *ngIf=\"bShowAppShell$ && portalTemplate === 'wss'\">\n    <component-mapper\n      name=\"WssNavBar\"\n      [props]=\"{ pConn$, appName$, homePage: pages$[0], pages$: links, caseTypes$, portalLogoImage$: imageURL }\"\n    ></component-mapper>\n  </div>\n  <div [ngClass]=\"{ 'appshell-main': portalTemplate !== 'wss', 'appshell-main-wss': portalTemplate === 'wss' }\">\n    <div *ngFor=\"let kid of arChildren$\">\n      <div *ngIf=\"kid.getPConnect().getComponentName() == 'ViewContainer'\">\n        <component-mapper name=\"ViewContainer\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\n\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface BannerPageProps {\n  // If any, enter additional props that only exist on this component\n  layout?: string;\n  title?: string;\n  message?: string;\n  backgroundImage?: string;\n}\n\n@Component({\n  selector: 'app-banner-page',\n  templateUrl: './banner-page.component.html',\n  styleUrls: ['./banner-page.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class BannerPageComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: any;\n\n  configProps$: BannerPageProps;\n  arChildren$: any[];\n  title?: string;\n  message: any;\n  backgroundImage?: string;\n  layout$?: string;\n  divClass$: string;\n\n  constructor() {\n    this.backgroundImage = this.configProps$?.backgroundImage;\n  }\n\n  ngOnInit() {\n    // console.log(`ngOnInit (no registerAndSubscribe!): Region`);\n    this.backgroundImage = this.configProps$?.backgroundImage;\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n    this.backgroundImage = this.configProps$?.backgroundImage;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as BannerPageProps;\n    console.log(`url(${this.backgroundImage})`);\n\n    this.layout$ = this.configProps$.layout;\n    this.title = this.configProps$.title;\n    this.message = this.configProps$.message;\n    this.backgroundImage = this.configProps$.backgroundImage;\n\n    // The children may contain 'reference' components, so normalize the children...\n    this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n  }\n}\n","<component-mapper\n  name=\"Banner\"\n  [props]=\"{\n    configProps$,\n    arChildren$,\n    title,\n    message,\n    backgroundImage,\n    layout$,\n    divClass$\n  }\"\n></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface CaseSummaryProps {\n  // If any, enter additional props that only exist on this component\n  status?: string;\n  showStatus?: boolean;\n  template?: string;\n  readOnly?: boolean;\n}\n\n@Component({\n  selector: 'app-case-summary',\n  templateUrl: './case-summary.component.html',\n  styleUrls: ['./case-summary.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class CaseSummaryComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: CaseSummaryProps;\n\n  arChildren$: any[];\n\n  status$?: string;\n  bShowStatus$?: boolean;\n  primaryFields$: any[] = [];\n  secondaryFields$: any[] = [];\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.initComponent();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  initComponent() {\n    // dereference the View in case the incoming pConn$ is a 'reference'\n    this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n    // Then, continue on with other initialization\n\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseSummaryProps;\n    this.arChildren$ = this.pConn$.getChildren();\n\n    this.generatePrimaryAndSecondaryFields();\n\n    this.status$ = this.configProps$.status;\n    this.bShowStatus$ = this.configProps$.showStatus;\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.generatePrimaryAndSecondaryFields();\n  }\n\n  ngOnChanges() {\n    this.initComponent();\n  }\n\n  generatePrimaryAndSecondaryFields() {\n    this.primaryFields$ = [];\n    this.secondaryFields$ = [];\n\n    for (const oField of this.arChildren$[0].getPConnect().getChildren()) {\n      const kid = oField.getPConnect();\n      this.primaryFields$.push(kid.resolveConfigProps(kid.getRawMetadata()));\n    }\n\n    const secondarySummaryFields = this.prepareCaseSummaryData(this.arChildren$[1].getPConnect());\n    const secondaryChildren = this.arChildren$[1].getPConnect().getChildren();\n    secondaryChildren.forEach((oField, index) => {\n      const kid = oField.getPConnect();\n      const displayLabel = secondarySummaryFields[index].value.getPConnect().getConfigProps().label;\n      this.secondaryFields$.push({ ...kid.resolveConfigProps(kid.getRawMetadata()), kid, displayLabel });\n    });\n  }\n\n  prepareCaseSummaryData(summaryFieldChildren) {\n    const convertChildrenToSummaryData = kid => {\n      return kid?.map((childItem, index) => {\n        const childMeta = childItem.getPConnect().meta;\n        const caseSummaryComponentObject = this.utils.prepareComponentInCaseSummary(childMeta, childItem.getPConnect);\n        caseSummaryComponentObject.id = index + 1;\n        return caseSummaryComponentObject;\n      });\n    };\n    return summaryFieldChildren ? convertChildrenToSummaryData(summaryFieldChildren?.getChildren()) : undefined;\n  }\n}\n","<component-mapper name=\"CaseSummaryFields\" [props]=\"{ status$, bShowStatus$, primaryFields$, secondaryFields$ }\"></component-mapper>\n","import { Component, OnInit, Input, ChangeDetectorRef, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface CaseViewProps {\n  // If any, enter additional props that only exist on this component\n  icon: string;\n  subheader: string;\n  header: string;\n}\n\n@Component({\n  selector: 'app-case-view',\n  templateUrl: './case-view.component.html',\n  styleUrls: ['./case-view.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CaseViewComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: CaseViewProps;\n\n  arChildren$: any[];\n\n  heading$ = '';\n  id$ = '';\n  status$ = '';\n  caseTabs$: any[] = [];\n  svgCase$: string;\n  tabData$: any;\n\n  mainTabs: any;\n  mainTabData: any;\n\n  arAvailableActions$: any[] = [];\n  arAvailabeProcesses$: any[] = [];\n\n  caseSummaryPConn$: any;\n  currentCaseID = '';\n  editAction: boolean;\n  localizedVal: any;\n  localeCategory = 'CaseView';\n  localeKey: string;\n\n  constructor(\n    private cdRef: ChangeDetectorRef,\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // this.updateSelf();\n    this.checkAndUpdate();\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n    if (bUpdateSelf) {\n      // generally, don't want to refresh everything when data changes in caseView, it is usually the\n      // case summary.  But check if the case ID changes, this means a different case and we should\n      // update all.\n      if (this.hasCaseIDChanged()) {\n        this.fullUpdate();\n\n        // update okToInitFlowContainer, because case view was drawn, flow container will need to be init\n        // to match Nebula/Constellation\n        sessionStorage.setItem('okToInitFlowContainer', 'true');\n      } else {\n        this.updateHeaderAndSummary();\n      }\n    }\n  }\n\n  hasCaseIDChanged(): boolean {\n    if (this.currentCaseID !== this.pConn$.getDataObject().caseInfo.ID) {\n      this.currentCaseID = this.pConn$.getDataObject().caseInfo.ID;\n      return true;\n    }\n    return false;\n  }\n\n  updateHeaderAndSummary() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseViewProps;\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const meta = kid.getPConnect().getRawMetadata();\n      if (meta.type.toLowerCase() == 'region' && meta.name.toLowerCase() == 'summary') {\n        this.caseSummaryPConn$ = kid.getPConnect().getChildren()[0].getPConnect();\n      }\n    }\n\n    // have to put in a timeout, otherwise get an angular change event error\n    const timer = interval(100).subscribe(() => {\n      timer.unsubscribe();\n\n      this.heading$ = this.pConn$.getLocalizationService().getLocalizedText(this.configProps$.header);\n      this.id$ = this.configProps$.subheader;\n      this.status$ = this.pConn$.getValue('.pyStatusWork');\n    });\n  }\n\n  fullUpdate() {\n    this.caseTabs$ = [];\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as CaseViewProps;\n    // let caseTypeID = this.configProps$.ruleClass;\n    // let caseTypeName = this.configProps$.header;\n    // this.localeKey = `${caseTypeID}!CASE!${caseTypeName}`.toUpperCase();\n    this.localeKey = `${this.pConn$.getCaseInfo().getClassName()}!CASE!${this.pConn$.getCaseInfo().getName()}`.toUpperCase();\n    this.updateHeaderAndSummary();\n\n    this.arChildren$ = this.pConn$.getChildren() as any[];\n\n    const caseInfo = this.pConn$.getDataObject().caseInfo;\n    this.currentCaseID = caseInfo.ID;\n    this.arAvailableActions$ = caseInfo?.availableActions ? caseInfo.availableActions : [];\n    this.editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');\n    this.arAvailabeProcesses$ = caseInfo?.availableProcesses ? caseInfo.availableProcesses : [];\n\n    this.svgCase$ = this.utils.getImageSrc(this.configProps$.icon, this.utils.getSDKStaticContentUrl());\n\n    for (const kid of this.arChildren$) {\n      const kidPConn = kid.getPConnect();\n      if (kidPConn.getRawMetadata().name == 'Tabs') {\n        this.mainTabs = kid;\n        this.mainTabData = this.mainTabs.getPConnect().getChildren();\n      }\n    }\n\n    this.generateTabsData();\n  }\n\n  generateTabsData() {\n    this.mainTabs\n      .getPConnect()\n      .getChildren()\n      ?.forEach((child, i) => {\n        const config = child.getPConnect().resolveConfigProps(child.getPConnect().getRawMetadata()).config;\n        let { label } = config;\n        const { inheritedProps, visibility } = config;\n        // For some tabs, \"label\" property is not avaialable in theTabCompConfig, so will get them from inheritedProps\n        if (!label) {\n          inheritedProps.forEach((inheritedProp: any) => {\n            if (inheritedProp.prop === 'label') {\n              label = inheritedProp.value;\n            }\n          });\n        }\n        // We'll display the tabs when either visibility property doesn't exist or is true(if exists)\n        if (visibility === undefined || visibility === true) {\n          this.caseTabs$.push({ name: label, id: i });\n          // To make first visible tab display at the beginning\n          if (!this.tabData$) {\n            this.tabData$ = { type: 'DeferLoad', config: child.getPConnect().getRawMetadata().config };\n          }\n        }\n      });\n  }\n\n  updateSelf() {\n    this.fullUpdate();\n  }\n\n  onTabClick(tab: any) {\n    this.tabData$ = this.mainTabData[tab].getPConnect().getRawMetadata();\n    this.cdRef.detectChanges();\n  }\n\n  _editClick() {\n    const editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');\n    const actionsAPI = this.pConn$.getActionsApi();\n    const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n    openLocalAction(editAction.ID, { ...editAction, containerName: 'modal', type: 'express' });\n  }\n\n  _menuActionClick(data) {\n    const actionsAPI = this.pConn$.getActionsApi();\n    const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n    openLocalAction(data.ID, { ...data, containerName: 'modal', type: 'express' });\n  }\n\n  _menuProcessClick(data) {\n    const actionsAPI = this.pConn$.getActionsApi();\n    const openProcessAction = actionsAPI.openProcessAction.bind(actionsAPI);\n\n    openProcessAction(data.ID, { ...data });\n  }\n}\n","<div class=\"psdk-case-view\" id=\"case-view\">\n  <div class=\"psdk-case-view-info\">\n    <mat-toolbar class=\"psdk-case-view-toolbar\">\n      <mat-toolbar-row class=\"psdk-case-view-toolbar-row\">\n        <div class=\"psdk-case-icon-div\">\n          <img class=\"psdk-case-svg-icon\" src=\"{{ svgCase$ }}\" />\n        </div>\n        <div class=\"psdk-case-view-heading\">\n          <div>\n            <h1 id=\"case-name\">{{ heading$ }}</h1>\n          </div>\n          <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n          <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n        </div>\n      </mat-toolbar-row>\n    </mat-toolbar>\n\n    <div class=\"psdk-case-view-buttons\">\n      <button *ngIf=\"editAction\" mat-raised-button color=\"secondary\" (click)=\"_editClick()\">{{ localizedVal('Edit', localeCategory) }}</button>\n      <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n      <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n        <ng-container *ngFor=\"let action of arAvailableActions$\">\n          <button mat-menu-item (click)=\"_menuActionClick(action)\">\n            {{ localizedVal(action.name, '', localeKey) }}\n          </button>\n        </ng-container>\n        <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n          <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n            {{ process.name }}\n          </button>\n        </ng-container>\n      </mat-menu>\n    </div>\n\n    <div class=\"psdk-case-view-divider\"></div>\n\n    <div class=\"psdk-case-view-summary\">\n      <component-mapper name=\"CaseSummary\" [props]=\"{ pConn$: caseSummaryPConn$ }\"></component-mapper>\n    </div>\n\n    <component-mapper\n      *ngIf=\"caseTabs$.length > 1\"\n      name=\"VerticalTabs\"\n      [props]=\"{ tabConfig$: caseTabs$ }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ tabClick: onTabClick }\"\n    ></component-mapper>\n  </div>\n  <div class=\"psdk-case-view-main\">\n    <div>\n      <div *ngFor=\"let kid of arChildren$\">\n        <div\n          *ngIf=\"\n            kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages'\n          \"\n        >\n          <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n        </div>\n      </div>\n    </div>\n\n    <div *ngFor=\"let kid of arChildren$\">\n      <div\n        *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n      >\n        <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n      </div>\n    </div>\n\n    <div *ngFor=\"let kid of arChildren$\">\n      <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n        <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n      </div>\n    </div>\n\n    <div *ngIf=\"tabData$\">\n      <component-mapper name=\"DeferLoad\" [props]=\"{ pConn$, name: tabData$?.config?.name }\"></component-mapper>\n    </div>\n  </div>\n  <div>\n    <div *ngIf=\"arChildren$\" class=\"psdk-case-view-utilities\">\n      <div *ngFor=\"let kid of arChildren$\">\n        <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n          <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { getToDoAssignments } from '../../infra/Containers/flow-container/helpers';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface ConfirmationProps {\n  // If any, enter additional props that only exist on this component\n  datasource: { source: any };\n  label: string;\n  showLabel: boolean;\n  showTasks: boolean;\n}\n\n@Component({\n  selector: 'app-confirmation',\n  templateUrl: './confirmation.component.html',\n  styleUrls: ['./confirmation.component.scss'],\n  imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ConfirmationComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: ConfirmationProps;\n\n  rootInfo: any;\n  datasource: any;\n  showTasks: any;\n  detailProps: any;\n  toDoList: any;\n  label: string;\n  CONSTS: typeof publicConstants;\n  showDetails: boolean;\n  showConfirmView = true;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.CONSTS = PCore.getConstants();\n    const activeContainerItemID = PCore.getContainerUtils().getActiveContainerItemName(this.pConn$.getTarget() ?? null);\n    this.rootInfo = PCore.getContainerUtils().getContainerItemData(this.pConn$.getTarget(), activeContainerItemID);\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    const theConfigProps = this.pConn$.getConfigProps() as ConfirmationProps;\n    this.datasource = theConfigProps?.datasource;\n    this.showTasks = theConfigProps?.showTasks;\n    this.label = theConfigProps?.label;\n    // Get the inherited props from the parent to determine label settings\n    // Not using whatsNext at the moment, need to figure out the use of it\n    // const whatsNext = this.datasource?.source;\n    // const items = whatsNext?.length > 0 ? whatsNext.map((item) => item.label) : '';\n    // const todoProps = { ...theConfigProps, renderTodoInConfirm: true };\n    this.toDoList = getToDoAssignments(this.pConn$);\n    this.detailProps = { ...theConfigProps, showLabel: false };\n    this.showDetails = this.pConn$?.getChildren()?.[0]?.getPConnect()?.getChildren()?.length > 0;\n  }\n\n  onConfirmViewClose() {\n    this.showConfirmView = false;\n    PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, this.rootInfo);\n  }\n}\n","<div>\n  <div *ngIf=\"showConfirmView\">\n    <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n    <div *ngIf=\"showDetails\" class=\"confirmation-details\">\n      <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n    </div>\n    <div *ngIf=\"showTasks && toDoList?.length > 0\">\n      <component-mapper\n        name=\"Todo\"\n        [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n      ></component-mapper>\n    </div>\n    <div class=\"done-button\">\n      <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n    </div>\n  </div>\n  <div *ngIf=\"!showConfirmView && toDoList?.length > 0\">\n    <component-mapper\n      name=\"Todo\"\n      [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n    ></component-mapper>\n  </div>\n</div>\n","const SKIP_CACHE_KEY = '';\n\nexport function getMappedKey(key) {\n  const mappedKey = PCore.getEnvironmentInfo().getKeyMapping(key);\n  if (!mappedKey) {\n    return key;\n  }\n  return mappedKey;\n}\n\nconst getComponentStateKey = (getPConnect, propertyName: string) => {\n  const pConnect = getPConnect;\n  const caseID = `.${getMappedKey('pyID')}`; // Enhance this later when use-case arrives for data objects using S&S.\n  const resolvedCaseID = pConnect.getValue(caseID);\n\n  if (!resolvedCaseID) {\n    return SKIP_CACHE_KEY;\n  }\n\n  return `Search-${resolvedCaseID}-${pConnect.getPageReference()}-${propertyName}-${pConnect.getCurrentView()}`;\n};\n\nconst getComponentStateOptions = getPConnect => {\n  return { clearOnCancelForContext: getPConnect.getContextName() };\n};\n\ninterface SearchCategory {\n  // tabId of search category selected\n  selectedCategory: string;\n}\n\ninterface SearchGroup {\n  // searchFields can be any object based on what fields are authored.\n  searchFields: unknown;\n  activeGroupId: string;\n}\n\nconst setComponentCache = ({\n  cacheKey,\n  state,\n  options\n}: {\n  cacheKey: string;\n  state: SearchCategory | SearchGroup;\n  options: ReturnType<typeof getComponentStateOptions>;\n}) => {\n  if (cacheKey !== SKIP_CACHE_KEY) {\n    (PCore.getNavigationUtils() as any).setComponentCache(cacheKey, state, options);\n  }\n};\n\nexport const componentCachePersistUtils = {\n  getComponentStateKey,\n  getComponentStateOptions,\n  setComponentCache\n};\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getMappedKey } from '../advanced-search/search-group/persist-utils';\nimport { componentCachePersistUtils } from '../advanced-search/search-group/persist-utils';\nimport { getFirstChildConfig } from '../data-reference/utils';\nimport { DataReferenceAdvancedSearchService } from '../../../_services/data-reference-advanced-search.service';\n\nconst SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };\n\n@Component({\n  selector: 'app-data-reference',\n  templateUrl: './data-reference.component.html',\n  styleUrls: ['./data-reference.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DataReferenceComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  arFields$: any[] = [];\n  referenceType = '';\n  selectionMode = '';\n  parameters;\n  hideLabel = false;\n  childrenToRender: any[] = [];\n  dropDownDataSource = '';\n  isDisplayModeEnabled = false;\n  propsToUse: any = {};\n  rawViewMetadata: any = {};\n  viewName = '';\n  firstChildMeta: any = {};\n  canBeChangedInReviewMode = false;\n  propName = '';\n  firstChildPConnect;\n  children;\n  displaySingleRef: boolean;\n  displayMultiRef: boolean;\n  refList: any;\n  displayAs: any;\n  isDDSourceDeferred: any;\n  showPromotedFilters: any;\n  displayMode: any;\n  refFieldMetadata: any;\n  contextClass: any;\n  selectionList: any;\n  inline: any;\n  isCreationOfNewRecordAllowedForReference: any;\n  showAdvancedSearch: boolean;\n  pyID: any;\n  allowImplicitRefresh: any;\n  displayChild = false;\n  dataRelationshipContext: any;\n  imagePosition: any;\n  showImageDescription: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private advancedSearchService: DataReferenceAdvancedSearchService\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.children = this.pConn$.getChildren();\n    this.updateSelf();\n\n    if (\n      this.rawViewMetadata.config?.parameters &&\n      !this.isDDSourceDeferred &&\n      ['Checkbox', 'Dropdown', 'RadioButtons'].includes(this.firstChildMeta?.type)\n    ) {\n      const { value, key, text } = this.firstChildMeta.config.datasource.fields;\n\n      if (this.firstChildMeta.config.variant !== 'card' || this.firstChildMeta.config.variant === 'card') {\n        PCore.getDataApiUtils()\n          .getData(this.refList, {\n            dataViewParameters: this.parameters\n          })\n          .then(res => {\n            if (res.data.data !== null) {\n              const ddDataSource = this.firstChildMeta.config.datasource.filterDownloadedFields\n                ? res.data.data\n                : res.data.data\n                    .map(listItem => ({\n                      key: listItem[key.split(' .', 2)[1]],\n                      text: listItem[text.split(' .', 2)[1]],\n                      value: listItem[value.split(' .', 2)[1]]\n                    }))\n                    .filter(item => item.key); // Filtering out undefined entries\n              this.dropDownDataSource = ddDataSource;\n              this.updateSelf();\n            } else {\n              const ddDataSource: any = [];\n              this.dropDownDataSource = ddDataSource;\n            }\n          })\n          .catch(err => {\n            console.error(err?.stack);\n            return Promise.resolve({\n              data: { data: [] }\n            });\n          });\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    // Update properties based on configProps\n    const theConfigProps = this.pConn$.getConfigProps();\n    this.updatePropertiesFromProps(theConfigProps);\n\n    const { displayAs, displayMode } = theConfigProps;\n    this.rawViewMetadata = this.pConn$.getRawMetadata();\n    this.viewName = this.rawViewMetadata.name;\n    this.firstChildMeta = this.rawViewMetadata.children[0];\n    this.refList = this.rawViewMetadata.config.referenceList;\n    this.dataRelationshipContext =\n      this.rawViewMetadata.config.contextClass && this.rawViewMetadata.config.name ? this.rawViewMetadata.config.name : null;\n    this.canBeChangedInReviewMode = theConfigProps.allowAndPersistChangesInReviewMode && ['autocomplete', 'dropdown'].includes(displayAs);\n    this.isDisplayModeEnabled = ['DISPLAY_ONLY', 'STACKED_LARGE_VAL'].includes(displayMode);\n    this.refFieldMetadata = this.pConn$.getFieldMetadata(this.rawViewMetadata?.config?.authorContext);\n    this.pyID = getMappedKey('pyID');\n    // @ts-ignore\n    const { allowImplicitRefresh } = PCore.getFieldDefaultUtils().fieldDefaults?.DataReference || {};\n\n    this.allowImplicitRefresh = allowImplicitRefresh;\n    this.isDDSourceDeferred =\n      (this.firstChildMeta?.type === 'Dropdown' && this.selectionMode === SELECTION_MODE.SINGLE && this.refFieldMetadata?.descriptors) ||\n      this.firstChildMeta.config.deferDatasource;\n\n    if (this.firstChildMeta?.type === 'Region') {\n      return;\n    }\n\n    this.firstChildPConnect = this.pConn$.getChildren()[0].getPConnect;\n\n    /* remove refresh When condition from those old view so that it will not be used for runtime */\n    if (this.firstChildMeta.config?.readOnly) {\n      delete this.firstChildMeta.config.readOnly;\n    }\n    if (this.firstChildMeta?.type === 'Dropdown') {\n      this.firstChildMeta.config.datasource.source = this.rawViewMetadata.config?.parameters\n        ? this.dropDownDataSource\n        : '@DATASOURCE '.concat(this.refList).concat('.pxResults');\n    } else if (this.firstChildMeta?.type === 'AutoComplete') {\n      this.firstChildMeta.config.datasource = this.refList;\n\n      /* Insert the parameters to the component only if present */\n      if (this.rawViewMetadata.config?.parameters) {\n        this.firstChildMeta.config.parameters = this.parameters;\n      }\n    }\n    // set displayMode conditionally\n    if (!this.canBeChangedInReviewMode) {\n      this.firstChildMeta.config.displayMode = displayMode;\n    }\n    if (this.firstChildMeta.type === 'SimpleTableSelect' && this.selectionMode === SELECTION_MODE.MULTI) {\n      this.propName = PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.selectionList);\n    } else {\n      this.propName = PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.value);\n    }\n\n    this.generateChildrenToRender();\n    this.displayChild = !(this.displaySingleRef || this.displayMultiRef);\n  }\n\n  updatePropertiesFromProps(theConfigProps) {\n    const label = theConfigProps.label;\n    const showLabel = theConfigProps.showLabel;\n    this.referenceType = theConfigProps.referenceType;\n    this.selectionMode = theConfigProps.selectionMode;\n    this.parameters = theConfigProps.parameters;\n    this.hideLabel = theConfigProps.hideLabel;\n    this.displayAs = theConfigProps.displayAs;\n    this.showPromotedFilters = theConfigProps.showPromotedFilters;\n    this.displayMode = theConfigProps.displayMode;\n    this.propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };\n    this.contextClass = theConfigProps.contextClass;\n    this.selectionList = theConfigProps.selectionList;\n    this.inline = theConfigProps.inline;\n    this.isCreationOfNewRecordAllowedForReference = theConfigProps.isCreationOfNewRecordAllowedForReference;\n    if (this.propsToUse.showLabel === false) {\n      this.propsToUse.label = '';\n    }\n    this.imagePosition = theConfigProps.imagePosition;\n    this.showImageDescription = theConfigProps.showImageDescription;\n  }\n\n  generateChildrenToRender() {\n    const theRecreatedFirstChild = this.recreatedFirstChild();\n    if (this.firstChildMeta?.type !== 'Region') {\n      const viewsRegion = this.rawViewMetadata.children[1];\n\n      if (viewsRegion?.name === 'Views' && viewsRegion.children.length) {\n        viewsRegion.children.map(child => {\n          child.config.isEmbeddedInDataReference = true;\n          return child;\n        });\n        this.childrenToRender = [theRecreatedFirstChild, ...this.children.slice(1)];\n      } else {\n        this.childrenToRender = [theRecreatedFirstChild];\n      }\n    } else if (this.displayAs === 'advancedSearch') {\n      this.childrenToRender = [theRecreatedFirstChild];\n    }\n\n    // Render\n    if (this.childrenToRender.length === 1) {\n      return this.childrenToRender[0] ?? null;\n    }\n  }\n\n  handleSelection(event) {\n    const caseKey = this.pConn$.getCaseInfo().getKey();\n    const refreshOptions: any = { autoDetectRefresh: true, propertyName: '' };\n\n    if ((this.pConn$?.getRawMetadata()?.children as Array<any>)?.length > 0 && this.pConn$?.getRawMetadata()?.children?.[0].config?.value) {\n      refreshOptions.propertyName = this.pConn$?.getRawMetadata()?.children?.[0].config.value;\n      refreshOptions.classID = (this.pConn$.getRawMetadata() as any).classID;\n    }\n\n    // AutoComplete sets value on event.id whereas Dropdown sets it on event.target.value if event.id is unset\n    // When value is empty propValue will be undefined here and no value will be set for the reference\n    const propValue = event?.id || event?.target?.value;\n    const propName =\n      this.firstChildMeta.type === 'SimpleTableSelect' && this.selectionMode === SELECTION_MODE.MULTI\n        ? PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.selectionList)\n        : PCore.getAnnotationUtils().getPropertyName(this.firstChildMeta.config.value);\n\n    const hasAssociatedViewConfigured = this.rawViewMetadata.children[1].children?.length;\n\n    if (this.pConn$.getContextName().includes('modal') || this.pConn$.getContextName().includes('workarea')) {\n      if (hasAssociatedViewConfigured || this.allowImplicitRefresh) {\n        const pageReference = this.pConn$.getPageReference();\n        let pgRef: any = null;\n        if (pageReference.startsWith('objectInfo')) {\n          pgRef = pageReference.replace('objectInfo.content', '');\n        } else {\n          pgRef = pageReference.replace('caseInfo.content', '');\n        }\n        const viewName = this.rawViewMetadata.name;\n        this.pConn$\n          .getActionsApi()\n          .refreshCaseView(caseKey, viewName, pgRef, refreshOptions)\n          .catch(() => {});\n      }\n    } else if (propValue && this.canBeChangedInReviewMode && this.isDisplayModeEnabled) {\n      PCore.getCaseUtils()\n        .getCaseEditLock(caseKey, '')\n        .then(caseResponse => {\n          const pageTokens = this.pConn$.getPageReference().replace('caseInfo.content', '').split('.');\n          let curr = {};\n          const commitData = curr;\n\n          pageTokens.forEach(el => {\n            if (el !== '') {\n              curr[el] = {};\n              curr = curr[el];\n            }\n          });\n\n          // expecting format like {Customer: {pyID:\"C-100\"}}\n          const propArr = propName.split('.');\n          propArr.forEach((element, idx) => {\n            if (idx + 1 === propArr.length) {\n              curr[element] = propValue;\n            } else {\n              curr[element] = {};\n              curr = curr[element];\n            }\n          });\n\n          PCore.getCaseUtils()\n            .updateCaseEditFieldsData(caseKey, { [caseKey]: commitData }, caseResponse.headers.etag, this.pConn$.getContextName())\n            .then(response => {\n              PCore.getContainerUtils().updateParentLastUpdateTime(this.pConn$.getContextName(), response.data.data.caseInfo.lastUpdateTime);\n              PCore.getContainerUtils().updateRelatedContextEtag(this.pConn$.getContextName(), response.headers.etag);\n            });\n        });\n    }\n  }\n\n  recreatedFirstChild() {\n    if (this.firstChildMeta?.type === 'Region' && this.displayAs !== 'advancedSearch') {\n      return;\n    }\n    const { type } = this.firstChildMeta;\n    this.firstChildPConnect = this.pConn$.getChildren()[0].getPConnect;\n\n    this.setReadOnlyDisplayFlags();\n\n    if (type === 'Dropdown' && this.dropDownDataSource === null && !this.isDDSourceDeferred && this.rawViewMetadata.config?.parameters) {\n      return null;\n    }\n\n    this.prepareFirstChildMeta();\n\n    const dataReferenceConfigToChild = this.buildDataReferenceConfig();\n    const { disableStartingFieldsForReference = false } = PCore.getEnvironmentInfo().environmentInfoObject?.features?.form || ({} as any);\n\n    if (this.displayAs === 'advancedSearch') {\n      this.showAdvancedSearch = true;\n      const searchSelectCacheKey = componentCachePersistUtils.getComponentStateKey(this.pConn$, this.rawViewMetadata.config.name);\n      this.advancedSearchService.setConfig({\n        dataReferenceConfigToChild,\n        isCreateNewReferenceEnabled: !!dataReferenceConfigToChild.createNewRecord,\n        disableStartingFieldsForReference,\n        pyID: this.pyID,\n        searchSelectCacheKey\n      });\n      return;\n    }\n\n    return this.firstChildPConnect().createComponent({\n      type,\n      config: {\n        ...getFirstChildConfig({\n          firstChildMeta: this.firstChildMeta,\n          getPConnect: this.pConn$,\n          rawViewMetadata: this.rawViewMetadata,\n          contextClass: this.contextClass,\n          dataReferenceConfigToChild,\n          isCreateNewReferenceEnabled: !!dataReferenceConfigToChild.createNewRecord,\n          disableStartingFieldsForReference,\n          pyID: this.pyID\n        })\n      }\n    });\n  }\n\n  private setReadOnlyDisplayFlags() {\n    const isSingleMode = this.selectionMode === SELECTION_MODE.SINGLE;\n    const isMultiMode = this.selectionMode === SELECTION_MODE.MULTI;\n\n    if (isSingleMode && (this.displayAs === 'readonly' || this.isDisplayModeEnabled) && !this.canBeChangedInReviewMode) {\n      this.displaySingleRef = true;\n    }\n\n    if (isMultiMode && (['readonly', 'readonlyMulti', 'map'].includes(this.displayAs) || this.isDisplayModeEnabled)) {\n      this.displayMultiRef = true;\n    }\n  }\n\n  private prepareFirstChildMeta() {\n    // Cleanup\n    if (this.firstChildMeta.config?.readOnly) {\n      delete this.firstChildMeta.config.readOnly;\n    }\n\n    // Set datasource\n    this.setChildDatasource();\n\n    // Pass through configs\n    if (this.firstChildMeta.config) {\n      this.firstChildMeta.config.showPromotedFilters = this.showPromotedFilters;\n      if (!this.canBeChangedInReviewMode) {\n        this.firstChildMeta.config.displayMode = this.displayMode;\n      }\n    }\n  }\n\n  private setChildDatasource() {\n    const { type, config } = this.firstChildMeta;\n\n    if (['Dropdown', 'Checkbox', 'RadioButtons'].includes(type) && !config.deferDatasource && config.datasource) {\n      const isCardVariant = config.variant === 'card';\n      const hasParameters = this.rawViewMetadata.config?.parameters;\n      // @ts-ignore\n      const isDeferDataPageCallEnabled = isCardVariant && hasParameters && !this.firstChildPConnect()?.getSharedDataPageForReferenceList();\n\n      const useDropDownDataSource = (isCardVariant && (this.dropDownDataSource || isDeferDataPageCallEnabled)) || (!isCardVariant && hasParameters);\n\n      config.datasource.source = useDropDownDataSource ? this.dropDownDataSource : `@DATASOURCE ${this.refList}.pxResults`;\n      if (isCardVariant) {\n        config.imagePosition = this.imagePosition;\n        config.showImageDescription = this.showImageDescription;\n      }\n    } else if (type === 'AutoComplete') {\n      config.datasource = this.refList;\n      if (this.rawViewMetadata.config?.parameters) {\n        config.parameters = this.parameters;\n      }\n    }\n  }\n\n  private buildDataReferenceConfig() {\n    const fieldMetaData = this.buildFieldMetaData();\n    const isCreateNewReferenceEnabled = this.isCreateNewRecordEnabled();\n\n    const config: any = {\n      selectionMode: this.selectionMode,\n      additionalInfo: this.refFieldMetadata?.additionalInformation ? { content: this.refFieldMetadata.additionalInformation } : undefined,\n      descriptors: this.selectionMode === SELECTION_MODE.SINGLE ? this.refFieldMetadata?.descriptors : null,\n      datasourceMetadata: fieldMetaData?.datasourceMetadata,\n      required: this.propsToUse.required,\n      visibility: this.propsToUse.visibility,\n      disabled: this.propsToUse.disabled,\n      label: this.propsToUse.label,\n      displayAs: this.displayAs,\n      readOnly: false,\n      dataRelationshipContext: this.dataRelationshipContext,\n      hideLabel: this.hideLabel,\n      onRecordChange: this.handleSelection.bind(this),\n      createNewRecord: isCreateNewReferenceEnabled ? this.getCreateNewRecordFn() : undefined,\n      inline: this.inline\n    };\n\n    if (this.selectionMode === SELECTION_MODE.SINGLE) {\n      config.referenceType = this.referenceType;\n      if (this.displayAs === 'advancedSearch') {\n        config.value = this.rawViewMetadata.config.value;\n        config.contextPage = this.rawViewMetadata.config.contextPage;\n      }\n    } else if (this.displayAs === 'advancedSearch') {\n      config.selectionList = this.selectionList;\n      config.readonlyContextList = this.rawViewMetadata.config.readonlyContextList;\n    }\n\n    return config;\n  }\n\n  private buildFieldMetaData() {\n    if (!this.isDDSourceDeferred || this.firstChildMeta.config.deferDatasource) {\n      return null;\n    }\n\n    const { text, value } = this.firstChildMeta?.config?.datasource?.fields || {};\n    const getProp = (prop: string) => (prop?.startsWith('@P') ? prop.substring(3) : prop);\n\n    const fieldMetaData = {\n      datasourceMetadata: {\n        ...this.refFieldMetadata,\n        datasource: {\n          name: this.rawViewMetadata.config?.referenceList,\n          propertyForDisplayText: getProp(text),\n          propertyForValue: getProp(value)\n        }\n      }\n    };\n\n    if (this.rawViewMetadata.config?.parameters) {\n      fieldMetaData.datasourceMetadata.datasource['parameters'] = this.parameters;\n    }\n\n    return fieldMetaData;\n  }\n\n  private isCreateNewRecordEnabled() {\n    const { features } = (PCore.getEnvironmentInfo().environmentInfoObject || {}) as any;\n    const isEnvLP = features?.form;\n    const isCreateNewRefEnabledInAuthoring = this.isCreationOfNewRecordAllowedForReference ?? isEnvLP?.isCreateNewReferenceEnabled;\n    const isCaseRef = this.referenceType === 'Case' || this.firstChildMeta?.config?.referenceType === 'Case';\n    const hasAccess = PCore.getAccessPrivilege().hasCreateAccess(this.contextClass);\n    const isCreateNewRefEnabledForUser = isEnvLP ? isEnvLP.isCreateNewReferenceEnabled && hasAccess : isCaseRef;\n\n    return isCreateNewRefEnabledInAuthoring && isCreateNewRefEnabledForUser;\n  }\n\n  private getCreateNewRecordFn() {\n    const { disableStartingFieldsForReference = false } = PCore.getEnvironmentInfo().environmentInfoObject?.features?.form || ({} as any);\n    const isCaseRef = this.referenceType === 'Case' || this.firstChildMeta?.config?.referenceType === 'Case';\n\n    return () => {\n      if (isCaseRef) {\n        const startingFields: any = {};\n        if (!disableStartingFieldsForReference) {\n          startingFields.pyAddCaseContextPage = { pyID: this.pConn$.getCaseInfo().getKey()?.split(' ')?.pop() };\n        }\n        return this.pConn$.getActionsApi().createWork(this.contextClass, {\n          openCaseViewAfterCreate: false,\n          startingFields\n        });\n      }\n      // Assumes Data reference type otherwise\n      return getPConnect().getActionsApi().showDataObjectCreateView(this.contextClass);\n    };\n  }\n}\n","<div *ngIf=\"showAdvancedSearch; else notadvancedSearch\">\n  <component-mapper name=\"SearchForm\" [props]=\"{ pConn$: pConn$, formGroup$, searchSelectCacheKey: '' }\"></component-mapper>\n</div>\n<ng-template #notadvancedSearch>\n  <div *ngIf=\"displaySingleRef\">\n    <component-mapper name=\"SingleReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect(), dataRelationshipContext }\"></component-mapper>\n  </div>\n  <div *ngIf=\"displayMultiRef\">\n    <component-mapper name=\"MultiReferenceReadOnly\" [props]=\"{ pConn$: firstChildPConnect() }\"></component-mapper>\n  </div>\n  <div *ngIf=\"displayChild && childrenToRender && childrenToRender.length > 0\">\n    <div *ngFor=\"let kid of childrenToRender\">\n      <component-mapper [name]=\"kid?.getPConnect().getComponentName()\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</ng-template>\n","import { Directive, OnDestroy } from '@angular/core';\nimport { AngularPConnectData } from '../../../_bridge/angular-pconnect';\n\n@Directive()\nexport class FormTemplateBase implements OnDestroy {\n  pConn$: any;\n  angularPConnectData: AngularPConnectData;\n\n  ngOnDestroy(): void {\n    PCore.getContextTreeManager().removeContextTreeNode(this.pConn$.getContextName());\n\n    if (this.angularPConnectData?.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TemplateUtils {\n  /**\n   * Determine if the current view is the view of the case step/assignment.\n   * @param {Function} pConnect PConnect object for the component\n   */\n  getIsAssignmentView(pConnect) {\n    // Get caseInfo content from the store which contains the view info about the current assignment/step\n    // TODO To be replaced with pConnect.getCaseInfo().getCurrentAssignmentView when it's available\n    const assignmentViewClass = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_CLASSID);\n    const assignmentViewName = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENTACTION_ID);\n\n    const assignmentViewId = `${assignmentViewName}!${assignmentViewClass}`;\n\n    // Get the info about the current view from pConnect\n    const currentViewId = `${pConnect.getCurrentView()}!${pConnect.getCurrentClassID()}`;\n\n    return assignmentViewId === currentViewId;\n  }\n\n  /**\n   * A hook that gets the instructions content for a view.\n   * @param {Function} pConnect PConnect object for the component\n   * @param {string} [instructions=\"casestep\"] 'casestep', 'none', or the html content of a Rule-UI-Paragraph rule (processed via core's paragraph annotation handler)\n   */\n  getInstructions(pConnect, instructions = 'casestep') {\n    const caseStepInstructions = PCore.getConstants().CASE_INFO.INSTRUCTIONS && pConnect.getValue(PCore.getConstants().CASE_INFO.INSTRUCTIONS);\n\n    // Determine if this view is the current assignment/step view\n    const isCurrentAssignmentView = this.getIsAssignmentView(pConnect);\n\n    // Case step instructions\n    if (instructions === 'casestep' && isCurrentAssignmentView && caseStepInstructions?.length) {\n      return caseStepInstructions;\n    }\n\n    // No instructions\n    if (instructions === 'none') {\n      return undefined;\n    }\n\n    // If the annotation wasn't processed correctly, don't return any instruction text\n    if (instructions?.startsWith('@PARAGRAPH')) {\n      return undefined;\n    }\n\n    // Custom instructions from the view\n    // The raw metadata for `instructions` will be something like '@PARAGRAPH .SomeParagraphRule' but\n    // it is evaluated by core logic to the content\n    if (instructions !== 'casestep' && instructions !== 'none') {\n      // if the instructions contains a link, and the link is external, add a target attribute to open in a new window\n      if (instructions.includes('<a')) {\n        const parser = new DOMParser();\n        const htmlDoc = parser.parseFromString(instructions, 'text/html');\n        const anchorNode = htmlDoc.querySelector('a');\n        if (anchorNode) {\n          try {\n            const url = new URL(anchorNode.href);\n            if (url.origin !== window.location.origin) {\n              anchorNode.setAttribute('target', '_blank');\n              anchorNode.setAttribute('rel', 'noopener');\n              return htmlDoc.body.innerHTML;\n            }\n          } catch (e) {\n            console.error(e);\n          }\n        }\n      }\n      return instructions;\n    }\n    return undefined;\n  }\n}\n","import { Component, OnInit, Input, forwardRef, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { TemplateUtils } from '../../../_helpers/template-utils';\nimport { FormTemplateBase } from '../base/form-template-base';\n\nfunction areViewsChanged(oldViews: any[], newViews: any[]): boolean {\n  if (oldViews?.length !== newViews?.length) {\n    return true;\n  }\n\n  return !oldViews?.every((oldView, index) => {\n    const newView = newViews[index];\n    return oldView.getPConnect().viewName === newView.getPConnect().viewName;\n  });\n}\n\ninterface DefaultFormProps {\n  // If any, enter additional props that only exist on this component\n  NumCols: string;\n  instructions: string;\n}\n\n@Component({\n  selector: 'app-default-form',\n  templateUrl: './default-form.component.html',\n  styleUrls: ['./default-form.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DefaultFormComponent extends FormTemplateBase implements OnInit, OnChanges {\n  @Input() override pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  override angularPConnectData: AngularPConnectData = {};\n\n  arChildren$: any[];\n  divClass$: string;\n  instructions: string;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private templateUtils: TemplateUtils\n  ) {\n    super();\n  }\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.updateSelf();\n  }\n\n  onStateChange() {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes) {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && !PCore.isDeepEqual(pConn$.previousValue.getConfigProps(), pConn$.currentValue.getConfigProps())) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    const configProps = this.pConn$.getConfigProps() as DefaultFormProps;\n    const kids = this.pConn$.getChildren();\n    this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);\n\n    const numCols = configProps.NumCols ? configProps.NumCols : '1';\n    switch (numCols) {\n      case '1':\n        this.divClass$ = 'psdk-default-form-one-column';\n        break;\n      case '2':\n        this.divClass$ = 'psdk-default-form-two-column';\n        break;\n      case '3':\n        this.divClass$ = 'psdk-default-form-three-column';\n        break;\n      default:\n        this.divClass$ = 'psdk-default-form-one-column';\n        break;\n    }\n\n    // repoint children before getting templateArray\n    // Children may contain 'reference' component, so we need to\n    //  normalize them\n    const children = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());\n\n    if (areViewsChanged(this.arChildren$, children)) {\n      this.arChildren$ = children;\n    }\n  }\n}\n","<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n  <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n  <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n    <component-mapper\n      [name]=\"kid.getPConnect().getComponentName()\"\n      [props]=\"{\n        pConn$: kid.getPConnect(),\n        formGroup$: formGroup$\n      }\"\n      errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n    ></component-mapper>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReferenceComponent } from '../../infra/reference/reference.component';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface DefaultPageProps {\n  // If any, enter additional props that only exist on this component\n  layout?: string;\n  title?: string;\n  heading?: string;\n  message?: string;\n  backgroundImage?: string;\n  enableBanner?: boolean;\n}\n\n@Component({\n  selector: 'app-default-page',\n  templateUrl: './default-page.component.html',\n  styleUrls: ['./default-page.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DefaultPageComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: any;\n\n  configProps$: DefaultPageProps;\n  arChildren$: any[];\n  title?: string;\n  heading: any;\n  message?: string;\n  backgroundImage?: string;\n  layout$?: string;\n  enableBanner$?: boolean;\n\n  constructor() {\n    this.backgroundImage = this.configProps$?.backgroundImage;\n  }\n\n  ngOnInit() {\n    this.backgroundImage = this.configProps$?.backgroundImage;\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n    this.backgroundImage = this.configProps$?.backgroundImage;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DefaultPageProps;\n\n    this.layout$ = this.configProps$.layout;\n    this.heading = this.configProps$.heading;\n    this.message = this.configProps$.message;\n    this.backgroundImage = this.configProps$.backgroundImage;\n    this.enableBanner$ = this.configProps$.enableBanner;\n\n    this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());\n  }\n}\n","<div *ngIf=\"enableBanner$; else nonBannerMode\">\n  <component-mapper\n    name=\"Banner\"\n    [props]=\"{\n      configProps$,\n      arChildren$,\n      title: heading,\n      message,\n      backgroundImage,\n      layout$\n    }\"\n  ></component-mapper>\n</div>\n\n<ng-template #nonBannerMode>\n  <div>\n    <h1 *ngIf=\"title\">{{ title }}</h1>\n    <p *ngIf=\"heading\">{{ heading }}</p>\n    <div\n      [ngClass]=\"{\n        'psdk-grid-filter-1': this.layout$ === 'one-column',\n        'psdk-grid-filter-2': this.layout$ === 'two-column',\n        'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n        'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n      }\"\n    >\n      <component-mapper\n        *ngFor=\"let child of arChildren$\"\n        [name]=\"child.getPConnect().getComponentName()\"\n        [props]=\"{ pConn$: child.getPConnect() }\"\n      ></component-mapper>\n    </div>\n  </div>\n</ng-template>\n","import { Directive, OnInit, OnDestroy, Injector, Input } from '@angular/core';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\n\n@Directive()\nexport class DetailsTemplateBase implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // For interaction with AngularPConnect\n  protected angularPConnectData: AngularPConnectData = {};\n  protected angularPConnect;\n\n  childrenMetadataOld;\n\n  constructor(injector: Injector) {\n    this.angularPConnect = injector.get(AngularPConnectService);\n  }\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // Only call updateSelf when the component should update\n    if (bUpdateSelf || this.hasRawMetadataChanged()) {\n      this.updateSelf();\n    }\n  }\n\n  // this method will get overriden by the child component\n  updateSelf() {}\n\n  hasRawMetadataChanged(): boolean {\n    const newChildrenMetadata = this.fetchChildrenMetadata();\n\n    if (!PCore.isDeepEqual(newChildrenMetadata, this.childrenMetadataOld)) {\n      this.childrenMetadataOld = newChildrenMetadata;\n      return true;\n    }\n\n    return false;\n  }\n\n  fetchChildrenMetadata() {\n    const children = this.pConn$.getChildren() || [];\n\n    return children.map(child => {\n      const pConnect = child.getPConnect();\n      return pConnect.resolveConfigProps(pConnect.getRawMetadata());\n    });\n  }\n}\n","import { Component, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details',\n  templateUrl: './details.component.html',\n  styleUrls: ['./details.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  highlightedDataArr: any[] = [];\n  showHighlightedData: boolean;\n  arFields$: any[] = [];\n\n  override updateSelf() {\n    const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);\n    this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n    if (this.showHighlightedData) {\n      const highlightedData = rawMetaData?.highlightedData;\n      this.highlightedDataArr = highlightedData.map(field => {\n        field.config.displayMode = 'STACKED_LARGE_VAL';\n\n        if (field.config.value === '@P .pyStatusWork') {\n          field.type = 'TextInput';\n          field.config.displayAsStatus = true;\n        }\n\n        return field;\n      });\n    }\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      this.arFields$ = [];\n      const pKid = kid.getPConnect();\n      const fields = pKid.getChildren();\n      fields?.forEach(field => {\n        const thePConn = field.getPConnect();\n        const theCompType = thePConn.getComponentName().toLowerCase();\n        if (theCompType === 'reference' || theCompType === 'group') {\n          const configProps = thePConn.getConfigProps();\n          configProps.readOnly = true;\n          configProps.displayMode = 'DISPLAY_ONLY';\n          const propToUse = { ...thePConn.getInheritedProps() };\n          configProps.label = propToUse?.label;\n          const options = {\n            context: thePConn.getContextName(),\n            pageReference: thePConn.getPageReference(),\n            referenceList: thePConn.getReferenceList()\n          };\n          const viewContConfig = {\n            meta: {\n              ...thePConn.getMetadata(),\n              type: theCompType,\n              config: configProps\n            },\n            options\n          };\n          const theViewCont = PCore.createPConnect(viewContConfig);\n          const data = {\n            type: theCompType,\n            pConn: theViewCont?.getPConnect()\n          };\n          this.arFields$.push(data);\n        } else {\n          const data = {\n            type: theCompType,\n            config: thePConn.getConfigProps()\n          };\n          this.arFields$.push(data);\n        }\n      });\n    }\n  }\n}\n","<div>\n  <component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n</div>\n","import { Component, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details-narrow-wide',\n  templateUrl: './details-narrow-wide.component.html',\n  styleUrls: ['./details-narrow-wide.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsNarrowWideComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  arFields$: any[] = [];\n  arFields2$: any[] = [];\n  highlightedDataArr: any[] = [];\n  showHighlightedData: boolean;\n\n  override updateSelf() {\n    const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);\n    this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n    if (this.showHighlightedData) {\n      const highlightedData = rawMetaData?.highlightedData;\n      this.highlightedDataArr = highlightedData.map(field => {\n        field.config.displayMode = 'STACKED_LARGE_VAL';\n\n        if (field.config.value === '@P .pyStatusWork') {\n          field.type = 'TextInput';\n          field.config.displayAsStatus = true;\n        }\n\n        return field;\n      });\n    }\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const pKid = kid.getPConnect();\n      const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n      if (kids.indexOf(kid) == 0) {\n        this.arFields$ = pKidData.children;\n      } else {\n        this.arFields2$ = pKidData.children;\n      }\n    }\n  }\n}\n","<component-mapper\n  name=\"MaterialDetails\"\n  [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'narrow-wide' }\"\n></component-mapper>\n","import { Component, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details-one-column',\n  templateUrl: './details-one-column.component.html',\n  styleUrls: ['./details-one-column.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsOneColumnComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  showHighlightedData: boolean;\n  highlightedDataArr: any;\n\n  arFields$: any[] = [];\n\n  override updateSelf() {\n    const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);\n    this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n    if (this.showHighlightedData) {\n      const highlightedData = rawMetaData?.highlightedData;\n      this.highlightedDataArr = highlightedData.map(field => {\n        field.config.displayMode = 'STACKED_LARGE_VAL';\n\n        if (field.config.value === '@P .pyStatusWork') {\n          field.type = 'TextInput';\n          field.config.displayAsStatus = true;\n        }\n\n        return field;\n      });\n    }\n\n    this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n    this.pConn$.setInheritedProp('readOnly', true);\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const pKid = kid.getPConnect();\n      const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n      if (kids.indexOf(kid) == 0) {\n        this.arFields$ = pKidData.children;\n      }\n    }\n  }\n}\n","<component-mapper name=\"MaterialDetails\" [props]=\"{ arFields$, arHighlightedFields: highlightedDataArr, layout: 'one-column' }\"></component-mapper>\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { getTransientTabs, getVisibleTabs, tabClick } from '../../../_helpers/tab-utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details-sub-tabs',\n  templateUrl: './details-sub-tabs.component.html',\n  styleUrls: ['./details-sub-tabs.component.scss'],\n  imports: [MatTabsModule, CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsSubTabsComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  currentTabId = '0';\n  tabItems: any[];\n  availableTabs: any[];\n\n  override updateSelf() {\n    const children = this.pConn$?.getChildren();\n    const deferLoadedTabs = children[0];\n    this.availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');\n    this.updateTabContent();\n  }\n\n  updateTabContent() {\n    const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n    this.tabItems = tempTabItems;\n  }\n\n  handleTabClick(event) {\n    const { index } = event;\n    this.currentTabId = index.toString();\n    tabClick(index, this.availableTabs, this.currentTabId, this.tabItems);\n    const tempTabItems = getTransientTabs(this.availableTabs, this.currentTabId, this.tabItems);\n    this.tabItems[index].content = tempTabItems[index].content;\n  }\n}\n","<mat-tab-group (selectedTabChange)=\"handleTabClick($event)\">\n  <mat-tab *ngFor=\"let tab of tabItems; let i = index\" [label]=\"tab.name\">\n    <div *ngIf=\"+currentTabId == i\">\n      <component-mapper\n        *ngIf=\"tab.content?.getPConnect()\"\n        [name]=\"tab.content?.getPConnect().getComponentName()\"\n        [props]=\"{\n          pConn$: tab.content?.getPConnect()\n        }\"\n        errorMsg=\"Details Sub tabs wants component not yet available: {{ tab.content?.getPConnect().getComponentName() }}\"\n      ></component-mapper>\n    </div>\n  </mat-tab>\n</mat-tab-group>\n","import { Component, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details-three-column',\n  templateUrl: './details-three-column.component.html',\n  styleUrls: ['./details-three-column.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsThreeColumnComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  showHighlightedData: boolean;\n  highlightedDataArr: any;\n\n  arFields$: any[] = [];\n  arFields2$: any[] = [];\n  arFields3$: any[] = [];\n\n  propsToUse: any = {};\n\n  override updateSelf() {\n    const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);\n    this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n    if (this.showHighlightedData) {\n      const highlightedData = rawMetaData?.highlightedData;\n      this.highlightedDataArr = highlightedData.map(field => {\n        field.config.displayMode = 'STACKED_LARGE_VAL';\n\n        if (field.config.value === '@P .pyStatusWork') {\n          field.type = 'TextInput';\n          field.config.displayAsStatus = true;\n        }\n\n        return field;\n      });\n    }\n\n    this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n    this.pConn$.setInheritedProp('readOnly', true);\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const pKid = kid.getPConnect();\n      const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n      if (kids.indexOf(kid) == 0) {\n        this.arFields$ = pKidData.children;\n      } else if (kids.indexOf(kid) == 1) {\n        this.arFields2$ = pKidData.children;\n      } else {\n        this.arFields3$ = pKidData.children;\n      }\n    }\n  }\n}\n","<component-mapper\n  name=\"MaterialDetails\"\n  [props]=\"{ arFields$, arFields2$, arFields3$, arHighlightedFields: highlightedDataArr, layout: 'three-column' }\"\n></component-mapper>\n","import { Component, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details-two-column',\n  templateUrl: './details-two-column.component.html',\n  styleUrls: ['./details-two-column.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsTwoColumnComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  showHighlightedData: boolean;\n  highlightedDataArr: any;\n\n  arFields$: any[] = [];\n  arFields2$: any[] = [];\n  arFields3$: any[] = [];\n\n  propsToUse: any = {};\n\n  override updateSelf() {\n    const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);\n    this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n    if (this.showHighlightedData) {\n      const highlightedData = rawMetaData?.highlightedData;\n      this.highlightedDataArr = highlightedData?.map(field => {\n        field.config.displayMode = 'STACKED_LARGE_VAL';\n\n        if (field.config.value === '@P .pyStatusWork') {\n          field.type = 'TextInput';\n          field.config.displayAsStatus = true;\n        }\n\n        return field;\n      });\n    }\n\n    this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n    this.pConn$.setInheritedProp('readOnly', true);\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const pKid = kid.getPConnect();\n      const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n      if (kids.indexOf(kid) == 0) {\n        this.arFields$ = pKidData.children;\n      } else {\n        this.arFields2$ = pKidData.children;\n      }\n    }\n  }\n}\n","<component-mapper\n  name=\"MaterialDetails\"\n  [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'two-column' }\"\n></component-mapper>\n","import { Component, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { DetailsTemplateBase } from '../base/details-template-base';\n\n@Component({\n  selector: 'app-details-wide-narrow',\n  templateUrl: './details-wide-narrow.component.html',\n  styleUrls: ['./details-wide-narrow.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class DetailsWideNarrowComponent extends DetailsTemplateBase {\n  override pConn$: typeof PConnect;\n\n  highlightedDataArr: any[] = [];\n  showHighlightedData: boolean;\n  arFields$: any[] = [];\n  arFields2$: any[] = [];\n  propsToUse: any = {};\n\n  override updateSelf() {\n    const rawMetaData: any = this.pConn$.resolveConfigProps(this.pConn$.getRawMetadata()?.config);\n    this.showHighlightedData = rawMetaData?.showHighlightedData;\n\n    if (this.showHighlightedData) {\n      const highlightedData = rawMetaData?.highlightedData;\n      this.highlightedDataArr = highlightedData.map(field => {\n        field.config.displayMode = 'STACKED_LARGE_VAL';\n\n        if (field.config.value === '@P .pyStatusWork') {\n          field.type = 'TextInput';\n          field.config.displayAsStatus = true;\n        }\n\n        return field;\n      });\n    }\n\n    this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n    this.pConn$.setInheritedProp('readOnly', true);\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const pKid = kid.getPConnect();\n      const pKidData = pKid.resolveConfigProps(pKid.getRawMetadata());\n      if (kids.indexOf(kid) == 0) {\n        this.arFields$ = pKidData.children;\n      } else {\n        this.arFields2$ = pKidData.children;\n      }\n    }\n  }\n}\n","<component-mapper\n  name=\"MaterialDetails\"\n  [props]=\"{ arFields$, arFields2$, arHighlightedFields: highlightedDataArr, layout: 'wide-narrow' }\"\n></component-mapper>\n","/**\n *\n * @param {*} pConn - pConnect object of the view\n * @returns {string} - returns the name of referenceList\n */\nexport const getReferenceList = pConn => {\n  let resolvePage = pConn.getComponentConfig().referenceList.replace('@P ', '');\n  if (resolvePage.includes('D_')) {\n    resolvePage = pConn.resolveDatasourceReference(resolvePage);\n    if (resolvePage?.pxResults) {\n      resolvePage = resolvePage?.pxResults;\n    } else if (resolvePage.startsWith('D_') && !resolvePage.endsWith('.pxResults')) {\n      resolvePage = `${resolvePage}.pxResults`;\n    }\n  }\n  return resolvePage;\n};\n\n/**\n * creates and returns react element of the view\n * @param {*} pConn - pConnect object of the view\n * @param {*} index - index of the fieldGroup item\n * @param {*} viewConfigPath - boolean value to check for children in config\n * @returns {*} - return the react element of the view\n */\nexport const buildView = (pConn, index, viewConfigPath) => {\n  const context = pConn.getContextName();\n  const referenceList = getReferenceList(pConn);\n\n  const isDatapage = referenceList.startsWith('D_');\n  const pageReference = isDatapage ? `${referenceList}[${index}]` : `${pConn.getPageReference()}${referenceList}[${index}]`;\n  const meta = viewConfigPath ? pConn.getRawMetadata().children[0].children[0] : pConn.getRawMetadata().children[0];\n  const config = {\n    meta,\n    options: {\n      context,\n      pageReference,\n      referenceList,\n      hasForm: true\n    }\n  };\n\n  const view = PCore.createPConnect(config);\n  if (pConn.getConfigProps()?.displayMode === 'DISPLAY_ONLY') {\n    view.getPConnect()?.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n  }\n\n  return view;\n};\n","import { Component, Input, OnDestroy, OnInit, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { CommonModule } from '@angular/common';\nimport { buildView } from '../../../_helpers/field-group-utils';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface DynamicTabsProps {\n  referenceList: string;\n  template: string;\n  label?: string;\n  showLabel?: boolean;\n}\n\n@Component({\n  selector: 'app-dynamic-tabs',\n  templateUrl: './dynamic-tabs.component.html',\n  styleUrls: ['./dynamic-tabs.component.scss'],\n  imports: [CommonModule, MatTabsModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class DynamicTabsComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n  tabsItems: any[];\n  propsToUse: any;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    const { referenceList, label, showLabel } = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DynamicTabsProps;\n\n    this.propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };\n\n    const { tablabel } = this.pConn$.getComponentConfig();\n    const tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel);\n\n    this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n    this.pConn$.setInheritedProp('readOnly', true);\n\n    const referenceListData = this.pConn$.getValue(`${referenceList}.pxResults`, ''); // 2nd arg empty string until typedefs properly allow optional\n\n    this.tabsItems =\n      referenceListData?.map((item, i) => {\n        const currentTabLabel = item[tablabelProp] || PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');\n        return {\n          id: i,\n          name: currentTabLabel,\n          content: buildView(this.pConn$, i, '')\n        };\n      }) || [];\n  }\n}\n","<div *ngIf=\"propsToUse.showLabel && propsToUse.label\" class=\"template-title-container\">\n  <span>{{ propsToUse.label }}</span>\n</div>\n<mat-tab-group id=\"dynamic-tabs\" mat-stretch-tabs=\"false\" animationDuration=\"0\">\n  <mat-tab *ngFor=\"let tab of tabsItems\" [label]=\"tab.name\">\n    <component-mapper name=\"View\" [props]=\"{ pConn$: tab.content.getPConnect() }\"></component-mapper>\n  </mat-tab>\n</mat-tab-group>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-field-group-list',\n  templateUrl: './field-group-list.component.html',\n  styleUrls: ['./field-group-list.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FieldGroupListComponent {\n  @Input() item;\n  @Input() heading;\n  @Input() formGroup$;\n\n  fields: any = [];\n}\n","<div>\n  <b>{{ heading }}</b>\n  <div>\n    <div *ngIf=\"item.children.getPConnect().getRawMetadata().type.toLowerCase() == 'region'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: item.children.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy, OnChanges, signal, effect } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { buildView, getReferenceList } from '../../../_helpers/field-group-utils';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { evaluateAllowRowAction } from '../utils';\n\ninterface FieldGroupTemplateProps {\n  // If any, enter additional props that only exist on this component\n  label?: string;\n  hideLabel?: boolean;\n  allowActions?: any;\n  allowRowDelete?: any;\n  referenceList?: any[];\n  contextClass: string;\n  renderMode?: string;\n  heading?: string;\n  lookForChildInConfig?: boolean;\n  displayMode?: string;\n  fieldHeader?: string;\n  allowTableEdit: boolean;\n  targetClassLabel?: string;\n}\n\n@Component({\n  selector: 'app-field-group-template',\n  templateUrl: './field-group-template.component.html',\n  styleUrls: ['./field-group-template.component.scss'],\n  imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FieldGroupTemplateComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() configProps$: FieldGroupTemplateProps;\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n\n  showLabel$?: boolean = true;\n  label$?: string;\n  readonlyMode: boolean;\n  contextClass: any;\n  heading: any;\n  children: any;\n  menuIconOverride$: any;\n  referenceListLength = signal<number | null>(null);\n  fieldHeader: any;\n\n  allowAdd = signal(true);\n  allowEdit = signal(true);\n  allowDelete = true;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {\n    effect(() => {\n      const allowAdd = this.allowAdd();\n      const allowEdit = this.allowEdit();\n      const referenceList = this.configProps$?.referenceList;\n      if (referenceList?.length === 0 && (allowAdd || allowEdit)) {\n        this.pConn$.getListActions().insert({ classID: this.contextClass }, referenceList.length);\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.menuIconOverride$ = this.utils.getImageSrc('trash', this.utils.getSDKStaticContentUrl());\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  ngOnChanges(changes) {\n    if (changes && changes.configProps$) {\n      const props = changes.configProps$;\n      if (props.currentValue !== props.previousValue) {\n        this.configProps$ = props.currentValue;\n\n        if (changes?.pConn$?.currentValue) {\n          this.pConn$ = changes?.pConn$?.currentValue;\n        }\n\n        this.updateSelf();\n\n        setTimeout(() => {\n          this.angularPConnect.shouldComponentUpdate(this);\n        }, 100);\n      }\n    }\n  }\n\n  updateSelf() {\n    const inheritedProps: any = this.pConn$.getInheritedProps();\n\n    const { label, hideLabel, allowRowDelete, referenceList, fieldHeader, renderMode, displayMode, heading, contextClass, lookForChildInConfig } =\n      this.configProps$;\n\n    // label within inheritedProps takes precedence over configProps\n    this.label$ = inheritedProps.label || label;\n\n    this.showLabel$ = referenceList?.length === 0 || !hideLabel;\n\n    this.readonlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY';\n\n    this.contextClass = contextClass;\n    this.heading = heading ?? 'Row';\n    this.fieldHeader = fieldHeader;\n\n    const resolvedList = getReferenceList(this.pConn$);\n    this.pConn$.setReferenceList(resolvedList);\n\n    const { allowActions, allowTableEdit } = this.configProps$;\n\n    if (allowActions && Object.keys(allowActions).length > 0) {\n      this.allowAdd.set(allowActions.allowAdd ?? allowTableEdit ?? true);\n      this.allowEdit.set(allowActions.allowEdit ?? true);\n      this.allowDelete = allowActions.allowDelete ?? allowTableEdit ?? true;\n    } else {\n      this.allowAdd.set(allowTableEdit ?? true);\n      this.allowDelete = allowTableEdit ?? true;\n    }\n\n    if (this.readonlyMode) {\n      this.pConn$.setInheritedProp('displayMode', 'DISPLAY_ONLY');\n    }\n\n    if (this.referenceListLength() != referenceList?.length) {\n      // @ts-ignore - Expected 3 arguments, but got 1\n      this.pConn$.getListActions().initDefaultPageInstructions(resolvedList);\n\n      this.children = referenceList?.map((item, index) => {\n        return {\n          id: index,\n          name: this.fieldHeader === 'propertyRef' ? this.getDynamicHeader(item, index) : this.getStaticHeader(this.heading, index),\n          children: buildView(this.pConn$, index, lookForChildInConfig),\n          allowRowDelete: evaluateAllowRowAction(allowRowDelete, item)\n        };\n      });\n    }\n    this.referenceListLength.set(referenceList?.length || 0);\n  }\n\n  getStaticHeader = (heading, index) => {\n    return `${heading} ${index + 1}`;\n  };\n\n  getDynamicHeader = (item, index) => {\n    if (this.heading && item[this.heading.substring(1)]) {\n      return item[this.heading.substring(1)];\n    }\n    return `Row ${index + 1}`;\n  };\n\n  addFieldGroupItem() {\n    this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceListLength() as number);\n  }\n\n  deleteFieldGroupItem(index) {\n    this.pConn$.getListActions().deleteEntry(index);\n  }\n\n  getAddBtnLabel() {\n    const { targetClassLabel } = this.configProps$;\n    return targetClassLabel ? `+ Add ${targetClassLabel}` : '+ Add';\n  }\n}\n","<div id=\"field-group\">\n  <h3 *ngIf=\"showLabel$\" class=\"field-group-template-header\" style=\"font-weight: bold\">\n    {{ label$ }}\n  </h3>\n  <div *ngIf=\"readonlyMode; else editable\">\n    <div *ngIf=\"children && children.length > 0\">\n      <div *ngFor=\"let item of children; let i = index\">\n        <component-mapper name=\"FieldGroupList\" [props]=\"{ heading: item.name, formGroup$, item }\"></component-mapper>\n      </div>\n    </div>\n  </div>\n  <ng-template #editable>\n    <div *ngIf=\"children && children.length > 0\">\n      <div class=\"field-group-template-item\" *ngFor=\"let child of children; let i = index\">\n        <div class=\"header-div\">\n          <div style=\"width: 80%\">\n            <b>{{ child.name }}</b>\n          </div>\n          <div *ngIf=\"allowDelete && child.allowRowDelete\" style=\"width: 20%; text-align: right\">\n            <button id=\"delete-button\" mat-icon-button (click)=\"deleteFieldGroupItem(i)\">\n              <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n            </button>\n          </div>\n        </div>\n\n        <div *ngIf=\"child.children.getPConnect().getRawMetadata().type.toLowerCase() == 'region'\">\n          <component-mapper name=\"Region\" [props]=\"{ pConn$: child.children.getPConnect(), formGroup$ }\"></component-mapper>\n        </div>\n      </div>\n    </div>\n    <button *ngIf=\"allowAdd()\" mat-button color=\"primary\" style=\"font-size: 16px\" (click)=\"addFieldGroupItem()\">{{ getAddBtnLabel() }}</button>\n  </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-field-value-list',\n  templateUrl: './field-value-list.component.html',\n  styleUrls: ['./field-value-list.component.scss'],\n  imports: [CommonModule]\n})\nexport class FieldValueListComponent {\n  @Input() label$: any;\n  @Input() value$: any;\n  @Input() displayMode$: any;\n  @Input() isHtml$ = false;\n}\n","<div *ngIf=\"displayMode$ === 'DISPLAY_ONLY'; else STACKED_LARGE_VAL\" [ngClass]=\"label$ ? 'psdk-container-labels-left' : 'psdk-container-nolabels'\">\n  <div *ngIf=\"label$\" class=\"psdk-grid-label\">{{ label$ }}</div>\n  <div class=\"psdk-val-labels-left\">\n    <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n  </div>\n</div>\n\n<ng-template #STACKED_LARGE_VAL>\n  <div *ngIf=\"displayMode$ === 'STACKED_LARGE_VAL'\" class=\"psdk-container-stacked-large-val\">\n    <div class=\"psdk-grid-label\">{{ label$ }}</div>\n    <div class=\"psdk-val-stacked\">\n      <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #valueTemplate>\n  <div *ngIf=\"isHtml$; else valueOnly\" id=\"instruction-text\" [innerHTML]=\"value$ || '---'\"></div>\n  <ng-template #valueOnly>{{ value$ || '---' }}</ng-template>\n</ng-template>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface InlineDashboardProps {\n  // If any, enter additional props that only exist on this component\n  title: string;\n  filterPosition?: string;\n}\n\n@Component({\n  selector: 'app-inline-dashboard',\n  templateUrl: './inline-dashboard.component.html',\n  styleUrls: ['./inline-dashboard.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class InlineDashboardComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() filtersFormGroup$: FormGroup;\n  @Input() inlineProps: InlineDashboardProps;\n  @Input() children: any[];\n}\n","<div class=\"psdk-inline-dashboard\">\n  <h4 class=\"psdk-inline-dashboard-title\">{{ inlineProps.title }}</h4>\n  <div\n    [ngClass]=\"{\n      'psdk-inline-style': inlineProps.filterPosition === 'inline-start' || inlineProps.filterPosition === 'inline-end',\n      'psdk-inline-end': inlineProps.filterPosition === 'inline-end'\n    }\"\n    *ngIf=\"children\"\n  >\n    <div class=\"psdk-inline-filter\">\n      <div id=\"filters\">\n        <component-mapper name=\"DashboardFilter\" [props]=\"{ children: children[1], inlineProps, filtersFormGroup$ }\"></component-mapper>\n      </div>\n    </div>\n    <div class=\"psdk-inline-list\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: children[0].getPConnect() }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { buildFilterComponents } from '../../../_helpers/filter-utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface InlineDashboardPageProps {\n  // If any, enter additional props that only exist on this component\n  title: string;\n  icon?: string;\n  filterPosition?: string;\n}\n\n@Component({\n  selector: 'app-inline-dashboard-page',\n  templateUrl: './inline-dashboard-page.component.html',\n  styleUrls: ['./inline-dashboard-page.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class InlineDashboardPageComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n\n  configProps$: InlineDashboardPageProps;\n  filterComponents: any;\n  inlineProps: any;\n  children: any = [];\n  filtersFormGroup$: FormGroup;\n\n  constructor(private fb: FormBuilder) {\n    this.filtersFormGroup$ = this.fb.group({ hideRequired: false });\n  }\n\n  ngOnInit() {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as InlineDashboardPageProps;\n    const arChildren$ = this.pConn$.getChildren();\n    const allFilters = this.pConn$.getRawMetadata()?.children?.[1];\n    const filterComponents = buildFilterComponents(this.pConn$, allFilters);\n    this.inlineProps = this.configProps$;\n    this.children[0] = arChildren$[0];\n    this.children[1] = filterComponents;\n  }\n}\n","<component-mapper name=\"InlineDashboard\" [props]=\"{ inlineProps, children, filtersFormGroup$ }\"></component-mapper>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-list-page',\n  templateUrl: './list-page.component.html',\n  styleUrls: ['./list-page.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class ListPageComponent {\n  @Input() pConn$: typeof PConnect;\n}\n","<component-mapper name=\"ListView\" [props]=\"{ pConn$, bInForm$: false }\"></component-mapper>\n","const LOCALIZATON_ANNOTATION = '@L ';\nconst PROPERTY_ANNOTATION = '@P .';\nconst USER_ANNOTATION = '@USER .';\nconst ASSOCIATED_ANNOTATION = '@ASSOCIATED .';\nconst ASSOCIATION_ANNOTATION = '@CA ';\n\nconst getDefaultConfig = (fieldMeta, classID, show) => {\n  const {\n    name,\n    label,\n    fieldID,\n    fieldType,\n    dataType,\n    type,\n    classID: fieldMetaClassID,\n    displayAs,\n    displayAsLink,\n    category,\n    associationClassID,\n    associationID\n  } = fieldMeta;\n  return {\n    value: (associationClassID ? ASSOCIATION_ANNOTATION : PROPERTY_ANNOTATION).concat(fieldID),\n    label: LOCALIZATON_ANNOTATION.concat(name || label),\n    fieldType,\n    propertyType: dataType || type,\n    classID: classID || fieldMetaClassID,\n    displayAs,\n    displayAsLink,\n    category,\n    show,\n    ...(associationClassID ? { associationLabel: LOCALIZATON_ANNOTATION.concat(category) } : {}),\n    associationID\n  };\n};\n\nexport function getDefaultViewMeta(fieldMeta, classID, showField) {\n  const { type, name, displayAs, fieldID, isUserReference, associationID, datasource, label, fieldType } = fieldMeta;\n  const mapperKey = type && displayAs ? type.concat(':').concat(displayAs) : type;\n  const defaultConfig = getDefaultConfig(fieldMeta, classID, showField);\n  let viewMeta;\n  switch (mapperKey) {\n    case 'True-False:pxCheckbox':\n      viewMeta = {\n        type: 'Checkbox',\n        config: {\n          ...defaultConfig,\n          trueLabel: '@L Yes',\n          falseLabel: '@L No',\n          caption: LOCALIZATON_ANNOTATION.concat(name || label),\n          label: undefined\n        }\n      };\n      break;\n    case 'Decimal:pxCurrency':\n      viewMeta = {\n        type: 'Currency',\n        config: defaultConfig\n      };\n      break;\n    case 'Date Time:pxDateTime':\n    case 'Date & time:pxDateTime':\n      viewMeta = {\n        type: 'DateTime',\n        config: defaultConfig\n      };\n      break;\n    case 'Date:pxDateTime':\n    case 'Date only:pxDateTime':\n      viewMeta = {\n        type: 'Date',\n        config: defaultConfig\n      };\n      break;\n    case 'Decimal:pxNumber':\n      viewMeta = {\n        type: 'Decimal',\n        config: defaultConfig\n      };\n      break;\n    case 'Text:pxEmail':\n      viewMeta = {\n        type: 'Email',\n        config: defaultConfig\n      };\n      break;\n    case 'Integer:pxInteger':\n      viewMeta = {\n        type: 'Integer',\n        config: defaultConfig\n      };\n      break;\n    case 'Decimal:pxPercentage':\n      viewMeta = {\n        type: 'Percentage',\n        config: defaultConfig\n      };\n      break;\n    case 'Text:pxPhone':\n      viewMeta = {\n        type: 'Phone',\n        config: {\n          ...defaultConfig,\n          datasource: {\n            source: '@DATASOURCE D_pyCountryCallingCodeList.pxResults',\n            fields: {\n              value: '@P .pyCallingCode'\n            }\n          }\n        }\n      };\n      break;\n    case 'TimeOfDay:pxDateTime':\n      viewMeta = {\n        type: 'Time',\n        config: defaultConfig\n      };\n      break;\n    case 'Text:pxURL':\n    case 'Text:pxUrl':\n      viewMeta = {\n        type: 'URL',\n        config: defaultConfig\n      };\n      break;\n    case 'Text:pxTextArea':\n      viewMeta = {\n        type: 'TextArea',\n        config: defaultConfig\n      };\n      break;\n    case 'Text:pxRichTextEditor':\n      viewMeta = {\n        type: 'RichText',\n        config: defaultConfig\n      };\n      break;\n    case 'Text:pxAutoComplete':\n      if (isUserReference || fieldType === 'User reference') {\n        viewMeta = {\n          type: 'UserReference',\n          config: {\n            ...defaultConfig,\n            value: USER_ANNOTATION.concat(fieldID),\n            placeholder: 'Select...',\n            displayAs: 'Search box',\n            associationID,\n            associationLabel: undefined\n          }\n        };\n      } else {\n        const { tableType = '' } = datasource || {};\n        viewMeta = {\n          type: 'AutoComplete',\n          config: {\n            ...defaultConfig,\n            placeholder: 'Select...',\n            listType: 'associated',\n            datasource: ASSOCIATED_ANNOTATION.concat(fieldID),\n            deferDatasource: tableType === 'DataPage'\n          }\n        };\n      }\n      break;\n    case 'Text:pxDropdown':\n      if (isUserReference || fieldType === 'User reference') {\n        viewMeta = {\n          type: 'UserReference',\n          config: {\n            ...defaultConfig,\n            value: USER_ANNOTATION.concat(fieldID),\n            placeholder: 'Select...',\n            displayAs: 'Drop-down list',\n            associationID,\n            associationLabel: undefined\n          }\n        };\n      } else {\n        const { tableType = '' } = datasource || {};\n        viewMeta = {\n          type: 'Dropdown',\n          config: {\n            ...defaultConfig,\n            placeholder: 'Select...',\n            listType: 'associated',\n            datasource: ASSOCIATED_ANNOTATION.concat(fieldID),\n            deferDatasource: tableType === 'DataPage'\n          }\n        };\n      }\n      break;\n    case 'Text:pxRadioButtons':\n      {\n        const { tableType = '' } = datasource || {};\n        viewMeta = {\n          type: 'RadioButtons',\n          config: {\n            ...defaultConfig,\n            placeholder: 'Select...',\n            listType: 'associated',\n            datasource: ASSOCIATED_ANNOTATION.concat(fieldID),\n            deferDatasource: tableType === 'DataPage'\n          }\n        };\n      }\n      break;\n    case 'Text:pxTextInput':\n      viewMeta = {\n        type: 'TextInput',\n        config: defaultConfig\n      };\n      break;\n    default:\n      viewMeta = {\n        type,\n        config: defaultConfig\n      };\n  }\n  return viewMeta;\n}\n","import { getDefaultViewMeta } from './DefaultViewMeta';\n\nconst USER_REFERENCE = 'UserReference';\nconst PAGE = '!P!';\nconst PAGELIST = '!PL!';\n\nexport const formatConstants = {\n  WorkStatus: 'WorkStatus',\n  Integer: 'Integer',\n  WorkLink: 'WorkLink'\n};\n\nclass DataApi {\n  mappedPropertyToOriginalProperty: any;\n  originalPropertyToMappedProperty: any;\n  constructor() {\n    this.originalPropertyToMappedProperty = {};\n    this.mappedPropertyToOriginalProperty = {};\n    this.setPropertyMaps = this.setPropertyMaps.bind(this);\n    this.getMappedProperty = this.getMappedProperty.bind(this);\n    this.getOriginalProperty = this.getOriginalProperty.bind(this);\n  }\n\n  setPropertyMaps(originalToMappedPropertyObj = {}, mappedToOriginalPropertyObj = {}) {\n    this.originalPropertyToMappedProperty = {\n      ...this.originalPropertyToMappedProperty,\n      ...originalToMappedPropertyObj\n    };\n    this.mappedPropertyToOriginalProperty = {\n      ...this.mappedPropertyToOriginalProperty,\n      ...mappedToOriginalPropertyObj\n    };\n  }\n\n  getMappedProperty(propertyName) {\n    return this.originalPropertyToMappedProperty[propertyName] ?? propertyName;\n  }\n\n  getOriginalProperty(propertyName) {\n    return this.mappedPropertyToOriginalProperty[propertyName] ?? propertyName;\n  }\n}\n\nexport async function getContext(componentConfig) {\n  const {\n    promisesArray = [] // array of promises which can be invoked paralelly,\n  } = componentConfig;\n  const promisesResponseArray = await Promise.all(promisesArray);\n  const dataApi = new DataApi();\n  return {\n    promisesResponseArray,\n    setPropertyMaps: dataApi.setPropertyMaps,\n    getMappedProperty: dataApi.getMappedProperty,\n    getOriginalProperty: dataApi.getOriginalProperty\n  };\n}\n\n/**\n * [getFieldNameFromEmbeddedFieldName]\n * Description    -               converting embeddedField name starting with !P! or !PL! to normal field\n * @ignore\n * @param {string} propertyName   EmbeddedField name starting with !P! or !PL!\n * @returns {string}              returns converted string without !P! or !PL! and :\n *\n * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>\n * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'\n * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'\n */\nexport function getFieldNameFromEmbeddedFieldName(propertyName) {\n  let value = propertyName;\n  if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {\n    value = value.substring(value.lastIndexOf('!') + 1);\n    value = value.replace(/:/g, '.');\n  }\n  return value;\n}\n\n/**\n * [updateMetaEmbeddedFieldID]\n * Description    -           If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)\n * @ignore\n * @param {Array} metaFields  Fields metadata Array. Contains metadata of all the fields.\n */\nexport function updateMetaEmbeddedFieldID(metaFields) {\n  return metaFields.forEach(metaField => {\n    if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {\n      metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);\n    }\n  });\n}\n\nexport const isEmbeddedField = field => {\n  if (field?.startsWith('@')) {\n    field = field.substring(field.indexOf(' ') + 1);\n    if (field[0] === '.') field = field.substring(1);\n  }\n  return field?.indexOf('.') > 0;\n};\n\n/**\n * [isPageListProperty]\n * Description    -        checking if propertyName is pageList or not\n * @ignore\n * @param {string} propertyName   PropertyName\n * @returns {boolean}  true if property is pageList else false\n *\n * @example <caption>Example for isPageListProperty </caption>\n * isPageListProperty('!PL!Employees.Name') return true\n * isPageListProperty('!P!Employees.Name') return false\n * isPageListProperty('Name') return false\n */\nexport function isPageListProperty(propertyName) {\n  return propertyName.startsWith(PAGELIST);\n}\n\nexport const isPageListInPath = (propertyName, currentClassID) => {\n  if (!propertyName.includes('.')) {\n    return false;\n  }\n  const [first, ...rest] = propertyName.split('.');\n  const metadata: any = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);\n  if (metadata?.type === 'Page List') {\n    return true;\n  }\n  return isPageListInPath(rest.join('.'), metadata?.pageClass);\n};\n\n/**\n * [getEmbeddedFieldName]\n * Description    -               converting normal field name to embedded field starting with !P! or !PL!\n * @ignore\n * @param {string} propertyName   Field name\n * @param {string} classID        classID of datapage\n * @returns {string}              returns converted string with !P! or !PL! and :\n *\n * @example <caption>Example for getEmbeddedFieldName </caption>\n * For page property, getEmbeddedFieldName('Organisation.Name') return '!P!Organisation:Name'\n * For pageList property, getEmbeddedFieldName('Employees.Name') return '!PL!Employees:Name'\n */\n\nexport function getEmbeddedFieldName(propertyName, classID) {\n  let value = propertyName;\n  if (isPageListInPath(value, classID)) {\n    value = `!PL!${value.replace(/\\./g, ':')}`;\n  } else {\n    value = `!P!${value.replace(/\\./g, ':')}`;\n  }\n  return value;\n}\n\n/**\n * [preparePropertyMaps]\n * Description    -        preparing maps for property names and set it in dataApi context\n * @ignore\n * @param {Array} fields   fields array\n * @param {string} classID  classID of datapage\n * @param {string} context  dataApi context\n * @returns {boolean} true if pageListProperty is present\n */\nexport function preparePropertyMaps(fields, classID, context) {\n  const { setPropertyMaps } = context;\n  const maps = fields.reduce(\n    (acc, field) => {\n      let { value } = field.config;\n      if (value.startsWith('@')) {\n        value = value.substring(value.indexOf(' ') + 1);\n        if (value[0] === '.') value = value.substring(1);\n      }\n      let name = value;\n      // Preparing name for embedded property\n      if (isEmbeddedField(name)) {\n        name = getEmbeddedFieldName(name, classID);\n      }\n      if (isPageListProperty(name) && !acc[2]) {\n        acc[2] = true;\n      }\n      acc[0][value] = name;\n      acc[1][name] = value;\n\n      return acc;\n    },\n    [{}, {}, false]\n  );\n  setPropertyMaps(maps[0], maps[1]);\n  return maps[2];\n}\n\n/**\n * [getConfigEmbeddedFieldsMeta]\n * Description    -           Get the metadata for configured embedded fields\n * @ignore\n * @param {Set} configFields  Set of config fields\n * @param {string} classID    clasID of datapage\n * @returns {Array}           Metadata of configured embedded fields\n */\nexport function getConfigEmbeddedFieldsMeta(configFields, classID) {\n  const configEmbeddedFieldsMeta: any[] = [];\n  configFields.forEach(field => {\n    let value = field;\n    if (isEmbeddedField(value)) {\n      // conversion Page.PageList[].property => Page.PageList.property\n      if (value.includes('[')) {\n        value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);\n      }\n      const meta: any = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);\n      meta.fieldID = field;\n      configEmbeddedFieldsMeta.push(meta);\n    }\n  });\n  return configEmbeddedFieldsMeta;\n}\n\n/**\n * [mergeConfigEmbeddedFieldsMeta]\n * Description    -           Get the metadata for configured embedded fields\n * @ignore\n * @param {Array} configEmbeddedFieldsMeta  config fields metadata.\n * @param {Array} metaFields  Fields metadata Array. Contains metadata of all the fields\n */\nexport function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {\n  const mergedMetaFields = [...metaFields];\n  configEmbeddedFieldsMeta.forEach(configFieldMeta => {\n    const fieldMeta = metaFields.find(metaField => metaField.fieldID === configFieldMeta.fieldID);\n    if (!fieldMeta) mergedMetaFields.push(configFieldMeta);\n  });\n  return mergedMetaFields;\n}\n\nconst oldToNewFieldTypeMapping = {\n  'Date Time': 'Date & time',\n  Date: 'Date only'\n};\n\n/**\n * [updateFieldType]\n * Description    -           Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.\n * @ignore\n * @param {Array} metaFields  Fields metadata Array. Contains metadata of all the fields.\n */\nfunction updateFieldType(metaFields) {\n  metaFields.forEach(metaField => {\n    if (metaField.type) metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;\n  });\n}\n\nfunction getPresetMetaAttribute(attribute) {\n  const {\n    type,\n    config: { label, value }\n  } = attribute;\n  return {\n    type,\n    name: value.startsWith('@') ? value.substring(4) : value,\n    label: label.startsWith('@') ? label.substring(3) : label\n  };\n}\n\n/**\n * [generateViewMetaData]\n * Description - Returns a list of  metaobjects of the fields provided.\n * @ignore\n * @param   {Array}   rawFields         List of fields to update meta for\n * @param   {string}  classID          Class ID from the response\n * @returns {Array}                    List of fields with updated meta objects.\n */\nfunction generateViewMetaData(rawFields, classID, showField) {\n  return rawFields.map(item => getDefaultViewMeta(item, classID, showField));\n}\n\n/**\n * [getConfigFields]\n * Description - Returns list of config fields with primary fields meta updated.\n * @ignore\n * @param   {Array}   configFields      List of Authored fields\n * @param   {Array}   primaryFields     List of Primary Fields\n * @param   {Array}   metaFields        Metadata of all fields\n * @param   {string}  classID           Class ID from the response\n * @returns {Array}                     List of all fields with their meta updated.\n */\nfunction getConfigFields(configFields, primaryFields, metaFields, classID) {\n  const presetConfigFields = configFields;\n  const primaryFieldsViewIndex = presetConfigFields.findIndex(field => field.config.value === 'pyPrimaryFields');\n  if (!primaryFields || !primaryFields.length) {\n    if (primaryFieldsViewIndex < 0) return presetConfigFields;\n\n    presetConfigFields.splice(primaryFieldsViewIndex, 1);\n\n    return presetConfigFields;\n  }\n\n  if (primaryFieldsViewIndex > -1) {\n    // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type\n    const uncommonFieldsList = primaryFields.filter(\n      primaryField => !presetConfigFields.some(presetConfigField => presetConfigField.config.value.split('.')[1] === primaryField)\n    );\n    const uncommonFieldsRawMeta: any[] = [];\n    uncommonFieldsList.forEach(uncommonField => {\n      const uncommonFieldMeta = metaFields.find(metaField => metaField.fieldID === uncommonField);\n      if (uncommonFieldMeta) uncommonFieldsRawMeta.push(uncommonFieldMeta);\n    });\n    const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);\n\n    presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);\n  }\n  return presetConfigFields;\n}\n\n/**\n * [getTableConfigFromPresetMeta]\n * Description - Get the table config from the presets meta.\n * @ignore\n * @param   {object}    presetMeta          Presets meta\n * @param   {boolean}   isMetaWithPresets   true if meta has presets else false\n * @param   {Function}  getPConnect         Callback to get the PConnect object\n * @param   {string}    classID             Class ID from the response\n * @param   {Array}     primaryFields       List of Primary Fields\n * @param   {Array}     metaFields          List of all metafields\n * @returns {object}                        Table config object\n */\nexport function getTableConfigFromPresetMeta(presetMeta, isMetaWithPresets, pConn$, classID, primaryFields, metaFields) {\n  let presetId;\n  let presetName;\n  let cardHeader;\n  let secondaryText;\n  let timelineDate;\n  let timelineTitle;\n  let timelineStatus;\n  let timelineIcon;\n  let { filterExpression } = pConn$.getRawMetadata().config;\n  let fieldsMeta;\n  let configFields;\n  if (isMetaWithPresets) {\n    presetId = presetMeta.id;\n    presetName = presetMeta.label;\n    cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);\n    secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);\n    timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);\n    timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);\n    timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);\n    timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);\n    filterExpression = presetMeta.config.filterExpression;\n    [fieldsMeta] = presetMeta.children;\n    if (\n      presetMeta.timelineTitle &&\n      !fieldsMeta.children.find(fieldMeta => {\n        return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;\n      })\n    ) {\n      const { type, config } = presetMeta.timelineTitle;\n      fieldsMeta.children.push({ type, config: { ...config, show: false } });\n    }\n    if (\n      presetMeta.timelineDate &&\n      !fieldsMeta.children.find(fieldMeta => {\n        return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;\n      })\n    ) {\n      const { type, config } = presetMeta.timelineDate;\n      fieldsMeta.children.push({ type, config: { ...config, show: false } });\n    }\n    configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);\n  } else {\n    fieldsMeta = presetMeta.props;\n    configFields = getConfigFields(\n      fieldsMeta\n        .getPConnect()\n        .getChildren()\n        ?.map(child => {\n          return child.getPConnect().getRawMetadata();\n        }),\n      primaryFields,\n      metaFields,\n      classID\n    );\n  }\n  return {\n    presetId,\n    presetName,\n    cardHeader,\n    secondaryText,\n    timelineDate,\n    timelineTitle,\n    timelineStatus,\n    timelineIcon,\n    filterExpression,\n    fieldsMeta,\n    configFields\n  };\n}\n\n/**\n * [getReportColumns]\n * Description - Returns a set of columns from the report response.\n * @ignore\n * @param   {object} response -\n * @returns {Set} Set of columns from the report response\n */\nfunction getReportColumns(response) {\n  const {\n    data: { data: reportColumns }\n  } = response;\n  const reportColumnsSet = new Set();\n  reportColumns?.forEach(item => {\n    let val = item.pyFieldName;\n    // Remove '.' from index 0 only, if '.' is present\n    if (val[0] === '.') {\n      val = val.substring(1);\n    }\n    reportColumnsSet.add(val);\n  });\n  return reportColumnsSet;\n}\n\n/**\n * [getConfigFieldValue]\n * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also \".\"\n * @ignore\n * @param   {object} config\n *                   config.value - Raw value\n * @returns {string} value - Value with out any annotations or \".\"\n */\nfunction getConfigFieldValue(config) {\n  let { value } = config;\n  if (value.startsWith('@')) {\n    value = value.substring(value.indexOf(' ') + 1);\n    if (value[0] === '.') value = value.substring(1);\n  }\n  return value;\n}\n\n/**\n * [prepareConfigFields]\n * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.\n * @ignore\n * @param   {object}    configFields          List of Authored fields\n * @param   {Function}  pushToComponentsList Callback to push the field type to a set.\n * @returns {Set}       configFieldSet\n */\nfunction prepareConfigFields(configFields, pushToComponentsList) {\n  const configFieldSet = new Set();\n  configFields.forEach(item => {\n    pushToComponentsList(item.type);\n    const val = getConfigFieldValue(item.config);\n    configFieldSet.add(val);\n  });\n  return configFieldSet;\n}\n\n/**\n * [findAuthoredField]\n * Description - Finds an authored field from yhe list of config fields.\n * @ignore\n * @param   {Array}   configFields List of Authored fields\n * @param   {string}  fieldID      Filter\n * @returns {object}              config with its field value equal to fieldID, which means an authored field\n */\nfunction findAuthoredField(configFields, fieldID) {\n  return configFields.find(configField => {\n    const val = getConfigFieldValue(configField.config);\n    return val === fieldID;\n  });\n}\n\n/**\n * [findAndUpdateAuthoredFieldConfig]\n * Description - Find the authored field, and update its config.\n * @ignore\n * @param   {Array}   configFields List of Authored fields\n * @param   {object}  item        Field item to copy displayAs and category information\n * @param   {string}  classId     classID from the response\n */\nfunction findAndUpdateAuthoredFieldConfig(configFields, item, classId) {\n  const authoredField = findAuthoredField(configFields, item.fieldID);\n  if (authoredField?.config) {\n    if (item.displayAs) {\n      authoredField.config.displayAs = item.displayAs;\n    }\n    authoredField.config.classID = item.classID ?? classId;\n\n    if (authoredField.type === USER_REFERENCE) {\n      authoredField.config.associationID = item.associationID || item.fieldID;\n    }\n    authoredField.config.category = item.category;\n    // FieldType identifies whether the field is configured as pickList\n    authoredField.config.fieldType = item.fieldType;\n    // type defined on the property rule,\n    // used for the picklist field to assign the appropriate type\n    authoredField.config.propertyType = item.dataType || item.type;\n  }\n}\n\n/**\n * [isAnExtraField]\n * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.\n * @ignore\n * @param   {Array}   configFields      List of Authored fields\n * @param   {Set}     configFieldSet    Set if Authored filed values\n * @param   {Set}     reportColumnsSet Set of columns from the report\n * @param   {object}  item             Config field item\n * @param   {string}  classId          Class ID from the response\n * @param   {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {boolean}                  true If the field is an extra field else false.\n */\nfunction isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {\n  // Is the field already present in authoring metadata?\n  // Mutates config fields to copy displayAs and category information\n  if (configFieldSet.has(item.fieldID)) {\n    findAndUpdateAuthoredFieldConfig(configFields, item, classId);\n    return false;\n  }\n\n  // If field is not authored and not part of report columns then discard it\n  return showDynamicFields || !!reportColumnsSet.has(item.fieldID);\n}\n\n/**\n * [prepareExtraFields]\n * Description - Returns a list of extra fields with their meta updated.\n * @ignore\n * @param   {Array}   metaFields       List of fields\n * @param   {Array}   configFields      List of Authored fields\n * @param   {Set}     configFieldSet    Set if Authored filed values\n * @param   {Set}     reportColumnsSet Set of columns from the report\n * @param   {string}  classID          Class ID from the response\n * @param   {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {Array}                    List of extra fields with their meta updated.\n */\nfunction prepareExtraFields(metaFields, configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields) {\n  // Filter all the extra fields\n  const extraFileds = metaFields.filter(item => {\n    return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);\n  });\n  return generateViewMetaData(extraFileds, classID, false);\n  // Update the meta object of each of the extra fields.\n}\n\nconst AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n\nfunction populateRenderingOptions(name, config, field) {\n  const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;\n  if (shouldDisplayAsSemanticLink) {\n    config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);\n    if (field.config.value.startsWith('@CA')) {\n      config.customObject.isAssociation = true;\n    }\n    config.cellRenderer = formatConstants.WorkLink;\n  } else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {\n    config.cellRenderer = formatConstants.WorkStatus;\n  } else if (name === 'pxUrgencyWork') {\n    config.cellRenderer = formatConstants.Integer;\n  }\n}\nfunction isFLProperty(label) {\n  return label?.startsWith('@FL');\n}\n\nfunction getFieldLabel(fieldConfig) {\n  const { label, classID, caption } = fieldConfig;\n  let fieldLabel = (label ?? caption)?.substring(4);\n  const labelSplit = fieldLabel?.split('.');\n  const propertyName = labelSplit?.pop();\n  const fieldMetaData: any = PCore.getMetadataUtils().getPropertyMetadata(propertyName, classID) ?? {};\n  fieldLabel = fieldMetaData.label ?? fieldMetaData.caption ?? propertyName;\n\n  const definedOnClassID = fieldMetaData.definedOnClassID;\n  const localeValue = PCore.getLocaleUtils().getLocaleValue(\n    fieldLabel,\n    `${definedOnClassID ?? fieldMetaData.classID ?? classID}.${propertyName}`,\n    PCore.getLocaleUtils().FIELD_LABELS_BUNDLE_KEY,\n    null\n  );\n  return localeValue || fieldLabel;\n}\nexport function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {\n  return fields.map((field, originalColIndex) => {\n    let name = field.config.value;\n\n    if (name.startsWith('@')) {\n      name = name.substring(name.indexOf(' ') + 1);\n      if (name[0] === '.') name = name.substring(1);\n    }\n    name = getMappedProperty?.(name) ?? name;\n\n    let label = field.config.label || field.config.caption;\n    const { show = true, displayAs } = field.config;\n    if (isFLProperty(label)) {\n      label = getFieldLabel(field.config);\n    } else if (label.startsWith('@')) {\n      label = label.substring(3);\n    }\n\n    const config = {\n      name,\n      label,\n      show,\n      classID: field.config.classID,\n      id: field.id || name || originalColIndex,\n      displayAs,\n      associationID: field.config.associationID,\n      ...(field.config.classID && { category: field.config.category }),\n      customObject: {},\n      fieldType: field.config.fieldType,\n      meta: {\n        ...field\n      }\n    };\n\n    populateRenderingOptions(name, config, field);\n\n    return config;\n  });\n}\n\nexport const getItemKey = fields => {\n  let itemKey;\n  if (fields.findIndex(field => field.id === 'pyGUID') > -1) {\n    itemKey = 'pyGUID';\n  } else {\n    itemKey = 'pzInsKey';\n  }\n  return itemKey;\n};\n\nexport function preparePatchQueryFields(fields, isDataObject = false, classID = '') {\n  const queryFields: any[] = [];\n  fields.forEach(field => {\n    const patchFields: any[] = [];\n    if (field.cellRenderer === 'WorkLink') {\n      if (field.customObject && field.customObject.isAssignmentLink) {\n        const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';\n        patchFields.push(`${associationName}pzInsKey`);\n        patchFields.push(`${associationName}pxRefObjectClass`);\n      } else if (field.customObject && field.customObject.isAssociation) {\n        const associationCategory = field.name.split(':')[0];\n        patchFields.push(`${associationCategory}:pyID`);\n        patchFields.push(`${associationCategory}:pzInsKey`);\n        patchFields.push(`${associationCategory}:pxObjClass`);\n      } else if (isDataObject) {\n        const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n        const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n        dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName)));\n      } else {\n        patchFields.push('pyID');\n        patchFields.push('pzInsKey');\n        patchFields.push('pxObjClass');\n      }\n    }\n    patchFields.forEach(k => {\n      if (!queryFields.find(q => q === k)) {\n        queryFields.push(k);\n      }\n    });\n  });\n\n  return queryFields;\n}\n\n/**\n * Update the renderer type for the properties of type Page.\n */\nexport function updatePageFieldsConfig(configFields, parentClassID) {\n  return configFields.forEach(item => {\n    const {\n      type,\n      config: { value }\n    } = item;\n    const propertyName = PCore.getAnnotationUtils().getPropertyName(value);\n    if (isEmbeddedField(value) && !isPageListInPath(propertyName, parentClassID)) {\n      item.config.componentType = type;\n      item.type = 'PagePropertyRenderer';\n    }\n  });\n}\n\nexport const readContextResponse = async (context, params) => {\n  const { pConn$, apiContext, children, showDynamicFields, referenceList, isDataObject } = params;\n  // let { listContext } = params;\n  const { promisesResponseArray, apiContext: otherContext } = context;\n\n  const listOfComponents: any[] = [];\n  const {\n    data: { fields: metaFields, classID, isQueryable }\n  } = promisesResponseArray[0];\n  let {\n    data: { primaryFields }\n  } = promisesResponseArray[0];\n  // When list is configured with Include all class fields configuration, provide support for Primary fields column\n  if (showDynamicFields) {\n    const sourceMetadata = PCore.getMetadataUtils().getDataPageMetadata(referenceList);\n    if (sourceMetadata?.primaryFields) {\n      primaryFields = sourceMetadata.primaryFields;\n    }\n    // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!\n    updateMetaEmbeddedFieldID(metaFields);\n  }\n  updateFieldType(metaFields);\n\n  if (isDataObject) {\n    const compositeKeys: any[] = [];\n    const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n    const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n    dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName)));\n    if (compositeKeys.length && otherContext) {\n      otherContext.setCompositeKeys(compositeKeys);\n    }\n    if (otherContext) {\n      otherContext.fetchRowActionDetails = null;\n    }\n  }\n\n  const presetArray = [];\n  const rawMetadata = pConn$.getRawMetadata().config;\n  const rawPresets = rawMetadata.presets;\n  const isMetaWithPresets = rawPresets && rawPresets.length !== 0;\n  const childrenIterator = isMetaWithPresets ? rawPresets : children;\n  const resolvedPresets = pConn$.getConfigProps().presets;\n  let fields;\n  let tableConfig;\n  childrenIterator?.forEach((presetMeta, index) => {\n    const { configFields } = getTableConfigFromPresetMeta(\n      { ...presetMeta, label: resolvedPresets[index].label },\n      isMetaWithPresets,\n      pConn$,\n      classID,\n      primaryFields,\n      metaFields\n    );\n    const pushToComponentsList = fieldType => {\n      listOfComponents.push(fieldType);\n    };\n    // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets\n    const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();\n\n    const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);\n\n    // FIXME #EmbeddedPropertyPatch\n    // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists\n    // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)\n    // get configured embedded properties metadata and get new mergedMetaFields\n    const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);\n    const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);\n\n    const extraFields = prepareExtraFields(\n      mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset\n      configFields,\n      configFieldSet,\n      reportColumnsSet,\n      classID,\n      showDynamicFields\n    );\n\n    if (isQueryable) {\n      updatePageFieldsConfig(configFields, classID);\n      preparePropertyMaps([...configFields, ...extraFields], classID, context);\n    }\n\n    const { getMappedProperty } = context;\n\n    fields = initializeColumns([...configFields, ...extraFields], getMappedProperty);\n    const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);\n    const itemKey = getItemKey(fields);\n    tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable };\n  });\n  const meta = tableConfig;\n  params.listContext = { meta, presets: presetArray, apiContext: { ...apiContext } };\n  return params.listContext;\n};\n","import { getContext, readContextResponse } from './utils';\n\nexport function init(props) {\n  const {\n    referenceList,\n    pConn$,\n    personalizationId,\n    parameters,\n    compositeKeys,\n    isSearchable,\n    allowBulkActions,\n    ref,\n    showDynamicFields,\n    isDataObject,\n    cosmosTableRef\n  } = props;\n  let { editing, selectionMode } = props;\n\n  const runtimeParams = PCore.getRuntimeParamsAPI().getRuntimeParams();\n\n  let selectionCountThreshold;\n\n  // promise to fetch metadata\n  const metaDataPromise = PCore.getAnalyticsUtils().getDataViewMetadata(referenceList, showDynamicFields, null);\n\n  const promisesArray: any = [metaDataPromise];\n\n  // promise to fetch report configured columns\n  const reportColumnsPromise = PCore.getAnalyticsUtils()\n    .getFieldsForDataSource(referenceList, false, pConn$.getContextName())\n    .catch(() => {\n      return Promise.resolve({\n        data: { data: [] }\n      });\n    });\n  promisesArray.push(reportColumnsPromise);\n\n  const fetchEditDetails = async metadata => {\n    const {\n      data: { isQueryable }\n    } = metadata;\n    if (!isDataObject) {\n      if (!isQueryable) {\n        editing = false; /* Force editing to false if DP is non queryable */\n      }\n\n      const { MULTI_ON_HOVER, MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n      if (allowBulkActions && isQueryable) {\n        /** enable bulk actions only if DP is queryable */\n        selectionMode = MULTI_ON_HOVER;\n      }\n      if ([MULTI_ON_HOVER, MULTI].includes(selectionMode)) {\n        selectionCountThreshold = 250; // Results count should not be greater than threshold to display SelectAll checkbox.\n      }\n    }\n    return Promise.resolve();\n  };\n\n  const editPromise = metaDataPromise.then(metadata => fetchEditDetails(metadata));\n  promisesArray.push(editPromise);\n  return getContext({\n    tableSource: referenceList,\n    ListId: personalizationId,\n    runtimeParams: parameters ?? runtimeParams,\n    promisesArray,\n    pConn$,\n    compositeKeys,\n    isSearchable,\n    isCacheable: true\n  }).then(async context => {\n    return readContextResponse(context, {\n      ...props,\n      editing,\n      selectionCountThreshold,\n      ref,\n      selectionMode,\n      cosmosTableRef\n    });\n  });\n}\n","import { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { DragDropModule, CdkDragDrop, moveItemInArray, CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getCurrencyOptions } from '../../../_helpers/currency-utils';\nimport { getLocale, getSeconds } from '../../../_helpers/common';\nimport { formatters } from '../../../_helpers/formatters/format-utils';\n\nimport { init } from './listViewHelpers';\n\nconst SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };\n\ninterface ListViewProps {\n  inheritedProps: any;\n  title: string | undefined;\n  // If any, enter additional props that only exist on this component\n  globalSearch?: boolean;\n  referenceList?: any;\n  rowClickAction?: any;\n  selectionMode?: string;\n  referenceType?: string;\n  compositeKeys?: any;\n  showDynamicFields?: boolean;\n  presets?: any;\n  reorderFields: string | boolean;\n  grouping: string | boolean;\n  value: any;\n  readonlyContextList: any;\n  label?: string;\n  displayAs?: string;\n  showRecords: boolean;\n  viewName?: string;\n  localeReference?: any;\n}\n\nexport class Group {\n  level = 0;\n  parent: Group;\n  expanded = true;\n  totalCounts = 0;\n  get visible(): boolean {\n    return !this.parent || (this.parent.visible && this.parent.expanded);\n  }\n}\n\n@Component({\n  selector: 'app-list-view',\n  templateUrl: './list-view.component.html',\n  styleUrls: ['./list-view.component.scss'],\n  imports: [\n    CommonModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatTableModule,\n    MatSortModule,\n    DragDropModule,\n    CdkDropList,\n    CdkDrag,\n    MatButtonModule,\n    MatMenuModule,\n    MatIconModule,\n    MatRadioModule,\n    MatCheckboxModule,\n    MatPaginatorModule,\n    MatSelectModule,\n    MatOptionModule,\n    MatDatepickerModule,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class ListViewComponent implements OnInit, OnDestroy {\n  @ViewChild(MatPaginator) paginator: MatPaginator;\n  @ViewChild(MatSort) sort: MatSort;\n\n  @Input() pConn$: typeof PConnect;\n  @Input() bInForm$ = true;\n  @Input() payload;\n\n  repeatList$: MatTableDataSource<any>;\n  selection = new SelectionModel<any>(true, []);\n  fields$: any[];\n\n  displayedColumns$ = Array<any>();\n  groupByColumns$: string[] = [];\n\n  configProps$: ListViewProps;\n\n  updatedRefList: any;\n\n  repeatListData: any[] = [];\n\n  searchIcon$: string;\n\n  bShowSearch$ = false;\n  bColumnReorder$ = false;\n  bGrouping$ = false;\n\n  perfFilter: string;\n  searchFilter: string;\n\n  menuSvgIcon$: string;\n  arrowSvgIcon$ = '';\n  arrowDownSvgIcon$: string;\n  arrowUpSvgIcon$: string;\n\n  filterSvgIcon$: string;\n  filterOnSvgIcon$: string;\n  groupBySvgIcon$: string;\n\n  compareType: string;\n  compareRef: string;\n  arrowDirection = 'down';\n\n  filterByColumns: any[] = [];\n  bShowFilterPopover$ = false;\n  bContains$ = true;\n  bDateTime$ = false;\n\n  filterContainsLabel$ = '';\n  filterContainsType$ = 'contains';\n  filterContainsValue$: any;\n\n  bIsDate$ = false;\n  bIsDateTime$ = false;\n  bIsTime$ = false;\n\n  currentFilterRefData: any;\n  currentFilterImageEl: any;\n\n  arFilterMainButtons$: any[] = [];\n  arFilterSecondaryButtons$: any[] = [];\n  selectionMode?: string;\n  singleSelectionMode: boolean;\n  multiSelectionMode: boolean;\n  rowID: any;\n  response: any;\n  compositeKeys: any;\n  showDynamicFields: any;\n  filters: any = {};\n  selectParam: any[] = [];\n  filterPayload: any;\n  ref: any = {};\n  cosmosTableRef: any;\n  listContext: any = {};\n  query: any = null;\n  paging: any;\n  fieldDefs: any;\n  checkBoxValue: string;\n  label?: string = '';\n  uniqueId = crypto.randomUUID();\n  displayAs: any;\n  showRecords: any;\n  identifier: string;\n  promotedFiltersId: string;\n  constructor(\n    private psService: ProgressSpinnerService,\n    public utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    this.configProps$ = this.pConn$.getConfigProps() as ListViewProps;\n    /** By default, pyGUID is used for Data classes and pyID is for Work classes as row-id/key */\n    const defRowID = this.configProps$?.referenceType === 'Case' ? 'pyID' : 'pyGUID';\n    /** If compositeKeys is defined, use dynamic value, else fallback to pyID or pyGUID. */\n    this.compositeKeys = this.configProps$?.compositeKeys;\n    this.rowID = this.payload?.compositeKeys?.length === 1 ? this.payload?.compositeKeys[0] : defRowID;\n    this.bShowSearch$ = this.utils.getBooleanValue(this.configProps$?.globalSearch ? this.configProps$.globalSearch : this.payload?.globalSearch);\n    this.bColumnReorder$ = this.utils.getBooleanValue(this.configProps$.reorderFields);\n    this.bGrouping$ = this.utils.getBooleanValue(this.configProps$.grouping);\n    this.showDynamicFields = this.configProps$?.showDynamicFields;\n    this.displayAs = this.configProps$.displayAs;\n    this.showRecords = this.configProps$.showRecords;\n    this.menuSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n    this.arrowDownSvgIcon$ = this.utils.getImageSrc('arrow-down', this.utils.getSDKStaticContentUrl());\n    this.arrowUpSvgIcon$ = this.utils.getImageSrc('arrow-up', this.utils.getSDKStaticContentUrl());\n\n    this.filterSvgIcon$ = this.utils.getImageSrc('filter', this.utils.getSDKStaticContentUrl());\n    this.filterOnSvgIcon$ = this.utils.getImageSrc('filter-on', this.utils.getSDKStaticContentUrl());\n    this.groupBySvgIcon$ = this.utils.getImageSrc('row', this.utils.getSDKStaticContentUrl());\n\n    this.selectionMode = this.configProps$.selectionMode;\n\n    this.checkBoxValue = this.configProps$.value;\n\n    this.arFilterMainButtons$.push({ actionID: 'submit', jsAction: 'submit', name: 'Submit' });\n    this.arFilterSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: 'Cancel' });\n\n    let title = this.configProps$?.title || this.configProps$?.label || 'List';\n    const inheritedProps = this.configProps$?.inheritedProps;\n    if (title === 'List' && inheritedProps) {\n      for (const inheritedProp of inheritedProps) {\n        if (inheritedProp?.prop === 'label') {\n          title = inheritedProp?.value;\n          break;\n        }\n      }\n    }\n    this.label = title;\n\n    this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());\n    this.promotedFiltersId = `promoted-filters-queryable-${this.uniqueId}`;\n    setTimeout(() => {\n      PCore.getPubSubUtils().subscribe(\n        PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,\n        data => {\n          this.processFilterChange(data);\n        },\n        `dashboard-component-${'id'}`,\n        false,\n        this.pConn$.getContextName()\n      );\n      PCore.getPubSubUtils().subscribe(\n        PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL,\n        () => {\n          this.filters = {};\n          this.processFilterClear();\n        },\n        `dashboard-component-${'id'}`,\n        false,\n        this.pConn$.getContextName()\n      );\n      PCore.getPubSubUtils().subscribe(\n        PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS,\n        data => {\n          this.showRecords = data.showRecords;\n          const filterData = this.prepareFilters(data);\n          this.processFilterChange(filterData);\n        },\n        this.promotedFiltersId\n      );\n    }, 0);\n    if (this.configProps$) {\n      if (!this.payload) {\n        this.payload = { referenceList: this.configProps$.referenceList };\n      }\n      init({\n        pConn$: this.pConn$,\n        bInForm$: this.bInForm$,\n        ...this.payload,\n        listContext: this.listContext,\n        ref: this.ref,\n        showDynamicFields: this.showDynamicFields,\n        cosmosTableRef: this.cosmosTableRef,\n        selectionMode: this.selectionMode\n      }).then(response => {\n        this.listContext = response;\n        this.getListData();\n      });\n    }\n    this.clearSelectionsAndUpdateTable(this.pConn$, this.uniqueId, this.configProps$?.viewName);\n  }\n\n  clearSelectionsAndUpdateTable(getPConnect: any, uniqueId: string, viewName): void {\n    const clearSelectionsAndRefreshList = ({ viewName: name, clearSelections }: any) => {\n      if (name === viewName) {\n        const { selectionMode } = getPConnect.getRawConfigProps();\n        if (!selectionMode) {\n          return;\n        }\n        if (clearSelections) {\n          if (selectionMode === 'single') {\n            getPConnect.getListActions().setSelectedRows({});\n          } else {\n            getPConnect.getListActions().clearSelectedRows();\n          }\n        }\n      }\n    };\n\n    this.identifier = `clear-and-update-advanced-search-selections-${uniqueId}`;\n\n    PCore.getPubSubUtils().subscribe('update-advanced-search-selections', clearSelectionsAndRefreshList, this.identifier);\n  }\n\n  getFieldFromFilter(filter, dateRange = false) {\n    let fieldValue;\n    if (dateRange) {\n      fieldValue = filter?.AND[0]?.condition.lhs.field;\n    } else {\n      fieldValue = filter?.condition.lhs.field;\n    }\n    return fieldValue;\n  }\n\n  // Will be triggered when EVENT_DASHBOARD_FILTER_CHANGE fires\n  processFilterChange(data) {\n    this.updateFiltersFromData(data);\n\n    const selectParam = this.displayedColumns$?.map(col => ({ field: col })) || [];\n\n    if (this.displayAs !== 'advancedSearch') {\n      const { filterExpression } = data;\n      const isDateRange = !!filterExpression?.AND;\n      const field = this.getFieldFromFilter(filterExpression, isDateRange);\n\n      if (filterExpression !== null && !this.displayedColumns$?.includes(field)) {\n        return;\n      }\n    }\n\n    const dashboardFilterPayload = this.buildFilterPayload(selectParam);\n\n    this.filterPayload = dashboardFilterPayload;\n    this.getListData();\n  }\n\n  filterBasedOnDateRange(dashboardFilterPayload, filter, relationalOp, selectParam, index) {\n    const dateRelationalOp = filter?.AND ? 'AND' : 'OR';\n    dashboardFilterPayload.query.filter.filterConditions = {\n      ...dashboardFilterPayload.query.filter.filterConditions,\n      [`T${index++}`]: { ...filter[relationalOp][0].condition },\n      [`T${index++}`]: { ...filter[relationalOp][1].condition }\n    };\n    if (dashboardFilterPayload.query.filter.logic) {\n      dashboardFilterPayload.query.filter.logic = `${dashboardFilterPayload.query.filter.logic} ${relationalOp} (T${index - 2} ${dateRelationalOp} T${\n        index - 1\n      })`;\n    } else {\n      dashboardFilterPayload.query.filter.logic = `(T${index - 2} ${relationalOp} T${index - 1})`;\n    }\n\n    dashboardFilterPayload.query.select = selectParam;\n\n    return dashboardFilterPayload;\n  }\n\n  processFilterClear() {\n    this.filterPayload = undefined;\n    this.getListData();\n  }\n\n  getFieldsMetadata(refList) {\n    // @ts-ignore - 3rd parameter \"associationFilter\" should be optional for getDataViewMetadata method\n    return PCore.getAnalyticsUtils().getDataViewMetadata(refList, this.showDynamicFields);\n  }\n\n  getValue(col) {\n    return this.fieldDefs.find(f => f.name === col)?.label;\n  }\n\n  getListData() {\n    this.preparePayload();\n    const componentConfig = this.pConn$.getComponentConfig();\n    const columnFields = componentConfig.presets[0].children[0].children;\n    const columns = this.getHeaderCells(columnFields, this.fieldDefs);\n    this.fields$ = this.configProps$.presets[0].children[0].children;\n    this.displayedColumns$ = columns.map(col => {\n      return col.id;\n    });\n    if (this.displayAs === 'advancedSearch' && !this.showRecords) {\n      Promise.resolve({ data: null });\n    } else if (this.configProps$) {\n      const refList = this.configProps$.referenceList;\n      const fieldsMetaDataPromise = this.getFieldsMetadata(refList);\n      // returns a promise\n      const payload = this.payload || this.filterPayload || {};\n      const dataViewParameters = this.payload.parameters;\n\n      const workListDataPromise = !this.bInForm$\n        ? PCore.getDataApiUtils().getData(refList, payload)\n        : PCore.getDataPageUtils().getDataAsync(\n            refList,\n            this.pConn$.getContextName(),\n            payload.dataViewParameters ? payload.dataViewParameters : dataViewParameters,\n            this.paging,\n            this.query\n          );\n\n      this.bShowFilterPopover$ = false;\n\n      this.psService.sendMessage(true);\n\n      Promise.all([fieldsMetaDataPromise, workListDataPromise])\n        .then((results: any) => {\n          const fieldsMetaData = results[0];\n          const workListData = results[1];\n\n          const tableDataResults = !this.bInForm$ ? workListData.data.data : workListData.data;\n\n          this.fields$ = this.updateFields(this.fields$, fieldsMetaData.data.fields, columns);\n          this.response = tableDataResults;\n          this.updatedRefList = this.updateData(tableDataResults, this.fields$);\n          if (this.selectionMode === SELECTION_MODE.SINGLE && this.updatedRefList?.length > 0) {\n            this.displayedColumns$?.unshift('select');\n            this.singleSelectionMode = true;\n          } else if (this.selectionMode === SELECTION_MODE.MULTI && this.updatedRefList?.length > 0) {\n            this.displayedColumns$?.unshift('select');\n            this.multiSelectionMode = true;\n          }\n\n          this.repeatList$ = new MatTableDataSource(this.updatedRefList);\n\n          if (this.configProps$?.readonlyContextList?.length > 0) {\n            const readonlyIds = new Set(this.configProps$.readonlyContextList.map(element => element[this.rowID]));\n            const rowsToSelect = this.repeatList$.data.filter(row => readonlyIds.has(row[this.rowID]));\n            if (rowsToSelect.length > 0) {\n              this.selection.select(...rowsToSelect);\n            }\n          }\n          this.repeatList$.filterPredicate = this.customFilterPredicate.bind(this);\n\n          // keeping an original copy to get back after possible sorts, filters and groupBy\n          this.repeatListData = this.repeatList$.data.slice();\n\n          this.repeatList$.paginator = this.paginator;\n          this.repeatList$.sort = this.sort;\n          this.psService.sendMessage(false);\n        })\n        .catch(() => {\n          console.error(\"Couldn't fetch either the fieldsMetaData or workListData\");\n          this.psService.sendMessage(false);\n        });\n    }\n  }\n\n  prepareFilters(data) {\n    return Object.entries(data.payload).reduce((acc, [field, value]) => {\n      if (value) {\n        let comparator = 'EQ';\n        const filterRecord = this.listContext.meta.fieldDefs.filter(item => item.id === field);\n        if (filterRecord?.[0]?.meta.type === 'TextInput') {\n          comparator = 'CONTAINS';\n        }\n        acc[field] = {\n          filterExpression: {\n            condition: {\n              lhs: {\n                field\n              },\n              comparator,\n              rhs: {\n                value\n              }\n            }\n          },\n          filterId: field\n        };\n      }\n      return acc;\n    }, {});\n  }\n\n  preparePayload() {\n    const { fieldDefs, itemKey, patchQueryFields } = this.listContext.meta;\n    this.fieldDefs = fieldDefs;\n    let listFields = fieldDefs ? this.buildSelect(fieldDefs, undefined, patchQueryFields, this.payload?.compositeKeys) : [];\n    listFields = this.addItemKeyInSelect(fieldDefs, itemKey, listFields, this.payload?.compositeKeys);\n    if (this.payload.query) {\n      this.query = this.payload.query;\n    } else if (listFields?.length && this.listContext.meta.isQueryable) {\n      if (this.filterPayload) {\n        this.query = {\n          select: listFields,\n          filter: this.filterPayload?.query?.filter\n        };\n      } else {\n        this.query = { select: listFields };\n      }\n    } else if (this.filterPayload) {\n      this.query = this.filterPayload?.query;\n    }\n  }\n  // ngOnChanges(changes) {\n  //   if (changes && changes.payload) {\n  //     const currentPayloadVal = changes.payload?.currentValue;\n  //     const previousPayloadVal = changes.payload?.previousValue;\n  //     if (currentPayloadVal !== previousPayloadVal) {\n  //       this.getListData();\n  //     }\n  //   }\n  // }\n\n  ngOnDestroy() {\n    PCore.getPubSubUtils().unsubscribe(\n      PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CHANGE,\n      `dashboard-component-${'id'}`,\n      this.pConn$.getContextName()\n    );\n    PCore.getPubSubUtils().unsubscribe(\n      PCore.getConstants().PUB_SUB_EVENTS.EVENT_DASHBOARD_FILTER_CLEAR_ALL,\n      `dashboard-component-${'id'}`,\n      this.pConn$.getContextName()\n    );\n    PCore.getPubSubUtils().unsubscribe('update-advanced-search-selections', this.identifier);\n    PCore.getPubSubUtils().unsubscribe(PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS, this.promotedFiltersId);\n  }\n\n  // ngAfterViewInit() {\n  //   // paginator has to exist for this to work,\n  //   // so called after init (paginator drawn)\n  //   // Calls are now in workListData promise\n  //   // this.repeatList$.paginator = this.paginator;\n  //   // this.repeatList$.sort = this.sort;\n  // }\n\n  drop(event: CdkDragDrop<string[]>) {\n    moveItemInArray(this.displayedColumns$, event.previousIndex, event.currentIndex);\n  }\n\n  updateFields(arFields: any[], arColumns, fields): any[] {\n    const arReturn = arFields;\n    arReturn.forEach((field, i) => {\n      field.config = { ...field.config, ...fields[i], name: fields[i].id };\n      field.config.label = PCore.getLocaleUtils().getLocaleValue(field.config.label, this.configProps$.localeReference);\n    });\n    return arReturn;\n  }\n\n  applySearch(event: Event) {\n    const filterValue = (event.target as HTMLInputElement).value;\n    this.searchFilter = filterValue.trim().toLowerCase();\n\n    if (this.groupByColumns$.length > 0) {\n      this.repeatList$.data = this.repeatListData.slice();\n      this.repeatList$.filter = this.searchFilter;\n      const repeatData = this.repeatList$.sortData(this.repeatList$.filteredData, this.repeatList$.sort as MatSort);\n      this.repeatList$.data = this.addGroups(repeatData, this.groupByColumns$);\n\n      this.perfFilter = performance.now().toString();\n      this.repeatList$.filter = this.perfFilter;\n    } else {\n      this.repeatList$.filter = this.searchFilter;\n    }\n\n    if (this.repeatList$.paginator) {\n      this.repeatList$.paginator.firstPage();\n    }\n  }\n\n  fieldOnChange(row) {\n    const value = row[this.rowID];\n    const reqObj = {};\n    if (this.compositeKeys?.length > 1) {\n      const index = this.response.findIndex(element => element[this.rowID] === value);\n      const selectedRow = this.response[index];\n      this.compositeKeys.forEach(element => {\n        reqObj[element] = selectedRow[element];\n      });\n    } else {\n      reqObj[this.rowID] = value;\n    }\n    this.checkBoxValue = value;\n    this.pConn$?.getListActions?.()?.setSelectedRows([reqObj]);\n  }\n\n  onCheckboxClick(row) {\n    this.selection.toggle(row);\n    const requiredValue = this.getSelectedValue(row);\n    this.pConn$?.getListActions()?.setSelectedRows([requiredValue]);\n  }\n\n  isAllSelected() {\n    const numSelected = this.selection.selected.length;\n    const numRows = this.repeatList$.data.length;\n    return numSelected === numRows;\n  }\n\n  toggleAllRows() {\n    if (this.isAllSelected()) {\n      this.selection.clear();\n      this.pConn$?.getListActions()?.clearSelectedRows();\n      return;\n    }\n    if (this.selection.hasValue() && !this.isAllSelected()) {\n      this.pConn$?.getListActions()?.clearSelectedRows();\n    }\n    this.selection.select(...this.repeatList$.data);\n    const requiredValues = this.repeatList$.data.map(row => this.getSelectedValue(row));\n    this.pConn$?.getListActions()?.setSelectedRows(requiredValues);\n  }\n\n  _getIconStyle(level): string {\n    let sReturn = '';\n    let nLevel = parseInt(level, 10);\n    nLevel--;\n    nLevel *= 15;\n    sReturn = `padding-left: ${nLevel}px; vertical-align: middle`;\n\n    return sReturn;\n  }\n\n  _getGroupName(fieldName) {\n    for (let fieldIndex = 0; fieldIndex < this.fields$.length; fieldIndex++) {\n      const field = this.fields$[fieldIndex];\n      if (field.config.name == fieldName) {\n        return field.config.label;\n      }\n    }\n    return '';\n  }\n\n  _showButton(name, row) {\n    let bReturn = false;\n    const { pxRefObjectClass, pzInsKey, pxRefObjectKey } = row;\n    switch (name) {\n      case 'pxTaskLabel':\n        if (pxRefObjectClass != '' && pzInsKey != '') {\n          bReturn = true;\n        }\n        break;\n      case 'pxRefObjectInsName':\n        if (pxRefObjectClass != '' && pxRefObjectKey != '') {\n          bReturn = true;\n        }\n        break;\n      default:\n        break;\n    }\n\n    return bReturn;\n  }\n\n  _listViewClick(column, row) {\n    const name = column.id;\n    if (column.displayAsLink) {\n      const { pxObjClass } = row;\n      let { pzInsKey } = row;\n      if (column.isAssociation) {\n        const associationCategory = name.split(':')[0];\n        pzInsKey = row[`${associationCategory}:pzInsKey`];\n      }\n      if (column.isAssignmentLink) {\n        this.pConn$.getActionsApi().openAssignment(pzInsKey, pxObjClass, {\n          containerName: 'primary',\n          channelName: ''\n        } as any);\n      } else {\n        this.pConn$.getActionsApi().openWorkByHandle(pzInsKey, pxObjClass);\n      }\n    } else {\n      switch (name) {\n        case 'pxTaskLabel':\n          this.openAssignment(row);\n          break;\n        case 'pxRefObjectInsName':\n          this.openWork(row);\n          break;\n        default:\n          break;\n      }\n    }\n  }\n\n  _headerSortClick(event, columnData) {\n    // images 0 - filter, 1 - arrow, 2 - more\n\n    /** Commenting this code for now as it is giving errors not sure if it ever worked */\n    // let arrowImage = event.srcElement.getElementsByTagName('img')[1];\n    // let arrowAttr = arrowImage.getAttribute('arrow');\n\n    // this.clearOutArrows(event, columnData);\n\n    // switch (arrowAttr) {\n    //   case 'up':\n    //     arrowImage.src = this.arrowDownSvgIcon$;\n    //     arrowImage.setAttribute('arrow', 'down');\n    //     break;\n    //   case 'down':\n    //     arrowImage.src = '';\n    //     arrowImage.setAttribute('arrow', 'none');\n    //     break;\n    //   default:\n    //     arrowImage.src = this.arrowUpSvgIcon$;\n    //     arrowImage.setAttribute('arrow', 'up');\n    //     break;\n    // }\n\n    this.compareType = columnData.type;\n    this.compareRef = columnData.config.name;\n    // this.arrowDirection = arrowImage.getAttribute('arrow');\n    this.arrowDirection = this.arrowDirection === 'up' ? 'down' : 'up';\n\n    this.filterSortGroupBy();\n  }\n\n  // Commenting below method, since the code which is using it, is already commented\n  // clearOutArrows(event, columnData) {\n  //   const arImages = event.srcElement.parentElement.getElementsByTagName('img');\n\n  //   for (const theImage of arImages) {\n  //     // let theImage = arImages[i]\n  //     const arrow = theImage.getAttribute('arrow');\n  //     if (arrow) {\n  //       const arrowId = theImage.getAttribute('arrowid');\n  //       if (arrow != 'none' && arrowId != columnData.config.name) {\n  //         theImage.setAttribute('arrow', 'none');\n  //         theImage.src = '';\n  //       }\n  //     }\n  //   }\n  // }\n\n  sortCompare(a, b): number {\n    let aValue = a[this.compareRef];\n    let bValue = b[this.compareRef];\n\n    if (this.compareType == 'Date' || this.compareType == 'DateTime') {\n      aValue = getSeconds(aValue);\n      bValue = getSeconds(bValue);\n    }\n\n    if (this.compareRef == 'pxRefObjectInsName') {\n      const result = this.compareByColumnPxRefObjectInsName(aValue, bValue);\n      if (result !== undefined) {\n        return result;\n      }\n    }\n\n    switch (this.arrowDirection) {\n      case 'up':\n        if (!aValue || aValue < bValue) {\n          return -1;\n        }\n        if (!bValue || aValue > bValue) {\n          return 1;\n        }\n        break;\n      case 'down':\n        if (!bValue || aValue > bValue) {\n          return -1;\n        }\n        if (!aValue || aValue < bValue) {\n          return 1;\n        }\n        break;\n      default:\n        break;\n    }\n\n    return 0;\n  }\n\n  compareByColumnPxRefObjectInsName(aValue, bValue) {\n    const prefixX = aValue.split('-');\n    const prefixY = bValue.split('-');\n    switch (this.arrowDirection) {\n      case 'up':\n        if (prefixX[0] !== prefixY[0]) {\n          if (prefixX[0] < prefixY[0]) return -1;\n          if (prefixX[0] > prefixY[0]) return 1;\n          return 0;\n        }\n        return prefixX[1] - prefixY[1];\n      case 'down':\n        if (prefixX[0] !== prefixY[0]) {\n          if (prefixX[0] > prefixY[0]) return -1;\n          if (prefixX[0] < prefixY[0]) return 1;\n          return 0;\n        }\n        return prefixY[1] - prefixX[1];\n      default:\n        break;\n    }\n\n    return undefined;\n  }\n\n  updateFilterDisplay(type) {\n    switch (type) {\n      case 'Date':\n        this.filterContainsType$ = 'notequal';\n        this.bContains$ = false;\n        this.bDateTime$ = true;\n        this.bIsDate$ = true;\n        this.bIsDateTime$ = false;\n        this.bIsTime$ = false;\n        break;\n      case 'DateTime':\n        this.filterContainsType$ = 'notequal';\n        this.bContains$ = false;\n        this.bDateTime$ = true;\n        this.bIsDate$ = false;\n        this.bIsDateTime$ = true;\n        this.bIsTime$ = false;\n        break;\n      case 'Time':\n        this.filterContainsType$ = 'notequal';\n        this.bContains$ = false;\n        this.bDateTime$ = true;\n        this.bIsDate$ = false;\n        this.bIsDateTime$ = false;\n        this.bIsTime$ = true;\n        break;\n      default:\n        this.filterContainsType$ = 'contains';\n        this.bContains$ = true;\n        this.bDateTime$ = false;\n        this.bIsDate$ = false;\n        this.bIsDateTime$ = false;\n        this.bIsTime$ = false;\n        break;\n    }\n  }\n\n  _filter(event, columnData) {\n    // add clickAway listener\n    window.addEventListener('mouseup', this._clickAway.bind(this));\n\n    this.currentFilterRefData = columnData;\n    this.filterContainsLabel$ = columnData.config.label;\n\n    setTimeout(() => {\n      this.updateFilterDisplay(columnData.type);\n\n      this.updateFilterVarsWithCurrent(columnData);\n\n      this.bShowFilterPopover$ = true;\n    });\n  }\n\n  _clickAway(event: any) {\n    let bInPopUp = false;\n\n    // run through list of elements in path, if menu not in th path, then want to\n    // hide (toggle) the menu\n    const eventPath = event.path;\n    for (let pathIndex = 0; pathIndex < eventPath.length; pathIndex++) {\n      if (\n        eventPath[pathIndex].className == 'psdk-modal-file-top' ||\n        eventPath[pathIndex].tagName == 'BUTTON' ||\n        eventPath[pathIndex].tagName == 'MAT-OPTION' ||\n        eventPath[pathIndex].tagName == 'MAT-INPUT'\n      ) {\n        bInPopUp = true;\n        break;\n      }\n    }\n    if (!bInPopUp) {\n      // this.bShowFilterPopover$ = false;\n\n      window.removeEventListener('mouseup', this._clickAway.bind(this));\n    }\n  }\n\n  _filterContainsType(event) {\n    this.filterContainsType$ = event.value;\n  }\n\n  _filterContainsValue(event) {\n    this.filterContainsValue$ = event.target.value;\n  }\n\n  _filterContainsDateValue(event, value) {\n    this.filterContainsValue$ = value;\n  }\n\n  _filterContainsDateTimeValue(event) {\n    this.filterContainsValue$ = event.target.value;\n  }\n\n  _filterContainsTimeValue(event) {\n    this.filterContainsValue$ = event.target.value;\n  }\n\n  _onFilterActionButtonClick(event: any) {\n    // modal buttons\n    switch (event.action) {\n      case 'cancel':\n        this.currentFilterRefData = [];\n        break;\n      case 'submit':\n        this.updateFilterWithInfo();\n        this.filterSortGroupBy();\n        break;\n      default:\n        break;\n    }\n\n    this.bShowFilterPopover$ = false;\n\n    window.removeEventListener('mouseup', this._clickAway.bind(this));\n  }\n\n  updateFilterWithInfo() {\n    let bFound = false;\n    for (const filterObj of this.filterByColumns) {\n      if (filterObj.ref === this.currentFilterRefData.config.name) {\n        filterObj.type = this.currentFilterRefData.type;\n        filterObj.containsFilter = this.filterContainsType$;\n        filterObj.containsFilterValue = this.filterContainsValue$;\n\n        bFound = true;\n        break;\n      }\n    }\n\n    if (!bFound) {\n      // add in\n      const filterObj: any = {};\n      filterObj.ref = this.currentFilterRefData.config.name;\n      filterObj.type = this.currentFilterRefData.type;\n      filterObj.containsFilter = this.filterContainsType$;\n      filterObj.containsFilterValue = this.filterContainsValue$;\n\n      this.filterByColumns.push(filterObj);\n    }\n\n    // iterate through filters and update filterOn icon\n    for (const filterObj of this.filterByColumns) {\n      const containsFilterValue = filterObj.containsFilterValue;\n      const containsFilter = filterObj.containsFilter;\n      const filterRef = filterObj.ref;\n      const filterIndex = this.displayedColumns$.indexOf(filterRef);\n      const arFilterImg = document.getElementsByName('filterOnIcon');\n      const filterImg: any = arFilterImg[filterIndex];\n      if (containsFilterValue == '' && containsFilter != 'null' && containsFilter != 'notnull') {\n        // clear icon\n        filterImg.src = '';\n      } else {\n        // show icon\n        filterImg.src = this.filterOnSvgIcon$;\n      }\n    }\n  }\n\n  updateFilterVarsWithCurrent(columnData) {\n    // find current ref, if exists, move data to variable to display\n\n    let bFound = false;\n    for (const filterObj of this.filterByColumns) {\n      if (filterObj.ref === this.currentFilterRefData.config.name) {\n        this.filterContainsType$ = filterObj.containsFilter;\n        this.filterContainsValue$ = filterObj.containsFilterValue;\n\n        bFound = true;\n        break;\n      }\n    }\n\n    if (!bFound) {\n      switch (columnData.type) {\n        case 'Date':\n        case 'DateTime':\n        case 'Time':\n          this.filterContainsType$ = 'notequal';\n          break;\n        default:\n          this.filterContainsType$ = 'contains';\n          break;\n      }\n\n      this.filterContainsValue$ = '';\n    }\n  }\n\n  filterData(item: any) {\n    let bKeep = true;\n    for (const filterObj of this.filterByColumns) {\n      if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {\n        let filterValue: any;\n\n        switch (filterObj.type) {\n          case 'Date':\n          case 'DateTime':\n          case 'Time':\n            bKeep = this.filterDataWithDate(item, filterObj, filterValue);\n            break;\n          default:\n            bKeep = this.filterDataWithCommonTypes(item, filterObj, filterValue);\n            break;\n        }\n      }\n\n      // if don't keep stop filtering\n      if (!bKeep) {\n        break;\n      }\n    }\n\n    return bKeep;\n  }\n\n  filterDataWithDate(item, filterObj, filterValue) {\n    let bKeep;\n    let value = item[filterObj.ref] != null || item[filterObj.ref] != '' ? getSeconds(item[filterObj.ref]) : null;\n    filterValue = filterObj.containsFilterValue != null && filterObj.containsFilterValue != '' ? getSeconds(filterObj.containsFilterValue) : null;\n\n    switch (filterObj.containsFilter) {\n      case 'notequal':\n        // becasue filterValue is in minutes, need to have a range of less than 60 secons\n        if (value != null && filterValue != null) {\n          // get rid of millisecons\n          value /= 1000;\n          filterValue /= 1000;\n\n          const diff = value - filterValue;\n          if (diff >= 0 && diff < 60) {\n            bKeep = false;\n          }\n        }\n        break;\n      case 'after':\n        if (value < filterValue) {\n          bKeep = false;\n        }\n        break;\n      case 'before':\n        if (value > filterValue) {\n          bKeep = false;\n        }\n        break;\n      case 'null':\n        if (value != null) {\n          bKeep = false;\n        }\n        break;\n      case 'notnull':\n        if (value == null) {\n          bKeep = false;\n        }\n        break;\n      default:\n        break;\n    }\n\n    return bKeep;\n  }\n\n  filterDataWithCommonTypes(item, filterObj, filterValue) {\n    let bKeep;\n    const value = item[filterObj.ref].toLowerCase();\n    filterValue = filterObj.containsFilterValue.toLowerCase();\n\n    switch (filterObj.containsFilter) {\n      case 'contains':\n        if (value.indexOf(filterValue) < 0) {\n          bKeep = false;\n        }\n        break;\n      case 'equals':\n        if (value != filterValue) {\n          bKeep = false;\n        }\n        break;\n      case 'startswith':\n        if (value.indexOf(filterValue) != 0) {\n          bKeep = false;\n        }\n        break;\n      default:\n        break;\n    }\n\n    return bKeep;\n  }\n\n  filterSortGroupBy() {\n    // get original data set\n    let theData = this.repeatListData.slice();\n\n    // last filter config data is global\n    theData = theData.filter(this.filterData.bind(this));\n\n    // last sort config data is global\n    theData.sort(this.sortCompare.bind(this));\n\n    const reGroupData = this.addGroups(theData, this.groupByColumns$);\n\n    this.repeatList$.data = [];\n    this.repeatList$.data.push(...reGroupData);\n\n    if (this.searchFilter && this.searchFilter != '') {\n      this.repeatList$.filter = this.searchFilter;\n    } else {\n      this.perfFilter = performance.now().toString();\n      this.repeatList$.filter = this.perfFilter;\n    }\n    this.repeatList$.filter = '';\n\n    if (this.repeatList$.paginator) {\n      this.repeatList$.paginator.firstPage();\n    }\n  }\n\n  //\n  // Grouping code inspired by this example\n  // https://stackblitz.com/edit/angular-material-table-row-grouping\n  //\n\n  _showUnGroupBy(columnData): boolean {\n    for (const val of this.groupByColumns$) {\n      if (val == columnData.config.name) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  _groupBy(event, columnData) {\n    this.checkGroupByColumn(columnData.config.name, true);\n\n    this.filterSortGroupBy();\n  }\n\n  _unGroupBy(event, columnData) {\n    // event.stopPropagation();\n    this.checkGroupByColumn(columnData.config.name, false);\n\n    this.filterSortGroupBy();\n  }\n\n  checkGroupByColumn(field, add) {\n    let found: number | null = null;\n    for (const column of this.groupByColumns$) {\n      if (column === field) {\n        found = this.groupByColumns$.indexOf(column, 0);\n      }\n    }\n    if (found != null && found >= 0) {\n      if (!add) {\n        this.groupByColumns$.splice(found, 1);\n      }\n    } else if (add) {\n      this.groupByColumns$.push(field);\n    }\n  }\n\n  addGroups(data: any[], groupByColumns: string[]): any[] {\n    const rootGroup = new Group();\n    rootGroup.expanded = true;\n    return this.getSublevel(data, 0, groupByColumns, rootGroup);\n  }\n\n  getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[] {\n    if (level >= groupByColumns.length) {\n      return data;\n    }\n    const groups = this.uniqueBy(\n      data.map(row => {\n        const result = new Group();\n        result.level = level + 1;\n        result.parent = parent;\n        for (let i = 0; i <= level; i++) {\n          result[groupByColumns[i]] = row[groupByColumns[i]];\n        }\n        return result;\n      }),\n      JSON.stringify\n    );\n\n    const currentColumn = groupByColumns[level];\n    let subGroups: any[] = [];\n    groups.forEach(group => {\n      const rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn]);\n      group.totalCounts = rowsInGroup.length;\n      const subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);\n      subGroup.unshift(group);\n      subGroups = subGroups.concat(subGroup);\n    });\n    return subGroups;\n  }\n\n  uniqueBy(a, key) {\n    const seen = {};\n    return a.filter(item => {\n      const k = key(item);\n      // eslint-disable-next-line no-prototype-builtins\n      return seen.hasOwnProperty(k) ? false : (seen[k] = true);\n    });\n  }\n\n  isGroup(index, item): boolean {\n    return item.level;\n  }\n\n  _groupHeaderClick(row) {\n    row.expanded = !row.expanded;\n    // this.repeatList$.filter = \"\";\n    this.perfFilter = performance.now().toString();\n    this.repeatList$.filter = this.perfFilter;\n  }\n\n  // below is for grid row grouping\n  customFilterPredicate(data: any | Group, filter: string): boolean {\n    return data instanceof Group ? data.visible : this.getDataRowVisibleWithFilter(data, filter);\n  }\n\n  getDataRowVisible(data: any): boolean {\n    const groupRows = this.repeatList$.data.filter(row => {\n      if (!(row instanceof Group)) {\n        return false;\n      }\n      let match = true;\n      this.groupByColumns$.forEach(column => {\n        if (!row[column] || !data[column] || row[column] !== data[column]) {\n          match = false;\n        }\n      });\n      return match;\n    });\n\n    if (groupRows.length === 0) {\n      return true;\n    }\n    const parent = groupRows[0] as Group;\n    return parent.visible && parent.expanded;\n  }\n\n  getDataRowVisibleWithFilter(data, filter) {\n    // fist check if row is visible with grouping\n    let bVisible = this.getDataRowVisible(data);\n\n    if (bVisible && filter && filter != '' && filter != this.perfFilter) {\n      // now check if row is filtered.\n\n      // assume not there unless we find it\n      bVisible = false;\n      for (const col of this.displayedColumns$) {\n        // filter is lower case\n        if (data[col] && data[col].toString().toLowerCase().indexOf(filter) >= 0) {\n          bVisible = true;\n          break;\n        }\n      }\n    }\n\n    return bVisible;\n  }\n\n  updateData(listData: any[], fieldData: any[]): any[] {\n    const returnList: any[] = new Array<any>();\n    listData.forEach(row => {\n      // copy\n      const rowData = JSON.parse(JSON.stringify(row));\n\n      for (let fieldIndex = 0; fieldIndex < fieldData.length; fieldIndex++) {\n        const config = fieldData[fieldIndex].config;\n        let fieldName;\n        let formattedDate;\n        let myFormat;\n        let theCurrencyOptions;\n\n        switch (fieldData[fieldIndex].type) {\n          case 'Date':\n            fieldName = config.name;\n            myFormat = config.formatter;\n            if (!myFormat) {\n              myFormat = 'Date';\n            }\n            formattedDate = this.utils.generateDate(rowData[fieldName], myFormat);\n\n            rowData[fieldName] = formattedDate;\n            break;\n          case 'DateTime':\n            fieldName = config.name;\n            myFormat = config.formatter;\n            if (!myFormat) {\n              myFormat = 'DateTime-Long';\n            }\n            formattedDate = this.utils.generateDateTime(rowData[fieldName], myFormat);\n\n            rowData[fieldName] = formattedDate;\n            break;\n          case 'Currency':\n            fieldName = config.name;\n            theCurrencyOptions = getCurrencyOptions(PCore.getEnvironmentInfo().getLocale() as string);\n            // eslint-disable-next-line no-case-declarations\n            const defaultOptions = {\n              locale: getLocale(),\n              position: 'before',\n              decPlaces: 2\n            };\n            // eslint-disable-next-line no-case-declarations\n            const params = { ...defaultOptions, ...theCurrencyOptions };\n            rowData[fieldName] = formatters.Currency(rowData[fieldName], params);\n            // val = format(value, column.type, theCurrencyOptions);\n            break;\n          default:\n            break;\n        }\n      }\n      returnList.push(rowData);\n    });\n\n    return returnList;\n  }\n\n  openAssignment(row) {\n    const { pxRefObjectClass, pzInsKey } = row;\n    const sTarget = this.pConn$.getContainerName();\n    const options: any = { containerName: sTarget };\n    this.pConn$.getActionsApi().openAssignment(pzInsKey, pxRefObjectClass, options);\n  }\n\n  openWork(row) {\n    const pxRefObjectClass = row.pxRefObjectClass || row.pxObjClass;\n    const { pxRefObjectKey } = row;\n    if (pxRefObjectClass !== '' && pxRefObjectKey !== '') {\n      this.pConn$.getActionsApi().openWorkByHandle(pxRefObjectKey, pxRefObjectClass);\n    }\n  }\n\n  initializeData(data) {\n    data.forEach((item, idx) => {\n      item.__original_index = idx;\n      item.__level = 1;\n    });\n\n    return data;\n  }\n\n  getType(field) {\n    const { config = {}, type } = field;\n    const { formatType } = config;\n    if (formatType === 'datetime' || formatType === 'date') {\n      // currently cosmos has only support for date ... it also need to support dateTime\n      return 'date';\n    }\n\n    return type.toLowerCase();\n  }\n\n  initializeColumns(fields = []) {\n    return fields.map((field: any, originalColIndex) => ({\n      ...field,\n      type: this.getType(field),\n      name: field.config.value.substring(4),\n      label: field.config.label.substring(3),\n      id: originalColIndex,\n      groupingEnabled: true,\n      grouped: false,\n      minWidth: 50,\n      cellRenderer: this.getType(field) === 'text' ? null : field.type,\n      filter: true\n    }));\n  }\n\n  getHeaderCells(colFields, fields) {\n    const AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n    return colFields.map((field: any, index) => {\n      let theField = field.config.value.substring(field.config.value.indexOf(' ') + 1);\n      if (theField.indexOf('.') === 0) {\n        theField = theField.substring(1);\n      }\n      const colIndex = fields.findIndex(ele => ele.name === theField);\n      const displayAsLink = field.config.displayAsLink;\n      const headerRow: any = {};\n      headerRow.id = fields[index].id;\n      headerRow.type = field.type;\n      headerRow.displayAsLink = displayAsLink;\n      headerRow.numeric = field.type === 'Decimal' || field.type === 'Integer' || field.type === 'Percentage' || field.type === 'Currency' || false;\n      headerRow.disablePadding = false;\n      headerRow.label = fields[index].label;\n      if (colIndex > -1) {\n        headerRow.classID = fields[colIndex].classID;\n      }\n      if (displayAsLink) {\n        headerRow.isAssignmentLink = AssignDashObjects.includes(headerRow.classID);\n        if (field.config.value?.startsWith('@CA')) {\n          headerRow.isAssociation = true;\n        }\n      }\n      return headerRow;\n    });\n  }\n\n  buildSelect(fieldDefs, colId, patchQueryFields = [], compositeKeys = []) {\n    const listFields: any = [];\n    if (colId) {\n      const field = this.getField(fieldDefs, colId);\n      listFields.push({\n        field: field.name\n      });\n    } else {\n      // NOTE: If we ever decide to not set up all the `fieldDefs` on select, ensure that the fields\n      //  corresponding to `state.groups` are set up. Needed in Client-mode grouping/pagination.\n      fieldDefs.forEach(field => {\n        if (!listFields.find(f => f.field === field.name)) {\n          listFields.push({\n            field: field.name\n          });\n        }\n      });\n      patchQueryFields.forEach(k => {\n        if (!listFields.find(f => f.field === k)) {\n          listFields.push({\n            field: k\n          });\n        }\n      });\n    }\n\n    compositeKeys.forEach(k => {\n      if (!listFields.find(f => f.field === k)) {\n        listFields.push({\n          field: k\n        });\n      }\n    });\n    return listFields;\n  }\n\n  getResultsText() {\n    const recordsCount = this.repeatList$?.paginator?.length || 0;\n    return `${recordsCount || 0} result${recordsCount > 1 ? 's' : ''}`;\n  }\n\n  getField(fieldDefs, columnId) {\n    const fieldsMap = this.getFieldsMap(fieldDefs);\n    return fieldsMap.get(columnId);\n  }\n\n  getFieldsMap(fieldDefs) {\n    const fieldsMap = new Map();\n    fieldDefs.forEach(element => {\n      fieldsMap.set(element.id, element);\n    });\n    return fieldsMap;\n  }\n\n  addItemKeyInSelect(fieldDefs, itemKey, select, compositeKeys) {\n    const elementFound = this.getField(fieldDefs, itemKey);\n\n    if (\n      itemKey &&\n      !elementFound &&\n      Array.isArray(select) &&\n      !(compositeKeys !== null && compositeKeys?.length) &&\n      !select.find(sel => sel.field === itemKey)\n    ) {\n      return [\n        ...select,\n        {\n          field: itemKey\n        }\n      ];\n    }\n\n    return select;\n  }\n\n  private getSelectedValue(row) {\n    const value = row[this.rowID];\n    const checked = this.selection.isSelected(row);\n    const reqObj: any = {};\n    if (this.compositeKeys?.length > 1) {\n      const index = this.response.findIndex(element => element[this.rowID] === value);\n      const selectedRow = this.response[index];\n      this.compositeKeys.forEach(element => {\n        reqObj[element] = selectedRow[element];\n      });\n      reqObj.$selected = checked;\n    } else {\n      reqObj[this.rowID] = value;\n      reqObj.$selected = checked;\n    }\n    return reqObj;\n  }\n\n  private updateFiltersFromData(data) {\n    if (this.displayAs === 'advancedSearch') {\n      this.filters = {};\n      Object.values(data).forEach((value: any) => {\n        this.filters[value.filterId] = value.filterExpression;\n      });\n    } else {\n      const { filterId, filterExpression } = data;\n      this.filters[filterId] = filterExpression;\n    }\n  }\n\n  private buildFilterPayload(selectParam: any[]) {\n    const filterConditions = {};\n    let logic = '';\n    let index = 1;\n    const relationalOp = 'AND';\n\n    for (const currentFilter of Object.values(this.filters)) {\n      const filter: any = currentFilter;\n      if (!filter) continue;\n\n      const isDateRange = !!filter.AND;\n      const field = this.getFieldFromFilter(filter, isDateRange);\n\n      if (!this.displayedColumns$?.includes(field)) continue;\n\n      if (logic) {\n        logic += ` ${relationalOp} `;\n      }\n\n      if (isDateRange) {\n        const dateRelationalOp = filter.AND ? 'AND' : 'OR';\n        filterConditions[`T${index}`] = { ...filter[relationalOp][0].condition };\n        filterConditions[`T${index + 1}`] = { ...filter[relationalOp][1].condition };\n        logic += `(T${index} ${dateRelationalOp} T${index + 1})`;\n        index += 2;\n      } else {\n        filterConditions[`T${index}`] = { ...filter.condition, ...(filter.condition.comparator === 'CONTAINS' && { ignoreCase: true }) };\n        logic += `T${index}`;\n        index++;\n      }\n    }\n\n    if (!logic) {\n      return undefined;\n    }\n\n    return {\n      query: {\n        filter: { filterConditions, logic },\n        select: selectParam\n      }\n    };\n  }\n}\n","<div class=\"psdk-list-header\">\n  <div>\n    <div style=\"display: flex; justify-content: space-between; align-items: center; margin: 0 10px\">\n      <h3 *ngIf=\"label\" class=\"label\" style=\"font-weight: bold; margin: 0\">\n        {{ label }} <span class=\"results-count\">{{ getResultsText() }}</span>\n      </h3>\n      <mat-form-field *ngIf=\"bShowSearch$\">\n        <mat-label class=\"search-label\"><mat-icon>search</mat-icon><span class=\"psdk-search-label\">Search</span> </mat-label>\n        <input matInput id=\"search\" (keyup)=\"applySearch($event)\" placeholder=\"\" />\n      </mat-form-field>\n    </div>\n\n    <div *ngIf=\"!bInForm$\" class=\"psdk-outer-div-in-form\">\n      <div class=\"psdk-inner-div-in-form\" *ngIf=\"bColumnReorder$\">\n        <table\n          mat-table\n          id=\"list-view\"\n          [dataSource]=\"repeatList$\"\n          matSort\n          cdkDropList\n          cdkDropListOrientation=\"horizontal\"\n          (cdkDropListDropped)=\"drop($event)\"\n        >\n          <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n            <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\" cdkDrag>\n              {{ dCol.config.label }}\n              <div class=\"psdk-mat-header-filter\">\n                <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n              </div>\n              <div class=\"psdk-mat-header-arrow\">\n                <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n              </div>\n              <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n                <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n                  <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n                </button>\n                <mat-menu #groupMenu>\n                  <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n                    <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n                  </button>\n                  <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n                    <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n                  </button>\n                  <button mat-menu-item (click)=\"_filter($event, dCol)\">\n                    <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n                  </button>\n                </mat-menu>\n              </div>\n            </th>\n            <td mat-cell *matCellDef=\"let element; index as i\">\n              <button\n                *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n                mat-button\n                color=\"primary\"\n                (click)=\"_listViewClick(dCol.config, element)\"\n              >\n                {{ element[dCol.config.name] || '---' }}\n              </button>\n              <ng-template #regular>\n                {{ element[dCol.config.name] || '---' }}\n              </ng-template>\n            </td>\n          </ng-container>\n\n          <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n          <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n          <!-- Group header -->\n          <ng-container matColumnDef=\"groupHeader\">\n            <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n              <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n              <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n              <strong\n                >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n                  group.totalCounts\n                }})</strong\n              >\n            </td>\n          </ng-container>\n\n          <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n        </table>\n      </div>\n      <div class=\"psdk-inner-div-in-form\" *ngIf=\"!bColumnReorder$\">\n        <table mat-table id=\"list-view\" [dataSource]=\"repeatList$\" matSort>\n          <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\" sticky=\"true\">\n            <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\" (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n              {{ dCol.config.label }}\n              <div class=\"psdk-mat-header-filter\">\n                <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n              </div>\n              <div class=\"psdk-mat-header-arrow\">\n                <img class=\"psdk-arrow-svg-icon\" arrow=\"none\" [attr.arrowid]=\"dCol.config.name\" />\n              </div>\n              <div class=\"psdk-mat-header-button\" (click)=\"$event.stopPropagation()\">\n                <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n                  <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n                </button>\n                <mat-menu #groupMenu>\n                  <button *ngIf=\"!_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_groupBy($event, dCol)\">\n                    <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n                  </button>\n                  <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n                    <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n                  </button>\n                  <button mat-menu-item (click)=\"_filter($event, dCol)\">\n                    <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n                  </button>\n                </mat-menu>\n              </div>\n            </th>\n            <td mat-cell *matCellDef=\"let element; index as i\">\n              <button\n                *ngIf=\"_showButton(dCol.config.name, dCol); else regular\"\n                mat-button\n                color=\"primary\"\n                (click)=\"_listViewClick(dCol.config, element)\"\n              >\n                {{ element[dCol.config.name] || '---' }}\n              </button>\n              <ng-template #regular>\n                {{ element[dCol.config.name] || '---' }}\n              </ng-template>\n            </td>\n          </ng-container>\n\n          <tr mat-header-row *matHeaderRowDef=\"displayedColumns$; sticky: true\"></tr>\n          <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n\n          <!-- Group header -->\n          <ng-container matColumnDef=\"groupHeader\">\n            <td mat-cell colspan=\"999\" *matCellDef=\"let group\">\n              <mat-icon *ngIf=\"group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_less</mat-icon>\n              <mat-icon *ngIf=\"!group.expanded\" [attr.style]=\"_getIconStyle(group.level)\">expand_more</mat-icon>\n              <strong\n                >{{ _getGroupName(groupByColumns$[group.level - 1]) }}: {{ group[groupByColumns$[group.level - 1]] }} ({{\n                  group.totalCounts\n                }})</strong\n              >\n            </td>\n          </ng-container>\n\n          <tr mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroup\" (click)=\"_groupHeaderClick(row)\"></tr>\n        </table>\n      </div>\n    </div>\n    <div *ngIf=\"bInForm$\">\n      <div class=\"psdk-inner-div-in-form\">\n        <table id=\"list-view\" *ngIf=\"repeatListData.length > 0\" mat-table [dataSource]=\"repeatList$\" matSort>\n          <ng-container *ngIf=\"singleSelectionMode\" matColumnDef=\"select\">\n            <th mat-header-cell *matHeaderCellDef></th>\n            <td mat-cell *matCellDef=\"let row\">\n              <mat-radio-button [value]=\"row[rowID]\" [checked]=\"row[rowID] === checkBoxValue\" (change)=\"fieldOnChange(row)\"></mat-radio-button>\n            </td>\n          </ng-container>\n          <ng-container *ngIf=\"multiSelectionMode\" matColumnDef=\"select\">\n            <th mat-header-cell *matHeaderCellDef>\n              <mat-checkbox\n                (change)=\"toggleAllRows()\"\n                [checked]=\"selection.hasValue() && isAllSelected()\"\n                [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n              >\n              </mat-checkbox>\n            </th>\n            <td mat-cell *matCellDef=\"let row\">\n              <mat-checkbox (change)=\"onCheckboxClick(row)\" [checked]=\"selection.isSelected(row)\"> </mat-checkbox>\n            </td>\n          </ng-container>\n          <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.config.name\">\n            <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n              {{ dCol.config.label }}\n            </th>\n            <td mat-cell *matCellDef=\"let element\">{{ element[dCol.config.name] || '---' }}</td>\n          </ng-container>\n\n          <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n          <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n        </table>\n        <div *ngIf=\"repeatListData.length === 0\">\n          <table id=\"list-view\" mat-table [dataSource]=\"[]\">\n            <!-- Define columns for headers -->\n            <ng-container *ngFor=\"let col of displayedColumns$\" [matColumnDef]=\"col\">\n              <th mat-header-cell *matHeaderCellDef>\n                {{ getValue(col) }}\n              </th>\n            </ng-container>\n\n            <!-- Render only header row -->\n            <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n          </table>\n        </div>\n        <div class=\"psdk-no-records\" *ngIf=\"repeatListData.length === 0\">\n          {{ utils.getGenericFieldsLocalizedValue('COSMOSFIELDS.lists', 'No records found.') }}\n        </div>\n      </div>\n    </div>\n\n    <mat-paginator id=\"pagination\" *ngIf=\"bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500, 1000]\" showFirstLastButtons></mat-paginator>\n    <mat-paginator id=\"pagination\" *ngIf=\"!bInForm$\" [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n  </div>\n\n  <!-- pop overs for filters-->\n  <div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n    <div class=\"psdk-modal-file-top\">\n      <h4>\n        Filter:<b> {{ filterContainsLabel$ }}</b>\n      </h4>\n      <div *ngIf=\"bContains$\">\n        <mat-form-field class=\"psdk-full-width\">\n          <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n            <mat-option value=\"contains\">Contains</mat-option>\n            <mat-option value=\"equals\">Equals</mat-option>\n            <mat-option value=\"startswith\">Starts with</mat-option>\n          </mat-select>\n        </mat-form-field>\n\n        <mat-form-field class=\"psdk-full-width\">\n          <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n        </mat-form-field>\n      </div>\n\n      <div *ngIf=\"bDateTime$\">\n        <mat-form-field class=\"psdk-full-width\">\n          <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n            <mat-option value=\"notequal\">is not equal to</mat-option>\n            <mat-option value=\"after\">after</mat-option>\n            <mat-option value=\"before\">before</mat-option>\n            <mat-option value=\"null\">is null</mat-option>\n            <mat-option value=\"notnull\">is not null</mat-option>\n          </mat-select>\n        </mat-form-field>\n\n        <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n          <mat-label>Date</mat-label>\n          <input\n            matInput\n            #dateInput\n            [matDatepicker]=\"pegadate\"\n            type=\"text\"\n            [value]=\"filterContainsValue$\"\n            (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n          />\n          <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n          <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n        </mat-form-field>\n\n        <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n          <mat-label>Date time</mat-label>\n          <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n        </mat-form-field>\n\n        <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n          <mat-label>Time</mat-label>\n          <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n        </mat-form-field>\n      </div>\n\n      <component-mapper\n        name=\"ActionButtons\"\n        [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n        [parent]=\"this\"\n        [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n      ></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface MultiReferenceReadOnlyProps {\n  readonlyContextList: string;\n  referenceList: string;\n  label: string;\n  hideLabel: boolean;\n}\n\n@Component({\n  selector: 'app-multi-reference-readonly',\n  templateUrl: './multi-reference-readonly.component.html',\n  styleUrls: ['./multi-reference-readonly.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class MultiReferenceReadonlyComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: MultiReferenceReadOnlyProps;\n  label: string;\n  newPConn: any;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.updateSelf();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.getConfigProps() as MultiReferenceReadOnlyProps;\n    this.label = this.configProps$.label;\n\n    const config = (this.pConn$.getMetadata() as any)?.config;\n    const { referenceList, readonlyContextList } = config;\n    let readonlyContextObject;\n    if (!PCore.getAnnotationUtils().isProperty(referenceList)) {\n      readonlyContextObject = {\n        referenceList: readonlyContextList\n      };\n    }\n    const hideLabel = this.configProps$.hideLabel ?? false;\n    this.newPConn = this.pConn$.createComponent(\n      {\n        type: 'SimpleTable',\n        config: {\n          ...config,\n          ...readonlyContextObject,\n          label: this.label,\n          hideLabel\n        }\n      },\n      '',\n      0,\n      {}\n    );\n  }\n}\n","<div>\n  <h3 style=\"font-weight: bold; margin: 0\">{{ label }}</h3>\n  <component-mapper name=\"SimpleTable\" [props]=\"{ pConn$: newPConn.getPConnect() }\"></component-mapper>\n</div>\n","import cloneDeep from 'lodash.clonedeep';\n\nexport function setVisibilityForList(c11nEnv, visibility) {\n  const { selectionMode, selectionList, renderMode, referenceList } = c11nEnv.getComponentConfig();\n  // usecase:multiselect, fieldgroup, editable table\n  if ((selectionMode === PCore.getConstants().LIST_SELECTION_MODE.MULTI && selectionList) || (renderMode === 'Editable' && referenceList)) {\n    c11nEnv.getListActions().setVisibility(visibility);\n  }\n}\n\nfunction preProcessColumns(columns) {\n  return columns?.map(col => {\n    const tempColObj = { ...col };\n    tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n    if (tempColObj.setProperty) {\n      tempColObj.setProperty = col.setProperty && col.setProperty.startsWith('.') ? col.setProperty.substring(1) : col.setProperty;\n    }\n    return tempColObj;\n  });\n}\n\nfunction getDisplayFieldsMetaData(columns) {\n  const displayColumns = columns?.filter(col => col.display === 'true');\n  const metaDataObj: any = {\n    key: '',\n    primary: '',\n    secondary: []\n  };\n  const keyCol = columns?.filter(col => col.key === 'true');\n  metaDataObj.key = keyCol?.length > 0 ? keyCol[0].value : 'auto';\n  const itemsRecordsColumn = columns?.filter(col => col.itemsRecordsColumn === 'true');\n  if (itemsRecordsColumn?.length > 0) {\n    metaDataObj.itemsRecordsColumn = itemsRecordsColumn[0].value;\n  }\n  const itemsGroupKeyColumn = columns?.filter(col => col.itemsGroupKeyColumn === 'true');\n  if (itemsGroupKeyColumn?.length > 0) {\n    metaDataObj.itemsGroupKeyColumn = itemsGroupKeyColumn[0].value;\n  }\n  for (let index = 0; index < displayColumns?.length; index += 1) {\n    if (displayColumns[index].secondary === 'true') {\n      metaDataObj.secondary.push(displayColumns[index].value);\n    } else if (displayColumns[index].primary === 'true') {\n      metaDataObj.primary = displayColumns[index].value;\n    }\n  }\n  return metaDataObj;\n}\n\nfunction createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected) {\n  const secondaryArr: any = [];\n  displayFieldMeta.secondary.forEach(col => {\n    secondaryArr.push(entry[col]);\n  });\n  const isSelected = selected.some(item => item.id === entry[displayFieldMeta.key]);\n\n  return {\n    id: entry[displayFieldMeta.key],\n    primary: entry[displayFieldMeta.primary],\n    secondary: showSecondaryData ? secondaryArr : [],\n    selected: isSelected\n  };\n}\n\nfunction putItemsDataInItemsTree(listObjData, displayFieldMeta, itemsTree, showSecondaryInSearchOnly, selected) {\n  let newTreeItems = itemsTree.slice();\n  const showSecondaryData = !showSecondaryInSearchOnly;\n  for (const obj of listObjData) {\n    const items = obj[displayFieldMeta.itemsRecordsColumn].map(entry => createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected));\n\n    newTreeItems = newTreeItems.map(caseObject => {\n      if (caseObject.id === obj[displayFieldMeta.itemsGroupKeyColumn]) {\n        caseObject.items = [...items];\n      }\n      return caseObject;\n    });\n  }\n  return newTreeItems;\n}\n\nfunction prepareSearchResults(listObjData, displayFieldMeta) {\n  const searchResults: any = [];\n  for (const obj of listObjData) {\n    searchResults.push(...obj[displayFieldMeta.itemsRecordsColumn]);\n  }\n  return searchResults;\n}\n\nfunction handleGroupedDataSearch(dataApiObj, searchText, clickedGroup, initialCaseClass, itemsTree) {\n  const localDataApiObj = cloneDeep(dataApiObj);\n  localDataApiObj.fetchedNQData = false;\n  localDataApiObj.cache = {};\n\n  if (!searchText && !clickedGroup) {\n    return { shouldReturn: true, value: itemsTree };\n  }\n\n  localDataApiObj.parameters[Object.keys(localDataApiObj.parameters)[1]] = searchText;\n  localDataApiObj.parameters[Object.keys(localDataApiObj.parameters)[0]] = initialCaseClass;\n\n  if (clickedGroup) {\n    if (!searchText) {\n      const containsData = itemsTree.find(item => item.id === clickedGroup);\n      if (containsData?.items?.length) {\n        return { shouldReturn: true, value: itemsTree };\n      }\n    }\n    localDataApiObj.parameters[Object.keys(localDataApiObj.parameters)[0]] = JSON.stringify([clickedGroup]);\n  }\n\n  return { shouldReturn: false, value: localDataApiObj };\n}\n\nasync function doSearch(\n  searchText,\n  clickedGroup,\n  initialCaseClass,\n  displayFieldMeta,\n  dataApiObj, // deep clone of the dataApiObj\n  itemsTree,\n  isGroupData,\n  showSecondaryInSearchOnly,\n  selected\n) {\n  if (!dataApiObj) {\n    return itemsTree;\n  }\n\n  let searchTextForApi = '';\n  let localDataApiObj = dataApiObj;\n\n  if (isGroupData) {\n    const groupResult = handleGroupedDataSearch(dataApiObj, searchText, clickedGroup, initialCaseClass, itemsTree);\n    if (groupResult.shouldReturn) {\n      return groupResult.value;\n    }\n    localDataApiObj = groupResult.value;\n  } else {\n    searchTextForApi = searchText;\n  }\n\n  const response = await localDataApiObj.fetchData(searchTextForApi).catch(() => ({ data: undefined }));\n\n  let listObjData = response.data;\n  if (!listObjData) {\n    return itemsTree;\n  }\n\n  if (isGroupData) {\n    if (searchText) {\n      listObjData = prepareSearchResults(listObjData, displayFieldMeta);\n    } else {\n      return putItemsDataInItemsTree(listObjData, displayFieldMeta, itemsTree, showSecondaryInSearchOnly, selected);\n    }\n  }\n\n  if (listObjData.length === 0) {\n    return [];\n  }\n\n  const showSecondaryData = showSecondaryInSearchOnly ? !!searchText : true;\n  return listObjData.map(entry => createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected));\n}\n\nfunction setValuesToPropertyList(searchText, assocProp, items, columns, actions, updatePropertyInRedux = true) {\n  const setPropertyList = columns\n    ?.filter(col => col.setProperty)\n    .map(col => {\n      return {\n        source: col.value,\n        target: col.setProperty,\n        key: col.key,\n        primary: col.primary\n      };\n    });\n  const valueToSet: any = [];\n  if (setPropertyList.length > 0) {\n    setPropertyList.forEach(prop => {\n      items.forEach(item => {\n        if (prop.key === 'true' && item) {\n          valueToSet.push(item.id);\n        } else if (prop.primary === 'true' || !item) {\n          valueToSet.push(searchText);\n        }\n      });\n\n      if (updatePropertyInRedux) {\n        // BUG-666851 setting options so that the store values are replaced and not merged\n        const options = {\n          isArrayDeepMerge: false\n        };\n        if (prop.target === 'Associated property') {\n          actions.updateFieldValue(assocProp, valueToSet, options);\n        } else {\n          actions.updateFieldValue(`.${prop.target}`, valueToSet, options);\n        }\n      }\n    });\n  }\n  return valueToSet;\n}\n\nfunction getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) {\n  return groupDataSource?.map(group => {\n    const secondaryArr: any = [];\n    groupsDisplayFieldMeta.secondary.forEach(col => {\n      secondaryArr.push(group[col]);\n    });\n    return {\n      id: group[groupsDisplayFieldMeta.key],\n      primary: group[groupsDisplayFieldMeta.primary],\n      secondary: showSecondaryInSearchOnly ? [] : secondaryArr,\n      items: []\n    };\n  });\n}\n\nexport { preProcessColumns, getDisplayFieldsMetaData, doSearch, setValuesToPropertyList, getGroupDataForItemsTree };\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { FieldBase } from '../field.base';\nimport { doSearch, getDisplayFieldsMetaData, getGroupDataForItemsTree, preProcessColumns } from './utils';\nimport { deleteInstruction, insertInstruction } from '../../../_helpers/instructions-utils';\nimport { handleEvent } from '../../../_helpers/event-util';\n\n@Component({\n  selector: 'app-multiselect',\n  templateUrl: './multiselect.component.html',\n  styleUrls: ['./multiselect.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatAutocompleteModule,\n    MatOptionModule,\n    MatCheckboxModule,\n    MatIconModule,\n    MatChipsModule\n  ]\n})\nexport class MultiselectComponent extends FieldBase {\n  configProps$: any;\n\n  listType: string;\n  parameters: {};\n\n  referenceList: any;\n  selectionKey: string;\n  primaryField: string;\n  showSecondaryInSearchOnly = false;\n  selectionList;\n  listActions: any;\n  selectedItems: any[] = [];\n  itemsTreeBaseData = [];\n  displayFieldMeta: any;\n  dataApiObj: any;\n  itemsTree: any[] = [];\n  trigger: any;\n\n  /**\n   * Updates the component when there are changes in the state.\n   */\n  override updateSelf() {\n    // Resolve configuration properties\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n\n    // Update component common properties\n    this.updateComponentCommonProperties(this.configProps$);\n\n    this.setPropertyValuesFromProps();\n\n    const {\n      groupDataSource = [],\n      parameters = {},\n      listType = '',\n      showSecondaryInSearchOnly = false,\n      isGroupData = false,\n      referenceType,\n      secondaryFields,\n      matchPosition = 'contains',\n      maxResultsDisplay,\n      groupColumnsConfig = [{}]\n    } = this.configProps$;\n    let { datasource = [], columns = [{}] } = this.configProps$;\n\n    if (this.referenceList.length > 0) {\n      datasource = this.referenceList;\n      columns = [\n        {\n          value: this.primaryField,\n          display: 'true',\n          useForSearch: true,\n          primary: 'true'\n        },\n        {\n          value: this.selectionKey,\n          setProperty: this.selectionKey,\n          key: 'true'\n        }\n      ];\n      let secondaryColumns: any = [];\n      if (secondaryFields) {\n        secondaryColumns = secondaryFields.map(secondaryField => ({\n          value: secondaryField,\n          display: 'true',\n          secondary: 'true',\n          useForSearch: 'true'\n        }));\n      } else {\n        secondaryColumns = [\n          {\n            value: this.selectionKey,\n            display: 'true',\n            secondary: 'true',\n            useForSearch: 'true'\n          }\n        ];\n      }\n      if (referenceType === 'Case') {\n        columns = [...columns, ...secondaryColumns];\n      }\n    }\n\n    this.value$ = this.value$ ? this.value$ : '';\n    const contextName = this.pConn$.getContextName();\n\n    const dataConfig = {\n      dataSource: datasource,\n      groupDataSource,\n      isGroupData,\n      showSecondaryInSearchOnly,\n      parameters,\n      matchPosition,\n      listType,\n      maxResultsDisplay: maxResultsDisplay || '100',\n      columns: preProcessColumns(columns),\n      groupColumnsConfig: preProcessColumns(groupColumnsConfig),\n      associationFilter: undefined,\n      ignoreCase: undefined\n    };\n\n    const groupsDisplayFieldMeta = this.listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.groupColumnsConfig) : null;\n\n    this.itemsTreeBaseData = getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, this.showSecondaryInSearchOnly) || [];\n\n    this.itemsTree = isGroupData ? getGroupDataForItemsTree(groupDataSource, groupsDisplayFieldMeta, this.showSecondaryInSearchOnly) : [];\n\n    this.displayFieldMeta = this.listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.columns) : null;\n\n    this.listActions = this.pConn$.getListActions();\n    this.pConn$.setReferenceList(this.selectionList);\n\n    if (this.listType !== 'associated') {\n      PCore.getDataApi()\n        ?.init(dataConfig, contextName)\n        .then(async dataObj => {\n          this.dataApiObj = dataObj;\n          if (!isGroupData) {\n            this.getCaseListBasedOnParams(this.value$ ?? '', '', [...this.selectedItems], [...this.itemsTree]);\n          }\n        });\n    }\n  }\n\n  setPropertyValuesFromProps() {\n    this.referenceList = this.configProps$?.referenceList;\n    this.selectionKey = this.configProps$?.selectionKey;\n    this.primaryField = this.configProps$?.primaryField;\n    this.selectionList = this.configProps$?.selectionList;\n    this.value$ = this.configProps$?.value;\n  }\n\n  // main search function trigger\n  getCaseListBasedOnParams(searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch = false) {\n    if (this.referenceList && this.referenceList.length > 0) {\n      this.listActions.getSelectedRows(true).then(result => {\n        selectedRows =\n          result.length > 0\n            ? result.map(item => {\n                return {\n                  id: item[this.selectionKey.startsWith('.') ? this.selectionKey.substring(1) : this.selectionKey],\n                  primary: item[this.primaryField.startsWith('.') ? this.primaryField.substring(1) : this.primaryField]\n                };\n              })\n            : [];\n        this.selectedItems = selectedRows;\n\n        const initalItemsTree = isTriggeredFromSearch || !currentItemsTree ? [...this.itemsTreeBaseData] : [...currentItemsTree];\n\n        const { initialCaseClass, isGroupData, showSecondaryInSearchOnly } = this.configProps$;\n\n        doSearch(\n          searchText,\n          group,\n          initialCaseClass,\n          this.displayFieldMeta,\n          this.dataApiObj,\n          initalItemsTree,\n          isGroupData,\n          showSecondaryInSearchOnly,\n          selectedRows || []\n        ).then(res => {\n          this.itemsTree = res || [];\n        });\n      });\n    }\n  }\n\n  fieldOnChange(event: Event) {\n    this.value$ = (event.target as HTMLInputElement).value;\n    this.getCaseListBasedOnParams(this.value$, '', [...this.selectedItems], [...this.itemsTree], true);\n  }\n\n  optionChanged(event: any) {\n    let value = event?.target?.value;\n    value = value?.substring(1);\n    handleEvent(this.actionsApi, 'changeNblur', this.propName, value);\n  }\n\n  optionClicked = (event: Event, data: any): void => {\n    event.stopPropagation();\n    this.toggleSelection(data);\n  };\n\n  toggleSelection = (data: any): void => {\n    data.selected = !data.selected;\n    this.itemsTree.map((ele: any) => {\n      if (ele.id === data.id) {\n        ele.selected = data.selected;\n      }\n      return ele;\n    });\n\n    if (data.selected === true) {\n      this.selectedItems.push(data);\n    } else {\n      const index = this.selectedItems.findIndex(value => value.id === data.id);\n      this.selectedItems.splice(index, 1);\n    }\n\n    this.value$ = '';\n    // if this is a referenceList case\n    if (this.referenceList) this.setSelectedItemsForReferenceList(data);\n\n    this.getCaseListBasedOnParams(this.value$, '', [...this.selectedItems], [...this.itemsTree], true);\n  };\n\n  removeChip = (data: any): void => {\n    if (data) {\n      data = this.itemsTree.filter((ele: any) => {\n        return ele.id === data.id;\n      });\n      this.toggleSelection(data[0]);\n    }\n  };\n\n  setSelectedItemsForReferenceList(data: any) {\n    // Clear error messages if any\n    const propName = this.pConn$.getStateProps().selectionList;\n    this.pConn$.clearErrorMessages({\n      property: propName,\n      category: '',\n      context: ''\n    });\n    const { selected } = data;\n    if (selected) {\n      insertInstruction(this.pConn$, this.selectionList, this.selectionKey, this.primaryField, data);\n    } else {\n      deleteInstruction(this.pConn$, this.selectionList, this.selectionKey, data);\n    }\n  }\n}\n","<div [formGroup]=\"formGroup$\">\n  <mat-form-field class=\"psdk-full-width\" subscriptSizing=\"dynamic\">\n    <mat-label>{{ label$ }}</mat-label>\n    <mat-chip-grid #chipGrid>\n      <ng-container *ngFor=\"let select of selectedItems\">\n        <mat-chip-row (removed)=\"removeChip(select)\">\n          {{ select.primary }}\n          <button matChipRemove>\n            <mat-icon>cancel</mat-icon>\n          </button>\n        </mat-chip-row>\n      </ng-container>\n    </mat-chip-grid>\n    <input\n      matInput\n      [placeholder]=\"placeholder\"\n      [formControl]=\"fieldControl\"\n      [value]=\"value$\"\n      [required]=\"bRequired$\"\n      [matAutocomplete]=\"auto\"\n      (input)=\"fieldOnChange($event)\"\n      [matChipInputFor]=\"chipGrid\"\n    />\n    <mat-autocomplete #auto=\"matAutocomplete\">\n      <mat-option *ngFor=\"let item of itemsTree\" [value]=\"item.primary\" (click)=\"optionClicked($event, item)\">\n        <mat-checkbox [checked]=\"item.selected\" (click)=\"optionClicked($event, item)\">\n          <span>{{ item.primary }}</span>\n        </mat-checkbox>\n      </mat-option>\n    </mat-autocomplete>\n    <mat-error *ngIf=\"fieldControl.invalid\">{{ getErrorMessage() }}</mat-error>\n  </mat-form-field>\n</div>\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-narrow-wide-form',\n  templateUrl: './narrow-wide-form.component.html',\n  styleUrls: ['./narrow-wide-form.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class NarrowWideFormComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit() {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div class=\"psdk-narrow-wide-column\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'lib-object-page',\n  imports: [forwardRef(() => ComponentMapperComponent)],\n  templateUrl: './object-page.component.html',\n  styleUrl: './object-page.component.scss'\n})\nexport class ObjectPageComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n}\n","<component-mapper name=\"CaseView\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { FormTemplateBase } from '../base/form-template-base';\n\n@Component({\n  selector: 'app-one-column',\n  templateUrl: './one-column.component.html',\n  styleUrls: ['./one-column.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class OneColumnComponent extends FormTemplateBase implements OnInit, OnChanges {\n  @Input() override pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit(): void {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div *ngFor=\"let kid of arChildren$\">\n  <div *ngIf=\"kid.getPConnect().getRawMetadata()['type'] === 'Region' && kid.getPConnect().getRawMetadata()['name'] === 'A'\">\n    <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n  </div>\n  <div *ngIf=\"kid.getPConnect().getRawMetadata()['type'] === 'View'\">\n    <component-mapper name=\"View\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n  </div>\n  <div *ngIf=\"kid.getPConnect().getRawMetadata()['type'] === 'CaseCreateStage'\">\n    <component-mapper name=\"CaseCreateStage\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n  </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-one-column-page',\n  templateUrl: './one-column-page.component.html',\n  styleUrls: ['./one-column-page.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class OneColumnPageComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n}\n","<component-mapper name=\"OneColumn\" [props]=\"{ formGroup$, pConn$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-one-column-tab',\n  templateUrl: './one-column-tab.component.html',\n  styleUrls: ['./one-column-tab.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class OneColumnTabComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit(): void {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div class=\"psdk-one-column-tab\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n      <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n      <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n      <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface PageProps {\n  // If any, enter additional props that only exist on this component\n  title: string;\n  operator?: string;\n}\n\n@Component({\n  selector: 'app-page',\n  templateUrl: './page.component.html',\n  styleUrls: ['./page.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PageComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  configProps$: PageProps;\n  arChildren$: any[];\n  title$: string;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit() {\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as PageProps;\n    this.arChildren$ = this.pConn$.getChildren();\n\n    this.title$ = this.configProps$.title;\n    const operator = this.configProps$.operator;\n\n    if (operator && operator != '') {\n      this.title$ += `, ${operator}`;\n    }\n\n    // when showing a page, similar to updating root, need to cause viewContainer to call \"initContainer\"\n    sessionStorage.setItem('hasViewContainer', 'false');\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n    if (bUpdateSelf) {\n      // turn off spinner\n      // this.psService.sendMessage(false);\n    }\n  }\n}\n","<div class=\"psdk-page-title\">\n  <h2>{{ title$ }}</h2>\n</div>\n<div class=\"page-body\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div [ngSwitch]=\"kid.getPConnect().getComponentName()\">\n      <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n      <component-mapper *ngSwitchCase=\"'Region'\" name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n      <div *ngSwitchDefault>Page Missing: {{ kid.getPConnect().getComponentName() }}</div>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\nconst SUPPORTED_TYPES_IN_PROMOTED_FILTERS = [\n  'TextInput',\n  'Percentage',\n  'Email',\n  'Integer',\n  'Decimal',\n  'Checkbox',\n  'DateTime',\n  'Date',\n  'Time',\n  'Text',\n  'TextArea',\n  'Currency',\n  'URL',\n  'RichText'\n];\n\n@Component({\n  selector: 'app-promoted-filters',\n  templateUrl: './promoted-filters.component.html',\n  styleUrls: ['./promoted-filters.component.scss'],\n  imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class PromotedFiltersComponent implements OnInit, OnDestroy {\n  @Input() viewName;\n  @Input() filters;\n  @Input() listViewProps;\n  @Input() pageClass;\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() parameters = {};\n\n  angularPConnectData: AngularPConnectData = {};\n\n  showFilters: boolean;\n  localeCategory = 'SimpleTable';\n  localizedVal;\n  filtersProperties = {};\n  showTable;\n  transientItemID;\n  processedFilters: any[] = [];\n  payload = {};\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.updateSelf();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n    this.filters.forEach(filter => {\n      this.filtersProperties[PCore.getAnnotationUtils().getPropertyName(filter.config.value)] = '';\n    });\n\n    const filtersWithClassID = { ...this.filtersProperties, classID: this.pageClass };\n    this.transientItemID = this.pConn$.getContainerManager().addTransientItem({ id: this.viewName, data: filtersWithClassID });\n    this.processedFilters = [];\n    this.filters.forEach(filter => {\n      const filterClone = { ...filter };\n      // convert any field which is not supported to TextInput and delete the placeholder as it may contain placeholder specific to original type.\n      if (!SUPPORTED_TYPES_IN_PROMOTED_FILTERS.includes(filterClone.type)) {\n        filterClone.type = 'TextInput';\n        delete filterClone.config.placeholder;\n      }\n      filterClone.config.contextName = this.transientItemID;\n      filterClone.config.readOnly = false;\n      filterClone.config.context = this.transientItemID;\n      filterClone.config.localeReference = this.listViewProps.localeReference;\n      const c11nEnv = PCore.createPConnect({\n        meta: filterClone,\n        options: {\n          hasForm: true,\n          contextName: this.transientItemID\n        }\n      });\n      this.processedFilters.push(c11nEnv);\n    });\n    this.showFilters = true;\n  }\n\n  formatPromotedFilters(promotedFilters) {\n    return Object.entries(promotedFilters).reduce((acc, [field, value]) => {\n      if (value) {\n        acc[field] = {\n          lhs: {\n            field\n          },\n          comparator: 'EQ',\n          rhs: {\n            value\n          }\n        };\n      }\n      return acc;\n    }, {});\n  }\n\n  isValidInput(input) {\n    return Object.values(input).findIndex(v => v) >= 0;\n  }\n\n  getFilterData() {\n    const changes = PCore.getFormUtils().getChanges(this.transientItemID);\n    const formValues = {};\n    Object.keys(changes).forEach(key => {\n      if (!['context_data', 'pageInstructions'].includes(key)) {\n        formValues[key] = changes[key];\n      }\n    });\n    const promotedFilters = this.formatPromotedFilters(formValues);\n    if (PCore.getFormUtils().isFormValid(this.transientItemID) && this.isValidInput(formValues)) {\n      this.showTable = true;\n      const Query: any = {\n        dataViewParameters: this.parameters || {}\n      };\n\n      if (Object.keys(promotedFilters).length > 0) {\n        Query.query = { filter: { filterConditions: promotedFilters } };\n      }\n      this.payload = Query;\n    }\n  }\n\n  clearFilterData() {\n    PCore.getContainerUtils().clearTransientData(this.transientItemID);\n    this.showTable = false;\n    this.pConn$?.getListActions?.()?.setSelectedRows([]); // Clear the selection (if any made by user)\n  }\n}\n","<div>\n  <div>{{ listViewProps.title }}</div>\n  <div *ngIf=\"showFilters\" class=\"psdk-grid-filter\">\n    <div *ngFor=\"let kid of processedFilters\">\n      <component-mapper\n        [name]=\"kid.getPConnect().getComponentName()\"\n        [props]=\"{\n          pConn$: kid.getPConnect(),\n          formGroup$: formGroup$\n        }\"\n        errorMsg=\"Promoted filters wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n      ></component-mapper>\n    </div>\n  </div>\n\n  <div>\n    <button key=\"1\" type=\"button\" (click)=\"clearFilterData()\" data-testid=\"clear\" mat-raised-button color=\"secondary\">\n      {{ localizedVal('Clear', localeCategory) }}\n    </button>\n    <button style=\"float: 'right'\" key=\"2\" type=\"submit\" (click)=\"getFilterData()\" data-testid=\"search\" mat-raised-button color=\"primary\">\n      {{ localizedVal('Search', localeCategory) }}\n    </button>\n  </div>\n  <div *ngIf=\"showTable\">\n    <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload }\"></component-mapper>\n  </div>\n</div>\n","function isEmpty(value: any): boolean {\n  return (\n    // null or undefined\n    value === null ||\n    value === undefined ||\n    ((Array.isArray(value) || typeof value === 'string') && value.length === 0) ||\n    // is an Object and has no keys\n    (value.constructor === Object && Object.keys(value).length === 0)\n  );\n}\n\nexport function getCacheInfo(\n  cache: { selectedCategory: string; activeGroupId: string; searchFields: unknown },\n  groups: { config: { id: string } }[]\n) {\n  let initialActiveGroupId = groups.length ? groups[0].config.id : '';\n\n  let useCache = false;\n  if (cache.activeGroupId && groups?.find(group => group.config.id === cache.activeGroupId)) {\n    initialActiveGroupId = cache.activeGroupId;\n    useCache = true;\n  }\n\n  return { useCache, initialActiveGroupId };\n}\n\nexport function isValidInput(input: { [s: string]: unknown }) {\n  return Object.values(input).some(value => !isEmpty(value));\n}\n","import { Component, Input, OnInit, OnDestroy, forwardRef, OnChanges, ChangeDetectorRef, signal } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { componentCachePersistUtils } from '../search-group/persist-utils';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ComponentMapperComponent } from '../../../../_bridge/component-mapper/component-mapper.component';\nimport { getCacheInfo, isValidInput } from '../search-groups/utils';\nimport { Subscription } from 'rxjs';\n\nconst listViewConstants = {\n  EVENTS: {\n    LIST_VIEW_READY: 'LIST_VIEW_READY'\n  }\n};\n\nexport function flattenObj(obj: any): any {\n  const result: any = {};\n  Object.keys(obj).forEach(key => {\n    if (!['context_data', 'pageInstructions'].includes(key)) {\n      if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {\n        const temp = flattenObj(obj[key]);\n        Object.keys(temp).forEach(nestedKey => {\n          result[`${key}.${nestedKey}`] = temp[nestedKey];\n        });\n      } else {\n        result[key] = obj[key];\n      }\n    }\n  });\n  return result;\n}\n\nexport const initializeSearchFields = (searchFields, getPConnect, referenceListClassID, searchFieldRestoreValues = {}) => {\n  const filtersProperties = {};\n  searchFields?.forEach(field => {\n    let val = '';\n    const { value, defaultValue = '' } = field.config;\n    const propPath = PCore.getAnnotationUtils().getPropertyName(value);\n\n    if (searchFieldRestoreValues[propPath]) {\n      val = searchFieldRestoreValues[propPath];\n    } else if (PCore.getAnnotationUtils().isProperty(defaultValue)) {\n      val = getPConnect().getValue(defaultValue.split(' ')[1]);\n    } else if (defaultValue.startsWith('@L')) {\n      val = defaultValue.split(' ')[1];\n    } else {\n      val = defaultValue;\n    }\n\n    filtersProperties[propPath] = val;\n\n    const valueSplit = value.split('@P ')[1]?.split('.').filter(Boolean) ?? [];\n    valueSplit.pop();\n\n    if (valueSplit.length) {\n      let path = '';\n      let currentClassID = referenceListClassID;\n      valueSplit.forEach(item => {\n        path = path.length ? `${path}.${item}` : item;\n        currentClassID = (PCore.getMetadataUtils().getPropertyMetadata(item, currentClassID) as any).pageClass;\n        if (currentClassID) {\n          filtersProperties[`${path}.classID`] = currentClassID;\n        }\n      });\n    }\n  });\n  return filtersProperties;\n};\n\n@Component({\n  selector: 'app-search-groups',\n  templateUrl: './search-groups.component.html',\n  styleUrls: ['./search-groups.component.scss'],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatRadioModule,\n    MatOptionModule,\n    MatSelectModule,\n    MatButtonModule,\n    forwardRef(() => ComponentMapperComponent)\n  ]\n})\nexport class SearchGroupsComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() searchGroupsProps;\n\n  configProps$: any;\n  cache: any;\n  previousFormValues: any;\n  isValidatorField: any;\n  searchSelectCacheKey: any;\n  activeGroupId: string;\n  getPConnect: any;\n  searchFields: any;\n  referenceListClassID: any;\n  transientItemID: any;\n  useCache: boolean;\n  searchFieldsC11nEnv: any = signal(null);\n  referenceFieldName: any;\n  viewName: any;\n  subs: Subscription[] = [];\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  setShowRecords: any;\n  groups: any;\n  state: any = {};\n  rawGroupsConfig: any;\n  initialSearchFields: {};\n  constructor(private cdRef: ChangeDetectorRef) {}\n\n  ngOnInit(): void {\n    console.log('SearchGroupsComponent - ngOnInit');\n  }\n\n  ngOnChanges() {\n    this.updateSelf();\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    const { searchGroups: groups, referenceList } = this.configProps$;\n    const { getPConnect, editableField, searchSelectCacheKey, cache } = this.searchGroupsProps;\n    this.searchSelectCacheKey = searchSelectCacheKey;\n    this.getPConnect = getPConnect;\n    this.cache = cache || {};\n    const referenceFieldName = editableField.replaceAll('.', '_');\n    const { classID: referenceListClassID } = PCore.getMetadataUtils().getDataPageMetadata(referenceList) as any;\n    const { useCache, initialActiveGroupId } = getCacheInfo(cache, groups);\n    this.activeGroupId = initialActiveGroupId;\n    const rawGroupsConfig = this.pConn$.getRawConfigProps().searchGroups;\n    const activeGroupIndex = groups.findIndex(group => group.config.id === this.activeGroupId);\n    const { children: searchFieldsChildren = [] } = activeGroupIndex !== -1 ? rawGroupsConfig[activeGroupIndex] : {};\n    this.searchFields = searchFieldsChildren.map(field => ({\n      ...field,\n      config: { ...field.config, isSearchField: true }\n    }));\n    this.initialSearchFields = initializeSearchFields(\n      this.searchFields,\n      getPConnect,\n      referenceListClassID,\n      useCache && cache.activeGroupId === this.activeGroupId ? cache.searchFields : {}\n    );\n    const filtersWithClassID = {\n      ...this.initialSearchFields,\n      classID: referenceListClassID\n    };\n    const viewName = this.pConn$.getCurrentView();\n    const transientId = getPConnect.getContainerManager().addTransientItem({ id: `${referenceFieldName}-${viewName}`, data: filtersWithClassID });\n    this.transientItemID = transientId;\n    this.createSearchFields();\n  }\n\n  createSearchFields() {\n    const searchFieldsViewConfig = {\n      name: 'SearchFields',\n      type: 'View',\n      config: {\n        template: 'DefaultForm',\n        NumCols: '3',\n        contextName: this.transientItemID, // can be null initially; will be replaced after transient creation\n        readOnly: false,\n        context: this.transientItemID,\n        localeReference: this.searchGroupsProps.localeReference\n      },\n      children: [\n        {\n          name: 'Fields',\n          type: 'Region',\n          children: this.searchFields\n        }\n      ]\n    };\n\n    // Create c11n env (Angular will render this via the SDK host component)\n    this.searchFieldsC11nEnv.set(\n      PCore.createPConnect({\n        meta: searchFieldsViewConfig,\n        options: {\n          hasForm: true,\n          contextName: this.transientItemID\n        }\n      })\n    );\n\n    this.cdRef.detectChanges();\n  }\n\n  getFilterData(): void {\n    let changes = PCore.getFormUtils().getSubmitData(this.transientItemID, {\n      isTransientContext: true,\n      includeDisabledFields: true\n    });\n\n    if (Object.keys(this.cache.searchFields ?? {}).length > 0 && Object.keys(changes).length === 1) {\n      changes = this.cache.searchFields;\n    }\n\n    const formValues = flattenObj(changes);\n\n    if (\n      !PCore.isDeepEqual(this.previousFormValues, formValues) &&\n      PCore.getFormUtils().isFormValid(this.transientItemID) &&\n      isValidInput(formValues)\n    ) {\n      if (this.isValidatorField) {\n        // @ts-ignore\n        PCore.getMessageManager().clearContextMessages({ context: transientItemID });\n      }\n\n      this.previousFormValues = formValues;\n      // this.setShowRecords(true);\n\n      PCore.getPubSubUtils().publish(PCore.getEvents().getTransientEvent().UPDATE_PROMOTED_FILTERS, {\n        payload: formValues,\n        showRecords: true,\n        viewName: this.getPConnect.getCurrentView()\n      });\n    }\n\n    this.state.activeGroupId = this.activeGroupId;\n    this.state.searchFields = changes;\n    this.state.selectedCategory = this.getPConnect.getCurrentView();\n    const options = componentCachePersistUtils.getComponentStateOptions(this.getPConnect);\n    componentCachePersistUtils.setComponentCache({\n      cacheKey: this.searchSelectCacheKey,\n      state: this.state,\n      options\n    });\n  }\n\n  resetFilterData(): void {\n    PCore.getNavigationUtils().resetComponentCache(this.searchSelectCacheKey);\n    const resetPayload = {\n      transientItemID: this.transientItemID,\n      data: initializeSearchFields(this.searchFields, this.getPConnect, this.referenceListClassID),\n      options: { reset: true }\n    };\n    PCore.getContainerUtils().updateTransientData(resetPayload);\n  }\n\n  /** NEW: update existing transient data when active group changes */\n  updateTransientDataForActiveGroup() {\n    const filtersWithClassID = {\n      ...this.initialSearchFields,\n      classID: this.referenceListClassID\n    };\n\n    if (this.transientItemID) {\n      // this mirrors the React: PCore.getContainerUtils().replaceTransientData(...)\n      PCore.getContainerUtils().replaceTransientData({ transientItemID: this.transientItemID, data: filtersWithClassID });\n    }\n  }\n\n  onActiveGroupChange(event: any) {\n    this.activeGroupId = event.value;\n    // update searchFields for the newly selected group (mirror how React recalculates)\n    const activeGroupIndex = this.groups.findIndex(g => g.config.id === this.activeGroupId);\n    const searchFieldsChildren = activeGroupIndex !== -1 ? this.rawGroupsConfig[activeGroupIndex]?.children || [] : [];\n    this.searchFields = searchFieldsChildren.map(field => ({\n      ...field,\n      config: { ...field.config, isSearchField: true }\n    }));\n\n    // IMPORTANT: call replaceTransientData to update the transient with the new group's search fields\n    this.updateTransientDataForActiveGroup();\n  }\n\n  private setupCacheReplayOnListViewReady(): void {\n    if (Object.keys(this.cache?.searchFields ?? {}).length > 0) {\n      const sub: any = PCore.getPubSubUtils().subscribe(\n        listViewConstants.EVENTS.LIST_VIEW_READY,\n        ({ viewName }: { viewName: string }) => {\n          if (viewName === this.viewName && this.useCache) {\n            this.getFilterData();\n          }\n        },\n        `${this.searchSelectCacheKey}-listview-ready`\n      );\n      this.subs.push(sub);\n    }\n  }\n\n  ngOnDestroy(): void {\n    PCore.getPubSubUtils().unsubscribe(listViewConstants.EVENTS.LIST_VIEW_READY, `${this.searchSelectCacheKey}-listview-ready`);\n    this.subs.forEach(s => s.unsubscribe());\n  }\n}\n","<div class=\"search-groups-container\" fxLayout=\"column\" fxLayoutGap=\"16px\">\n  <!-- Dropdown if multiple groups -->\n  <div *ngIf=\"groups && groups.length > 1\">\n    <mat-form-field appearance=\"fill\" style=\"width: 100%\">\n      <mat-label>Search By</mat-label>\n      <mat-select [value]=\"activeGroupId\" (selectionChange)=\"onActiveGroupChange($event.value)\">\n        <mat-option *ngFor=\"let group of groups\" [value]=\"group.config.id\">\n          {{ group.config.label }}\n        </mat-option>\n      </mat-select>\n    </mat-form-field>\n  </div>\n\n  <!-- Search Fields Form -->\n  <div *ngIf=\"transientItemID\">\n    <component-mapper\n      [name]=\"searchFieldsC11nEnv()?.getPConnect().getComponentName()\"\n      [props]=\"{ pConn$: searchFieldsC11nEnv()?.getPConnect(), formGroup$ }\"\n      errorMsg=\"View Missing (displayAll): {{ searchFieldsC11nEnv()?.getPConnect().getComponentName() }}\"\n    ></component-mapper>\n  </div>\n\n  <!-- Action Buttons -->\n  <div style=\"display: flex; gap: 8px; margin-bottom: 10px\">\n    <button mat-stroked-button type=\"button\" (click)=\"resetFilterData()\">\n      {{ localizedVal('Reset', 'SimpleTable') }}\n    </button>\n    <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"getFilterData()\">\n      {{ localizedVal('Search', 'SimpleTable') }}\n    </button>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { interval } from 'rxjs';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { prepareCaseSummaryData } from '../utils';\n\ninterface SelfServiceCaseViewProps {\n  // If any, enter additional props that only exist on this component\n  icon: string;\n  subheader: string;\n  header: string;\n  showCaseLifecycle: any;\n  showSummaryRegion: any;\n  showUtilitiesRegion: any;\n  showCaseActions: any;\n  caseClass: any;\n}\n\n@Component({\n  selector: 'app-self-service-case-view',\n  templateUrl: './self-service-case-view.component.html',\n  styleUrls: ['./self-service-case-view.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SelfServiceCaseViewComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: SelfServiceCaseViewProps;\n\n  arChildren$: any[];\n\n  heading$ = '';\n  id$ = '';\n  status$ = '';\n\n  arAvailableActions$: any[] = [];\n  arAvailabeProcesses$: any[] = [];\n\n  caseSummaryPConn$: any;\n  currentCaseID = '';\n  editAction: boolean;\n  localizedVal: any;\n  localeCategory = 'CaseView';\n  localeKey: any;\n  showCaseLifecycle: boolean;\n  showSummaryRegion: boolean;\n  showUtilitiesRegion: boolean;\n  showCaseActions: boolean;\n  utilityRegion: any;\n  primarySummaryFields: any;\n  secondarySummaryFields: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n    this.localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n    if (bUpdateSelf) {\n      // generally, don't want to refresh everything when data changes in caseView, it is usually the\n      // case summary.  But check if the case ID changes, this means a different case and we should\n      // update all.\n      if (this.hasCaseIDChanged()) {\n        this.fullUpdate();\n\n        // update okToInitFlowContainer, because case view was drawn, flow container will need to be init\n        // to match Nebula/Constellation\n        sessionStorage.setItem('okToInitFlowContainer', 'true');\n      } else {\n        this.updateHeaderAndSummary();\n      }\n    }\n  }\n\n  hasCaseIDChanged(): boolean {\n    if (this.currentCaseID !== this.pConn$.getDataObject().caseInfo.ID) {\n      this.currentCaseID = this.pConn$.getDataObject().caseInfo.ID;\n      return true;\n    }\n    return false;\n  }\n\n  updateHeaderAndSummary() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SelfServiceCaseViewProps;\n\n    const kids = this.pConn$.getChildren() as any[];\n    for (const kid of kids) {\n      const meta = kid.getPConnect().getRawMetadata();\n      if (meta.type.toLowerCase() == 'region' && meta.name.toLowerCase() == 'summary') {\n        this.caseSummaryPConn$ = kid.getPConnect().getChildren()[0].getPConnect();\n      }\n    }\n\n    // have to put in a timeout, otherwise get an angular change event error\n    const timer = interval(100).subscribe(() => {\n      timer.unsubscribe();\n\n      this.heading$ = PCore.getLocaleUtils().getLocaleValue(this.configProps$.header, '', this.localeKey);\n      this.id$ = this.configProps$.subheader;\n      this.status$ = this.pConn$.getValue('.pyStatusWork');\n    });\n  }\n\n  fullUpdate() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SelfServiceCaseViewProps;\n    this.localeKey = this.pConn$?.getCaseLocaleReference();\n    this.updateHeaderAndSummary();\n\n    this.arChildren$ = this.pConn$.getChildren() as any[];\n\n    const caseInfo = this.pConn$.getDataObject().caseInfo;\n    this.currentCaseID = caseInfo.ID;\n    this.arAvailableActions$ = caseInfo?.availableActions ? caseInfo.availableActions : [];\n    this.editAction = this.arAvailableActions$.find(action => action.ID === 'pyUpdateCaseDetails');\n    this.arAvailabeProcesses$ = caseInfo?.availableProcesses ? caseInfo.availableProcesses : [];\n\n    const { showCaseLifecycle = true, showSummaryRegion = true, showUtilitiesRegion = true, showCaseActions = true, caseClass } = this.configProps$;\n    this.showCaseLifecycle = this.utils.getBooleanValue(showCaseLifecycle);\n    this.showSummaryRegion = this.utils.getBooleanValue(showSummaryRegion);\n    this.showUtilitiesRegion = this.utils.getBooleanValue(showUtilitiesRegion);\n    this.showCaseActions = this.utils.getBooleanValue(showCaseActions);\n    const isObjectType: boolean = (PCore.getCaseUtils() as any).isObjectCaseType(caseClass);\n    this.utilityRegion = isObjectType ? this.filterUtilities(this.arChildren$[2]) : this.filterUtilities(this.arChildren$[4]);\n    if (this.showSummaryRegion) {\n      const { primarySummaryFields, secondarySummaryFields } = prepareCaseSummaryData(\n        this.arChildren$[0],\n        (config: any) => config?.availableInChannel?.selfService === true\n      );\n      this.primarySummaryFields = primarySummaryFields;\n      this.secondarySummaryFields = secondarySummaryFields;\n    }\n  }\n\n  filterUtilities(utils) {\n    let utilsMeta;\n    const pConnect = utils.getPConnect();\n    utilsMeta = pConnect.getRawMetadata?.();\n    if (!utilsMeta?.children?.length) return;\n    utilsMeta = {\n      ...utilsMeta,\n      children: utilsMeta.children.filter((child: any) => child.config?.availableInChannel?.selfService === true)\n    };\n    return utilsMeta.children?.length ? pConnect.createComponent(utilsMeta) : undefined;\n  }\n\n  isUtilitiesRegionNotEmpty() {\n    if (this.utilityRegion && this.utilityRegion.getPConnect()?.getChildren()?.length > 0) {\n      return this.utilityRegion\n        .getPConnect()\n        .getChildren()\n        .some((prop: { getPConnect: () => any }) => prop.getPConnect().getConfigProps().visibility !== false);\n    }\n    return false;\n  }\n\n  updateSelf() {\n    this.fullUpdate();\n  }\n\n  _menuActionClick(data) {\n    const actionsAPI = this.pConn$.getActionsApi();\n    const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n    openLocalAction(data.ID, { ...data, containerName: 'modal', type: 'express' });\n  }\n\n  _menuProcessClick(data) {\n    const actionsAPI = this.pConn$.getActionsApi();\n    const openProcessAction = actionsAPI.openProcessAction.bind(actionsAPI);\n\n    openProcessAction(data.ID, { ...data });\n  }\n}\n","<div class=\"psdk-self-service-case-view\">\n  <div class=\"psdk-self-service-case-view-header\">\n    <div class=\"heading\">{{ this.heading$ }}</div>\n    <div *ngIf=\"showCaseActions\" class=\"psdk-case-view-buttons\">\n      <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n      <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n        <ng-container *ngFor=\"let action of arAvailableActions$\">\n          <button mat-menu-item (click)=\"_menuActionClick(action)\">\n            {{ localizedVal(action.name, '', localeKey) }}\n          </button>\n        </ng-container>\n        <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n          <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n            {{ process.name }}\n          </button>\n        </ng-container>\n      </mat-menu>\n    </div>\n  </div>\n  <div class=\"psdk-case-view\" id=\"case-view\">\n    <div class=\"psdk-case-view-info\" *ngIf=\"showSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0)\">\n      <mat-toolbar class=\"psdk-case-view-toolbar\">\n        <mat-toolbar-row class=\"psdk-case-view-toolbar-row\">\n          <div class=\"psdk-case-view-heading\">\n            <div>\n              <h1 id=\"case-name\">{{ heading$ }}</h1>\n            </div>\n            <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n            <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n          </div>\n        </mat-toolbar-row>\n      </mat-toolbar>\n      <div class=\"psdk-case-view-divider\"></div>\n      <div class=\"psdk-case-view-summary\">\n        <component-mapper\n          name=\"CaseSummaryFields\"\n          [props]=\"{ primaryFields$: primarySummaryFields, secondaryFields$: secondarySummaryFields }\"\n        ></component-mapper>\n      </div>\n    </div>\n    <div class=\"psdk-case-view-main\">\n      <div>\n        <div *ngFor=\"let kid of arChildren$\">\n          <div\n            *ngIf=\"\n              kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' &&\n              kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages' &&\n              showCaseLifecycle\n            \"\n          >\n            <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n          </div>\n        </div>\n      </div>\n\n      <div *ngFor=\"let kid of arChildren$\">\n        <div\n          *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n        >\n          <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n        </div>\n      </div>\n\n      <div *ngFor=\"let kid of arChildren$\">\n        <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n          <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n        </div>\n      </div>\n    </div>\n    <div class=\"psdk-case-view-utilities\" *ngIf=\"arChildren$ && showUtilitiesRegion && isUtilitiesRegionNotEmpty()\">\n      <div *ngFor=\"let kid of arChildren$\">\n        <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n          <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { getSeconds } from '../../../_helpers/common';\n\nexport const TABLE_CELL = 'SdkRenderer';\nexport const DELETE_ICON = 'DeleteIcon';\n\n// BUG-615253: Workaround for autosize in table with lazy loading components\n/* istanbul ignore next */\nfunction getFieldWidth(field, label) {\n  let width;\n  switch (field.type) {\n    case 'Time':\n      width = 150;\n      break;\n    case 'Date':\n      width = 160;\n      break;\n    case 'DateTime':\n      width = 205;\n      break;\n    case 'AutoComplete':\n    case 'TextArea':\n      width = 190;\n      break;\n    case 'Currency':\n    case 'TextInput':\n      width = 182;\n      break;\n    case 'Checkbox':\n      // eslint-disable-next-line no-case-declarations\n      const text = document.createElement('span');\n      document.body.appendChild(text);\n      text.style.fontSize = '13px';\n      text.style.position = 'absolute';\n      text.innerHTML = label;\n      width = Math.ceil(text.clientWidth) + 30;\n      document.body.removeChild(text);\n      break;\n    default:\n      width = 180;\n  }\n  return width;\n}\n\nexport const getContext = thePConn => {\n  const contextName = thePConn.getContextName();\n  const pageReference = thePConn.getPageReference();\n  const { readonlyContextList, referenceList = readonlyContextList } = thePConn.getStateProps()?.config || thePConn.getStateProps();\n\n  const pageReferenceForRows = referenceList?.startsWith('.') ? `${pageReference}.${referenceList?.substring(1)}` : referenceList;\n  const viewName = thePConn.viewName;\n\n  // removing \"caseInfo.content\" prefix to avoid setting it as a target while preparing pageInstructions\n  // skipping the removal as StateMachine itself is removing this case info prefix while preparing pageInstructions\n  // referenceList = pageReferenceForRows.replace(PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT, '');\n\n  return {\n    contextName,\n    referenceListStr: referenceList,\n    pageReferenceForRows,\n    viewName\n  };\n};\n\nexport const populateRowKey = rawData => {\n  return rawData.map((row, index) => {\n    return { ...row, index };\n  });\n};\n\nexport const getApiContext = (processedData, pConnect, reorderCB) => {\n  return {\n    fetchData: () => {\n      return new Promise(resolve => {\n        resolve({\n          data: processedData,\n          filteredRecordCount: processedData.length,\n          totalRecordCount: processedData.length\n        });\n      });\n    },\n    fetchPersonalizations: () => {\n      return Promise.resolve({});\n    },\n    applyRowReorder: (sourceKey, destinationKey) => {\n      // indexes are keys for simple table so, it should work.\n      reorderCB();\n      return Promise.resolve(pConnect.getListActions().reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10)));\n    }\n  };\n};\n\nexport const buildMetaForListView = (fieldMetadata, fields, type, ruleClass, name, propertyLabel, isDataObject, parameters) => {\n  return {\n    name,\n    config: {\n      type,\n      referenceList: fieldMetadata.datasource.name,\n      parameters: parameters ?? fieldMetadata.datasource.parameters,\n      personalization: false,\n      isDataObject,\n      grouping: true,\n      globalSearch: true,\n      reorderFields: true,\n      toggleFieldVisibility: true,\n      title: propertyLabel,\n      personalizationId: '' /* TODO */,\n      template: 'ListView',\n      presets: [\n        {\n          name: 'presets',\n          template: 'Table',\n          config: {},\n          children: [\n            {\n              name: 'Columns',\n              type: 'Region',\n              children: fields\n            }\n          ],\n          label: propertyLabel,\n          id: 'P_' /* TODO */\n        }\n      ],\n      ruleClass\n    }\n  };\n};\n\nconst PRIMARY_FIELDS = 'pyPrimaryFields';\nconst SUPPORTED_FIELD_TYPES = [\n  'Address',\n  'TextArea',\n  'TextInput',\n  'Phone',\n  'Email',\n  'Time',\n  'URL',\n  'Percentage',\n  'Integer',\n  'Decimal',\n  'Date',\n  'DateTime',\n  'Currency',\n  'Checkbox',\n  'Dropdown',\n  'AutoComplete',\n  'UserReference',\n  'RichText'\n];\n\nexport const getConfigFields = (rawFields, contextClass, primaryFieldsViewIndex) => {\n  let primaryFields: any = [];\n  let configFields: any = [];\n\n  if (primaryFieldsViewIndex > -1) {\n    let primaryFieldVMD: any = PCore.getMetadataUtils().resolveView(PRIMARY_FIELDS);\n    if (Array.isArray(primaryFieldVMD)) {\n      primaryFieldVMD = primaryFieldVMD.find(primaryFieldView => primaryFieldView.classID === contextClass);\n      primaryFields = primaryFieldVMD?.children?.[0]?.children || [];\n    } else if (primaryFieldVMD?.classID === contextClass) {\n      primaryFields = primaryFieldVMD?.children?.[0]?.children || [];\n    }\n\n    if (primaryFields.length) {\n      primaryFields = primaryFields.filter(primaryField => SUPPORTED_FIELD_TYPES.includes(primaryField.type));\n    }\n  }\n\n  configFields = [...rawFields.slice(0, primaryFieldsViewIndex), ...primaryFields, ...rawFields.slice(primaryFieldsViewIndex + 1)];\n  // filter duplicate fields after combining raw fields and primary fields\n  return configFields.filter((field, index) => configFields.findIndex(_field => field.config?.value === _field.config?.value) === index);\n};\n\nexport function isFLProperty(label) {\n  return label?.startsWith('@FL');\n}\n\n/**\n * [getFieldLabel]\n * Description - A utility that returns resolved field label for \"@FL\" annotation i.e from data model.\n * @param {Object} fieldConfig\n * @returns {string} resolved label string\n *\n * example:\n * fieldConfig = {label: \"@FL .pyID\", classID: \"TestCase-Work\"};\n * return \"Case ID\"\n */\nexport function getFieldLabel(fieldConfig) {\n  const { label, classID, caption } = fieldConfig;\n  let fieldLabel = (label ?? caption)?.substring(4);\n  const labelSplit = fieldLabel?.split('.');\n  const propertyName = labelSplit?.pop();\n  const fieldMetaData: any = PCore.getMetadataUtils().getPropertyMetadata(propertyName, classID) ?? {};\n  fieldLabel = fieldMetaData.label ?? fieldMetaData.caption ?? propertyName;\n  return fieldLabel;\n}\n\nexport const updateFieldLabels = (fields, configFields, primaryFieldsViewIndex, pConnect, options) => {\n  const labelsOfFields: any = [];\n  const { columnsRawConfig = [] } = options;\n  fields.forEach((field, idx) => {\n    const rawColumnConfig = columnsRawConfig[idx]?.config;\n    if (field.config.value === PRIMARY_FIELDS) {\n      labelsOfFields.push('');\n    } else if (isFLProperty(rawColumnConfig?.label ?? rawColumnConfig?.caption)) {\n      labelsOfFields.push(getFieldLabel(rawColumnConfig) || field.config.label || field.config.caption);\n    } else {\n      labelsOfFields.push(field.config.label || field.config.caption);\n    }\n  });\n\n  if (primaryFieldsViewIndex > -1) {\n    const totalPrimaryFieldsColumns = configFields.length - fields.length + 1;\n    if (totalPrimaryFieldsColumns) {\n      const primaryFieldLabels: any = [];\n      for (let i = primaryFieldsViewIndex; i < primaryFieldsViewIndex + totalPrimaryFieldsColumns; i += 1) {\n        let label = configFields[i].config?.label;\n        if (isFLProperty(label)) {\n          label = getFieldLabel(configFields[i].config);\n        } else if (label.startsWith('@')) {\n          label = label.substring(3);\n        }\n        if (pConnect) {\n          label = pConnect.getLocalizedValue(label);\n        }\n        primaryFieldLabels.push(label);\n      }\n      labelsOfFields.splice(primaryFieldsViewIndex, 1, ...primaryFieldLabels);\n    } else {\n      labelsOfFields.splice(primaryFieldsViewIndex, 1);\n    }\n  }\n  return labelsOfFields;\n};\n\nexport const buildFieldsForTable = (configFields, pConnect, showDeleteButton, options) => {\n  const { primaryFieldsViewIndex, fields } = options;\n\n  // get resolved field labels for primary fields raw config included in configFields\n  const fieldsLabels = updateFieldLabels(fields, configFields, primaryFieldsViewIndex, pConnect, {\n    columnsRawConfig: pConnect.getRawConfigProps()?.children?.find(item => item?.name === 'Columns')?.children\n  });\n\n  const fieldDefs = configFields?.map((field, index) => {\n    return {\n      type: 'text',\n      label: fieldsLabels[index],\n      fillAvailableSpace: !!field.config.fillAvailableSpace,\n      id: `${index}`,\n      name: field.config.value.substr(4),\n      cellRenderer: TABLE_CELL,\n      sort: false,\n      noContextMenu: true,\n      showMenu: false,\n      meta: {\n        ...field\n      },\n      // BUG-615253: Workaround for autosize in table with lazy loading components\n      width: getFieldWidth(field, fields[index].config.label)\n    };\n  });\n\n  // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE\n  if (showDeleteButton) {\n    fieldDefs.push({\n      type: 'text',\n      label: '',\n      name: DELETE_ICON,\n      id: fieldDefs.length,\n      cellRenderer: DELETE_ICON,\n      sort: false,\n      noContextMenu: true,\n      showMenu: false,\n      // BUG-615253: Workaround for autosize in table with lazy loading components\n      width: 46\n    });\n  }\n\n  return fieldDefs;\n};\n\nexport const createMetaForTable = (fields, renderMode) => {\n  return {\n    height: {\n      minHeight: 'auto',\n      fitHeightToElement: 'fitHeightToElement',\n      deltaAdjustment: 'deltaAdjustment',\n      autoSize: true\n    },\n    fieldDefs: fields,\n    itemKey: 'index',\n    grouping: false,\n    reorderFields: false,\n    reorderItems: renderMode === 'Editable',\n    dragHandle: renderMode === 'Editable',\n    globalSearch: false,\n    personalization: false,\n    toggleFieldVisibility: false,\n    toolbar: false,\n    footer: false,\n    filterExpression: null,\n    editing: false,\n    timezone: PCore.getEnvironmentInfo().getTimeZone()\n  };\n};\n\nexport const filterDataByDate = (item, filterObj) => {\n  let bKeep = true;\n  let value = item[filterObj.ref] != null || item[filterObj.ref] != '' ? getSeconds(item[filterObj.ref]) : null;\n  let filterValue = filterObj.containsFilterValue != null && filterObj.containsFilterValue != '' ? getSeconds(filterObj.containsFilterValue) : null;\n\n  switch (filterObj.containsFilter) {\n    case 'notequal':\n      // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n      if (value != null && filterValue != null) {\n        // get rid of millisecons\n        value /= 1000;\n        filterValue /= 1000;\n\n        const diff = value - filterValue;\n        if (diff >= 0 && diff < 60) {\n          bKeep = false;\n        }\n      }\n\n      break;\n    case 'after':\n      if (value < filterValue) {\n        bKeep = false;\n      }\n      break;\n    case 'before':\n      if (value > filterValue) {\n        bKeep = false;\n      }\n      break;\n    case 'null':\n      if (value != null) {\n        bKeep = false;\n      }\n      break;\n    case 'notnull':\n      if (value == null) {\n        bKeep = false;\n      }\n      break;\n    default:\n      break;\n  }\n\n  return bKeep;\n};\n\nexport const filterDataByCommonFields = (item, filterObj) => {\n  let bKeep = true;\n  const value = item[filterObj.ref].toLowerCase();\n  const filterValue = filterObj.containsFilterValue.toLowerCase();\n\n  switch (filterObj.containsFilter) {\n    case 'contains':\n      if (value.indexOf(filterValue) < 0) {\n        bKeep = false;\n      }\n      break;\n    case 'equals':\n      if (value != filterValue) {\n        bKeep = false;\n      }\n      break;\n    case 'startswith':\n      if (value.indexOf(filterValue) != 0) {\n        bKeep = false;\n      }\n      break;\n    default:\n      break;\n  }\n\n  return bKeep;\n};\n\n/**\n * This method returns a callBack function for Add action.\n * @param {object} pConnect - PConnect object\n * @param {number} index - index of the page list to add\n */\nexport const getAddRowCallback = (pConnect, index) => {\n  return () => pConnect.getListActions().insert({}, index);\n};\n\n/**\n * This method creates a PConnect object with proper options for Add and Delete actions\n * @param {string} contextName - contextName\n * @param {string} referenceList - referenceList\n * @param {string} pageReference - pageReference\n */\nexport const createPConnect = (contextName, referenceList, pageReference) => {\n  const options = {\n    context: contextName,\n    pageReference,\n    referenceList\n  };\n\n  // create PConnect object\n  const config = { meta: {}, options };\n  const { getPConnect } = PCore.createPConnect(config as any);\n\n  return getPConnect();\n};\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { buildMetaForListView, getContext } from '../simple-table-manual/helpers';\n\ninterface SimpleTableProps {\n  // If any, enter additional props that only exist on this component\n  multiRecordDisplayAs: string;\n  contextClass: any;\n  visibility: boolean;\n  label: string;\n  propertyLabel: string;\n  displayMode: string;\n  fieldMetadata: any;\n  hideLabel: boolean;\n  parameters: any;\n  isDataObject: boolean;\n  type: string;\n  ruleClass: string;\n  authorContext: string;\n  name: string;\n}\n\n@Component({\n  selector: 'app-simple-table',\n  templateUrl: './simple-table.component.html',\n  styleUrls: ['./simple-table.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SimpleTableComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  angularPConnectData: AngularPConnectData = {};\n\n  bVisible$ = true;\n  configProps$: SimpleTableProps;\n  fieldGroupProps: any;\n  listViewProps: any;\n  refToPConnect: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    // Then, continue on with other initialization\n\n    // call checkAndUpdate when initializing\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    // moved this from ngOnInit() and call this from there instead...\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableProps;\n\n    if (this.configProps$.visibility != null) {\n      this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n    }\n\n    const { multiRecordDisplayAs } = this.configProps$;\n    let { contextClass } = this.configProps$;\n    if (!contextClass) {\n      let listName = this.pConn$.getComponentConfig().referenceList;\n      listName = PCore.getAnnotationUtils().getPropertyName(listName);\n      contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;\n    }\n    if (multiRecordDisplayAs === 'fieldGroup') {\n      this.fieldGroupProps = { ...this.configProps$, contextClass };\n    }\n\n    const {\n      label: labelProp,\n      propertyLabel,\n      displayMode,\n      fieldMetadata,\n      hideLabel,\n      parameters,\n      isDataObject,\n      type,\n      ruleClass,\n      authorContext,\n      name\n    } = this.configProps$;\n\n    const label = labelProp || propertyLabel;\n\n    const propsToUse = { label, ...this.pConn$.getInheritedProps() };\n    const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n\n    if (fieldMetadata && fieldMetadata.type === 'Page List' && fieldMetadata.dataRetrievalType === 'refer') {\n      const {\n        children: [{ children: rawFields }],\n        parameters: rawParams\n      } = (this.pConn$.getRawMetadata() as any).config;\n\n      if (isDisplayModeEnabled && hideLabel) {\n        propsToUse.label = '';\n      }\n\n      const metaForListView = buildMetaForListView(\n        fieldMetadata,\n        rawFields,\n        type,\n        ruleClass,\n        name,\n        propsToUse.label,\n        isDataObject,\n        parameters // resolved params\n      );\n\n      const metaForPConnect = JSON.parse(JSON.stringify(metaForListView));\n      // @ts-ignore - PCore.getMetadataUtils().getPropertyMetadata - An argument for 'currentClassID' was not provided.\n      metaForPConnect.config.parameters = rawParams ?? PCore.getMetadataUtils().getPropertyMetadata(name)?.datasource?.parameters;\n\n      const { referenceListStr: referenceList } = getContext(this.pConn$);\n      let requiredContextForQueryInDisplayMode = {};\n      if (isDisplayModeEnabled) {\n        requiredContextForQueryInDisplayMode = {\n          referenceList\n        };\n      }\n      const options = {\n        context: this.pConn$.getContextName(),\n        pageReference: this.pConn$.getPageReference(),\n        ...requiredContextForQueryInDisplayMode\n      };\n\n      this.refToPConnect = PCore.createPConnect({ meta: metaForPConnect, options }).getPConnect();\n\n      this.listViewProps = {\n        ...metaForListView.config,\n        displayMode,\n        fieldName: authorContext\n      };\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n}\n","<ng-container *ngIf=\"bVisible$\">\n  <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n    <div *ngIf=\"fieldGroupProps\">\n      <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n    </div>\n    <div *ngIf=\"listViewProps\">\n      <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n    </div>\n  </div>\n  <ng-template #table>\n    <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n  </ng-template>\n</ng-container>\n","import { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport isEqual from 'fast-deep-equal';\n\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { DatapageService } from '../../../_services/datapage.service';\nimport { getReferenceList } from '../../../_helpers/field-group-utils';\nimport { buildFieldsForTable, filterDataByCommonFields, filterDataByDate, getContext } from './helpers';\nimport { evaluateAllowRowAction } from '../utils';\nimport { Utils } from '../../../_helpers/utils';\nimport { getSeconds } from '../../../_helpers/common';\n\ninterface SimpleTableManualProps {\n  // If any, enter additional props that only exist on this component\n  visibility?: boolean;\n  grouping?: any;\n  referenceList?: any[];\n  children?: any[];\n  renderMode?: string;\n  presets?: any[];\n  label?: string;\n  showLabel?: boolean;\n  dataPageName?: string;\n  contextClass?: string;\n  propertyLabel?: string;\n  fieldMetadata?: any;\n  allowActions?: any;\n  allowTableEdit?: boolean;\n  allowRowDelete?: any;\n  editMode?: string;\n  addAndEditRowsWithin?: any;\n  viewForAddAndEditModal?: any;\n  editModeConfig?: any;\n  displayMode?: string;\n  useSeparateViewForEdit: any;\n  viewForEditModal: any;\n  targetClassLabel: string;\n}\n\nclass Group {\n  level = 0;\n  parent: Group;\n  expanded = true;\n  totalCounts = 0;\n  get visible(): boolean {\n    return !this.parent || (this.parent.visible && this.parent.expanded);\n  }\n}\n\n@Component({\n  selector: 'app-simple-table-manual',\n  templateUrl: './simple-table-manual.component.html',\n  styleUrls: ['./simple-table-manual.component.scss'],\n  imports: [\n    CommonModule,\n    MatTableModule,\n    MatButtonModule,\n    MatSortModule,\n    MatMenuModule,\n    MatFormFieldModule,\n    MatDatepickerModule,\n    MatOptionModule,\n    MatSelectModule,\n    MatInputModule,\n    MatIcon,\n    forwardRef(() => ComponentMapperComponent)\n  ],\n  providers: [DatapageService]\n})\nexport class SimpleTableManualComponent implements OnInit, OnDestroy {\n  @ViewChild(MatSort) sort: MatSort;\n\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: SimpleTableManualProps;\n  fields$: any[];\n\n  bVisible$ = true;\n  displayedColumns: string[] = [];\n  rowData: MatTableDataSource<any>;\n  originalData: any[] = [];\n  processedFields: any[] = [];\n  fieldDefs: any[] = [];\n  requestedReadOnlyMode = false;\n  readOnlyMode = false;\n  editableMode: boolean;\n  menuIconOverride$: string;\n  pageReference: string;\n  referenceList: any;\n  contextClass: any;\n  showAddRowButton: boolean;\n  prevReferenceList: any[] = [];\n  elementsData: MatTableDataSource<any>;\n  originalElementsData: MatTableDataSource<any>;\n  rawFields: any;\n  label?: string = '';\n  searchIcon$: string;\n\n  bShowSearch$ = false;\n  bColumnReorder$ = false;\n  bGrouping$ = false;\n\n  perfFilter: string;\n  searchFilter: string;\n\n  menuSvgIcon$: string;\n  arrowSvgIcon$ = '';\n  arrowDownSvgIcon$: string;\n  arrowUpSvgIcon$: string;\n\n  filterSvgIcon$: string;\n  filterOnSvgIcon$: string;\n  groupBySvgIcon$: string;\n\n  groupByColumns$: string[] = [];\n  compareType: string;\n  compareRef: string;\n  arrowDirection = 'down';\n  filterByColumns: any[] = [];\n  currentFilterRefData: any;\n  filterContainsLabel$ = '';\n  filterContainsType$ = 'contains';\n  filterContainsValue$: any;\n  bShowFilterPopover$ = false;\n  bContains$ = true;\n  bDateTime$ = false;\n\n  bIsDate$ = false;\n  bIsDateTime$ = false;\n  bIsTime$ = false;\n  currentFilterImageEl: any;\n\n  arFilterMainButtons$: any[] = [];\n  arFilterSecondaryButtons$: any[] = [];\n  selectionMode: string;\n  singleSelectionMode: boolean;\n  multiSelectionMode: boolean;\n  rowID: any;\n  response: any;\n  compositeKeys: any;\n  parameters: any;\n  allowEditingInModal = false;\n  defaultView: any;\n  referenceListStr: any;\n  bUseSeparateViewForEdit: any;\n  editView: any;\n  settingsSvgIcon$: string;\n\n  isInitialized = false;\n  targetClassLabel: string;\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  localeCategory = 'SimpleTable';\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    public utils: Utils,\n    private dataPageService: DatapageService\n  ) {}\n\n  ngOnInit(): void {\n    this.elementsData = new MatTableDataSource<any>([]);\n    this.isInitialized = true;\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.configProps$ = this.pConn$.getConfigProps() as SimpleTableManualProps;\n    // Then, continue on with other initialization\n    this.menuIconOverride$ = this.utils.getImageSrc('trash', this.utils.getSDKStaticContentUrl());\n    // call checkAndUpdate when initializing\n    this.checkAndUpdate();\n    this.filterSvgIcon$ = this.utils.getImageSrc('filter', this.utils.getSDKStaticContentUrl());\n    this.filterOnSvgIcon$ = this.utils.getImageSrc('filter-on', this.utils.getSDKStaticContentUrl());\n    this.groupBySvgIcon$ = this.utils.getImageSrc('row', this.utils.getSDKStaticContentUrl());\n    this.bGrouping$ = this.utils.getBooleanValue(this.configProps$.grouping);\n    this.menuSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n\n    this.arFilterMainButtons$.push({ actionID: 'submit', jsAction: 'submit', name: 'Submit' });\n    this.arFilterSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: 'Cancel' });\n\n    this.searchIcon$ = this.utils.getImageSrc('search', this.utils.getSDKStaticContentUrl());\n\n    this.settingsSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  // updateSelf\n  updateSelf(): void {\n    // moved this from ngOnInit() and call this from there instead...\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as SimpleTableManualProps;\n\n    if (this.configProps$.visibility != null) {\n      this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);\n    }\n\n    // NOTE: getConfigProps() has each child.config with datasource and value undefined\n    //  but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: \"@P thePropName\")\n    //  We need to use the prop name as the \"glue\" to tie the Angular Material table dataSource, displayColumns and data together.\n    //  So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)\n    const rawMetadata = this.pConn$.getRawMetadata();\n\n    // Adapted from Nebula\n    const {\n      referenceList = [], // if referenceList not in configProps$, default to empy list\n      renderMode,\n      children, // destructure children into an array var: \"resolvedFields\"\n      presets,\n      allowActions,\n      allowTableEdit,\n      allowRowDelete,\n      label: labelProp,\n      propertyLabel,\n      fieldMetadata,\n      editMode,\n      addAndEditRowsWithin,\n      viewForAddAndEditModal,\n      editModeConfig,\n      displayMode,\n      useSeparateViewForEdit,\n      viewForEditModal,\n      targetClassLabel\n    } = this.configProps$;\n\n    const simpleTableManualProps: any = {};\n    if (this.checkIfAllowActionsOrRowEditingExist(allowActions) && editMode) {\n      simpleTableManualProps.hideAddRow = allowActions?.allowAdd === false;\n      simpleTableManualProps.hideDeleteRow = allowActions?.allowDelete === false;\n      simpleTableManualProps.hideEditRow = allowActions?.allowEdit === false;\n      simpleTableManualProps.disableDragDrop = allowActions?.allowDragDrop === false;\n    } else if (allowTableEdit === false) {\n      simpleTableManualProps.hideAddRow = true;\n      simpleTableManualProps.hideDeleteRow = true;\n      simpleTableManualProps.disableDragDrop = true;\n    }\n\n    this.referenceListStr = getContext(this.pConn$).referenceListStr;\n    this.label = labelProp || propertyLabel;\n    this.parameters = fieldMetadata?.datasource?.parameters;\n    this.targetClassLabel = targetClassLabel;\n    let { contextClass } = this.configProps$;\n    this.referenceList = referenceList;\n    if (!contextClass) {\n      let listName = this.pConn$.getComponentConfig().referenceList;\n      listName = PCore.getAnnotationUtils().getPropertyName(listName);\n      contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;\n    }\n    this.contextClass = contextClass;\n\n    const resolvedFields = children?.[0]?.children || presets?.[0].children?.[0].children;\n    // get raw config as @P and other annotations are processed and don't appear in the resolved config.\n    //  Destructure \"raw\" children into array var: \"rawFields\"\n    //  NOTE: when config.listType == \"associated\", the property can be found in either\n    //    config.value (ex: \"@P .DeclarantChoice\") or\n    //    config.datasource (ex: \"@ASSOCIATED .DeclarantChoice\")\n    //  Neither of these appear in the resolved (this.configProps$)\n    const rawConfig: any = rawMetadata?.config;\n    const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n    this.rawFields = rawFields;\n    // At this point, fields has resolvedFields and rawFields we can use\n\n    // start of from Nebula\n    // get context name and referenceList which will be used to prepare config of PConnect\n    // const { contextName, referenceListStr, pageReferenceForRows } = getContext(this.pConn$);\n\n    const resolvedList = getReferenceList(this.pConn$);\n    this.pageReference = `${this.pConn$.getPageReference()}${resolvedList}`;\n    this.pConn$.setReferenceList(resolvedList);\n\n    // This gives up the \"properties\" we need to map to row/column values later\n    // const processedData = populateRowKey(referenceList);\n\n    this.requestedReadOnlyMode = renderMode === 'ReadOnly';\n    this.readOnlyMode = renderMode === 'ReadOnly';\n    this.editableMode = renderMode === 'Editable';\n    const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n    this.showAddRowButton = !this.readOnlyMode && !simpleTableManualProps.hideAddRow;\n    this.allowEditingInModal =\n      (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);\n    const showDeleteButton = this.editableMode && !simpleTableManualProps.hideDeleteRow && evaluateAllowRowAction(allowRowDelete, this.rowData);\n    this.defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;\n    this.bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;\n    this.editView = editModeConfig ? editModeConfig.editView : viewForEditModal;\n    const primaryFieldsViewIndex = resolvedFields.findIndex(field => field.config.value === 'pyPrimaryFields');\n    // const showDeleteButton = !this.readOnlyMode && !hideDeleteRow;\n\n    // Nebula has other handling for isReadOnlyMode but has Cosmos-specific code\n    //  so ignoring that for now...\n    // fieldDefs will be an array where each entry will have a \"name\" which will be the\n    //  \"resolved\" property name (that we can use as the colId) though it's not really\n    //  resolved. The buildFieldsForTable helper just removes the \"@P \" (which is what\n    //  Nebula does). It will also have the \"label\", and \"meta\" contains the original,\n    //  unchanged config info. For now, much of the info here is carried over from\n    //  Nebula and we may not end up using it all.\n    this.fieldDefs = buildFieldsForTable(rawFields, this.pConn$, showDeleteButton, {\n      primaryFieldsViewIndex,\n      fields: resolvedFields\n    });\n    this.fieldDefs = this.fieldDefs?.filter(field => !(field.meta?.config?.hide === true));\n    this.initializeDefaultPageInstructions();\n\n    // end of from Nebula\n\n    // Here, we use the \"name\" field in fieldDefs since that has the assoicated property\n    //  (if one exists for the field). If no \"name\", use \"cellRenderer\" (typically get DELETE_ICON)\n    //  for our columns.\n    this.displayedColumns = this.fieldDefs?.map(field => {\n      return field.name ? field.name : field.cellRenderer;\n    });\n\n    // And now we can process the resolvedFields to add in the \"name\"\n    //  from from the fieldDefs. This \"name\" is the value that\n    //  we'll share to connect things together in the table.\n\n    const labelsMap = this.fieldDefs.reduce((acc, curr) => {\n      return { ...acc, [curr.name]: curr.label };\n    }, {});\n\n    this.processedFields = [];\n\n    this.processedFields = resolvedFields.map((field, i) => {\n      field.config.name = this.displayedColumns[i]; // .config[\"value\"].replace(/ ./g,\"_\");   // replace space dot with underscore\n      field.config.label = labelsMap[field.config.name] || field.config.label;\n      return field;\n    });\n\n    // for adding rows to table when editable and not modal view\n    if (this.prevReferenceList.length !== this.referenceList.length) {\n      this.buildElementsForTable();\n    }\n\n    // for edit and adding rows in modal view and to generate readonly list\n    if (!isEqual(this.prevReferenceList, this.referenceList) && (this.readOnlyMode || this.allowEditingInModal)) {\n      this.generateRowsData();\n    }\n\n    this.prevReferenceList = this.referenceList;\n\n    // These are the data structures referred to in the html file.\n    //  These are the relationships that make the table work\n    //  displayedColumns: key/value pairs where key is order of column and\n    //    value is the property shown in that column. Ex: 1: \"FirstName\"\n    //  processedFields: key/value pairs where each key is order of column\n    //    and each value is an object of more detailed information about that\n    //    column.\n    //  rowData: array of each row's key/value pairs. Inside each row,\n    //    each key is an entry in displayedColumns: ex: \"FirstName\": \"Charles\"\n    //    Ex: { 1: {config: {label: \"First Name\", readOnly: true: name: \"FirstName\"}}, type: \"TextInput\" }\n    //    The \"type\" indicates the type of component that should be used for editing (when editing is enabled)\n    //\n    //  Note that the \"property\" shown in the column (\"FirstName\" in the above examples) is what\n    //  ties the 3 data structures together.\n  }\n\n  checkIfAllowActionsOrRowEditingExist(newflagobject) {\n    return (newflagobject && Object.keys(newflagobject).length > 0) || this.pConn$.getComponentConfig().allowRowEdit;\n  }\n\n  initializeDefaultPageInstructions() {\n    if (this.isInitialized) {\n      this.isInitialized = false;\n      if (this.allowEditingInModal) {\n        this.pConn$.getListActions().initDefaultPageInstructions(\n          this.pConn$.getReferenceList(),\n          this.fieldDefs.filter(item => item.name).map(item => item.name)\n        );\n      } else {\n        // @ts-ignore - An argument for 'propertyNames' was not provided.\n        this.pConn$.getListActions().initDefaultPageInstructions(this.pConn$.getReferenceList());\n      }\n    }\n  }\n\n  getResultsText() {\n    const recordsCount = this.readOnlyMode ? this.rowData?.data.length : this.referenceList?.length;\n    return `${recordsCount || 0} result${recordsCount > 1 ? 's' : ''}`;\n  }\n\n  sortCompare(a, b): number {\n    let aValue = a[0][this.compareRef];\n    let bValue = b[0][this.compareRef];\n\n    if (this.compareType == 'Date' || this.compareType == 'DateTime') {\n      aValue = getSeconds(aValue);\n      bValue = getSeconds(bValue);\n    }\n\n    if (this.compareRef == 'pxRefObjectInsName') {\n      const result = this.compareByColumnPxRefObjectInsName(aValue, bValue);\n      if (result !== undefined) {\n        return result;\n      }\n    }\n\n    //\n    switch (this.arrowDirection) {\n      case 'up':\n        if (!aValue || aValue < bValue) {\n          return -1;\n        }\n        if (!bValue || aValue > bValue) {\n          return 1;\n        }\n        break;\n      case 'down':\n        if (!bValue || aValue > bValue) {\n          return -1;\n        }\n        if (!aValue || aValue < bValue) {\n          return 1;\n        }\n        break;\n      default:\n        break;\n    }\n\n    return 0;\n  }\n\n  compareByColumnPxRefObjectInsName(aValue, bValue) {\n    const prefixX = aValue.split('-');\n    const prefixY = bValue.split('-');\n    switch (this.arrowDirection) {\n      case 'up':\n        if (prefixX[0] !== prefixY[0]) {\n          if (prefixX[0] < prefixY[0]) return -1;\n          if (prefixX[0] > prefixY[0]) return 1;\n          return 0;\n        }\n        return prefixX[1] - prefixY[1];\n      case 'down':\n        if (prefixX[0] !== prefixY[0]) {\n          if (prefixX[0] > prefixY[0]) return -1;\n          if (prefixX[0] < prefixY[0]) return 1;\n          return 0;\n        }\n        return prefixY[1] - prefixX[1];\n      default:\n        break;\n    }\n\n    return undefined;\n  }\n\n  updateFilterDisplay(type) {\n    switch (type) {\n      case 'Date':\n        this.filterContainsType$ = 'notequal';\n        this.bContains$ = false;\n        this.bDateTime$ = true;\n        this.bIsDate$ = true;\n        this.bIsDateTime$ = false;\n        this.bIsTime$ = false;\n        break;\n      case 'DateTime':\n        this.filterContainsType$ = 'notequal';\n        this.bContains$ = false;\n        this.bDateTime$ = true;\n        this.bIsDate$ = false;\n        this.bIsDateTime$ = true;\n        this.bIsTime$ = false;\n        break;\n      case 'Time':\n        this.filterContainsType$ = 'notequal';\n        this.bContains$ = false;\n        this.bDateTime$ = true;\n        this.bIsDate$ = false;\n        this.bIsDateTime$ = false;\n        this.bIsTime$ = true;\n        break;\n      default:\n        this.filterContainsType$ = 'contains';\n        this.bContains$ = true;\n        this.bDateTime$ = false;\n        this.bIsDate$ = false;\n        this.bIsDateTime$ = false;\n        this.bIsTime$ = false;\n        break;\n    }\n  }\n\n  _filter(event, columnData) {\n    // add clickAway listener\n    window.addEventListener('mouseup', this._clickAway.bind(this));\n\n    this.currentFilterRefData = columnData;\n    this.filterContainsLabel$ = columnData.config.label;\n\n    setTimeout(() => {\n      this.updateFilterDisplay(columnData.type);\n\n      this.updateFilterVarsWithCurrent(columnData);\n\n      this.bShowFilterPopover$ = true;\n    });\n  }\n\n  _clickAway(event: any) {\n    let bInPopUp = false;\n\n    // run through list of elements in path, if menu not in th path, then want to\n    // hide (toggle) the menu\n    const eventPath = event.path;\n    if (eventPath) {\n      for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {\n        if (\n          eventPath[eventIndex].className == 'psdk-modal-file-top' ||\n          eventPath[eventIndex].tagName == 'BUTTON' ||\n          eventPath[eventIndex].tagName == 'MAT-OPTION' ||\n          eventPath[eventIndex].tagName == 'MAT-INPUT'\n        ) {\n          bInPopUp = true;\n          break;\n        }\n      }\n    }\n\n    if (!bInPopUp) {\n      // this.bShowFilterPopover$ = false;\n\n      window.removeEventListener('mouseup', this._clickAway.bind(this));\n    }\n  }\n\n  _filterContainsType(event) {\n    this.filterContainsType$ = event.value;\n  }\n\n  _filterContainsValue(event) {\n    this.filterContainsValue$ = event.target.value;\n  }\n\n  _filterContainsDateValue(event, value) {\n    this.filterContainsValue$ = value;\n  }\n\n  _filterContainsDateTimeValue(event) {\n    this.filterContainsValue$ = event.target.value;\n  }\n\n  _filterContainsTimeValue(event) {\n    this.filterContainsValue$ = event.target.value;\n  }\n\n  _onFilterActionButtonClick(event: any) {\n    // modal buttons\n    switch (event.action) {\n      case 'cancel':\n        this.currentFilterRefData = [];\n        break;\n      case 'submit':\n        this.updateFilterWithInfo();\n        this.filterSortGroupBy();\n        break;\n      default:\n        break;\n    }\n\n    this.bShowFilterPopover$ = false;\n\n    window.removeEventListener('mouseup', this._clickAway.bind(this));\n  }\n\n  updateFilterWithInfo() {\n    let bFound = false;\n    for (const filterObj of this.filterByColumns) {\n      if (filterObj.ref === this.currentFilterRefData.config.name) {\n        filterObj.type = this.currentFilterRefData.type;\n        filterObj.containsFilter = this.filterContainsType$;\n        filterObj.containsFilterValue = this.filterContainsValue$;\n\n        bFound = true;\n        break;\n      }\n    }\n\n    if (!bFound) {\n      // add in\n      const filterObj: any = {};\n      filterObj.ref = this.currentFilterRefData.config.name;\n      filterObj.type = this.currentFilterRefData.type;\n      filterObj.containsFilter = this.filterContainsType$;\n      filterObj.containsFilterValue = this.filterContainsValue$;\n\n      this.filterByColumns.push(filterObj);\n    }\n\n    // iterate through filters and update filterOn icon\n    for (const filterObj of this.filterByColumns) {\n      const containsFilterValue = filterObj.containsFilterValue;\n      const containsFilter = filterObj.containsFilter;\n      const filterRef = filterObj.ref;\n      const filterIndex = this.displayedColumns.indexOf(filterRef);\n      const arFilterImg = document.getElementsByName('filterOnIcon');\n      const filterImg: any = arFilterImg[filterIndex];\n      if (containsFilterValue == '' && containsFilter != 'null' && containsFilter != 'notnull') {\n        // clear icon\n        filterImg.src = '';\n      } else {\n        // show icon\n        filterImg.src = this.filterOnSvgIcon$;\n      }\n    }\n  }\n\n  updateFilterVarsWithCurrent(columnData) {\n    // find current ref, if exists, move data to variable to display\n\n    let bFound = false;\n    for (const filterObj of this.filterByColumns) {\n      if (filterObj.ref === this.currentFilterRefData.config.name) {\n        this.filterContainsType$ = filterObj.containsFilter;\n        this.filterContainsValue$ = filterObj.containsFilterValue;\n\n        bFound = true;\n        break;\n      }\n    }\n\n    if (!bFound) {\n      switch (columnData.type) {\n        case 'Date':\n        case 'DateTime':\n        case 'Time':\n          this.filterContainsType$ = 'notequal';\n          break;\n        default:\n          this.filterContainsType$ = 'contains';\n          break;\n      }\n\n      this.filterContainsValue$ = '';\n    }\n  }\n\n  filterData(element: any) {\n    const item = element[0];\n    let bKeep = true;\n    for (const filterObj of this.filterByColumns) {\n      if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {\n        switch (filterObj.type) {\n          case 'Date':\n          case 'DateTime':\n          case 'Time':\n            bKeep = filterDataByDate(item, filterObj);\n            break;\n          default:\n            bKeep = filterDataByCommonFields(item, filterObj);\n            break;\n        }\n      } else if (filterObj.containsFilterValue === '') {\n        bKeep = true;\n      }\n\n      // if don't keep stop filtering\n      if (!bKeep) {\n        break;\n      }\n    }\n\n    return bKeep;\n  }\n\n  filterSortGroupBy() {\n    let theData = this.originalData.slice().map((item, index) => {\n      return [item, index];\n    });\n\n    // last filter config data is global\n    theData = theData.filter(this.filterData.bind(this));\n\n    // last sort config data is global\n    theData.sort(this.sortCompare.bind(this));\n    this.rowData.data = theData.map(item => item[0]);\n\n    const newElements: any = new Array(this.rowData.data.length);\n    theData.forEach((item, index) => {\n      newElements[index] = this.originalElementsData[item[1]];\n    });\n    this.elementsData = newElements;\n  }\n\n  _headerSortClick(event, columnData) {\n    // images 0 - filter, 1 - arrow, 2 - more\n\n    /** Commenting this code for now as it is giving errors not sure if it ever worked */\n    // let arrowImage = event.srcElement.getElementsByTagName('img')[1];\n    // let arrowAttr = arrowImage.getAttribute('arrow');\n\n    // this.clearOutArrows(event, columnData);\n\n    // switch (arrowAttr) {\n    //   case 'up':\n    //     arrowImage.src = this.arrowDownSvgIcon$;\n    //     arrowImage.setAttribute('arrow', 'down');\n    //     break;\n    //   case 'down':\n    //     arrowImage.src = '';\n    //     arrowImage.setAttribute('arrow', 'none');\n    //     break;\n    //   default:\n    //     arrowImage.src = this.arrowUpSvgIcon$;\n    //     arrowImage.setAttribute('arrow', 'up');\n    //     break;\n    // }\n\n    this.compareType = columnData.type;\n    this.compareRef = columnData.config.name;\n    // this.arrowDirection = arrowImage.getAttribute('arrow');\n    this.arrowDirection = this.arrowDirection === 'up' ? 'down' : 'up';\n\n    this.filterSortGroupBy();\n  }\n\n  _showUnGroupBy(columnData): boolean {\n    for (const val of this.groupByColumns$) {\n      if (val == columnData.config.name) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  _groupBy(event, columnData) {\n    this.checkGroupByColumn(columnData.config.name, true);\n\n    this.filterSortGroupBy();\n  }\n\n  _unGroupBy(event, columnData) {\n    // event.stopPropagation();\n    this.checkGroupByColumn(columnData.config.name, false);\n\n    this.filterSortGroupBy();\n  }\n\n  checkGroupByColumn(field, add) {\n    let found: number | null = null;\n    for (const column of this.groupByColumns$) {\n      if (column === field) {\n        found = this.groupByColumns$.indexOf(column, 0);\n      }\n    }\n    if (found != null && found >= 0) {\n      if (!add) {\n        this.groupByColumns$.splice(found, 1);\n      }\n    } else if (add) {\n      this.groupByColumns$.push(field);\n    }\n  }\n\n  _getGroupName(fieldName) {\n    for (let fieldIndex = 0; fieldIndex < this.fields$.length; fieldIndex++) {\n      const field = this.fields$[fieldIndex];\n      if (field.config.name == fieldName) {\n        return field.config.label;\n      }\n    }\n    return '';\n  }\n\n  addGroups(data: any[], groupByColumns: string[]): any[] {\n    const rootGroup = new Group();\n    rootGroup.expanded = true;\n    return this.getSublevel(data, 0, groupByColumns, rootGroup);\n  }\n\n  getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[] {\n    if (level >= groupByColumns.length) {\n      return data;\n    }\n    const groups = this.uniqueBy(\n      data.map(row => {\n        const result = new Group();\n        result.level = level + 1;\n        result.parent = parent;\n        for (let i = 0; i <= level; i++) {\n          result[groupByColumns[i]] = row[groupByColumns[i]];\n        }\n        return result;\n      }),\n      JSON.stringify\n    );\n\n    const currentColumn = groupByColumns[level];\n    let subGroups: any = [];\n    groups.forEach(group => {\n      const rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn]);\n      group.totalCounts = rowsInGroup.length;\n      const subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);\n      subGroup.unshift(group);\n      subGroups = subGroups.concat(subGroup);\n    });\n    return subGroups;\n  }\n\n  uniqueBy(a, key) {\n    const seen = {};\n    return a.filter(item => {\n      const k = key(item);\n      // eslint-disable-next-line no-prototype-builtins\n      return seen.hasOwnProperty(k) ? false : (seen[k] = true);\n    });\n  }\n\n  isGroup(index, item): boolean {\n    return item.level;\n  }\n\n  _groupHeaderClick(row) {\n    row.expanded = !row.expanded;\n    // this.repeatList$.filter = \"\";\n    this.perfFilter = performance.now().toString();\n    this.rowData.filter = this.perfFilter;\n  }\n\n  // below is for grid row grouping\n  customFilterPredicate(data: any | Group, filter: string): boolean {\n    return data instanceof Group ? data.visible : this.getDataRowVisibleWithFilter(data, filter);\n  }\n\n  getDataRowVisible(data: any): boolean {\n    const groupRows = this.rowData.data.filter(row => {\n      if (!(row instanceof Group)) {\n        return false;\n      }\n      let match = true;\n      this.groupByColumns$.forEach(column => {\n        if (!row[column] || !data[column] || row[column] !== data[column]) {\n          match = false;\n        }\n      });\n      return match;\n    });\n\n    if (groupRows.length === 0) {\n      return true;\n    }\n    const parent = groupRows[0] as Group;\n    return parent.visible && parent.expanded;\n  }\n\n  getDataRowVisibleWithFilter(data, filter) {\n    // fist check if row is visible with grouping\n    let bVisible = this.getDataRowVisible(data);\n\n    if (bVisible && filter && filter != '' && filter != this.perfFilter) {\n      // now check if row is filtered.\n\n      // assume not there unless we find it\n      bVisible = false;\n      for (const col of this.displayedColumns) {\n        // filter is lower case\n        if (data[col] && data[col].toString().toLowerCase().indexOf(filter) >= 0) {\n          bVisible = true;\n          break;\n        }\n      }\n    }\n\n    return bVisible;\n  }\n\n  getDisplayColumns(fields = []) {\n    return fields.map((field: any) => {\n      let theField = field.config.value.substring(field.config.value.indexOf(' ') + 1);\n      if (theField.indexOf('.') == 0) {\n        theField = theField.substring(1);\n      }\n\n      return theField;\n    });\n  }\n\n  _getIconStyle(level): string {\n    let sReturn = '';\n    let nLevel = parseInt(level, 10);\n    nLevel--;\n    nLevel *= 15;\n    sReturn = `padding-left: ${nLevel}px; vertical-align: middle`;\n\n    return sReturn;\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  // return the value that should be shown as the contents for the given row data\n  //  of the given row field\n  getRowValue(inRowData: object, inColKey: string): any {\n    // See what data (if any) we have to display\n    const refKeys: string[] = inColKey.split('.');\n    let valBuilder = inRowData;\n    for (const key of refKeys) {\n      valBuilder = valBuilder[key];\n    }\n    return valBuilder;\n  }\n\n  generateRowsData() {\n    const { dataPageName, referenceList } = this.configProps$;\n    const context = this.pConn$.getContextName();\n    // if dataPageName property value exists then make a datapage fetch call and get the list of data.\n    if (dataPageName) {\n      this.dataPageService.getDataPageData(dataPageName, this.parameters, context).then(listData => {\n        const data = this.formatRowsData(listData);\n        this.originalData = data;\n        this.rowData = new MatTableDataSource(data);\n      });\n    } else {\n      // The referenceList prop has the JSON data for each row to be displayed\n      //  in the table. So, iterate over referenceList to create the dataRows that\n      //  we're using as the table's dataSource\n      const data = this.formatRowsData(referenceList);\n      this.originalData = data;\n      this.rowData = new MatTableDataSource(data);\n    }\n  }\n\n  formatRowsData(data) {\n    return data?.map(item => {\n      return this.displayedColumns.reduce((dataForRow, colKey) => {\n        dataForRow[colKey] = this.getRowValue(item, colKey);\n        return dataForRow;\n      }, {});\n    });\n  }\n\n  addRecord() {\n    if (this.allowEditingInModal && this.defaultView) {\n      this.pConn$\n        .getActionsApi()\n        // @ts-expect-error\n        .openEmbeddedDataModal(\n          this.defaultView,\n          this.pConn$ as any,\n          this.referenceListStr,\n          this.referenceList.length,\n          PCore.getConstants().RESOURCE_STATUS.CREATE,\n          this.targetClassLabel\n        );\n    } else {\n      this.pConn$.getListActions().insert({ classID: this.contextClass }, this.referenceList.length);\n    }\n\n    this.pConn$.clearErrorMessages({\n      property: this.pConn$.getStateProps()?.referenceList?.substring(1)\n    });\n  }\n\n  editRecord(data, index) {\n    if (data) {\n      this.pConn$\n        .getActionsApi()\n        // @ts-expect-error\n        .openEmbeddedDataModal(\n          this.bUseSeparateViewForEdit ? this.editView : this.defaultView,\n          this.pConn$ as any,\n          this.referenceListStr,\n          index,\n          PCore.getConstants().RESOURCE_STATUS.UPDATE,\n          this.targetClassLabel\n        );\n    }\n  }\n\n  deleteRecord(index) {\n    this.pConn$.getListActions().deleteEntry(index);\n  }\n\n  buildElementsForTable() {\n    const context = this.pConn$.getContextName();\n    const eleData: any = [];\n    this.referenceList.forEach((element, index) => {\n      const data: any = [];\n      this.rawFields?.forEach(item => {\n        if (!item?.config?.hide) {\n          item = {\n            ...item,\n            config: {\n              ...item.config,\n              label: '',\n              displayMode: this.readOnlyMode || this.allowEditingInModal ? 'DISPLAY_ONLY' : undefined\n            }\n          };\n          const referenceListData = getReferenceList(this.pConn$);\n          const isDatapage = referenceListData.startsWith('D_');\n          const pageReferenceValue = isDatapage\n            ? `${referenceListData}[${index}]`\n            : `${this.pConn$.getPageReference()}${referenceListData}[${index}]`;\n          const config = {\n            meta: item,\n            options: {\n              context,\n              pageReference: pageReferenceValue,\n              referenceList: referenceListData,\n              hasForm: true\n            }\n          };\n          const view = PCore.createPConnect(config);\n          data.push(view);\n        }\n      });\n      eleData.push(data);\n    });\n    this.originalElementsData = eleData;\n    this.elementsData = eleData;\n  }\n}\n","<ng-container *ngIf=\"bVisible$\">\n  <div class=\"simple-table-wrapper\">\n    <h3 *ngIf=\"label\" className=\"label\" style=\"font-weight: bold\">\n      {{ label }} <span class=\"results-count\">{{ getResultsText() }}</span>\n    </h3>\n    <table *ngIf=\"readOnlyMode || allowEditingInModal\" mat-table [dataSource]=\"elementsData\" class=\"mat-elevation-z8\" id=\"readonly-table\" matSort>\n      <ng-container *ngFor=\"let dCol of processedFields; let i = index\" [matColumnDef]=\"dCol.config.name\">\n        <th mat-header-cell *matHeaderCellDef mat-sort-header (click)=\"_headerSortClick($event, dCol)\" arrowPosition=\"before\">\n          <div>{{ dCol.config.label }}</div>\n          <div class=\"psdk-mat-header-filter\">\n            <img class=\"psdk-filter-svg-icon\" name=\"filterOnIcon\" />\n          </div>\n          <div (click)=\"$event.stopPropagation()\">\n            <button mat-icon-button [matMenuTriggerFor]=\"groupMenu\">\n              <img class=\"psdk-list-view-svg-icon\" src=\"{{ menuSvgIcon$ }}\" />\n            </button>\n            <mat-menu #groupMenu>\n              <button mat-menu-item (click)=\"_groupBy($event, dCol)\">\n                <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Group By</span>\n              </button>\n              <button *ngIf=\"_showUnGroupBy(dCol) && bGrouping$\" mat-menu-item (click)=\"_unGroupBy($event, dCol)\">\n                <img class=\"psdk-list-view-svg-icon\" src=\"{{ groupBySvgIcon$ }}\" /><span>Ungroup</span>\n              </button>\n              <button mat-menu-item (click)=\"_filter($event, dCol)\">\n                <img class=\"psdk-list-view-svg-icon\" src=\"{{ filterSvgIcon$ }}\" /><span>Filter</span>\n              </button>\n            </mat-menu>\n          </div>\n        </th>\n        <td mat-cell *matCellDef=\"let element\">\n          <component-mapper\n            [name]=\"element[i].getPConnect().getComponentName()\"\n            [props]=\"{\n              pConn$: element[i].getPConnect(),\n              formGroup$: formGroup$\n            }\"\n            errorMsg=\"Table wants component not yet available: {{ element[i].getPConnect().getComponentName() }}\"\n          ></component-mapper>\n        </td>\n      </ng-container>\n      <ng-container matColumnDef=\"DeleteIcon\">\n        <div *ngIf=\"allowEditingInModal\">\n          <th mat-header-cell *matHeaderCellDef></th>\n          <td mat-cell *matCellDef=\"let element; index as j\">\n            <div class=\"header-icon\">\n              <button mat-icon-button [matMenuTriggerFor]=\"utilityMenu\">\n                <mat-icon>more_vert</mat-icon>\n              </button>\n              <mat-menu #utilityMenu=\"matMenu\" overlapTrigger=\"false\">\n                <button mat-menu-item (click)=\"editRecord(element, j)\">Edit</button>\n                <button mat-menu-item (click)=\"deleteRecord(j)\">Delete</button>\n              </mat-menu>\n            </div>\n          </td>\n        </div>\n      </ng-container>\n      <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n      <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n      <tr class=\"mat-row psdk-no-records\" *matNoDataRow>\n        <td id=\"no-records\" class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">\n          {{ utils.getGenericFieldsLocalizedValue('COSMOSFIELDS.lists', 'No records found.') }}\n        </td>\n      </tr>\n    </table>\n    <table *ngIf=\"editableMode && !allowEditingInModal\" mat-table [dataSource]=\"elementsData\" class=\"mat-elevation-z8\" id=\"editable-table\">\n      <ng-container *ngFor=\"let dCol of fieldDefs; let i = index\">\n        <ng-container *ngIf=\"dCol.name != 'DeleteIcon'\" [matColumnDef]=\"dCol.name\">\n          <th mat-header-cell *matHeaderCellDef class=\"psdk-mat-header\">{{ dCol.label }}</th>\n          <td mat-cell *matCellDef=\"let element\">\n            <component-mapper\n              [name]=\"element[i].getPConnect().getComponentName()\"\n              [props]=\"{\n                pConn$: element[i].getPConnect(),\n                formGroup$: formGroup$\n              }\"\n              errorMsg=\"Table wants component not yet available: {{ element[i].getPConnect().getComponentName() }}\"\n            ></component-mapper>\n          </td>\n        </ng-container>\n      </ng-container>\n      <ng-container matColumnDef=\"DeleteIcon\">\n        <th mat-header-cell *matHeaderCellDef></th>\n        <td mat-cell *matCellDef=\"let element; index as j\">\n          <button id=\"delete-button\" mat-icon-button (click)=\"deleteRecord(j)\">\n            <mat-icon>delete</mat-icon>\n          </button>\n        </td>\n      </ng-container>\n      <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n      <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n      <tr class=\"mat-row psdk-no-records\" *matNoDataRow>\n        <td id=\"no-records\" class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">\n          {{ utils.getGenericFieldsLocalizedValue('COSMOSFIELDS.lists', 'No records found.') }}\n        </td>\n      </tr>\n    </table>\n  </div>\n  <button *ngIf=\"showAddRowButton\" mat-button color=\"primary\" style=\"font-size: 16px\" (click)=\"addRecord()\">\n    + {{ localizedVal('Add', localeCategory) }}\n  </button>\n</ng-container>\n\n<!-- pop overs for filters-->\n<div *ngIf=\"bShowFilterPopover$\" class=\"psdk-dialog-background\">\n  <div class=\"psdk-modal-file-top\">\n    <h4>\n      Filter:<b> {{ filterContainsLabel$ }}</b>\n    </h4>\n    <div *ngIf=\"bContains$\">\n      <mat-form-field class=\"psdk-full-width\">\n        <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n          <mat-option value=\"contains\">Contains</mat-option>\n          <mat-option value=\"equals\">Equals</mat-option>\n          <mat-option value=\"startswith\">Starts with</mat-option>\n        </mat-select>\n      </mat-form-field>\n\n      <mat-form-field class=\"psdk-full-width\">\n        <input matInput type=\"text\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsValue($event)\" />\n      </mat-form-field>\n    </div>\n\n    <div *ngIf=\"bDateTime$\">\n      <mat-form-field class=\"psdk-full-width\">\n        <mat-select [value]=\"filterContainsType$\" (selectionChange)=\"_filterContainsType($event)\">\n          <mat-option value=\"notequal\">is not equal to</mat-option>\n          <mat-option value=\"after\">after</mat-option>\n          <mat-option value=\"before\">before</mat-option>\n          <mat-option value=\"null\">is null</mat-option>\n          <mat-option value=\"notnull\">is not null</mat-option>\n        </mat-select>\n      </mat-form-field>\n\n      <mat-form-field *ngIf=\"bIsDate$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n        <mat-label>Date</mat-label>\n        <input\n          matInput\n          #dateInput\n          [matDatepicker]=\"pegadate\"\n          type=\"text\"\n          [value]=\"filterContainsValue$\"\n          (dateChange)=\"_filterContainsDateValue($event, dateInput.value)\"\n        />\n        <mat-datepicker-toggle matSuffix [for]=\"pegadate\"></mat-datepicker-toggle>\n        <mat-datepicker #pegadate [startAt]=\"filterContainsValue$\"></mat-datepicker>\n      </mat-form-field>\n\n      <mat-form-field *ngIf=\"bIsDateTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n        <mat-label>Date time</mat-label>\n        <input matInput type=\"datetime-local\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsDateTimeValue($event)\" />\n      </mat-form-field>\n\n      <mat-form-field *ngIf=\"bIsTime$ && filterContainsType$ !== 'null' && filterContainsType$ != 'notnull'\" class=\"psdk-full-width\">\n        <mat-label>Time</mat-label>\n        <input matInput type=\"time\" [value]=\"filterContainsValue$\" (change)=\"_filterContainsTimeValue($event)\" />\n      </mat-form-field>\n    </div>\n\n    <component-mapper\n      name=\"ActionButtons\"\n      [props]=\"{ arMainButtons$: arFilterMainButtons$, arSecondaryButtons$: arFilterSecondaryButtons$ }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ actionButtonClick: _onFilterActionButtonClick }\"\n    ></component-mapper>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-simple-table-select',\n  templateUrl: './simple-table-select.component.html',\n  styleUrls: ['./simple-table-select.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SimpleTableSelectComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  label = '';\n  renderMode = '';\n  showLabel = true;\n  viewName = '';\n  parameters = {};\n  dataRelationshipContext = '';\n  propsToUse;\n  showSimpleTableManual: boolean;\n  isSearchable: boolean;\n  filters: any;\n  listViewProps: any;\n  pageClass: any;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.updateSelf();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    const theConfigProps = this.pConn$.getConfigProps();\n    this.label = theConfigProps.label;\n    this.renderMode = theConfigProps.renderMode;\n    this.showLabel = theConfigProps.showLabel;\n    this.viewName = theConfigProps.viewName;\n    this.parameters = theConfigProps.parameters;\n    this.dataRelationshipContext = theConfigProps.dataRelationshipContext;\n\n    this.propsToUse = { label: this.label, showLabel: this.showLabel, ...this.pConn$.getInheritedProps() };\n\n    if (this.propsToUse.showLabel === false) {\n      this.propsToUse.label = '';\n    }\n    const { MULTI } = PCore.getConstants().LIST_SELECTION_MODE;\n    const { selectionMode, selectionList } = this.pConn$.getConfigProps();\n    const isMultiSelectMode = selectionMode === MULTI;\n    if (isMultiSelectMode && this.renderMode === 'ReadOnly') {\n      this.showSimpleTableManual = true;\n    } else {\n      const pageReference = this.pConn$.getPageReference();\n      let referenceProp = isMultiSelectMode ? selectionList.substring(1) : pageReference.substring(pageReference.lastIndexOf('.') + 1);\n      // Replace here to use the context name instead\n      let contextPageReference: string | null = null;\n      if (this.dataRelationshipContext !== null && selectionMode === 'single') {\n        referenceProp = this.dataRelationshipContext;\n        contextPageReference = pageReference.concat('.').concat(referenceProp);\n      }\n      const metadata = isMultiSelectMode\n        ? this.pConn$.getFieldMetadata(`@P .${referenceProp}`)\n        : this.pConn$.getCurrentPageFieldMetadata(contextPageReference);\n\n      const { datasource: { parameters: fieldParameters = {} } = {}, pageClass } = metadata;\n\n      this.pageClass = pageClass;\n      const compositeKeys: any[] = [];\n      Object.values(fieldParameters).forEach((param: any) => {\n        if (this.isSelfReferencedProperty(param, referenceProp)) {\n          compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));\n        }\n      });\n\n      this.processFiltrers(theConfigProps, compositeKeys);\n    }\n  }\n\n  processFiltrers(theConfigProps, compositeKeys) {\n    const defaultRowHeight = '2';\n\n    const additionalTableConfig = {\n      rowDensity: false,\n      enableFreezeColumns: false,\n      autoSizeColumns: false,\n      resetColumnWidths: false,\n      defaultFieldDef: {\n        showMenu: false,\n        noContextMenu: true,\n        grouping: false\n      },\n      itemKey: '$key',\n      defaultRowHeight\n    };\n\n    this.listViewProps = {\n      ...theConfigProps,\n      title: this.propsToUse.label,\n      personalization: false,\n      grouping: false,\n      expandGroups: false,\n      reorderFields: false,\n      showHeaderIcons: false,\n      editing: false,\n      globalSearch: true,\n      toggleFieldVisibility: false,\n      basicMode: true,\n      additionalTableConfig,\n      compositeKeys,\n      viewName: this.viewName,\n      parameters: this.parameters\n    };\n\n    this.filters = (this.pConn$.getRawMetadata()?.config as any).promotedFilters ?? [];\n\n    this.isSearchable = this.filters.length > 0;\n  }\n\n  isSelfReferencedProperty(param, referenceProp) {\n    const [, parentPropName] = param.split('.');\n    return parentPropName === referenceProp;\n  }\n}\n","<div *ngIf=\"showSimpleTableManual\">\n  <component-mapper name=\"SimpleTable\" [props]=\"{ formGroup$, pConn$ }\"></component-mapper>\n</div>\n<div *ngIf=\"!showSimpleTableManual\">\n  <div *ngIf=\"isSearchable; else listView\">\n    <component-mapper\n      name=\"PromotedFilters\"\n      [props]=\"{ formGroup$, pConn$, viewName, filters, listViewProps, pageClass, parameters }\"\n    ></component-mapper>\n  </div>\n  <ng-template #listView>\n    <component-mapper name=\"ListView\" [props]=\"{ pConn$, payload: listViewProps }\"></component-mapper>\n  </ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getDataRelationshipContextFromKey } from '../../../_helpers/objectReference-utils';\n\n@Component({\n  selector: 'app-single-reference-readonly',\n  templateUrl: './single-reference-readonly.component.html',\n  styleUrls: ['./single-reference-readonly.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class SingleReferenceReadonlyComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() dataRelationshipContext?: any;\n\n  angularPConnectData: AngularPConnectData = {};\n  configProps: any;\n  component: any;\n  label: string;\n  newPconn: typeof PConnect;\n  displayMode: string;\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    const rawViewMetadata = this.pConn$.getRawMetadata();\n    const label = this.configProps.label;\n    const showLabel = this.configProps.showLabel;\n    const propsToUse = { label, showLabel, ...this.pConn$.getInheritedProps() };\n    const type = (rawViewMetadata?.config as any)?.componentType;\n    this.displayMode = this.configProps.displayMode;\n    const targetObjectType = this.configProps.targetObjectType;\n    const referenceType = targetObjectType === 'case' ? 'Case' : 'Data';\n    const hideLabel = this.configProps.hideLabel;\n    // const additionalFields = this.configProps.additionalFields;\n    const displayAs = this.configProps.displayAs ?? 'readonly';\n    const dataRelationshipContext = (rawViewMetadata?.config as any)?.displayField\n      ? getDataRelationshipContextFromKey((rawViewMetadata?.config as any)?.displayField)\n      : this.dataRelationshipContext;\n    if (propsToUse.showLabel === false) {\n      propsToUse.label = '';\n    }\n    this.label = propsToUse.label;\n\n    const editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown', 'RadioButtons'];\n    const config: any = {\n      ...rawViewMetadata?.config,\n      primaryField: (rawViewMetadata?.config as any)?.displayField,\n      label: this.label\n    };\n\n    const activeViewRuleClass = (rawViewMetadata?.config as any)?.targetObjectClass;\n    if (editableComponents.includes(type)) {\n      config.caseClass = activeViewRuleClass;\n      config.text = config.primaryField;\n      config.caseID = config.value;\n      config.contextPage = `@P .${dataRelationshipContext}`;\n      config.resourceParams = {\n        workID: displayAs === 'table' ? (config as any)?.selectionKey : config.value\n      };\n      config.resourcePayload = {\n        caseClassName: activeViewRuleClass\n      };\n    }\n\n    this.component = this.pConn$.createComponent(\n      {\n        type: 'SemanticLink',\n        config: {\n          ...config,\n          displayMode: this.displayMode,\n          referenceType,\n          hideLabel,\n          dataRelationshipContext\n        }\n      },\n      '',\n      0,\n      {}\n    );\n    this.newPconn = this.component.getPConnect();\n  }\n}\n","<div [ngClass]=\"displayMode ? 'psdk-grid-display' : 'psdk-grid-nondisplay'\">\n  <div *ngIf=\"label\" class=\"psdk-grid-label\">{{ label }}</div>\n  <component-mapper name=\"SemanticLink\" [props]=\"{ pConn$: newPconn, formGroup$ }\"></component-mapper>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { FormTemplateBase } from '../base/form-template-base';\n\n@Component({\n  selector: 'app-three-column',\n  templateUrl: './three-column.component.html',\n  styleUrls: ['./three-column.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ThreeColumnComponent extends FormTemplateBase implements OnInit, OnChanges {\n  @Input() override pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit() {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div class=\"psdk-three-column\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div class=\"psdk-three-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-three-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-three-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'c'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-three-column-page',\n  templateUrl: './three-column-page.component.html',\n  styleUrls: ['./three-column-page.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class ThreeColumnPageComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n}\n","<component-mapper name=\"ThreeColumn\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { FormTemplateBase } from '../base/form-template-base';\n\n@Component({\n  selector: 'app-two-column',\n  templateUrl: './two-column.component.html',\n  styleUrls: ['./two-column.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TwoColumnComponent extends FormTemplateBase implements OnInit, OnChanges {\n  @Input() override pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit() {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div class=\"psdk-two-column\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div class=\"psdk-two-column-left\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-two-column-right\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-two-column-page',\n  templateUrl: './two-column-page.component.html',\n  styleUrls: ['./two-column-page.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class TwoColumnPageComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n    if (bUpdateSelf) {\n      /* empty */\n    }\n  }\n}\n","<component-mapper name=\"TwoColumn\" [props]=\"{ formGroup$, pConn$ }\"></component-mapper>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-two-column-tab',\n  templateUrl: './two-column-tab.component.html',\n  styleUrls: ['./two-column-tab.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class TwoColumnTabComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit(): void {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div class=\"psdk-two-column\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div class=\"psdk-two-column-left\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-two-column-right\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-two-column-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { FormTemplateBase } from '../base/form-template-base';\n\n@Component({\n  selector: 'app-wide-narrow-form',\n  templateUrl: './wide-narrow-form.component.html',\n  styleUrls: ['./wide-narrow-form.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class WideNarrowFormComponent extends FormTemplateBase implements OnInit, OnChanges {\n  @Input() override pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  ngOnInit() {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div class=\"psdk-narrow-wide-column\">\n  <div *ngFor=\"let kid of arChildren$\">\n    <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'left'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'right'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-wide-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'a'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-narrow-column\" *ngIf=\"kid.getPConnect().getRawMetadata()['name'].toLowerCase() === 'b'\">\n      <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-wide-narrow-page',\n  templateUrl: './wide-narrow-page.component.html',\n  styleUrls: ['./wide-narrow-page.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class WideNarrowPageComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  thePConnType: string | undefined = '';\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // normalize the pConn$ in case the incoming pConn$ is a 'reference'\n    // this.pConn$ = ReferenceComponent.normalizePConn(this.pConn$);\n\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // this.updateSelf();\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    // console.log(`WideNarrowPage: updateSelf`);\n\n    this.thePConnType = this.pConn$.getComponentName();\n  }\n}\n","<div [ngSwitch]=\"this.thePConnType\">\n  <component-mapper *ngSwitchCase=\"'ViewContainer'\" name=\"ViewContainer\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n  <!-- NOTE: when we get the view, we want to render it as a wide-narrow-form -->\n  <component-mapper *ngSwitchCase=\"'View'\" name=\"WideNarrowForm\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n  <div *ngSwitchDefault>WideNarrowPage missing: {{ this.pConn$.getComponentName() }}</div>\n</div>\n","import { ChangeDetectorRef, Component, Input, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { logout } from '@pega/auth/lib/sdk-auth-manager';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface WssNavBarProps {\n  // If any, enter additional props that only exist on this component\n  showAppName: boolean;\n}\n\n@Component({\n  selector: 'app-wss-nav-bar',\n  templateUrl: './wss-nav-bar.component.html',\n  styleUrls: ['./wss-nav-bar.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatListModule, MatMenuModule, MatIconModule, MatToolbarModule]\n})\nexport class WssNavBarComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() appName$: string;\n  @Input() pages$: any[];\n  @Input() caseTypes$: any[];\n  @Input() homePage: any;\n  @Input() portalLogoImage$: string;\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  configProps$: WssNavBarProps;\n\n  navPages$: any[];\n  navExpandCollapse$: string;\n  bShowCaseTypes$ = false;\n\n  portalOperator$: string | undefined;\n  portalOperatorInitials$: string;\n\n  actionsAPI: any;\n  createWork: any;\n  showPage: any;\n  logout: any;\n\n  navIcon$: string;\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  localeCategory = 'AppShell';\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private cdRef: ChangeDetectorRef,\n    private psService: ProgressSpinnerService,\n    private ngZone: NgZone,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n\n    // this is a dummy \"get\", because right now images are in http and the main screen is https\n    // so the images don't load automatically.  This call, makes an initial hit that allows the\n    // rest of the images to show up\n    this.loadImage(this.navIcon$);\n\n    this.initComponent();\n  }\n\n  // ngOnDestroy\n  //  unsubscribe from Store\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  loadImage(src: string) {\n    return new Promise(resolve => {\n      resolve(src);\n    });\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // NOTE: can call angularPConnect.getState with optional args for detailed logging: bLogMsg and component object\n    this.angularPConnect.getState();\n\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf(): void {\n    this.initComponent();\n  }\n\n  initComponent() {\n    this.ngZone.run(() => {\n      this.navIcon$ = this.utils.getSDKStaticContentUrl().concat('assets/pzpega-logo-mark.svg');\n      this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n\n      // Then, continue on with other initialization\n\n      // making a copy, so can add info\n      this.navPages$ = JSON.parse(JSON.stringify(this.pages$));\n\n      this.navPages$.forEach(page => {\n        page.iconName = this.utils.getImageSrc(page.pxPageViewIcon, this.utils.getSDKStaticContentUrl());\n      });\n\n      this.actionsAPI = this.pConn$.getActionsApi();\n      this.createWork = this.actionsAPI.createWork.bind(this.actionsAPI);\n      this.showPage = this.actionsAPI.showPage.bind(this.actionsAPI);\n      this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as WssNavBarProps;\n      this.logout = this.actionsAPI.logout.bind(this.actionsAPI);\n\n      // const oData = this.pConn$.getDataObject();\n\n      this.portalOperator$ = PCore.getEnvironmentInfo().getOperatorName();\n      this.portalOperatorInitials$ = this.utils.getInitials(this.portalOperator$ ?? '');\n    });\n  }\n\n  navPanelButtonClick(oPageData: any) {\n    const { pyClassName, pyRuleName } = oPageData;\n\n    this.showPage(pyRuleName, pyClassName);\n  }\n\n  navPanelCreateButtonClick() {\n    if (this.navExpandCollapse$.indexOf('plus') > 0) {\n      this.navExpandCollapse$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());\n      this.bShowCaseTypes$ = true;\n    } else {\n      this.navExpandCollapse$ = this.utils.getImageSrc('plus', this.utils.getSDKStaticContentUrl());\n      this.bShowCaseTypes$ = false;\n    }\n    this.cdRef.detectChanges();\n  }\n\n  navPanelCreateCaseType(sCaseType: string, sFlowType: string) {\n    this.psService.sendMessage(true);\n    this.navPanelCreateButtonClick();\n\n    const actionInfo = {\n      containerName: 'primary',\n      flowType: sFlowType || 'pyStartCase'\n    };\n    this.createWork(sCaseType, actionInfo);\n  }\n\n  navPanelLogoutClick() {\n    logout().then(() => {\n      // Reload the page to kick off the login\n      window.location.reload();\n    });\n  }\n}\n","<mat-toolbar>\n  <mat-toolbar-row mat-icon-button>\n    <div class=\"psdk-nav-header\" (click)=\"navPanelButtonClick(homePage)\">\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\">{{ appName$ }}</div>\n      </div>\n    </div>\n\n    <span class=\"spacer\"></span>\n\n    <div *ngFor=\"let page of navPages$\">\n      <div class=\"flex-box mat-list-item\" style=\"cursor: pointer; font-size: 1rem; text-transform: capitalize\" (click)=\"navPanelButtonClick(page)\">\n        <div mat-button class=\"psdk-nav-button-span\">{{ page.pyLabel }}</div>\n      </div>\n    </div>\n\n    <!-- <span class=\"spacer\"></span> -->\n\n    <mat-list>\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        </div>\n      </mat-list-item>\n      <mat-menu #menu=\"matMenu\">\n        <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n      </mat-menu>\n    </mat-list>\n  </mat-toolbar-row>\n</mat-toolbar>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\ninterface AppAnnouncementProps {\n  // If any, enter additional props that only exist on this component\n  header?: string;\n  description?: string;\n  whatsnewlink?: string;\n  label?: string;\n  datasource?: any;\n}\n\n@Component({\n  selector: 'app-app-announcement',\n  templateUrl: './app-announcement.component.html',\n  styleUrls: ['./app-announcement.component.scss'],\n  imports: [CommonModule, MatButtonModule]\n})\nexport class AppAnnouncementComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n\n  configProps$: AppAnnouncementProps;\n  details$: any[];\n\n  ngOnInit(): void {\n    this.configProps$ = this.pConn$.getConfigProps();\n    const { datasource } = this.configProps$;\n\n    if (datasource?.source) {\n      this.details$ = datasource.source.map(item => item.name);\n    }\n  }\n}\n","<article class=\"psdk-announcement\">\n  <h2>{{ configProps$.header }}</h2>\n  <div>\n    <p>{{ configProps$.description }}</p>\n    <div>\n      <ul>\n        <li *ngFor=\"let detail of details$\">{{ detail }}</li>\n      </ul>\n    </div>\n  </div>\n  <a *ngIf=\"configProps$.whatsnewlink != ''\" mat-raised-button [href]=\"configProps$.whatsnewlink\">See what's new</a>\n</article>\n","import download from 'downloadjs';\n\nimport type { FileObject, PageInstructionOptions, ReduxAttachments } from './Attachment.types';\n\nconst megabyteSize = 1048576;\n\nexport const isContentBinary = (headers: Record<string, string>) => {\n  return headers && headers['content-transfer-encoding'] === 'binary';\n};\n\nexport const isContentBase64 = (headers: Record<string, string>) => {\n  return headers && headers['content-transfer-encoding'] === 'base64';\n};\n\nexport const validateMaxSize = (fileObj: Record<string, number>, maxSizeInMB: string) => {\n  const fileSize = (fileObj['size'] / megabyteSize).toFixed(2);\n  return parseFloat(fileSize) < parseFloat(maxSizeInMB);\n};\n\nexport const validateFileExtension = (fileObj: Record<string, string>, allowedExtensions: string) => {\n  if (!allowedExtensions) {\n    return true;\n  }\n  const allowedExtensionList = allowedExtensions\n    .toLowerCase()\n    .split(',')\n    .map(item => item.replaceAll('.', '').trim());\n  const extension = fileObj['name'].split('.').pop()?.toLowerCase() || '';\n  return allowedExtensionList.includes(extension);\n};\n\nexport const fileDownload = (data: string | Blob, fileName: string, ext: string | null, headers: Record<string, string>) => {\n  const name = ext ? `${fileName}.${ext}` : fileName;\n  // Temp fix: downloading EMAIl type attachment as html file\n  if (ext === 'html') {\n    download(isContentBase64(headers) ? atob(data as string) : data, name, 'text/html');\n  } else if (isContentBinary(headers)) {\n    download(data, name);\n  } else {\n    download(atob(data as string), name);\n  }\n};\n\nexport const fileDownloadVar = (content: { data: string; headers: Record<string, string> }, type: string, name: string, extension: string) => {\n  if (type === 'FILE' || type === undefined) {\n    fileDownload(content.data, name, extension, content.headers);\n  } else if (type === 'URL') {\n    let { data } = content;\n    if (!/^(http|https):\\/\\//.test(data)) {\n      data = `//${data}`;\n    }\n    window.open(content.data, '_blank');\n  } else if (type === 'EMAIL') {\n    // Temp Fix: for EMAIL type attachment\n    fileDownload(content.data, name, 'html', content.headers);\n  }\n};\n\nexport const getMappedValue = (value: string): string => {\n  return PCore.getEnvironmentInfo().getKeyMapping(value) ?? value;\n};\n\nconst generateInstructions = (\n  files: FileObject[],\n  pConn: typeof PConnect,\n  attachmentsInModal: ReduxAttachments[] | Pick<ReduxAttachments, 'instruction' | 'fileIndex'>[],\n  options: {\n    allowMultiple: boolean;\n    isMultiAttachmentInInlineEditTable: boolean;\n    attachmentCount: number;\n    insertPageInstruction: boolean;\n    deletePageInstruction: boolean;\n    deleteIndex: number;\n  }\n) => {\n  const { allowMultiple, isMultiAttachmentInInlineEditTable, attachmentCount, insertPageInstruction, deletePageInstruction, deleteIndex } = options;\n  const transformedAttachments: ReduxAttachments[] = [];\n  let valueRef = pConn.getStateProps().value;\n  valueRef = valueRef?.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n  const uniqueKey = getMappedValue('pzInsKey');\n  files.forEach((file, index) => {\n    const filename = file.value?.filename || file.props?.name || '';\n    const payload = {\n      [uniqueKey]: file.value?.ID || file.props?.id,\n      FileName: filename,\n      Category: '',\n      // MimeType: getMimeTypeFromFile(filename),\n      FileExtension: filename.split('.').pop() ?? filename,\n      error: file.props?.error || null,\n      localAttachment: true,\n      thumbnail: file.value?.thumbnail\n    };\n    transformedAttachments.push(payload);\n    if (payload.error) {\n      return; // Don't process page instructions for error files, skip current iteration\n    }\n    if (allowMultiple) {\n      if (isMultiAttachmentInInlineEditTable) {\n        if (insertPageInstruction) {\n          attachmentsInModal.push({ ...payload, instruction: 'insert' } as any);\n        } else if (deletePageInstruction) {\n          (attachmentsInModal as Pick<ReduxAttachments, 'instruction' | 'fileIndex'>[]).push({\n            instruction: 'delete',\n            fileIndex: deleteIndex\n          });\n        }\n      } else if (insertPageInstruction) {\n        pConn.getListActions().insert({ ID: payload[uniqueKey] }, attachmentCount + index, undefined, {\n          skipStateUpdate: true\n        });\n      } else if (deletePageInstruction) {\n        pConn.getListActions().deleteEntry(deleteIndex, undefined, { skipStateUpdate: true });\n      }\n    } else if (insertPageInstruction) {\n      pConn.getListActions().replacePage(`.${valueRef}`, { ID: payload[uniqueKey] }, { skipStateUpdate: true });\n    } else if (deletePageInstruction) {\n      pConn.getListActions().deletePage(`.${valueRef}`, { skipStateUpdate: true });\n    }\n  });\n  return transformedAttachments;\n};\n\nexport const updateReduxState = (\n  transformedAttachments: ReduxAttachments[],\n  pConn: typeof PConnect,\n  valueRef: string,\n  options: PageInstructionOptions\n) => {\n  const { allowMultiple, isOldAttachment, insertRedux, deleteRedux } = options;\n  let deleteIndex = -1;\n\n  if (allowMultiple || isOldAttachment) {\n    transformedAttachments.forEach(attachment => {\n      const key = isOldAttachment ? `${valueRef}.pxResults` : valueRef;\n      const existingAttachments: ReduxAttachments[] = PCore.getStoreValue(`.${key}`, pConn.getPageReference(), pConn.getContextName()) || [];\n\n      if (insertRedux) {\n        const actionPayLoad = {\n          type: 'LIST_ACTION',\n          payload: {\n            instruction: 'INSERT',\n            context: pConn.getContextName(),\n            referenceList: `${pConn.getPageReference()}.${key}`,\n            listIndex: existingAttachments.length,\n            content: attachment\n          }\n        };\n        PCore.getStore()?.dispatch(actionPayLoad);\n      } else if (deleteRedux) {\n        const uniqueKey = getMappedValue('pzInsKey');\n        deleteIndex = existingAttachments.findIndex(\n          existingAttachment =>\n            existingAttachment[uniqueKey as keyof ReduxAttachments] === transformedAttachments[0][uniqueKey as keyof ReduxAttachments]\n        );\n        const actionPayLoad = {\n          type: 'LIST_ACTION',\n          payload: {\n            instruction: 'DELETE',\n            context: pConn.getContextName(),\n            referenceList: `${pConn.getPageReference()}.${key}`,\n            listIndex: deleteIndex\n          }\n        };\n        PCore.getStore()?.dispatch(actionPayLoad);\n      }\n    });\n  } else if (insertRedux) {\n    const actionPayLoad = {\n      type: 'LIST_ACTION',\n      payload: {\n        instruction: 'REPLACE',\n        context: pConn.getContextName(),\n        referenceList: `${pConn.getPageReference()}.${valueRef}`,\n        content: transformedAttachments[0]\n      }\n    };\n    PCore.getStore()?.dispatch(actionPayLoad);\n  } else if (deleteRedux) {\n    const actionPayLoad = {\n      type: 'LIST_ACTION',\n      payload: {\n        instruction: 'DELETEPAGE',\n        context: pConn.getContextName(),\n        referenceList: `${pConn.getPageReference()}.${valueRef}`\n      }\n    };\n    PCore.getStore()?.dispatch(actionPayLoad);\n  }\n};\n\nexport const insertAttachments = (\n  files: FileObject[],\n  pConn: typeof PConnect,\n  attachmentsInModal: ReduxAttachments[],\n  options: PageInstructionOptions\n) => {\n  const { isMultiAttachmentInInlineEditTable } = options;\n  let valueRef = pConn.getStateProps().value;\n  valueRef = valueRef?.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n  const transformedAttachments = generateInstructions(files, pConn, attachmentsInModal, {\n    ...options,\n    insertPageInstruction: true\n  });\n\n  if (isMultiAttachmentInInlineEditTable) {\n    return; // For attachments within modal, redux update is not necessary yet, as modal isn't submitted at this stage\n  }\n  updateReduxState(transformedAttachments, pConn, valueRef, { ...options, insertRedux: true });\n};\n\nexport const deleteAttachments = (\n  files: FileObject[],\n  pConn: typeof PConnect,\n  attachmentsInModal: Pick<ReduxAttachments, 'instruction' | 'fileIndex'>[],\n  options: PageInstructionOptions\n) => {\n  const { isMultiAttachmentInInlineEditTable } = options;\n  let valueRef = pConn.getStateProps().value;\n  valueRef = valueRef?.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n  const transformedAttachments = generateInstructions(files, pConn, attachmentsInModal, {\n    ...options,\n    deletePageInstruction: true\n  });\n\n  if (isMultiAttachmentInInlineEditTable) {\n    return; // For attachments within modal, redux update is not necessary yet, as modal isn't submitted at this stage\n  }\n  updateReduxState(transformedAttachments, pConn, valueRef, { ...options, deleteRedux: true });\n};\n\nexport const clearFieldErrorMessages = (pConn: typeof PConnect) => {\n  const fieldName = pConn.getStateProps().value;\n  PCore.getMessageManager().clearMessages({\n    type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,\n    property: fieldName,\n    pageReference: pConn.getPageReference(),\n    context: pConn.getContextName()\n  });\n};\n\nexport const onFileDownload = (responseProps, context) => {\n  const { ID, name, extension, type, category, responseType } = responseProps;\n\n  if (category !== 'pxDocument') {\n    (\n      PCore.getAttachmentUtils().downloadAttachment(ID, context, responseType) as Promise<{\n        data: string;\n        headers: Record<string, string>;\n      }>\n    )\n      .then(content => {\n        fileDownloadVar(content, type, name, extension);\n      })\n\n      .catch(console.error);\n  } else {\n    (\n      PCore.getAttachmentUtils().downloadDocument(ID, context) as Promise<{\n        data: string;\n        headers: Record<string, string>;\n      }>\n    )\n      .then(content => {\n        fileDownloadVar(content, type, name, extension);\n      })\n\n      .catch(console.error);\n  }\n};\n\n// Prepares new structure as per Cosmos component\nexport const transformAttachments = attachments => {\n  const transformedFiles = [...attachments];\n  let deleteIndex = -1;\n  transformedFiles.forEach(attachment => {\n    attachment.props.id = attachment.responseProps.ID;\n    attachment.props.format = attachment.props.name.split('.').pop();\n    if (attachment.props.error) {\n      attachment.responseProps.deleteIndex = deleteIndex;\n    } else {\n      deleteIndex += 1;\n      attachment.responseProps.deleteIndex = deleteIndex;\n    }\n  });\n\n  return transformedFiles;\n};\n","import { Component, OnInit, Input, OnDestroy, ViewChild, ElementRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { PConnFieldProps } from '../../../_types/PConnProps.interface';\nimport {\n  clearFieldErrorMessages,\n  deleteAttachments,\n  getMappedValue,\n  insertAttachments,\n  onFileDownload,\n  transformAttachments,\n  validateFileExtension,\n  validateMaxSize\n} from './AttachmentUtils';\nimport { PageInstructionOptions } from './Attachment.types';\n\ninterface AttachmentProps extends Omit<PConnFieldProps, 'value'> {\n  // If any, enter additional props that only exist on this component\n  value: any;\n  extensions: any;\n  allowMultiple: boolean;\n  isTableFormatter: boolean;\n  editMode: string;\n}\n\n@Component({\n  selector: 'app-attachment',\n  templateUrl: './attachment.component.html',\n  styleUrls: ['./attachment.component.scss'],\n  imports: [CommonModule, MatProgressSpinnerModule, MatMenuModule, MatIconModule, MatButtonModule]\n})\nexport class AttachmentComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n  @ViewChild('uploader', { static: false }) fileInput: ElementRef;\n\n  localizationService: any;\n  contextName: string;\n  actionSequencer: any;\n  caseID: any;\n  label$ = '';\n  value$: any;\n  bRequired$ = false;\n  bReadonly$ = false;\n  bDisabled$ = false;\n  bVisible$ = true;\n  allowMultiple$ = false;\n  extensions$ = '';\n  displayMode: string | undefined;\n  status = '';\n  validateMessage: string | undefined = '';\n  valueRef: string;\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  uploadMultipleFilesLabel = this.localizedVal('file_upload_text_multiple', 'CosmosFields');\n  uploadSingleFileLabel = this.localizedVal('file_upload_text_one', 'CosmosFields');\n  filesWithError: any = [];\n  files: any = [];\n  srcImg: any;\n  deleteIcon: string;\n  tempFilesToBeUploaded: any[];\n  attachments: any;\n  attachmentCount: number = 0;\n  isOldAttachment = false;\n  multiAttachmentsInInlineEdit: any = [];\n  isMultiAttachmentInInlineEditTable;\n  overrideLocalState = false;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    this.srcImg = this.utils.getImageSrc('document-doc', this.utils.getSDKStaticContentUrl());\n    this.deleteIcon = this.utils.getImageSrc('trash', this.utils.getSDKStaticContentUrl());\n\n    this.localizationService = this.pConn$.getLocalizationService();\n    this.contextName = this.pConn$.getContextName();\n    this.actionSequencer = PCore.getActionsSequencer();\n\n    this.caseID = PCore.getStoreValue(`.${getMappedValue('pyID')}`, PCore.getResolvedConstantValue('caseInfo.content'), this.contextName);\n\n    this.displayMode = this.pConn$.getConfigProps().displayMode;\n\n    if (this.displayMode !== 'DISPLAY_ONLY') {\n      PCore.getPubSubUtils().subscribe(\n        PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION,\n        () => {\n          this.overrideLocalState = true;\n        },\n        this.caseID\n      );\n    }\n\n    const { value } = this.pConn$.getConfigProps();\n    const rawValue = this.pConn$.getComponentConfig().value;\n    const isAttachmentAnnotationPresent = typeof rawValue === 'object' ? false : rawValue?.includes('@ATTACHMENT');\n    const { attachments, isOldAttachment } = isAttachmentAnnotationPresent ? value : PCore.getAttachmentUtils().prepareAttachmentData(value);\n    this.isOldAttachment = isOldAttachment;\n    this.attachments = attachments;\n    this.files = transformAttachments(attachments);\n\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  updateSelf() {\n    const configProps: AttachmentProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as AttachmentProps;\n    const stateProps = this.pConn$.getStateProps();\n    const { value, label, required, disabled, readOnly, extensions, displayMode, isTableFormatter, allowMultiple, editMode } = configProps;\n\n    this.bRequired$ = this.utils.getBooleanValue(required);\n    if (configProps.visibility != null) {\n      this.bVisible$ = this.utils.getBooleanValue(configProps.visibility);\n    }\n    this.bDisabled$ = this.utils.getBooleanValue(disabled);\n    this.bReadonly$ = this.utils.getBooleanValue(readOnly);\n    this.allowMultiple$ = this.utils.getBooleanValue(allowMultiple);\n\n    this.label$ = label;\n    this.value$ = value;\n    this.status = stateProps.status;\n\n    this.validateMessage = this.angularPConnectData.validateMessage;\n    this.extensions$ = extensions;\n    this.valueRef = this.pConn$.getStateProps().value;\n    this.valueRef = this.valueRef.startsWith('.') ? this.valueRef.substring(1) : this.valueRef;\n\n    this.pConn$.setReferenceList(`.${this.valueRef}`);\n\n    this.displayMode = displayMode;\n    this.isMultiAttachmentInInlineEditTable = isTableFormatter && allowMultiple && editMode === 'tableRows';\n\n    const rawValue = this.pConn$.getComponentConfig().value;\n    const isAttachmentAnnotationPresent = typeof rawValue === 'object' ? false : rawValue?.includes('@ATTACHMENT');\n    const { attachments, isOldAttachment } = isAttachmentAnnotationPresent ? value : PCore.getAttachmentUtils().prepareAttachmentData(value);\n    const isAttachmentsChanged = !PCore.isDeepEqual(this.attachments, attachments);\n    this.isOldAttachment = isOldAttachment;\n    this.attachments = attachments;\n\n    // update the attachments shown in the UI\n    if (isAttachmentsChanged) {\n      this.updateAttachments();\n    }\n  }\n\n  updateAttachments() {\n    if (this.overrideLocalState) {\n      const serverFiles = transformAttachments(this.attachments);\n      this.overrideLocalState = false;\n      this.attachmentCount = this.attachments.length;\n      this.filesWithError = [];\n      this.files = serverFiles;\n    } else {\n      // Determine whether refresh call has overridden any error files in redux, push error files back to redux from local state to perform client side validation during assignment submit\n      const errorFiles = this.attachments.filter(attachment => attachment.props.error);\n      if (errorFiles.length === 0 && this.filesWithError.length > 0) {\n        // Check if local file state contains error files and push those to redux\n        const uniqueKey = getMappedValue('pzInsKey');\n        const transformedErrorFiles = this.filesWithError.map(errorFile => {\n          const filename = errorFile.props.name;\n          return {\n            [uniqueKey]: errorFile.props.id,\n            FileName: filename,\n            Category: '',\n            FileExtension: filename.split('.').pop() ?? filename,\n            error: errorFile.props.error || null\n          };\n        });\n        let key = '';\n        let updatedAttachments: any = [];\n        if (this.allowMultiple$ || this.isOldAttachment) {\n          key = this.isOldAttachment ? `${this.valueRef}.pxResults` : this.valueRef;\n          const existingAttachments = PCore.getStoreValue(`.${key}`, this.pConn$.getPageReference(), this.pConn$.getContextName()) || [];\n          updatedAttachments = [...existingAttachments, ...transformedErrorFiles];\n        } else {\n          key = this.valueRef;\n          updatedAttachments = transformedErrorFiles[0];\n        }\n        PCore.getStateUtils().updateState(this.pConn$.getContextName(), key, updatedAttachments, {\n          pageReference: this.pConn$.getPageReference(),\n          isArrayDeepMerge: false,\n          removePropertyFromChangedList: true\n        });\n      }\n    }\n  }\n\n  downloadFile(fileObj: any) {\n    onFileDownload(fileObj, this.contextName);\n  }\n\n  deleteFile(file, fileIndex: number) {\n    if (this.filesWithError.length > 0) {\n      this.filesWithError = this.filesWithError.filter(fileWithError => fileWithError.props.id !== file.props.id);\n      if (this.filesWithError.length === 0) {\n        clearFieldErrorMessages(this.pConn$);\n      }\n    }\n\n    if (file.inProgress) {\n      // @ts-ignore - Expected 1 arguments, but got 2.ts(2554)\n      PCore.getAttachmentUtils().cancelRequest(file.props.id, this.contextName);\n      this.actionSequencer.deRegisterBlockingAction(this.contextName).catch(() => {});\n      this.files = this.files.filter(localFile => localFile.props.id !== file.props.id);\n    } else {\n      deleteAttachments([file], this.pConn$, this.multiAttachmentsInInlineEdit, {\n        allowMultiple: this.allowMultiple$,\n        isOldAttachment: this.isOldAttachment,\n        isMultiAttachmentInInlineEditTable: this.isMultiAttachmentInInlineEditTable,\n        attachmentCount: this.attachmentCount,\n        deleteIndex: fileIndex\n      } as any);\n\n      // Filter out without deleted file and reset the file indexes\n      let tempLocalFiles = [...this.files];\n      tempLocalFiles = tempLocalFiles.filter(localFile => localFile.props.id !== file.props.id);\n      tempLocalFiles.forEach(localFile => {\n        if (!localFile.props.error && !file.props.error) {\n          const updatedDeleteIndex =\n            localFile.responseProps.deleteIndex > fileIndex ? localFile.responseProps.deleteIndex - 1 : localFile.responseProps.deleteIndex;\n\n          localFile.responseProps.deleteIndex = updatedDeleteIndex;\n        }\n      });\n      this.files = tempLocalFiles;\n      if (!file.props.error) {\n        this.attachmentCount -= 1;\n      }\n    }\n\n    if (this.fileInput?.nativeElement) {\n      this.fileInput.nativeElement.value = '';\n    }\n  }\n\n  onFileAdded(event) {\n    let addedFiles = Array.from(event.target.files);\n    addedFiles = this.allowMultiple$ ? addedFiles : [addedFiles[0]];\n    const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || '5';\n    this.tempFilesToBeUploaded = [\n      ...addedFiles.map((f: any, index) => {\n        f.ID = `${new Date().getTime()}I${index}`;\n        f.props = {\n          type: f.type,\n          name: f.name,\n          id: f.ID,\n          format: f.name.split('.').pop(),\n          icon: this.utils.getIconFromFileType(f.type),\n          thumbnail: window.URL.createObjectURL(f)\n        };\n\n        if (!validateMaxSize(f, maxAttachmentSize)) {\n          f.props.error = true;\n          f.props.meta = this.localizationService.getLocalizedText(`File is too big. Max allowed size is ${maxAttachmentSize}MB.`);\n        } else if (!validateFileExtension(f, this.extensions$)) {\n          f.props.error = true;\n          f.props.meta = `${this.localizationService.getLocalizedText('File has invalid extension. Allowed extensions are:')} ${this.extensions$.replaceAll(\n            '.',\n            ''\n          )}`;\n        }\n\n        if (f.props.error) {\n          const fieldName = (this.pConn$.getStateProps() as any).value;\n          PCore.getMessageManager().addMessages({\n            messages: [\n              {\n                type: 'error',\n                message: this.localizationService.getLocalizedText('Error with one or more files')\n              }\n            ],\n            property: fieldName,\n            pageReference: this.pConn$.getPageReference(),\n            context: this.contextName\n          });\n        }\n        return f;\n      })\n    ];\n\n    const tempFilesWithError = this.tempFilesToBeUploaded.filter(f => f.props.error);\n    if (tempFilesWithError.length > 0) {\n      this.filesWithError = [...this.filesWithError, ...tempFilesWithError];\n\n      insertAttachments(tempFilesWithError, this.pConn$, this.multiAttachmentsInInlineEdit, {\n        allowMultiple: this.allowMultiple$,\n        isOldAttachment: this.isOldAttachment,\n        isMultiAttachmentInInlineEditTable: this.isMultiAttachmentInInlineEditTable,\n        attachmentCount: this.attachmentCount\n      } as PageInstructionOptions);\n    }\n\n    if (!this.allowMultiple$) {\n      this.files = [...this.tempFilesToBeUploaded];\n    } else {\n      this.files = [...this.files, ...this.tempFilesToBeUploaded];\n    }\n\n    this.actionSequencer.registerBlockingAction(this.contextName).then(() => {\n      this.uploadFiles();\n    });\n  }\n\n  onUploadProgress(id, ev) {\n    const progress = Math.floor((ev.loaded / ev.total) * 100);\n    this.files = this.files.map(localFile => {\n      if (localFile.props?.id === id) {\n        localFile.inProgress = true;\n        localFile.props.progress = progress;\n      }\n      return localFile;\n    });\n  }\n\n  populateErrorAndUpdateRedux(file) {\n    const fieldName = (this.pConn$.getStateProps() as any).value;\n    // set errors to property to block submit even on errors in file upload\n    PCore.getMessageManager().addMessages({\n      messages: [\n        {\n          type: 'error',\n          message: this.localizationService.getLocalizedText('Error with one or more files')\n        }\n      ],\n      property: fieldName,\n      pageReference: this.pConn$.getPageReference(),\n      context: this.contextName\n    });\n    insertAttachments([file], this.pConn$, this.multiAttachmentsInInlineEdit, {\n      allowMultiple: this.allowMultiple$,\n      isOldAttachment: this.isOldAttachment,\n      isMultiAttachmentInInlineEditTable: this.isMultiAttachmentInInlineEditTable,\n      attachmentCount: this.attachmentCount\n    } as any);\n  }\n\n  errorHandler(isFetchCanceled, file) {\n    return error => {\n      if (!isFetchCanceled(error)) {\n        let uploadFailMsg = this.localizationService.getLocalizedText('Something went wrong');\n        if (error.response && error.response.data && error.response.data.errorDetails) {\n          uploadFailMsg = this.localizationService.getLocalizedText(error.response.data.errorDetails[0].localizedValue);\n        }\n\n        this.files = this.files.map(localFile => {\n          if (localFile.props.id === file.props.id) {\n            localFile.props.meta = uploadFailMsg;\n            localFile.props.error = true;\n            localFile.props.icon = this.utils.getIconFromFileType(localFile.type);\n            localFile.props.name = this.localizationService.getLocalizedText('Unable to upload file');\n            localFile.inProgress = false;\n            delete localFile.props.progress;\n            this.filesWithError.push(localFile);\n\n            this.populateErrorAndUpdateRedux(localFile);\n          }\n          return localFile;\n        });\n      }\n      throw error;\n    };\n  }\n\n  uploadFiles() {\n    const filesToBeUploaded = this.files\n      .filter(e => {\n        const isFileUploaded = e.props && e.props.progress === 100;\n        const fileHasError = e.props && e.props.error;\n        const isFileUploadedInLastStep = e.responseProps && e.responseProps.ID !== 'temp';\n        const isFileUploadInProgress = e.inProgress;\n        return !isFileUploadInProgress && !isFileUploaded && !fileHasError && !isFileUploadedInLastStep;\n      })\n      .map(file =>\n        PCore.getAttachmentUtils().uploadAttachment(\n          file,\n          ev => {\n            this.onUploadProgress(file.props.id, ev);\n          },\n          isFetchCanceled => {\n            return this.errorHandler(isFetchCanceled, file);\n          },\n          this.contextName\n        )\n      );\n\n    Promise.allSettled(filesToBeUploaded)\n      .then((fileResponses: any) => {\n        fileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block\n        if (fileResponses.length > 0) {\n          this.files = this.files.map(localFile => {\n            // if attach field has multiple files & in bw any error files are present\n            // Example : files = [properFile1, errFile, errFile, properFile2]\n            // indexes for delete & preview should be for files [properFile1, properFile2] which is [1,2]\n            const index = fileResponses.findIndex(fileResponse => fileResponse.value.clientFileID === localFile.props.id);\n            if (index >= 0) {\n              fileResponses[index].value.thumbnail = localFile.props.thumbnail;\n              localFile.inProgress = false;\n              localFile.ID = fileResponses[index].value.ID;\n              localFile.props.id = fileResponses[index].value.ID;\n              localFile.props.meta = this.localizationService.getLocalizedText('Uploaded successfully');\n              localFile.props.progress = 100;\n              localFile.handle = fileResponses[index].value.ID;\n              localFile.label = this.valueRef;\n              localFile.responseProps = {\n                pzInsKey: 'temp',\n                pyAttachName: localFile.props.name\n              };\n            }\n\n            return localFile;\n          });\n\n          insertAttachments(fileResponses, this.pConn$, this.multiAttachmentsInInlineEdit, {\n            allowMultiple: this.allowMultiple$,\n            isOldAttachment: this.isOldAttachment,\n            isMultiAttachmentInInlineEditTable: this.isMultiAttachmentInInlineEditTable,\n            attachmentCount: this.attachmentCount,\n            insert: true\n          } as any);\n\n          this.attachmentCount += fileResponses.length;\n\n          if (this.filesWithError?.length === 0) {\n            clearFieldErrorMessages(this.pConn$);\n          }\n        }\n\n        this.actionSequencer.deRegisterBlockingAction(this.contextName).catch(() => {});\n      })\n      .catch(error => {\n        console.log(error);\n        this.actionSequencer.cancelDeferredActionsOnError(this.contextName);\n      });\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n\n    if (this.displayMode !== 'DISPLAY_ONLY') {\n      PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, this.caseID);\n    }\n  }\n}\n","<div class=\"file-upload-container\" *ngIf=\"bVisible$\">\n  <span class=\"attachment-label\" [ngClass]=\"{ 'file-label': bRequired$ }\">{{ label$ }}</span>\n  <div *ngIf=\"(files.length === 0 && !allowMultiple$) || allowMultiple$\">\n    <div\n      style=\"margin-bottom: 10px\"\n      id=\"attachment-container\"\n      [ngClass]=\"validateMessage ? 'psdk-modal-file-selector-error' : 'psdk-modal-file-selector'\"\n    >\n      <div [hidden]=\"true\" id=\"attachment-ID\">\n        {{ valueRef }}\n      </div>\n      <input hidden type=\"file\" [required]=\"bRequired$\" #uploader [id]=\"valueRef\" [multiple]=\"allowMultiple$\" (change)=\"onFileAdded($event)\" />\n      <button mat-stroked-button color=\"primary\" [disabled]=\"bDisabled$\" (click)=\"uploader.click()\">\n        {{\n          allowMultiple$\n            ? uploadMultipleFilesLabel === 'file_upload_text_multiple'\n              ? 'Choose files'\n              : uploadMultipleFilesLabel\n            : uploadSingleFileLabel === 'file_upload_text_one'\n              ? 'Choose a file'\n              : uploadSingleFileLabel\n        }}\n      </button>\n    </div>\n  </div>\n  <span *ngIf=\"validateMessage\" class=\"file-error\">{{ validateMessage }}</span>\n  <div *ngIf=\"files && files.length > 0\">\n    <div *ngFor=\"let file of files; let i = index\">\n      <div class=\"psdk-attachment-card\">\n        <div className=\"psdk-utility-card-icon\">\n          <img *ngIf=\"!file.inProgress\" class=\"psdk-attachment-card-svg-icon\" src=\"{{ srcImg }}\" />\n          <mat-spinner *ngIf=\"file.inProgress\" class=\"progress-spinner\" diameter=\"40\"></mat-spinner>\n        </div>\n        <div class=\"psdk-attachment-card-main\">\n          <div class=\"psdk-attachment-card-main-primary-label\">{{ file.props.name }}</div>\n          <div *ngIf=\"file.props.meta\" [ngStyle]=\"{ color: file.props.error ? 'red' : null }\">{{ file.props.meta }}</div>\n        </div>\n        <div class=\"psdk-attachment-action\">\n          <button id=\"delete-attachment\" *ngIf=\"file.ID\" class=\"psdk-utility-button\" (click)=\"deleteFile(file, i)\">\n            <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ deleteIcon }}\" />\n          </button>\n          <div *ngIf=\"!file.ID\">\n            <button id=\"setting-button\" mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n              <mat-icon>more_vert</mat-icon>\n            </button>\n            <mat-menu #actionMenu=\"matMenu\">\n              <button mat-menu-item (click)=\"downloadFile(file.responseProps ? file.responseProps : {})\">Download</button>\n              <button mat-menu-item (click)=\"deleteFile(file, i)\">Delete</button>\n            </mat-menu>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface CaseHistoryProps {\n  label?: string;\n}\n\n@Component({\n  selector: 'app-case-history',\n  templateUrl: './case-history.component.html',\n  styleUrls: ['./case-history.component.scss'],\n  imports: [CommonModule, MatTableModule]\n})\nexport class CaseHistoryComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n\n  configProps$: CaseHistoryProps;\n\n  repeatList$: MatTableDataSource<any>;\n  fields$: any[];\n  displayedColumns$ = Array<any>();\n  waitingForData = false;\n\n  constructor(private utils: Utils) {}\n\n  ngOnInit(): void {\n    this.configProps$ = this.pConn$.getConfigProps();\n\n    const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n    const dataViewName = 'D_pyWorkHistory';\n    const context = this.pConn$.getContextName();\n\n    this.waitingForData = true;\n\n    const caseHistoryData = PCore.getDataApiUtils().getData(\n      dataViewName,\n      { dataViewParameters: [{ CaseInstanceKey: caseID }] } as any,\n      context\n    ) as Promise<any>;\n\n    caseHistoryData.then((historyJSON: any) => {\n      this.fields$ = [\n        { label: this.pConn$.getLocalizedValue('Date', '', ''), type: 'DateTime', fieldName: 'pxTimeCreated' },\n        { label: this.pConn$.getLocalizedValue('Description', '', ''), type: 'TextInput', fieldName: 'pyMessageKey' },\n        { label: this.pConn$.getLocalizedValue('Performed by', '', ''), type: 'TextInput', fieldName: 'pyPerformer' }\n      ];\n\n      const tableDataResults = this.updateData(historyJSON.data.data, this.fields$);\n\n      this.displayedColumns$ = this.getDisplayColumns(this.fields$);\n\n      this.repeatList$ = new MatTableDataSource(tableDataResults);\n\n      this.waitingForData = false;\n    });\n  }\n  // This method isn't being used anywhere, keeping it as a reference for now\n  // updateFields(arFields, arColumns): any[] {\n  //   const arReturn = arFields;\n  //   for (const i in arReturn) {\n  //     arReturn[i].config.name = arColumns[i];\n  //   }\n\n  //   return arReturn;\n  // }\n\n  updateData(listData: any[], fieldData: any[]): any[] {\n    const returnList: any[] = new Array<any>();\n    listData.forEach(row => {\n      // copy\n      const rowData = JSON.parse(JSON.stringify(row));\n\n      for (const field of fieldData) {\n        const fieldName = field.fieldName;\n        let formattedDate;\n\n        switch (field.type) {\n          case 'Date':\n            formattedDate = this.utils.generateDate(rowData[fieldName], 'Date-Short-YYYY');\n            rowData[fieldName] = formattedDate;\n            break;\n          case 'DateTime':\n            formattedDate = this.utils.generateDateTime(rowData[fieldName], 'DateTime-Short-YYYY');\n            rowData[fieldName] = formattedDate;\n            break;\n          default:\n            break;\n        }\n      }\n      returnList.push(rowData);\n    });\n    return returnList;\n  }\n\n  getDisplayColumns(fields: any[] = []) {\n    return fields.map(field => {\n      return field.fieldName;\n    });\n  }\n}\n","<div>\n  <h2 class=\"psdk-case-history-title\">{{ configProps$.label }}</h2>\n  <table mat-table [dataSource]=\"repeatList$\">\n    <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.fieldName\">\n      <th mat-header-cell *matHeaderCellDef>{{ dCol.label }}</th>\n      <td mat-cell *matCellDef=\"let element\">{{ element[dCol.fieldName] }}</td>\n    </ng-container>\n\n    <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n    <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\"></tr>\n  </table>\n</div>\n","/**\n * Returns the value of the key from objectInfo/caseInfo\n * Added fallback to retrieve from caseInfo if objectInfo not present.\n * @param pConnect\n * @param key\n * @returns the value of key\n */\nexport const getResolvedConstantValue = (pConnect: typeof PConnect, key: string) => {\n  return pConnect.getValue(PCore.getResolvedConstantValue(key)) || pConnect.getValue(key);\n};\n","import { Component, OnInit, Input, NgZone, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport download from 'downloadjs';\nimport debounce from 'lodash.debounce';\n\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\nimport { getResolvedConstantValue } from '../../../_helpers/object-utils';\n\ninterface FileUtilityProps {\n  // If any, enter additional props that only exist on this component\n  label?: string;\n  caseId?: string;\n}\n\n@Component({\n  selector: 'app-file-utility',\n  templateUrl: './file-utility.component.html',\n  styleUrls: ['./file-utility.component.scss'],\n  imports: [CommonModule, MatButtonModule, MatFormFieldModule, MatInputModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class FileUtilityComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  arFullListAttachments: any[] = [];\n\n  lu_name$ = '';\n  lu_icon$ = '';\n  lu_bLoading$ = false;\n  lu_count$ = 0;\n  lu_arActions$: any[] = [];\n  lu_arItems$: any = [];\n\n  va_arItems$: any[] = [];\n\n  lu_onViewAllFunction: any;\n\n  bShowFileModal$ = false;\n  bShowLinkModal$ = false;\n  bShowViewAllModal$ = false;\n\n  arFileMainButtons$: any[] = [];\n  arFileSecondaryButtons$: any[] = [];\n\n  arLinkMainButtons$: any[] = [];\n  arLinkSecondaryButtons$: any[] = [];\n\n  arFiles$: any[] = [];\n  arFileList$: any[] = [];\n  removeFileFromList$: any;\n\n  arLinks$: any[] = [];\n  arLinksList$: any[] = [];\n  removeLinksFromList$: any;\n\n  link_title$ = '';\n  link_url$ = '';\n\n  closeSvgIcon$ = '';\n\n  currentCaseID = '';\n  debouncedGetAttachments: any;\n  attachSubId;\n\n  addAttachmentsActions: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private utils: Utils,\n    private ngZone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    // // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    const configProps: FileUtilityProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n\n    const { caseId, label } = configProps;\n\n    this.lu_name$ = label ?? '';\n    this.lu_icon$ = 'paper-clip';\n\n    this.closeSvgIcon$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());\n    this.addAttachmentsActions = [\n      {\n        text: this.pConn$.getLocalizedValue('Add files', '', ''),\n        id: 'addNewFiles',\n        onClick: () => this.createModal('addLocalFile')\n      },\n      {\n        text: this.pConn$.getLocalizedValue('Add links', '', ''),\n        id: 'addNewLinks',\n        onClick: () => this.createModal('addLocalLink')\n      }\n    ];\n    // const onViewAllCallback = () => this.onViewAll(this.arFullListAttachments);\n\n    this.lu_onViewAllFunction = { onClick: this.onViewAll.bind(this) };\n\n    this.removeFileFromList$ = { onClick: this.removeFileFromList.bind(this) };\n    this.removeLinksFromList$ = { onClick: this.removeLinksFromList.bind(this) };\n\n    this.debouncedGetAttachments = debounce(this.refreshAttachments.bind(this), 1000);\n\n    this.updateSelf();\n\n    this.createModalButtons();\n\n    const caseID = caseId ?? getResolvedConstantValue(this.pConn$, PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n\n    const attachSubObject = {\n      matcher: 'ATTACHMENTS',\n      criteria: {\n        ID: caseID\n      }\n    };\n    this.attachSubId = PCore.getMessagingServiceManager().subscribe(attachSubObject, this.debouncedGetAttachments, this.pConn$.getContextName());\n\n    this.debouncedGetAttachments();\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n\n    PCore.getMessagingServiceManager().unsubscribe(this.attachSubId);\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    // adding a property to track in configProps, when ever the attachment file changes\n    // need to trigger a redraw\n    this.pConn$.registerAdditionalProps({\n      lastRefreshTime: `@P ${PCore.getConstants().SUMMARY_OF_ATTACHMENTS_LAST_REFRESH_TIME}`\n    });\n\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf || this.caseHasChanged()) {\n      this.updateSelf();\n    }\n  }\n\n  onAttachFiles(files: any[] = []) {\n    const attachmentUtils = PCore.getAttachmentUtils();\n    const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n\n    if (files.length > 0) {\n      this.lu_bLoading$ = true;\n    }\n\n    const arFiles: any = Array.from(files);\n\n    Promise.allSettled(\n      arFiles.map(file => attachmentUtils.uploadAttachment(file, this.onUploadProgress, this.errorHandler, this.pConn$.getContextName()))\n    )\n      .then((fileResponses: any) => {\n        const uploadedFiles: any = [];\n        fileResponses.forEach(fileResponse => {\n          if (fileResponse.status === 'fulfilled') {\n            uploadedFiles.push(fileResponse.value);\n          }\n        });\n        if (uploadedFiles.length > 0) {\n          (attachmentUtils.linkAttachmentsToCase(caseID, uploadedFiles, 'File', this.pConn$.getContextName()) as Promise<any>)\n            .then(() => {\n              this.refreshAttachments();\n            })\n            .catch();\n        }\n      })\n      .catch();\n\n    this.arFileList$ = [];\n    this.lu_bLoading$ = false;\n  }\n\n  refreshAttachments() {\n    this.updateSelf();\n  }\n\n  onUploadProgress() {}\n\n  errorHandler() {}\n\n  onAttachLinks(links) {\n    const attachmentUtils = PCore.getAttachmentUtils();\n    const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n\n    if (links.length > 0) {\n      this.lu_bLoading$ = true;\n    }\n\n    const linksToAttach = links.map(link => ({\n      type: 'URL',\n      category: 'URL',\n      url: link.url,\n      name: link.linkTitle\n    }));\n\n    (attachmentUtils.linkAttachmentsToCase(caseID, linksToAttach, 'URL', this.pConn$.getContextName()) as Promise<any>)\n      .then(() => {\n        this.refreshAttachments();\n      })\n      .catch(console.log);\n  }\n\n  addAttachments(attsFromResp: any[] = []) {\n    this.lu_bLoading$ = false;\n\n    attsFromResp = attsFromResp.map(respAtt => {\n      const updatedAtt = {\n        ...respAtt,\n        meta: `${respAtt.category} . ${this.utils.generateDateTime(respAtt.createTime, 'DateTime-Since')}, ${respAtt.createdBy}`\n      };\n      if (updatedAtt.type === 'FILE') {\n        updatedAtt.nameWithExt = updatedAtt.fileName;\n      }\n      return updatedAtt;\n    });\n\n    return attsFromResp;\n  }\n\n  onViewAll(): void {\n    this.bShowViewAllModal$ = true;\n\n    // add clickAway listener\n    // window.addEventListener('mouseup', this._clickAway.bind(this));\n  }\n\n  // Below method is not needed, still having it commented in case we want in future\n  // _clickAway(event: any) {\n  //   let bInPopUp = false;\n\n  //   // run through list of elements in path, if menu not in th path, then want to\n  //   // hide (toggle) the menu\n  //   for (const i in event.path) {\n  //     if (event.path[i].className == 'psdk-modal-file-top' || event.path[i].tagName == 'BUTTON') {\n  //       bInPopUp = true;\n  //       break;\n  //     }\n  //   }\n  //   if (!bInPopUp) {\n  //     this.bShowViewAllModal$ = false;\n\n  //     window.removeEventListener('mouseup', this._clickAway.bind(this));\n  //   }\n  // }\n\n  _closeViewAll() {\n    this.bShowViewAllModal$ = false;\n\n    // window.removeEventListener('mouseup', this._clickAway.bind(this));\n  }\n\n  removeFileFromList(item: any) {\n    if (item != null) {\n      const arFileList = this.arFileList$;\n      const itemId = item.id;\n\n      for (let fileIndex = 0; fileIndex < arFileList.length; fileIndex++) {\n        if (arFileList[fileIndex].id == itemId) {\n          // remove the file from the list and redraw\n          this.ngZone.run(() => {\n            arFileList.splice(fileIndex, 1);\n          });\n          break;\n        }\n      }\n    }\n  }\n\n  removeLinksFromList(item: any) {\n    const localLinksList = this.arLinksList$.slice();\n\n    if (item != null) {\n      const itemId = item.id;\n\n      for (let linkIndex = 0; linkIndex < localLinksList.length; linkIndex++) {\n        if (localLinksList[linkIndex].id == itemId) {\n          // remove the file from the list and redraw\n          localLinksList.splice(linkIndex, 1);\n\n          this.ngZone.run(() => {\n            this.arLinksList$ = localLinksList.slice();\n          });\n\n          break;\n        }\n      }\n    }\n  }\n\n  getNewListUtilityItemProps = ({ att, cancelFile, downloadFile, deleteFile, removeFile }) => {\n    let actions;\n    let isDownloadable = false;\n\n    if (att.progress && att.progress !== 100) {\n      actions = [\n        {\n          id: `Cancel-${att.ID}`,\n          text: 'Cancel',\n          icon: 'times',\n          onClick: cancelFile\n        }\n      ];\n    } else if (att.links) {\n      const isFile = att.type === 'FILE';\n      const ID = att.ID.replace(/\\s/gi, '');\n      const actionsMap = new Map([\n        [\n          'download',\n          {\n            id: `download-${ID}`,\n            text: isFile ? 'Download' : 'Open',\n            icon: isFile ? 'download' : 'open',\n            onClick: downloadFile\n          }\n        ],\n        [\n          'delete',\n          {\n            id: `Delete-${ID}`,\n            text: 'Delete',\n            icon: 'trash',\n            onClick: deleteFile\n          }\n        ]\n      ]);\n      actions = [];\n      actionsMap.forEach((action, actionKey) => {\n        if (att.links[actionKey]) {\n          actions.push(action);\n        }\n      });\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n      isDownloadable = att.links.download;\n    } else if (att.error) {\n      actions = [\n        {\n          id: `Remove-${att.ID}`,\n          text: 'Remove',\n          icon: 'trash',\n          onClick: removeFile\n        }\n      ];\n    }\n\n    return {\n      id: att.ID,\n      visual: {\n        icon: this.utils.getIconForAttachment(att),\n        progress: att.progress == 100 ? undefined : att.progress\n      },\n      primary: {\n        type: att.type,\n        name: att.name,\n        icon: 'trash',\n        click: removeFile\n      },\n      secondary: {\n        text: att.meta\n      },\n      actions\n    };\n  };\n\n  getListUtilityItemProps = ({ att, cancelFile, downloadFile, deleteFile, removeFile }) => {\n    let actions;\n    let isDownloadable = false;\n\n    if (att.progress && att.progress !== 100) {\n      actions = [\n        {\n          id: `Cancel-${att.ID}`,\n          text: this.pConn$.getLocalizedValue('Cancel', '', ''),\n          icon: 'times',\n          onClick: cancelFile\n        }\n      ];\n    } else if (att.links) {\n      const isFile = att.type === 'FILE';\n      const ID = att.ID.replace(/\\s/gi, '');\n      const actionsMap = new Map([\n        [\n          'download',\n          {\n            id: `download-${ID}`,\n            text: isFile ? this.pConn$.getLocalizedValue('Download', '', '') : this.pConn$.getLocalizedValue('Open', '', ''),\n            icon: isFile ? 'download' : 'open',\n            onClick: downloadFile\n          }\n        ],\n        [\n          'delete',\n          {\n            id: `Delete-${ID}`,\n            text: this.pConn$.getLocalizedValue('Delete', '', ''),\n            icon: 'trash',\n            onClick: deleteFile\n          }\n        ]\n      ]);\n      actions = [];\n      actionsMap.forEach((action, actionKey) => {\n        if (att.links[actionKey]) {\n          actions.push(action);\n        }\n      });\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n      isDownloadable = att.links.download;\n    } else if (att.error) {\n      actions = [\n        {\n          id: `Remove-${att.ID}`,\n          text: this.pConn$.getLocalizedValue('Remove', '', ''),\n          icon: 'trash',\n          onClick: removeFile\n        }\n      ];\n    }\n\n    return {\n      id: att.ID,\n      visual: {\n        icon: this.utils.getIconForAttachment(att),\n        progress: att.progress == 100 ? undefined : att.progress\n      },\n      primary: {\n        type: att.type,\n        name: att.name,\n        icon: 'open',\n        click: downloadFile\n      },\n      secondary: {\n        text: att.meta\n      },\n      actions\n    };\n  };\n\n  _addLink() {\n    // copy list locally\n    const localList = this.arLinksList$.slice();\n\n    const url = this.link_url$;\n\n    if (!/^(http|https):\\/\\//.test(this.link_url$)) {\n      this.link_url$ = `http://${this.link_url$}`;\n    }\n\n    // list for display\n    let oLink: any = {};\n    oLink.icon = 'chain';\n\n    oLink.ID = `${new Date().getTime()}`;\n\n    oLink = this.getNewListUtilityItemProps({\n      att: oLink,\n      downloadFile: null,\n      cancelFile: null,\n      deleteFile: null,\n      removeFile: null\n    });\n\n    oLink.type = 'URL';\n    oLink.primary.type = oLink.type;\n    oLink.visual.icon = 'chain';\n    oLink.primary.name = this.link_title$;\n    oLink.primary.icon = 'open';\n    oLink.secondary.text = url;\n\n    this.ngZone.run(() => {\n      // need to create a new array or summary list won't detect changes\n      this.arLinksList$ = localList.slice();\n      this.arLinksList$.push(oLink);\n\n      // list for actually attachments\n      const link: any = {};\n      link.id = oLink.id;\n      link.linkTitle = this.link_title$;\n      link.type = oLink.type;\n      link.url = url;\n\n      this.arLinks$.push(link);\n\n      // clear values\n      this.link_title$ = '';\n      this.link_url$ = '';\n    });\n  }\n\n  _changeTitle(event: any) {\n    this.link_title$ = event.srcElement.value;\n  }\n\n  _changeUrl(event: any) {\n    this.link_url$ = event.srcElement.value;\n  }\n\n  downloadFile(att: any) {\n    const attachUtils = PCore.getAttachmentUtils();\n    const { ID, name, extension, type } = att;\n    const context = this.pConn$.getContextName();\n\n    attachUtils\n      // @ts-ignore - 3rd parameter \"responseEncoding\" is optional\n      .downloadAttachment(ID, context)\n      .then((content: any) => {\n        if (type === 'FILE') {\n          this.fileDownload(content.data, name, extension);\n        } else if (type === 'URL') {\n          let { data } = content;\n          if (!/^(http|https):\\/\\//.test(data)) {\n            data = `//${data}`;\n          }\n          window.open(content.data, '_blank');\n        }\n      })\n      .catch(console.error);\n  }\n\n  fileDownload = (data, fileName, ext) => {\n    const file = ext ? `${fileName}.${ext}` : fileName;\n    download(atob(data), file);\n  };\n\n  cancelFile() {\n    alert('cancel');\n  }\n\n  deleteFile(att: any) {\n    setTimeout(() => {\n      const attachUtils = PCore.getAttachmentUtils();\n      const { ID } = att;\n      const context = this.pConn$.getContextName();\n\n      attachUtils\n        .deleteAttachment(ID, context)\n        .then(() => {\n          this.updateSelf();\n          // let newAttachments;\n          // setAttachments((current) => {\n          //   newAttachments = current.filter((file) => file.ID !== ID);\n          //   return newAttachments;\n          // });\n          // if (callbackFn) {\n          //   callbackFn(newAttachments);\n          // }\n        })\n        .catch(console.error);\n    });\n  }\n\n  removeFile() {\n    alert('remove');\n  }\n\n  removeNewFile() {\n    alert('remove');\n  }\n\n  createModal(modalType: string) {\n    switch (modalType) {\n      case 'addLocalFile':\n        this.ngZone.run(() => {\n          this.bShowFileModal$ = true;\n        });\n\n        break;\n      case 'addLocalLink':\n        this.ngZone.run(() => {\n          this.bShowLinkModal$ = true;\n        });\n        break;\n      default:\n        break;\n    }\n  }\n\n  createModalButtons() {\n    this.arFileMainButtons$.push({ actionID: 'attach', jsAction: 'attachFiles', name: this.pConn$.getLocalizedValue('Attach files', '', '') });\n    this.arFileSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: this.pConn$.getLocalizedValue('Cancel', '', '') });\n\n    this.arLinkMainButtons$.push({ actionID: 'attach', jsAction: 'attachLinks', name: this.pConn$.getLocalizedValue('Attach links', '', '') });\n    this.arLinkSecondaryButtons$.push({ actionID: 'cancel', jsAction: 'cancel', name: this.pConn$.getLocalizedValue('Cancel', '', '') });\n  }\n\n  uploadMyFiles($event) {\n    // alert($event.target.files[0]); // outputs the first file\n    this.arFiles$ = this.getFiles($event.target.files);\n\n    // convert FileList to an array\n    const myFiles = Array.from(this.arFiles$);\n\n    this.arFileList$ = myFiles.map(att => {\n      return this.getNewListUtilityItemProps({\n        att,\n        downloadFile: !att.progress ? () => this.downloadFile(att) : null,\n        cancelFile: att.progress ? () => this.cancelFile() : null,\n        deleteFile: !att.progress ? () => this.deleteFile(att) : null,\n        removeFile: att.error ? () => this.removeNewFile() : null\n      });\n    });\n  }\n\n  getFiles(arFiles: any[]): any[] {\n    return this.setNewFiles(arFiles);\n  }\n\n  setNewFiles(arFiles) {\n    let index = 0;\n    for (const file of arFiles) {\n      if (!this.validateMaxSize(file, 5)) {\n        file.error = true;\n        file.meta = 'File is too big. Max allowed size is 5MB.';\n      }\n      file.mimeType = file.type;\n      file.icon = this.utils.getIconFromFileType(file.type);\n      file.ID = `${new Date().getTime()}I${index}`;\n      index++;\n    }\n\n    return arFiles;\n  }\n\n  validateMaxSize(fileObj, maxSizeInMB): boolean {\n    const fileSize = (fileObj.size / 1048576).toFixed(2);\n    return fileSize < maxSizeInMB;\n  }\n\n  onFileActionButtonClick(event: any) {\n    // modal buttons\n    switch (event.action) {\n      case 'cancel':\n        this.bShowFileModal$ = false;\n\n        this.clearOutFiles();\n        break;\n      case 'attachFiles':\n        this.bShowFileModal$ = false;\n        this.onAttachFiles(this.arFiles$);\n\n        this.clearOutFiles();\n        break;\n      default:\n        break;\n    }\n  }\n\n  onLinkActionButtonClick(event: any) {\n    // modal buttons\n    switch (event.action) {\n      case 'cancel':\n        this.bShowLinkModal$ = false;\n\n        this.clearOutLinks();\n        break;\n      case 'attachLinks':\n        this.bShowLinkModal$ = false;\n        this.onAttachLinks(this.arLinks$);\n\n        this.clearOutLinks();\n        break;\n      default:\n        break;\n    }\n  }\n\n  clearOutFiles() {\n    this.arFileList$ = [];\n    this.arFiles$ = [];\n  }\n\n  clearOutLinks() {\n    this.arLinksList$ = [];\n    this.arLinks$ = [];\n    this.link_title$ = '';\n    this.link_url$ = '';\n  }\n\n  addALink() {}\n\n  _fieldOnChangeLink(event: any) {\n    this.link_title$ = event.target.value;\n  }\n\n  _fieldOnChangeURL(event: any) {\n    this.link_url$ = event.target.value;\n  }\n\n  updateSelf() {\n    const caseID = this.getCaseID();\n\n    if (caseID) {\n      this.lu_bLoading$ = true;\n\n      this.fetchCaseAttachments(caseID)\n        .then(resp => {\n          this.handleAttachmentsResponse(resp);\n        })\n        .catch(err => {\n          console.log(err);\n        })\n        .finally(() => {\n          this.lu_bLoading$ = false;\n        });\n    }\n  }\n\n  getCaseID() {\n    return this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID) || '';\n  }\n\n  fetchCaseAttachments(caseID) {\n    const attachmentUtils = PCore.getAttachmentUtils();\n    return attachmentUtils.getCaseAttachments(caseID, this.pConn$.getContextName());\n  }\n\n  handleAttachmentsResponse(resp) {\n    this.arFullListAttachments = this.addAttachments(resp);\n    this.lu_count$ = this.arFullListAttachments.length;\n    this.lu_arActions$ = this.addAttachmentsActions;\n\n    this.lu_arItems$ = this.getUtilityItems(this.arFullListAttachments.slice(0, 3));\n    this.va_arItems$ = this.getUtilityItems(this.arFullListAttachments);\n  }\n\n  getUtilityItems(attachments) {\n    return attachments.map(this.mapAttachmentToUtilityItem.bind(this));\n  }\n\n  mapAttachmentToUtilityItem(att) {\n    return this.getListUtilityItemProps({\n      att,\n      downloadFile: this.getDownloadFunction(att),\n      cancelFile: this.getCancelFunction(att),\n      deleteFile: this.getDeleteFunction(att),\n      removeFile: this.getRemoveFunction(att)\n    });\n  }\n\n  getDownloadFunction(att) {\n    return !att.progress ? () => this.downloadFile(att) : null;\n  }\n\n  getCancelFunction(att) {\n    return att.progress ? () => this.cancelFile() : null;\n  }\n\n  getDeleteFunction(att) {\n    return !att.progress ? () => this.deleteFile(att) : null;\n  }\n\n  getRemoveFunction(att) {\n    return att.error ? () => this.removeFile() : null;\n  }\n\n  caseHasChanged(): boolean {\n    const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);\n    if (this.currentCaseID !== caseID) {\n      this.currentCaseID = caseID;\n      return true;\n    }\n\n    return false;\n  }\n}\n","<div>\n  <component-mapper\n    name=\"ListUtility\"\n    [props]=\"{\n      name$: lu_name$,\n      icon$: lu_icon$,\n      bLoading$: lu_bLoading$,\n      count$: lu_count$,\n      arActions$: lu_arActions$,\n      arItems$: lu_arItems$,\n      onViewAll$: lu_onViewAllFunction,\n      menuIconOverrideAction$: removeFileFromList$\n    }\"\n  ></component-mapper>\n</div>\n\n<div *ngIf=\"bShowFileModal$\" class=\"psdk-dialog-background\">\n  <div class=\"psdk-modal-top\">\n    <h3>{{ pConn$.getLocalizedValue('Add local files', '', '') }}</h3>\n    <div class=\"psdk-modal-body\">\n      <div class=\"psdk-modal-file-selector\">\n        <input hidden type=\"file\" multiple #uploader (change)=\"uploadMyFiles($event)\" />\n\n        <button mat-stroked-button color=\"primary\" (click)=\"uploader.click()\">{{ pConn$.getLocalizedValue('Upload file(s)', '', '') }}</button>\n      </div>\n\n      <component-mapper\n        name=\"SummaryList\"\n        [props]=\"{ arItems$: arFileList$, menuIconOverride$: 'trash', menuIconOverrideAction$: removeFileFromList$ }\"\n      ></component-mapper>\n    </div>\n\n    <component-mapper\n      name=\"ActionButtons\"\n      [props]=\"{ arMainButtons$: arFileMainButtons$, arSecondaryButtons$: arFileSecondaryButtons$ }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ actionButtonClick: onFileActionButtonClick }\"\n    ></component-mapper>\n  </div>\n</div>\n\n<div *ngIf=\"bShowLinkModal$\" class=\"psdk-dialog-background\">\n  <div class=\"psdk-modal-top\">\n    <h3>{{ pConn$.getLocalizedValue('Add links', '', '') }}</h3>\n    <div class=\"psdk-modal-link-entry\">\n      <div class=\"psdk-modal-body\">\n        <div class=\"psdk-modal-links-row\">\n          <div class=\"psdk-links-two-column\">\n            <div class=\"psdk-modal-link-data\">\n              <mat-form-field class=\"psdk-full-width\">\n                <mat-label>Link title</mat-label>\n                <input matInput type=\"text\" required=\"true\" (change)=\"_fieldOnChangeLink($event)\" [value]=\"link_title$\" />\n              </mat-form-field>\n            </div>\n            <div class=\"psdk-modal-link-data\">\n              <mat-form-field class=\"psdk-full-width\">\n                <mat-label>URL</mat-label>\n                <input matInput type=\"text\" required=\"true\" (change)=\"_fieldOnChangeURL($event)\" [value]=\"link_url$\" />\n              </mat-form-field>\n            </div>\n          </div>\n\n          <div class=\"psdk-modal-link-add\">\n            <button mat-raised-button color=\"primary\" (click)=\"_addLink()\">{{ pConn$.getLocalizedValue('Add link', '', '') }}</button>\n          </div>\n        </div>\n\n        <component-mapper\n          name=\"SummaryList\"\n          [props]=\"{ arItems$: arLinksList$, menuIconOverride$: 'trash', menuIconOverrideAction$: removeLinksFromList$ }\"\n        ></component-mapper>\n      </div>\n    </div>\n\n    <component-mapper\n      name=\"ActionButtons\"\n      [props]=\"{ arMainButtons$: arLinkMainButtons$, arSecondaryButtons$: arLinkSecondaryButtons$ }\"\n      [parent]=\"this\"\n      [outputEvents]=\"{ actionButtonClick: onLinkActionButtonClick }\"\n    ></component-mapper>\n  </div>\n</div>\n\n<div *ngIf=\"bShowViewAllModal$\" class=\"psdk-dialog-background\">\n  <div class=\"psdk-modal-top\">\n    <div class=\"psdk-view-all-header\">\n      <div>\n        <h3>{{ pConn$.getLocalizedValue('Attachments', '', '') }}</h3>\n      </div>\n      <div>\n        <button mat-icon-button (click)=\"_closeViewAll()\">\n          <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ closeSvgIcon$ }}\" />\n        </button>\n      </div>\n    </div>\n    <div class=\"psdk-view-all-body\">\n      <component-mapper name=\"SummaryList\" [props]=\"{ arItems$: va_arItems$, menuIconOverrideAction$: removeLinksFromList$ }\"></component-mapper>\n    </div>\n  </div>\n</div>\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport isEqual from 'fast-deep-equal';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n  selector: 'app-feed-container',\n  templateUrl: './feed-container.component.html',\n  styleUrls: ['./feed-container.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatFormFieldModule, MatInputModule, MatGridListModule, MatButtonModule]\n})\nexport class FeedContainerComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n\n  // Used with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  userName$: string | undefined;\n  imageKey$: string | undefined;\n\n  currentUserInitials$: string;\n  currentUserName$: string;\n\n  pulseMessages$: any[];\n  showReplyComment$: object = {};\n\n  svgComment$: string;\n  svgLike$: string;\n  svgLikedByMe$: string;\n  svgSend$: string;\n\n  pulseConversation: string;\n  userData: Map<any, any> = new Map();\n\n  pulseComment: object = {};\n\n  // functions\n  actionsAPI: any;\n  // until FeedAPI moved back to PCore, we access the methods directly (see ngInit)\n  feedAPI: any;\n\n  pulseData: any;\n\n  // Temporary way to use FeedApi...\n  fetchMessages: any;\n  likeMessage: any;\n  postMessage: any;\n\n  constructor(\n    private angularPConnect: AngularPConnectService,\n    private cdRef: ChangeDetectorRef,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    this.userName$ = PCore.getEnvironmentInfo().getOperatorName();\n    this.imageKey$ = PCore.getEnvironmentInfo().getOperatorImageInsKey();\n    this.updateCurrentUserName(this.userName$ ?? '');\n\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // Then, continue on with other initialization\n    // debugger;\n\n    // const {\n    //   fetchMessages,\n    //   likeMessage,\n    //   postMessage\n    // } = FeedApi(this.pConn$);\n    // this.fetchMessages = fetchMessages;\n    // this.likeMessage = likeMessage;\n    // this.postMessage = postMessage;\n\n    // // this.userName$ = this.pConn$.getValue(\"pxRequestor.pxUserName\");\n    // // this.imageKey$ = this.pConn$.getValue(\"OperatorID.pyImageInsKey\");\n\n    // //this.userName$ = this.pConn$.getDataObject()[\"D_pxEnvironmentInfo\"].pxOperator.pyUserName;\n    // //this.imageKey$ = this.pConn$.getDataObject()[\"D_pxEnvironmentInfo\"].pxOperator.pyImageInsKey;\n    // this.userName$ = this.pConn$.getEnvironmentInfo().getOperatorName();\n    // this.imageKey$ = this.pConn$.getEnvironmentInfo().getOperatorImageInsKey();\n\n    // this.actionsAPI = this.pConn$.getActionsApi();\n\n    // let owner = this.pConn$.getConfigProps().value;\n\n    // // with new FeedAPI: owner is the proper value to pass in\n    // //  and no longer takes 2nd argument\n    // this./*feedAPI.*/fetchMessages(owner /*, this.pConn$.getContextName()*/);\n\n    // const configProps: any = this.pConn$.getConfigProps();\n\n    // const { messageIDs } = configProps;\n\n    // const { fetchMessages, postMessage, getMentionSuggestions, getTagSuggestions } = FeedApi(this.pConn$);\n\n    const appName = PCore.getEnvironmentInfo().getApplicationName();\n    let value = '';\n    let feedID = '';\n    let feedClass = '';\n\n    if (this.pConn$.getCaseSummary().ID) {\n      value = this.pConn$.getCaseSummary().ID;\n      feedID = 'pyCaseFeed';\n      feedClass = this.pConn$.getCaseSummary().content.classID;\n    } else {\n      value = `DATA-PORTAL $${appName}`;\n      feedID = 'pyDashboardFeed';\n      feedClass = '@baseclass';\n    }\n\n    const onUploadProgress = () => {};\n    const errorHandler = () => {};\n    const attachments = () => {};\n\n    const postComment = ({ value: message, clear }) => {\n      const attachmentIDs = [];\n      const attachmentUtils = PCore.getAttachmentUtils();\n      if (attachments && !!attachments.length) {\n        /* attachments;\n          .filter((file) => !file.error)\n          .map((file) => {\n            return attachmentUtils\n              .uploadAttachment(file, onUploadProgress, errorHandler)\n              .then((fileResponse) => {\n                const fileConfig = {\n                  type: \"File\",\n                  category: \"File\",\n                  fileName: file.name,\n                  ID: fileResponse.data.ID\n                };\n                attachmentIDs.push(fileConfig);\n                if (attachments.length === attachmentIDs.length) {\n                  postMessage(\n                    value,\n                    transformMarkdownToMsg(message),\n                    attachmentIDs\n                  );\n                  clear();\n                  setAttachments([]);\n                }\n              })\n\n              .catch(console.error);\n          }); */\n      } else {\n        // postMessage(value, transformMarkdownToMsg(message));\n        clear();\n      }\n    };\n\n    /*\n\n    const { getPConnect, messageIDs } = props;\n    const [mentionResults, setMentionResults] = useState([]);\n    const [tagResults, setTagResults] = useState([]);\n    const [attachments, setAttachments] = useState([]);\n    const [feedFilters, setFeedFilters] = useState();\n    const {\n      fetchMessages,\n      postMessage,\n      getMentionSuggestions,\n      getTagSuggestions\n    } = FeedApi(getPConnect());\n    const appName = PCore.getEnvironmentInfo().getApplicationName();\n    let value = \"\";\n    let feedID = \"\";\n    let feedClass = \"\";\n    if (getPConnect().getCaseSummary().ID) {\n      value = getPConnect().getCaseSummary().ID;\n      feedID = \"pyCaseFeed\";\n      feedClass = getPConnect().getCaseSummary().content.classID;\n    } else {\n      value = `DATA-PORTAL $${appName}`;\n      feedID = \"pyDashboardFeed\";\n      feedClass = \"@baseclass\";\n    }\n    // For cancelling fetchrequest for filetrs\n    const fetchMessagesCancelTokenSource = useRef([]);\n\n    useEffect(() => {\n      fetchMessages(\n        value,\n        feedID,\n        feedClass,\n        null,\n        fetchMessagesCancelTokenSource.current\n      ).then((res) => {\n        setFeedFilters(res);\n      });\n      PCore.getAssetLoader().getLoader(\"component-loader\")([\"Activity\"]);\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const onUploadProgress = useCallback((file) => {\n      return ({ loaded, total }) => {\n        file.progress = Math.floor((loaded / total) * 100);\n        setAttachments((current) => {\n          return current.map((currFile) => {\n            return currFile.name === file.name ? file : currFile;\n          });\n        });\n      };\n    }, []);\n\n    const errorHandler = useCallback((isFetchCanceled, file) => {\n      return (error) => {\n        if (!isFetchCanceled(error)) {\n          let localizedValue = \"Upload failed\";\n          if (\n            error.response &&\n            error.response.data &&\n            error.response.data.errorDetails\n          ) {\n            localizedValue = error.response.data.errorDetails[0].localizedValue;\n          }\n          delete file.progress;\n          setAttachments((current) => {\n            return current.map((currFile) => {\n              if (currFile.name === file.name) {\n                currFile.meta = localizedValue;\n                currFile.error = true;\n              }\n              return currFile;\n            });\n          });\n          error.isHandled = true;\n        }\n        throw error;\n      };\n    }, []);\n\n    const postComment = ({ value: message, clear }) => {\n      const attachmentIDs = [];\n      const attachmentUtils = PCore.getAttachmentUtils();\n      if (attachments && !!attachments.length) {\n        attachments\n          .filter((file) => !file.error)\n          .map((file) => {\n            return attachmentUtils\n              .uploadAttachment(file, onUploadProgress, errorHandler)\n              .then((fileResponse) => {\n                const fileConfig = {\n                  type: \"File\",\n                  category: \"File\",\n                  fileName: file.name,\n                  ID: fileResponse.data.ID\n                };\n                attachmentIDs.push(fileConfig);\n                if (attachments.length === attachmentIDs.length) {\n                  postMessage(\n                    value,\n                    transformMarkdownToMsg(message),\n                    attachmentIDs\n                  );\n                  clear();\n                  setAttachments([]);\n                }\n              })\n\n              .catch(console.error);\n          });\n      } else {\n        postMessage(value, transformMarkdownToMsg(message));\n        clear();\n      }\n    };\n\n    */\n\n    /* On search is called when @ character is entered and will display the mention */\n\n    /*\n    const onSearch = debounce((event) => {\n      if (event.type === \"mention\") {\n        getMentionSuggestions({\n          pulseContext: value,\n          searchFor: event.search\n        }).then((res) => {\n          setMentionResults(res);\n        });\n      } else {\n        getTagSuggestions({\n          searchFor: event.search\n        }).then((res) => {\n          setTagResults(res);\n        });\n      }\n    }, 150);\n\n    const userName = getPConnect().getEnvironmentInfo().getOperatorName();\n    const imageKey = getPConnect().getEnvironmentInfo().getOperatorImageInsKey();\n\n    const onFilesAdded = useCallback((newlyAddedFiles) => {\n      setAttachments((current) => [\n        ...newlyAddedFiles.map((file) => {\n          if (!validateMaxSize(file, 5)) {\n            file.error = true;\n            file.meta = \"File is too big. Max allowed size is 5MB.\";\n          }\n          file.icon = getIconFromFileType(file.type);\n          file.onDelete = () => {\n            setAttachments((c) => c.filter((f) => f.name !== file.name));\n          };\n          return file;\n        }),\n        ...current\n      ]);\n    }, []);\n\n    const onFilterChange = useCallback(\n      (filterID) => {\n        const updatedFilters = [...feedFilters];\n        const filterToUpdate = updatedFilters.find(\n          (feedItem) => feedItem.id === filterID\n        );\n        filterToUpdate.on = !filterToUpdate.on;\n        if (filterID === \"All\")\n          updatedFilters.forEach((feedFilter) => {\n            feedFilter.on = filterToUpdate.on;\n          });\n        else if (\n          updatedFilters.find(\n            (feedItem) => feedItem.on === false && feedItem.id !== \"All\"\n          )\n        )\n          updatedFilters.find((feedItem) => feedItem.id === \"All\").on = false;\n        else updatedFilters.find((feedItem) => feedItem.id === \"All\").on = true;\n        setFeedFilters(updatedFilters);\n        fetchMessages(\n          value,\n          feedID,\n          feedClass,\n          feedFilters,\n          fetchMessagesCancelTokenSource.current\n        );\n      },\n      [\n        value,\n        feedID,\n        feedClass,\n        feedFilters,\n        fetchMessagesCancelTokenSource,\n        fetchMessages\n      ]\n    );\n\n    */\n\n    // set up svg images\n    this.svgComment$ = this.utils.getImageSrc('chat', this.utils.getSDKStaticContentUrl());\n    this.svgLike$ = this.utils.getImageSrc('thumbs-up', this.utils.getSDKStaticContentUrl());\n    this.svgLikedByMe$ = this.utils.getImageSrc('thumbs-up-solid', this.utils.getSDKStaticContentUrl());\n    this.svgSend$ = this.utils.getImageSrc('send', this.utils.getSDKStaticContentUrl());\n  }\n\n  ngOnDestroy(): void {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    const bLogging = false;\n    if (bLogging) {\n      // console.log( `in ${this.constructor.name} onStateChange` );\n      // debugger;\n    }\n    // Should always check the bridge to see if the component should update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n    // console.log( `${this.constructor.name} shouldComponentUpdate: ${bUpdateSelf}`);\n\n    // ONLY call updateSelf when the component should update\n    //    AND removing the \"gate\" that was put there since shouldComponentUpdate\n    //      should be the real \"gate\"\n    if (bUpdateSelf) {\n      this.updateSelf();\n    } else {\n      const newPulseData = this.pConn$.getDataObject().pulse;\n\n      if (!isEqual(newPulseData, this.pulseData)) {\n        this.updateSelf();\n      }\n    }\n\n    this.pulseData = this.pConn$.getDataObject().pulse;\n  }\n\n  updateSelf() {\n    this.getMessageData();\n  }\n\n  getMessageData() {\n    const messageIDs = this.pConn$.getConfigProps().messageIDs;\n    const userName = this.pConn$.getConfigProps().currentUser;\n    const imageKey = this.pConn$.getValue('OperatorID.pyImageInsKey');\n\n    const oData = this.pConn$.getDataObject();\n\n    if (messageIDs && messageIDs.length > 0) {\n      this.pulseMessages$ = JSON.parse(JSON.stringify(oData.pulse.messages));\n\n      // convert to just an array of objects\n      this.pulseMessages$ = this.convertToArray(this.pulseMessages$);\n\n      // create a copy, so we can modify\n      this.pulseMessages$ = this.appendPulseMessage(this.pulseMessages$);\n\n      // most recent on top\n      this.pulseMessages$ = this.pulseMessages$.sort((a, b) => (a.updateTimeUTC < b.updateTimeUTC ? 1 : -1));\n    }\n  }\n\n  convertToArray(messages: any[]): any[] {\n    const arMessages: any[] = [];\n\n    for (let i = 0; i < messages.length; i++) {\n      arMessages.push(messages[i]);\n    }\n\n    return arMessages;\n  }\n\n  appendPulseMessage(messages: any[]): any[] {\n    for (let i = 0; i < messages.length; i++) {\n      const message = messages[i];\n      const postedTime = message.postedTime;\n      const updatedTime = message.updatedTime;\n\n      this.showReplyComment$[message.ID] = false;\n\n      message.displayPostedTime = this.utils.generateDateTime(postedTime, 'DateTime-Since');\n\n      // for sorting lasted update\n      if (updatedTime != null) {\n        message.updateTimeUTC = new Date(updatedTime).getTime();\n      } else {\n        message.updateTimeUTC = new Date(postedTime).getTime();\n      }\n\n      message.displayPostedBy = message.postedByUser.name;\n      message.displayPostedByInitials = this.utils.getInitials(message.postedByUser.name);\n\n      // if didn't break, then look at the replies\n      for (let j = 0; j < message.replies.length; j++) {\n        const reply = message.replies[j];\n\n        const replyPostedTime = reply.postedTime;\n        reply.displayPostedTime = this.utils.generateDateTime(replyPostedTime, 'DateTime-Since');\n\n        // let oReplyUser = this.userData.get(reply.postedByUser);\n        const oReplyUser = reply.postedByUser;\n\n        if (oReplyUser) {\n          reply.displayPostedBy = oReplyUser.name;\n          reply.displayPostedByInitials = this.utils.getInitials(oReplyUser.name);\n        }\n      }\n    } // for\n\n    return messages;\n  }\n\n  updateMessagesWithOperators() {\n    for (let i = 0; i < this.pulseMessages$.length; i++) {\n      const message = this.pulseMessages$[i];\n\n      const postedTime = message.postedTime;\n\n      this.showReplyComment$[message.ID] = false;\n\n      message.displayPostedTime = this.utils.generateDateTime(postedTime, 'DateTime-Since');\n\n      const oUser = this.userData.get(message.postedBy);\n\n      if (oUser) {\n        message.displayPostedBy = oUser.pyUserName;\n        message.displayPostedByInitials = this.utils.getInitials(oUser.pyUserName);\n      } else {\n        const oUserParams = {\n          OperatorId: message.postedBy\n        };\n        // Do something with oUserParams\n      }\n\n      // if didn't break, then look at the replies\n      for (let j = 0; j < message.replies.length; j++) {\n        const reply = message.replies[j];\n\n        const replyPostedTime = reply.postedTime;\n        reply.displayPostedTime = this.utils.generateDateTime(replyPostedTime, 'DateTime-Since');\n\n        // let oReplyUser = this.userData.get(reply.postedByUser);\n        const oReplyUser = reply.postedByUser;\n\n        if (oReplyUser) {\n          reply.displayPostedBy = oReplyUser.name;\n          reply.displayPostedByInitials = this.utils.getInitials(oReplyUser.name);\n        }\n      }\n    } // for\n  }\n\n  updateCurrentUserName(sUser: string) {\n    this.currentUserInitials$ = this.utils.getInitials(sUser);\n    this.currentUserName$ = sUser;\n  }\n\n  postClick() {\n    // don't send a blank message\n    if (this.pulseConversation && this.pulseConversation != '') {\n      // let pulseMessage = {\n      //   contextName : this.pConn$.getContextName(),\n      //   message: this.pulseConversation,\n      //   pulseContext: this.pConn$.getValue(\".pzInsKey\")\n      // };\n\n      // debugger;\n      // used to be: this./*feedAPI.*/postMessage(pulseMessage);\n      // With latest FeedAPI, the 1st arg should be getConfigProps().value\n\n      // If feedAPI is defined then only post message\n      if (this.feedAPI) {\n        this./* feedAPI. */ postMessage(this.pConn$.getConfigProps().value, this.pulseConversation);\n      } else {\n        console.log(\"We don't support Pulse yet\");\n      }\n    }\n\n    // clear out local copy\n    (document.getElementById('pulseMessage') as HTMLElement | any).value = '';\n    this.pulseConversation = '';\n  }\n\n  messageChange(event: any) {\n    this.pulseConversation = event.target.value;\n  }\n\n  likeClick(messageID: string, rMessageID: string, bLikedByMe: boolean, level: string) {\n    let pulseMessage = {};\n\n    if (level === 'top') {\n      pulseMessage = {\n        pulseContext: rMessageID,\n        isReply: null,\n        contextName: this.pConn$.getContextName(),\n        likedBy: bLikedByMe,\n        messageID\n      };\n    } else {\n      pulseMessage = {\n        pulseContext: rMessageID,\n        isReply: true,\n        contextName: this.pConn$.getContextName(),\n        likedBy: bLikedByMe,\n        messageID\n      };\n    }\n\n    // debugger;\n    this./* feedAPI. */ likeMessage(pulseMessage);\n  }\n\n  commentClick(messageID) {\n    // iterator through messages, find match, turn on comment entry\n    const foundMessage = this.pulseMessages$.find(message => message.ID === messageID);\n\n    if (foundMessage) {\n      this.showReplyComment$[foundMessage.ID] = true;\n    }\n\n    this.cdRef.detectChanges();\n  }\n\n  postCommentClick(messageID) {\n    // debugger;\n\n    if (this.pulseComment[messageID] && this.pulseComment[messageID] != '') {\n      // let pulseMessage = {\n      //   contextName : this.pConn$.getContextName(),\n      //   message: this.pulseComment[messageID],\n      //   pulseContext: messageID,\n      //   reply: true\n      // };\n\n      // debugger;\n      // Used to be: this./*feedAPI.*/postMessage(pulseMessage);\n      //  Latest update to API has changed and the postMessage actually gets\n      //  the pulse context...\n      // used to use: contextName\n      // new FeedAPI wants args to be messageID, this.pulseComment[messageID], true (since this is a reply)\n      this./* feedAPI. */ postMessage(messageID, this.pulseComment[messageID], true);\n\n      this.pulseComment[messageID] = '';\n    }\n  }\n\n  newCommentChange(event, messageID) {\n    this.pulseComment[messageID] = event.target.value;\n  }\n}\n","<div>\n  <div style=\"text-align: left\">\n    <h3>Pulse</h3>\n\n    <div class=\"psdk-pulse-divider\"></div>\n\n    <br />\n    <div class=\"psdk-pulse\">\n      <div class=\"psdk-avatar-big\">{{ this.currentUserInitials$ }}</div>\n      <mat-form-field class=\"psdk-full-width\">\n        <textarea matInput rows=\"5\" id=\"pulseMessage\" placeholder=\"Start a conversation\" type=\"text\" (change)=\"messageChange($event)\"></textarea>\n      </mat-form-field>\n    </div>\n  </div>\n</div>\n\n<mat-grid-list cols=\"2\" rowHeight=\"6.25rem\">\n  <mat-grid-tile> </mat-grid-tile>\n  <mat-grid-tile>\n    <button mat-raised-button color=\"primary\" (click)=\"postClick()\">Post</button>\n  </mat-grid-tile>\n</mat-grid-list>\n\n<div *ngFor=\"let pulseMessage of pulseMessages$; let odd = odd\" style=\"text-align: left\" [style.background-color]=\"odd ? 'white' : '#eeeeee'\">\n  <div class=\"psdk-pulse-divider\"></div>\n  <br />\n  <div class=\"psdk-pulse\">\n    <div class=\"psdk-avatar-big\">{{ pulseMessage.displayPostedByInitials }}</div>\n    <div class=\"psdk-pulse-message-group\">\n      <div class=\"psdk-pulse-message-by\">{{ pulseMessage.displayPostedBy }}</div>\n      <div class=\"psdk-pulse-message-time\">{{ pulseMessage.displayPostedTime }}</div>\n    </div>\n  </div>\n  <div class=\"psdk-pulse-message-text\">{{ pulseMessage.message }}</div>\n  <div class=\"psdk-pulse-message-actions\">\n    <div class=\"psdk-pulse-message-action-group\">\n      <button mat-button (click)=\"commentClick(pulseMessage.ID)\">\n        <img class=\"psdk-comment-svg-icon\" src=\"{{ svgComment$ }}\" />\n        <label class=\"psdk-pulse-message-like-label\"\n          >Comment <span *ngIf=\"pulseMessage?.replies.length > 0\"> | {{ pulseMessage.replies.length }}</span></label\n        >\n      </button>\n    </div>\n    <div class=\"psdk-pulse-message-action-like\">\n      <div *ngIf=\"pulseMessage?.likeCount; else notLiked\">\n        <button *ngIf=\"pulseMessage?.likedByMe == 'true'\" mat-button (click)=\"likeClick(pulseMessage.ID, pulseMessage.ID, true, 'top')\">\n          <!-- <mat-icon class=\"psdk-icon-liked-by-me\" svgIcon=\"thumb-up\" mastListIcon ></mat-icon> -->\n          <img class=\"psdk-liked-by-me-svg-icon\" src=\"{{ svgLikedByMe$ }}\" />\n          <label class=\"psdk-pulse-message-like-label\">Like | {{ pulseMessage.likeCount }}</label>\n        </button>\n        <button *ngIf=\"pulseMessage?.likedByMe != 'true'\" mat-button (click)=\"likeClick(pulseMessage.ID, pulseMessage.ID, false, 'top')\">\n          <!-- <mat-icon class=\"psdk-icon\" svgIcon=\"thumb-up-outline\" mastListIcon ></mat-icon> -->\n          <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n          <label class=\"psdk-pulse-message-like-label\">Like | {{ pulseMessage.likeCount }}</label>\n        </button>\n      </div>\n      <ng-template #notLiked>\n        <button mat-button (click)=\"likeClick(pulseMessage.ID, pulseMessage.ID, false, 'top')\">\n          <!-- <mat-icon class=\"psdk-icon\" svgIcon=\"thumb-up-outline\" mastListIcon ></mat-icon> -->\n          <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n          <label class=\"psdk-pulse-message-like-label\">Like</label>\n        </button>\n      </ng-template>\n    </div>\n  </div>\n\n  <div *ngIf=\"pulseMessage?.replies\" class=\"psdk-pulse-reply\">\n    <div *ngFor=\"let replyMessage of pulseMessage.replies\" class=\"psdk-pulse-reply-align\">\n      <div class=\"psdk-pulse-divider\"></div>\n      <br />\n      <div class=\"psdk-pulse-reply-group\">\n        <div class=\"psdk-avatar\">{{ replyMessage.displayPostedByInitials }}</div>\n        <div class=\"psdk-pulse-reply-by\">{{ replyMessage.displayPostedBy }}</div>\n        <div class=\"psdk-pulse-reply-message\">{{ replyMessage.message }}</div>\n      </div>\n      <div class=\"psdk-pulse-reply-actions\">\n        <button mat-button (click)=\"commentClick(pulseMessage.ID)\" class=\"psdk-pulse-reply-comment\">\n          <img class=\"psdk-comment-svg-icon\" src=\"{{ svgComment$ }}\" />\n        </button>\n        <div *ngIf=\"replyMessage?.likeCount; else replyNotLiked\">\n          <button\n            *ngIf=\"replyMessage?.likedByMe === 'true'\"\n            mat-button\n            (click)=\"likeClick(pulseMessage.ID, replyMessage.ID, true, 'reply')\"\n            class=\"psdk-pulse-reply-like\"\n          >\n            <img class=\"psdk-liked-by-me-svg-icon\" src=\"{{ svgLikedByMe$ }}\" />\n          </button>\n          <button\n            *ngIf=\"replyMessage?.likedByMe != 'true'\"\n            mat-button\n            (click)=\"likeClick(pulseMessage.ID, replyMessage.ID, false, 'reply')\"\n            class=\"psdk-pulse-reply-like\"\n          >\n            <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n          </button>\n          <label class=\"psdk-pulse-reply-like-label\">Like | {{ replyMessage.likeCount }}</label>\n        </div>\n        <ng-template #replyNotLiked>\n          <button\n            *ngIf=\"replyMessage?.likedByMe != 'true'\"\n            mat-button\n            (click)=\"likeClick(pulseMessage.ID, replyMessage.ID, false, 'reply')\"\n            class=\"psdk-pulse-reply-like\"\n          >\n            <img class=\"psdk-like-svg-icon\" src=\"{{ svgLike$ }}\" />\n          </button>\n        </ng-template>\n\n        <div class=\"psdk-pulse-reply-time\">{{ replyMessage.displayPostedTime }}</div>\n      </div>\n      <br />\n    </div>\n\n    <div *ngIf=\"showReplyComment$[pulseMessage.ID] == true\">\n      <div class=\"psdk-pulse-divider\"></div>\n      <br />\n      <div class=\"psdk-pulse-comment-group\">\n        <div class=\"psdk-avatar\">{{ this.currentUserInitials$ }}</div>\n        <mat-form-field class=\"psdk-full-width\">\n          <textarea\n            matInput\n            rows=\"5\"\n            id=\"pulseMessage\"\n            placeholder=\"Add a comment\"\n            type=\"text\"\n            (change)=\"newCommentChange($event, pulseMessage.ID)\"\n          ></textarea>\n        </mat-form-field>\n        <button mat-button (click)=\"postCommentClick(pulseMessage.ID)\" class=\"psdk-pulse-comment-post\">\n          <img class=\"psdk-send-svg-icon\" src=\"{{ svgSend$ }}\" />\n        </button>\n      </div>\n    </div>\n  </div>\n  <br />\n</div>\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-list-utility',\n  templateUrl: './list-utility.component.html',\n  styleUrls: ['./list-utility.component.scss'],\n  imports: [CommonModule, MatButtonModule, MatMenuModule, MatProgressSpinnerModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class ListUtilityComponent implements OnInit {\n  @Input() name$ = '';\n  @Input() icon$ = '';\n  @Input() bLoading$ = false;\n  @Input() count$ = 0;\n  @Input() arActions$: any[] = [];\n  @Input() arItems$: any[] = [];\n  @Input() menuIconOverrideAction$: any[] = [];\n\n  // function to all\n  @Input() onViewAll$: any;\n\n  headerSvgIcon$: string;\n  settingsSvgIcon$: string;\n\n  noItemsMessage$ = 'No Items';\n\n  imagePath$ = '';\n\n  constructor(private utils: Utils) {}\n\n  ngOnInit(): void {\n    this.imagePath$ = this.getIconPath();\n\n    this.headerSvgIcon$ = this.utils.getImageSrc(this.icon$, this.utils.getSDKStaticContentUrl());\n    this.settingsSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n  }\n\n  getIconPath(): string {\n    return `${this.utils.getSDKStaticContentUrl()}assets/icons/`;\n  }\n}\n","<div style=\"text-align: left\">\n  <div class=\"psdk-utility\">\n    <div class=\"header\">\n      <div class=\"header-icon\">\n        <img class=\"psdk-utility-svg-icon\" src=\"{{ headerSvgIcon$ }}\" />\n      </div>\n      <div class=\"header-text\">{{ name$ }}</div>\n      <div class=\"psdk-utility-count\" id=\"attachments-count\">{{ count$ }}</div>\n      <div style=\"flex-grow: 1\"></div>\n      <div class=\"header-icon\">\n        <button id=\"file-menu\" mat-icon-button [matMenuTriggerFor]=\"utilityMenu\">\n          <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n        </button>\n        <mat-menu #utilityMenu=\"matMenu\" overlapTrigger=\"false\">\n          <ng-container *ngFor=\"let action of arActions$\">\n            <button mat-menu-item (click)=\"action.onClick()\">{{ action.text }}</button>\n          </ng-container>\n        </mat-menu>\n      </div>\n    </div>\n    <div class=\"psdk-utiltiy-divider\"></div>\n    <br />\n    <mat-spinner *ngIf=\"bLoading$\" class=\"progress-spinner\" diameter=\"50\"></mat-spinner>\n    <div *ngIf=\"count$ == 0\" class=\"message\">{{ noItemsMessage$ }}</div>\n    <div *ngIf=\"count$ > 0\" class=\"psdk-utility-items\">\n      <component-mapper name=\"SummaryList\" [props]=\"{ arItems$, menuIconOverrideAction$ }\"></component-mapper>\n    </div>\n    <div class=\"psdk-utility-view-all\">\n      <button *ngIf=\"count$ > 3\" mat-button color=\"primary\" (click)=\"onViewAll$.onClick()\">View all</button>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface QuickCreateProps {\n  // If any, enter additional props that only exist on this component\n  heading?: string;\n  showCaseIcons?: boolean;\n  classFilter?: any;\n}\n\n@Component({\n  selector: 'app-quick-create',\n  templateUrl: './quick-create.component.html',\n  styleUrls: ['./quick-create.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class QuickCreateComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: any;\n\n  configProps$: QuickCreateProps;\n  arChildren$: any[];\n  heading$?: string;\n  showCaseIcons$?: boolean;\n  classFilter$: any;\n  cases$: any = [];\n\n  constructor(private utils: Utils) {}\n\n  createCase(className) {\n    this.pConn$\n      .getActionsApi()\n      .createWork(className, {} as any)\n      .catch(error => {\n        console.log('Error in case creation: ', error?.message);\n      });\n  }\n\n  initComponent() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as QuickCreateProps;\n    this.heading$ = this.configProps$.heading;\n    this.showCaseIcons$ = this.configProps$.showCaseIcons;\n    this.classFilter$ = this.configProps$.classFilter;\n    const cases: any = [];\n    const defaultCases: any = [];\n    const envInfo = PCore.getEnvironmentInfo();\n    if (envInfo?.environmentInfoObject?.pyCaseTypeList) {\n      envInfo.environmentInfoObject.pyCaseTypeList.forEach((casetype: any) => {\n        if (casetype.pyWorkTypeName && casetype.pyWorkTypeImplementationClassName) {\n          defaultCases.push({\n            classname: casetype.pyWorkTypeImplementationClassName,\n            onClick: () => {\n              this.createCase(casetype.pyWorkTypeImplementationClassName);\n            },\n            ...(this.showCaseIcons$ && { icon: this.utils.getImageSrc(casetype?.pxIcon, this.utils.getSDKStaticContentUrl()) }),\n            label: casetype.pyWorkTypeName\n          });\n        }\n      });\n    } else {\n      const pConnectInAppContext = PCore.createPConnect({\n        options: { context: PCore.getConstants().APP.APP }\n      }).getPConnect();\n      const pyPortalInAppContext = pConnectInAppContext.getValue('pyPortal') as any;\n      pyPortalInAppContext?.pyCaseTypesAvailableToCreate?.forEach(casetype => {\n        if (casetype.pyClassName && casetype.pyLabel) {\n          defaultCases.push({\n            classname: casetype.pyClassName,\n            onClick: () => {\n              this.createCase(casetype.pyClassName);\n            },\n            ...(this.showCaseIcons$ && { icon: this.utils.getImageSrc(casetype?.pxIcon, this.utils.getSDKStaticContentUrl()) }),\n            label: casetype.pyLabel\n          });\n        }\n      });\n    }\n\n    /* If classFilter is not empty - filter from the list of defaultCases */\n    if (this.classFilter$?.length > 0) {\n      this.classFilter$.forEach(item => {\n        defaultCases.forEach(casetype => {\n          if (casetype.classname === item) {\n            cases.push(casetype);\n          }\n        });\n      });\n      this.cases$ = cases;\n    } else {\n      this.cases$ = defaultCases;\n    }\n  }\n\n  ngOnInit() {\n    // console.log(`ngOnInit (no registerAndSubscribe!): Region`);\n    // this.updateSelf();\n\n    this.initComponent();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.initComponent();\n  }\n}\n","<component-mapper name=\"WssQuickCreate\" [props]=\"{ heading$, actions$: cases$ }\"></component-mapper>\n","export function updateWorkList(pConnect, key, payload = undefined) {\n  PCore.getDataApiUtils()\n    .getData(key, payload)\n    .then(responseData => {\n      const dataObject = {};\n      dataObject[key] = {\n        pxResults: responseData.data.data\n      };\n\n      pConnect.updateState(dataObject);\n    })\n    .catch(err => {\n      console.error(err?.stack);\n    });\n}\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { publicConstants } from '@pega/pcore-pconnect-typedefs/constants';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { ErrorMessagesService } from '../../../_messages/error-messages.service';\nimport { Utils } from '../../../_helpers/utils';\nimport { updateWorkList } from '../../../_helpers/createstage-utils';\n\nconst fetchMyWorkList = (datapage, fields, numberOfRecords, includeTotalCount, context) => {\n  return PCore.getDataPageUtils()\n    .getDataAsync(\n      datapage,\n      context,\n      {},\n      {\n        pageNumber: 1,\n        pageSize: numberOfRecords\n      },\n      {\n        select: Object.keys(fields).map(key => ({ field: PCore.getAnnotationUtils().getPropertyName(fields[key]) })),\n        sortBy: [\n          { field: 'pxUrgencyAssign', type: 'DESC' },\n          { field: 'pxDeadlineTime', type: 'ASC' },\n          { field: 'pxCreateDateTime', type: 'DESC' }\n        ]\n      },\n      {\n        invalidateCache: true,\n        additionalApiParams: {\n          includeTotalCount\n        }\n      }\n    )\n    .then(response => {\n      return {\n        ...response,\n        data: (Array.isArray(response?.data) ? response.data : []).map(row =>\n          Object.keys(fields).reduce((obj, key) => {\n            obj[key] = row[PCore.getAnnotationUtils().getPropertyName(fields[key])];\n            return obj;\n          }, {})\n        )\n      };\n    });\n};\n\nconst getMappedValue = value => {\n  const mappedValue = PCore.getEnvironmentInfo().getKeyMapping(value);\n  return mappedValue === null ? value : mappedValue;\n};\n\ninterface ToDoProps {\n  // If any, enter additional props that only exist on this component\n  datasource?: any;\n  headerText?: string;\n  myWorkList?: any;\n  label?: string;\n  readOnly?: boolean;\n}\n\n@Component({\n  selector: 'app-todo',\n  templateUrl: './todo.component.html',\n  styleUrls: ['./todo.component.scss'],\n  providers: [Utils],\n  imports: [CommonModule, MatButtonModule]\n})\nexport class TodoComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() caseInfoID$: string;\n  @Input() datasource$: any;\n  @Input() headerText$?: string;\n  @Input() showTodoList$ = true;\n  @Input() target$: string;\n  @Input() type$ = 'worklist';\n  @Input() context$: string;\n  @Input() myWorkList$: any;\n  @Input() isConfirm;\n\n  configProps$: ToDoProps;\n  currentUser$: string | undefined;\n  currentUserInitials$ = '--';\n  bShowMore$ = true;\n  arAssignments$: any[];\n  assignmentsSource$: any;\n  CONSTS: typeof publicConstants;\n  bLogging = true;\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  localeUtils = PCore.getLocaleUtils();\n  localeCategory = 'Todo';\n  showlessLocalizedValue = this.localizedVal('show_less', 'CosmosFields');\n  showMoreLocalizedValue = this.localizedVal('show_more', 'CosmosFields');\n  goLocalizedValue = this.localizedVal('go', 'CosmosFields');\n  count: number;\n\n  constructor(\n    private psService: ProgressSpinnerService,\n    private erService: ErrorMessagesService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit() {\n    this.CONSTS = PCore.getConstants();\n    const { CREATE_STAGE_SAVED, CREATE_STAGE_DELETED } = PCore.getEvents().getCaseEvent();\n\n    PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, () => this.updateToDo(), 'updateToDo');\n    PCore.getPubSubUtils().subscribe(CREATE_STAGE_SAVED, () => this.updateList(), CREATE_STAGE_SAVED);\n    PCore.getPubSubUtils().subscribe(CREATE_STAGE_DELETED, () => this.updateList(), CREATE_STAGE_DELETED);\n\n    this.updateToDo();\n  }\n\n  ngOnDestroy() {\n    const { CREATE_STAGE_SAVED, CREATE_STAGE_DELETED } = PCore.getEvents().getCaseEvent();\n\n    PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL, 'updateToDo');\n    PCore.getPubSubUtils().unsubscribe(CREATE_STAGE_SAVED, CREATE_STAGE_SAVED);\n    PCore.getPubSubUtils().unsubscribe(CREATE_STAGE_DELETED, CREATE_STAGE_DELETED);\n  }\n\n  get canPerform() {\n    return this.assignmentsSource$?.[0]?.canPerform === 'true' || this.assignmentsSource$?.[0]?.canPerform === true;\n  }\n\n  updateList() {\n    const {\n      WORK_BASKET: {\n        DATA_PAGES: { D__PY_MY_WORK_LIST }\n      }\n    } = PCore.getConstants();\n    updateWorkList(this.pConn$, getMappedValue(D__PY_MY_WORK_LIST));\n  }\n\n  updateToDo() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as ToDoProps;\n\n    this.headerText$ = this.headerText$ || this.configProps$.headerText;\n    this.datasource$ = this.datasource$ || this.configProps$.datasource;\n    this.myWorkList$ = this.myWorkList$ || this.configProps$.myWorkList;\n\n    this.assignmentsSource$ = this.datasource$?.source || this.myWorkList$?.source;\n\n    if (this.showTodoList$) {\n      if (this.assignmentsSource$) {\n        this.count = this.assignmentsSource$ ? this.assignmentsSource$.length : 0;\n        this.arAssignments$ = this.topThreeAssignments(this.assignmentsSource$);\n      } else if (this.myWorkList$.datapage) {\n        fetchMyWorkList(this.myWorkList$.datapage, this.pConn$.getComponentConfig()?.myWorkList.fields, 3, true, this.context$).then(responseData => {\n          this.deferLoadWorklistItems(responseData);\n        });\n      } else {\n        this.arAssignments$ = [];\n      }\n    } else {\n      // get caseInfoId assignment.\n\n      if (this.caseInfoID$ != undefined) {\n        this.arAssignments$ = this.getCaseInfoAssignment(this.assignmentsSource$, this.caseInfoID$);\n      }\n    }\n\n    this.currentUser$ = PCore.getEnvironmentInfo().getOperatorName();\n    this.currentUserInitials$ = this.utils.getInitials(this.currentUser$ ?? '');\n  }\n\n  deferLoadWorklistItems(responseData) {\n    this.count = responseData.totalCount;\n    this.arAssignments$ = responseData.data;\n  }\n\n  getID(assignment: any) {\n    if (assignment.value) {\n      const refKey = assignment.value;\n      return refKey.substring(refKey.lastIndexOf(' ') + 1);\n    }\n    const refKey = assignment.ID;\n    const arKeys = refKey.split('!')[0].split(' ');\n    return arKeys[2];\n  }\n\n  topThreeAssignments(assignmentsSource: any[]): any[] {\n    return Array.isArray(assignmentsSource) ? assignmentsSource.slice(0, 3) : [];\n  }\n\n  getAssignmentId(assignment) {\n    return this.type$ === this.CONSTS.TODO ? assignment.ID : assignment.id;\n  }\n\n  getPriority(assignment) {\n    return this.type$ === this.CONSTS.TODO ? assignment.urgency : assignment.priority;\n  }\n\n  getAssignmentName(assignment) {\n    return this.type$ === this.CONSTS.TODO\n      ? this.localizedVal(assignment.name, '', PCore.getLocaleUtils().getCaseLocaleReference(assignment.classname))\n      : this.localizedVal(assignment.stepName, '', PCore.getLocaleUtils().getCaseLocaleReference(assignment.classname));\n  }\n\n  getCaseInfoAssignment(assignmentsSource: any[], caseInfoID: string) {\n    const result: any[] = [];\n    for (const source of assignmentsSource) {\n      if (source.ID.indexOf(caseInfoID) >= 0) {\n        const listRow = JSON.parse(JSON.stringify(source));\n        // urgency becomes priority\n        listRow.priority = listRow.urgency || undefined;\n        // mimic regular list\n        listRow.id = listRow.ID || undefined;\n        result.push(listRow);\n      }\n    }\n    return result;\n  }\n\n  _showMore() {\n    this.bShowMore$ = false;\n\n    const { WORKLIST } = PCore.getConstants();\n\n    if (this.type$ === WORKLIST && this.count && this.count > this.arAssignments$.length && !this.assignmentsSource$) {\n      fetchMyWorkList(this.myWorkList$.datapage, this.pConn$.getComponentConfig()?.myWorkList.fields, this.count, false, this.context$).then(\n        response => {\n          this.arAssignments$ = response.data;\n        }\n      );\n    } else {\n      this.arAssignments$ = this.assignmentsSource$;\n    }\n  }\n\n  _showLess() {\n    this.bShowMore$ = true;\n    const { WORKLIST } = PCore.getConstants();\n\n    this.arAssignments$ = this.type$ === WORKLIST ? this.arAssignments$.slice(0, 3) : this.topThreeAssignments(this.assignmentsSource$);\n  }\n\n  isChildCase(assignment) {\n    return assignment.isChild;\n  }\n\n  clickGo(assignment) {\n    const id = this.getAssignmentId(assignment);\n    let { classname = '' } = assignment;\n    const sTarget = this.pConn$.getContainerName();\n    const sTargetContainerName = sTarget;\n\n    const options: any = { containerName: sTargetContainerName, channelName: '' };\n\n    if (classname === null || classname === '') {\n      classname = this.pConn$.getCaseInfo().getClassName();\n    }\n\n    if (sTarget === 'workarea') {\n      options.isActionFromToDoList = true;\n      options.target = '';\n      options.context = null;\n      options.isChild = this.isChildCase(assignment);\n    } else {\n      options.isActionFromToDoList = false;\n      options.target = sTarget;\n    }\n\n    this.psService.sendMessage(true);\n\n    this.pConn$\n      .getActionsApi()\n      .openAssignment(id, classname, options)\n      .then(() => {\n        this.psService.sendMessage(false);\n        if (this.bLogging) {\n          console.log(`openAssignment completed`);\n        }\n      })\n      .catch(() => {\n        this.psService.sendMessage(false);\n        this.erService.sendMessage('show', 'Failed to open');\n      });\n  }\n}\n","<div class=\"psdk-todo\">\n  <div *ngIf=\"showTodoList$\" class=\"psdk-todo-header\">\n    <div class=\"psdk-avatar\">{{ this.currentUserInitials$ }}</div>\n    <div id=\"worklist\" class=\"psdk-todo-text\">{{ headerText$ }}</div>\n    <div class=\"psdk-assignment-count\">{{ count }}</div>\n  </div>\n  <div *ngIf=\"showTodoList$\" class=\"psdk-display-divider\"></div>\n\n  <div class=\"psdk-todo-assignments\">\n    <div *ngFor=\"let assignment of arAssignments$\">\n      <div class=\"psdk-todo-assignment\">\n        <div class=\"psdk-avatar\">{{ this.currentUserInitials$ }}</div>\n        <div class=\"psdk-todo-card\">\n          <div class=\"psdk-todo-assignment-title\">{{ getAssignmentName(assignment) }}</div>\n          <div class=\"psdk-todo-assignment-data\">\n            <div class=\"psdk-todo-assignment-task\">\n              {{ localizedVal('In', localeCategory) }}\n              <button class=\"psdk-todo-id\" style=\"cursor: pointer\" (click)=\"clickGo(assignment)\" *ngIf=\"!isConfirm || canPerform; else readOnlyText\">\n                {{ localizedVal(assignment?.name, '', localeUtils.getCaseLocaleReference(assignment.classname)) }} {{ getID(assignment) }}\n              </button>\n              <ng-template #readOnlyText> {{ localizedVal(assignment?.name, localeCategory) }} {{ getID(assignment) }} </ng-template>\n              <span *ngIf=\"assignment.status != undefined\">\n                &bull;\n                <span class=\"psdk-todo-assignment-status\">{{\n                  localizedVal(assignment.status, '', localeUtils.getCaseLocaleReference(assignment.classname))\n                }}</span>\n              </span>\n              &bull; {{ localizedVal('Urgency', localeCategory) }} {{ getPriority(assignment) }}\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"!isConfirm || canPerform\" class=\"psdk-todo-assignment-action\">\n          <button mat-flat-button color=\"primary\" (click)=\"clickGo(assignment)\">{{ goLocalizedValue === 'go' ? 'Go' : goLocalizedValue }}</button>\n        </div>\n      </div>\n      <div class=\"psdk-display-divider\"></div>\n    </div>\n  </div>\n</div>\n\n<div *ngIf=\"count > 3\">\n  <div *ngIf=\"bShowMore$; else showLess\" class=\"psdk-todo-show-more\">\n    <button mat-stroked-button (click)=\"_showMore()\">{{ showMoreLocalizedValue === 'show_more' ? 'Show more' : showMoreLocalizedValue }}</button>\n  </div>\n  <ng-template #showLess>\n    <div class=\"psdk-todo-show-more\">\n      <button mat-stroked-button (click)=\"_showLess()\">{{ showlessLocalizedValue === 'show_less' ? 'Show less' : showlessLocalizedValue }}</button>\n    </div>\n  </ng-template>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-alert-banner',\n  templateUrl: './alert-banner.component.html',\n  styleUrls: ['./alert-banner.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class AlertBannerComponent {\n  @Input() banners: any[];\n\n  SEVERITY_MAP = {\n    urgent: 'error',\n    warning: 'warning',\n    success: 'success',\n    info: 'info'\n  };\n\n  onAlertClose(config) {\n    const { PAGE, type, target } = config;\n    const { clearMessages } = PCore.getMessageManager();\n    clearMessages({ category: PAGE, type, context: target });\n  }\n}\n","<div>\n  <div *ngFor=\"let banner of banners\">\n    <div *ngFor=\"let message of banner.messages\">\n      <component-mapper\n        name=\"Alert\"\n        [props]=\"{ message, severity: SEVERITY_MAP[banner.variant], hideClose: banner.variant === 'urgent' }\"\n        [parent]=\"this\"\n        [outputEvents]=\"{ onClose: onAlertClose }\"\n      ></component-mapper>\n    </div>\n  </div>\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n  selector: 'app-alert',\n  templateUrl: './alert.component.html',\n  styleUrls: ['./alert.component.scss'],\n  imports: [CommonModule, MatIconModule]\n})\nexport class AlertComponent {\n  @Input() message: any[];\n  @Input() severity;\n  @Input() hideClose;\n  @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n  getMatIcon(severity) {\n    let variant;\n    switch (severity) {\n      case 'error':\n        variant = 'error_outline';\n        break;\n      case 'warning':\n        variant = 'warning_amber';\n        break;\n      case 'success':\n        variant = 'task_alt';\n        break;\n      case 'info':\n        variant = 'info_outline';\n        break;\n      default:\n        break;\n    }\n    return variant;\n  }\n\n  onCloseClick() {\n    alert('Close clicked');\n    this.onClose.emit({ Page: 'Page', target: 'target', type: 'type' });\n  }\n}\n","<div\n  class=\"psdk-alert\"\n  [ngClass]=\"{\n    'psdk-alert-error': severity === 'error',\n    'psdk-grid-warning': severity === 'warning',\n    'psdk-grid-success': severity === 'success',\n    'psdk-grid-info': severity === 'info'\n  }\"\n>\n  <div class=\"psdk-alert-icon\">\n    <mat-icon>{{ getMatIcon(severity) }}</mat-icon>\n  </div>\n  <div>{{ message }}</div>\n  <div *ngIf=\"!hideClose\" style=\"margin-left: auto\">\n    <button class=\"close-button\" mat-icon-button (click)=\"onCloseClick()\">\n      <mat-icon>close</mat-icon>\n    </button>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { Component, Input, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-banner',\n  templateUrl: './banner.component.html',\n  styleUrls: ['./banner.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class BannerComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  @Input() arChildren$: any[];\n  @Input() title: string;\n  @Input() message: any;\n  @Input() backgroundImage: string;\n  @Input() layout$: string;\n\n  getUrl() {\n    return `url(${this.backgroundImage})`;\n  }\n}\n","<div style=\"margin-bottom: '2rem'\">\n  <div class=\"background-image-style\" [ngStyle]=\"{ 'background-image': getUrl() }\">\n    <div class=\"background-style content\">\n      <div>\n        <h1 class=\"title\">{{ title }}</h1>\n        <p class=\"message\">{{ message }}</p>\n      </div>\n    </div>\n  </div>\n  <div\n    [ngClass]=\"{\n      'psdk-grid-filter-2': this.layout$ === 'two-column',\n      'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n      'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n    }\"\n  >\n    <component-mapper\n      [name]=\"arChildren$[0].getPConnect().getComponentName()\"\n      [props]=\"{ pConn$: arChildren$[0].getPConnect(), formGroup$ }\"\n      errorMsg=\"Region wants component not yet available: {{ arChildren$[0].getPConnect().getComponentName() }}\"\n    ></component-mapper>\n    <component-mapper\n      [name]=\"arChildren$[1].getPConnect().getComponentName()\"\n      [props]=\"{ pConn$: arChildren$[1].getPConnect(), formGroup$ }\"\n      errorMsg=\"Region wants component not yet available: {{ arChildren$[1].getPConnect().getComponentName() }}\"\n    ></component-mapper>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\nimport { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-case-create-stage',\n  templateUrl: './case-create-stage.component.html',\n  styleUrls: ['./case-create-stage.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class CaseCreateStageComponent implements OnInit, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n\n  arChildren$: any[];\n\n  // For interaction with AngularPConnect\n  angularPConnectData: AngularPConnectData = {};\n\n  constructor(private angularPConnect: AngularPConnectService) {}\n\n  ngOnInit(): void {\n    // First thing in initialization is registering and subscribing to the AngularPConnect service\n    this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);\n\n    // this.updateSelf();\n    this.checkAndUpdate();\n  }\n\n  ngOnDestroy() {\n    if (this.angularPConnectData.unsubscribeFn) {\n      this.angularPConnectData.unsubscribeFn();\n    }\n  }\n\n  // Callback passed when subscribing to store change\n  onStateChange() {\n    this.checkAndUpdate();\n  }\n\n  checkAndUpdate() {\n    // Should always check the bridge to see if the component should\n    // update itself (re-render)\n    const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);\n\n    // ONLY call updateSelf when the component should update\n    if (bUpdateSelf) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.arChildren$ = this.pConn$.getChildren();\n  }\n}\n","<div *ngFor=\"let kid of arChildren$\">\n  <div *ngIf=\"kid.getPConnect().getConfigProps().template != ''\">\n    <component-mapper\n      [name]=\"kid.getPConnect().getConfigProps().template\"\n      [props]=\"{\n        pConn$: kid.getPConnect(),\n        formGroup$: formGroup$\n      }\"\n      errorMsg=\"CreateCaseStage Missing: {{ kid.getPConnect().getConfigProps().template }}\"\n    ></component-mapper>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n  selector: 'app-field-group',\n  templateUrl: './field-group.component.html',\n  styleUrls: ['./field-group.component.scss'],\n  imports: [CommonModule, MatGridListModule, MatIconModule]\n})\nexport class FieldGroupComponent {\n  @Input() name?: string;\n  @Input() collapsible = false;\n  @Input() instructions: string;\n  @Input() childrenTemplate: TemplateRef<any>;\n\n  collapsed = false;\n\n  headerClickHandler() {\n    this.collapsed = !this.collapsed;\n  }\n}\n","<div class=\"field-group-container\">\n  <div *ngIf=\"name\" class=\"field-group-heading\">\n    <span *ngIf=\"collapsible; else no_collapse\" id=\"field-group-header\" class=\"field-group-header\" (click)=\"headerClickHandler()\">\n      <mat-icon *ngIf=\"collapsed; else down_arrow\" aria-hidden=\"false\" aria-label=\"Arrow Right\" fontIcon=\"keyboard_arrow_right\"></mat-icon>\n      <ng-template #down_arrow>\n        <mat-icon aria-hidden=\"false\" aria-label=\"Arrow Down\" fontIcon=\"keyboard_arrow_down\"></mat-icon>\n      </ng-template>\n      <b>{{ name }}</b>\n    </span>\n    <ng-template #no_collapse>\n      <span>{{ name }}</span>\n    </ng-template>\n  </div>\n\n  <div *ngIf=\"instructions && instructions !== 'none'\" class=\"field-group-instructions\">\n    <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n  </div>\n  <div *ngIf=\"!collapsed\" class=\"field-group-content\">\n    <ng-container [ngTemplateOutlet]=\"childrenTemplate\"></ng-container>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-material-case-summary',\n  templateUrl: './material-case-summary.component.html',\n  styleUrls: ['./material-case-summary.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialCaseSummaryComponent implements OnInit, OnChanges {\n  @Input() status$: string;\n  @Input() bShowStatus$: boolean;\n  @Input() primaryFields$: any[];\n  @Input() secondaryFields$: any[];\n\n  primaryFieldsWithStatus$: any[];\n\n  constructor(private utils: Utils) {}\n  localizedVal = PCore.getLocaleUtils().getLocaleValue;\n  localeCategory = 'ModalContainer';\n  ngOnInit(): void {\n    this.updatePrimaryWithStatus();\n    this.updateLabelAndDate(this.primaryFieldsWithStatus$);\n    this.updateLabelAndDate(this.secondaryFields$);\n  }\n\n  ngOnChanges() {\n    this.updatePrimaryWithStatus();\n    this.updateLabelAndDate(this.primaryFieldsWithStatus$);\n    this.updateLabelAndDate(this.secondaryFields$);\n  }\n\n  updateLabelAndDate(arData: any[]) {\n    for (const field of arData) {\n      switch (field.type.toLowerCase()) {\n        case 'caseoperator':\n          if (field.config.label.toLowerCase() == 'create operator') {\n            field.config.displayLabel = field.config.createLabel;\n          } else if (field.config.label.toLowerCase() == 'update operator') {\n            field.config.displayLabel = field.config.updateLabel;\n          }\n          break;\n        case 'date':\n          field.config.value = this.utils.generateDate(field.config.value, 'Date-Long');\n          break;\n        case 'userreference':\n        case 'decimal':\n        case 'dropdown':\n          field.config.displayLabel = field.config.label;\n          break;\n        case 'checkbox':\n          field.config.displayLabel = field.config.caption;\n          break;\n        default:\n          break;\n      }\n    }\n  }\n\n  updatePrimaryWithStatus() {\n    this.primaryFieldsWithStatus$ = [];\n    for (const prim of this.primaryFields$) {\n      prim.config.value = this.localizedVal(prim.config.value, this.localeCategory);\n      this.primaryFieldsWithStatus$.push(prim);\n    }\n\n    if (this.bShowStatus$) {\n      const oStatus = { type: 'status', config: { value: this.status$, label: 'Status' } };\n\n      const count = this.primaryFieldsWithStatus$.length;\n      if (count < 2) {\n        this.primaryFieldsWithStatus$.push(oStatus);\n      } else {\n        this.primaryFieldsWithStatus$.splice(1, 0, oStatus);\n      }\n    }\n  }\n}\n","<div class=\"psdk-case-summary-fields\">\n  <dl class=\"psdk-case-summary-fields-primary\">\n    <div *ngFor=\"let field of primaryFieldsWithStatus$\" class=\"psdk-csf-primary-field\">\n      <dt class=\"psdk-csf-primary-field-header\">\n        {{ field.config?.label }}\n      </dt>\n      <dd *ngIf=\"field.config.value === ''; else hasValue\" class=\"psdk-csf-primary-field-data\">\n        <ng-container [ngSwitch]=\"field.type.toLowerCase()\">\n          <label *ngSwitchCase=\"'caseoperator'\">operator</label>\n          <span *ngSwitchDefault class=\"psdk-csf-text-style\">---</span>\n        </ng-container>\n      </dd>\n      <ng-template #hasValue>\n        <dd class=\"psdk-csf-primary-field-data\" [ngSwitch]=\"field.type.toLowerCase()\">\n          <span *ngSwitchCase=\"'textinput'\" class=\"psdk-csf-text-style\">{{ field.config.value }}</span>\n          <span *ngSwitchCase=\"'status'\" class=\"psdk-csf-status-style\">{{ field.config.value }}</span>\n          <a *ngSwitchCase=\"'phone'\" class=\"psdk-primary-color\" as=\"a\" href=\"tel: {{ field.config.value }}\">{{ field.config.value }}</a>\n          <a *ngSwitchCase=\"'email'\" class=\"psdk-primary-color\" href=\"mailto: {{ field.config.value }}\">{{ field.config.value }}</a>\n          <span *ngSwitchCase=\"'date'\" class=\"psdk-csf-text-style\">{{ field.config.value }}</span>\n          <label *ngSwitchCase=\"'caseoperator'\">operator</label>\n          <span *ngSwitchDefault class=\"psdk-csf-text-style\">{{ field.config.value }}</span>\n        </dd>\n      </ng-template>\n    </div>\n  </dl>\n</div>\n<div class=\"psdk-case-summary-fields\">\n  <dl *ngFor=\"let field of secondaryFields$\" class=\"psdk-case-summary-fields-secondary\">\n    <div\n      *ngIf=\"\n        field?.config?.label?.toLowerCase() == 'create operator' ||\n          field?.displayLabel?.toLowerCase() == 'create operator' ||\n          field?.config?.label?.toLowerCase() == 'update operator' ||\n          field?.displayLabel?.toLowerCase() == 'update operator';\n        else hasSecondaryValue\n      \"\n    >\n      <component-mapper\n        name=\"Operator\"\n        [props]=\"{ pConn$: field?.kid, displayLabel: field?.displayLabel || field?.config.displayLabel }\"\n      ></component-mapper>\n    </div>\n    <ng-template #hasSecondaryValue>\n      <div class=\"psdk-csf-secondary-field\">\n        <dt class=\"psdk-csf-secondary-field-header\">\n          {{ field.config?.displayLabel || field.config?.label }}\n        </dt>\n        <dd class=\"psdk-csf-secondary-field-data\">\n          <div [ngSwitch]=\"field.type\">\n            <label *ngSwitchCase=\"'UserReference'\" class=\"psdk-secondary-value\">{{ field.config.value.userName || '---' }}</label>\n            <label *ngSwitchCase=\"'Checkbox'\" class=\"psdk-secondary-value\">{{ field.config.falseLabel || '---' }}</label>\n            <label *ngSwitchDefault class=\"psdk-secondary-value\">{{ field.config.value || '---' }}</label>\n          </div>\n        </dd>\n      </div>\n    </ng-template>\n  </dl>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-material-details',\n  templateUrl: './material-details.component.html',\n  styleUrls: ['./material-details.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialDetailsComponent {\n  constructor(private utils: Utils) {}\n\n  @Input() arFields$: any[];\n  @Input() arFields2$: any[];\n  @Input() arFields3$: any[];\n  @Input() arHighlightedFields: any[];\n  @Input() layout: any;\n\n  _getValue(configValue) {\n    if (configValue && configValue != '') {\n      return configValue;\n    }\n    return '---';\n  }\n\n  _formatDate(dateValue: string, dateFormat: string): string {\n    return this.utils.generateDate(dateValue, dateFormat);\n  }\n}\n","<div id=\"details-fields-list\">\n  <div\n    *ngIf=\"arHighlightedFields && arHighlightedFields.length > 0\"\n    [ngClass]=\"{\n      'psdk-grid-filter-1': this.layout === 'one-column',\n      'psdk-grid-filter-2': this.layout === 'two-column',\n      'psdk-grid-filter-3': this.layout === 'three-column',\n      'psdk-grid-filter-wide-narrow': this.layout === 'wide-narrow',\n      'psdk-grid-filter-narrow-wide': this.layout === 'narrow-wide'\n    }\"\n  >\n    <div *ngFor=\"let field of arHighlightedFields\">\n      <div class=\"psdk-details-fields-label\">\n        {{ field.config.label }}\n      </div>\n      <div [ngSwitch]=\"field.type.toLowerCase()\" class=\"psdk-csf-primary-field-value\">\n        <span *ngSwitchCase=\"'textinput'\" class=\"psdk-details-text-style-hf\">{{ _getValue(field.config.value) }}</span>\n        <span *ngSwitchCase=\"'status'\" class=\"psdk-details-status-style-hf\">{{ _getValue(field.config.value) }}</span>\n        <a *ngSwitchCase=\"'phone'\" as=\"a\" href=\"tel: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n        <a *ngSwitchCase=\"'email'\" href=\"mailto: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n        <span *ngSwitchCase=\"'date'\" class=\"psdk-details-text-style-hf\">{{ _formatDate(field.config.value, field.type) }}</span>\n        <span *ngSwitchCase=\"'caseoperator'\"></span>\n        <span *ngSwitchDefault>{{ _getValue(field.config.value) }}</span>\n      </div>\n    </div>\n  </div>\n  <div\n    [ngClass]=\"{\n      'psdk-grid-filter-1': this.layout === 'one-column',\n      'psdk-grid-filter-2': this.layout === 'two-column',\n      'psdk-grid-filter-3': this.layout === 'three-column',\n      'psdk-grid-filter-wide-narrow': this.layout === 'wide-narrow',\n      'psdk-grid-filter-narrow-wide': this.layout === 'narrow-wide'\n    }\"\n  >\n    <component-mapper *ngIf=\"arFields$\" name=\"DetailsFields\" [props]=\"{ arFields$: arFields$ }\"></component-mapper>\n    <component-mapper *ngIf=\"arFields2$\" name=\"DetailsFields\" [props]=\"{ arFields$: arFields2$ }\"></component-mapper>\n    <component-mapper *ngIf=\"arFields3$\" name=\"DetailsFields\" [props]=\"{ arFields$: arFields3$ }\"></component-mapper>\n  </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-material-details-fields',\n  templateUrl: './material-details-fields.component.html',\n  styleUrls: ['./material-details-fields.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialDetailsFieldsComponent {\n  constructor(private utils: Utils) {}\n\n  @Input() arFields$: any[];\n  @Input() arHighlightedFields: any[];\n\n  _getValue(configValue, field: any = {}) {\n    if (field?.type === 'userreference') {\n      return configValue.userName;\n    }\n    if (configValue && configValue != '') {\n      return configValue;\n    }\n    return '---';\n  }\n\n  _formatDate(dateValue: string, dateFormat: string): string {\n    return this.utils.generateDate(dateValue, dateFormat);\n  }\n\n  getVisibility(config): boolean {\n    const { visibility = true } = config;\n\n    return this.utils.getBooleanValue(visibility);\n  }\n}\n","<div id=\"details-fields-list\">\n  <div *ngFor=\"let field of arFields$\">\n    <div *ngIf=\"field.type === 'group'; else noGroup\">\n      <component-mapper name=\"Group\" [props]=\"{ pConn$: field.pConn }\"></component-mapper>\n    </div>\n    <ng-template #noGroup>\n      <div *ngIf=\"field.type === 'reference'; else showDetails\">\n        <component-mapper name=\"View\" [props]=\"{ pConn$: field.pConn }\"></component-mapper>\n      </div>\n    </ng-template>\n\n    <ng-template #showDetails>\n      <div class=\"psdk-grid-filter\" *ngIf=\"field.config.label && getVisibility(field.config)\">\n        <div class=\"psdk-details-fields-label\">\n          {{ field.config.label }}\n        </div>\n        <div [ngSwitch]=\"field.type.toLowerCase()\" class=\"psdk-csf-primary-field-value\">\n          <span *ngSwitchCase=\"'textinput'\" class=\"psdk-details-text-style\">{{ _getValue(field.config.value) }}</span>\n          <span *ngSwitchCase=\"'status'\" class=\"psdk-details-status-style\">{{ _getValue(field.config.value) }}</span>\n          <a *ngSwitchCase=\"'phone'\" class=\"psdk-primary-color\" as=\"a\" href=\"tel: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n          <a *ngSwitchCase=\"'email'\" class=\"psdk-primary-color\" href=\"mailto: {{ field.config.value }}\">{{ _getValue(field.config.value) }}</a>\n          <span *ngSwitchCase=\"'date'\" class=\"psdk-details-text-style\">{{ _formatDate(field.config.value, field.type) }}</span>\n          <span *ngSwitchCase=\"'caseoperator'\"></span>\n          <span *ngSwitchDefault>{{ _getValue(field.config.value, field) }}</span>\n        </div>\n      </div>\n    </ng-template>\n  </div>\n</div>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n  selector: 'app-material-summary-item',\n  templateUrl: './material-summary-item.component.html',\n  styleUrls: ['./material-summary-item.component.scss'],\n  imports: [CommonModule, MatButtonModule, MatMenuModule]\n})\nexport class MaterialSummaryItemComponent implements OnInit {\n  @Input() item$: any;\n  @Input() menuIconOverride$ = '';\n  @Input() menuIconOverrideAction$: any;\n\n  settingsSvgIcon$: string;\n  imagePath$ = '';\n\n  constructor(private utils: Utils) {}\n\n  ngOnInit(): void {\n    this.imagePath$ = this.utils.getIconPath(this.utils.getSDKStaticContentUrl());\n\n    this.settingsSvgIcon$ = this.utils.getImageSrc('more', this.utils.getSDKStaticContentUrl());\n    if (this.menuIconOverride$ != '') {\n      this.menuIconOverride$ = this.utils.getImageSrc(this.menuIconOverride$, this.utils.getSDKStaticContentUrl());\n    }\n  }\n}\n","<div class=\"psdk-utility-card\">\n  <div class=\"psdk-utility-card-icon\">\n    <img class=\"psdk-utility-card-svg-icon\" src=\"{{ imagePath$ }}{{ item$.visual.icon }}.svg\" />\n  </div>\n  <div class=\"psdk-utility-card-main\">\n    <div *ngIf=\"item$.primary.type == 'URL'\" class=\"psdk-utility-card-main-primary-url\">\n      <button mat-button color=\"primary\" (click)=\"item$.primary.click()\">\n        {{ item$.primary.name }}&nbsp;\n        <img class=\"psdk-utility-card-actions-svg-icon\" src=\"{{ imagePath$ }}{{ item$.primary.icon }}.svg\" />\n      </button>\n    </div>\n    <div *ngIf=\"item$.primary.type != 'URL'\" class=\"psdk-utility-card-main-primary-label\">\n      {{ item$.primary.name }}\n    </div>\n    <div *ngIf=\"item$.secondary.text != ''\" [style.color]=\"item$.secondary.error ? 'red' : undefined\">{{ item$.secondary.text }}</div>\n  </div>\n  <div class=\"psdk-utility-card-actions\">\n    <div *ngIf=\"menuIconOverride$ == ''; else showCustom\">\n      <button id=\"setting-button\" mat-icon-button [matMenuTriggerFor]=\"actionMenu\">\n        <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n      </button>\n      <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n        <ng-container *ngFor=\"let action of item$.actions\">\n          <button mat-menu-item (click)=\"action.onClick()\">\n            <img class=\"psdk-utility-card-action-actions-svg-icon\" src=\"{{ imagePath$ }}{{ action.icon }}.svg\" />&nbsp;\n            {{ action.text }}\n          </button>\n        </ng-container>\n      </mat-menu>\n    </div>\n    <ng-template #showCustom>\n      <button id=\"delete-attachment\" mat-icon-button (click)=\"menuIconOverrideAction$.onClick(item$)\">\n        <img class=\"psdk-utility-card-action-svg-icon\" src=\"{{ menuIconOverride$ }}\" />\n      </button>\n    </ng-template>\n  </div>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\n@Component({\n  selector: 'app-material-summary-list',\n  templateUrl: './material-summary-list.component.html',\n  styleUrls: ['./material-summary-list.component.scss'],\n  imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]\n})\nexport class MaterialSummaryListComponent {\n  @Input() arItems$: any[];\n  @Input() icon$: string;\n  @Input() menuIconOverride$ = '';\n  @Input() menuIconOverrideAction$: any;\n}\n","<ng-container *ngFor=\"let item of arItems$\">\n  <component-mapper name=\"SummaryItem\" [props]=\"{ item$: item, menuIconOverride$, menuIconOverrideAction$ }\"></component-mapper>\n</ng-container>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n  selector: 'app-material-utility',\n  templateUrl: './material-utility.component.html',\n  styleUrls: ['./material-utility.component.scss'],\n  providers: [Utils],\n  standalone: true\n})\nexport class MaterialUtilityComponent implements OnInit {\n  @Input() headerText$: string;\n  @Input() headerIcon$: string;\n  @Input() headerIconUrl$: string;\n  @Input() noItemsMessage$: string;\n\n  headerSvgIcon$: string;\n  settingsSvgIcon$: string;\n\n  constructor(private utils: Utils) {}\n\n  ngOnInit(): void {\n    this.headerSvgIcon$ = this.utils.getImageSrc(this.headerIcon$, this.headerIconUrl$);\n    this.settingsSvgIcon$ = this.utils.getImageSrc('plus', this.headerIconUrl$);\n  }\n}\n","<div style=\"text-align: left\">\n  <div class=\"psdk-utility\">\n    <div class=\"header\">\n      <div class=\"header-icon\">\n        <img class=\"psdk-utility-svg-icon\" src=\"{{ headerSvgIcon$ }}\" />\n      </div>\n      <div class=\"header-text\">{{ headerText$ }}</div>\n      <div style=\"flex-grow: 1\"></div>\n      <div class=\"header-icon\">\n        <img class=\"psdk-settings-svg-icon\" src=\"{{ settingsSvgIcon$ }}\" />\n      </div>\n    </div>\n    <div class=\"psdk-case-view-divider\"></div>\n    <br />\n    <div class=\"message\">{{ noItemsMessage$ }}</div>\n  </div>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\n\n@Component({\n  selector: 'app-material-vertical-tabs',\n  templateUrl: './material-vertical-tabs.component.html',\n  styleUrls: ['./material-vertical-tabs.component.scss'],\n  imports: [CommonModule, MatButtonToggleModule, MatBadgeModule]\n})\nexport class MaterialVerticalTabsComponent implements OnInit {\n  @Input() tabConfig$: any[];\n  @Output() tabClick: EventEmitter<any> = new EventEmitter();\n\n  selectedTabId$: any;\n\n  ngOnInit(): void {\n    // tabConfig$  [ {name: , id: , count: }]\n\n    if (this.tabConfig$) {\n      // seletedTabId is the first tab, unless another is selected\n      this.selectedTabId$ = this.tabConfig$[0]?.id;\n\n      // run through and see anything is selected\n      for (let i = 0; i < this.tabConfig$.length; ++i) {\n        const aTab = this.tabConfig$[i];\n        if (aTab?.selected) {\n          this.selectedTabId$ = aTab.id;\n          break;\n        }\n      }\n    }\n  }\n\n  onChange(tab: any) {\n    this.tabClick.emit(tab);\n  }\n}\n","<div>\n  <mat-button-toggle-group vertical hideSingleSelectionIndicator (change)=\"onChange($event.value)\" [value]=\"selectedTabId$\" aria-label=\"Tabs\">\n    <mat-button-toggle *ngFor=\"let tab of tabConfig$\" [value]=\"tab.id\" style=\"text-align: left\">\n      <div style=\"display: flex\">\n        <div style=\"flex-grow: 10\">{{ tab.name }}</div>\n        <div style=\"flex-grow: 1\">\n          <span *ngIf=\"tab?.count\" [matBadge]=\"tab.count\" matBadgeOverlap=\"false\" matBadgePosition=\"after\" class=\"psdk-vtab-badge\">&nbsp;</span>\n        </div>\n      </div>\n    </mat-button-toggle>\n  </mat-button-toggle-group>\n</div>\n","import { Component, ElementRef, OnInit, Input, Renderer2, ChangeDetectorRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Utils } from '../../../_helpers/utils';\n\n@Component({\n  selector: 'app-operator',\n  templateUrl: './operator.component.html',\n  styleUrls: ['./operator.component.scss'],\n  imports: [CommonModule, MatButtonModule]\n})\nexport class OperatorComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() pConn$: typeof PConnect;\n  @Input() displayLabel;\n  @Input() name$?: string;\n\n  fields$: any[] = [];\n  bShowPopover$: boolean;\n  date$: string;\n  label$: string;\n  id$: string;\n  constructor(\n    private el: ElementRef,\n    private renderer: Renderer2,\n    private cdRef: ChangeDetectorRef,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    this.renderer.listen('window', 'click', el => {\n      const clickedInside = this.el.nativeElement.contains(el.target);\n\n      if (!clickedInside) {\n        this.bShowPopover$ = false;\n      }\n    });\n\n    this.bShowPopover$ = false;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n    if (pConn$ && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  ngOnDestroy(): void {\n    // Ref: https://medium.com/@kamil.galek/mythical-angular-component-styles-cleanup-in-angular-17-f799a08b2abc\n    // Commenting the below line as it is causing the Operator component's styles not getting applied.\n    // this.renderer.destroy();\n  }\n\n  updateSelf(): void {\n    const configProps$ = this.pConn$.getConfigProps();\n    this.displayLabel = this.displayLabel?.toLowerCase();\n    const label = configProps$?.label?.toLowerCase();\n    if (label === 'create operator' || this.displayLabel === 'create operator') {\n      this.name$ = configProps$.createOperator.userName;\n      this.id$ = configProps$.createOperator.userId;\n      this.label$ = configProps$.createLabel;\n    } else if (label === 'update operator' || this.displayLabel === 'update operator') {\n      this.name$ = configProps$.updateOperator.userName;\n      this.id$ = configProps$.updateOperator.userId;\n      this.label$ = configProps$.updateLabel;\n    } else if (label === 'resolve operator' || this.displayLabel === 'resolve operator') {\n      this.name$ = configProps$.resolveOperator.userName;\n      this.id$ = configProps$.resolveOperator.userId;\n      this.label$ = configProps$.resolveLabel;\n    } else {\n      this.name$ = this.name$ || configProps$?.value.userName;\n      this.id$ = configProps$?.value.userId;\n      this.label$ = configProps$.label;\n    }\n    this.date$ = this.utils.generateDate(configProps$?.updateDateTime, 'DateTime-Since');\n  }\n\n  showOperator() {\n    const operatorPreviewPromise = PCore.getUserApi().getOperatorDetails(this.id$);\n    const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n    const localeCategory = 'Operator';\n    const fillerString = '---';\n\n    operatorPreviewPromise.then((res: any) => {\n      if (res.data && res.data.pyOperatorInfo && res.data.pyOperatorInfo.pyUserName) {\n        this.fields$ = [\n          {\n            id: 'pyPosition',\n            name: localizedVal('Position', localeCategory),\n            value: res.data.pyOperatorInfo.pyPosition != '' ? res.data.pyOperatorInfo.pyPosition : fillerString\n          },\n          {\n            id: 'pyOrganization',\n            name: localizedVal('Organization', localeCategory),\n            value: res.data.pyOperatorInfo.pyOrganization != '' ? res.data.pyOperatorInfo.pyOrganization : fillerString\n          },\n          {\n            id: 'ReportToUserName',\n            name: localizedVal('Reports to', localeCategory),\n            value: res.data.pyOperatorInfo.pyReportToUserName != '' ? res.data.pyOperatorInfo.pyReportToUserName : fillerString\n          },\n          {\n            id: 'pyTelephone',\n            name: localizedVal('Telephone', localeCategory),\n            value: res.data.pyOperatorInfo.pyTelephone != '' ? res.data.pyOperatorInfo.pyTelephone : fillerString\n          },\n          {\n            id: 'pyEmailAddress',\n            name: localizedVal('Email address', localeCategory),\n            value: res.data.pyOperatorInfo.pyEmailAddress != '' ? res.data.pyOperatorInfo.pyEmailAddress : fillerString\n          }\n        ];\n\n        this.bShowPopover$ = true;\n        this.cdRef.detectChanges();\n      } else {\n        console.log(\n          `Operator: PCore.getUserApi().getOperatorDetails(${this.id$}); returned empty res.data.pyOperatorInfo.pyUserName - adding default`\n        );\n        this.fields$ = [\n          {\n            id: 'pyPosition',\n            name: localizedVal('Position', localeCategory),\n            value: fillerString\n          },\n          {\n            id: 'pyOrganization',\n            name: localizedVal('Organization', localeCategory),\n            value: fillerString\n          },\n          {\n            id: 'ReportToUserName',\n            name: localizedVal('Reports to', localeCategory),\n            value: fillerString\n          },\n          {\n            id: 'pyTelephone',\n            name: localizedVal('Telephone', localeCategory),\n            value: fillerString\n          },\n          {\n            id: 'pyEmailAddress',\n            name: localizedVal('Email address', localeCategory),\n            value: fillerString\n          }\n        ];\n      }\n    });\n  }\n}\n","<div class=\"psdk-operator psdk-double\" [ngClass]=\"{ 'flex-row': displayLabel }\">\n  <div class=\"psdk-label\">\n    {{ label$ }}\n  </div>\n  <div class=\"psdk-double\">\n    <button mat-button color=\"primary\" style=\"text-decoration: underline\" (click)=\"showOperator()\">{{ name$ }}</button>\n  </div>\n  <div>{{ date$ }}</div>\n</div>\n\n<div>\n  <div *ngIf=\"bShowPopover$\" class=\"psdk-operator-popover\">\n    <dl>\n      <div *ngFor=\"let field of fields$; let i = index\">\n        <dt>{{ field.name }}</dt>\n        <dd class=\"psdk-operator-value\">{{ field.value }}</dd>\n      </div>\n    </dl>\n  </div>\n</div>\n","import { Component, OnInit, Input, forwardRef } from '@angular/core';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface PulseProps {\n  // If any, enter additional props that only exist on this component\n  children?: any[];\n}\n\n@Component({\n  selector: 'app-pulse',\n  templateUrl: './pulse.component.html',\n  styleUrls: ['./pulse.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class PulseComponent implements OnInit {\n  @Input() pConn$: typeof PConnect;\n\n  configProps$: PulseProps;\n  currentUser$: string | undefined;\n  currentUserInitials$: string | undefined = '--';\n\n  ngOnInit() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    // this.currentUser$ = this.configProps$.currentUser;\n    this.currentUser$ = PCore.getEnvironmentInfo().getOperatorName();\n\n    if (this.currentUser$ != '') {\n      this.currentUserInitials$ = this.currentUser$?.charAt(0);\n\n      if (this.currentUser$ && this.currentUser$.lastIndexOf(' ') > 0) {\n        const lastName = this.currentUser$?.substring(this.currentUser$.lastIndexOf(' ') + 1);\n        this.currentUserInitials$ += lastName.charAt(0);\n      } else if (this.currentUser$ && this.currentUser$.lastIndexOf('.') > 0) {\n        const lastName = this.currentUser$?.substring(this.currentUser$.lastIndexOf('.') + 1);\n        this.currentUserInitials$ += lastName.charAt(0);\n      }\n    }\n  }\n}\n","<div class=\"psdk-pulse\">\n  <component-mapper [name]=\"'FeedContainer'\" [props]=\"{ pConn$ }\"></component-mapper>\n</div>\n","import { Component, Input, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { EditorModule, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';\n\ndeclare let tinymce: any;\n\n@Component({\n  selector: 'app-rich-text-editor',\n  templateUrl: './rich-text-editor.component.html',\n  styleUrls: ['./rich-text-editor.component.scss'],\n  imports: [CommonModule, EditorModule, ReactiveFormsModule],\n  providers: [{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }]\n})\nexport class RichTextEditorComponent implements OnChanges {\n  @Input() placeholder;\n  @Input() disabled;\n  @Input() readonly;\n  @Input() value;\n  @Input() label;\n  @Input() required;\n  @Input() info;\n  @Input() error;\n  @Input() testId;\n\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n  richText = new FormControl();\n  editorConfig: any = {};\n\n  ngOnChanges() {\n    if (this.required) {\n      this.richText.addValidators(Validators.required);\n    }\n\n    if (this.disabled) {\n      this.richText.disable();\n    } else {\n      this.richText.enable();\n    }\n\n    if (this.value) {\n      this.richText.setValue(this.value);\n    }\n\n    const themeElement = document.querySelector('.dark') || document.body;\n    let textColor = getComputedStyle(themeElement).getPropertyValue('--mat-sys-on-surface').trim();\n    if (!textColor) textColor = '#000000';\n\n    this.editorConfig = {\n      base_url: '/tinymce',\n      suffix: '.min',\n      menubar: false,\n      placeholder: this.placeholder,\n      statusbar: false,\n      min_height: 130,\n      plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],\n      autoresize_bottom_margin: 0,\n      toolbar: this.disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',\n      toolbar_location: 'bottom',\n      content_style: `\n        body {\n          font-family: Helvetica, Arial, sans-serif;\n          font-size: 14px;\n          color: ${textColor} !important;\n          background: transparent !important;\n        }\n      `,\n      branding: false,\n      paste_data_images: true,\n      file_picker_types: 'image',\n      file_picker_callback: this.filePickerCallback\n    };\n  }\n\n  filePickerCallback = cb => {\n    const input = document.createElement('input');\n    input.setAttribute('type', 'file');\n    input.setAttribute('accept', 'image/*');\n\n    input.addEventListener('change', (e: any) => {\n      const file = e.target.files[0];\n\n      const reader: any = new FileReader();\n      reader.addEventListener('load', () => {\n        /*\n            Note: Now we need to register the blob in TinyMCEs image blob\n            registry. In the next release this part hopefully won't be\n            necessary, as we are looking to handle it internally.\n        */\n        const blobId = `blobid${new Date().getTime()}`;\n        console.log('editorRef', tinymce.activeEditor);\n        const blobCache = tinymce.activeEditor.editorUpload.blobCache;\n        const base64 = reader.result.split(',')[1];\n        const blobInfo = blobCache.create(blobId, file, base64);\n        blobCache.add(blobInfo);\n\n        /* call the callback and populate the Title field with the file name */\n        cb(blobInfo.blobUri(), { title: file.name });\n      });\n      reader.readAsDataURL(file);\n    });\n\n    input.click();\n  };\n\n  blur() {\n    if (tinymce.activeEditor) {\n      const editorValue = tinymce.activeEditor.getContent({ format: 'html' });\n      this.onBlur.emit(editorValue);\n    }\n  }\n\n  change(event) {\n    this.onChange.emit(event);\n  }\n}\n","<div [attr.data-test-id]=\"testId\">\n  <label [ngClass]=\"{ 'label-required': required === true }\" class=\"rich-text-label\">{{ label }}</label>\n\n  <div class=\"rich-text-editor\" *ngIf=\"!readonly\">\n    <editor\n      [formControl]=\"richText\"\n      [attr.disabled]=\"disabled\"\n      [initialValue]=\"value\"\n      [init]=\"editorConfig\"\n      (onBlur)=\"blur()\"\n      (onChange)=\"change($event)\"\n    ></editor>\n\n    <p *ngIf=\"richText.invalid\" [ngClass]=\"'text-editor-error'\">{{ info }}</p>\n  </div>\n\n  <div *ngIf=\"readonly\">\n    <div class=\"readonly-richtext-editor\" style=\"margin: 10px 5px\" [innerHTML]=\"value || '--'\"></div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n// import { Button } from '@angular/material'\n\n@Component({\n  selector: 'wss-quick-create',\n  templateUrl: './wss-quick-create.component.html',\n  styleUrls: ['./wss-quick-create.component.scss'],\n  imports: [CommonModule]\n})\nexport class WssQuickCreateComponent {\n  @Input() actions$: any;\n  @Input() heading$: any;\n}\n","<div class=\"wss-quick-create-header\">\n  <h1 class=\"quick-link-heading\">{{ heading$ }}</h1>\n  <ul class=\"quick-link-ul-list\">\n    <li *ngFor=\"let element of actions$\" class=\"quick-link-list\">\n      <button mat-raised-button color=\"primary\" class=\"quick-link-button\" mat-icon-button (click)=\"element.onClick()\">\n        <span class=\"quick-link-button-span\">\n          <img *ngIf=\"element.icon\" class=\"quick-link-icon\" [src]=\"element.icon\" />\n          <span>{{ element.label }}</span>\n        </span>\n      </button>\n    </li>\n  </ul>\n</div>\n","// Infra components\nimport { ActionButtonsComponent } from '../../_components/infra/action-buttons/action-buttons.component';\nimport { AssignmentCardComponent } from '../../_components/infra/assignment-card/assignment-card.component';\nimport { AssignmentComponent } from '../../_components/infra/assignment/assignment.component';\nimport { DashboardFilterComponent } from '../../_components/infra/dashboard-filter/dashboard-filter.component';\nimport { DeferLoadComponent } from '../../_components/infra/defer-load/defer-load.component';\nimport { ErrorBoundaryComponent } from '../../_components/infra/error-boundary/error-boundary.component';\nimport { FlowContainerComponent } from '../../_components/infra/Containers/flow-container/flow-container.component';\nimport { ModalViewContainerComponent } from '../../_components/infra/Containers/modal-view-container/modal-view-container.component';\nimport { MultiStepComponent } from '../../_components/infra/multi-step/multi-step.component';\nimport { NavbarComponent } from '../../_components/infra/navbar/navbar.component';\nimport { ReferenceComponent } from '../../_components/infra/reference/reference.component';\nimport { RegionComponent } from '../../_components/infra/region/region.component';\nimport { RootContainerComponent } from '../../_components/infra/root-container/root-container.component';\nimport { StagesComponent } from '../../_components/infra/stages/stages.component';\nimport { SubTabsComponent } from '../../_components/template/sub-tabs/sub-tabs.component';\nimport { ViewComponent } from '../../_components/infra/view/view.component';\nimport { ViewContainerComponent } from '../../_components/infra/Containers/view-container/view-container.component';\n\n// Field components\nimport { AutoCompleteComponent } from '../../_components/field/auto-complete/auto-complete.component';\nimport { CancelAlertComponent } from '../../_components/field/cancel-alert/cancel-alert.component';\nimport { CheckBoxComponent } from '../../_components/field/check-box/check-box.component';\nimport { CurrencyComponent } from '../../_components/field/currency/currency.component';\nimport { DateComponent } from '../../_components/field/date/date.component';\nimport { DateTimeComponent } from '../../_components/field/date-time/date-time.component';\nimport { DecimalComponent } from '../../_components/field/decimal/decimal.component';\nimport { DropdownComponent } from '../../_components/field/dropdown/dropdown.component';\nimport { EmailComponent } from '../../_components/field/email/email.component';\nimport { GroupComponent } from '../../_components/field/group/group.component';\nimport { IntegerComponent } from '../../_components/field/integer/integer.component';\nimport { ListViewActionButtonsComponent } from '../../_components/field/list-view-action-buttons/list-view-action-buttons.component';\nimport { LocationComponent } from '../../_components/field/location/location.component';\nimport { ObjectReferenceComponent } from '../../_components/field/object-reference/object-reference.component';\nimport { PercentageComponent } from '../../_components/field/percentage/percentage.component';\nimport { PhoneComponent } from '../../_components/field/phone/phone.component';\nimport { RadioButtonsComponent } from '../../_components/field/radio-buttons/radio-buttons.component';\nimport { SemanticLinkComponent } from '../../_components/field/semantic-link/semantic-link.component';\nimport { TextAreaComponent } from '../../_components/field/text-area/text-area.component';\nimport { TextComponent } from '../../_components/field/text/text.component';\nimport { TextContentComponent } from '../../_components/field/text-content/text-content.component';\nimport { TextInputComponent } from '../../_components/field/text-input/text-input.component';\nimport { TimeComponent } from '../../_components/field/time/time.component';\nimport { UrlComponent } from '../../_components/field/url/url.component';\nimport { UserReferenceComponent } from '../../_components/field/user-reference/user-reference.component';\nimport { ScalarListComponent } from '../../_components/field/scalar-list/scalar-list.component';\nimport { SearchFormComponent } from '../../_components/template/data-reference/search-form/search-form.component';\nimport { SelectableCardComponent } from '../../_components/field/selectable-card/selectable-card.component';\nimport { RichTextComponent } from '../../_components/field/rich-text/rich-text.component';\n\n// Template components\nimport { AdvancedSearchComponent } from '../../_components/template/advanced-search/advanced-search.component';\nimport { AppShellComponent } from '../../_components/template/app-shell/app-shell.component';\nimport { BannerPageComponent } from '../../_components/template/banner-page/banner-page.component';\nimport { CaseSummaryComponent } from '../../_components/template/case-summary/case-summary.component';\nimport { CaseViewComponent } from '../../_components/template/case-view/case-view.component';\nimport { ConfirmationComponent } from '../../_components/template/confirmation/confirmation.component';\nimport { DataReferenceComponent } from '../../_components/template/data-reference/data-reference.component';\nimport { DefaultFormComponent } from '../../_components/template/default-form/default-form.component';\nimport { DefaultPageComponent } from '../../_components/template/default-page/default-page.component';\nimport { DetailsComponent } from '../../_components/template/details/details.component';\nimport { DetailsNarrowWideComponent } from '../../_components/template/details-narrow-wide/details-narrow-wide.component';\nimport { DetailsOneColumnComponent } from '../../_components/template/details-one-column/details-one-column.component';\nimport { DetailsSubTabsComponent } from '../../_components/template/details-sub-tabs/details-sub-tabs.component';\nimport { DetailsThreeColumnComponent } from '../../_components/template/details-three-column/details-three-column.component';\nimport { DetailsTwoColumnComponent } from '../../_components/template/details-two-column/details-two-column.component';\nimport { DetailsWideNarrowComponent } from '../../_components/template/details-wide-narrow/details-wide-narrow.component';\nimport { DynamicTabsComponent } from '../../_components/template/dynamic-tabs/dynamic-tabs.component';\nimport { FieldGroupListComponent } from '../../_components/template/field-group-list/field-group-list.component';\nimport { FieldGroupTemplateComponent } from '../../_components/template/field-group-template/field-group-template.component';\nimport { FieldValueListComponent } from '../../_components/template/field-value-list/field-value-list.component';\nimport { InlineDashboardComponent } from '../../_components/template/inline-dashboard/inline-dashboard.component';\nimport { InlineDashboardPageComponent } from '../../_components/template/inline-dashboard-page/inline-dashboard-page.component';\nimport { ListPageComponent } from '../../_components/template/list-page/list-page.component';\nimport { ListViewComponent } from '../../_components/template/list-view/list-view.component';\nimport { MultiReferenceReadonlyComponent } from '../../_components/template/multi-reference-readonly/multi-reference-readonly.component';\nimport { MultiselectComponent } from '../../_components/field/multiselect/multiselect.component';\nimport { NarrowWideFormComponent } from '../../_components/template/narrow-wide-form/narrow-wide-form.component';\nimport { ObjectPageComponent } from '../../_components/template/object-page/object-page.component';\nimport { OneColumnComponent } from '../../_components/template/one-column/one-column.component';\nimport { OneColumnPageComponent } from '../../_components/template/one-column-page/one-column-page.component';\nimport { OneColumnTabComponent } from '../../_components/template/one-column-tab/one-column-tab.component';\nimport { PageComponent } from '../../_components/template/page/page.component';\nimport { PromotedFiltersComponent } from '../../_components/template/promoted-filters/promoted-filters.component';\nimport { SearchGroupsComponent } from '../../_components/template/advanced-search/search-groups/search-groups.component';\nimport { SelfServiceCaseViewComponent } from '../../_components/template/self-service-case-view/self-service-case-view.component';\nimport { SimpleTableComponent } from '../../_components/template/simple-table/simple-table.component';\nimport { SimpleTableManualComponent } from '../../_components/template/simple-table-manual/simple-table-manual.component';\nimport { SimpleTableSelectComponent } from '../../_components/template/simple-table-select/simple-table-select.component';\nimport { SingleReferenceReadonlyComponent } from '../../_components/template/single-reference-readonly/single-reference-readonly.component';\nimport { ThreeColumnComponent } from '../../_components/template/three-column/three-column.component';\nimport { ThreeColumnPageComponent } from '../../_components/template/three-column-page/three-column-page.component';\nimport { TwoColumnComponent } from '../../_components/template/two-column/two-column.component';\nimport { TwoColumnPageComponent } from '../../_components/template/two-column-page/two-column-page.component';\nimport { TwoColumnTabComponent } from '../../_components/template/two-column-tab/two-column-tab.component';\nimport { WideNarrowFormComponent } from '../../_components/template/wide-narrow-form/wide-narrow-form.component';\nimport { WideNarrowPageComponent } from '../../_components/template/wide-narrow-page/wide-narrow-page.component';\nimport { WssNavBarComponent } from '../../_components/template/wss-nav-bar/wss-nav-bar.component';\n\n// Widget components\nimport { AppAnnouncementComponent } from '../../_components/widget/app-announcement/app-announcement.component';\nimport { AttachmentComponent } from '../../_components/widget/attachment/attachment.component';\nimport { CaseHistoryComponent } from '../../_components/widget/case-history/case-history.component';\nimport { FileUtilityComponent } from '../../_components/widget/file-utility/file-utility.component';\nimport { FeedContainerComponent } from '../../_components/widget/feed-container/feed-container.component';\nimport { ListUtilityComponent } from '../../_components/widget/list-utility/list-utility.component';\nimport { QuickCreateComponent } from '../../_components/widget/quick-create/quick-create.component';\nimport { TodoComponent } from '../../_components/widget/todo/todo.component';\n\n// Design System components\nimport { AlertBannerComponent } from '../../_components/designSystemExtension/alert-banner/alert-banner.component';\nimport { AlertComponent } from '../../_components/designSystemExtension/alert/alert.component';\nimport { BannerComponent } from '../../_components/designSystemExtension/banner/banner.component';\nimport { CaseCreateStageComponent } from '../../_components/designSystemExtension/case-create-stage/case-create-stage.component';\nimport { FieldGroupComponent } from '../../_components/designSystemExtension/field-group/field-group.component';\nimport { MaterialCaseSummaryComponent } from '../../_components/designSystemExtension/material-case-summary/material-case-summary.component';\nimport { MaterialDetailsComponent } from '../../_components/designSystemExtension/material-details/material-details.component';\nimport { MaterialDetailsFieldsComponent } from '../../_components/designSystemExtension/material-details-fields/material-details-fields.component';\nimport { MaterialSummaryItemComponent } from '../../_components/designSystemExtension/material-summary-item/material-summary-item.component';\nimport { MaterialSummaryListComponent } from '../../_components/designSystemExtension/material-summary-list/material-summary-list.component';\nimport { MaterialUtilityComponent } from '../../_components/designSystemExtension/material-utility/material-utility.component';\nimport { MaterialVerticalTabsComponent } from '../../_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component';\nimport { OperatorComponent } from '../../_components/designSystemExtension/operator/operator.component';\nimport { PulseComponent } from '../../_components/designSystemExtension/pulse/pulse.component';\nimport { RichTextEditorComponent } from '../../_components/designSystemExtension/rich-text-editor/rich-text-editor.component';\nimport { WssQuickCreateComponent } from '../../_components/designSystemExtension/wss-quick-create/wss-quick-create.component';\n\n// pegaSdkComponentMap is the JSON object where we'll store the components that are\n// the default implementations provided by the SDK. These will be used if there isn't\n// an entry in the localSdkComponentMap\n\n// NOTE: A few components have non-standard capitalization:\n//  'reference' is what's in the metadata, not Reference\n//  'Todo' is what's in the metadata, not ToDo\n//  Also, note that \"Checkbox\" component is named/exported as CheckboxComponent\n\nconst pegaSdkComponentMap = {\n  AdvancedSearch: AdvancedSearchComponent,\n  ActionButtons: ActionButtonsComponent,\n  Alert: AlertComponent,\n  AlertBanner: AlertBannerComponent,\n  //   'ActionButtonsForFileUtil': ActionButtonsForFileUtil,\n  AppAnnouncement: AppAnnouncementComponent,\n  AppShell: AppShellComponent,\n  Assignment: AssignmentComponent,\n  AssignmentCard: AssignmentCardComponent,\n  Attachment: AttachmentComponent,\n  AutoComplete: AutoCompleteComponent,\n  Banner: BannerComponent,\n  BannerPage: BannerPageComponent,\n  CancelAlert: CancelAlertComponent,\n  CaseCreateStage: CaseCreateStageComponent,\n  CaseHistory: CaseHistoryComponent,\n  CaseSummary: CaseSummaryComponent,\n  CaseSummaryFields: MaterialCaseSummaryComponent,\n  CaseView: CaseViewComponent,\n  //   'CaseViewActionsMenu': CaseViewActionsMenu,\n  Checkbox: CheckBoxComponent,\n  Confirmation: ConfirmationComponent,\n  Currency: CurrencyComponent,\n  DashboardFilter: DashboardFilterComponent,\n  DataReference: DataReferenceComponent,\n  Date: DateComponent,\n  DateTime: DateTimeComponent,\n  Decimal: DecimalComponent,\n  DefaultForm: DefaultFormComponent,\n  DefaultPage: DefaultPageComponent,\n  DeferLoad: DeferLoadComponent,\n  Details: DetailsComponent,\n  DetailsFields: MaterialDetailsFieldsComponent,\n  DetailsOneColumn: DetailsOneColumnComponent,\n  DetailsSubTabs: DetailsSubTabsComponent,\n  DetailsThreeColumn: DetailsThreeColumnComponent,\n  DetailsTwoColumn: DetailsTwoColumnComponent,\n  Dropdown: DropdownComponent,\n  DynamicTabs: DynamicTabsComponent,\n  Email: EmailComponent,\n  ErrorBoundary: ErrorBoundaryComponent,\n  FeedContainer: FeedContainerComponent,\n  FieldGroup: FieldGroupComponent,\n  FieldGroupList: FieldGroupListComponent,\n  FieldGroupTemplate: FieldGroupTemplateComponent,\n  FieldValueList: FieldValueListComponent,\n  FileUtility: FileUtilityComponent,\n  FlowContainer: FlowContainerComponent,\n  Group: GroupComponent,\n  //   'Followers': Followers,\n  InlineDashboard: InlineDashboardComponent,\n  InlineDashboardPage: InlineDashboardPageComponent,\n  Integer: IntegerComponent,\n  //   'LeftAlignVerticalTabs': LeftAlignVerticalTabs,\n  ListPage: ListPageComponent,\n  ListUtility: ListUtilityComponent,\n  ListView: ListViewComponent,\n  ListViewActionButtons: ListViewActionButtonsComponent,\n  Location: LocationComponent,\n  MaterialDetails: MaterialDetailsComponent,\n  MaterialUtility: MaterialUtilityComponent,\n  ModalViewContainer: ModalViewContainerComponent,\n  MultiReferenceReadOnly: MultiReferenceReadonlyComponent,\n  Multiselect: MultiselectComponent,\n  MultiStep: MultiStepComponent,\n  //   'NarrowWide': NarrowWideFormComponent,\n  NarrowWideDetails: DetailsNarrowWideComponent,\n  NarrowWideForm: NarrowWideFormComponent,\n  //   'NarrowWidePage': NarrowWidePage,\n  NavBar: NavbarComponent,\n  ObjectPage: ObjectPageComponent,\n  ObjectReference: ObjectReferenceComponent,\n  OneColumn: OneColumnComponent,\n  OneColumnPage: OneColumnPageComponent,\n  OneColumnTab: OneColumnTabComponent,\n  Operator: OperatorComponent,\n  Page: PageComponent,\n  Percentage: PercentageComponent,\n  Phone: PhoneComponent,\n  PromotedFilters: PromotedFiltersComponent,\n  Pulse: PulseComponent,\n  QuickCreate: QuickCreateComponent,\n  reference: ReferenceComponent,\n  RadioButtons: RadioButtonsComponent,\n  Region: RegionComponent,\n  RichText: RichTextComponent,\n  RichTextEditor: RichTextEditorComponent,\n  RootContainer: RootContainerComponent,\n  ScalarList: ScalarListComponent,\n  SearchForm: SearchFormComponent,\n  SearchGroups: SearchGroupsComponent,\n  SelectableCard: SelectableCardComponent,\n  SelfServiceCaseView: SelfServiceCaseViewComponent,\n  SemanticLink: SemanticLinkComponent,\n  SimpleTable: SimpleTableComponent,\n  SimpleTableManual: SimpleTableManualComponent,\n  SimpleTableSelect: SimpleTableSelectComponent,\n  SingleReferenceReadOnly: SingleReferenceReadonlyComponent,\n  Stages: StagesComponent,\n  SubTabs: SubTabsComponent,\n  SummaryItem: MaterialSummaryItemComponent,\n  SummaryList: MaterialSummaryListComponent,\n  Text: TextComponent,\n  TextArea: TextAreaComponent,\n  TextContent: TextContentComponent,\n  TextInput: TextInputComponent,\n  ThreeColumn: ThreeColumnComponent,\n  ThreeColumnPage: ThreeColumnPageComponent,\n  Time: TimeComponent,\n  Todo: TodoComponent,\n  TwoColumn: TwoColumnComponent,\n  TwoColumnPage: TwoColumnPageComponent,\n  TwoColumnTab: TwoColumnTabComponent,\n  URL: UrlComponent,\n  UserReference: UserReferenceComponent,\n  VerticalTabs: MaterialVerticalTabsComponent,\n  View: ViewComponent,\n  ViewContainer: ViewContainerComponent,\n  //   'WideNarrow': WideNarrow,\n  WideNarrowDetails: DetailsWideNarrowComponent,\n  WideNarrowForm: WideNarrowFormComponent,\n  WideNarrowPage: WideNarrowPageComponent,\n  WssNavBar: WssNavBarComponent,\n  WssQuickCreate: WssQuickCreateComponent\n};\n\nexport default pegaSdkComponentMap;\n","// Helper singleton class to assist with loading and\n//  accessing the SDK components\n// import localSdkComponentMap from '../../../sdk-local-component-map';\nimport pegaSdkComponentMap from './sdk-pega-component-map';\n\n// Statically load all \"local\" components\n\n// Create a singleton for this class (with async loading of components map file) and export it\n// Note: Initializing SdkComponentMap to null seems to cause lots of compile issues with references\n//  within other components and the value potentially being null (so try to leave it undefined)\n\nexport let SdkComponentMap;\nlet SdkComponentMapCreateInProgress = false;\n\ninterface ISdkComponentMap {\n  localComponentMap: object;\n  pegaProvidedComponentMap: object;\n}\n\nclass ComponentMap {\n  sdkComponentMap: ISdkComponentMap; // Top level object\n  isComponentMapLoaded: boolean;\n\n  constructor() {\n    // sdkComponentMap is top-level object\n    this.sdkComponentMap = { localComponentMap: {}, pegaProvidedComponentMap: {} };\n\n    // isCoComponentMapLoaded will be updated to true after the async load is complete\n    this.isComponentMapLoaded = false;\n\n    // pegaSdkComponents.local is the JSON object where we'll store the components that are\n    // found locally or can be found in the Pega-provided repo\n    this.sdkComponentMap.localComponentMap = {};\n\n    this.sdkComponentMap.pegaProvidedComponentMap = {};\n\n    // The \"work\" to load the config file is done (asynchronously) via the initialize\n    //  (Factory function) below)\n  }\n\n  /**\n   * Asynchronous initialization of the config file contents.\n   * @returns Promise of config file fetch\n   */\n  async readSdkComponentMap(inLocalSdkComponentMap = {}) {\n    return new Promise(resolve => {\n      if (\n        Object.keys(this.sdkComponentMap.localComponentMap).length === 0 &&\n        Object.keys(this.sdkComponentMap.pegaProvidedComponentMap).length === 0\n      ) {\n        const theLocalCompPromise = this.readLocalSdkComponentMap(inLocalSdkComponentMap);\n        const thePegaCompPromise = this.readPegaSdkComponentMap(pegaSdkComponentMap);\n\n        Promise.all([theLocalCompPromise, thePegaCompPromise])\n          .then((/* results */) => {\n            resolve(this.sdkComponentMap);\n          })\n          .catch(error => {\n            console.error(`Error in readSdkComponentMap: ${error}`);\n          });\n      } else {\n        resolve(this.sdkComponentMap);\n      }\n    });\n  }\n\n  async readLocalSdkComponentMap(inLocalSdkComponentMap = {}) {\n    // debugger;\n    if (Object.entries(this.getLocalComponentMap()).length === 0) {\n      this.sdkComponentMap.localComponentMap = inLocalSdkComponentMap;\n    }\n    return Promise.resolve(this);\n  }\n\n  async readPegaSdkComponentMap(inPegaSdkComponentMap = {}) {\n    // debugger;\n    if (Object.entries(this.getPegaProvidedComponentMap()).length === 0) {\n      this.sdkComponentMap.pegaProvidedComponentMap = inPegaSdkComponentMap;\n    }\n    return Promise.resolve(this);\n  }\n\n  getLocalComponentMap = () => {\n    return this.sdkComponentMap.localComponentMap;\n  };\n\n  setLocalComponentMap(inLocalSdkComponentMap) {\n    this.sdkComponentMap.localComponentMap = inLocalSdkComponentMap;\n    return this.sdkComponentMap.localComponentMap;\n  }\n\n  getPegaProvidedComponentMap = () => {\n    return this.sdkComponentMap.pegaProvidedComponentMap;\n  };\n\n  setPegaProvidedComponentMap = inPegaProvidedComponentMap => {\n    this.sdkComponentMap.pegaProvidedComponentMap = inPegaProvidedComponentMap;\n    return this.sdkComponentMap.pegaProvidedComponentMap;\n  };\n}\n\n// Implement Factory function to allow async load\n//  See https://stackoverflow.com/questions/49905178/asynchronous-operations-in-constructor/49906064#49906064 for inspiration\nasync function createSdkComponentMap(inLocalComponentMap = {}) {\n  // Note that our initialize function returns a promise...\n  const singleton = new ComponentMap();\n  await singleton.readSdkComponentMap(inLocalComponentMap);\n  return singleton;\n}\n\n// Initialize exported SdkComponentMap structure\nexport async function getSdkComponentMap(inLocalComponentMap = {}) {\n  return new Promise(resolve => {\n    let idNextCheck;\n    if (!SdkComponentMap && !SdkComponentMapCreateInProgress) {\n      SdkComponentMapCreateInProgress = true;\n      createSdkComponentMap(inLocalComponentMap).then(theComponentMap => {\n        // debugger;\n        // Key initialization of SdkComponentMap\n        SdkComponentMap = theComponentMap;\n        SdkComponentMapCreateInProgress = false;\n        console.log(`getSdkComponentMap: created SdkComponentMap singleton`);\n        // Create and dispatch the SdkConfigAccessReady event\n        //  Not used anyplace yet but putting it in place in case we need it.\n        const event = new CustomEvent('SdkComponentMapReady', {});\n        document.dispatchEvent(event);\n        return resolve(SdkComponentMap /* .sdkComponentMap */);\n      });\n    } else {\n      const fnCheckForConfig = () => {\n        if (SdkComponentMap) {\n          if (idNextCheck) {\n            clearInterval(idNextCheck);\n          }\n          return resolve(SdkComponentMap.sdkComponentMap);\n        }\n        idNextCheck = setInterval(fnCheckForConfig, 500);\n      };\n      if (SdkComponentMap) {\n        return resolve(SdkComponentMap.sdkComponentMap);\n      }\n      idNextCheck = setInterval(fnCheckForConfig, 500);\n    }\n  });\n}\n\nexport function getComponentFromMap(inComponentName: string): any {\n  let theComponentImplementation = null;\n  const theLocalComponent = SdkComponentMap.getLocalComponentMap()[inComponentName];\n  if (theLocalComponent !== undefined) {\n    console.log(`Requested component found ${inComponentName}: Local`);\n    theComponentImplementation = theLocalComponent;\n  } else {\n    const thePegaProvidedComponent = SdkComponentMap.getPegaProvidedComponentMap()[inComponentName];\n    if (thePegaProvidedComponent !== undefined) {\n      // console.log(`Requested component found ${inComponentName}: Pega-provided`);\n      theComponentImplementation = thePegaProvidedComponent;\n    } else {\n      console.error(`Requested component has neither Local nor Pega-provided implementation: ${inComponentName}`);\n      theComponentImplementation = getComponentFromMap('ErrorBoundary');\n    }\n  }\n  return theComponentImplementation;\n}\n","import { Component, ComponentRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { getComponentFromMap } from '../helpers/sdk_component_map';\nimport { ErrorBoundaryComponent } from '../../_components/infra/error-boundary/error-boundary.component';\n\nconst componentsRequireDisplayOnlyFAProp: string[] = ['HybridViewContainer', 'ModalViewContainer', 'ViewContainer', 'RootContainer', 'View'];\n\n@Component({\n  selector: 'component-mapper',\n  templateUrl: './component-mapper.component.html',\n  styleUrls: ['./component-mapper.component.scss'],\n  imports: [CommonModule]\n})\nexport class ComponentMapperComponent implements OnInit, OnDestroy, OnChanges {\n  @ViewChild('dynamicComponent', { read: ViewContainerRef, static: true })\n  public dynamicComponent: ViewContainerRef | undefined;\n\n  public componentRef: ComponentRef<any> | undefined;\n  public isInitialized = false;\n\n  @Input() name?: string = '';\n  @Input() props: any;\n  @Input() errorMsg = '';\n  @Input() outputEvents: any;\n  // parent prop is compulsory when outputEvents is present\n  @Input() parent: any;\n\n  ngOnInit(): void {\n    this.loadComponent();\n    this.isInitialized = true;\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const { name } = changes;\n    if (name) {\n      const { previousValue, currentValue } = name;\n      if (previousValue && previousValue !== currentValue) {\n        this.loadComponent();\n      }\n    } else if (this.isInitialized) {\n      this.bindInputProps();\n    }\n  }\n\n  loadComponent() {\n    const component = getComponentFromMap(this.name || '');\n\n    if (this.dynamicComponent) {\n      this.dynamicComponent.clear();\n      this.componentRef = this.dynamicComponent.createComponent(component);\n\n      if (component === ErrorBoundaryComponent) {\n        this.componentRef.instance.message = this.errorMsg;\n      } else {\n        this.bindInputProps();\n        this.bindOutputEvents();\n      }\n    }\n  }\n\n  bindInputProps() {\n    try {\n      if (this.props) {\n        const propsKeys = Object.keys(this.props);\n        const propsValues = Object.values(this.props);\n        for (let i = 0; i < propsKeys.length; i++) {\n          if (propsValues[i] !== undefined) {\n            // We'll set 'displayOnlyFA$' prop only to the components which really need it\n            // Eventual plan is to get rid of this particular prop\n            if (propsKeys[i] === 'displayOnlyFA$' && !componentsRequireDisplayOnlyFAProp.includes(this.name || '')) {\n              continue;\n            }\n            this.componentRef?.setInput(propsKeys[i], propsValues[i]);\n          }\n        }\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  bindOutputEvents() {\n    try {\n      if (this.outputEvents) {\n        const propsKeys = Object.keys(this.outputEvents);\n        const propsValues: any = Object.values(this.outputEvents);\n        for (let i = 0; i < propsKeys.length; i++) {\n          this.componentRef?.instance[propsKeys[i]].subscribe(value => {\n            const callbackFn = propsValues[i].bind(this.parent);\n            callbackFn(value);\n          });\n        }\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.componentRef) {\n      this.componentRef.destroy();\n    }\n  }\n}\n","<ng-container #dynamicComponent></ng-container>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormGroup } from '@angular/forms';\n\n/**\n * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.\n * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.\n */\n\n// Right this is a skeleton, as Hybrid ViewContainer hasn't been implemented\n\n@Component({\n  selector: 'app-hybrid-view-container',\n  templateUrl: './hybrid-view-container.component.html',\n  styleUrls: ['./hybrid-view-container.component.scss'],\n  imports: [CommonModule]\n})\nexport class HybridViewContainerComponent {\n  @Input() pConn$: typeof PConnect;\n  @Input() formGroup$: FormGroup;\n  @Input() displayOnlyFA$: boolean;\n}\n","<p>hybrid-view-container works!</p>\n","import { Component, OnInit, Input, ViewChild, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';\nimport { Utils } from '../../../_helpers/utils';\n\ninterface RepeatingStructuresProps {\n  referenceList?: any[];\n  rowClickAction?: string;\n}\n\n@Component({\n  selector: 'app-repeating-structures',\n  templateUrl: './repeating-structures.component.html',\n  styleUrls: ['./repeating-structures.component.scss'],\n  imports: [CommonModule, MatFormFieldModule, MatIconModule, MatInputModule, MatTableModule, MatSortModule, MatPaginatorModule]\n})\nexport class RepeatingStructuresComponent implements OnInit, AfterViewInit {\n  @ViewChild(MatPaginator) paginator: MatPaginator;\n  @ViewChild(MatSort) sort: MatSort;\n  @Input() pConn$: typeof PConnect;\n\n  configProps$: RepeatingStructuresProps;\n  repeatList$: MatTableDataSource<any>;\n  fields$: any[];\n  displayedColumns$ = Array<string>();\n\n  constructor(\n    private psService: ProgressSpinnerService,\n    private utils: Utils\n  ) {}\n\n  ngOnInit(): void {\n    const componentConfig = (this.pConn$.getRawMetadata() as any).config || { fields: [] };\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());\n    this.fields$ = this.initializeColumns(componentConfig.fields);\n\n    const refList: any = this.configProps$.referenceList;\n    const tableDataResults = JSON.parse(JSON.stringify(this.pConn$.getValue(refList)));\n\n    // update elements like date format\n    const updatedRefList = this.updateData(tableDataResults, this.fields$);\n\n    this.repeatList$ = new MatTableDataSource(updatedRefList);\n    this.displayedColumns$ = this.getDisplayColumns(this.fields$);\n    this.repeatList$.paginator = this.paginator;\n  }\n\n  ngAfterViewInit() {\n    // paginator has to exist for this to work,\n    // so called after init (paginator drawn)\n    this.repeatList$.paginator = this.paginator;\n    this.repeatList$.sort = this.sort;\n  }\n\n  applySearch(event: Event) {\n    const filterValue = (event.target as HTMLInputElement).value;\n    this.repeatList$.filter = filterValue.trim().toLowerCase();\n\n    if (this.repeatList$.paginator) {\n      this.repeatList$.paginator.firstPage();\n    }\n  }\n\n  rowClick(row) {\n    switch (this.configProps$.rowClickAction) {\n      case 'openAssignment':\n        this.psService.sendMessage(true);\n        this.openAssignment(row);\n        break;\n      default:\n        break;\n    }\n  }\n\n  updateData(listData: any[], fieldData: any[]): any[] {\n    const returnList: any[] = new Array<any>();\n    listData.forEach(row => {\n      // copy\n      const rowData = JSON.parse(JSON.stringify(listData[row]));\n\n      for (let fieldIndex = 0; fieldIndex < fieldData.length; fieldIndex++) {\n        if (fieldData[fieldIndex].type == 'date') {\n          const fieldName = fieldData[fieldIndex].name;\n          const formattedDate = rowData[fieldName];\n\n          // format date\n          // formattedDate = formattedDate.replace(\"GMT\", \"+0000\");\n          this.utils.generateDateTime(formattedDate, 'MMMM D, YYYY h:mm:ss A');\n\n          // update\n          rowData[fieldName] = formattedDate;\n        }\n      }\n      returnList.push(rowData);\n    });\n    return returnList;\n  }\n\n  openAssignment(row) {\n    const { pxRefObjectClass, pzInsKey } = row;\n    const sTarget = this.pConn$.getContainerName();\n    const options = { containerName: sTarget };\n    this.pConn$\n      .getActionsApi()\n      .openAssignment(pzInsKey, pxRefObjectClass, options)\n      .then(() => {});\n  }\n\n  initializeData(data) {\n    data.forEach((item, idx) => {\n      item.__original_index = idx;\n      item.__level = 1;\n    });\n\n    return data;\n  }\n\n  getType(field) {\n    const { config = {}, type } = field;\n    const { formatType } = config;\n    if (formatType === 'datetime' || formatType === 'date') {\n      // currently cosmos has only support for date ... it also need to support dateTime\n      return 'date';\n    }\n    return type.toLowerCase();\n  }\n\n  initializeColumns(fields = []) {\n    return fields.map((field: any, originalColIndex) => ({\n      ...field,\n      type: this.getType(field),\n      name: field.config.value.substring(4),\n      label: field.config.label.substring(3),\n      id: originalColIndex,\n      groupingEnabled: true,\n      grouped: false,\n      minWidth: 50,\n      cellRenderer: this.getType(field) === 'text' ? null : field.type,\n      filter: true\n    }));\n  }\n\n  getDisplayColumns(fields: any[] = []): string[] {\n    return fields.map((field: any) => field.name);\n  }\n}\n","<div>\n  <mat-form-field class=\"psdk-search\">\n    <mat-label\n      ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n      Search</mat-label\n    >\n    <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n  </mat-form-field>\n\n  <table mat-table [dataSource]=\"repeatList$\" matSort>\n    <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n      <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n      <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n    </ng-container>\n\n    <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n    <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n  </table>\n\n  <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n","import { Component, OnInit, Input, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { Utils } from '../../../_helpers/utils';\nimport { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';\n\ninterface UtilityProps {\n  // If any, enter additional props that only exist on this component\n  headerIcon?: string;\n  headerText?: string;\n  noItemsMessage?: string;\n}\n\n@Component({\n  selector: 'app-utility',\n  templateUrl: './utility.component.html',\n  styleUrls: ['./utility.component.scss'],\n  imports: [forwardRef(() => ComponentMapperComponent)]\n})\nexport class UtilityComponent implements OnInit, OnChanges {\n  @Input() pConn$: typeof PConnect;\n\n  configProps$: UtilityProps;\n  headerIcon$?: string;\n  headerText$?: string;\n  headerIconUrl$?: string;\n  noItemsMessage$?: string;\n\n  constructor(private utils: Utils) {}\n\n  ngOnInit(): void {\n    this.updateSelf();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { pConn$ } = changes;\n\n    if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {\n      this.updateSelf();\n    }\n  }\n\n  updateSelf() {\n    this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as UtilityProps;\n\n    this.headerIcon$ = this.configProps$.headerIcon;\n    this.headerIconUrl$ = this.utils.getSDKStaticContentUrl();\n    this.headerText$ = this.configProps$.headerText;\n    this.noItemsMessage$ = this.configProps$.noItemsMessage;\n  }\n}\n","<component-mapper name=\"MaterialUtility\" [props]=\"{ headerText$, headerIcon$, headerIconUrl$, noItemsMessage$ }\"></component-mapper>\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n  selector: '[appThousandSeparator]',\n  standalone: true\n})\nexport class ThousandSeparatorDirective {\n  constructor(private el: ElementRef) {}\n\n  @HostListener('input', ['$event'])\n  onInput(event) {\n    const input = this.el.nativeElement as HTMLInputElement;\n    let value = input.value.replace(/,/g, ''); // Remove existing commas\n    if (event?.data !== '.') {\n      value = Number(value).toLocaleString(); // Add thousands separator\n      input.value = value;\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { endpoints } from './endpoints';\nimport { ServerConfigService } from './server-config.service';\nimport { Utils } from '../_helpers/utils';\n\n@Injectable()\nexport class CaseService {\n  constructor(\n    private http: HttpClient,\n    private scService: ServerConfigService\n  ) {}\n\n  caseTypeUrl: string;\n  // caseTypeUrl = endpoints.BASEURL + endpoints.CASETYPES;\n\n  // get a list of possible case types to create\n  getCaseTypes() {\n    const caseParams = new HttpParams();\n    let caseHeaders = new HttpHeaders();\n\n    this.caseTypeUrl = this.scService.getBaseUrl() + endpoints.API + endpoints.CASETYPES;\n\n    caseHeaders = caseHeaders.append('Authorization', Utils.sdkGetAuthHeader());\n\n    caseHeaders = caseHeaders.append('Content-Type', 'application/json');\n\n    return this.http.get(this.caseTypeUrl, { observe: 'response', params: caseParams, headers: caseHeaders });\n  }\n}\n","/**\n * versionHelpers.ts\n *\n * Container helper functions that can identify which version of\n * PCore/PConnect is being run\n */\n\nexport const sdkVersion = '8.7';\n\nexport function compareSdkPCoreVersions() {\n  // const theConstellationVersion = PCore.getPCoreVersion();\n  console.warn(`Using Constellation version ${PCore.getPCoreVersion()}. Ensure this is the same version as your Infinity server.`);\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UpdateWorklistService {\n  private subject = new Subject<void | object>();\n\n  /**\n   * Function signals to update Work list\n   * @param bUpdate - true: update worklist, false - do nothing\n   */\n  sendMessage(bUpdate: boolean) {\n    this.subject.next({ update: bUpdate });\n  }\n\n  clearMessage() {\n    this.subject.next();\n  }\n\n  getMessage(): Observable<any> {\n    return this.subject.asObservable();\n  }\n}\n","/*\n * Public API Surface of angular-sdk-components\n */\n\nexport * from './sdk-local-component-map';\n\nexport * from './lib/_bridge/component-mapper/component-mapper.component';\nexport * from './lib/_bridge/helpers/sdk_component_map';\nexport * from './lib/_bridge/angular-pconnect';\n\nexport * from './lib/_components/field/field.base';\n\nexport * from './lib/_components/field/auto-complete/auto-complete.component';\nexport * from './lib/_components/field/cancel-alert/cancel-alert.component';\nexport * from './lib/_components/field/check-box/check-box.component';\nexport * from './lib/_components/field/currency/currency.component';\nexport * from './lib/_components/field/date-time/date-time.component';\nexport * from './lib/_components/field/date/date.component';\nexport * from './lib/_components/field/decimal/decimal.component';\nexport * from './lib/_components/field/dropdown/dropdown.component';\nexport * from './lib/_components/field/email/email.component';\nexport * from './lib/_components/field/integer/integer.component';\nexport * from './lib/_components/field/object-reference/object-reference.component';\nexport * from './lib/_components/field/percentage/percentage.component';\nexport * from './lib/_components/field/phone/phone.component';\nexport * from './lib/_components/field/radio-buttons/radio-buttons.component';\nexport * from './lib/_components/field/rich-text/rich-text.component';\nexport * from './lib/_components/field/semantic-link/semantic-link.component';\nexport * from './lib/_components/field/text/text.component';\nexport * from './lib/_components/field/text-area/text-area.component';\nexport * from './lib/_components/field/text-content/text-content.component';\nexport * from './lib/_components/field/text-input/text-input.component';\nexport * from './lib/_components/field/time/time.component';\nexport * from './lib/_components/field/url/url.component';\nexport * from './lib/_components/field/user-reference/user-reference.component';\n\nexport * from './lib/_components/infra/action-buttons/action-buttons.component';\nexport * from './lib/_components/infra/assignment/assignment.component';\nexport * from './lib/_components/infra/assignment-card/assignment-card.component';\nexport * from './lib/_components/infra/Containers/flow-container/flow-container.component';\nexport * from './lib/_components/infra/Containers/flow-container/helpers';\nexport * from './lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component';\nexport * from './lib/_components/infra/Containers/modal-view-container/modal-view-container.component';\nexport * from './lib/_components/infra/Containers/preview-view-container/preview-view-container.component';\nexport * from './lib/_components/infra/Containers/view-container/view-container.component';\nexport * from './lib/_components/infra/dashboard-filter/dashboard-filter.component';\nexport * from './lib/_components/infra/defer-load/defer-load.component';\nexport * from './lib/_components/infra/error-boundary/error-boundary.component';\nexport * from './lib/_components/infra/multi-step/multi-step.component';\nexport * from './lib/_components/infra/navbar/navbar.component';\nexport * from './lib/_components/infra/reference/reference.component';\nexport * from './lib/_components/infra/region/region.component';\nexport * from './lib/_components/infra/root-container/root-container.component';\nexport * from './lib/_components/infra/stages/stages.component';\nexport * from './lib/_components/infra/view/view.component';\nexport * from './lib/_components/infra/Containers/base-components/flow-container-base.component';\n\nexport * from './lib/_components/template/advanced-search/search-group/persist-utils';\nexport * from './lib/_components/template/advanced-search/search-groups/utils';\nexport * from './lib/_components/template/app-shell/app-shell.component';\nexport * from './lib/_components/template/base/form-template-base';\nexport * from './lib/_components/template/base/details-template-base';\nexport * from './lib/_components/template/case-summary/case-summary.component';\nexport * from './lib/_components/template/case-view/case-view.component';\nexport * from './lib/_components/template/confirmation/confirmation.component';\nexport * from './lib/_components/template/data-reference/data-reference.component';\nexport * from './lib/_components/template/data-reference/search-form/tabsData';\nexport * from './lib/_components/template/data-reference/search-form/search-form.component';\nexport * from './lib/_components/template/data-reference/utils';\nexport * from './lib/_components/template/default-form/default-form.component';\nexport * from './lib/_components/template/details/details.component';\nexport * from './lib/_components/template/details-narrow-wide/details-narrow-wide.component';\nexport * from './lib/_components/template/details-one-column/details-one-column.component';\nexport * from './lib/_components/template/details-sub-tabs/details-sub-tabs.component';\nexport * from './lib/_components/template/details-three-column/details-three-column.component';\nexport * from './lib/_components/template/details-two-column/details-two-column.component';\nexport * from './lib/_components/template/details-wide-narrow/details-wide-narrow.component';\nexport * from './lib/_components/template/field-group-list/field-group-list.component';\nexport * from './lib/_components/template/field-group-template/field-group-template.component';\nexport * from './lib/_components/template/field-value-list/field-value-list.component';\nexport * from './lib/_components/template/inline-dashboard/inline-dashboard.component';\nexport * from './lib/_components/template/inline-dashboard-page/inline-dashboard-page.component';\nexport * from './lib/_components/template/list-page/list-page.component';\nexport * from './lib/_components/template/list-view/list-view.component';\nexport * from './lib/_components/template/multi-reference-readonly/multi-reference-readonly.component';\nexport * from './lib/_components/template/narrow-wide-form/narrow-wide-form.component';\nexport * from './lib/_components/template/object-page/object-page.component';\nexport * from './lib/_components/template/one-column/one-column.component';\nexport * from './lib/_components/template/one-column-page/one-column-page.component';\nexport * from './lib/_components/template/one-column-tab/one-column-tab.component';\nexport * from './lib/_components/template/page/page.component';\nexport * from './lib/_components/template/promoted-filters/promoted-filters.component';\nexport * from './lib/_components/template/repeating-structures/repeating-structures.component';\nexport * from './lib/_components/template/simple-table/simple-table.component';\nexport * from './lib/_components/template/simple-table-manual/helpers';\nexport * from './lib/_components/template/simple-table-manual/simple-table-manual.component';\nexport * from './lib/_components/template/simple-table-select/simple-table-select.component';\nexport * from './lib/_components/template/single-reference-readonly/single-reference-readonly.component';\nexport * from './lib/_components/template/sub-tabs/sub-tabs.component';\nexport * from './lib/_components/template/three-column/three-column.component';\nexport * from './lib/_components/template/three-column-page/three-column-page.component';\nexport * from './lib/_components/template/two-column/two-column.component';\nexport * from './lib/_components/template/two-column-page/two-column-page.component';\nexport * from './lib/_components/template/two-column-tab/two-column-tab.component';\nexport * from './lib/_components/template/wide-narrow-form/wide-narrow-form.component';\nexport * from './lib/_components/template/wide-narrow-page/wide-narrow-page.component';\nexport * from './lib/_components/template/utils';\n\nexport * from './lib/_components/widget/app-announcement/app-announcement.component';\nexport * from './lib/_components/widget/attachment/attachment.component';\nexport * from './lib/_components/widget/case-history/case-history.component';\nexport * from './lib/_components/widget/feed-container/feed-container.component';\nexport * from './lib/_components/widget/file-utility/file-utility.component';\nexport * from './lib/_components/widget/list-utility/list-utility.component';\nexport * from './lib/_components/widget/todo/todo.component';\nexport * from './lib/_components/widget/utility/utility.component';\n\nexport * from './lib/_components/designSystemExtension/alert/alert.component';\nexport * from './lib/_components/designSystemExtension/alert-banner/alert-banner.component';\nexport * from './lib/_components/designSystemExtension/case-create-stage/case-create-stage.component';\nexport * from './lib/_components/designSystemExtension/material-case-summary/material-case-summary.component';\nexport * from './lib/_components/designSystemExtension/material-details/material-details.component';\nexport * from './lib/_components/designSystemExtension/material-details-fields/material-details-fields.component';\nexport * from './lib/_components/designSystemExtension/material-summary-item/material-summary-item.component';\nexport * from './lib/_components/designSystemExtension/material-summary-list/material-summary-list.component';\nexport * from './lib/_components/designSystemExtension/material-utility/material-utility.component';\nexport * from './lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component';\nexport * from './lib/_components/designSystemExtension/operator/operator.component';\nexport * from './lib/_components/designSystemExtension/pulse/pulse.component';\nexport * from './lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component';\n\nexport * from './lib/_directives/thousand-seperator.directive';\n\nexport * from './lib/_services/banner.service';\nexport * from './lib/_services/case.service';\nexport * from './lib/_services/datapage.service';\nexport * from './lib/_services/endpoints';\nexport * from './lib/_services/google-maps-loader.service';\nexport * from './lib/_services/server-config.service';\nexport * from './lib/_services/data-reference-advanced-search.service';\n\nexport * from './lib/_helpers/case-utils';\nexport * from './lib/_helpers/common';\nexport * from './lib/_helpers/createstage-utils';\nexport * from './lib/_helpers/currency-utils';\nexport * from './lib/_helpers/date-format-utils';\nexport * from './lib/_helpers/event-util';\nexport * from './lib/_helpers/field-group-utils';\nexport * from './lib/_helpers/filter-utils';\nexport * from './lib/_helpers/formatters/boolean';\nexport * from './lib/_helpers/formatters/currency';\nexport * from './lib/_helpers/formatters/currency-map';\nexport * from './lib/_helpers/formatters/date';\nexport * from './lib/_helpers/formatters/format-utils';\nexport * from './lib/_helpers/formatters/index';\nexport * from './lib/_helpers/instructions-utils';\nexport * from './lib/_helpers/objectReference-utils';\nexport * from './lib/_helpers/semanticLink-utils';\nexport * from './lib/_helpers/tab-utils';\nexport * from './lib/_helpers/template-utils';\nexport * from './lib/_helpers/utils';\nexport * from './lib/_helpers/versionHelpers';\nexport * from './lib/_helpers/object-utils';\n\nexport * from './lib/_messages/error-messages.service';\nexport * from './lib/_messages/progress-spinner.service';\nexport * from './lib/_messages/update-worklist.service';\n\nexport * from './lib/_types/PConnProps.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.ServerConfigService","i1.ProgressSpinnerService","i2.ErrorMessagesService","i3.Utils","i1.AngularPConnectService","i2.ProgressSpinnerService","i3.ErrorMessagesService","i5.BannerService","i6","uuidv4","i3","i4","i5","i1.Utils","i2.Utils","i1","i2.ServerConfigService","isSelfReferencedProperty","getLocale","getCurrentTimezone","NumberFormatter","CurrencyFormatter","SymbolFormatter","Boolean","preProcessColumns","getDisplayFieldsMetaData","debounceTime","i7","i9","getMappedKey","getCompositeKeys","startWith","map","i8","i1.DataReferenceAdvancedSearchService","i4.Utils","SELECTION_MODE","i2.DataReferenceAdvancedSearchService","i2.TemplateUtils","getContext","getConfigFields","isFLProperty","getFieldLabel","Group","i10","i11","i12","i13","i15","i16","i3.DatapageService","getMappedValue"],"mappings":"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"}