@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,166 +1,110 @@
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 selectStore = {};
6
-
1
+ "use strict";
2
+ const selectStore = {};
7
3
  function effectChain(element, value) {
8
- var options = element.querySelectorAll('option[data-if-chain]');
9
- var oldValue = element.value;
10
-
11
- if (!(element.name in selectStore)) {
12
- // First time, cache options
13
- selectStore[element.name] = [];
14
-
15
- [].forEach.call(options, function (el) {
16
- selectStore[element.name].push(el.cloneNode(true));
17
- });
18
- }
19
-
20
- [].forEach.call(options, function (el) {
21
- if (element.value === el.value) {
22
- element.value = '';
23
- }
24
-
25
- element.removeChild(el);
26
- });
27
-
28
- if (!value) {
29
- return;
30
- }
31
-
32
- var cached = selectStore[element.name];
33
-
34
- if (!cached.length) {
35
- return;
36
- }
37
-
38
- var newOptions = cached.filter(function (el) {
39
- return el.getAttribute('data-if-chain') === value;
40
- });
41
-
42
- if (newOptions.length) {
43
- newOptions.forEach(function (el) {
44
- return element.appendChild(el.cloneNode(true));
45
- });
46
- }
47
-
48
- if (newOptions.length === 1) {
49
- element.value = newOptions[0].value;
50
- }
51
-
52
- if (oldValue !== element.value) {
53
- element.dispatchEvent(new Event('change', { bubbles: true }));
54
- }
4
+ const options = element.querySelectorAll('option[data-if-chain]');
5
+ const oldValue = element.value;
6
+ if (!(element.name in selectStore)) {
7
+ // First time, cache options
8
+ selectStore[element.name] = [];
9
+ [].forEach.call(options, (el)=>{
10
+ selectStore[element.name].push(el.cloneNode(true));
11
+ });
12
+ }
13
+ [].forEach.call(options, (el)=>{
14
+ if (element.value === el.value) {
15
+ element.value = '';
16
+ }
17
+ element.removeChild(el);
18
+ });
19
+ if (!value) {
20
+ return;
21
+ }
22
+ const cached = selectStore[element.name];
23
+ if (!cached.length) {
24
+ return;
25
+ }
26
+ const newOptions = cached.filter((el)=>el.getAttribute('data-if-chain') === value);
27
+ if (newOptions.length) {
28
+ newOptions.forEach((el)=>element.appendChild(el.cloneNode(true)));
29
+ }
30
+ if (newOptions.length === 1) {
31
+ element.value = newOptions[0].value;
32
+ }
33
+ if (oldValue !== element.value) {
34
+ element.dispatchEvent(new Event('change', {
35
+ bubbles: true
36
+ }));
37
+ }
55
38
  }
56
-
57
39
  function effectDisable(element, disable, value) {
58
- element.disabled = disable;
59
-
60
- if (!disable && element.tagName.toLowerCase() === 'select') {
61
- effectChain(element, value);
62
- }
40
+ element.disabled = disable;
41
+ if (!disable && element.tagName.toLowerCase() === 'select') {
42
+ effectChain(element, value);
43
+ }
63
44
  }
64
-
65
45
  function effectToggle(element, show) {
66
- element.style.display = show ? null : 'none';
46
+ element.style.display = show ? null : 'none';
67
47
  }
68
-
69
48
  function effectText(element, value) {
70
- if (!element.hasAttribute('data-if-default')) {
71
- element.setAttribute('data-if-default', element.innerText);
72
- }
73
-
74
- var values = element.getAttribute('data-if-values').split('|');
75
- var text = values.map(function (item) {
76
- return item.split(':');
77
- }).find(function (_ref) {
78
- var _ref2 = _slicedToArray(_ref, 1),
79
- m = _ref2[0];
80
-
81
- return m === value;
82
- });
83
-
84
- element.innerText = text ? text[1] : element.getAttribute('data-if-default');
49
+ if (!element.hasAttribute('data-if-default')) {
50
+ element.setAttribute('data-if-default', element.innerText);
51
+ }
52
+ const values = element.getAttribute('data-if-values').split('|');
53
+ const text = values.map((item)=>item.split(':')).find(([m])=>m === value);
54
+ element.innerText = text ? text[1] : element.getAttribute('data-if-default');
85
55
  }
