@ministryofjustice/hmpps-digital-prison-reporting-frontend 6.2.3 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_networkMocks/report/mockVariants/filter-input-examples/autocompleteMulti.d.ts +3 -0
- package/all.bundle.js +68 -5
- package/all.bundle.js.map +1 -1
- package/all.js +68 -5
- package/all.js.map +1 -1
- package/cjs/dpr/components/_catalogue/catalogue/utils.js +6 -3
- package/cjs/dpr/components/_catalogue/catalogue/utils.js.map +1 -1
- package/cjs/dpr/components/_filters/filter-input/enum.js +1 -0
- package/cjs/dpr/components/_filters/filter-input/enum.js.map +1 -1
- package/cjs/dpr/components/_filters/filters-applied/utils.js +2 -0
- package/cjs/dpr/components/_filters/filters-applied/utils.js.map +1 -1
- package/cjs/dpr/components/_filters/utils.js +7 -4
- package/cjs/dpr/components/_filters/utils.js.map +1 -1
- package/cjs/dpr/components/_reports/Report.js +1 -1
- package/cjs/dpr/components/_reports/Report.js.map +1 -1
- package/cjs/dpr/components/my-reports/utils.js +1 -1
- package/cjs/dpr/components/my-reports/utils.js.map +1 -1
- package/cjs/dpr/data/reportingClient.js +3 -3
- package/cjs/dpr/data/reportingClient.js.map +1 -1
- package/cjs/dpr/data/restClient.js +3 -3
- package/cjs/dpr/data/restClient.js.map +1 -1
- package/cjs/dpr/middleware/reportAuthoriser.js +6 -8
- package/cjs/dpr/middleware/reportAuthoriser.js.map +1 -1
- package/cjs/dpr/middleware/setUpActiveReport.js +3 -1
- package/cjs/dpr/middleware/setUpActiveReport.js.map +1 -1
- package/cjs/dpr/middleware/setUpDprResources.js +136 -53
- package/cjs/dpr/middleware/setUpDprResources.js.map +1 -1
- package/cjs/dpr/middleware/setupCurrentDefinition.js +30 -0
- package/cjs/dpr/middleware/setupCurrentDefinition.js.map +1 -0
- package/cjs/dpr/routes/journeys/request-report/filters/routes.js +0 -3
- package/cjs/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/request-report/filters/utils.js +9 -6
- package/cjs/dpr/routes/journeys/request-report/filters/utils.js.map +1 -1
- package/cjs/dpr/routes/journeys/request-report/routes.js +3 -2
- package/cjs/dpr/routes/journeys/request-report/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -2
- package/cjs/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/async/dashboard/utils.js +6 -5
- package/cjs/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/async/report/routes.js +1 -2
- package/cjs/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/async/report/utils.js +2 -1
- package/cjs/dpr/routes/journeys/view-report/async/report/utils.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/async/routes.js +2 -3
- package/cjs/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/routes.js +5 -3
- package/cjs/dpr/routes/journeys/view-report/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/sync/dashboard/routes.js +1 -2
- package/cjs/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/sync/load-report/controller.js +9 -5
- package/cjs/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/sync/report/routes.js +1 -2
- package/cjs/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/sync/report/utils.js +2 -1
- package/cjs/dpr/routes/journeys/view-report/sync/report/utils.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/sync/routes.js +2 -3
- package/cjs/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
- package/cjs/dpr/routes/journeys/view-report/utils.js +2 -1
- package/cjs/dpr/routes/journeys/view-report/utils.js.map +1 -1
- package/cjs/dpr/utils/definitionUtils.js +4 -3
- package/cjs/dpr/utils/definitionUtils.js.map +1 -1
- package/cjs/dpr/utils/filterDisplay.js +1 -0
- package/cjs/dpr/utils/filterDisplay.js.map +1 -1
- package/cjs/dpr/utils/localsHelper.js +5 -2
- package/cjs/dpr/utils/localsHelper.js.map +1 -1
- package/cjs/dpr/validation/filterValidators.js +1 -0
- package/cjs/dpr/validation/filterValidators.js.map +1 -1
- package/cypress-tests/mockApis/reporting.d.ts +1 -0
- package/dpr/all.scss +8 -13
- package/dpr/components/_async/async-filters-form/actions/reset-form-button/view.njk +9 -2
- package/dpr/components/_async/async-filters-form/actions/save-defaults/view.njk +1 -0
- package/dpr/components/_catalogue/catalogue/utils.js +6 -3
- package/dpr/components/_catalogue/catalogue/utils.js.map +1 -1
- package/dpr/components/_filters/filter-input/enum.js +1 -0
- package/dpr/components/_filters/filter-input/enum.js.map +1 -1
- package/dpr/components/_filters/filter-input/view.njk +5 -1
- package/dpr/components/_filters/filters-applied/utils.js +2 -0
- package/dpr/components/_filters/filters-applied/utils.js.map +1 -1
- package/dpr/components/_filters/filters-reset/view.njk +3 -1
- package/dpr/components/_filters/utils.js +7 -4
- package/dpr/components/_filters/utils.js.map +1 -1
- package/dpr/components/_inputs/autocomplete-multi/view.njk +58 -0
- package/dpr/components/_reports/Report.js +1 -1
- package/dpr/components/_reports/Report.js.map +1 -1
- package/dpr/components/my-reports/my-reports-list-item/my-reports-list-item-actions/remove-action/view.njk +1 -1
- package/dpr/components/my-reports/utils.js +1 -1
- package/dpr/components/my-reports/utils.js.map +1 -1
- package/dpr/data/reportingClient.js +3 -3
- package/dpr/data/reportingClient.js.map +1 -1
- package/dpr/data/restClient.js +3 -3
- package/dpr/data/restClient.js.map +1 -1
- package/dpr/middleware/reportAuthoriser.js +6 -8
- package/dpr/middleware/reportAuthoriser.js.map +1 -1
- package/dpr/middleware/setUpActiveReport.js +3 -1
- package/dpr/middleware/setUpActiveReport.js.map +1 -1
- package/dpr/middleware/setUpDprResources.d.ts +21 -1
- package/dpr/middleware/setUpDprResources.js +135 -54
- package/dpr/middleware/setUpDprResources.js.map +1 -1
- package/dpr/middleware/setupCurrentDefinition.js +25 -0
- package/dpr/middleware/setupCurrentDefinition.js.map +1 -0
- package/dpr/routes/journeys/request-report/filters/routes.js +0 -3
- package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js +9 -6
- package/dpr/routes/journeys/request-report/filters/utils.js.map +1 -1
- package/dpr/routes/journeys/request-report/routes.js +3 -2
- package/dpr/routes/journeys/request-report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -2
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +6 -5
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/routes.js +1 -2
- package/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js +2 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/routes.js +2 -3
- package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/routes.js +5 -3
- package/dpr/routes/journeys/view-report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/routes.js +1 -2
- package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js +9 -5
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -2
- package/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js +2 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/routes.js +2 -3
- package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/utils.js +2 -1
- package/dpr/routes/journeys/view-report/utils.js.map +1 -1
- package/dpr/types/DprConfig.d.ts +8 -0
- package/dpr/types/api.d.d.ts +10 -1
- package/dpr/types/api.d.ts +10 -1
- package/dpr/types/extraLocals.d.d.ts +10 -5
- package/dpr/types/extraLocals.d.ts +10 -5
- package/dpr/utils/definitionUtils.js +4 -3
- package/dpr/utils/definitionUtils.js.map +1 -1
- package/dpr/utils/filterDisplay.js +1 -0
- package/dpr/utils/filterDisplay.js.map +1 -1
- package/dpr/utils/localsHelper.js +5 -2
- package/dpr/utils/localsHelper.js.map +1 -1
- package/dpr/validation/filterValidators.js +1 -0
- package/dpr/validation/filterValidators.js.map +1 -1
- package/package.json +1 -1
- package/src/dpr/components/_filters/filter-input/enum.d.ts +2 -1
- package/src/dpr/components/_inputs/autocomplete-multi/clientClass.d.ts +14 -0
- package/src/dpr/middleware/setUpDprResources.d.ts +20 -0
- package/src/dpr/middleware/setupCurrentDefinition.d.ts +4 -0
- package/src/dpr/types/DprConfig.d.ts +8 -0
- package/src/dpr/utils/definitionUtils.d.ts +3 -2
- package/src/dpr/utils/localsHelper.d.ts +6 -0
- package/test-app/mocks/mockClients/reports/mockReportDefinition.d.ts +3 -0
- package/test-app/mocks/mockClients/reports/mockReportingClient.d.ts +6 -0
- package/test-app/mocks/mockClients/reports/mockVariants/filter-input-examples/establishmentsAutocompleteMulti.d.ts +29 -0
- package/test-app/routes/components/filters/autocompletemulti/controller.d.ts +4 -0
- package/test-app/routes/components/filters/autocompletemulti/routes.d.ts +2 -0
- package/test-app/routes/components/filters/autocompletemulti/tests.cy.d.ts +1 -0
- package/test-app/routes/integrationTests/appStateUtils.d.ts +1 -0
- package/cjs/dpr/middleware/loadReportDefinition.js +0 -29
- package/cjs/dpr/middleware/loadReportDefinition.js.map +0 -1
- package/dpr/middleware/loadReportDefinition.js +0 -27
- package/dpr/middleware/loadReportDefinition.js.map +0 -1
- package/src/dpr/middleware/loadReportDefinition.d.ts +0 -10
package/all.bundle.js
CHANGED
|
@@ -2053,6 +2053,66 @@ class MultiselectInput extends DprClientClass {
|
|
|
2053
2053
|
}
|
|
2054
2054
|
}
|
|
2055
2055
|
|
|
2056
|
+
class AutoCompleteMulti extends DprClientClass {
|
|
2057
|
+
filterId;
|
|
2058
|
+
searchInput;
|
|
2059
|
+
searchInputValue;
|
|
2060
|
+
multiselectOptions;
|
|
2061
|
+
static getModuleName() {
|
|
2062
|
+
return 'autocomplete-multiselect-input';
|
|
2063
|
+
}
|
|
2064
|
+
initialise() {
|
|
2065
|
+
this.element = this.getElement();
|
|
2066
|
+
this.filterId = this.element.getAttribute('data-filter-id');
|
|
2067
|
+
// Search input
|
|
2068
|
+
this.searchInput = document.getElementById(`search.${this.filterId}`);
|
|
2069
|
+
this.multiselectOptions = Array.from(this.element.querySelectorAll('.govuk-checkboxes__input'));
|
|
2070
|
+
if (!this.searchInput || !this.multiselectOptions)
|
|
2071
|
+
return;
|
|
2072
|
+
this.initialiseCheckboxes();
|
|
2073
|
+
this.initSearchInputAction();
|
|
2074
|
+
}
|
|
2075
|
+
initialiseCheckboxes() {
|
|
2076
|
+
this.multiselectOptions.forEach((input) => {
|
|
2077
|
+
const wrapper = input.closest('.govuk-checkboxes__item');
|
|
2078
|
+
if (!wrapper)
|
|
2079
|
+
return;
|
|
2080
|
+
wrapper.classList.toggle('dpr-form--hidden', !input.checked);
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
2083
|
+
initSearchInputAction() {
|
|
2084
|
+
if (!this.searchInput)
|
|
2085
|
+
return;
|
|
2086
|
+
const input = this.searchInput;
|
|
2087
|
+
this.searchInput.addEventListener('keyup', (_event) => {
|
|
2088
|
+
this.searchInputValue = input.value;
|
|
2089
|
+
this.updateCheckboxes();
|
|
2090
|
+
});
|
|
2091
|
+
}
|
|
2092
|
+
updateCheckboxes() {
|
|
2093
|
+
const query = this.searchInputValue.toLowerCase().trim();
|
|
2094
|
+
const minLength = 3;
|
|
2095
|
+
this.multiselectOptions.forEach((input) => {
|
|
2096
|
+
const wrapper = input.closest('.govuk-checkboxes__item');
|
|
2097
|
+
if (!wrapper)
|
|
2098
|
+
return;
|
|
2099
|
+
// Always show selected items
|
|
2100
|
+
if (input.checked) {
|
|
2101
|
+
wrapper.classList.remove('dpr-form--hidden');
|
|
2102
|
+
return;
|
|
2103
|
+
}
|
|
2104
|
+
// Below threshold - hide unselected
|
|
2105
|
+
if (query.length < minLength) {
|
|
2106
|
+
wrapper.classList.add('dpr-form--hidden');
|
|
2107
|
+
return;
|
|
2108
|
+
}
|
|
2109
|
+
const labelText = input.labels?.[0]?.innerText.toLowerCase() ?? '';
|
|
2110
|
+
const matches = labelText.includes(query);
|
|
2111
|
+
wrapper.classList.toggle('dpr-form--hidden', !matches);
|
|
2112
|
+
});
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2056
2116
|
/* ==========================================================================
|
|
2057
2117
|
Shared value types
|
|
2058
2118
|
========================================================================== */
|
|
@@ -2165,17 +2225,19 @@ class DprMyReports extends PollingClientClass {
|
|
|
2165
2225
|
if (this.removing)
|
|
2166
2226
|
return;
|
|
2167
2227
|
this.removing = true;
|
|
2168
|
-
const body = this.maxRows !== undefined ? { maxRows: this.maxRows } : {};
|
|
2169
2228
|
try {
|
|
2170
|
-
|
|
2229
|
+
const formData = new URLSearchParams();
|
|
2230
|
+
if (this.maxRows !== undefined) {
|
|
2231
|
+
formData.append('maxRows', this.maxRows);
|
|
2232
|
+
}
|
|
2233
|
+
formData.append('_csrf', this.csrfToken);
|
|
2171
2234
|
const res = await fetch(form.action, {
|
|
2172
2235
|
method: 'POST',
|
|
2173
2236
|
headers: {
|
|
2174
2237
|
'X-Requested-With': 'XMLHttpRequest',
|
|
2175
|
-
'Content-Type': 'application/
|
|
2176
|
-
'CSRF-Token': this.csrfToken,
|
|
2238
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
2177
2239
|
},
|
|
2178
|
-
body:
|
|
2240
|
+
body: formData.toString(),
|
|
2179
2241
|
credentials: 'same-origin',
|
|
2180
2242
|
});
|
|
2181
2243
|
if (!res.ok) {
|
|
@@ -17691,6 +17753,7 @@ function initAll() {
|
|
|
17691
17753
|
DprSyncLoading,
|
|
17692
17754
|
GranularDateRange,
|
|
17693
17755
|
MultiselectInput,
|
|
17756
|
+
AutoCompleteMulti,
|
|
17694
17757
|
DprFiltersFormClass,
|
|
17695
17758
|
DprSelectedAsyncFilters,
|
|
17696
17759
|
DprAppliedFilters,
|