@hmcts/opal-frontend-common 0.0.45 → 0.0.47

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.
Files changed (145) hide show
  1. package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-C4LElGHn.mjs → hmcts-opal-frontend-common-access-denied.component-dFPqF73L.mjs} +4 -4
  2. package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-C4LElGHn.mjs.map → hmcts-opal-frontend-common-access-denied.component-dFPqF73L.mjs.map} +1 -1
  3. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs +3 -3
  4. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs +3 -3
  5. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs +3 -3
  6. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs +3 -3
  7. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs +3 -3
  8. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +3 -3
  9. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +3 -3
  10. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs +3 -3
  11. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs +3 -3
  12. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs +3 -3
  13. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs +3 -3
  14. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs +3 -3
  15. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs +3 -3
  16. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs +3 -3
  17. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs +3 -3
  18. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs +3 -3
  19. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs +3 -3
  20. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs +3 -3
  21. 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
  22. 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
  23. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs +3 -3
  24. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs +3 -3
  25. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs +3 -3
  26. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs +3 -3
  27. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs +3 -3
  28. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs +3 -3
  29. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs +3 -3
  30. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs +3 -3
  31. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs +3 -3
  32. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs +12 -12
  33. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs +3 -3
  34. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs +3 -3
  35. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs +3 -3
  36. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs +3 -3
  37. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs +6 -6
  38. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs +3 -3
  39. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs +3 -3
  40. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs +3 -3
  41. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs +3 -3
  42. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs +3 -3
  43. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs +3 -3
  44. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs +3 -3
  45. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs +12 -12
  46. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs +3 -3
  47. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs +6 -6
  48. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs +12 -12
  49. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs +12 -12
  50. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs +3 -3
  51. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs +3 -3
  52. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs +3 -3
  53. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs +3 -3
  54. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs +6 -6
  55. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs +3 -3
  56. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs +3 -3
  57. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs +4 -4
  58. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs.map +1 -1
  59. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs +3 -3
  60. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs +21 -21
  61. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs +3 -3
  62. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs +3 -3
  63. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +3 -3
  64. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs +3 -3
  65. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs +3 -3
  66. 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
  67. 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
  68. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs +3 -3
  69. 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
  70. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs +3 -3
  71. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs +3 -3
  72. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs +4 -4
  73. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs.map +1 -1
  74. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs +6 -6
  75. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs +3 -3
  76. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs +3 -3
  77. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs +3 -3
  78. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs +6 -6
  79. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs +18 -18
  80. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs +6 -6
  81. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs +3 -3
  82. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs +6 -6
  83. package/fesm2022/hmcts-opal-frontend-common-concurrency-failure.component-B44V5uH3.mjs +15 -0
  84. package/fesm2022/hmcts-opal-frontend-common-concurrency-failure.component-B44V5uH3.mjs.map +1 -0
  85. package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs +3 -3
  86. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs +3 -3
  87. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error-constants.mjs +18 -0
  88. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error-constants.mjs.map +1 -0
  89. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error-interfaces.mjs +4 -0
  90. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error-interfaces.mjs.map +1 -0
  91. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error.mjs +114 -7
  92. package/fesm2022/hmcts-opal-frontend-common-interceptors-http-error.mjs.map +1 -1
  93. package/fesm2022/hmcts-opal-frontend-common-internal-server-error.component--U40lt8r.mjs +25 -0
  94. package/fesm2022/hmcts-opal-frontend-common-internal-server-error.component--U40lt8r.mjs.map +1 -0
  95. package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-C4LElGHn.mjs → hmcts-opal-frontend-common-pages-access-denied.component-dFPqF73L.mjs} +4 -4
  96. package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-C4LElGHn.mjs.map → hmcts-opal-frontend-common-pages-access-denied.component-dFPqF73L.mjs.map} +1 -1
  97. package/fesm2022/hmcts-opal-frontend-common-pages-concurrency-failure.component-B44V5uH3.mjs +15 -0
  98. package/fesm2022/hmcts-opal-frontend-common-pages-concurrency-failure.component-B44V5uH3.mjs.map +1 -0
  99. package/fesm2022/hmcts-opal-frontend-common-pages-internal-server-error.component--U40lt8r.mjs +25 -0
  100. package/fesm2022/hmcts-opal-frontend-common-pages-internal-server-error.component--U40lt8r.mjs.map +1 -0
  101. package/fesm2022/hmcts-opal-frontend-common-pages-permission-denied.component-DhK3JRl_.mjs +15 -0
  102. package/fesm2022/hmcts-opal-frontend-common-pages-permission-denied.component-DhK3JRl_.mjs.map +1 -0
  103. package/fesm2022/hmcts-opal-frontend-common-pages-routing-constants.mjs +6 -0
  104. package/fesm2022/hmcts-opal-frontend-common-pages-routing-constants.mjs.map +1 -1
  105. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-X0DpymsU.mjs → hmcts-opal-frontend-common-pages-sign-in-stub.component-c5YhkBED.mjs} +4 -4
  106. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-X0DpymsU.mjs.map → hmcts-opal-frontend-common-pages-sign-in-stub.component-c5YhkBED.mjs.map} +1 -1
  107. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-B8WpVEYN.mjs → hmcts-opal-frontend-common-pages-sign-in.component-DX9aGho7.mjs} +4 -4
  108. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-B8WpVEYN.mjs.map → hmcts-opal-frontend-common-pages-sign-in.component-DX9aGho7.mjs.map} +1 -1
  109. package/fesm2022/hmcts-opal-frontend-common-pages.mjs +20 -2
  110. package/fesm2022/hmcts-opal-frontend-common-pages.mjs.map +1 -1
  111. package/fesm2022/hmcts-opal-frontend-common-permission-denied.component-DhK3JRl_.mjs +15 -0
  112. package/fesm2022/hmcts-opal-frontend-common-permission-denied.component-DhK3JRl_.mjs.map +1 -0
  113. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs +3 -3
  114. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs +3 -3
  115. package/fesm2022/hmcts-opal-frontend-common-pipes-national-insurance.mjs +3 -3
  116. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs +3 -3
  117. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs +3 -3
  118. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs +3 -3
  119. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs +3 -3
  120. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs +3 -3
  121. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs +3 -3
  122. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service.mjs +3 -3
  123. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs +3 -3
  124. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs +3 -3
  125. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs +3 -3
  126. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs +3 -3
  127. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs +3 -3
  128. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs +3 -3
  129. package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-X0DpymsU.mjs → hmcts-opal-frontend-common-sign-in-stub.component-c5YhkBED.mjs} +4 -4
  130. package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-X0DpymsU.mjs.map → hmcts-opal-frontend-common-sign-in-stub.component-c5YhkBED.mjs.map} +1 -1
  131. package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-keH2kx9e.mjs → hmcts-opal-frontend-common-sign-in.component-DrkgJ0xr.mjs} +4 -4
  132. package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-keH2kx9e.mjs.map → hmcts-opal-frontend-common-sign-in.component-DrkgJ0xr.mjs.map} +1 -1
  133. package/fesm2022/hmcts-opal-frontend-common-stores-global-constants.mjs +13 -0
  134. package/fesm2022/hmcts-opal-frontend-common-stores-global-constants.mjs.map +1 -0
  135. package/fesm2022/hmcts-opal-frontend-common-stores-global.mjs +5 -1
  136. package/fesm2022/hmcts-opal-frontend-common-stores-global.mjs.map +1 -1
  137. package/fesm2022/hmcts-opal-frontend-common.mjs +20 -2
  138. package/fesm2022/hmcts-opal-frontend-common.mjs.map +1 -1
  139. package/interceptors/http-error/constants/index.d.ts +7 -0
  140. package/interceptors/http-error/interfaces/index.d.ts +11 -0
  141. package/package.json +16 -1
  142. package/pages/routing/interfaces/index.d.ts +3 -0
  143. package/stores/global/constants/index.d.ts +5 -0
  144. package/stores/global/index.d.ts +11 -6
  145. package/stores/global/interfaces/index.d.ts +6 -4
