@ons/design-system 72.4.0 → 72.5.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/components/button/_button.scss +171 -3
- package/components/button/_macro.njk +4 -0
- package/components/card/_card.scss +5 -0
- package/components/card/_macro.njk +10 -2
- package/components/card/_macro.spec.js +58 -0
- package/components/card/example-card-set-with-headline-figures.njk +62 -0
- package/components/chart/_chart.scss +29 -0
- package/components/chart/_macro.njk +101 -0
- package/components/chart/_macro.spec.js +437 -0
- package/components/chart/bar-chart.js +160 -0
- package/components/chart/chart-constants.js +21 -0
- package/components/chart/chart.dom.js +8 -0
- package/components/chart/chart.js +157 -0
- package/components/chart/column-chart.js +48 -0
- package/components/chart/common-chart-options.js +200 -0
- package/components/chart/example-bar-chart.njk +54 -0
- package/components/chart/example-clustered-bar-chart.njk +60 -0
- package/components/chart/example-clustered-column-chart.njk +72 -0
- package/components/chart/example-column-chart.njk +52 -0
- package/components/chart/example-line-chart.njk +219 -0
- package/components/chart/example-stacked-bar-chart.njk +60 -0
- package/components/chart/example-stacked-column-chart.njk +65 -0
- package/components/chart/line-chart.js +47 -0
- package/components/chart/specific-chart-options.js +22 -0
- package/components/footer/_footer.scss +12 -0
- package/components/footer/_macro.njk +38 -17
- package/components/header/_header.scss +18 -2
- package/components/header/_macro.njk +81 -8
- package/components/header/_macro.spec.js +97 -0
- package/components/header/example-header-with-search-button.njk +190 -0
- package/components/header/header.spec.js +128 -0
- package/components/hero/_hero.scss +8 -7
- package/components/hero/_macro.njk +45 -26
- package/components/hero/example-hero-grey.njk +1 -0
- package/components/icon/_macro.njk +8 -8
- package/components/input/_input.scss +15 -0
- package/components/input/_macro.njk +3 -3
- package/components/navigation/navigation.dom.js +17 -0
- package/components/navigation/navigation.js +72 -2
- package/css/main.css +1 -1
- package/js/main.js +2 -0
- package/package.json +4 -1
- package/scripts/main.es5.js +1 -1
- package/scripts/main.js +1 -1
- package/scss/main.scss +1 -0
- package/scss/utilities/_grid.scss +13 -4
|
@@ -13,6 +13,11 @@ domready(async () => {
|
|
|
13
13
|
const toggleServicesBtn = document.querySelector('.ons-js-toggle-services');
|
|
14
14
|
const servicesEl = document.querySelector('.ons-js-services-mobile-nav');
|
|
15
15
|
const servicesHideClass = 'ons-u-d-no';
|
|
16
|
+
const toggleHeaderSearchBtn = document.querySelector('.ons-js-toggle-header-search');
|
|
17
|
+
const headerSearchHideClass = 'ons-u-d-no';
|
|
18
|
+
const headerSearchEl = document.querySelector('.ons-js-header-search');
|
|
19
|
+
const menuEl = document.querySelector('.ons-js-nav-menu');
|
|
20
|
+
const toggleHeaderMenuBtn = document.querySelector('.ons-js-toggle-nav-menu');
|
|
16
21
|
|
|
17
22
|
if (toggleNavigationBtn) {
|
|
18
23
|
const NavigationToggle = (await import('./navigation')).default;
|
|
@@ -31,6 +36,18 @@ domready(async () => {
|
|
|
31
36
|
new searchToggle(toggleSearchBtn, searchEl, searchHideClass).registerEvents();
|
|
32
37
|
}
|
|
33
38
|
|
|
39
|
+
if (toggleHeaderSearchBtn) {
|
|
40
|
+
const searchToggle = (await import('./navigation')).default;
|
|
41
|
+
|
|
42
|
+
new searchToggle(toggleHeaderSearchBtn, headerSearchEl, headerSearchHideClass).registerEvents();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (toggleHeaderMenuBtn) {
|
|
46
|
+
const searchToggle = (await import('./navigation')).default;
|
|
47
|
+
|
|
48
|
+
new searchToggle(toggleHeaderMenuBtn, menuEl, headerSearchHideClass).registerEvents();
|
|
49
|
+
}
|
|
50
|
+
|
|
34
51
|
if (toggleServicesBtn) {
|
|
35
52
|
const servicesToggle = (await import('./navigation')).default;
|
|
36
53
|
|
|
@@ -8,6 +8,7 @@ export default class NavigationToggle {
|
|
|
8
8
|
this.toggle = toggle;
|
|
9
9
|
this.navigation = navigation;
|
|
10
10
|
this.hideClass = hideClass;
|
|
11
|
+
|
|
11
12
|
this.toggle.classList.remove('ons-u-d-no');
|
|
12
13
|
this.setAria();
|
|
13
14
|
onViewportChange(this.setAria.bind(this));
|
|
@@ -25,7 +26,6 @@ export default class NavigationToggle {
|
|
|
25
26
|
openNav() {
|
|
26
27
|
const input = [...this.navigation.getElementsByTagName('INPUT')][0];
|
|
27
28
|
|
|
28
|
-
this.toggle.setAttribute(attrExpanded, 'true');
|
|
29
29
|
this.toggle.classList.add('active');
|
|
30
30
|
this.navigation.setAttribute(attrHidden, 'false');
|
|
31
31
|
this.navigation.classList.remove(this.hideClass);
|
|
@@ -33,13 +33,57 @@ export default class NavigationToggle {
|
|
|
33
33
|
if (input) {
|
|
34
34
|
input.focus();
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
const searchToggleBtn = document.querySelector('.ons-js-toggle-header-search');
|
|
38
|
+
if (this.toggle === searchToggleBtn) {
|
|
39
|
+
this.updateSearchIcon(true, this.toggle);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
this.toggle.setAttribute(attrExpanded, 'true');
|
|
43
|
+
|
|
44
|
+
this.toggleMenuAndSearch();
|
|
36
45
|
}
|
|
37
46
|
|
|
38
47
|
closeNav() {
|
|
39
|
-
this.toggle.setAttribute(attrExpanded, 'false');
|
|
40
48
|
this.toggle.classList.remove('active');
|
|
41
49
|
this.navigation.setAttribute(attrHidden, 'true');
|
|
42
50
|
this.navigation.classList.add(this.hideClass);
|
|
51
|
+
|
|
52
|
+
const searchToggleBtn = document.querySelector('.ons-js-toggle-header-search');
|
|
53
|
+
if (this.toggle === searchToggleBtn) {
|
|
54
|
+
this.updateSearchIcon(false, this.toggle);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
this.toggle.setAttribute(attrExpanded, 'false');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
updateSearchIcon(isOpen, toggle) {
|
|
61
|
+
const searchIconSVG = `
|
|
62
|
+
<span class="ons-btn__inner">
|
|
63
|
+
<svg class="ons-icon ons-icon--search ons-u-mr-2xs" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" role="img" title="ons-icon-search">
|
|
64
|
+
<path d="M11.86 10.23 8.62 6.99a4.63 4.63 0 1 0-6.34 1.64 4.55 4.55 0 0 0 2.36.64 4.65 4.65 0 0 0 2.33-.65l3.24 3.23a.46.46 0 0 0 .65 0l1-1a.48.48 0 0 0 0-.62Zm-5-3.32a3.28 3.28 0 0 1-2.31.93 3.22 3.22 0 1 1 2.35-.93Z"></path>
|
|
65
|
+
</svg>
|
|
66
|
+
<span class="ons-btn__text"></span>
|
|
67
|
+
</span>`;
|
|
68
|
+
|
|
69
|
+
const closeIconSVG = `
|
|
70
|
+
<span class="ons-btn__inner">
|
|
71
|
+
<svg class="ons-icon ons-icon--close" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" focusable="false" fill="currentColor" role="img" title="ons-icon-close">
|
|
72
|
+
<path d="M12 0C5.4 0 0 5.4 0 12C0 18.6 5.4 24 12 24C18.6 24 24 18.6 24 12C24 5.4 18.6 0 12 0ZM17.3143 15.5143C17.6571 15.8571 17.6571 16.3714 17.3143 16.7143L16.7143 17.3143C16.3714 17.6571 15.8571 17.6571 15.5143 17.3143L12 13.8L8.48571 17.3143C8.14286 17.6571 7.62857 17.6571 7.28571 17.3143L6.68571 16.7143C6.34286 16.3714 6.34286 15.8571 6.68571 15.5143L10.2 12L6.68571 8.48571C6.34286 8.14286 6.34286 7.62857 6.68571 7.28571L7.28571 6.68571C7.62857 6.34286 8.14286 6.34286 8.48571 6.68571L12 10.2L15.5143 6.68571C15.8571 6.34286 16.3714 6.34286 16.7143 6.68571L17.3143 7.28571C17.6571 7.62857 17.6571 8.14286 17.3143 8.48571L13.8 12L17.3143 15.5143Z"/>
|
|
73
|
+
</svg>
|
|
74
|
+
<span class="ons-btn__text"></span>
|
|
75
|
+
</span>`;
|
|
76
|
+
|
|
77
|
+
if (isOpen) {
|
|
78
|
+
toggle.classList.add('ons-btn--close');
|
|
79
|
+
this.toggle.classList.remove('ons-btn--search-icon');
|
|
80
|
+
this.toggle.innerHTML = closeIconSVG;
|
|
81
|
+
}
|
|
82
|
+
if (!isOpen) {
|
|
83
|
+
toggle.classList.remove('ons-btn--close');
|
|
84
|
+
toggle.classList.add('ons-btn--search-icon');
|
|
85
|
+
toggle.innerHTML = searchIconSVG;
|
|
86
|
+
}
|
|
43
87
|
}
|
|
44
88
|
|
|
45
89
|
isHidden(el) {
|
|
@@ -64,4 +108,30 @@ export default class NavigationToggle {
|
|
|
64
108
|
}
|
|
65
109
|
}
|
|
66
110
|
}
|
|
111
|
+
|
|
112
|
+
toggleMenuAndSearch() {
|
|
113
|
+
const menuBtn = document.querySelector('.ons-js-toggle-nav-menu');
|
|
114
|
+
const menuEl = document.querySelector('.ons-js-nav-menu');
|
|
115
|
+
const searchToggle = document.querySelector('.ons-js-toggle-header-search');
|
|
116
|
+
const searchBtn = document.querySelector('.ons-btn--search');
|
|
117
|
+
const searchEl = document.querySelector('.ons-js-header-search');
|
|
118
|
+
|
|
119
|
+
const isMenuOpen = menuBtn.getAttribute('aria-expanded') === 'true';
|
|
120
|
+
const isSearchOpen = searchBtn.getAttribute('aria-expanded') === 'true';
|
|
121
|
+
|
|
122
|
+
if (isMenuOpen && this.toggle == menuBtn) {
|
|
123
|
+
this.updateSearchIcon(false, searchToggle);
|
|
124
|
+
searchBtn.setAttribute('aria-expanded', 'false');
|
|
125
|
+
searchEl.setAttribute('aria-hidden', 'true');
|
|
126
|
+
searchEl.classList.add('ons-u-d-no');
|
|
127
|
+
searchToggle.classList.remove('active');
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (isSearchOpen && this.toggle == searchToggle) {
|
|
131
|
+
menuBtn.setAttribute('aria-expanded', 'false');
|
|
132
|
+
menuEl.setAttribute('aria-hidden', 'true');
|
|
133
|
+
menuEl.classList.add('ons-u-d-no');
|
|
134
|
+
menuBtn.classList.remove('active');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
67
137
|
}
|