@hmcts/opal-frontend-common 0.0.99 → 0.0.102

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 (129) hide show
  1. package/fesm2022/{hmcts-opal-frontend-common-access-denied.component-BDPx9bHD.mjs → hmcts-opal-frontend-common-access-denied.component-BxhkCLOI.mjs} +4 -4
  2. package/fesm2022/{hmcts-opal-frontend-common-account-created.component-Bnx53kTU.mjs → hmcts-opal-frontend-common-account-created.component-CJiRndGj.mjs} +4 -4
  3. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-account-summary-base.mjs +3 -3
  4. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-creditor-details-base.mjs +3 -3
  5. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-alias-base.mjs +3 -3
  6. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-base.mjs +3 -3
  7. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-array-removal-base.mjs +3 -3
  8. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-form-base.mjs +3 -3
  9. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-nested-form-base.mjs +3 -3
  10. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-report-instances-table-base.mjs +3 -3
  11. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-report-summary-list-base.mjs +3 -3
  12. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.mjs +49 -7
  13. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table.mjs +4 -4
  14. package/fesm2022/hmcts-opal-frontend-common-components-abstract-abstract-table-filter.mjs +3 -3
  15. package/fesm2022/hmcts-opal-frontend-common-components-alphagov-alphagov-accessible-autocomplete.mjs +3 -3
  16. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-accessible-monetary.mjs +54 -0
  17. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-label.mjs +3 -3
  18. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item-custom-account-information-item-value.mjs +3 -3
  19. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information-custom-account-information-item.mjs +3 -3
  20. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs +3 -3
  21. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-action-links.mjs +3 -3
  22. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-horizontal-scroll-pane.mjs +3 -3
  23. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-page-header.mjs +3 -3
  24. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes-custom-scrollable-panes-inner-pane.mjs +3 -3
  25. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-scrollable-panes.mjs +3 -3
  26. 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
  27. 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
  28. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar-custom-summary-metric-bar-item.mjs +3 -3
  29. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs +3 -3
  30. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-inner-pane.mjs +3 -3
  31. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane-custom-vertical-scroll-pane-outer-pane.mjs +3 -3
  32. package/fesm2022/hmcts-opal-frontend-common-components-custom-custom-vertical-scroll-pane.mjs +3 -3
  33. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-accordion.mjs +3 -3
  34. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-back-link.mjs +3 -3
  35. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-button.mjs +3 -3
  36. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-cancel-link.mjs +3 -3
  37. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-checkboxes.mjs +12 -12
  38. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-date-input.mjs +3 -3
  39. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-details.mjs +3 -3
  40. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-error-summary.mjs +3 -3
  41. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-footer.mjs +3 -3
  42. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-header.mjs +6 -6
  43. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-heading-with-caption.mjs +3 -3
  44. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-inset-text.mjs +3 -3
  45. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list-govuk-list-link.mjs +3 -3
  46. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-list.mjs +3 -3
  47. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-notification-banner.mjs +3 -3
  48. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-pagination.mjs +3 -3
  49. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-panel.mjs +3 -3
  50. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-radio.mjs +12 -12
  51. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-select.mjs +3 -3
  52. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-card-list.mjs +6 -6
  53. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-summary-list.mjs +12 -12
  54. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-table.mjs +12 -12
  55. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-list-item.mjs +3 -3
  56. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs-govuk-tabs-panel.mjs +3 -3
  57. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tabs.mjs +3 -3
  58. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-tag.mjs +3 -3
  59. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-task-list.mjs +6 -6
  60. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-area.mjs +3 -3
  61. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input-prefix-suffix.mjs +3 -3
  62. package/fesm2022/hmcts-opal-frontend-common-components-govuk-govuk-text-input.mjs +3 -3
  63. package/fesm2022/hmcts-opal-frontend-common-components-hod-hod-loading-spinner.mjs +3 -3
  64. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-alert.mjs +21 -21
  65. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-badge.mjs +3 -3
  66. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu-moj-button-menu-item.mjs +3 -3
  67. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-button-menu.mjs +3 -3
  68. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-date-picker.mjs +3 -3
  69. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-header.mjs +3 -3
  70. 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
  71. 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
  72. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-option.mjs +3 -3
  73. 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
  74. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel-moj-filter-panel-selected.mjs +3 -3
  75. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter-moj-filter-panel.mjs +3 -3
  76. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-filter.mjs +3 -3
  77. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-header.mjs +6 -6
  78. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-inset-text.mjs +3 -3
  79. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-notification-badge.mjs +3 -3
  80. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-page-header.mjs +3 -3
  81. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-pagination.mjs +3 -3
  82. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-primary-navigation.mjs +6 -6
  83. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sortable-table.mjs +18 -18
  84. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-sub-navigation.mjs +6 -6
  85. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-ticket-panel.mjs +3 -3
  86. package/fesm2022/hmcts-opal-frontend-common-components-moj-moj-timeline.mjs +6 -6
  87. package/fesm2022/{hmcts-opal-frontend-common-concurrency-failure.component-DhLPSRrO.mjs → hmcts-opal-frontend-common-concurrency-failure.component-Cfu8b65-.mjs} +4 -4
  88. package/fesm2022/hmcts-opal-frontend-common-directives-capitalisation.mjs +3 -3
  89. package/fesm2022/hmcts-opal-frontend-common-directives-govuk-button.mjs +3 -3
  90. package/fesm2022/hmcts-opal-frontend-common-directives-moj-multi-select.mjs +6 -6
  91. package/fesm2022/hmcts-opal-frontend-common-directives-trim-leading-trailing-whitespace.mjs +3 -3
  92. package/fesm2022/hmcts-opal-frontend-common-guards-can-deactivate.mjs +1 -1
  93. package/fesm2022/{hmcts-opal-frontend-common-internal-server-error.component-CdTVIpN_.mjs → hmcts-opal-frontend-common-internal-server-error.component-CT3bxevh.mjs} +4 -4
  94. package/fesm2022/{hmcts-opal-frontend-common-pages-access-denied.component-BDPx9bHD.mjs → hmcts-opal-frontend-common-pages-access-denied.component-BxhkCLOI.mjs} +4 -4
  95. package/fesm2022/{hmcts-opal-frontend-common-pages-account-created.component-Bnx53kTU.mjs → hmcts-opal-frontend-common-pages-account-created.component-CJiRndGj.mjs} +4 -4
  96. package/fesm2022/{hmcts-opal-frontend-common-pages-concurrency-failure.component-DhLPSRrO.mjs → hmcts-opal-frontend-common-pages-concurrency-failure.component-Cfu8b65-.mjs} +4 -4
  97. package/fesm2022/hmcts-opal-frontend-common-pages-dashboard-page.mjs +3 -3
  98. package/fesm2022/{hmcts-opal-frontend-common-pages-internal-server-error.component-CdTVIpN_.mjs → hmcts-opal-frontend-common-pages-internal-server-error.component-CT3bxevh.mjs} +4 -4
  99. package/fesm2022/{hmcts-opal-frontend-common-pages-permission-denied.component-CJQrh--T.mjs → hmcts-opal-frontend-common-pages-permission-denied.component-BYeottTr.mjs} +4 -4
  100. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in-stub.component-DGR30VJn.mjs → hmcts-opal-frontend-common-pages-sign-in-stub.component-Cz0W_KDW.mjs} +4 -4
  101. package/fesm2022/{hmcts-opal-frontend-common-pages-sign-in.component-tx1zJtdS.mjs → hmcts-opal-frontend-common-pages-sign-in.component-N_WlJ6nC.mjs} +4 -4
  102. package/fesm2022/hmcts-opal-frontend-common-pages.mjs +6 -6
  103. package/fesm2022/{hmcts-opal-frontend-common-permission-denied.component-CJQrh--T.mjs → hmcts-opal-frontend-common-permission-denied.component-BYeottTr.mjs} +4 -4
  104. package/fesm2022/hmcts-opal-frontend-common-pipes-date-format.mjs +3 -3
  105. package/fesm2022/hmcts-opal-frontend-common-pipes-days-ago.mjs +3 -3
  106. package/fesm2022/hmcts-opal-frontend-common-pipes-monetary.mjs +9 -3
  107. package/fesm2022/hmcts-opal-frontend-common-pipes-national-insurance.mjs +3 -3
  108. package/fesm2022/hmcts-opal-frontend-common-resolvers-title.mjs +3 -3
  109. package/fesm2022/hmcts-opal-frontend-common-services-app-initializer-service.mjs +3 -3
  110. package/fesm2022/hmcts-opal-frontend-common-services-app-insights-service.mjs +3 -3
  111. package/fesm2022/hmcts-opal-frontend-common-services-auth-service.mjs +3 -3
  112. package/fesm2022/hmcts-opal-frontend-common-services-date-service.mjs +3 -3
  113. package/fesm2022/hmcts-opal-frontend-common-services-history-transformation-service.mjs +3 -3
  114. package/fesm2022/hmcts-opal-frontend-common-services-launch-darkly-service.mjs +3 -3
  115. package/fesm2022/hmcts-opal-frontend-common-services-opal-user-service.mjs +3 -3
  116. package/fesm2022/hmcts-opal-frontend-common-services-permissions-service.mjs +3 -3
  117. package/fesm2022/hmcts-opal-frontend-common-services-session-service.mjs +3 -3
  118. package/fesm2022/hmcts-opal-frontend-common-services-sort-service.mjs +3 -3
  119. package/fesm2022/hmcts-opal-frontend-common-services-transfer-state-service.mjs +3 -3
  120. package/fesm2022/hmcts-opal-frontend-common-services-transformation-service.mjs +3 -3
  121. package/fesm2022/hmcts-opal-frontend-common-services-utils-service.mjs +21 -4
  122. package/fesm2022/{hmcts-opal-frontend-common-sign-in-stub.component-DGR30VJn.mjs → hmcts-opal-frontend-common-sign-in-stub.component-Cz0W_KDW.mjs} +4 -4
  123. package/fesm2022/{hmcts-opal-frontend-common-sign-in.component-ZonGWT6k.mjs → hmcts-opal-frontend-common-sign-in.component-Cv5vLQ8y.mjs} +4 -4
  124. package/fesm2022/hmcts-opal-frontend-common.mjs +6 -6
  125. package/package.json +6 -1
  126. package/types/hmcts-opal-frontend-common-components-abstract-abstract-sortable-table-pagination.d.ts +12 -1
  127. package/types/hmcts-opal-frontend-common-components-custom-custom-accessible-monetary.d.ts +30 -0
  128. package/types/hmcts-opal-frontend-common-pipes-monetary.d.ts +1 -1
  129. package/types/hmcts-opal-frontend-common-services-utils-service.d.ts +6 -0
