@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.1.2 → 4.1.3

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.
@@ -344,7 +344,7 @@ class DprQueryParamClass extends DprClientClass {
344
344
  initInputEvents(elements) {
345
345
  Array.from(elements).forEach((input) => {
346
346
  input.addEventListener('change', () => {
347
- this.setQueryParamFromInput(input, true);
347
+ this.setQueryParamFromInput(input, true, false);
348
348
  });
349
349
  });
350
350
  }
@@ -357,7 +357,7 @@ class DprQueryParamClass extends DprClientClass {
357
357
  */
358
358
  initQueryParamsFromInputs(elements) {
359
359
  Array.from(elements).forEach((input) => {
360
- if (input.type !== 'hidden') this.setQueryParamFromInput(input);
360
+ if (input.type !== 'hidden') this.setQueryParamFromInput(input, false, true);
361
361
  });
362
362
  }
363
363
 
@@ -368,10 +368,10 @@ class DprQueryParamClass extends DprClientClass {
368
368
  * @param {*} toggleCheckbox
369
369
  * @memberof DprQueryParamClass
370
370
  */
371
- setQueryParamFromInput(input, toggleCheckbox = false) {
371
+ setQueryParamFromInput(input, toggleCheckbox = false, init = false) {
372
372
  const { type } = input;
373
373
  if (type === 'checkbox' || type === 'radio') {
374
- this.setMultiSelectQueryParam(input, toggleCheckbox);
374
+ this.setMultiSelectQueryParam(input, toggleCheckbox, init);
375
375
  } else {
376
376
  const { name } = input;
377
377
  let { value } = input;
@@ -393,12 +393,15 @@ class DprQueryParamClass extends DprClientClass {
393
393
  * @param {*} toggle - adds the delete step on toggle
394
394
  * @memberof DprQueryParamClass
395
395
  */
396
- setMultiSelectQueryParam(input, toggle) {
396
+ setMultiSelectQueryParam(input, toggle, init) {
397
397
  this.queryParams = new URLSearchParams(window.location.search);
398
398
  const { name, value, checked, type } = input;
399
399
  if (checked && !this.queryParams.has(name, value)) {
400
400
  let updateType;
401
- if (type === 'checkbox') updateType = 'append';
401
+ if (type === 'checkbox') {
402
+ updateType = 'append';
403
+ if (!init && name !== 'columns') this.updateQueryParam('preventDefault', true);
404
+ }
402
405
  this.updateQueryParam(name, value, updateType);
403
406
  } else if (!checked && this.queryParams.has(name, value) && toggle) {
404
407
  this.updateQueryParam(name, value, 'delete');
@@ -163,7 +163,7 @@ const disabledDateRange = (f, value, displayValue) => {
163
163
  };
164
164
  const disabledDate = (f, value, displayValue) => {
165
165
  const { min, max } = f;
166
- if (value[0].includes(min) || value[1].includes(max)) {
166
+ if (value[0].includes(min) || value[0].includes(max)) {
167
167
  let valueType;
168
168
  if (value[0].includes(min))
169
169
  valueType = 'min';
@@ -171,7 +171,7 @@ const disabledDateRange = (f: DateFilterValue, value: (string | DateRange)[], di
171
171
 
172
172
  const disabledDate = (f: DateFilterValue, value: (string | DateRange)[], displayValue: string) => {
173
173
  const { min, max } = <DateFilterValue>f
174
- if ((<string>value[0]).includes(min) || (<string>value[1]).includes(max)) {
174
+ if ((<string>value[0]).includes(min) || (<string>value[0]).includes(max)) {
175
175
  let valueType
176
176
  if ((<string>value[0]).includes(min)) valueType = 'min'
177
177
  if ((<string>value[0]).includes(max)) valueType = 'max'
@@ -2,14 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const setValueFromRequest = (filter, req, prefix) => {
4
4
  const { preventDefault } = req.query;
5
- const valueArr = req.query[`${prefix}${filter.name}`];
6
- const valueString = valueArr ? valueArr.join(',') : '';
5
+ const queryValue = req.query[`${prefix}${filter.name}`];
6
+ let valueArr;
7
+ let valueString;
8
+ if (queryValue === null || queryValue === void 0 ? void 0 : queryValue.length) {
9
+ valueArr = Array.isArray(queryValue) ? queryValue : [queryValue];
10
+ valueString = valueArr.join(',');
11
+ }
7
12
  const defaultValue = preventDefault ? null : filter.value;
8
13
  let defaultValues = filter.value ? filter.value.split(',') : [];
9
14
  defaultValues = preventDefault ? [] : defaultValues;
10
15
  return {
11
- requestfilterValue: valueString || defaultValue,
12
- requestfilterValues: valueArr || defaultValues,
16
+ requestfilterValue: valueString || defaultValue || null,
17
+ requestfilterValues: valueArr || defaultValues || [],
13
18
  };
14
19
  };
15
20
  exports.default = {
@@ -3,17 +3,21 @@ import { FilterValue } from '../../_filters/types'
3
3
 
4
4
  const setValueFromRequest = (filter: FilterValue, req: Request, prefix: string) => {
5
5
  const { preventDefault } = req.query
6
+ const queryValue = <string[] | string | undefined>req.query[`${prefix}${filter.name}`]
6
7
 
7
- const valueArr = <string[]>req.query[`${prefix}${filter.name}`]
8
- const valueString = valueArr ? valueArr.join(',') : ''
8
+ let valueArr: string[]
9
+ let valueString: string
10
+ if (queryValue?.length) {
11
+ valueArr = Array.isArray(queryValue) ? queryValue : [queryValue]
12
+ valueString = valueArr.join(',')
13
+ }
9
14
  const defaultValue = preventDefault ? null : filter.value
10
-
11
15
  let defaultValues = filter.value ? (<string>filter.value).split(',') : []
12
16
  defaultValues = preventDefault ? [] : defaultValues
13
17
 
14
18
  return {
15
- requestfilterValue: valueString || defaultValue,
16
- requestfilterValues: valueArr || defaultValues,
19
+ requestfilterValue: valueString || defaultValue || null,
20
+ requestfilterValues: valueArr || defaultValues || [],
17
21
  }
18
22
  }
19
23
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-digital-prison-reporting-frontend",
3
3
  "description": "The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.",
4
- "version": "4.1.2",
4
+ "version": "4.1.3",
5
5
  "main": "dpr/assets/js/all.mjs",
6
6
  "sass": "dpr/all.scss",
7
7
  "engines": {
package/package.zip CHANGED
Binary file