@kth/style 1.14.2 → 1.15.0-alpha.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.
- package/README.md +76 -4
- package/dist/backtotop.js +57 -0
- package/dist/cjs/index.js +276 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/consent/klaro-no-css.js +6324 -0
- package/dist/consent/klaro.css +820 -0
- package/dist/consent/kth-klaro.scss +286 -0
- package/dist/esm/index.js +276 -0
- package/dist/icons/legacy/scss/_svg_data.scss +194 -0
- package/dist/icons/legacy/svg/arrow-back-black.svg +5 -0
- package/dist/icons/legacy/svg/arrow-back-blue.svg +5 -0
- package/dist/icons/legacy/svg/arrow-back-white.svg +5 -0
- package/dist/icons/legacy/svg/arrow-collapse-black.svg +1 -0
- package/dist/icons/legacy/svg/arrow-collapse-blue.svg +5 -0
- package/dist/icons/legacy/svg/arrow-collapse-white.svg +5 -0
- package/dist/icons/legacy/svg/arrow-expand-black.svg +5 -0
- package/dist/icons/legacy/svg/arrow-expand-blue.svg +5 -0
- package/dist/icons/legacy/svg/arrow-expand-white.svg +5 -0
- package/dist/icons/legacy/svg/arrow-maximize-blue.svg +5 -0
- package/dist/icons/legacy/svg/arrow-minimize-blue.svg +5 -0
- package/dist/icons/legacy/svg/arrow-next-black.svg +5 -0
- package/dist/icons/legacy/svg/arrow-next-white.svg +5 -0
- package/dist/icons/legacy/svg/arrow-up-down-black.svg +5 -0
- package/dist/icons/legacy/svg/arrow-up-down-white.svg +5 -0
- package/dist/icons/legacy/svg/asterisk-black.svg +5 -0
- package/dist/icons/legacy/svg/audio-blue.svg +5 -0
- package/dist/icons/legacy/svg/audio-white.svg +5 -0
- package/dist/icons/legacy/svg/back-to-top-blue.svg +6 -0
- package/dist/icons/legacy/svg/calculate-blue.svg +5 -0
- package/dist/icons/legacy/svg/check-black.svg +5 -0
- package/dist/icons/legacy/svg/close-black.svg +5 -0
- package/dist/icons/legacy/svg/close-white.svg +1 -0
- package/dist/icons/legacy/svg/code-blue.svg +5 -0
- package/dist/icons/legacy/svg/code-white.svg +5 -0
- package/dist/icons/legacy/svg/compressed-blue.svg +13 -0
- package/dist/icons/legacy/svg/compressed-white.svg +13 -0
- package/dist/icons/legacy/svg/copy-blue.svg +5 -0
- package/dist/icons/legacy/svg/date-black.svg +5 -0
- package/dist/icons/legacy/svg/date-blue.svg +5 -0
- package/dist/icons/legacy/svg/date-white.svg +5 -0
- package/dist/icons/legacy/svg/delete-blue.svg +5 -0
- package/dist/icons/legacy/svg/doc-blue.svg +5 -0
- package/dist/icons/legacy/svg/doc-white.svg +5 -0
- package/dist/icons/legacy/svg/download-blue.svg +5 -0
- package/dist/icons/legacy/svg/download-white.svg +5 -0
- package/dist/icons/legacy/svg/edit-blue.svg +5 -0
- package/dist/icons/legacy/svg/email-white.svg +5 -0
- package/dist/icons/legacy/svg/error-black.svg +5 -0
- package/dist/icons/legacy/svg/eye-black.svg +5 -0
- package/dist/icons/legacy/svg/eye-blue.svg +5 -0
- package/dist/icons/legacy/svg/eye-off-black.svg +5 -0
- package/dist/icons/legacy/svg/eye-off-blue.svg +5 -0
- package/dist/icons/legacy/svg/favorite-active-blue.svg +5 -0
- package/dist/icons/legacy/svg/favorite-blue.svg +5 -0
- package/dist/icons/legacy/svg/file-blue.svg +5 -0
- package/dist/icons/legacy/svg/file-white.svg +5 -0
- package/dist/icons/legacy/svg/filter-blue.svg +5 -0
- package/dist/icons/legacy/svg/folder-blue.svg +5 -0
- package/dist/icons/legacy/svg/folder-white.svg +5 -0
- package/dist/icons/legacy/svg/gallery-active-black.svg +5 -0
- package/dist/icons/legacy/svg/gallery-back-black.svg +5 -0
- package/dist/icons/legacy/svg/gallery-next-black.svg +5 -0
- package/dist/icons/legacy/svg/gallery-passive-black.svg +5 -0
- package/dist/icons/legacy/svg/gallery-pause-black.svg +5 -0
- package/dist/icons/legacy/svg/gallery-play-black.svg +5 -0
- package/dist/icons/legacy/svg/image-blue.svg +5 -0
- package/dist/icons/legacy/svg/image-white.svg +5 -0
- package/dist/icons/legacy/svg/information-black.svg +5 -0
- package/dist/icons/legacy/svg/language-black.svg +5 -0
- package/dist/icons/legacy/svg/language-white.svg +1 -0
- package/dist/icons/legacy/svg/link-black.svg +5 -0
- package/dist/icons/legacy/svg/link-blue.svg +1 -0
- package/dist/icons/legacy/svg/menu-black.svg +8 -0
- package/dist/icons/legacy/svg/message-white.svg +5 -0
- package/dist/icons/legacy/svg/notification-white.svg +5 -0
- package/dist/icons/legacy/svg/open-modal-blue.svg +5 -0
- package/dist/icons/legacy/svg/open-window-black.svg +5 -0
- package/dist/icons/legacy/svg/open-window-blue.svg +5 -0
- package/dist/icons/legacy/svg/open-window-white.svg +5 -0
- package/dist/icons/legacy/svg/page-first-black.svg +5 -0
- package/dist/icons/legacy/svg/page-last-black.svg +5 -0
- package/dist/icons/legacy/svg/pdf-blue.svg +6 -0
- package/dist/icons/legacy/svg/pdf-white.svg +6 -0
- package/dist/icons/legacy/svg/ppt-blue.svg +5 -0
- package/dist/icons/legacy/svg/ppt-white.svg +5 -0
- package/dist/icons/legacy/svg/print-blue.svg +5 -0
- package/dist/icons/legacy/svg/quote-black.svg +5 -0
- package/dist/icons/legacy/svg/quote-white.svg +5 -0
- package/dist/icons/legacy/svg/scale-blue.svg +5 -0
- package/dist/icons/legacy/svg/search-blue.svg +5 -0
- package/dist/icons/legacy/svg/settings-blue.svg +5 -0
- package/dist/icons/legacy/svg/sort-ascending-white.svg +5 -0
- package/dist/icons/legacy/svg/sort-descending-white.svg +5 -0
- package/dist/icons/legacy/svg/success-black.svg +5 -0
- package/dist/icons/legacy/svg/text-blue.svg +5 -0
- package/dist/icons/legacy/svg/text-white.svg +5 -0
- package/dist/icons/legacy/svg/thumb-down-blue.svg +5 -0
- package/dist/icons/legacy/svg/thumb-up-blue.svg +5 -0
- package/dist/icons/legacy/svg/upload-blue.svg +5 -0
- package/dist/icons/legacy/svg/upload-white.svg +5 -0
- package/dist/icons/legacy/svg/user-management-blue.svg +5 -0
- package/dist/icons/legacy/svg/video-blue.svg +5 -0
- package/dist/icons/legacy/svg/video-white.svg +5 -0
- package/dist/icons/legacy/svg/xls-blue.svg +5 -0
- package/dist/icons/legacy/svg/xls-white.svg +5 -0
- package/dist/menus.js +227 -0
- package/package.json +3 -1
- package/scss/components/backtotop.scss +24 -0
- package/scss/components/commonStyle.scss +91 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
|
|
4
|
+
<path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-6-8l4,4h-2.5v3h-3v-3h-2.5l4-4Z" style="fill:#006cb7;"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
|
|
4
|
+
<path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-6-8l4,4h-2.5v3h-3v-3h-2.5l4-4Z" style="fill:#ffffff;"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 14">
|
|
4
|
+
<path d="M13,6c1.66,0,3-1.34,3-3s-1.34-3-3-3-3,1.34-3,3,1.34,3,3,3m0-4c.55,0,1,.45,1,1s-.45,1-1,1-1-.45-1-1,.45-1,1-1m4.11,3.86c1.2-1.72,1.2-4,0-5.72,.29-.09,.59-.14,.89-.14,1.66,0,3,1.34,3,3s-1.34,3-3,3c-.3,0-.6-.05-.89-.14m-4.11,2.14c-6,0-6,4-6,4v2h12v-2s0-4-6-4m-4,4c0-.29,.32-2,4-2s3.94,1.56,4,2m7,0v2h-3v-2c-.05-1.5-.7-2.92-1.8-3.94,4.8,.49,4.8,3.94,4.8,3.94M8,7h-3v3H3v-3H0v-2H3V2h2v3h3v2Z" style="fill:#006cb7;"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
|
|
4
|
+
<path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-2-2l-2.5-1.7v1.7H4v-5h5.5v1.7l2.5-1.7v5Z" style="fill:#006cb7;"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
|
|
4
|
+
<path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-2-2l-2.5-1.7v1.7H4v-5h5.5v1.7l2.5-1.7v5Z" style="fill:#ffffff;"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
|
|
4
|
+
<path d="M10,0H2C.89,0,0,.9,0,2V18c0,1.11,.89,2,2,2H14c1.11,0,2-.89,2-2V6L10,0m4,18H2V2h7V7h5v11m-5.1-5.5l2.9,4.5h-1.8l-2-3.4-2,3.4h-1.8l2.9-4.5-2.9-4.5h1.8l2,3.4,2-3.4h1.8l-2.9,4.5Z" style="fill:#006cb7;"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="a"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
|
|
4
|
+
<path d="M10,0H2C.89,0,0,.9,0,2V18c0,1.11,.89,2,2,2H14c1.11,0,2-.89,2-2V6L10,0m4,18H2V2h7V7h5v11m-5.1-5.5l2.9,4.5h-1.8l-2-3.4-2,3.4h-1.8l2.9-4.5-2.9-4.5h1.8l2,3.4,2-3.4h1.8l-2.9,4.5Z" style="fill:#ffffff;"/>
|
|
5
|
+
</svg>
|
package/dist/menus.js
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable no-var */ /* eslint-disable vars-on-top */ /* eslint-disable no-use-before-define */ function klaroOnload() {
|
|
5
|
+
var klaro = document.querySelector("#klaro div.klaro");
|
|
6
|
+
function noVisibleKlaro() {
|
|
7
|
+
return (
|
|
8
|
+
!klaro ||
|
|
9
|
+
window.getComputedStyle(klaro).display === "none" ||
|
|
10
|
+
klaro.querySelector("a") === null
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
if (noVisibleKlaro()) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (klaro !== document.body.firstElementChild) {
|
|
17
|
+
document.body.insertBefore(klaro, document.body.firstElementChild);
|
|
18
|
+
}
|
|
19
|
+
const getNextFocusableElement = function _getNextFocusableElement(
|
|
20
|
+
element,
|
|
21
|
+
step,
|
|
22
|
+
) {
|
|
23
|
+
var elements = Array.prototype.slice.call(
|
|
24
|
+
klaro.querySelectorAll(
|
|
25
|
+
"a:not([disabled]), button:not([disabled]), input:not([disabled])",
|
|
26
|
+
),
|
|
27
|
+
);
|
|
28
|
+
if (!elements) return null;
|
|
29
|
+
elements = elements.filter(
|
|
30
|
+
(e) => window.getComputedStyle(e).display !== "none",
|
|
31
|
+
);
|
|
32
|
+
for (var i = 0; i < elements.length; i++) {
|
|
33
|
+
if (elements[i] === element) {
|
|
34
|
+
if (i < elements.length - step) {
|
|
35
|
+
return elements[i + step];
|
|
36
|
+
}
|
|
37
|
+
return elements[0];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return elements[0];
|
|
41
|
+
};
|
|
42
|
+
const resetActiveLI = function _resetActiveLI() {
|
|
43
|
+
var elements = Array.prototype.slice.call(
|
|
44
|
+
klaro.querySelectorAll("li.active"),
|
|
45
|
+
);
|
|
46
|
+
if (!elements) return;
|
|
47
|
+
elements.forEach((e) => e.classList.remove("active"));
|
|
48
|
+
}; // eslint-disable-next-line no-shadow
|
|
49
|
+
const handleKeydown = (event) => {
|
|
50
|
+
if (noVisibleKlaro()) {
|
|
51
|
+
window.removeEventListener("keydown", handleKeydown);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (event.key === "Tab") {
|
|
55
|
+
const nextElement = getNextFocusableElement(
|
|
56
|
+
event.target,
|
|
57
|
+
event.shiftKey ? -1 : 1,
|
|
58
|
+
);
|
|
59
|
+
if (nextElement) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
nextElement.focus();
|
|
62
|
+
resetActiveLI();
|
|
63
|
+
if (nextElement.tagName === "INPUT") {
|
|
64
|
+
nextElement.parentElement.closest("li").classList.add("active");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} else if (event.key === "Escape") {
|
|
68
|
+
const closeButton = klaro.querySelector(
|
|
69
|
+
"div.klaro .cookie-modal button.hide",
|
|
70
|
+
);
|
|
71
|
+
if (closeButton) {
|
|
72
|
+
closeButton.click();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
window.addEventListener("keydown", handleKeydown);
|
|
77
|
+
const config = { childList: true, subtree: true, attributes: true };
|
|
78
|
+
const callback = function _callback(mutationsList) {
|
|
79
|
+
for (const mutation of mutationsList) {
|
|
80
|
+
if (mutation.type === "childList") {
|
|
81
|
+
if (mutation.addedNodes.length > 0) {
|
|
82
|
+
for (const node of mutation.addedNodes) {
|
|
83
|
+
if (node.nodeType === 1) {
|
|
84
|
+
if (node.classList.contains("cookie-modal")) {
|
|
85
|
+
var inputs = Array.prototype.slice.call(
|
|
86
|
+
node.querySelectorAll("input"),
|
|
87
|
+
);
|
|
88
|
+
for (const input of inputs) {
|
|
89
|
+
input.setAttribute("tabindex", "0");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
} else if (mutation.removedNodes.length > 0) {
|
|
95
|
+
for (const node of mutation.removedNodes) {
|
|
96
|
+
if (node.nodeType === 1) {
|
|
97
|
+
if (
|
|
98
|
+
node.classList.contains("cn-body") ||
|
|
99
|
+
node.classList.contains("cookie-modal")
|
|
100
|
+
) {
|
|
101
|
+
window.removeEventListener("keydown", handleKeydown);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} else if (mutation.attributeName === "style") {
|
|
107
|
+
if (
|
|
108
|
+
window.getComputedStyle(klaro).getPropertyValue("display") === "none"
|
|
109
|
+
) {
|
|
110
|
+
window.removeEventListener("keydown", handleKeydown);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const observer = new MutationObserver(callback);
|
|
116
|
+
observer.observe(klaro, config);
|
|
117
|
+
}
|
|
118
|
+
window.addEventListener("load", () => {
|
|
119
|
+
klaroOnload();
|
|
120
|
+
});
|
|
121
|
+
window.addEventListener("load", () => {
|
|
122
|
+
// If no mobile menu containers are present, skip it all togehter
|
|
123
|
+
if (
|
|
124
|
+
!document.getElementById("mobileMenuWrapper") ||
|
|
125
|
+
!document.getElementById("mobileMenuList") ||
|
|
126
|
+
!document.getElementById("mobileMenuContent") ||
|
|
127
|
+
!document.getElementById("nav-icon")
|
|
128
|
+
) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
var mainMenu = document.getElementById("mainMenu"); // Get main menu
|
|
132
|
+
var megaMenu = document.getElementById("megaMenu"); // Get mega menu
|
|
133
|
+
var secondaryMenu = document.querySelector(".secondaryMenu"); // Get secondary menu
|
|
134
|
+
if (!mainMenu && !megaMenu && !secondaryMenu) {
|
|
135
|
+
document.getElementById("mobileMenuWrapper").style.display = "none"; // Hide mobile menu wrapper/container if there is no menus
|
|
136
|
+
}
|
|
137
|
+
if (mainMenu) {
|
|
138
|
+
// For main menu items, copy a link if it exists, otherwise copy the link content
|
|
139
|
+
createMobileMenuItems(mainMenu.querySelectorAll("li"), true);
|
|
140
|
+
} else if (megaMenu) {
|
|
141
|
+
// For mega menu items, copy only the the first alinks
|
|
142
|
+
createMobileMenuItems(megaMenu.querySelectorAll("li"), false);
|
|
143
|
+
}
|
|
144
|
+
if (secondaryMenu) {
|
|
145
|
+
createMobileMenuItemsForSecondaryMenu(
|
|
146
|
+
secondaryMenu.querySelectorAll("li a"),
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
function createMobileMenuItems(menuItems, includeInline) {
|
|
150
|
+
for (var i = 0; i < menuItems.length; i++) {
|
|
151
|
+
var linkToCopy = menuItems[i].querySelector("a");
|
|
152
|
+
if (linkToCopy || includeInline) {
|
|
153
|
+
var listItem = document.createElement("li");
|
|
154
|
+
listItem.className =
|
|
155
|
+
menuItems[i].className !== "" ? menuItems[i].className : "nav-item";
|
|
156
|
+
if (linkToCopy) {
|
|
157
|
+
var link = document.createElement("a");
|
|
158
|
+
link.href = linkToCopy.href;
|
|
159
|
+
link.text = linkToCopy.text;
|
|
160
|
+
link.className = linkToCopy.className;
|
|
161
|
+
listItem.appendChild(link);
|
|
162
|
+
} else if (includeInline) {
|
|
163
|
+
listItem.innerHTML = menuItems[i].innerHTML;
|
|
164
|
+
}
|
|
165
|
+
document.getElementById("mobileMenuList").appendChild(listItem);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function createMobileMenuItemsForSecondaryMenu(menuItems) {
|
|
170
|
+
var secondaryMenuWrapper = document.createElement("li");
|
|
171
|
+
secondaryMenuWrapper.className = "secondaryMenuWrap";
|
|
172
|
+
var secondaryMenuContainer = document.createElement("ul");
|
|
173
|
+
secondaryMenuContainer.className = "secondaryMenuContainer";
|
|
174
|
+
for (var i = 0; i < menuItems.length; i++) {
|
|
175
|
+
var link = document.createElement("a");
|
|
176
|
+
link.className = "secondaryMenu";
|
|
177
|
+
link.href = menuItems[i].href;
|
|
178
|
+
link.text = menuItems[i].text;
|
|
179
|
+
if (menuItems[i].hreflang) {
|
|
180
|
+
link.hreflang = menuItems[i].hreflang;
|
|
181
|
+
}
|
|
182
|
+
var secondaryMenuListItem = document.createElement("li");
|
|
183
|
+
secondaryMenuListItem.className = "item nav-item secondaryItem";
|
|
184
|
+
secondaryMenuListItem.appendChild(link);
|
|
185
|
+
secondaryMenuContainer.appendChild(secondaryMenuListItem);
|
|
186
|
+
}
|
|
187
|
+
secondaryMenuWrapper.appendChild(secondaryMenuContainer);
|
|
188
|
+
document.getElementById("mobileMenuList").appendChild(secondaryMenuWrapper);
|
|
189
|
+
} // Mega menu icon toggler.
|
|
190
|
+
document.getElementById("nav-icon").onclick = function _onclick() {
|
|
191
|
+
if (document.body.style.overflow !== "hidden") {
|
|
192
|
+
document.body.style.overflow = "hidden";
|
|
193
|
+
} else {
|
|
194
|
+
document.body.style.overflow = "initial";
|
|
195
|
+
}
|
|
196
|
+
document.getElementById("mobileMenuContent").classList.toggle("show");
|
|
197
|
+
this.classList.toggle("open");
|
|
198
|
+
};
|
|
199
|
+
});
|
|
200
|
+
function stickyMainMenu() {
|
|
201
|
+
if (!document.querySelector("#mainMenu ul.nav.nav-list")) return;
|
|
202
|
+
function isInViewport(element) {
|
|
203
|
+
if (!element) return false;
|
|
204
|
+
const rect = element.getBoundingClientRect();
|
|
205
|
+
return (
|
|
206
|
+
rect.top >= 0 &&
|
|
207
|
+
rect.left >= 0 &&
|
|
208
|
+
rect.bottom <=
|
|
209
|
+
(window.innerHeight || document.documentElement.clientHeight) &&
|
|
210
|
+
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
if (
|
|
214
|
+
isInViewport(
|
|
215
|
+
document.querySelector("#mainMenu ul.nav.nav-list:last-of-type")
|
|
216
|
+
?.lastElementChild,
|
|
217
|
+
)
|
|
218
|
+
) {
|
|
219
|
+
document.querySelector("#mainMenu").classList.add("sticky-menu");
|
|
220
|
+
} else {
|
|
221
|
+
document.querySelector("#mainMenu").classList.remove("sticky-menu");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
window.addEventListener("load", stickyMainMenu);
|
|
225
|
+
window.addEventListener("resize", stickyMainMenu);
|
|
226
|
+
|
|
227
|
+
})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kth/style",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0-alpha.1",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "./dist/cjs/types/index.d.ts",
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
"require": "./dist/cjs/index.js"
|
|
11
11
|
},
|
|
12
12
|
"./scss/*": "./scss/*",
|
|
13
|
+
"./consent/*": "./dist/consent/*",
|
|
14
|
+
"./icons/*": "./dist/icons/*",
|
|
13
15
|
"./assets/*": "./assets/*",
|
|
14
16
|
"./package.json": "./package.json"
|
|
15
17
|
},
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#back-to-top {
|
|
2
|
+
width: 50px;
|
|
3
|
+
height: 50px;
|
|
4
|
+
position: fixed;
|
|
5
|
+
bottom: 10px;
|
|
6
|
+
right: 10px;
|
|
7
|
+
z-index: 11;
|
|
8
|
+
background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iYSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyIDQyIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI0MiIgaGVpZ2h0PSI0MiIgcng9IjIwLjk3IiByeT0iMjAuOTciIHN0eWxlPSJmaWxsOiNmY2ZjZmM7Ii8+CiAgICA8cGF0aCBkPSJNMjIuNSwzMC4wMWgtM3YtMTIuMDFsLTUuMjUsNS4yNS0yLjEzLTIuMTMsOC44OC04Ljg4LDguODgsOC44OC0yLjEzLDIuMTMtNS4yNS01LjI1djEyLjAxbS0xLjUtMjQuMDFjOC4yOSwwLDE1LDYuNzIsMTUsMTVzLTYuNzIsMTUtMTUsMTUtMTUtNi43Mi0xNS0xNVMxMi43Miw2LDIxLDZtMCwzYy02LjYzLDAtMTIuMDEsNS4zOC0xMi4wMSwxMi4wMXM1LjM4LDEyLjAxLDEyLjAxLDEyLjAxLDEyLjAxLTUuMzgsMTIuMDEtMTIuMDEtNS4zOC0xMi4wMS0xMi4wMS0xMi4wMVoiIHN0eWxlPSJmaWxsOiMwMDQ3OTE7Ii8+Cjwvc3ZnPg==")
|
|
9
|
+
100% 100% no-repeat transparent;
|
|
10
|
+
background-size: 50px 50px;
|
|
11
|
+
text-indent: -10000px;
|
|
12
|
+
cursor: pointer;
|
|
13
|
+
outline: none;
|
|
14
|
+
visibility: hidden;
|
|
15
|
+
opacity: 0.1;
|
|
16
|
+
transition:
|
|
17
|
+
visibility 0.4s,
|
|
18
|
+
opacity 0.4s linear;
|
|
19
|
+
|
|
20
|
+
&.show {
|
|
21
|
+
visibility: visible;
|
|
22
|
+
opacity: 1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// This file have been moved from soon to be deprecated kth-style
|
|
2
|
+
|
|
3
|
+
// To override personal menu top margin in print.
|
|
4
|
+
html {
|
|
5
|
+
body {
|
|
6
|
+
@media print {
|
|
7
|
+
margin-top: 0 !important;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
body {
|
|
13
|
+
.container {
|
|
14
|
+
&.withMainMenu {
|
|
15
|
+
> .row {
|
|
16
|
+
width: 100%;
|
|
17
|
+
padding: 0;
|
|
18
|
+
margin: 0;
|
|
19
|
+
|
|
20
|
+
&:first-of-type {
|
|
21
|
+
flex-flow: row-reverse nowrap;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&.main {
|
|
27
|
+
margin: 0 auto;
|
|
28
|
+
|
|
29
|
+
@media (width >= 1258px) {
|
|
30
|
+
max-width: 1228px;
|
|
31
|
+
margin: 0 auto;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.lead {
|
|
38
|
+
margin: 0 0 22px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* stylelint-disable selector-class-pattern, no-descending-specificity */
|
|
42
|
+
.paragraphs {
|
|
43
|
+
p:not(.calendar) {
|
|
44
|
+
// @include t12(false);
|
|
45
|
+
margin: 0 0 27px;
|
|
46
|
+
max-width: 730px;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
p {
|
|
51
|
+
&.AlignLeft {
|
|
52
|
+
text-align: left;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&.AlignCenter {
|
|
56
|
+
text-align: center;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&.AlignRight {
|
|
60
|
+
text-align: right;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&.AlignJustify {
|
|
64
|
+
text-align: justify;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/* stylelint-enable selector-class-pattern, no-descending-specificity */
|
|
68
|
+
|
|
69
|
+
a {
|
|
70
|
+
&.skipToMainContent {
|
|
71
|
+
left: -999px;
|
|
72
|
+
position: absolute;
|
|
73
|
+
top: auto;
|
|
74
|
+
width: 1px;
|
|
75
|
+
height: 1px;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
z-index: -999;
|
|
78
|
+
|
|
79
|
+
&:focus,
|
|
80
|
+
&:active {
|
|
81
|
+
left: 0;
|
|
82
|
+
top: 0;
|
|
83
|
+
width: auto;
|
|
84
|
+
height: auto;
|
|
85
|
+
overflow: auto;
|
|
86
|
+
padding: 5px;
|
|
87
|
+
font-size: 1rem;
|
|
88
|
+
z-index: 99999;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|