@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.
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 +221 -251
  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,142 +1,91 @@
1
- 'use strict';
2
-
3
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4
-
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
-
7
- var OverviewNavigation = function () {
8
- function OverviewNavigation(element) {
9
- var _this = this;
10
-
11
- _classCallCheck(this, OverviewNavigation);
12
-
13
- this.element = element;
14
- this.button = this.element.querySelector('.js-overview-navigation-button');
15
- this.isSmallScreen = false;
16
- this.isOutOfView = false;
17
- this.minimized = null;
18
-
19
- // a11y-toggle doesn't have a callback for when it's done initializing
20
- // so we have to wait for the next tick
21
- document.addEventListener('DOMContentLoaded', function () {
22
- setTimeout(function () {
23
- _this.attach();
24
- _this.onResize();
25
- _this.closeMenu();
26
- }, 0);
27
- });
28
- }
29
-
30
- _createClass(OverviewNavigation, [{
31
- key: 'attach',
32
- value: function attach() {
33
- window.addEventListener('resize', this.onResize.bind(this));
34
- window.addEventListener('scroll', this.onScroll.bind(this));
35
- }
36
- }, {
37
- key: 'update',
38
- value: function update() {
39
- if (this.isSmallScreen || this.isOutOfView) {
40
- this.minimize();
41
- } else {
42
- this.maximize();
43
- }
44
- }
45
- }, {
46
- key: 'onResize',
47
- value: function onResize() {
48
- this.isSmallScreen = window.innerWidth <= 961;
49
- this.update();
50
- }
51
- }, {
52
- key: 'onScroll',
53
- value: function onScroll() {
54
- var viewportOffset = this.element.getBoundingClientRect();
55
-
56
- if (viewportOffset.top < 0) {
57
- this.isOutOfView = true;
58
- } else if (window.scrollY === 0) {
59
- this.isOutOfView = false;
60
- }
61
-
62
- this.update();
63
- }
64
-
65
- // Close the overview menu when clicking any link inside it
66
-
67
- }, {
68
- key: 'closeMenu',
69
- value: function closeMenu() {
70
- var _this2 = this;
71
-
72
- var links = this.element.querySelectorAll('a');
73
-
74
- [].forEach.call(links, function (link) {
75
- link.addEventListener('click', function () {
76
- _this2.button.click();
77
- });
78
- });
79
- }
80
- }, {
81
- key: 'updateButtonPosition',
82
- value: function updateButtonPosition() {
83
- var elementOffset = this.element.getBoundingClientRect();
84
- var buttonRect = this.button.getBoundingClientRect();
85
-
86
- // Use right and bottom to place this.button at the top left corner of the element
87
- this.button.style.right = window.innerWidth - elementOffset.right + elementOffset.width - buttonRect.width + 'px';
88
- this.button.style.bottom = window.innerHeight - elementOffset.top - buttonRect.height + 'px';
89
- }
90
- }, {
91
- key: 'minimize',
92
- value: function minimize() {
93
- if (this.minimized === true) {
94
- return;
95
- }
96
-
97
- this.button.style.transition = 'none';
98
- this.updateButtonPosition();
99
-
100
- this.element.offsetHeight; // force reflow
101
- this.button.style.transition = 'right 0.25s ease-out, bottom 0.25s ease-out, opacity 0.25s ease-out';
102
-
103
- this.element.setAttribute('aria-hidden', 'true');
104
- this.element.classList.add('is-minimized');
105
-
106
- this.button.setAttribute('aria-expanded', 'false');
107
- this.button.classList.add('is-fixed');
108
- this.button.style.opacity = 1;
109
-
110
- this.minimized = true;
111
- }
112
- }, {
113
- key: 'maximize',
114
- value: function maximize() {
115
- if (this.minimized === false) {
116
- return;
117
- }
118
-
119
- this.element.setAttribute('aria-hidden', 'false');
120
- this.element.classList.remove('is-minimized');
121
-
122
- this.element.offsetHeight; // force reflow
123
-
124
- this.updateButtonPosition();
125
- this.button.setAttribute('aria-expanded', 'true');
126
- this.button.classList.remove('is-fixed');
127
- this.button.style.opacity = 0;
128
-
129
- this.minimized = false;
130
- }
131
- }]);
132
-
133
- return OverviewNavigation;
134
- }();
135
-
136
- var overviewNavigations = document.querySelectorAll('.js-overview-navigation');
137
-
1
+ "use strict";
2
+ class OverviewNavigation {
3
+ attach() {
4
+ window.addEventListener('resize', this.onResize.bind(this));
5
+ window.addEventListener('scroll', this.onScroll.bind(this));
6
+ }
7
+ update() {
8
+ if (this.isSmallScreen || this.isOutOfView) {
9
+ this.minimize();
10
+ } else {
11
+ this.maximize();
12
+ }
13
+ }
14
+ onResize() {
15
+ this.isSmallScreen = window.innerWidth <= 961;
16
+ this.update();
17
+ }
18
+ onScroll() {
19
+ const viewportOffset = this.element.getBoundingClientRect();
20
+ if (viewportOffset.top < 0) {
21
+ this.isOutOfView = true;
22
+ } else if (window.scrollY === 0) {
23
+ this.isOutOfView = false;
24
+ }
25
+ this.update();
26
+ }
27
+ // Close the overview menu when clicking any link inside it
28
+ closeMenu() {
29
+ const links = this.element.querySelectorAll('a');
30
+ [].forEach.call(links, (link)=>{
31
+ link.addEventListener('click', ()=>{
32
+ this.button.click();
33
+ });
34
+ });
35
+ }
36
+ updateButtonPosition() {
37
+ const elementOffset = this.element.getBoundingClientRect();
38
+ const buttonRect = this.button.getBoundingClientRect();
39
+ // Use right and bottom to place this.button at the top left corner of the element
40
+ this.button.style.right = `${window.innerWidth - elementOffset.right + elementOffset.width - buttonRect.width}px`;
41
+ this.button.style.bottom = `${window.innerHeight - elementOffset.top - buttonRect.height}px`;
42
+ }
43
+ minimize() {
44
+ if (this.minimized === true) {
45
+ return;
46
+ }
47
+ this.button.style.transition = 'none';
48
+ this.updateButtonPosition();
49
+ this.element.offsetHeight; // force reflow
50
+ this.button.style.transition = 'right 0.25s ease-out, bottom 0.25s ease-out, opacity 0.25s ease-out';
51
+ this.element.setAttribute('aria-hidden', 'true');
52
+ this.element.classList.add('is-minimized');
53
+ this.button.setAttribute('aria-expanded', 'false');
54
+ this.button.classList.add('is-fixed');
55
+ this.button.style.opacity = 1;
56
+ this.minimized = true;
57
+ }
58
+ maximize() {
59
+ if (this.minimized === false) {
60
+ return;
61
+ }
62
+ this.element.setAttribute('aria-hidden', 'false');
63
+ this.element.classList.remove('is-minimized');
64
+ this.element.offsetHeight; // force reflow
65
+ this.updateButtonPosition();
66
+ this.button.setAttribute('aria-expanded', 'true');
67
+ this.button.classList.remove('is-fixed');
68
+ this.button.style.opacity = 0;
69
+ this.minimized = false;
70
+ }
71
+ constructor(element){
72
+ this.element = element;
73
+ this.button = this.element.querySelector('.js-overview-navigation-button');
74
+ this.isSmallScreen = false;
75
+ this.isOutOfView = false;
76
+ this.minimized = null;
77
+ // a11y-toggle doesn't have a callback for when it's done initializing
78
+ // so we have to wait for the next tick
79
+ document.addEventListener('DOMContentLoaded', ()=>{
80
+ setTimeout(()=>{
81
+ this.attach();
82
+ this.onResize();
83
+ this.closeMenu();
84
+ }, 0);
85
+ });
86
+ }
87
+ }
88
+ const overviewNavigations = document.querySelectorAll('.js-overview-navigation');
138
89
  if (overviewNavigations) {
139
- [].forEach.call(overviewNavigations, function (overviewNavigation) {
140
- return new OverviewNavigation(overviewNavigation);
141
- });
142
- }
90
+ [].forEach.call(overviewNavigations, (overviewNavigation)=>new OverviewNavigation(overviewNavigation));
91
+ }
@@ -1,23 +1,18 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  function openPopup(e) {
4
- e.preventDefault();
5
-
6
- var width = 500;
7
- var height = 550;
8
- var left = window.innerWidth / 2 - width / 2;
9
- var top = window.innerHeight / 2 - height / 2;
10
- var url = this.href;
11
- var opts = '' + ('status=1' + ',width=') + width + ',height=' + height + ',top=' + top + ',left=' + left;
12
- window.open(url, 'socialMedia', opts);
13
-
14
- return false;
3
+ e.preventDefault();
4
+ const width = 500;
5
+ const height = 550;
6
+ const left = window.innerWidth / 2 - width / 2;
7
+ const top = window.innerHeight / 2 - height / 2;
8
+ const url = this.href;
9
+ const opts = `${'status=1' + ',width='}${width},height=${height},top=${top},left=${left}`;
10
+ window.open(url, 'socialMedia', opts);
11
+ return false;
15
12
  }
