Browse code

Initial commit

Benjamin Roth authored on16/03/2023 20:22:35
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,113 @@
1
+let promises = [];
2
+let scripts = [];
3
+let optionalScripts = [];
4
+
5
+
6
+function loadScript(url) {
7
+    return new Promise(function (resolve, reject) {
8
+        let script = document.createElement("script");
9
+        script.src = url;
10
+        script.async = false;
11
+        script.onload = function () {
12
+            resolve(url);
13
+        };
14
+        script.onerror = function () {
15
+            reject(url);
16
+        };
17
+        document.body.appendChild(script);
18
+    });
19
+}
20
+
21
+function init(optionalScripts) {
22
+    scripts.forEach(function (url) {
23
+        promises.push(loadScript(url));
24
+    });
25
+
26
+    if (optionalScripts) {
27
+        optionalScripts.forEach(function (url) {
28
+            promises.push(loadScript(url));
29
+        });
30
+    }
31
+}
32
+
33
+function scriptsActivator(
34
+    lazyload = false,
35
+    swiper = false,
36
+    popper = false,
37
+    bootstrap = false,
38
+    aos = false,
39
+    floatingLabels = false
40
+) {
41
+    scripts = [];
42
+    scripts.push(
43
+        "/files/base/layout/js/_global-functions.js",
44
+        "/files/base/layout/js/_cookie-handling.js",
45
+        "/files/base/layout/js/_element-handling.js",
46
+        "/files/base/layout/js/_scrollToAnchor-handling.js"
47
+    );
48
+
49
+    if (lazyload) {
50
+        scripts.push(
51
+            "/files/base/layout/_vendor/node_modules/vanilla-lazyload/dist/lazyload.min.js"
52
+        );
53
+        options_lazyload = true;
54
+    } else {
55
+        options_lazyload = false;
56
+    }
57
+
58
+    if (swiper) {
59
+        scripts.push(
60
+            "/files/base/layout/_vendor/node_modules/swiper/swiper-bundle.min.js",
61
+        );
62
+        options_swiper = true;
63
+    } else {
64
+        options_swiper = false;
65
+    }
66
+
67
+    if (popper) {
68
+        scripts.push(
69
+            "/files/base/layout/_vendor/node_modules/@popperjs/core/dist/umd/popper.min.js"
70
+        );
71
+        options_popper = true;
72
+    } else {
73
+        options_popper = false;
74
+    }
75
+
76
+    if (bootstrap) {
77
+        scripts.push(
78
+            "/files/base/layout/_vendor/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"
79
+        );
80
+        options_bootstrap = true;
81
+    } else {
82
+        options_bootstrap = false;
83
+    }
84
+
85
+    if (aos) {
86
+        scripts.push(
87
+            "/files/base/layout/_vendor/node_modules/aos/dist/aos.js",
88
+        );
89
+        options_aos = true;
90
+    }
91
+
92
+    if (floatingLabels) {
93
+        scripts.push(
94
+            "/files/base/layout/js/_floating-labels.js",
95
+        );
96
+        options_floatingLabels = true;
97
+    }
98
+    else {
99
+        options_floatingLabels = false;
100
+    }
101
+}
102
+
103
+
104
+let themeScripts = [
105
+    "/files/base/layout/js/_theme/theme.js",
106
+    "/files/base/layout/js/run.js",
107
+];
108
+
109
+let finalPromise = [];
110
+
111
+themeScripts.forEach(function (url) {
112
+    finalPromise.push(loadScript(url));
113
+});