跳转到内容

MediaWiki:Common.js

来自洽隐山房
Apkqiu​(留言 | 贡献)2026年8月21日 (五) 14:09的版本

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
  • Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
(function () {
  var __create = Object.create;
  var __defProp = Object.defineProperty;
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  var __getOwnPropNames = Object.getOwnPropertyNames;
  var __getProtoOf = Object.getPrototypeOf;
  var __hasOwnProp = Object.prototype.hasOwnProperty;
  var __require = /* @__PURE__ */function (x) {
    return typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
      get: function get(a, b) {
        return (typeof require !== "undefined" ? require : a)[b];
      }
    }) : x;
  }(function (x) {
    if (typeof require !== "undefined") return require.apply(this, arguments);
    throw Error('Dynamic require of "' + x + '" is not supported');
  });
  var __commonJS = function __commonJS(cb, mod) {
    return function __require2() {
      try {
        return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {
          exports: {}
        }).exports, mod), mod.exports;
      } catch (e) {
        throw mod = 0, e;
      }
    };
  };
  var __copyProps = function __copyProps(to, from, except, desc) {
    if (from && _typeof(from) === "object" || typeof from === "function") {
      var _iterator = _createForOfIteratorHelper(__getOwnPropNames(from)),
        _step;
      try {
        var _loop = function _loop() {
          var key = _step.value;
          if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
            get: function get() {
              return from[key];
            },
            enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
          });
        };
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          _loop();
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
    }
    return to;
  };
  var __toESM = function __toESM(mod, isNodeMode, target) {
    return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
    // If the importer is in node compatibility mode or this is not an ESM
    // file that has been converted to a CommonJS file using a Babel-
    // compatible transform (i.e. "__esModule" has not been set), then set
    // "default" to the CommonJS "module.exports" for node compatibility.
    isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
      value: mod,
      enumerable: true
    }) : target, mod);
  };

  // node_modules/.pnpm/parallax-js@3.1.0/node_modules/parallax-js/dist/parallax.js
  var require_parallax = __commonJS({
    "node_modules/.pnpm/parallax-js@3.1.0/node_modules/parallax-js/dist/parallax.js": function node_modules_Pnpm_parallaxJs310_node_modules_parallaxJs_dist_parallaxJs(exports, module) {
      (function (f) {
        if (_typeof(exports) === "object" && typeof module !== "undefined") {
          module.exports = f();
        } else if (typeof define === "function" && define.amd) {
          define([], f);
        } else {
          var g;
          if (typeof window !== "undefined") {
            g = window;
          } else if (typeof global !== "undefined") {
            g = global;
          } else if (typeof self !== "undefined") {
            g = self;
          } else {
            g = this;
          }
          g.Parallax = f();
        }
      })(function () {
        var define2, module2, exports2;
        return function e(t, n, r) {
          function s(o2, u) {
            if (!n[o2]) {
              if (!t[o2]) {
                var a = typeof __require == "function" && __require;
                if (!u && a) return a(o2, true);
                if (i) return i(o2, true);
                var f = new Error("Cannot find module '" + o2 + "'");
                throw f.code = "MODULE_NOT_FOUND", f;
              }
              var l = n[o2] = {
                exports: {}
              };
              t[o2][0].call(l.exports, function (e2) {
                var n2 = t[o2][1][e2];
                return s(n2 ? n2 : e2);
              }, l, l.exports, e, t, n, r);
            }
            return n[o2].exports;
          }
          var i = typeof __require == "function" && __require;
          for (var o = 0; o < r.length; o++) s(r[o]);
          return s;
        }({
          1: [function (require2, module3, exports3) {
            "use strict";

            var getOwnPropertySymbols = Object.getOwnPropertySymbols;
            var hasOwnProperty = Object.prototype.hasOwnProperty;
            var propIsEnumerable = Object.prototype.propertyIsEnumerable;
            function toObject(val) {
              if (val === null || val === void 0) {
                throw new TypeError("Object.assign cannot be called with null or undefined");
              }
              return Object(val);
            }
            function shouldUseNative() {
              try {
                if (!Object.assign) {
                  return false;
                }
                var test1 = new String("abc");
                test1[5] = "de";
                if (Object.getOwnPropertyNames(test1)[0] === "5") {
                  return false;
                }
                var test2 = {};
                for (var i = 0; i < 10; i++) {
                  test2["_" + String.fromCharCode(i)] = i;
                }
                var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
                  return test2[n];
                });
                if (order2.join("") !== "0123456789") {
                  return false;
                }
                var test3 = {};
                "abcdefghijklmnopqrst".split("").forEach(function (letter) {
                  test3[letter] = letter;
                });
                if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
                  return false;
                }
                return true;
              } catch (err) {
                return false;
              }
            }
            module3.exports = shouldUseNative() ? Object.assign : function (target, source) {
              var from;
              var to = toObject(target);
              var symbols;
              for (var s = 1; s < arguments.length; s++) {
                from = Object(arguments[s]);
                for (var key in from) {
                  if (hasOwnProperty.call(from, key)) {
                    to[key] = from[key];
                  }
                }
                if (getOwnPropertySymbols) {
                  symbols = getOwnPropertySymbols(from);
                  for (var i = 0; i < symbols.length; i++) {
                    if (propIsEnumerable.call(from, symbols[i])) {
                      to[symbols[i]] = from[symbols[i]];
                    }
                  }
                }
              }
              return to;
            };
          }, {}],
          2: [function (require2, module3, exports3) {
            (function (process) {
              (function () {
                var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;
                if (typeof performance !== "undefined" && performance !== null && performance.now) {
                  module3.exports = function () {
                    return performance.now();
                  };
                } else if (typeof process !== "undefined" && process !== null && process.hrtime) {
                  module3.exports = function () {
                    return (getNanoSeconds() - nodeLoadTime) / 1e6;
                  };
                  hrtime = process.hrtime;
                  getNanoSeconds = function getNanoSeconds() {
                    var hr;
                    hr = hrtime();
                    return hr[0] * 1e9 + hr[1];
                  };
                  moduleLoadTime = getNanoSeconds();
                  upTime = process.uptime() * 1e9;
                  nodeLoadTime = moduleLoadTime - upTime;
                } else if (Date.now) {
                  module3.exports = function () {
                    return Date.now() - loadTime;
                  };
                  loadTime = Date.now();
                } else {
                  module3.exports = function () {
                    return (/* @__PURE__ */new Date()).getTime() - loadTime;
                  };
                  loadTime = (/* @__PURE__ */new Date()).getTime();
                }
              }).call(this);
            }).call(this, require2("_process"));
          }, {
            "_process": 3
          }],
          3: [function (require2, module3, exports3) {
            var process = module3.exports = {};
            var cachedSetTimeout;
            var cachedClearTimeout;
            function defaultSetTimout() {
              throw new Error("setTimeout has not been defined");
            }
            function defaultClearTimeout() {
              throw new Error("clearTimeout has not been defined");
            }
            (function () {
              try {
                if (typeof setTimeout === "function") {
                  cachedSetTimeout = setTimeout;
                } else {
                  cachedSetTimeout = defaultSetTimout;
                }
              } catch (e) {
                cachedSetTimeout = defaultSetTimout;
              }
              try {
                if (typeof clearTimeout === "function") {
                  cachedClearTimeout = clearTimeout;
                } else {
                  cachedClearTimeout = defaultClearTimeout;
                }
              } catch (e) {
                cachedClearTimeout = defaultClearTimeout;
              }
            })();
            function runTimeout(fun) {
              if (cachedSetTimeout === setTimeout) {
                return setTimeout(fun, 0);
              }
              if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
                cachedSetTimeout = setTimeout;
                return setTimeout(fun, 0);
              }
              try {
                return cachedSetTimeout(fun, 0);
              } catch (e) {
                try {
                  return cachedSetTimeout.call(null, fun, 0);
                } catch (e2) {
                  return cachedSetTimeout.call(this, fun, 0);
                }
              }
            }
            function runClearTimeout(marker) {
              if (cachedClearTimeout === clearTimeout) {
                return clearTimeout(marker);
              }
              if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
                cachedClearTimeout = clearTimeout;
                return clearTimeout(marker);
              }
              try {
                return cachedClearTimeout(marker);
              } catch (e) {
                try {
                  return cachedClearTimeout.call(null, marker);
                } catch (e2) {
                  return cachedClearTimeout.call(this, marker);
                }
              }
            }
            var queue = [];
            var draining = false;
            var currentQueue;
            var queueIndex = -1;
            function cleanUpNextTick() {
              if (!draining || !currentQueue) {
                return;
              }
              draining = false;
              if (currentQueue.length) {
                queue = currentQueue.concat(queue);
              } else {
                queueIndex = -1;
              }
              if (queue.length) {
                drainQueue();
              }
            }
            function drainQueue() {
              if (draining) {
                return;
              }
              var timeout = runTimeout(cleanUpNextTick);
              draining = true;
              var len = queue.length;
              while (len) {
                currentQueue = queue;
                queue = [];
                while (++queueIndex < len) {
                  if (currentQueue) {
                    currentQueue[queueIndex].run();
                  }
                }
                queueIndex = -1;
                len = queue.length;
              }
              currentQueue = null;
              draining = false;
              runClearTimeout(timeout);
            }
            process.nextTick = function (fun) {
              var args = new Array(arguments.length - 1);
              if (arguments.length > 1) {
                for (var i = 1; i < arguments.length; i++) {
                  args[i - 1] = arguments[i];
                }
              }
              queue.push(new Item(fun, args));
              if (queue.length === 1 && !draining) {
                runTimeout(drainQueue);
              }
            };
            function Item(fun, array) {
              this.fun = fun;
              this.array = array;
            }
            Item.prototype.run = function () {
              this.fun.apply(null, this.array);
            };
            process.title = "browser";
            process.browser = true;
            process.env = {};
            process.argv = [];
            process.version = "";
            process.versions = {};
            function noop() {}
            process.on = noop;
            process.addListener = noop;
            process.once = noop;
            process.off = noop;
            process.removeListener = noop;
            process.removeAllListeners = noop;
            process.emit = noop;
            process.prependListener = noop;
            process.prependOnceListener = noop;
            process.listeners = function (name) {
              return [];
            };
            process.binding = function (name) {
              throw new Error("process.binding is not supported");
            };
            process.cwd = function () {
              return "/";
            };
            process.chdir = function (dir) {
              throw new Error("process.chdir is not supported");
            };
            process.umask = function () {
              return 0;
            };
          }, {}],
          4: [function (require2, module3, exports3) {
            (function (global2) {
              var now = require2("performance-now"),
                root = typeof window === "undefined" ? global2 : window,
                vendors = ["moz", "webkit"],
                suffix = "AnimationFrame",
                raf = root["request" + suffix],
                caf = root["cancel" + suffix] || root["cancelRequest" + suffix];
              for (var i = 0; !raf && i < vendors.length; i++) {
                raf = root[vendors[i] + "Request" + suffix];
                caf = root[vendors[i] + "Cancel" + suffix] || root[vendors[i] + "CancelRequest" + suffix];
              }
              if (!raf || !caf) {
                var last = 0,
                  id = 0,
                  queue = [],
                  frameDuration = 1e3 / 60;
                raf = function raf(callback) {
                  if (queue.length === 0) {
                    var _now = now(),
                      next = Math.max(0, frameDuration - (_now - last));
                    last = next + _now;
                    setTimeout(function () {
                      var cp = queue.slice(0);
                      queue.length = 0;
                      var _loop2 = function _loop2() {
                        if (!cp[i2].cancelled) {
                          try {
                            cp[i2].callback(last);
                          } catch (e) {
                            setTimeout(function () {
                              throw e;
                            }, 0);
                          }
                        }
                      };
                      for (var i2 = 0; i2 < cp.length; i2++) {
                        _loop2();
                      }
                    }, Math.round(next));
                  }
                  queue.push({
                    handle: ++id,
                    callback: callback,
                    cancelled: false
                  });
                  return id;
                };
                caf = function caf(handle) {
                  for (var i2 = 0; i2 < queue.length; i2++) {
                    if (queue[i2].handle === handle) {
                      queue[i2].cancelled = true;
                    }
                  }
                };
              }
              module3.exports = function (fn) {
                return raf.call(root, fn);
              };
              module3.exports.cancel = function () {
                caf.apply(root, arguments);
              };
              module3.exports.polyfill = function () {
                root.requestAnimationFrame = raf;
                root.cancelAnimationFrame = caf;
              };
            }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {});
          }, {
            "performance-now": 2
          }],
          5: [function (require2, module3, exports3) {
            "use strict";

            var _createClass = /* @__PURE__ */function () {
              function defineProperties(target, props) {
                for (var i = 0; i < props.length; i++) {
                  var descriptor = props[i];
                  descriptor.enumerable = descriptor.enumerable || false;
                  descriptor.configurable = true;
                  if ("value" in descriptor) descriptor.writable = true;
                  Object.defineProperty(target, descriptor.key, descriptor);
                }
              }
              return function (Constructor, protoProps, staticProps) {
                if (protoProps) defineProperties(Constructor.prototype, protoProps);
                if (staticProps) defineProperties(Constructor, staticProps);
                return Constructor;
              };
            }();
            function _classCallCheck(instance, Constructor) {
              if (!(instance instanceof Constructor)) {
                throw new TypeError("Cannot call a class as a function");
              }
            }
            var rqAnFr = require2("raf");
            var objectAssign = require2("object-assign");
            var helpers = {
              propertyCache: {},
              vendors: [null, ["-webkit-", "webkit"], ["-moz-", "Moz"], ["-o-", "O"], ["-ms-", "ms"]],
              clamp: function clamp(value, min, max) {
                return min < max ? value < min ? min : value > max ? max : value : value < max ? max : value > min ? min : value;
              },
              data: function data(element, name) {
                return helpers.deserialize(element.getAttribute("data-" + name));
              },
              deserialize: function deserialize(value) {
                if (value === "true") {
                  return true;
                } else if (value === "false") {
                  return false;
                } else if (value === "null") {
                  return null;
                } else if (!isNaN(parseFloat(value)) && isFinite(value)) {
                  return parseFloat(value);
                } else {
                  return value;
                }
              },
              camelCase: function camelCase(value) {
                return value.replace(/-+(.)?/g, function (match, character) {
                  return character ? character.toUpperCase() : "";
                });
              },
              accelerate: function accelerate(element) {
                helpers.css(element, "transform", "translate3d(0,0,0) rotate(0.0001deg)");
                helpers.css(element, "transform-style", "preserve-3d");
                helpers.css(element, "backface-visibility", "hidden");
              },
              transformSupport: function transformSupport(value) {
                var element = document.createElement("div"),
                  propertySupport = false,
                  propertyValue = null,
                  featureSupport = false,
                  cssProperty = null,
                  jsProperty = null;
                for (var i = 0, l = helpers.vendors.length; i < l; i++) {
                  if (helpers.vendors[i] !== null) {
                    cssProperty = helpers.vendors[i][0] + "transform";
                    jsProperty = helpers.vendors[i][1] + "Transform";
                  } else {
                    cssProperty = "transform";
                    jsProperty = "transform";
                  }
                  if (element.style[jsProperty] !== void 0) {
                    propertySupport = true;
                    break;
                  }
                }
                switch (value) {
                  case "2D":
                    featureSupport = propertySupport;
                    break;
                  case "3D":
                    if (propertySupport) {
                      var body2 = document.body || document.createElement("body"),
                        documentElement = document.documentElement,
                        documentOverflow = documentElement.style.overflow,
                        isCreatedBody = false;
                      if (!document.body) {
                        isCreatedBody = true;
                        documentElement.style.overflow = "hidden";
                        documentElement.appendChild(body2);
                        body2.style.overflow = "hidden";
                        body2.style.background = "";
                      }
                      body2.appendChild(element);
                      element.style[jsProperty] = "translate3d(1px,1px,1px)";
                      propertyValue = window.getComputedStyle(element).getPropertyValue(cssProperty);
                      featureSupport = propertyValue !== void 0 && propertyValue.length > 0 && propertyValue !== "none";
                      documentElement.style.overflow = documentOverflow;
                      body2.removeChild(element);
                      if (isCreatedBody) {
                        body2.removeAttribute("style");
                        body2.parentNode.removeChild(body2);
                      }
                    }
                    break;
                }
                return featureSupport;
              },
              css: function css(element, property, value) {
                var jsProperty = helpers.propertyCache[property];
                if (!jsProperty) {
                  for (var i = 0, l = helpers.vendors.length; i < l; i++) {
                    if (helpers.vendors[i] !== null) {
                      jsProperty = helpers.camelCase(helpers.vendors[i][1] + "-" + property);
                    } else {
                      jsProperty = property;
                    }
                    if (element.style[jsProperty] !== void 0) {
                      helpers.propertyCache[property] = jsProperty;
                      break;
                    }
                  }
                }
                element.style[jsProperty] = value;
              }
            };
            var MAGIC_NUMBER = 30,
              DEFAULTS = {
                relativeInput: false,
                clipRelativeInput: false,
                inputElement: null,
                hoverOnly: false,
                calibrationThreshold: 100,
                calibrationDelay: 500,
                supportDelay: 500,
                calibrateX: false,
                calibrateY: true,
                invertX: true,
                invertY: true,
                limitX: false,
                limitY: false,
                scalarX: 10,
                scalarY: 10,
                frictionX: 0.1,
                frictionY: 0.1,
                originX: 0.5,
                originY: 0.5,
                pointerEvents: false,
                precision: 1,
                onReady: null,
                selector: null
              };
            var Parallax2 = function () {
              function Parallax3(element, options) {
                _classCallCheck(this, Parallax3);
                this.element = element;
                var data = {
                  calibrateX: helpers.data(this.element, "calibrate-x"),
                  calibrateY: helpers.data(this.element, "calibrate-y"),
                  invertX: helpers.data(this.element, "invert-x"),
                  invertY: helpers.data(this.element, "invert-y"),
                  limitX: helpers.data(this.element, "limit-x"),
                  limitY: helpers.data(this.element, "limit-y"),
                  scalarX: helpers.data(this.element, "scalar-x"),
                  scalarY: helpers.data(this.element, "scalar-y"),
                  frictionX: helpers.data(this.element, "friction-x"),
                  frictionY: helpers.data(this.element, "friction-y"),
                  originX: helpers.data(this.element, "origin-x"),
                  originY: helpers.data(this.element, "origin-y"),
                  pointerEvents: helpers.data(this.element, "pointer-events"),
                  precision: helpers.data(this.element, "precision"),
                  relativeInput: helpers.data(this.element, "relative-input"),
                  clipRelativeInput: helpers.data(this.element, "clip-relative-input"),
                  hoverOnly: helpers.data(this.element, "hover-only"),
                  inputElement: document.querySelector(helpers.data(this.element, "input-element")),
                  selector: helpers.data(this.element, "selector")
                };
                for (var key in data) {
                  if (data[key] === null) {
                    delete data[key];
                  }
                }
                objectAssign(this, DEFAULTS, data, options);
                if (!this.inputElement) {
                  this.inputElement = this.element;
                }
                this.calibrationTimer = null;
                this.calibrationFlag = true;
                this.enabled = false;
                this.depthsX = [];
                this.depthsY = [];
                this.raf = null;
                this.bounds = null;
                this.elementPositionX = 0;
                this.elementPositionY = 0;
                this.elementWidth = 0;
                this.elementHeight = 0;
                this.elementCenterX = 0;
                this.elementCenterY = 0;
                this.elementRangeX = 0;
                this.elementRangeY = 0;
                this.calibrationX = 0;
                this.calibrationY = 0;
                this.inputX = 0;
                this.inputY = 0;
                this.motionX = 0;
                this.motionY = 0;
                this.velocityX = 0;
                this.velocityY = 0;
                this.onMouseMove = this.onMouseMove.bind(this);
                this.onDeviceOrientation = this.onDeviceOrientation.bind(this);
                this.onDeviceMotion = this.onDeviceMotion.bind(this);
                this.onOrientationTimer = this.onOrientationTimer.bind(this);
                this.onMotionTimer = this.onMotionTimer.bind(this);
                this.onCalibrationTimer = this.onCalibrationTimer.bind(this);
                this.onAnimationFrame = this.onAnimationFrame.bind(this);
                this.onWindowResize = this.onWindowResize.bind(this);
                this.windowWidth = null;
                this.windowHeight = null;
                this.windowCenterX = null;
                this.windowCenterY = null;
                this.windowRadiusX = null;
                this.windowRadiusY = null;
                this.portrait = false;
                this.desktop = !navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i);
                this.motionSupport = !!window.DeviceMotionEvent && !this.desktop;
                this.orientationSupport = !!window.DeviceOrientationEvent && !this.desktop;
                this.orientationStatus = 0;
                this.motionStatus = 0;
                this.initialise();
              }
              _createClass(Parallax3, [{
                key: "initialise",
                value: function initialise() {
                  if (this.transform2DSupport === void 0) {
                    this.transform2DSupport = helpers.transformSupport("2D");
                    this.transform3DSupport = helpers.transformSupport("3D");
                  }
                  if (this.transform3DSupport) {
                    helpers.accelerate(this.element);
                  }
                  var style = window.getComputedStyle(this.element);
                  if (style.getPropertyValue("position") === "static") {
                    this.element.style.position = "relative";
                  }
                  if (!this.pointerEvents) {
                    this.element.style.pointerEvents = "none";
                  }
                  this.updateLayers();
                  this.updateDimensions();
                  this.enable();
                  this.queueCalibration(this.calibrationDelay);
                }
              }, {
                key: "doReadyCallback",
                value: function doReadyCallback() {
                  if (this.onReady) {
                    this.onReady();
                  }
                }
              }, {
                key: "updateLayers",
                value: function updateLayers() {
                  if (this.selector) {
                    this.layers = this.element.querySelectorAll(this.selector);
                  } else {
                    this.layers = this.element.children;
                  }
                  if (!this.layers.length) {
                    console.warn("ParallaxJS: Your scene does not have any layers.");
                  }
                  this.depthsX = [];
                  this.depthsY = [];
                  for (var index = 0; index < this.layers.length; index++) {
                    var layer = this.layers[index];
                    if (this.transform3DSupport) {
                      helpers.accelerate(layer);
                    }
                    layer.style.position = index ? "absolute" : "relative";
                    layer.style.display = "block";
                    layer.style.left = 0;
                    layer.style.top = 0;
                    var depth = helpers.data(layer, "depth") || 0;
                    this.depthsX.push(helpers.data(layer, "depth-x") || depth);
                    this.depthsY.push(helpers.data(layer, "depth-y") || depth);
                  }
                }
              }, {
                key: "updateDimensions",
                value: function updateDimensions() {
                  this.windowWidth = window.innerWidth;
                  this.windowHeight = window.innerHeight;
                  this.windowCenterX = this.windowWidth * this.originX;
                  this.windowCenterY = this.windowHeight * this.originY;
                  this.windowRadiusX = Math.max(this.windowCenterX, this.windowWidth - this.windowCenterX);
                  this.windowRadiusY = Math.max(this.windowCenterY, this.windowHeight - this.windowCenterY);
                }
              }, {
                key: "updateBounds",
                value: function updateBounds() {
                  this.bounds = this.inputElement.getBoundingClientRect();
                  this.elementPositionX = this.bounds.left;
                  this.elementPositionY = this.bounds.top;
                  this.elementWidth = this.bounds.width;
                  this.elementHeight = this.bounds.height;
                  this.elementCenterX = this.elementWidth * this.originX;
                  this.elementCenterY = this.elementHeight * this.originY;
                  this.elementRangeX = Math.max(this.elementCenterX, this.elementWidth - this.elementCenterX);
                  this.elementRangeY = Math.max(this.elementCenterY, this.elementHeight - this.elementCenterY);
                }
              }, {
                key: "queueCalibration",
                value: function queueCalibration(delay) {
                  clearTimeout(this.calibrationTimer);
                  this.calibrationTimer = setTimeout(this.onCalibrationTimer, delay);
                }
              }, {
                key: "enable",
                value: function enable() {
                  if (this.enabled) {
                    return;
                  }
                  this.enabled = true;
                  if (this.orientationSupport) {
                    this.portrait = false;
                    window.addEventListener("deviceorientation", this.onDeviceOrientation);
                    this.detectionTimer = setTimeout(this.onOrientationTimer, this.supportDelay);
                  } else if (this.motionSupport) {
                    this.portrait = false;
                    window.addEventListener("devicemotion", this.onDeviceMotion);
                    this.detectionTimer = setTimeout(this.onMotionTimer, this.supportDelay);
                  } else {
                    this.calibrationX = 0;
                    this.calibrationY = 0;
                    this.portrait = false;
                    window.addEventListener("mousemove", this.onMouseMove);
                    this.doReadyCallback();
                  }
                  window.addEventListener("resize", this.onWindowResize);
                  this.raf = rqAnFr(this.onAnimationFrame);
                }
              }, {
                key: "disable",
                value: function disable() {
                  if (!this.enabled) {
                    return;
                  }
                  this.enabled = false;
                  if (this.orientationSupport) {
                    window.removeEventListener("deviceorientation", this.onDeviceOrientation);
                  } else if (this.motionSupport) {
                    window.removeEventListener("devicemotion", this.onDeviceMotion);
                  } else {
                    window.removeEventListener("mousemove", this.onMouseMove);
                  }
                  window.removeEventListener("resize", this.onWindowResize);
                  rqAnFr.cancel(this.raf);
                }
              }, {
                key: "calibrate",
                value: function calibrate(x, y) {
                  this.calibrateX = x === void 0 ? this.calibrateX : x;
                  this.calibrateY = y === void 0 ? this.calibrateY : y;
                }
              }, {
                key: "invert",
                value: function invert(x, y) {
                  this.invertX = x === void 0 ? this.invertX : x;
                  this.invertY = y === void 0 ? this.invertY : y;
                }
              }, {
                key: "friction",
                value: function friction(x, y) {
                  this.frictionX = x === void 0 ? this.frictionX : x;
                  this.frictionY = y === void 0 ? this.frictionY : y;
                }
              }, {
                key: "scalar",
                value: function scalar(x, y) {
                  this.scalarX = x === void 0 ? this.scalarX : x;
                  this.scalarY = y === void 0 ? this.scalarY : y;
                }
              }, {
                key: "limit",
                value: function limit(x, y) {
                  this.limitX = x === void 0 ? this.limitX : x;
                  this.limitY = y === void 0 ? this.limitY : y;
                }
              }, {
                key: "origin",
                value: function origin(x, y) {
                  this.originX = x === void 0 ? this.originX : x;
                  this.originY = y === void 0 ? this.originY : y;
                }
              }, {
                key: "setInputElement",
                value: function setInputElement(element) {
                  this.inputElement = element;
                  this.updateDimensions();
                }
              }, {
                key: "setPosition",
                value: function setPosition(element, x, y) {
                  x = x.toFixed(this.precision) + "px";
                  y = y.toFixed(this.precision) + "px";
                  if (this.transform3DSupport) {
                    helpers.css(element, "transform", "translate3d(" + x + "," + y + ",0)");
                  } else if (this.transform2DSupport) {
                    helpers.css(element, "transform", "translate(" + x + "," + y + ")");
                  } else {
                    element.style.left = x;
                    element.style.top = y;
                  }
                }
              }, {
                key: "onOrientationTimer",
                value: function onOrientationTimer() {
                  if (this.orientationSupport && this.orientationStatus === 0) {
                    this.disable();
                    this.orientationSupport = false;
                    this.enable();
                  } else {
                    this.doReadyCallback();
                  }
                }
              }, {
                key: "onMotionTimer",
                value: function onMotionTimer() {
                  if (this.motionSupport && this.motionStatus === 0) {
                    this.disable();
                    this.motionSupport = false;
                    this.enable();
                  } else {
                    this.doReadyCallback();
                  }
                }
              }, {
                key: "onCalibrationTimer",
                value: function onCalibrationTimer() {
                  this.calibrationFlag = true;
                }
              }, {
                key: "onWindowResize",
                value: function onWindowResize() {
                  this.updateDimensions();
                }
              }, {
                key: "onAnimationFrame",
                value: function onAnimationFrame() {
                  this.updateBounds();
                  var calibratedInputX = this.inputX - this.calibrationX,
                    calibratedInputY = this.inputY - this.calibrationY;
                  if (Math.abs(calibratedInputX) > this.calibrationThreshold || Math.abs(calibratedInputY) > this.calibrationThreshold) {
                    this.queueCalibration(0);
                  }
                  if (this.portrait) {
                    this.motionX = this.calibrateX ? calibratedInputY : this.inputY;
                    this.motionY = this.calibrateY ? calibratedInputX : this.inputX;
                  } else {
                    this.motionX = this.calibrateX ? calibratedInputX : this.inputX;
                    this.motionY = this.calibrateY ? calibratedInputY : this.inputY;
                  }
                  this.motionX *= this.elementWidth * (this.scalarX / 100);
                  this.motionY *= this.elementHeight * (this.scalarY / 100);
                  if (!isNaN(parseFloat(this.limitX))) {
                    this.motionX = helpers.clamp(this.motionX, -this.limitX, this.limitX);
                  }
                  if (!isNaN(parseFloat(this.limitY))) {
                    this.motionY = helpers.clamp(this.motionY, -this.limitY, this.limitY);
                  }
                  this.velocityX += (this.motionX - this.velocityX) * this.frictionX;
                  this.velocityY += (this.motionY - this.velocityY) * this.frictionY;
                  for (var index = 0; index < this.layers.length; index++) {
                    var layer = this.layers[index],
                      depthX = this.depthsX[index],
                      depthY = this.depthsY[index],
                      xOffset = this.velocityX * (depthX * (this.invertX ? -1 : 1)),
                      yOffset = this.velocityY * (depthY * (this.invertY ? -1 : 1));
                    this.setPosition(layer, xOffset, yOffset);
                  }
                  this.raf = rqAnFr(this.onAnimationFrame);
                }
              }, {
                key: "rotate",
                value: function rotate(beta, gamma) {
                  var x = (beta || 0) / MAGIC_NUMBER,
                    y = (gamma || 0) / MAGIC_NUMBER;
                  var portrait = this.windowHeight > this.windowWidth;
                  if (this.portrait !== portrait) {
                    this.portrait = portrait;
                    this.calibrationFlag = true;
                  }
                  if (this.calibrationFlag) {
                    this.calibrationFlag = false;
                    this.calibrationX = x;
                    this.calibrationY = y;
                  }
                  this.inputX = x;
                  this.inputY = y;
                }
              }, {
                key: "onDeviceOrientation",
                value: function onDeviceOrientation(event) {
                  var beta = event.beta;
                  var gamma = event.gamma;
                  if (beta !== null && gamma !== null) {
                    this.orientationStatus = 1;
                    this.rotate(beta, gamma);
                  }
                }
              }, {
                key: "onDeviceMotion",
                value: function onDeviceMotion(event) {
                  var beta = event.rotationRate.beta;
                  var gamma = event.rotationRate.gamma;
                  if (beta !== null && gamma !== null) {
                    this.motionStatus = 1;
                    this.rotate(beta, gamma);
                  }
                }
              }, {
                key: "onMouseMove",
                value: function onMouseMove(event) {
                  var clientX = event.clientX,
                    clientY = event.clientY;
                  if (this.hoverOnly && (clientX < this.elementPositionX || clientX > this.elementPositionX + this.elementWidth || clientY < this.elementPositionY || clientY > this.elementPositionY + this.elementHeight)) {
                    this.inputX = 0;
                    this.inputY = 0;
                    return;
                  }
                  if (this.relativeInput) {
                    if (this.clipRelativeInput) {
                      clientX = Math.max(clientX, this.elementPositionX);
                      clientX = Math.min(clientX, this.elementPositionX + this.elementWidth);
                      clientY = Math.max(clientY, this.elementPositionY);
                      clientY = Math.min(clientY, this.elementPositionY + this.elementHeight);
                    }
                    if (this.elementRangeX && this.elementRangeY) {
                      this.inputX = (clientX - this.elementPositionX - this.elementCenterX) / this.elementRangeX;
                      this.inputY = (clientY - this.elementPositionY - this.elementCenterY) / this.elementRangeY;
                    }
                  } else {
                    if (this.windowRadiusX && this.windowRadiusY) {
                      this.inputX = (clientX - this.windowCenterX) / this.windowRadiusX;
                      this.inputY = (clientY - this.windowCenterY) / this.windowRadiusY;
                    }
                  }
                }
              }, {
                key: "destroy",
                value: function destroy() {
                  this.disable();
                  clearTimeout(this.calibrationTimer);
                  clearTimeout(this.detectionTimer);
                  this.element.removeAttribute("style");
                  for (var index = 0; index < this.layers.length; index++) {
                    this.layers[index].removeAttribute("style");
                  }
                  delete this.element;
                  delete this.layers;
                }
              }, {
                key: "version",
                value: function version() {
                  return "3.1.0";
                }
              }]);
              return Parallax3;
            }();
            module3.exports = Parallax2;
          }, {
            "object-assign": 1,
            "raf": 4
          }]
        }, {}, [5])(5);
      });
    }
  });

  // src/main.js
  var import_parallax_js = __toESM(require_parallax());
  if (!window.SLOADED) {
    window.SLOADED = {};
    window.RELOAD = true;
  } else {
    window.RELOAD = false;
  }
  var scene = document.createElement("div");
  body.appendChild(scene);
  scene.id = "scene";
  scene.dataset.turboPermanent = "true";
  scene.style.zIndex = -100;
  scene.style.position = "fixed";
  scene.id = "parallax-bg";
  scene.style.inset = "-300px";
  var img = document.createElement("img");
  scene.appendChild(img);
  img.src = "/mediawiki/images/9/93/Qysf-background1.jpg";
  img.dataset.depth = 0.5;
  new import_parallax_js["default"](scene);
})();
/*! Bundled license information:

parallax-js/dist/parallax.js:
  (*
  object-assign
  (c) Sindre Sorhus
  @license MIT
  *)
*/