@ministryofjustice/frontend 6.0.0 → 7.1.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 (39) hide show
  1. package/moj/all.bundle.js +26 -8
  2. package/moj/all.bundle.js.map +1 -1
  3. package/moj/all.bundle.mjs +26 -8
  4. package/moj/all.bundle.mjs.map +1 -1
  5. package/moj/common/moj-frontend-version.mjs +2 -2
  6. package/moj/common/moj-frontend-version.mjs.map +1 -1
  7. package/moj/components/date-picker/date-picker.bundle.js +11 -1
  8. package/moj/components/date-picker/date-picker.bundle.js.map +1 -1
  9. package/moj/components/date-picker/date-picker.bundle.mjs +11 -1
  10. package/moj/components/date-picker/date-picker.bundle.mjs.map +1 -1
  11. package/moj/components/date-picker/date-picker.mjs +11 -1
  12. package/moj/components/date-picker/date-picker.mjs.map +1 -1
  13. package/moj/components/domain-specific/probation/header/README.md +20 -1
  14. package/moj/components/domain-specific/probation/header/_header.scss +2 -1
  15. package/moj/components/domain-specific/probation/header/_header.scss.map +1 -1
  16. package/moj/components/domain-specific/probation/header/header.bundle.js +10 -2
  17. package/moj/components/domain-specific/probation/header/header.bundle.js.map +1 -1
  18. package/moj/components/domain-specific/probation/header/header.bundle.mjs +10 -2
  19. package/moj/components/domain-specific/probation/header/header.bundle.mjs.map +1 -1
  20. package/moj/components/domain-specific/probation/header/header.mjs +10 -2
  21. package/moj/components/domain-specific/probation/header/header.mjs.map +1 -1
  22. package/moj/components/domain-specific/probation/header/template.njk +37 -0
  23. package/moj/components/messages/README.md +1 -1
  24. package/moj/components/multi-file-upload/multi-file-upload.bundle.js +3 -3
  25. package/moj/components/multi-file-upload/multi-file-upload.bundle.js.map +1 -1
  26. package/moj/components/multi-file-upload/multi-file-upload.bundle.mjs +3 -3
  27. package/moj/components/multi-file-upload/multi-file-upload.bundle.mjs.map +1 -1
  28. package/moj/components/multi-file-upload/multi-file-upload.mjs +3 -3
  29. package/moj/components/multi-file-upload/multi-file-upload.mjs.map +1 -1
  30. package/moj/components/pagination/template.njk +2 -2
  31. package/moj/components/timeline/README.md +1 -1
  32. package/moj/core/_moj-frontend-properties.scss +1 -1
  33. package/moj/moj-frontend.min.css +1 -1
  34. package/moj/moj-frontend.min.css.map +1 -1
  35. package/moj/moj-frontend.min.js +1 -1
  36. package/moj/moj-frontend.min.js.map +1 -1
  37. package/moj/objects/_scrollable-pane.scss +2 -2
  38. package/moj/objects/_scrollable-pane.scss.map +1 -1
  39. package/package.json +1 -1
