@ministryofjustice/frontend 5.2.1 → 7.0.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.
Files changed (84) hide show
  1. package/moj/all.bundle.js +30 -12
  2. package/moj/all.bundle.js.map +1 -1
  3. package/moj/all.bundle.mjs +85 -38
  4. package/moj/all.bundle.mjs.map +1 -1
  5. package/moj/all.mjs +13 -5
  6. package/moj/all.mjs.map +1 -1
  7. package/moj/common/index.mjs.map +1 -1
  8. package/moj/common/moj-frontend-version.mjs +2 -2
  9. package/moj/common/moj-frontend-version.mjs.map +1 -1
  10. package/moj/components/add-another/add-another.bundle.js.map +1 -1
  11. package/moj/components/add-another/add-another.bundle.mjs +10 -2
  12. package/moj/components/add-another/add-another.bundle.mjs.map +1 -1
  13. package/moj/components/add-another/add-another.mjs.map +1 -1
  14. package/moj/components/alert/alert.bundle.js +1 -1
  15. package/moj/components/alert/alert.bundle.js.map +1 -1
  16. package/moj/components/alert/alert.bundle.mjs +5 -3
  17. package/moj/components/alert/alert.bundle.mjs.map +1 -1
  18. package/moj/components/alert/alert.mjs.map +1 -1
  19. package/moj/components/button-menu/button-menu.bundle.js.map +1 -1
  20. package/moj/components/button-menu/button-menu.bundle.mjs +4 -2
  21. package/moj/components/button-menu/button-menu.bundle.mjs.map +1 -1
  22. package/moj/components/button-menu/button-menu.mjs.map +1 -1
  23. package/moj/components/date-picker/date-picker.bundle.js +11 -1
  24. package/moj/components/date-picker/date-picker.bundle.js.map +1 -1
  25. package/moj/components/date-picker/date-picker.bundle.mjs +15 -3
  26. package/moj/components/date-picker/date-picker.bundle.mjs.map +1 -1
  27. package/moj/components/date-picker/date-picker.mjs +11 -1
  28. package/moj/components/date-picker/date-picker.mjs.map +1 -1
  29. package/moj/components/domain-specific/probation/header/header.bundle.js.map +1 -1
  30. package/moj/components/domain-specific/probation/header/header.bundle.mjs +10 -2
  31. package/moj/components/domain-specific/probation/header/header.bundle.mjs.map +1 -1
  32. package/moj/components/domain-specific/probation/header/header.mjs.map +1 -1
  33. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.js.map +1 -1
  34. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.mjs +4 -2
  35. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.mjs.map +1 -1
  36. package/moj/components/filter-toggle-button/filter-toggle-button.mjs.map +1 -1
  37. package/moj/components/form-validator/form-validator.bundle.js.map +1 -1
  38. package/moj/components/form-validator/form-validator.bundle.mjs +4 -2
  39. package/moj/components/form-validator/form-validator.bundle.mjs.map +1 -1
  40. package/moj/components/form-validator/form-validator.mjs.map +1 -1
  41. package/moj/components/messages/README.md +1 -1
  42. package/moj/components/multi-file-upload/multi-file-upload.bundle.js +3 -3
  43. package/moj/components/multi-file-upload/multi-file-upload.bundle.js.map +1 -1
  44. package/moj/components/multi-file-upload/multi-file-upload.bundle.mjs +7 -5
  45. package/moj/components/multi-file-upload/multi-file-upload.bundle.mjs.map +1 -1
  46. package/moj/components/multi-file-upload/multi-file-upload.mjs +3 -3
  47. package/moj/components/multi-file-upload/multi-file-upload.mjs.map +1 -1
  48. package/moj/components/multi-select/multi-select.bundle.js.map +1 -1
  49. package/moj/components/multi-select/multi-select.bundle.mjs +4 -2
  50. package/moj/components/multi-select/multi-select.bundle.mjs.map +1 -1
  51. package/moj/components/multi-select/multi-select.mjs.map +1 -1
  52. package/moj/components/notification-badge/_notification-badge.scss +10 -6
  53. package/moj/components/notification-badge/_notification-badge.scss.map +1 -1
  54. package/moj/components/notification-badge/template.njk +11 -5
  55. package/moj/components/pagination/template.njk +2 -2
  56. package/moj/components/password-reveal/password-reveal.bundle.js.map +1 -1
  57. package/moj/components/password-reveal/password-reveal.bundle.mjs +10 -2
  58. package/moj/components/password-reveal/password-reveal.bundle.mjs.map +1 -1
  59. package/moj/components/password-reveal/password-reveal.mjs.map +1 -1
  60. package/moj/components/rich-text-editor/rich-text-editor.bundle.js.map +1 -1
  61. package/moj/components/rich-text-editor/rich-text-editor.bundle.mjs +4 -2
  62. package/moj/components/rich-text-editor/rich-text-editor.bundle.mjs.map +1 -1
  63. package/moj/components/rich-text-editor/rich-text-editor.mjs.map +1 -1
  64. package/moj/components/search-toggle/search-toggle.bundle.js.map +1 -1
  65. package/moj/components/search-toggle/search-toggle.bundle.mjs +4 -2
  66. package/moj/components/search-toggle/search-toggle.bundle.mjs.map +1 -1
  67. package/moj/components/search-toggle/search-toggle.mjs.map +1 -1
  68. package/moj/components/sortable-table/sortable-table.bundle.js.map +1 -1
  69. package/moj/components/sortable-table/sortable-table.bundle.mjs +4 -2
  70. package/moj/components/sortable-table/sortable-table.bundle.mjs.map +1 -1
  71. package/moj/components/sortable-table/sortable-table.mjs.map +1 -1
  72. package/moj/components/timeline/README.md +1 -1
  73. package/moj/core/_moj-frontend-properties.scss +1 -1
  74. package/moj/helpers.bundle.js.map +1 -1
  75. package/moj/helpers.bundle.mjs.map +1 -1
  76. package/moj/helpers.mjs +1 -1
  77. package/moj/helpers.mjs.map +1 -1
  78. package/moj/moj-frontend.min.css +1 -1
  79. package/moj/moj-frontend.min.css.map +1 -1
  80. package/moj/moj-frontend.min.js +1 -1
  81. package/moj/moj-frontend.min.js.map +1 -1
  82. package/moj/objects/_scrollable-pane.scss +2 -2
  83. package/moj/objects/_scrollable-pane.scss.map +1 -1
  84. package/package.json +2 -2
