@internetstiftelsen/styleguide 5.0.19 → 5.1.1
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/app.js +71 -0
- package/dist/assets/js/Events.js +43 -77
- package/dist/assets/js/RequestError.js +16 -31
- package/dist/assets/js/anchorScroll.js +22 -15
- package/dist/assets/js/charCounter.js +100 -142
- package/dist/assets/js/className.js +19 -20
- package/dist/assets/js/conditional.js +96 -152
- package/dist/assets/js/debounce.js +15 -22
- package/dist/assets/js/el.js +108 -159
- package/dist/assets/js/getCookieByName.js +13 -11
- package/dist/assets/js/hasCookieConsent.js +30 -40
- package/dist/assets/js/htmlTextLength.js +12 -10
- package/dist/assets/js/iconToggle.js +16 -20
- package/dist/assets/js/nodeAdded.js +40 -53
- package/dist/assets/js/objToQuery.js +25 -41
- package/dist/assets/js/offset.js +29 -25
- package/dist/assets/js/ot.js +10 -13
- package/dist/assets/js/parallax.js +23 -23
- package/dist/assets/js/queryToObj.js +16 -22
- package/dist/assets/js/readSpeakerHandling.js +26 -28
- package/dist/assets/js/request.js +43 -52
- package/dist/assets/js/responsivePosition.js +46 -74
- package/dist/assets/js/stringToNode.js +11 -10
- package/dist/assets/js/template.js +15 -21
- package/dist/assets/js/textToggle.js +19 -24
- package/dist/assets/js/track.js +14 -12
- package/dist/assets/js/uid.js +10 -6
- package/dist/assets/js/utmGenerator.js +27 -33
- package/dist/assets/js/validationMessage.js +18 -25
- package/dist/assets/js/youtube.js +134 -170
- package/dist/atoms/button/Button.js +42 -55
- package/dist/atoms/file/file.js +25 -29
- package/dist/atoms/file/filePreview.js +27 -31
- package/dist/atoms/grid-toggle/grid-toggle.js +6 -9
- package/dist/atoms/height-limiter/height-limiter.js +37 -50
- package/dist/atoms/password-toggle/password-toggle.js +9 -11
- package/dist/atoms/range/range.js +32 -39
- package/dist/atoms/textarea/rich-text.js +221 -251
- package/dist/atoms/tooltip/tooltip.js +13 -17
- package/dist/components.js +42 -77
- package/dist/focusTrap.js +66 -77
- package/dist/molecules/alert/alert.js +15 -20
- package/dist/molecules/context-menu/context-menu.js +11 -16
- package/dist/molecules/continue-video-guide/continue-video-guide.js +90 -101
- package/dist/molecules/cookie-disclaimer/cookie-disclaimer.js +24 -33
- package/dist/molecules/form/Form.js +242 -352
- package/dist/molecules/form/index.js +15 -14
- package/dist/molecules/glider/glider-course.js +62 -75
- package/dist/molecules/glider/glider-hero.js +88 -101
- package/dist/molecules/glider/glider.js +49 -45
- package/dist/molecules/modal/modal.js +256 -325
- package/dist/molecules/multi-select/multi-select.js +198 -304
- package/dist/molecules/natural-language-form/natural-language-form.js +32 -46
- package/dist/molecules/overview-navigation/overview-navigation.js +90 -141
- package/dist/molecules/share/share.js +15 -20
- package/dist/molecules/system-error/system-error.js +6 -9
- package/dist/organisms/accordion/accordion.js +44 -50
- package/dist/organisms/footer/footer.js +1 -1
- package/dist/organisms/haveibeenpwned/haveibeenpwned.js +17 -16
- package/dist/organisms/mailchimp/mailchimp.js +72 -89
- package/dist/organisms/map-box/map-box.js +3 -4
- package/dist/organisms/mega-menu/mega-menu.js +177 -212
- package/dist/organisms/podcast/podcast.js +192 -215
- package/dist/organisms/schedule/schedule-filter.js +9 -15
- package/dist/organisms/tabs/tabs.js +194 -253
- package/dist/organisms/timeline/openTimelineItem.js +38 -51
- package/dist/organisms/timeline/timeline.js +111 -128
- package/dist/organisms/video-guide/VideoGuidePlayback.js +210 -286
- package/dist/organisms/video-guide/VideoGuideSubtitles.js +57 -80
- package/dist/organisms/video-guide/VideoGuideTimeline.js +74 -108
- package/dist/organisms/video-guide/getCurrentCueIndex.js +11 -9
- package/dist/organisms/video-guide/video-guide.js +66 -103
- package/dist/utilities/tab-highlighting/tab-highlighting.js +14 -22
- package/dist/vendor/toggle/a11y.toggle-switcher.js +10 -16
- package/package.json +78 -99
- package/src/app.js +5 -5
- package/src/assets/js/anchorScroll.js +1 -1
- package/src/assets/js/offset.js +1 -1
- package/src/atoms/button/Button.js +1 -1
- package/src/atoms/icon/richtext-ordered-list.svg +1 -1
- package/src/atoms/icon/sprite.svg +6 -5
- package/src/molecules/glider/glider-course.js +0 -2
- package/src/molecules/glider/glider.js +2 -2
- package/src/organisms/accordion/accordion.js +1 -2
- package/src/organisms/timeline/timeline.js +2 -3
- package/dist/atoms/timeline/anchorScroll.js +0 -13
- package/dist/atoms/toggle-high-contrast/toggle-high-contrast.js +0 -12
- package/dist/molecules/glider/glider-single.js +0 -68
- package/dist/molecules/modal/modal-graph.js +0 -40
- package/dist/molecules/timeline-navigation/timeline-navigation.js +0 -34
- /package/src/atoms/icon/{heading-3.svg → richtext-heading-3.svg} +0 -0
- /package/src/molecules/alert/{_alert.scss → alert.scss} +0 -0
|
@@ -1,142 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
require("../../assets/js/parallax");
|
|
6
|
+
const _offset = /*#__PURE__*/ _interop_require_default(require("../../assets/js/offset"));
|
|
7
|
+
function _interop_require_default(obj) {
|
|
8
|
+
return obj && obj.__esModule ? obj : {
|
|
9
|
+
default: obj
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
const { offsetTop, offsetBottom, offsetLeft } = _offset.default;
|
|
13
|
+
const dataLayer = window._mtm || [];
|
|
14
|
+
const progressBar = document.querySelector('.js-progress-bar');
|
|
15
|
+
const decadeContainer = document.querySelector('.js-decade-container');
|
|
16
|
+
const decadeSections = document.querySelectorAll('.js-timeline-decade');
|
|
17
|
+
const firstDecade = document.querySelector('h2.godzilla');
|
|
18
|
+
const decades = document.querySelectorAll('h2.godzilla');
|
|
19
|
+
let triggerPoint = 0;
|
|
18
20
|
// Create decade links in timeline
|
|
19
21
|
function buildTimelineNavigation() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
22
|
+
[].forEach.call(decades, (decade)=>{
|
|
23
|
+
const decadeLink = document.createElement('a');
|
|
24
|
+
const { textContent } = decade;
|
|
25
|
+
decadeLink.setAttribute('href', `#${textContent}`);
|
|
26
|
+
decadeLink.innerText = textContent;
|
|
27
|
+
decadeContainer.appendChild(decadeLink);
|
|
28
|
+
});
|
|
28
29
|
}
|
|
29
|
-
|
|
30
30
|
/* Set trigger point (vertical position in viewport)
|
|
31
|
-
for when a new decade should start being "active" */
|
|
32
|
-
|
|
33
|
-
triggerPoint = window.innerHeight * 0.5;
|
|
31
|
+
for when a new decade should start being "active" */ function setTriggerPoint() {
|
|
32
|
+
triggerPoint = window.innerHeight * 0.5;
|
|
34
33
|
}
|
|
35
|
-
|
|
36
34
|
// Animate progress bar when user is scolling within the timeline
|
|
37
35
|
function animateProgressBar() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
var endSectionY = offsetBottom(startSection);
|
|
79
|
-
var sectionLength = endSectionY - startSectionY;
|
|
80
|
-
var scrollY = currentPosition - startSectionY;
|
|
81
|
-
var sectionProgress = scrollY / sectionLength;
|
|
82
|
-
progressBarWidth = startPointX + startPointWidth * sectionProgress;
|
|
83
|
-
|
|
84
|
-
// Use result to animate progressbar
|
|
85
|
-
progressBar.style.width = progressBarWidth + 'px';
|
|
36
|
+
let currentSection = 0;
|
|
37
|
+
let sectionIndex = 0;
|
|
38
|
+
const currentPosition = document.documentElement.scrollTop + triggerPoint;
|
|
39
|
+
const decadeLinks = document.querySelectorAll('.js-decade-container a');
|
|
40
|
+
let progressBarWidth = 0;
|
|
41
|
+
// Check if we are above the first section
|
|
42
|
+
if (currentPosition < offsetTop(firstDecade)) {
|
|
43
|
+
currentSection = 0;
|
|
44
|
+
progressBarWidth = 0;
|
|
45
|
+
progressBar.style.width = '0';
|
|
46
|
+
[].forEach.call(decadeLinks, (decadeLink)=>{
|
|
47
|
+
decadeLink.classList.remove('is-reading');
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
// Otherwise add 1 to sectionIndex while scrolling;
|
|
51
|
+
[].forEach.call(decades, (decade)=>{
|
|
52
|
+
const sectionTop = offsetTop(decade);
|
|
53
|
+
if (currentPosition >= sectionTop) {
|
|
54
|
+
currentSection = sectionIndex;
|
|
55
|
+
[].forEach.call(decadeLinks, (decadeLink)=>{
|
|
56
|
+
decadeLink.classList.remove('is-reading');
|
|
57
|
+
});
|
|
58
|
+
decadeLinks[sectionIndex].classList.add('is-reading');
|
|
59
|
+
}
|
|
60
|
+
sectionIndex += 1;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Calculate speed of the progressBar width while scrolling based on section height
|
|
64
|
+
const startPoint = decadeLinks[currentSection];
|
|
65
|
+
const startPointX = offsetLeft(startPoint);
|
|
66
|
+
const startPointWidth = startPoint.offsetWidth;
|
|
67
|
+
const startSection = decadeSections[currentSection];
|
|
68
|
+
const startSectionY = offsetTop(startSection);
|
|
69
|
+
const endSectionY = offsetBottom(startSection);
|
|
70
|
+
const sectionLength = endSectionY - startSectionY;
|
|
71
|
+
const scrollY = currentPosition - startSectionY;
|
|
72
|
+
const sectionProgress = scrollY / sectionLength;
|
|
73
|
+
progressBarWidth = startPointX + startPointWidth * sectionProgress;
|
|
74
|
+
// Use result to animate progressbar
|
|
75
|
+
progressBar.style.width = `${progressBarWidth}px`;
|
|
86
76
|
}
|
|
87
|
-
|
|
88
77
|
function isInViewport(element) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return top < window.scrollY + window.innerHeight && top + height / 4 > window.scrollY;
|
|
78
|
+
let top = element.offsetTop;
|
|
79
|
+
const height = element.offsetHeight;
|
|
80
|
+
while(element.offsetParent){
|
|
81
|
+
// eslint-disable-next-line no-param-reassign
|
|
82
|
+
element = element.offsetParent;
|
|
83
|
+
top += element.offsetTop;
|
|
84
|
+
}
|
|
85
|
+
return top < window.scrollY + window.innerHeight && top + height / 4 > window.scrollY;
|
|
99
86
|
}
|
|
100
|
-
|
|
101
87
|
function decadeIsVisible() {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
});
|
|
88
|
+
[].forEach.call(decadeSections, (decadeSection)=>{
|
|
89
|
+
// Don't trigger Decade Visible too fast to prevent dataLayer.push
|
|
90
|
+
// to trigger while user is scrolled past a decade.
|
|
91
|
+
const timeOut = 1000;
|
|
92
|
+
const viewTimeout = setTimeout(()=>{
|
|
93
|
+
if (isInViewport(decadeSection) && !decadeSection.classList.contains('is-in-view')) {
|
|
94
|
+
decadeSection.classList.add('is-in-view');
|
|
95
|
+
const decadeId = decadeSection.id;
|
|
96
|
+
dataLayer.push({
|
|
97
|
+
event: 'timeline',
|
|
98
|
+
eventInfo: {
|
|
99
|
+
category: 'timeline',
|
|
100
|
+
action: 'active_year',
|
|
101
|
+
label: decadeId
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
} else if (!isInViewport(decadeSection)) {
|
|
105
|
+
decadeSection.classList.remove('is-in-view');
|
|
106
|
+
clearTimeout(viewTimeout);
|
|
107
|
+
}
|
|
108
|
+
}, timeOut);
|
|
109
|
+
});
|
|
125
110
|
}
|
|
126
|
-
|
|
127
111
|
// Run functions on page load
|
|
128
112
|
if (progressBar) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
113
|
+
buildTimelineNavigation();
|
|
114
|
+
setTriggerPoint();
|
|
115
|
+
animateProgressBar();
|
|
116
|
+
// Re-run functions on window events
|
|
117
|
+
window.addEventListener('resize', ()=>{
|
|
118
|
+
setTriggerPoint();
|
|
119
|
+
animateProgressBar();
|
|
120
|
+
});
|
|
121
|
+
window.addEventListener('scroll', ()=>{
|
|
122
|
+
animateProgressBar();
|
|
123
|
+
decadeIsVisible();
|
|
124
|
+
});
|
|
125
|
+
}
|