@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.
- package/moj/all.bundle.js +68 -2
- package/moj/all.bundle.js.map +1 -1
- package/moj/all.bundle.mjs +68 -3
- package/moj/all.bundle.mjs.map +1 -1
- package/moj/all.mjs +3 -2
- package/moj/all.mjs.map +1 -1
- package/moj/common/moj-frontend-version.mjs +1 -1
- package/moj/components/_all.scss +2 -0
- package/moj/components/_all.scss.map +1 -1
- package/moj/components/domain-specific/probation/_all.scss +4 -0
- package/moj/components/domain-specific/probation/_all.scss.map +1 -0
- package/moj/components/domain-specific/probation/footer/README.md +22 -0
- package/moj/components/domain-specific/probation/footer/_footer.scss +52 -0
- package/moj/components/domain-specific/probation/footer/_footer.scss.map +1 -0
- package/moj/components/domain-specific/probation/footer/macro.njk +3 -0
- package/moj/components/domain-specific/probation/footer/template.njk +23 -0
- package/moj/components/domain-specific/probation/header/README.md +28 -0
- package/moj/components/domain-specific/probation/header/_header.scss +336 -0
- package/moj/components/domain-specific/probation/header/_header.scss.map +1 -0
- package/moj/components/domain-specific/probation/header/header.bundle.js +75 -0
- package/moj/components/domain-specific/probation/header/header.bundle.js.map +1 -0
- package/moj/components/domain-specific/probation/header/header.bundle.mjs +189 -0
- package/moj/components/domain-specific/probation/header/header.bundle.mjs.map +1 -0
- package/moj/components/domain-specific/probation/header/header.mjs +69 -0
- package/moj/components/domain-specific/probation/header/header.mjs.map +1 -0
- package/moj/components/domain-specific/probation/header/macro.njk +3 -0
- package/moj/components/domain-specific/probation/header/template.njk +109 -0
- package/moj/core/_moj-frontend-properties.scss +1 -1
- package/moj/moj-frontend.min.css +1 -1
- package/moj/moj-frontend.min.css.map +1 -1
- package/moj/moj-frontend.min.js +1 -1
- package/moj/moj-frontend.min.js.map +1 -1
- package/package.json +1 -1
package/moj/all.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import { AddAnother } from './components/add-another/add-another.mjs';
|
|
|
4
4
|
import { Alert } from './components/alert/alert.mjs';
|
|
5
5
|
import { ButtonMenu } from './components/button-menu/button-menu.mjs';
|
|
6
6
|
import { DatePicker } from './components/date-picker/date-picker.mjs';
|
|
7
|
+
import { PdsHeader } from './components/domain-specific/probation/header/header.mjs';
|
|
7
8
|
export { FilterToggleButton } from './components/filter-toggle-button/filter-toggle-button.mjs';
|
|
8
9
|
export { FormValidator } from './components/form-validator/form-validator.mjs';
|
|
9
10
|
export { MultiFileUpload } from './components/multi-file-upload/multi-file-upload.mjs';
|
|
@@ -17,7 +18,7 @@ import { SortableTable } from './components/sortable-table/sortable-table.mjs';
|
|
|
17
18
|
* @param {Config} [config]
|
|
18
19
|
*/
|
|
19
20
|
function initAll(config) {
|
|
20
|
-
for (const Component of [AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, RichTextEditor, SearchToggle, SortableTable]) {
|
|
21
|
+
for (const Component of [AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, RichTextEditor, SearchToggle, SortableTable, PdsHeader]) {
|
|
21
22
|
createAll(Component, undefined, config);
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -30,5 +31,5 @@ function initAll(config) {
|
|
|
30
31
|
* @import * as GOVUKFrontend from 'govuk-frontend'
|
|
31
32
|
*/
|
|
32
33
|
|
|
33
|
-
export { AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, RichTextEditor, SearchToggle, SortableTable, initAll };
|
|
34
|
+
export { AddAnother, Alert, ButtonMenu, DatePicker, MultiSelect, PasswordReveal, PdsHeader, RichTextEditor, SearchToggle, SortableTable, initAll };
|
|
34
35
|
//# sourceMappingURL=all.mjs.map
|
package/moj/all.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all.mjs","sources":["../../src/moj/all.mjs"],"sourcesContent":["import { createAll } from 'govuk-frontend'\n\nimport { version } from './common/moj-frontend-version.mjs'\nimport { AddAnother } from './components/add-another/add-another.mjs'\nimport { Alert } from './components/alert/alert.mjs'\nimport { ButtonMenu } from './components/button-menu/button-menu.mjs'\nimport { DatePicker } from './components/date-picker/date-picker.mjs'\nimport { FilterToggleButton } from './components/filter-toggle-button/filter-toggle-button.mjs'\nimport { FormValidator } from './components/form-validator/form-validator.mjs'\nimport { MultiFileUpload } from './components/multi-file-upload/multi-file-upload.mjs'\nimport { MultiSelect } from './components/multi-select/multi-select.mjs'\nimport { PasswordReveal } from './components/password-reveal/password-reveal.mjs'\nimport { RichTextEditor } from './components/rich-text-editor/rich-text-editor.mjs'\nimport { SearchToggle } from './components/search-toggle/search-toggle.mjs'\nimport { SortableTable } from './components/sortable-table/sortable-table.mjs'\n\n/**\n * @param {Config} [config]\n */\nfunction initAll(config) {\n for (const Component of [\n AddAnother,\n Alert,\n ButtonMenu,\n DatePicker,\n MultiSelect,\n PasswordReveal,\n RichTextEditor,\n SearchToggle,\n SortableTable\n ]) {\n createAll(Component, undefined, config)\n }\n}\n\nexport {\n initAll,\n version,\n\n // Components\n AddAnother,\n Alert,\n ButtonMenu,\n DatePicker,\n FilterToggleButton,\n FormValidator,\n MultiFileUpload,\n MultiSelect,\n PasswordReveal,\n RichTextEditor,\n SearchToggle,\n SortableTable\n}\n\n/**\n * @typedef {Parameters<typeof GOVUKFrontend.initAll>[0]} Config\n */\n\n/**\n * @import * as GOVUKFrontend from 'govuk-frontend'\n */\n"],"names":["initAll","config","Component","AddAnother","Alert","ButtonMenu","DatePicker","MultiSelect","PasswordReveal","RichTextEditor","SearchToggle","SortableTable","createAll","undefined"],"mappings":"
|
|
1
|
+
{"version":3,"file":"all.mjs","sources":["../../src/moj/all.mjs"],"sourcesContent":["import { createAll } from 'govuk-frontend'\n\nimport { version } from './common/moj-frontend-version.mjs'\nimport { AddAnother } from './components/add-another/add-another.mjs'\nimport { Alert } from './components/alert/alert.mjs'\nimport { ButtonMenu } from './components/button-menu/button-menu.mjs'\nimport { DatePicker } from './components/date-picker/date-picker.mjs'\nimport { PdsHeader } from './components/domain-specific/probation/header/header.mjs'\nimport { FilterToggleButton } from './components/filter-toggle-button/filter-toggle-button.mjs'\nimport { FormValidator } from './components/form-validator/form-validator.mjs'\nimport { MultiFileUpload } from './components/multi-file-upload/multi-file-upload.mjs'\nimport { MultiSelect } from './components/multi-select/multi-select.mjs'\nimport { PasswordReveal } from './components/password-reveal/password-reveal.mjs'\nimport { RichTextEditor } from './components/rich-text-editor/rich-text-editor.mjs'\nimport { SearchToggle } from './components/search-toggle/search-toggle.mjs'\nimport { SortableTable } from './components/sortable-table/sortable-table.mjs'\n\n/**\n * @param {Config} [config]\n */\nfunction initAll(config) {\n for (const Component of [\n AddAnother,\n Alert,\n ButtonMenu,\n DatePicker,\n MultiSelect,\n PasswordReveal,\n RichTextEditor,\n SearchToggle,\n SortableTable,\n PdsHeader\n ]) {\n createAll(Component, undefined, config)\n }\n}\n\nexport {\n initAll,\n version,\n\n // Components\n AddAnother,\n Alert,\n ButtonMenu,\n DatePicker,\n FilterToggleButton,\n FormValidator,\n MultiFileUpload,\n MultiSelect,\n PasswordReveal,\n RichTextEditor,\n SearchToggle,\n SortableTable,\n PdsHeader\n}\n\n/**\n * @typedef {Parameters<typeof GOVUKFrontend.initAll>[0]} Config\n */\n\n/**\n * @import * as GOVUKFrontend from 'govuk-frontend'\n */\n"],"names":["initAll","config","Component","AddAnother","Alert","ButtonMenu","DatePicker","MultiSelect","PasswordReveal","RichTextEditor","SearchToggle","SortableTable","PdsHeader","createAll","undefined"],"mappings":";;;;;;;;;;;;;;;;AAiBA;AACA;AACA;AACA,SAASA,OAAOA,CAACC,MAAM,EAAE;EACvB,KAAK,MAAMC,SAAS,IAAI,CACtBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,SAAS,CACV,EAAE;AACDC,IAAAA,SAAS,CAACX,SAAS,EAAEY,SAAS,EAAEb,MAAM,CAAC;AACzC;AACF;;AAsBA;AACA;AACA;;AAEA;AACA;AACA;;;;"}
|
package/moj/components/_all.scss
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/moj/components/_all.scss"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,kCAAkC;AAClC,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,kCAAkC;AAClC,sCAAsC;AACtC,wCAAwC;AACxC,kCAAkC;AAClC,wBAAwB;AACxB,wBAAwB;AACxB,oCAAoC;AACpC,8CAA8C;AAC9C,4BAA4B;AAC5B,8CAA8C;AAC9C,oCAAoC;AACpC,gDAAgD;AAChD,sDAAsD;AACtD,kDAAkD;AAClD,gCAAgC;AAChC,0CAA0C;AAC1C,gDAAgD;AAChD,oCAAoC;AACpC,4CAA4C;AAC5C,sCAAsC;AACtC,wBAAwB;AACxB,0CAA0C;AAC1C,wCAAwC;AACxC,wCAAwC;AACxC,kBAAkB;AAClB,8BAA8B;AAC9B,4BAA4B;AAC5B,oCAAoC","file":"_all.scss","sourcesContent":["@forward \"action-bar/action-bar\";\n@forward \"add-another/add-another\";\n@forward \"alert/alert\";\n@forward \"badge/badge\";\n@forward \"banner/banner\";\n@forward \"button-menu/button-menu\";\n@forward \"cookie-banner/cookie-banner\";\n@forward \"currency-input/currency-input\";\n@forward \"date-picker/date-picker\";\n@forward \"filter/filter\";\n@forward \"header/header\";\n@forward \"identity-bar/identity-bar\";\n@forward \"interruption-card/interruption-card\";\n@forward \"messages/messages\";\n@forward \"multi-file-upload/multi-file-upload\";\n@forward \"multi-select/multi-select\";\n@forward \"notification-badge/notification-badge\";\n@forward \"organisation-switcher/organisation-switcher\";\n@forward \"page-header-actions/page-header-actions\";\n@forward \"pagination/pagination\";\n@forward \"password-reveal/password-reveal\";\n@forward \"primary-navigation/primary-navigation\";\n@forward \"progress-bar/progress-bar\";\n@forward \"rich-text-editor/rich-text-editor\";\n@forward \"search-toggle/search-toggle\";\n@forward \"search/search\";\n@forward \"side-navigation/side-navigation\";\n@forward \"sortable-table/sortable-table\";\n@forward \"sub-navigation/sub-navigation\";\n@forward \"tag/tag\";\n@forward \"task-list/task-list\";\n@forward \"timeline/timeline\";\n@forward \"ticket-panel/ticket-panel\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/moj/components/_all.scss"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,kCAAkC;AAClC,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,kCAAkC;AAClC,sCAAsC;AACtC,wCAAwC;AACxC,kCAAkC;AAClC,wBAAwB;AACxB,wBAAwB;AACxB,oCAAoC;AACpC,8CAA8C;AAC9C,4BAA4B;AAC5B,8CAA8C;AAC9C,oCAAoC;AACpC,gDAAgD;AAChD,sDAAsD;AACtD,kDAAkD;AAClD,gCAAgC;AAChC,0CAA0C;AAC1C,gDAAgD;AAChD,oCAAoC;AACpC,4CAA4C;AAC5C,sCAAsC;AACtC,wBAAwB;AACxB,0CAA0C;AAC1C,wCAAwC;AACxC,wCAAwC;AACxC,kBAAkB;AAClB,8BAA8B;AAC9B,4BAA4B;AAC5B,oCAAoC;;AAEpC,wCAAwC","file":"_all.scss","sourcesContent":["@forward \"action-bar/action-bar\";\n@forward \"add-another/add-another\";\n@forward \"alert/alert\";\n@forward \"badge/badge\";\n@forward \"banner/banner\";\n@forward \"button-menu/button-menu\";\n@forward \"cookie-banner/cookie-banner\";\n@forward \"currency-input/currency-input\";\n@forward \"date-picker/date-picker\";\n@forward \"filter/filter\";\n@forward \"header/header\";\n@forward \"identity-bar/identity-bar\";\n@forward \"interruption-card/interruption-card\";\n@forward \"messages/messages\";\n@forward \"multi-file-upload/multi-file-upload\";\n@forward \"multi-select/multi-select\";\n@forward \"notification-badge/notification-badge\";\n@forward \"organisation-switcher/organisation-switcher\";\n@forward \"page-header-actions/page-header-actions\";\n@forward \"pagination/pagination\";\n@forward \"password-reveal/password-reveal\";\n@forward \"primary-navigation/primary-navigation\";\n@forward \"progress-bar/progress-bar\";\n@forward \"rich-text-editor/rich-text-editor\";\n@forward \"search-toggle/search-toggle\";\n@forward \"search/search\";\n@forward \"side-navigation/side-navigation\";\n@forward \"sortable-table/sortable-table\";\n@forward \"sub-navigation/sub-navigation\";\n@forward \"tag/tag\";\n@forward \"task-list/task-list\";\n@forward \"timeline/timeline\";\n@forward \"ticket-panel/ticket-panel\";\n\n@forward \"domain-specific/probation/all\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/moj/components/domain-specific/probation/_all.scss"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,wBAAwB","file":"_all.scss","sourcesContent":["@forward \"header/header\";\n@forward \"footer/footer\";\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# PDS Header
|
|
2
|
+
|
|
3
|
+
## Examples
|
|
4
|
+
|
|
5
|
+
```njk
|
|
6
|
+
{{ pdsFooter({
|
|
7
|
+
baseUrl: 'https://probation-frontend-components-dev.hmpps.service.justice.gov.uk'
|
|
8
|
+
}) }}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Arguments
|
|
12
|
+
|
|
13
|
+
This component accepts the following arguments.
|
|
14
|
+
|
|
15
|
+
### Container
|
|
16
|
+
|
|
17
|
+
| Name | Type | Required | Description |
|
|
18
|
+
| ----------------- | ------ | -------- | --------------------------------------------------------------------------------------------- |
|
|
19
|
+
| baseUrl | string | Yes | Base URL for the probation API. |
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
_Warning: If you’re using Nunjucks macros in production be aware that using HTML arguments, or ones ending with `.html` can be at risk from [cross-site scripting](https://en.wikipedia.org/wiki/Cross-site_scripting) attacks. More information about security vulnerabilities can be found in the [Nunjucks documentation](https://mozilla.github.io/nunjucks/api.html#user-defined-templates-warning)._
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@use "../../../../vendor/govuk-frontend" as *;
|
|
2
|
+
|
|
3
|
+
/* ==========================================================================
|
|
4
|
+
PROBATION#FOOTER
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
.probation-common-footer {
|
|
8
|
+
@include govuk-font($size: 16);
|
|
9
|
+
|
|
10
|
+
padding: 30px 0;
|
|
11
|
+
border-top: 1px solid $govuk-border-colour;
|
|
12
|
+
color: $govuk-text-colour;
|
|
13
|
+
background: $govuk-canvas-background-colour;
|
|
14
|
+
|
|
15
|
+
a {
|
|
16
|
+
text-underline-offset: 0.23em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&__info {
|
|
20
|
+
display: flex;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
h2 {
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
padding-bottom: 25px;
|
|
26
|
+
border-bottom: 1px solid govuk-colour("dark-grey");
|
|
27
|
+
font-size: 24px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&__help {
|
|
31
|
+
flex-basis: 50%;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&__inline-list {
|
|
35
|
+
margin-top: 0;
|
|
36
|
+
margin-bottom: govuk-spacing(3);
|
|
37
|
+
padding: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&__inline-list-item {
|
|
41
|
+
display: inline-block;
|
|
42
|
+
margin-right: govuk-spacing(3);
|
|
43
|
+
margin-bottom: govuk-spacing(1);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&__link {
|
|
47
|
+
@include govuk-link-common;
|
|
48
|
+
@include govuk-link-style-text;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/*# sourceMappingURL=_footer.scss.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/moj/components/domain-specific/probation/footer/_footer.scss"],"names":[],"mappings":"AAAA,6CAA6C;;AAE7C;;+EAE+E;;AAE/E;EACE,8BAA8B;;EAE9B,eAAe;EACf,0CAA0C;EAC1C,yBAAyB;EACzB,2CAA2C;;EAE3C;IACE,6BAA6B;EAC/B;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,aAAa;IACb,oBAAoB;IACpB,kDAAkD;IAClD,eAAe;EACjB;;EAEA;IACE,eAAe;EACjB;;EAEA;IACE,aAAa;IACb,+BAA+B;IAC/B,UAAU;EACZ;;EAEA;IACE,qBAAqB;IACrB,8BAA8B;IAC9B,+BAA+B;EACjC;;EAEA;IACE,0BAA0B;IAC1B,8BAA8B;EAChC;AACF","file":"_footer.scss","sourcesContent":["@use \"../../../../vendor/govuk-frontend\" as *;\n\n/* ==========================================================================\n PROBATION#FOOTER\n ========================================================================== */\n\n.probation-common-footer {\n @include govuk-font($size: 16);\n\n padding: 30px 0;\n border-top: 1px solid $govuk-border-colour;\n color: $govuk-text-colour;\n background: $govuk-canvas-background-colour;\n\n a {\n text-underline-offset: 0.23em;\n }\n\n &__info {\n display: flex;\n }\n\n h2 {\n margin-top: 0;\n padding-bottom: 25px;\n border-bottom: 1px solid govuk-colour(\"dark-grey\");\n font-size: 24px;\n }\n\n &__help {\n flex-basis: 50%;\n }\n\n &__inline-list {\n margin-top: 0;\n margin-bottom: govuk-spacing(3);\n padding: 0;\n }\n\n &__inline-list-item {\n display: inline-block;\n margin-right: govuk-spacing(3);\n margin-bottom: govuk-spacing(1);\n }\n\n &__link {\n @include govuk-link-common;\n @include govuk-link-style-text;\n }\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<footer class="probation-common-footer govuk-!-display-none-print" role="contentinfo">
|
|
2
|
+
<div class="govuk-width-container">
|
|
3
|
+
<div class="govuk-grid-row">
|
|
4
|
+
<div class="govuk-grid-column-full">
|
|
5
|
+
<div class="probation-common-footer__support-links">
|
|
6
|
+
<h2 class="govuk-visually-hidden">Support links</h2>
|
|
7
|
+
|
|
8
|
+
<ul class="probation-common-footer__inline-list">
|
|
9
|
+
<li class="probation-common-footer__inline-list-item">
|
|
10
|
+
<a class="probation-common-footer__link" href="{{ params.baseUrl }}/accessibility">Accessibility</a>
|
|
11
|
+
</li>
|
|
12
|
+
<li class="probation-common-footer__inline-list-item">
|
|
13
|
+
<a class="probation-common-footer__link" href="{{ params.baseUrl }}/cookies-policy">Cookies policy</a>
|
|
14
|
+
</li>
|
|
15
|
+
<li class="probation-common-footer__inline-list-item">
|
|
16
|
+
<a class="probation-common-footer__link" href="{{ params.baseUrl }}/privacy-policy">Privacy policy</a>
|
|
17
|
+
</li>
|
|
18
|
+
</ul>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</footer>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# PDS Header
|
|
2
|
+
|
|
3
|
+
## Examples
|
|
4
|
+
|
|
5
|
+
```njk
|
|
6
|
+
{{ pdsHeader({
|
|
7
|
+
environmentName: 'DEV',
|
|
8
|
+
environmentNameColour: 'govuk-tag--green',
|
|
9
|
+
name: 'Account name',
|
|
10
|
+
manageDetailsLink: '#'
|
|
11
|
+
}) }}
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
This component accepts the following arguments.
|
|
17
|
+
|
|
18
|
+
### Container
|
|
19
|
+
|
|
20
|
+
| Name | Type | Required | Description |
|
|
21
|
+
| ----------------- | ------ | -------- | --------------------------------------------------------------------------------------------- |
|
|
22
|
+
| environmentName | string | No | Tag label showing the current environment. Hidden if value is `PRODUCTION`. |
|
|
23
|
+
| environmentNameColour | string | No | Custom colour for the environment tag, overriding the default. |
|
|
24
|
+
| name | string | Yes | The display name of the user. |
|
|
25
|
+
| manageDetailsLink | string | Yes | URL linking to the user account management page. |
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
_Warning: If you’re using Nunjucks macros in production be aware that using HTML arguments, or ones ending with `.html` can be at risk from [cross-site scripting](https://en.wikipedia.org/wiki/Cross-site_scripting) attacks. More information about security vulnerabilities can be found in the [Nunjucks documentation](https://mozilla.github.io/nunjucks/api.html#user-defined-templates-warning)._
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/* stylelint-disable max-nesting-depth, selector-no-qualifying-type */
|
|
2
|
+
@use "../../../../vendor/govuk-frontend" as *;
|
|
3
|
+
|
|
4
|
+
/* ==========================================================================
|
|
5
|
+
PROBATION#HEADER
|
|
6
|
+
========================================================================== */
|
|
7
|
+
|
|
8
|
+
.probation-common-header {
|
|
9
|
+
[hidden] {
|
|
10
|
+
display: none;
|
|
11
|
+
}
|
|
12
|
+
color: govuk-colour("white");
|
|
13
|
+
|
|
14
|
+
background-color: govuk-colour("black");
|
|
15
|
+
|
|
16
|
+
&__logo {
|
|
17
|
+
@include govuk-responsive-margin(3, "right");
|
|
18
|
+
position: relative;
|
|
19
|
+
top: -2px;
|
|
20
|
+
padding: 15px 0;
|
|
21
|
+
fill: govuk-colour("white");
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__title {
|
|
25
|
+
display: flex;
|
|
26
|
+
|
|
27
|
+
&__organisation-name {
|
|
28
|
+
@include govuk-responsive-margin(2, "right");
|
|
29
|
+
@include govuk-font($size: 24, $weight: "bold");
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.govuk-tag {
|
|
35
|
+
margin: auto 0;
|
|
36
|
+
|
|
37
|
+
@include govuk-media-query($until: 985px) {
|
|
38
|
+
display: none;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&__submenu-link {
|
|
44
|
+
@include govuk-link-common;
|
|
45
|
+
@include govuk-link-style-no-visited-state;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&__link {
|
|
49
|
+
@include govuk-link-common;
|
|
50
|
+
@include govuk-link-style-default;
|
|
51
|
+
|
|
52
|
+
&:link,
|
|
53
|
+
&:visited,
|
|
54
|
+
&:active {
|
|
55
|
+
color: govuk-colour("white");
|
|
56
|
+
font-weight: normal;
|
|
57
|
+
text-decoration: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&:focus {
|
|
61
|
+
color: govuk-colour("black");
|
|
62
|
+
box-shadow: none;
|
|
63
|
+
|
|
64
|
+
&::after {
|
|
65
|
+
content: "";
|
|
66
|
+
position: absolute;
|
|
67
|
+
top: auto;
|
|
68
|
+
right: 15px;
|
|
69
|
+
bottom: 0;
|
|
70
|
+
left: 15px;
|
|
71
|
+
height: 3px;
|
|
72
|
+
background: govuk-colour("black");
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
svg {
|
|
76
|
+
fill: govuk-colour("black");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&:hover {
|
|
81
|
+
text-decoration: underline;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&__button-width-container {
|
|
86
|
+
position: relative;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&__button-container {
|
|
90
|
+
@include govuk-media-query(925px) {
|
|
91
|
+
position: absolute;
|
|
92
|
+
top: -70px;
|
|
93
|
+
right: 0;
|
|
94
|
+
background-color: govuk-colour("black");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&__navigation {
|
|
99
|
+
display: flex;
|
|
100
|
+
height: 70px;
|
|
101
|
+
margin: 0;
|
|
102
|
+
padding: 0;
|
|
103
|
+
list-style: none;
|
|
104
|
+
flex-direction: row;
|
|
105
|
+
align-items: center;
|
|
106
|
+
|
|
107
|
+
&__item {
|
|
108
|
+
position: relative;
|
|
109
|
+
height: 100%;
|
|
110
|
+
|
|
111
|
+
> button,
|
|
112
|
+
> a {
|
|
113
|
+
display: flex;
|
|
114
|
+
height: 100%;
|
|
115
|
+
padding: 0;
|
|
116
|
+
overflow: hidden;
|
|
117
|
+
border: none;
|
|
118
|
+
color: govuk-colour("white");
|
|
119
|
+
background: govuk-colour("black");
|
|
120
|
+
cursor: pointer;
|
|
121
|
+
align-items: center;
|
|
122
|
+
justify-content: center;
|
|
123
|
+
@include govuk-font(16);
|
|
124
|
+
|
|
125
|
+
&:hover {
|
|
126
|
+
color: govuk-colour("mid-grey");
|
|
127
|
+
|
|
128
|
+
&::after {
|
|
129
|
+
content: "";
|
|
130
|
+
position: absolute;
|
|
131
|
+
top: auto;
|
|
132
|
+
right: 15px;
|
|
133
|
+
bottom: 0;
|
|
134
|
+
left: 15px;
|
|
135
|
+
height: 3px;
|
|
136
|
+
background: govuk-colour("mid-grey");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&.probation-common-header__menu-toggle {
|
|
141
|
+
padding: 10px 0;
|
|
142
|
+
|
|
143
|
+
> span {
|
|
144
|
+
display: flex;
|
|
145
|
+
height: 100%;
|
|
146
|
+
padding: 0 15px;
|
|
147
|
+
border-left: 1px solid govuk-colour("white");
|
|
148
|
+
align-items: center;
|
|
149
|
+
|
|
150
|
+
&::before {
|
|
151
|
+
content: "";
|
|
152
|
+
display: inline-block;
|
|
153
|
+
width: 8px;
|
|
154
|
+
height: 8px;
|
|
155
|
+
margin: 3px 15px 0 3px;
|
|
156
|
+
transform: translateY(-35%) rotate(45deg) scale(1);
|
|
157
|
+
border-right: 2px solid govuk-colour("white");
|
|
158
|
+
border-bottom: 2px solid govuk-colour("white");
|
|
159
|
+
vertical-align: middle;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
svg {
|
|
164
|
+
margin: 0 15px 0 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&:hover {
|
|
168
|
+
> span {
|
|
169
|
+
&::before {
|
|
170
|
+
border-right: 2px solid govuk-colour("mid-grey");
|
|
171
|
+
border-bottom: 2px solid govuk-colour("mid-grey");
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
&.probation-common-header__toggle-open {
|
|
178
|
+
color: govuk-colour("blue");
|
|
179
|
+
background: govuk-colour("light-grey");
|
|
180
|
+
|
|
181
|
+
> span {
|
|
182
|
+
&::before {
|
|
183
|
+
transform: translateY(-0%) rotate(225deg) scale(1);
|
|
184
|
+
border-right: 2px solid govuk-colour("blue");
|
|
185
|
+
border-bottom: 2px solid govuk-colour("blue");
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
&::after {
|
|
189
|
+
content: "";
|
|
190
|
+
position: absolute;
|
|
191
|
+
top: auto;
|
|
192
|
+
right: 15px;
|
|
193
|
+
bottom: 0;
|
|
194
|
+
left: 15px;
|
|
195
|
+
height: 3px;
|
|
196
|
+
background: govuk-colour("blue");
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
&:hover {
|
|
201
|
+
color: govuk-colour("dark-grey");
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
&:focus-visible {
|
|
206
|
+
outline: 3px solid transparent;
|
|
207
|
+
color: govuk-colour("black");
|
|
208
|
+
background-color: govuk-colour("yellow");
|
|
209
|
+
box-shadow: none;
|
|
210
|
+
text-decoration: none;
|
|
211
|
+
|
|
212
|
+
&::after {
|
|
213
|
+
content: "";
|
|
214
|
+
position: absolute;
|
|
215
|
+
top: auto;
|
|
216
|
+
right: 15px;
|
|
217
|
+
bottom: 0;
|
|
218
|
+
left: 15px;
|
|
219
|
+
height: 3px;
|
|
220
|
+
background: govuk-colour("black");
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
> span {
|
|
224
|
+
&::before {
|
|
225
|
+
border-right: 2px solid govuk-colour("black");
|
|
226
|
+
border-bottom: 2px solid govuk-colour("black");
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
&.item-open {
|
|
233
|
+
+ div {
|
|
234
|
+
> button,
|
|
235
|
+
> a {
|
|
236
|
+
> span {
|
|
237
|
+
border-left: 1px solid transparent;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.probation-common-header__user-menu {
|
|
246
|
+
position: relative;
|
|
247
|
+
z-index: 10000000;
|
|
248
|
+
padding: 15px;
|
|
249
|
+
background: govuk-colour("light-grey");
|
|
250
|
+
|
|
251
|
+
a {
|
|
252
|
+
display: block;
|
|
253
|
+
margin-bottom: 15px;
|
|
254
|
+
font-weight: 700;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
&__pushdown-menu {
|
|
259
|
+
padding: 30px 0 60px;
|
|
260
|
+
background: govuk-colour("light-grey");
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
&__icon-link-wrapper {
|
|
264
|
+
display: flex;
|
|
265
|
+
position: relative;
|
|
266
|
+
height: 100%;
|
|
267
|
+
|
|
268
|
+
img,
|
|
269
|
+
svg {
|
|
270
|
+
margin: 0 15px 0 0;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
a {
|
|
274
|
+
box-sizing: border-box;
|
|
275
|
+
display: block;
|
|
276
|
+
width: 100%;
|
|
277
|
+
padding: 10px 0;
|
|
278
|
+
|
|
279
|
+
> span {
|
|
280
|
+
display: flex;
|
|
281
|
+
height: 100%;
|
|
282
|
+
padding: 0 15px;
|
|
283
|
+
border-left: 1px solid govuk-colour("white");
|
|
284
|
+
align-items: center;
|
|
285
|
+
justify-content: center;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
&:hover {
|
|
289
|
+
color: govuk-colour("mid-grey");
|
|
290
|
+
text-decoration: none;
|
|
291
|
+
|
|
292
|
+
&::after {
|
|
293
|
+
content: "";
|
|
294
|
+
position: absolute;
|
|
295
|
+
top: auto;
|
|
296
|
+
right: 15px;
|
|
297
|
+
bottom: 0;
|
|
298
|
+
left: 15px;
|
|
299
|
+
height: 3px;
|
|
300
|
+
background: govuk-colour("mid-grey");
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
&__services-menu {
|
|
307
|
+
ul {
|
|
308
|
+
display: grid;
|
|
309
|
+
width: 100%;
|
|
310
|
+
margin-bottom: 0;
|
|
311
|
+
font-weight: bold;
|
|
312
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
313
|
+
gap: 15px;
|
|
314
|
+
justify-items: start;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
&__user-menu-link {
|
|
319
|
+
width: 181px;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
&__services-menu-link {
|
|
323
|
+
width: 107px;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
&__menu-toggle-label {
|
|
327
|
+
display: block;
|
|
328
|
+
text-align: left;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
@media print {
|
|
332
|
+
display: none;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/*# sourceMappingURL=_header.scss.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/moj/components/domain-specific/probation/header/_header.scss"],"names":[],"mappings":"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","file":"_header.scss","sourcesContent":["/* stylelint-disable max-nesting-depth, selector-no-qualifying-type */\n@use \"../../../../vendor/govuk-frontend\" as *;\n\n/* ==========================================================================\n PROBATION#HEADER\n ========================================================================== */\n\n.probation-common-header {\n [hidden] {\n display: none;\n }\n color: govuk-colour(\"white\");\n\n background-color: govuk-colour(\"black\");\n\n &__logo {\n @include govuk-responsive-margin(3, \"right\");\n position: relative;\n top: -2px;\n padding: 15px 0;\n fill: govuk-colour(\"white\");\n }\n\n &__title {\n display: flex;\n\n &__organisation-name {\n @include govuk-responsive-margin(2, \"right\");\n @include govuk-font($size: 24, $weight: \"bold\");\n display: flex;\n align-items: center;\n }\n\n .govuk-tag {\n margin: auto 0;\n\n @include govuk-media-query($until: 985px) {\n display: none;\n }\n }\n }\n\n &__submenu-link {\n @include govuk-link-common;\n @include govuk-link-style-no-visited-state;\n }\n\n &__link {\n @include govuk-link-common;\n @include govuk-link-style-default;\n\n &:link,\n &:visited,\n &:active {\n color: govuk-colour(\"white\");\n font-weight: normal;\n text-decoration: none;\n }\n\n &:focus {\n color: govuk-colour(\"black\");\n box-shadow: none;\n\n &::after {\n content: \"\";\n position: absolute;\n top: auto;\n right: 15px;\n bottom: 0;\n left: 15px;\n height: 3px;\n background: govuk-colour(\"black\");\n }\n\n svg {\n fill: govuk-colour(\"black\");\n }\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n &__button-width-container {\n position: relative;\n }\n\n &__button-container {\n @include govuk-media-query(925px) {\n position: absolute;\n top: -70px;\n right: 0;\n background-color: govuk-colour(\"black\");\n }\n }\n\n &__navigation {\n display: flex;\n height: 70px;\n margin: 0;\n padding: 0;\n list-style: none;\n flex-direction: row;\n align-items: center;\n\n &__item {\n position: relative;\n height: 100%;\n\n > button,\n > a {\n display: flex;\n height: 100%;\n padding: 0;\n overflow: hidden;\n border: none;\n color: govuk-colour(\"white\");\n background: govuk-colour(\"black\");\n cursor: pointer;\n align-items: center;\n justify-content: center;\n @include govuk-font(16);\n\n &:hover {\n color: govuk-colour(\"mid-grey\");\n\n &::after {\n content: \"\";\n position: absolute;\n top: auto;\n right: 15px;\n bottom: 0;\n left: 15px;\n height: 3px;\n background: govuk-colour(\"mid-grey\");\n }\n }\n\n &.probation-common-header__menu-toggle {\n padding: 10px 0;\n\n > span {\n display: flex;\n height: 100%;\n padding: 0 15px;\n border-left: 1px solid govuk-colour(\"white\");\n align-items: center;\n\n &::before {\n content: \"\";\n display: inline-block;\n width: 8px;\n height: 8px;\n margin: 3px 15px 0 3px;\n -ms-transform: translateY(-35%) rotate(45deg) scale(1);\n -webkit-transform: translateY(-35%) rotate(45deg) scale(1);\n transform: translateY(-35%) rotate(45deg) scale(1);\n border-right: 2px solid govuk-colour(\"white\");\n border-bottom: 2px solid govuk-colour(\"white\");\n vertical-align: middle;\n }\n }\n\n svg {\n margin: 0 15px 0 0;\n }\n\n &:hover {\n > span {\n &::before {\n border-right: 2px solid govuk-colour(\"mid-grey\");\n border-bottom: 2px solid govuk-colour(\"mid-grey\");\n }\n }\n }\n }\n\n &.probation-common-header__toggle-open {\n color: govuk-colour(\"blue\");\n background: govuk-colour(\"light-grey\");\n\n > span {\n &::before {\n -ms-transform: translateY(-0%) rotate(225deg) scale(1);\n -webkit-transform: translateY(-0%) rotate(225deg) scale(1);\n transform: translateY(-0%) rotate(225deg) scale(1);\n border-right: 2px solid govuk-colour(\"blue\");\n border-bottom: 2px solid govuk-colour(\"blue\");\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: auto;\n right: 15px;\n bottom: 0;\n left: 15px;\n height: 3px;\n background: govuk-colour(\"blue\");\n }\n }\n\n &:hover {\n color: govuk-colour(\"dark-grey\");\n }\n }\n\n &:focus-visible {\n outline: 3px solid transparent;\n color: govuk-colour(\"black\");\n background-color: govuk-colour(\"yellow\");\n box-shadow: none;\n text-decoration: none;\n\n &::after {\n content: \"\";\n position: absolute;\n top: auto;\n right: 15px;\n bottom: 0;\n left: 15px;\n height: 3px;\n background: govuk-colour(\"black\");\n }\n\n > span {\n &::before {\n border-right: 2px solid govuk-colour(\"black\");\n border-bottom: 2px solid govuk-colour(\"black\");\n }\n }\n }\n }\n\n &.item-open {\n + div {\n > button,\n > a {\n > span {\n border-left: 1px solid transparent;\n }\n }\n }\n }\n }\n }\n\n .probation-common-header__user-menu {\n position: relative;\n z-index: 10000000;\n padding: 15px;\n background: govuk-colour(\"light-grey\");\n\n a {\n display: block;\n margin-bottom: 15px;\n font-weight: 700;\n }\n }\n\n &__pushdown-menu {\n padding: 30px 0 60px;\n background: govuk-colour(\"light-grey\");\n }\n\n &__icon-link-wrapper {\n display: flex;\n position: relative;\n height: 100%;\n\n img,\n svg {\n margin: 0 15px 0 0;\n }\n\n a {\n box-sizing: border-box;\n display: block;\n width: 100%;\n padding: 10px 0;\n\n > span {\n display: flex;\n height: 100%;\n padding: 0 15px;\n border-left: 1px solid govuk-colour(\"white\");\n align-items: center;\n justify-content: center;\n }\n\n &:hover {\n color: govuk-colour(\"mid-grey\");\n text-decoration: none;\n\n &::after {\n content: \"\";\n position: absolute;\n top: auto;\n right: 15px;\n bottom: 0;\n left: 15px;\n height: 3px;\n background: govuk-colour(\"mid-grey\");\n }\n }\n }\n }\n\n &__services-menu {\n ul {\n display: grid;\n width: 100%;\n margin-bottom: 0;\n font-weight: bold;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 15px;\n justify-items: start;\n }\n }\n\n &__user-menu-link {\n width: 181px;\n }\n\n &__services-menu-link {\n width: 107px;\n }\n\n &__menu-toggle-label {\n display: block;\n text-align: left;\n }\n\n @media print {\n display: none;\n }\n}\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('govuk-frontend')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'govuk-frontend'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MOJFrontend = global.MOJFrontend || {}, global.GOVUKFrontend));
|
|
5
|
+
})(this, (function (exports, govukFrontend) { 'use strict';
|
|
6
|
+
|
|
7
|
+
class PdsHeader extends govukFrontend.Component {
|
|
8
|
+
/**
|
|
9
|
+
* @param {Element | null} $root - HTML element to use for PDS header
|
|
10
|
+
*/
|
|
11
|
+
constructor($root) {
|
|
12
|
+
super($root);
|
|
13
|
+
this.initHeader();
|
|
14
|
+
}
|
|
15
|
+
initHeader() {
|
|
16
|
+
this.$tabOpenClass = 'probation-common-header__toggle-open';
|
|
17
|
+
const $userToggle = this.$root.querySelector('.probation-common-header__user-menu-toggle');
|
|
18
|
+
const $userMenu = this.$root.querySelector('#probation-common-header-user-menu');
|
|
19
|
+
if (!$userToggle || !$userMenu || !($userToggle instanceof HTMLElement) || !($userMenu instanceof HTMLElement)) {
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
22
|
+
this.hideFallbackLinks();
|
|
23
|
+
$userToggle.removeAttribute('hidden');
|
|
24
|
+
this.closeTabs([[$userToggle, $userMenu]]);
|
|
25
|
+
$userToggle.addEventListener('click', _event => {
|
|
26
|
+
this.toggleMenu($userToggle, $userMenu);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {[any, any][]} tabTuples
|
|
32
|
+
*/
|
|
33
|
+
closeTabs(tabTuples) {
|
|
34
|
+
tabTuples.forEach(([toggle, menu]) => {
|
|
35
|
+
if (menu && toggle) {
|
|
36
|
+
menu.setAttribute('hidden', 'hidden');
|
|
37
|
+
toggle.classList.remove(this.$tabOpenClass);
|
|
38
|
+
toggle.parentElement.classList.remove('item-open');
|
|
39
|
+
toggle.setAttribute('aria-expanded', 'false');
|
|
40
|
+
if (toggle.dataset.textForShow) toggle.setAttribute('aria-label', toggle.dataset.textForShow);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @param {HTMLElement} toggle
|
|
47
|
+
* @param {HTMLElement} menu
|
|
48
|
+
*/
|
|
49
|
+
toggleMenu(toggle, menu) {
|
|
50
|
+
const isOpen = !menu.getAttribute('hidden');
|
|
51
|
+
if (isOpen) {
|
|
52
|
+
this.closeTabs([[toggle, menu]]);
|
|
53
|
+
} else if (menu && toggle) {
|
|
54
|
+
menu.removeAttribute('hidden');
|
|
55
|
+
toggle.classList.add(this.$tabOpenClass);
|
|
56
|
+
toggle.parentElement.classList.add('item-open');
|
|
57
|
+
toggle.setAttribute('aria-expanded', 'true');
|
|
58
|
+
if (toggle.dataset.textForHide) toggle.setAttribute('aria-label', toggle.dataset.textForHide);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
hideFallbackLinks() {
|
|
62
|
+
const $userLink = this.$root.querySelector('.probation-common-header__user-menu-link');
|
|
63
|
+
if ($userLink) $userLink.setAttribute('hidden', 'hidden');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Name for the component used when initialising using data-module attributes.
|
|
68
|
+
*/
|
|
69
|
+
}
|
|
70
|
+
PdsHeader.moduleName = 'pds-header';
|
|
71
|
+
|
|
72
|
+
exports.PdsHeader = PdsHeader;
|
|
73
|
+
|
|
74
|
+
}));
|
|
75
|
+
//# sourceMappingURL=header.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.bundle.js","sources":["../../../../../../src/moj/components/domain-specific/probation/header/header.mjs"],"sourcesContent":["import { Component } from 'govuk-frontend'\n\nexport class PdsHeader extends Component {\n /**\n * @param {Element | null} $root - HTML element to use for PDS header\n */\n constructor($root) {\n super($root)\n this.initHeader()\n }\n\n initHeader() {\n this.$tabOpenClass = 'probation-common-header__toggle-open'\n const $userToggle = this.$root.querySelector(\n '.probation-common-header__user-menu-toggle'\n )\n const $userMenu = this.$root.querySelector(\n '#probation-common-header-user-menu'\n )\n\n if (\n !$userToggle ||\n !$userMenu ||\n !($userToggle instanceof HTMLElement) ||\n !($userMenu instanceof HTMLElement)\n ) {\n return 0\n }\n\n this.hideFallbackLinks()\n $userToggle.removeAttribute('hidden')\n\n this.closeTabs([[$userToggle, $userMenu]])\n\n $userToggle.addEventListener('click', (_event) => {\n this.toggleMenu($userToggle, $userMenu)\n })\n }\n\n /**\n * @param {[any, any][]} tabTuples\n */\n closeTabs(tabTuples) {\n tabTuples.forEach(([toggle, menu]) => {\n if (menu && toggle) {\n menu.setAttribute('hidden', 'hidden')\n toggle.classList.remove(this.$tabOpenClass)\n toggle.parentElement.classList.remove('item-open')\n toggle.setAttribute('aria-expanded', 'false')\n if (toggle.dataset.textForShow)\n toggle.setAttribute('aria-label', toggle.dataset.textForShow)\n }\n })\n }\n\n /**\n * @param {HTMLElement} toggle\n * @param {HTMLElement} menu\n */\n toggleMenu(toggle, menu) {\n const isOpen = !menu.getAttribute('hidden')\n\n if (isOpen) {\n this.closeTabs([[toggle, menu]])\n } else if (menu && toggle) {\n menu.removeAttribute('hidden')\n toggle.classList.add(this.$tabOpenClass)\n toggle.parentElement.classList.add('item-open')\n toggle.setAttribute('aria-expanded', 'true')\n if (toggle.dataset.textForHide)\n toggle.setAttribute('aria-label', toggle.dataset.textForHide)\n }\n }\n\n hideFallbackLinks() {\n const $userLink = this.$root.querySelector(\n '.probation-common-header__user-menu-link'\n )\n if ($userLink) $userLink.setAttribute('hidden', 'hidden')\n }\n\n /**\n * Name for the component used when initialising using data-module attributes.\n */\n static moduleName = 'pds-header'\n}\n"],"names":["PdsHeader","Component","constructor","$root","initHeader","$tabOpenClass","$userToggle","querySelector","$userMenu","HTMLElement","hideFallbackLinks","removeAttribute","closeTabs","addEventListener","_event","toggleMenu","tabTuples","forEach","toggle","menu","setAttribute","classList","remove","parentElement","dataset","textForShow","isOpen","getAttribute","add","textForHide","$userLink","moduleName"],"mappings":";;;;;;EAEO,MAAMA,SAAS,SAASC,uBAAS,CAAC;EACvC;EACF;EACA;IACEC,WAAWA,CAACC,KAAK,EAAE;MACjB,KAAK,CAACA,KAAK,CAAC;MACZ,IAAI,CAACC,UAAU,EAAE;EACnB;EAEAA,EAAAA,UAAUA,GAAG;MACX,IAAI,CAACC,aAAa,GAAG,sCAAsC;MAC3D,MAAMC,WAAW,GAAG,IAAI,CAACH,KAAK,CAACI,aAAa,CAC1C,4CACF,CAAC;MACD,MAAMC,SAAS,GAAG,IAAI,CAACL,KAAK,CAACI,aAAa,CACxC,oCACF,CAAC;EAED,IAAA,IACE,CAACD,WAAW,IACZ,CAACE,SAAS,IACV,EAAEF,WAAW,YAAYG,WAAW,CAAC,IACrC,EAAED,SAAS,YAAYC,WAAW,CAAC,EACnC;EACA,MAAA,OAAO,CAAC;EACV;MAEA,IAAI,CAACC,iBAAiB,EAAE;EACxBJ,IAAAA,WAAW,CAACK,eAAe,CAAC,QAAQ,CAAC;MAErC,IAAI,CAACC,SAAS,CAAC,CAAC,CAACN,WAAW,EAAEE,SAAS,CAAC,CAAC,CAAC;EAE1CF,IAAAA,WAAW,CAACO,gBAAgB,CAAC,OAAO,EAAGC,MAAM,IAAK;EAChD,MAAA,IAAI,CAACC,UAAU,CAACT,WAAW,EAAEE,SAAS,CAAC;EACzC,KAAC,CAAC;EACJ;;EAEA;EACF;EACA;IACEI,SAASA,CAACI,SAAS,EAAE;MACnBA,SAAS,CAACC,OAAO,CAAC,CAAC,CAACC,MAAM,EAAEC,IAAI,CAAC,KAAK;QACpC,IAAIA,IAAI,IAAID,MAAM,EAAE;EAClBC,QAAAA,IAAI,CAACC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;UACrCF,MAAM,CAACG,SAAS,CAACC,MAAM,CAAC,IAAI,CAACjB,aAAa,CAAC;UAC3Ca,MAAM,CAACK,aAAa,CAACF,SAAS,CAACC,MAAM,CAAC,WAAW,CAAC;EAClDJ,QAAAA,MAAM,CAACE,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;EAC7C,QAAA,IAAIF,MAAM,CAACM,OAAO,CAACC,WAAW,EAC5BP,MAAM,CAACE,YAAY,CAAC,YAAY,EAAEF,MAAM,CAACM,OAAO,CAACC,WAAW,CAAC;EACjE;EACF,KAAC,CAAC;EACJ;;EAEA;EACF;EACA;EACA;EACEV,EAAAA,UAAUA,CAACG,MAAM,EAAEC,IAAI,EAAE;MACvB,MAAMO,MAAM,GAAG,CAACP,IAAI,CAACQ,YAAY,CAAC,QAAQ,CAAC;EAE3C,IAAA,IAAID,MAAM,EAAE;QACV,IAAI,CAACd,SAAS,CAAC,CAAC,CAACM,MAAM,EAAEC,IAAI,CAAC,CAAC,CAAC;EAClC,KAAC,MAAM,IAAIA,IAAI,IAAID,MAAM,EAAE;EACzBC,MAAAA,IAAI,CAACR,eAAe,CAAC,QAAQ,CAAC;QAC9BO,MAAM,CAACG,SAAS,CAACO,GAAG,CAAC,IAAI,CAACvB,aAAa,CAAC;QACxCa,MAAM,CAACK,aAAa,CAACF,SAAS,CAACO,GAAG,CAAC,WAAW,CAAC;EAC/CV,MAAAA,MAAM,CAACE,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;EAC5C,MAAA,IAAIF,MAAM,CAACM,OAAO,CAACK,WAAW,EAC5BX,MAAM,CAACE,YAAY,CAAC,YAAY,EAAEF,MAAM,CAACM,OAAO,CAACK,WAAW,CAAC;EACjE;EACF;EAEAnB,EAAAA,iBAAiBA,GAAG;MAClB,MAAMoB,SAAS,GAAG,IAAI,CAAC3B,KAAK,CAACI,aAAa,CACxC,0CACF,CAAC;MACD,IAAIuB,SAAS,EAAEA,SAAS,CAACV,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;EAC3D;;EAEA;EACF;EACA;EAEA;EAnFapB,SAAS,CAkFb+B,UAAU,GAAG,YAAY;;;;;;;;"}
|