@@ -46,10 +46,10 @@ class MojSortableTableHeaderSortIconDirective {
46
46
  svg.appendChild(path);
47
47
  }
48
48
  }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableHeaderSortIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: MojSortableTableHeaderSortIconDirective, isStandalone: true, selector: "[opalLibMojSortableTableHeaderSortIcon]", inputs: { sortDirection: ["opalLibMojSortableTableHeaderSortIcon", "sortDirection"] }, usesOnChanges: true, ngImport: i0 });
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableHeaderSortIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: MojSortableTableHeaderSortIconDirective, isStandalone: true, selector: "[opalLibMojSortableTableHeaderSortIcon]", inputs: { sortDirection: ["opalLibMojSortableTableHeaderSortIcon", "sortDirection"] }, usesOnChanges: true, ngImport: i0 });
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableHeaderSortIconDirective, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableHeaderSortIconDirective, decorators: [{
53
53
  type: Directive,
54
54
  args: [{
55
55
  selector: '[opalLibMojSortableTableHeaderSortIcon]',
@@ -86,10 +86,10 @@ class MojSortableTableHeaderComponent {
86
86
  sortType: newDirection,
87
87
  });
88
88
  }
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSortableTableHeaderComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-header, [opal-lib-moj-sortable-table-header]", inputs: { columnKey: "columnKey", sortDirection: "sortDirection", dataIndex: "dataIndex" }, outputs: { sortChange: "sortChange" }, host: { properties: { "attr.aria-sort": "this.ariaSort", "scope": "this.hostScope", "class": "this.hostClass" } }, ngImport: i0, template: "<button type=\"button\" (click)=\"toggleSort()\" [attr.data-index]=\"dataIndex\">\n <ng-content></ng-content>\n <svg\n [opalLibMojSortableTableHeaderSortIcon]=\"sortDirection\"\n width=\"22\"\n height=\"22\"\n focusable=\"false\"\n aria-hidden=\"true\"\n role=\"img\"\n vviewBox=\"0 0 22 22\"\n ></svg>\n</button>\n", dependencies: [{ kind: "directive", type: MojSortableTableHeaderSortIconDirective, selector: "[opalLibMojSortableTableHeaderSortIcon]", inputs: ["opalLibMojSortableTableHeaderSortIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSortableTableHeaderComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-header, [opal-lib-moj-sortable-table-header]", inputs: { columnKey: "columnKey", sortDirection: "sortDirection", dataIndex: "dataIndex" }, outputs: { sortChange: "sortChange" }, host: { properties: { "attr.aria-sort": "this.ariaSort", "scope": "this.hostScope", "class": "this.hostClass" } }, ngImport: i0, template: "<button type=\"button\" (click)=\"toggleSort()\" [attr.data-index]=\"dataIndex\">\n <ng-content></ng-content>\n <svg\n [opalLibMojSortableTableHeaderSortIcon]=\"sortDirection\"\n width=\"22\"\n height=\"22\"\n focusable=\"false\"\n aria-hidden=\"true\"\n role=\"img\"\n vviewBox=\"0 0 22 22\"\n ></svg>\n</button>\n", dependencies: [{ kind: "directive", type: MojSortableTableHeaderSortIconDirective, selector: "[opalLibMojSortableTableHeaderSortIcon]", inputs: ["opalLibMojSortableTableHeaderSortIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableHeaderComponent, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableHeaderComponent, decorators: [{
93
93
  type: Component,
94
94
  args: [{ selector: 'opal-lib-moj-sortable-table-header, [opal-lib-moj-sortable-table-header]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MojSortableTableHeaderSortIconDirective], template: "<button type=\"button\" (click)=\"toggleSort()\" [attr.data-index]=\"dataIndex\">\n <ng-content></ng-content>\n <svg\n [opalLibMojSortableTableHeaderSortIcon]=\"sortDirection\"\n width=\"22\"\n height=\"22\"\n focusable=\"false\"\n aria-hidden=\"true\"\n role=\"img\"\n vviewBox=\"0 0 22 22\"\n ></svg>\n</button>\n" }]
95
95
  }], propDecorators: { columnKey: [{
@@ -117,10 +117,10 @@ class MojSortableTableRowDataComponent {
117
117
  get hostId() {
118
118
  return this.id;
119
119
  }
120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableRowDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSortableTableRowDataComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-row-data,[opal-lib-moj-sortable-table-row-data]", inputs: { id: "id" }, host: { properties: { "class": "this.hostClass", "id": "this.hostId" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
120
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableRowDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSortableTableRowDataComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-row-data,[opal-lib-moj-sortable-table-row-data]", inputs: { id: "id" }, host: { properties: { "class": "this.hostClass", "id": "this.hostId" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableRowDataComponent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableRowDataComponent, decorators: [{
124
124
  type: Component,
125
125
  args: [{ selector: 'opal-lib-moj-sortable-table-row-data,[opal-lib-moj-sortable-table-row-data]', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
126
126
  }], propDecorators: { id: [{
@@ -139,10 +139,10 @@ class MojSortableTableRowComponent {
139
139
  get hostClass() {
140
140
  return `govuk-table__row ${this.bodyRowClasses}`;
141
141
  }
142
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
143
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSortableTableRowComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-row,[opal-lib-moj-sortable-table-row]", inputs: { bodyRowClasses: "bodyRowClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSortableTableRowComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-row,[opal-lib-moj-sortable-table-row]", inputs: { bodyRowClasses: "bodyRowClasses" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
144
144
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableRowComponent, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableRowComponent, decorators: [{
146
146
  type: Component,
147
147
  args: [{ selector: 'opal-lib-moj-sortable-table-row,[opal-lib-moj-sortable-table-row]', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
148
148
  }], propDecorators: { bodyRowClasses: [{
@@ -156,10 +156,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
156
156
  class MojSortableTableStatusComponent {
157
157
  columnTitle;
158
158
  sortDirection;
159
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSortableTableStatusComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-status", inputs: { columnTitle: "columnTitle", sortDirection: "sortDirection" }, ngImport: i0, template: "<output aria-live=\"polite\" aria-atomic=\"true\" class=\"govuk-visually-hidden\">\n Sorted by {{ columnTitle }} ({{ sortDirection }})\n</output>\n" });
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSortableTableStatusComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table-status", inputs: { columnTitle: "columnTitle", sortDirection: "sortDirection" }, ngImport: i0, template: "<output aria-live=\"polite\" aria-atomic=\"true\" class=\"govuk-visually-hidden\">\n Sorted by {{ columnTitle }} ({{ sortDirection }})\n</output>\n" });
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableStatusComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableStatusComponent, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'opal-lib-moj-sortable-table-status', standalone: true, template: "<output aria-live=\"polite\" aria-atomic=\"true\" class=\"govuk-visually-hidden\">\n Sorted by {{ columnTitle }} ({{ sortDirection }})\n</output>\n" }]
165
165
  }], propDecorators: { columnTitle: [{
@@ -172,10 +172,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
172
172
 
173
173
  class MojSortableTableComponent {
174
174
  tableClasses;
175
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSortableTableComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table", inputs: { tableClasses: "tableClasses" }, ngImport: i0, template: "<table class=\"govuk-table {{ tableClasses }}\" data-module=\"moj-sortable-table\">\n <caption class=\"govuk-table__caption\">\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <ng-content select=\"[head]\"></ng-content>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-content select=\"[row]\"></ng-content>\n <ng-content select=\"[results]\"></ng-content>\n </tbody>\n</table>\n<ng-content select=\"[status]\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSortableTableComponent, isStandalone: true, selector: "opal-lib-moj-sortable-table", inputs: { tableClasses: "tableClasses" }, ngImport: i0, template: "<table class=\"govuk-table {{ tableClasses }}\" data-module=\"moj-sortable-table\">\n <caption class=\"govuk-table__caption\">\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <ng-content select=\"[head]\"></ng-content>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-content select=\"[row]\"></ng-content>\n <ng-content select=\"[results]\"></ng-content>\n </tbody>\n</table>\n<ng-content select=\"[status]\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
177
  }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSortableTableComponent, decorators: [{
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSortableTableComponent, decorators: [{
179
179
  type: Component,
180
180
  args: [{ selector: 'opal-lib-moj-sortable-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"govuk-table {{ tableClasses }}\" data-module=\"moj-sortable-table\">\n <caption class=\"govuk-table__caption\">\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <ng-content select=\"[head]\"></ng-content>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-content select=\"[row]\"></ng-content>\n <ng-content select=\"[results]\"></ng-content>\n </tbody>\n</table>\n<ng-content select=\"[status]\"></ng-content>\n" }]
181
181
  }], propDecorators: { tableClasses: [{
@@ -22,10 +22,10 @@ class MojSubNavigationItemComponent {
22
22
  // Basically we want to mimic the behaviour of the GDS tabs component, as this is how these will be used.
23
23
  this.router.navigate(['./'], { relativeTo: this.route, fragment: item });
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSubNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSubNavigationItemComponent, isStandalone: true, selector: "opal-lib-moj-sub-navigation-item, [opal-lib-moj-sub-navigation-item]", inputs: { subNavItemId: "subNavItemId", subNavItemFragment: "subNavItemFragment", subNavItemText: "subNavItemText", activeSubNavItemFragment: "activeSubNavItemFragment" }, host: { properties: { "class": "this.hostClass", "id": "this.hostId" } }, ngImport: i0, template: "<a\n class=\"moj-sub-navigation__link\"\n [attr.aria-current]=\"subNavItemFragment === activeSubNavItemFragment ? 'page' : ''\"\n (click)=\"handleItemClick($event, subNavItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, subNavItemFragment)\"\n tabindex=\"0\"\n href=\"#\"\n>\n {{ subNavItemText }}\n <ng-content select=\"[badge]\"></ng-content>\n</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSubNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSubNavigationItemComponent, isStandalone: true, selector: "opal-lib-moj-sub-navigation-item, [opal-lib-moj-sub-navigation-item]", inputs: { subNavItemId: "subNavItemId", subNavItemFragment: "subNavItemFragment", subNavItemText: "subNavItemText", activeSubNavItemFragment: "activeSubNavItemFragment" }, host: { properties: { "class": "this.hostClass", "id": "this.hostId" } }, ngImport: i0, template: "<a\n class=\"moj-sub-navigation__link\"\n [attr.aria-current]=\"subNavItemFragment === activeSubNavItemFragment ? 'page' : ''\"\n (click)=\"handleItemClick($event, subNavItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, subNavItemFragment)\"\n tabindex=\"0\"\n href=\"#\"\n>\n {{ subNavItemText }}\n <ng-content select=\"[badge]\"></ng-content>\n</a>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSubNavigationItemComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSubNavigationItemComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'opal-lib-moj-sub-navigation-item, [opal-lib-moj-sub-navigation-item]', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"moj-sub-navigation__link\"\n [attr.aria-current]=\"subNavItemFragment === activeSubNavItemFragment ? 'page' : ''\"\n (click)=\"handleItemClick($event, subNavItemFragment)\"\n (keyup.enter)=\"handleItemClick($event, subNavItemFragment)\"\n tabindex=\"0\"\n href=\"#\"\n>\n {{ subNavItemText }}\n <ng-content select=\"[badge]\"></ng-content>\n</a>\n" }]
31
31
  }], propDecorators: { subNavItemId: [{
@@ -76,10 +76,10 @@ class MojSubNavigationComponent {
76
76
  this.ngUnsubscribe.next();
77
77
  this.ngUnsubscribe.complete();
78
78
  }
79
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSubNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojSubNavigationComponent, isStandalone: true, selector: "opal-lib-moj-sub-navigation", inputs: { subNavId: "subNavId" }, outputs: { activeSubNavItemFragment: "activeSubNavItemFragment" }, ngImport: i0, template: "<nav class=\"moj-sub-navigation\" aria-label=\"Sub navigation\" [id]=\"subNavId\">\n <ul class=\"moj-sub-navigation__list\">\n <ng-content></ng-content>\n </ul>\n</nav>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSubNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojSubNavigationComponent, isStandalone: true, selector: "opal-lib-moj-sub-navigation", inputs: { subNavId: "subNavId" }, outputs: { activeSubNavItemFragment: "activeSubNavItemFragment" }, ngImport: i0, template: "<nav class=\"moj-sub-navigation\" aria-label=\"Sub navigation\" [id]=\"subNavId\">\n <ul class=\"moj-sub-navigation__list\">\n <ng-content></ng-content>\n </ul>\n</nav>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojSubNavigationComponent, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojSubNavigationComponent, decorators: [{
83
83
  type: Component,
84
84
  args: [{ selector: 'opal-lib-moj-sub-navigation', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"moj-sub-navigation\" aria-label=\"Sub navigation\" [id]=\"subNavId\">\n <ul class=\"moj-sub-navigation__list\">\n <ng-content></ng-content>\n </ul>\n</nav>\n" }]
85
85
  }], propDecorators: { subNavId: [{
@@ -5,10 +5,10 @@ class MojTicketPanelComponent {
5
5
  componentClasses;
6
6
  sectionClasses;
7
7
  alert;
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojTicketPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojTicketPanelComponent, isStandalone: true, selector: "opal-lib-moj-ticket-panel", inputs: { componentClasses: "componentClasses", sectionClasses: "sectionClasses", alert: "alert" }, ngImport: i0, template: "<article class=\"moj-ticket-panel {{ componentClasses }}\">\n <section class=\"moj-ticket-panel__content {{ sectionClasses }}\" [attr.role]=\"alert ? 'alert' : ''\">\n <ng-content></ng-content>\n </section>\n</article>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojTicketPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojTicketPanelComponent, isStandalone: true, selector: "opal-lib-moj-ticket-panel", inputs: { componentClasses: "componentClasses", sectionClasses: "sectionClasses", alert: "alert" }, ngImport: i0, template: "<article class=\"moj-ticket-panel {{ componentClasses }}\">\n <section class=\"moj-ticket-panel__content {{ sectionClasses }}\" [attr.role]=\"alert ? 'alert' : ''\">\n <ng-content></ng-content>\n </section>\n</article>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojTicketPanelComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojTicketPanelComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'opal-lib-moj-ticket-panel', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<article class=\"moj-ticket-panel {{ componentClasses }}\">\n <section class=\"moj-ticket-panel__content {{ sectionClasses }}\" [attr.role]=\"alert ? 'alert' : ''\">\n <ng-content></ng-content>\n </section>\n</article>\n" }]
14
14
  }], propDecorators: { componentClasses: [{
@@ -2,19 +2,19 @@ import * as i0 from '@angular/core';
2
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  class MojTimelineItemComponent {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojTimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojTimelineItemComponent, isStandalone: true, selector: "opal-lib-moj-timeline-item", ngImport: i0, template: "<div class=\"moj-timeline__item\">\n <div class=\"moj-timeline__header\">\n <h2 class=\"moj-timeline__title\"><ng-content select=\"[title]\"></ng-content></h2>\n\n <p class=\"moj-timeline__byline\">&nbsp;by <ng-content select=\"[user]\"></ng-content></p>\n </div>\n <p class=\"moj-timeline__date\">\n <time datetime=\"\"><ng-content select=\"[date]\"></ng-content></time>\n </p>\n <div class=\"moj-timeline__description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojTimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojTimelineItemComponent, isStandalone: true, selector: "opal-lib-moj-timeline-item", ngImport: i0, template: "<div class=\"moj-timeline__item\">\n <div class=\"moj-timeline__header\">\n <h2 class=\"moj-timeline__title\"><ng-content select=\"[title]\"></ng-content></h2>\n\n <p class=\"moj-timeline__byline\">&nbsp;by <ng-content select=\"[user]\"></ng-content></p>\n </div>\n <p class=\"moj-timeline__date\">\n <time datetime=\"\"><ng-content select=\"[date]\"></ng-content></time>\n </p>\n <div class=\"moj-timeline__description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojTimelineItemComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojTimelineItemComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'opal-lib-moj-timeline-item', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-timeline__item\">\n <div class=\"moj-timeline__header\">\n <h2 class=\"moj-timeline__title\"><ng-content select=\"[title]\"></ng-content></h2>\n\n <p class=\"moj-timeline__byline\">&nbsp;by <ng-content select=\"[user]\"></ng-content></p>\n </div>\n <p class=\"moj-timeline__date\">\n <time datetime=\"\"><ng-content select=\"[date]\"></ng-content></time>\n </p>\n <div class=\"moj-timeline__description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n</div>\n" }]
11
11
  }] });
12
12
 
13
13
  class MojTimelineComponent {
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: MojTimelineComponent, isStandalone: true, selector: "opal-lib-moj-timeline", ngImport: i0, template: "<div class=\"moj-timeline\"><ng-content></ng-content></div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: MojTimelineComponent, isStandalone: true, selector: "opal-lib-moj-timeline", ngImport: i0, template: "<div class=\"moj-timeline\"><ng-content></ng-content></div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: MojTimelineComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MojTimelineComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'opal-lib-moj-timeline', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"moj-timeline\"><ng-content></ng-content></div>\n" }]
20
20
  }] });
@@ -0,0 +1,15 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+
5
+ class ConcurrencyFailureComponent {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ConcurrencyFailureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: ConcurrencyFailureComponent, isStandalone: true, selector: "opal-lib-concurrency-failure", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem</h1>\n <p class=\"govuk-body\">Something else was changed while you were doing this.</p>\n <p class=\"govuk-body\">Your changes have not been saved. You will need to start again.</p>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ConcurrencyFailureComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'opal-lib-concurrency-failure', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem</h1>\n <p class=\"govuk-body\">Something else was changed while you were doing this.</p>\n <p class=\"govuk-body\">Your changes have not been saved. You will need to start again.</p>\n </div>\n</div>\n" }]
12
+ }] });
13
+
14
+ export { ConcurrencyFailureComponent };
15
+ //# sourceMappingURL=hmcts-opal-frontend-common-concurrency-failure.component-B44V5uH3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-concurrency-failure.component-B44V5uH3.mjs","sources":["../../../projects/opal-frontend-common/pages/concurrency-failure/concurrency-failure.component.ts","../../../projects/opal-frontend-common/pages/concurrency-failure/concurrency-failure.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'opal-lib-concurrency-failure',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './concurrency-failure.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConcurrencyFailureComponent {}\n","<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem</h1>\n <p class=\"govuk-body\">Something else was changed while you were doing this.</p>\n <p class=\"govuk-body\">Your changes have not been saved. You will need to start again.</p>\n </div>\n</div>\n"],"names":[],"mappings":";;;;MAUa,2BAA2B,CAAA;uGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVxC,8VAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAC5B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8VAAA,EAAA;;;;;"}
@@ -23,10 +23,10 @@ class CapitalisationDirective {
23
23
  this.destroy$.next();
24
24
  this.destroy$.complete();
25
25
  }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CapitalisationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CapitalisationDirective, isStandalone: true, selector: "[opalLibCapitaliseAllCharacters]", inputs: { control: ["opalLibCapitaliseAllCharacters", "control"] }, ngImport: i0 });
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CapitalisationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
27
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: CapitalisationDirective, isStandalone: true, selector: "[opalLibCapitaliseAllCharacters]", inputs: { control: ["opalLibCapitaliseAllCharacters", "control"] }, ngImport: i0 });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CapitalisationDirective, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CapitalisationDirective, decorators: [{
30
30
  type: Directive,
31
31
  args: [{
32
32
  selector: '[opalLibCapitaliseAllCharacters]',
@@ -22,10 +22,10 @@ class GovukButtonDirective {
22
22
  handleButtonClick() {
23
23
  this.buttonClickEvent.emit(true);
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: GovukButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: GovukButtonDirective, isStandalone: true, selector: "[opalLibGovukButton]", inputs: { buttonId: "buttonId", buttonClasses: "buttonClasses", type: "type" }, outputs: { buttonClickEvent: "buttonClickEvent" }, host: { properties: { "attr.id": "this.id", "attr.type": "this.buttonType", "class": "this.classes", "attr.data-module": "this.dataModule" } }, ngImport: i0 });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: GovukButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: GovukButtonDirective, isStandalone: true, selector: "[opalLibGovukButton]", inputs: { buttonId: "buttonId", buttonClasses: "buttonClasses", type: "type" }, outputs: { buttonClickEvent: "buttonClickEvent" }, host: { properties: { "attr.id": "this.id", "attr.type": "this.buttonType", "class": "this.classes", "attr.data-module": "this.dataModule" } }, ngImport: i0 });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: GovukButtonDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: GovukButtonDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  selector: '[opalLibGovukButton]',
@@ -0,0 +1,18 @@
1
+ const ERROR_RESPONSE = {
2
+ type: null,
3
+ title: null,
4
+ status: null,
5
+ detail: null,
6
+ instance: null,
7
+ operation_id: null,
8
+ retriable: null,
9
+ };
10
+
11
+ const GENERIC_HTTP_ERROR_MESSAGE = 'You can try again. If the problem persists, contact the service desk.';
12
+
13
+ /**
14
+ * Generated bundle index. Do not edit.
15
+ */
16
+
17
+ export { ERROR_RESPONSE, GENERIC_HTTP_ERROR_MESSAGE };
18
+ //# sourceMappingURL=hmcts-opal-frontend-common-interceptors-http-error-constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-interceptors-http-error-constants.mjs","sources":["../../../projects/opal-frontend-common/interceptors/http-error/constants/http-error-message-response.constant.ts","../../../projects/opal-frontend-common/interceptors/http-error/constants/http-error-message.constant.ts","../../../projects/opal-frontend-common/interceptors/http-error/constants/hmcts-opal-frontend-common-interceptors-http-error-constants.ts"],"sourcesContent":["import { IErrorResponse } from '@hmcts/opal-frontend-common/interceptors/http-error/interfaces';\n\nexport const ERROR_RESPONSE: IErrorResponse = {\n type: null,\n title: null,\n status: null,\n detail: null,\n instance: null,\n operation_id: null,\n retriable: null,\n};\n","export const GENERIC_HTTP_ERROR_MESSAGE = 'You can try again. If the problem persists, contact the service desk.';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAEO,MAAM,cAAc,GAAmB;AAC5C,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,SAAS,EAAE,IAAI;;;ACTV,MAAM,0BAA0B,GAAG;;ACA1C;;AAEG;;;;"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ //# sourceMappingURL=hmcts-opal-frontend-common-interceptors-http-error-interfaces.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-interceptors-http-error-interfaces.mjs","sources":["../../../projects/opal-frontend-common/interceptors/http-error/interfaces/hmcts-opal-frontend-common-interceptors-http-error-interfaces.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -1,24 +1,131 @@
1
1
  import { inject } from '@angular/core';
2
+ import { Router } from '@angular/router';
2
3
  import { tap, catchError, throwError } from 'rxjs';
3
4
  import { AppInsightsService } from '@hmcts/opal-frontend-common/services/app-insights-service';
4
5
  import { GlobalStore } from '@hmcts/opal-frontend-common/stores/global';
6
+ import { GLOBAL_ERROR_STATE } from '@hmcts/opal-frontend-common/stores/global/constants';
5
7
 
6
- const GENERIC_HTTP_ERROR_MESSAGE = 'An error has occurred. Please try again, if this problem persists, contact the help desk.';
8
+ const GENERIC_HTTP_ERROR_MESSAGE = 'You can try again. If the problem persists, contact the service desk.';
7
9
 
10
+ const ERROR_RESPONSE = {
11
+ type: null,
12
+ title: null,
13
+ status: null,
14
+ detail: null,
15
+ instance: null,
16
+ operation_id: null,
17
+ retriable: null,
18
+ };
19
+
20
+ /**
21
+ * Checks if the error is a non-retriable error
22
+ * @param error - The HTTP error response
23
+ * @returns true if the error has retriable: false
24
+ */
25
+ function isNonRetriableError(error) {
26
+ if (typeof error === 'object' && error !== null && 'error' in error) {
27
+ const err = error;
28
+ return err.error?.retriable === false;
29
+ }
30
+ return false;
31
+ }
32
+ /**
33
+ * Checks if the error is explicitly marked as retriable
34
+ * @param error - The HTTP error response
35
+ * @returns true if the error has retriable: true or retriable is undefined
36
+ */
37
+ function isRetriableError(error) {
38
+ if (typeof error === 'object' && error !== null && 'error' in error) {
39
+ const err = error;
40
+ return err.error?.retriable !== false;
41
+ }
42
+ return false;
43
+ }
44
+ /**
45
+ * Handles retriable errors by setting appropriate error state
46
+ * @param error - The HTTP error response
47
+ * @param globalStore - Global store instance
48
+ */
49
+ function handleRetriableError(error, globalStore) {
50
+ let errorResponse;
51
+ if (typeof error === 'object' && error !== null && 'error' in error) {
52
+ const err = error;
53
+ errorResponse = err.error;
54
+ }
55
+ const errorMessage = errorResponse?.detail || GENERIC_HTTP_ERROR_MESSAGE;
56
+ globalStore.setError({
57
+ ...GLOBAL_ERROR_STATE,
58
+ error: true,
59
+ title: errorResponse?.title || ERROR_RESPONSE.title,
60
+ message: errorMessage,
61
+ operationId: errorResponse?.operation_id || ERROR_RESPONSE.operation_id,
62
+ });
63
+ }
64
+ /**
65
+ * Handles non-retriable errors by redirecting to appropriate error pages
66
+ * @param error - The HTTP error response
67
+ * @param router - Angular Router instance
68
+ * @param globalStore - Global store instance
69
+ */
70
+ function handleNonRetriableError(error, router, globalStore) {
71
+ let errorResponse;
72
+ let status;
73
+ if (typeof error === 'object' && error !== null) {
74
+ if ('error' in error) {
75
+ const err = error;
76
+ errorResponse = err.error;
77
+ }
78
+ if ('status' in error) {
79
+ const statusErr = error;
80
+ status = statusErr.status;
81
+ }
82
+ }
83
+ const statusCode = status || errorResponse?.status;
84
+ globalStore.setError({
85
+ ...GLOBAL_ERROR_STATE,
86
+ error: true,
87
+ title: errorResponse?.title || ERROR_RESPONSE.title,
88
+ message: errorResponse?.detail || GENERIC_HTTP_ERROR_MESSAGE,
89
+ operationId: errorResponse?.operation_id || ERROR_RESPONSE.operation_id,
90
+ });
91
+ switch (statusCode) {
92
+ case 409:
93
+ router.navigate(['/error/concurrency-failure']);
94
+ break;
95
+ case 403:
96
+ router.navigate(['/error/permission-denied']);
97
+ break;
98
+ default:
99
+ router.navigate(['/error/internal-server']);
100
+ break;
101
+ }
102
+ }
8
103
  const httpErrorInterceptor = (req, next) => {
9
104
  const globalStore = inject(GlobalStore);
10
105
  const appInsightsService = inject(AppInsightsService);
106
+ const router = inject(Router);
11
107
  return next(req).pipe(tap(() => {
12
- // Clear the state service on new requests
13
- globalStore.setError({ error: false, message: '' });
108
+ globalStore.setError({ ...GLOBAL_ERROR_STATE, error: false });
14
109
  }), catchError((error) => {
15
110
  const isBrowser = typeof globalThis !== 'undefined';
16
111
  if (isBrowser) {
17
- globalStore.setError({
18
- error: true,
19
- message: GENERIC_HTTP_ERROR_MESSAGE,
20
- });
112
+ if (isNonRetriableError(error)) {
113
+ handleNonRetriableError(error, router, globalStore);
114
+ }
115
+ else if (isRetriableError(error)) {
116
+ handleRetriableError(error, globalStore);
117
+ }
118
+ else {
119
+ globalStore.setError({
120
+ ...GLOBAL_ERROR_STATE,
121
+ error: true,
122
+ title: 'There was a problem',
123
+ message: GENERIC_HTTP_ERROR_MESSAGE,
124
+ operationId: ERROR_RESPONSE.operation_id,
125
+ });
126
+ }
21
127
  }
128
+ // Always log exceptions for monitoring
22
129
  appInsightsService.logException(error);
23
130
  return throwError(() => error);
24
131
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-interceptors-http-error.mjs","sources":["../../../projects/opal-frontend-common/interceptors/http-error/constants/http-error-message.constant.ts","../../../projects/opal-frontend-common/interceptors/http-error/http-error.interceptor.ts","../../../projects/opal-frontend-common/interceptors/http-error/hmcts-opal-frontend-common-interceptors-http-error.ts"],"sourcesContent":["export const GENERIC_HTTP_ERROR_MESSAGE =\n 'An error has occurred. Please try again, if this problem persists, contact the help desk.';\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { catchError, tap, throwError } from 'rxjs';\nimport { AppInsightsService } from '@hmcts/opal-frontend-common/services/app-insights-service';\nimport { GlobalStore } from '@hmcts/opal-frontend-common/stores/global';\nimport { GENERIC_HTTP_ERROR_MESSAGE } from './constants/http-error-message.constant';\n\nexport const httpErrorInterceptor: HttpInterceptorFn = (req, next) => {\n const globalStore = inject(GlobalStore);\n const appInsightsService = inject(AppInsightsService);\n\n return next(req).pipe(\n tap(() => {\n // Clear the state service on new requests\n globalStore.setError({ error: false, message: '' });\n }),\n catchError((error) => {\n const isBrowser = typeof globalThis !== 'undefined';\n\n if (isBrowser) {\n globalStore.setError({\n error: true,\n message: GENERIC_HTTP_ERROR_MESSAGE,\n });\n }\n\n appInsightsService.logException(error);\n\n return throwError(() => error);\n }),\n );\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAO,MAAM,0BAA0B,GACrC,2FAA2F;;MCMhF,oBAAoB,GAAsB,CAAC,GAAG,EAAE,IAAI,KAAI;AACnE,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACvC,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,GAAG,CAAC,MAAK;;AAEP,QAAA,WAAW,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACrD,IAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,QAAA,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,WAAW;QAEnD,IAAI,SAAS,EAAE;YACb,WAAW,CAAC,QAAQ,CAAC;AACnB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,0BAA0B;AACpC,aAAA,CAAC;QACJ;AAEA,QAAA,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;AAEtC,QAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;IAChC,CAAC,CAAC,CACH;AACH;;AC/BA;;AAEG;;;;"}
1
+ {"version":3,"file":"hmcts-opal-frontend-common-interceptors-http-error.mjs","sources":["../../../projects/opal-frontend-common/interceptors/http-error/constants/http-error-message.constant.ts","../../../projects/opal-frontend-common/interceptors/http-error/constants/http-error-message-response.constant.ts","../../../projects/opal-frontend-common/interceptors/http-error/http-error.interceptor.ts","../../../projects/opal-frontend-common/interceptors/http-error/hmcts-opal-frontend-common-interceptors-http-error.ts"],"sourcesContent":["export const GENERIC_HTTP_ERROR_MESSAGE = 'You can try again. If the problem persists, contact the service desk.';\n","import { IErrorResponse } from '@hmcts/opal-frontend-common/interceptors/http-error/interfaces';\n\nexport const ERROR_RESPONSE: IErrorResponse = {\n type: null,\n title: null,\n status: null,\n detail: null,\n instance: null,\n operation_id: null,\n retriable: null,\n};\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { catchError, tap, throwError } from 'rxjs';\nimport { AppInsightsService } from '@hmcts/opal-frontend-common/services/app-insights-service';\nimport { GlobalStore } from '@hmcts/opal-frontend-common/stores/global';\nimport { GLOBAL_ERROR_STATE } from '@hmcts/opal-frontend-common/stores/global/constants';\nimport { GlobalStoreType } from '@hmcts/opal-frontend-common/stores/global/types';\nimport { GENERIC_HTTP_ERROR_MESSAGE } from './constants/http-error-message.constant';\nimport { IErrorResponse } from './interfaces/http-error-retrievable-error-response.interface';\nimport { ERROR_RESPONSE } from './constants/http-error-message-response.constant';\n/**\n * Checks if the error is a non-retriable error\n * @param error - The HTTP error response\n * @returns true if the error has retriable: false\n */\nfunction isNonRetriableError(error: unknown): boolean {\n if (typeof error === 'object' && error !== null && 'error' in error) {\n const err = error as { error?: { retriable?: boolean } };\n return err.error?.retriable === false;\n }\n return false;\n}\n\n/**\n * Checks if the error is explicitly marked as retriable\n * @param error - The HTTP error response\n * @returns true if the error has retriable: true or retriable is undefined\n */\nfunction isRetriableError(error: unknown): boolean {\n if (typeof error === 'object' && error !== null && 'error' in error) {\n const err = error as { error?: { retriable?: boolean } };\n return err.error?.retriable !== false;\n }\n return false;\n}\n\n/**\n * Handles retriable errors by setting appropriate error state\n * @param error - The HTTP error response\n * @param globalStore - Global store instance\n */\nfunction handleRetriableError(error: unknown, globalStore: GlobalStoreType): void {\n let errorResponse: IErrorResponse | undefined;\n\n if (typeof error === 'object' && error !== null && 'error' in error) {\n const err = error as { error?: IErrorResponse };\n errorResponse = err.error;\n }\n\n const errorMessage = errorResponse?.detail || GENERIC_HTTP_ERROR_MESSAGE;\n\n globalStore.setError({\n ...GLOBAL_ERROR_STATE,\n error: true,\n title: errorResponse?.title || ERROR_RESPONSE.title,\n message: errorMessage,\n operationId: errorResponse?.operation_id || ERROR_RESPONSE.operation_id,\n });\n}\n\n/**\n * Handles non-retriable errors by redirecting to appropriate error pages\n * @param error - The HTTP error response\n * @param router - Angular Router instance\n * @param globalStore - Global store instance\n */\nfunction handleNonRetriableError(error: unknown, router: Router, globalStore: GlobalStoreType): void {\n let errorResponse: IErrorResponse | undefined;\n let status: number | undefined;\n\n if (typeof error === 'object' && error !== null) {\n if ('error' in error) {\n const err = error as { error?: IErrorResponse };\n errorResponse = err.error;\n }\n if ('status' in error) {\n const statusErr = error as { status?: number };\n status = statusErr.status;\n }\n }\n\n const statusCode = status || errorResponse?.status;\n\n globalStore.setError({\n ...GLOBAL_ERROR_STATE,\n error: true,\n title: errorResponse?.title || ERROR_RESPONSE.title,\n message: errorResponse?.detail || GENERIC_HTTP_ERROR_MESSAGE,\n operationId: errorResponse?.operation_id || ERROR_RESPONSE.operation_id,\n });\n\n switch (statusCode) {\n case 409:\n router.navigate(['/error/concurrency-failure']);\n break;\n case 403:\n router.navigate(['/error/permission-denied']);\n break;\n default:\n router.navigate(['/error/internal-server']);\n break;\n }\n}\n\nexport const httpErrorInterceptor: HttpInterceptorFn = (req, next) => {\n const globalStore = inject(GlobalStore);\n const appInsightsService = inject(AppInsightsService);\n const router = inject(Router);\n\n return next(req).pipe(\n tap(() => {\n globalStore.setError({ ...GLOBAL_ERROR_STATE, error: false });\n }),\n catchError((error) => {\n const isBrowser = typeof globalThis !== 'undefined';\n\n if (isBrowser) {\n if (isNonRetriableError(error)) {\n handleNonRetriableError(error, router, globalStore);\n } else if (isRetriableError(error)) {\n handleRetriableError(error, globalStore);\n } else {\n globalStore.setError({\n ...GLOBAL_ERROR_STATE,\n error: true,\n title: 'There was a problem',\n message: GENERIC_HTTP_ERROR_MESSAGE,\n operationId: ERROR_RESPONSE.operation_id,\n });\n }\n }\n\n // Always log exceptions for monitoring\n appInsightsService.logException(error);\n\n return throwError(() => error);\n }),\n );\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAAO,MAAM,0BAA0B,GAAG,uEAAuE;;ACE1G,MAAM,cAAc,GAAmB;AAC5C,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,SAAS,EAAE,IAAI;CAChB;;ACCD;;;;AAIG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAA;AACzC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,EAAE;QACnE,MAAM,GAAG,GAAG,KAA4C;AACxD,QAAA,OAAO,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK;IACvC;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;;AAIG;AACH,SAAS,gBAAgB,CAAC,KAAc,EAAA;AACtC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,EAAE;QACnE,MAAM,GAAG,GAAG,KAA4C;AACxD,QAAA,OAAO,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK;IACvC;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;;AAIG;AACH,SAAS,oBAAoB,CAAC,KAAc,EAAE,WAA4B,EAAA;AACxE,IAAA,IAAI,aAAyC;AAE7C,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,EAAE;QACnE,MAAM,GAAG,GAAG,KAAmC;AAC/C,QAAA,aAAa,GAAG,GAAG,CAAC,KAAK;IAC3B;AAEA,IAAA,MAAM,YAAY,GAAG,aAAa,EAAE,MAAM,IAAI,0BAA0B;IAExE,WAAW,CAAC,QAAQ,CAAC;AACnB,QAAA,GAAG,kBAAkB;AACrB,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,cAAc,CAAC,KAAK;AACnD,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,WAAW,EAAE,aAAa,EAAE,YAAY,IAAI,cAAc,CAAC,YAAY;AACxE,KAAA,CAAC;AACJ;AAEA;;;;;AAKG;AACH,SAAS,uBAAuB,CAAC,KAAc,EAAE,MAAc,EAAE,WAA4B,EAAA;AAC3F,IAAA,IAAI,aAAyC;AAC7C,IAAA,IAAI,MAA0B;IAE9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AAC/C,QAAA,IAAI,OAAO,IAAI,KAAK,EAAE;YACpB,MAAM,GAAG,GAAG,KAAmC;AAC/C,YAAA,aAAa,GAAG,GAAG,CAAC,KAAK;QAC3B;AACA,QAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;YACrB,MAAM,SAAS,GAAG,KAA4B;AAC9C,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM;QAC3B;IACF;AAEA,IAAA,MAAM,UAAU,GAAG,MAAM,IAAI,aAAa,EAAE,MAAM;IAElD,WAAW,CAAC,QAAQ,CAAC;AACnB,QAAA,GAAG,kBAAkB;AACrB,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,cAAc,CAAC,KAAK;AACnD,QAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,0BAA0B;AAC5D,QAAA,WAAW,EAAE,aAAa,EAAE,YAAY,IAAI,cAAc,CAAC,YAAY;AACxE,KAAA,CAAC;IAEF,QAAQ,UAAU;AAChB,QAAA,KAAK,GAAG;AACN,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC;YAC/C;AACF,QAAA,KAAK,GAAG;AACN,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,0BAA0B,CAAC,CAAC;YAC7C;AACF,QAAA;AACE,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,CAAC;YAC3C;;AAEN;MAEa,oBAAoB,GAAsB,CAAC,GAAG,EAAE,IAAI,KAAI;AACnE,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACvC,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACrD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACnB,GAAG,CAAC,MAAK;AACP,QAAA,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC/D,IAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,QAAA,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,WAAW;QAEnD,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AAC9B,gBAAA,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC;YACrD;AAAO,iBAAA,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC;YAC1C;iBAAO;gBACL,WAAW,CAAC,QAAQ,CAAC;AACnB,oBAAA,GAAG,kBAAkB;AACrB,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,OAAO,EAAE,0BAA0B;oBACnC,WAAW,EAAE,cAAc,CAAC,YAAY;AACzC,iBAAA,CAAC;YACJ;QACF;;AAGA,QAAA,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;AAEtC,QAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;IAChC,CAAC,CAAC,CACH;AACH;;AC3IA;;AAEG;;;;"}
@@ -0,0 +1,25 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { GlobalStore } from '@hmcts/opal-frontend-common/stores/global';
5
+
6
+ class InternalServerErrorComponent {
7
+ globalStore = inject(GlobalStore);
8
+ errorState = computed(() => this.globalStore.error(), ...(ngDevMode ? [{ debugName: "errorState" }] : []));
9
+ operationIdDisplay = computed(() => {
10
+ const operationId = this.errorState().operationId;
11
+ return operationId && operationId.trim().length > 0 ? operationId : 'Unavailable';
12
+ }, ...(ngDevMode ? [{ debugName: "operationIdDisplay" }] : []));
13
+ ngOnDestroy() {
14
+ this.globalStore.resetError();
15
+ }
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: InternalServerErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: InternalServerErrorComponent, isStandalone: true, selector: "opal-lib-internal-server-error", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: InternalServerErrorComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'opal-lib-internal-server-error', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n </div>\n</div>\n" }]
22
+ }] });
23
+
24
+ export { InternalServerErrorComponent };
25
+ //# sourceMappingURL=hmcts-opal-frontend-common-internal-server-error.component--U40lt8r.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-internal-server-error.component--U40lt8r.mjs","sources":["../../../projects/opal-frontend-common/pages/internal-server-error/internal-server-error.component.ts","../../../projects/opal-frontend-common/pages/internal-server-error/internal-server-error.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GlobalStore } from '@hmcts/opal-frontend-common/stores/global';\n\n@Component({\n selector: 'opal-lib-internal-server-error',\n imports: [CommonModule],\n templateUrl: './internal-server-error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InternalServerErrorComponent implements OnDestroy {\n private readonly globalStore = inject(GlobalStore);\n\n public readonly errorState = computed(() => this.globalStore.error());\n\n public readonly operationIdDisplay = computed(() => {\n const operationId = this.errorState().operationId;\n return operationId && operationId.trim().length > 0 ? operationId : 'Unavailable';\n });\n\n public ngOnDestroy(): void {\n this.globalStore.resetError();\n }\n}\n","<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n </div>\n</div>\n"],"names":[],"mappings":";;;;;MAUa,4BAA4B,CAAA;AACtB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElC,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,sDAAC;AAErD,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW;AACjD,QAAA,OAAO,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,aAAa;AACnF,IAAA,CAAC,8DAAC;IAEK,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;IAC/B;uGAZW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVzC,2RAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,WACjC,CAAC,YAAY,CAAC,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2RAAA,EAAA;;;;;"}
@@ -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: "20.3.7", ngImport: i0, type: AccessDeniedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", 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 });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AccessDeniedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", 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: "20.3.7", ngImport: i0, type: AccessDeniedComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", 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-pages-access-denied.component-C4LElGHn.mjs.map
21
+ //# sourceMappingURL=hmcts-opal-frontend-common-pages-access-denied.component-dFPqF73L.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-opal-frontend-common-pages-access-denied.component-C4LElGHn.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;;;;;"}
1
+ {"version":3,"file":"hmcts-opal-frontend-common-pages-access-denied.component-dFPqF73L.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;;;;;"}
@@ -0,0 +1,15 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+
5
+ class ConcurrencyFailureComponent {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ConcurrencyFailureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: ConcurrencyFailureComponent, isStandalone: true, selector: "opal-lib-concurrency-failure", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem</h1>\n <p class=\"govuk-body\">Something else was changed while you were doing this.</p>\n <p class=\"govuk-body\">Your changes have not been saved. You will need to start again.</p>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ConcurrencyFailureComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'opal-lib-concurrency-failure', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem</h1>\n <p class=\"govuk-body\">Something else was changed while you were doing this.</p>\n <p class=\"govuk-body\">Your changes have not been saved. You will need to start again.</p>\n </div>\n</div>\n" }]
12
+ }] });
13
+
14
+ export { ConcurrencyFailureComponent };
15
+ //# sourceMappingURL=hmcts-opal-frontend-common-pages-concurrency-failure.component-B44V5uH3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmcts-opal-frontend-common-pages-concurrency-failure.component-B44V5uH3.mjs","sources":["../../../projects/opal-frontend-common/pages/concurrency-failure/concurrency-failure.component.ts","../../../projects/opal-frontend-common/pages/concurrency-failure/concurrency-failure.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'opal-lib-concurrency-failure',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './concurrency-failure.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConcurrencyFailureComponent {}\n","<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem</h1>\n <p class=\"govuk-body\">Something else was changed while you were doing this.</p>\n <p class=\"govuk-body\">Your changes have not been saved. You will need to start again.</p>\n </div>\n</div>\n"],"names":[],"mappings":";;;;MAUa,2BAA2B,CAAA;uGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVxC,8VAOA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAC5B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8VAAA,EAAA;;;;;"}
@@ -0,0 +1,25 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { GlobalStore } from '@hmcts/opal-frontend-common/stores/global';
5
+
6
+ class InternalServerErrorComponent {
7
+ globalStore = inject(GlobalStore);
8
+ errorState = computed(() => this.globalStore.error(), ...(ngDevMode ? [{ debugName: "errorState" }] : []));
9
+ operationIdDisplay = computed(() => {
10
+ const operationId = this.errorState().operationId;
11
+ return operationId && operationId.trim().length > 0 ? operationId : 'Unavailable';
12
+ }, ...(ngDevMode ? [{ debugName: "operationIdDisplay" }] : []));
13
+ ngOnDestroy() {
14
+ this.globalStore.resetError();
15
+ }
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: InternalServerErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: InternalServerErrorComponent, isStandalone: true, selector: "opal-lib-internal-server-error", ngImport: i0, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: InternalServerErrorComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'opal-lib-internal-server-error', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n </div>\n</div>\n" }]
22
+ }] });
23
+
24
+ export { InternalServerErrorComponent };
25
+ //# sourceMappingURL=hmcts-opal-frontend-common-pages-internal-server-error.component--U40lt8r.mjs.map