@internetstiftelsen/styleguide 5.0.18 → 5.1.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/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 +223 -205
- 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,80 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _throttle = /*#__PURE__*/ _interop_require_default(require("lodash/throttle"));
|
|
6
|
+
function _interop_require_default(obj) {
|
|
7
|
+
return obj && obj.__esModule ? obj : {
|
|
8
|
+
default: obj
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
const breakpoints = {
|
|
12
|
+
xs: 0,
|
|
13
|
+
smxs: 469,
|
|
14
|
+
sm: 576,
|
|
15
|
+
md: 769,
|
|
16
|
+
lg: 961,
|
|
17
|
+
xl: 1200,
|
|
18
|
+
xxl: 1400
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
var matchedBreakpoints = [];
|
|
22
|
-
|
|
20
|
+
let matchedBreakpoints = [];
|
|
23
21
|
function repositionElement(element) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var newParent = document.getElementById(position);
|
|
43
|
-
|
|
44
|
-
if (!newParent || element.parentNode === newParent) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
newParent.appendChild(element);
|
|
22
|
+
const positions = element.getAttribute('data-responsive').split(',');
|
|
23
|
+
let position = null;
|
|
24
|
+
positions.forEach((item)=>{
|
|
25
|
+
const [bp, id] = item.split(':');
|
|
26
|
+
if (matchedBreakpoints.includes(bp)) {
|
|
27
|
+
position = id;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
if (position === null) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const newParent = document.getElementById(position);
|
|
34
|
+
if (!newParent || element.parentNode === newParent) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
newParent.appendChild(element);
|
|
49
38
|
}
|
|
50
|
-
|
|
51
39
|
function dispatch() {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
62
|
-
min = _ref2[1];
|
|
63
|
-
|
|
64
|
-
return width >= min;
|
|
65
|
-
}).map(function (_ref3) {
|
|
66
|
-
var _ref4 = _slicedToArray(_ref3, 1),
|
|
67
|
-
bp = _ref4[0];
|
|
68
|
-
|
|
69
|
-
return bp;
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
if (matchedBreakpoints.length) {
|
|
73
|
-
[].forEach.call(elements, repositionElement);
|
|
74
|
-
}
|
|
40
|
+
const elements = document.querySelectorAll('[data-responsive]');
|
|
41
|
+
if (!elements.length) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const width = window.innerWidth;
|
|
45
|
+
matchedBreakpoints = Object.entries(breakpoints).filter(([, min])=>width >= min).map(([bp])=>bp);
|
|
46
|
+
if (matchedBreakpoints.length) {
|
|
47
|
+
[].forEach.call(elements, repositionElement);
|
|
48
|
+
}
|
|
75
49
|
}
|
|
76
|
-
|
|
77
|
-
var onResize = (0, _throttle2.default)(dispatch, 100);
|
|
78
|
-
|
|
50
|
+
const onResize = (0, _throttle.default)(dispatch, 100);
|
|
79
51
|
window.addEventListener('resize', onResize);
|
|
80
|
-
dispatch();
|
|
52
|
+
dispatch();
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
1
|
/**
|
|
8
2
|
* Creates a document fragment from a string of html content
|
|
9
3
|
*
|
|
10
4
|
* @param html
|
|
11
5
|
* @returns {DocumentFragment}
|
|
12
|
-
*/
|
|
13
|
-
exports
|
|
14
|
-
|
|
15
|
-
};
|
|
6
|
+
*/ "use strict";
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(exports, "default", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return _default;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const _default = (html)=>document.createRange().createContextualFragment(html);
|
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
return html;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _default = (templateString)=>(substitutions)=>{
|
|
12
|
+
let html = templateString;
|
|
13
|
+
Object.entries(substitutions).forEach(([key, value])=>{
|
|
14
|
+
html = html.replace(new RegExp(`{${key}}`, 'g'), value);
|
|
15
|
+
});
|
|
16
|
+
return html;
|
|
17
|
+
};
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
// Usage: data-toggle-target="toggleButton" data-toggle-text="First|Second|Third"
|
|
2
|
+
"use strict";
|
|
4
3
|
function toggleTextOnClick(e) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (ariaPressed) {
|
|
18
|
-
el.setAttribute('aria-pressed', ariaPressed === 'true' ? 'false' : 'true');
|
|
19
|
-
}
|
|
4
|
+
e.preventDefault();
|
|
5
|
+
const el = e.target;
|
|
6
|
+
const target = el.dataset.toggleTarget ? document.getElementById(el.dataset.toggleTarget) : el;
|
|
7
|
+
const i = parseInt(el.dataset.iteration || 0, 10);
|
|
8
|
+
const options = el.dataset.toggleText.split('|');
|
|
9
|
+
const nextIteration = i + 1 === options.length ? 0 : i + 1;
|
|
10
|
+
const ariaPressed = el.getAttribute('aria-pressed');
|
|
11
|
+
el.dataset.iteration = nextIteration;
|
|
12
|
+
target.innerText = options[nextIteration];
|
|
13
|
+
if (ariaPressed) {
|
|
14
|
+
el.setAttribute('aria-pressed', ariaPressed === 'true' ? 'false' : 'true');
|
|
15
|
+
}
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
17
|
+
document.addEventListener('click', (e)=>{
|
|
18
|
+
if (e.target.closest('[data-toggle-text]')) {
|
|
19
|
+
toggleTextOnClick(e);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
});
|
package/dist/assets/js/track.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return track;
|
|
9
|
+
}
|
|
5
10
|
});
|
|
6
|
-
exports.default = track;
|
|
7
11
|
function track(data) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
}
|
|
12
|
+
if (window._mtm) {
|
|
13
|
+
window._mtm.push(data);
|
|
14
|
+
} else {
|
|
15
|
+
console.log('Matomo not loaded', data);
|
|
16
|
+
}
|
|
17
|
+
}
|
package/dist/assets/js/uid.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return uid;
|
|
9
|
+
}
|
|
5
10
|
});
|
|
6
|
-
exports.default = uid;
|
|
7
11
|
function uid() {
|
|
8
|
-
|
|
9
|
-
}
|
|
12
|
+
return (performance.now().toString(36) + Math.random().toString(36)).replace(/\./g, '');
|
|
13
|
+
}
|
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
// Show/hide target container when Radiobutton is selected
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
"use strict";
|
|
3
|
+
const radioButtons = document.querySelectorAll('[data-toggle="radio"]');
|
|
6
4
|
// Hide all target containers on page load
|
|
7
|
-
radioButtons.forEach(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
radioButtons.forEach((radio)=>{
|
|
6
|
+
const targetId = radio.getAttribute('data-target');
|
|
7
|
+
const targetContainer = document.getElementById(targetId);
|
|
8
|
+
if (targetContainer) {
|
|
9
|
+
targetContainer.setAttribute('aria-hidden', 'true');
|
|
10
|
+
}
|
|
13
11
|
});
|
|
14
|
-
|
|
15
12
|
// Function to toggle visibility
|
|
16
13
|
function toggleVisibility(event) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
selectedTargetContainer.setAttribute('aria-hidden', 'false');
|
|
34
|
-
}
|
|
14
|
+
// Hide all target containers
|
|
15
|
+
radioButtons.forEach((radio)=>{
|
|
16
|
+
const targetId = radio.getAttribute('data-target');
|
|
17
|
+
const targetContainer = document.getElementById(targetId);
|
|
18
|
+
if (targetContainer) {
|
|
19
|
+
targetContainer.setAttribute('aria-hidden', 'true');
|
|
20
|
+
}
|
|
21
|
+
// Update aria-expanded for all radio buttons
|
|
22
|
+
radio.setAttribute('aria-expanded', radio.checked ? 'true' : 'false');
|
|
23
|
+
});
|
|
24
|
+
// Show the selected target container
|
|
25
|
+
const selectedTargetId = event.target.getAttribute('data-target');
|
|
26
|
+
const selectedTargetContainer = document.getElementById(selectedTargetId);
|
|
27
|
+
if (selectedTargetContainer) {
|
|
28
|
+
selectedTargetContainer.setAttribute('aria-hidden', 'false');
|
|
29
|
+
}
|
|
35
30
|
}
|
|
36
|
-
|
|
37
31
|
// Add event listener to radio buttons
|
|
38
|
-
radioButtons.forEach(
|
|
39
|
-
|
|
40
|
-
});
|
|
32
|
+
radioButtons.forEach((radio)=>{
|
|
33
|
+
radio.addEventListener('change', toggleVisibility);
|
|
34
|
+
});
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return validationMessage;
|
|
9
|
+
}
|
|
5
10
|
});
|
|
6
|
-
|
|
7
|
-
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
8
|
-
|
|
9
|
-
exports.default = validationMessage;
|
|
10
11
|
function validationMessage(message) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (rule in validation) {
|
|
24
|
-
return validation[rule].replace(new RegExp(':' + rule, 'g'), data);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return message;
|
|
28
|
-
}
|
|
12
|
+
const [rule, data] = message.split(':');
|
|
13
|
+
if (!('Iis_Lang' in window)) {
|
|
14
|
+
return message;
|
|
15
|
+
}
|
|
16
|
+
const { validation } = window.Iis_Lang;
|
|
17
|
+
if (rule in validation) {
|
|
18
|
+
return validation[rule].replace(new RegExp(`:${rule}`, 'g'), data);
|
|
19
|
+
}
|
|
20
|
+
return message;
|
|
21
|
+
}
|