summaryrefslogtreecommitdiff
path: root/source/js/script.js
diff options
context:
space:
mode:
Diffstat (limited to 'source/js/script.js')
-rw-r--r--source/js/script.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/source/js/script.js b/source/js/script.js
new file mode 100644
index 0000000..eb6bff5
--- /dev/null
+++ b/source/js/script.js
@@ -0,0 +1,66 @@
+"use strict";
+/* Add elements listener */
+window.addEventListener("load", function () {
+ // Menubar burgers click listenr
+ var burgers = Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"), 0);
+ if (burgers.length > 0) {
+ burgers.forEach(function (element) {
+ element.addEventListener("click", function () {
+ var idstr = element.getAttribute("data-target");
+ element.classList.toggle("is-active");
+ if (!idstr)
+ return;
+ var target = document.getElementById(idstr);
+ target === null || target === void 0 ? void 0 : target.classList.toggle("is-active");
+ }, false);
+ });
+ }
+ // Add header hover page class changer
+ darklistener.add(function (mode) {
+ var page = document.getElementById("header-page");
+ if (mode === SystemDarkmodePrefrence.dark) {
+ page === null || page === void 0 ? void 0 : page.classList.add("is-dark");
+ page === null || page === void 0 ? void 0 : page.classList.remove("is-light");
+ }
+ else {
+ page === null || page === void 0 ? void 0 : page.classList.add("is-light");
+ page === null || page === void 0 ? void 0 : page.classList.remove("is-dark");
+ }
+ });
+});
+/* Darkmode listener */
+var SystemDarkmodePrefrence;
+(function (SystemDarkmodePrefrence) {
+ SystemDarkmodePrefrence[SystemDarkmodePrefrence["dark"] = 0] = "dark";
+ SystemDarkmodePrefrence[SystemDarkmodePrefrence["light"] = 1] = "light";
+})(SystemDarkmodePrefrence || (SystemDarkmodePrefrence = {}));
+;
+var DarkmodeListener = /** @class */ (function () {
+ function DarkmodeListener() {
+ var darking = window.matchMedia('(prefers-color-scheme: dark)').matches;
+ this._mode = darking ? SystemDarkmodePrefrence.dark : SystemDarkmodePrefrence.light;
+ this._handlers = [];
+ this._listen();
+ }
+ DarkmodeListener.prototype._listen = function () {
+ var _this = this;
+ var media = window.matchMedia('(prefers-color-scheme: dark)');
+ var callback = function (event) {
+ var mode = event.matches ? SystemDarkmodePrefrence.dark : SystemDarkmodePrefrence.light;
+ _this._handlers.forEach(function (handler) {
+ handler(mode);
+ });
+ _this._mode = mode;
+ };
+ media.addEventListener("change", callback);
+ };
+ DarkmodeListener.prototype.add = function (callback) {
+ this._handlers.push(callback);
+ };
+ DarkmodeListener.prototype.mode = function () {
+ return this._mode;
+ };
+ return DarkmodeListener;
+}());
+;
+var darklistener = new DarkmodeListener();