@ministryofjustice/frontend 5.1.5 → 5.2.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 (33) hide show
  1. package/moj/all.bundle.js +68 -2
  2. package/moj/all.bundle.js.map +1 -1
  3. package/moj/all.bundle.mjs +68 -3
  4. package/moj/all.bundle.mjs.map +1 -1
  5. package/moj/all.mjs +3 -2
  6. package/moj/all.mjs.map +1 -1
  7. package/moj/common/moj-frontend-version.mjs +1 -1
  8. package/moj/components/_all.scss +2 -0
  9. package/moj/components/_all.scss.map +1 -1
  10. package/moj/components/domain-specific/probation/_all.scss +4 -0
  11. package/moj/components/domain-specific/probation/_all.scss.map +1 -0
  12. package/moj/components/domain-specific/probation/footer/README.md +22 -0
  13. package/moj/components/domain-specific/probation/footer/_footer.scss +52 -0
  14. package/moj/components/domain-specific/probation/footer/_footer.scss.map +1 -0
  15. package/moj/components/domain-specific/probation/footer/macro.njk +3 -0
  16. package/moj/components/domain-specific/probation/footer/template.njk +23 -0
  17. package/moj/components/domain-specific/probation/header/README.md +28 -0
  18. package/moj/components/domain-specific/probation/header/_header.scss +336 -0
  19. package/moj/components/domain-specific/probation/header/_header.scss.map +1 -0
  20. package/moj/components/domain-specific/probation/header/header.bundle.js +75 -0
  21. package/moj/components/domain-specific/probation/header/header.bundle.js.map +1 -0
  22. package/moj/components/domain-specific/probation/header/header.bundle.mjs +189 -0
  23. package/moj/components/domain-specific/probation/header/header.bundle.mjs.map +1 -0
  24. package/moj/components/domain-specific/probation/header/header.mjs +69 -0
  25. package/moj/components/domain-specific/probation/header/header.mjs.map +1 -0
  26. package/moj/components/domain-specific/probation/header/macro.njk +3 -0
  27. package/moj/components/domain-specific/probation/header/template.njk +109 -0
  28. package/moj/core/_moj-frontend-properties.scss +1 -1
  29. package/moj/moj-frontend.min.css +1 -1
  30. package/moj/moj-frontend.min.css.map +1 -1
  31. package/moj/moj-frontend.min.js +1 -1
  32. package/moj/moj-frontend.min.js.map +1 -1
  33. package/package.json +1 -1
package/moj/all.bundle.js CHANGED
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * {@link https://github.com/ministryofjustice/moj-frontend/releases}
16
16
  */
17
- const version = '5.1.5';
17
+ const version = '5.2.0';
18
18
 
19
19
  class AddAnother extends govukFrontend.Component {
20
20
  /**
@@ -1512,6 +1512,71 @@
1512
1512
  * @import { Schema } from 'govuk-frontend/dist/govuk/common/configuration.mjs'
1513
1513
  */
1514
1514
 
1515
+ class PdsHeader extends govukFrontend.Component {
1516
+ /**
1517
+ * @param {Element | null} $root - HTML element to use for PDS header
1518
+ */
1519
+ constructor($root) {
1520
+ super($root);
1521
+ this.initHeader();
1522
+ }
1523
+ initHeader() {
1524
+ this.$tabOpenClass = 'probation-common-header__toggle-open';
1525
+ const $userToggle = this.$root.querySelector('.probation-common-header__user-menu-toggle');
1526
+ const $userMenu = this.$root.querySelector('#probation-common-header-user-menu');
1527
+ if (!$userToggle || !$userMenu || !($userToggle instanceof HTMLElement) || !($userMenu instanceof HTMLElement)) {
1528
+ return 0;
1529
+ }
1530
+ this.hideFallbackLinks();
1531
+ $userToggle.removeAttribute('hidden');
1532
+ this.closeTabs([[$userToggle, $userMenu]]);
1533
+ $userToggle.addEventListener('click', _event => {
1534
+ this.toggleMenu($userToggle, $userMenu);
1535
+ });
1536
+ }
1537
+
1538
+ /**
1539
+ * @param {[any, any][]} tabTuples
1540
+ */
1541
+ closeTabs(tabTuples) {
1542
+ tabTuples.forEach(([toggle, menu]) => {
1543
+ if (menu && toggle) {
1544
+ menu.setAttribute('hidden', 'hidden');
1545
+ toggle.classList.remove(this.$tabOpenClass);
1546
+ toggle.parentElement.classList.remove('item-open');
1547
+ toggle.setAttribute('aria-expanded', 'false');
1548
+ if (toggle.dataset.textForShow) toggle.setAttribute('aria-label', toggle.dataset.textForShow);
1549
+ }
1550
+ });
1551
+ }
1552
+
1553
+ /**
1554
+ * @param {HTMLElement} toggle
1555
+ * @param {HTMLElement} menu
1556
+ */
1557
+ toggleMenu(toggle, menu) {
1558
+ const isOpen = !menu.getAttribute('hidden');
1559
+ if (isOpen) {
1560
+ this.closeTabs([[toggle, menu]]);
1561
+ } else if (menu && toggle) {
1562
+ menu.removeAttribute('hidden');
1563
+ toggle.classList.add(this.$tabOpenClass);
1564
+ toggle.parentElement.classList.add('item-open');
1565
+ toggle.setAttribute('aria-expanded', 'true');
1566
+ if (toggle.dataset.textForHide) toggle.setAttribute('aria-label', toggle.dataset.textForHide);
1567
+ }
1568
+ }
1569
+ hideFallbackLinks() {
1570
+ const $userLink = this.$root.querySelector('.probation-common-header__user-menu-link');
1571
+ if ($userLink) $userLink.setAttribute('hidden', 'hidden');
1572
+ }
1573
+
1574
+ /**
1575
+ * Name for the component used when initialising using data-module attributes.
1576
+ */
1577
+ }
1578
+ PdsHeader.moduleName = 'pds-header';
1579
+
1515
1580
  /**
1516
1581
  * @augments {ConfigurableComponent<FilterToggleButtonConfig>}
1517
1582
  */
@@ -3047,7 +3112,7 @@
3047
3112
  * @param {Config} [config]
3048
3113
  */
3049
3114
  function initAll(config) {
3050
- for (const Component of [AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, RichTextEditor, SearchToggle, SortableTable]) {
3115
+ for (const Component of [AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, RichTextEditor, SearchToggle, SortableTable, PdsHeader]) {
3051
3116
  govukFrontend.createAll(Component, undefined, config);
3052
3117
  }
3053
3118
  }
@@ -3069,6 +3134,7 @@
3069
3134
  exports.MultiFileUpload = MultiFileUpload;
3070
3135
  exports.MultiSelect = MultiSelect;
3071
3136
  exports.PasswordReveal = PasswordReveal;
3137
+ exports.PdsHeader = PdsHeader;
3072
3138
  exports.RichTextEditor = RichTextEditor;
3073
3139
  exports.SearchToggle = SearchToggle;
3074
3140
  exports.SortableTable = SortableTable;