@itcenteratunihelsinki/huds-lib 0.5.21 → 0.5.25
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/dist/cjs/huds-lib.cjs.js +1 -1
- package/dist/cjs/hy-accordion-container_5.cjs.entry.js +578 -0
- package/dist/cjs/hy-desktop-menu-links.cjs.entry.js +4 -3
- package/dist/cjs/hy-list-item.cjs.entry.js +1 -1
- package/dist/cjs/{hy-menu-language_2.cjs.entry.js → hy-menu-language.cjs.entry.js} +0 -19
- package/dist/cjs/hy-menu-mobile-breadcrumb.cjs.entry.js +25 -0
- package/dist/cjs/hy-menu.cjs.entry.js +4 -8
- package/dist/cjs/hy-paragraph-text.cjs.entry.js +1 -1
- package/dist/cjs/hy-person-profile.cjs.entry.js +61 -0
- package/dist/cjs/hy-site-header_3.cjs.entry.js +14 -6
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/accordion-item/accordion-item.css +5 -4
- package/dist/collection/components/accordion-item/accordion-item.js +20 -20
- package/dist/collection/components/hy-list-item/hy-list-item.css +9 -4
- package/dist/collection/components/navigation/menu/menu.js +21 -10
- package/dist/collection/components/paragraph-text/paragraph-text.css +9 -7
- package/dist/collection/components/person-profile/person-profile-listing/person-profile-listing.css +188 -0
- package/dist/collection/components/person-profile/person-profile-listing/person-profile.listing.js +124 -0
- package/dist/collection/components/person-profile/person-profile.css +506 -0
- package/dist/collection/components/person-profile/person-profile.js +199 -0
- package/dist/collection/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.css +20 -10
- package/dist/collection/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.js +3 -2
- package/dist/collection/components/site-header/site-header.css +12 -0
- package/dist/collection/components/site-header/site-header.js +21 -2
- package/dist/collection/components/site-header/site-logo/site-logo.css +22 -0
- package/dist/collection/components/site-header/site-search/site-search.css +10 -10
- package/dist/collection/components/site-header/site-search/site-search.js +8 -1
- package/dist/esm/huds-lib.js +1 -1
- package/dist/esm/hy-accordion-container_5.entry.js +570 -0
- package/dist/esm/hy-desktop-menu-links.entry.js +4 -3
- package/dist/esm/hy-list-item.entry.js +1 -1
- package/dist/esm/{hy-menu-language_2.entry.js → hy-menu-language.entry.js} +1 -19
- package/dist/esm/hy-menu-mobile-breadcrumb.entry.js +21 -0
- package/dist/esm/hy-menu.entry.js +4 -8
- package/dist/esm/hy-paragraph-text.entry.js +1 -1
- package/dist/esm/hy-person-profile.entry.js +57 -0
- package/dist/esm/hy-site-header_3.entry.js +14 -6
- package/dist/esm/loader.js +1 -1
- package/dist/huds-lib/huds-lib.esm.js +1 -1
- package/dist/huds-lib/p-0b2e3057.entry.js +1 -0
- package/dist/huds-lib/p-22e9d015.entry.js +1 -0
- package/dist/huds-lib/p-3d35d226.entry.js +1 -0
- package/dist/huds-lib/{p-b526249a.entry.js → p-4252e76e.entry.js} +1 -1
- package/dist/huds-lib/{p-bf84b857.entry.js → p-557d5e62.entry.js} +1 -1
- package/dist/huds-lib/{p-401ead3c.entry.js → p-70d43477.entry.js} +1 -1
- package/dist/huds-lib/p-8f62c5a4.entry.js +1 -0
- package/dist/huds-lib/p-ac362729.entry.js +1 -0
- package/dist/huds-lib/p-c3afba74.entry.js +1 -0
- package/dist/types/components/navigation/menu/menu.d.ts +2 -1
- package/dist/types/components/person-profile/person-profile-listing/person-profile.listing.d.ts +14 -0
- package/dist/types/components/person-profile/person-profile.d.ts +12 -0
- package/dist/types/components/site-header/site-header.d.ts +1 -0
- package/dist/types/components.d.ts +51 -0
- package/package.json +1 -1
- package/dist/cjs/hy-accordion-container.cjs.entry.js +0 -29
- package/dist/cjs/hy-accordion-item.cjs.entry.js +0 -216
- package/dist/cjs/hy-tabs-item.cjs.entry.js +0 -20
- package/dist/cjs/hy-tabs.cjs.entry.js +0 -308
- package/dist/esm/hy-accordion-container.entry.js +0 -25
- package/dist/esm/hy-accordion-item.entry.js +0 -212
- package/dist/esm/hy-tabs-item.entry.js +0 -16
- package/dist/esm/hy-tabs.entry.js +0 -304
- package/dist/huds-lib/p-0a3ee940.entry.js +0 -1
- package/dist/huds-lib/p-63334950.entry.js +0 -1
- package/dist/huds-lib/p-85cad30d.entry.js +0 -1
- package/dist/huds-lib/p-8eb879d5.entry.js +0 -1
- package/dist/huds-lib/p-9c2f38a6.entry.js +0 -1
- package/dist/huds-lib/p-d4a8d85f.entry.js +0 -1
- package/dist/huds-lib/p-df368663.entry.js +0 -1
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h, g as getElement } from './index-083c8c8a.js';
|
|
2
|
-
import { A as AccordionVariants } from './utils-cb48185b.js';
|
|
3
|
-
|
|
4
|
-
const accordionItemCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}.hy-accordion__item{margin-bottom:12px}.hy-accordion__item__is-open{border:1px solid var(--grayscale-dark)}.hy-accordion__item__is-open .hy-accordion--heading{margin:0 auto}.hy-accordion__item__is-open .hy-accordion--heading .hy-accordion--heading__icon{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.hy-accordion__item.mini{margin-bottom:1rem;margin-top:1rem}.hy-accordion__item__is-open.mini{margin-bottom:0;margin-top:0}.hy-accordion__item__is-open.mini .hy-accordion__item--container{border-bottom:1px solid var(--grayscale-medium-dark);border-top:1px solid var(--grayscale-medium-dark);padding-top:16px;padding-bottom:32px;margin-top:-1px;-webkit-transition:padding 0.5s ease-in-out;transition:padding 0.5s ease-in-out}@media (min-width: 30rem){.hy-accordion__item__is-open.mini .hy-accordion__item--container{padding-top:28px;padding-bottom:30px}}@media (min-width: 60rem){.hy-accordion__item__is-open.mini .hy-accordion__item--container{padding-top:32px;padding-bottom:40px}}.hy-accordion__item.hy-accordion__item__is-open.mini{background-color:var(--grayscale-white);border:none;-webkit-box-shadow:0 -10px 10px -10px rgba(0, 49, 70, 0.05);box-shadow:0 -10px 10px -10px rgba(0, 49, 70, 0.05)}.hy-accordion--heading{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;letter-spacing:-0.69px;line-height:28px;margin:0 auto;-webkit-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out;width:100%}.hy-accordion--heading .hy-accordion__link{text-decoration:none}.hy-accordion--heading .hy-accordion__link:hover{text-decoration:none}.hy-accordion--heading .hy-accordion__button{font-size:1.125rem;line-height:22px;font-weight:700;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;background-color:var(--grayscale-background-box);border:none;color:var(--brand-main-nearly-black);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;font-family:var(--main-font-family);height:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;letter-spacing:-0.45px;padding:13px 20px 13px 16px;-webkit-transition:all 0.35s ease-in;transition:all 0.35s ease-in;width:100%}.hy-accordion--heading .hy-accordion__button:hover{cursor:pointer}@media (min-width: 30rem){.hy-accordion--heading .hy-accordion__button{padding:1rem 2rem 1rem 1.25rem}}@media (min-width: 1601px){.hy-accordion--heading .hy-accordion__button{font-size:1.25rem;line-height:24px;letter-spacing:-0.5px}}@media (min-width: 75.0625rem){.hy-accordion--heading .hy-accordion__button--large{font-size:1.25rem;line-height:24px;letter-spacing:-0.5px}}@media (min-width: 75.0625rem){.hy-accordion--heading .hy-accordion__button--large .hy-accordion--heading__icon svg{height:20px;width:20px}}.hy-accordion--heading .hy-accordion__button[aria-expanded=true]{background:none}.hy-accordion--heading .hy-accordion__button span{text-align:left}.hy-accordion--heading .hy-accordion__button[aria-expanded=true]{position:relative}.hy-accordion--heading .hy-accordion__button[aria-expanded=true]:after{background-color:var(--grayscale-medium-dark);bottom:0;content:\"\";height:1px;left:16px;position:absolute;right:20px}.hy-accordion--heading .hy-accordion--heading__icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:22px;margin-right:8px;z-index:0}.hy-accordion--heading .hy-accordion--heading__icon svg{fill:var(--brand-main)}@media (min-width: 30rem){.hy-accordion--heading .hy-accordion--heading__icon svg{height:18px;width:18px}}@media (min-width: 1601px){.hy-accordion--heading .hy-accordion--heading__icon svg{height:20px;width:20px}}.hy-accordion--heading.mini .hy-accordion__button{font-size:1.125rem;line-height:22px;background-color:var(--grayscale-white);color:var(--link-blue);letter-spacing:-0.56px;padding:0}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion__button{font-size:1.375rem;line-height:28px;letter-spacing:-0.69px;padding:0}}.hy-accordion--heading.mini .hy-accordion__button[aria-expanded=true]{color:var(--grayscale-black);margin-bottom:20px}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion__button[aria-expanded=true]{margin-bottom:28px}}@media (min-width: 60rem){.hy-accordion--heading.mini .hy-accordion__button[aria-expanded=true]{margin-bottom:32px}}.hy-accordion--heading.mini .hy-accordion--heading__icon{margin-right:0.5rem;z-index:0}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion--heading__icon{margin-right:10px}}.hy-accordion--heading.mini .hy-accordion--heading__icon svg{fill:var(--brand-main-light);height:14px;width:14px}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion--heading__icon svg{height:16px;width:16px}}.hy-accordion__content{display:block;height:0;padding:0;overflow:hidden;-webkit-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out}.hy-accordion__content--inner-wrapper{display:block;padding:16px 12px}@media (min-width: 30rem){.hy-accordion__content--inner-wrapper{padding:15px 16px}}@media (min-width: 60rem){.hy-accordion__content--inner-wrapper{padding:16px}}@media (min-width: 75.0625rem){.hy-accordion__content--inner-wrapper--large{padding:24px 20px}}@media (min-width: 1601px){.hy-accordion__content--inner-wrapper{padding:24px 20px}}.hy-accordion__content--inner-wrapper--mini{padding:0}.hy-accordion__content--inner-wrapper--mini .course-heading h4{padding-top:0 !important}";
|
|
5
|
-
|
|
6
|
-
let keys = {
|
|
7
|
-
enter: 'Enter',
|
|
8
|
-
tab: 'Tab',
|
|
9
|
-
pageUp: 'PageUp',
|
|
10
|
-
pageDown: 'PageDown',
|
|
11
|
-
arrowUp: 'ArrowUp',
|
|
12
|
-
arrowDown: 'ArrowDown',
|
|
13
|
-
home: 'Home',
|
|
14
|
-
end: 'End', //35
|
|
15
|
-
};
|
|
16
|
-
const AccordionItem = class {
|
|
17
|
-
constructor(hostRef) {
|
|
18
|
-
registerInstance(this, hostRef);
|
|
19
|
-
this.variant = AccordionVariants.default;
|
|
20
|
-
this.headerstyle = 'common';
|
|
21
|
-
this.showOpen = false;
|
|
22
|
-
this.ready = false;
|
|
23
|
-
}
|
|
24
|
-
componentDidLoad() {
|
|
25
|
-
this.ready = true;
|
|
26
|
-
let hyMainDiv = this.el.closest('.hy-main');
|
|
27
|
-
if (hyMainDiv) {
|
|
28
|
-
if (!hyMainDiv.classList.contains('with-sidebar')) {
|
|
29
|
-
this.headerstyle = 'large';
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
componentDidRender() {
|
|
34
|
-
if (window.location.hash) {
|
|
35
|
-
this.expandPanelByAnchor(window.location.hash);
|
|
36
|
-
}
|
|
37
|
-
document.querySelectorAll('.hy-accordion__content').forEach(function (accordion) {
|
|
38
|
-
let showOpen = accordion.classList.contains('open');
|
|
39
|
-
let element = accordion;
|
|
40
|
-
if (showOpen) {
|
|
41
|
-
element.style.display = 'block';
|
|
42
|
-
element.style.height = element.scrollHeight + 'px';
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
element.style.height = 0 + 'px';
|
|
46
|
-
element.style.display = 'none';
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
onHashChange() {
|
|
51
|
-
if (window.location.hash) {
|
|
52
|
-
this.expandPanelByAnchor(window.location.hash);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
handleKeyDown(event) {
|
|
56
|
-
const containerId = this.el.parentElement.id;
|
|
57
|
-
let accordion = document.querySelectorAll(`#${containerId}`)[0];
|
|
58
|
-
const triggers = Array.prototype.slice.call(accordion.querySelectorAll('.hy-accordion__button'));
|
|
59
|
-
let target = event.target;
|
|
60
|
-
const key = event.code;
|
|
61
|
-
const ctrlModifier = event.ctrlKey && [keys.pageDown, keys.pageUp].includes(key); //key.match(/33|34/);
|
|
62
|
-
if (target.classList.contains('hy-accordion__button')) {
|
|
63
|
-
// Up/ Down arrow and Control + Page Up/ Page Down keyboard operations
|
|
64
|
-
if ([keys.arrowDown, keys.arrowUp].includes(key) || ctrlModifier) {
|
|
65
|
-
const index = triggers.indexOf(target);
|
|
66
|
-
const direction = [keys.arrowDown, keys.pageDown].includes(key) ? 1 : -1;
|
|
67
|
-
const length = triggers.length;
|
|
68
|
-
const newIndex = (index + length + direction) % length;
|
|
69
|
-
triggers[newIndex].focus();
|
|
70
|
-
event.preventDefault();
|
|
71
|
-
}
|
|
72
|
-
else if ([keys.home, keys.end].includes(key)) {
|
|
73
|
-
switch (key) {
|
|
74
|
-
// Go to first accordion
|
|
75
|
-
case keys.home:
|
|
76
|
-
triggers[0].focus();
|
|
77
|
-
break;
|
|
78
|
-
// Go to last accordion
|
|
79
|
-
case keys.end:
|
|
80
|
-
triggers[triggers.length - 1].focus();
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
event.preventDefault();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
handleClick(event) {
|
|
88
|
-
const containerId = this.el.parentElement.id;
|
|
89
|
-
let target = event.target;
|
|
90
|
-
const targetElement = target.tagName.toLowerCase();
|
|
91
|
-
const possibleTags = [targetElement].some((r) => ['svg', 'span', 'path', 'button', 'a'].indexOf(r) >= 0);
|
|
92
|
-
let accordion = document.querySelectorAll(`#${containerId}`)[0];
|
|
93
|
-
const allowMultiple = accordion.hasAttribute('data-allow-multiple');
|
|
94
|
-
const allowToggle = allowMultiple ? allowMultiple : accordion.hasAttribute('data-allow-toggle');
|
|
95
|
-
if (target && possibleTags) {
|
|
96
|
-
if (targetElement !== 'button') {
|
|
97
|
-
target = target.closest('.hy-accordion__button');
|
|
98
|
-
}
|
|
99
|
-
let targetParent = target.closest('.hy-accordion__item');
|
|
100
|
-
let targetContent = targetParent.querySelectorAll('.hy-accordion__content')[0];
|
|
101
|
-
const isExpanded = target.getAttribute('aria-expanded') == 'true';
|
|
102
|
-
const active = accordion.querySelector('[aria-expanded="true"]');
|
|
103
|
-
if (!allowMultiple && active && active !== target) {
|
|
104
|
-
active.setAttribute('aria-expanded', 'false');
|
|
105
|
-
this.collapseSection(targetContent);
|
|
106
|
-
if (targetParent.classList.contains('hy-accordion__item__is-open')) {
|
|
107
|
-
targetParent.classList.remove('hy-accordion__item__is-open');
|
|
108
|
-
}
|
|
109
|
-
accordion.querySelector(`#${active.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'true');
|
|
110
|
-
if (!allowToggle) {
|
|
111
|
-
active.removeAttribute('aria-disabled');
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (!isExpanded) {
|
|
115
|
-
this.expandSection(targetContent);
|
|
116
|
-
target.setAttribute('aria-expanded', 'true');
|
|
117
|
-
targetParent.classList.add('hy-accordion__item__is-open');
|
|
118
|
-
accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'false');
|
|
119
|
-
if (!allowToggle) {
|
|
120
|
-
target.setAttribute('aria-disabled', 'true');
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else if (allowToggle && isExpanded) {
|
|
124
|
-
target.setAttribute('aria-expanded', 'false');
|
|
125
|
-
this.collapseSection(targetContent);
|
|
126
|
-
if (targetParent.classList.contains('hy-accordion__item__is-open')) {
|
|
127
|
-
targetParent.classList.remove('hy-accordion__item__is-open');
|
|
128
|
-
}
|
|
129
|
-
accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'true');
|
|
130
|
-
}
|
|
131
|
-
event.preventDefault();
|
|
132
|
-
event.stopImmediatePropagation();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
expandPanelByAnchor(anchor) {
|
|
136
|
-
setTimeout(() => {
|
|
137
|
-
if (anchor.length > 0) {
|
|
138
|
-
anchor = anchor.substr(1);
|
|
139
|
-
let target = document.querySelectorAll(`[id=${anchor}]`)[0];
|
|
140
|
-
if (target && target.classList.contains('hy-accordion__button')) {
|
|
141
|
-
let targetParent = target.closest('.hy-accordion__item');
|
|
142
|
-
let targetContent = targetParent.querySelectorAll('.hy-accordion__content')[0];
|
|
143
|
-
this.expandSection(targetContent);
|
|
144
|
-
target.setAttribute('aria-expanded', 'true');
|
|
145
|
-
targetParent.classList.add('hy-accordion__item__is-open');
|
|
146
|
-
const targetElementRect = target.getBoundingClientRect();
|
|
147
|
-
window.scrollTo({ top: window.scrollY + targetElementRect.top - 200, behavior: 'smooth' });
|
|
148
|
-
const containerId = targetParent.parentElement.parentElement.id;
|
|
149
|
-
if (containerId.length > 0) {
|
|
150
|
-
let accordion = document.querySelectorAll(`#${containerId}`)[0];
|
|
151
|
-
accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'false');
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}, 200);
|
|
156
|
-
}
|
|
157
|
-
collapseSection(element) {
|
|
158
|
-
element.style.height = 0 + 'px';
|
|
159
|
-
element.setAttribute('data-collapsed', 'true');
|
|
160
|
-
setTimeout(() => {
|
|
161
|
-
element.style.display = 'none';
|
|
162
|
-
}, 250);
|
|
163
|
-
}
|
|
164
|
-
expandSection(element) {
|
|
165
|
-
element.style.display = 'block';
|
|
166
|
-
element.style.height = element.scrollHeight + 'px';
|
|
167
|
-
element.setAttribute('data-collapsed', 'false');
|
|
168
|
-
}
|
|
169
|
-
render() {
|
|
170
|
-
const containerId = this.el.parentElement.id;
|
|
171
|
-
if (this.ready && containerId.length > 0) {
|
|
172
|
-
document.querySelectorAll(`#${containerId}`).forEach(function (accordion) {
|
|
173
|
-
if (accordion) {
|
|
174
|
-
accordion.querySelectorAll('.hy-accordion__button').forEach(function (trigger) {
|
|
175
|
-
trigger.addEventListener('focus', function () {
|
|
176
|
-
trigger.classList.add('focus');
|
|
177
|
-
});
|
|
178
|
-
trigger.addEventListener('blur', function () {
|
|
179
|
-
trigger.classList.remove('focus');
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
const classIsOpen = this.showOpen ? 'hy-accordion__item__is-open' : '';
|
|
186
|
-
const classContentIsOpen = this.showOpen ? 'open' : '';
|
|
187
|
-
const classAttributes = ['hy-accordion__item', this.variant, classIsOpen].join(' ');
|
|
188
|
-
const classInnerWrapper = ['hy-accordion__item--container', this.variant].join(' ');
|
|
189
|
-
const classHeadingAttributes = ['hy-accordion--heading', this.variant].join(' ');
|
|
190
|
-
const classContentAttributes = [
|
|
191
|
-
'hy-accordion__content',
|
|
192
|
-
`hy-accordion__content--${this.variant}`,
|
|
193
|
-
this.variant,
|
|
194
|
-
classContentIsOpen,
|
|
195
|
-
].join(' ');
|
|
196
|
-
const classContentInnerWrapper = [
|
|
197
|
-
'hy-accordion__content--inner-wrapper',
|
|
198
|
-
`hy-accordion__content--inner-wrapper--${this.headerstyle}`,
|
|
199
|
-
`hy-accordion__content--inner-wrapper--${this.variant}`,
|
|
200
|
-
].join(' ');
|
|
201
|
-
const titleAsId = this.accordiontitle.toLowerCase().replace(/\W/g, '-');
|
|
202
|
-
const accordionItemHref = '#' + titleAsId + '--title';
|
|
203
|
-
const ariaExpanded = this.showOpen ? 'true' : 'false';
|
|
204
|
-
const ariaHidden = this.showOpen ? 'false' : 'true';
|
|
205
|
-
const dataCollapsed = this.showOpen ? 'false' : 'true';
|
|
206
|
-
return (h("div", { class: classAttributes }, h("div", { class: classInnerWrapper }, h("div", { class: classHeadingAttributes }, h("a", { href: accordionItemHref, class: "hy-accordion__link", tabindex: "-1" }, h("button", { "aria-expanded": ariaExpanded, "aria-controls": `${titleAsId}--content`, class: `hy-accordion__button hy-accordion__button--${this.headerstyle}`, id: `${titleAsId}--title` }, h("span", { class: "hy-accordion--heading__icon" }, h("hy-icon", { icon: 'hy-icon-caret-down', size: 16 })), h("span", null, this.accordiontitle)))), h("div", { "aria-labelledBy": `${titleAsId}--title`, class: classContentAttributes, id: `${titleAsId}--content`, role: "region", "aria-hidden": ariaHidden, "data-collapsed": dataCollapsed, style: { display: 'none' } }, h("div", { class: classContentInnerWrapper }, h("slot", null))))));
|
|
207
|
-
}
|
|
208
|
-
get el() { return getElement(this); }
|
|
209
|
-
};
|
|
210
|
-
AccordionItem.style = accordionItemCss;
|
|
211
|
-
|
|
212
|
-
export { AccordionItem as hy_accordion_item };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-083c8c8a.js';
|
|
2
|
-
|
|
3
|
-
const hyTabsItemCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}";
|
|
4
|
-
|
|
5
|
-
const HyTabsItem = class {
|
|
6
|
-
constructor(hostRef) {
|
|
7
|
-
registerInstance(this, hostRef);
|
|
8
|
-
}
|
|
9
|
-
render() {
|
|
10
|
-
const id = this.tabTitle.toLowerCase().replace(/\W/g, '-');
|
|
11
|
-
return (h("div", { tabindex: "0", role: "tabpanel", id: `${id}-tab`, "aria-labelledby": id, hidden: true }, h("slot", null)));
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
HyTabsItem.style = hyTabsItemCss;
|
|
15
|
-
|
|
16
|
-
export { HyTabsItem as hy_tabs_item };
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h, g as getElement } from './index-083c8c8a.js';
|
|
2
|
-
|
|
3
|
-
const hyTabsCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}.hy-tabs__container .hy-tablist-container{border-bottom:1px solid var(--grayscale-tabs-border);position:relative}.hy-tabs__container .hy-tab-scroll{background-color:rgba(255, 255, 255, 0.8);border:0;height:100%;margin:0;padding:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:4}.hy-tabs__container .hy-tab-scroll.is-hidden{display:none;visibility:hidden}.hy-tabs__container .hy-tab-scroll.is-disabled{background-color:var(--grayscale-medium)}.hy-tabs__container .hy-tab-scroll.is-disabled:hover{cursor:none}.hy-tabs__container .hy-tab-scroll:focus,.hy-tabs__container .hy-tab-scroll:hover{outline:none;cursor:pointer}.hy-tabs__container .hy-tab-scroll span{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-black);border-radius:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:32px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:32px}.hy-tabs__container .hy-tab-scroll span svg{fill:var(--grayscale-white);height:16px;width:16px}.hy-tabs__container .hy-tab-scroll__left{left:0;padding-right:8px}.hy-tabs__container .hy-tab-scroll__left svg{-webkit-transform:translateX(-1px);transform:translateX(-1px)}.hy-tabs__container .hy-tab-scroll__right{padding-left:8px;right:0}.hy-tabs__container .hy-tab-scroll__right svg{-webkit-transform:translateX(1px);transform:translateX(1px)}.hy-tabs__container [role=tablist]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0 0 -0.1em;overflow:scroll;position:relative;scrollbar-width:none;white-space:nowrap}.hy-tabs__container [role=tablist]::-webkit-scrollbar{display:none}.hy-tabs__container [role=tablist] a{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:47.56%;text-decoration:none;-ms-flex-negative:0;flex-shrink:0}.hy-tabs__container [role=tablist] a:not(:first-of-type){margin-left:6px}@media (min-width: 30rem){.hy-tabs__container [role=tablist] a{max-width:35.37%}}@media (min-width: 60rem){.hy-tabs__container [role=tablist] a{max-width:23.13%}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tablist] a{max-width:23.03%}}.hy-tabs__container [role=tab]{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background-color:transparent;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:6px;padding:0}.hy-tabs__container [role=tab]>span{font-size:0.875rem;line-height:14px;font-weight:700;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-background-box);border:0;color:var(--link-blue);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--main-font-family);-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;letter-spacing:-0.5px;padding:8px 8px 7px;pointer-events:none;position:relative;text-align:left;white-space:normal;word-break:break-word;overflow-wrap:break-word;overflow-wrap:break-word}@media (min-width: 30rem){.hy-tabs__container [role=tab]>span{font-size:1rem;line-height:18px;padding:16px 12px 10px}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab]>span{font-size:1.125rem;line-height:20px;letter-spacing:-0.6px;padding:16px 16px 14px}}@supports (overflow-wrap: anywhere){.hy-tabs__container [role=tab]>span{overflow-wrap:anywhere}}@supports (overflow-wrap: anywhere){.hy-tabs__container [role=tab]>span{overflow-wrap:anywhere}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab].large{margin:0 12px 0 0}}.hy-tabs__container [role=tab][aria-selected=true]{border-bottom-width:0;border:1px solid var(--grayscale-dark);margin-bottom:0;z-index:3}.hy-tabs__container [role=tab][aria-selected=true]>span{background-color:var(--grayscale-white);color:var(--grayscale-black);padding-bottom:13px}@media (min-width: 30rem){.hy-tabs__container [role=tab][aria-selected=true]>span{padding-bottom:16px}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab][aria-selected=true]>span{padding-bottom:20px}}.hy-tabs__container [role=tab][aria-selected=true]>span:before{background-color:var(--grayscale-white);bottom:0;content:\"\";height:4px;left:0;position:absolute;right:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.hy-tabs__container [role=tab][aria-selected=true]>span:after{background-color:var(--grayscale-black);bottom:0;content:\"\";height:4px;left:8px;position:absolute;right:8px}.hy-tabs__container [role=tab]:hover{border-radius:0;color:inherit;cursor:pointer;text-decoration:none}.hy-tabs__container [role=tab]:hover span{background-color:var(--hover-gray);color:var(--brand-main-active)}.hy-tabs__container [role=tabpanel]{border:1px solid var(--grayscale-dark);padding:28px 12px;position:relative;z-index:2}@media (min-width: 30rem){.hy-tabs__container [role=tabpanel]{padding:38px 15px}}@media (min-width: 60rem){.hy-tabs__container [role=tabpanel]{padding:40px 20px}}.hy-tabs__container [role=tabpanel]:focus{outline:0}";
|
|
4
|
-
|
|
5
|
-
// For easy reference
|
|
6
|
-
let keys = {
|
|
7
|
-
end: 35,
|
|
8
|
-
home: 36,
|
|
9
|
-
left: 37,
|
|
10
|
-
up: 38,
|
|
11
|
-
right: 39,
|
|
12
|
-
down: 40,
|
|
13
|
-
delete: 46,
|
|
14
|
-
};
|
|
15
|
-
// Add or substract depending on key pressed
|
|
16
|
-
let direction = {
|
|
17
|
-
37: -1,
|
|
18
|
-
38: -1,
|
|
19
|
-
39: 1,
|
|
20
|
-
40: 1,
|
|
21
|
-
};
|
|
22
|
-
let checkTimeout;
|
|
23
|
-
let focusTimeout;
|
|
24
|
-
let scrollTimeout;
|
|
25
|
-
const HyTabs = class {
|
|
26
|
-
constructor(hostRef) {
|
|
27
|
-
registerInstance(this, hostRef);
|
|
28
|
-
this.tabListLabel = '';
|
|
29
|
-
this.focusTimeoutCleared = true;
|
|
30
|
-
this.headerstyle = 'common';
|
|
31
|
-
}
|
|
32
|
-
componentWillLoad() {
|
|
33
|
-
const tabItems = this.el.querySelectorAll('hy-tabs-item');
|
|
34
|
-
if (tabItems) {
|
|
35
|
-
this.tabButtonTitles = Array.from(tabItems).map((panel) => {
|
|
36
|
-
return {
|
|
37
|
-
title: panel.getAttribute('tab-title'),
|
|
38
|
-
id: panel.getAttribute('tab-title').toLowerCase().replace(/\W/g, '-'),
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
componentDidLoad() {
|
|
44
|
-
let hyMainDiv = this.el.closest('.hy-main');
|
|
45
|
-
if (hyMainDiv) {
|
|
46
|
-
if (!hyMainDiv.classList.contains('with-sidebar')) {
|
|
47
|
-
this.headerstyle = 'large';
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const tabContainer = this.el.querySelector('.hy-tabs__container');
|
|
51
|
-
if (tabContainer) {
|
|
52
|
-
this.generateArrays(tabContainer);
|
|
53
|
-
const leftButton = this.el.querySelectorAll('.hy-tab-scroll__left')[0];
|
|
54
|
-
const rightButton = this.el.querySelectorAll('.hy-tab-scroll__right')[0];
|
|
55
|
-
const tabList = this.tabList;
|
|
56
|
-
this.checkScrollHidden(tabList, leftButton, rightButton);
|
|
57
|
-
tabList.addEventListener('scroll', () => {
|
|
58
|
-
scrollTimeout = setTimeout(() => {
|
|
59
|
-
window.clearTimeout(scrollTimeout);
|
|
60
|
-
this.checkScrollHidden(tabList, leftButton, rightButton);
|
|
61
|
-
}, 250);
|
|
62
|
-
}, false);
|
|
63
|
-
if (tabList.offSetWidth <= document.body.scrollWidth) {
|
|
64
|
-
leftButton.classList.add('is-hidden');
|
|
65
|
-
rightButton.classList.add('is-hidden');
|
|
66
|
-
}
|
|
67
|
-
const oneTabWidth = 250;
|
|
68
|
-
rightButton.addEventListener('click', (e) => {
|
|
69
|
-
e.preventDefault();
|
|
70
|
-
rightButton.classList.add('is-disabled');
|
|
71
|
-
tabList.scrollBy({
|
|
72
|
-
top: 0,
|
|
73
|
-
left: +oneTabWidth,
|
|
74
|
-
behavior: 'smooth',
|
|
75
|
-
});
|
|
76
|
-
checkTimeout = window.setTimeout(() => {
|
|
77
|
-
window.clearTimeout(checkTimeout);
|
|
78
|
-
this.checkScrollHidden(tabList, leftButton, rightButton);
|
|
79
|
-
rightButton.classList.remove('is-disabled');
|
|
80
|
-
}, 250);
|
|
81
|
-
});
|
|
82
|
-
leftButton.addEventListener('click', (e) => {
|
|
83
|
-
e.preventDefault();
|
|
84
|
-
leftButton.classList.add('is-disabled');
|
|
85
|
-
tabList.scrollBy({
|
|
86
|
-
top: 0,
|
|
87
|
-
left: -oneTabWidth,
|
|
88
|
-
behavior: 'smooth',
|
|
89
|
-
});
|
|
90
|
-
checkTimeout = window.setTimeout(() => {
|
|
91
|
-
window.clearTimeout(checkTimeout);
|
|
92
|
-
this.checkScrollHidden(tabList, leftButton, rightButton);
|
|
93
|
-
leftButton.classList.remove('is-disabled');
|
|
94
|
-
}, 250);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
generateArrays(tc) {
|
|
99
|
-
this.tabList = tc.querySelectorAll('[role="tablist"]')[0];
|
|
100
|
-
this.tabButtons = tc.querySelectorAll('[role="tab"]');
|
|
101
|
-
this.tabPanelsState = [tc.querySelectorAll('[role="tabpanel"]')];
|
|
102
|
-
if (this.tabButtons.length > 0) {
|
|
103
|
-
this.addListeners(this.tabButtons, 1);
|
|
104
|
-
this.activateTab(this.tabButtons[0], true);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
addListeners(tabs, index) {
|
|
108
|
-
if (tabs.length > 1) {
|
|
109
|
-
for (let i = 0; i < tabs.length; ++i) {
|
|
110
|
-
tabs[index].addEventListener('click', this.clickEventListener);
|
|
111
|
-
tabs[index].addEventListener('keydown', this.keydownEventListener);
|
|
112
|
-
//tabs[index].addEventListener('keyup', this.keyupEventListener);
|
|
113
|
-
tabs[index].index = index;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
checkScrollHidden(tablist, leftButton, rightButton) {
|
|
118
|
-
if (tablist.scrollLeft === 0) {
|
|
119
|
-
leftButton.classList.add('is-hidden');
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
leftButton.classList.remove('is-hidden');
|
|
123
|
-
}
|
|
124
|
-
if (tablist.scrollLeft + tablist.clientWidth >= tablist.scrollWidth - 1) {
|
|
125
|
-
rightButton.classList.add('is-hidden');
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
rightButton.classList.remove('is-hidden');
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
// When a tab is clicked, activateTab is fired to activate it
|
|
132
|
-
clickEventListener(event) {
|
|
133
|
-
if (event) {
|
|
134
|
-
const target = event.target;
|
|
135
|
-
const tabs = this.tabButtonTitles;
|
|
136
|
-
if (tabs) {
|
|
137
|
-
tabs.forEach((tab) => {
|
|
138
|
-
const id = Object.values(tab)[1];
|
|
139
|
-
if (id === target.id) {
|
|
140
|
-
this.activateTab(target, true);
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
event.stopPropagation();
|
|
144
|
-
event.stopImmediatePropagation();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
keydownEventListener(event) {
|
|
149
|
-
const key = event.keyCode;
|
|
150
|
-
const tabs = this.tabButtonTitles;
|
|
151
|
-
switch (key) {
|
|
152
|
-
case keys.end:
|
|
153
|
-
event.preventDefault();
|
|
154
|
-
// Activate last tab
|
|
155
|
-
this.activateTab(tabs[tabs.length - 1], true);
|
|
156
|
-
break;
|
|
157
|
-
case keys.home:
|
|
158
|
-
event.preventDefault();
|
|
159
|
-
// Activate first tab
|
|
160
|
-
this.activateTab(tabs[0], true);
|
|
161
|
-
break;
|
|
162
|
-
// Up and down are in keydown
|
|
163
|
-
// because we need to prevent page scroll >:)
|
|
164
|
-
case keys.up:
|
|
165
|
-
case keys.down:
|
|
166
|
-
if (this.focusTimeoutCleared) {
|
|
167
|
-
this.determineOrientation(event);
|
|
168
|
-
}
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
keyupEventListener(event) {
|
|
173
|
-
const key = event.keyCode;
|
|
174
|
-
switch (key) {
|
|
175
|
-
case keys.left:
|
|
176
|
-
case keys.right:
|
|
177
|
-
event.preventDefault();
|
|
178
|
-
if (this.focusTimeoutCleared) {
|
|
179
|
-
this.determineOrientation(event);
|
|
180
|
-
}
|
|
181
|
-
break;
|
|
182
|
-
}
|
|
183
|
-
event.stopPropagation();
|
|
184
|
-
event.stopImmediatePropagation();
|
|
185
|
-
}
|
|
186
|
-
determineOrientation(event) {
|
|
187
|
-
const leftButton = this.el.querySelectorAll('.hy-tab-scroll__left')[0];
|
|
188
|
-
const rightButton = this.el.querySelectorAll('.hy-tab-scroll__right')[0];
|
|
189
|
-
const tabList = this.tabList;
|
|
190
|
-
this.checkScrollHidden(tabList, leftButton, rightButton);
|
|
191
|
-
const key = event.keyCode;
|
|
192
|
-
const vertical = tabList.getAttribute('aria-orientation') == 'vertical';
|
|
193
|
-
let proceed = false;
|
|
194
|
-
if (vertical) {
|
|
195
|
-
if (key === keys.up || key === keys.down) {
|
|
196
|
-
event.preventDefault();
|
|
197
|
-
proceed = true;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
if (key === keys.left || key === keys.right) {
|
|
202
|
-
proceed = true;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
if (proceed) {
|
|
206
|
-
this.switchTabOnArrowPress(event);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
switchTabOnArrowPress(event) {
|
|
210
|
-
const pressed = event.keyCode;
|
|
211
|
-
if (direction[pressed]) {
|
|
212
|
-
const target = event.target;
|
|
213
|
-
const tabs = this.tabButtons;
|
|
214
|
-
for (let i = 0; i < tabs.length; i++) {
|
|
215
|
-
if (tabs[i].id === target.id) {
|
|
216
|
-
if (i > 0) {
|
|
217
|
-
if (direction[pressed] === -1) {
|
|
218
|
-
tabs[i - 1].focus();
|
|
219
|
-
this.focusEventHandler(tabs[i - 1]);
|
|
220
|
-
break;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
if (i < tabs.length - 1) {
|
|
224
|
-
if (direction[pressed] === 1) {
|
|
225
|
-
tabs[i + 1].focus();
|
|
226
|
-
this.focusEventHandler(tabs[i + 1]);
|
|
227
|
-
break;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// Activates any given tab panel
|
|
235
|
-
activateTab(tab, setFocus) {
|
|
236
|
-
setFocus = setFocus || true;
|
|
237
|
-
// Deactivate all other tabs
|
|
238
|
-
this.deactivateTabs(this.tabButtons);
|
|
239
|
-
// Remove tabindex attribute
|
|
240
|
-
tab.removeAttribute('tabindex');
|
|
241
|
-
tab.setAttribute('aria-selected', 'true');
|
|
242
|
-
const controls = tab.getAttribute('aria-controls');
|
|
243
|
-
this.el.querySelector(`#${controls}`).removeAttribute('hidden');
|
|
244
|
-
if (setFocus) {
|
|
245
|
-
tab.focus();
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
// Deactivate all tabs and tab panels
|
|
249
|
-
deactivateTabs(tabs) {
|
|
250
|
-
for (let t = 0; t < tabs.length; t++) {
|
|
251
|
-
tabs[t].setAttribute('tabindex', '-1');
|
|
252
|
-
tabs[t].setAttribute('aria-selected', 'false');
|
|
253
|
-
tabs[t].removeEventListener('focus', this.focusEventHandler);
|
|
254
|
-
}
|
|
255
|
-
const panels = this.tabPanelsState[0];
|
|
256
|
-
for (let p = 0; p < panels.length; p++) {
|
|
257
|
-
panels[p].setAttribute('hidden', 'hidden');
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
focusEventHandler(tab) {
|
|
261
|
-
const target = tab;
|
|
262
|
-
this.focusTimeoutCleared = false;
|
|
263
|
-
focusTimeout = window.setTimeout(() => {
|
|
264
|
-
window.clearTimeout(focusTimeout);
|
|
265
|
-
this.focusTimeoutCleared = true;
|
|
266
|
-
const focused = document.activeElement;
|
|
267
|
-
if (target === focused) {
|
|
268
|
-
this.activateTab(target, false);
|
|
269
|
-
}
|
|
270
|
-
}, 250);
|
|
271
|
-
}
|
|
272
|
-
render() {
|
|
273
|
-
const classComponentAttributes = ['hy-tabs__container', `hy-tabs__container__${this.headerstyle}`].join(' ');
|
|
274
|
-
const id = this.tabId.toLowerCase().replace(/\W/g, '-');
|
|
275
|
-
if (window.location.hash) {
|
|
276
|
-
const tabHash = window.location.hash.substring(1);
|
|
277
|
-
const isUrlHashed = this.tabButtonTitles.some((tab) => tab['id'] === tabHash);
|
|
278
|
-
if (isUrlHashed) {
|
|
279
|
-
const hashElement = document.getElementById(tabHash);
|
|
280
|
-
if (hashElement) {
|
|
281
|
-
this.activateTab(hashElement, true);
|
|
282
|
-
const hashElementRect = hashElement.getBoundingClientRect();
|
|
283
|
-
window.scrollTo({ top: window.scrollY + hashElementRect.top - 200, behavior: 'smooth' });
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
return [
|
|
288
|
-
h("hy-box", { pt: "1.25, 1.25, 1.5, 2.5" }),
|
|
289
|
-
h("div", { id: id, class: classComponentAttributes }, h("div", { class: "hy-tablist-container" }, h("button", { tabindex: "-1", class: "hy-tab-scroll hy-tab-scroll__left is-hidden", "aria-hidden": "true" }, h("span", null, h("hy-icon", { icon: 'hy-icon-caret-left', size: 16 }))), h("div", { role: "tablist", "aria-label": this.tabListLabel }, this.tabButtonTitles &&
|
|
290
|
-
this.tabButtonTitles.map((item) => {
|
|
291
|
-
const title = Object.values(item)[0];
|
|
292
|
-
const id = title.toLowerCase().replace(/\W/g, '-');
|
|
293
|
-
const titleAsId = title.toLowerCase().replace(/\W/g, '-');
|
|
294
|
-
const tabItemHref = '#' + titleAsId;
|
|
295
|
-
return (h("a", { href: tabItemHref, tabindex: "-1" }, h("button", { "aria-selected": "false", "aria-controls": `${id}-tab`, class: this.headerstyle, role: "tab", id: id }, h("span", null, title))));
|
|
296
|
-
})), h("button", { tabindex: "-1", class: "hy-tab-scroll hy-tab-scroll__right", "aria-hidden": "true" }, h("span", null, h("hy-icon", { icon: 'hy-icon-caret-right', size: 16 })))), h("slot", null)),
|
|
297
|
-
h("hy-box", { mb: "1.75, 1.75, 2, 2.5" }),
|
|
298
|
-
];
|
|
299
|
-
}
|
|
300
|
-
get el() { return getElement(this); }
|
|
301
|
-
};
|
|
302
|
-
HyTabs.style = hyTabsCss;
|
|
303
|
-
|
|
304
|
-
export { HyTabs as hy_tabs };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as i,h as t,g as n}from"./p-bb24c6b5.js";import{M as a}from"./p-e20f6203.js";import{j as r}from"./p-fd1edbd5.js";const o=class{constructor(t){e(this,t),this.menuContainerToggled=i(this,"menuContainerToggled",7),this.isGroup=!1,this.isDemo=!1,this.menuIsOpen=!0,this.menuType=null}async removeBreadcrumb(e){let i=await r(this.breadcrumbs),t=i.map((function(e){return e.bid})).indexOf(e.detail.bid);i.length=t;for(let e=t,i=this.breadcrumbs.length;e<i;e++)this.menuContainerToggled.emit({triggerItem:this.breadcrumbs[e].bid,triggerType:"remove"});this.breadcrumbs=[],this.breadcrumbs=i,0===t&&(this.breadcrumbs=[],this.el.querySelectorAll(".hy-menu-level-container--mobile").forEach((e=>{e.classList.contains("hy-menu-level-container--level-0")||this.menuContainerToggled.emit({triggerItem:e.getAttribute("trigger-item"),triggerType:"remove"})})))}addBreadcrumb(e){this.breadcrumbs=[{label:e.detail.label,bid:e.detail.bid,url:e.detail.url}]}componentWillLoad(){this.breadcrumbs=[]}componentWillUpdate(){this.el.children[0].setAttribute("menu-type",this.menuType),this.el.children[0].setAttribute("menu-button-submenu-expand",this.menuButtonSubmenuExpand)}componentWillRender(){this.dataMenuDonate&&(this.donateLink=JSON.parse(this.dataMenuDonate)),this.isDemo&&Array.from(this.el.children).forEach((e=>{e.setAttribute("is-demo","true")}))}render(){if(null!==this.menuType)switch(this.menuType){case a.desktop:return t("div",{class:"hy-wrapper"},t("nav",{role:"navigation",class:{"hy-menu-wrapper--desktop":!0,"is-open":this.menuIsOpen}},t("div",{class:"hy-menu hy-menu--desktop"},t("slot",null))));case a.mobile:return t("nav",{"data-is-group":this.isGroup,role:"navigation",class:"hy-mobile-menu"},t("section",{class:"hy-mobile-menu__header"},t("div",{id:"menu-bc-container",class:{"hy-mobile-menu__breadcrumbs":!0,"is-empty":0===this.breadcrumbs.length}},t("hy-menu-language",{"is-mobile":!0,"data-menu-language":this.dataMenuLanguage}),this.breadcrumbs.length?[this.breadcrumbs.map((e=>t("hy-menu-mobile-breadcrumb",{"label-back":this.menuButtonBreadcrumbReturn,"label-front-page":this.labelFrontPage,label:e.label,bid:e.bid})))]:t("hy-menu-mobile-breadcrumb",{"label-back":this.menuButtonBreadcrumbReturn,"label-front-page":this.menuButtonBreadcrumbHome,label:this.menuButtonBreadcrumbHome,"is-first":!0,"logo-url":this.logoUrl})),t("button",{class:"hy-mobile-menu__menu-close-button","aria-label":"Close menu",disabled:!0,"aria-hidden":"true"},t("span",null,"Close"),t("hy-icon",{icon:"hy-icon-remove",size:16}))),t("section",{class:"hy-mobile-menu__menu-container"},t("div",{"aria-hidden":`${!this.menuIsOpen}`,class:{"hy-menu":!0,"hy-menu--mobile":!0,"is-open":this.menuIsOpen,"is-demo":this.isDemo}},t("slot",null))),!this.isGroup&&t("div",{class:"hy-mobile-menu__donate"},this.donateLink?this.donateLink.map((e=>t("a",{href:e.url},t("hy-icon",{icon:"hy-icon-heart-support",fill:"currentColor",size:16}),e.label))):""))}}get el(){return n(this)}};o.style=":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{margin:0;padding:0}.hy-mobile-menu__header{display:grid;grid-template-columns:1fr auto;padding:12px 16px;gap:16px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.hy-mobile-menu__menu-close-button{font-size:1rem;line-height:18px;font-weight:700;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;border:none;color:var(--brand-main);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--main-font-family);letter-spacing:-0.3px;padding:16px;margin-left:auto;margin-right:-16px;pointer-events:none;visibility:hidden}.hy-mobile-menu__menu-close-button:hover{cursor:pointer}.hy-mobile-menu__menu-close-button hy-icon{margin-left:8px}.hy-mobile-menu__menu-close-button hy-icon svg{fill:var(--brand-main)}.hy-menu-wrapper--mobile{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;justify-items:stretch;left:0;position:absolute;right:0;top:0;z-index:99}.hy-menu-wrapper--mobile.is-open{z-index:101}.hy-menu-wrapper--desktop{padding:0}.hy-menu-wrapper--sidenav{display:none}.hy-menu-wrapper--sidenav.is-demo{display:block}@media (min-width: 30rem){.hy-menu-wrapper--sidenav{display:block}}.hy-mobile-menu__menu-container{min-height:calc(100vh - 126px);overflow-x:hidden;overflow-y:visible}.hy-menu--mobile{-webkit-overflow-scrolling:touch;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:0.45s;transition:0.45s;width:100%;z-index:100}@media (min-width: 75.0625rem){.hy-menu--mobile:not(.is-demo){min-height:0;-webkit-transform:translateX(0);transform:translateX(0);visibility:visible}}.hy-menu--mobile.is-open{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:-webkit-transform 0.3s cubic-bezier(0, 0, 0.3, 1);transition:-webkit-transform 0.3s cubic-bezier(0, 0, 0.3, 1);transition:transform 0.3s cubic-bezier(0, 0, 0.3, 1);transition:transform 0.3s cubic-bezier(0, 0, 0.3, 1), -webkit-transform 0.3s cubic-bezier(0, 0, 0.3, 1)}.hy-menu--mobile.is-open::after{opacity:1;visibility:visible}.hy-menu-breadcrumb-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.hy-menu__logo-container{display:inline-block;padding:16px;z-index:100}@media (min-width: 30rem){.hy-menu__logo-container{padding:16px 28px}}.hy-mobile-menu__donate{background-color:var(--grayscale-white);bottom:0;-webkit-box-shadow:rgba(14, 104, 139, 0.2) 0px -20px 20px -20px;box-shadow:rgba(14, 104, 139, 0.2) 0px -20px 20px -20px;position:sticky;z-index:102}.hy-mobile-menu__donate a{font-size:1rem;line-height:16px;font-weight:600;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-white);color:var(--grayscale-black);display:block;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--main-font-family);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;letter-spacing:-0.4px;padding:20px 0 16px;text-align:center;text-decoration:none}.hy-mobile-menu__donate a:focus{outline:solid 2px var(--additional-yellow)}.hy-mobile-menu__donate a svg{margin-right:5px}.hy-menu__breadcrumbs{display:block;position:relative}.hy-menu__breadcrumbs.is-empty{min-height:35px}";export{o as hy_menu}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e,g as a}from"./p-bb24c6b5.js";let i,r,o,n={37:-1,38:-1,39:1,40:1};const s=class{constructor(e){t(this,e),this.tabListLabel="",this.focusTimeoutCleared=!0,this.headerstyle="common"}componentWillLoad(){const t=this.el.querySelectorAll("hy-tabs-item");t&&(this.tabButtonTitles=Array.from(t).map((t=>({title:t.getAttribute("tab-title"),id:t.getAttribute("tab-title").toLowerCase().replace(/\W/g,"-")}))))}componentDidLoad(){let t=this.el.closest(".hy-main");t&&(t.classList.contains("with-sidebar")||(this.headerstyle="large"));const e=this.el.querySelector(".hy-tabs__container");if(e){this.generateArrays(e);const t=this.el.querySelectorAll(".hy-tab-scroll__left")[0],a=this.el.querySelectorAll(".hy-tab-scroll__right")[0],r=this.tabList;this.checkScrollHidden(r,t,a),r.addEventListener("scroll",(()=>{o=setTimeout((()=>{window.clearTimeout(o),this.checkScrollHidden(r,t,a)}),250)}),!1),r.offSetWidth<=document.body.scrollWidth&&(t.classList.add("is-hidden"),a.classList.add("is-hidden"));const n=250;a.addEventListener("click",(e=>{e.preventDefault(),a.classList.add("is-disabled"),r.scrollBy({top:0,left:+n,behavior:"smooth"}),i=window.setTimeout((()=>{window.clearTimeout(i),this.checkScrollHidden(r,t,a),a.classList.remove("is-disabled")}),250)})),t.addEventListener("click",(e=>{e.preventDefault(),t.classList.add("is-disabled"),r.scrollBy({top:0,left:-n,behavior:"smooth"}),i=window.setTimeout((()=>{window.clearTimeout(i),this.checkScrollHidden(r,t,a),t.classList.remove("is-disabled")}),250)}))}}generateArrays(t){this.tabList=t.querySelectorAll('[role="tablist"]')[0],this.tabButtons=t.querySelectorAll('[role="tab"]'),this.tabPanelsState=[t.querySelectorAll('[role="tabpanel"]')],this.tabButtons.length>0&&(this.addListeners(this.tabButtons,1),this.activateTab(this.tabButtons[0],!0))}addListeners(t,e){if(t.length>1)for(let a=0;a<t.length;++a)t[e].addEventListener("click",this.clickEventListener),t[e].addEventListener("keydown",this.keydownEventListener),t[e].index=e}checkScrollHidden(t,e,a){0===t.scrollLeft?e.classList.add("is-hidden"):e.classList.remove("is-hidden"),t.scrollLeft+t.clientWidth>=t.scrollWidth-1?a.classList.add("is-hidden"):a.classList.remove("is-hidden")}clickEventListener(t){if(t){const e=t.target,a=this.tabButtonTitles;a&&(a.forEach((t=>{Object.values(t)[1]===e.id&&this.activateTab(e,!0)})),t.stopPropagation(),t.stopImmediatePropagation())}}keydownEventListener(t){const e=this.tabButtonTitles;switch(t.keyCode){case 35:t.preventDefault(),this.activateTab(e[e.length-1],!0);break;case 36:t.preventDefault(),this.activateTab(e[0],!0);break;case 38:case 40:this.focusTimeoutCleared&&this.determineOrientation(t)}}keyupEventListener(t){switch(t.keyCode){case 37:case 39:t.preventDefault(),this.focusTimeoutCleared&&this.determineOrientation(t)}t.stopPropagation(),t.stopImmediatePropagation()}determineOrientation(t){const e=this.el.querySelectorAll(".hy-tab-scroll__left")[0],a=this.el.querySelectorAll(".hy-tab-scroll__right")[0],i=this.tabList;this.checkScrollHidden(i,e,a);const r=t.keyCode;let o=!1;"vertical"==i.getAttribute("aria-orientation")?38!==r&&40!==r||(t.preventDefault(),o=!0):37!==r&&39!==r||(o=!0),o&&this.switchTabOnArrowPress(t)}switchTabOnArrowPress(t){const e=t.keyCode;if(n[e]){const a=t.target,i=this.tabButtons;for(let t=0;t<i.length;t++)if(i[t].id===a.id){if(t>0&&-1===n[e]){i[t-1].focus(),this.focusEventHandler(i[t-1]);break}if(t<i.length-1&&1===n[e]){i[t+1].focus(),this.focusEventHandler(i[t+1]);break}}}}activateTab(t,e){e=e||!0,this.deactivateTabs(this.tabButtons),t.removeAttribute("tabindex"),t.setAttribute("aria-selected","true");const a=t.getAttribute("aria-controls");this.el.querySelector(`#${a}`).removeAttribute("hidden"),e&&t.focus()}deactivateTabs(t){for(let e=0;e<t.length;e++)t[e].setAttribute("tabindex","-1"),t[e].setAttribute("aria-selected","false"),t[e].removeEventListener("focus",this.focusEventHandler);const e=this.tabPanelsState[0];for(let t=0;t<e.length;t++)e[t].setAttribute("hidden","hidden")}focusEventHandler(t){const e=t;this.focusTimeoutCleared=!1,r=window.setTimeout((()=>{window.clearTimeout(r),this.focusTimeoutCleared=!0;const t=document.activeElement;e===t&&this.activateTab(e,!1)}),250)}render(){const t=["hy-tabs__container",`hy-tabs__container__${this.headerstyle}`].join(" "),a=this.tabId.toLowerCase().replace(/\W/g,"-");if(window.location.hash){const t=window.location.hash.substring(1);if(this.tabButtonTitles.some((e=>e.id===t))){const e=document.getElementById(t);if(e){this.activateTab(e,!0);const t=e.getBoundingClientRect();window.scrollTo({top:window.scrollY+t.top-200,behavior:"smooth"})}}}return[e("hy-box",{pt:"1.25, 1.25, 1.5, 2.5"}),e("div",{id:a,class:t},e("div",{class:"hy-tablist-container"},e("button",{tabindex:"-1",class:"hy-tab-scroll hy-tab-scroll__left is-hidden","aria-hidden":"true"},e("span",null,e("hy-icon",{icon:"hy-icon-caret-left",size:16}))),e("div",{role:"tablist","aria-label":this.tabListLabel},this.tabButtonTitles&&this.tabButtonTitles.map((t=>{const a=Object.values(t)[0],i=a.toLowerCase().replace(/\W/g,"-"),r=a.toLowerCase().replace(/\W/g,"-");return e("a",{href:"#"+r,tabindex:"-1"},e("button",{"aria-selected":"false","aria-controls":`${i}-tab`,class:this.headerstyle,role:"tab",id:i},e("span",null,a)))}))),e("button",{tabindex:"-1",class:"hy-tab-scroll hy-tab-scroll__right","aria-hidden":"true"},e("span",null,e("hy-icon",{icon:"hy-icon-caret-right",size:16})))),e("slot",null)),e("hy-box",{mb:"1.75, 1.75, 2, 2.5"})]}get el(){return a(this)}};s.style=':root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}.hy-tabs__container .hy-tablist-container{border-bottom:1px solid var(--grayscale-tabs-border);position:relative}.hy-tabs__container .hy-tab-scroll{background-color:rgba(255, 255, 255, 0.8);border:0;height:100%;margin:0;padding:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:4}.hy-tabs__container .hy-tab-scroll.is-hidden{display:none;visibility:hidden}.hy-tabs__container .hy-tab-scroll.is-disabled{background-color:var(--grayscale-medium)}.hy-tabs__container .hy-tab-scroll.is-disabled:hover{cursor:none}.hy-tabs__container .hy-tab-scroll:focus,.hy-tabs__container .hy-tab-scroll:hover{outline:none;cursor:pointer}.hy-tabs__container .hy-tab-scroll span{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-black);border-radius:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:32px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:32px}.hy-tabs__container .hy-tab-scroll span svg{fill:var(--grayscale-white);height:16px;width:16px}.hy-tabs__container .hy-tab-scroll__left{left:0;padding-right:8px}.hy-tabs__container .hy-tab-scroll__left svg{-webkit-transform:translateX(-1px);transform:translateX(-1px)}.hy-tabs__container .hy-tab-scroll__right{padding-left:8px;right:0}.hy-tabs__container .hy-tab-scroll__right svg{-webkit-transform:translateX(1px);transform:translateX(1px)}.hy-tabs__container [role=tablist]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0 0 -0.1em;overflow:scroll;position:relative;scrollbar-width:none;white-space:nowrap}.hy-tabs__container [role=tablist]::-webkit-scrollbar{display:none}.hy-tabs__container [role=tablist] a{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:47.56%;text-decoration:none;-ms-flex-negative:0;flex-shrink:0}.hy-tabs__container [role=tablist] a:not(:first-of-type){margin-left:6px}@media (min-width: 30rem){.hy-tabs__container [role=tablist] a{max-width:35.37%}}@media (min-width: 60rem){.hy-tabs__container [role=tablist] a{max-width:23.13%}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tablist] a{max-width:23.03%}}.hy-tabs__container [role=tab]{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background-color:transparent;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:6px;padding:0}.hy-tabs__container [role=tab]>span{font-size:0.875rem;line-height:14px;font-weight:700;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-background-box);border:0;color:var(--link-blue);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--main-font-family);-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;letter-spacing:-0.5px;padding:8px 8px 7px;pointer-events:none;position:relative;text-align:left;white-space:normal;word-break:break-word;overflow-wrap:break-word;overflow-wrap:break-word}@media (min-width: 30rem){.hy-tabs__container [role=tab]>span{font-size:1rem;line-height:18px;padding:16px 12px 10px}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab]>span{font-size:1.125rem;line-height:20px;letter-spacing:-0.6px;padding:16px 16px 14px}}@supports (overflow-wrap: anywhere){.hy-tabs__container [role=tab]>span{overflow-wrap:anywhere}}@supports (overflow-wrap: anywhere){.hy-tabs__container [role=tab]>span{overflow-wrap:anywhere}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab].large{margin:0 12px 0 0}}.hy-tabs__container [role=tab][aria-selected=true]{border-bottom-width:0;border:1px solid var(--grayscale-dark);margin-bottom:0;z-index:3}.hy-tabs__container [role=tab][aria-selected=true]>span{background-color:var(--grayscale-white);color:var(--grayscale-black);padding-bottom:13px}@media (min-width: 30rem){.hy-tabs__container [role=tab][aria-selected=true]>span{padding-bottom:16px}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab][aria-selected=true]>span{padding-bottom:20px}}.hy-tabs__container [role=tab][aria-selected=true]>span:before{background-color:var(--grayscale-white);bottom:0;content:"";height:4px;left:0;position:absolute;right:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.hy-tabs__container [role=tab][aria-selected=true]>span:after{background-color:var(--grayscale-black);bottom:0;content:"";height:4px;left:8px;position:absolute;right:8px}.hy-tabs__container [role=tab]:hover{border-radius:0;color:inherit;cursor:pointer;text-decoration:none}.hy-tabs__container [role=tab]:hover span{background-color:var(--hover-gray);color:var(--brand-main-active)}.hy-tabs__container [role=tabpanel]{border:1px solid var(--grayscale-dark);padding:28px 12px;position:relative;z-index:2}@media (min-width: 30rem){.hy-tabs__container [role=tabpanel]{padding:38px 15px}}@media (min-width: 60rem){.hy-tabs__container [role=tabpanel]{padding:40px 20px}}.hy-tabs__container [role=tabpanel]:focus{outline:0}';export{s as hy_tabs}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as n,g as i}from"./p-bb24c6b5.js";import{j as a}from"./p-fd1edbd5.js";import{R as o}from"./p-a82d4779.js";let s={enter:"Enter",tab:"Tab",space:"Space"};const l=class{constructor(n){e(this,n),this.menuDesktopToggled=t(this,"menuDesktopToggled",7),this.isGroup=!1,this.isDropdown=!1,this.firstLevelLinksList=[],this.menuLinkItems=[],this.hasToolbar=!1,this.isDesktopMenuOpen=!1,this.currenOpenMenuId=0,this.isNewMenuIdOnHover=!1,this._headerBorderOffset=0,this._hoverTimer=null,this._fadeOutTimer=null,this._mouseEnter=null,this._mouseLeave=null}async componentWillLoad(){this._dataDesktopLinks=await a(this.dataDesktopLinks)}removeBackdropShadow(e){e<1200&&this.showBackdropShadow()}showBackdropShadow(e="close",t=0){let n=this.el.closest(".hy-site-header");if(!n)return;let i=n.children[0];if(i&&!this.isDropdown)if("open"===e){const e=window.outerHeight;i.style.height=`${e}px`,i.style.top=`${t}px`,i.style.position="absolute",i.classList.add("is-active")}else i.removeAttribute("style"),i.classList.remove("is-active")}showPanel(e){this.menuDesktopToggled.emit(),clearTimeout(this._hoverTimer),clearTimeout(this._fadeOutTimer),this.isDesktopMenuOpen=!0;const t=this.el.shadowRoot.querySelectorAll(".hy-desktop-menu__button"),n=this.el.shadowRoot.querySelectorAll(".hy-desktop-menu__panel"),i=this.el.shadowRoot.querySelector(`.hy-desktop-menu__button[link-id="${e}"]`),a=i.nextElementSibling;t.forEach((e=>{e.setAttribute("aria-expanded","false")})),n.forEach((e=>{e.setAttribute("aria-hidden","true"),e.style.transition="none",e.style.opacity="0"})),i.setAttribute("aria-expanded","true"),a.style.opacity="1",this.hasToolbar&&a.classList.add("has-toolbar"),a.setAttribute("aria-hidden","false");let o=window.pageYOffset;const s=document.body.classList,l=document.querySelector("hy-site-header").shadowRoot.querySelector("header");let r=l.offsetHeight+this._headerBorderOffset,d=l.offsetTop,p=r+d,h=a.getBoundingClientRect(),m=r+d+h.height,c=m-79;if(this.isDropdown||window.addEventListener("scroll",(()=>{o=window.pageYOffset,0===o&&(a.style.top=`${p}px`),l.classList.contains("hy-site-header--sticky-active")&&o>0&&s.contains("toolbar-horizontal")&&(a.style.top=`${r}px`,this.isDesktopMenuOpen&&this.showBackdropShadow("open",c))})),this.isDropdown||(l.classList.contains("hy-site-header--sticky-active")&&o>0&&s.contains("toolbar-horizontal")?(a.style.top=`${r}px`,this.isDesktopMenuOpen&&this.showBackdropShadow("open",c)):(a.style.top=`${p}px`,this.showBackdropShadow("open",m))),this.isDropdown){let e=window.outerWidth;const t=a.offsetWidth;e-i.getBoundingClientRect().left<t&&(a.style.left="auto",a.style.right="-17px"),window.addEventListener("resize",(()=>{e=window.outerWidth,e-i.getBoundingClientRect().left<t?(a.style.left="auto",a.style.right="-17px"):(a.style.left="-17px",a.style.right="auto")}))}}closePanel(e=!1){this.isDesktopMenuOpen=!1,this.isNewMenuIdOnHover=!1,this.currenOpenMenuId=0,this.showBackdropShadow(),this.clearPanelItemsStatus(e),clearTimeout(this._hoverTimer)}clearPanelItemsStatus(e=!1){const t=this.el.shadowRoot.querySelectorAll(".hy-desktop-menu__button"),n=this.el.shadowRoot.querySelectorAll(".hy-desktop-menu__panel");t.forEach((e=>{e.setAttribute("aria-expanded","false")})),e?(n.forEach((e=>{e.style.opacity="0",e.style.transition="opacity 1s"})),this._fadeOutTimer=window.requestAnimationFrame((()=>{n.forEach((e=>{e.setAttribute("aria-hidden","true")}))}))):n.forEach((e=>{e.setAttribute("aria-hidden","true"),e.style.opacity="0",e.style.transition="none"}))}handleDesktopMenuClose(e){this.closePanel(!0),e.stopPropagation()}menuLanguageToggled(){this.closePanel(!0)}universityMainMenuPanelToggled(){this.closePanel(!0)}searchPanelToggled(){this.closePanel(!0)}headerScrollUp(){this.closePanel(!1)}handleDesktopMenuEnter(e,t){this.isDesktopMenuOpen&&null==this._mouseEnter&&(clearTimeout(this._mouseLeave),this._mouseLeave=null,this._mouseEnter=setTimeout((()=>{this.isNewMenuIdOnHover=!0,clearTimeout(this._fadeOutTimer);const n=this.el.shadowRoot.querySelector(`.hy-desktop-menu__button[link-id="${t}"]`);null!==n&&n.focus(),this.currenOpenMenuId=t,this.showPanel(t),e.stopPropagation()}),500))}handleDesktopMenuLeave(){clearTimeout(this._mouseEnter),this._mouseEnter=null}handleWindowClick(e){0!=e.detail&&this.isDesktopMenuOpen&&(this.handleDesktopMenuClose(e),e.stopPropagation())}handleDesktopMenuClick(e,t){0!=e.detail&&(e.stopPropagation(),this.isDesktopMenuOpen?this.isDesktopMenuOpen&&this.handleDesktopMenuClose(e):(this.currenOpenMenuId=t,this.showPanel(t)),this.isNewMenuIdOnHover&&(this.isNewMenuIdOnHover=!1))}handleKeyDown(e,t){e.stopPropagation(),[s.enter,s.space].includes(e.code)&&(this.isDesktopMenuOpen?this.handleDesktopMenuClose(e):(this.currenOpenMenuId=t,this.showPanel(t)))}componentDidLoad(){this.ro=new o((e=>{for(const t of e)this.removeBackdropShadow(t.contentRect.width)})),this.ro.observe(document.body),document.querySelectorAll("#toolbar-administration")[0]&&(this.hasToolbar=!0);const e=this._dataDesktopLinks;let t=[];e&&e.map((({menuLinkId:e,shortcuts:i,items:a,url:o,description:s,toggleOff:l,label:r,labelExtra:d,isExternal:p,isActive:h,shortcutsTitle:m,closeButtonTitle:c})=>{let u=p?"_blank":"_self";t.push(l?n("li",{onMouseEnter:e=>this.handleDesktopMenuClose(e),class:"hy-desktop-menu__item "+("true"===h?"is-active-trail":"")},n("a",{"aria-current":r,href:o,target:u,class:"hy-desktop-menu__button","menu-link-id":e},n("span",{class:"label"},d||r))):n("li",{class:"hy-desktop-menu__item"},n("button",{tabindex:"0",type:"button",class:"hy-desktop-menu__button "+("true"===h?"is-active-trail":""),"link-id":e,onClick:t=>this.handleDesktopMenuClick(t,e),onKeyDown:t=>this.handleKeyDown(t,e),onMouseEnter:t=>this.handleDesktopMenuEnter(t,e),onMouseLeave:()=>this.handleDesktopMenuLeave(),"aria-expanded":"false"},n("span",null,r),n("hy-icon",{icon:"hy-icon-caret-down",size:32})),n("section",{class:"hy-desktop-menu__panel "+(this.isDropdown?"is-dropdown":""),"aria-hidden":"true"},n("div",{class:"hy-desktop-menu__panel-container"},n("div",{class:"hy-desktop-menu__panel-menu"},n("div",{class:"hy-desktop-menu__panel-header"},n("hy-icon",{icon:"hy-icon-arrow-right",size:24}),n("a",{"aria-current":r,href:o,target:u,"menu-link-id":e},d||r),s&&!this.isDropdown&&n("p",null,s)),n("div",{class:"hy-desktop-menu__panel-content "+(i.length>0?"has-shortcuts":"")},n("ul",{class:"hy-desktop-menu__panel-links hy-desktop-menu__panel-links--menu","menu-link-id":e},a.map((({label:e,url:t,isExternal:i})=>n("li",{class:"hy-desktop-menu__panel-links-item"},n("a",{class:"hy-desktop-menu__panel-link",href:t,target:i?"_blank":"_self"},n("hy-icon",{icon:"hy-icon-caret-right",size:10}),n("span",null,e,i&&n("hy-icon",{icon:"hy-icon-arrow-right",size:12}))))))),i.length>0&&n("div",{class:"hy-desktop-menu__panel-shortcuts"},n("h2",null,m),n("ul",{class:"hy-desktop-menu__panel-links hy-desktop-menu__panel-links--shortcuts"},i.map((({shortcut_title:e,shortcut_url:t,shortcut_is_external:i,shortcut_aria_label:a})=>n("li",{class:"hy-desktop-menu__panel-links-item"},n("a",{"aria-current":a,href:t,class:"hy-desktop-menu__panel-link",target:i?"_blank":"_self","aria-label":a},n("hy-icon",{icon:"hy-icon-caret-right",size:10}),n("span",null,e,i&&n("hy-icon",{icon:"hy-icon-arrow-right",size:12})))))))))),!this.isDropdown&&n("button",{onClick:e=>this.handleDesktopMenuClose(e),class:{"hy-desktop-menu__panel-close-button":!0},"aria-label":"Close menu"},n("span",null,c),n("hy-icon",{icon:"hy-icon-remove",size:16}))))))})),this.menuLinkItems=t}render(){return n("nav",{role:"navigation",class:`hy-site-header__menu-desktop ${this.isGroup?"is-group":""} ${this.isDropdown?"is-dropdown":""}`},n("ul",{class:"hy-desktop-menu "+(this.isDesktopMenuOpen?"is-panel-open":"")},this.menuLinkItems))}get el(){return i(this)}};l.style=':root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0}.hy-site-header__menu-desktop{height:100%;margin:0 32px}.hy-site-header__menu-desktop.is-group{margin:0}.hy-desktop-menu{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;list-style:none;margin:0;padding:0;width:100%}.is-dropdown .hy-desktop-menu__item{position:relative}.hy-desktop-menu__button{font-size:0.875rem;line-height:16px;font-weight:700;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;border:none;color:var(--brand-main-nearly-black);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;font-family:var(--main-font-family);height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;letter-spacing:-0.7px;padding:26px 10px;text-transform:uppercase;width:-webkit-min-content;width:-moz-min-content;width:min-content;text-decoration:none}.is-group .hy-desktop-menu__button{width:auto}@media (min-width: 1601px){.hy-desktop-menu__button{font-size:1rem;line-height:16px;width:auto}}.hy-desktop-menu__button:hover{cursor:pointer}.hy-desktop-menu__button:hover span{color:var(--brand-main)}.hy-desktop-menu__button:hover svg{fill:var(--brand-main)}.hy-desktop-menu__button:focus{outline:solid 2px var(--additional-yellow);outline-offset:2px;color:var(--link-blue)}.hy-desktop-menu__button span{pointer-events:none}.hy-desktop-menu__button hy-icon{pointer-events:none;margin-left:4px}.hy-desktop-menu__button hy-icon svg{height:10px;width:10px}.hy-desktop-menu__button[aria-expanded=true] hy-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.is-panel-open .hy-desktop-menu__button:not([aria-expanded=true]){-webkit-box-shadow:none;box-shadow:none}.is-panel-open .hy-desktop-menu__button:not([aria-expanded=true])::after,.is-panel-open .hy-desktop-menu__button:not([aria-expanded=true])::before{display:none}.hy-desktop-menu__button.is-active-trail,.hy-desktop-menu__button[aria-expanded=true]{-webkit-box-shadow:inset 0 -4px 0 0 var(--grayscale-black);box-shadow:inset 0 -4px 0 0 var(--grayscale-black);position:relative}.hy-desktop-menu__button.is-active-trail::after,.hy-desktop-menu__button.is-active-trail::before,.hy-desktop-menu__button[aria-expanded=true]::after,.hy-desktop-menu__button[aria-expanded=true]::before{background-color:var(--grayscale-white);content:"";height:5px;width:16px;position:absolute;bottom:-1px;z-index:1000}.hy-desktop-menu__button.is-active-trail::before,.hy-desktop-menu__button[aria-expanded=true]::before{left:-16px}.hy-desktop-menu__button.is-active-trail::after,.hy-desktop-menu__button[aria-expanded=true]::after{right:-16px}.hy-desktop-menu__panel{background-color:var(--grayscale-white);-webkit-transition:none;transition:none;position:absolute;top:0;z-index:100;display:-webkit-box;display:-ms-flexbox;display:flex}.hy-desktop-menu__panel[aria-hidden=true]{display:none;opacity:0}.hy-desktop-menu__panel:not(.is-dropdown){left:0;right:0;width:100%}.hy-desktop-menu__panel.is-dropdown{border:1px solid var(--grayscale-black);left:-17px;top:100%}.hy-desktop-menu__panel-container{margin:0 auto;padding:40px 24px;max-width:120.0625rem;width:100%;display:grid;grid-template-columns:1fr auto 1fr;justify-items:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.is-dropdown .hy-desktop-menu__panel-container{padding:24px 16px 40px}.hy-desktop-menu__panel-menu{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;grid-column-start:2}.hy-desktop-menu__panel-header{display:inline-grid;gap:8px 16px;grid-template-areas:"icon link" "icon description";grid-template-columns:auto;grid-template-rows:auto;margin-bottom:32px;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.is-dropdown .hy-desktop-menu__panel-header{margin-bottom:16px}.hy-desktop-menu__panel-header>hy-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-black);display:-webkit-box;display:-ms-flexbox;display:flex;grid-area:icon;height:40px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:40px}.hy-desktop-menu__panel-header>hy-icon svg{fill:var(--grayscale-white)}.hy-desktop-menu__panel-header a{font-size:1.5625rem;line-height:32px;font-weight:700;color:var(--brand-main);font-family:var(--main-font-family);grid-area:link;letter-spacing:-0.5px;margin-top:4px;text-decoration:none;width:-webkit-max-content;width:-moz-max-content;width:max-content}.hy-desktop-menu__panel-header a:hover{text-decoration:underline}.hy-desktop-menu__panel-header p{font-size:1.0625rem;line-height:26px;font-weight:400;color:var(--grayscale-black);font-family:var(--main-font-family);grid-area:description;margin:0;width:690px}.hy-desktop-menu__panel-content{padding-left:56px;display:inline-grid;grid-template-columns:400px}.hy-desktop-menu__panel-content.has-shortcuts{grid-template-columns:400px 496px}.is-dropdown .hy-desktop-menu__panel-content{grid-template-columns:310px}.hy-desktop-menu__panel-shortcuts{margin-left:48px;padding-left:48px;border-left:1px solid var(--grayscale-medium)}.hy-desktop-menu__panel-shortcuts>h2{font-size:1.125rem;line-height:24px;font-weight:700;color:var(--grayscale-black);font-family:var(--main-font-family);letter-spacing:-0.36px;margin:0 0 24px}.hy-desktop-menu__panel-links{list-style:none;margin:0;padding:0;display:inline-grid;gap:20px}.hy-desktop-menu__panel-link{font-size:1rem;line-height:24px;font-weight:600;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;color:var(--brand-main);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--main-font-family);letter-spacing:-0.5px;overflow:hidden;text-decoration:none}.hy-desktop-menu__panel-link:hover{text-decoration:underline}.hy-desktop-menu__panel-link hy-icon{margin-right:12px;margin-top:12px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.hy-desktop-menu__panel-link hy-icon svg{fill:var(--grayscale-black)}.hy-desktop-menu__panel-link span hy-icon{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important;margin-left:6px;margin-right:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.hy-desktop-menu__panel-link span hy-icon svg{fill:var(--brand-main)}.hy-desktop-menu__panel-close-button{font-size:1rem;line-height:18px;font-weight:700;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;border:none;color:var(--brand-main);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--main-font-family);letter-spacing:-0.3px;padding:16px;margin-left:auto;margin-right:-8px}.hy-desktop-menu__panel-close-button:hover{cursor:pointer}.hy-desktop-menu__panel-close-button hy-icon{margin-left:8px}.hy-desktop-menu__panel-close-button hy-icon svg{fill:var(--brand-main)}';export{l as hy_desktop_menu_links}
|