@hmcts/opal-frontend-common 0.0.65 → 0.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-CWImMW7J.mjs → hmcts-opal-frontend-common-access-denied.component-w1dJPEXZ.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-CWImMW7J.mjs.map → hmcts-opal-frontend-common-access-denied.component-w1dJPEXZ.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-account-created.component-C-iCns7b.mjs → hmcts-opal-frontend-common-account-created.component-BGV9_IhY.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-account-created.component-C-iCns7b.mjs.map → hmcts-opal-frontend-common-account-created.component-BGV9_IhY.mjs.map} +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +8 -8
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +10 -10
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs +10 -10
- package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-label.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item-custom-summary-metric-bar-item-value.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs +12 -12
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs +6 -6
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs +5 -5
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs +12 -12
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs +6 -6
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs +12 -12
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs +12 -12
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs +6 -6
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs +5 -5
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs +26 -22
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-item.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option-moj-filter-panel-option-form-group-keyword.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected-moj-filter-panel-selected-tag.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs +6 -6
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-inset-text.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs +5 -5
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs.map +1 -1
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs +6 -6
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs +18 -18
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs +6 -6
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs +6 -6
- package/fesm2022/{hmcts-opal-frontend-common-concurrency-failure.component-Cn-ShVc5.mjs → hmcts-opal-frontend-common-concurrency-failure.component-CusyW-5x.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-concurrency-failure.component-Cn-ShVc5.mjs.map → hmcts-opal-frontend-common-concurrency-failure.component-CusyW-5x.mjs.map} +1 -1
- package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-directives-moj-multi-select.mjs +232 -0
- package/fesm2022/hmcts-opal-frontend-common-directives-moj-multi-select.mjs.map +1 -0
- package/fesm2022/{hmcts-opal-frontend-common-internal-server-error.component-DVPQlZoD.mjs → hmcts-opal-frontend-common-internal-server-error.component-CQy0fEO7.mjs} +5 -5
- package/fesm2022/{hmcts-opal-frontend-common-internal-server-error.component-DVPQlZoD.mjs.map → hmcts-opal-frontend-common-internal-server-error.component-CQy0fEO7.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-CWImMW7J.mjs → hmcts-opal-frontend-common-pages-access-denied.component-w1dJPEXZ.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-CWImMW7J.mjs.map → hmcts-opal-frontend-common-pages-access-denied.component-w1dJPEXZ.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-account-created.component-C-iCns7b.mjs → hmcts-opal-frontend-common-pages-account-created.component-BGV9_IhY.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-pages-account-created.component-C-iCns7b.mjs.map → hmcts-opal-frontend-common-pages-account-created.component-BGV9_IhY.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-concurrency-failure.component-Cn-ShVc5.mjs → hmcts-opal-frontend-common-pages-concurrency-failure.component-CusyW-5x.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-pages-concurrency-failure.component-Cn-ShVc5.mjs.map → hmcts-opal-frontend-common-pages-concurrency-failure.component-CusyW-5x.mjs.map} +1 -1
- package/fesm2022/hmcts-opal-frontend-common-pages-dashboard-page.mjs +4 -4
- package/fesm2022/hmcts-opal-frontend-common-pages-dashboard-page.mjs.map +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-internal-server-error.component-DVPQlZoD.mjs → hmcts-opal-frontend-common-pages-internal-server-error.component-CQy0fEO7.mjs} +5 -5
- package/fesm2022/{hmcts-opal-frontend-common-pages-internal-server-error.component-DVPQlZoD.mjs.map → hmcts-opal-frontend-common-pages-internal-server-error.component-CQy0fEO7.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-permission-denied.component-CrhYr8aM.mjs → hmcts-opal-frontend-common-pages-permission-denied.component-aaJXImkm.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-pages-permission-denied.component-CrhYr8aM.mjs.map → hmcts-opal-frontend-common-pages-permission-denied.component-aaJXImkm.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-CqOrm5qQ.mjs → hmcts-opal-frontend-common-pages-sign-in-stub.component-CvKDXRlr.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-CqOrm5qQ.mjs.map → hmcts-opal-frontend-common-pages-sign-in-stub.component-CvKDXRlr.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-P8JcHzpe.mjs → hmcts-opal-frontend-common-pages-sign-in.component-kFJamxkB.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-P8JcHzpe.mjs.map → hmcts-opal-frontend-common-pages-sign-in.component-kFJamxkB.mjs.map} +1 -1
- package/fesm2022/hmcts-opal-frontend-common-pages.mjs +6 -6
- package/fesm2022/{hmcts-opal-frontend-common-permission-denied.component-CrhYr8aM.mjs → hmcts-opal-frontend-common-permission-denied.component-aaJXImkm.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-permission-denied.component-CrhYr8aM.mjs.map → hmcts-opal-frontend-common-permission-denied.component-aaJXImkm.mjs.map} +1 -1
- package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-pipes-monetary.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-pipes-national-insurance.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs +3 -3
- package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs +3 -3
- package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-CqOrm5qQ.mjs → hmcts-opal-frontend-common-sign-in-stub.component-CvKDXRlr.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-CqOrm5qQ.mjs.map → hmcts-opal-frontend-common-sign-in-stub.component-CvKDXRlr.mjs.map} +1 -1
- package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-HUJ3zyjB.mjs → hmcts-opal-frontend-common-sign-in.component-CclFCycj.mjs} +4 -4
- package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-HUJ3zyjB.mjs.map → hmcts-opal-frontend-common-sign-in.component-CclFCycj.mjs.map} +1 -1
- package/fesm2022/hmcts-opal-frontend-common.mjs +6 -6
- package/package.json +6 -1
- package/types/hmcts-opal-frontend-common-components-moj-moj-alert.d.ts +2 -1
- package/types/hmcts-opal-frontend-common-directives-moj-multi-select.d.ts +115 -0
|
@@ -9,13 +9,13 @@ class AccessDeniedComponent {
|
|
|
9
9
|
// For now, test page will act as our 'Dashboard' page
|
|
10
10
|
this.router.navigate(['/']);
|
|
11
11
|
}
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
13
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AccessDeniedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AccessDeniedComponent, isStandalone: true, selector: "opal-lib-access-denied", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AccessDeniedComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: 'opal-lib-access-denied', imports: [GovukButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n" }]
|
|
18
18
|
}] });
|
|
19
19
|
|
|
20
20
|
export { AccessDeniedComponent };
|
|
21
|
-
//# sourceMappingURL=hmcts-opal-frontend-common-access-denied.component-
|
|
21
|
+
//# sourceMappingURL=hmcts-opal-frontend-common-access-denied.component-w1dJPEXZ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmcts-opal-frontend-common-access-denied.component-
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-access-denied.component-w1dJPEXZ.mjs","sources":["../../../projects/opal-frontend-common/pages/access-denied/access-denied.component.ts","../../../projects/opal-frontend-common/pages/access-denied/access-denied.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GovukButtonComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-button';\n\n@Component({\n selector: 'opal-lib-access-denied',\n imports: [GovukButtonComponent],\n templateUrl: './access-denied.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccessDeniedComponent {\n private readonly router = inject(Router);\n\n public handleGoBackButtonClick(): void {\n // For now, test page will act as our 'Dashboard' page\n this.router.navigate(['/']);\n }\n}\n","<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Access Denied</h1>\n <p class=\"govuk-body\">You do not have the appropriate permissions to access this page.</p>\n <p class=\"govuk-body\">\n <opal-lib-govuk-button\n buttonClasses=\"govuk-button--secondary\"\n buttonId=\"go-back\"\n (buttonClickEvent)=\"handleGoBackButtonClick()\"\n >\n Back to dashboard</opal-lib-govuk-button\n >\n </p>\n </div>\n</div>\n"],"names":[],"mappings":";;;;;MAUa,qBAAqB,CAAA;AACf,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEjC,uBAAuB,GAAA;;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B;uGANW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,ihBAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDTY,oBAAoB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAInB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,WACzB,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAEd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ihBAAA,EAAA;;;;;"}
|
|
@@ -3,13 +3,13 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
3
3
|
import { GovukPanelComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-panel';
|
|
4
4
|
|
|
5
5
|
class AccountCreated {
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AccountCreated, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AccountCreated, isStandalone: true, selector: "opal-lib-account-created", ngImport: i0, template: "<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n", dependencies: [{ kind: "component", type: GovukPanelComponent, selector: "opal-lib-govuk-panel", inputs: ["panelTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AccountCreated, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
11
|
args: [{ selector: 'opal-lib-account-created', imports: [GovukPanelComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n" }]
|
|
12
12
|
}] });
|
|
13
13
|
|
|
14
14
|
export { AccountCreated };
|
|
15
|
-
//# sourceMappingURL=hmcts-opal-frontend-common-account-created.component-
|
|
15
|
+
//# sourceMappingURL=hmcts-opal-frontend-common-account-created.component-BGV9_IhY.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmcts-opal-frontend-common-account-created.component-
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-account-created.component-BGV9_IhY.mjs","sources":["../../../projects/opal-frontend-common/pages/account-created/account-created.component.ts","../../../projects/opal-frontend-common/pages/account-created/account-created.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { GovukPanelComponent } from '@hmcts/opal-frontend-common/components/govuk/govuk-panel';\n\n@Component({\n selector: 'opal-lib-account-created',\n imports: [GovukPanelComponent],\n templateUrl: './account-created.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccountCreated {}\n","<div class=\"govuk-grid-column-two-thirds\">\n <opal-lib-govuk-panel panelTitle=\"User account created\"></opal-lib-govuk-panel>\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h2 class=\"govuk-fieldset__heading\">Next steps</h2>\n </legend>\n <p class=\"govuk-body\">\n Your Opal account has been created but is not yet live. <br />\n Contact your team lead to activate it fully.\n </p>\n </fieldset>\n</div>\n"],"names":[],"mappings":";;;;MASa,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT3B,0fAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPY,mBAAmB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,WAC3B,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0fAAA,EAAA;;;;;"}
|
package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs
CHANGED
|
@@ -211,10 +211,10 @@ class AbstractFormAliasBaseComponent extends AbstractFormBaseComponent {
|
|
|
211
211
|
this['ngUnsubscribe'].complete();
|
|
212
212
|
super.ngOnDestroy();
|
|
213
213
|
}
|
|
214
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
215
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
214
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormAliasBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
215
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractFormAliasBaseComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "aliasFirstField", predicate: ["aliasFirstField"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
216
216
|
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormAliasBaseComponent, decorators: [{
|
|
218
218
|
type: Component,
|
|
219
219
|
args: [{
|
|
220
220
|
template: '',
|
package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs
CHANGED
|
@@ -234,10 +234,10 @@ class AbstractFormArrayBaseComponent extends AbstractFormBaseComponent {
|
|
|
234
234
|
this.ngUnsubscribe.complete();
|
|
235
235
|
super.ngOnDestroy();
|
|
236
236
|
}
|
|
237
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
238
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
237
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormArrayBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractFormArrayBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
239
239
|
}
|
|
240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormArrayBaseComponent, decorators: [{
|
|
241
241
|
type: Component,
|
|
242
242
|
args: [{
|
|
243
243
|
template: '',
|
package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs
CHANGED
|
@@ -77,10 +77,10 @@ class AbstractFormArrayRemovalComponent {
|
|
|
77
77
|
this.router.navigate([route], { relativeTo: this.activatedRoute.parent });
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormArrayRemovalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractFormArrayRemovalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormArrayRemovalComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{
|
|
86
86
|
template: '',
|
|
@@ -595,10 +595,10 @@ class AbstractFormBaseComponent {
|
|
|
595
595
|
this.ngUnsubscribe.next();
|
|
596
596
|
this.ngUnsubscribe.complete();
|
|
597
597
|
}
|
|
598
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
599
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
598
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
599
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractFormBaseComponent, isStandalone: true, selector: "ng-component", outputs: { unsavedChanges: "unsavedChanges", formSubmit: "formSubmit" }, ngImport: i0, template: '', isInline: true });
|
|
600
600
|
}
|
|
601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
601
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractFormBaseComponent, decorators: [{
|
|
602
602
|
type: Component,
|
|
603
603
|
args: [{
|
|
604
604
|
template: '',
|
package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs
CHANGED
|
@@ -125,10 +125,10 @@ class AbstractNestedFormBaseComponent extends AbstractFormBaseComponent {
|
|
|
125
125
|
}
|
|
126
126
|
super.ngOnDestroy();
|
|
127
127
|
}
|
|
128
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
129
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractNestedFormBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractNestedFormBaseComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
130
130
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractNestedFormBaseComponent, decorators: [{
|
|
132
132
|
type: Component,
|
|
133
133
|
args: [{
|
|
134
134
|
template: '',
|
|
@@ -4,14 +4,14 @@ import { AbstractSortableTableComponent } from '@hmcts/opal-frontend-common/comp
|
|
|
4
4
|
|
|
5
5
|
class AbstractSortableTablePaginationComponent extends AbstractSortableTableComponent {
|
|
6
6
|
// Signal for the current page. Used to calculate the start and end indices for pagination.
|
|
7
|
-
currentPageSignal = signal(1, ...(ngDevMode ? [{ debugName: "currentPageSignal" }] : []));
|
|
7
|
+
currentPageSignal = signal(1, ...(ngDevMode ? [{ debugName: "currentPageSignal" }] : /* istanbul ignore next */ []));
|
|
8
8
|
// Signal for the number of items per page. Determines how many items are displayed on each page.
|
|
9
|
-
itemsPerPageSignal = signal(10, ...(ngDevMode ? [{ debugName: "itemsPerPageSignal" }] : []));
|
|
9
|
+
itemsPerPageSignal = signal(10, ...(ngDevMode ? [{ debugName: "itemsPerPageSignal" }] : /* istanbul ignore next */ []));
|
|
10
10
|
// Signal for the start index (1-based). Automatically updates when `currentPageSignal` or `itemsPerPageSignal` changes.
|
|
11
11
|
startIndexComputed = computed(() => {
|
|
12
12
|
const currentPage = this.currentPageSignal();
|
|
13
13
|
return (currentPage - 1) * this.itemsPerPageSignal() + 1;
|
|
14
|
-
}, ...(ngDevMode ? [{ debugName: "startIndexComputed" }] : []));
|
|
14
|
+
}, ...(ngDevMode ? [{ debugName: "startIndexComputed" }] : /* istanbul ignore next */ []));
|
|
15
15
|
/**
|
|
16
16
|
* Computes the end index for the current page of the sorted table data.
|
|
17
17
|
* Ensures the end index does not exceed the total number of items.
|
|
@@ -20,12 +20,12 @@ class AbstractSortableTablePaginationComponent extends AbstractSortableTableComp
|
|
|
20
20
|
*/
|
|
21
21
|
endIndexComputed = computed(() => {
|
|
22
22
|
return Math.min(this.sortedTableDataSignal().length, this.startIndexComputed() + this.itemsPerPageSignal() - 1);
|
|
23
|
-
}, ...(ngDevMode ? [{ debugName: "endIndexComputed" }] : []));
|
|
23
|
+
}, ...(ngDevMode ? [{ debugName: "endIndexComputed" }] : /* istanbul ignore next */ []));
|
|
24
24
|
// Computed signal for paginated table data. Reactively slices `displayTableDataSignal` based on `startIndexComputed` and `endIndexComputed`.
|
|
25
25
|
paginatedTableDataComputed = computed(() => {
|
|
26
26
|
const data = this.sortedTableDataSignal(); // Full table data
|
|
27
27
|
return data.slice(this.startIndexComputed() - 1, this.endIndexComputed()); // Return paginated data subset
|
|
28
|
-
}, ...(ngDevMode ? [{ debugName: "paginatedTableDataComputed" }] : []));
|
|
28
|
+
}, ...(ngDevMode ? [{ debugName: "paginatedTableDataComputed" }] : /* istanbul ignore next */ []));
|
|
29
29
|
/**
|
|
30
30
|
* Handles sorting changes and resets the page to the first page.
|
|
31
31
|
*
|
|
@@ -61,10 +61,10 @@ class AbstractSortableTablePaginationComponent extends AbstractSortableTableComp
|
|
|
61
61
|
const totalPages = Math.ceil(this.displayTableDataSignal().length / this.itemsPerPageSignal());
|
|
62
62
|
this.currentPageSignal.set(Math.max(1, Math.min(newPage, totalPages)));
|
|
63
63
|
}
|
|
64
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
65
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
64
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractSortableTablePaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractSortableTablePaginationComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
66
66
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractSortableTablePaginationComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
69
69
|
args: [{
|
|
70
70
|
template: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table-pagination/abstract-sortable-table-pagination.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table-pagination/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.ts"],"sourcesContent":["import { Component, computed, signal } from '@angular/core';\nimport { AbstractSortableTableComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTablePaginationComponent extends AbstractSortableTableComponent {\n // Signal for the current page. Used to calculate the start and end indices for pagination.\n public currentPageSignal = signal(1);\n\n // Signal for the number of items per page. Determines how many items are displayed on each page.\n public itemsPerPageSignal = signal(10);\n\n // Signal for the start index (1-based). Automatically updates when `currentPageSignal` or `itemsPerPageSignal` changes.\n public startIndexComputed = computed(() => {\n const currentPage = this.currentPageSignal();\n return (currentPage - 1) * this.itemsPerPageSignal() + 1;\n });\n\n /**\n * Computes the end index for the current page of the sorted table data.\n * Ensures the end index does not exceed the total number of items.\n *\n * @returns The zero-based index of the last item to display on the current page.\n */\n public endIndexComputed = computed(() => {\n return Math.min(this.sortedTableDataSignal().length, this.startIndexComputed() + this.itemsPerPageSignal() - 1);\n });\n\n // Computed signal for paginated table data. Reactively slices `displayTableDataSignal` based on `startIndexComputed` and `endIndexComputed`.\n public paginatedTableDataComputed = computed(() => {\n const data = this.sortedTableDataSignal(); // Full table data\n\n return data.slice(this.startIndexComputed() - 1, this.endIndexComputed()); // Return paginated data subset\n });\n\n /**\n * Handles sorting changes and resets the page to the first page.\n *\n * @param event - The sorting event containing:\n * - `key`: The column key to sort by.\n * - `sortType`: The sorting order, either 'ascending' or 'descending'.\n *\n * Resets `currentPageSignal` to 1 and triggers re-sorting of `displayTableDataSignal`.\n */\n public override onSortChange(event: { key: string; sortType: 'ascending' | 'descending' }): void {\n super.onSortChange(event); // Update the sort state and sort the data\n this.currentPageSignal.set(1); // Reset the page to the first page\n }\n\n /**\n * Applies the current filters to the table data.\n *\n * Overrides the base implementation to additionally reset the pagination to the first page\n * after filters are applied.\n *\n * @override\n */\n public override onApplyFilters(): void {\n super.onApplyFilters();\n this.currentPageSignal.set(1); // Reset to first page after filtering\n }\n\n /**\n * Handles the event when the page is changed.\n *\n * @param newPage - The new page number to set. If the provided page number is out of range,\n * it will be clamped between 1 and the total number of pages.\n */\n public onPageChange(newPage: number): void {\n const totalPages = Math.ceil(this.displayTableDataSignal().length / this.itemsPerPageSignal());\n this.currentPageSignal.set(Math.max(1, Math.min(newPage, totalPages)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAMM,MAAgB,wCAAyC,SAAQ,8BAA8B,CAAA;;AAE5F,IAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table-pagination/abstract-sortable-table-pagination.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table-pagination/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.ts"],"sourcesContent":["import { Component, computed, signal } from '@angular/core';\nimport { AbstractSortableTableComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTablePaginationComponent extends AbstractSortableTableComponent {\n // Signal for the current page. Used to calculate the start and end indices for pagination.\n public currentPageSignal = signal(1);\n\n // Signal for the number of items per page. Determines how many items are displayed on each page.\n public itemsPerPageSignal = signal(10);\n\n // Signal for the start index (1-based). Automatically updates when `currentPageSignal` or `itemsPerPageSignal` changes.\n public startIndexComputed = computed(() => {\n const currentPage = this.currentPageSignal();\n return (currentPage - 1) * this.itemsPerPageSignal() + 1;\n });\n\n /**\n * Computes the end index for the current page of the sorted table data.\n * Ensures the end index does not exceed the total number of items.\n *\n * @returns The zero-based index of the last item to display on the current page.\n */\n public endIndexComputed = computed(() => {\n return Math.min(this.sortedTableDataSignal().length, this.startIndexComputed() + this.itemsPerPageSignal() - 1);\n });\n\n // Computed signal for paginated table data. Reactively slices `displayTableDataSignal` based on `startIndexComputed` and `endIndexComputed`.\n public paginatedTableDataComputed = computed(() => {\n const data = this.sortedTableDataSignal(); // Full table data\n\n return data.slice(this.startIndexComputed() - 1, this.endIndexComputed()); // Return paginated data subset\n });\n\n /**\n * Handles sorting changes and resets the page to the first page.\n *\n * @param event - The sorting event containing:\n * - `key`: The column key to sort by.\n * - `sortType`: The sorting order, either 'ascending' or 'descending'.\n *\n * Resets `currentPageSignal` to 1 and triggers re-sorting of `displayTableDataSignal`.\n */\n public override onSortChange(event: { key: string; sortType: 'ascending' | 'descending' }): void {\n super.onSortChange(event); // Update the sort state and sort the data\n this.currentPageSignal.set(1); // Reset the page to the first page\n }\n\n /**\n * Applies the current filters to the table data.\n *\n * Overrides the base implementation to additionally reset the pagination to the first page\n * after filters are applied.\n *\n * @override\n */\n public override onApplyFilters(): void {\n super.onApplyFilters();\n this.currentPageSignal.set(1); // Reset to first page after filtering\n }\n\n /**\n * Handles the event when the page is changed.\n *\n * @param newPage - The new page number to set. If the provided page number is out of range,\n * it will be clamped between 1 and the total number of pages.\n */\n public onPageChange(newPage: number): void {\n const totalPages = Math.ceil(this.displayTableDataSignal().length / this.itemsPerPageSignal());\n this.currentPageSignal.set(Math.max(1, Math.min(newPage, totalPages)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAMM,MAAgB,wCAAyC,SAAQ,8BAA8B,CAAA;;AAE5F,IAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,wFAAC;;AAG7B,IAAA,kBAAkB,GAAG,MAAM,CAAC,EAAE,yFAAC;;AAG/B,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC5C,QAAA,OAAO,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC;AAC1D,IAAA,CAAC,yFAAC;AAEF;;;;;AAKG;AACI,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACjH,IAAA,CAAC,uFAAC;;AAGK,IAAA,0BAA0B,GAAG,QAAQ,CAAC,MAAK;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAE1C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC5E,IAAA,CAAC,iGAAC;AAEF;;;;;;;;AAQG;AACa,IAAA,YAAY,CAAC,KAA4D,EAAA;AACvF,QAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC;AAEA;;;;;;;AAOG;IACa,cAAc,GAAA;QAC5B,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChC;AAEA;;;;;AAKG;AACI,IAAA,YAAY,CAAC,OAAe,EAAA;AACjC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACxE;uGAlEoB,wCAAwC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wCAAwC,+FAFlD,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEQ,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBAH7D,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -22,14 +22,14 @@ class AbstractSortableTableComponent extends AbstractTableFilterComponent {
|
|
|
22
22
|
// No sort applied – use filtered data directly
|
|
23
23
|
this.sortedTableDataSignal.set([...filtered]);
|
|
24
24
|
}
|
|
25
|
-
}, ...(ngDevMode ? [{ debugName: "syncSortedDataEffect" }] : []));
|
|
26
|
-
displayTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "displayTableDataSignal" }] : []));
|
|
27
|
-
filteredTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "filteredTableDataSignal" }] : []));
|
|
28
|
-
sortedTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "sortedTableDataSignal" }] : []));
|
|
25
|
+
}, ...(ngDevMode ? [{ debugName: "syncSortedDataEffect" }] : /* istanbul ignore next */ []));
|
|
26
|
+
displayTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "displayTableDataSignal" }] : /* istanbul ignore next */ []));
|
|
27
|
+
filteredTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "filteredTableDataSignal" }] : /* istanbul ignore next */ []));
|
|
28
|
+
sortedTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "sortedTableDataSignal" }] : /* istanbul ignore next */ []));
|
|
29
29
|
abstractExistingSortState = null;
|
|
30
|
-
sortStateSignal = signal({}, ...(ngDevMode ? [{ debugName: "sortStateSignal" }] : []));
|
|
31
|
-
sortedColumnTitleSignal = signal('', ...(ngDevMode ? [{ debugName: "sortedColumnTitleSignal" }] : []));
|
|
32
|
-
sortedColumnDirectionSignal = signal('none', ...(ngDevMode ? [{ debugName: "sortedColumnDirectionSignal" }] : []));
|
|
30
|
+
sortStateSignal = signal({}, ...(ngDevMode ? [{ debugName: "sortStateSignal" }] : /* istanbul ignore next */ []));
|
|
31
|
+
sortedColumnTitleSignal = signal('', ...(ngDevMode ? [{ debugName: "sortedColumnTitleSignal" }] : /* istanbul ignore next */ []));
|
|
32
|
+
sortedColumnDirectionSignal = signal('none', ...(ngDevMode ? [{ debugName: "sortedColumnDirectionSignal" }] : /* istanbul ignore next */ []));
|
|
33
33
|
abstractSortState = new EventEmitter();
|
|
34
34
|
/**
|
|
35
35
|
* Creates an initial sort state for a table based on the provided table data.
|
|
@@ -185,10 +185,10 @@ class AbstractSortableTableComponent extends AbstractTableFilterComponent {
|
|
|
185
185
|
this.onSortChange({ key, sortType });
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
189
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractSortableTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractSortableTableComponent, isStandalone: true, selector: "ng-component", outputs: { abstractSortState: "abstractSortState" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
190
190
|
}
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractSortableTableComponent, decorators: [{
|
|
192
192
|
type: Component,
|
|
193
193
|
args: [{
|
|
194
194
|
template: '',
|
package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/abstract-sortable-table.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.ts"],"sourcesContent":["import { Component, EventEmitter, OnInit, Output, effect, inject, signal } from '@angular/core';\nimport {\n IAbstractSortState,\n IAbstractTableData,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces';\nimport { SortService } from '@hmcts/opal-frontend-common/services/sort-service';\nimport {\n SortableValuesType,\n SortDirectionType,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types';\nimport { AbstractTableFilterComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTableComponent extends AbstractTableFilterComponent implements OnInit {\n private readonly sortService = inject(SortService);\n\n /**\n * Synchronizes the sorted table data with the current filter and sort state.\n *\n * This effect observes changes to the filtered table data and the sort state signals.\n * If no active sort key is found (i.e., no sorting is applied), it sets the sorted table data\n * to a shallow copy of the filtered data. Otherwise, sorting logic should be applied elsewhere.\n *\n * @protected\n */\n protected syncSortedDataEffect = effect(() => {\n const filtered = this.filteredTableDataSignal();\n const currentSort = this.sortStateSignal();\n\n const activeSortKey = Object.keys(currentSort).find((k) => currentSort[k] !== 'none');\n\n if (!activeSortKey) {\n // No sort applied – use filtered data directly\n this.sortedTableDataSignal.set([...filtered]);\n }\n });\n\n public override displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public override filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public sortedTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public abstractExistingSortState: IAbstractSortState | null = null;\n public sortStateSignal = signal<IAbstractSortState>({});\n public sortedColumnTitleSignal = signal<string>('');\n public sortedColumnDirectionSignal = signal<SortDirectionType>('none');\n\n @Output() abstractSortState = new EventEmitter<IAbstractSortState>();\n\n /**\n * Creates an initial sort state for a table based on the provided table data.\n *\n * @param tableData - Array of table data objects representing table rows.\n * @returns Initial sort state object with column names as keys and 'none' as values.\n */\n private createSortState(tableData: IAbstractTableData<SortableValuesType>[] | null): IAbstractSortState {\n return tableData?.length\n ? Object.keys(tableData[0]).reduce<IAbstractSortState>((state, key) => {\n state[key] = 'none';\n return state;\n }, {})\n : {};\n }\n /**\n * Initializes the sort state for the sortable table component.\n *\n * This method sets the initial sort state based on the existing sort state or creates a new one\n * if none exists. It then updates the sort state signal with the initial sort state.\n *\n * If an existing sort state is found, it iterates over each entry and triggers the sort change\n * for each key that has a sort type other than 'none'.\n *\n * @private\n * @returns {void}\n */\n private initialiseSortState(): void {\n const existingSortState = this.abstractExistingSortState;\n const initialSortState = existingSortState || this.createSortState(this.displayTableDataSignal());\n this.applyFilterState();\n\n this.sortStateSignal.set(initialSortState);\n\n if (existingSortState) {\n for (const [key, sortType] of Object.entries(existingSortState)) {\n if (sortType !== 'none') {\n this.onSortChange({ key, sortType });\n }\n }\n }\n this.getSortedColumn();\n }\n\n /**\n * Updates the sort state for a given column key and sort type.\n * Resets the sort state for all other columns to 'none'.\n *\n * @param key - The column to sort by.\n * @param sortType - Sorting order ('ascending' or 'descending').\n */\n private updateSortState(key: string, sortType: 'ascending' | 'descending'): void {\n this.sortStateSignal.set(\n Object.keys(this.sortStateSignal()).reduce<IAbstractSortState>((state, columnKey) => {\n state[columnKey] = columnKey === key ? sortType : 'none';\n return state;\n }, {}),\n );\n }\n\n /**\n * Retrieves the sorted table data based on the specified key and sort type.\n *\n * @param key - The key of the property to sort by.\n * @param sortType - The type of sorting to apply, either 'ascending' or 'descending'.\n * @returns An array of sorted table data objects.\n */\n private getSortedTableData(\n key: string,\n sortType: 'ascending' | 'descending',\n ): IAbstractTableData<SortableValuesType>[] {\n return sortType === 'ascending'\n ? (this.sortService.sortObjectArrayAsc(\n this.filteredTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[])\n : (this.sortService.sortObjectArrayDesc(\n this.filteredTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[]);\n }\n\n /**\n * Determines the first column with a sort state other than 'none' and updates the sorted column signals accordingly.\n *\n * - If a sorted column is found, updates the `sortedColumnTitleSignal` and `sortedColumnDirectionSignal` with the column key and state.\n * - If no sorted column is found, sets the `sortedColumnTitleSignal` to an empty string and `sortedColumnDirectionSignal` to 'none'.\n *\n * @private\n * @returns {void}\n */\n private getSortedColumn(): void {\n // Find the first column that has a sort state other than 'none'\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const sortedColumn = Object.entries(this.sortStateSignal()).find(([_, state]) => state !== 'none');\n\n // If a sorted column is found, set the signal to the sorted column key and state\n if (sortedColumn) {\n const [columnKey, state] = sortedColumn;\n this.sortedColumnTitleSignal.set(columnKey);\n this.sortedColumnDirectionSignal.set(state);\n } else {\n // Otherwise, set the signal to null\n this.sortedColumnTitleSignal.set('');\n this.sortedColumnDirectionSignal.set('none');\n }\n }\n\n /**\n * Handles the change in sorting for the table.\n *\n * @param event - An object containing the key to sort by and the sort type.\n * @param event.key - The key of the column to sort.\n * @param event.sortType - The type of sorting to apply ('ascending' or 'descending').\n *\n * This method updates the sort state, sorts the table data based on the provided key and sort type,\n * updates the table data signal, and emits the updated sort state.\n */\n protected onSortChange(event: { key: string; sortType: 'ascending' | 'descending' }): void {\n const { key, sortType } = event;\n\n this.updateSortState(key, sortType);\n this.getSortedColumn();\n const sortedData = this.getSortedTableData(key, sortType);\n\n // Update the table data signal\n this.sortedTableDataSignal.set(sortedData);\n\n // Emit the updated sort state\n this.abstractSortState.emit(this.sortStateSignal());\n }\n\n /**\n * Lifecycle hook to initialise the sort state.\n */\n public ngOnInit(): void {\n this.initialiseSortState();\n }\n /**\n * Applies the current filters to the table data and updates the sorted data accordingly.\n *\n * This method overrides the parent implementation to additionally handle sorting.\n * If there is an active sort key, it applies the corresponding sort to the filtered data.\n * If no sort key is active, it simply updates the sorted data to match the filtered data.\n *\n * @override\n */\n public override onApplyFilters(): void {\n super.onApplyFilters();\n\n const key = this.sortedColumnTitleSignal();\n const sortType = this.sortedColumnDirectionSignal();\n\n if (!key || sortType === 'none') {\n this.sortedTableDataSignal.set([...this.filteredTableDataSignal()]);\n } else {\n this.onSortChange({ key, sortType });\n }\n }\n\n /**\n * Clears all filters applied to the table and restores the data to its unfiltered state.\n * If a sort is currently active, re-applies the sort after clearing filters.\n * Otherwise, resets the sorted table data to match the filtered data.\n *\n * @override\n */\n public override clearAllFilters(): void {\n super.clearAllFilters();\n\n const key = this.sortedColumnTitleSignal();\n const sortType = this.sortedColumnDirectionSignal();\n\n if (!key || sortType === 'none') {\n this.sortedTableDataSignal.set([...this.filteredTableDataSignal()]);\n } else {\n this.onSortChange({ key, sortType });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/abstract-sortable-table.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-sortable-table/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.ts"],"sourcesContent":["import { Component, EventEmitter, OnInit, Output, effect, inject, signal } from '@angular/core';\nimport {\n IAbstractSortState,\n IAbstractTableData,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/interfaces';\nimport { SortService } from '@hmcts/opal-frontend-common/services/sort-service';\nimport {\n SortableValuesType,\n SortDirectionType,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table/types';\nimport { AbstractTableFilterComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter';\n\n@Component({\n template: '',\n})\nexport abstract class AbstractSortableTableComponent extends AbstractTableFilterComponent implements OnInit {\n private readonly sortService = inject(SortService);\n\n /**\n * Synchronizes the sorted table data with the current filter and sort state.\n *\n * This effect observes changes to the filtered table data and the sort state signals.\n * If no active sort key is found (i.e., no sorting is applied), it sets the sorted table data\n * to a shallow copy of the filtered data. Otherwise, sorting logic should be applied elsewhere.\n *\n * @protected\n */\n protected syncSortedDataEffect = effect(() => {\n const filtered = this.filteredTableDataSignal();\n const currentSort = this.sortStateSignal();\n\n const activeSortKey = Object.keys(currentSort).find((k) => currentSort[k] !== 'none');\n\n if (!activeSortKey) {\n // No sort applied – use filtered data directly\n this.sortedTableDataSignal.set([...filtered]);\n }\n });\n\n public override displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public override filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public sortedTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public abstractExistingSortState: IAbstractSortState | null = null;\n public sortStateSignal = signal<IAbstractSortState>({});\n public sortedColumnTitleSignal = signal<string>('');\n public sortedColumnDirectionSignal = signal<SortDirectionType>('none');\n\n @Output() abstractSortState = new EventEmitter<IAbstractSortState>();\n\n /**\n * Creates an initial sort state for a table based on the provided table data.\n *\n * @param tableData - Array of table data objects representing table rows.\n * @returns Initial sort state object with column names as keys and 'none' as values.\n */\n private createSortState(tableData: IAbstractTableData<SortableValuesType>[] | null): IAbstractSortState {\n return tableData?.length\n ? Object.keys(tableData[0]).reduce<IAbstractSortState>((state, key) => {\n state[key] = 'none';\n return state;\n }, {})\n : {};\n }\n /**\n * Initializes the sort state for the sortable table component.\n *\n * This method sets the initial sort state based on the existing sort state or creates a new one\n * if none exists. It then updates the sort state signal with the initial sort state.\n *\n * If an existing sort state is found, it iterates over each entry and triggers the sort change\n * for each key that has a sort type other than 'none'.\n *\n * @private\n * @returns {void}\n */\n private initialiseSortState(): void {\n const existingSortState = this.abstractExistingSortState;\n const initialSortState = existingSortState || this.createSortState(this.displayTableDataSignal());\n this.applyFilterState();\n\n this.sortStateSignal.set(initialSortState);\n\n if (existingSortState) {\n for (const [key, sortType] of Object.entries(existingSortState)) {\n if (sortType !== 'none') {\n this.onSortChange({ key, sortType });\n }\n }\n }\n this.getSortedColumn();\n }\n\n /**\n * Updates the sort state for a given column key and sort type.\n * Resets the sort state for all other columns to 'none'.\n *\n * @param key - The column to sort by.\n * @param sortType - Sorting order ('ascending' or 'descending').\n */\n private updateSortState(key: string, sortType: 'ascending' | 'descending'): void {\n this.sortStateSignal.set(\n Object.keys(this.sortStateSignal()).reduce<IAbstractSortState>((state, columnKey) => {\n state[columnKey] = columnKey === key ? sortType : 'none';\n return state;\n }, {}),\n );\n }\n\n /**\n * Retrieves the sorted table data based on the specified key and sort type.\n *\n * @param key - The key of the property to sort by.\n * @param sortType - The type of sorting to apply, either 'ascending' or 'descending'.\n * @returns An array of sorted table data objects.\n */\n private getSortedTableData(\n key: string,\n sortType: 'ascending' | 'descending',\n ): IAbstractTableData<SortableValuesType>[] {\n return sortType === 'ascending'\n ? (this.sortService.sortObjectArrayAsc(\n this.filteredTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[])\n : (this.sortService.sortObjectArrayDesc(\n this.filteredTableDataSignal(),\n key,\n ) as IAbstractTableData<SortableValuesType>[]);\n }\n\n /**\n * Determines the first column with a sort state other than 'none' and updates the sorted column signals accordingly.\n *\n * - If a sorted column is found, updates the `sortedColumnTitleSignal` and `sortedColumnDirectionSignal` with the column key and state.\n * - If no sorted column is found, sets the `sortedColumnTitleSignal` to an empty string and `sortedColumnDirectionSignal` to 'none'.\n *\n * @private\n * @returns {void}\n */\n private getSortedColumn(): void {\n // Find the first column that has a sort state other than 'none'\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const sortedColumn = Object.entries(this.sortStateSignal()).find(([_, state]) => state !== 'none');\n\n // If a sorted column is found, set the signal to the sorted column key and state\n if (sortedColumn) {\n const [columnKey, state] = sortedColumn;\n this.sortedColumnTitleSignal.set(columnKey);\n this.sortedColumnDirectionSignal.set(state);\n } else {\n // Otherwise, set the signal to null\n this.sortedColumnTitleSignal.set('');\n this.sortedColumnDirectionSignal.set('none');\n }\n }\n\n /**\n * Handles the change in sorting for the table.\n *\n * @param event - An object containing the key to sort by and the sort type.\n * @param event.key - The key of the column to sort.\n * @param event.sortType - The type of sorting to apply ('ascending' or 'descending').\n *\n * This method updates the sort state, sorts the table data based on the provided key and sort type,\n * updates the table data signal, and emits the updated sort state.\n */\n protected onSortChange(event: { key: string; sortType: 'ascending' | 'descending' }): void {\n const { key, sortType } = event;\n\n this.updateSortState(key, sortType);\n this.getSortedColumn();\n const sortedData = this.getSortedTableData(key, sortType);\n\n // Update the table data signal\n this.sortedTableDataSignal.set(sortedData);\n\n // Emit the updated sort state\n this.abstractSortState.emit(this.sortStateSignal());\n }\n\n /**\n * Lifecycle hook to initialise the sort state.\n */\n public ngOnInit(): void {\n this.initialiseSortState();\n }\n /**\n * Applies the current filters to the table data and updates the sorted data accordingly.\n *\n * This method overrides the parent implementation to additionally handle sorting.\n * If there is an active sort key, it applies the corresponding sort to the filtered data.\n * If no sort key is active, it simply updates the sorted data to match the filtered data.\n *\n * @override\n */\n public override onApplyFilters(): void {\n super.onApplyFilters();\n\n const key = this.sortedColumnTitleSignal();\n const sortType = this.sortedColumnDirectionSignal();\n\n if (!key || sortType === 'none') {\n this.sortedTableDataSignal.set([...this.filteredTableDataSignal()]);\n } else {\n this.onSortChange({ key, sortType });\n }\n }\n\n /**\n * Clears all filters applied to the table and restores the data to its unfiltered state.\n * If a sort is currently active, re-applies the sort after clearing filters.\n * Otherwise, resets the sorted table data to match the filtered data.\n *\n * @override\n */\n public override clearAllFilters(): void {\n super.clearAllFilters();\n\n const key = this.sortedColumnTitleSignal();\n const sortType = this.sortedColumnDirectionSignal();\n\n if (!key || sortType === 'none') {\n this.sortedTableDataSignal.set([...this.filteredTableDataSignal()]);\n } else {\n this.onSortChange({ key, sortType });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { signal, computed, Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class AbstractTableFilterComponent {
|
|
5
|
-
displayTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "displayTableDataSignal" }] : []));
|
|
6
|
-
filteredTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "filteredTableDataSignal" }] : []));
|
|
7
|
-
filterTags = signal([], ...(ngDevMode ? [{ debugName: "filterTags" }] : []));
|
|
8
|
-
keyword = signal('', ...(ngDevMode ? [{ debugName: "keyword" }] : []));
|
|
9
|
-
appliedFilterTags = signal([], ...(ngDevMode ? [{ debugName: "appliedFilterTags" }] : []));
|
|
10
|
-
appliedKeyword = signal('', ...(ngDevMode ? [{ debugName: "appliedKeyword" }] : []));
|
|
5
|
+
displayTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "displayTableDataSignal" }] : /* istanbul ignore next */ []));
|
|
6
|
+
filteredTableDataSignal = signal([], ...(ngDevMode ? [{ debugName: "filteredTableDataSignal" }] : /* istanbul ignore next */ []));
|
|
7
|
+
filterTags = signal([], ...(ngDevMode ? [{ debugName: "filterTags" }] : /* istanbul ignore next */ []));
|
|
8
|
+
keyword = signal('', ...(ngDevMode ? [{ debugName: "keyword" }] : /* istanbul ignore next */ []));
|
|
9
|
+
appliedFilterTags = signal([], ...(ngDevMode ? [{ debugName: "appliedFilterTags" }] : /* istanbul ignore next */ []));
|
|
10
|
+
appliedKeyword = signal('', ...(ngDevMode ? [{ debugName: "appliedKeyword" }] : /* istanbul ignore next */ []));
|
|
11
11
|
/**
|
|
12
12
|
* A computed signal that returns the currently selected filter tags.
|
|
13
13
|
* It filters the filterTags signal to include only those options that are selected,
|
|
@@ -15,7 +15,7 @@ class AbstractTableFilterComponent {
|
|
|
15
15
|
*
|
|
16
16
|
* @returns An array of filter categories each containing only the selected options.
|
|
17
17
|
*/
|
|
18
|
-
abstractSelectedTags = computed(() => this.getSelectedOptionsFromTags(this.filterTags()), ...(ngDevMode ? [{ debugName: "abstractSelectedTags" }] : []));
|
|
18
|
+
abstractSelectedTags = computed(() => this.getSelectedOptionsFromTags(this.filterTags()), ...(ngDevMode ? [{ debugName: "abstractSelectedTags" }] : /* istanbul ignore next */ []));
|
|
19
19
|
/**
|
|
20
20
|
* Determines whether a given item matches a specific filter option within a category.
|
|
21
21
|
* @param item The data item to test.
|
|
@@ -168,10 +168,10 @@ class AbstractTableFilterComponent {
|
|
|
168
168
|
this.appliedKeyword.set(keyword);
|
|
169
169
|
this.applyFilterState();
|
|
170
170
|
}
|
|
171
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
172
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
171
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractTableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
172
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: AbstractTableFilterComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
|
|
173
173
|
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AbstractTableFilterComponent, decorators: [{
|
|
175
175
|
type: Component,
|
|
176
176
|
args: [{ template: '' }]
|
|
177
177
|
}] });
|
package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/abstract-table-filter.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.ts"],"sourcesContent":["import { Component, signal, computed, Signal } from '@angular/core';\nimport {\n IAbstractTableData,\n IAbstractTableFilterCategory,\n IAbstractTableFilterOption,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/interfaces';\nimport { SortableValuesType } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/types';\n\n@Component({ template: '' })\nexport abstract class AbstractTableFilterComponent {\n public displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filterTags = signal<IAbstractTableFilterCategory[]>([]);\n public keyword = signal<string>('');\n public appliedFilterTags = signal<IAbstractTableFilterCategory[]>([]);\n public appliedKeyword = signal<string>('');\n\n /**\n * A computed signal that returns the currently selected filter tags.\n * It filters the filterTags signal to include only those options that are selected,\n * grouped by their category name.\n *\n * @returns An array of filter categories each containing only the selected options.\n */\n public abstractSelectedTags: Signal<IAbstractTableFilterCategory[]> = computed(() =>\n this.getSelectedOptionsFromTags(this.filterTags()),\n );\n\n /**\n * Determines whether a given item matches a specific filter option within a category.\n * @param item The data item to test.\n * @param categoryName The category name to check within the item.\n * @param option The filter option to match against.\n * @returns True if the item's value for the category matches the option's value; otherwise false.\n */\n protected matchItemWithFilterOption(\n item: IAbstractTableData<SortableValuesType>,\n categoryName: string,\n option: IAbstractTableFilterOption,\n ): boolean {\n return item?.[categoryName] === option.value;\n }\n\n /**\n * Determines whether a given item matches the keyword filter.\n * Checks if any value in the item contains the keyword (case-insensitive).\n * @param item The data item to test.\n * @param keyword The keyword to match against.\n * @returns True if any value in the item contains the keyword; otherwise false.\n */\n protected matchItemWithKeyword(item: IAbstractTableData<SortableValuesType>, keyword: string): boolean {\n return Object.values(item).some((value) => value?.toString().toLowerCase().includes(keyword));\n }\n\n /**\n * Extracts and returns categories from the provided tags that have at least one selected option.\n *\n * For each category in the input array, this method filters its options to include only those marked as selected.\n * Only categories with at least one selected option are included in the returned array.\n *\n * @param tags - An array of category objects, each containing a list of options.\n * @returns An array of category objects, each with only the selected options, and only categories with at least one selected option.\n */\n protected getSelectedOptionsFromTags(tags: IAbstractTableFilterCategory[]): IAbstractTableFilterCategory[] {\n return tags\n .map((group) => ({\n categoryName: group.categoryName,\n options: group.options.filter((option) => option.selected),\n }))\n .filter((group) => group.options.length > 0);\n }\n\n /**\n * Updates the keyword used to filter the table data.\n * @param newKeyword The new keyword string to filter by.\n */\n public onKeywordChange(newKeyword: string): void {\n this.keyword.set(newKeyword);\n }\n\n /**\n * Updates the selection state of a filter option within a category.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to update.\n * @param selected Whether the option is selected (true) or deselected (false).\n */\n public onCategoryCheckboxChange(categoryName: string, optionValue: string | number, selected: boolean): void {\n const updatedFilterTags = this.filterTags().map((group) => {\n if (group.categoryName === categoryName) {\n return {\n ...group,\n options: group.options.map((option) => (option.value === optionValue ? { ...option, selected } : option)),\n };\n }\n return group;\n });\n this.filterTags.set(updatedFilterTags);\n }\n\n /**\n * Removes a selected filter tag by deselecting the corresponding filter option.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to remove.\n */\n public removeTag(categoryName: string, optionValue: string | number): void {\n this.onCategoryCheckboxChange(categoryName, optionValue, false);\n }\n\n /**\n * Clears all applied filters and resets the filter state.\n *\n * This method performs the following actions:\n * - Resets the keyword and applied keyword to empty strings.\n * - Iterates through all filter tag groups and sets each option's `selected` property to `false`.\n * - Updates both the current and applied filter tags with the cleared state.\n * - Applies the updated filter state.\n */\n public clearAllFilters(): void {\n this.keyword.set('');\n this.appliedKeyword.set('');\n\n const clearedFilterTags = this.filterTags().map((group) => ({\n ...group,\n options: group.options.map((option) => ({ ...option, selected: false })),\n }));\n\n this.filterTags.set(clearedFilterTags);\n this.appliedFilterTags.set(clearedFilterTags);\n\n this.applyFilterState();\n }\n\n /**\n * Initializes and updates the filtered table data based on the currently applied keyword and filter tags.\n *\n * This method performs the following steps:\n * 1. Retrieves the current table data, applied keyword, and filter tags.\n * 2. If filter tags are present, filters the data to include only items that match all selected filter options.\n * 3. If a keyword is present, further filters the data to include only items that match the keyword.\n * 4. Updates the filtered table data signal with the resulting filtered data.\n *\n * @remarks\n * - Filtering by tags requires each item to match every group of filter tags.\n * - Filtering by keyword is case-insensitive and trims whitespace.\n */\n public applyFilterState(): void {\n const data = this.displayTableDataSignal();\n const keyword = this.appliedKeyword().toLowerCase().trim();\n const tags = this.appliedFilterTags();\n\n const selectedTagGroups = this.getSelectedOptionsFromTags(tags);\n\n let filtered = data;\n\n if (selectedTagGroups.length > 0) {\n filtered = filtered.filter((item) =>\n selectedTagGroups.every((group) =>\n group.options.some((option) => this.matchItemWithFilterOption(item, group.categoryName, option)),\n ),\n );\n }\n\n if (keyword) {\n filtered = filtered.filter((item) => this.matchItemWithKeyword(item, keyword));\n }\n\n this.filteredTableDataSignal.set(filtered);\n }\n\n /**\n * Applies the current filter tags and keyword to the table data.\n *\n * This method updates the `appliedFilterTags` and `appliedKeyword` properties\n * with the current filter values, then re-initialises the filtered data set\n * by invoking `applyFilterState()`.\n *\n * Typically called when the user confirms or applies filter changes in the UI.\n */\n public onApplyFilters(): void {\n this.appliedFilterTags.set(this.filterTags());\n this.appliedKeyword.set(this.keyword());\n this.applyFilterState();\n }\n\n /**\n * Sets the data to be displayed in the table.\n *\n * @param data - An array of table data objects conforming to the `IAbstractTableData<SortableValuesType>` interface.\n */\n public setTableData(data: IAbstractTableData<SortableValuesType>[]): void {\n this.displayTableDataSignal.set(data);\n }\n\n /**\n * Resets the filter and keyword state to the provided values and reapplies them.\n *\n * @param tags - The filter tag state to apply (including selected values).\n * @param keyword - The keyword string to apply (optional, defaults to empty).\n */\n public resetFiltersTo(tags: IAbstractTableFilterCategory[], keyword: string = ''): void {\n this.filterTags.set(tags);\n this.keyword.set(keyword);\n this.appliedFilterTags.set(tags);\n this.appliedKeyword.set(keyword);\n this.applyFilterState();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASsB,4BAA4B,CAAA;AACzC,IAAA,sBAAsB,GAAG,MAAM,CAA2C,EAAE,kEAAC;AAC7E,IAAA,uBAAuB,GAAG,MAAM,CAA2C,EAAE,mEAAC;AAC9E,IAAA,UAAU,GAAG,MAAM,CAAiC,EAAE,sDAAC;AACvD,IAAA,OAAO,GAAG,MAAM,CAAS,EAAE,mDAAC;AAC5B,IAAA,iBAAiB,GAAG,MAAM,CAAiC,EAAE,6DAAC;AAC9D,IAAA,cAAc,GAAG,MAAM,CAAS,EAAE,0DAAC;AAE1C;;;;;;AAMG;AACI,IAAA,oBAAoB,GAA2C,QAAQ,CAAC,MAC7E,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,gEACnD;AAED;;;;;;AAMG;AACO,IAAA,yBAAyB,CACjC,IAA4C,EAC5C,YAAoB,EACpB,MAAkC,EAAA;QAElC,OAAO,IAAI,GAAG,YAAY,CAAC,KAAK,MAAM,CAAC,KAAK;IAC9C;AAEA;;;;;;AAMG;IACO,oBAAoB,CAAC,IAA4C,EAAE,OAAe,EAAA;QAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/F;AAEA;;;;;;;;AAQG;AACO,IAAA,0BAA0B,CAAC,IAAoC,EAAA;AACvE,QAAA,OAAO;AACJ,aAAA,GAAG,CAAC,CAAC,KAAK,MAAM;YACf,YAAY,EAAE,KAAK,CAAC,YAAY;AAChC,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC;AAC3D,SAAA,CAAC;AACD,aAAA,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD;AAEA;;;AAGG;AACI,IAAA,eAAe,CAAC,UAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9B;AAEA;;;;;AAKG;AACI,IAAA,wBAAwB,CAAC,YAAoB,EAAE,WAA4B,EAAE,QAAiB,EAAA;AACnG,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACxD,YAAA,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,EAAE;gBACvC,OAAO;AACL,oBAAA,GAAG,KAAK;AACR,oBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,KAAK,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;iBAC1G;YACH;AACA,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxC;AAEA;;;;AAIG;IACI,SAAS,CAAC,YAAoB,EAAE,WAA4B,EAAA;QACjE,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC;IACjE;AAEA;;;;;;;;AAQG;IACI,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;AAE3B,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AAC1D,YAAA,GAAG,KAAK;YACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACtC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE7C,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEA;;;;;;;;;;;;AAYG;IACI,gBAAgB,GAAA;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;AAC1D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE;QAErC,MAAM,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;QAE/D,IAAI,QAAQ,GAAG,IAAI;AAEnB,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,KAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CACjG,CACF;QACH;QAEA,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChF;AAEA,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5C;AAEA;;;;;;;;AAQG;IACI,cAAc,GAAA;QACnB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEA;;;;AAIG;AACI,IAAA,YAAY,CAAC,IAA8C,EAAA;AAChE,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;IACvC;AAEA;;;;;AAKG;AACI,IAAA,cAAc,CAAC,IAAoC,EAAE,OAAA,GAAkB,EAAE,EAAA;AAC9E,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,gBAAgB,EAAE;IACzB;uGApMoB,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,wEAD3B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FACH,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADjD,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;ACR3B;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs","sources":["../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/abstract-table-filter.component.ts","../../../projects/opal-frontend-common/components/abstract/abstract-table-filter/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.ts"],"sourcesContent":["import { Component, signal, computed, Signal } from '@angular/core';\nimport {\n IAbstractTableData,\n IAbstractTableFilterCategory,\n IAbstractTableFilterOption,\n} from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/interfaces';\nimport { SortableValuesType } from '@hmcts/opal-frontend-common/components/abstract/abstract-table-filter/types';\n\n@Component({ template: '' })\nexport abstract class AbstractTableFilterComponent {\n public displayTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filteredTableDataSignal = signal<IAbstractTableData<SortableValuesType>[]>([]);\n public filterTags = signal<IAbstractTableFilterCategory[]>([]);\n public keyword = signal<string>('');\n public appliedFilterTags = signal<IAbstractTableFilterCategory[]>([]);\n public appliedKeyword = signal<string>('');\n\n /**\n * A computed signal that returns the currently selected filter tags.\n * It filters the filterTags signal to include only those options that are selected,\n * grouped by their category name.\n *\n * @returns An array of filter categories each containing only the selected options.\n */\n public abstractSelectedTags: Signal<IAbstractTableFilterCategory[]> = computed(() =>\n this.getSelectedOptionsFromTags(this.filterTags()),\n );\n\n /**\n * Determines whether a given item matches a specific filter option within a category.\n * @param item The data item to test.\n * @param categoryName The category name to check within the item.\n * @param option The filter option to match against.\n * @returns True if the item's value for the category matches the option's value; otherwise false.\n */\n protected matchItemWithFilterOption(\n item: IAbstractTableData<SortableValuesType>,\n categoryName: string,\n option: IAbstractTableFilterOption,\n ): boolean {\n return item?.[categoryName] === option.value;\n }\n\n /**\n * Determines whether a given item matches the keyword filter.\n * Checks if any value in the item contains the keyword (case-insensitive).\n * @param item The data item to test.\n * @param keyword The keyword to match against.\n * @returns True if any value in the item contains the keyword; otherwise false.\n */\n protected matchItemWithKeyword(item: IAbstractTableData<SortableValuesType>, keyword: string): boolean {\n return Object.values(item).some((value) => value?.toString().toLowerCase().includes(keyword));\n }\n\n /**\n * Extracts and returns categories from the provided tags that have at least one selected option.\n *\n * For each category in the input array, this method filters its options to include only those marked as selected.\n * Only categories with at least one selected option are included in the returned array.\n *\n * @param tags - An array of category objects, each containing a list of options.\n * @returns An array of category objects, each with only the selected options, and only categories with at least one selected option.\n */\n protected getSelectedOptionsFromTags(tags: IAbstractTableFilterCategory[]): IAbstractTableFilterCategory[] {\n return tags\n .map((group) => ({\n categoryName: group.categoryName,\n options: group.options.filter((option) => option.selected),\n }))\n .filter((group) => group.options.length > 0);\n }\n\n /**\n * Updates the keyword used to filter the table data.\n * @param newKeyword The new keyword string to filter by.\n */\n public onKeywordChange(newKeyword: string): void {\n this.keyword.set(newKeyword);\n }\n\n /**\n * Updates the selection state of a filter option within a category.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to update.\n * @param selected Whether the option is selected (true) or deselected (false).\n */\n public onCategoryCheckboxChange(categoryName: string, optionValue: string | number, selected: boolean): void {\n const updatedFilterTags = this.filterTags().map((group) => {\n if (group.categoryName === categoryName) {\n return {\n ...group,\n options: group.options.map((option) => (option.value === optionValue ? { ...option, selected } : option)),\n };\n }\n return group;\n });\n this.filterTags.set(updatedFilterTags);\n }\n\n /**\n * Removes a selected filter tag by deselecting the corresponding filter option.\n * @param categoryName The name of the filter category.\n * @param optionValue The value of the filter option to remove.\n */\n public removeTag(categoryName: string, optionValue: string | number): void {\n this.onCategoryCheckboxChange(categoryName, optionValue, false);\n }\n\n /**\n * Clears all applied filters and resets the filter state.\n *\n * This method performs the following actions:\n * - Resets the keyword and applied keyword to empty strings.\n * - Iterates through all filter tag groups and sets each option's `selected` property to `false`.\n * - Updates both the current and applied filter tags with the cleared state.\n * - Applies the updated filter state.\n */\n public clearAllFilters(): void {\n this.keyword.set('');\n this.appliedKeyword.set('');\n\n const clearedFilterTags = this.filterTags().map((group) => ({\n ...group,\n options: group.options.map((option) => ({ ...option, selected: false })),\n }));\n\n this.filterTags.set(clearedFilterTags);\n this.appliedFilterTags.set(clearedFilterTags);\n\n this.applyFilterState();\n }\n\n /**\n * Initializes and updates the filtered table data based on the currently applied keyword and filter tags.\n *\n * This method performs the following steps:\n * 1. Retrieves the current table data, applied keyword, and filter tags.\n * 2. If filter tags are present, filters the data to include only items that match all selected filter options.\n * 3. If a keyword is present, further filters the data to include only items that match the keyword.\n * 4. Updates the filtered table data signal with the resulting filtered data.\n *\n * @remarks\n * - Filtering by tags requires each item to match every group of filter tags.\n * - Filtering by keyword is case-insensitive and trims whitespace.\n */\n public applyFilterState(): void {\n const data = this.displayTableDataSignal();\n const keyword = this.appliedKeyword().toLowerCase().trim();\n const tags = this.appliedFilterTags();\n\n const selectedTagGroups = this.getSelectedOptionsFromTags(tags);\n\n let filtered = data;\n\n if (selectedTagGroups.length > 0) {\n filtered = filtered.filter((item) =>\n selectedTagGroups.every((group) =>\n group.options.some((option) => this.matchItemWithFilterOption(item, group.categoryName, option)),\n ),\n );\n }\n\n if (keyword) {\n filtered = filtered.filter((item) => this.matchItemWithKeyword(item, keyword));\n }\n\n this.filteredTableDataSignal.set(filtered);\n }\n\n /**\n * Applies the current filter tags and keyword to the table data.\n *\n * This method updates the `appliedFilterTags` and `appliedKeyword` properties\n * with the current filter values, then re-initialises the filtered data set\n * by invoking `applyFilterState()`.\n *\n * Typically called when the user confirms or applies filter changes in the UI.\n */\n public onApplyFilters(): void {\n this.appliedFilterTags.set(this.filterTags());\n this.appliedKeyword.set(this.keyword());\n this.applyFilterState();\n }\n\n /**\n * Sets the data to be displayed in the table.\n *\n * @param data - An array of table data objects conforming to the `IAbstractTableData<SortableValuesType>` interface.\n */\n public setTableData(data: IAbstractTableData<SortableValuesType>[]): void {\n this.displayTableDataSignal.set(data);\n }\n\n /**\n * Resets the filter and keyword state to the provided values and reapplies them.\n *\n * @param tags - The filter tag state to apply (including selected values).\n * @param keyword - The keyword string to apply (optional, defaults to empty).\n */\n public resetFiltersTo(tags: IAbstractTableFilterCategory[], keyword: string = ''): void {\n this.filterTags.set(tags);\n this.keyword.set(keyword);\n this.appliedFilterTags.set(tags);\n this.appliedKeyword.set(keyword);\n this.applyFilterState();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs
CHANGED
|
@@ -221,10 +221,10 @@ class AlphagovAccessibleAutocompleteComponent {
|
|
|
221
221
|
this.describedByObserver?.disconnect();
|
|
222
222
|
this.containerObserver?.disconnect();
|
|
223
223
|
}
|
|
224
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
225
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
224
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
225
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: AlphagovAccessibleAutocompleteComponent, isStandalone: true, selector: "opal-lib-alphagov-accessible-autocomplete", inputs: { labelText: "labelText", labelClasses: "labelClasses", inputId: "inputId", inputName: "inputName", inputClasses: "inputClasses", hintText: "hintText", autoCompleteItems: "autoCompleteItems", showAllValues: "showAllValues", errors: "errors", control: "control" }, viewQueries: [{ propertyName: "autocompleteContainer", first: true, predicate: ["autocomplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\n</div>\n", styles: [":host ::ng-deep .autocomplete__option{font-family:GDS Transport,arial,sans-serif}:host ::ng-deep .govuk-input--error input{border-color:#d4351c}:host ::ng-deep .autocomplete__input{background-color:#fff}:host ::ng-deep .autocomplete__dropdown-arrow-down{z-index:1!important;pointer-events:none!important}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
226
226
|
}
|
|
227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AlphagovAccessibleAutocompleteComponent, decorators: [{
|
|
228
228
|
type: Component,
|
|
229
229
|
args: [{ selector: 'opal-lib-alphagov-accessible-autocomplete', imports: [ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"!!errors\">\n <label class=\"govuk-label {{ labelClasses }}\" [for]=\"autoCompleteId\"> {{ labelText }} </label>\n @if (hintText) {\n <div id=\"{{ inputId }}-hint\" class=\"govuk-hint\">\n {{ hintText }}\n </div>\n }\n\n @if (errors) {\n <p id=\"{{ this.autoCompleteId }}-error-message\" class=\"govuk-error-message\">\n <span class=\"govuk-visually-hidden\">Error: </span> {{ errors }}\n </p>\n }\n\n <div #autocomplete id=\"{{ autoCompleteId }}-container\" class=\"{{ inputClasses }}\"></div>\n <input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"hidden\"\n [formControl]=\"getControl\"\n [attr.aria-describedby]=\"hintText ? inputId + '-hint' : null\"\n />\n</div>\n", styles: [":host ::ng-deep .autocomplete__option{font-family:GDS Transport,arial,sans-serif}:host ::ng-deep .govuk-input--error input{border-color:#d4351c}:host ::ng-deep .autocomplete__input{background-color:#fff}:host ::ng-deep .autocomplete__dropdown-arrow-down{z-index:1!important;pointer-events:none!important}\n"] }]
|
|
230
230
|
}], ctorParameters: () => [], propDecorators: { labelText: [{
|
|
@@ -3,10 +3,10 @@ import { HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
3
3
|
|
|
4
4
|
class CustomAccountInformationItemLabelComponent {
|
|
5
5
|
hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-font-weight-bold govuk-!-margin-0';
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationItemLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CustomAccountInformationItemLabelComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationItemLabelComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
11
|
args: [{ selector: 'opal-lib-custom-account-information-item-label, [opal-lib-custom-account-information-item-label]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
12
12
|
}], propDecorators: { hostClass: [{
|
|
@@ -3,10 +3,10 @@ import { HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
3
3
|
|
|
4
4
|
class CustomAccountInformationItemValueComponent {
|
|
5
5
|
hostClass = 'govuk-body govuk-!-font-size-16 govuk-!-margin-0';
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationItemValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CustomAccountInformationItemValueComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]", host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationItemValueComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
11
|
args: [{ selector: 'opal-lib-custom-account-information-item-value, [opal-lib-custom-account-information-item-value]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
12
12
|
}], propDecorators: { hostClass: [{
|
|
@@ -6,10 +6,10 @@ class CustomAccountInformationItemComponent {
|
|
|
6
6
|
get hostClass() {
|
|
7
7
|
return this.itemClasses;
|
|
8
8
|
}
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CustomAccountInformationItemComponent, isStandalone: true, selector: "opal-lib-custom-account-information-item", inputs: { itemClasses: "itemClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationItemComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{ selector: 'opal-lib-custom-account-information-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
15
15
|
}], propDecorators: { itemClasses: [{
|
package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs
CHANGED
|
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class CustomAccountInformationComponent {
|
|
5
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
6
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CustomAccountInformationComponent, isStandalone: true, selector: "opal-lib-custom-account-information, [opal-lib-custom-account-information]", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomAccountInformationComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ selector: 'opal-lib-custom-account-information, [opal-lib-custom-account-information]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
11
11
|
}] });
|
|
@@ -10,10 +10,10 @@ class CustomActionLinksComponent {
|
|
|
10
10
|
get hostClass() {
|
|
11
11
|
return this.classSize;
|
|
12
12
|
}
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
14
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomActionLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CustomActionLinksComponent, isStandalone: true, selector: "opal-lib-custom-action-links", inputs: { id: "id", classSize: "classSize" }, host: { properties: { "attr.id": "this.hostId", "class": "this.hostClass" } }, ngImport: i0, template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CustomActionLinksComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ selector: 'opal-lib-custom-action-links', template: "<hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible custom-section-break--2px\" />\n<ng-content select=\"[heading]\"></ng-content>\n<ng-content select=\"[links]\"></ng-content>\n" }]
|
|
19
19
|
}], propDecorators: { id: [{
|