@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.
Files changed (92) hide show
  1. package/dist/app.js +71 -0
  2. package/dist/assets/js/Events.js +43 -77
  3. package/dist/assets/js/RequestError.js +16 -31
  4. package/dist/assets/js/anchorScroll.js +22 -15
  5. package/dist/assets/js/charCounter.js +100 -142
  6. package/dist/assets/js/className.js +19 -20
  7. package/dist/assets/js/conditional.js +96 -152
  8. package/dist/assets/js/debounce.js +15 -22
  9. package/dist/assets/js/el.js +108 -159
  10. package/dist/assets/js/getCookieByName.js +13 -11
  11. package/dist/assets/js/hasCookieConsent.js +30 -40
  12. package/dist/assets/js/htmlTextLength.js +12 -10
  13. package/dist/assets/js/iconToggle.js +16 -20
  14. package/dist/assets/js/nodeAdded.js +40 -53
  15. package/dist/assets/js/objToQuery.js +25 -41
  16. package/dist/assets/js/offset.js +29 -25
  17. package/dist/assets/js/ot.js +10 -13
  18. package/dist/assets/js/parallax.js +23 -23
  19. package/dist/assets/js/queryToObj.js +16 -22
  20. package/dist/assets/js/readSpeakerHandling.js +26 -28
  21. package/dist/assets/js/request.js +43 -52
  22. package/dist/assets/js/responsivePosition.js +46 -74
  23. package/dist/assets/js/stringToNode.js +11 -10
  24. package/dist/assets/js/template.js +15 -21
  25. package/dist/assets/js/textToggle.js +19 -24
  26. package/dist/assets/js/track.js +14 -12
  27. package/dist/assets/js/uid.js +10 -6
  28. package/dist/assets/js/utmGenerator.js +27 -33
  29. package/dist/assets/js/validationMessage.js +18 -25
  30. package/dist/assets/js/youtube.js +134 -170
  31. package/dist/atoms/button/Button.js +42 -55
  32. package/dist/atoms/file/file.js +25 -29
  33. package/dist/atoms/file/filePreview.js +27 -31
  34. package/dist/atoms/grid-toggle/grid-toggle.js +6 -9
  35. package/dist/atoms/height-limiter/height-limiter.js +37 -50
  36. package/dist/atoms/password-toggle/password-toggle.js +9 -11
  37. package/dist/atoms/range/range.js +32 -39
  38. package/dist/atoms/textarea/rich-text.js +223 -205
  39. package/dist/atoms/tooltip/tooltip.js +13 -17
  40. package/dist/components.js +42 -77
  41. package/dist/focusTrap.js +66 -77
  42. package/dist/molecules/alert/alert.js +15 -20
  43. package/dist/molecules/context-menu/context-menu.js +11 -16
  44. package/dist/molecules/continue-video-guide/continue-video-guide.js +90 -101
  45. package/dist/molecules/cookie-disclaimer/cookie-disclaimer.js +24 -33
  46. package/dist/molecules/form/Form.js +242 -352
  47. package/dist/molecules/form/index.js +15 -14
  48. package/dist/molecules/glider/glider-course.js +62 -75
  49. package/dist/molecules/glider/glider-hero.js +88 -101
  50. package/dist/molecules/glider/glider.js +49 -45
  51. package/dist/molecules/modal/modal.js +256 -325
  52. package/dist/molecules/multi-select/multi-select.js +198 -304
  53. package/dist/molecules/natural-language-form/natural-language-form.js +32 -46
  54. package/dist/molecules/overview-navigation/overview-navigation.js +90 -141
  55. package/dist/molecules/share/share.js +15 -20
  56. package/dist/molecules/system-error/system-error.js +6 -9
  57. package/dist/organisms/accordion/accordion.js +44 -50
  58. package/dist/organisms/footer/footer.js +1 -1
  59. package/dist/organisms/haveibeenpwned/haveibeenpwned.js +17 -16
  60. package/dist/organisms/mailchimp/mailchimp.js +72 -89
  61. package/dist/organisms/map-box/map-box.js +3 -4
  62. package/dist/organisms/mega-menu/mega-menu.js +177 -212
  63. package/dist/organisms/podcast/podcast.js +192 -215
  64. package/dist/organisms/schedule/schedule-filter.js +9 -15
  65. package/dist/organisms/tabs/tabs.js +194 -253
  66. package/dist/organisms/timeline/openTimelineItem.js +38 -51
  67. package/dist/organisms/timeline/timeline.js +111 -128
  68. package/dist/organisms/video-guide/VideoGuidePlayback.js +210 -286
  69. package/dist/organisms/video-guide/VideoGuideSubtitles.js +57 -80
  70. package/dist/organisms/video-guide/VideoGuideTimeline.js +74 -108
  71. package/dist/organisms/video-guide/getCurrentCueIndex.js +11 -9
  72. package/dist/organisms/video-guide/video-guide.js +66 -103
  73. package/dist/utilities/tab-highlighting/tab-highlighting.js +14 -22
  74. package/dist/vendor/toggle/a11y.toggle-switcher.js +10 -16
  75. package/package.json +78 -99
  76. package/src/app.js +5 -5
  77. package/src/assets/js/anchorScroll.js +1 -1
  78. package/src/assets/js/offset.js +1 -1
  79. package/src/atoms/button/Button.js +1 -1
  80. package/src/atoms/icon/richtext-ordered-list.svg +1 -1
  81. package/src/atoms/icon/sprite.svg +6 -5
  82. package/src/molecules/glider/glider-course.js +0 -2
  83. package/src/molecules/glider/glider.js +2 -2
  84. package/src/organisms/accordion/accordion.js +1 -2
  85. package/src/organisms/timeline/timeline.js +2 -3
  86. package/dist/atoms/timeline/anchorScroll.js +0 -13
  87. package/dist/atoms/toggle-high-contrast/toggle-high-contrast.js +0 -12
  88. package/dist/molecules/glider/glider-single.js +0 -68
  89. package/dist/molecules/modal/modal-graph.js +0 -40
  90. package/dist/molecules/timeline-navigation/timeline-navigation.js +0 -34
  91. /package/src/atoms/icon/{heading-3.svg → richtext-heading-3.svg} +0 -0
  92. /package/src/molecules/alert/{_alert.scss → alert.scss} +0 -0