@@ -337,11 +337,11 @@ function createAll(Component, config, scopeOrOptions) {
337
337
  */
338
338
 
339
339
  /**
340
- * MoJ Frontend release version
340
+ * MOJ Frontend release version
341
341
  *
342
342
  * {@link https://github.com/ministryofjustice/moj-frontend/releases}
343
343
  */
344
- const version = '6.0.0';
344
+ const version = '7.1.0';
345
345
 
346
346
  class AddAnother extends Component {
347
347
  /**
@@ -1375,7 +1375,7 @@ class DatePicker extends ConfigurableComponent {
1375
1375
  const day = match[1];
1376
1376
  const month = match[3];
1377
1377
  const year = match[4];
1378
- formattedDate = new Date(`${year}-${month}-${day}`);
1378
+ formattedDate = new Date(Number(year), Number(month) - 1, Number(day));
1379
1379
  if (formattedDate instanceof Date && Number.isFinite(formattedDate.getTime())) {
1380
1380
  return formattedDate;
1381
1381
  }
@@ -1551,6 +1551,16 @@ class DatePicker extends ConfigurableComponent {
1551
1551
 
1552
1552
  // get the date from the input element
1553
1553
  this.inputDate = this.formattedDateFromString(this.$input.value);
1554
+ // move current date to the closest selectable date if it is out of range
1555
+ if (this.minDate && this.minDate > this.inputDate) {
1556
+ this.inputDate = new Date(this.minDate.getTime());
1557
+ }
1558
+ if (this.maxDate && this.maxDate < this.inputDate) {
1559
+ this.inputDate = new Date(this.maxDate.getTime());
1560
+ }
1561
+ if (this.minDate && this.maxDate && this.minDate > this.maxDate) {
1562
+ console.error('min date is after max date. No dates will be selectable');
1563
+ }
1554
1564
  this.currentDate = this.inputDate;
1555
1565
  this.currentDate.setHours(0, 0, 0, 0);
1556
1566
  this.updateCalendar();
@@ -1851,15 +1861,21 @@ class PdsHeader extends Component {
1851
1861
  this.$tabOpenClass = 'probation-common-header__toggle-open';
1852
1862
  const $userToggle = this.$root.querySelector('.probation-common-header__user-menu-toggle');
1853
1863
  const $userMenu = this.$root.querySelector('#probation-common-header-user-menu');
1854
- if (!$userToggle || !$userMenu || !($userToggle instanceof HTMLElement) || !($userMenu instanceof HTMLElement)) {
1864
+ const $servicesToggle = this.$root.querySelector('.probation-common-header__services-menu-toggle');
1865
+ const $servicesMenu = this.$root.querySelector('#probation-common-header-services-menu');
1866
+ if (!$userToggle || !$userMenu || !$servicesToggle || !$servicesMenu || !($userToggle instanceof HTMLElement) || !($userMenu instanceof HTMLElement) || !($servicesToggle instanceof HTMLElement) || !($servicesMenu instanceof HTMLElement)) {
1855
1867
  return 0;
1856
1868
  }
1857
1869
  this.hideFallbackLinks();
1858
1870
  $userToggle.removeAttribute('hidden');
1859
- this.closeTabs([[$userToggle, $userMenu]]);
1871
+ $servicesToggle.removeAttribute('hidden');
1872
+ this.closeTabs([[$userToggle, $userMenu], [$servicesToggle, $servicesMenu]]);
1860
1873
  $userToggle.addEventListener('click', _event => {
1861
1874
  this.toggleMenu($userToggle, $userMenu);
1862
1875
  });
1876
+ $servicesToggle.addEventListener('click', _event => {
1877
+ this.toggleMenu($servicesToggle, $servicesMenu);
1878
+ });
1863
1879
  }
1864
1880
 
1865
1881
  /**
@@ -1895,7 +1911,9 @@ class PdsHeader extends Component {
1895
1911
  }
1896
1912
  hideFallbackLinks() {
1897
1913
  const $userLink = this.$root.querySelector('.probation-common-header__user-menu-link');
1914
+ const $servicesLink = this.$root.querySelector('.probation-common-header__services-menu-link');
1898
1915
  if ($userLink) $userLink.setAttribute('hidden', 'hidden');
1916
+ if ($servicesLink) $servicesLink.setAttribute('hidden', 'hidden');
1899
1917
  }
1900
1918
 
1901
1919
  /**
@@ -2498,13 +2516,13 @@ class MultiFileUpload extends ConfigurableComponent {
2498
2516
  $message.innerHTML = this.getSuccessHtml(xhr.response.success);
2499
2517
  this.$status.textContent = xhr.response.success.messageText;
2500
2518
  $actions.append(this.getDeleteButton(xhr.response.file));
2501
- this.config.hooks.exitHook(this, file, xhr, xhr.responseText);
2519
+ this.config.hooks.exitHook(this, file, xhr, xhr.statusText);
2502
2520
  };
2503
2521
  const onError = () => {
2504
2522
  const error = new Error(xhr.response && 'error' in xhr.response ? xhr.response.error.message : xhr.statusText || 'Upload failed');
2505
2523
  $message.innerHTML = this.getErrorHtml(error);
2506
2524
  this.$status.textContent = error.message;
2507
- this.config.hooks.errorHook(this, file, xhr, xhr.responseText, error);
2525
+ this.config.hooks.errorHook(this, file, xhr, xhr.statusText, error);
2508
2526
  };
2509
2527
  xhr.addEventListener('load', onLoad);
2510
2528
  xhr.addEventListener('error', onError);
@@ -2541,7 +2559,7 @@ class MultiFileUpload extends ConfigurableComponent {
2541
2559
  }
2542
2560
  const $rowDelete = $rows.find($row => $row.contains($button));
2543
2561
  if ($rowDelete) $rowDelete.remove();
2544
- this.config.hooks.deleteHook(this, undefined, xhr, xhr.responseText);
2562
+ this.config.hooks.deleteHook(this, undefined, xhr, xhr.statusText);
2545
2563
  });
2546
2564
  xhr.open('POST', this.config.deleteUrl);
2547
2565
  xhr.setRequestHeader('Content-Type', 'application/json');