16
-
17
- var popupButtons = Array.prototype.slice.call(document.querySelectorAll('.js-share-popup'));
18
-
13
+ const popupButtons = Array.prototype.slice.call(document.querySelectorAll('.js-share-popup'));
19
14
  if (popupButtons) {
20
- popupButtons.forEach(function (popup) {
21
- popup.addEventListener('click', openPopup);
22
- });
23
- }
15
+ popupButtons.forEach((popup)=>{
16
+ popup.addEventListener('click', openPopup);
17
+ });
18
+ }
@@ -1,12 +1,9 @@
1
- 'use strict';
2
-
3
- var element = document.querySelector('.js-history');
4
-
1
+ "use strict";
2
+ const element = document.querySelector('.js-history');
5
3
  function goBack(e) {
6
- e.preventDefault();
7
- window.history.go(-1);
4
+ e.preventDefault();
5
+ window.history.go(-1);
8
6
  }
9
-
10
7
  if (element) {
11
- element.addEventListener('click', goBack);
12
- }
8
+ element.addEventListener('click', goBack);
9
+ }
@@ -1,56 +1,50 @@
1
- 'use strict';
2
-
3
- var _debounce = require('../../assets/js/debounce');
4
-
5
- var _debounce2 = _interopRequireDefault(_debounce);
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- require('van11y-accessible-accordion-aria');
10
-
11
- var className = 'o-accordion';
12
- var accordionElement = document.querySelector('.js-' + className);
13
- var oAccordion = null;
14
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _debounce = /*#__PURE__*/ _interop_require_default(require("../../assets/js/debounce"));
6
+ require("van11y-accessible-accordion-aria");
7
+ function _interop_require_default(obj) {
8
+ return obj && obj.__esModule ? obj : {
9
+ default: obj
10
+ };
11
+ }
12
+ const className = 'o-accordion';
13
+ const accordionElement = document.querySelector(`.js-${className}`);
14
+ let oAccordion = null;
15
15
  function attachAccordion() {
16
- if (!oAccordion) {
17
- var namespace = getComputedStyle(accordionElement, ':before').content.replace(/["']/g, '');
18
-
19
- oAccordion = window.van11yAccessibleAccordionAria({
20
- ACCORDION_PREFIX_IDS: className,
21
- ACCORDION_JS: 'js-' + className,
22
- ACCORDION_STYLE: '' + namespace + className,
23
- ACCORDION_TITLE_STYLE: '' + namespace + className + '__title',
24
- ACCORDION_HEADER_STYLE: '' + namespace + className + '__header',
25
- ACCORDION_PANEL_STYLE: '' + namespace + className + '__panel'
26
- });
27
- }
28
-
29
- oAccordion.attach();
16
+ if (!oAccordion) {
17
+ const namespace = getComputedStyle(accordionElement, ':before').content.replace(/["']/g, '');
18
+ oAccordion = window.van11yAccessibleAccordionAria({
19
+ ACCORDION_PREFIX_IDS: className,
20
+ ACCORDION_JS: `js-${className}`,
21
+ ACCORDION_STYLE: `${namespace}${className}`,
22
+ ACCORDION_TITLE_STYLE: `${namespace}${className}__title`,
23
+ ACCORDION_HEADER_STYLE: `${namespace}${className}__header`,
24
+ ACCORDION_PANEL_STYLE: `${namespace}${className}__panel`
25
+ });
26
+ }
27
+ oAccordion.attach();
30
28
  }
31
-
32
29
  if (accordionElement) {
33
- attachAccordion();
30
+ attachAccordion();
34
31
  }
35
-
36
- var checkElements = (0, _debounce2.default)(function () {
37
- var accordionElementFresh = document.querySelector('.js-' + className);
38
-
39
- if (accordionElementFresh) {
40
- attachAccordion();
41
- }
32
+ const checkElements = (0, _debounce.default)(()=>{
33
+ const accordionElementFresh = document.querySelector(`.js-${className}`);
34
+ if (accordionElementFresh) {
35
+ attachAccordion();
36
+ }
42
37
  }, 50);
43
-
44
- var observeHandler = function observeHandler(mutationsList) {
45
- mutationsList.forEach(function (mutation) {
46
- if (mutation.type !== 'childList') {
47
- return;
48
- }
49
-
50
- checkElements();
51
- });
38
+ const observeHandler = (mutationsList)=>{
39
+ mutationsList.forEach((mutation)=>{
40
+ if (mutation.type !== 'childList') {
41
+ return;
42
+ }
43
+ checkElements();
44
+ });
52
45
  };
53
-
54
- var observer = new MutationObserver(observeHandler);
55
-
56
- observer.observe(document.body, { childList: true, subtree: true });
46
+ const observer = new MutationObserver(observeHandler);
47
+ observer.observe(document.body, {
48
+ childList: true,
49
+ subtree: true
50
+ });
@@ -1 +1 @@
1
- "use strict";
1
+ "use strict";
@@ -1,17 +1,18 @@
1
- 'use strict';
2
-
3
- var _track = require('../../assets/js/track');
4
-
5
- var _track2 = _interopRequireDefault(_track);
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- var haveIBeenPwnedSubmit = document.querySelector('#o-search-result-submit');
10
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _track = /*#__PURE__*/ _interop_require_default(require("../../assets/js/track"));
6
+ function _interop_require_default(obj) {
7
+ return obj && obj.__esModule ? obj : {
8
+ default: obj
9
+ };
10
+ }
11
+ const haveIBeenPwnedSubmit = document.querySelector('#o-search-result-submit');
11
12
  if (haveIBeenPwnedSubmit) {
12
- haveIBeenPwnedSubmit.addEventListener('submit', function () {
13
- (0, _track2.default)({
14
- event: 'guided_tour'
15
- });
16
- });
17
- }
13
+ haveIBeenPwnedSubmit.addEventListener('submit', function() {
14
+ (0, _track.default)({
15
+ event: 'guided_tour'
16
+ });
17
+ });
18
+ }
@@ -1,110 +1,93 @@
1
- 'use strict';
2
-
3
- var _debounce = require('../../assets/js/debounce');
4
-
5
- var _debounce2 = _interopRequireDefault(_debounce);
6
-
7
- var _hasCookieConsent = require('../../assets/js/hasCookieConsent');
8
-
9
- var _hasCookieConsent2 = _interopRequireDefault(_hasCookieConsent);
10
-
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
-
13
- var consent = (0, _hasCookieConsent2.default)('C0003');
14
-
15
- var slidingForm = document.querySelector('[class*="--sliding"]');
16
- var staticForm = document.querySelector('[class*="--static"]');
17
- var closeButton = document.querySelector('[class*="--sliding"] .js-close-mailchimp-popup');
18
- var timeout = void 0;
19
- var timer = void 0;
20
- var throttle = 66; // Trigger event every 66ms
21
- var visibleClass = 'is-visible';
22
- var cookieName = 'internetstiftelsen-mailchimp-form-closed';
23
- var currentProtocol = document.location.protocol;
24
- var queryString = window.location.search;
25
- var urlParams = new URLSearchParams(queryString);
26
- var noForm = urlParams.get('noForm');
27
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _debounce = /*#__PURE__*/ _interop_require_default(require("../../assets/js/debounce"));
6
+ const _hasCookieConsent = /*#__PURE__*/ _interop_require_default(require("../../assets/js/hasCookieConsent"));
7
+ function _interop_require_default(obj) {
8
+ return obj && obj.__esModule ? obj : {
9
+ default: obj
10
+ };
11
+ }
12
+ let consent = (0, _hasCookieConsent.default)('C0003');
13
+ const slidingForm = document.querySelector('[class*="--sliding"]');
14
+ const staticForm = document.querySelector('[class*="--static"]');
15
+ const closeButton = document.querySelector('[class*="--sliding"] .js-close-mailchimp-popup');
16
+ let timeout;
17
+ let timer;
18
+ const throttle = 66; // Trigger event every 66ms
19
+ const visibleClass = 'is-visible';
20
+ const cookieName = 'internetstiftelsen-mailchimp-form-closed';
21
+ const currentProtocol = document.location.protocol;
22
+ const queryString = window.location.search;
23
+ const urlParams = new URLSearchParams(queryString);
24
+ const noForm = urlParams.get('noForm');
28
25
  // Set cookie
29
26
  function setCookie(name, value, days) {
30
- var d = new Date();
31
- d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);
32
-
33
- if (currentProtocol === 'https:') {
34
- document.cookie = name + '=' + value + ';path=/;SameSite=Strict;Secure;expires=' + d.toGMTString();
35
- } else {
36
- document.cookie = name + '=' + value + ';path=/;SameSite=Strict;expires=' + d.toGMTString();
37
- }
27
+ const d = new Date();
28
+ d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);
29
+ if (currentProtocol === 'https:') {
30
+ document.cookie = `${name}=${value};path=/;SameSite=Strict;Secure;expires=${d.toGMTString()}`;
31
+ } else {
32
+ document.cookie = `${name}=${value};path=/;SameSite=Strict;expires=${d.toGMTString()}`;
33
+ }
38
34
  }
39
-
40
35
  // Get cookie
41
36
  function getCookie(name) {
42
- var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
43
- return v ? v[2] : null;
37
+ const v = document.cookie.match(`(^|;) ?${name}=([^;]*)(;|$)`);
38
+ return v ? v[2] : null;
44
39
  }
45
-
46
40
  // User is sent from email campaign with URL parameter ?noForm=true,
47
41
  // set cookie and don't show slide-in form
48
42
  if (noForm) {
49
- setCookie(cookieName, 'YES', 7);
43
+ setCookie(cookieName, 'YES', 7);
50
44
  }
51
-
52
45
  if (slidingForm) {
53
- timeout = slidingForm.getAttribute('data-slider-delay');
54
-
55
- // Add hidden attribute on page load
56
- slidingForm.setAttribute('aria-hidden', 'true');
46
+ timeout = slidingForm.getAttribute('data-slider-delay');
47
+ // Add hidden attribute on page load
48
+ slidingForm.setAttribute('aria-hidden', 'true');
57
49
  }
58
-
59
50
  function isInViewport(element) {
60
- var top = element.offsetTop;
61
- var height = element.offsetHeight;
62
-
63
- while (element.offsetParent) {
64
- // eslint-disable-next-line no-param-reassign
65
- element = element.offsetParent;
66
- top += element.offsetTop;
67
- }
68
-
69
- return top < window.pageYOffset + window.innerHeight && top + height > window.pageYOffset;
51
+ let top = element.offsetTop;
52
+ const height = element.offsetHeight;
53
+ while(element.offsetParent){
54
+ // eslint-disable-next-line no-param-reassign
55
+ element = element.offsetParent;
56
+ top += element.offsetTop;
57
+ }
58
+ return top < window.pageYOffset + window.innerHeight && top + height > window.pageYOffset;
70
59
  }
71
-
72
60
  function slideForm() {
73
- if (!getCookie(cookieName)) {
74
- var inViewport = isInViewport(staticForm);
75
- clearTimeout(timer);
76
-
77
- if (!inViewport) {
78
- // The static form is not in the viewport, start timeout to show the sliding form
79
- timer = setTimeout(function () {
80
- slidingForm.classList.add(visibleClass);
81
- slidingForm.setAttribute('aria-hidden', 'false');
82
- }, timeout);
83
- } else {
84
- slidingForm.classList.remove(visibleClass);
85
- slidingForm.setAttribute('aria-hidden', 'true');
86
- }
87
- }
61
+ if (!getCookie(cookieName)) {
62
+ const inViewport = isInViewport(staticForm);
63
+ clearTimeout(timer);
64
+ if (!inViewport) {
65
+ // The static form is not in the viewport, start timeout to show the sliding form
66
+ timer = setTimeout(()=>{
67
+ slidingForm.classList.add(visibleClass);
68
+ slidingForm.setAttribute('aria-hidden', 'false');
69
+ }, timeout);
70
+ } else {
71
+ slidingForm.classList.remove(visibleClass);
72
+ slidingForm.setAttribute('aria-hidden', 'true');
73
+ }
74
+ }
88
75
  }
89
-
90
- var elementIsInViewport = (0, _debounce2.default)(function () {
91
- if (consent && slidingForm) {
92
- slideForm();
93
- }
76
+ const elementIsInViewport = (0, _debounce.default)(()=>{
77
+ if (consent && slidingForm) {
78
+ slideForm();
79
+ }
94
80
  }, throttle);
95
-
96
- window.addEventListener('scroll', function () {
97
- elementIsInViewport();
81
+ window.addEventListener('scroll', ()=>{
82
+ elementIsInViewport();
98
83
  });
99
-
100
84
  function closeForm() {
101
- setCookie(cookieName, 'YES', 7);
102
- slidingForm.classList.remove(visibleClass);
103
- slidingForm.setAttribute('aria-hidden', 'true');
85
+ setCookie(cookieName, 'YES', 7);
86
+ slidingForm.classList.remove(visibleClass);
87
+ slidingForm.setAttribute('aria-hidden', 'true');
104
88
  }
105
-
106
89
  if (closeButton) {
107
- closeButton.addEventListener('click', function () {
108
- closeForm();
109
- });
110
- }
90
+ closeButton.addEventListener('click', ()=>{
91
+ closeForm();
92
+ });
93
+ }
@@ -1,5 +1,4 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  module.exports = {
4
- status: 'wip'
5
- };
3
+ status: 'wip'
4
+ };