package/moj/all.bundle.js CHANGED
@@ -10,11 +10,11 @@
10
10
  */
11
11
 
12
12
  /**
13
- * MoJ Frontend release version
13
+ * MOJ Frontend release version
14
14
  *
15
15
  * {@link https://github.com/ministryofjustice/moj-frontend/releases}
16
16
  */
17
- const version = '5.2.1';
17
+ const version = '7.0.0';
18
18
 
19
19
  class AddAnother extends govukFrontend.Component {
20
20
  /**
@@ -303,7 +303,7 @@
303
303
  */
304
304
  function findNearestMatchingElement($element, selector) {
305
305
  // If no element or selector is provided, return
306
- if (!$element || !($element instanceof HTMLElement) || false) {
306
+ if (!$element || !($element instanceof HTMLElement) || !selector) {
307
307
  return;
308
308
  }
309
309
 
@@ -1048,7 +1048,7 @@
1048
1048
  const day = match[1];
1049
1049
  const month = match[3];
1050
1050
  const year = match[4];
1051
- formattedDate = new Date(`${year}-${month}-${day}`);
1051
+ formattedDate = new Date(Number(year), Number(month) - 1, Number(day));
1052
1052
  if (formattedDate instanceof Date && Number.isFinite(formattedDate.getTime())) {
1053
1053
  return formattedDate;
1054
1054
  }
@@ -1224,6 +1224,16 @@
1224
1224
 
1225
1225
  // get the date from the input element
1226
1226
  this.inputDate = this.formattedDateFromString(this.$input.value);
1227
+ // move current date to the closest selectable date if it is out of range
1228
+ if (this.minDate && this.minDate > this.inputDate) {
1229
+ this.inputDate = new Date(this.minDate.getTime());
1230
+ }
1231
+ if (this.maxDate && this.maxDate < this.inputDate) {
1232
+ this.inputDate = new Date(this.maxDate.getTime());
1233
+ }
1234
+ if (this.minDate && this.maxDate && this.minDate > this.maxDate) {
1235
+ console.error('min date is after max date. No dates will be selectable');
1236
+ }
1227
1237
  this.currentDate = this.inputDate;
1228
1238
  this.currentDate.setHours(0, 0, 0, 0);
1229
1239
  this.updateCalendar();
@@ -2171,13 +2181,13 @@
2171
2181
  $message.innerHTML = this.getSuccessHtml(xhr.response.success);
2172
2182
  this.$status.textContent = xhr.response.success.messageText;
2173
2183
  $actions.append(this.getDeleteButton(xhr.response.file));
2174
- this.config.hooks.exitHook(this, file, xhr, xhr.responseText);
2184
+ this.config.hooks.exitHook(this, file, xhr, xhr.statusText);
2175
2185
  };
2176
2186
  const onError = () => {
2177
2187
  const error = new Error(xhr.response && 'error' in xhr.response ? xhr.response.error.message : xhr.statusText || 'Upload failed');
2178
2188
  $message.innerHTML = this.getErrorHtml(error);
2179
2189
  this.$status.textContent = error.message;
2180
- this.config.hooks.errorHook(this, file, xhr, xhr.responseText, error);
2190
+ this.config.hooks.errorHook(this, file, xhr, xhr.statusText, error);
2181
2191
  };
2182
2192
  xhr.addEventListener('load', onLoad);
2183
2193
  xhr.addEventListener('error', onError);
@@ -2214,7 +2224,7 @@
2214
2224
  }
2215
2225
  const $rowDelete = $rows.find($row => $row.contains($button));
2216
2226
  if ($rowDelete) $rowDelete.remove();
2217
- this.config.hooks.deleteHook(this, undefined, xhr, xhr.responseText);
2227
+ this.config.hooks.deleteHook(this, undefined, xhr, xhr.statusText);
2218
2228
  });