@@ -51,10 +51,10 @@ class PermissionsService {
51
51
  // if we don't have any roles, we can't have any permissions
52
52
  return true;
53
53
  }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
55
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PermissionsService, providedIn: 'root' });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
55
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: PermissionsService, providedIn: 'root' });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: PermissionsService, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: PermissionsService, decorators: [{
58
58
  type: Injectable,
59
59
  args: [{
60
60
  providedIn: 'root',
@@ -25,10 +25,10 @@ class SessionService {
25
25
  }), shareReplay(1));
26
26
  return this.tokenExpiryCache$;
27
27
  }
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SessionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SessionService, providedIn: 'root' });
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SessionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SessionService, providedIn: 'root' });
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SessionService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SessionService, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{ providedIn: 'root' }]
34
34
  }] });
@@ -79,10 +79,10 @@ class SortService {
79
79
  arraySortDesc(array) {
80
80
  return sort(array).desc();
81
81
  }
82
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SortService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
83
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SortService, providedIn: 'root' });
82
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SortService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
83
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SortService, providedIn: 'root' });
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SortService, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SortService, decorators: [{
86
86
  type: Injectable,
87
87
  args: [{
88
88
  providedIn: 'root',
@@ -82,10 +82,10 @@ class TransferStateService {
82
82
  this.globalStore.setFeatureFlags(featureFlagConfig.releases);
83
83
  }
84
84
  }
85
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: TransferStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
86
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: TransferStateService, providedIn: 'root' });
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TransferStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
86
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TransferStateService, providedIn: 'root' });
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: TransferStateService, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TransferStateService, decorators: [{
89
89
  type: Injectable,
90
90
  args: [{
91
91
  providedIn: 'root',
@@ -89,10 +89,10 @@ class TransformationService {
89
89
  }
90
90
  return result;
91
91
  }
92
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: TransformationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
93
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: TransformationService, providedIn: 'root' });
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TransformationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
93
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TransformationService, providedIn: 'root' });
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: TransformationService, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TransformationService, decorators: [{
96
96
  type: Injectable,
97
97
  args: [{
98
98
  providedIn: 'root',
@@ -1,8 +1,9 @@
1
- import { ViewportScroller } from '@angular/common';
1
+ import { DOCUMENT, ViewportScroller } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, Injectable } from '@angular/core';
4
4
 
5
5
  class UtilsService {
6
+ document = inject(DOCUMENT);
6
7
  viewportScroller = inject(ViewportScroller);
7
8
  /**
8
9
  * Converts the first letter of a string to uppercase.
@@ -61,6 +62,22 @@ class UtilsService {
61
62
  scrollToTop() {
62
63
  this.viewportScroller.scrollToPosition([0, 0]);
63
64
  }
65
+ /**
66
+ * Moves focus to the main content landmark and scrolls the viewport to the top of the page.
67
+ * A temporary tabindex allows the normally non-focusable landmark to receive programmatic focus.
68
+ */
69
+ focusAndScrollToTop() {
70
+ const mainContent = this.document.getElementById('main-content');
71
+ if (mainContent) {
72
+ const hasTabindex = mainContent.hasAttribute('tabindex');
73
+ if (!hasTabindex) {
74
+ mainContent.setAttribute('tabindex', '-1');
75
+ mainContent.addEventListener('blur', () => mainContent.removeAttribute('tabindex'), { once: true });
76
+ }
77
+ mainContent.focus({ preventScroll: true });
78
+ }
79
+ this.scrollToTop();
80
+ }
64
81
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
82
  checkFormValues(form) {
66
83
  return Object.values(form).some((value) => {
@@ -153,10 +170,10 @@ class UtilsService {
153
170
  hasSetProperty(value) {
154
171
  return Object.values(value ?? {}).some((v) => (typeof v === 'boolean' ? v === true : v !== null && v !== ''));
155
172
  }
156
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
157
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UtilsService, providedIn: 'root' });
173
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
174
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: UtilsService, providedIn: 'root' });
158
175
  }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: UtilsService, decorators: [{
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: UtilsService, decorators: [{
160
177
  type: Injectable,
161
178
  args: [{
162
179
  providedIn: 'root',
@@ -28,10 +28,10 @@ class SignInStubComponent {
28
28
  ngOnInit() {
29
29
  this.setupSignInForm();
30
30
  }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SignInStubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: SignInStubComponent, isStandalone: true, selector: "opal-lib-sign-in-stub", outputs: { signInFormSubmit: "signInFormSubmit" }, ngImport: i0, template: "<form (submit)=\"handleFormSubmit()\">\n <div class=\"govuk-grid-column-two-thirds\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 class=\"govuk-fieldset__heading\">Sign in</h1>\n </legend>\n\n <div [formGroup]=\"signInForm\">\n <opal-lib-govuk-text-input\n labelText=\"Email\"\n inputId=\"email\"\n inputName=\"email\"\n inputClasses=\"govuk-!-width-one-half\"\n [control]=\"signInForm.controls['email']\"\n ></opal-lib-govuk-text-input>\n </div>\n </fieldset>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-one-third\">\n <opal-lib-govuk-button buttonId=\"submitForm\" type=\"submit\"> Sign in</opal-lib-govuk-button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: GovukTextInputComponent, selector: "opal-lib-govuk-text-input", inputs: ["labelText", "labelClasses", "inputId", "inputName", "inputClasses", "hintText", "hintHtml", "errors", "autoComplete", "autoCompleteValue", "control"] }, { kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SignInStubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: SignInStubComponent, isStandalone: true, selector: "opal-lib-sign-in-stub", outputs: { signInFormSubmit: "signInFormSubmit" }, ngImport: i0, template: "<form (submit)=\"handleFormSubmit()\">\n <div class=\"govuk-grid-column-two-thirds\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 class=\"govuk-fieldset__heading\">Sign in</h1>\n </legend>\n\n <div [formGroup]=\"signInForm\">\n <opal-lib-govuk-text-input\n labelText=\"Email\"\n inputId=\"email\"\n inputName=\"email\"\n inputClasses=\"govuk-!-width-one-half\"\n [control]=\"signInForm.controls['email']\"\n ></opal-lib-govuk-text-input>\n </div>\n </fieldset>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-one-third\">\n <opal-lib-govuk-button buttonId=\"submitForm\" type=\"submit\"> Sign in</opal-lib-govuk-button>\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: GovukTextInputComponent, selector: "opal-lib-govuk-text-input", inputs: ["labelText", "labelClasses", "inputId", "inputName", "inputClasses", "hintText", "hintHtml", "errors", "autoComplete", "autoCompleteValue", "control"] }, { kind: "component", type: GovukButtonComponent, selector: "opal-lib-govuk-button", inputs: ["buttonId", "type", "buttonClasses"], outputs: ["buttonClickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SignInStubComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SignInStubComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{ selector: 'opal-lib-sign-in-stub', imports: [FormsModule, ReactiveFormsModule, GovukTextInputComponent, GovukButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form (submit)=\"handleFormSubmit()\">\n <div class=\"govuk-grid-column-two-thirds\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 class=\"govuk-fieldset__heading\">Sign in</h1>\n </legend>\n\n <div [formGroup]=\"signInForm\">\n <opal-lib-govuk-text-input\n labelText=\"Email\"\n inputId=\"email\"\n inputName=\"email\"\n inputClasses=\"govuk-!-width-one-half\"\n [control]=\"signInForm.controls['email']\"\n ></opal-lib-govuk-text-input>\n </div>\n </fieldset>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-one-third\">\n <opal-lib-govuk-button buttonId=\"submitForm\" type=\"submit\"> Sign in</opal-lib-govuk-button>\n </div>\n </div>\n </div>\n</form>\n" }]
37
37
  }], propDecorators: { signInFormSubmit: [{
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
39
39
  }] } });
40
40
 
41
41
  export { SignInStubComponent };
42
- //# sourceMappingURL=hmcts-opal-frontend-common-sign-in-stub.component-DGR30VJn.mjs.map
42
+ //# sourceMappingURL=hmcts-opal-frontend-common-sign-in-stub.component-Cz0W_KDW.mjs.map
@@ -16,13 +16,13 @@ class SignInComponent {
16
16
  handleStubSignInFormSubmit(formData) {
17
17
  this.document.location.href = `${SSO_ENDPOINTS.login}?email=${formData.email}`;
18
18
  }
19
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SignInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: SignInComponent, isStandalone: true, selector: "opal-lib-sign-in", ngImport: i0, template: "@defer (when !globalStore.ssoEnabled()) {\n <opal-lib-sign-in-stub (signInFormSubmit)=\"handleStubSignInFormSubmit($event)\"></opal-lib-sign-in-stub>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import('./hmcts-opal-frontend-common-sign-in-stub.component-DGR30VJn.mjs').then(m => m.SignInStubComponent)]] });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: SignInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.20", type: SignInComponent, isStandalone: true, selector: "opal-lib-sign-in", ngImport: i0, template: "@defer (when !globalStore.ssoEnabled()) {\n <opal-lib-sign-in-stub (signInFormSubmit)=\"handleStubSignInFormSubmit($event)\"></opal-lib-sign-in-stub>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import('./hmcts-opal-frontend-common-sign-in-stub.component-Cz0W_KDW.mjs').then(m => m.SignInStubComponent)]] });
21
21
  }
22
- i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "21.2.19", ngImport: i0, type: SignInComponent, resolveDeferredDeps: () => [import('./hmcts-opal-frontend-common-sign-in-stub.component-DGR30VJn.mjs').then(m => m.SignInStubComponent)], resolveMetadata: SignInStubComponent => ({ decorators: [{
22
+ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "21.2.20", ngImport: i0, type: SignInComponent, resolveDeferredDeps: () => [import('./hmcts-opal-frontend-common-sign-in-stub.component-Cz0W_KDW.mjs').then(m => m.SignInStubComponent)], resolveMetadata: SignInStubComponent => ({ decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'opal-lib-sign-in', imports: [SignInStubComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@defer (when !globalStore.ssoEnabled()) {\n <opal-lib-sign-in-stub (signInFormSubmit)=\"handleStubSignInFormSubmit($event)\"></opal-lib-sign-in-stub>\n}\n" }]
25
25
  }], ctorParameters: null, propDecorators: null }) });
26
26
 
27
27
  export { SignInComponent };
28
- //# sourceMappingURL=hmcts-opal-frontend-common-sign-in.component-ZonGWT6k.mjs.map
28
+ //# sourceMappingURL=hmcts-opal-frontend-common-sign-in.component-Cv5vLQ8y.mjs.map
@@ -36,39 +36,39 @@ const routing = [
36
36
  { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
37
37
  {
38
38
  path: PAGES_ROUTING_PATHS.children.accessDenied,
39
- loadComponent: () => import('./hmcts-opal-frontend-common-access-denied.component-BDPx9bHD.mjs').then((c) => c.AccessDeniedComponent),
39
+ loadComponent: () => import('./hmcts-opal-frontend-common-access-denied.component-BxhkCLOI.mjs').then((c) => c.AccessDeniedComponent),
40
40
  canActivate: [authGuard, accountGuard],
41
41
  data: { title: PAGES_ROUTING_TITLES.children.accessDenied },
42
42
  resolve: { title: TitleResolver },
43
43
  },
44
44
  {
45
45
  path: PAGES_ROUTING_PATHS.children.concurrencyFailure,
46
- loadComponent: () => import('./hmcts-opal-frontend-common-concurrency-failure.component-DhLPSRrO.mjs').then((c) => c.ConcurrencyFailureComponent),
46
+ loadComponent: () => import('./hmcts-opal-frontend-common-concurrency-failure.component-Cfu8b65-.mjs').then((c) => c.ConcurrencyFailureComponent),
47
47
  data: { title: PAGES_ROUTING_TITLES.children.concurrencyFailure },
48
48
  resolve: { title: TitleResolver },
49
49
  },
50
50
  {
51
51
  path: PAGES_ROUTING_PATHS.children.permissionDenied,
52
- loadComponent: () => import('./hmcts-opal-frontend-common-permission-denied.component-CJQrh--T.mjs').then((c) => c.PermissionDeniedComponent),
52
+ loadComponent: () => import('./hmcts-opal-frontend-common-permission-denied.component-BYeottTr.mjs').then((c) => c.PermissionDeniedComponent),
53
53
  data: { title: PAGES_ROUTING_TITLES.children.permissionDenied },
54
54
  resolve: { title: TitleResolver },
55
55
  },
56
56
  {
57
57
  path: PAGES_ROUTING_PATHS.children.internalServerError,
58
- loadComponent: () => import('./hmcts-opal-frontend-common-internal-server-error.component-CdTVIpN_.mjs').then((c) => c.InternalServerErrorComponent),
58
+ loadComponent: () => import('./hmcts-opal-frontend-common-internal-server-error.component-CT3bxevh.mjs').then((c) => c.InternalServerErrorComponent),
59
59
  data: { title: PAGES_ROUTING_TITLES.children.internalServerError },
60
60
  resolve: { title: TitleResolver },
61
61
  },
62
62
  {
63
63
  path: PAGES_ROUTING_PATHS.children.signIn,
64
- loadComponent: () => import('./hmcts-opal-frontend-common-sign-in.component-ZonGWT6k.mjs').then((c) => c.SignInComponent),
64
+ loadComponent: () => import('./hmcts-opal-frontend-common-sign-in.component-Cv5vLQ8y.mjs').then((c) => c.SignInComponent),
65
65
  canActivate: [signedInGuard],
66
66
  data: { title: PAGES_ROUTING_TITLES.children.signIn },
67
67
  resolve: { title: TitleResolver },
68
68
  },
69
69
  {
70
70
  path: PAGES_ROUTING_PATHS.children.accountCreated,
71
- loadComponent: () => import('./hmcts-opal-frontend-common-account-created.component-Bnx53kTU.mjs').then((c) => c.AccountCreated),
71
+ loadComponent: () => import('./hmcts-opal-frontend-common-account-created.component-CJiRndGj.mjs').then((c) => c.AccountCreated),
72
72
  canActivate: [authGuard],
73
73
  data: { title: PAGES_ROUTING_TITLES.children.accountCreated },
74
74
  resolve: { title: TitleResolver },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hmcts/opal-frontend-common",
3
- "version": "0.0.99",
3
+ "version": "0.0.102",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -201,6 +201,11 @@
201
201
  "types": "./types/hmcts-opal-frontend-common-components-custom-custom-account-information.d.ts",
202
202
  "default": "./fesm2022/hmcts-opal-frontend-common-components-custom-custom-account-information.mjs"
203
203
  },
204
+ "./components/custom/custom-accessible-monetary": {
205
+ "import": "./fesm2022/hmcts-opal-frontend-common-components-custom-custom-accessible-monetary.mjs",
206
+ "types": "./types/hmcts-opal-frontend-common-components-custom-custom-accessible-monetary.d.ts",
207
+ "default": "./fesm2022/hmcts-opal-frontend-common-components-custom-custom-accessible-monetary.mjs"
208
+ },
204
209
  "./components/custom/custom-summary-metric-bar": {
205
210
  "import": "./fesm2022/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.mjs",
206
211
  "types": "./types/hmcts-opal-frontend-common-components-custom-custom-summary-metric-bar.d.ts",
@@ -4,12 +4,17 @@ import * as _angular_core from '@angular/core';
4
4
  import { AbstractSortableTableComponent } from '@hmcts/opal-frontend-common/components/abstract/abstract-sortable-table';
5
5
 
6
6
  declare abstract class AbstractSortableTablePaginationComponent extends AbstractSortableTableComponent {
7
+ private readonly injector;
8
+ private readonly paginationFocusUtilsService;
9
+ private readonly paginationFocusTargets;
7
10
  /**
8
11
  * Keeps the current page within the available range when the data set or page size changes.
9
12
  */
10
13
  private readonly clampCurrentPageEffect;
11
14
  currentPageSignal: _angular_core.WritableSignal<number>;
12
15
  itemsPerPageSignal: _angular_core.WritableSignal<number>;
16
+ paginationPageTitle: string;
17
+ readonly pageChangeAnnouncement: _angular_core.WritableSignal<string>;
13
18
  startIndexComputed: _angular_core.Signal<number>;
14
19
  /**
15
20
  * Computes the end index for the current page of the sorted table data.
@@ -19,6 +24,11 @@ declare abstract class AbstractSortableTablePaginationComponent extends Abstract
19
24
  */
20
25
  endIndexComputed: _angular_core.Signal<number>;
21
26
  paginatedTableDataComputed: _angular_core.Signal<_hmcts_opal_frontend_common_components_abstract_abstract_sortable_table_interfaces.IAbstractTableData<_hmcts_opal_frontend_common_components_abstract_abstract_sortable_table_types.SortableValuesType>[]>;
27
+ /**
28
+ * Focuses the first target rendered for the new page and lets the browser scroll it into view.
29
+ * Falls back to the main content landmark when the table has no marked focus target.
30
+ */
31
+ private focusNewPageContent;
22
32
  /**
23
33
  * Handles sorting changes and resets the page to the first page.
24
34
  *
@@ -43,13 +53,14 @@ declare abstract class AbstractSortableTablePaginationComponent extends Abstract
43
53
  onApplyFilters(): void;
44
54
  /**
45
55
  * Handles the event when the page is changed.
56
+ * Moves focus to the first marked target, or the main content fallback, after committing a different page.
46
57
  *
47
58
  * @param newPage - The new page number to set. If the provided page number is out of range,
48
59
  * it will be clamped between 1 and the total number of pages.
49
60
  */
50
61
  onPageChange(newPage: number): void;
51
62
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AbstractSortableTablePaginationComponent, never>;
52
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AbstractSortableTablePaginationComponent, "ng-component", never, {}, {}, never, never, true, never>;
63
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AbstractSortableTablePaginationComponent, "ng-component", never, { "paginationPageTitle": { "alias": "paginationPageTitle"; "required": false; }; }, {}, never, never, true, never>;
53
64
  }
54
65
 
55
66
  export { AbstractSortableTablePaginationComponent };
@@ -0,0 +1,30 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ type MonetaryFormat = 'default' | 'remove-minus-symbol';
4
+ declare class CustomAccessibleMonetaryComponent {
5
+ private readonly monetaryPipe;
6
+ value: number | string | null | undefined;
7
+ format: MonetaryFormat;
8
+ /**
9
+ * Formats the provided value using the shared monetary pipe.
10
+ *
11
+ * @returns The formatted monetary string for display.
12
+ */
13
+ get formattedValue(): string;
14
+ /**
15
+ * Determines whether the formatted value is negative and needs accessible split rendering.
16
+ *
17
+ * @returns `true` when the formatted value starts with a minus sign; otherwise `false`.
18
+ */
19
+ get hasAccessibleNegativeValue(): boolean;
20
+ /**
21
+ * Builds the screen-reader-friendly text for negative amounts.
22
+ *
23
+ * @returns The accessible value, prefixing negative amounts with the word `minus`.
24
+ */
25
+ get accessibleValue(): string;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomAccessibleMonetaryComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<CustomAccessibleMonetaryComponent, "opal-lib-custom-accessible-monetary", never, { "value": { "alias": "value"; "required": true; }; "format": { "alias": "format"; "required": false; }; }, {}, never, never, true, never>;
28
+ }
29
+
30
+ export { CustomAccessibleMonetaryComponent };
@@ -4,7 +4,7 @@ import { PipeTransform } from '@angular/core';
4
4
  type MonetaryFormat = 'default' | 'remove-minus-symbol';
5
5
  declare class MonetaryPipe implements PipeTransform {
6
6
  private readonly utilsService;
7
- transform(value: number | string, format?: MonetaryFormat): string;
7
+ transform(value: number | string | null | undefined, format?: MonetaryFormat): string;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<MonetaryPipe, never>;
9
9
  static ɵpipe: i0.ɵɵPipeDeclaration<MonetaryPipe, "monetary", true>;
10
10
  }
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
 
3
3
  declare class UtilsService {
4
+ private readonly document;
4
5
  private readonly viewportScroller;
5
6
  /**
6
7
  * Converts the first letter of a string to uppercase.
@@ -38,6 +39,11 @@ declare class UtilsService {
38
39
  * Utilizes the `viewportScroller` service to scroll to the position [0, 0].
39
40
  */
40
41
  scrollToTop(): void;
42
+ /**
43
+ * Moves focus to the main content landmark and scrolls the viewport to the top of the page.
44
+ * A temporary tabindex allows the normally non-focusable landmark to receive programmatic focus.
45
+ */
46
+ focusAndScrollToTop(): void;
41
47
  checkFormValues(form: {
42
48
  [key: string]: any;
43
49
  }): boolean;