@ons/design-system 70.0.7 → 70.0.8
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/README.md +11 -17
- package/components/access-code/_macro.spec.js +145 -145
- package/components/access-code/access-code.dom.js +5 -5
- package/components/access-code/access-code.js +16 -16
- package/components/access-code/access-code.scss +22 -22
- package/components/access-code/access-code.spec.js +17 -17
- package/components/accordion/_macro.spec.js +154 -154
- package/components/accordion/accordion.dom.js +10 -10
- package/components/accordion/accordion.js +50 -50
- package/components/accordion/accordion.spec.js +104 -104
- package/components/address-input/_macro.spec.js +420 -420
- package/components/address-input/autosuggest.address.dom.js +5 -5
- package/components/address-input/autosuggest.address.error.js +77 -77
- package/components/address-input/autosuggest.address.js +357 -357
- package/components/address-input/autosuggest.address.setter.js +95 -95
- package/components/address-input/autosuggest.address.spec.js +668 -651
- package/components/address-input/example-address-input-editable.njk +1 -1
- package/components/address-input/example-address-input.njk +1 -1
- package/components/address-output/_address-output.scss +3 -3
- package/components/address-output/_macro.spec.js +84 -84
- package/components/autosuggest/_autosuggest.scss +114 -114
- package/components/autosuggest/_macro.spec.js +255 -255
- package/components/autosuggest/autosuggest.dom.js +5 -5
- package/components/autosuggest/autosuggest.helpers.js +11 -11
- package/components/autosuggest/autosuggest.helpers.spec.js +73 -73
- package/components/autosuggest/autosuggest.js +20 -20
- package/components/autosuggest/autosuggest.spec.js +542 -536
- package/components/autosuggest/autosuggest.ui.js +478 -475
- package/components/autosuggest/fuse-config.js +17 -17
- package/components/back-to-top/_back-to-top.scss +27 -27
- package/components/back-to-top/_macro.spec.js +49 -49
- package/components/back-to-top/back-to-top.dom.js +5 -5
- package/components/back-to-top/back-to-top.js +52 -52
- package/components/back-to-top/back-to-top.spec.js +106 -106
- package/components/back-to-top/example-back-to-top.njk +6 -6
- package/components/breadcrumbs/_breadcrumbs.scss +63 -65
- package/components/breadcrumbs/_macro.spec.js +91 -91
- package/components/browser-banner/_browser-banner.scss +23 -23
- package/components/browser-banner/_macro.spec.js +92 -92
- package/components/button/_button.scss +482 -483
- package/components/button/_macro.spec.js +363 -363
- package/components/button/button.dom.js +15 -15
- package/components/button/button.js +53 -53
- package/components/button/button.spec.js +248 -240
- package/components/call-to-action/_call-to-action.scss +5 -5
- package/components/call-to-action/_macro.spec.js +28 -28
- package/components/card/_card.scss +23 -23
- package/components/card/_macro.spec.js +180 -180
- package/components/char-check-limit/_macro.spec.js +48 -48
- package/components/char-check-limit/character-check.js +58 -58
- package/components/char-check-limit/character-check.spec.js +173 -173
- package/components/char-check-limit/character-limit.js +40 -40
- package/components/checkboxes/_checkbox-macro.spec.js +355 -355
- package/components/checkboxes/_checkbox.scss +180 -180
- package/components/checkboxes/_checkboxes.scss +37 -27
- package/components/checkboxes/_macro.spec.js +261 -261
- package/components/checkboxes/checkbox-with-autoselect.js +32 -32
- package/components/checkboxes/checkbox-with-fieldset.js +21 -21
- package/components/checkboxes/checkboxes-with-reveal.js +10 -10
- package/components/checkboxes/checkboxes.dom.js +27 -27
- package/components/checkboxes/checkboxes.spec.js +183 -183
- package/components/content-pagination/_content-pagination.scss +41 -41
- package/components/content-pagination/_macro.spec.js +159 -159
- package/components/cookies-banner/_cookies-banner.scss +22 -22
- package/components/cookies-banner/_macro.spec.js +177 -177
- package/components/cookies-banner/cookies-banner.dom.js +7 -7
- package/components/cookies-banner/cookies-banner.js +76 -76
- package/components/cookies-banner/cookies-banner.spec.js +72 -68
- package/components/date-input/_macro.spec.js +338 -338
- package/components/description-list/_description-list.scss +23 -23
- package/components/description-list/_macro.spec.js +144 -144
- package/components/details/_details.scss +109 -109
- package/components/details/_macro.spec.js +132 -132
- package/components/details/details.dom.js +6 -6
- package/components/details/details.js +60 -60
- package/components/details/details.spec.js +106 -106
- package/components/document-list/_macro.spec.js +444 -444
- package/components/document-list/document-list.scss +145 -149
- package/components/download-resources/_download-resources.scss +109 -108
- package/components/download-resources/download-resources.js +907 -900
- package/components/download-resources/download-resources.spec.js +461 -461
- package/components/duration/_macro.spec.js +291 -291
- package/components/error/_macro.spec.js +72 -72
- package/components/external-link/_external-link.scss +19 -19
- package/components/external-link/_macro.spec.js +68 -68
- package/components/feedback/_feedback.scss +31 -31
- package/components/feedback/_macro.spec.js +72 -72
- package/components/field/_field-group.scss +10 -10
- package/components/field/_field.scss +16 -16
- package/components/field/_macro.spec.js +80 -80
- package/components/fieldset/_fieldset.scss +27 -27
- package/components/fieldset/_macro.spec.js +161 -161
- package/components/footer/_footer.scss +45 -45
- package/components/footer/_macro.spec.js +452 -452
- package/components/header/_header.scss +202 -202
- package/components/header/_macro.spec.js +833 -829
- package/components/helpers/_grid.scss +4 -4
- package/components/hero/_hero.scss +48 -48
- package/components/hero/_macro.spec.js +59 -59
- package/components/icon/_icon.scss +44 -44
- package/components/icon/_macro.spec.js +110 -110
- package/components/image/_image.scss +11 -11
- package/components/image/_macro.spec.js +81 -81
- package/components/input/_input-type.scss +86 -89
- package/components/input/_input.scss +123 -124
- package/components/input/_macro.spec.js +604 -604
- package/components/input/character-check.dom.js +5 -5
- package/components/input/input.dom.js +5 -5
- package/components/input/input.js +10 -10
- package/components/input/input.spec.js +18 -18
- package/components/label/_label.scss +24 -24
- package/components/label/_macro.spec.js +173 -170
- package/components/language-selector/_macro.spec.js +97 -97
- package/components/language-selector/language.scss +7 -7
- package/components/list/_list.scss +84 -84
- package/components/list/_macro.spec.js +583 -583
- package/components/message/_macro.njk +5 -5
- package/components/message/_macro.spec.js +74 -74
- package/components/message/_message.scss +39 -39
- package/components/message-list/_macro.spec.js +86 -86
- package/components/message-list/_message-list.scss +16 -16
- package/components/modal/_macro.spec.js +69 -69
- package/components/modal/_modal.scss +36 -36
- package/components/modal/modal.dom.js +6 -6
- package/components/modal/modal.js +89 -89
- package/components/modal/modal.spec.js +50 -50
- package/components/mutually-exclusive/_macro.spec.js +140 -140
- package/components/mutually-exclusive/mutually-exclusive.checkboxes.spec.js +188 -188
- package/components/mutually-exclusive/mutually-exclusive.date.spec.js +211 -211
- package/components/mutually-exclusive/mutually-exclusive.dom.js +5 -5
- package/components/mutually-exclusive/mutually-exclusive.duration.spec.js +210 -210
- package/components/mutually-exclusive/mutually-exclusive.email.spec.js +90 -90
- package/components/mutually-exclusive/mutually-exclusive.js +137 -137
- package/components/mutually-exclusive/mutually-exclusive.multiple-options.checkboxes.spec.js +197 -197
- package/components/mutually-exclusive/mutually-exclusive.number.spec.js +96 -96
- package/components/mutually-exclusive/mutually-exclusive.textarea.spec.js +102 -102
- package/components/navigation/_macro.spec.js +360 -354
- package/components/navigation/_navigation.scss +122 -123
- package/components/navigation/navigation.dom.js +35 -35
- package/components/navigation/navigation.js +49 -49
- package/components/navigation/navigation.spec.js +249 -249
- package/components/pagination/_macro.spec.js +342 -335
- package/components/pagination/_pagination.scss +58 -58
- package/components/panel/_macro.spec.js +372 -372
- package/components/panel/_panel.scss +200 -199
- package/components/password/_macro.spec.js +95 -95
- package/components/password/password.dom.js +5 -5
- package/components/password/password.js +10 -10
- package/components/password/password.spec.js +26 -26
- package/components/phase-banner/_macro.spec.js +86 -86
- package/components/phase-banner/_phase-banner.scss +16 -16
- package/components/question/_macro.spec.js +235 -235
- package/components/question/_question.scss +24 -24
- package/components/quote/_macro.spec.js +52 -52
- package/components/quote/_quote.scss +24 -24
- package/components/radios/_macro.spec.js +524 -524
- package/components/radios/_radio.scss +49 -48
- package/components/radios/_radios.scss +14 -20
- package/components/radios/check-radios.js +21 -21
- package/components/radios/clear-radios.js +45 -45
- package/components/radios/radio-with-fieldset.js +22 -22
- package/components/radios/radios.dom.js +32 -32
- package/components/radios/radios.spec.js +251 -251
- package/components/related-content/_macro.spec.js +109 -109
- package/components/related-content/_related-content.scss +12 -12
- package/components/related-content/_section-macro.spec.js +20 -20
- package/components/relationships/_macro.spec.js +94 -94
- package/components/relationships/_relationships.scss +9 -9
- package/components/relationships/relationships.dom.js +5 -5
- package/components/relationships/relationships.js +18 -18
- package/components/relationships/relationships.spec.js +71 -71
- package/components/reply/_macro.spec.js +47 -47
- package/components/reply/reply-input.js +15 -15
- package/components/reply/reply.dom.js +5 -5
- package/components/reply/reply.spec.js +57 -57
- package/components/section-navigation/_macro.spec.js +210 -210
- package/components/section-navigation/_section-navigation.scss +76 -76
- package/components/select/_macro.spec.js +166 -166
- package/components/share-page/_macro.spec.js +68 -68
- package/components/skip-to-content/_macro.spec.js +54 -54
- package/components/skip-to-content/_skip.scss +30 -30
- package/components/skip-to-content/skip-to-content.dom.js +6 -6
- package/components/skip-to-content/skip-to-content.js +7 -7
- package/components/skip-to-content/skip-to-content.spec.js +21 -21
- package/components/status/_macro.spec.js +53 -53
- package/components/status/_status.scss +32 -32
- package/components/summary/_macro.spec.js +551 -535
- package/components/summary/_summary.scss +191 -195
- package/components/table/_macro.spec.js +499 -499
- package/components/table/_table.scss +204 -201
- package/components/table/scrollable-table.dom.js +5 -5
- package/components/table/scrollable-table.js +60 -60
- package/components/table/sortable-table.dom.js +5 -5
- package/components/table/sortable-table.js +135 -135
- package/components/table/table.spec.js +144 -140
- package/components/table-of-contents/_macro.spec.js +125 -125
- package/components/table-of-contents/_toc.scss +9 -9
- package/components/table-of-contents/toc.dom.js +5 -5
- package/components/table-of-contents/toc.js +30 -30
- package/components/table-of-contents/toc.spec.js +88 -88
- package/components/tabs/_macro.spec.js +92 -92
- package/components/tabs/_tabs.scss +120 -115
- package/components/tabs/tabs.dom.js +5 -5
- package/components/tabs/tabs.js +266 -266
- package/components/tabs/tabs.spec.js +268 -268
- package/components/text-indent/_macro.spec.js +33 -33
- package/components/text-indent/_text-indent.scss +3 -3
- package/components/textarea/_macro.spec.js +238 -238
- package/components/textarea/textarea.dom.js +5 -5
- package/components/textarea/textarea.spec.js +78 -74
- package/components/timeline/_macro.spec.js +83 -83
- package/components/timeline/_timeline.scss +26 -26
- package/components/timeout-modal/_macro.spec.js +47 -47
- package/components/timeout-modal/timeout-modal.dom.js +9 -9
- package/components/timeout-modal/timeout-modal.js +66 -66
- package/components/timeout-modal/timeout-modal.spec.js +157 -157
- package/components/timeout-panel/_macro.spec.js +41 -41
- package/components/timeout-panel/timeout-panel.dom.js +8 -8
- package/components/timeout-panel/timeout-panel.spec.js +118 -118
- package/components/upload/_macro.spec.js +52 -52
- package/components/upload/_upload.scss +28 -28
- package/components/video/_macro.spec.js +42 -42
- package/components/video/_video.scss +16 -16
- package/components/video/video.dom.js +5 -5
- package/components/video/video.js +32 -32
- package/components/video/video.spec.js +103 -97
- package/css/main.css +1 -1
- package/favicons/manifest.json +25 -25
- package/js/abortable-fetch.js +23 -23
- package/js/analytics.js +53 -53
- package/js/cookies-functions.js +135 -135
- package/js/cookies-settings.dom.js +7 -7
- package/js/cookies-settings.js +77 -77
- package/js/cookies-settings.spec.js +106 -106
- package/js/domready.js +8 -8
- package/js/fetch.js +14 -14
- package/js/inpagelink.dom.js +5 -5
- package/js/inpagelink.js +19 -19
- package/js/polyfills.js +0 -1
- package/js/print-button.js +6 -6
- package/js/timeout.js +211 -211
- package/layout/_template.njk +5 -7
- package/package.json +131 -128
- package/scss/base/_forms.scss +10 -10
- package/scss/base/_global.scss +45 -44
- package/scss/base/_typography.scss +20 -20
- package/scss/helpers/_functions.scss +18 -15
- package/scss/helpers/_mixins.scss +59 -53
- package/scss/helpers/_mq.scss +62 -65
- package/scss/objects/_container.scss +20 -20
- package/scss/objects/_page.scss +33 -33
- package/scss/objects/_spacing.scss +10 -10
- package/scss/overrides/hcm.scss +237 -237
- package/scss/overrides/rtl.scss +95 -95
- package/scss/print.scss +47 -47
- package/scss/utilities/_border.scss +7 -7
- package/scss/utilities/_colors.scss +6 -6
- package/scss/utilities/_display.scss +8 -8
- package/scss/utilities/_float.scss +7 -7
- package/scss/utilities/_grid.scss +144 -144
- package/scss/utilities/_highlight.scss +4 -4
- package/scss/utilities/_margin.scss +17 -17
- package/scss/utilities/_pad.scss +15 -15
- package/scss/utilities/_typography.scss +35 -33
- package/scss/utilities/_utilities.scss +8 -8
- package/scss/utilities/_visibility.scss +25 -25
- package/scss/vars/_colors.scss +116 -116
- package/scss/vars/_forms.scss +22 -22
- package/scss/vars/_grid.scss +11 -9
- package/scss/vars/_typography.scss +54 -54
|
@@ -2,304 +2,304 @@ import { setViewport } from '../../tests/helpers/puppeteer';
|
|
|
2
2
|
import { renderComponent, setTestPage } from '../../tests/helpers/rendering';
|
|
3
3
|
|
|
4
4
|
const EXAMPLE_NAVIGATION = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
5
|
+
navigation: {
|
|
6
|
+
id: 'main-nav',
|
|
7
|
+
ariaLabel: 'Main menu',
|
|
8
|
+
currentPath: '#0',
|
|
9
|
+
itemsList: [
|
|
10
|
+
{
|
|
11
|
+
title: 'Main nav item 1',
|
|
12
|
+
url: '#0',
|
|
13
|
+
classes: 'custom-class-main-item-1',
|
|
14
|
+
id: 'main-item-1',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
title: 'Main nav item 2',
|
|
18
|
+
url: '#1',
|
|
19
|
+
classes: 'custom-class-main-item-2',
|
|
20
|
+
id: 'main-item-2',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
toggleNavigationButton: {
|
|
24
|
+
text: 'Menu',
|
|
25
|
+
ariaLabel: 'Toggle main navigation',
|
|
26
|
+
},
|
|
26
27
|
},
|
|
27
|
-
},
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
const EXAMPLE_NAVIGATION_WITH_SUBNAVIGATION = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
title: 'Main nav item 1',
|
|
39
|
-
url: '#0',
|
|
40
|
-
classes: 'custom-class-main-item-1',
|
|
41
|
-
id: 'main-item-1',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
title: 'Main nav item 2',
|
|
45
|
-
url: '#1',
|
|
46
|
-
classes: 'custom-class-main-item-2',
|
|
47
|
-
id: 'main-item-2',
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
subNavigation: {
|
|
51
|
-
id: 'sub-nav',
|
|
52
|
-
overviewURL: '#overview',
|
|
53
|
-
overviewText: 'Overview',
|
|
54
|
-
ariaLabel: 'Section menu',
|
|
55
|
-
currentPath: '#1',
|
|
56
|
-
itemsList: [
|
|
57
|
-
{
|
|
58
|
-
title: 'Sub nav item 1',
|
|
59
|
-
url: '#0',
|
|
60
|
-
classes: 'custom-class-sub-item-1',
|
|
61
|
-
id: 'sub-item-1',
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
title: 'Sub nav item 2',
|
|
65
|
-
url: '#1',
|
|
66
|
-
classes: 'custom-class-sub-item-2',
|
|
67
|
-
id: 'sub-item-2',
|
|
68
|
-
sections: [
|
|
31
|
+
navigation: {
|
|
32
|
+
id: 'main-nav',
|
|
33
|
+
ariaLabel: 'Main menu',
|
|
34
|
+
currentPath: '#1',
|
|
35
|
+
currentPageTitle: 'Main nav item 2',
|
|
36
|
+
itemsList: [
|
|
69
37
|
{
|
|
70
|
-
|
|
71
|
-
|
|
38
|
+
title: 'Main nav item 1',
|
|
39
|
+
url: '#0',
|
|
40
|
+
classes: 'custom-class-main-item-1',
|
|
41
|
+
id: 'main-item-1',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: 'Main nav item 2',
|
|
45
|
+
url: '#1',
|
|
46
|
+
classes: 'custom-class-main-item-2',
|
|
47
|
+
id: 'main-item-2',
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
subNavigation: {
|
|
51
|
+
id: 'sub-nav',
|
|
52
|
+
overviewURL: '#overview',
|
|
53
|
+
overviewText: 'Overview',
|
|
54
|
+
ariaLabel: 'Section menu',
|
|
55
|
+
currentPath: '#1',
|
|
56
|
+
itemsList: [
|
|
72
57
|
{
|
|
73
|
-
|
|
74
|
-
|
|
58
|
+
title: 'Sub nav item 1',
|
|
59
|
+
url: '#0',
|
|
60
|
+
classes: 'custom-class-sub-item-1',
|
|
61
|
+
id: 'sub-item-1',
|
|
75
62
|
},
|
|
76
63
|
{
|
|
77
|
-
|
|
78
|
-
|
|
64
|
+
title: 'Sub nav item 2',
|
|
65
|
+
url: '#1',
|
|
66
|
+
classes: 'custom-class-sub-item-2',
|
|
67
|
+
id: 'sub-item-2',
|
|
68
|
+
sections: [
|
|
69
|
+
{
|
|
70
|
+
sectionTitle: 'Section 1',
|
|
71
|
+
children: [
|
|
72
|
+
{
|
|
73
|
+
title: 'Child item 1',
|
|
74
|
+
url: '#0',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
title: 'Child item 2',
|
|
78
|
+
url: '#1',
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
],
|
|
79
83
|
},
|
|
80
|
-
|
|
81
|
-
},
|
|
82
|
-
],
|
|
84
|
+
],
|
|
83
85
|
},
|
|
84
|
-
],
|
|
85
86
|
},
|
|
86
|
-
},
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
const EXAMPLE_NAVIGATION_WITH_SUBNAVIGATION_REMOVED = {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
{
|
|
97
|
-
title: 'Main nav item 1',
|
|
98
|
-
url: '#0',
|
|
99
|
-
classes: 'custom-class-main-item-1',
|
|
100
|
-
id: 'main-item-1',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
title: 'Main nav item 2',
|
|
104
|
-
url: '#1',
|
|
105
|
-
classes: 'custom-class-main-item-2',
|
|
106
|
-
id: 'main-item-2',
|
|
107
|
-
},
|
|
108
|
-
],
|
|
109
|
-
subNavigation: {
|
|
110
|
-
id: 'sub-nav-hidden',
|
|
111
|
-
overviewURL: '#overview',
|
|
112
|
-
overviewText: 'Overview',
|
|
113
|
-
ariaLabel: 'Section menu',
|
|
114
|
-
currentPath: '#1',
|
|
115
|
-
removeHorizontalSubNav: true,
|
|
116
|
-
itemsList: [
|
|
117
|
-
{
|
|
118
|
-
title: 'Sub nav item 1',
|
|
119
|
-
url: '#0',
|
|
120
|
-
classes: 'custom-class-sub-item-1',
|
|
121
|
-
id: 'sub-item-1',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
title: 'Sub nav item 2',
|
|
125
|
-
url: '#1',
|
|
126
|
-
classes: 'custom-class-sub-item-2',
|
|
127
|
-
id: 'sub-item-2',
|
|
128
|
-
sections: [
|
|
90
|
+
navigation: {
|
|
91
|
+
id: 'main-nav',
|
|
92
|
+
ariaLabel: 'Main menu',
|
|
93
|
+
currentPath: '#1',
|
|
94
|
+
currentPageTitle: 'Main nav item 2',
|
|
95
|
+
itemsList: [
|
|
129
96
|
{
|
|
130
|
-
|
|
131
|
-
|
|
97
|
+
title: 'Main nav item 1',
|
|
98
|
+
url: '#0',
|
|
99
|
+
classes: 'custom-class-main-item-1',
|
|
100
|
+
id: 'main-item-1',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
title: 'Main nav item 2',
|
|
104
|
+
url: '#1',
|
|
105
|
+
classes: 'custom-class-main-item-2',
|
|
106
|
+
id: 'main-item-2',
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
subNavigation: {
|
|
110
|
+
id: 'sub-nav-hidden',
|
|
111
|
+
overviewURL: '#overview',
|
|
112
|
+
overviewText: 'Overview',
|
|
113
|
+
ariaLabel: 'Section menu',
|
|
114
|
+
currentPath: '#1',
|
|
115
|
+
removeHorizontalSubNav: true,
|
|
116
|
+
itemsList: [
|
|
132
117
|
{
|
|
133
|
-
|
|
134
|
-
|
|
118
|
+
title: 'Sub nav item 1',
|
|
119
|
+
url: '#0',
|
|
120
|
+
classes: 'custom-class-sub-item-1',
|
|
121
|
+
id: 'sub-item-1',
|
|
135
122
|
},
|
|
136
123
|
{
|
|
137
|
-
|
|
138
|
-
|
|
124
|
+
title: 'Sub nav item 2',
|
|
125
|
+
url: '#1',
|
|
126
|
+
classes: 'custom-class-sub-item-2',
|
|
127
|
+
id: 'sub-item-2',
|
|
128
|
+
sections: [
|
|
129
|
+
{
|
|
130
|
+
sectionTitle: 'Section 1',
|
|
131
|
+
children: [
|
|
132
|
+
{
|
|
133
|
+
title: 'Child item 1',
|
|
134
|
+
url: '#0',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
title: 'Child item 2',
|
|
138
|
+
url: '#1',
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
],
|
|
139
143
|
},
|
|
140
|
-
|
|
141
|
-
},
|
|
142
|
-
],
|
|
144
|
+
],
|
|
143
145
|
},
|
|
144
|
-
],
|
|
145
146
|
},
|
|
146
|
-
},
|
|
147
147
|
};
|
|
148
148
|
|
|
149
149
|
describe('script: navigation', () => {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
afterEach(async () => {
|
|
151
|
+
// Clear viewport size and browser emulation after each test.
|
|
152
|
+
await jestPuppeteer.resetPage();
|
|
153
|
+
});
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
155
|
+
describe.each([
|
|
156
|
+
['main', EXAMPLE_NAVIGATION, '.ons-navigation--main', '.ons-js-navigation-button', false],
|
|
157
|
+
['sub', EXAMPLE_NAVIGATION_WITH_SUBNAVIGATION, '.ons-navigation--sub-mobile', '.ons-js-sub-navigation-button', true],
|
|
158
|
+
])('level: %s navigation', (_, params, navEl, buttonEl, ariaStatus) => {
|
|
159
|
+
describe('when the component initialises', () => {
|
|
160
|
+
beforeEach(async () => {
|
|
161
|
+
await setTestPage('/test', renderComponent('header', params));
|
|
162
|
+
});
|
|
163
163
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
164
|
+
it('has removed the display class from the menu toggle button', async () => {
|
|
165
|
+
const hasClass = await page.$eval(buttonEl, (node) => node.classList.contains('ons-u-d-no'));
|
|
166
|
+
expect(hasClass).toBe(false);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
169
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
170
|
+
describe('when the viewport is large', () => {
|
|
171
|
+
beforeEach(async () => {
|
|
172
|
+
await setViewport(page, { width: 1650, height: 1050 });
|
|
173
|
+
await setTestPage('/test', renderComponent('header', params));
|
|
174
|
+
});
|
|
175
175
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
176
|
+
it('has the correct aria hidden attribute on the navigation list', async () => {
|
|
177
|
+
const nav = await page.$(navEl);
|
|
178
|
+
const hasAriaAttribute = await nav.evaluate((node) => node.getAttribute('aria-hidden') !== null);
|
|
179
|
+
expect(hasAriaAttribute).toBe(ariaStatus);
|
|
180
|
+
});
|
|
181
181
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
182
|
+
it('has aria-expanded set as `false` on the navigation toggle button', async () => {
|
|
183
|
+
const button = await page.$(buttonEl);
|
|
184
|
+
const ariaExpandedIsFalse = await button.evaluate((node) => node.getAttribute('aria-expanded') === 'false');
|
|
185
|
+
expect(ariaExpandedIsFalse).toBe(true);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
189
|
+
describe('when the viewport is small', () => {
|
|
190
|
+
beforeEach(async () => {
|
|
191
|
+
await setViewport(page, { width: 600, height: 1050 });
|
|
192
|
+
await setTestPage('/test', renderComponent('header', params));
|
|
193
|
+
});
|
|
194
194
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
195
|
+
it('has aria-hidden set as `true` on the navigation list', async () => {
|
|
196
|
+
const nav = await page.$(navEl);
|
|
197
|
+
const hasAriaAttribute = await nav.evaluate((node) => node.getAttribute('aria-hidden') === 'true');
|
|
198
|
+
expect(hasAriaAttribute).toBe(true);
|
|
199
|
+
});
|
|
200
200
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
201
|
+
describe('when the toggle button is clicked to open the navigation list', () => {
|
|
202
|
+
beforeEach(async () => {
|
|
203
|
+
await page.focus(buttonEl);
|
|
204
|
+
await page.keyboard.press('Enter');
|
|
205
|
+
});
|
|
206
206
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
it('has aria-hidden set as `false` on the navigation list', async () => {
|
|
208
|
+
const nav = await page.$(navEl);
|
|
209
|
+
const hasAriaAttribute = await nav.evaluate((node) => node.getAttribute('aria-hidden') === 'false');
|
|
210
|
+
expect(hasAriaAttribute).toBe(true);
|
|
211
|
+
});
|
|
212
212
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
213
|
+
it('has the hide class removed from the navigation list', async () => {
|
|
214
|
+
const hasClass = await page.$eval(navEl, (node) =>
|
|
215
|
+
node.classList.contains('ons-u-d-no@xxs@l' || 'ons-u-d-no' || 'ons-u-d-no@xs@l'),
|
|
216
|
+
);
|
|
217
|
+
expect(hasClass).toBe(false);
|
|
218
|
+
});
|
|
219
219
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
220
|
+
it('has aria-expanded set as `true` on the navigation toggle button', async () => {
|
|
221
|
+
const button = await page.$(buttonEl);
|
|
222
|
+
const ariaExpandedIsTrue = await button.evaluate((node) => node.getAttribute('aria-expanded') === 'true');
|
|
223
|
+
expect(ariaExpandedIsTrue).toBe(true);
|
|
224
|
+
});
|
|
225
225
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
226
|
+
it('has the correct class applied to the navigation toggle button', async () => {
|
|
227
|
+
const hasClass = await page.$eval(buttonEl, (node) => node.classList.contains('active'));
|
|
228
|
+
expect(hasClass).toBe(true);
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
231
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
232
|
+
describe('when the toggle button is clicked to close the navigation list', () => {
|
|
233
|
+
beforeEach(async () => {
|
|
234
|
+
await page.focus(buttonEl);
|
|
235
|
+
await page.keyboard.press('Enter');
|
|
236
|
+
await page.waitForTimeout(100);
|
|
237
|
+
await page.keyboard.press('Enter');
|
|
238
|
+
await page.waitForTimeout(100);
|
|
239
|
+
});
|
|
240
240
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
241
|
+
it('has aria-hidden set as `true` on the navigation list', async () => {
|
|
242
|
+
const nav = await page.$(navEl);
|
|
243
|
+
const hasAriaAttribute = await nav.evaluate((node) => node.getAttribute('aria-hidden') === 'true');
|
|
244
|
+
expect(hasAriaAttribute).toBe(true);
|
|
245
|
+
});
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
247
|
+
it('has aria-expanded set as `false` on the navigation toggle button', async () => {
|
|
248
|
+
const button = await page.$(buttonEl);
|
|
249
|
+
const ariaExpandedIsTrue = await button.evaluate((node) => node.getAttribute('aria-expanded') === 'false');
|
|
250
|
+
expect(ariaExpandedIsTrue).toBe(true);
|
|
251
|
+
});
|
|
252
252
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
253
|
+
it('has the active class removed from the navigation toggle button', async () => {
|
|
254
|
+
const hasClass = await page.$eval(buttonEl, (node) => node.classList.contains('active'));
|
|
255
|
+
expect(hasClass).toBe(false);
|
|
256
|
+
});
|
|
257
|
+
});
|
|
256
258
|
});
|
|
257
|
-
});
|
|
258
259
|
});
|
|
259
|
-
});
|
|
260
260
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
261
|
+
describe.each([['main', EXAMPLE_NAVIGATION, '.ons-navigation--main', '.ons-js-navigation-button']])(
|
|
262
|
+
'level: %s navigation',
|
|
263
|
+
(_, params, navEl, buttonEl) => {
|
|
264
|
+
describe('when the viewport is small and manually made wider', () => {
|
|
265
|
+
beforeEach(async () => {
|
|
266
|
+
await setViewport(page, { width: 600, height: 1050 });
|
|
267
|
+
await setTestPage('/test', renderComponent('header', params));
|
|
268
|
+
await setViewport(page, { width: 1200, height: 1050 });
|
|
269
|
+
});
|
|
270
270
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
271
|
+
it('has the aria-hidden attribute removed from the navigation list', async () => {
|
|
272
|
+
const nav = await page.$(navEl);
|
|
273
|
+
const hasAriaAttribute = await nav.evaluate((node) => node.getAttribute('aria-hidden') !== null);
|
|
274
|
+
expect(hasAriaAttribute).toBe(false);
|
|
275
|
+
});
|
|
276
276
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
277
|
+
it('has aria-expanded removed from the navigation toggle button', async () => {
|
|
278
|
+
const button = await page.$(buttonEl);
|
|
279
|
+
const hasAriaExpanded = await button.evaluate((node) => node.getAttribute('aria-expanded') !== null);
|
|
280
|
+
expect(hasAriaExpanded).toBe(false);
|
|
281
|
+
});
|
|
282
282
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
283
|
+
it('has the hide class removed from the navigation list', async () => {
|
|
284
|
+
const hasClass = await page.$eval(navEl, (node) =>
|
|
285
|
+
node.classList.contains('ons-u-d-no@xxs@l' || 'ons-u-d-no' || 'ons-u-d-no@xs@l'),
|
|
286
|
+
);
|
|
287
|
+
expect(hasClass).toBe(false);
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
},
|
|
291
|
+
);
|
|
292
292
|
});
|
|
293
293
|
|
|
294
294
|
describe('level: sub navigation', () => {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
295
|
+
describe('when removeHorizontalSubNav is set to true', () => {
|
|
296
|
+
beforeEach(async () => {
|
|
297
|
+
await setTestPage('/test', renderComponent('header', EXAMPLE_NAVIGATION_WITH_SUBNAVIGATION_REMOVED));
|
|
298
|
+
});
|
|
299
299
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
it('does not render the sub-nav element', async () => {
|
|
301
|
+
const hasSubNavEl = (await page.content()).includes('.ons-navigation--sub');
|
|
302
|
+
expect(hasSubNavEl).toBe(false);
|
|
303
|
+
});
|
|
303
304
|
});
|
|
304
|
-
});
|
|
305
305
|
});
|