@nationalarchives/frontend 0.1.41 → 0.1.43
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/nationalarchives/all.css +1 -1
- package/nationalarchives/all.css.map +1 -1
- package/nationalarchives/all.js +1 -1
- package/nationalarchives/all.js.map +1 -1
- package/nationalarchives/all.mjs +18 -0
- package/nationalarchives/analytics.js +2 -0
- package/nationalarchives/analytics.js.map +1 -0
- package/nationalarchives/analytics.mjs +281 -0
- package/nationalarchives/components/_index.scss +3 -1
- package/nationalarchives/components/breadcrumbs/analytics.js +17 -0
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +3 -1
- package/nationalarchives/components/breadcrumbs/fixtures.json +69 -6
- package/nationalarchives/components/breadcrumbs/macro-options.json +12 -6
- package/nationalarchives/components/breadcrumbs/template.njk +12 -4
- package/nationalarchives/components/button/_index.scss +1 -0
- package/nationalarchives/components/button/button-group.stories.js +122 -0
- package/nationalarchives/components/button/button.css +1 -1
- package/nationalarchives/components/button/button.css.map +1 -1
- package/nationalarchives/components/button/button.scss +5 -8
- package/nationalarchives/components/button/button.stories.js +36 -38
- package/nationalarchives/components/button/fixtures.json +5 -10
- package/nationalarchives/components/button/template.njk +11 -10
- package/nationalarchives/components/card/card.css +1 -1
- package/nationalarchives/components/card/card.css.map +1 -1
- package/nationalarchives/components/card/card.scss +6 -0
- package/nationalarchives/components/card/card.stories.js +11 -0
- package/nationalarchives/components/card/fixtures.json +17 -34
- package/nationalarchives/components/checkboxes/analytics.js +25 -0
- package/nationalarchives/components/checkboxes/checkboxes.css +1 -1
- package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
- package/nationalarchives/components/checkboxes/checkboxes.njk +12 -0
- package/nationalarchives/components/checkboxes/checkboxes.scss +1 -0
- package/nationalarchives/components/checkboxes/fixtures.json +6 -12
- package/nationalarchives/components/checkboxes/template.njk +10 -7
- package/nationalarchives/components/compound-filters/compound-filters.css +1 -1
- package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
- package/nationalarchives/components/compound-filters/compound-filters.scss +2 -0
- package/nationalarchives/components/compound-filters/fixtures.json +1 -2
- package/nationalarchives/components/compound-filters/template.njk +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
- package/nationalarchives/components/cookie-banner/fixtures.json +10 -20
- package/nationalarchives/components/date-input/date-input.css +1 -1
- package/nationalarchives/components/date-input/date-input.css.map +1 -1
- package/nationalarchives/components/date-input/fixtures.json +5 -10
- package/nationalarchives/components/date-input/template.njk +9 -9
- package/nationalarchives/components/date-search/date-search.css +1 -1
- package/nationalarchives/components/date-search/date-search.css.map +1 -1
- package/nationalarchives/components/date-search/date-search.njk +7 -0
- package/nationalarchives/components/date-search/fixtures.json +6 -12
- package/nationalarchives/components/date-search/template.njk +6 -7
- package/nationalarchives/components/error-summary/_index.scss +1 -0
- package/nationalarchives/components/error-summary/error-summary.css +1 -0
- package/nationalarchives/components/error-summary/error-summary.css.map +1 -0
- package/nationalarchives/components/error-summary/error-summary.js +2 -0
- package/nationalarchives/components/error-summary/error-summary.js.map +1 -0
- package/nationalarchives/components/error-summary/error-summary.mjs +51 -0
- package/nationalarchives/components/error-summary/error-summary.scss +39 -0
- package/nationalarchives/components/error-summary/error-summary.stories.js +59 -0
- package/nationalarchives/components/error-summary/fixtures.json +24 -0
- package/nationalarchives/components/error-summary/macro-options.json +52 -0
- package/nationalarchives/components/error-summary/macro.njk +3 -0
- package/nationalarchives/components/error-summary/template.njk +15 -0
- package/nationalarchives/components/featured-records/featured-records.css +1 -1
- package/nationalarchives/components/featured-records/featured-records.css.map +1 -1
- package/nationalarchives/components/featured-records/featured-records.scss +1 -1
- package/nationalarchives/components/featured-records/fixtures.json +2 -4
- package/nationalarchives/components/footer/analytics.js +97 -0
- package/nationalarchives/components/footer/fixtures.json +8 -15
- package/nationalarchives/components/footer/footer.css +1 -1
- package/nationalarchives/components/footer/footer.css.map +1 -1
- package/nationalarchives/components/footer/footer.scss +4 -2
- package/nationalarchives/components/footer/footer.stories.js +5 -11
- package/nationalarchives/components/footer/template.njk +13 -10
- package/nationalarchives/components/gallery/gallery.css.map +1 -1
- package/nationalarchives/components/global-header/analytics.js +57 -0
- package/nationalarchives/components/global-header/fixtures.json +1 -2
- package/nationalarchives/components/global-header/global-header.css +1 -1
- package/nationalarchives/components/global-header/global-header.css.map +1 -1
- package/nationalarchives/components/global-header/global-header.js +1 -1
- package/nationalarchives/components/global-header/global-header.js.map +1 -1
- package/nationalarchives/components/global-header/global-header.mjs +40 -79
- package/nationalarchives/components/global-header/global-header.scss +9 -6
- package/nationalarchives/components/global-header/global-header.stories.js +32 -20
- package/nationalarchives/components/global-header/macro-options.json +12 -0
- package/nationalarchives/components/global-header/template.njk +7 -7
- package/nationalarchives/components/grid/fixtures.json +13 -26
- package/nationalarchives/components/grid/grid.css +1 -1
- package/nationalarchives/components/grid/grid.css.map +1 -1
- package/nationalarchives/components/grid/grid.scss +0 -1
- package/nationalarchives/components/header/analytics.js +18 -0
- package/nationalarchives/components/header/fixtures.json +1 -2
- package/nationalarchives/components/header/header.css +1 -1
- package/nationalarchives/components/header/header.css.map +1 -1
- package/nationalarchives/components/header/header.js +1 -1
- package/nationalarchives/components/header/header.js.map +1 -1
- package/nationalarchives/components/header/header.mjs +32 -41
- package/nationalarchives/components/header/header.scss +3 -2
- package/nationalarchives/components/header/macro-options.json +6 -0
- package/nationalarchives/components/header/template.njk +6 -6
- package/nationalarchives/components/hero/analytics.js +26 -0
- package/nationalarchives/components/hero/fixtures.json +12 -24
- package/nationalarchives/components/hero/hero.css +1 -1
- package/nationalarchives/components/hero/hero.css.map +1 -1
- package/nationalarchives/components/hero/hero.scss +1 -1
- package/nationalarchives/components/index-grid/fixtures.json +8 -16
- package/nationalarchives/components/index-grid/index-grid.css +1 -1
- package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
- package/nationalarchives/components/message/fixtures.json +1 -2
- package/nationalarchives/components/message/message.css +1 -1
- package/nationalarchives/components/message/message.css.map +1 -1
- package/nationalarchives/components/message/message.scss +2 -3
- package/nationalarchives/components/message/phase-banner.stories.js +1 -1
- package/nationalarchives/components/pagination/fixtures.json +1 -2
- package/nationalarchives/components/pagination/macro-options.json +6 -0
- package/nationalarchives/components/pagination/pagination.stories.js +44 -0
- package/nationalarchives/components/pagination/template.njk +4 -1
- package/nationalarchives/components/phase-banner/fixtures.json +4 -8
- package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
- package/nationalarchives/components/picture/analytics.js +30 -0
- package/nationalarchives/components/picture/fixtures.json +5 -10
- package/nationalarchives/components/picture/picture.css.map +1 -1
- package/nationalarchives/components/quick-filters/_index.scss +1 -0
- package/nationalarchives/components/quick-filters/fixtures.json +51 -0
- package/nationalarchives/components/{filters → quick-filters}/macro-options.json +2 -2
- package/nationalarchives/components/quick-filters/macro.njk +3 -0
- package/nationalarchives/components/quick-filters/quick-filters.css +1 -0
- package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -0
- package/nationalarchives/components/{filters/filters.scss → quick-filters/quick-filters.scss} +10 -8
- package/nationalarchives/components/{filters/filters.stories.js → quick-filters/quick-filters.stories.js} +2 -2
- package/nationalarchives/components/quick-filters/template.njk +8 -0
- package/nationalarchives/components/radios/analytics.js +25 -0
- package/nationalarchives/components/radios/fixtures.json +6 -12
- package/nationalarchives/components/radios/radios.css +1 -1
- package/nationalarchives/components/radios/radios.css.map +1 -1
- package/nationalarchives/components/radios/radios.njk +12 -0
- package/nationalarchives/components/radios/template.njk +6 -13
- package/nationalarchives/components/search-field/analytics.js +22 -0
- package/nationalarchives/components/search-field/fixtures.json +3 -6
- package/nationalarchives/components/search-field/search-field.css +1 -1
- package/nationalarchives/components/search-field/search-field.css.map +1 -1
- package/nationalarchives/components/search-field/search-field.scss +7 -2
- package/nationalarchives/components/search-field/template.njk +4 -4
- package/nationalarchives/components/search-filters/_index.scss +1 -0
- package/nationalarchives/components/search-filters/fixtures.json +16 -0
- package/nationalarchives/components/search-filters/macro-options.json +39 -0
- package/nationalarchives/components/search-filters/macro.njk +3 -0
- package/nationalarchives/components/search-filters/search-filters.css +1 -0
- package/nationalarchives/components/search-filters/search-filters.css.map +1 -0
- package/nationalarchives/components/search-filters/search-filters.js +2 -0
- package/nationalarchives/components/search-filters/search-filters.js.map +1 -0
- package/nationalarchives/components/search-filters/search-filters.mjs +67 -0
- package/nationalarchives/components/search-filters/search-filters.scss +163 -0
- package/nationalarchives/components/search-filters/search-filters.stories.js +207 -0
- package/nationalarchives/components/search-filters/template.njk +107 -0
- package/nationalarchives/components/select/fixtures.json +6 -12
- package/nationalarchives/components/select/select.css +1 -1
- package/nationalarchives/components/select/select.css.map +1 -1
- package/nationalarchives/components/select/select.scss +1 -1
- package/nationalarchives/components/select/template.njk +4 -4
- package/nationalarchives/components/sensitive-image/fixtures.json +3 -6
- package/nationalarchives/components/skip-link/fixtures.json +1 -2
- package/nationalarchives/components/skip-link/skip-link.css +1 -1
- package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
- package/nationalarchives/components/skip-link/skip-link.scss +1 -1
- package/nationalarchives/components/tabs/fixtures.json +1 -2
- package/nationalarchives/components/tabs/tabs.css.map +1 -1
- package/nationalarchives/components/text-input/analytics.js +23 -0
- package/nationalarchives/components/text-input/fixtures.json +6 -12
- package/nationalarchives/components/text-input/template.njk +6 -10
- package/nationalarchives/components/text-input/text-input.css +1 -1
- package/nationalarchives/components/text-input/text-input.css.map +1 -1
- package/nationalarchives/components/text-input/text-input.njk +10 -0
- package/nationalarchives/components/text-input/text-input.scss +1 -1
- package/nationalarchives/components/textarea/analytics.js +23 -0
- package/nationalarchives/components/textarea/fixtures.json +6 -12
- package/nationalarchives/components/textarea/template.njk +5 -5
- package/nationalarchives/components/textarea/textarea.css +1 -1
- package/nationalarchives/components/textarea/textarea.css.map +1 -1
- package/nationalarchives/components/textarea/textarea.scss +1 -1
- package/nationalarchives/global-header-package.css +1 -1
- package/nationalarchives/global-header-package.css.map +1 -1
- package/nationalarchives/global-header-package.scss +4 -6
- package/nationalarchives/lib/analytics-helpers.mjs +68 -0
- package/nationalarchives/lib/cookies.mjs +59 -35
- package/nationalarchives/prototype-kit.css +1 -1
- package/nationalarchives/prototype-kit.css.map +1 -1
- package/nationalarchives/stories/utilities/colour-schemes/colour-themes.stories.js +49 -22
- package/nationalarchives/stories/utilities/forms/forms.mdx +6 -6
- package/nationalarchives/stories/utilities/tables/tables.stories.js +30 -28
- package/nationalarchives/tests/analytics.test.js +11 -0
- package/nationalarchives/tests/cookies.test.js +21 -0
- package/nationalarchives/tests/uuid.test.js +0 -6
- package/nationalarchives/tools/_a11y.scss +11 -2
- package/nationalarchives/tools/_colour.scss +47 -14
- package/nationalarchives/utilities/_a11y.scss +4 -0
- package/nationalarchives/utilities/_forms.scss +7 -1
- package/nationalarchives/utilities/_global.scss +3 -1
- package/nationalarchives/utilities/_reset.scss +5 -2
- package/nationalarchives/utilities/_tables.scss +23 -6
- package/nationalarchives/utilities/_typography.scss +5 -21
- package/nationalarchives/variables/_a11y.scss +2 -0
- package/nationalarchives/variables/_colour.scss +2 -0
- package/nationalarchives/variables/_forms.scss +1 -1
- package/nationalarchives/variables/_index.scss +1 -0
- package/package.json +2 -2
- package/nationalarchives/components/filters/_index.scss +0 -1
- package/nationalarchives/components/filters/filters.css +0 -1
- package/nationalarchives/components/filters/filters.css.map +0 -1
- package/nationalarchives/components/filters/fixtures.json +0 -51
- package/nationalarchives/components/filters/macro.njk +0 -3
- package/nationalarchives/components/filters/template.njk +0 -8
@@ -1,5 +1,5 @@
|
|
1
1
|
// @use "variables/assets";
|
2
|
-
@use "variables/grid" with (
|
2
|
+
@use "variables/grid" as gridVars with (
|
3
3
|
$largest-container-width: 1270px,
|
4
4
|
$gutter-width: 30px,
|
5
5
|
$gutter-width-tiny: 15px
|
@@ -9,7 +9,10 @@
|
|
9
9
|
@use "tools/colour";
|
10
10
|
@use "tools/typography";
|
11
11
|
|
12
|
+
@use "utilities/colour" as colourUtils;
|
13
|
+
|
12
14
|
@use "components/global-header";
|
15
|
+
@use "components/grid";
|
13
16
|
@use "components/footer";
|
14
17
|
|
15
18
|
.tna-template {
|
@@ -94,8 +97,3 @@
|
|
94
97
|
}
|
95
98
|
}
|
96
99
|
}
|
97
|
-
|
98
|
-
// $fa-font-path: assets.$fa-font-path;
|
99
|
-
// @import "lib/font-awesome/fontawesome";
|
100
|
-
// @import "lib/font-awesome/solid";
|
101
|
-
// @import "lib/font-awesome/brands";
|
@@ -0,0 +1,68 @@
|
|
1
|
+
const getXPathTo = ($element) => {
|
2
|
+
if ($element.id !== "") {
|
3
|
+
return 'id("' + $element.id + '")';
|
4
|
+
}
|
5
|
+
if ($element === document.body) {
|
6
|
+
return $element.tagName;
|
7
|
+
}
|
8
|
+
let ix = 0;
|
9
|
+
const siblings = $element.parentNode.childNodes;
|
10
|
+
for (let i = 0; i < siblings.length; i++) {
|
11
|
+
const sibling = siblings[i];
|
12
|
+
if (sibling === $element)
|
13
|
+
return (
|
14
|
+
getXPathTo($element.parentNode) +
|
15
|
+
"/" +
|
16
|
+
$element.tagName +
|
17
|
+
"[" +
|
18
|
+
(ix + 1) +
|
19
|
+
"]"
|
20
|
+
);
|
21
|
+
if (sibling.nodeType === 1 && sibling.tagName === $element.tagName) ix++;
|
22
|
+
}
|
23
|
+
};
|
24
|
+
|
25
|
+
const includesAny = (arr, values) => values.some((v) => arr.includes(v));
|
26
|
+
|
27
|
+
const getClosestHeading = ($element) => {
|
28
|
+
let heading = "";
|
29
|
+
let $search = $element;
|
30
|
+
do {
|
31
|
+
while ($search.previousElementSibling) {
|
32
|
+
$search = $search.previousElementSibling;
|
33
|
+
if (
|
34
|
+
["h1", "h2", "h3", "h4", "h5", "h6"].includes($search.tagName) ||
|
35
|
+
($search.classList.length &&
|
36
|
+
includesAny(Array.from($search.classList), [
|
37
|
+
"tna-heading-xl",
|
38
|
+
"tna-heading-l",
|
39
|
+
"tna-heading-m",
|
40
|
+
"tna-heading-s",
|
41
|
+
]))
|
42
|
+
) {
|
43
|
+
heading = $search.innerText;
|
44
|
+
break;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
$search = $search.parentElement;
|
48
|
+
} while ($search.parentElement && !heading);
|
49
|
+
return heading;
|
50
|
+
};
|
51
|
+
|
52
|
+
const valueGetters = {
|
53
|
+
text: ($el) => $el.innerText,
|
54
|
+
html: ($el) => $el.innerHTML,
|
55
|
+
value: ($el) => $el.value,
|
56
|
+
index: ($el, $scope, event, index) => index,
|
57
|
+
checked: ($el) => ($el.checked ? "checked" : "unchecked"),
|
58
|
+
expanded: ($el) => {
|
59
|
+
const expanded = $el.getAttribute("aria-expanded");
|
60
|
+
if (expanded === null) {
|
61
|
+
return null;
|
62
|
+
}
|
63
|
+
return expanded.toString() === "true" ? "opened" : "closed";
|
64
|
+
},
|
65
|
+
closestHeading: ($el) => getClosestHeading($el),
|
66
|
+
};
|
67
|
+
|
68
|
+
export { getXPathTo, getClosestHeading, valueGetters };
|
@@ -1,5 +1,6 @@
|
|
1
1
|
export class CookieEventHandler {
|
2
2
|
events = {};
|
3
|
+
oneTimeEvents = {};
|
3
4
|
|
4
5
|
constructor() {
|
5
6
|
if (CookieEventHandler._instance) {
|
@@ -10,23 +11,37 @@ export class CookieEventHandler {
|
|
10
11
|
|
11
12
|
/**
|
12
13
|
* Add an event listener.
|
13
|
-
* @param {
|
14
|
-
* @param {
|
14
|
+
* @param {String} event - The event to add a listener for.
|
15
|
+
* @param {Function} callback - The callback function to call when the event is triggered.
|
15
16
|
*/
|
16
17
|
on(event, callback) {
|
17
|
-
if (!Object.
|
18
|
+
if (!Object.hasOwn(this.events, event)) {
|
18
19
|
this.events[event] = [];
|
19
20
|
}
|
20
21
|
this.events[event] = [...this.events[event], callback];
|
21
22
|
}
|
22
23
|
|
24
|
+
once(event, callback) {
|
25
|
+
if (!Object.hasOwn(this.oneTimeEvents, event)) {
|
26
|
+
this.oneTimeEvents[event] = [];
|
27
|
+
}
|
28
|
+
this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];
|
29
|
+
}
|
30
|
+
|
23
31
|
/** @protected */
|
24
32
|
trigger(event, data = {}) {
|
25
|
-
if (Object.
|
33
|
+
if (Object.hasOwn(this.events, event)) {
|
26
34
|
this.events[event].forEach((eventToTrigger) =>
|
27
35
|
eventToTrigger.call(this, data),
|
28
36
|
);
|
29
37
|
}
|
38
|
+
if (Object.hasOwn(this.oneTimeEvents, event)) {
|
39
|
+
for (let i = this.oneTimeEvents[event].length - 1; i >= 0; i--) {
|
40
|
+
const eventToTrigger = this.oneTimeEvents[event][i];
|
41
|
+
eventToTrigger.call(this, data);
|
42
|
+
this.oneTimeEvents[event].splice(i, 1);
|
43
|
+
}
|
44
|
+
}
|
30
45
|
}
|
31
46
|
}
|
32
47
|
|
@@ -52,11 +67,11 @@ export default class Cookies {
|
|
52
67
|
|
53
68
|
/**
|
54
69
|
* Create a cookie handler.
|
55
|
-
* @param {
|
56
|
-
* @param {
|
57
|
-
* @param {
|
58
|
-
* @param {
|
59
|
-
* @param {
|
70
|
+
* @param {String} [options.extraPolicies=[]] - The extra cookie policies to manage in addition to essential, settings and usage.
|
71
|
+
* @param {String} [options.domain=""] - The domain to register the cookie with.
|
72
|
+
* @param {String} [options.path=""] - The domain to register the cookie with.
|
73
|
+
* @param {String} [options.secure=true] - Only set cookie in HTTPS environments.
|
74
|
+
* @param {String} [options.policiesKey=cookies_policy] - The name of the cookie.
|
60
75
|
*/
|
61
76
|
constructor(options = {}) {
|
62
77
|
const {
|
@@ -112,17 +127,17 @@ export default class Cookies {
|
|
112
127
|
|
113
128
|
/**
|
114
129
|
* Check to see whether a cookie exists or not.
|
115
|
-
* @param {
|
116
|
-
* @returns {
|
130
|
+
* @param {String} key - The cookie name.
|
131
|
+
* @returns {Boolean}
|
117
132
|
*/
|
118
133
|
exists(key) {
|
119
|
-
return Object.
|
134
|
+
return Object.hasOwn(this.all, key);
|
120
135
|
}
|
121
136
|
|
122
137
|
/**
|
123
138
|
* Check to see whether a cookie has a particular value.
|
124
|
-
* @param {
|
125
|
-
* @param {
|
139
|
+
* @param {String} key - The cookie name.
|
140
|
+
* @param {String|Number|Boolean} value - The value to check against.
|
126
141
|
* @returns
|
127
142
|
*/
|
128
143
|
hasValue(key, value) {
|
@@ -131,8 +146,8 @@ export default class Cookies {
|
|
131
146
|
|
132
147
|
/**
|
133
148
|
* Get a cookie.
|
134
|
-
* @param {
|
135
|
-
* @returns {
|
149
|
+
* @param {String} key - The cookie name.
|
150
|
+
* @returns {String|Number|Boolean}
|
136
151
|
*/
|
137
152
|
get(key) {
|
138
153
|
return this.exists(key) ? decodeURIComponent(this.all[key]) : null;
|
@@ -140,15 +155,15 @@ export default class Cookies {
|
|
140
155
|
|
141
156
|
/**
|
142
157
|
* Set a cookie.
|
143
|
-
* @param {
|
144
|
-
* @param {
|
158
|
+
* @param {String} key - The cookie name.
|
159
|
+
* @param {String|Number|Boolean} value - The cookie value.
|
145
160
|
* @param {Object} options
|
146
|
-
* @param {
|
147
|
-
* @param {
|
148
|
-
* @param {
|
149
|
-
* @param {
|
150
|
-
* @param {
|
151
|
-
* @param {
|
161
|
+
* @param {Number} [options.maxAge=31536000] - The maximum age of the cookie in seconds.
|
162
|
+
* @param {String} [options.path=/] - The path to register the cookie for.
|
163
|
+
* @param {String} [options.sameSite=Lax] - The sameSite attribute.
|
164
|
+
* @param {String} [options.domain=this.domain] - The domain to register the cookie with.
|
165
|
+
* @param {String} [options.path=this.path] - The path to register the cookie with.
|
166
|
+
* @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.
|
152
167
|
*/
|
153
168
|
set(key, value, options = {}) {
|
154
169
|
const {
|
@@ -181,8 +196,8 @@ export default class Cookies {
|
|
181
196
|
|
182
197
|
/**
|
183
198
|
* Delete a cookie.
|
184
|
-
* @param {
|
185
|
-
* @param {
|
199
|
+
* @param {String} key - The cookie name.
|
200
|
+
* @param {String} [path=/] - The path to the cookie is registered on.
|
186
201
|
*/
|
187
202
|
delete(key, path = "/", domain = null) {
|
188
203
|
const options = { maxAge: -1, path, domain: domain || undefined };
|
@@ -202,7 +217,7 @@ export default class Cookies {
|
|
202
217
|
|
203
218
|
/**
|
204
219
|
* Accept a policy.
|
205
|
-
* @param {
|
220
|
+
* @param {String} policy - The name of the policy.
|
206
221
|
*/
|
207
222
|
acceptPolicy(policy) {
|
208
223
|
this.setPolicy(policy, true);
|
@@ -212,7 +227,7 @@ export default class Cookies {
|
|
212
227
|
|
213
228
|
/**
|
214
229
|
* Reject a policy.
|
215
|
-
* @param {
|
230
|
+
* @param {String} policy - The name of the policy.
|
216
231
|
*/
|
217
232
|
rejectPolicy(policy) {
|
218
233
|
this.setPolicy(policy, false);
|
@@ -222,8 +237,8 @@ export default class Cookies {
|
|
222
237
|
|
223
238
|
/**
|
224
239
|
* Set a policy.
|
225
|
-
* @param {
|
226
|
-
* @param {
|
240
|
+
* @param {String} policy - The name of the policy.
|
241
|
+
* @param {Boolean} accepted - Whether the policy is accepted or not.
|
227
242
|
*/
|
228
243
|
setPolicy(policy, accepted) {
|
229
244
|
if (policy === "essential") {
|
@@ -274,21 +289,30 @@ export default class Cookies {
|
|
274
289
|
|
275
290
|
/**
|
276
291
|
* Get the acceptance status of a policy.
|
277
|
-
* @param {
|
278
|
-
* @returns {
|
292
|
+
* @param {String} policy - The name of the policy.
|
293
|
+
* @returns {Boolean}
|
279
294
|
*/
|
280
295
|
isPolicyAccepted(policy) {
|
281
|
-
return Object.
|
296
|
+
return Object.hasOwn(this.policies, policy)
|
282
297
|
? this.policies[policy] === true
|
283
298
|
: null;
|
284
299
|
}
|
285
300
|
|
286
301
|
/**
|
287
302
|
* Add an event listener.
|
288
|
-
* @param {
|
289
|
-
* @param {
|
303
|
+
* @param {String} event - The event to add a listener for.
|
304
|
+
* @param {Function} callback - The callback function to call when the event is triggered.
|
290
305
|
*/
|
291
306
|
on(event, callback) {
|
292
307
|
this.events.on(event, callback);
|
293
308
|
}
|
309
|
+
|
310
|
+
/**
|
311
|
+
* Add a one-time event listener.
|
312
|
+
* @param {String} event - The event to add a listener for.
|
313
|
+
* @param {Function} callback - The callback function to call when the event is triggered.
|
314
|
+
*/
|
315
|
+
once(event, callback) {
|
316
|
+
this.events.once(event, callback);
|
317
|
+
}
|
294
318
|
}
|