86
-
87
56
  function update(element, value) {
88
- var effect = element.getAttribute('data-if-effect') || 'toggle';
89
- var values = element.getAttribute('data-if').split('|').map(function (match) {
90
- return match.split(':')[1];
91
- }).filter(function (v) {
92
- return v;
93
- });
94
- var matches = values.some(function (match) {
95
- return match === value || match.indexOf('!') === 0 && match.substring(1) !== value;
96
- });
97
- var conditionMet = !values.length && !!value || matches;
98
-
99
- if (effect === 'disable') {
100
- effectDisable(element, !conditionMet, value);
101
- } else if (effect === 'toggle') {
102
- effectToggle(element, conditionMet);
103
- } else if (effect === 'text') {
104
- effectText(element, value);
105
- }
57
+ const effect = element.getAttribute('data-if-effect') || 'toggle';
58
+ const values = element.getAttribute('data-if').split('|').map((match)=>match.split(':')[1]).filter((v)=>v);
59
+ const matches = values.some((match)=>match === value || match.indexOf('!') === 0 && match.substring(1) !== value);
60
+ const conditionMet = !values.length && !!value || matches;
61
+ if (effect === 'disable') {
62
+ effectDisable(element, !conditionMet, value);
63
+ } else if (effect === 'toggle') {
64
+ effectToggle(element, conditionMet);
65
+ } else if (effect === 'text') {
66
+ effectText(element, value);
67
+ }
106
68
  }
107
-
108
69
  function init() {
109
- var elements = document.querySelectorAll('[data-if]');
110
-
111
- [].forEach.call(elements, function (element) {
112
- var _element$getAttribute = element.getAttribute('data-if').split(':'),
113
- _element$getAttribute2 = _slicedToArray(_element$getAttribute, 1),
114
- name = _element$getAttribute2[0];
115
-
116
- var form = element.closest('form');
117
-
118
- if (!form) {
119
- console.warn('Conditionals must be inside a form to avoid conflicts');
120
- return;
121
- }
122
-
123
- var related = form.querySelector('[name="' + name + '"]');
124
-
125
- if (related) {
126
- var value = related.value;
127
-
128
-
129
- if (['checkbox', 'radio'].includes(related.getAttribute('type'))) {
130
- value = related.checked ? related.value : null;
131
- }
132
-
133
- update(element, value);
134
- }
135
- });
70
+ const elements = document.querySelectorAll('[data-if]');
71
+ [].forEach.call(elements, (element)=>{
72
+ const [name] = element.getAttribute('data-if').split(':');
73
+ const form = element.closest('form');
74
+ if (!form) {
75
+ console.warn('Conditionals must be inside a form to avoid conflicts');
76
+ return;
77
+ }
78
+ const related = form.querySelector(`[name="${name}"]`);
79
+ if (related) {
80
+ let { value } = related;
81
+ if ([
82
+ 'checkbox',
83
+ 'radio'
84
+ ].includes(related.getAttribute('type'))) {
85
+ value = related.checked ? related.value : null;
86
+ }
87
+ update(element, value);
88
+ }
89
+ });
136
90
  }