2219
2229
  xhr.open('POST', this.config.deleteUrl);
2220
2230
  xhr.setRequestHeader('Content-Type', 'application/json');
@@ -3109,16 +3119,24 @@
3109
3119
  });
3110
3120
 
3111
3121
  /**
3112
- * @param {Config} [config]
3122
+ * Initialise all components
3123
+ *
3124
+ * Use the `data-module` attributes to find, instantiate and init all of the
3125
+ * components provided as part of MOJ Frontend.
3126
+ *
3127
+ * @param {Config | Element | Document | null} [scopeOrConfig]
3113
3128
  */
3114
- function initAll(config) {
3115
- for (const Component of [AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, RichTextEditor, SearchToggle, SortableTable, PdsHeader]) {
3116
- govukFrontend.createAll(Component, undefined, config);
3129
+ function initAll(scopeOrConfig) {
3130
+ for (const Component of [AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, PdsHeader, RichTextEditor, SearchToggle, SortableTable]) {
3131
+ govukFrontend.createAll(Component, undefined, scopeOrConfig);
3117
3132
  }
3118
3133
  }
3119
3134
 
3120
3135
  /**
3121
- * @typedef {Parameters<typeof GOVUKFrontend.initAll>[0]} Config
3136
+ * Config for all components via `initAll()`
3137
+ *
3138
+ * @typedef {object} Config
3139
+ * @property {Element | Document | null } scope - the scope to search for components in
3122
3140
  */
3123
3141
 
3124
3142
  /**