@@ -1,80 +1,52 @@
1
- 'use strict';
2
-
3
- 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"); } }; }();
4
-
5
- var _throttle = require('lodash/throttle');
6
-
7
- var _throttle2 = _interopRequireDefault(_throttle);
8
-
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
-
11
- var breakpoints = {
12
- xs: 0,
13
- smxs: 469,
14
- sm: 576,
15
- md: 769,
16
- lg: 961,
17
- xl: 1200,
18
- xxl: 1400
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
- var positions = element.getAttribute('data-responsive').split(',');
25
- var position = null;
26
-
27
- positions.forEach(function (item) {
28
- var _item$split = item.split(':'),
29
- _item$split2 = _slicedToArray(_item$split, 2),
30
- bp = _item$split2[0],
31
- id = _item$split2[1];
32
-
33
- if (matchedBreakpoints.includes(bp)) {
34
- position = id;
35
- }
36
- });
37
-
38
- if (position === null) {
39
- return;
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
- var elements = document.querySelectorAll('[data-responsive]');
53
-
54
- if (!elements.length) {
55
- return;
56
- }
57
-
58
- var width = window.innerWidth;
59
-
60
- matchedBreakpoints = Object.entries(breakpoints).filter(function (_ref) {
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.default = function (html) {
14
- return document.createRange().createContextualFragment(html);
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
- 'use strict';
2
-
1
+ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
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 = function (templateString) {
10
- return function (substitutions) {
11
- var html = templateString;
12
-
13
- Object.entries(substitutions).forEach(function (_ref) {
14
- var _ref2 = _slicedToArray(_ref, 2),
15
- key = _ref2[0],
16
- value = _ref2[1];
17
-
18
- html = html.replace(new RegExp('{' + key + '}', 'g'), value);
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
- e.preventDefault();
6
-
7
- var el = e.target;
8
- var target = el.dataset.toggleTarget ? document.getElementById(el.dataset.toggleTarget) : el;
9
- var i = parseInt(el.dataset.iteration || 0, 10);
10
- var options = el.dataset.toggleText.split('|');
11
- var nextIteration = i + 1 === options.length ? 0 : i + 1;
12
- var ariaPressed = el.getAttribute('aria-pressed');
13
-
14
- el.dataset.iteration = nextIteration;
15
- target.innerText = options[nextIteration];
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
- document.addEventListener('click', function (e) {
23
- if (e.target.closest('[data-toggle-text]')) {
24
- toggleTextOnClick(e);
25
- return false;
26
- }
27
- });
17
+ document.addEventListener('click', (e)=>{
18
+ if (e.target.closest('[data-toggle-text]')) {
19
+ toggleTextOnClick(e);
20
+ return false;
21
+ }
22
+ });
@@ -1,15 +1,17 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
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
- if (window._mtm) {
10
-
11
- window._mtm.push(data);
12
- } else {
13
- console.log('Matomo not loaded', data);
14
- }
15
- }
12
+ if (window._mtm) {
13
+ window._mtm.push(data);
14
+ } else {
15
+ console.log('Matomo not loaded', data);
16
+ }
17
+ }
@@ -1,9 +1,13 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
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
- return (performance.now().toString(36) + Math.random().toString(36)).replace(/\./g, '');
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
- var radioButtons = document.querySelectorAll('[data-toggle="radio"]');
5
-
2
+ "use strict";
3
+ const radioButtons = document.querySelectorAll('[data-toggle="radio"]');
6
4
  // Hide all target containers on page load
7
- radioButtons.forEach(function (radio) {
8
- var targetId = radio.getAttribute('data-target');
9
- var targetContainer = document.getElementById(targetId);
10
- if (targetContainer) {
11
- targetContainer.setAttribute('aria-hidden', 'true');
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
- // Hide all target containers
18
- radioButtons.forEach(function (radio) {
19
- var targetId = radio.getAttribute('data-target');
20
- var targetContainer = document.getElementById(targetId);
21
- if (targetContainer) {
22
- targetContainer.setAttribute('aria-hidden', 'true');
23
- }
24
-
25
- // Update aria-expanded for all radio buttons
26
- radio.setAttribute('aria-expanded', radio.checked ? 'true' : 'false');
27
- });
28
-
29
- // Show the selected target container
30
- var selectedTargetId = event.target.getAttribute('data-target');
31
- var selectedTargetContainer = document.getElementById(selectedTargetId);
32
- if (selectedTargetContainer) {
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(function (radio) {
39
- radio.addEventListener('change', toggleVisibility);
40
- });
32
+ radioButtons.forEach((radio)=>{
33
+ radio.addEventListener('change', toggleVisibility);
34
+ });
@@ -1,28 +1,21 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
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
- var _message$split = message.split(':'),
12
- _message$split2 = _slicedToArray(_message$split, 2),
13
- rule = _message$split2[0],
14
- data = _message$split2[1];
15
-
16
- if (!('Iis_Lang' in window)) {
17
- return message;
18
- }
19
-
20
- var validation = window.Iis_Lang.validation;
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
+ }