137
-
138
- function delegate(_ref3) {
139
- var target = _ref3.target;
140
- var name = target.name;
141
-
142
-
143
- if (!name) {
144
- return;
145
- }
146
-
147
- var elements = document.querySelectorAll('[data-if^="' + name + '"]');
148
-
149
- if (!elements.length) {
150
- return;
151
- }
152
-
153
- var value = target.value;
154
-
155
-
156
- if (['checkbox', 'radio'].includes(target.getAttribute('type'))) {
157
- value = target.checked ? target.value : null;
158
- }
159
-
160
- [].forEach.call(elements, function (element) {
161
- return update(element, value);
162
- });
91
+ function delegate({ target }) {
92
+ const { name } = target;
93
+ if (!name) {
94
+ return;
95
+ }
96
+ const elements = document.querySelectorAll(`[data-if^="${name}"]`);
97
+ if (!elements.length) {
98
+ return;
99
+ }
100
+ let { value } = target;
101
+ if ([
102
+ 'checkbox',
103
+ 'radio'
104
+ ].includes(target.getAttribute('type'))) {
105
+ value = target.checked ? target.value : null;
106
+ }
107
+ [].forEach.call(elements, (element)=>update(element, value));
163
108
  }
164
-
165
109
  init();
166
- document.body.addEventListener('change', delegate);
110
+ document.body.addEventListener('change', delegate);
@@ -1,26 +1,19 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- var debounce = function debounce(func) {
7
- var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
8
-
9
- var inDebounce = void 0;
10
-
11
- return function () {
12
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
13
- args[_key] = arguments[_key];
14
- }
15
-
16
- var context = undefined;
17
- clearTimeout(inDebounce);
18
- inDebounce = setTimeout(function () {
19
- return func.apply(context, args);
20
- }, delay);
21
- };
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const debounce = (func, delay = [])=>{
12
+ let inDebounce;
13
+ return (...args)=>{
14
+ const context = void 0;
15
+ clearTimeout(inDebounce);
16
+ inDebounce = setTimeout(()=>func.apply(context, args), delay);
17
+ };
22
18
  };
23
-
24
- exports.default = function (func, delay) {
25
- return debounce(func, delay);
26
- };
19
+ const _default = (func, delay)=>debounce(func, delay);
@@ -1,163 +1,112 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- 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; }; }();
8
-
9
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10
-
11
1
  /**
12
2
  * Lightweight DOM sugar.
13
- */
14
- var Element = function () {
15
- function Element(element) {
16
- _classCallCheck(this, Element);
17
-
18
- this.elements = typeof element === 'string' ? document.querySelectorAll(element) : [element];
19
- }
20
-
21
- _createClass(Element, [{
22
- key: 'onElement',
23
- value: function onElement(elements, callback) {
24
- var _this = this;
25
-
26
- if (!elements) {
27
- return;
28
- }
29
-
30
- [].forEach.call(elements, function (element) {
31
- if (Object.prototype.toString.call(element) === '[object Array]') {
32
- _this.onElement(element, callback);
33
- } else {
34
- callback.call(_this, element);
35
- }
36
- });
37
- }
38
- }, {
39
- key: 'addClass',
40
- value: function addClass(className) {
41
- this.onElement(this.elements, function (element) {
42
- element.classList.add(className);
43
- });
44
-
45
- return this;
46
- }
47
- }, {
48
- key: 'removeClass',
49
- value: function removeClass(className) {
50
- this.onElement(this.elements, function (element) {
51
- element.classList.remove(className);
52
- });
53
-
54
- return this;
55
- }
56
- }, {
57
- key: 'className',
58
- value: function className(_className) {
59
- this.onElement(this.elements, function (element) {
60
- if (element.className !== _className) {
61
- element.className = _className;
62
- }
63
- });
64
-
65
- return this;
66
- }
67
- }, {
68
- key: 'style',
69
- value: function style(_style, value) {
70
- this.onElement(this.elements, function (element) {
71
- if (element.style[_style] !== value) {
72
- element.style[_style] = value;
73
- }
74
- });
75
-
76
- return this;
77
- }
78
- }, {
79
- key: 'text',
80
- value: function text(_text) {
81
- this.onElement(this.elements, function (element) {
82
- if (element.textContent !== _text) {
83
- element.textContent = _text;
84
- }
85
- });
86
-
87
- return this;
88
- }
89
- }, {
90
- key: 'html',
91
- value: function html(_html) {
92
- this.onElement(this.elements, function (element) {
93
- if (element.innerHTML !== _html) {
94
- element.innerHTML = _html;
95
- }
96
- });
97
-
98
- return this;
99
- }
100
- }, {
101
- key: 'value',
102
- value: function value(_value) {
103
- this.onElement(this.elements, function (element) {
104
- element.value = _value;
105
- });
106
-
107
- return this;
108
- }
109
- }, {
110
- key: 'callback',
111
- value: function callback(_callback) {
112
- this.onElement(this.elements, _callback);
113
-
114
- return this;
115
- }
116
- }, {
117
- key: 'callbackRAF',
118
- value: function callbackRAF(callback) {
119
- var _this2 = this;
120
-
121
- window.requestAnimationFrame(function () {
122
- return _this2.callback(callback);
123
- });
124
- }
125
- }, {
126
- key: 'hide',
127
- value: function hide() {
128
- this.onElement(this.elements, function (element) {
129
- element.style.display = 'none';
130
- });
131
-
132
- return this;
133
- }
134
- }, {
135
- key: 'show',
136
- value: function show() {
137
- this.onElement(this.elements, function (element) {
138
- element.style.display = '';
139
- });
140
-
141
- return this;
142
- }
143
- }, {
144
- key: 'visible',
145
- value: function visible(_visible) {
146
- if (_visible) {
147
- this.show();
148
- } else {
149
- this.hide();
150
- }
151
-
152
- return this;
153
- }
154
- }]);
155
-
156
- return Element;
157
- }();
158
-
3
+ */ "use strict";
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function() {
10
+ return _default;
11
+ }
12
+ });
13
+ class Element {
14
+ onElement(elements, callback) {
15
+ if (!elements) {
16
+ return;
17
+ }
18
+ [].forEach.call(elements, (element)=>{
19
+ if (Object.prototype.toString.call(element) === '[object Array]') {
20
+ this.onElement(element, callback);
21
+ } else {
22
+ callback.call(this, element);
23
+ }
24
+ });
25
+ }
26
+ addClass(className) {
27
+ this.onElement(this.elements, (element)=>{
28
+ element.classList.add(className);
29
+ });
30
+ return this;
31
+ }
32
+ removeClass(className) {
33
+ this.onElement(this.elements, (element)=>{
34
+ element.classList.remove(className);
35
+ });
36
+ return this;
37
+ }
38
+ className(className) {
39
+ this.onElement(this.elements, (element)=>{
40
+ if (element.className !== className) {
41
+ element.className = className;
42
+ }
43
+ });
44
+ return this;
45
+ }
46
+ style(style, value) {
47
+ this.onElement(this.elements, (element)=>{
48
+ if (element.style[style] !== value) {
49
+ element.style[style] = value;
50
+ }
51
+ });
52
+ return this;
53
+ }
54
+ text(text) {
55
+ this.onElement(this.elements, (element)=>{
56
+ if (element.textContent !== text) {
57
+ element.textContent = text;
58
+ }
59
+ });
60
+ return this;
61
+ }
62
+ html(html) {
63
+ this.onElement(this.elements, (element)=>{
64
+ if (element.innerHTML !== html) {
65
+ element.innerHTML = html;
66
+ }
67
+ });
68
+ return this;
69
+ }
70
+ value(value) {
71
+ this.onElement(this.elements, (element)=>{
72
+ element.value = value;
73
+ });
74
+ return this;
75
+ }
76
+ callback(callback) {
77
+ this.onElement(this.elements, callback);
78
+ return this;
79
+ }
80
+ callbackRAF(callback) {
81
+ window.requestAnimationFrame(()=>this.callback(callback));
82
+ }
83
+ hide() {
84
+ this.onElement(this.elements, (element)=>{
85
+ element.style.display = 'none';
86
+ });
87
+ return this;
88
+ }
89
+ show() {
90
+ this.onElement(this.elements, (element)=>{
91
+ element.style.display = '';
92
+ });
93
+ return this;
94
+ }
95
+ visible(visible) {
96
+ if (visible) {
97
+ this.show();
98
+ } else {
99
+ this.hide();
100
+ }
101
+ return this;
102
+ }
103
+ constructor(element){
104
+ this.elements = typeof element === 'string' ? document.querySelectorAll(element) : [
105
+ element
106
+ ];
107
+ }
108
+ }
159
109
  function el(element) {
160
- return new Element(element);
110
+ return new Element(element);
161
111
  }
162
-
163
- exports.default = el;
112
+ const _default = el;
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
-
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 getCookieByName;
9
+ }
5
10
  });
6
- exports.default = getCookieByName;
7
11
  function getCookieByName(name) {
8
- var match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
9
-
10
- if (match) {
11
- return match[2];
12
- }
13
-
14
- return null;
15
- }
12
+ const match = document.cookie.match(new RegExp(`(^| )${name}=([^;]+)`));
13
+ if (match) {
14
+ return match[2];
15
+ }
16
+ return null;
17
+ }