@pimaonline/pimaonline-themepack 2.4.1 → 3.10.11
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE.md +30 -0
- package/README.md +50 -61
- package/dist/css/main.css +1 -1
- package/dist/css/plugins/alt-icons.css +1 -0
- package/dist/css/plugins/font-awesome.css +1 -1
- package/dist/css/routes.css +1 -1
- package/dist/css/themes/aviation/styles.css +1 -1
- package/dist/css/themes/bct/styles.css +1 -0
- package/dist/css/themes/bio/styles.css +1 -0
- package/dist/css/themes/business/styles.css +1 -1
- package/dist/css/themes/ecn/styles.css +1 -0
- package/dist/css/themes/eng/styles.css +1 -0
- package/dist/css/themes/fsc/styles.css +1 -0
- package/dist/css/themes/hrs/styles.css +1 -1
- package/dist/css/themes/lang/styles.css +1 -1
- package/dist/css/themes/lgm/styles.css +1 -1
- package/dist/css/themes/psy/styles.css +1 -0
- package/dist/css/themes/ss/styles.css +1 -0
- package/dist/img/theme-images/bct/Blueprint-background.png +0 -0
- package/dist/img/theme-images/bio/original/dna.svg +1 -0
- package/dist/img/theme-images/bio/original/humans.svg +1 -0
- package/dist/img/theme-images/bio/original/leaves.svg +33 -0
- package/dist/img/theme-images/bio/original/marine-bottom.svg +1 -0
- package/dist/img/theme-images/bio/original/marine-top.svg +1 -0
- package/dist/img/theme-images/bio/original/microbes.svg +1 -0
- package/dist/img/theme-images/ecn/arrow-2.svg +4 -0
- package/dist/img/theme-images/ecn/arrow.svg +4 -0
- package/dist/img/theme-images/ecn/point.svg +3 -0
- package/dist/img/theme-images/eng/button-bkg.svg +178 -0
- package/dist/img/theme-images/eng/halftone-banner.svg +1 -0
- package/dist/img/theme-images/eng/halftone.svg +177 -0
- package/dist/img/theme-images/eng/long-button-bkg.svg +353 -0
- package/dist/img/theme-images/fsc/bottomwave-pinkred.svg +17 -0
- package/dist/img/theme-images/fsc/bottomwave-redorange.svg +17 -0
- package/dist/img/theme-images/fsc/bottomwave-yellow.svg +17 -0
- package/dist/img/theme-images/fsc/bottomwave-yelloworange.svg +17 -0
- package/dist/img/theme-images/fsc/fire-icon.png +0 -0
- package/dist/img/theme-images/fsc/mainwave-pinkred.svg +17 -0
- package/dist/img/theme-images/fsc/mainwave-redorange.svg +17 -0
- package/dist/img/theme-images/fsc/mainwave-yellow.svg +17 -0
- package/dist/img/theme-images/fsc/mainwave-yelloworange.svg +17 -0
- package/dist/img/theme-images/lang/country-flags/argentina_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/bolivia_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/chile_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/colombia_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/costa-rica_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/cuba_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/dominican-republic_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/ecuador_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/el-salvador_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/guatemala_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/honduras_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/mexico_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/nicaragua_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/panama_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/paraguay_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/peru_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/puerto-rice_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/spain_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/uruguay_flag.png +0 -0
- package/dist/img/theme-images/lang/country-flags/venezuela_flag.png +0 -0
- package/dist/img/theme-images/psy/counseling-icon.svg +1 -0
- package/dist/img/theme-images/psy/psych-icon.svg +17 -0
- package/dist/img/theme-images/ss/blockquote.svg +3 -0
- package/dist/img/theme-images/ss/list-style.svg +3 -0
- package/dist/img/theme-images/ss/main-large-blob.svg +3 -0
- package/dist/img/theme-images/ss/main-small-blob.svg +3 -0
- package/dist/img/theme-images/ss/small-blob.svg +3 -0
- package/dist/img/theme-images/ss/tall-blob.svg +3 -0
- package/dist/js/scripts2.js +890 -245
- package/dist/js/themes/ecn.js +13 -0
- package/dist/js/themes/hrs.js +19 -0
- package/dist/js/themes/ss.js +197 -0
- package/dist/plugins/font-awesome-icons/webfonts/brands.svg +1460 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-brands-400.ttf +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-brands-400.woff2 +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-regular-400.ttf +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-regular-400.woff2 +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-solid-900.ttf +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-solid-900.woff2 +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-v4compatibility.ttf +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-v4compatibility.woff2 +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/regular.svg +497 -0
- package/dist/plugins/font-awesome-icons/webfonts/solid.svg +4178 -0
- package/package.json +4 -2
- package/dist/plugins/font-awesome-icons/webfonts/fa-brands-400.eot +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-brands-400.svg +0 -3570
- package/dist/plugins/font-awesome-icons/webfonts/fa-brands-400.woff +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-regular-400.eot +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-regular-400.svg +0 -803
- package/dist/plugins/font-awesome-icons/webfonts/fa-regular-400.woff +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-solid-900.eot +0 -0
- package/dist/plugins/font-awesome-icons/webfonts/fa-solid-900.svg +0 -4700
- package/dist/plugins/font-awesome-icons/webfonts/fa-solid-900.woff +0 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
// Reset margin-top and padding-top for content bodies that don't have headings as the first child element
|
2
|
+
const ecnStylesheet = document.querySelector("[href*='themes/ecn/styles.css']");
|
3
|
+
const ecnContentBodies = document.querySelectorAll(".content-body");
|
4
|
+
|
5
|
+
if (ecnStylesheet) {
|
6
|
+
ecnContentBodies.forEach((contentBody) => {
|
7
|
+
const firstChildHeading = contentBody.querySelector(":first-child");
|
8
|
+
if (firstChildHeading && firstChildHeading.tagName !== "H2" && firstChildHeading.tagName !== "H3") {
|
9
|
+
contentBody.style.marginTop = "unset";
|
10
|
+
contentBody.style.paddingTop = "15px";
|
11
|
+
}
|
12
|
+
})
|
13
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// Animated border for HRS theme
|
2
|
+
const borders = document.querySelectorAll(".border");
|
3
|
+
|
4
|
+
if (borders) {
|
5
|
+
Array.from(borders).forEach((border) => {
|
6
|
+
border.classList.add("hrs-border");
|
7
|
+
const callAnimateBorder = new IntersectionObserver(entries => {
|
8
|
+
// Loop over the entries
|
9
|
+
entries.forEach(entry => {
|
10
|
+
// If the element is visible
|
11
|
+
if (entry.isIntersecting) {
|
12
|
+
// Add the animation class
|
13
|
+
entry.target.classList.add('animate-border');
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
callAnimateBorder.observe(border);
|
18
|
+
});
|
19
|
+
};
|
@@ -0,0 +1,197 @@
|
|
1
|
+
// JS specifically for the Social Sciences (SS) theme
|
2
|
+
|
3
|
+
// Add items for the button
|
4
|
+
function replaceButtons() {
|
5
|
+
const buttons = document.querySelectorAll(".btn");
|
6
|
+
const vocabBtns = document.querySelectorAll(".vocab-list button");
|
7
|
+
|
8
|
+
vocabBtns.forEach(button => {
|
9
|
+
button.classList.add("blob-btn");
|
10
|
+
|
11
|
+
const innerSpan = document.createElement("span");
|
12
|
+
innerSpan.classList.add("blob-btn__inner");
|
13
|
+
|
14
|
+
const blobsSpan = document.createElement("span");
|
15
|
+
blobsSpan.classList.add("blob-btn__blobs");
|
16
|
+
|
17
|
+
for (let i = 0; i < 4; i++) {
|
18
|
+
const blob = document.createElement("span");
|
19
|
+
blob.classList.add("blob-btn__blob");
|
20
|
+
blobsSpan.appendChild(blob);
|
21
|
+
}
|
22
|
+
|
23
|
+
innerSpan.appendChild(blobsSpan);
|
24
|
+
button.appendChild(innerSpan);
|
25
|
+
|
26
|
+
})
|
27
|
+
|
28
|
+
buttons.forEach(button => {
|
29
|
+
// Create the elements for the new structure
|
30
|
+
const newButton = document.createElement("a");
|
31
|
+
newButton.classList.add("blob-btn");
|
32
|
+
|
33
|
+
// Create a new span element for the original button text
|
34
|
+
const originalTextSpan = document.createElement("span");
|
35
|
+
originalTextSpan.classList.add("original-text");
|
36
|
+
originalTextSpan.textContent = button.textContent;
|
37
|
+
|
38
|
+
// Copy the original button's href attribute
|
39
|
+
const hrefAttribute = button.getAttribute("href");
|
40
|
+
|
41
|
+
if (hrefAttribute) {
|
42
|
+
newButton.setAttribute("href", hrefAttribute);
|
43
|
+
}
|
44
|
+
|
45
|
+
const innerSpan = document.createElement("span");
|
46
|
+
innerSpan.classList.add("blob-btn__inner");
|
47
|
+
|
48
|
+
const blobsSpan = document.createElement("span");
|
49
|
+
blobsSpan.classList.add("blob-btn__blobs");
|
50
|
+
|
51
|
+
for (let i = 0; i < 4; i++) {
|
52
|
+
const blob = document.createElement("span");
|
53
|
+
blob.classList.add("blob-btn__blob");
|
54
|
+
blobsSpan.appendChild(blob);
|
55
|
+
}
|
56
|
+
|
57
|
+
innerSpan.appendChild(blobsSpan);
|
58
|
+
newButton.appendChild(originalTextSpan); // Add the original button text
|
59
|
+
newButton.appendChild(innerSpan);
|
60
|
+
|
61
|
+
// Replace the existing button with the new structure
|
62
|
+
button.parentNode.replaceChild(newButton, button);
|
63
|
+
});
|
64
|
+
}
|
65
|
+
|
66
|
+
replaceButtons();
|
67
|
+
|
68
|
+
// Create and add the SVG to HTML document
|
69
|
+
const svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
70
|
+
svgElement.setAttribute("xmlns", "http://www.w3.org/2000/svg");
|
71
|
+
svgElement.setAttribute("version", "1.1");
|
72
|
+
svgElement.style.display = "none"; // Hide the SVG
|
73
|
+
document.body.appendChild(svgElement);
|
74
|
+
|
75
|
+
// Create and add the filter definition to the SVG
|
76
|
+
const svgDefs = document.createElementNS("http://www.w3.org/2000/svg", "defs");
|
77
|
+
svgElement.appendChild(svgDefs);
|
78
|
+
|
79
|
+
const filter = document.createElementNS("http://www.w3.org/2000/svg", "filter");
|
80
|
+
filter.setAttribute("id", "goo");
|
81
|
+
svgDefs.appendChild(filter);
|
82
|
+
|
83
|
+
const feGaussianBlur = document.createElementNS("http://www.w3.org/2000/svg", "feGaussianBlur");
|
84
|
+
feGaussianBlur.setAttribute("in", "SourceGraphic");
|
85
|
+
feGaussianBlur.setAttribute("result", "blur");
|
86
|
+
feGaussianBlur.setAttribute("stdDeviation", "10");
|
87
|
+
filter.appendChild(feGaussianBlur);
|
88
|
+
|
89
|
+
const feColorMatrix = document.createElementNS("http://www.w3.org/2000/svg", "feColorMatrix");
|
90
|
+
feColorMatrix.setAttribute("in", "blur");
|
91
|
+
feColorMatrix.setAttribute("mode", "matrix");
|
92
|
+
feColorMatrix.setAttribute("values", "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 21 -7");
|
93
|
+
feColorMatrix.setAttribute("result", "goo");
|
94
|
+
filter.appendChild(feColorMatrix);
|
95
|
+
|
96
|
+
const feBlend = document.createElementNS("http://www.w3.org/2000/svg", "feBlend");
|
97
|
+
feBlend.setAttribute("in2", "goo");
|
98
|
+
feBlend.setAttribute("in", "SourceGraphic");
|
99
|
+
feBlend.setAttribute("result", "mix");
|
100
|
+
filter.appendChild(feBlend);
|
101
|
+
|
102
|
+
// Add items for text container for header
|
103
|
+
const header = document.querySelector(".header");
|
104
|
+
|
105
|
+
const root = document.documentElement; // Get the root element (HTML or :root)
|
106
|
+
|
107
|
+
const colorPrimary = getComputedStyle(root).getPropertyValue('--color-primary');
|
108
|
+
const colorSecondary = getComputedStyle(root).getPropertyValue('--color-secondary');
|
109
|
+
const colorQuaternary = getComputedStyle(root).getPropertyValue('--color-quaternary');
|
110
|
+
|
111
|
+
// Function to create and append an SVG element to a container with attributes and path content
|
112
|
+
function appendSVG(container, width, height, viewBox, pathContent, fillColor, addedClass) {
|
113
|
+
// Create a new SVG element
|
114
|
+
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
115
|
+
svg.setAttribute("width", width);
|
116
|
+
svg.setAttribute("height", height);
|
117
|
+
svg.setAttribute("viewBox", viewBox);
|
118
|
+
svg.classList.add(addedClass);
|
119
|
+
|
120
|
+
// Create the path element
|
121
|
+
const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
122
|
+
path.setAttribute("fill", fillColor);
|
123
|
+
path.setAttribute("d", pathContent);
|
124
|
+
|
125
|
+
// Append the path to the SVG
|
126
|
+
svg.appendChild(path);
|
127
|
+
|
128
|
+
// Append the SVG to the container
|
129
|
+
container.appendChild(svg);
|
130
|
+
}
|
131
|
+
|
132
|
+
//Text container blobs
|
133
|
+
const textContainerSmallBlobSVG = `
|
134
|
+
<svg width="520" height="459" viewBox="0 0 520 459" fill="none" xmlns="http://www.w3.org/2000/svg">
|
135
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M518.747 292.757C511.163 363.898 440.15 404.891 377.856 437.098C326.398 463.702 270.615 462.018 214.356 450.131C145.576 435.598 67.8836 426.477 32.6383 364.155C-8.37421 291.635 -10.4849 197.618 30.2012 124.499C71.6254 50.0538 151.869 1.46188 235.136 0.237608C309.302 -0.852853 359.552 65.0224 411.778 118.889C461.313 169.98 526.413 220.85 518.747 292.757Z" fill="${colorPrimary}"/>
|
136
|
+
</svg>`;
|
137
|
+
|
138
|
+
const textContainerLargeBlobSVG = `<svg width="1024" height="285" viewBox="0 0 1024 285" fill="none" xmlns="http://www.w3.org/2000/svg">
|
139
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M514.156 49.6823C564.805 56.965 616.051 59.1393 668.904 64.096C762.93 72.9141 878.419 64.6177 944.009 89.9955C1015.02 117.472 1043.01 160.905 1010.6 196.305C978.193 231.716 875.223 252.546 780.388 268.761C697.795 282.883 602.567 289.866 514.156 281.188C436.033 273.519 409.15 238.597 337.375 225.273C243.966 207.934 105.924 223.16 41.923 193.526C-22.351 163.765 -2.11912 119.429 32.3376 84.0315C66.4424 48.9954 126.608 8.23296 229.425 0.903027C335.419 -6.65334 414.006 35.2816 514.156 49.6823Z" fill="${colorPrimary}"/>
|
140
|
+
</svg>
|
141
|
+
`;
|
142
|
+
|
143
|
+
// SVG content for "small blob"
|
144
|
+
const smallBlobSVG = `
|
145
|
+
M192.013 7.52222C214.383 27.4062 184.038 72.2918 203.388 95.132C223.515 118.891 277.432 95.6132 290.57 123.857C301.863 148.137 264.142 169.094 247.593 190.168C235.224 205.919 222.205 220.428 205.763 231.852C190.226 242.647 173.165 249.94 154.841 254.61C135.115 259.637 115.381 261.357 95.0731 260.059C68.3899 258.355 32.8537 267.757 17.5267 245.837C1.76764 223.3 31.5572 192.865 28.9319 165.469C26.5454 140.566 -8.77626 118.326 3.20184 96.3545C15.9424 72.984 56.4801 89.4153 78.5187 74.5108C97.6061 61.6021 97.8281 30.652 117.67 18.9405C139.648 5.96868 172.953 -9.4198 192.013 7.52222Z`;
|
146
|
+
|
147
|
+
// SVG content for "tallBlob"
|
148
|
+
const tallBlobSVG = `
|
149
|
+
M122.209 11.1194C145.616 1.52446 173.459 -9.48853 193.008 14.1527C212.611 37.8602 211.527 86.7738 217.321 126.143C222.085 158.521 224.726 190.244 223.825 223.561C222.835 260.165 222.737 297.625 211.823 329.361C199.641 364.788 182.152 396.846 159.319 411.148C135.807 425.875 109.654 420.299 85.5729 408.442C61.4883 396.583 36.8662 378.545 22.6348 343.846C8.88936 310.332 13.78 266.304 10.7226 225.942C7.72455 186.365 -7.70321 142.971 4.85214 109.093C17.6055 74.681 49.0013 82.3697 70.621 64.3208C89.0654 48.9228 102.197 19.3226 122.209 11.1194Z`;
|
150
|
+
|
151
|
+
appendSVG(header, "293", "261", "0 0 293 261", smallBlobSVG, colorSecondary, "small-blob");
|
152
|
+
appendSVG(header, "224", "420", "0 0 224 420", tallBlobSVG, colorQuaternary, "tall-blob");
|
153
|
+
|
154
|
+
// Encode the textContainerBlobSVG as a data URI
|
155
|
+
const encodedTextContainerSmallBlobSVG = 'url("data:image/svg+xml,' + encodeURIComponent(textContainerSmallBlobSVG) + '")';
|
156
|
+
const encodedTextContainerLargeBlobSVG = 'url("data:image/svg+xml,' + encodeURIComponent(textContainerLargeBlobSVG) + '")';
|
157
|
+
|
158
|
+
// Select your HTML element
|
159
|
+
const textContainer = document.querySelector(".text-container");
|
160
|
+
const hasLargeClass = header.classList.contains('large');
|
161
|
+
|
162
|
+
|
163
|
+
// Apply the background image to the HTML element
|
164
|
+
if (hasLargeClass) {
|
165
|
+
// The element has the 'large' class
|
166
|
+
textContainer.style.backgroundImage = encodedTextContainerLargeBlobSVG;
|
167
|
+
} else {
|
168
|
+
// The element does not have the 'large' class
|
169
|
+
textContainer.style.backgroundImage = encodedTextContainerSmallBlobSVG;
|
170
|
+
}
|
171
|
+
|
172
|
+
//Media Queries for changing SVG background images via JS
|
173
|
+
// Function to handle viewport width changes
|
174
|
+
function handleViewportChanges() {
|
175
|
+
const viewportWidth = window.innerWidth;
|
176
|
+
|
177
|
+
if (viewportWidth > 1000) {
|
178
|
+
if (hasLargeClass) {
|
179
|
+
// The element has the 'large' class
|
180
|
+
textContainer.style.backgroundImage = encodedTextContainerLargeBlobSVG;
|
181
|
+
} else {
|
182
|
+
// The element does not have the 'large' class
|
183
|
+
textContainer.style.backgroundImage = encodedTextContainerSmallBlobSVG;
|
184
|
+
}
|
185
|
+
}
|
186
|
+
if (viewportWidth <= 1000) {
|
187
|
+
textContainer.style.backgroundImage = encodedTextContainerLargeBlobSVG;
|
188
|
+
} else if (viewportWidth <= 768) {
|
189
|
+
textContainer.style.backgroundImage = "none";
|
190
|
+
}
|
191
|
+
}
|
192
|
+
|
193
|
+
// Initial check on page load
|
194
|
+
handleViewportChanges();
|
195
|
+
|
196
|
+
// Add event listener to track changes in viewport width
|
197
|
+
window.addEventListener("resize", handleViewportChanges);
|