diff --git a/.vitepress/cache/deps/@fancyapps_ui.js b/.vitepress/cache/deps/@fancyapps_ui.js deleted file mode 100644 index 2078275..0000000 --- a/.vitepress/cache/deps/@fancyapps_ui.js +++ /dev/null @@ -1,3264 +0,0 @@ -// node_modules/.pnpm/registry.npmmirror.com+@fancyapps+ui@5.0.22/node_modules/@fancyapps/ui/dist/index.esm.js -var t = (t2, e2 = 1e4) => (t2 = parseFloat(t2 + "") || 0, Math.round((t2 + Number.EPSILON) * e2) / e2); -var e = function(t2) { - if (!(t2 && t2 instanceof Element && t2.offsetParent)) - return false; - const e2 = t2.scrollHeight > t2.clientHeight, i2 = window.getComputedStyle(t2).overflowY, n2 = -1 !== i2.indexOf("hidden"), s2 = -1 !== i2.indexOf("visible"); - return e2 && !n2 && !s2; -}; -var i = function(t2, n2 = void 0) { - return !(!t2 || t2 === document.body || n2 && t2 === n2) && (e(t2) ? t2 : i(t2.parentElement, n2)); -}; -var n = function(t2) { - var e2 = new DOMParser().parseFromString(t2, "text/html").body; - if (e2.childElementCount > 1) { - for (var i2 = document.createElement("div"); e2.firstChild; ) - i2.appendChild(e2.firstChild); - return i2; - } - return e2.firstChild; -}; -var s = (t2) => `${t2 || ""}`.split(" ").filter((t3) => !!t3); -var o = (t2, e2, i2) => { - s(e2).forEach((e3) => { - t2 && t2.classList.toggle(e3, i2 || false); - }); -}; -var a = class { - constructor(t2) { - Object.defineProperty(this, "pageX", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "pageY", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "clientX", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "clientY", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "id", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "time", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "nativePointer", { enumerable: true, configurable: true, writable: true, value: void 0 }), this.nativePointer = t2, this.pageX = t2.pageX, this.pageY = t2.pageY, this.clientX = t2.clientX, this.clientY = t2.clientY, this.id = self.Touch && t2 instanceof Touch ? t2.identifier : -1, this.time = Date.now(); - } -}; -var r = { passive: false }; -var l = class { - constructor(t2, { start: e2 = () => true, move: i2 = () => { - }, end: n2 = () => { - } }) { - Object.defineProperty(this, "element", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "startCallback", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "moveCallback", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "endCallback", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "currentPointers", { enumerable: true, configurable: true, writable: true, value: [] }), Object.defineProperty(this, "startPointers", { enumerable: true, configurable: true, writable: true, value: [] }), this.element = t2, this.startCallback = e2, this.moveCallback = i2, this.endCallback = n2; - for (const t3 of ["onPointerStart", "onTouchStart", "onMove", "onTouchEnd", "onPointerEnd", "onWindowBlur"]) - this[t3] = this[t3].bind(this); - this.element.addEventListener("mousedown", this.onPointerStart, r), this.element.addEventListener("touchstart", this.onTouchStart, r), this.element.addEventListener("touchmove", this.onMove, r), this.element.addEventListener("touchend", this.onTouchEnd), this.element.addEventListener("touchcancel", this.onTouchEnd); - } - onPointerStart(t2) { - if (!t2.buttons || 0 !== t2.button) - return; - const e2 = new a(t2); - this.currentPointers.some((t3) => t3.id === e2.id) || this.triggerPointerStart(e2, t2) && (window.addEventListener("mousemove", this.onMove), window.addEventListener("mouseup", this.onPointerEnd), window.addEventListener("blur", this.onWindowBlur)); - } - onTouchStart(t2) { - for (const e2 of Array.from(t2.changedTouches || [])) - this.triggerPointerStart(new a(e2), t2); - window.addEventListener("blur", this.onWindowBlur); - } - onMove(t2) { - const e2 = this.currentPointers.slice(), i2 = "changedTouches" in t2 ? Array.from(t2.changedTouches || []).map((t3) => new a(t3)) : [new a(t2)], n2 = []; - for (const t3 of i2) { - const e3 = this.currentPointers.findIndex((e4) => e4.id === t3.id); - e3 < 0 || (n2.push(t3), this.currentPointers[e3] = t3); - } - n2.length && this.moveCallback(t2, this.currentPointers.slice(), e2); - } - onPointerEnd(t2) { - t2.buttons > 0 && 0 !== t2.button || (this.triggerPointerEnd(t2, new a(t2)), window.removeEventListener("mousemove", this.onMove), window.removeEventListener("mouseup", this.onPointerEnd), window.removeEventListener("blur", this.onWindowBlur)); - } - onTouchEnd(t2) { - for (const e2 of Array.from(t2.changedTouches || [])) - this.triggerPointerEnd(t2, new a(e2)); - } - triggerPointerStart(t2, e2) { - return !!this.startCallback(e2, t2, this.currentPointers.slice()) && (this.currentPointers.push(t2), this.startPointers.push(t2), true); - } - triggerPointerEnd(t2, e2) { - const i2 = this.currentPointers.findIndex((t3) => t3.id === e2.id); - i2 < 0 || (this.currentPointers.splice(i2, 1), this.startPointers.splice(i2, 1), this.endCallback(t2, e2, this.currentPointers.slice())); - } - onWindowBlur() { - this.clear(); - } - clear() { - for (; this.currentPointers.length; ) { - const t2 = this.currentPointers[this.currentPointers.length - 1]; - this.currentPointers.splice(this.currentPointers.length - 1, 1), this.startPointers.splice(this.currentPointers.length - 1, 1), this.endCallback(new Event("touchend", { bubbles: true, cancelable: true, clientX: t2.clientX, clientY: t2.clientY }), t2, this.currentPointers.slice()); - } - } - stop() { - this.element.removeEventListener("mousedown", this.onPointerStart, r), this.element.removeEventListener("touchstart", this.onTouchStart, r), this.element.removeEventListener("touchmove", this.onMove, r), this.element.removeEventListener("touchend", this.onTouchEnd), this.element.removeEventListener("touchcancel", this.onTouchEnd), window.removeEventListener("mousemove", this.onMove), window.removeEventListener("mouseup", this.onPointerEnd), window.removeEventListener("blur", this.onWindowBlur); - } -}; -function c(t2, e2) { - return e2 ? Math.sqrt(Math.pow(e2.clientX - t2.clientX, 2) + Math.pow(e2.clientY - t2.clientY, 2)) : 0; -} -function h(t2, e2) { - return e2 ? { clientX: (t2.clientX + e2.clientX) / 2, clientY: (t2.clientY + e2.clientY) / 2 } : t2; -} -var d = (t2) => "object" == typeof t2 && null !== t2 && t2.constructor === Object && "[object Object]" === Object.prototype.toString.call(t2); -var u = (t2, ...e2) => { - const i2 = e2.length; - for (let n2 = 0; n2 < i2; n2++) { - const i3 = e2[n2] || {}; - Object.entries(i3).forEach(([e3, i4]) => { - const n3 = Array.isArray(i4) ? [] : {}; - t2[e3] || Object.assign(t2, { [e3]: n3 }), d(i4) ? Object.assign(t2[e3], u(n3, i4)) : Array.isArray(i4) ? Object.assign(t2, { [e3]: [...i4] }) : Object.assign(t2, { [e3]: i4 }); - }); - } - return t2; -}; -var p = function(t2, e2) { - return t2.split(".").reduce((t3, e3) => "object" == typeof t3 ? t3[e3] : void 0, e2); -}; -var f = class { - constructor(t2 = {}) { - Object.defineProperty(this, "options", { enumerable: true, configurable: true, writable: true, value: t2 }), Object.defineProperty(this, "events", { enumerable: true, configurable: true, writable: true, value: /* @__PURE__ */ new Map() }), this.setOptions(t2); - for (const t3 of Object.getOwnPropertyNames(Object.getPrototypeOf(this))) - t3.startsWith("on") && "function" == typeof this[t3] && (this[t3] = this[t3].bind(this)); - } - setOptions(t2) { - this.options = t2 ? u({}, this.constructor.defaults, t2) : {}; - for (const [t3, e2] of Object.entries(this.option("on") || {})) - this.on(t3, e2); - } - option(t2, ...e2) { - let i2 = p(t2, this.options); - return i2 && "function" == typeof i2 && (i2 = i2.call(this, this, ...e2)), i2; - } - optionFor(t2, e2, i2, ...n2) { - let s2 = p(e2, t2); - var o2; - "string" != typeof (o2 = s2) || isNaN(o2) || isNaN(parseFloat(o2)) || (s2 = parseFloat(s2)), "true" === s2 && (s2 = true), "false" === s2 && (s2 = false), s2 && "function" == typeof s2 && (s2 = s2.call(this, this, t2, ...n2)); - let a2 = p(e2, this.options); - return a2 && "function" == typeof a2 ? s2 = a2.call(this, this, t2, ...n2, s2) : void 0 === s2 && (s2 = a2), void 0 === s2 ? i2 : s2; - } - cn(t2) { - const e2 = this.options.classes; - return e2 && e2[t2] || ""; - } - localize(t2, e2 = []) { - t2 = String(t2).replace(/\{\{(\w+).?(\w+)?\}\}/g, (t3, e3, i2) => { - let n2 = ""; - return i2 ? n2 = this.option(`${e3[0] + e3.toLowerCase().substring(1)}.l10n.${i2}`) : e3 && (n2 = this.option(`l10n.${e3}`)), n2 || (n2 = t3), n2; - }); - for (let i2 = 0; i2 < e2.length; i2++) - t2 = t2.split(e2[i2][0]).join(e2[i2][1]); - return t2 = t2.replace(/\{\{(.*?)\}\}/g, (t3, e3) => e3); - } - on(t2, e2) { - let i2 = []; - "string" == typeof t2 ? i2 = t2.split(" ") : Array.isArray(t2) && (i2 = t2), this.events || (this.events = /* @__PURE__ */ new Map()), i2.forEach((t3) => { - let i3 = this.events.get(t3); - i3 || (this.events.set(t3, []), i3 = []), i3.includes(e2) || i3.push(e2), this.events.set(t3, i3); - }); - } - off(t2, e2) { - let i2 = []; - "string" == typeof t2 ? i2 = t2.split(" ") : Array.isArray(t2) && (i2 = t2), i2.forEach((t3) => { - const i3 = this.events.get(t3); - if (Array.isArray(i3)) { - const t4 = i3.indexOf(e2); - t4 > -1 && i3.splice(t4, 1); - } - }); - } - emit(t2, ...e2) { - [...this.events.get(t2) || []].forEach((t3) => t3(this, ...e2)), "*" !== t2 && this.emit("*", t2, ...e2); - } -}; -Object.defineProperty(f, "version", { enumerable: true, configurable: true, writable: true, value: "5.0.22" }), Object.defineProperty(f, "defaults", { enumerable: true, configurable: true, writable: true, value: {} }); -var m = class extends f { - constructor(t2 = {}) { - super(t2), Object.defineProperty(this, "plugins", { enumerable: true, configurable: true, writable: true, value: {} }); - } - attachPlugins(t2 = {}) { - const e2 = /* @__PURE__ */ new Map(); - for (const [i2, n2] of Object.entries(t2)) { - const t3 = this.option(i2), s2 = this.plugins[i2]; - s2 || false === t3 ? s2 && false === t3 && (s2.detach(), delete this.plugins[i2]) : e2.set(i2, new n2(this, t3 || {})); - } - for (const [t3, i2] of e2) - this.plugins[t3] = i2, i2.attach(); - this.emit("attachPlugins"); - } - detachPlugins(t2) { - t2 = t2 || Object.keys(this.plugins); - for (const e2 of t2) { - const t3 = this.plugins[e2]; - t3 && t3.detach(), delete this.plugins[e2]; - } - return this.emit("detachPlugins"), this; - } -}; -var g; -!function(t2) { - t2[t2.Init = 0] = "Init", t2[t2.Error = 1] = "Error", t2[t2.Ready = 2] = "Ready", t2[t2.Panning = 3] = "Panning", t2[t2.Mousemove = 4] = "Mousemove", t2[t2.Destroy = 5] = "Destroy"; -}(g || (g = {})); -var b = ["a", "b", "c", "d", "e", "f"]; -var v = { PANUP: "Move up", PANDOWN: "Move down", PANLEFT: "Move left", PANRIGHT: "Move right", ZOOMIN: "Zoom in", ZOOMOUT: "Zoom out", TOGGLEZOOM: "Toggle zoom level", TOGGLE1TO1: "Toggle zoom level", ITERATEZOOM: "Toggle zoom level", ROTATECCW: "Rotate counterclockwise", ROTATECW: "Rotate clockwise", FLIPX: "Flip horizontally", FLIPY: "Flip vertically", FITX: "Fit horizontally", FITY: "Fit vertically", RESET: "Reset", TOGGLEFS: "Toggle fullscreen" }; -var y = { content: null, width: "auto", height: "auto", panMode: "drag", touch: true, dragMinThreshold: 3, lockAxis: false, mouseMoveFactor: 1, mouseMoveFriction: 0.12, zoom: true, pinchToZoom: true, panOnlyZoomed: "auto", minScale: 1, maxScale: 2, friction: 0.25, dragFriction: 0.35, decelFriction: 0.05, click: "toggleZoom", dblClick: false, wheel: "zoom", wheelLimit: 7, spinner: true, bounds: "auto", infinite: false, rubberband: true, bounce: true, maxVelocity: 75, transformParent: false, classes: { content: "f-panzoom__content", isLoading: "is-loading", canZoomIn: "can-zoom_in", canZoomOut: "can-zoom_out", isDraggable: "is-draggable", isDragging: "is-dragging", inFullscreen: "in-fullscreen", htmlHasFullscreen: "with-panzoom-in-fullscreen" }, l10n: v }; -var w = '
'; -var x = (t2) => t2 && null !== t2 && t2 instanceof Element && "nodeType" in t2; -var E = (t2, e2) => { - t2 && s(e2).forEach((e3) => { - t2.classList.remove(e3); - }); -}; -var S = (t2, e2) => { - t2 && s(e2).forEach((e3) => { - t2.classList.add(e3); - }); -}; -var P = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; -var C = 1e5; -var M = 1e3; -var T = "mousemove"; -var O = "drag"; -var A = "content"; -var z = null; -var L = null; -var R = class _R extends m { - get isTouchDevice() { - return null === L && (L = window.matchMedia("(hover: none)").matches), L; - } - get isMobile() { - return null === z && (z = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)), z; - } - get panMode() { - return this.options.panMode !== T || this.isTouchDevice ? O : T; - } - get panOnlyZoomed() { - const t2 = this.options.panOnlyZoomed; - return "auto" === t2 ? this.isTouchDevice : t2; - } - get isInfinite() { - return this.option("infinite"); - } - get angle() { - return 180 * Math.atan2(this.current.b, this.current.a) / Math.PI || 0; - } - get targetAngle() { - return 180 * Math.atan2(this.target.b, this.target.a) / Math.PI || 0; - } - get scale() { - const { a: t2, b: e2 } = this.current; - return Math.sqrt(t2 * t2 + e2 * e2) || 1; - } - get targetScale() { - const { a: t2, b: e2 } = this.target; - return Math.sqrt(t2 * t2 + e2 * e2) || 1; - } - get minScale() { - return this.option("minScale") || 1; - } - get fullScale() { - const { contentRect: t2 } = this; - return t2.fullWidth / t2.fitWidth || 1; - } - get maxScale() { - return this.fullScale * (this.option("maxScale") || 1) || 1; - } - get coverScale() { - const { containerRect: t2, contentRect: e2 } = this, i2 = Math.max(t2.height / e2.fitHeight, t2.width / e2.fitWidth) || 1; - return Math.min(this.fullScale, i2); - } - get isScaling() { - return Math.abs(this.targetScale - this.scale) > 1e-5 && !this.isResting; - } - get isContentLoading() { - const t2 = this.content; - return !!(t2 && t2 instanceof HTMLImageElement) && !t2.complete; - } - get isResting() { - if (this.isBouncingX || this.isBouncingY) - return false; - for (const t2 of b) { - const e2 = "e" == t2 || "f" === t2 ? 1e-3 : 1e-5; - if (Math.abs(this.target[t2] - this.current[t2]) > e2) - return false; - } - return !(!this.ignoreBounds && !this.checkBounds().inBounds); - } - constructor(t2, e2 = {}, i2 = {}) { - var s2; - if (super(e2), Object.defineProperty(this, "pointerTracker", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "resizeObserver", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "updateTimer", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "clickTimer", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "rAF", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "isTicking", { enumerable: true, configurable: true, writable: true, value: false }), Object.defineProperty(this, "friction", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "ignoreBounds", { enumerable: true, configurable: true, writable: true, value: false }), Object.defineProperty(this, "isBouncingX", { enumerable: true, configurable: true, writable: true, value: false }), Object.defineProperty(this, "isBouncingY", { enumerable: true, configurable: true, writable: true, value: false }), Object.defineProperty(this, "clicks", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "trackingPoints", { enumerable: true, configurable: true, writable: true, value: [] }), Object.defineProperty(this, "pwt", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "cwd", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "pmme", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "state", { enumerable: true, configurable: true, writable: true, value: g.Init }), Object.defineProperty(this, "isDragging", { enumerable: true, configurable: true, writable: true, value: false }), Object.defineProperty(this, "container", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "content", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "spinner", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "containerRect", { enumerable: true, configurable: true, writable: true, value: { width: 0, height: 0, innerWidth: 0, innerHeight: 0 } }), Object.defineProperty(this, "contentRect", { enumerable: true, configurable: true, writable: true, value: { top: 0, right: 0, bottom: 0, left: 0, fullWidth: 0, fullHeight: 0, fitWidth: 0, fitHeight: 0, width: 0, height: 0 } }), Object.defineProperty(this, "dragStart", { enumerable: true, configurable: true, writable: true, value: { x: 0, y: 0, top: 0, left: 0, time: 0 } }), Object.defineProperty(this, "dragOffset", { enumerable: true, configurable: true, writable: true, value: { x: 0, y: 0, time: 0 } }), Object.defineProperty(this, "current", { enumerable: true, configurable: true, writable: true, value: Object.assign({}, P) }), Object.defineProperty(this, "target", { enumerable: true, configurable: true, writable: true, value: Object.assign({}, P) }), Object.defineProperty(this, "velocity", { enumerable: true, configurable: true, writable: true, value: { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 } }), Object.defineProperty(this, "lockedAxis", { enumerable: true, configurable: true, writable: true, value: false }), !t2) - throw new Error("Container Element Not Found"); - this.container = t2, this.initContent(), this.attachPlugins(Object.assign(Object.assign({}, _R.Plugins), i2)), this.emit("init"); - const o2 = this.content; - if (o2.addEventListener("load", this.onLoad), o2.addEventListener("error", this.onError), this.isContentLoading) { - if (this.option("spinner")) { - t2.classList.add(this.cn("isLoading")); - const e3 = n(w); - !t2.contains(o2) || o2.parentElement instanceof HTMLPictureElement ? this.spinner = t2.appendChild(e3) : this.spinner = (null === (s2 = o2.parentElement) || void 0 === s2 ? void 0 : s2.insertBefore(e3, o2)) || null; - } - this.emit("beforeLoad"); - } else - queueMicrotask(() => { - this.enable(); - }); - } - initContent() { - const { container: t2 } = this, e2 = this.cn(A); - let i2 = this.option(A) || t2.querySelector(`.${e2}`); - if (i2 || (i2 = t2.querySelector("img,picture") || t2.firstElementChild, i2 && S(i2, e2)), i2 instanceof HTMLPictureElement && (i2 = i2.querySelector("img")), !i2) - throw new Error("No content found"); - this.content = i2; - } - onLoad() { - this.spinner && (this.spinner.remove(), this.spinner = null), this.option("spinner") && this.container.classList.remove(this.cn("isLoading")), this.emit("afterLoad"), this.state === g.Init ? this.enable() : this.updateMetrics(); - } - onError() { - this.state !== g.Destroy && (this.spinner && (this.spinner.remove(), this.spinner = null), this.stop(), this.detachEvents(), this.state = g.Error, this.emit("error")); - } - attachObserver() { - var t2; - const e2 = () => Math.abs(this.containerRect.width - this.container.getBoundingClientRect().width) > 0.1 || Math.abs(this.containerRect.height - this.container.getBoundingClientRect().height) > 0.1; - this.resizeObserver || void 0 === window.ResizeObserver || (this.resizeObserver = new ResizeObserver(() => { - this.updateTimer || (e2() ? (this.onResize(), this.isMobile && (this.updateTimer = setTimeout(() => { - e2() && this.onResize(), this.updateTimer = null; - }, 500))) : this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null)); - })), null === (t2 = this.resizeObserver) || void 0 === t2 || t2.observe(this.container); - } - detachObserver() { - var t2; - null === (t2 = this.resizeObserver) || void 0 === t2 || t2.disconnect(); - } - attachEvents() { - const { container: t2 } = this; - t2.addEventListener("click", this.onClick, { passive: false, capture: false }), t2.addEventListener("wheel", this.onWheel, { passive: false }), this.pointerTracker = new l(t2, { start: this.onPointerDown, move: this.onPointerMove, end: this.onPointerUp }), document.addEventListener(T, this.onMouseMove); - } - detachEvents() { - var t2; - const { container: e2 } = this; - e2.removeEventListener("click", this.onClick, { passive: false, capture: false }), e2.removeEventListener("wheel", this.onWheel, { passive: false }), null === (t2 = this.pointerTracker) || void 0 === t2 || t2.stop(), this.pointerTracker = null, document.removeEventListener(T, this.onMouseMove), document.removeEventListener("keydown", this.onKeydown, true), this.clickTimer && (clearTimeout(this.clickTimer), this.clickTimer = null), this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null); - } - animate() { - const t2 = this.friction; - this.setTargetForce(); - const e2 = this.option("maxVelocity"); - for (const i2 of b) - t2 ? (this.velocity[i2] *= 1 - t2, e2 && !this.isScaling && (this.velocity[i2] = Math.max(Math.min(this.velocity[i2], e2), -1 * e2)), this.current[i2] += this.velocity[i2]) : this.current[i2] = this.target[i2]; - this.setTransform(), this.setEdgeForce(), !this.isResting || this.isDragging ? this.rAF = requestAnimationFrame(() => this.animate()) : this.stop("current"); - } - setTargetForce() { - for (const t2 of b) - "e" === t2 && this.isBouncingX || "f" === t2 && this.isBouncingY || (this.velocity[t2] = (1 / (1 - this.friction) - 1) * (this.target[t2] - this.current[t2])); - } - checkBounds(t2 = 0, e2 = 0) { - const { current: i2 } = this, n2 = i2.e + t2, s2 = i2.f + e2, o2 = this.getBounds(), { x: a2, y: r2 } = o2, l2 = a2.min, c2 = a2.max, h2 = r2.min, d2 = r2.max; - let u2 = 0, p2 = 0; - return l2 !== 1 / 0 && n2 < l2 ? u2 = l2 - n2 : c2 !== 1 / 0 && n2 > c2 && (u2 = c2 - n2), h2 !== 1 / 0 && s2 < h2 ? p2 = h2 - s2 : d2 !== 1 / 0 && s2 > d2 && (p2 = d2 - s2), Math.abs(u2) < 1e-3 && (u2 = 0), Math.abs(p2) < 1e-3 && (p2 = 0), Object.assign(Object.assign({}, o2), { xDiff: u2, yDiff: p2, inBounds: !u2 && !p2 }); - } - clampTargetBounds() { - const { target: t2 } = this, { x: e2, y: i2 } = this.getBounds(); - e2.min !== 1 / 0 && (t2.e = Math.max(t2.e, e2.min)), e2.max !== 1 / 0 && (t2.e = Math.min(t2.e, e2.max)), i2.min !== 1 / 0 && (t2.f = Math.max(t2.f, i2.min)), i2.max !== 1 / 0 && (t2.f = Math.min(t2.f, i2.max)); - } - calculateContentDim(t2 = this.current) { - const { content: e2, contentRect: i2 } = this, { fitWidth: n2, fitHeight: s2, fullWidth: o2, fullHeight: a2 } = i2; - let r2 = o2, l2 = a2; - if (this.option("zoom") || 0 !== this.angle) { - const i3 = !(e2 instanceof HTMLImageElement) && ("none" === window.getComputedStyle(e2).maxWidth || "none" === window.getComputedStyle(e2).maxHeight), c2 = i3 ? o2 : n2, h2 = i3 ? a2 : s2, d2 = this.getMatrix(t2), u2 = new DOMPoint(0, 0).matrixTransform(d2), p2 = new DOMPoint(0 + c2, 0).matrixTransform(d2), f2 = new DOMPoint(0 + c2, 0 + h2).matrixTransform(d2), m2 = new DOMPoint(0, 0 + h2).matrixTransform(d2), g2 = Math.abs(f2.x - u2.x), b2 = Math.abs(f2.y - u2.y), v2 = Math.abs(m2.x - p2.x), y2 = Math.abs(m2.y - p2.y); - r2 = Math.max(g2, v2), l2 = Math.max(b2, y2); - } - return { contentWidth: r2, contentHeight: l2 }; - } - setEdgeForce() { - if (this.ignoreBounds || this.isDragging || this.panMode === T || this.targetScale < this.scale) - return this.isBouncingX = false, void (this.isBouncingY = false); - const { target: t2 } = this, { x: e2, y: i2, xDiff: n2, yDiff: s2 } = this.checkBounds(); - const o2 = this.option("maxVelocity"); - let a2 = this.velocity.e, r2 = this.velocity.f; - 0 !== n2 ? (this.isBouncingX = true, n2 * a2 <= 0 ? a2 += 0.14 * n2 : (a2 = 0.14 * n2, e2.min !== 1 / 0 && (this.target.e = Math.max(t2.e, e2.min)), e2.max !== 1 / 0 && (this.target.e = Math.min(t2.e, e2.max))), o2 && (a2 = Math.max(Math.min(a2, o2), -1 * o2))) : this.isBouncingX = false, 0 !== s2 ? (this.isBouncingY = true, s2 * r2 <= 0 ? r2 += 0.14 * s2 : (r2 = 0.14 * s2, i2.min !== 1 / 0 && (this.target.f = Math.max(t2.f, i2.min)), i2.max !== 1 / 0 && (this.target.f = Math.min(t2.f, i2.max))), o2 && (r2 = Math.max(Math.min(r2, o2), -1 * o2))) : this.isBouncingY = false, this.isBouncingX && (this.velocity.e = a2), this.isBouncingY && (this.velocity.f = r2); - } - enable() { - const { content: t2 } = this, e2 = new DOMMatrixReadOnly(window.getComputedStyle(t2).transform); - for (const t3 of b) - this.current[t3] = this.target[t3] = e2[t3]; - this.updateMetrics(), this.attachObserver(), this.attachEvents(), this.state = g.Ready, this.emit("ready"); - } - onClick(t2) { - var e2; - this.isDragging && (null === (e2 = this.pointerTracker) || void 0 === e2 || e2.clear(), this.trackingPoints = [], this.startDecelAnim()); - const i2 = t2.target; - if (!i2 || t2.defaultPrevented) - return; - if (i2 && i2.hasAttribute("disabled")) - return t2.preventDefault(), void t2.stopPropagation(); - if ((() => { - const t3 = window.getSelection(); - return t3 && "Range" === t3.type; - })() && !i2.closest("button")) - return; - const n2 = i2.closest("[data-panzoom-action]"), s2 = i2.closest("[data-panzoom-change]"), o2 = n2 || s2, a2 = o2 && x(o2) ? o2.dataset : null; - if (a2) { - const e3 = a2.panzoomChange, i3 = a2.panzoomAction; - if ((e3 || i3) && t2.preventDefault(), e3) { - let t3 = {}; - try { - t3 = JSON.parse(e3); - } catch (t4) { - console && console.warn("The given data was not valid JSON"); - } - return void this.applyChange(t3); - } - if (i3) - return void (this[i3] && this[i3]()); - } - if (Math.abs(this.dragOffset.x) > 3 || Math.abs(this.dragOffset.y) > 3) - return t2.preventDefault(), void t2.stopPropagation(); - const r2 = this.content.getBoundingClientRect(); - if (this.dragStart.time && !this.canZoomOut() && (Math.abs(r2.x - this.dragStart.x) > 2 || Math.abs(r2.y - this.dragStart.y) > 2)) - return; - this.dragStart.time = 0; - const l2 = (e3) => { - this.option("zoom") && e3 && "string" == typeof e3 && /(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e3) && "function" == typeof this[e3] && (t2.preventDefault(), this[e3]({ event: t2 })); - }, c2 = this.option("click", t2), h2 = this.option("dblClick", t2); - h2 ? (this.clicks++, 1 == this.clicks && (this.clickTimer = setTimeout(() => { - 1 === this.clicks ? (this.emit("click", t2), !t2.defaultPrevented && c2 && l2(c2)) : (this.emit("dblClick", t2), t2.defaultPrevented || l2(h2)), this.clicks = 0, this.clickTimer = null; - }, 350))) : (this.emit("click", t2), !t2.defaultPrevented && c2 && l2(c2)); - } - addTrackingPoint(t2) { - const e2 = this.trackingPoints.filter((t3) => t3.time > Date.now() - 100); - e2.push(t2), this.trackingPoints = e2; - } - onPointerDown(t2, e2, i2) { - var n2; - if (false === this.option("touch", t2)) - return false; - this.pwt = 0, this.dragOffset = { x: 0, y: 0, time: 0 }, this.trackingPoints = []; - const s2 = this.content.getBoundingClientRect(); - if (this.dragStart = { x: s2.x, y: s2.y, top: s2.top, left: s2.left, time: Date.now() }, this.clickTimer) - return false; - if (this.panMode === T && this.targetScale > 1) - return t2.preventDefault(), t2.stopPropagation(), false; - const o2 = t2.composedPath()[0]; - if (!i2.length) { - if (["TEXTAREA", "OPTION", "INPUT", "SELECT", "VIDEO", "IFRAME"].includes(o2.nodeName) || o2.closest("[contenteditable]") || o2.closest("[data-selectable]") || o2.closest("[data-draggable]") || o2.closest("[data-clickable]") || o2.closest("[data-panzoom-change]") || o2.closest("[data-panzoom-action]")) - return false; - null === (n2 = window.getSelection()) || void 0 === n2 || n2.removeAllRanges(); - } - if ("mousedown" === t2.type) - ["A", "BUTTON"].includes(o2.nodeName) || t2.preventDefault(); - else if (Math.abs(this.velocity.a) > 0.3) - return false; - return this.target.e = this.current.e, this.target.f = this.current.f, this.stop(), this.isDragging || (this.isDragging = true, this.addTrackingPoint(e2), this.emit("touchStart", t2)), true; - } - onPointerMove(e2, n2, s2) { - if (false === this.option("touch", e2)) - return; - if (!this.isDragging) - return; - if (n2.length < 2 && this.panOnlyZoomed && t(this.targetScale) <= t(this.minScale)) - return; - if (this.emit("touchMove", e2), e2.defaultPrevented) - return; - this.addTrackingPoint(n2[0]); - const { content: o2 } = this, a2 = h(s2[0], s2[1]), r2 = h(n2[0], n2[1]); - let l2 = 0, d2 = 0; - if (n2.length > 1) { - const t2 = o2.getBoundingClientRect(); - l2 = a2.clientX - t2.left - 0.5 * t2.width, d2 = a2.clientY - t2.top - 0.5 * t2.height; - } - const u2 = c(s2[0], s2[1]), p2 = c(n2[0], n2[1]); - let f2 = u2 ? p2 / u2 : 1, m2 = r2.clientX - a2.clientX, g2 = r2.clientY - a2.clientY; - this.dragOffset.x += m2, this.dragOffset.y += g2, this.dragOffset.time = Date.now() - this.dragStart.time; - let b2 = t(this.targetScale) === t(this.minScale) && this.option("lockAxis"); - if (b2 && !this.lockedAxis) - if ("xy" === b2 || "y" === b2 || "touchmove" === e2.type) { - if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) - return void e2.preventDefault(); - const t2 = Math.abs(180 * Math.atan2(this.dragOffset.y, this.dragOffset.x) / Math.PI); - this.lockedAxis = t2 > 45 && t2 < 135 ? "y" : "x", this.dragOffset.x = 0, this.dragOffset.y = 0, m2 = 0, g2 = 0; - } else - this.lockedAxis = b2; - if (i(e2.target, this.content) && (b2 = "x", this.dragOffset.y = 0), b2 && "xy" !== b2 && this.lockedAxis !== b2 && t(this.targetScale) === t(this.minScale)) - return; - e2.cancelable && e2.preventDefault(), this.container.classList.add(this.cn("isDragging")); - const v2 = this.checkBounds(m2, g2); - this.option("rubberband") ? ("x" !== this.isInfinite && (v2.xDiff > 0 && m2 < 0 || v2.xDiff < 0 && m2 > 0) && (m2 *= Math.max(0, 0.5 - Math.abs(0.75 / this.contentRect.fitWidth * v2.xDiff))), "y" !== this.isInfinite && (v2.yDiff > 0 && g2 < 0 || v2.yDiff < 0 && g2 > 0) && (g2 *= Math.max(0, 0.5 - Math.abs(0.75 / this.contentRect.fitHeight * v2.yDiff)))) : (v2.xDiff && (m2 = 0), v2.yDiff && (g2 = 0)); - const y2 = this.targetScale, w2 = this.minScale, x2 = this.maxScale; - y2 < 0.5 * w2 && (f2 = Math.max(f2, w2)), y2 > 1.5 * x2 && (f2 = Math.min(f2, x2)), "y" === this.lockedAxis && t(y2) === t(w2) && (m2 = 0), "x" === this.lockedAxis && t(y2) === t(w2) && (g2 = 0), this.applyChange({ originX: l2, originY: d2, panX: m2, panY: g2, scale: f2, friction: this.option("dragFriction"), ignoreBounds: true }); - } - onPointerUp(t2, e2, n2) { - if (n2.length) - return this.dragOffset.x = 0, this.dragOffset.y = 0, void (this.trackingPoints = []); - this.container.classList.remove(this.cn("isDragging")), this.isDragging && (this.addTrackingPoint(e2), this.panOnlyZoomed && this.contentRect.width - this.contentRect.fitWidth < 1 && this.contentRect.height - this.contentRect.fitHeight < 1 && (this.trackingPoints = []), i(t2.target, this.content) && "y" === this.lockedAxis && (this.trackingPoints = []), this.emit("touchEnd", t2), this.isDragging = false, this.lockedAxis = false, this.state !== g.Destroy && (t2.defaultPrevented || this.startDecelAnim())); - } - startDecelAnim() { - var e2; - const i2 = this.isScaling; - this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = false, this.isBouncingY = false; - for (const t2 of b) - this.velocity[t2] = 0; - this.target.e = this.current.e, this.target.f = this.current.f, E(this.container, "is-scaling"), E(this.container, "is-animating"), this.isTicking = false; - const { trackingPoints: n2 } = this, s2 = n2[0], o2 = n2[n2.length - 1]; - let a2 = 0, r2 = 0, l2 = 0; - o2 && s2 && (a2 = o2.clientX - s2.clientX, r2 = o2.clientY - s2.clientY, l2 = o2.time - s2.time); - const c2 = (null === (e2 = window.visualViewport) || void 0 === e2 ? void 0 : e2.scale) || 1; - 1 !== c2 && (a2 *= c2, r2 *= c2); - let h2 = 0, d2 = 0, u2 = 0, p2 = 0, f2 = this.option("decelFriction"); - const m2 = this.targetScale; - if (l2 > 0) { - u2 = Math.abs(a2) > 3 ? a2 / (l2 / 30) : 0, p2 = Math.abs(r2) > 3 ? r2 / (l2 / 30) : 0; - const t2 = this.option("maxVelocity"); - t2 && (u2 = Math.max(Math.min(u2, t2), -1 * t2), p2 = Math.max(Math.min(p2, t2), -1 * t2)); - } - u2 && (h2 = u2 / (1 / (1 - f2) - 1)), p2 && (d2 = p2 / (1 / (1 - f2) - 1)), ("y" === this.option("lockAxis") || "xy" === this.option("lockAxis") && "y" === this.lockedAxis && t(m2) === this.minScale) && (h2 = u2 = 0), ("x" === this.option("lockAxis") || "xy" === this.option("lockAxis") && "x" === this.lockedAxis && t(m2) === this.minScale) && (d2 = p2 = 0); - const g2 = this.dragOffset.x, v2 = this.dragOffset.y, y2 = this.option("dragMinThreshold") || 0; - Math.abs(g2) < y2 && Math.abs(v2) < y2 && (h2 = d2 = 0, u2 = p2 = 0), (m2 < this.minScale - 1e-5 || m2 > this.maxScale + 1e-5 || i2 && !h2 && !d2) && (f2 = 0.35), this.applyChange({ panX: h2, panY: d2, friction: f2 }), this.emit("decel", u2, p2, g2, v2); - } - onWheel(t2) { - var e2 = [-t2.deltaX || 0, -t2.deltaY || 0, -t2.detail || 0].reduce(function(t3, e3) { - return Math.abs(e3) > Math.abs(t3) ? e3 : t3; - }); - const i2 = Math.max(-1, Math.min(1, e2)); - if (this.emit("wheel", t2, i2), this.panMode === T) - return; - if (t2.defaultPrevented) - return; - const n2 = this.option("wheel"); - "pan" === n2 ? (t2.preventDefault(), this.panOnlyZoomed && !this.canZoomOut() || this.applyChange({ panX: 2 * -t2.deltaX, panY: 2 * -t2.deltaY, bounce: false })) : "zoom" === n2 && false !== this.option("zoom") && this.zoomWithWheel(t2); - } - onMouseMove(t2) { - this.panWithMouse(t2); - } - onKeydown(t2) { - "Escape" === t2.key && this.toggleFS(); - } - onResize() { - this.updateMetrics(), this.checkBounds().inBounds || this.requestTick(); - } - setTransform() { - this.emit("beforeTransform"); - const { current: e2, target: i2, content: n2, contentRect: s2 } = this, o2 = Object.assign({}, P); - for (const n3 of b) { - const s3 = "e" == n3 || "f" === n3 ? M : C; - o2[n3] = t(e2[n3], s3), Math.abs(i2[n3] - e2[n3]) < ("e" == n3 || "f" === n3 ? 0.51 : 1e-3) && (e2[n3] = i2[n3]); - } - let { a: a2, b: r2, c: l2, d: c2, e: h2, f: d2 } = o2, u2 = `matrix(${a2}, ${r2}, ${l2}, ${c2}, ${h2}, ${d2})`, p2 = n2.parentElement instanceof HTMLPictureElement ? n2.parentElement : n2; - if (this.option("transformParent") && (p2 = p2.parentElement || p2), p2.style.transform === u2) - return; - p2.style.transform = u2; - const { contentWidth: f2, contentHeight: m2 } = this.calculateContentDim(); - s2.width = f2, s2.height = m2, this.emit("afterTransform"); - } - updateMetrics(e2 = false) { - var i2; - if (!this || this.state === g.Destroy) - return; - if (this.isContentLoading) - return; - const n2 = Math.max(1, (null === (i2 = window.visualViewport) || void 0 === i2 ? void 0 : i2.scale) || 1), { container: s2, content: o2 } = this, a2 = o2 instanceof HTMLImageElement, r2 = s2.getBoundingClientRect(), l2 = getComputedStyle(this.container); - let c2 = r2.width * n2, h2 = r2.height * n2; - const d2 = parseFloat(l2.paddingTop) + parseFloat(l2.paddingBottom), u2 = c2 - (parseFloat(l2.paddingLeft) + parseFloat(l2.paddingRight)), p2 = h2 - d2; - this.containerRect = { width: c2, height: h2, innerWidth: u2, innerHeight: p2 }; - let f2 = this.option("width") || "auto", m2 = this.option("height") || "auto"; - "auto" === f2 && (f2 = parseFloat(o2.dataset.width || "") || ((t2) => { - let e3 = 0; - return e3 = t2 instanceof HTMLImageElement ? t2.naturalWidth : t2 instanceof SVGElement ? t2.width.baseVal.value : Math.max(t2.offsetWidth, t2.scrollWidth), e3 || 0; - })(o2)), "auto" === m2 && (m2 = parseFloat(o2.dataset.height || "") || ((t2) => { - let e3 = 0; - return e3 = t2 instanceof HTMLImageElement ? t2.naturalHeight : t2 instanceof SVGElement ? t2.height.baseVal.value : Math.max(t2.offsetHeight, t2.scrollHeight), e3 || 0; - })(o2)); - let b2 = o2.parentElement instanceof HTMLPictureElement ? o2.parentElement : o2; - this.option("transformParent") && (b2 = b2.parentElement || b2); - const v2 = b2.getAttribute("style") || ""; - b2.style.setProperty("transform", "none", "important"), a2 && (b2.style.width = "", b2.style.height = ""), b2.offsetHeight; - const y2 = o2.getBoundingClientRect(); - let w2 = y2.width * n2, x2 = y2.height * n2, E2 = 0, S2 = 0; - a2 && (Math.abs(f2 - w2) > 1 || Math.abs(m2 - x2) > 1) && ({ width: w2, height: x2, top: E2, left: S2 } = ((t2, e3, i3, n3) => { - const s3 = i3 / n3; - return s3 > t2 / e3 ? (i3 = t2, n3 = t2 / s3) : (i3 = e3 * s3, n3 = e3), { width: i3, height: n3, top: 0.5 * (e3 - n3), left: 0.5 * (t2 - i3) }; - })(w2, x2, f2, m2)), this.contentRect = Object.assign(Object.assign({}, this.contentRect), { top: y2.top - r2.top + E2, bottom: r2.bottom - y2.bottom + E2, left: y2.left - r2.left + S2, right: r2.right - y2.right + S2, fitWidth: w2, fitHeight: x2, width: w2, height: x2, fullWidth: f2, fullHeight: m2 }), b2.style.cssText = v2, a2 && (b2.style.width = `${w2}px`, b2.style.height = `${x2}px`), this.setTransform(), true !== e2 && this.emit("refresh"), this.ignoreBounds || (t(this.targetScale) < t(this.minScale) ? this.zoomTo(this.minScale, { friction: 0 }) : this.targetScale > this.maxScale ? this.zoomTo(this.maxScale, { friction: 0 }) : this.state === g.Init || this.checkBounds().inBounds || this.requestTick()), this.updateControls(); - } - getBounds() { - const e2 = this.option("bounds"); - if ("auto" !== e2) - return e2; - const { contentWidth: i2, contentHeight: n2 } = this.calculateContentDim(this.target); - let s2 = 0, o2 = 0, a2 = 0, r2 = 0; - const l2 = this.option("infinite"); - if (true === l2 || this.lockedAxis && l2 === this.lockedAxis) - s2 = -1 / 0, a2 = 1 / 0, o2 = -1 / 0, r2 = 1 / 0; - else { - let { containerRect: e3, contentRect: l3 } = this, c2 = t(this.contentRect.fitWidth * this.targetScale, M), h2 = t(this.contentRect.fitHeight * this.targetScale, M), { innerWidth: d2, innerHeight: u2 } = e3; - if (this.containerRect.width === c2 && (d2 = e3.width), this.containerRect.width === h2 && (u2 = e3.height), i2 > d2) { - a2 = 0.5 * (i2 - d2), s2 = -1 * a2; - let t2 = 0.5 * (l3.right - l3.left); - s2 += t2, a2 += t2; - } - if (this.contentRect.fitWidth > d2 && i2 < d2 && (s2 -= 0.5 * (this.contentRect.fitWidth - d2), a2 -= 0.5 * (this.contentRect.fitWidth - d2)), n2 > u2) { - r2 = 0.5 * (n2 - u2), o2 = -1 * r2; - let t2 = 0.5 * (l3.bottom - l3.top); - o2 += t2, r2 += t2; - } - this.contentRect.fitHeight > u2 && n2 < u2 && (s2 -= 0.5 * (this.contentRect.fitHeight - u2), a2 -= 0.5 * (this.contentRect.fitHeight - u2)); - } - return { x: { min: s2, max: a2 }, y: { min: o2, max: r2 } }; - } - updateControls() { - const e2 = this, i2 = e2.container, { panMode: n2, contentRect: s2, fullScale: a2, targetScale: r2, coverScale: l2, maxScale: c2, minScale: h2 } = e2; - let d2 = { toggleMax: r2 - h2 < 0.5 * (c2 - h2) ? c2 : h2, toggleCover: r2 - h2 < 0.5 * (l2 - h2) ? l2 : h2, toggleZoom: r2 - h2 < 0.5 * (a2 - h2) ? a2 : h2 }[e2.option("click") || ""] || h2, u2 = e2.canZoomIn(), p2 = e2.canZoomOut(), f2 = n2 === O && !!this.option("touch"), m2 = p2 && f2; - f2 && (t(r2) < t(h2) && !this.panOnlyZoomed && (m2 = true), (t(s2.width, 1) > t(s2.fitWidth, 1) || t(s2.height, 1) > t(s2.fitHeight, 1)) && (m2 = true)), t(s2.width * r2, 1) < t(s2.fitWidth, 1) && (m2 = false), n2 === T && (m2 = false); - let g2 = u2 && t(d2) > t(r2), b2 = !g2 && !m2 && p2 && t(d2) < t(r2); - o(i2, this.cn("canZoomIn"), g2), o(i2, this.cn("canZoomOut"), b2), o(i2, this.cn("isDraggable"), m2); - for (const t2 of i2.querySelectorAll('[data-panzoom-action="zoomIn"]')) - u2 ? (t2.removeAttribute("disabled"), t2.removeAttribute("tabindex")) : (t2.setAttribute("disabled", ""), t2.setAttribute("tabindex", "-1")); - for (const t2 of i2.querySelectorAll('[data-panzoom-action="zoomOut"]')) - p2 ? (t2.removeAttribute("disabled"), t2.removeAttribute("tabindex")) : (t2.setAttribute("disabled", ""), t2.setAttribute("tabindex", "-1")); - for (const t2 of i2.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')) { - u2 || p2 ? (t2.removeAttribute("disabled"), t2.removeAttribute("tabindex")) : (t2.setAttribute("disabled", ""), t2.setAttribute("tabindex", "-1")); - const e3 = t2.querySelector("g"); - e3 && (e3.style.display = u2 ? "" : "none"); - } - } - panTo({ x: t2 = this.target.e, y: e2 = this.target.f, scale: i2 = this.targetScale, friction: n2 = this.option("friction"), angle: s2 = 0, originX: o2 = 0, originY: a2 = 0, flipX: r2 = false, flipY: l2 = false, ignoreBounds: c2 = false }) { - this.state !== g.Destroy && this.applyChange({ panX: t2 - this.target.e, panY: e2 - this.target.f, scale: i2 / this.targetScale, angle: s2, originX: o2, originY: a2, friction: n2, flipX: r2, flipY: l2, ignoreBounds: c2 }); - } - applyChange({ panX: e2 = 0, panY: i2 = 0, scale: n2 = 1, angle: s2 = 0, originX: o2 = -this.current.e, originY: a2 = -this.current.f, friction: r2 = this.option("friction"), flipX: l2 = false, flipY: c2 = false, ignoreBounds: h2 = false, bounce: d2 = this.option("bounce") }) { - if (this.state === g.Destroy) - return; - this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.friction = r2 || 0, this.ignoreBounds = h2; - const { current: u2 } = this, p2 = u2.e, f2 = u2.f, m2 = this.getMatrix(this.target); - let v2 = new DOMMatrix().translate(p2, f2).translate(o2, a2).translate(e2, i2); - if (this.option("zoom")) { - if (!h2) { - const t2 = this.targetScale, e3 = this.minScale, i3 = this.maxScale; - t2 * n2 < e3 && (n2 = e3 / t2), t2 * n2 > i3 && (n2 = i3 / t2); - } - v2 = v2.scale(n2); - } - v2 = v2.translate(-o2, -a2).translate(-p2, -f2).multiply(m2), s2 && (v2 = v2.rotate(s2)), l2 && (v2 = v2.scale(-1, 1)), c2 && (v2 = v2.scale(1, -1)); - for (const e3 of b) - "e" !== e3 && "f" !== e3 && (v2[e3] > this.minScale + 1e-5 || v2[e3] < this.minScale - 1e-5) ? this.target[e3] = v2[e3] : this.target[e3] = t(v2[e3], M); - (this.targetScale < this.scale || Math.abs(n2 - 1) > 0.1 || this.panMode === T || false === d2) && !h2 && this.clampTargetBounds(), this.isResting || (this.state = g.Panning, this.requestTick()); - } - stop(t2 = false) { - if (this.state === g.Init || this.state === g.Destroy) - return; - const e2 = this.isTicking; - this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = false, this.isBouncingY = false; - for (const e3 of b) - this.velocity[e3] = 0, "current" === t2 ? this.current[e3] = this.target[e3] : "target" === t2 && (this.target[e3] = this.current[e3]); - this.setTransform(), E(this.container, "is-scaling"), E(this.container, "is-animating"), this.isTicking = false, this.state = g.Ready, e2 && (this.emit("endAnimation"), this.updateControls()); - } - requestTick() { - this.isTicking || (this.emit("startAnimation"), this.updateControls(), S(this.container, "is-animating"), this.isScaling && S(this.container, "is-scaling")), this.isTicking = true, this.rAF || (this.rAF = requestAnimationFrame(() => this.animate())); - } - panWithMouse(e2, i2 = this.option("mouseMoveFriction")) { - if (this.pmme = e2, this.panMode !== T || !e2) - return; - if (t(this.targetScale) <= t(this.minScale)) - return; - this.emit("mouseMove", e2); - const { container: n2, containerRect: s2, contentRect: o2 } = this, a2 = s2.width, r2 = s2.height, l2 = n2.getBoundingClientRect(), c2 = (e2.clientX || 0) - l2.left, h2 = (e2.clientY || 0) - l2.top; - let { contentWidth: d2, contentHeight: u2 } = this.calculateContentDim(this.target); - const p2 = this.option("mouseMoveFactor"); - p2 > 1 && (d2 !== a2 && (d2 *= p2), u2 !== r2 && (u2 *= p2)); - let f2 = 0.5 * (d2 - a2) - c2 / a2 * 100 / 100 * (d2 - a2); - f2 += 0.5 * (o2.right - o2.left); - let m2 = 0.5 * (u2 - r2) - h2 / r2 * 100 / 100 * (u2 - r2); - m2 += 0.5 * (o2.bottom - o2.top), this.applyChange({ panX: f2 - this.target.e, panY: m2 - this.target.f, friction: i2 }); - } - zoomWithWheel(e2) { - if (this.state === g.Destroy || this.state === g.Init) - return; - const i2 = Date.now(); - if (i2 - this.pwt < 45) - return void e2.preventDefault(); - this.pwt = i2; - var n2 = [-e2.deltaX || 0, -e2.deltaY || 0, -e2.detail || 0].reduce(function(t2, e3) { - return Math.abs(e3) > Math.abs(t2) ? e3 : t2; - }); - const s2 = Math.max(-1, Math.min(1, n2)), { targetScale: o2, maxScale: a2, minScale: r2 } = this; - let l2 = o2 * (100 + 45 * s2) / 100; - t(l2) < t(r2) && t(o2) <= t(r2) ? (this.cwd += Math.abs(s2), l2 = r2) : t(l2) > t(a2) && t(o2) >= t(a2) ? (this.cwd += Math.abs(s2), l2 = a2) : (this.cwd = 0, l2 = Math.max(Math.min(l2, a2), r2)), this.cwd > this.option("wheelLimit") || (e2.preventDefault(), t(l2) !== t(o2) && this.zoomTo(l2, { event: e2 })); - } - canZoomIn() { - return this.option("zoom") && (t(this.contentRect.width, 1) < t(this.contentRect.fitWidth, 1) || t(this.targetScale) < t(this.maxScale)); - } - canZoomOut() { - return this.option("zoom") && t(this.targetScale) > t(this.minScale); - } - zoomIn(t2 = 1.25, e2) { - this.zoomTo(this.targetScale * t2, e2); - } - zoomOut(t2 = 0.8, e2) { - this.zoomTo(this.targetScale * t2, e2); - } - zoomToFit(t2) { - this.zoomTo("fit", t2); - } - zoomToCover(t2) { - this.zoomTo("cover", t2); - } - zoomToFull(t2) { - this.zoomTo("full", t2); - } - zoomToMax(t2) { - this.zoomTo("max", t2); - } - toggleZoom(t2) { - this.zoomTo(this.targetScale - this.minScale < 0.5 * (this.fullScale - this.minScale) ? "full" : "fit", t2); - } - toggleMax(t2) { - this.zoomTo(this.targetScale - this.minScale < 0.5 * (this.maxScale - this.minScale) ? "max" : "fit", t2); - } - toggleCover(t2) { - this.zoomTo(this.targetScale - this.minScale < 0.5 * (this.coverScale - this.minScale) ? "cover" : "fit", t2); - } - iterateZoom(t2) { - this.zoomTo("next", t2); - } - zoomTo(t2 = 1, { friction: e2 = "auto", originX: i2 = "auto", originY: n2 = "auto", event: s2 } = {}) { - if (this.isContentLoading || this.state === g.Destroy) - return; - const { targetScale: o2 } = this; - this.stop(); - let a2 = 1; - if (this.panMode === T && (s2 = this.pmme || s2), s2 || "auto" === i2 || "auto" === n2) { - const t3 = this.content.getBoundingClientRect(), e3 = this.container.getBoundingClientRect(), o3 = s2 ? s2.clientX : e3.left + 0.5 * e3.width, a3 = s2 ? s2.clientY : e3.top + 0.5 * e3.height; - i2 = o3 - t3.left - 0.5 * t3.width, n2 = a3 - t3.top - 0.5 * t3.height; - } - const r2 = this.fullScale, l2 = this.maxScale; - let c2 = this.coverScale; - "number" == typeof t2 ? a2 = t2 / o2 : ("next" === t2 && (r2 - c2 < 0.2 && (c2 = r2), t2 = o2 < r2 - 1e-5 ? "full" : o2 < l2 - 1e-5 ? "max" : "fit"), a2 = "full" === t2 ? r2 / o2 || 1 : "cover" === t2 ? c2 / o2 || 1 : "max" === t2 ? l2 / o2 || 1 : 1 / o2 || 1), e2 = "auto" === e2 ? a2 > 1 ? 0.15 : 0.25 : e2, this.applyChange({ scale: a2, originX: i2, originY: n2, friction: e2 }), s2 && this.panMode === T && this.panWithMouse(s2, e2); - } - rotateCCW() { - this.applyChange({ angle: -90 }); - } - rotateCW() { - this.applyChange({ angle: 90 }); - } - flipX() { - this.applyChange({ flipX: true }); - } - flipY() { - this.applyChange({ flipY: true }); - } - fitX() { - this.stop("target"); - const { containerRect: t2, contentRect: e2, target: i2 } = this; - this.applyChange({ panX: 0.5 * t2.width - (e2.left + 0.5 * e2.fitWidth) - i2.e, panY: 0.5 * t2.height - (e2.top + 0.5 * e2.fitHeight) - i2.f, scale: t2.width / e2.fitWidth / this.targetScale, originX: 0, originY: 0, ignoreBounds: true }); - } - fitY() { - this.stop("target"); - const { containerRect: t2, contentRect: e2, target: i2 } = this; - this.applyChange({ panX: 0.5 * t2.width - (e2.left + 0.5 * e2.fitWidth) - i2.e, panY: 0.5 * t2.innerHeight - (e2.top + 0.5 * e2.fitHeight) - i2.f, scale: t2.height / e2.fitHeight / this.targetScale, originX: 0, originY: 0, ignoreBounds: true }); - } - toggleFS() { - const { container: t2 } = this, e2 = this.cn("inFullscreen"), i2 = this.cn("htmlHasFullscreen"); - t2.classList.toggle(e2); - const n2 = t2.classList.contains(e2); - n2 ? (document.documentElement.classList.add(i2), document.addEventListener("keydown", this.onKeydown, true)) : (document.documentElement.classList.remove(i2), document.removeEventListener("keydown", this.onKeydown, true)), this.updateMetrics(), this.emit(n2 ? "enterFS" : "exitFS"); - } - getMatrix(t2 = this.current) { - const { a: e2, b: i2, c: n2, d: s2, e: o2, f: a2 } = t2; - return new DOMMatrix([e2, i2, n2, s2, o2, a2]); - } - reset(t2) { - if (this.state !== g.Init && this.state !== g.Destroy) { - this.stop("current"); - for (const t3 of b) - this.target[t3] = P[t3]; - this.target.a = this.minScale, this.target.d = this.minScale, this.clampTargetBounds(), this.isResting || (this.friction = void 0 === t2 ? this.option("friction") : t2, this.state = g.Panning, this.requestTick()); - } - } - destroy() { - this.stop(), this.state = g.Destroy, this.detachEvents(), this.detachObserver(); - const { container: t2, content: e2 } = this, i2 = this.option("classes") || {}; - for (const e3 of Object.values(i2)) - t2.classList.remove(e3 + ""); - e2 && (e2.removeEventListener("load", this.onLoad), e2.removeEventListener("error", this.onError)), this.detachPlugins(); - } -}; -Object.defineProperty(R, "defaults", { enumerable: true, configurable: true, writable: true, value: y }), Object.defineProperty(R, "Plugins", { enumerable: true, configurable: true, writable: true, value: {} }); -var k = function(t2, e2) { - let i2 = true; - return (...n2) => { - i2 && (i2 = false, t2(...n2), setTimeout(() => { - i2 = true; - }, e2)); - }; -}; -var I = (t2, e2) => { - let i2 = []; - return t2.childNodes.forEach((t3) => { - t3.nodeType !== Node.ELEMENT_NODE || e2 && !t3.matches(e2) || i2.push(t3); - }), i2; -}; -var D = { viewport: null, track: null, enabled: true, slides: [], axis: "x", transition: "fade", preload: 1, slidesPerPage: "auto", initialPage: 0, friction: 0.12, Panzoom: { decelFriction: 0.12 }, center: true, infinite: true, fill: true, dragFree: false, adaptiveHeight: false, direction: "ltr", classes: { container: "f-carousel", viewport: "f-carousel__viewport", track: "f-carousel__track", slide: "f-carousel__slide", isLTR: "is-ltr", isRTL: "is-rtl", isHorizontal: "is-horizontal", isVertical: "is-vertical", inTransition: "in-transition", isSelected: "is-selected" }, l10n: { NEXT: "Next slide", PREV: "Previous slide", GOTO: "Go to slide #%d" } }; -var F; -!function(t2) { - t2[t2.Init = 0] = "Init", t2[t2.Ready = 1] = "Ready", t2[t2.Destroy = 2] = "Destroy"; -}(F || (F = {})); -var j = (t2) => { - if ("string" == typeof t2 || t2 instanceof HTMLElement) - t2 = { html: t2 }; - else { - const e2 = t2.thumb; - void 0 !== e2 && ("string" == typeof e2 && (t2.thumbSrc = e2), e2 instanceof HTMLImageElement && (t2.thumbEl = e2, t2.thumbElSrc = e2.src, t2.thumbSrc = e2.src), delete t2.thumb); - } - return Object.assign({ html: "", el: null, isDom: false, class: "", customClass: "", index: -1, dim: 0, gap: 0, pos: 0, transition: false }, t2); -}; -var H = (t2 = {}) => Object.assign({ index: -1, slides: [], dim: 0, pos: -1 }, t2); -var B = class extends f { - constructor(t2, e2) { - super(e2), Object.defineProperty(this, "instance", { enumerable: true, configurable: true, writable: true, value: t2 }); - } - attach() { - } - detach() { - } -}; -var N = { classes: { list: "f-carousel__dots", isDynamic: "is-dynamic", hasDots: "has-dots", dot: "f-carousel__dot", isBeforePrev: "is-before-prev", isPrev: "is-prev", isCurrent: "is-current", isNext: "is-next", isAfterNext: "is-after-next" }, dotTpl: '', dynamicFrom: 11, maxCount: 1 / 0, minCount: 2 }; -var _ = class extends B { - constructor() { - super(...arguments), Object.defineProperty(this, "isDynamic", { enumerable: true, configurable: true, writable: true, value: false }), Object.defineProperty(this, "list", { enumerable: true, configurable: true, writable: true, value: null }); - } - onRefresh() { - this.refresh(); - } - build() { - let t2 = this.list; - return t2 || (t2 = document.createElement("ul"), S(t2, this.cn("list")), t2.setAttribute("role", "tablist"), this.instance.container.appendChild(t2), S(this.instance.container, this.cn("hasDots")), this.list = t2), t2; - } - refresh() { - var t2; - const e2 = this.instance.pages.length, i2 = Math.min(2, this.option("minCount")), n2 = Math.max(2e3, this.option("maxCount")), s2 = this.option("dynamicFrom"); - if (e2 < i2 || e2 > n2) - return void this.cleanup(); - const a2 = "number" == typeof s2 && e2 > 5 && e2 >= s2, r2 = !this.list || this.isDynamic !== a2 || this.list.children.length !== e2; - r2 && this.cleanup(); - const l2 = this.build(); - if (o(l2, this.cn("isDynamic"), !!a2), r2) - for (let t3 = 0; t3 < e2; t3++) - l2.append(this.createItem(t3)); - let c2, h2 = 0; - for (const e3 of [...l2.children]) { - const i3 = h2 === this.instance.page; - i3 && (c2 = e3), o(e3, this.cn("isCurrent"), i3), null === (t2 = e3.children[0]) || void 0 === t2 || t2.setAttribute("aria-selected", i3 ? "true" : "false"); - for (const t3 of ["isBeforePrev", "isPrev", "isNext", "isAfterNext"]) - E(e3, this.cn(t3)); - h2++; - } - if (c2 = c2 || l2.firstChild, a2 && c2) { - const t3 = c2.previousElementSibling, e3 = t3 && t3.previousElementSibling; - S(t3, this.cn("isPrev")), S(e3, this.cn("isBeforePrev")); - const i3 = c2.nextElementSibling, n3 = i3 && i3.nextElementSibling; - S(i3, this.cn("isNext")), S(n3, this.cn("isAfterNext")); - } - this.isDynamic = a2; - } - createItem(t2 = 0) { - var e2; - const i2 = document.createElement("li"); - i2.setAttribute("role", "presentation"); - const s2 = n(this.instance.localize(this.option("dotTpl"), [["%d", t2 + 1]]).replace(/\%i/g, t2 + "")); - return i2.appendChild(s2), null === (e2 = i2.children[0]) || void 0 === e2 || e2.setAttribute("role", "tab"), i2; - } - cleanup() { - this.list && (this.list.remove(), this.list = null), this.isDynamic = false, E(this.instance.container, this.cn("hasDots")); - } - attach() { - this.instance.on(["refresh", "change"], this.onRefresh); - } - detach() { - this.instance.off(["refresh", "change"], this.onRefresh), this.cleanup(); - } -}; -Object.defineProperty(_, "defaults", { enumerable: true, configurable: true, writable: true, value: N }); -var W = "disabled"; -var $ = "next"; -var X = "prev"; -var Y = class extends B { - constructor() { - super(...arguments), Object.defineProperty(this, "container", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "prev", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "next", { enumerable: true, configurable: true, writable: true, value: null }); - } - onRefresh() { - const t2 = this.instance, e2 = t2.pages.length, i2 = t2.page; - if (e2 < 2) - return void this.cleanup(); - this.build(); - let n2 = this.prev, s2 = this.next; - n2 && s2 && (n2.removeAttribute(W), s2.removeAttribute(W), t2.isInfinite || (i2 <= 0 && n2.setAttribute(W, ""), i2 >= e2 - 1 && s2.setAttribute(W, ""))); - } - createButton(t2) { - const e2 = this.instance, i2 = document.createElement("button"); - i2.setAttribute("tabindex", "0"), i2.setAttribute("title", e2.localize(`{{${t2.toUpperCase()}}}`)), S(i2, this.cn("button") + " " + this.cn(t2 === $ ? "isNext" : "isPrev")); - const n2 = e2.isRTL ? t2 === $ ? X : $ : t2; - var s2; - return i2.innerHTML = e2.localize(this.option(`${n2}Tpl`)), i2.dataset[`carousel${s2 = t2, s2 ? s2.match("^[a-z]") ? s2.charAt(0).toUpperCase() + s2.substring(1) : s2 : ""}`] = "true", i2; - } - build() { - let t2 = this.container; - t2 || (this.container = t2 = document.createElement("div"), S(t2, this.cn("container")), this.instance.container.appendChild(t2)), this.next || (this.next = t2.appendChild(this.createButton($))), this.prev || (this.prev = t2.appendChild(this.createButton(X))); - } - cleanup() { - this.prev && this.prev.remove(), this.next && this.next.remove(), this.container && this.container.remove(), this.prev = null, this.next = null, this.container = null; - } - attach() { - this.instance.on(["refresh", "change"], this.onRefresh); - } - detach() { - this.instance.off(["refresh", "change"], this.onRefresh), this.cleanup(); - } -}; -Object.defineProperty(Y, "defaults", { enumerable: true, configurable: true, writable: true, value: { classes: { container: "f-carousel__nav", button: "f-button", isNext: "is-next", isPrev: "is-prev" }, nextTpl: '', prevTpl: '' } }); -var q = class extends B { - constructor() { - super(...arguments), Object.defineProperty(this, "selectedIndex", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "target", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "nav", { enumerable: true, configurable: true, writable: true, value: null }); - } - addAsTargetFor(t2) { - this.target = this.instance, this.nav = t2, this.attachEvents(); - } - addAsNavFor(t2) { - this.nav = this.instance, this.target = t2, this.attachEvents(); - } - attachEvents() { - this.nav && this.target && (this.nav.options.initialSlide = this.target.options.initialPage, this.nav.on("ready", this.onNavReady), this.nav.state === F.Ready && this.onNavReady(this.nav), this.target.on("ready", this.onTargetReady), this.target.state === F.Ready && this.onTargetReady(this.target)); - } - onNavReady(t2) { - t2.on("createSlide", this.onNavCreateSlide), t2.on("Panzoom.click", this.onNavClick), t2.on("Panzoom.touchEnd", this.onNavTouch), this.onTargetChange(); - } - onTargetReady(t2) { - t2.on("change", this.onTargetChange), t2.on("Panzoom.refresh", this.onTargetChange), this.onTargetChange(); - } - onNavClick(t2, e2, i2) { - this.onNavTouch(t2, t2.panzoom, i2); - } - onNavTouch(t2, e2, i2) { - var n2, s2; - if (Math.abs(e2.dragOffset.x) > 3 || Math.abs(e2.dragOffset.y) > 3) - return; - const o2 = i2.target, { nav: a2, target: r2 } = this; - if (!a2 || !r2 || !o2) - return; - const l2 = o2.closest("[data-index]"); - if (i2.stopPropagation(), i2.preventDefault(), !l2) - return; - const c2 = parseInt(l2.dataset.index || "", 10) || 0, h2 = r2.getPageForSlide(c2), d2 = a2.getPageForSlide(c2); - a2.slideTo(d2), r2.slideTo(h2, { friction: (null === (s2 = null === (n2 = this.nav) || void 0 === n2 ? void 0 : n2.plugins) || void 0 === s2 ? void 0 : s2.Sync.option("friction")) || 0 }), this.markSelectedSlide(c2); - } - onNavCreateSlide(t2, e2) { - e2.index === this.selectedIndex && this.markSelectedSlide(e2.index); - } - onTargetChange() { - const { target: t2, nav: e2 } = this; - if (!t2 || !e2) - return; - if (e2.state !== F.Ready || t2.state !== F.Ready) - return; - const i2 = t2.pages[t2.page].slides[0].index, n2 = e2.getPageForSlide(i2); - this.markSelectedSlide(i2), e2.slideTo(n2); - } - markSelectedSlide(t2) { - const e2 = this.nav; - e2 && e2.state === F.Ready && (this.selectedIndex = t2, [...e2.slides].map((e3) => { - e3.el && e3.el.classList[e3.index === t2 ? "add" : "remove"]("is-nav-selected"); - })); - } - attach() { - const t2 = this; - let e2 = t2.options.target, i2 = t2.options.nav; - e2 ? t2.addAsNavFor(e2) : i2 && t2.addAsTargetFor(i2); - } - detach() { - const t2 = this, e2 = t2.nav, i2 = t2.target; - e2 && (e2.off("ready", t2.onNavReady), e2.off("createSlide", t2.onNavCreateSlide), e2.off("Panzoom.click", t2.onNavClick), e2.off("Panzoom.touchEnd", t2.onNavTouch)), t2.nav = null, i2 && (i2.off("ready", t2.onTargetReady), i2.off("refresh", t2.onTargetChange), i2.off("change", t2.onTargetChange)), t2.target = null; - } -}; -Object.defineProperty(q, "defaults", { enumerable: true, configurable: true, writable: true, value: { friction: 0.35 } }); -var V = { Navigation: Y, Dots: _, Sync: q }; -var Z = class _Z extends m { - get axis() { - return this.isHorizontal ? "e" : "f"; - } - get isEnabled() { - return this.state === F.Ready; - } - get isInfinite() { - let t2 = false; - const { contentDim: e2, viewportDim: i2, pages: n2, slides: s2 } = this; - return n2.length >= 2 && e2 + s2[0].dim >= i2 && (t2 = this.option("infinite")), t2; - } - get isRTL() { - return "rtl" === this.option("direction"); - } - get isHorizontal() { - return "x" === this.option("axis"); - } - constructor(t2, e2 = {}, i2 = {}) { - if (super(), Object.defineProperty(this, "userOptions", { enumerable: true, configurable: true, writable: true, value: {} }), Object.defineProperty(this, "userPlugins", { enumerable: true, configurable: true, writable: true, value: {} }), Object.defineProperty(this, "bp", { enumerable: true, configurable: true, writable: true, value: "" }), Object.defineProperty(this, "lp", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "state", { enumerable: true, configurable: true, writable: true, value: F.Init }), Object.defineProperty(this, "page", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "prevPage", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "container", { enumerable: true, configurable: true, writable: true, value: void 0 }), Object.defineProperty(this, "viewport", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "track", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "slides", { enumerable: true, configurable: true, writable: true, value: [] }), Object.defineProperty(this, "pages", { enumerable: true, configurable: true, writable: true, value: [] }), Object.defineProperty(this, "panzoom", { enumerable: true, configurable: true, writable: true, value: null }), Object.defineProperty(this, "inTransition", { enumerable: true, configurable: true, writable: true, value: /* @__PURE__ */ new Set() }), Object.defineProperty(this, "contentDim", { enumerable: true, configurable: true, writable: true, value: 0 }), Object.defineProperty(this, "viewportDim", { enumerable: true, configurable: true, writable: true, value: 0 }), "string" == typeof t2 && (t2 = document.querySelector(t2)), !t2 || !x(t2)) - throw new Error("No Element found"); - this.container = t2, this.slideNext = k(this.slideNext.bind(this), 150), this.slidePrev = k(this.slidePrev.bind(this), 150), this.userOptions = e2, this.userPlugins = i2, queueMicrotask(() => { - this.processOptions(); - }); - } - processOptions() { - const t2 = u({}, _Z.defaults, this.userOptions); - let e2 = ""; - const i2 = t2.breakpoints; - if (i2 && d(i2)) - for (const [n2, s2] of Object.entries(i2)) - window.matchMedia(n2).matches && d(s2) && (e2 += n2, u(t2, s2)); - e2 === this.bp && this.state !== F.Init || (this.bp = e2, this.state === F.Ready && (t2.initialSlide = this.pages[this.page].slides[0].index), this.state !== F.Init && this.destroy(), super.setOptions(t2), false === this.option("enabled") ? this.attachEvents() : setTimeout(() => { - this.init(); - }, 0)); - } - init() { - this.state = F.Init, this.emit("init"), this.attachPlugins(Object.assign(Object.assign({}, _Z.Plugins), this.userPlugins)), this.initLayout(), this.initSlides(), this.updateMetrics(), this.setInitialPosition(), this.initPanzoom(), this.attachEvents(), this.state = F.Ready, this.emit("ready"); - } - initLayout() { - const { container: t2 } = this, e2 = this.option("classes"); - S(t2, this.cn("container")), o(t2, e2.isLTR, !this.isRTL), o(t2, e2.isRTL, this.isRTL), o(t2, e2.isVertical, !this.isHorizontal), o(t2, e2.isHorizontal, this.isHorizontal); - let i2 = this.option("viewport") || t2.querySelector(`.${e2.viewport}`); - i2 || (i2 = document.createElement("div"), S(i2, e2.viewport), i2.append(...I(t2, `.${e2.slide}`)), t2.prepend(i2)); - let n2 = this.option("track") || t2.querySelector(`.${e2.track}`); - n2 || (n2 = document.createElement("div"), S(n2, e2.track), n2.append(...Array.from(i2.childNodes))), n2.setAttribute("aria-live", "polite"), i2.contains(n2) || i2.prepend(n2), this.viewport = i2, this.track = n2, this.emit("initLayout"); - } - initSlides() { - const { track: t2 } = this; - if (t2) { - this.slides = [], [...I(t2, `.${this.cn("slide")}`)].forEach((t3) => { - if (x(t3)) { - const e2 = j({ el: t3, isDom: true, index: this.slides.length }); - this.slides.push(e2), this.emit("initSlide", e2, this.slides.length); - } - }); - for (let t3 of this.option("slides", [])) { - const e2 = j(t3); - e2.index = this.slides.length, this.slides.push(e2), this.emit("initSlide", e2, this.slides.length); - } - this.emit("initSlides"); - } - } - setInitialPage() { - let t2 = 0; - const e2 = this.option("initialSlide"); - t2 = "number" == typeof e2 ? this.getPageForSlide(e2) : parseInt(this.option("initialPage", 0) + "", 10) || 0, this.page = t2; - } - setInitialPosition() { - if (!this.track || !this.pages.length) - return; - const t2 = this.isHorizontal; - let e2 = this.page; - this.pages[e2] || (this.page = e2 = 0); - const i2 = this.pages[e2].pos * (this.isRTL && t2 ? 1 : -1), n2 = t2 ? `${i2}px` : "0", s2 = t2 ? "0" : `${i2}px`; - this.track.style.transform = `translate3d(${n2}, ${s2}, 0) scale(1)`, this.option("adaptiveHeight") && this.setViewportHeight(); - } - initPanzoom() { - this.panzoom && (this.panzoom.destroy(), this.panzoom = null); - const t2 = this.option("Panzoom") || {}; - this.panzoom = new R(this.viewport, u({}, { content: this.track, zoom: false, panOnlyZoomed: false, lockAxis: this.isHorizontal ? "x" : "y", infinite: this.isInfinite, click: false, dblClick: false, touch: (t3) => !(this.pages.length < 2 && !t3.options.infinite), bounds: () => this.getBounds(), maxVelocity: (t3) => Math.abs(t3.target[this.axis] - t3.current[this.axis]) < 2 * this.viewportDim ? 100 : 0 }, t2)), this.panzoom.on("*", (t3, e2, ...i2) => { - this.emit(`Panzoom.${e2}`, t3, ...i2); - }), this.panzoom.on("decel", this.onDecel), this.panzoom.on("refresh", this.onRefresh), this.panzoom.on("beforeTransform", this.onBeforeTransform), this.panzoom.on("endAnimation", this.onEndAnimation); - } - attachEvents() { - const t2 = this.container; - t2 && (t2.addEventListener("click", this.onClick, { passive: false, capture: false }), t2.addEventListener("slideTo", this.onSlideTo)), window.addEventListener("resize", this.onResize); - } - createPages() { - let t2 = []; - const { contentDim: e2, viewportDim: i2 } = this; - let n2 = this.option("slidesPerPage"); - ("number" != typeof n2 || e2 <= i2) && (n2 = 1 / 0); - let s2 = 0, o2 = 0, a2 = 0; - for (const e3 of this.slides) - (!t2.length || o2 + e3.dim > i2 || a2 === n2) && (t2.push(H()), s2 = t2.length - 1, o2 = 0, a2 = 0), t2[s2].slides.push(e3), o2 += e3.dim + e3.gap, a2++; - return t2; - } - processPages() { - const e2 = this.pages, { contentDim: i2, viewportDim: n2 } = this, s2 = this.option("center"), o2 = this.option("fill"), a2 = o2 && s2 && i2 > n2 && !this.isInfinite; - if (e2.forEach((t2, e3) => { - t2.index = e3, t2.pos = t2.slides[0].pos, t2.dim = 0; - for (const [e4, i3] of t2.slides.entries()) - t2.dim += i3.dim, e4 < t2.slides.length - 1 && (t2.dim += i3.gap); - a2 && t2.pos + 0.5 * t2.dim < 0.5 * n2 ? t2.pos = 0 : a2 && t2.pos + 0.5 * t2.dim >= i2 - 0.5 * n2 ? t2.pos = i2 - n2 : s2 && (t2.pos += -0.5 * (n2 - t2.dim)); - }), e2.forEach((e3, s3) => { - o2 && !this.isInfinite && i2 > n2 && (e3.pos = Math.max(e3.pos, 0), e3.pos = Math.min(e3.pos, i2 - n2)), e3.pos = t(e3.pos, 1e3), e3.dim = t(e3.dim, 1e3), Math.abs(e3.pos) <= 0.1 && (e3.pos = 0); - }), this.isInfinite) - return e2; - const r2 = []; - let l2; - return e2.forEach((t2) => { - const e3 = Object.assign({}, t2); - l2 && e3.pos === l2.pos ? (l2.dim += e3.dim, l2.slides = [...l2.slides, ...e3.slides]) : (e3.index = r2.length, l2 = e3, r2.push(e3)); - }), r2; - } - getPageFromIndex(t2 = 0) { - const e2 = this.pages.length; - let i2; - return t2 = parseInt((t2 || 0).toString()) || 0, i2 = this.isInfinite ? (t2 % e2 + e2) % e2 : Math.max(Math.min(t2, e2 - 1), 0), i2; - } - getSlideMetrics(e2) { - var i2, n2; - const s2 = this.isHorizontal ? "width" : "height"; - let o2 = 0, a2 = 0, r2 = e2.el; - const l2 = r2 && !r2.parentNode; - if (r2 ? o2 = parseFloat(r2.dataset[s2] || "") || 0 : (r2 = document.createElement("div"), r2.style.visibility = "hidden", (this.track || document.body).prepend(r2)), S(r2, this.cn("slide") + " " + e2.class + " " + e2.customClass), o2) - r2.style[s2] = `${o2}px`, r2.style["width" === s2 ? "height" : "width"] = ""; - else { - l2 && (this.track || document.body).prepend(r2); - const t2 = Math.max(1, (null === (i2 = window.visualViewport) || void 0 === i2 ? void 0 : i2.scale) || 1); - o2 = r2.getBoundingClientRect()[s2] * t2; - } - const c2 = getComputedStyle(r2); - return "content-box" === c2.boxSizing && (this.isHorizontal ? (o2 += parseFloat(c2.paddingLeft) || 0, o2 += parseFloat(c2.paddingRight) || 0) : (o2 += parseFloat(c2.paddingTop) || 0, o2 += parseFloat(c2.paddingBottom) || 0)), a2 = parseFloat(c2[this.isHorizontal ? "marginRight" : "marginBottom"]) || 0, l2 ? null === (n2 = r2.parentElement) || void 0 === n2 || n2.removeChild(r2) : e2.el || r2.remove(), { dim: t(o2, 1e3), gap: t(a2, 1e3) }; - } - getBounds() { - const { isInfinite: t2, isRTL: e2, isHorizontal: i2, pages: n2 } = this; - let s2 = { min: 0, max: 0 }; - if (t2) - s2 = { min: -1 / 0, max: 1 / 0 }; - else if (n2.length) { - const t3 = n2[0].pos, o2 = n2[n2.length - 1].pos; - s2 = e2 && i2 ? { min: t3, max: o2 } : { min: -1 * o2, max: -1 * t3 }; - } - return { x: i2 ? s2 : { min: 0, max: 0 }, y: i2 ? { min: 0, max: 0 } : s2 }; - } - repositionSlides() { - let e2, { isHorizontal: i2, isRTL: n2, isInfinite: s2, viewport: o2, viewportDim: a2, contentDim: r2, page: l2, pages: c2, slides: h2, panzoom: d2 } = this, u2 = 0, p2 = 0, f2 = 0, m2 = 0; - d2 ? m2 = -1 * d2.current[this.axis] : c2[l2] && (m2 = c2[l2].pos || 0), e2 = i2 ? n2 ? "right" : "left" : "top", n2 && i2 && (m2 *= -1); - for (const i3 of h2) - i3.el ? ("top" === e2 ? (i3.el.style.right = "", i3.el.style.left = "") : i3.el.style.top = "", i3.index !== u2 ? i3.el.style[e2] = 0 === p2 ? "" : `${t(p2, 1e3)}px` : i3.el.style[e2] = "", f2 += i3.dim + i3.gap, u2++) : p2 += i3.dim + i3.gap; - if (s2 && f2 && o2) { - let n3 = getComputedStyle(o2), s3 = "padding", l3 = i2 ? "Right" : "Bottom", c3 = parseFloat(n3[s3 + (i2 ? "Left" : "Top")]); - m2 -= c3, a2 += c3, a2 += parseFloat(n3[s3 + l3]); - for (const i3 of h2) - i3.el && (t(i3.pos) < t(a2) && t(i3.pos + i3.dim + i3.gap) < t(m2) && t(m2) > t(r2 - a2) && (i3.el.style[e2] = `${t(p2 + f2, 1e3)}px`), t(i3.pos + i3.gap) >= t(r2 - a2) && t(i3.pos) > t(m2 + a2) && t(m2) < t(a2) && (i3.el.style[e2] = `-${t(f2, 1e3)}px`)); - } - let g2, b2, v2 = [...this.inTransition]; - if (v2.length > 1 && (g2 = c2[v2[0]], b2 = c2[v2[1]]), g2 && b2) { - let i3 = 0; - for (const n3 of h2) - n3.el ? this.inTransition.has(n3.index) && g2.slides.indexOf(n3) < 0 && (n3.el.style[e2] = `${t(i3 + (g2.pos - b2.pos), 1e3)}px`) : i3 += n3.dim + n3.gap; - } - } - createSlideEl(t2) { - const { track: e2, slides: i2 } = this; - if (!e2 || !t2) - return; - if (t2.el && t2.el.parentNode) - return; - const n2 = t2.el || document.createElement("div"); - S(n2, this.cn("slide")), S(n2, t2.class), S(n2, t2.customClass); - const s2 = t2.html; - s2 && (s2 instanceof HTMLElement ? n2.appendChild(s2) : n2.innerHTML = t2.html + ""); - const o2 = []; - i2.forEach((t3, e3) => { - t3.el && o2.push(e3); - }); - const a2 = t2.index; - let r2 = null; - if (o2.length) { - r2 = i2[o2.reduce((t3, e3) => Math.abs(e3 - a2) < Math.abs(t3 - a2) ? e3 : t3)]; - } - const l2 = r2 && r2.el && r2.el.parentNode ? r2.index < t2.index ? r2.el.nextSibling : r2.el : null; - e2.insertBefore(n2, e2.contains(l2) ? l2 : null), t2.el = n2, this.emit("createSlide", t2); - } - removeSlideEl(t2, e2 = false) { - const i2 = t2.el; - if (!i2 || !i2.parentNode) - return; - if (E(i2, this.cn("isSelected")), t2.isDom && !e2) - return i2.removeAttribute("aria-hidden"), i2.removeAttribute("data-index"), E(i2, this.cn("isSelected")), void (i2.style.left = ""); - this.emit("removeSlide", t2); - const n2 = new CustomEvent("animationend"); - i2.dispatchEvent(n2), t2.el && (t2.el.remove(), t2.el = null); - } - transitionTo(t2 = 0, e2 = this.option("transition")) { - if (!e2) - return false; - const { pages: i2, panzoom: n2 } = this; - t2 = parseInt((t2 || 0).toString()) || 0; - const s2 = this.getPageFromIndex(t2); - if (!n2 || !i2[s2] || i2.length < 2 || Math.abs(i2[this.page].slides[0].dim - this.viewportDim) > 1) - return false; - const o2 = t2 > this.page ? 1 : -1, a2 = this.pages[s2].pos * (this.isRTL ? 1 : -1); - if (this.page === s2 && Math.abs(a2 - n2.target[this.axis]) < 1) - return false; - this.clearTransitions(); - const r2 = n2.isResting; - S(this.container, this.cn("inTransition")); - const l2 = this.pages[this.page].slides[0], c2 = this.pages[s2].slides[0]; - this.inTransition.add(c2.index), this.createSlideEl(c2); - let h2 = l2.el, d2 = c2.el; - r2 || "slide" === e2 || (e2 = "fadeFast", h2 = null); - const u2 = this.isRTL ? "next" : "prev", p2 = this.isRTL ? "prev" : "next"; - return h2 && (this.inTransition.add(l2.index), l2.transition = e2, h2.addEventListener("animationend", this.onAnimationEnd), h2.classList.add(`f-${e2}Out`, `to-${o2 > 0 ? p2 : u2}`)), d2 && (c2.transition = e2, d2.addEventListener("animationend", this.onAnimationEnd), d2.classList.add(`f-${e2}In`, `from-${o2 > 0 ? u2 : p2}`)), n2.panTo({ x: this.isHorizontal ? a2 : 0, y: this.isHorizontal ? 0 : a2, friction: 0 }), this.onChange(s2), true; - } - manageSlideVisiblity() { - const t2 = /* @__PURE__ */ new Set(), e2 = /* @__PURE__ */ new Set(), i2 = this.getVisibleSlides(parseFloat(this.option("preload", 0) + "") || 0); - for (const n2 of this.slides) - i2.has(n2) ? t2.add(n2) : e2.add(n2); - for (const e3 of this.inTransition) - t2.add(this.slides[e3]); - for (const e3 of t2) - this.createSlideEl(e3), this.lazyLoadSlide(e3); - for (const i3 of e2) - t2.has(i3) || this.removeSlideEl(i3); - this.markSelectedSlides(), this.repositionSlides(); - } - markSelectedSlides() { - if (!this.pages[this.page] || !this.pages[this.page].slides) - return; - const t2 = "aria-hidden"; - let e2 = this.cn("isSelected"); - if (e2) - for (const i2 of this.slides) - i2.el && (i2.el.dataset.index = `${i2.index}`, this.pages[this.page].slides.includes(i2) ? (i2.el.classList.contains(e2) || (S(i2.el, e2), this.emit("selectSlide", i2)), i2.el.removeAttribute(t2)) : (i2.el.classList.contains(e2) && (E(i2.el, e2), this.emit("unselectSlide", i2)), i2.el.setAttribute(t2, "true"))); - } - flipInfiniteTrack() { - const t2 = this.panzoom; - if (!t2 || !this.isInfinite) - return; - const e2 = "x" === this.option("axis") ? "e" : "f", { viewportDim: i2, contentDim: n2 } = this; - let s2 = t2.current[e2], o2 = t2.target[e2] - s2, a2 = 0, r2 = 0.5 * i2, l2 = n2; - this.isRTL && this.isHorizontal ? (s2 < -r2 && (a2 = -1, s2 += l2), s2 > l2 - r2 && (a2 = 1, s2 -= l2)) : (s2 > r2 && (a2 = 1, s2 -= l2), s2 < -l2 + r2 && (a2 = -1, s2 += l2)), a2 && (t2.current[e2] = s2, t2.target[e2] = s2 + o2); - } - lazyLoadSlide(t2) { - const e2 = this, i2 = t2 && t2.el; - if (!i2) - return; - const s2 = /* @__PURE__ */ new Set(), o2 = "f-fadeIn"; - i2.querySelectorAll("[data-lazy-srcset]").forEach((t3) => { - t3 instanceof HTMLImageElement && s2.add(t3); - }); - let a2 = Array.from(i2.querySelectorAll("[data-lazy-src]")); - i2.dataset.lazySrc && a2.push(i2), a2.map((t3) => { - t3 instanceof HTMLImageElement ? s2.add(t3) : x(t3) && (t3.style.backgroundImage = `url('${t3.dataset.lazySrc || ""}')`, delete t3.dataset.lazySrc); - }); - const r2 = (t3, i3, n2) => { - n2 && (n2.remove(), n2 = null), i3.complete && (i3.classList.add(o2), setTimeout(() => { - i3.classList.remove(o2); - }, 350), i3.style.display = ""), this.option("adaptiveHeight") && t3.el && this.pages[this.page].slides.indexOf(t3) > -1 && (e2.updateMetrics(), e2.setViewportHeight()), this.emit("load", t3); - }; - for (const e3 of s2) { - let i3 = null; - e3.src = e3.dataset.lazySrcset || e3.dataset.lazySrc || "", delete e3.dataset.lazySrc, delete e3.dataset.lazySrcset, e3.style.display = "none", e3.addEventListener("error", () => { - r2(t2, e3, i3); - }), e3.addEventListener("load", () => { - r2(t2, e3, i3); - }), setTimeout(() => { - e3.parentNode && t2.el && (e3.complete ? r2(t2, e3, i3) : (i3 = n(w), e3.parentNode.insertBefore(i3, e3))); - }, 300); - } - } - onAnimationEnd(t2) { - var e2; - const i2 = t2.target, n2 = i2 ? parseInt(i2.dataset.index || "", 10) || 0 : -1, s2 = this.slides[n2], o2 = t2.animationName; - if (!i2 || !s2 || !o2) - return; - const a2 = !!this.inTransition.has(n2) && s2.transition; - a2 && o2.substring(0, a2.length + 2) === `f-${a2}` && this.inTransition.delete(n2), this.inTransition.size || this.clearTransitions(), n2 === this.page && (null === (e2 = this.panzoom) || void 0 === e2 ? void 0 : e2.isResting) && this.emit("settle"); - } - onDecel(t2, e2 = 0, i2 = 0, n2 = 0, s2 = 0) { - const { isRTL: o2, isHorizontal: a2, axis: r2, pages: l2 } = this, c2 = l2.length, h2 = Math.abs(Math.atan2(i2, e2) / (Math.PI / 180)); - let d2 = 0; - if (d2 = h2 > 45 && h2 < 135 ? a2 ? 0 : i2 : a2 ? e2 : 0, !c2) - return; - const u2 = this.option("dragFree"); - let p2 = this.page, f2 = o2 && a2 ? 1 : -1; - const m2 = t2.target[r2] * f2, g2 = t2.current[r2] * f2; - let { pageIndex: b2 } = this.getPageFromPosition(m2), { pageIndex: v2 } = this.getPageFromPosition(g2); - u2 ? this.onChange(b2) : (Math.abs(d2) > 5 ? (l2[p2].dim < document.documentElement["client" + (this.isHorizontal ? "Width" : "Height")] - 1 && (p2 = v2), p2 = o2 && a2 ? d2 < 0 ? p2 - 1 : p2 + 1 : d2 < 0 ? p2 + 1 : p2 - 1) : p2 = 0 === n2 && 0 === s2 ? p2 : v2, this.slideTo(p2, { transition: false, friction: t2.option("decelFriction") })); - } - onClick(t2) { - const e2 = t2.target, i2 = e2 && x(e2) ? e2.dataset : null; - let n2, s2; - i2 && (void 0 !== i2.carouselPage ? (s2 = "slideTo", n2 = i2.carouselPage) : void 0 !== i2.carouselNext ? s2 = "slideNext" : void 0 !== i2.carouselPrev && (s2 = "slidePrev")), s2 ? (t2.preventDefault(), t2.stopPropagation(), e2 && !e2.hasAttribute("disabled") && this[s2](n2)) : this.emit("click", t2); - } - onSlideTo(t2) { - const e2 = t2.detail || 0; - this.slideTo(this.getPageForSlide(e2), { friction: 0 }); - } - onChange(t2, e2 = 0) { - const i2 = this.page; - this.prevPage = i2, this.page = t2, this.option("adaptiveHeight") && this.setViewportHeight(), t2 !== i2 && (this.markSelectedSlides(), this.emit("change", t2, i2, e2)); - } - onRefresh() { - let t2 = this.contentDim, e2 = this.viewportDim; - this.updateMetrics(), this.contentDim === t2 && this.viewportDim === e2 || this.slideTo(this.page, { friction: 0, transition: false }); - } - onResize() { - this.option("breakpoints") && this.processOptions(); - } - onBeforeTransform(t2) { - this.lp !== t2.current[this.axis] && (this.flipInfiniteTrack(), this.manageSlideVisiblity()), this.lp = t2.current.e; - } - onEndAnimation() { - this.inTransition.size || this.emit("settle"); - } - reInit(t2 = null, e2 = null) { - this.destroy(), this.state = F.Init, this.userOptions = t2 || this.userOptions, this.userPlugins = e2 || this.userPlugins, this.processOptions(); - } - slideTo(t2 = 0, { friction: e2 = this.option("friction"), transition: i2 = this.option("transition") } = {}) { - if (this.state === F.Destroy) - return; - const { axis: n2, isHorizontal: s2, isRTL: o2, pages: a2, panzoom: r2 } = this, l2 = a2.length, c2 = o2 && s2 ? 1 : -1; - if (!r2 || !l2) - return; - if (this.transitionTo(t2, i2)) - return; - const h2 = this.getPageFromIndex(t2); - let d2 = a2[h2].pos; - if (this.isInfinite) { - const e3 = this.contentDim, i3 = r2.target[n2] * c2; - if (2 === l2) - d2 += e3 * Math.floor(parseFloat(t2 + "") / 2); - else { - const t3 = i3; - d2 = [d2, d2 - e3, d2 + e3].reduce(function(e4, i4) { - return Math.abs(i4 - t3) < Math.abs(e4 - t3) ? i4 : e4; - }); - } - } - d2 *= c2, Math.abs(r2.target[n2] - d2) < 0.1 || (r2.panTo({ x: s2 ? d2 : 0, y: s2 ? 0 : d2, friction: e2 }), this.onChange(h2)); - } - slideToClosest(t2) { - if (this.panzoom) { - const { pageIndex: e2 } = this.getPageFromPosition(this.panzoom.current[this.isHorizontal ? "e" : "f"]); - this.slideTo(e2, t2); - } - } - slideNext() { - this.slideTo(this.page + 1); - } - slidePrev() { - this.slideTo(this.page - 1); - } - clearTransitions() { - this.inTransition.clear(), E(this.container, this.cn("inTransition")); - const t2 = ["to-prev", "to-next", "from-prev", "from-next"]; - for (const e2 of this.slides) { - const i2 = e2.el; - if (i2) { - i2.removeEventListener("animationend", this.onAnimationEnd), i2.classList.remove(...t2); - const n2 = e2.transition; - n2 && i2.classList.remove(`f-${n2}Out`, `f-${n2}In`); - } - } - this.manageSlideVisiblity(); - } - prependSlide(t2) { - var e2, i2; - let n2 = Array.isArray(t2) ? t2 : [t2]; - for (const t3 of n2.reverse()) - this.slides.unshift(j(t3)); - for (let t3 = 0; t3 < this.slides.length; t3++) - this.slides[t3].index = t3; - const s2 = (null === (e2 = this.pages[this.page]) || void 0 === e2 ? void 0 : e2.pos) || 0; - this.page += n2.length, this.updateMetrics(); - const o2 = (null === (i2 = this.pages[this.page]) || void 0 === i2 ? void 0 : i2.pos) || 0; - if (this.panzoom) { - const t3 = this.isRTL ? s2 - o2 : o2 - s2; - this.panzoom.target.e -= t3, this.panzoom.current.e -= t3, this.panzoom.requestTick(); - } - } - appendSlide(t2) { - let e2 = Array.isArray(t2) ? t2 : [t2]; - for (const t3 of e2) { - const e3 = j(t3); - e3.index = this.slides.length, this.slides.push(e3), this.emit("initSlide", e3, this.slides.length); - } - this.updateMetrics(); - } - removeSlide(t2) { - const e2 = this.slides.length; - t2 = (t2 % e2 + e2) % e2, this.removeSlideEl(this.slides[t2], true), this.slides.splice(t2, 1); - for (let t3 = 0; t3 < this.slides.length; t3++) - this.slides[t3].index = t3; - this.updateMetrics(), this.slideTo(this.page, { friction: 0, transition: false }); - } - updateMetrics() { - const { panzoom: e2, viewport: i2, track: n2, isHorizontal: s2 } = this; - if (!n2) - return; - const o2 = s2 ? "width" : "height", a2 = s2 ? "offsetWidth" : "offsetHeight"; - if (i2) { - let e3 = Math.max(i2[a2], t(i2.getBoundingClientRect()[o2], 1e3)), n3 = getComputedStyle(i2), r3 = "padding", l3 = s2 ? "Right" : "Bottom"; - e3 -= parseFloat(n3[r3 + (s2 ? "Left" : "Top")]) + parseFloat(n3[r3 + l3]), this.viewportDim = e3; - } - let r2, l2 = this.pages.length, c2 = 0; - for (const [e3, i3] of this.slides.entries()) { - let n3 = 0, s3 = 0; - !i3.el && r2 ? (n3 = r2.dim, s3 = r2.gap) : ({ dim: n3, gap: s3 } = this.getSlideMetrics(i3), r2 = i3), n3 = t(n3, 1e3), s3 = t(s3, 1e3), i3.dim = n3, i3.gap = s3, i3.pos = c2, c2 += n3, (this.isInfinite || e3 < this.slides.length - 1) && (c2 += s3); - } - const h2 = this.contentDim; - c2 = t(c2, 1e3), this.contentDim = c2, e2 && (e2.contentRect[o2] = c2, e2.contentRect["e" === this.axis ? "fullWidth" : "fullHeight"] = c2), this.pages = this.createPages(), this.pages = this.processPages(), this.state === F.Init && this.setInitialPage(), this.page = Math.max(0, Math.min(this.page, this.pages.length - 1)), e2 && l2 === this.pages.length && Math.abs(c2 - h2) > 0.5 && (e2.target[this.axis] = -1 * this.pages[this.page].pos, e2.current[this.axis] = -1 * this.pages[this.page].pos, e2.stop()), this.manageSlideVisiblity(), this.emit("refresh"); - } - getProgress(e2, i2 = false) { - void 0 === e2 && (e2 = this.page); - const n2 = this, s2 = n2.panzoom, o2 = n2.pages[e2] || 0; - if (!o2 || !s2) - return 0; - let a2 = -1 * s2.current.e, r2 = n2.contentDim; - var l2 = [t((a2 - o2.pos) / (1 * o2.dim), 1e3), t((a2 + r2 - o2.pos) / (1 * o2.dim), 1e3), t((a2 - r2 - o2.pos) / (1 * o2.dim), 1e3)].reduce(function(t2, e3) { - return Math.abs(e3) < Math.abs(t2) ? e3 : t2; - }); - return i2 ? l2 : Math.max(-1, Math.min(1, l2)); - } - setViewportHeight() { - const { page: t2, pages: e2, viewport: i2, isHorizontal: n2 } = this; - if (!i2 || !e2[t2]) - return; - let s2 = 0; - n2 && this.track && (this.track.style.height = "auto", e2[t2].slides.forEach((t3) => { - t3.el && (s2 = Math.max(s2, t3.el.offsetHeight)); - })), i2.style.height = s2 ? `${s2}px` : ""; - } - getPageForSlide(t2) { - for (const e2 of this.pages) - for (const i2 of e2.slides) - if (i2.index === t2) - return e2.index; - return -1; - } - getVisibleSlides(t2 = 0) { - var e2; - const i2 = /* @__PURE__ */ new Set(); - let { contentDim: n2, viewportDim: s2, pages: o2, page: a2 } = this; - n2 = n2 + (null === (e2 = this.slides[this.slides.length - 1]) || void 0 === e2 ? void 0 : e2.gap) || 0; - let r2 = 0; - r2 = this.panzoom ? -1 * this.panzoom.current[this.axis] : o2[a2] && o2[a2].pos || 0, this.isInfinite && (r2 -= Math.floor(r2 / n2) * n2), this.isRTL && this.isHorizontal && (r2 *= -1); - const l2 = r2 - s2 * t2, c2 = r2 + s2 * (t2 + 1), h2 = this.isInfinite ? [-1, 0, 1] : [0]; - for (const t3 of this.slides) - for (const e3 of h2) { - const s3 = t3.pos + e3 * n2, o3 = t3.pos + t3.dim + t3.gap + e3 * n2; - s3 < c2 && o3 > l2 && i2.add(t3); - } - return i2; - } - getPageFromPosition(t2) { - const { viewportDim: e2, contentDim: i2 } = this, n2 = this.pages.length, s2 = this.slides.length, o2 = this.slides[s2 - 1]; - let a2 = 0, r2 = 0, l2 = 0; - const c2 = this.option("center"); - c2 && (t2 += 0.5 * e2), this.isInfinite || (t2 = Math.max(this.slides[0].pos, Math.min(t2, o2.pos))); - const h2 = i2 + o2.gap; - l2 = Math.floor(t2 / h2) || 0, t2 -= l2 * h2; - let d2 = o2, u2 = this.slides.find((e3) => { - const i3 = t2 + (d2 && !c2 ? 0.5 * d2.dim : 0); - return d2 = e3, e3.pos <= i3 && e3.pos + e3.dim + e3.gap > i3; - }); - return u2 || (u2 = o2), r2 = this.getPageForSlide(u2.index), a2 = r2 + l2 * n2, { page: a2, pageIndex: r2 }; - } - destroy() { - if ([F.Destroy].includes(this.state)) - return; - this.state = F.Destroy; - const { container: t2, viewport: e2, track: i2, slides: n2, panzoom: s2 } = this, o2 = this.option("classes"); - t2.removeEventListener("click", this.onClick, { passive: false, capture: false }), t2.removeEventListener("slideTo", this.onSlideTo), window.removeEventListener("resize", this.onResize), s2 && (s2.destroy(), this.panzoom = null), n2 && n2.forEach((t3) => { - this.removeSlideEl(t3); - }), this.detachPlugins(), e2 && e2.offsetParent && i2 && i2.offsetParent && e2.replaceWith(...i2.childNodes); - for (const [e3, i3] of Object.entries(o2)) - "container" !== e3 && i3 && t2.classList.remove(i3); - this.track = null, this.viewport = null, this.page = 0, this.slides = []; - const a2 = this.events.get("ready"); - this.events = /* @__PURE__ */ new Map(), a2 && this.events.set("ready", a2); - } -}; -Object.defineProperty(Z, "Panzoom", { enumerable: true, configurable: true, writable: true, value: R }), Object.defineProperty(Z, "defaults", { enumerable: true, configurable: true, writable: true, value: D }), Object.defineProperty(Z, "Plugins", { enumerable: true, configurable: true, writable: true, value: V }); -var U = function(t2) { - const e2 = window.pageYOffset, i2 = window.pageYOffset + window.innerHeight; - if (!x(t2)) - return 0; - const n2 = t2.getBoundingClientRect(), s2 = n2.y + window.pageYOffset, o2 = n2.y + n2.height + window.pageYOffset; - if (e2 > o2 || i2 < s2) - return 0; - if (e2 < s2 && i2 > o2) - return 100; - if (s2 < e2 && o2 > i2) - return 100; - let a2 = n2.height; - s2 < e2 && (a2 -= window.pageYOffset - s2), o2 > i2 && (a2 -= o2 - i2); - const r2 = a2 / window.innerHeight * 100; - return Math.round(r2); -}; -var G = !("undefined" == typeof window || !window.document || !window.document.createElement); -var K; -var J = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)", "iframe", "object", "embed", "video", "audio", "[contenteditable]", '[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])'].join(","); -var Q = (t2) => { - if (t2 && G) { - void 0 === K && document.createElement("div").focus({ get preventScroll() { - return K = true, false; - } }); - try { - if (K) - t2.focus({ preventScroll: true }); - else { - const e2 = window.pageXOffset || document.body.scrollTop, i2 = window.pageYOffset || document.body.scrollLeft; - t2.focus(), document.body.scrollTo({ top: e2, left: i2, behavior: "auto" }); - } - } catch (t3) { - } - } -}; -var tt = { dragToClose: true, hideScrollbar: true, Carousel: { classes: { container: "fancybox__carousel", viewport: "fancybox__viewport", track: "fancybox__track", slide: "fancybox__slide" } }, contentClick: "toggleZoom", contentDblClick: false, backdropClick: "close", animated: true, idle: 3500, showClass: "f-zoomInUp", hideClass: "f-fadeOut", commonCaption: false, parentEl: null, startIndex: 0, l10n: Object.assign(Object.assign({}, v), { CLOSE: "Close", NEXT: "Next", PREV: "Previous", MODAL: "You can close this modal content with the ESC key", ERROR: "Something Went Wrong, Please Try Again Later", IMAGE_ERROR: "Image Not Found", ELEMENT_NOT_FOUND: "HTML Element Not Found", AJAX_NOT_FOUND: "Error Loading AJAX : Not Found", AJAX_FORBIDDEN: "Error Loading AJAX : Forbidden", IFRAME_ERROR: "Error Loading Page", TOGGLE_ZOOM: "Toggle zoom level", TOGGLE_THUMBS: "Toggle thumbnails", TOGGLE_SLIDESHOW: "Toggle slideshow", TOGGLE_FULLSCREEN: "Toggle full-screen mode", DOWNLOAD: "Download" }), tpl: { closeButton: '', main: '{{ERROR}}
"), this.setContent(t2, n2); - } - clearContent(t2) { - var e2; - null === (e2 = this.carousel) || void 0 === e2 || e2.emit("removeSlide", t2); - } - getSlide() { - var t2; - const e2 = this.carousel; - return (null === (t2 = null == e2 ? void 0 : e2.pages[null == e2 ? void 0 : e2.page]) || void 0 === t2 ? void 0 : t2.slides[0]) || void 0; - } - close(t2, e2) { - if (this.isClosing()) - return; - const i2 = new Event("shouldClose", { bubbles: true, cancelable: true }); - if (this.emit("shouldClose", i2, t2), i2.defaultPrevented) - return; - t2 && t2.cancelable && (t2.preventDefault(), t2.stopPropagation()); - const n2 = this.fsAPI, s2 = () => { - this.proceedClose(t2, e2); - }; - n2 && n2.isFullscreen() ? Promise.resolve(n2.exit()).then(() => s2()) : s2(); - } - clearIdle() { - this.idleTimer && clearTimeout(this.idleTimer), this.idleTimer = null; - } - setIdle(t2 = false) { - const e2 = () => { - this.clearIdle(), this.idle = true, S(this.container, "is-idle"), this.emit("setIdle"); - }; - if (this.clearIdle(), !this.isClosing()) - if (t2) - e2(); - else { - const t3 = this.option("idle"); - t3 && (this.idleTimer = setTimeout(e2, t3)); - } - } - endIdle() { - this.clearIdle(), this.idle && !this.isClosing() && (this.idle = false, E(this.container, "is-idle"), this.emit("endIdle")); - } - resetIdle() { - this.endIdle(), this.setIdle(); - } - toggleIdle() { - this.idle ? this.endIdle() : this.setIdle(true); - } - toggleFullscreen() { - const t2 = this.fsAPI; - t2 && (t2.isFullscreen() ? t2.exit() : this.container && t2.request(this.container)); - } - isClosing() { - return [et.Closing, et.CustomClosing, et.Destroy].includes(this.state); - } - proceedClose(t2, e2) { - var i2, n2; - this.state = et.Closing, this.clearIdle(), this.detachEvents(); - const s2 = this.container, o2 = this.carousel, a2 = this.getSlide(), r2 = a2 && this.option("placeFocusBack") ? a2.triggerEl || this.option("triggerEl") : null; - if (r2 && (U(r2) ? Q(r2) : r2.focus()), s2 && (S(s2, "is-closing"), s2.setAttribute("aria-hidden", "true"), this.option("animated") && S(s2, kt), s2.style.pointerEvents = "none"), o2) { - o2.clearTransitions(), null === (i2 = o2.panzoom) || void 0 === i2 || i2.destroy(), null === (n2 = o2.plugins.Navigation) || void 0 === n2 || n2.detach(); - for (const t3 of o2.slides) { - t3.state = it.Closing, this.hideLoading(t3); - const e3 = t3.contentEl; - e3 && this.stop(e3); - const i3 = null == t3 ? void 0 : t3.panzoom; - i3 && (i3.stop(), i3.detachEvents(), i3.detachObserver()), this.isCurrentSlide(t3) || o2.emit("removeSlide", t3); - } - } - this.emit("close", t2), this.state !== et.CustomClosing ? (void 0 === e2 && a2 && (e2 = this.optionFor(a2, "hideClass")), e2 && a2 ? (this.animate(a2.contentEl, e2, () => { - o2 && o2.emit("removeSlide", a2); - }), setTimeout(() => { - this.destroy(); - }, 500)) : this.destroy()) : setTimeout(() => { - this.destroy(); - }, 500); - } - destroy() { - var t2; - if (this.state === et.Destroy) - return; - this.state = et.Destroy, null === (t2 = this.carousel) || void 0 === t2 || t2.destroy(); - const e2 = this.container; - e2 && e2.remove(), Bt.delete(this.id); - const i2 = __t.getInstance(); - i2 ? i2.focus() : (jt && (jt.remove(), jt = null), Ht && (Ht.remove(), Ht = null), E(document.documentElement, At), (() => { - if (!G) - return; - const t3 = document, e3 = t3.body; - e3.classList.remove(zt), e3.style.setProperty(Rt, ""), t3.documentElement.style.setProperty(Lt, ""); - })(), this.emit("destroy")); - } - static bind(t2, e2, i2) { - if (!G) - return; - let n2, s2 = "", o2 = {}; - if (void 0 === t2 ? n2 = document.body : "string" == typeof t2 ? (n2 = document.body, s2 = t2, "object" == typeof e2 && (o2 = e2 || {})) : (n2 = t2, "string" == typeof e2 && (s2 = e2), "object" == typeof i2 && (o2 = i2 || {})), !n2 || !x(n2)) - return; - s2 = s2 || "[data-fancybox]"; - const a2 = __t.openers.get(n2) || /* @__PURE__ */ new Map(); - a2.set(s2, o2), __t.openers.set(n2, a2), 1 === a2.size && n2.addEventListener("click", __t.fromEvent); - } - static unbind(t2, e2) { - let i2, n2 = ""; - if ("string" == typeof t2 ? (i2 = document.body, n2 = t2) : (i2 = t2, "string" == typeof e2 && (n2 = e2)), !i2) - return; - const s2 = __t.openers.get(i2); - s2 && n2 && s2.delete(n2), n2 && s2 || (__t.openers.delete(i2), i2.removeEventListener("click", __t.fromEvent)); - } - static destroy() { - let t2; - for (; t2 = __t.getInstance(); ) - t2.destroy(); - for (const t3 of __t.openers.keys()) - t3.removeEventListener("click", __t.fromEvent); - __t.openers = /* @__PURE__ */ new Map(); - } - static fromEvent(t2) { - if (t2.defaultPrevented) - return; - if (t2.button && 0 !== t2.button) - return; - if (t2.ctrlKey || t2.metaKey || t2.shiftKey) - return; - let e2 = t2.composedPath()[0]; - const i2 = e2.closest("[data-fancybox-trigger]"); - if (i2) { - const t3 = i2.dataset.fancyboxTrigger || "", n3 = document.querySelectorAll(`[data-fancybox="${t3}"]`), s3 = parseInt(i2.dataset.fancyboxIndex || "", 10) || 0; - e2 = n3[s3] || e2; - } - if (!(e2 && e2 instanceof Element)) - return; - let n2, s2, o2, a2; - if ([...__t.openers].reverse().find(([t3, i3]) => !(!t3.contains(e2) || ![...i3].reverse().find(([i4, r3]) => { - let l3 = e2.closest(i4); - return !!l3 && (n2 = t3, s2 = i4, o2 = l3, a2 = r3, true); - }))), !n2 || !s2 || !o2) - return; - a2 = a2 || {}, t2.preventDefault(), e2 = o2; - let r2 = [], l2 = u({}, tt, a2); - l2.event = t2, l2.triggerEl = e2, l2.delegate = i2; - const c2 = l2.groupAll, h2 = l2.groupAttr, d2 = h2 && e2 ? e2.getAttribute(`${h2}`) : ""; - if ((!e2 || d2 || c2) && (r2 = [].slice.call(n2.querySelectorAll(s2))), e2 && !c2 && (r2 = d2 ? r2.filter((t3) => t3.getAttribute(`${h2}`) === d2) : [e2]), !r2.length) - return; - const p2 = __t.getInstance(); - return p2 && p2.options.triggerEl && r2.indexOf(p2.options.triggerEl) > -1 ? void 0 : (e2 && (l2.startIndex = r2.indexOf(e2)), __t.fromNodes(r2, l2)); - } - static fromSelector(t2, e2) { - let i2 = null, n2 = ""; - if ("string" == typeof t2 ? (i2 = document.body, n2 = t2) : t2 instanceof HTMLElement && "string" == typeof e2 && (i2 = t2, n2 = e2), !i2 || !n2) - return false; - const s2 = __t.openers.get(i2); - if (!s2) - return false; - const o2 = s2.get(n2); - return !!o2 && __t.fromNodes(Array.from(i2.querySelectorAll(n2)), o2); - } - static fromNodes(t2, e2) { - e2 = u({}, tt, e2 || {}); - const i2 = []; - for (const n2 of t2) { - const t3 = n2.dataset || {}, s2 = t3.src || n2.getAttribute("href") || n2.getAttribute("currentSrc") || n2.getAttribute("src") || void 0; - let o2; - const a2 = e2.delegate; - let r2; - a2 && i2.length === e2.startIndex && (o2 = a2 instanceof HTMLImageElement ? a2 : a2.querySelector("img:not([aria-hidden])")), o2 || (o2 = n2 instanceof HTMLImageElement ? n2 : n2.querySelector("img:not([aria-hidden])")), o2 && (r2 = o2.currentSrc || o2.src || void 0, !r2 && o2.dataset && (r2 = o2.dataset.lazySrc || o2.dataset.src || void 0)); - const l2 = { src: s2, triggerEl: n2, thumbEl: o2, thumbElSrc: r2, thumbSrc: r2 }; - for (const e3 in t3) - l2[e3] = t3[e3] + ""; - i2.push(l2); - } - return new __t(i2, e2); - } - static getInstance(t2) { - if (t2) - return Bt.get(t2); - return Array.from(Bt.values()).reverse().find((t3) => !t3.isClosing() && t3) || null; - } - static getSlide() { - var t2; - return (null === (t2 = __t.getInstance()) || void 0 === t2 ? void 0 : t2.getSlide()) || null; - } - static show(t2 = [], e2 = {}) { - return new __t(t2, e2); - } - static next() { - const t2 = __t.getInstance(); - t2 && t2.next(); - } - static prev() { - const t2 = __t.getInstance(); - t2 && t2.prev(); - } - static close(t2 = true, ...e2) { - if (t2) - for (const t3 of Bt.values()) - t3.close(...e2); - else { - const t3 = __t.getInstance(); - t3 && t3.close(...e2); - } - } -}; -Object.defineProperty(_t, "version", { enumerable: true, configurable: true, writable: true, value: "5.0.22" }), Object.defineProperty(_t, "defaults", { enumerable: true, configurable: true, writable: true, value: tt }), Object.defineProperty(_t, "Plugins", { enumerable: true, configurable: true, writable: true, value: Ot }), Object.defineProperty(_t, "openers", { enumerable: true, configurable: true, writable: true, value: /* @__PURE__ */ new Map() }); -export { - Z as Carousel, - _t as Fancybox, - R as Panzoom -}; -//# sourceMappingURL=@fancyapps_ui.js.map diff --git a/.vitepress/cache/deps/@fancyapps_ui.js.map b/.vitepress/cache/deps/@fancyapps_ui.js.map deleted file mode 100644 index 23eadd7..0000000 --- a/.vitepress/cache/deps/@fancyapps_ui.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../node_modules/.pnpm/registry.npmmirror.com+@fancyapps+ui@5.0.22/node_modules/@fancyapps/ui/dist/index.esm.js"], - "sourcesContent": ["const t=(t,e=1e4)=>(t=parseFloat(t+\"\")||0,Math.round((t+Number.EPSILON)*e)/e),e=function(t){if(!(t&&t instanceof Element&&t.offsetParent))return!1;const e=t.scrollHeight>t.clientHeight,i=window.getComputedStyle(t).overflowY,n=-1!==i.indexOf(\"hidden\"),s=-1!==i.indexOf(\"visible\");return e&&!n&&!s},i=function(t,n=void 0){return!(!t||t===document.body||n&&t===n)&&(e(t)?t:i(t.parentElement,n))},n=function(t){var e=(new DOMParser).parseFromString(t,\"text/html\").body;if(e.childElementCount>1){for(var i=document.createElement(\"div\");e.firstChild;)i.appendChild(e.firstChild);return i}return e.firstChild},s=t=>`${t||\"\"}`.split(\" \").filter((t=>!!t)),o=(t,e,i)=>{s(e).forEach((e=>{t&&t.classList.toggle(e,i||!1)}))};class a{constructor(t){Object.defineProperty(this,\"pageX\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"pageY\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"clientX\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"clientY\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"id\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"time\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"nativePointer\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.nativePointer=t,this.pageX=t.pageX,this.pageY=t.pageY,this.clientX=t.clientX,this.clientY=t.clientY,this.id=self.Touch&&t instanceof Touch?t.identifier:-1,this.time=Date.now()}}const r={passive:!1};class l{constructor(t,{start:e=(()=>!0),move:i=(()=>{}),end:n=(()=>{})}){Object.defineProperty(this,\"element\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"startCallback\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"moveCallback\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"endCallback\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"currentPointers\",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,\"startPointers\",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.element=t,this.startCallback=e,this.moveCallback=i,this.endCallback=n;for(const t of[\"onPointerStart\",\"onTouchStart\",\"onMove\",\"onTouchEnd\",\"onPointerEnd\",\"onWindowBlur\"])this[t]=this[t].bind(this);this.element.addEventListener(\"mousedown\",this.onPointerStart,r),this.element.addEventListener(\"touchstart\",this.onTouchStart,r),this.element.addEventListener(\"touchmove\",this.onMove,r),this.element.addEventListener(\"touchend\",this.onTouchEnd),this.element.addEventListener(\"touchcancel\",this.onTouchEnd)}onPointerStart(t){if(!t.buttons||0!==t.button)return;const e=new a(t);this.currentPointers.some((t=>t.id===e.id))||this.triggerPointerStart(e,t)&&(window.addEventListener(\"mousemove\",this.onMove),window.addEventListener(\"mouseup\",this.onPointerEnd),window.addEventListener(\"blur\",this.onWindowBlur))}onTouchStart(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerStart(new a(e),t);window.addEventListener(\"blur\",this.onWindowBlur)}onMove(t){const e=this.currentPointers.slice(),i=\"changedTouches\"in t?Array.from(t.changedTouches||[]).map((t=>new a(t))):[new a(t)],n=[];for(const t of i){const e=this.currentPointers.findIndex((e=>e.id===t.id));e<0||(n.push(t),this.currentPointers[e]=t)}n.length&&this.moveCallback(t,this.currentPointers.slice(),e)}onPointerEnd(t){t.buttons>0&&0!==t.button||(this.triggerPointerEnd(t,new a(t)),window.removeEventListener(\"mousemove\",this.onMove),window.removeEventListener(\"mouseup\",this.onPointerEnd),window.removeEventListener(\"blur\",this.onWindowBlur))}onTouchEnd(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerEnd(t,new a(e))}triggerPointerStart(t,e){return!!this.startCallback(e,t,this.currentPointers.slice())&&(this.currentPointers.push(t),this.startPointers.push(t),!0)}triggerPointerEnd(t,e){const i=this.currentPointers.findIndex((t=>t.id===e.id));i<0||(this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this.endCallback(t,e,this.currentPointers.slice()))}onWindowBlur(){this.clear()}clear(){for(;this.currentPointers.length;){const t=this.currentPointers[this.currentPointers.length-1];this.currentPointers.splice(this.currentPointers.length-1,1),this.startPointers.splice(this.currentPointers.length-1,1),this.endCallback(new Event(\"touchend\",{bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY}),t,this.currentPointers.slice())}}stop(){this.element.removeEventListener(\"mousedown\",this.onPointerStart,r),this.element.removeEventListener(\"touchstart\",this.onTouchStart,r),this.element.removeEventListener(\"touchmove\",this.onMove,r),this.element.removeEventListener(\"touchend\",this.onTouchEnd),this.element.removeEventListener(\"touchcancel\",this.onTouchEnd),window.removeEventListener(\"mousemove\",this.onMove),window.removeEventListener(\"mouseup\",this.onPointerEnd),window.removeEventListener(\"blur\",this.onWindowBlur)}}function c(t,e){return e?Math.sqrt(Math.pow(e.clientX-t.clientX,2)+Math.pow(e.clientY-t.clientY,2)):0}function h(t,e){return e?{clientX:(t.clientX+e.clientX)/2,clientY:(t.clientY+e.clientY)/2}:t}const d=t=>\"object\"==typeof t&&null!==t&&t.constructor===Object&&\"[object Object]\"===Object.prototype.toString.call(t),u=(t,...e)=>{const i=e.length;for(let n=0;n{const n=Array.isArray(i)?[]:{};t[e]||Object.assign(t,{[e]:n}),d(i)?Object.assign(t[e],u(n,i)):Array.isArray(i)?Object.assign(t,{[e]:[...i]}):Object.assign(t,{[e]:i})}))}return t},p=function(t,e){return t.split(\".\").reduce(((t,e)=>\"object\"==typeof t?t[e]:void 0),e)};class f{constructor(t={}){Object.defineProperty(this,\"options\",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,\"events\",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.setOptions(t);for(const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))t.startsWith(\"on\")&&\"function\"==typeof this[t]&&(this[t]=this[t].bind(this))}setOptions(t){this.options=t?u({},this.constructor.defaults,t):{};for(const[t,e]of Object.entries(this.option(\"on\")||{}))this.on(t,e)}option(t,...e){let i=p(t,this.options);return i&&\"function\"==typeof i&&(i=i.call(this,this,...e)),i}optionFor(t,e,i,...n){let s=p(e,t);var o;\"string\"!=typeof(o=s)||isNaN(o)||isNaN(parseFloat(o))||(s=parseFloat(s)),\"true\"===s&&(s=!0),\"false\"===s&&(s=!1),s&&\"function\"==typeof s&&(s=s.call(this,this,t,...n));let a=p(e,this.options);return a&&\"function\"==typeof a?s=a.call(this,this,t,...n,s):void 0===s&&(s=a),void 0===s?i:s}cn(t){const e=this.options.classes;return e&&e[t]||\"\"}localize(t,e=[]){t=String(t).replace(/\\{\\{(\\w+).?(\\w+)?\\}\\}/g,((t,e,i)=>{let n=\"\";return i?n=this.option(`${e[0]+e.toLowerCase().substring(1)}.l10n.${i}`):e&&(n=this.option(`l10n.${e}`)),n||(n=t),n}));for(let i=0;i{{ERROR}}
\"),this.setContent(t,n)}clearContent(t){var e;null===(e=this.carousel)||void 0===e||e.emit(\"removeSlide\",t)}getSlide(){var t;const e=this.carousel;return(null===(t=null==e?void 0:e.pages[null==e?void 0:e.page])||void 0===t?void 0:t.slides[0])||void 0}close(t,e){if(this.isClosing())return;const i=new Event(\"shouldClose\",{bubbles:!0,cancelable:!0});if(this.emit(\"shouldClose\",i,t),i.defaultPrevented)return;t&&t.cancelable&&(t.preventDefault(),t.stopPropagation());const n=this.fsAPI,s=()=>{this.proceedClose(t,e)};n&&n.isFullscreen()?Promise.resolve(n.exit()).then((()=>s())):s()}clearIdle(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null}setIdle(t=!1){const e=()=>{this.clearIdle(),this.idle=!0,S(this.container,\"is-idle\"),this.emit(\"setIdle\")};if(this.clearIdle(),!this.isClosing())if(t)e();else{const t=this.option(\"idle\");t&&(this.idleTimer=setTimeout(e,t))}}endIdle(){this.clearIdle(),this.idle&&!this.isClosing()&&(this.idle=!1,E(this.container,\"is-idle\"),this.emit(\"endIdle\"))}resetIdle(){this.endIdle(),this.setIdle()}toggleIdle(){this.idle?this.endIdle():this.setIdle(!0)}toggleFullscreen(){const t=this.fsAPI;t&&(t.isFullscreen()?t.exit():this.container&&t.request(this.container))}isClosing(){return[et.Closing,et.CustomClosing,et.Destroy].includes(this.state)}proceedClose(t,e){var i,n;this.state=et.Closing,this.clearIdle(),this.detachEvents();const s=this.container,o=this.carousel,a=this.getSlide(),r=a&&this.option(\"placeFocusBack\")?a.triggerEl||this.option(\"triggerEl\"):null;if(r&&(U(r)?Q(r):r.focus()),s&&(S(s,\"is-closing\"),s.setAttribute(\"aria-hidden\",\"true\"),this.option(\"animated\")&&S(s,kt),s.style.pointerEvents=\"none\"),o){o.clearTransitions(),null===(i=o.panzoom)||void 0===i||i.destroy(),null===(n=o.plugins.Navigation)||void 0===n||n.detach();for(const t of o.slides){t.state=it.Closing,this.hideLoading(t);const e=t.contentEl;e&&this.stop(e);const i=null==t?void 0:t.panzoom;i&&(i.stop(),i.detachEvents(),i.detachObserver()),this.isCurrentSlide(t)||o.emit(\"removeSlide\",t)}}this.emit(\"close\",t),this.state!==et.CustomClosing?(void 0===e&&a&&(e=this.optionFor(a,\"hideClass\")),e&&a?(this.animate(a.contentEl,e,(()=>{o&&o.emit(\"removeSlide\",a)})),setTimeout((()=>{this.destroy()}),500)):this.destroy()):setTimeout((()=>{this.destroy()}),500)}destroy(){var t;if(this.state===et.Destroy)return;this.state=et.Destroy,null===(t=this.carousel)||void 0===t||t.destroy();const e=this.container;e&&e.remove(),Bt.delete(this.id);const i=_t.getInstance();i?i.focus():(jt&&(jt.remove(),jt=null),Ht&&(Ht.remove(),Ht=null),E(document.documentElement,At),(()=>{if(!G)return;const t=document,e=t.body;e.classList.remove(zt),e.style.setProperty(Rt,\"\"),t.documentElement.style.setProperty(Lt,\"\")})(),this.emit(\"destroy\"))}static bind(t,e,i){if(!G)return;let n,s=\"\",o={};if(void 0===t?n=document.body:\"string\"==typeof t?(n=document.body,s=t,\"object\"==typeof e&&(o=e||{})):(n=t,\"string\"==typeof e&&(s=e),\"object\"==typeof i&&(o=i||{})),!n||!x(n))return;s=s||\"[data-fancybox]\";const a=_t.openers.get(n)||new Map;a.set(s,o),_t.openers.set(n,a),1===a.size&&n.addEventListener(\"click\",_t.fromEvent)}static unbind(t,e){let i,n=\"\";if(\"string\"==typeof t?(i=document.body,n=t):(i=t,\"string\"==typeof e&&(n=e)),!i)return;const s=_t.openers.get(i);s&&n&&s.delete(n),n&&s||(_t.openers.delete(i),i.removeEventListener(\"click\",_t.fromEvent))}static destroy(){let t;for(;t=_t.getInstance();)t.destroy();for(const t of _t.openers.keys())t.removeEventListener(\"click\",_t.fromEvent);_t.openers=new Map}static fromEvent(t){if(t.defaultPrevented)return;if(t.button&&0!==t.button)return;if(t.ctrlKey||t.metaKey||t.shiftKey)return;let e=t.composedPath()[0];const i=e.closest(\"[data-fancybox-trigger]\");if(i){const t=i.dataset.fancyboxTrigger||\"\",n=document.querySelectorAll(`[data-fancybox=\"${t}\"]`),s=parseInt(i.dataset.fancyboxIndex||\"\",10)||0;e=n[s]||e}if(!(e&&e instanceof Element))return;let n,s,o,a;if([..._t.openers].reverse().find((([t,i])=>!(!t.contains(e)||![...i].reverse().find((([i,r])=>{let l=e.closest(i);return!!l&&(n=t,s=i,o=l,a=r,!0)}))))),!n||!s||!o)return;a=a||{},t.preventDefault(),e=o;let r=[],l=u({},tt,a);l.event=t,l.triggerEl=e,l.delegate=i;const c=l.groupAll,h=l.groupAttr,d=h&&e?e.getAttribute(`${h}`):\"\";if((!e||d||c)&&(r=[].slice.call(n.querySelectorAll(s))),e&&!c&&(r=d?r.filter((t=>t.getAttribute(`${h}`)===d)):[e]),!r.length)return;const p=_t.getInstance();return p&&p.options.triggerEl&&r.indexOf(p.options.triggerEl)>-1?void 0:(e&&(l.startIndex=r.indexOf(e)),_t.fromNodes(r,l))}static fromSelector(t,e){let i=null,n=\"\";if(\"string\"==typeof t?(i=document.body,n=t):t instanceof HTMLElement&&\"string\"==typeof e&&(i=t,n=e),!i||!n)return!1;const s=_t.openers.get(i);if(!s)return!1;const o=s.get(n);return!!o&&_t.fromNodes(Array.from(i.querySelectorAll(n)),o)}static fromNodes(t,e){e=u({},tt,e||{});const i=[];for(const n of t){const t=n.dataset||{},s=t.src||n.getAttribute(\"href\")||n.getAttribute(\"currentSrc\")||n.getAttribute(\"src\")||void 0;let o;const a=e.delegate;let r;a&&i.length===e.startIndex&&(o=a instanceof HTMLImageElement?a:a.querySelector(\"img:not([aria-hidden])\")),o||(o=n instanceof HTMLImageElement?n:n.querySelector(\"img:not([aria-hidden])\")),o&&(r=o.currentSrc||o.src||void 0,!r&&o.dataset&&(r=o.dataset.lazySrc||o.dataset.src||void 0));const l={src:s,triggerEl:n,thumbEl:o,thumbElSrc:r,thumbSrc:r};for(const e in t)l[e]=t[e]+\"\";i.push(l)}return new _t(i,e)}static getInstance(t){if(t)return Bt.get(t);return Array.from(Bt.values()).reverse().find((t=>!t.isClosing()&&t))||null}static getSlide(){var t;return(null===(t=_t.getInstance())||void 0===t?void 0:t.getSlide())||null}static show(t=[],e={}){return new _t(t,e)}static next(){const t=_t.getInstance();t&&t.next()}static prev(){const t=_t.getInstance();t&&t.prev()}static close(t=!0,...e){if(t)for(const t of Bt.values())t.close(...e);else{const t=_t.getInstance();t&&t.close(...e)}}}Object.defineProperty(_t,\"version\",{enumerable:!0,configurable:!0,writable:!0,value:\"5.0.22\"}),Object.defineProperty(_t,\"defaults\",{enumerable:!0,configurable:!0,writable:!0,value:tt}),Object.defineProperty(_t,\"Plugins\",{enumerable:!0,configurable:!0,writable:!0,value:Ot}),Object.defineProperty(_t,\"openers\",{enumerable:!0,configurable:!0,writable:!0,value:new Map});export{Z as Carousel,_t as Fancybox,R as Panzoom};\n"], - "mappings": "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", - "names": ["t", "e", "i", "n", "s", "o", "a", "r", "l", "c", "h", "d", "u", "p", "f", "m", "g", "b", "v", "y", "w", "x", "E", "S"] -} diff --git a/.vitepress/cache/deps/@theme_index.js b/.vitepress/cache/deps/@theme_index.js index a20cba1..55e6b6d 100644 --- a/.vitepress/cache/deps/@theme_index.js +++ b/.vitepress/cache/deps/@theme_index.js @@ -12,27 +12,27 @@ import { } from "./chunk-OX6HOUGK.js"; // node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/index.js -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/fonts.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/fonts.css"; // node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/without-fonts.js -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/vars.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/base.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/utils.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css"; -import "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css"; -import VPBadge from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue"; -import Layout from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/Layout.vue"; -import { default as default2 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue"; -import { default as default3 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue"; -import { default as default4 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue"; -import { default as default5 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue"; -import { default as default6 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue"; -import { default as default7 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue"; -import { default as default8 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue"; -import { default as default9 } from "/Users/zllv/my-space/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/vars.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/base.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/utils.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css"; +import "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css"; +import VPBadge from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue"; +import Layout from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/Layout.vue"; +import { default as default2 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue"; +import { default as default3 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue"; +import { default as default4 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue"; +import { default as default5 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue"; +import { default as default6 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue"; +import { default as default7 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue"; +import { default as default8 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue"; +import { default as default9 } from "/Users/lvzl/mine/front-end-blog/node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue"; // node_modules/.pnpm/@vueuse+shared@10.2.1_vue@3.3.4/node_modules/@vueuse/shared/index.mjs function tryOnScopeDispose(fn) { diff --git a/.vitepress/cache/deps/_metadata.json b/.vitepress/cache/deps/_metadata.json index 27a47f0..1df7d4e 100644 --- a/.vitepress/cache/deps/_metadata.json +++ b/.vitepress/cache/deps/_metadata.json @@ -1,35 +1,23 @@ { - "hash": "5e286541", - "browserHash": "4428f65d", + "hash": "5eec9526", + "browserHash": "bafb1687", "optimized": { "vue": { "src": "../../../node_modules/.pnpm/vue@3.3.4/node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "ebc95804", + "fileHash": "b6d8aaa7", "needsInterop": false }, "vitepress > @vue/devtools-api": { "src": "../../../node_modules/.pnpm/@vue+devtools-api@6.5.0/node_modules/@vue/devtools-api/lib/esm/index.js", "file": "vitepress___@vue_devtools-api.js", - "fileHash": "bacd3d77", + "fileHash": "4f3a99fb", "needsInterop": false }, "@theme/index": { "src": "../../../node_modules/.pnpm/vitepress@1.0.0-beta.5_@algolia+client-search@4.18.0_@types+node@20.4.2_search-insights@2.7.0/node_modules/vitepress/dist/client/theme-default/index.js", "file": "@theme_index.js", - "fileHash": "f4d2ee12", - "needsInterop": false - }, - "@fancyapps/ui": { - "src": "../../../node_modules/.pnpm/registry.npmmirror.com+@fancyapps+ui@5.0.22/node_modules/@fancyapps/ui/dist/index.esm.js", - "file": "@fancyapps_ui.js", - "fileHash": "0fefbb61", - "needsInterop": false - }, - "xmind-embed-viewer": { - "src": "../../../node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/index.js", - "file": "xmind-embed-viewer.js", - "fileHash": "27de47a5", + "fileHash": "1dcd32d5", "needsInterop": false } }, diff --git a/.vitepress/cache/deps/xmind-embed-viewer.js b/.vitepress/cache/deps/xmind-embed-viewer.js deleted file mode 100644 index 0450cd9..0000000 --- a/.vitepress/cache/deps/xmind-embed-viewer.js +++ /dev/null @@ -1,178 +0,0 @@ -// node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/channel-controller.js -var IframeEventChannelController = class { - constructor(iFrameController, domain = "*") { - this.channel = new MessageChannel(); - this.eventIndex = 0; - this.handlers = {}; - const iframe = iFrameController.getIframe(); - if (iframe.hasAttribute("data-event-channel-setup")) { - throw new Error("An embed viewer instance already initialized on the iframe!"); - } else { - iframe.setAttribute("data-event-channel-setup", "true"); - } - this.channelSetupPromise = (async () => { - await new Promise((resolve) => { - iframe.addEventListener("load", () => { - var _a; - this.channel.port1.start(); - const port1Handler = (e) => { - const [type] = e.data; - if (type === "channel-ready") { - e.preventDefault(); - this.channel.port1.removeEventListener("message", port1Handler); - this.channel.port1.addEventListener("message", this.eventDispatcher.bind(this)); - resolve(void 0); - } - }; - this.channel.port1.addEventListener("message", port1Handler); - (_a = iframe.contentWindow) == null ? void 0 : _a.postMessage(["setup-channel", { port: this.channel.port2 }], domain || "*", [this.channel.port2]); - }); - }); - })(); - } - eventDispatcher(e) { - const [type, eventName, payload] = e.data || []; - if (type === "event" && eventName && this.handlers[eventName]) { - this.handlers[eventName].forEach((handler) => handler(payload)); - } - } - addEventListener(event, callback) { - this.handlers[event] = this.handlers[event] || []; - if (this.handlers[event].includes(callback)) - return; - this.handlers[event].push(callback); - } - removeEventListener(event, callback) { - if (!this.handlers[event]) - return; - const index = this.handlers[event].findIndex((fn) => fn === callback); - this.handlers[event].splice(index, 1); - } - async emit(event, payload) { - await this.channelSetupPromise; - const replyEvent = `xmind-embed-viewer#${this.eventIndex++}`; - await new Promise((resolve) => { - const handler = (e) => { - const [message, payload2] = e.data; - if (message === replyEvent) { - this.channel.port1.removeEventListener("message", handler); - resolve(payload2); - } - }; - this.channel.port1.addEventListener("message", handler); - this.channel.port1.postMessage([event, payload, replyEvent]); - }); - } -}; - -// node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/iframe-controller.js -var IframeController = class { - constructor(target, src) { - let iframe; - const element = typeof target === "string" ? document.querySelector(target) : target; - if (element === null) { - throw new Error("IFrame or mount element not found by selector " + target); - } - if (element instanceof HTMLIFrameElement) { - iframe = element; - } else { - iframe = document.createElement("iframe"); - element.appendChild(iframe); - } - iframe.setAttribute("frameborder", "0"); - iframe.setAttribute("scrolling", "no"); - iframe.setAttribute("allowfullscreen", "true"); - iframe.setAttribute("allow", "allowfullscreen"); - iframe.setAttribute("crossorigin", "anonymous"); - iframe.setAttribute("src", src); - this.iframe = iframe; - } - getIframe() { - return this.iframe; - } - setStyles(styles) { - const iframe = this.getIframe(); - for (const [styleKey, value] of Object.entries(styles)) { - iframe.style[styleKey] = value; - } - } -}; - -// node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/index.js -var XMindEmbedViewer = class { - /** - * Initialize a iframe element from a div/iframe html element. - */ - constructor(args) { - this.internalState = { - sheets: [], - zoomScale: 100, - currentSheetId: "" - }; - const { file, el, styles = { - "height": "350px", - "width": "750px" - }, isPitchModeDisabled } = args; - const iframeController = new IframeController(el, `https://www.xmind.app/embed-viewer${isPitchModeDisabled ? "?pitch-mode=disabled" : ""}`); - const iframeEventChannelController = new IframeEventChannelController(iframeController, "https://www.xmind.app"); - this.iframeController = iframeController; - this.iframeEventChannelController = iframeEventChannelController; - iframeEventChannelController.addEventListener("sheet-switch", (payload) => this.internalState.currentSheetId = payload); - iframeEventChannelController.addEventListener("zoom-change", (payload) => this.internalState.zoomScale = payload); - iframeEventChannelController.addEventListener("sheets-load", (payload) => this.internalState.sheets = payload); - this.iframeController.setStyles(styles); - if (file) { - this.load(file); - } - } - /** - * Add event listener for embed viewer. - * - * Available events: - * - map-ready - * - zoom-change - * - sheet-switch - * - sheets-load - * - */ - addEventListener(event, callback) { - this.iframeEventChannelController.addEventListener(event, callback); - } - removeEventListener(event, callback) { - this.iframeEventChannelController.removeEventListener(event, callback); - } - /** - * Update styles for created iframe element. - */ - setStyles(styles) { - this.iframeController.setStyles(styles); - } - /** - * Load a file for embed viewer after iframe ready. - */ - load(file) { - this.iframeEventChannelController.emit("open-file", file); - } - setZoomScale(zoomScale) { - this.iframeEventChannelController.emit("zoom", zoomScale); - } - setFitMap() { - this.iframeEventChannelController.emit("fit-map"); - } - switchSheet(sheetId) { - this.iframeEventChannelController.emit("switch-sheet", sheetId); - } - get zoom() { - return this.internalState.zoomScale; - } - get sheets() { - return JSON.parse(JSON.stringify(this.internalState.sheets)); - } - get currentSheetId() { - return this.internalState.currentSheetId; - } -}; -export { - XMindEmbedViewer -}; -//# sourceMappingURL=xmind-embed-viewer.js.map diff --git a/.vitepress/cache/deps/xmind-embed-viewer.js.map b/.vitepress/cache/deps/xmind-embed-viewer.js.map deleted file mode 100644 index 2826ab2..0000000 --- a/.vitepress/cache/deps/xmind-embed-viewer.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/channel-controller.ts", "../../../node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/iframe-controller.ts", "../../../node_modules/.pnpm/xmind-embed-viewer@1.1.0/node_modules/xmind-embed-viewer/dist/esm/index.ts"], - "sourcesContent": [null, null, null], - "mappings": "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", - "names": ["payload"] -} diff --git a/articles/react/index.md b/articles/react/index.md new file mode 100644 index 0000000..1ed9763 --- /dev/null +++ b/articles/react/index.md @@ -0,0 +1,6 @@ +--- +title: React +author: lvzl +--- + +[React DOC](https://react.docschina.org/) \ No newline at end of file diff --git a/articles/react/nav.js b/articles/react/nav.js new file mode 100644 index 0000000..f4f6894 --- /dev/null +++ b/articles/react/nav.js @@ -0,0 +1,5 @@ +module.exports = { + navText: 'React', + sideText: ['React', 'React Router', 'Redux'], + sort: 11, +} diff --git a/articles/react/react/index.md b/articles/react/react/index.md new file mode 100644 index 0000000..c64e0b0 --- /dev/null +++ b/articles/react/react/index.md @@ -0,0 +1,738 @@ +--- +title: React 学习总结 +author: lvzl +--- + +# React 学习总结 + +## 什么是 React +**React 是 Facebook 推出的一个用于构建用户界面的 JavaScript 库。** +**React 是一个用于构建 UI 的 JavaScript 库,它是 Facebook 开源。** + + +## React 特点 +- 声明式:React 采用声明式编程,可以让你将 UI 组件看作是函数或类,而不是对象。 +- 组件化:React 组件让你将 UI 拆分成独立的、可重用的代码块,并将它们组合成更大的 UI。 +- 高效:React 通过对 DOM 的模拟,最大限度地减少与 DOM 的交互 + +## React 类组件及其生命周期(不推荐使用) +**React 类组件开发如下,只需要了解即可,现在都函数组件开发** + +```jsx +class ComponentName extends React.Component { + + // 构造函数最先执行 + constructor(props) { + super(props); + } + state = { + // 组件的状态 + name: 'Hello React!', + } + // 当组件抛出错误时,会触发此生命周期方法。可以用来从错误中恢复,返回一个值以更新 state + static getDerivedStateFromError(error) { + console.log('getDerivedStateFromError'); + } + + // 当组件接收新的 props 时,会触发此生命周期方法。可以返回一个对象以更新 state,或返回 null 表示不需要更新 state + static getDerivedStateFromProps(nextProps, prevState) { + console.log('getDerivedStateFromProps'); + return null; + } + + // 在 DOM 更新之前立即调用,返回值将作为 componentDidUpdate 的第三个参数 + getSnapshotBeforeUpdate(prevProps, prevState) { + console.log('getSnapshotBeforeUpdate'); + return null; + } + + // 组件挂载(插入 DOM 树中)后立即调用,只会在客户端执行,是请求数据的好地方 + componentDidMount() { + console.log('componentDidMount'); + } + + // 组件卸载及销毁之前直接调用,可以在此方法中执行必要的清理操作 + componentWillUnmount() { + console.log('componentWillUnmount'); + } + + // 组件完成更新后立即调用,首次渲染不会调用 + componentDidUpdate() { + console.log('componentDidUpdate'); + } + + // 当组件抛出错误时,此生命周期方法会被触发,用于记录错误信息、发送网络请求或者清理无效的本地状态等 + componentDidCatch() { + console.log('componentDidCatch'); + } + + // 当组件接收新的 props 时会调用,但在 React 17 中已被废弃,建议使用 getDerivedStateFromProps + componentWillReceiveProps(nextProps) { + console.log('componentWillReceiveProps'); + } + + // 当组件接收新的 props 或 state 时,会在渲染前调用,返回 false 可以阻止渲染 + shouldComponentUpdate(nextProps, nextState) { + console.log('shouldComponentUpdate'); + return true; + } + + // 在渲染前调用,但在 React 17 中已被废弃,建议使用 getSnapshotBeforeUpdate + componentWillUpdate(nextProps, nextState) { + console.log('componentWillUpdate'); + } + + // 在渲染前调用,但在 React 17 中已被废弃,建议使用 componentDidMount + componentWillMount() { + console.log('componentWillMount'); + } + + // 绑定更新逻辑 + onClick() { + this.setState({ + name: 'Hello React!', + }); + } + + render() { + return ( +