From 0cebcd2ea7879a60e61e3a6dd621798d9b98f09a Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 5 Jul 2023 16:55:01 +0200 Subject: [PATCH 1/4] Fix test setup for Alchemy 7 We do not need a JS build step anymore, because Alchemy now uses importmaps. --- Rakefile | 1 - spec/dummy/app/assets/builds/alchemy_admin.js | 2501 ----------------- .../app/assets/builds/alchemy_admin.js.map | 7 - 3 files changed, 2509 deletions(-) delete mode 100644 spec/dummy/app/assets/builds/alchemy_admin.js delete mode 100644 spec/dummy/app/assets/builds/alchemy_admin.js.map diff --git a/Rakefile b/Rakefile index 4516c91..9ee3fe4 100644 --- a/Rakefile +++ b/Rakefile @@ -40,7 +40,6 @@ namespace :alchemy do SETUP ) exit($?.exitstatus) unless $?.success? - system("bin/rails webpacker:compile") || exit($?.exitstatus) end end end diff --git a/spec/dummy/app/assets/builds/alchemy_admin.js b/spec/dummy/app/assets/builds/alchemy_admin.js deleted file mode 100644 index a20f711..0000000 --- a/spec/dummy/app/assets/builds/alchemy_admin.js +++ /dev/null @@ -1,2501 +0,0 @@ -(() => { - // node_modules/@alchemy_cms/admin/package/dist/admin.js - (() => { - var Vn = /\./; - function vr() { - if (Alchemy.locale == null) - throw "Alchemy.locale is not set! Please set Alchemy.locale to a locale string in order to translate something."; - return Alchemy.locale; - } - function br() { - let n = vr(), t = Alchemy.translations && Alchemy.translations[n]; - return t || (console.warn(`Translations for locale ${n} not found!`), {}); - } - function yr(n, t) { - let e = t.split(Vn), i = n[e[0]]; - return i && i[e[1]] || t; - } - function Dr(n) { - let t = br(); - return Vn.test(n) ? yr(t, n) : t[n] || n; - } - function cn(n, t) { - let e = Dr(n); - return t ? e.replace(/%\{.+\}/, t) : e; - } - var wr = { en: { allowed_chars: "of %{count} chars", cancel: "Cancel", cancelled: "Cancelled", click_to_edit: "click to edit", complete: "Complete", element_dirty_notice: "This element has unsaved changes. Do you really want to fold it?", help: "Help", ok: "Ok", page_dirty_notice: "You have unsaved changes on this page. They will be lost if you continue.", page_found: "Page found", pages_found: "Pages found", url_validation_failed: "The url has no valid format.", warning: "Warning!", "File is too large": "File is too large", "File is too small": "File is too small", "File type not allowed": "File type not allowed", "Maximum number of files exceeded": "Maximum number of files exceeded.", "Uploaded bytes exceed file size": "Uploaded bytes exceed file size", formats: { datetime: "Y-m-d H:i", date: "Y-m-d", time: "H:i", time_24hr: false } } }, Zn = wr; - function Qn(n, t) { - var e = Object.keys(n); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(n); - t && (i = i.filter(function(a) { - return Object.getOwnPropertyDescriptor(n, a).enumerable; - })), e.push.apply(e, i); - } - return e; - } - function Se(n) { - for (var t = 1; t < arguments.length; t++) { - var e = arguments[t] != null ? arguments[t] : {}; - t % 2 ? Qn(Object(e), true).forEach(function(i) { - Er(n, i, e[i]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(e)) : Qn(Object(e)).forEach(function(i) { - Object.defineProperty(n, i, Object.getOwnPropertyDescriptor(e, i)); - }); - } - return n; - } - function Ot(n) { - return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Ot = function(t) { - return typeof t; - } : Ot = function(t) { - return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; - }, Ot(n); - } - function Er(n, t, e) { - return t in n ? Object.defineProperty(n, t, { value: e, enumerable: true, configurable: true, writable: true }) : n[t] = e, n; - } - function Te() { - return Te = Object.assign || function(n) { - for (var t = 1; t < arguments.length; t++) { - var e = arguments[t]; - for (var i in e) - Object.prototype.hasOwnProperty.call(e, i) && (n[i] = e[i]); - } - return n; - }, Te.apply(this, arguments); - } - function Sr(n, t) { - if (n == null) - return {}; - var e = {}, i = Object.keys(n), a, l; - for (l = 0; l < i.length; l++) - a = i[l], !(t.indexOf(a) >= 0) && (e[a] = n[a]); - return e; - } - function Cr(n, t) { - if (n == null) - return {}; - var e = Sr(n, t), i, a; - if (Object.getOwnPropertySymbols) { - var l = Object.getOwnPropertySymbols(n); - for (a = 0; a < l.length; a++) - i = l[a], !(t.indexOf(i) >= 0) && Object.prototype.propertyIsEnumerable.call(n, i) && (e[i] = n[i]); - } - return e; - } - var Mr = "1.15.0"; - function xe(n) { - if (typeof window < "u" && window.navigator) - return !!navigator.userAgent.match(n); - } - var Ie = xe(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i), ct = xe(/Edge/i), ei = xe(/firefox/i), at = xe(/safari/i) && !xe(/chrome/i) && !xe(/android/i), si = xe(/iP(ad|od|hone)/i), ui = xe(/chrome/i) && xe(/android/i), ci = { capture: false, passive: false }; - function N(n, t, e) { - n.addEventListener(t, e, !Ie && ci); - } - function F(n, t, e) { - n.removeEventListener(t, e, !Ie && ci); - } - function Lt(n, t) { - if (t) { - if (t[0] === ">" && (t = t.substring(1)), n) - try { - if (n.matches) - return n.matches(t); - if (n.msMatchesSelector) - return n.msMatchesSelector(t); - if (n.webkitMatchesSelector) - return n.webkitMatchesSelector(t); - } catch { - return false; - } - return false; - } - } - function _r(n) { - return n.host && n !== document && n.host.nodeType ? n.host : n.parentNode; - } - function we(n, t, e, i) { - if (n) { - e = e || document; - do { - if (t != null && (t[0] === ">" ? n.parentNode === e && Lt(n, t) : Lt(n, t)) || i && n === e) - return n; - if (n === e) - break; - } while (n = _r(n)); - } - return null; - } - var ti = /\s+/g; - function de(n, t, e) { - if (n && t) - if (n.classList) - n.classList[e ? "add" : "remove"](t); - else { - var i = (" " + n.className + " ").replace(ti, " ").replace(" " + t + " ", " "); - n.className = (i + (e ? " " + t : "")).replace(ti, " "); - } - } - function S(n, t, e) { - var i = n && n.style; - if (i) { - if (e === void 0) - return document.defaultView && document.defaultView.getComputedStyle ? e = document.defaultView.getComputedStyle(n, "") : n.currentStyle && (e = n.currentStyle), t === void 0 ? e : e[t]; - !(t in i) && t.indexOf("webkit") === -1 && (t = "-webkit-" + t), i[t] = e + (typeof e == "string" ? "" : "px"); - } - } - function Ue(n, t) { - var e = ""; - if (typeof n == "string") - e = n; - else - do { - var i = S(n, "transform"); - i && i !== "none" && (e = i + " " + e); - } while (!t && (n = n.parentNode)); - var a = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; - return a && new a(e); - } - function di(n, t, e) { - if (n) { - var i = n.getElementsByTagName(t), a = 0, l = i.length; - if (e) - for (; a < l; a++) - e(i[a], a); - return i; - } - return []; - } - function Ee() { - var n = document.scrollingElement; - return n || document.documentElement; - } - function U(n, t, e, i, a) { - if (!(!n.getBoundingClientRect && n !== window)) { - var l, u, c, f, p, v, g; - if (n !== window && n.parentNode && n !== Ee() ? (l = n.getBoundingClientRect(), u = l.top, c = l.left, f = l.bottom, p = l.right, v = l.height, g = l.width) : (u = 0, c = 0, f = window.innerHeight, p = window.innerWidth, v = window.innerHeight, g = window.innerWidth), (t || e) && n !== window && (a = a || n.parentNode, !Ie)) - do - if (a && a.getBoundingClientRect && (S(a, "transform") !== "none" || e && S(a, "position") !== "static")) { - var E = a.getBoundingClientRect(); - u -= E.top + parseInt(S(a, "border-top-width")), c -= E.left + parseInt(S(a, "border-left-width")), f = u + l.height, p = c + l.width; - break; - } - while (a = a.parentNode); - if (i && n !== window) { - var _ = Ue(a || n), I = _ && _.a, y = _ && _.d; - _ && (u /= y, c /= I, g /= I, v /= y, f = u + v, p = c + g); - } - return { top: u, left: c, bottom: f, right: p, width: g, height: v }; - } - } - function ni(n, t, e) { - for (var i = Pe(n, true), a = U(n)[t]; i; ) { - var l = U(i)[e], u = void 0; - if (e === "top" || e === "left" ? u = a >= l : u = a <= l, !u) - return i; - if (i === Ee()) - break; - i = Pe(i, false); - } - return false; - } - function Je(n, t, e, i) { - for (var a = 0, l = 0, u = n.children; l < u.length; ) { - if (u[l].style.display !== "none" && u[l] !== C.ghost && (i || u[l] !== C.dragged) && we(u[l], e.draggable, n, false)) { - if (a === t) - return u[l]; - a++; - } - l++; - } - return null; - } - function Cn(n, t) { - for (var e = n.lastElementChild; e && (e === C.ghost || S(e, "display") === "none" || t && !Lt(e, t)); ) - e = e.previousElementSibling; - return e || null; - } - function he(n, t) { - var e = 0; - if (!n || !n.parentNode) - return -1; - for (; n = n.previousElementSibling; ) - n.nodeName.toUpperCase() !== "TEMPLATE" && n !== C.clone && (!t || Lt(n, t)) && e++; - return e; - } - function ii(n) { - var t = 0, e = 0, i = Ee(); - if (n) - do { - var a = Ue(n), l = a.a, u = a.d; - t += n.scrollLeft * l, e += n.scrollTop * u; - } while (n !== i && (n = n.parentNode)); - return [t, e]; - } - function xr(n, t) { - for (var e in n) - if (n.hasOwnProperty(e)) { - for (var i in t) - if (t.hasOwnProperty(i) && t[i] === n[e][i]) - return Number(e); - } - return -1; - } - function Pe(n, t) { - if (!n || !n.getBoundingClientRect) - return Ee(); - var e = n, i = false; - do - if (e.clientWidth < e.scrollWidth || e.clientHeight < e.scrollHeight) { - var a = S(e); - if (e.clientWidth < e.scrollWidth && (a.overflowX == "auto" || a.overflowX == "scroll") || e.clientHeight < e.scrollHeight && (a.overflowY == "auto" || a.overflowY == "scroll")) { - if (!e.getBoundingClientRect || e === document.body) - return Ee(); - if (i || t) - return e; - i = true; - } - } - while (e = e.parentNode); - return Ee(); - } - function Tr(n, t) { - if (n && t) - for (var e in t) - t.hasOwnProperty(e) && (n[e] = t[e]); - return n; - } - function dn(n, t) { - return Math.round(n.top) === Math.round(t.top) && Math.round(n.left) === Math.round(t.left) && Math.round(n.height) === Math.round(t.height) && Math.round(n.width) === Math.round(t.width); - } - var ot; - function fi(n, t) { - return function() { - if (!ot) { - var e = arguments, i = this; - e.length === 1 ? n.call(i, e[0]) : n.apply(i, e), ot = setTimeout(function() { - ot = void 0; - }, t); - } - }; - } - function Ir() { - clearTimeout(ot), ot = void 0; - } - function pi(n, t, e) { - n.scrollLeft += t, n.scrollTop += e; - } - function hi(n) { - var t = window.Polymer, e = window.jQuery || window.Zepto; - return t && t.dom ? t.dom(n).cloneNode(true) : e ? e(n).clone(true)[0] : n.cloneNode(true); - } - var pe = "Sortable" + (/* @__PURE__ */ new Date()).getTime(); - function Ar() { - var n = [], t; - return { captureAnimationState: function() { - if (n = [], !!this.options.animation) { - var i = [].slice.call(this.el.children); - i.forEach(function(a) { - if (!(S(a, "display") === "none" || a === C.ghost)) { - n.push({ target: a, rect: U(a) }); - var l = Se({}, n[n.length - 1].rect); - if (a.thisAnimationDuration) { - var u = Ue(a, true); - u && (l.top -= u.f, l.left -= u.e); - } - a.fromRect = l; - } - }); - } - }, addAnimationState: function(i) { - n.push(i); - }, removeAnimationState: function(i) { - n.splice(xr(n, { target: i }), 1); - }, animateAll: function(i) { - var a = this; - if (!this.options.animation) { - clearTimeout(t), typeof i == "function" && i(); - return; - } - var l = false, u = 0; - n.forEach(function(c) { - var f = 0, p = c.target, v = p.fromRect, g = U(p), E = p.prevFromRect, _ = p.prevToRect, I = c.rect, y = Ue(p, true); - y && (g.top -= y.f, g.left -= y.e), p.toRect = g, p.thisAnimationDuration && dn(E, g) && !dn(v, g) && (I.top - g.top) / (I.left - g.left) === (v.top - g.top) / (v.left - g.left) && (f = Fr(I, E, _, a.options)), dn(g, v) || (p.prevFromRect = v, p.prevToRect = g, f || (f = a.options.animation), a.animate(p, I, g, f)), f && (l = true, u = Math.max(u, f), clearTimeout(p.animationResetTimer), p.animationResetTimer = setTimeout(function() { - p.animationTime = 0, p.prevFromRect = null, p.fromRect = null, p.prevToRect = null, p.thisAnimationDuration = null; - }, f), p.thisAnimationDuration = f); - }), clearTimeout(t), l ? t = setTimeout(function() { - typeof i == "function" && i(); - }, u) : typeof i == "function" && i(), n = []; - }, animate: function(i, a, l, u) { - if (u) { - S(i, "transition", ""), S(i, "transform", ""); - var c = Ue(this.el), f = c && c.a, p = c && c.d, v = (a.left - l.left) / (f || 1), g = (a.top - l.top) / (p || 1); - i.animatingX = !!v, i.animatingY = !!g, S(i, "transform", "translate3d(" + v + "px," + g + "px,0)"), this.forRepaintDummy = Or(i), S(i, "transition", "transform " + u + "ms" + (this.options.easing ? " " + this.options.easing : "")), S(i, "transform", "translate3d(0,0,0)"), typeof i.animated == "number" && clearTimeout(i.animated), i.animated = setTimeout(function() { - S(i, "transition", ""), S(i, "transform", ""), i.animated = false, i.animatingX = false, i.animatingY = false; - }, u); - } - } }; - } - function Or(n) { - return n.offsetWidth; - } - function Fr(n, t, e, i) { - return Math.sqrt(Math.pow(t.top - n.top, 2) + Math.pow(t.left - n.left, 2)) / Math.sqrt(Math.pow(t.top - e.top, 2) + Math.pow(t.left - e.left, 2)) * i.animation; - } - var Ke = [], fn = { initializeByDefault: true }, dt = { mount: function(t) { - for (var e in fn) - fn.hasOwnProperty(e) && !(e in t) && (t[e] = fn[e]); - Ke.forEach(function(i) { - if (i.pluginName === t.pluginName) - throw "Sortable: Cannot mount plugin ".concat(t.pluginName, " more than once"); - }), Ke.push(t); - }, pluginEvent: function(t, e, i) { - var a = this; - this.eventCanceled = false, i.cancel = function() { - a.eventCanceled = true; - }; - var l = t + "Global"; - Ke.forEach(function(u) { - e[u.pluginName] && (e[u.pluginName][l] && e[u.pluginName][l](Se({ sortable: e }, i)), e.options[u.pluginName] && e[u.pluginName][t] && e[u.pluginName][t](Se({ sortable: e }, i))); - }); - }, initializePlugins: function(t, e, i, a) { - Ke.forEach(function(c) { - var f = c.pluginName; - if (!(!t.options[f] && !c.initializeByDefault)) { - var p = new c(t, e, t.options); - p.sortable = t, p.options = t.options, t[f] = p, Te(i, p.defaults); - } - }); - for (var l in t.options) - if (t.options.hasOwnProperty(l)) { - var u = this.modifyOption(t, l, t.options[l]); - typeof u < "u" && (t.options[l] = u); - } - }, getEventProperties: function(t, e) { - var i = {}; - return Ke.forEach(function(a) { - typeof a.eventProperties == "function" && Te(i, a.eventProperties.call(e[a.pluginName], t)); - }), i; - }, modifyOption: function(t, e, i) { - var a; - return Ke.forEach(function(l) { - t[l.pluginName] && l.optionListeners && typeof l.optionListeners[e] == "function" && (a = l.optionListeners[e].call(t[l.pluginName], i)); - }), a; - } }; - function kr(n) { - var t = n.sortable, e = n.rootEl, i = n.name, a = n.targetEl, l = n.cloneEl, u = n.toEl, c = n.fromEl, f = n.oldIndex, p = n.newIndex, v = n.oldDraggableIndex, g = n.newDraggableIndex, E = n.originalEvent, _ = n.putSortable, I = n.extraEventProperties; - if (t = t || e && e[pe], !!t) { - var y, B = t.options, J = "on" + i.charAt(0).toUpperCase() + i.substr(1); - window.CustomEvent && !Ie && !ct ? y = new CustomEvent(i, { bubbles: true, cancelable: true }) : (y = document.createEvent("Event"), y.initEvent(i, true, true)), y.to = u || e, y.from = c || e, y.item = a || e, y.clone = l, y.oldIndex = f, y.newIndex = p, y.oldDraggableIndex = v, y.newDraggableIndex = g, y.originalEvent = E, y.pullMode = _ ? _.lastPutMode : void 0; - var P = Se(Se({}, I), dt.getEventProperties(i, t)); - for (var q in P) - y[q] = P[q]; - e && e.dispatchEvent(y), B[J] && B[J].call(t, y); - } - } - var Nr = ["evt"], oe = function(t, e) { - var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, a = i.evt, l = Cr(i, Nr); - dt.pluginEvent.bind(C)(t, e, Se({ dragEl: m, parentEl: z, ghostEl: x, rootEl: H, nextEl: Re, lastDownEl: Ft, cloneEl: R, cloneHidden: Ne, dragStarted: nt, putSortable: Z, activeSortable: C.active, originalEvent: a, oldIndex: $e, oldDraggableIndex: lt, newIndex: fe, newDraggableIndex: ke, hideGhostForTarget: bi, unhideGhostForTarget: yi, cloneNowHidden: function() { - Ne = true; - }, cloneNowShown: function() { - Ne = false; - }, dispatchSortableEvent: function(c) { - ae({ sortable: e, name: c, originalEvent: a }); - } }, l)); - }; - function ae(n) { - kr(Se({ putSortable: Z, cloneEl: R, targetEl: m, rootEl: H, oldIndex: $e, oldDraggableIndex: lt, newIndex: fe, newDraggableIndex: ke }, n)); - } - var m, z, x, H, Re, Ft, R, Ne, $e, fe, lt, ke, xt, Z, Ge = false, Ht = false, Yt = [], Ye, ge, pn, hn, ri, ai, nt, Xe, st, ut = false, Tt = false, kt, ee, mn = [], Dn = false, jt = [], Bt = typeof document < "u", It = si, oi = ct || Ie ? "cssFloat" : "float", Pr = Bt && !ui && !si && "draggable" in document.createElement("div"), mi = function() { - if (Bt) { - if (Ie) - return false; - var n = document.createElement("x"); - return n.style.cssText = "pointer-events:auto", n.style.pointerEvents === "auto"; - } - }(), gi = function(t, e) { - var i = S(t), a = parseInt(i.width) - parseInt(i.paddingLeft) - parseInt(i.paddingRight) - parseInt(i.borderLeftWidth) - parseInt(i.borderRightWidth), l = Je(t, 0, e), u = Je(t, 1, e), c = l && S(l), f = u && S(u), p = c && parseInt(c.marginLeft) + parseInt(c.marginRight) + U(l).width, v = f && parseInt(f.marginLeft) + parseInt(f.marginRight) + U(u).width; - if (i.display === "flex") - return i.flexDirection === "column" || i.flexDirection === "column-reverse" ? "vertical" : "horizontal"; - if (i.display === "grid") - return i.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; - if (l && c.float && c.float !== "none") { - var g = c.float === "left" ? "left" : "right"; - return u && (f.clear === "both" || f.clear === g) ? "vertical" : "horizontal"; - } - return l && (c.display === "block" || c.display === "flex" || c.display === "table" || c.display === "grid" || p >= a && i[oi] === "none" || u && i[oi] === "none" && p + v > a) ? "vertical" : "horizontal"; - }, Lr = function(t, e, i) { - var a = i ? t.left : t.top, l = i ? t.right : t.bottom, u = i ? t.width : t.height, c = i ? e.left : e.top, f = i ? e.right : e.bottom, p = i ? e.width : e.height; - return a === c || l === f || a + u / 2 === c + p / 2; - }, Hr = function(t, e) { - var i; - return Yt.some(function(a) { - var l = a[pe].options.emptyInsertThreshold; - if (!(!l || Cn(a))) { - var u = U(a), c = t >= u.left - l && t <= u.right + l, f = e >= u.top - l && e <= u.bottom + l; - if (c && f) - return i = a; - } - }), i; - }, vi = function(t) { - function e(l, u) { - return function(c, f, p, v) { - var g = c.options.group.name && f.options.group.name && c.options.group.name === f.options.group.name; - if (l == null && (u || g)) - return true; - if (l == null || l === false) - return false; - if (u && l === "clone") - return l; - if (typeof l == "function") - return e(l(c, f, p, v), u)(c, f, p, v); - var E = (u ? c : f).options.group.name; - return l === true || typeof l == "string" && l === E || l.join && l.indexOf(E) > -1; - }; - } - var i = {}, a = t.group; - (!a || Ot(a) != "object") && (a = { name: a }), i.name = a.name, i.checkPull = e(a.pull, true), i.checkPut = e(a.put), i.revertClone = a.revertClone, t.group = i; - }, bi = function() { - !mi && x && S(x, "display", "none"); - }, yi = function() { - !mi && x && S(x, "display", ""); - }; - Bt && !ui && document.addEventListener("click", function(n) { - if (Ht) - return n.preventDefault(), n.stopPropagation && n.stopPropagation(), n.stopImmediatePropagation && n.stopImmediatePropagation(), Ht = false, false; - }, true); - var je = function(t) { - if (m) { - t = t.touches ? t.touches[0] : t; - var e = Hr(t.clientX, t.clientY); - if (e) { - var i = {}; - for (var a in t) - t.hasOwnProperty(a) && (i[a] = t[a]); - i.target = i.rootEl = e, i.preventDefault = void 0, i.stopPropagation = void 0, e[pe]._onDragOver(i); - } - } - }, Yr = function(t) { - m && m.parentNode[pe]._isOutsideThisEl(t.target); - }; - function C(n, t) { - if (!(n && n.nodeType && n.nodeType === 1)) - throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(n)); - this.el = n, this.options = t = Te({}, t), n[pe] = this; - var e = { group: null, sort: true, disabled: false, store: null, handle: null, draggable: /^[uo]l$/i.test(n.nodeName) ? ">li" : ">*", swapThreshold: 1, invertSwap: false, invertedSwapThreshold: null, removeCloneOnHide: true, direction: function() { - return gi(n, this.options); - }, ghostClass: "sortable-ghost", chosenClass: "sortable-chosen", dragClass: "sortable-drag", ignore: "a, img", filter: null, preventOnFilter: true, animation: 0, easing: null, setData: function(u, c) { - u.setData("Text", c.textContent); - }, dropBubble: false, dragoverBubble: false, dataIdAttr: "data-id", delay: 0, delayOnTouchOnly: false, touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, forceFallback: false, fallbackClass: "sortable-fallback", fallbackOnBody: false, fallbackTolerance: 0, fallbackOffset: { x: 0, y: 0 }, supportPointer: C.supportPointer !== false && "PointerEvent" in window && !at, emptyInsertThreshold: 5 }; - dt.initializePlugins(this, n, e); - for (var i in e) - !(i in t) && (t[i] = e[i]); - vi(t); - for (var a in this) - a.charAt(0) === "_" && typeof this[a] == "function" && (this[a] = this[a].bind(this)); - this.nativeDraggable = t.forceFallback ? false : Pr, this.nativeDraggable && (this.options.touchStartThreshold = 1), t.supportPointer ? N(n, "pointerdown", this._onTapStart) : (N(n, "mousedown", this._onTapStart), N(n, "touchstart", this._onTapStart)), this.nativeDraggable && (N(n, "dragover", this), N(n, "dragenter", this)), Yt.push(this.el), t.store && t.store.get && this.sort(t.store.get(this) || []), Te(this, Ar()); - } - C.prototype = { constructor: C, _isOutsideThisEl: function(t) { - !this.el.contains(t) && t !== this.el && (Xe = null); - }, _getDirection: function(t, e) { - return typeof this.options.direction == "function" ? this.options.direction.call(this, t, e, m) : this.options.direction; - }, _onTapStart: function(t) { - if (t.cancelable) { - var e = this, i = this.el, a = this.options, l = a.preventOnFilter, u = t.type, c = t.touches && t.touches[0] || t.pointerType && t.pointerType === "touch" && t, f = (c || t).target, p = t.target.shadowRoot && (t.path && t.path[0] || t.composedPath && t.composedPath()[0]) || f, v = a.filter; - if (Xr(i), !m && !(/mousedown|pointerdown/.test(u) && t.button !== 0 || a.disabled) && !p.isContentEditable && !(!this.nativeDraggable && at && f && f.tagName.toUpperCase() === "SELECT") && (f = we(f, a.draggable, i, false), !(f && f.animated) && Ft !== f)) { - if ($e = he(f), lt = he(f, a.draggable), typeof v == "function") { - if (v.call(this, t, f, this)) { - ae({ sortable: e, rootEl: p, name: "filter", targetEl: f, toEl: i, fromEl: i }), oe("filter", e, { evt: t }), l && t.cancelable && t.preventDefault(); - return; - } - } else if (v && (v = v.split(",").some(function(g) { - if (g = we(p, g.trim(), i, false), g) - return ae({ sortable: e, rootEl: g, name: "filter", targetEl: f, fromEl: i, toEl: i }), oe("filter", e, { evt: t }), true; - }), v)) { - l && t.cancelable && t.preventDefault(); - return; - } - a.handle && !we(p, a.handle, i, false) || this._prepareDragStart(t, c, f); - } - } - }, _prepareDragStart: function(t, e, i) { - var a = this, l = a.el, u = a.options, c = l.ownerDocument, f; - if (i && !m && i.parentNode === l) { - var p = U(i); - if (H = l, m = i, z = m.parentNode, Re = m.nextSibling, Ft = i, xt = u.group, C.dragged = m, Ye = { target: m, clientX: (e || t).clientX, clientY: (e || t).clientY }, ri = Ye.clientX - p.left, ai = Ye.clientY - p.top, this._lastX = (e || t).clientX, this._lastY = (e || t).clientY, m.style["will-change"] = "all", f = function() { - if (oe("delayEnded", a, { evt: t }), C.eventCanceled) { - a._onDrop(); - return; - } - a._disableDelayedDragEvents(), !ei && a.nativeDraggable && (m.draggable = true), a._triggerDragStart(t, e), ae({ sortable: a, name: "choose", originalEvent: t }), de(m, u.chosenClass, true); - }, u.ignore.split(",").forEach(function(v) { - di(m, v.trim(), gn); - }), N(c, "dragover", je), N(c, "mousemove", je), N(c, "touchmove", je), N(c, "mouseup", a._onDrop), N(c, "touchend", a._onDrop), N(c, "touchcancel", a._onDrop), ei && this.nativeDraggable && (this.options.touchStartThreshold = 4, m.draggable = true), oe("delayStart", this, { evt: t }), u.delay && (!u.delayOnTouchOnly || e) && (!this.nativeDraggable || !(ct || Ie))) { - if (C.eventCanceled) { - this._onDrop(); - return; - } - N(c, "mouseup", a._disableDelayedDrag), N(c, "touchend", a._disableDelayedDrag), N(c, "touchcancel", a._disableDelayedDrag), N(c, "mousemove", a._delayedDragTouchMoveHandler), N(c, "touchmove", a._delayedDragTouchMoveHandler), u.supportPointer && N(c, "pointermove", a._delayedDragTouchMoveHandler), a._dragStartTimer = setTimeout(f, u.delay); - } else - f(); - } - }, _delayedDragTouchMoveHandler: function(t) { - var e = t.touches ? t.touches[0] : t; - Math.max(Math.abs(e.clientX - this._lastX), Math.abs(e.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag(); - }, _disableDelayedDrag: function() { - m && gn(m), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents(); - }, _disableDelayedDragEvents: function() { - var t = this.el.ownerDocument; - F(t, "mouseup", this._disableDelayedDrag), F(t, "touchend", this._disableDelayedDrag), F(t, "touchcancel", this._disableDelayedDrag), F(t, "mousemove", this._delayedDragTouchMoveHandler), F(t, "touchmove", this._delayedDragTouchMoveHandler), F(t, "pointermove", this._delayedDragTouchMoveHandler); - }, _triggerDragStart: function(t, e) { - e = e || t.pointerType == "touch" && t, !this.nativeDraggable || e ? this.options.supportPointer ? N(document, "pointermove", this._onTouchMove) : e ? N(document, "touchmove", this._onTouchMove) : N(document, "mousemove", this._onTouchMove) : (N(m, "dragend", this), N(H, "dragstart", this._onDragStart)); - try { - document.selection ? Nt(function() { - document.selection.empty(); - }) : window.getSelection().removeAllRanges(); - } catch { - } - }, _dragStarted: function(t, e) { - if (Ge = false, H && m) { - oe("dragStarted", this, { evt: e }), this.nativeDraggable && N(document, "dragover", Yr); - var i = this.options; - !t && de(m, i.dragClass, false), de(m, i.ghostClass, true), C.active = this, t && this._appendGhost(), ae({ sortable: this, name: "start", originalEvent: e }); - } else - this._nulling(); - }, _emulateDragOver: function() { - if (ge) { - this._lastX = ge.clientX, this._lastY = ge.clientY, bi(); - for (var t = document.elementFromPoint(ge.clientX, ge.clientY), e = t; t && t.shadowRoot && (t = t.shadowRoot.elementFromPoint(ge.clientX, ge.clientY), t !== e); ) - e = t; - if (m.parentNode[pe]._isOutsideThisEl(t), e) - do { - if (e[pe]) { - var i = void 0; - if (i = e[pe]._onDragOver({ clientX: ge.clientX, clientY: ge.clientY, target: t, rootEl: e }), i && !this.options.dragoverBubble) - break; - } - t = e; - } while (e = e.parentNode); - yi(); - } - }, _onTouchMove: function(t) { - if (Ye) { - var e = this.options, i = e.fallbackTolerance, a = e.fallbackOffset, l = t.touches ? t.touches[0] : t, u = x && Ue(x, true), c = x && u && u.a, f = x && u && u.d, p = It && ee && ii(ee), v = (l.clientX - Ye.clientX + a.x) / (c || 1) + (p ? p[0] - mn[0] : 0) / (c || 1), g = (l.clientY - Ye.clientY + a.y) / (f || 1) + (p ? p[1] - mn[1] : 0) / (f || 1); - if (!C.active && !Ge) { - if (i && Math.max(Math.abs(l.clientX - this._lastX), Math.abs(l.clientY - this._lastY)) < i) - return; - this._onDragStart(t, true); - } - if (x) { - u ? (u.e += v - (pn || 0), u.f += g - (hn || 0)) : u = { a: 1, b: 0, c: 0, d: 1, e: v, f: g }; - var E = "matrix(".concat(u.a, ",").concat(u.b, ",").concat(u.c, ",").concat(u.d, ",").concat(u.e, ",").concat(u.f, ")"); - S(x, "webkitTransform", E), S(x, "mozTransform", E), S(x, "msTransform", E), S(x, "transform", E), pn = v, hn = g, ge = l; - } - t.cancelable && t.preventDefault(); - } - }, _appendGhost: function() { - if (!x) { - var t = this.options.fallbackOnBody ? document.body : H, e = U(m, true, It, true, t), i = this.options; - if (It) { - for (ee = t; S(ee, "position") === "static" && S(ee, "transform") === "none" && ee !== document; ) - ee = ee.parentNode; - ee !== document.body && ee !== document.documentElement ? (ee === document && (ee = Ee()), e.top += ee.scrollTop, e.left += ee.scrollLeft) : ee = Ee(), mn = ii(ee); - } - x = m.cloneNode(true), de(x, i.ghostClass, false), de(x, i.fallbackClass, true), de(x, i.dragClass, true), S(x, "transition", ""), S(x, "transform", ""), S(x, "box-sizing", "border-box"), S(x, "margin", 0), S(x, "top", e.top), S(x, "left", e.left), S(x, "width", e.width), S(x, "height", e.height), S(x, "opacity", "0.8"), S(x, "position", It ? "absolute" : "fixed"), S(x, "zIndex", "100000"), S(x, "pointerEvents", "none"), C.ghost = x, t.appendChild(x), S(x, "transform-origin", ri / parseInt(x.style.width) * 100 + "% " + ai / parseInt(x.style.height) * 100 + "%"); - } - }, _onDragStart: function(t, e) { - var i = this, a = t.dataTransfer, l = i.options; - if (oe("dragStart", this, { evt: t }), C.eventCanceled) { - this._onDrop(); - return; - } - oe("setupClone", this), C.eventCanceled || (R = hi(m), R.removeAttribute("id"), R.draggable = false, R.style["will-change"] = "", this._hideClone(), de(R, this.options.chosenClass, false), C.clone = R), i.cloneId = Nt(function() { - oe("clone", i), !C.eventCanceled && (i.options.removeCloneOnHide || H.insertBefore(R, m), i._hideClone(), ae({ sortable: i, name: "clone" })); - }), !e && de(m, l.dragClass, true), e ? (Ht = true, i._loopId = setInterval(i._emulateDragOver, 50)) : (F(document, "mouseup", i._onDrop), F(document, "touchend", i._onDrop), F(document, "touchcancel", i._onDrop), a && (a.effectAllowed = "move", l.setData && l.setData.call(i, a, m)), N(document, "drop", i), S(m, "transform", "translateZ(0)")), Ge = true, i._dragStartId = Nt(i._dragStarted.bind(i, e, t)), N(document, "selectstart", i), nt = true, at && S(document.body, "user-select", "none"); - }, _onDragOver: function(t) { - var e = this.el, i = t.target, a, l, u, c = this.options, f = c.group, p = C.active, v = xt === f, g = c.sort, E = Z || p, _, I = this, y = false; - if (Dn) - return; - function B(Fe, Dt) { - oe(Fe, I, Se({ evt: t, isOwner: v, axis: _ ? "vertical" : "horizontal", revert: u, dragRect: a, targetRect: l, canSort: g, fromSortable: E, target: i, completed: P, onMove: function(ze, nn) { - return At(H, e, m, a, ze, U(ze), t, nn); - }, changed: q }, Dt)); - } - function J() { - B("dragOverAnimationCapture"), I.captureAnimationState(), I !== E && E.captureAnimationState(); - } - function P(Fe) { - return B("dragOverCompleted", { insertion: Fe }), Fe && (v ? p._hideClone() : p._showClone(I), I !== E && (de(m, Z ? Z.options.ghostClass : p.options.ghostClass, false), de(m, c.ghostClass, true)), Z !== I && I !== C.active ? Z = I : I === C.active && Z && (Z = null), E === I && (I._ignoreWhileAnimating = i), I.animateAll(function() { - B("dragOverAnimationComplete"), I._ignoreWhileAnimating = null; - }), I !== E && (E.animateAll(), E._ignoreWhileAnimating = null)), (i === m && !m.animated || i === e && !i.animated) && (Xe = null), !c.dragoverBubble && !t.rootEl && i !== document && (m.parentNode[pe]._isOutsideThisEl(t.target), !Fe && je(t)), !c.dragoverBubble && t.stopPropagation && t.stopPropagation(), y = true; - } - function q() { - fe = he(m), ke = he(m, c.draggable), ae({ sortable: I, name: "change", toEl: e, newIndex: fe, newDraggableIndex: ke, originalEvent: t }); - } - if (t.preventDefault !== void 0 && t.cancelable && t.preventDefault(), i = we(i, c.draggable, e, true), B("dragOver"), C.eventCanceled) - return y; - if (m.contains(t.target) || i.animated && i.animatingX && i.animatingY || I._ignoreWhileAnimating === i) - return P(false); - if (Ht = false, p && !c.disabled && (v ? g || (u = z !== H) : Z === this || (this.lastPutMode = xt.checkPull(this, p, m, t)) && f.checkPut(this, p, m, t))) { - if (_ = this._getDirection(t, i) === "vertical", a = U(m), B("dragOverValid"), C.eventCanceled) - return y; - if (u) - return z = H, J(), this._hideClone(), B("revert"), C.eventCanceled || (Re ? H.insertBefore(m, Re) : H.appendChild(m)), P(true); - var W = Cn(e, c.draggable); - if (!W || Wr(t, _, this) && !W.animated) { - if (W === m) - return P(false); - if (W && e === t.target && (i = W), i && (l = U(i)), At(H, e, m, a, i, l, t, !!i) !== false) - return J(), W && W.nextSibling ? e.insertBefore(m, W.nextSibling) : e.appendChild(m), z = e, q(), P(true); - } else if (W && Br(t, _, this)) { - var re = Je(e, 0, c, true); - if (re === m) - return P(false); - if (i = re, l = U(i), At(H, e, m, a, i, l, t, false) !== false) - return J(), e.insertBefore(m, re), z = e, q(), P(true); - } else if (i.parentNode === e) { - l = U(i); - var A = 0, Y, V = m.parentNode !== e, K = !Lr(m.animated && m.toRect || a, i.animated && i.toRect || l, _), me = _ ? "top" : "left", ve = ni(i, "top", "top") || ni(m, "top", "top"), be = ve ? ve.scrollTop : void 0; - Xe !== i && (Y = l[me], ut = false, Tt = !K && c.invertSwap || V), A = zr(t, i, l, _, K ? 1 : c.swapThreshold, c.invertedSwapThreshold == null ? c.swapThreshold : c.invertedSwapThreshold, Tt, Xe === i); - var Q; - if (A !== 0) { - var Me = he(m); - do - Me -= A, Q = z.children[Me]; - while (Q && (S(Q, "display") === "none" || Q === x)); - } - if (A === 0 || Q === i) - return P(false); - Xe = i, st = A; - var Oe = i.nextElementSibling, ye = false; - ye = A === 1; - var We = At(H, e, m, a, i, l, t, ye); - if (We !== false) - return (We === 1 || We === -1) && (ye = We === 1), Dn = true, setTimeout(Rr, 30), J(), ye && !Oe ? e.appendChild(m) : i.parentNode.insertBefore(m, ye ? Oe : i), ve && pi(ve, 0, be - ve.scrollTop), z = m.parentNode, Y !== void 0 && !Tt && (kt = Math.abs(Y - U(i)[me])), q(), P(true); - } - if (e.contains(m)) - return P(false); - } - return false; - }, _ignoreWhileAnimating: null, _offMoveEvents: function() { - F(document, "mousemove", this._onTouchMove), F(document, "touchmove", this._onTouchMove), F(document, "pointermove", this._onTouchMove), F(document, "dragover", je), F(document, "mousemove", je), F(document, "touchmove", je); - }, _offUpEvents: function() { - var t = this.el.ownerDocument; - F(t, "mouseup", this._onDrop), F(t, "touchend", this._onDrop), F(t, "pointerup", this._onDrop), F(t, "touchcancel", this._onDrop), F(document, "selectstart", this); - }, _onDrop: function(t) { - var e = this.el, i = this.options; - if (fe = he(m), ke = he(m, i.draggable), oe("drop", this, { evt: t }), z = m && m.parentNode, fe = he(m), ke = he(m, i.draggable), C.eventCanceled) { - this._nulling(); - return; - } - Ge = false, Tt = false, ut = false, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), wn(this.cloneId), wn(this._dragStartId), this.nativeDraggable && (F(document, "drop", this), F(e, "dragstart", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), at && S(document.body, "user-select", ""), S(m, "transform", ""), t && (nt && (t.cancelable && t.preventDefault(), !i.dropBubble && t.stopPropagation()), x && x.parentNode && x.parentNode.removeChild(x), (H === z || Z && Z.lastPutMode !== "clone") && R && R.parentNode && R.parentNode.removeChild(R), m && (this.nativeDraggable && F(m, "dragend", this), gn(m), m.style["will-change"] = "", nt && !Ge && de(m, Z ? Z.options.ghostClass : this.options.ghostClass, false), de(m, this.options.chosenClass, false), ae({ sortable: this, name: "unchoose", toEl: z, newIndex: null, newDraggableIndex: null, originalEvent: t }), H !== z ? (fe >= 0 && (ae({ rootEl: z, name: "add", toEl: z, fromEl: H, originalEvent: t }), ae({ sortable: this, name: "remove", toEl: z, originalEvent: t }), ae({ rootEl: z, name: "sort", toEl: z, fromEl: H, originalEvent: t }), ae({ sortable: this, name: "sort", toEl: z, originalEvent: t })), Z && Z.save()) : fe !== $e && fe >= 0 && (ae({ sortable: this, name: "update", toEl: z, originalEvent: t }), ae({ sortable: this, name: "sort", toEl: z, originalEvent: t })), C.active && ((fe == null || fe === -1) && (fe = $e, ke = lt), ae({ sortable: this, name: "end", toEl: z, originalEvent: t }), this.save()))), this._nulling(); - }, _nulling: function() { - oe("nulling", this), H = m = z = x = Re = R = Ft = Ne = Ye = ge = nt = fe = ke = $e = lt = Xe = st = Z = xt = C.dragged = C.ghost = C.clone = C.active = null, jt.forEach(function(t) { - t.checked = true; - }), jt.length = pn = hn = 0; - }, handleEvent: function(t) { - switch (t.type) { - case "drop": - case "dragend": - this._onDrop(t); - break; - case "dragenter": - case "dragover": - m && (this._onDragOver(t), jr(t)); - break; - case "selectstart": - t.preventDefault(); - break; - } - }, toArray: function() { - for (var t = [], e, i = this.el.children, a = 0, l = i.length, u = this.options; a < l; a++) - e = i[a], we(e, u.draggable, this.el, false) && t.push(e.getAttribute(u.dataIdAttr) || Kr(e)); - return t; - }, sort: function(t, e) { - var i = {}, a = this.el; - this.toArray().forEach(function(l, u) { - var c = a.children[u]; - we(c, this.options.draggable, a, false) && (i[l] = c); - }, this), e && this.captureAnimationState(), t.forEach(function(l) { - i[l] && (a.removeChild(i[l]), a.appendChild(i[l])); - }), e && this.animateAll(); - }, save: function() { - var t = this.options.store; - t && t.set && t.set(this); - }, closest: function(t, e) { - return we(t, e || this.options.draggable, this.el, false); - }, option: function(t, e) { - var i = this.options; - if (e === void 0) - return i[t]; - var a = dt.modifyOption(this, t, e); - typeof a < "u" ? i[t] = a : i[t] = e, t === "group" && vi(i); - }, destroy: function() { - oe("destroy", this); - var t = this.el; - t[pe] = null, F(t, "mousedown", this._onTapStart), F(t, "touchstart", this._onTapStart), F(t, "pointerdown", this._onTapStart), this.nativeDraggable && (F(t, "dragover", this), F(t, "dragenter", this)), Array.prototype.forEach.call(t.querySelectorAll("[draggable]"), function(e) { - e.removeAttribute("draggable"); - }), this._onDrop(), this._disableDelayedDragEvents(), Yt.splice(Yt.indexOf(this.el), 1), this.el = t = null; - }, _hideClone: function() { - if (!Ne) { - if (oe("hideClone", this), C.eventCanceled) - return; - S(R, "display", "none"), this.options.removeCloneOnHide && R.parentNode && R.parentNode.removeChild(R), Ne = true; - } - }, _showClone: function(t) { - if (t.lastPutMode !== "clone") { - this._hideClone(); - return; - } - if (Ne) { - if (oe("showClone", this), C.eventCanceled) - return; - m.parentNode == H && !this.options.group.revertClone ? H.insertBefore(R, m) : Re ? H.insertBefore(R, Re) : H.appendChild(R), this.options.group.revertClone && this.animate(m, R), S(R, "display", ""), Ne = false; - } - } }; - function jr(n) { - n.dataTransfer && (n.dataTransfer.dropEffect = "move"), n.cancelable && n.preventDefault(); - } - function At(n, t, e, i, a, l, u, c) { - var f, p = n[pe], v = p.options.onMove, g; - return window.CustomEvent && !Ie && !ct ? f = new CustomEvent("move", { bubbles: true, cancelable: true }) : (f = document.createEvent("Event"), f.initEvent("move", true, true)), f.to = t, f.from = n, f.dragged = e, f.draggedRect = i, f.related = a || t, f.relatedRect = l || U(t), f.willInsertAfter = c, f.originalEvent = u, n.dispatchEvent(f), v && (g = v.call(p, f, u)), g; - } - function gn(n) { - n.draggable = false; - } - function Rr() { - Dn = false; - } - function Br(n, t, e) { - var i = U(Je(e.el, 0, e.options, true)), a = 10; - return t ? n.clientX < i.left - a || n.clientY < i.top && n.clientX < i.right : n.clientY < i.top - a || n.clientY < i.bottom && n.clientX < i.left; - } - function Wr(n, t, e) { - var i = U(Cn(e.el, e.options.draggable)), a = 10; - return t ? n.clientX > i.right + a || n.clientX <= i.right && n.clientY > i.bottom && n.clientX >= i.left : n.clientX > i.right && n.clientY > i.top || n.clientX <= i.right && n.clientY > i.bottom + a; - } - function zr(n, t, e, i, a, l, u, c) { - var f = i ? n.clientY : n.clientX, p = i ? e.height : e.width, v = i ? e.top : e.left, g = i ? e.bottom : e.right, E = false; - if (!u) { - if (c && kt < p * a) { - if (!ut && (st === 1 ? f > v + p * l / 2 : f < g - p * l / 2) && (ut = true), ut) - E = true; - else if (st === 1 ? f < v + kt : f > g - kt) - return -st; - } else if (f > v + p * (1 - a) / 2 && f < g - p * (1 - a) / 2) - return qr(t); - } - return E = E || u, E && (f < v + p * l / 2 || f > g - p * l / 2) ? f > v + p / 2 ? 1 : -1 : 0; - } - function qr(n) { - return he(m) < he(n) ? 1 : -1; - } - function Kr(n) { - for (var t = n.tagName + n.className + n.src + n.href + n.textContent, e = t.length, i = 0; e--; ) - i += t.charCodeAt(e); - return i.toString(36); - } - function Xr(n) { - jt.length = 0; - for (var t = n.getElementsByTagName("input"), e = t.length; e--; ) { - var i = t[e]; - i.checked && jt.push(i); - } - } - function Nt(n) { - return setTimeout(n, 0); - } - function wn(n) { - return clearTimeout(n); - } - Bt && N(document, "touchmove", function(n) { - (C.active || Ge) && n.cancelable && n.preventDefault(); - }); - C.utils = { on: N, off: F, css: S, find: di, is: function(t, e) { - return !!we(t, e, t, false); - }, extend: Tr, throttle: fi, closest: we, toggleClass: de, clone: hi, index: he, nextTick: Nt, cancelNextTick: wn, detectDirection: gi, getChild: Je }; - C.get = function(n) { - return n[pe]; - }; - C.mount = function() { - for (var n = arguments.length, t = new Array(n), e = 0; e < n; e++) - t[e] = arguments[e]; - t[0].constructor === Array && (t = t[0]), t.forEach(function(i) { - if (!i.prototype || !i.prototype.constructor) - throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(i)); - i.utils && (C.utils = Se(Se({}, C.utils), i.utils)), dt.mount(i); - }); - }; - C.create = function(n, t) { - return new C(n, t); - }; - C.version = Mr; - var X = [], it, En, Sn = false, vn, bn, Rt, rt; - function Gr() { - function n() { - this.defaults = { scroll: true, forceAutoScrollFallback: false, scrollSensitivity: 30, scrollSpeed: 10, bubbleScroll: true }; - for (var t in this) - t.charAt(0) === "_" && typeof this[t] == "function" && (this[t] = this[t].bind(this)); - } - return n.prototype = { dragStarted: function(e) { - var i = e.originalEvent; - this.sortable.nativeDraggable ? N(document, "dragover", this._handleAutoScroll) : this.options.supportPointer ? N(document, "pointermove", this._handleFallbackAutoScroll) : i.touches ? N(document, "touchmove", this._handleFallbackAutoScroll) : N(document, "mousemove", this._handleFallbackAutoScroll); - }, dragOverCompleted: function(e) { - var i = e.originalEvent; - !this.options.dragOverBubble && !i.rootEl && this._handleAutoScroll(i); - }, drop: function() { - this.sortable.nativeDraggable ? F(document, "dragover", this._handleAutoScroll) : (F(document, "pointermove", this._handleFallbackAutoScroll), F(document, "touchmove", this._handleFallbackAutoScroll), F(document, "mousemove", this._handleFallbackAutoScroll)), li(), Pt(), Ir(); - }, nulling: function() { - Rt = En = it = Sn = rt = vn = bn = null, X.length = 0; - }, _handleFallbackAutoScroll: function(e) { - this._handleAutoScroll(e, true); - }, _handleAutoScroll: function(e, i) { - var a = this, l = (e.touches ? e.touches[0] : e).clientX, u = (e.touches ? e.touches[0] : e).clientY, c = document.elementFromPoint(l, u); - if (Rt = e, i || this.options.forceAutoScrollFallback || ct || Ie || at) { - yn(e, this.options, c, i); - var f = Pe(c, true); - Sn && (!rt || l !== vn || u !== bn) && (rt && li(), rt = setInterval(function() { - var p = Pe(document.elementFromPoint(l, u), true); - p !== f && (f = p, Pt()), yn(e, a.options, p, i); - }, 10), vn = l, bn = u); - } else { - if (!this.options.bubbleScroll || Pe(c, true) === Ee()) { - Pt(); - return; - } - yn(e, this.options, Pe(c, false), false); - } - } }, Te(n, { pluginName: "scroll", initializeByDefault: true }); - } - function Pt() { - X.forEach(function(n) { - clearInterval(n.pid); - }), X = []; - } - function li() { - clearInterval(rt); - } - var yn = fi(function(n, t, e, i) { - if (t.scroll) { - var a = (n.touches ? n.touches[0] : n).clientX, l = (n.touches ? n.touches[0] : n).clientY, u = t.scrollSensitivity, c = t.scrollSpeed, f = Ee(), p = false, v; - En !== e && (En = e, Pt(), it = t.scroll, v = t.scrollFn, it === true && (it = Pe(e, true))); - var g = 0, E = it; - do { - var _ = E, I = U(_), y = I.top, B = I.bottom, J = I.left, P = I.right, q = I.width, W = I.height, re = void 0, A = void 0, Y = _.scrollWidth, V = _.scrollHeight, K = S(_), me = _.scrollLeft, ve = _.scrollTop; - _ === f ? (re = q < Y && (K.overflowX === "auto" || K.overflowX === "scroll" || K.overflowX === "visible"), A = W < V && (K.overflowY === "auto" || K.overflowY === "scroll" || K.overflowY === "visible")) : (re = q < Y && (K.overflowX === "auto" || K.overflowX === "scroll"), A = W < V && (K.overflowY === "auto" || K.overflowY === "scroll")); - var be = re && (Math.abs(P - a) <= u && me + q < Y) - (Math.abs(J - a) <= u && !!me), Q = A && (Math.abs(B - l) <= u && ve + W < V) - (Math.abs(y - l) <= u && !!ve); - if (!X[g]) - for (var Me = 0; Me <= g; Me++) - X[Me] || (X[Me] = {}); - (X[g].vx != be || X[g].vy != Q || X[g].el !== _) && (X[g].el = _, X[g].vx = be, X[g].vy = Q, clearInterval(X[g].pid), (be != 0 || Q != 0) && (p = true, X[g].pid = setInterval(function() { - i && this.layer === 0 && C.active._onTouchMove(Rt); - var Oe = X[this.layer].vy ? X[this.layer].vy * c : 0, ye = X[this.layer].vx ? X[this.layer].vx * c : 0; - typeof v == "function" && v.call(C.dragged.parentNode[pe], ye, Oe, n, Rt, X[this.layer].el) !== "continue" || pi(X[this.layer].el, ye, Oe); - }.bind({ layer: g }), 24))), g++; - } while (t.bubbleScroll && E !== f && (E = Pe(E, false))); - Sn = p; - } - }, 30), Di = function(t) { - var e = t.originalEvent, i = t.putSortable, a = t.dragEl, l = t.activeSortable, u = t.dispatchSortableEvent, c = t.hideGhostForTarget, f = t.unhideGhostForTarget; - if (e) { - var p = i || l; - c(); - var v = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e, g = document.elementFromPoint(v.clientX, v.clientY); - f(), p && !p.el.contains(g) && (u("spill"), this.onSpill({ dragEl: a, putSortable: i })); - } - }; - function Mn() { - } - Mn.prototype = { startIndex: null, dragStart: function(t) { - var e = t.oldDraggableIndex; - this.startIndex = e; - }, onSpill: function(t) { - var e = t.dragEl, i = t.putSortable; - this.sortable.captureAnimationState(), i && i.captureAnimationState(); - var a = Je(this.sortable.el, this.startIndex, this.options); - a ? this.sortable.el.insertBefore(e, a) : this.sortable.el.appendChild(e), this.sortable.animateAll(), i && i.animateAll(); - }, drop: Di }; - Te(Mn, { pluginName: "revertOnSpill" }); - function _n() { - } - _n.prototype = { onSpill: function(t) { - var e = t.dragEl, i = t.putSortable, a = i || this.sortable; - a.captureAnimationState(), e.parentNode && e.parentNode.removeChild(e), a.animateAll(); - }, drop: Di }; - Te(_n, { pluginName: "removeOnSpill" }); - C.mount(new Gr()); - C.mount(_n, Mn); - var Wt = C; - function $r(n) { - return new Promise((t, e) => { - n.onload = () => { - if (n.status >= 200 && n.status < 400) - try { - t({ data: JSON.parse(n.responseText), status: n.status }); - } catch (i) { - e(i); - } - else - try { - e(JSON.parse(n.responseText)); - } catch (i) { - e(i); - } - }, n.onerror = () => { - e(new Error("An error occurred during the transaction")); - }; - }); - } - function Ur() { - return document.querySelector('meta[name="csrf-token"]').attributes.content.textContent; - } - function zt(n, t) { - return xn("GET", n, t); - } - function Be(n, t) { - return xn("PATCH", n, t); - } - function xn(n, t, e) { - let i = new XMLHttpRequest(), a = $r(i), l = new URL(window.location.origin + t); - return e && n.toLowerCase() === "get" && (l.search = new URLSearchParams(e).toString()), i.open(n, l.toString()), i.setRequestHeader("Content-type", "application/json; charset=utf-8"), i.setRequestHeader("Accept", "application/json"), i.setRequestHeader("X-CSRF-Token", Ur()), e && n.toLowerCase() !== "get" ? i.send(JSON.stringify(e)) : i.send(), a; - } - function qt(n, t, e, i) { - document.querySelectorAll(t).forEach((a) => { - a.addEventListener(n, (l) => { - let u = Array.from(a.querySelectorAll(e)), c = l.target; - for (; c !== a; ) { - if (u.includes(c)) { - i.call(c, l); - return; - } - c = c.parentElement; - } - }); - }); - } - function Tn() { - document.querySelectorAll("li.menu-item").forEach((n) => { - let t = n.querySelector(".nodes_tree-left_images"), e = n.querySelector(".children"), i = { folded: n.dataset.folded === "true", id: n.dataset.id, type: n.dataset.type }; - e.children.length > 0 || i.folded ? t.innerHTML = HandlebarsTemplates.node_folder({ node: i }) : t.innerHTML = " "; - }); - } - function Jr(n) { - let t = Alchemy.routes[n.item.dataset.type].move_api_path(n.item.dataset.id), e = { target_parent_id: n.to.dataset.recordId, new_position: n.newIndex }; - Be(t, e).then(() => { - let i = Alchemy.t("Successfully moved menu item"); - Alchemy.growl(i), Tn(); - }).catch((i) => { - Alchemy.growl(i.message || i, "error"); - }); - } - function Vr() { - qt("click", ".nodes_tree", ".node_folder", function() { - let n = this.dataset.recordId, t = this.closest("li.menu-item"), e = Alchemy.routes[this.dataset.recordType].toggle_folded_api_path(n), i = t.querySelector(".children"); - Be(e).then(() => { - i.classList.toggle("folded"), t.dataset.folded = t.dataset.folded == "true" ? "false" : "true", Tn(); - }).catch((a) => { - Alchemy.growl(a.message || a); - }); - }); - } - function In() { - Vr(), Tn(), document.querySelectorAll(".nodes_tree ul.children").forEach((n) => { - new Wt(n, { group: "nodes", animation: 150, fallbackOnBody: true, swapThreshold: 0.65, handle: ".node_name", invertSwap: true, onEnd: Jr }); - }); - } - var An = class { - constructor(t) { - this.container = t, this.deleteLink = t.querySelector(".remove_file_link"), this.fileIcon = t.querySelector(".file_icon"), this.fileName = t.querySelector(".file_name"), this.deleteLink.addEventListener("click", this.removeFile.bind(this)), this.formFieldId = this.deleteLink.dataset.formFieldId, this.formField = t.querySelector(`#${this.formFieldId}`), this.assignFileText = this.deleteLink.dataset.assignFileText; - } - removeFile(t) { - return t.stopPropagation(), this.formField.value = "", this.fileIcon.innerHTML = "", this.fileName.innerHTML = "", this.deleteLink.classList.add("hidden"), Alchemy.setElementDirty(this.container.closest(".element-editor")), false; - } - }; - function On(n) { - document.querySelectorAll(n).forEach((t) => { - new An(t); - }); - } - var ft = class { - static updateIcon(t, e = false) { - let i = document.querySelector(`[data-ingredient-id="${t}"]`); - if (i) { - let a = i.querySelector(".edit-ingredient-anchor-link > a > .icon"); - a && (e ? a.classList.replace("far", "fas") : a.classList.replace("fas", "far")); - } - } - }; - function Zr(n) { - var t = typeof n; - return n != null && (t == "object" || t == "function"); - } - var pt = Zr; - var Qr = typeof global == "object" && global && global.Object === Object && global, wi = Qr; - var ea = typeof self == "object" && self && self.Object === Object && self, ta = wi || ea || Function("return this")(), Kt = ta; - var na = function() { - return Kt.Date.now(); - }, Xt = na; - var ia = /\s/; - function ra(n) { - for (var t = n.length; t-- && ia.test(n.charAt(t)); ) - ; - return t; - } - var Ei = ra; - var aa = /^\s+/; - function oa(n) { - return n && n.slice(0, Ei(n) + 1).replace(aa, ""); - } - var Si = oa; - var la = Kt.Symbol, Ve = la; - var Ci = Object.prototype, sa = Ci.hasOwnProperty, ua = Ci.toString, ht = Ve ? Ve.toStringTag : void 0; - function ca(n) { - var t = sa.call(n, ht), e = n[ht]; - try { - n[ht] = void 0; - var i = true; - } catch { - } - var a = ua.call(n); - return i && (t ? n[ht] = e : delete n[ht]), a; - } - var Mi = ca; - var da = Object.prototype, fa = da.toString; - function pa(n) { - return fa.call(n); - } - var _i = pa; - var ha = "[object Null]", ma = "[object Undefined]", xi = Ve ? Ve.toStringTag : void 0; - function ga(n) { - return n == null ? n === void 0 ? ma : ha : xi && xi in Object(n) ? Mi(n) : _i(n); - } - var Ti = ga; - function va(n) { - return n != null && typeof n == "object"; - } - var Ii = va; - var ba = "[object Symbol]"; - function ya(n) { - return typeof n == "symbol" || Ii(n) && Ti(n) == ba; - } - var Gt = ya; - var Ai = 0 / 0, Da = /^[-+]0x[0-9a-f]+$/i, wa = /^0b[01]+$/i, Ea = /^0o[0-7]+$/i, Sa = parseInt; - function Ca(n) { - if (typeof n == "number") - return n; - if (Gt(n)) - return Ai; - if (pt(n)) { - var t = typeof n.valueOf == "function" ? n.valueOf() : n; - n = pt(t) ? t + "" : t; - } - if (typeof n != "string") - return n === 0 ? n : +n; - n = Si(n); - var e = wa.test(n); - return e || Ea.test(n) ? Sa(n.slice(2), e ? 2 : 8) : Da.test(n) ? Ai : +n; - } - var Fn = Ca; - var Ma = "Expected a function", _a = Math.max, xa = Math.min; - function Ta(n, t, e) { - var i, a, l, u, c, f, p = 0, v = false, g = false, E = true; - if (typeof n != "function") - throw new TypeError(Ma); - t = Fn(t) || 0, pt(e) && (v = !!e.leading, g = "maxWait" in e, l = g ? _a(Fn(e.maxWait) || 0, t) : l, E = "trailing" in e ? !!e.trailing : E); - function _(A) { - var Y = i, V = a; - return i = a = void 0, p = A, u = n.apply(V, Y), u; - } - function I(A) { - return p = A, c = setTimeout(J, t), v ? _(A) : u; - } - function y(A) { - var Y = A - f, V = A - p, K = t - Y; - return g ? xa(K, l - V) : K; - } - function B(A) { - var Y = A - f, V = A - p; - return f === void 0 || Y >= t || Y < 0 || g && V >= l; - } - function J() { - var A = Xt(); - if (B(A)) - return P(A); - c = setTimeout(J, y(A)); - } - function P(A) { - return c = void 0, E && i ? _(A) : (i = a = void 0, u); - } - function q() { - c !== void 0 && clearTimeout(c), p = 0, i = f = a = c = void 0; - } - function W() { - return c === void 0 ? u : P(Xt()); - } - function re() { - var A = Xt(), Y = B(A); - if (i = arguments, a = this, f = A, Y) { - if (c === void 0) - return I(f); - if (g) - return clearTimeout(c), c = setTimeout(J, t), _(f); - } - return c === void 0 && (c = setTimeout(J, t)), u; - } - return re.cancel = q, re.flush = W, re; - } - var Oi = Ta; - function Ia(n, t, e) { - for (var i = -1, a = n.length; ++i < a; ) { - var l = n[i], u = t(l); - if (u != null && (c === void 0 ? u === u && !Gt(u) : e(u, c))) - var c = u, f = l; - } - return f; - } - var Fi = Ia; - function Aa(n, t) { - return n > t; - } - var ki = Aa; - function Oa(n) { - return n; - } - var Ni = Oa; - function Fa(n) { - return n && n.length ? Fi(n, Ni, ki) : void 0; - } - var Pi = Fa; - var Li = { fill: "#fff" }, Ce = class { - static init(t = document, e = Li) { - typeof t == "string" && (t = document.querySelector(t)), t.querySelectorAll("img").forEach((i) => { - new Ce(i, e).load(); - }); - } - constructor(t, e = Li) { - this.image = t, this.parent = t.parentNode, this.spinner = new Alchemy.Spinner("small", e), this.bind(); - } - bind() { - this.image.addEventListener("load", this.onLoaded.bind(this)), this.image.addEventListener("error", this.onError.bind(this)); - } - load(t = false) { - !t && this.image.complete || (this.image.classList.add("loading"), this.spinner.spin(this.image.parentElement)); - } - onLoaded() { - this.removeSpinner(), this.image.classList.remove("loading"), this.unbind(); - } - onError(t) { - let e = `Could not load "${this.image.src}"`; - this.removeSpinner(), this.parent.innerHTML = ``, console.error(e, t), this.unbind(); - } - unbind() { - this.image.removeEventListener("load", this.onLoaded), this.image.removeEventListener("error", this.onError); - } - removeSpinner() { - this.parent.querySelectorAll(".spinner").forEach((t) => { - t.remove(); - }); - } - }; - var ka = 125, Na = '', Pa = "160x120", kn = class { - constructor(t) { - this.container = t, this.cropFromField = t.querySelector("[data-crop-from]"), this.cropSizeField = t.querySelector("[data-crop-size]"), this.pictureIdField = t.querySelector("[data-picture-id]"), this.targetSizeField = t.querySelector("[data-target-size]"), this.imageCropperField = t.querySelector("[data-image-cropper]"), this.image = t.querySelector("img"), this.thumbnailBackground = t.querySelector(".thumbnail_background"), this.deleteButton = t.querySelector(".picture_tool.delete"), this.cropLink = t.querySelector(".crop_link"), this.targetSize = this.targetSizeField.dataset.targetSize, this.pictureId = this.pictureIdField.value, this.image && (this.imageLoader = new Ce(this.image)), this.update = Oi(() => { - this.updateImage(), this.updateCropLink(); - }, ka), this.deleteButton.addEventListener("click", this.removeImage.bind(this)); - } - observe() { - let t = new MutationObserver(this.mutationCallback.bind(this)); - t.observe(this.cropFromField, { attributes: true }), t.observe(this.cropSizeField, { attributes: true }), t.observe(this.pictureIdField, { attributes: true }); - } - mutationCallback(t) { - for (let e of t) - "pictureId" in e.target.dataset && (this.cropFromField.value = "", this.cropSizeField.value = "", this.pictureId = e.target.value), this.update(); - } - updateImage() { - this.pictureId && (this.ensureImage(), this.image.removeAttribute("alt"), this.image.removeAttribute("src"), this.imageLoader.load(true), zt(Alchemy.routes.url_admin_picture_path(this.pictureId), { crop: this.imageCropperEnabled, crop_from: this.cropFrom, crop_size: this.cropSize, flatten: true, size: Pa }).then(({ data: t }) => { - this.image.src = t.url, this.image.alt = t.alt, this.image.title = t.title; - }).catch((t) => { - console.error(t.message || t), Alchemy.growl(t.message || t, "error"); - })); - } - ensureImage() { - if (this.image) - return; - let t = new Image(); - this.thumbnailBackground.replaceChildren(t), this.image = t, this.imageLoader = new Ce(t); - } - removeImage() { - this.thumbnailBackground.innerHTML = Na, this.pictureIdField.value = "", this.image = null, this.cropLink.classList.add("disabled"), Alchemy.setElementDirty(this.container.closest(".element-editor")); - } - updateCropLink() { - !this.pictureId || !this.imageCropperEnabled || (this.cropLink.classList.remove("disabled"), this.cropLink.href.match(/(picture_id=)\d+/) ? this.cropLink.href = this.cropLink.href.replace(/(picture_id=)\d+/, "$1" + this.pictureId) : this.cropLink.href = this.cropLink.href + `&picture_id=${this.pictureId}`); - } - get cropFrom() { - return this.cropFromField.value === "" ? this.defaultCropFrom.join("x") : this.cropFromField.value; - } - get cropSize() { - return this.cropSizeField.value === "" ? this.defaultCropSize.join("x") : this.cropSizeField.value; - } - get defaultCropSize() { - if (!this.imageCropperEnabled) - return []; - let t = this.targetSize.split("x").map((i) => parseInt(i)), e = Pi([t[0] / this.imageFileWidth, t[1] / this.imageFileHeight]); - return [Math.round(t[0] / e), Math.round(t[1] / e)]; - } - get defaultCropFrom() { - if (!this.imageCropperEnabled) - return []; - let t = this.defaultCropSize; - return [Math.round((this.imageFileWidth - t[0]) / 2), Math.round((this.imageFileHeight - t[1]) / 2)]; - } - get imageFileWidth() { - return parseInt(this.pictureIdField.dataset.imageFileWidth); - } - get imageFileHeight() { - return parseInt(this.pictureIdField.dataset.imageFileHeight); - } - get imageCropperEnabled() { - return this.targetSizeField.dataset.imageCropper === "true"; - } - }; - function Nn(n) { - document.querySelectorAll(n).forEach((t) => { - new kn(t).observe(); - }); - } - var mt = class { - constructor(t, e, i, a, l, u) { - this.initialized = false, this.minSize = t, this.defaultBox = e, this.aspectRatio = i, this.trueSize = a, this.cropFromField = document.getElementById(l[0]), this.cropSizeField = document.getElementById(l[1]), this.elementId = u, this.dialog = Alchemy.currentDialog(), this.dialog.options.closed = this.destroy, this.init(), this.bind(); - } - get jcropOptions() { - return { onSelect: this.update.bind(this), setSelect: this.box, aspectRatio: this.aspectRatio, minSize: this.minSize, boxWidth: 800, boxHeight: 600, trueSize: this.trueSize, closed: this.destroy.bind(this) }; - } - get cropFrom() { - if (this.cropFromField.value) - return this.cropFromField.value.split("x").map((t) => parseInt(t)); - } - get cropSize() { - if (this.cropSizeField.value) - return this.cropSizeField.value.split("x").map((t) => parseInt(t)); - } - get box() { - return this.cropFrom && this.cropSize ? [this.cropFrom[0], this.cropFrom[1], this.cropFrom[0] + this.cropSize[0], this.cropFrom[1] + this.cropSize[1]] : this.defaultBox; - } - init() { - this.initialized || (this.api = $.Jcrop("#imageToCrop", this.jcropOptions), this.initialized = true); - } - update(t) { - this.cropFromField.value = Math.round(t.x) + "x" + Math.round(t.y), this.cropFromField.dispatchEvent(new Event("change")), this.cropSizeField.value = Math.round(t.w) + "x" + Math.round(t.h), this.cropFromField.dispatchEvent(new Event("change")); - } - reset() { - this.api.setSelect(this.defaultBox), this.cropFromField.value = `${this.box[0]}x${this.box[1]}`, this.cropSizeField.value = `${this.box[2]}x${this.box[3] - this.box[1]}`; - } - destroy() { - return this.api && this.api.destroy(), this.initialized = false, true; - } - bind() { - this.dialog.dialog_body.find('button[type="submit"]').click(() => (Alchemy.setElementDirty(`[data-element-id='${this.elementId}']`), this.dialog.close(), false)), this.dialog.dialog_body.find('button[type="reset"]').click(() => (this.reset(), false)); - } - }; - var $t = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange", "onPreCalendarPosition"], Le = { _disable: [], allowInput: false, allowInvalidPreload: false, altFormat: "F j, Y", altInput: false, altInputClass: "form-control input", animate: typeof window == "object" && window.navigator.userAgent.indexOf("MSIE") === -1, ariaDateFormat: "F j, Y", autoFillDefaultTime: true, clickOpens: true, closeOnSelect: true, conjunction: ", ", dateFormat: "Y-m-d", defaultHour: 12, defaultMinute: 0, defaultSeconds: 0, disable: [], disableMobile: false, enableSeconds: false, enableTime: false, errorHandler: function(n) { - return typeof console < "u" && console.warn(n); - }, getWeek: function(n) { - var t = new Date(n.getTime()); - t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7); - var e = new Date(t.getFullYear(), 0, 4); - return 1 + Math.round(((t.getTime() - e.getTime()) / 864e5 - 3 + (e.getDay() + 6) % 7) / 7); - }, hourIncrement: 1, ignoredFocusElements: [], inline: false, locale: "default", minuteIncrement: 5, mode: "single", monthSelectorType: "dropdown", nextArrow: "", noCalendar: false, now: /* @__PURE__ */ new Date(), onChange: [], onClose: [], onDayCreate: [], onDestroy: [], onKeyDown: [], onMonthChange: [], onOpen: [], onParseConfig: [], onReady: [], onValueUpdate: [], onYearChange: [], onPreCalendarPosition: [], plugins: [], position: "auto", positionElement: void 0, prevArrow: "", shorthandCurrentMonth: false, showMonths: 1, static: false, time_24hr: false, weekNumbers: false, wrap: false }; - var Ut = { weekdays: { shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }, months: { shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] }, daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], firstDayOfWeek: 0, ordinal: function(n) { - var t = n % 100; - if (t > 3 && t < 21) - return "th"; - switch (t % 10) { - case 1: - return "st"; - case 2: - return "nd"; - case 3: - return "rd"; - default: - return "th"; - } - }, rangeSeparator: " to ", weekAbbreviation: "Wk", scrollTitle: "Scroll to increment", toggleTitle: "Click to toggle", amPM: ["AM", "PM"], yearAriaLabel: "Year", monthAriaLabel: "Month", hourAriaLabel: "Hour", minuteAriaLabel: "Minute", time_24hr: false }, Jt = Ut; - var te = function(n, t) { - return t === void 0 && (t = 2), ("000" + n).slice(t * -1); - }, le = function(n) { - return n === true ? 1 : 0; - }; - function Pn(n, t) { - var e; - return function() { - var i = this, a = arguments; - clearTimeout(e), e = setTimeout(function() { - return n.apply(i, a); - }, t); - }; - } - var Vt = function(n) { - return n instanceof Array ? n : [n]; - }; - function ne(n, t, e) { - if (e === true) - return n.classList.add(t); - n.classList.remove(t); - } - function k(n, t, e) { - var i = window.document.createElement(n); - return t = t || "", e = e || "", i.className = t, e !== void 0 && (i.textContent = e), i; - } - function gt(n) { - for (; n.firstChild; ) - n.removeChild(n.firstChild); - } - function Ln(n, t) { - if (t(n)) - return n; - if (n.parentNode) - return Ln(n.parentNode, t); - } - function vt(n, t) { - var e = k("div", "numInputWrapper"), i = k("input", "numInput " + n), a = k("span", "arrowUp"), l = k("span", "arrowDown"); - if (navigator.userAgent.indexOf("MSIE 9.0") === -1 ? i.type = "number" : (i.type = "text", i.pattern = "\\d*"), t !== void 0) - for (var u in t) - i.setAttribute(u, t[u]); - return e.appendChild(i), e.appendChild(a), e.appendChild(l), e; - } - function se(n) { - try { - if (typeof n.composedPath == "function") { - var t = n.composedPath(); - return t[0]; - } - return n.target; - } catch { - return n.target; - } - } - var Hn = function() { - }, bt = function(n, t, e) { - return e.months[t ? "shorthand" : "longhand"][n]; - }, Hi = { D: Hn, F: function(n, t, e) { - n.setMonth(e.months.longhand.indexOf(t)); - }, G: function(n, t) { - n.setHours((n.getHours() >= 12 ? 12 : 0) + parseFloat(t)); - }, H: function(n, t) { - n.setHours(parseFloat(t)); - }, J: function(n, t) { - n.setDate(parseFloat(t)); - }, K: function(n, t, e) { - n.setHours(n.getHours() % 12 + 12 * le(new RegExp(e.amPM[1], "i").test(t))); - }, M: function(n, t, e) { - n.setMonth(e.months.shorthand.indexOf(t)); - }, S: function(n, t) { - n.setSeconds(parseFloat(t)); - }, U: function(n, t) { - return new Date(parseFloat(t) * 1e3); - }, W: function(n, t, e) { - var i = parseInt(t), a = new Date(n.getFullYear(), 0, 2 + (i - 1) * 7, 0, 0, 0, 0); - return a.setDate(a.getDate() - a.getDay() + e.firstDayOfWeek), a; - }, Y: function(n, t) { - n.setFullYear(parseFloat(t)); - }, Z: function(n, t) { - return new Date(t); - }, d: function(n, t) { - n.setDate(parseFloat(t)); - }, h: function(n, t) { - n.setHours((n.getHours() >= 12 ? 12 : 0) + parseFloat(t)); - }, i: function(n, t) { - n.setMinutes(parseFloat(t)); - }, j: function(n, t) { - n.setDate(parseFloat(t)); - }, l: Hn, m: function(n, t) { - n.setMonth(parseFloat(t) - 1); - }, n: function(n, t) { - n.setMonth(parseFloat(t) - 1); - }, s: function(n, t) { - n.setSeconds(parseFloat(t)); - }, u: function(n, t) { - return new Date(parseFloat(t)); - }, w: Hn, y: function(n, t) { - n.setFullYear(2e3 + parseFloat(t)); - } }, Ae = { D: "", F: "", G: "(\\d\\d|\\d)", H: "(\\d\\d|\\d)", J: "(\\d\\d|\\d)\\w+", K: "", M: "", S: "(\\d\\d|\\d)", U: "(.+)", W: "(\\d\\d|\\d)", Y: "(\\d{4})", Z: "(.+)", d: "(\\d\\d|\\d)", h: "(\\d\\d|\\d)", i: "(\\d\\d|\\d)", j: "(\\d\\d|\\d)", l: "", m: "(\\d\\d|\\d)", n: "(\\d\\d|\\d)", s: "(\\d\\d|\\d)", u: "(.+)", w: "(\\d\\d|\\d)", y: "(\\d{2})" }, Ze = { Z: function(n) { - return n.toISOString(); - }, D: function(n, t, e) { - return t.weekdays.shorthand[Ze.w(n, t, e)]; - }, F: function(n, t, e) { - return bt(Ze.n(n, t, e) - 1, false, t); - }, G: function(n, t, e) { - return te(Ze.h(n, t, e)); - }, H: function(n) { - return te(n.getHours()); - }, J: function(n, t) { - return t.ordinal !== void 0 ? n.getDate() + t.ordinal(n.getDate()) : n.getDate(); - }, K: function(n, t) { - return t.amPM[le(n.getHours() > 11)]; - }, M: function(n, t) { - return bt(n.getMonth(), true, t); - }, S: function(n) { - return te(n.getSeconds()); - }, U: function(n) { - return n.getTime() / 1e3; - }, W: function(n, t, e) { - return e.getWeek(n); - }, Y: function(n) { - return te(n.getFullYear(), 4); - }, d: function(n) { - return te(n.getDate()); - }, h: function(n) { - return n.getHours() % 12 ? n.getHours() % 12 : 12; - }, i: function(n) { - return te(n.getMinutes()); - }, j: function(n) { - return n.getDate(); - }, l: function(n, t) { - return t.weekdays.longhand[n.getDay()]; - }, m: function(n) { - return te(n.getMonth() + 1); - }, n: function(n) { - return n.getMonth() + 1; - }, s: function(n) { - return n.getSeconds(); - }, u: function(n) { - return n.getTime(); - }, w: function(n) { - return n.getDay(); - }, y: function(n) { - return String(n.getFullYear()).substring(2); - } }; - var Yn = function(n) { - var t = n.config, e = t === void 0 ? Le : t, i = n.l10n, a = i === void 0 ? Ut : i, l = n.isMobile, u = l === void 0 ? false : l; - return function(c, f, p) { - var v = p || a; - return e.formatDate !== void 0 && !u ? e.formatDate(c, f, v) : f.split("").map(function(g, E, _) { - return Ze[g] && _[E - 1] !== "\\" ? Ze[g](c, v, e) : g !== "\\" ? g : ""; - }).join(""); - }; - }, Zt = function(n) { - var t = n.config, e = t === void 0 ? Le : t, i = n.l10n, a = i === void 0 ? Ut : i; - return function(l, u, c, f) { - if (!(l !== 0 && !l)) { - var p = f || a, v, g = l; - if (l instanceof Date) - v = new Date(l.getTime()); - else if (typeof l != "string" && l.toFixed !== void 0) - v = new Date(l); - else if (typeof l == "string") { - var E = u || (e || Le).dateFormat, _ = String(l).trim(); - if (_ === "today") - v = /* @__PURE__ */ new Date(), c = true; - else if (e && e.parseDate) - v = e.parseDate(l, E); - else if (/Z$/.test(_) || /GMT$/.test(_)) - v = new Date(l); - else { - for (var I = void 0, y = [], B = 0, J = 0, P = ""; B < E.length; B++) { - var q = E[B], W = q === "\\", re = E[B - 1] === "\\" || W; - if (Ae[q] && !re) { - P += Ae[q]; - var A = new RegExp(P).exec(l); - A && (I = true) && y[q !== "Y" ? "push" : "unshift"]({ fn: Hi[q], val: A[++J] }); - } else - W || (P += "."); - } - v = !e || !e.noCalendar ? new Date((/* @__PURE__ */ new Date()).getFullYear(), 0, 1, 0, 0, 0, 0) : new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0)), y.forEach(function(Y) { - var V = Y.fn, K = Y.val; - return v = V(v, K, p) || v; - }), v = I ? v : void 0; - } - } - if (!(v instanceof Date && !isNaN(v.getTime()))) { - e.errorHandler(new Error("Invalid date provided: " + g)); - return; - } - return c === true && v.setHours(0, 0, 0, 0), v; - } - }; - }; - function ue(n, t, e) { - return e === void 0 && (e = true), e !== false ? new Date(n.getTime()).setHours(0, 0, 0, 0) - new Date(t.getTime()).setHours(0, 0, 0, 0) : n.getTime() - t.getTime(); - } - var Yi = function(n, t, e) { - return n > Math.min(t, e) && n < Math.max(t, e); - }, Qt = function(n, t, e) { - return n * 3600 + t * 60 + e; - }, ji = function(n) { - var t = Math.floor(n / 3600), e = (n - t * 3600) / 60; - return [t, e, n - t * 3600 - e * 60]; - }, Ri = { DAY: 864e5 }; - function en(n) { - var t = n.defaultHour, e = n.defaultMinute, i = n.defaultSeconds; - if (n.minDate !== void 0) { - var a = n.minDate.getHours(), l = n.minDate.getMinutes(), u = n.minDate.getSeconds(); - t < a && (t = a), t === a && e < l && (e = l), t === a && e === l && i < u && (i = n.minDate.getSeconds()); - } - if (n.maxDate !== void 0) { - var c = n.maxDate.getHours(), f = n.maxDate.getMinutes(); - t = Math.min(t, c), t === c && (e = Math.min(f, e)), t === c && e === f && (i = n.maxDate.getSeconds()); - } - return { hours: t, minutes: e, seconds: i }; - } - typeof Object.assign != "function" && (Object.assign = function(n) { - for (var t = [], e = 1; e < arguments.length; e++) - t[e - 1] = arguments[e]; - if (!n) - throw TypeError("Cannot convert undefined or null to object"); - for (var i = function(c) { - c && Object.keys(c).forEach(function(f) { - return n[f] = c[f]; - }); - }, a = 0, l = t; a < l.length; a++) { - var u = l[a]; - i(u); - } - return n; - }); - var ie = function() { - return ie = Object.assign || function(n) { - for (var t, e = 1, i = arguments.length; e < i; e++) { - t = arguments[e]; - for (var a in t) - Object.prototype.hasOwnProperty.call(t, a) && (n[a] = t[a]); - } - return n; - }, ie.apply(this, arguments); - }, Bi = function() { - for (var n = 0, t = 0, e = arguments.length; t < e; t++) - n += arguments[t].length; - for (var i = Array(n), a = 0, t = 0; t < e; t++) - for (var l = arguments[t], u = 0, c = l.length; u < c; u++, a++) - i[a] = l[u]; - return i; - }, La = 300; - function Ha(n, t) { - var e = { config: ie(ie({}, Le), G.defaultConfig), l10n: Jt }; - e.parseDate = Zt({ config: e.config, l10n: e.l10n }), e._handlers = [], e.pluginElements = [], e.loadedPlugins = [], e._bind = y, e._setHoursFromDate = E, e._positionCalendar = Ct, e.changeMonth = ze, e.changeYear = wt, e.clear = nn, e.close = Ki, e.onMouseOver = St, e._createElement = k, e.createDay = A, e.destroy = Xi, e.isEnabled = He, e.jumpToDate = P, e.updateValue = _e, e.open = Ui, e.redraw = Xn, e.set = Qi, e.setDate = er, e.toggle = rr; - function i() { - e.utils = { getDaysInMonth: function(r, o) { - return r === void 0 && (r = e.currentMonth), o === void 0 && (o = e.currentYear), r === 1 && (o % 4 === 0 && o % 100 !== 0 || o % 400 === 0) ? 29 : e.l10n.daysInMonth[r]; - } }; - } - function a() { - e.element = e.input = n, e.isOpen = false, Ji(), Kn(), nr(), tr(), i(), e.isMobile || re(), J(), (e.selectedDates.length || e.config.noCalendar) && (e.config.enableTime && E(e.config.noCalendar ? e.latestSelectedDateObj : void 0), _e(false)), c(); - var r = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); - !e.isMobile && r && Ct(), j("onReady"); - } - function l() { - var r; - return ((r = e.calendarContainer) === null || r === void 0 ? void 0 : r.getRootNode()).activeElement || document.activeElement; - } - function u(r) { - return r.bind(e); - } - function c() { - var r = e.config; - r.weekNumbers === false && r.showMonths === 1 || r.noCalendar !== true && window.requestAnimationFrame(function() { - if (e.calendarContainer !== void 0 && (e.calendarContainer.style.visibility = "hidden", e.calendarContainer.style.display = "block"), e.daysContainer !== void 0) { - var o = (e.days.offsetWidth + 1) * r.showMonths; - e.daysContainer.style.width = o + "px", e.calendarContainer.style.width = o + (e.weekWrapper !== void 0 ? e.weekWrapper.offsetWidth : 0) + "px", e.calendarContainer.style.removeProperty("visibility"), e.calendarContainer.style.removeProperty("display"); - } - }); - } - function f(r) { - if (e.selectedDates.length === 0) { - var o = e.config.minDate === void 0 || ue(/* @__PURE__ */ new Date(), e.config.minDate) >= 0 ? /* @__PURE__ */ new Date() : new Date(e.config.minDate.getTime()), s = en(e.config); - o.setHours(s.hours, s.minutes, s.seconds, o.getMilliseconds()), e.selectedDates = [o], e.latestSelectedDateObj = o; - } - r !== void 0 && r.type !== "blur" && lr(r); - var d = e._input.value; - g(), _e(), e._input.value !== d && e._debouncedChange(); - } - function p(r, o) { - return r % 12 + 12 * le(o === e.l10n.amPM[1]); - } - function v(r) { - switch (r % 24) { - case 0: - case 12: - return 12; - default: - return r % 12; - } - } - function g() { - if (!(e.hourElement === void 0 || e.minuteElement === void 0)) { - var r = (parseInt(e.hourElement.value.slice(-2), 10) || 0) % 24, o = (parseInt(e.minuteElement.value, 10) || 0) % 60, s = e.secondElement !== void 0 ? (parseInt(e.secondElement.value, 10) || 0) % 60 : 0; - e.amPM !== void 0 && (r = p(r, e.amPM.textContent)); - var d = e.config.minTime !== void 0 || e.config.minDate && e.minDateHasTime && e.latestSelectedDateObj && ue(e.latestSelectedDateObj, e.config.minDate, true) === 0, h = e.config.maxTime !== void 0 || e.config.maxDate && e.maxDateHasTime && e.latestSelectedDateObj && ue(e.latestSelectedDateObj, e.config.maxDate, true) === 0; - if (e.config.maxTime !== void 0 && e.config.minTime !== void 0 && e.config.minTime > e.config.maxTime) { - var b = Qt(e.config.minTime.getHours(), e.config.minTime.getMinutes(), e.config.minTime.getSeconds()), T = Qt(e.config.maxTime.getHours(), e.config.maxTime.getMinutes(), e.config.maxTime.getSeconds()), w = Qt(r, o, s); - if (w > T && w < b) { - var O = ji(b); - r = O[0], o = O[1], s = O[2]; - } - } else { - if (h) { - var D = e.config.maxTime !== void 0 ? e.config.maxTime : e.config.maxDate; - r = Math.min(r, D.getHours()), r === D.getHours() && (o = Math.min(o, D.getMinutes())), o === D.getMinutes() && (s = Math.min(s, D.getSeconds())); - } - if (d) { - var M = e.config.minTime !== void 0 ? e.config.minTime : e.config.minDate; - r = Math.max(r, M.getHours()), r === M.getHours() && o < M.getMinutes() && (o = M.getMinutes()), o === M.getMinutes() && (s = Math.max(s, M.getSeconds())); - } - } - _(r, o, s); - } - } - function E(r) { - var o = r || e.latestSelectedDateObj; - o && o instanceof Date && _(o.getHours(), o.getMinutes(), o.getSeconds()); - } - function _(r, o, s) { - e.latestSelectedDateObj !== void 0 && e.latestSelectedDateObj.setHours(r % 24, o, s || 0, 0), !(!e.hourElement || !e.minuteElement || e.isMobile) && (e.hourElement.value = te(e.config.time_24hr ? r : (12 + r) % 12 + 12 * le(r % 12 === 0)), e.minuteElement.value = te(o), e.amPM !== void 0 && (e.amPM.textContent = e.l10n.amPM[le(r >= 12)]), e.secondElement !== void 0 && (e.secondElement.value = te(s))); - } - function I(r) { - var o = se(r), s = parseInt(o.value) + (r.delta || 0); - (s / 1e3 > 1 || r.key === "Enter" && !/[^\d]/.test(s.toString())) && wt(s); - } - function y(r, o, s, d) { - if (o instanceof Array) - return o.forEach(function(h) { - return y(r, h, s, d); - }); - if (r instanceof Array) - return r.forEach(function(h) { - return y(h, o, s, d); - }); - r.addEventListener(o, s, d), e._handlers.push({ remove: function() { - return r.removeEventListener(o, s, d); - } }); - } - function B() { - j("onChange"); - } - function J() { - if (e.config.wrap && ["open", "close", "toggle", "clear"].forEach(function(s) { - Array.prototype.forEach.call(e.element.querySelectorAll("[data-" + s + "]"), function(d) { - return y(d, "click", e[s]); - }); - }), e.isMobile) { - ir(); - return; - } - var r = Pn($i, 50); - if (e._debouncedChange = Pn(B, La), e.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent) && y(e.daysContainer, "mouseover", function(s) { - e.config.mode === "range" && St(se(s)); - }), y(e._input, "keydown", Wn), e.calendarContainer !== void 0 && y(e.calendarContainer, "keydown", Wn), !e.config.inline && !e.config.static && y(window, "resize", r), window.ontouchstart !== void 0 ? y(window.document, "touchstart", rn) : y(window.document, "mousedown", rn), y(window.document, "focus", rn, { capture: true }), e.config.clickOpens === true && (y(e._input, "focus", e.open), y(e._input, "click", e.open)), e.daysContainer !== void 0 && (y(e.monthNav, "click", or), y(e.monthNav, ["keyup", "increment"], I), y(e.daysContainer, "click", Gn)), e.timeContainer !== void 0 && e.minuteElement !== void 0 && e.hourElement !== void 0) { - var o = function(s) { - return se(s).select(); - }; - y(e.timeContainer, ["increment"], f), y(e.timeContainer, "blur", f, { capture: true }), y(e.timeContainer, "click", q), y([e.hourElement, e.minuteElement], ["focus", "click"], o), e.secondElement !== void 0 && y(e.secondElement, "focus", function() { - return e.secondElement && e.secondElement.select(); - }), e.amPM !== void 0 && y(e.amPM, "click", function(s) { - f(s); - }); - } - e.config.allowInput && y(e._input, "blur", Gi); - } - function P(r, o) { - var s = r !== void 0 ? e.parseDate(r) : e.latestSelectedDateObj || (e.config.minDate && e.config.minDate > e.now ? e.config.minDate : e.config.maxDate && e.config.maxDate < e.now ? e.config.maxDate : e.now), d = e.currentYear, h = e.currentMonth; - try { - s !== void 0 && (e.currentYear = s.getFullYear(), e.currentMonth = s.getMonth()); - } catch (b) { - b.message = "Invalid date supplied: " + s, e.config.errorHandler(b); - } - o && e.currentYear !== d && (j("onYearChange"), Q()), o && (e.currentYear !== d || e.currentMonth !== h) && j("onMonthChange"), e.redraw(); - } - function q(r) { - var o = se(r); - ~o.className.indexOf("arrow") && W(r, o.classList.contains("arrowUp") ? 1 : -1); - } - function W(r, o, s) { - var d = r && se(r), h = s || d && d.parentNode && d.parentNode.firstChild, b = on("increment"); - b.delta = o, h && h.dispatchEvent(b); - } - function re() { - var r = window.document.createDocumentFragment(); - if (e.calendarContainer = k("div", "flatpickr-calendar"), e.calendarContainer.tabIndex = -1, !e.config.noCalendar) { - if (r.appendChild(ye()), e.innerContainer = k("div", "flatpickr-innerContainer"), e.config.weekNumbers) { - var o = Bn(), s = o.weekWrapper, d = o.weekNumbers; - e.innerContainer.appendChild(s), e.weekNumbers = d, e.weekWrapper = s; - } - e.rContainer = k("div", "flatpickr-rContainer"), e.rContainer.appendChild(Fe()), e.daysContainer || (e.daysContainer = k("div", "flatpickr-days"), e.daysContainer.tabIndex = -1), be(), e.rContainer.appendChild(e.daysContainer), e.innerContainer.appendChild(e.rContainer), r.appendChild(e.innerContainer); - } - e.config.enableTime && r.appendChild(We()), ne(e.calendarContainer, "rangeMode", e.config.mode === "range"), ne(e.calendarContainer, "animate", e.config.animate === true), ne(e.calendarContainer, "multiMonth", e.config.showMonths > 1), e.calendarContainer.appendChild(r); - var h = e.config.appendTo !== void 0 && e.config.appendTo.nodeType !== void 0; - if ((e.config.inline || e.config.static) && (e.calendarContainer.classList.add(e.config.inline ? "inline" : "static"), e.config.inline && (!h && e.element.parentNode ? e.element.parentNode.insertBefore(e.calendarContainer, e._input.nextSibling) : e.config.appendTo !== void 0 && e.config.appendTo.appendChild(e.calendarContainer)), e.config.static)) { - var b = k("div", "flatpickr-wrapper"); - e.element.parentNode && e.element.parentNode.insertBefore(b, e.element), b.appendChild(e.element), e.altInput && b.appendChild(e.altInput), b.appendChild(e.calendarContainer); - } - !e.config.static && !e.config.inline && (e.config.appendTo !== void 0 ? e.config.appendTo : window.document.body).appendChild(e.calendarContainer); - } - function A(r, o, s, d) { - var h = He(o, true), b = k("span", r, o.getDate().toString()); - return b.dateObj = o, b.$i = d, b.setAttribute("aria-label", e.formatDate(o, e.config.ariaDateFormat)), r.indexOf("hidden") === -1 && ue(o, e.now) === 0 && (e.todayDateElem = b, b.classList.add("today"), b.setAttribute("aria-current", "date")), h ? (b.tabIndex = -1, ln(o) && (b.classList.add("selected"), e.selectedDateElem = b, e.config.mode === "range" && (ne(b, "startRange", e.selectedDates[0] && ue(o, e.selectedDates[0], true) === 0), ne(b, "endRange", e.selectedDates[1] && ue(o, e.selectedDates[1], true) === 0), r === "nextMonthDay" && b.classList.add("inRange")))) : b.classList.add("flatpickr-disabled"), e.config.mode === "range" && ar(o) && !ln(o) && b.classList.add("inRange"), e.weekNumbers && e.config.showMonths === 1 && r !== "prevMonthDay" && d % 7 === 6 && e.weekNumbers.insertAdjacentHTML("beforeend", "" + e.config.getWeek(o) + ""), j("onDayCreate", b), b; - } - function Y(r) { - r.focus(), e.config.mode === "range" && St(r); - } - function V(r) { - for (var o = r > 0 ? 0 : e.config.showMonths - 1, s = r > 0 ? e.config.showMonths : -1, d = o; d != s; d += r) - for (var h = e.daysContainer.children[d], b = r > 0 ? 0 : h.children.length - 1, T = r > 0 ? h.children.length : -1, w = b; w != T; w += r) { - var O = h.children[w]; - if (O.className.indexOf("hidden") === -1 && He(O.dateObj)) - return O; - } - } - function K(r, o) { - for (var s = r.className.indexOf("Month") === -1 ? r.dateObj.getMonth() : e.currentMonth, d = o > 0 ? e.config.showMonths : -1, h = o > 0 ? 1 : -1, b = s - e.currentMonth; b != d; b += h) - for (var T = e.daysContainer.children[b], w = s - e.currentMonth === b ? r.$i + o : o < 0 ? T.children.length - 1 : 0, O = T.children.length, D = w; D >= 0 && D < O && D != (o > 0 ? O : -1); D += h) { - var M = T.children[D]; - if (M.className.indexOf("hidden") === -1 && He(M.dateObj) && Math.abs(r.$i - D) >= Math.abs(o)) - return Y(M); - } - e.changeMonth(h), me(V(h), 0); - } - function me(r, o) { - var s = l(), d = Et(s || document.body), h = r !== void 0 ? r : d ? s : e.selectedDateElem !== void 0 && Et(e.selectedDateElem) ? e.selectedDateElem : e.todayDateElem !== void 0 && Et(e.todayDateElem) ? e.todayDateElem : V(o > 0 ? 1 : -1); - h === void 0 ? e._input.focus() : d ? K(h, o) : Y(h); - } - function ve(r, o) { - for (var s = (new Date(r, o, 1).getDay() - e.l10n.firstDayOfWeek + 7) % 7, d = e.utils.getDaysInMonth((o - 1 + 12) % 12, r), h = e.utils.getDaysInMonth(o, r), b = window.document.createDocumentFragment(), T = e.config.showMonths > 1, w = T ? "prevMonthDay hidden" : "prevMonthDay", O = T ? "nextMonthDay hidden" : "nextMonthDay", D = d + 1 - s, M = 0; D <= d; D++, M++) - b.appendChild(A("flatpickr-day " + w, new Date(r, o - 1, D), D, M)); - for (D = 1; D <= h; D++, M++) - b.appendChild(A("flatpickr-day", new Date(r, o, D), D, M)); - for (var L = h + 1; L <= 42 - s && (e.config.showMonths === 1 || M % 7 !== 0); L++, M++) - b.appendChild(A("flatpickr-day " + O, new Date(r, o + 1, L % h), L, M)); - var De = k("div", "dayContainer"); - return De.appendChild(b), De; - } - function be() { - if (e.daysContainer !== void 0) { - gt(e.daysContainer), e.weekNumbers && gt(e.weekNumbers); - for (var r = document.createDocumentFragment(), o = 0; o < e.config.showMonths; o++) { - var s = new Date(e.currentYear, e.currentMonth, 1); - s.setMonth(e.currentMonth + o), r.appendChild(ve(s.getFullYear(), s.getMonth())); - } - e.daysContainer.appendChild(r), e.days = e.daysContainer.firstChild, e.config.mode === "range" && e.selectedDates.length === 1 && St(); - } - } - function Q() { - if (!(e.config.showMonths > 1 || e.config.monthSelectorType !== "dropdown")) { - var r = function(d) { - return e.config.minDate !== void 0 && e.currentYear === e.config.minDate.getFullYear() && d < e.config.minDate.getMonth() ? false : !(e.config.maxDate !== void 0 && e.currentYear === e.config.maxDate.getFullYear() && d > e.config.maxDate.getMonth()); - }; - e.monthsDropdownContainer.tabIndex = -1, e.monthsDropdownContainer.innerHTML = ""; - for (var o = 0; o < 12; o++) - if (r(o)) { - var s = k("option", "flatpickr-monthDropdown-month"); - s.value = new Date(e.currentYear, o).getMonth().toString(), s.textContent = bt(o, e.config.shorthandCurrentMonth, e.l10n), s.tabIndex = -1, e.currentMonth === o && (s.selected = true), e.monthsDropdownContainer.appendChild(s); - } - } - } - function Me() { - var r = k("div", "flatpickr-month"), o = window.document.createDocumentFragment(), s; - e.config.showMonths > 1 || e.config.monthSelectorType === "static" ? s = k("span", "cur-month") : (e.monthsDropdownContainer = k("select", "flatpickr-monthDropdown-months"), e.monthsDropdownContainer.setAttribute("aria-label", e.l10n.monthAriaLabel), y(e.monthsDropdownContainer, "change", function(T) { - var w = se(T), O = parseInt(w.value, 10); - e.changeMonth(O - e.currentMonth), j("onMonthChange"); - }), Q(), s = e.monthsDropdownContainer); - var d = vt("cur-year", { tabindex: "-1" }), h = d.getElementsByTagName("input")[0]; - h.setAttribute("aria-label", e.l10n.yearAriaLabel), e.config.minDate && h.setAttribute("min", e.config.minDate.getFullYear().toString()), e.config.maxDate && (h.setAttribute("max", e.config.maxDate.getFullYear().toString()), h.disabled = !!e.config.minDate && e.config.minDate.getFullYear() === e.config.maxDate.getFullYear()); - var b = k("div", "flatpickr-current-month"); - return b.appendChild(s), b.appendChild(d), o.appendChild(b), r.appendChild(o), { container: r, yearElement: h, monthElement: s }; - } - function Oe() { - gt(e.monthNav), e.monthNav.appendChild(e.prevMonthNav), e.config.showMonths && (e.yearElements = [], e.monthElements = []); - for (var r = e.config.showMonths; r--; ) { - var o = Me(); - e.yearElements.push(o.yearElement), e.monthElements.push(o.monthElement), e.monthNav.appendChild(o.container); - } - e.monthNav.appendChild(e.nextMonthNav); - } - function ye() { - return e.monthNav = k("div", "flatpickr-months"), e.yearElements = [], e.monthElements = [], e.prevMonthNav = k("span", "flatpickr-prev-month"), e.prevMonthNav.innerHTML = e.config.prevArrow, e.nextMonthNav = k("span", "flatpickr-next-month"), e.nextMonthNav.innerHTML = e.config.nextArrow, Oe(), Object.defineProperty(e, "_hidePrevMonthArrow", { get: function() { - return e.__hidePrevMonthArrow; - }, set: function(r) { - e.__hidePrevMonthArrow !== r && (ne(e.prevMonthNav, "flatpickr-disabled", r), e.__hidePrevMonthArrow = r); - } }), Object.defineProperty(e, "_hideNextMonthArrow", { get: function() { - return e.__hideNextMonthArrow; - }, set: function(r) { - e.__hideNextMonthArrow !== r && (ne(e.nextMonthNav, "flatpickr-disabled", r), e.__hideNextMonthArrow = r); - } }), e.currentYearElement = e.yearElements[0], _t(), e.monthNav; - } - function We() { - e.calendarContainer.classList.add("hasTime"), e.config.noCalendar && e.calendarContainer.classList.add("noCalendar"); - var r = en(e.config); - e.timeContainer = k("div", "flatpickr-time"), e.timeContainer.tabIndex = -1; - var o = k("span", "flatpickr-time-separator", ":"), s = vt("flatpickr-hour", { "aria-label": e.l10n.hourAriaLabel }); - e.hourElement = s.getElementsByTagName("input")[0]; - var d = vt("flatpickr-minute", { "aria-label": e.l10n.minuteAriaLabel }); - if (e.minuteElement = d.getElementsByTagName("input")[0], e.hourElement.tabIndex = e.minuteElement.tabIndex = -1, e.hourElement.value = te(e.latestSelectedDateObj ? e.latestSelectedDateObj.getHours() : e.config.time_24hr ? r.hours : v(r.hours)), e.minuteElement.value = te(e.latestSelectedDateObj ? e.latestSelectedDateObj.getMinutes() : r.minutes), e.hourElement.setAttribute("step", e.config.hourIncrement.toString()), e.minuteElement.setAttribute("step", e.config.minuteIncrement.toString()), e.hourElement.setAttribute("min", e.config.time_24hr ? "0" : "1"), e.hourElement.setAttribute("max", e.config.time_24hr ? "23" : "12"), e.hourElement.setAttribute("maxlength", "2"), e.minuteElement.setAttribute("min", "0"), e.minuteElement.setAttribute("max", "59"), e.minuteElement.setAttribute("maxlength", "2"), e.timeContainer.appendChild(s), e.timeContainer.appendChild(o), e.timeContainer.appendChild(d), e.config.time_24hr && e.timeContainer.classList.add("time24hr"), e.config.enableSeconds) { - e.timeContainer.classList.add("hasSeconds"); - var h = vt("flatpickr-second"); - e.secondElement = h.getElementsByTagName("input")[0], e.secondElement.value = te(e.latestSelectedDateObj ? e.latestSelectedDateObj.getSeconds() : r.seconds), e.secondElement.setAttribute("step", e.minuteElement.getAttribute("step")), e.secondElement.setAttribute("min", "0"), e.secondElement.setAttribute("max", "59"), e.secondElement.setAttribute("maxlength", "2"), e.timeContainer.appendChild(k("span", "flatpickr-time-separator", ":")), e.timeContainer.appendChild(h); - } - return e.config.time_24hr || (e.amPM = k("span", "flatpickr-am-pm", e.l10n.amPM[le((e.latestSelectedDateObj ? e.hourElement.value : e.config.defaultHour) > 11)]), e.amPM.title = e.l10n.toggleTitle, e.amPM.tabIndex = -1, e.timeContainer.appendChild(e.amPM)), e.timeContainer; - } - function Fe() { - e.weekdayContainer ? gt(e.weekdayContainer) : e.weekdayContainer = k("div", "flatpickr-weekdays"); - for (var r = e.config.showMonths; r--; ) { - var o = k("div", "flatpickr-weekdaycontainer"); - e.weekdayContainer.appendChild(o); - } - return Dt(), e.weekdayContainer; - } - function Dt() { - if (e.weekdayContainer) { - var r = e.l10n.firstDayOfWeek, o = Bi(e.l10n.weekdays.shorthand); - r > 0 && r < o.length && (o = Bi(o.splice(r, o.length), o.splice(0, r))); - for (var s = e.config.showMonths; s--; ) - e.weekdayContainer.children[s].innerHTML = ` - - ` + o.join("") + ` - - `; - } - } - function Bn() { - e.calendarContainer.classList.add("hasWeeks"); - var r = k("div", "flatpickr-weekwrapper"); - r.appendChild(k("span", "flatpickr-weekday", e.l10n.weekAbbreviation)); - var o = k("div", "flatpickr-weeks"); - return r.appendChild(o), { weekWrapper: r, weekNumbers: o }; - } - function ze(r, o) { - o === void 0 && (o = true); - var s = o ? r : r - e.currentMonth; - s < 0 && e._hidePrevMonthArrow === true || s > 0 && e._hideNextMonthArrow === true || (e.currentMonth += s, (e.currentMonth < 0 || e.currentMonth > 11) && (e.currentYear += e.currentMonth > 11 ? 1 : -1, e.currentMonth = (e.currentMonth + 12) % 12, j("onYearChange"), Q()), be(), j("onMonthChange"), _t()); - } - function nn(r, o) { - if (r === void 0 && (r = true), o === void 0 && (o = true), e.input.value = "", e.altInput !== void 0 && (e.altInput.value = ""), e.mobileInput !== void 0 && (e.mobileInput.value = ""), e.selectedDates = [], e.latestSelectedDateObj = void 0, o === true && (e.currentYear = e._initialDate.getFullYear(), e.currentMonth = e._initialDate.getMonth()), e.config.enableTime === true) { - var s = en(e.config), d = s.hours, h = s.minutes, b = s.seconds; - _(d, h, b); - } - e.redraw(), r && j("onChange"); - } - function Ki() { - e.isOpen = false, e.isMobile || (e.calendarContainer !== void 0 && e.calendarContainer.classList.remove("open"), e._input !== void 0 && e._input.classList.remove("active")), j("onClose"); - } - function Xi() { - e.config !== void 0 && j("onDestroy"); - for (var r = e._handlers.length; r--; ) - e._handlers[r].remove(); - if (e._handlers = [], e.mobileInput) - e.mobileInput.parentNode && e.mobileInput.parentNode.removeChild(e.mobileInput), e.mobileInput = void 0; - else if (e.calendarContainer && e.calendarContainer.parentNode) - if (e.config.static && e.calendarContainer.parentNode) { - var o = e.calendarContainer.parentNode; - if (o.lastChild && o.removeChild(o.lastChild), o.parentNode) { - for (; o.firstChild; ) - o.parentNode.insertBefore(o.firstChild, o); - o.parentNode.removeChild(o); - } - } else - e.calendarContainer.parentNode.removeChild(e.calendarContainer); - e.altInput && (e.input.type = "text", e.altInput.parentNode && e.altInput.parentNode.removeChild(e.altInput), delete e.altInput), e.input && (e.input.type = e.input._type, e.input.classList.remove("flatpickr-input"), e.input.removeAttribute("readonly")), ["_showTimeInput", "latestSelectedDateObj", "_hideNextMonthArrow", "_hidePrevMonthArrow", "__hideNextMonthArrow", "__hidePrevMonthArrow", "isMobile", "isOpen", "selectedDateElem", "minDateHasTime", "maxDateHasTime", "days", "daysContainer", "_input", "_positionElement", "innerContainer", "rContainer", "monthNav", "todayDateElem", "calendarContainer", "weekdayContainer", "prevMonthNav", "nextMonthNav", "monthsDropdownContainer", "currentMonthElement", "currentYearElement", "navigationCurrentMonth", "selectedDateElem", "config"].forEach(function(s) { - try { - delete e[s]; - } catch { - } - }); - } - function et(r) { - return e.calendarContainer.contains(r); - } - function rn(r) { - if (e.isOpen && !e.config.inline) { - var o = se(r), s = et(o), d = o === e.input || o === e.altInput || e.element.contains(o) || r.path && r.path.indexOf && (~r.path.indexOf(e.input) || ~r.path.indexOf(e.altInput)), h = !d && !s && !et(r.relatedTarget), b = !e.config.ignoredFocusElements.some(function(T) { - return T.contains(o); - }); - h && b && (e.config.allowInput && e.setDate(e._input.value, false, e.config.altInput ? e.config.altFormat : e.config.dateFormat), e.timeContainer !== void 0 && e.minuteElement !== void 0 && e.hourElement !== void 0 && e.input.value !== "" && e.input.value !== void 0 && f(), e.close(), e.config && e.config.mode === "range" && e.selectedDates.length === 1 && e.clear(false)); - } - } - function wt(r) { - if (!(!r || e.config.minDate && r < e.config.minDate.getFullYear() || e.config.maxDate && r > e.config.maxDate.getFullYear())) { - var o = r, s = e.currentYear !== o; - e.currentYear = o || e.currentYear, e.config.maxDate && e.currentYear === e.config.maxDate.getFullYear() ? e.currentMonth = Math.min(e.config.maxDate.getMonth(), e.currentMonth) : e.config.minDate && e.currentYear === e.config.minDate.getFullYear() && (e.currentMonth = Math.max(e.config.minDate.getMonth(), e.currentMonth)), s && (e.redraw(), j("onYearChange"), Q()); - } - } - function He(r, o) { - var s; - o === void 0 && (o = true); - var d = e.parseDate(r, void 0, o); - if (e.config.minDate && d && ue(d, e.config.minDate, o !== void 0 ? o : !e.minDateHasTime) < 0 || e.config.maxDate && d && ue(d, e.config.maxDate, o !== void 0 ? o : !e.maxDateHasTime) > 0) - return false; - if (!e.config.enable && e.config.disable.length === 0) - return true; - if (d === void 0) - return false; - for (var h = !!e.config.enable, b = (s = e.config.enable) !== null && s !== void 0 ? s : e.config.disable, T = 0, w = void 0; T < b.length; T++) { - if (w = b[T], typeof w == "function" && w(d)) - return h; - if (w instanceof Date && d !== void 0 && w.getTime() === d.getTime()) - return h; - if (typeof w == "string") { - var O = e.parseDate(w, void 0, true); - return O && O.getTime() === d.getTime() ? h : !h; - } else if (typeof w == "object" && d !== void 0 && w.from && w.to && d.getTime() >= w.from.getTime() && d.getTime() <= w.to.getTime()) - return h; - } - return !h; - } - function Et(r) { - return e.daysContainer !== void 0 ? r.className.indexOf("hidden") === -1 && r.className.indexOf("flatpickr-disabled") === -1 && e.daysContainer.contains(r) : false; - } - function Gi(r) { - var o = r.target === e._input, s = e._input.value.trimEnd() !== sn(); - o && s && !(r.relatedTarget && et(r.relatedTarget)) && e.setDate(e._input.value, true, r.target === e.altInput ? e.config.altFormat : e.config.dateFormat); - } - function Wn(r) { - var o = se(r), s = e.config.wrap ? n.contains(o) : o === e._input, d = e.config.allowInput, h = e.isOpen && (!d || !s), b = e.config.inline && s && !d; - if (r.keyCode === 13 && s) { - if (d) - return e.setDate(e._input.value, true, o === e.altInput ? e.config.altFormat : e.config.dateFormat), e.close(), o.blur(); - e.open(); - } else if (et(o) || h || b) { - var T = !!e.timeContainer && e.timeContainer.contains(o); - switch (r.keyCode) { - case 13: - T ? (r.preventDefault(), f(), an()) : Gn(r); - break; - case 27: - r.preventDefault(), an(); - break; - case 8: - case 46: - s && !e.config.allowInput && (r.preventDefault(), e.clear()); - break; - case 37: - case 39: - if (!T && !s) { - r.preventDefault(); - var w = l(); - if (e.daysContainer !== void 0 && (d === false || w && Et(w))) { - var O = r.keyCode === 39 ? 1 : -1; - r.ctrlKey ? (r.stopPropagation(), ze(O), me(V(1), 0)) : me(void 0, O); - } - } else - e.hourElement && e.hourElement.focus(); - break; - case 38: - case 40: - r.preventDefault(); - var D = r.keyCode === 40 ? 1 : -1; - e.daysContainer && o.$i !== void 0 || o === e.input || o === e.altInput ? r.ctrlKey ? (r.stopPropagation(), wt(e.currentYear - D), me(V(1), 0)) : T || me(void 0, D * 7) : o === e.currentYearElement ? wt(e.currentYear - D) : e.config.enableTime && (!T && e.hourElement && e.hourElement.focus(), f(r), e._debouncedChange()); - break; - case 9: - if (T) { - var M = [e.hourElement, e.minuteElement, e.secondElement, e.amPM].concat(e.pluginElements).filter(function(ce) { - return ce; - }), L = M.indexOf(o); - if (L !== -1) { - var De = M[L + (r.shiftKey ? -1 : 1)]; - r.preventDefault(), (De || e._input).focus(); - } - } else - !e.config.noCalendar && e.daysContainer && e.daysContainer.contains(o) && r.shiftKey && (r.preventDefault(), e._input.focus()); - break; - default: - break; - } - } - if (e.amPM !== void 0 && o === e.amPM) - switch (r.key) { - case e.l10n.amPM[0].charAt(0): - case e.l10n.amPM[0].charAt(0).toLowerCase(): - e.amPM.textContent = e.l10n.amPM[0], g(), _e(); - break; - case e.l10n.amPM[1].charAt(0): - case e.l10n.amPM[1].charAt(0).toLowerCase(): - e.amPM.textContent = e.l10n.amPM[1], g(), _e(); - break; - } - (s || et(o)) && j("onKeyDown", r); - } - function St(r, o) { - if (o === void 0 && (o = "flatpickr-day"), !(e.selectedDates.length !== 1 || r && (!r.classList.contains(o) || r.classList.contains("flatpickr-disabled")))) { - for (var s = r ? r.dateObj.getTime() : e.days.firstElementChild.dateObj.getTime(), d = e.parseDate(e.selectedDates[0], void 0, true).getTime(), h = Math.min(s, e.selectedDates[0].getTime()), b = Math.max(s, e.selectedDates[0].getTime()), T = false, w = 0, O = 0, D = h; D < b; D += Ri.DAY) - He(new Date(D), true) || (T = T || D > h && D < b, D < d && (!w || D > w) ? w = D : D > d && (!O || D < O) && (O = D)); - var M = Array.from(e.rContainer.querySelectorAll("*:nth-child(-n+" + e.config.showMonths + ") > ." + o)); - M.forEach(function(L) { - var De = L.dateObj, ce = De.getTime(), tt = w > 0 && ce < w || O > 0 && ce > O; - if (tt) { - L.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach(function(qe) { - L.classList.remove(qe); - }); - return; - } else if (T && !tt) - return; - ["startRange", "inRange", "endRange", "notAllowed"].forEach(function(qe) { - L.classList.remove(qe); - }), r !== void 0 && (r.classList.add(s <= e.selectedDates[0].getTime() ? "startRange" : "endRange"), d < s && ce === d ? L.classList.add("startRange") : d > s && ce === d && L.classList.add("endRange"), ce >= w && (O === 0 || ce <= O) && Yi(ce, d, s) && L.classList.add("inRange")); - }); - } - } - function $i() { - e.isOpen && !e.config.static && !e.config.inline && Ct(); - } - function Ui(r, o) { - if (o === void 0 && (o = e._positionElement), e.isMobile === true) { - if (r) { - r.preventDefault(); - var s = se(r); - s && s.blur(); - } - e.mobileInput !== void 0 && (e.mobileInput.focus(), e.mobileInput.click()), j("onOpen"); - return; - } else if (e._input.disabled || e.config.inline) - return; - var d = e.isOpen; - e.isOpen = true, d || (e.calendarContainer.classList.add("open"), e._input.classList.add("active"), j("onOpen"), Ct(o)), e.config.enableTime === true && e.config.noCalendar === true && e.config.allowInput === false && (r === void 0 || !e.timeContainer.contains(r.relatedTarget)) && setTimeout(function() { - return e.hourElement.select(); - }, 50); - } - function zn(r) { - return function(o) { - var s = e.config["_" + r + "Date"] = e.parseDate(o, e.config.dateFormat), d = e.config["_" + (r === "min" ? "max" : "min") + "Date"]; - s !== void 0 && (e[r === "min" ? "minDateHasTime" : "maxDateHasTime"] = s.getHours() > 0 || s.getMinutes() > 0 || s.getSeconds() > 0), e.selectedDates && (e.selectedDates = e.selectedDates.filter(function(h) { - return He(h); - }), !e.selectedDates.length && r === "min" && E(s), _e()), e.daysContainer && (Xn(), s !== void 0 ? e.currentYearElement[r] = s.getFullYear().toString() : e.currentYearElement.removeAttribute(r), e.currentYearElement.disabled = !!d && s !== void 0 && d.getFullYear() === s.getFullYear()); - }; - } - function Ji() { - var r = ["wrap", "weekNumbers", "allowInput", "allowInvalidPreload", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"], o = ie(ie({}, JSON.parse(JSON.stringify(n.dataset || {}))), t), s = {}; - e.config.parseDate = o.parseDate, e.config.formatDate = o.formatDate, Object.defineProperty(e.config, "enable", { get: function() { - return e.config._enable; - }, set: function(M) { - e.config._enable = Un(M); - } }), Object.defineProperty(e.config, "disable", { get: function() { - return e.config._disable; - }, set: function(M) { - e.config._disable = Un(M); - } }); - var d = o.mode === "time"; - if (!o.dateFormat && (o.enableTime || d)) { - var h = G.defaultConfig.dateFormat || Le.dateFormat; - s.dateFormat = o.noCalendar || d ? "H:i" + (o.enableSeconds ? ":S" : "") : h + " H:i" + (o.enableSeconds ? ":S" : ""); - } - if (o.altInput && (o.enableTime || d) && !o.altFormat) { - var b = G.defaultConfig.altFormat || Le.altFormat; - s.altFormat = o.noCalendar || d ? "h:i" + (o.enableSeconds ? ":S K" : " K") : b + (" h:i" + (o.enableSeconds ? ":S" : "") + " K"); - } - Object.defineProperty(e.config, "minDate", { get: function() { - return e.config._minDate; - }, set: zn("min") }), Object.defineProperty(e.config, "maxDate", { get: function() { - return e.config._maxDate; - }, set: zn("max") }); - var T = function(M) { - return function(L) { - e.config[M === "min" ? "_minTime" : "_maxTime"] = e.parseDate(L, "H:i:S"); - }; - }; - Object.defineProperty(e.config, "minTime", { get: function() { - return e.config._minTime; - }, set: T("min") }), Object.defineProperty(e.config, "maxTime", { get: function() { - return e.config._maxTime; - }, set: T("max") }), o.mode === "time" && (e.config.noCalendar = true, e.config.enableTime = true), Object.assign(e.config, s, o); - for (var w = 0; w < r.length; w++) - e.config[r[w]] = e.config[r[w]] === true || e.config[r[w]] === "true"; - $t.filter(function(M) { - return e.config[M] !== void 0; - }).forEach(function(M) { - e.config[M] = Vt(e.config[M] || []).map(u); - }), e.isMobile = !e.config.disableMobile && !e.config.inline && e.config.mode === "single" && !e.config.disable.length && !e.config.enable && !e.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); - for (var w = 0; w < e.config.plugins.length; w++) { - var O = e.config.plugins[w](e) || {}; - for (var D in O) - $t.indexOf(D) > -1 ? e.config[D] = Vt(O[D]).map(u).concat(e.config[D]) : typeof o[D] > "u" && (e.config[D] = O[D]); - } - o.altInputClass || (e.config.altInputClass = qn().className + " " + e.config.altInputClass), j("onParseConfig"); - } - function qn() { - return e.config.wrap ? n.querySelector("[data-input]") : n; - } - function Kn() { - typeof e.config.locale != "object" && typeof G.l10ns[e.config.locale] > "u" && e.config.errorHandler(new Error("flatpickr: invalid locale " + e.config.locale)), e.l10n = ie(ie({}, G.l10ns.default), typeof e.config.locale == "object" ? e.config.locale : e.config.locale !== "default" ? G.l10ns[e.config.locale] : void 0), Ae.D = "(" + e.l10n.weekdays.shorthand.join("|") + ")", Ae.l = "(" + e.l10n.weekdays.longhand.join("|") + ")", Ae.M = "(" + e.l10n.months.shorthand.join("|") + ")", Ae.F = "(" + e.l10n.months.longhand.join("|") + ")", Ae.K = "(" + e.l10n.amPM[0] + "|" + e.l10n.amPM[1] + "|" + e.l10n.amPM[0].toLowerCase() + "|" + e.l10n.amPM[1].toLowerCase() + ")"; - var r = ie(ie({}, t), JSON.parse(JSON.stringify(n.dataset || {}))); - r.time_24hr === void 0 && G.defaultConfig.time_24hr === void 0 && (e.config.time_24hr = e.l10n.time_24hr), e.formatDate = Yn(e), e.parseDate = Zt({ config: e.config, l10n: e.l10n }); - } - function Ct(r) { - if (typeof e.config.position == "function") - return void e.config.position(e, r); - if (e.calendarContainer !== void 0) { - j("onPreCalendarPosition"); - var o = r || e._positionElement, s = Array.prototype.reduce.call(e.calendarContainer.children, function(mr, gr) { - return mr + gr.offsetHeight; - }, 0), d = e.calendarContainer.offsetWidth, h = e.config.position.split(" "), b = h[0], T = h.length > 1 ? h[1] : null, w = o.getBoundingClientRect(), O = window.innerHeight - w.bottom, D = b === "above" || b !== "below" && O < s && w.top > s, M = window.pageYOffset + w.top + (D ? -s - 2 : o.offsetHeight + 2); - if (ne(e.calendarContainer, "arrowTop", !D), ne(e.calendarContainer, "arrowBottom", D), !e.config.inline) { - var L = window.pageXOffset + w.left, De = false, ce = false; - T === "center" ? (L -= (d - w.width) / 2, De = true) : T === "right" && (L -= d - w.width, ce = true), ne(e.calendarContainer, "arrowLeft", !De && !ce), ne(e.calendarContainer, "arrowCenter", De), ne(e.calendarContainer, "arrowRight", ce); - var tt = window.document.body.offsetWidth - (window.pageXOffset + w.right), qe = L + d > window.document.body.offsetWidth, sr = tt + d > window.document.body.offsetWidth; - if (ne(e.calendarContainer, "rightMost", qe), !e.config.static) - if (e.calendarContainer.style.top = M + "px", !qe) - e.calendarContainer.style.left = L + "px", e.calendarContainer.style.right = "auto"; - else if (!sr) - e.calendarContainer.style.left = "auto", e.calendarContainer.style.right = tt + "px"; - else { - var un = Vi(); - if (un === void 0) - return; - var ur = window.document.body.offsetWidth, cr = Math.max(0, ur / 2 - d / 2), dr = ".flatpickr-calendar.centerMost:before", fr = ".flatpickr-calendar.centerMost:after", pr = un.cssRules.length, hr = "{left:" + w.left + "px;right:auto;}"; - ne(e.calendarContainer, "rightMost", false), ne(e.calendarContainer, "centerMost", true), un.insertRule(dr + "," + fr + hr, pr), e.calendarContainer.style.left = cr + "px", e.calendarContainer.style.right = "auto"; - } - } - } - } - function Vi() { - for (var r = null, o = 0; o < document.styleSheets.length; o++) { - var s = document.styleSheets[o]; - if (s.cssRules) { - try { - s.cssRules; - } catch { - continue; - } - r = s; - break; - } - } - return r ?? Zi(); - } - function Zi() { - var r = document.createElement("style"); - return document.head.appendChild(r), r.sheet; - } - function Xn() { - e.config.noCalendar || e.isMobile || (Q(), _t(), be()); - } - function an() { - e._input.focus(), window.navigator.userAgent.indexOf("MSIE") !== -1 || navigator.msMaxTouchPoints !== void 0 ? setTimeout(e.close, 0) : e.close(); - } - function Gn(r) { - r.preventDefault(), r.stopPropagation(); - var o = function(M) { - return M.classList && M.classList.contains("flatpickr-day") && !M.classList.contains("flatpickr-disabled") && !M.classList.contains("notAllowed"); - }, s = Ln(se(r), o); - if (s !== void 0) { - var d = s, h = e.latestSelectedDateObj = new Date(d.dateObj.getTime()), b = (h.getMonth() < e.currentMonth || h.getMonth() > e.currentMonth + e.config.showMonths - 1) && e.config.mode !== "range"; - if (e.selectedDateElem = d, e.config.mode === "single") - e.selectedDates = [h]; - else if (e.config.mode === "multiple") { - var T = ln(h); - T ? e.selectedDates.splice(parseInt(T), 1) : e.selectedDates.push(h); - } else - e.config.mode === "range" && (e.selectedDates.length === 2 && e.clear(false, false), e.latestSelectedDateObj = h, e.selectedDates.push(h), ue(h, e.selectedDates[0], true) !== 0 && e.selectedDates.sort(function(M, L) { - return M.getTime() - L.getTime(); - })); - if (g(), b) { - var w = e.currentYear !== h.getFullYear(); - e.currentYear = h.getFullYear(), e.currentMonth = h.getMonth(), w && (j("onYearChange"), Q()), j("onMonthChange"); - } - if (_t(), be(), _e(), !b && e.config.mode !== "range" && e.config.showMonths === 1 ? Y(d) : e.selectedDateElem !== void 0 && e.hourElement === void 0 && e.selectedDateElem && e.selectedDateElem.focus(), e.hourElement !== void 0 && e.hourElement !== void 0 && e.hourElement.focus(), e.config.closeOnSelect) { - var O = e.config.mode === "single" && !e.config.enableTime, D = e.config.mode === "range" && e.selectedDates.length === 2 && !e.config.enableTime; - (O || D) && an(); - } - B(); - } - } - var Mt = { locale: [Kn, Dt], showMonths: [Oe, c, Fe], minDate: [P], maxDate: [P], positionElement: [Jn], clickOpens: [function() { - e.config.clickOpens === true ? (y(e._input, "focus", e.open), y(e._input, "click", e.open)) : (e._input.removeEventListener("focus", e.open), e._input.removeEventListener("click", e.open)); - }] }; - function Qi(r, o) { - if (r !== null && typeof r == "object") { - Object.assign(e.config, r); - for (var s in r) - Mt[s] !== void 0 && Mt[s].forEach(function(d) { - return d(); - }); - } else - e.config[r] = o, Mt[r] !== void 0 ? Mt[r].forEach(function(d) { - return d(); - }) : $t.indexOf(r) > -1 && (e.config[r] = Vt(o)); - e.redraw(), _e(true); - } - function $n(r, o) { - var s = []; - if (r instanceof Array) - s = r.map(function(d) { - return e.parseDate(d, o); - }); - else if (r instanceof Date || typeof r == "number") - s = [e.parseDate(r, o)]; - else if (typeof r == "string") - switch (e.config.mode) { - case "single": - case "time": - s = [e.parseDate(r, o)]; - break; - case "multiple": - s = r.split(e.config.conjunction).map(function(d) { - return e.parseDate(d, o); - }); - break; - case "range": - s = r.split(e.l10n.rangeSeparator).map(function(d) { - return e.parseDate(d, o); - }); - break; - default: - break; - } - else - e.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(r))); - e.selectedDates = e.config.allowInvalidPreload ? s : s.filter(function(d) { - return d instanceof Date && He(d, false); - }), e.config.mode === "range" && e.selectedDates.sort(function(d, h) { - return d.getTime() - h.getTime(); - }); - } - function er(r, o, s) { - if (o === void 0 && (o = false), s === void 0 && (s = e.config.dateFormat), r !== 0 && !r || r instanceof Array && r.length === 0) - return e.clear(o); - $n(r, s), e.latestSelectedDateObj = e.selectedDates[e.selectedDates.length - 1], e.redraw(), P(void 0, o), E(), e.selectedDates.length === 0 && e.clear(false), _e(o), o && j("onChange"); - } - function Un(r) { - return r.slice().map(function(o) { - return typeof o == "string" || typeof o == "number" || o instanceof Date ? e.parseDate(o, void 0, true) : o && typeof o == "object" && o.from && o.to ? { from: e.parseDate(o.from, void 0), to: e.parseDate(o.to, void 0) } : o; - }).filter(function(o) { - return o; - }); - } - function tr() { - e.selectedDates = [], e.now = e.parseDate(e.config.now) || /* @__PURE__ */ new Date(); - var r = e.config.defaultDate || ((e.input.nodeName === "INPUT" || e.input.nodeName === "TEXTAREA") && e.input.placeholder && e.input.value === e.input.placeholder ? null : e.input.value); - r && $n(r, e.config.dateFormat), e._initialDate = e.selectedDates.length > 0 ? e.selectedDates[0] : e.config.minDate && e.config.minDate.getTime() > e.now.getTime() ? e.config.minDate : e.config.maxDate && e.config.maxDate.getTime() < e.now.getTime() ? e.config.maxDate : e.now, e.currentYear = e._initialDate.getFullYear(), e.currentMonth = e._initialDate.getMonth(), e.selectedDates.length > 0 && (e.latestSelectedDateObj = e.selectedDates[0]), e.config.minTime !== void 0 && (e.config.minTime = e.parseDate(e.config.minTime, "H:i")), e.config.maxTime !== void 0 && (e.config.maxTime = e.parseDate(e.config.maxTime, "H:i")), e.minDateHasTime = !!e.config.minDate && (e.config.minDate.getHours() > 0 || e.config.minDate.getMinutes() > 0 || e.config.minDate.getSeconds() > 0), e.maxDateHasTime = !!e.config.maxDate && (e.config.maxDate.getHours() > 0 || e.config.maxDate.getMinutes() > 0 || e.config.maxDate.getSeconds() > 0); - } - function nr() { - if (e.input = qn(), !e.input) { - e.config.errorHandler(new Error("Invalid input element specified")); - return; - } - e.input._type = e.input.type, e.input.type = "text", e.input.classList.add("flatpickr-input"), e._input = e.input, e.config.altInput && (e.altInput = k(e.input.nodeName, e.config.altInputClass), e._input = e.altInput, e.altInput.placeholder = e.input.placeholder, e.altInput.disabled = e.input.disabled, e.altInput.required = e.input.required, e.altInput.tabIndex = e.input.tabIndex, e.altInput.type = "text", e.input.setAttribute("type", "hidden"), !e.config.static && e.input.parentNode && e.input.parentNode.insertBefore(e.altInput, e.input.nextSibling)), e.config.allowInput || e._input.setAttribute("readonly", "readonly"), Jn(); - } - function Jn() { - e._positionElement = e.config.positionElement || e._input; - } - function ir() { - var r = e.config.enableTime ? e.config.noCalendar ? "time" : "datetime-local" : "date"; - e.mobileInput = k("input", e.input.className + " flatpickr-mobile"), e.mobileInput.tabIndex = 1, e.mobileInput.type = r, e.mobileInput.disabled = e.input.disabled, e.mobileInput.required = e.input.required, e.mobileInput.placeholder = e.input.placeholder, e.mobileFormatStr = r === "datetime-local" ? "Y-m-d\\TH:i:S" : r === "date" ? "Y-m-d" : "H:i:S", e.selectedDates.length > 0 && (e.mobileInput.defaultValue = e.mobileInput.value = e.formatDate(e.selectedDates[0], e.mobileFormatStr)), e.config.minDate && (e.mobileInput.min = e.formatDate(e.config.minDate, "Y-m-d")), e.config.maxDate && (e.mobileInput.max = e.formatDate(e.config.maxDate, "Y-m-d")), e.input.getAttribute("step") && (e.mobileInput.step = String(e.input.getAttribute("step"))), e.input.type = "hidden", e.altInput !== void 0 && (e.altInput.type = "hidden"); - try { - e.input.parentNode && e.input.parentNode.insertBefore(e.mobileInput, e.input.nextSibling); - } catch { - } - y(e.mobileInput, "change", function(o) { - e.setDate(se(o).value, false, e.mobileFormatStr), j("onChange"), j("onClose"); - }); - } - function rr(r) { - if (e.isOpen === true) - return e.close(); - e.open(r); - } - function j(r, o) { - if (e.config !== void 0) { - var s = e.config[r]; - if (s !== void 0 && s.length > 0) - for (var d = 0; s[d] && d < s.length; d++) - s[d](e.selectedDates, e.input.value, e, o); - r === "onChange" && (e.input.dispatchEvent(on("change")), e.input.dispatchEvent(on("input"))); - } - } - function on(r) { - var o = document.createEvent("Event"); - return o.initEvent(r, true, true), o; - } - function ln(r) { - for (var o = 0; o < e.selectedDates.length; o++) { - var s = e.selectedDates[o]; - if (s instanceof Date && ue(s, r) === 0) - return "" + o; - } - return false; - } - function ar(r) { - return e.config.mode !== "range" || e.selectedDates.length < 2 ? false : ue(r, e.selectedDates[0]) >= 0 && ue(r, e.selectedDates[1]) <= 0; - } - function _t() { - e.config.noCalendar || e.isMobile || !e.monthNav || (e.yearElements.forEach(function(r, o) { - var s = new Date(e.currentYear, e.currentMonth, 1); - s.setMonth(e.currentMonth + o), e.config.showMonths > 1 || e.config.monthSelectorType === "static" ? e.monthElements[o].textContent = bt(s.getMonth(), e.config.shorthandCurrentMonth, e.l10n) + " " : e.monthsDropdownContainer.value = s.getMonth().toString(), r.value = s.getFullYear().toString(); - }), e._hidePrevMonthArrow = e.config.minDate !== void 0 && (e.currentYear === e.config.minDate.getFullYear() ? e.currentMonth <= e.config.minDate.getMonth() : e.currentYear < e.config.minDate.getFullYear()), e._hideNextMonthArrow = e.config.maxDate !== void 0 && (e.currentYear === e.config.maxDate.getFullYear() ? e.currentMonth + 1 > e.config.maxDate.getMonth() : e.currentYear > e.config.maxDate.getFullYear())); - } - function sn(r) { - var o = r || (e.config.altInput ? e.config.altFormat : e.config.dateFormat); - return e.selectedDates.map(function(s) { - return e.formatDate(s, o); - }).filter(function(s, d, h) { - return e.config.mode !== "range" || e.config.enableTime || h.indexOf(s) === d; - }).join(e.config.mode !== "range" ? e.config.conjunction : e.l10n.rangeSeparator); - } - function _e(r) { - r === void 0 && (r = true), e.mobileInput !== void 0 && e.mobileFormatStr && (e.mobileInput.value = e.latestSelectedDateObj !== void 0 ? e.formatDate(e.latestSelectedDateObj, e.mobileFormatStr) : ""), e.input.value = sn(e.config.dateFormat), e.altInput !== void 0 && (e.altInput.value = sn(e.config.altFormat)), r !== false && j("onValueUpdate"); - } - function or(r) { - var o = se(r), s = e.prevMonthNav.contains(o), d = e.nextMonthNav.contains(o); - s || d ? ze(s ? -1 : 1) : e.yearElements.indexOf(o) >= 0 ? o.select() : o.classList.contains("arrowUp") ? e.changeYear(e.currentYear + 1) : o.classList.contains("arrowDown") && e.changeYear(e.currentYear - 1); - } - function lr(r) { - r.preventDefault(); - var o = r.type === "keydown", s = se(r), d = s; - e.amPM !== void 0 && s === e.amPM && (e.amPM.textContent = e.l10n.amPM[le(e.amPM.textContent === e.l10n.amPM[0])]); - var h = parseFloat(d.getAttribute("min")), b = parseFloat(d.getAttribute("max")), T = parseFloat(d.getAttribute("step")), w = parseInt(d.value, 10), O = r.delta || (o ? r.which === 38 ? 1 : -1 : 0), D = w + T * O; - if (typeof d.value < "u" && d.value.length === 2) { - var M = d === e.hourElement, L = d === e.minuteElement; - D < h ? (D = b + D + le(!M) + (le(M) && le(!e.amPM)), L && W(void 0, -1, e.hourElement)) : D > b && (D = d === e.hourElement ? D - b - le(!e.amPM) : h, L && W(void 0, 1, e.hourElement)), e.amPM && M && (T === 1 ? D + w === 23 : Math.abs(D - w) > T) && (e.amPM.textContent = e.l10n.amPM[le(e.amPM.textContent === e.l10n.amPM[0])]), d.value = te(D); - } - } - return a(), e; - } - function Qe(n, t) { - for (var e = Array.prototype.slice.call(n).filter(function(u) { - return u instanceof HTMLElement; - }), i = [], a = 0; a < e.length; a++) { - var l = e[a]; - try { - if (l.getAttribute("data-fp-omit") !== null) - continue; - l._flatpickr !== void 0 && (l._flatpickr.destroy(), l._flatpickr = void 0), l._flatpickr = Ha(l, t || {}), i.push(l._flatpickr); - } catch (u) { - console.error(u); - } - } - return i.length === 1 ? i[0] : i; - } - typeof HTMLElement < "u" && typeof HTMLCollection < "u" && typeof NodeList < "u" && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function(n) { - return Qe(this, n); - }, HTMLElement.prototype.flatpickr = function(n) { - return Qe([this], n); - }); - var G = function(n, t) { - return typeof n == "string" ? Qe(window.document.querySelectorAll(n), t) : n instanceof Node ? Qe([n], t) : Qe(n, t); - }; - G.defaultConfig = {}; - G.l10ns = { en: ie({}, Jt), default: ie({}, Jt) }; - G.localize = function(n) { - G.l10ns.default = ie(ie({}, G.l10ns.default), n); - }; - G.setDefaults = function(n) { - G.defaultConfig = ie(ie({}, G.defaultConfig), n); - }; - G.parseDate = Zt({}); - G.formatDate = Yn({}); - G.compareDates = ue; - typeof jQuery < "u" && typeof jQuery.fn < "u" && (jQuery.fn.flatpickr = function(n) { - return Qe(this, n); - }); - Date.prototype.fp_incr = function(n) { - return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof n == "string" ? parseInt(n, 10) : n)); - }; - typeof window < "u" && (window.flatpickr = G); - var Wi = G; - function jn(n = document) { - n === "" ? n = document : n instanceof String && (n = document.querySelectorAll(n)); - let t = n.querySelectorAll("input[data-datepicker-type]"); - Alchemy.isiOS ? t.forEach((e) => { - e.attributes.type = e.dataset.datepickerType; - }) : t.forEach((e) => { - let i = e.dataset.datepickerType, a = { locale: Alchemy.locale.slice(0, 2), altInput: true, altFormat: Alchemy.t(`formats.${i}`), altInputClass: "flatpickr-input", enableTime: /time/.test(i), noCalendar: i === "time", time_24hr: Alchemy.t("formats.time_24hr"), onValueUpdate(l, u, c) { - return Alchemy.setElementDirty(c.element.closest(".element-editor")); - } }; - Wi(e, a); - }); - } - function Ya(n) { - let t = n.item.dataset.pageId, e = Alchemy.routes.move_admin_page_path(t), i = { target_parent_id: n.to.dataset.parentId, new_position: n.newIndex }; - Be(e, i).then(async (a) => { - let l = await a.data, c = document.getElementById(`page_${t}`).querySelector(".sitemap_url"); - Alchemy.growl(Alchemy.t("Successfully moved page")), c.textContent = l.url_path, tn(); - }).catch((a) => { - Alchemy.growl(a.message || a, "error"); - }); - } - function tn() { - document.querySelectorAll("li.sitemap-item").forEach((n) => { - let t = n.querySelector(".page_folder"), e = n.querySelector(".children"), i = { folded: n.dataset.folded === "true", id: n.dataset.pageId, type: n.dataset.type }; - e.children.length > 0 || i.folded ? t.outerHTML = HandlebarsTemplates.page_folder({ page: i }) : t.innerHTML = ""; - }); - } - function Rn(n) { - n.forEach((t) => { - new Wt(t, { group: "pages", animation: 150, fallbackOnBody: true, swapThreshold: 0.65, handle: ".handle", onEnd: Ya }); - }); - } - function zi() { - let n = document.querySelectorAll("ul.children"); - tn(), Rn(n); - } - var yt = class { - constructor(t) { - let e = document.getElementById("sitemap-list").innerHTML.replace(/__ID__/g, "{{id}}"); - this.search_field = document.querySelector(".search_input_field"), this.filter_field_clear = document.querySelector(".search_field_clear"), this.filter_field_clear.removeAttribute("href"), this.display = document.getElementById("page_filter_result"), this.sitemap_wrapper = document.getElementById("sitemap-wrapper"), this.template = Handlebars.compile(document.getElementById("sitemap-template").innerHTML), this.list_template = Handlebars.compile(e), this.items = null, this.options = t, Handlebars.registerPartial("list", e), this.load(t.page_root_id); - } - load(t) { - let e = new Alchemy.Spinner("medium"), i = this.sitemap_wrapper; - i.innerHTML = "", e.spin(i), zt(this.options.url, { id: t }).then(async (a) => { - this.render(await a.data), this.handlePageFolders(), e.stop(); - }).catch(this.errorHandler); - } - handlePageFolders() { - qt("click", "#sitemap", ".page_folder", function(t) { - let e = new Alchemy.Spinner("small"), i = t.target.closest(".page_folder"), a = i.dataset.pageId; - i.innerHTML = "", e.spin(i), Be(Alchemy.routes.fold_admin_page_path(a)).then(async (l) => { - this.reRender(a, await l.data), e.stop(); - }).catch(this.errorHandler); - }.bind(this)); - } - render(t) { - let e = this.sitemap_wrapper, i = this.template; - e.innerHTML = i({ children: t.pages }), this.items = document.getElementById("sitemap").querySelectorAll(".sitemap_page"), this.sitemap_wrapper = document.getElementById("sitemap-wrapper"), this._observe(), zi(); - } - reRender(t, e) { - let i = document.getElementById(`page_${t}`); - i.outerHTML = this.list_template({ children: e.pages }), i = document.getElementById(`page_${t}`); - let a = i.querySelectorAll("ul.children"); - Rn(a), tn(); - } - filter(t) { - let e = []; - this.items.forEach(function(a) { - t !== "" && a.getAttribute("name").toLowerCase().indexOf(t) !== -1 ? (a.classList.add("highlight"), a.classList.remove("no-match"), e.push(a)) : (a.classList.add("no-match"), a.classList.remove("highlight")); - }), this.filter_field_clear.style.display = "inline-block"; - let { length: i } = e; - i === 1 ? (this.display.style.display = "block", this.display.innerText = `1 ${Alchemy.t("page_found")}`, e[0].scrollIntoView({ behavior: "smooth", block: "center" })) : i > 1 ? (this.display.style.display = "block", this.display.innerText = `${i} ${Alchemy.t("pages_found")}`) : (this.items.forEach((a) => a.classList.remove("no-match", "highlight")), this.display.style.display = "none", window.scrollTo({ top: 0, left: 0, behavior: "smooth" }), this.filter_field_clear.style.display = "none"); - } - _observe() { - this.search_field.addEventListener("keyup", (t) => { - let e = t.target.value; - this.filter(e.toLowerCase()); - }), this.search_field.addEventListener("focus", () => key.setScope("search")), this.filter_field_clear.addEventListener("click", () => (this.search_field.value = "", this.filter(""), false)); - } - errorHandler(t) { - Alchemy.growl(t.message || t, "error"), console.error(t); - } - }; - function qi() { - document.addEventListener("DialogReady.Alchemy", function(n) { - let t = n.detail.body, e = t.querySelector("#page_public_on"), i = t.querySelector("#page_public_until"), a = t.querySelector(".page-publication-date-fields"), l = t.querySelector("#page_public"); - l && l.addEventListener("click", function(u) { - let c = u.target, f = /* @__PURE__ */ new Date(); - c.checked ? (a.classList.remove("hidden"), e._flatpickr.setDate(f)) : (a.classList.add("hidden"), e.value = ""), i.value = ""; - }); - }); - } - typeof window.Alchemy > "u" && (window.Alchemy = {}); - Object.assign(Alchemy, { t: cn, translations: Object.assign(Alchemy.translations || {}, Zn), NodeTree: In, fileEditors: On, pictureEditors: Nn, ImageLoader: Ce.init, ImageCropper: mt, IngredientAnchorLink: ft, Datepicker: jn, Sitemap: yt, PagePublicationFields: qi }); - })(); -})(); -/*! Bundled license information: - -@alchemy_cms/admin/package/dist/admin.js: - (*! Bundled license information: - - sortablejs/modular/sortable.esm.js: - (**! - * Sortable 1.15.0 - * @author RubaXa - * @author owenm - * @license MIT - *) - *) -*/ -//# sourceMappingURL=assets/alchemy_admin.js.map diff --git a/spec/dummy/app/assets/builds/alchemy_admin.js.map b/spec/dummy/app/assets/builds/alchemy_admin.js.map deleted file mode 100644 index f2fd74d..0000000 --- a/spec/dummy/app/assets/builds/alchemy_admin.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../node_modules/@alchemy_cms/admin/package/dist/admin.js"], - "sourcesContent": ["(()=>{var Vn=/\\./;function vr(){if(Alchemy.locale==null)throw\"Alchemy.locale is not set! Please set Alchemy.locale to a locale string in order to translate something.\";return Alchemy.locale}function br(){let n=vr(),t=Alchemy.translations&&Alchemy.translations[n];return t||(console.warn(`Translations for locale ${n} not found!`),{})}function yr(n,t){let e=t.split(Vn),i=n[e[0]];return i&&i[e[1]]||t}function Dr(n){let t=br();return Vn.test(n)?yr(t,n):t[n]||n}function cn(n,t){let e=Dr(n);return t?e.replace(/%\\{.+\\}/,t):e}var wr={en:{allowed_chars:\"of %{count} chars\",cancel:\"Cancel\",cancelled:\"Cancelled\",click_to_edit:\"click to edit\",complete:\"Complete\",element_dirty_notice:\"This element has unsaved changes. Do you really want to fold it?\",help:\"Help\",ok:\"Ok\",page_dirty_notice:\"You have unsaved changes on this page. They will be lost if you continue.\",page_found:\"Page found\",pages_found:\"Pages found\",url_validation_failed:\"The url has no valid format.\",warning:\"Warning!\",\"File is too large\":\"File is too large\",\"File is too small\":\"File is too small\",\"File type not allowed\":\"File type not allowed\",\"Maximum number of files exceeded\":\"Maximum number of files exceeded.\",\"Uploaded bytes exceed file size\":\"Uploaded bytes exceed file size\",formats:{datetime:\"Y-m-d H:i\",date:\"Y-m-d\",time:\"H:i\",time_24hr:!1}}},Zn=wr;function Qn(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);t&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,i)}return e}function Se(n){for(var t=1;t=0)&&(e[a]=n[a]);return e}function Cr(n,t){if(n==null)return{};var e=Sr(n,t),i,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(n);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(n,i)&&(e[i]=n[i])}return e}var Mr=\"1.15.0\";function xe(n){if(typeof window<\"u\"&&window.navigator)return!!navigator.userAgent.match(n)}var Ie=xe(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i),ct=xe(/Edge/i),ei=xe(/firefox/i),at=xe(/safari/i)&&!xe(/chrome/i)&&!xe(/android/i),si=xe(/iP(ad|od|hone)/i),ui=xe(/chrome/i)&&xe(/android/i),ci={capture:!1,passive:!1};function N(n,t,e){n.addEventListener(t,e,!Ie&&ci)}function F(n,t,e){n.removeEventListener(t,e,!Ie&&ci)}function Lt(n,t){if(t){if(t[0]===\">\"&&(t=t.substring(1)),n)try{if(n.matches)return n.matches(t);if(n.msMatchesSelector)return n.msMatchesSelector(t);if(n.webkitMatchesSelector)return n.webkitMatchesSelector(t)}catch{return!1}return!1}}function _r(n){return n.host&&n!==document&&n.host.nodeType?n.host:n.parentNode}function we(n,t,e,i){if(n){e=e||document;do{if(t!=null&&(t[0]===\">\"?n.parentNode===e&&Lt(n,t):Lt(n,t))||i&&n===e)return n;if(n===e)break}while(n=_r(n))}return null}var ti=/\\s+/g;function de(n,t,e){if(n&&t)if(n.classList)n.classList[e?\"add\":\"remove\"](t);else{var i=(\" \"+n.className+\" \").replace(ti,\" \").replace(\" \"+t+\" \",\" \");n.className=(i+(e?\" \"+t:\"\")).replace(ti,\" \")}}function S(n,t,e){var i=n&&n.style;if(i){if(e===void 0)return document.defaultView&&document.defaultView.getComputedStyle?e=document.defaultView.getComputedStyle(n,\"\"):n.currentStyle&&(e=n.currentStyle),t===void 0?e:e[t];!(t in i)&&t.indexOf(\"webkit\")===-1&&(t=\"-webkit-\"+t),i[t]=e+(typeof e==\"string\"?\"\":\"px\")}}function Ue(n,t){var e=\"\";if(typeof n==\"string\")e=n;else do{var i=S(n,\"transform\");i&&i!==\"none\"&&(e=i+\" \"+e)}while(!t&&(n=n.parentNode));var a=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return a&&new a(e)}function di(n,t,e){if(n){var i=n.getElementsByTagName(t),a=0,l=i.length;if(e)for(;a=l:u=a<=l,!u)return i;if(i===Ee())break;i=Pe(i,!1)}return!1}function Je(n,t,e,i){for(var a=0,l=0,u=n.children;l2&&arguments[2]!==void 0?arguments[2]:{},a=i.evt,l=Cr(i,Nr);dt.pluginEvent.bind(C)(t,e,Se({dragEl:m,parentEl:z,ghostEl:x,rootEl:H,nextEl:Re,lastDownEl:Ft,cloneEl:R,cloneHidden:Ne,dragStarted:nt,putSortable:Z,activeSortable:C.active,originalEvent:a,oldIndex:$e,oldDraggableIndex:lt,newIndex:fe,newDraggableIndex:ke,hideGhostForTarget:bi,unhideGhostForTarget:yi,cloneNowHidden:function(){Ne=!0},cloneNowShown:function(){Ne=!1},dispatchSortableEvent:function(c){ae({sortable:e,name:c,originalEvent:a})}},l))};function ae(n){kr(Se({putSortable:Z,cloneEl:R,targetEl:m,rootEl:H,oldIndex:$e,oldDraggableIndex:lt,newIndex:fe,newDraggableIndex:ke},n))}var m,z,x,H,Re,Ft,R,Ne,$e,fe,lt,ke,xt,Z,Ge=!1,Ht=!1,Yt=[],Ye,ge,pn,hn,ri,ai,nt,Xe,st,ut=!1,Tt=!1,kt,ee,mn=[],Dn=!1,jt=[],Bt=typeof document<\"u\",It=si,oi=ct||Ie?\"cssFloat\":\"float\",Pr=Bt&&!ui&&!si&&\"draggable\"in document.createElement(\"div\"),mi=function(){if(Bt){if(Ie)return!1;var n=document.createElement(\"x\");return n.style.cssText=\"pointer-events:auto\",n.style.pointerEvents===\"auto\"}}(),gi=function(t,e){var i=S(t),a=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),l=Je(t,0,e),u=Je(t,1,e),c=l&&S(l),f=u&&S(u),p=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+U(l).width,v=f&&parseInt(f.marginLeft)+parseInt(f.marginRight)+U(u).width;if(i.display===\"flex\")return i.flexDirection===\"column\"||i.flexDirection===\"column-reverse\"?\"vertical\":\"horizontal\";if(i.display===\"grid\")return i.gridTemplateColumns.split(\" \").length<=1?\"vertical\":\"horizontal\";if(l&&c.float&&c.float!==\"none\"){var g=c.float===\"left\"?\"left\":\"right\";return u&&(f.clear===\"both\"||f.clear===g)?\"vertical\":\"horizontal\"}return l&&(c.display===\"block\"||c.display===\"flex\"||c.display===\"table\"||c.display===\"grid\"||p>=a&&i[oi]===\"none\"||u&&i[oi]===\"none\"&&p+v>a)?\"vertical\":\"horizontal\"},Lr=function(t,e,i){var a=i?t.left:t.top,l=i?t.right:t.bottom,u=i?t.width:t.height,c=i?e.left:e.top,f=i?e.right:e.bottom,p=i?e.width:e.height;return a===c||l===f||a+u/2===c+p/2},Hr=function(t,e){var i;return Yt.some(function(a){var l=a[pe].options.emptyInsertThreshold;if(!(!l||Cn(a))){var u=U(a),c=t>=u.left-l&&t<=u.right+l,f=e>=u.top-l&&e<=u.bottom+l;if(c&&f)return i=a}}),i},vi=function(t){function e(l,u){return function(c,f,p,v){var g=c.options.group.name&&f.options.group.name&&c.options.group.name===f.options.group.name;if(l==null&&(u||g))return!0;if(l==null||l===!1)return!1;if(u&&l===\"clone\")return l;if(typeof l==\"function\")return e(l(c,f,p,v),u)(c,f,p,v);var E=(u?c:f).options.group.name;return l===!0||typeof l==\"string\"&&l===E||l.join&&l.indexOf(E)>-1}}var i={},a=t.group;(!a||Ot(a)!=\"object\")&&(a={name:a}),i.name=a.name,i.checkPull=e(a.pull,!0),i.checkPut=e(a.put),i.revertClone=a.revertClone,t.group=i},bi=function(){!mi&&x&&S(x,\"display\",\"none\")},yi=function(){!mi&&x&&S(x,\"display\",\"\")};Bt&&!ui&&document.addEventListener(\"click\",function(n){if(Ht)return n.preventDefault(),n.stopPropagation&&n.stopPropagation(),n.stopImmediatePropagation&&n.stopImmediatePropagation(),Ht=!1,!1},!0);var je=function(t){if(m){t=t.touches?t.touches[0]:t;var e=Hr(t.clientX,t.clientY);if(e){var i={};for(var a in t)t.hasOwnProperty(a)&&(i[a]=t[a]);i.target=i.rootEl=e,i.preventDefault=void 0,i.stopPropagation=void 0,e[pe]._onDragOver(i)}}},Yr=function(t){m&&m.parentNode[pe]._isOutsideThisEl(t.target)};function C(n,t){if(!(n&&n.nodeType&&n.nodeType===1))throw\"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(n));this.el=n,this.options=t=Te({},t),n[pe]=this;var e={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(n.nodeName)?\">li\":\">*\",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return gi(n,this.options)},ghostClass:\"sortable-ghost\",chosenClass:\"sortable-chosen\",dragClass:\"sortable-drag\",ignore:\"a, img\",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(u,c){u.setData(\"Text\",c.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:\"data-id\",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:\"sortable-fallback\",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:C.supportPointer!==!1&&\"PointerEvent\"in window&&!at,emptyInsertThreshold:5};dt.initializePlugins(this,n,e);for(var i in e)!(i in t)&&(t[i]=e[i]);vi(t);for(var a in this)a.charAt(0)===\"_\"&&typeof this[a]==\"function\"&&(this[a]=this[a].bind(this));this.nativeDraggable=t.forceFallback?!1:Pr,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?N(n,\"pointerdown\",this._onTapStart):(N(n,\"mousedown\",this._onTapStart),N(n,\"touchstart\",this._onTapStart)),this.nativeDraggable&&(N(n,\"dragover\",this),N(n,\"dragenter\",this)),Yt.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Te(this,Ar())}C.prototype={constructor:C,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(Xe=null)},_getDirection:function(t,e){return typeof this.options.direction==\"function\"?this.options.direction.call(this,t,e,m):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,i=this.el,a=this.options,l=a.preventOnFilter,u=t.type,c=t.touches&&t.touches[0]||t.pointerType&&t.pointerType===\"touch\"&&t,f=(c||t).target,p=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||f,v=a.filter;if(Xr(i),!m&&!(/mousedown|pointerdown/.test(u)&&t.button!==0||a.disabled)&&!p.isContentEditable&&!(!this.nativeDraggable&&at&&f&&f.tagName.toUpperCase()===\"SELECT\")&&(f=we(f,a.draggable,i,!1),!(f&&f.animated)&&Ft!==f)){if($e=he(f),lt=he(f,a.draggable),typeof v==\"function\"){if(v.call(this,t,f,this)){ae({sortable:e,rootEl:p,name:\"filter\",targetEl:f,toEl:i,fromEl:i}),oe(\"filter\",e,{evt:t}),l&&t.cancelable&&t.preventDefault();return}}else if(v&&(v=v.split(\",\").some(function(g){if(g=we(p,g.trim(),i,!1),g)return ae({sortable:e,rootEl:g,name:\"filter\",targetEl:f,fromEl:i,toEl:i}),oe(\"filter\",e,{evt:t}),!0}),v)){l&&t.cancelable&&t.preventDefault();return}a.handle&&!we(p,a.handle,i,!1)||this._prepareDragStart(t,c,f)}}},_prepareDragStart:function(t,e,i){var a=this,l=a.el,u=a.options,c=l.ownerDocument,f;if(i&&!m&&i.parentNode===l){var p=U(i);if(H=l,m=i,z=m.parentNode,Re=m.nextSibling,Ft=i,xt=u.group,C.dragged=m,Ye={target:m,clientX:(e||t).clientX,clientY:(e||t).clientY},ri=Ye.clientX-p.left,ai=Ye.clientY-p.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,m.style[\"will-change\"]=\"all\",f=function(){if(oe(\"delayEnded\",a,{evt:t}),C.eventCanceled){a._onDrop();return}a._disableDelayedDragEvents(),!ei&&a.nativeDraggable&&(m.draggable=!0),a._triggerDragStart(t,e),ae({sortable:a,name:\"choose\",originalEvent:t}),de(m,u.chosenClass,!0)},u.ignore.split(\",\").forEach(function(v){di(m,v.trim(),gn)}),N(c,\"dragover\",je),N(c,\"mousemove\",je),N(c,\"touchmove\",je),N(c,\"mouseup\",a._onDrop),N(c,\"touchend\",a._onDrop),N(c,\"touchcancel\",a._onDrop),ei&&this.nativeDraggable&&(this.options.touchStartThreshold=4,m.draggable=!0),oe(\"delayStart\",this,{evt:t}),u.delay&&(!u.delayOnTouchOnly||e)&&(!this.nativeDraggable||!(ct||Ie))){if(C.eventCanceled){this._onDrop();return}N(c,\"mouseup\",a._disableDelayedDrag),N(c,\"touchend\",a._disableDelayedDrag),N(c,\"touchcancel\",a._disableDelayedDrag),N(c,\"mousemove\",a._delayedDragTouchMoveHandler),N(c,\"touchmove\",a._delayedDragTouchMoveHandler),u.supportPointer&&N(c,\"pointermove\",a._delayedDragTouchMoveHandler),a._dragStartTimer=setTimeout(f,u.delay)}else f()}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){m&&gn(m),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;F(t,\"mouseup\",this._disableDelayedDrag),F(t,\"touchend\",this._disableDelayedDrag),F(t,\"touchcancel\",this._disableDelayedDrag),F(t,\"mousemove\",this._delayedDragTouchMoveHandler),F(t,\"touchmove\",this._delayedDragTouchMoveHandler),F(t,\"pointermove\",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||t.pointerType==\"touch\"&&t,!this.nativeDraggable||e?this.options.supportPointer?N(document,\"pointermove\",this._onTouchMove):e?N(document,\"touchmove\",this._onTouchMove):N(document,\"mousemove\",this._onTouchMove):(N(m,\"dragend\",this),N(H,\"dragstart\",this._onDragStart));try{document.selection?Nt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,e){if(Ge=!1,H&&m){oe(\"dragStarted\",this,{evt:e}),this.nativeDraggable&&N(document,\"dragover\",Yr);var i=this.options;!t&&de(m,i.dragClass,!1),de(m,i.ghostClass,!0),C.active=this,t&&this._appendGhost(),ae({sortable:this,name:\"start\",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(ge){this._lastX=ge.clientX,this._lastY=ge.clientY,bi();for(var t=document.elementFromPoint(ge.clientX,ge.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ge.clientX,ge.clientY),t!==e);)e=t;if(m.parentNode[pe]._isOutsideThisEl(t),e)do{if(e[pe]){var i=void 0;if(i=e[pe]._onDragOver({clientX:ge.clientX,clientY:ge.clientY,target:t,rootEl:e}),i&&!this.options.dragoverBubble)break}t=e}while(e=e.parentNode);yi()}},_onTouchMove:function(t){if(Ye){var e=this.options,i=e.fallbackTolerance,a=e.fallbackOffset,l=t.touches?t.touches[0]:t,u=x&&Ue(x,!0),c=x&&u&&u.a,f=x&&u&&u.d,p=It&&ee&&ii(ee),v=(l.clientX-Ye.clientX+a.x)/(c||1)+(p?p[0]-mn[0]:0)/(c||1),g=(l.clientY-Ye.clientY+a.y)/(f||1)+(p?p[1]-mn[1]:0)/(f||1);if(!C.active&&!Ge){if(i&&Math.max(Math.abs(l.clientX-this._lastX),Math.abs(l.clientY-this._lastY))=0&&(ae({rootEl:z,name:\"add\",toEl:z,fromEl:H,originalEvent:t}),ae({sortable:this,name:\"remove\",toEl:z,originalEvent:t}),ae({rootEl:z,name:\"sort\",toEl:z,fromEl:H,originalEvent:t}),ae({sortable:this,name:\"sort\",toEl:z,originalEvent:t})),Z&&Z.save()):fe!==$e&&fe>=0&&(ae({sortable:this,name:\"update\",toEl:z,originalEvent:t}),ae({sortable:this,name:\"sort\",toEl:z,originalEvent:t})),C.active&&((fe==null||fe===-1)&&(fe=$e,ke=lt),ae({sortable:this,name:\"end\",toEl:z,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){oe(\"nulling\",this),H=m=z=x=Re=R=Ft=Ne=Ye=ge=nt=fe=ke=$e=lt=Xe=st=Z=xt=C.dragged=C.ghost=C.clone=C.active=null,jt.forEach(function(t){t.checked=!0}),jt.length=pn=hn=0},handleEvent:function(t){switch(t.type){case\"drop\":case\"dragend\":this._onDrop(t);break;case\"dragenter\":case\"dragover\":m&&(this._onDragOver(t),jr(t));break;case\"selectstart\":t.preventDefault();break}},toArray:function(){for(var t=[],e,i=this.el.children,a=0,l=i.length,u=this.options;ai.right+a||n.clientX<=i.right&&n.clientY>i.bottom&&n.clientX>=i.left:n.clientX>i.right&&n.clientY>i.top||n.clientX<=i.right&&n.clientY>i.bottom+a}function zr(n,t,e,i,a,l,u,c){var f=i?n.clientY:n.clientX,p=i?e.height:e.width,v=i?e.top:e.left,g=i?e.bottom:e.right,E=!1;if(!u){if(c&&ktv+p*l/2:fg-kt)return-st}else if(f>v+p*(1-a)/2&&fg-p*l/2)?f>v+p/2?1:-1:0}function qr(n){return he(m){n.onload=()=>{if(n.status>=200&&n.status<400)try{t({data:JSON.parse(n.responseText),status:n.status})}catch(i){e(i)}else try{e(JSON.parse(n.responseText))}catch(i){e(i)}},n.onerror=()=>{e(new Error(\"An error occurred during the transaction\"))}})}function Ur(){return document.querySelector('meta[name=\"csrf-token\"]').attributes.content.textContent}function zt(n,t){return xn(\"GET\",n,t)}function Be(n,t){return xn(\"PATCH\",n,t)}function xn(n,t,e){let i=new XMLHttpRequest,a=$r(i),l=new URL(window.location.origin+t);return e&&n.toLowerCase()===\"get\"&&(l.search=new URLSearchParams(e).toString()),i.open(n,l.toString()),i.setRequestHeader(\"Content-type\",\"application/json; charset=utf-8\"),i.setRequestHeader(\"Accept\",\"application/json\"),i.setRequestHeader(\"X-CSRF-Token\",Ur()),e&&n.toLowerCase()!==\"get\"?i.send(JSON.stringify(e)):i.send(),a}function qt(n,t,e,i){document.querySelectorAll(t).forEach(a=>{a.addEventListener(n,l=>{let u=Array.from(a.querySelectorAll(e)),c=l.target;for(;c!==a;){if(u.includes(c)){i.call(c,l);return}c=c.parentElement}})})}function Tn(){document.querySelectorAll(\"li.menu-item\").forEach(n=>{let t=n.querySelector(\".nodes_tree-left_images\"),e=n.querySelector(\".children\"),i={folded:n.dataset.folded===\"true\",id:n.dataset.id,type:n.dataset.type};e.children.length>0||i.folded?t.innerHTML=HandlebarsTemplates.node_folder({node:i}):t.innerHTML=\" \"})}function Jr(n){let t=Alchemy.routes[n.item.dataset.type].move_api_path(n.item.dataset.id),e={target_parent_id:n.to.dataset.recordId,new_position:n.newIndex};Be(t,e).then(()=>{let i=Alchemy.t(\"Successfully moved menu item\");Alchemy.growl(i),Tn()}).catch(i=>{Alchemy.growl(i.message||i,\"error\")})}function Vr(){qt(\"click\",\".nodes_tree\",\".node_folder\",function(){let n=this.dataset.recordId,t=this.closest(\"li.menu-item\"),e=Alchemy.routes[this.dataset.recordType].toggle_folded_api_path(n),i=t.querySelector(\".children\");Be(e).then(()=>{i.classList.toggle(\"folded\"),t.dataset.folded=t.dataset.folded==\"true\"?\"false\":\"true\",Tn()}).catch(a=>{Alchemy.growl(a.message||a)})})}function In(){Vr(),Tn(),document.querySelectorAll(\".nodes_tree ul.children\").forEach(n=>{new Wt(n,{group:\"nodes\",animation:150,fallbackOnBody:!0,swapThreshold:.65,handle:\".node_name\",invertSwap:!0,onEnd:Jr})})}var An=class{constructor(t){this.container=t,this.deleteLink=t.querySelector(\".remove_file_link\"),this.fileIcon=t.querySelector(\".file_icon\"),this.fileName=t.querySelector(\".file_name\"),this.deleteLink.addEventListener(\"click\",this.removeFile.bind(this)),this.formFieldId=this.deleteLink.dataset.formFieldId,this.formField=t.querySelector(`#${this.formFieldId}`),this.assignFileText=this.deleteLink.dataset.assignFileText}removeFile(t){return t.stopPropagation(),this.formField.value=\"\",this.fileIcon.innerHTML=\"\",this.fileName.innerHTML=\"\",this.deleteLink.classList.add(\"hidden\"),Alchemy.setElementDirty(this.container.closest(\".element-editor\")),!1}};function On(n){document.querySelectorAll(n).forEach(t=>{new An(t)})}var ft=class{static updateIcon(t,e=!1){let i=document.querySelector(`[data-ingredient-id=\"${t}\"]`);if(i){let a=i.querySelector(\".edit-ingredient-anchor-link > a > .icon\");a&&(e?a.classList.replace(\"far\",\"fas\"):a.classList.replace(\"fas\",\"far\"))}}};function Zr(n){var t=typeof n;return n!=null&&(t==\"object\"||t==\"function\")}var pt=Zr;var Qr=typeof global==\"object\"&&global&&global.Object===Object&&global,wi=Qr;var ea=typeof self==\"object\"&&self&&self.Object===Object&&self,ta=wi||ea||Function(\"return this\")(),Kt=ta;var na=function(){return Kt.Date.now()},Xt=na;var ia=/\\s/;function ra(n){for(var t=n.length;t--&&ia.test(n.charAt(t)););return t}var Ei=ra;var aa=/^\\s+/;function oa(n){return n&&n.slice(0,Ei(n)+1).replace(aa,\"\")}var Si=oa;var la=Kt.Symbol,Ve=la;var Ci=Object.prototype,sa=Ci.hasOwnProperty,ua=Ci.toString,ht=Ve?Ve.toStringTag:void 0;function ca(n){var t=sa.call(n,ht),e=n[ht];try{n[ht]=void 0;var i=!0}catch{}var a=ua.call(n);return i&&(t?n[ht]=e:delete n[ht]),a}var Mi=ca;var da=Object.prototype,fa=da.toString;function pa(n){return fa.call(n)}var _i=pa;var ha=\"[object Null]\",ma=\"[object Undefined]\",xi=Ve?Ve.toStringTag:void 0;function ga(n){return n==null?n===void 0?ma:ha:xi&&xi in Object(n)?Mi(n):_i(n)}var Ti=ga;function va(n){return n!=null&&typeof n==\"object\"}var Ii=va;var ba=\"[object Symbol]\";function ya(n){return typeof n==\"symbol\"||Ii(n)&&Ti(n)==ba}var Gt=ya;var Ai=0/0,Da=/^[-+]0x[0-9a-f]+$/i,wa=/^0b[01]+$/i,Ea=/^0o[0-7]+$/i,Sa=parseInt;function Ca(n){if(typeof n==\"number\")return n;if(Gt(n))return Ai;if(pt(n)){var t=typeof n.valueOf==\"function\"?n.valueOf():n;n=pt(t)?t+\"\":t}if(typeof n!=\"string\")return n===0?n:+n;n=Si(n);var e=wa.test(n);return e||Ea.test(n)?Sa(n.slice(2),e?2:8):Da.test(n)?Ai:+n}var Fn=Ca;var Ma=\"Expected a function\",_a=Math.max,xa=Math.min;function Ta(n,t,e){var i,a,l,u,c,f,p=0,v=!1,g=!1,E=!0;if(typeof n!=\"function\")throw new TypeError(Ma);t=Fn(t)||0,pt(e)&&(v=!!e.leading,g=\"maxWait\"in e,l=g?_a(Fn(e.maxWait)||0,t):l,E=\"trailing\"in e?!!e.trailing:E);function _(A){var Y=i,V=a;return i=a=void 0,p=A,u=n.apply(V,Y),u}function I(A){return p=A,c=setTimeout(J,t),v?_(A):u}function y(A){var Y=A-f,V=A-p,K=t-Y;return g?xa(K,l-V):K}function B(A){var Y=A-f,V=A-p;return f===void 0||Y>=t||Y<0||g&&V>=l}function J(){var A=Xt();if(B(A))return P(A);c=setTimeout(J,y(A))}function P(A){return c=void 0,E&&i?_(A):(i=a=void 0,u)}function q(){c!==void 0&&clearTimeout(c),p=0,i=f=a=c=void 0}function W(){return c===void 0?u:P(Xt())}function re(){var A=Xt(),Y=B(A);if(i=arguments,a=this,f=A,Y){if(c===void 0)return I(f);if(g)return clearTimeout(c),c=setTimeout(J,t),_(f)}return c===void 0&&(c=setTimeout(J,t)),u}return re.cancel=q,re.flush=W,re}var Oi=Ta;function Ia(n,t,e){for(var i=-1,a=n.length;++it}var ki=Aa;function Oa(n){return n}var Ni=Oa;function Fa(n){return n&&n.length?Fi(n,Ni,ki):void 0}var Pi=Fa;var Li={fill:\"#fff\"},Ce=class{static init(t=document,e=Li){typeof t==\"string\"&&(t=document.querySelector(t)),t.querySelectorAll(\"img\").forEach(i=>{new Ce(i,e).load()})}constructor(t,e=Li){this.image=t,this.parent=t.parentNode,this.spinner=new Alchemy.Spinner(\"small\",e),this.bind()}bind(){this.image.addEventListener(\"load\",this.onLoaded.bind(this)),this.image.addEventListener(\"error\",this.onError.bind(this))}load(t=!1){!t&&this.image.complete||(this.image.classList.add(\"loading\"),this.spinner.spin(this.image.parentElement))}onLoaded(){this.removeSpinner(),this.image.classList.remove(\"loading\"),this.unbind()}onError(t){let e=`Could not load \"${this.image.src}\"`;this.removeSpinner(),this.parent.innerHTML=``,console.error(e,t),this.unbind()}unbind(){this.image.removeEventListener(\"load\",this.onLoaded),this.image.removeEventListener(\"error\",this.onError)}removeSpinner(){this.parent.querySelectorAll(\".spinner\").forEach(t=>{t.remove()})}};var ka=125,Na='',Pa=\"160x120\",kn=class{constructor(t){this.container=t,this.cropFromField=t.querySelector(\"[data-crop-from]\"),this.cropSizeField=t.querySelector(\"[data-crop-size]\"),this.pictureIdField=t.querySelector(\"[data-picture-id]\"),this.targetSizeField=t.querySelector(\"[data-target-size]\"),this.imageCropperField=t.querySelector(\"[data-image-cropper]\"),this.image=t.querySelector(\"img\"),this.thumbnailBackground=t.querySelector(\".thumbnail_background\"),this.deleteButton=t.querySelector(\".picture_tool.delete\"),this.cropLink=t.querySelector(\".crop_link\"),this.targetSize=this.targetSizeField.dataset.targetSize,this.pictureId=this.pictureIdField.value,this.image&&(this.imageLoader=new Ce(this.image)),this.update=Oi(()=>{this.updateImage(),this.updateCropLink()},ka),this.deleteButton.addEventListener(\"click\",this.removeImage.bind(this))}observe(){let t=new MutationObserver(this.mutationCallback.bind(this));t.observe(this.cropFromField,{attributes:!0}),t.observe(this.cropSizeField,{attributes:!0}),t.observe(this.pictureIdField,{attributes:!0})}mutationCallback(t){for(let e of t)\"pictureId\"in e.target.dataset&&(this.cropFromField.value=\"\",this.cropSizeField.value=\"\",this.pictureId=e.target.value),this.update()}updateImage(){this.pictureId&&(this.ensureImage(),this.image.removeAttribute(\"alt\"),this.image.removeAttribute(\"src\"),this.imageLoader.load(!0),zt(Alchemy.routes.url_admin_picture_path(this.pictureId),{crop:this.imageCropperEnabled,crop_from:this.cropFrom,crop_size:this.cropSize,flatten:!0,size:Pa}).then(({data:t})=>{this.image.src=t.url,this.image.alt=t.alt,this.image.title=t.title}).catch(t=>{console.error(t.message||t),Alchemy.growl(t.message||t,\"error\")}))}ensureImage(){if(this.image)return;let t=new Image;this.thumbnailBackground.replaceChildren(t),this.image=t,this.imageLoader=new Ce(t)}removeImage(){this.thumbnailBackground.innerHTML=Na,this.pictureIdField.value=\"\",this.image=null,this.cropLink.classList.add(\"disabled\"),Alchemy.setElementDirty(this.container.closest(\".element-editor\"))}updateCropLink(){!this.pictureId||!this.imageCropperEnabled||(this.cropLink.classList.remove(\"disabled\"),this.cropLink.href.match(/(picture_id=)\\d+/)?this.cropLink.href=this.cropLink.href.replace(/(picture_id=)\\d+/,\"$1\"+this.pictureId):this.cropLink.href=this.cropLink.href+`&picture_id=${this.pictureId}`)}get cropFrom(){return this.cropFromField.value===\"\"?this.defaultCropFrom.join(\"x\"):this.cropFromField.value}get cropSize(){return this.cropSizeField.value===\"\"?this.defaultCropSize.join(\"x\"):this.cropSizeField.value}get defaultCropSize(){if(!this.imageCropperEnabled)return[];let t=this.targetSize.split(\"x\").map(i=>parseInt(i)),e=Pi([t[0]/this.imageFileWidth,t[1]/this.imageFileHeight]);return[Math.round(t[0]/e),Math.round(t[1]/e)]}get defaultCropFrom(){if(!this.imageCropperEnabled)return[];let t=this.defaultCropSize;return[Math.round((this.imageFileWidth-t[0])/2),Math.round((this.imageFileHeight-t[1])/2)]}get imageFileWidth(){return parseInt(this.pictureIdField.dataset.imageFileWidth)}get imageFileHeight(){return parseInt(this.pictureIdField.dataset.imageFileHeight)}get imageCropperEnabled(){return this.targetSizeField.dataset.imageCropper===\"true\"}};function Nn(n){document.querySelectorAll(n).forEach(t=>{new kn(t).observe()})}var mt=class{constructor(t,e,i,a,l,u){this.initialized=!1,this.minSize=t,this.defaultBox=e,this.aspectRatio=i,this.trueSize=a,this.cropFromField=document.getElementById(l[0]),this.cropSizeField=document.getElementById(l[1]),this.elementId=u,this.dialog=Alchemy.currentDialog(),this.dialog.options.closed=this.destroy,this.init(),this.bind()}get jcropOptions(){return{onSelect:this.update.bind(this),setSelect:this.box,aspectRatio:this.aspectRatio,minSize:this.minSize,boxWidth:800,boxHeight:600,trueSize:this.trueSize,closed:this.destroy.bind(this)}}get cropFrom(){if(this.cropFromField.value)return this.cropFromField.value.split(\"x\").map(t=>parseInt(t))}get cropSize(){if(this.cropSizeField.value)return this.cropSizeField.value.split(\"x\").map(t=>parseInt(t))}get box(){return this.cropFrom&&this.cropSize?[this.cropFrom[0],this.cropFrom[1],this.cropFrom[0]+this.cropSize[0],this.cropFrom[1]+this.cropSize[1]]:this.defaultBox}init(){this.initialized||(this.api=$.Jcrop(\"#imageToCrop\",this.jcropOptions),this.initialized=!0)}update(t){this.cropFromField.value=Math.round(t.x)+\"x\"+Math.round(t.y),this.cropFromField.dispatchEvent(new Event(\"change\")),this.cropSizeField.value=Math.round(t.w)+\"x\"+Math.round(t.h),this.cropFromField.dispatchEvent(new Event(\"change\"))}reset(){this.api.setSelect(this.defaultBox),this.cropFromField.value=`${this.box[0]}x${this.box[1]}`,this.cropSizeField.value=`${this.box[2]}x${this.box[3]-this.box[1]}`}destroy(){return this.api&&this.api.destroy(),this.initialized=!1,!0}bind(){this.dialog.dialog_body.find('button[type=\"submit\"]').click(()=>(Alchemy.setElementDirty(`[data-element-id='${this.elementId}']`),this.dialog.close(),!1)),this.dialog.dialog_body.find('button[type=\"reset\"]').click(()=>(this.reset(),!1))}};var $t=[\"onChange\",\"onClose\",\"onDayCreate\",\"onDestroy\",\"onKeyDown\",\"onMonthChange\",\"onOpen\",\"onParseConfig\",\"onReady\",\"onValueUpdate\",\"onYearChange\",\"onPreCalendarPosition\"],Le={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:\"F j, Y\",altInput:!1,altInputClass:\"form-control input\",animate:typeof window==\"object\"&&window.navigator.userAgent.indexOf(\"MSIE\")===-1,ariaDateFormat:\"F j, Y\",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:\", \",dateFormat:\"Y-m-d\",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(n){return typeof console<\"u\"&&console.warn(n)},getWeek:function(n){var t=new Date(n.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var e=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-e.getTime())/864e5-3+(e.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:\"default\",minuteIncrement:5,mode:\"single\",monthSelectorType:\"dropdown\",nextArrow:\"\",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:\"auto\",positionElement:void 0,prevArrow:\"\",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};var Ut={weekdays:{shorthand:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],longhand:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},months:{shorthand:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],longhand:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(n){var t=n%100;if(t>3&&t<21)return\"th\";switch(t%10){case 1:return\"st\";case 2:return\"nd\";case 3:return\"rd\";default:return\"th\"}},rangeSeparator:\" to \",weekAbbreviation:\"Wk\",scrollTitle:\"Scroll to increment\",toggleTitle:\"Click to toggle\",amPM:[\"AM\",\"PM\"],yearAriaLabel:\"Year\",monthAriaLabel:\"Month\",hourAriaLabel:\"Hour\",minuteAriaLabel:\"Minute\",time_24hr:!1},Jt=Ut;var te=function(n,t){return t===void 0&&(t=2),(\"000\"+n).slice(t*-1)},le=function(n){return n===!0?1:0};function Pn(n,t){var e;return function(){var i=this,a=arguments;clearTimeout(e),e=setTimeout(function(){return n.apply(i,a)},t)}}var Vt=function(n){return n instanceof Array?n:[n]};function ne(n,t,e){if(e===!0)return n.classList.add(t);n.classList.remove(t)}function k(n,t,e){var i=window.document.createElement(n);return t=t||\"\",e=e||\"\",i.className=t,e!==void 0&&(i.textContent=e),i}function gt(n){for(;n.firstChild;)n.removeChild(n.firstChild)}function Ln(n,t){if(t(n))return n;if(n.parentNode)return Ln(n.parentNode,t)}function vt(n,t){var e=k(\"div\",\"numInputWrapper\"),i=k(\"input\",\"numInput \"+n),a=k(\"span\",\"arrowUp\"),l=k(\"span\",\"arrowDown\");if(navigator.userAgent.indexOf(\"MSIE 9.0\")===-1?i.type=\"number\":(i.type=\"text\",i.pattern=\"\\\\d*\"),t!==void 0)for(var u in t)i.setAttribute(u,t[u]);return e.appendChild(i),e.appendChild(a),e.appendChild(l),e}function se(n){try{if(typeof n.composedPath==\"function\"){var t=n.composedPath();return t[0]}return n.target}catch{return n.target}}var Hn=function(){},bt=function(n,t,e){return e.months[t?\"shorthand\":\"longhand\"][n]},Hi={D:Hn,F:function(n,t,e){n.setMonth(e.months.longhand.indexOf(t))},G:function(n,t){n.setHours((n.getHours()>=12?12:0)+parseFloat(t))},H:function(n,t){n.setHours(parseFloat(t))},J:function(n,t){n.setDate(parseFloat(t))},K:function(n,t,e){n.setHours(n.getHours()%12+12*le(new RegExp(e.amPM[1],\"i\").test(t)))},M:function(n,t,e){n.setMonth(e.months.shorthand.indexOf(t))},S:function(n,t){n.setSeconds(parseFloat(t))},U:function(n,t){return new Date(parseFloat(t)*1e3)},W:function(n,t,e){var i=parseInt(t),a=new Date(n.getFullYear(),0,2+(i-1)*7,0,0,0,0);return a.setDate(a.getDate()-a.getDay()+e.firstDayOfWeek),a},Y:function(n,t){n.setFullYear(parseFloat(t))},Z:function(n,t){return new Date(t)},d:function(n,t){n.setDate(parseFloat(t))},h:function(n,t){n.setHours((n.getHours()>=12?12:0)+parseFloat(t))},i:function(n,t){n.setMinutes(parseFloat(t))},j:function(n,t){n.setDate(parseFloat(t))},l:Hn,m:function(n,t){n.setMonth(parseFloat(t)-1)},n:function(n,t){n.setMonth(parseFloat(t)-1)},s:function(n,t){n.setSeconds(parseFloat(t))},u:function(n,t){return new Date(parseFloat(t))},w:Hn,y:function(n,t){n.setFullYear(2e3+parseFloat(t))}},Ae={D:\"\",F:\"\",G:\"(\\\\d\\\\d|\\\\d)\",H:\"(\\\\d\\\\d|\\\\d)\",J:\"(\\\\d\\\\d|\\\\d)\\\\w+\",K:\"\",M:\"\",S:\"(\\\\d\\\\d|\\\\d)\",U:\"(.+)\",W:\"(\\\\d\\\\d|\\\\d)\",Y:\"(\\\\d{4})\",Z:\"(.+)\",d:\"(\\\\d\\\\d|\\\\d)\",h:\"(\\\\d\\\\d|\\\\d)\",i:\"(\\\\d\\\\d|\\\\d)\",j:\"(\\\\d\\\\d|\\\\d)\",l:\"\",m:\"(\\\\d\\\\d|\\\\d)\",n:\"(\\\\d\\\\d|\\\\d)\",s:\"(\\\\d\\\\d|\\\\d)\",u:\"(.+)\",w:\"(\\\\d\\\\d|\\\\d)\",y:\"(\\\\d{2})\"},Ze={Z:function(n){return n.toISOString()},D:function(n,t,e){return t.weekdays.shorthand[Ze.w(n,t,e)]},F:function(n,t,e){return bt(Ze.n(n,t,e)-1,!1,t)},G:function(n,t,e){return te(Ze.h(n,t,e))},H:function(n){return te(n.getHours())},J:function(n,t){return t.ordinal!==void 0?n.getDate()+t.ordinal(n.getDate()):n.getDate()},K:function(n,t){return t.amPM[le(n.getHours()>11)]},M:function(n,t){return bt(n.getMonth(),!0,t)},S:function(n){return te(n.getSeconds())},U:function(n){return n.getTime()/1e3},W:function(n,t,e){return e.getWeek(n)},Y:function(n){return te(n.getFullYear(),4)},d:function(n){return te(n.getDate())},h:function(n){return n.getHours()%12?n.getHours()%12:12},i:function(n){return te(n.getMinutes())},j:function(n){return n.getDate()},l:function(n,t){return t.weekdays.longhand[n.getDay()]},m:function(n){return te(n.getMonth()+1)},n:function(n){return n.getMonth()+1},s:function(n){return n.getSeconds()},u:function(n){return n.getTime()},w:function(n){return n.getDay()},y:function(n){return String(n.getFullYear()).substring(2)}};var Yn=function(n){var t=n.config,e=t===void 0?Le:t,i=n.l10n,a=i===void 0?Ut:i,l=n.isMobile,u=l===void 0?!1:l;return function(c,f,p){var v=p||a;return e.formatDate!==void 0&&!u?e.formatDate(c,f,v):f.split(\"\").map(function(g,E,_){return Ze[g]&&_[E-1]!==\"\\\\\"?Ze[g](c,v,e):g!==\"\\\\\"?g:\"\"}).join(\"\")}},Zt=function(n){var t=n.config,e=t===void 0?Le:t,i=n.l10n,a=i===void 0?Ut:i;return function(l,u,c,f){if(!(l!==0&&!l)){var p=f||a,v,g=l;if(l instanceof Date)v=new Date(l.getTime());else if(typeof l!=\"string\"&&l.toFixed!==void 0)v=new Date(l);else if(typeof l==\"string\"){var E=u||(e||Le).dateFormat,_=String(l).trim();if(_===\"today\")v=new Date,c=!0;else if(e&&e.parseDate)v=e.parseDate(l,E);else if(/Z$/.test(_)||/GMT$/.test(_))v=new Date(l);else{for(var I=void 0,y=[],B=0,J=0,P=\"\";BMath.min(t,e)&&n=0?new Date:new Date(e.config.minDate.getTime()),s=en(e.config);o.setHours(s.hours,s.minutes,s.seconds,o.getMilliseconds()),e.selectedDates=[o],e.latestSelectedDateObj=o}r!==void 0&&r.type!==\"blur\"&&lr(r);var d=e._input.value;g(),_e(),e._input.value!==d&&e._debouncedChange()}function p(r,o){return r%12+12*le(o===e.l10n.amPM[1])}function v(r){switch(r%24){case 0:case 12:return 12;default:return r%12}}function g(){if(!(e.hourElement===void 0||e.minuteElement===void 0)){var r=(parseInt(e.hourElement.value.slice(-2),10)||0)%24,o=(parseInt(e.minuteElement.value,10)||0)%60,s=e.secondElement!==void 0?(parseInt(e.secondElement.value,10)||0)%60:0;e.amPM!==void 0&&(r=p(r,e.amPM.textContent));var d=e.config.minTime!==void 0||e.config.minDate&&e.minDateHasTime&&e.latestSelectedDateObj&&ue(e.latestSelectedDateObj,e.config.minDate,!0)===0,h=e.config.maxTime!==void 0||e.config.maxDate&&e.maxDateHasTime&&e.latestSelectedDateObj&&ue(e.latestSelectedDateObj,e.config.maxDate,!0)===0;if(e.config.maxTime!==void 0&&e.config.minTime!==void 0&&e.config.minTime>e.config.maxTime){var b=Qt(e.config.minTime.getHours(),e.config.minTime.getMinutes(),e.config.minTime.getSeconds()),T=Qt(e.config.maxTime.getHours(),e.config.maxTime.getMinutes(),e.config.maxTime.getSeconds()),w=Qt(r,o,s);if(w>T&&w=12)]),e.secondElement!==void 0&&(e.secondElement.value=te(s)))}function I(r){var o=se(r),s=parseInt(o.value)+(r.delta||0);(s/1e3>1||r.key===\"Enter\"&&!/[^\\d]/.test(s.toString()))&&wt(s)}function y(r,o,s,d){if(o instanceof Array)return o.forEach(function(h){return y(r,h,s,d)});if(r instanceof Array)return r.forEach(function(h){return y(h,o,s,d)});r.addEventListener(o,s,d),e._handlers.push({remove:function(){return r.removeEventListener(o,s,d)}})}function B(){j(\"onChange\")}function J(){if(e.config.wrap&&[\"open\",\"close\",\"toggle\",\"clear\"].forEach(function(s){Array.prototype.forEach.call(e.element.querySelectorAll(\"[data-\"+s+\"]\"),function(d){return y(d,\"click\",e[s])})}),e.isMobile){ir();return}var r=Pn($i,50);if(e._debouncedChange=Pn(B,La),e.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&y(e.daysContainer,\"mouseover\",function(s){e.config.mode===\"range\"&&St(se(s))}),y(e._input,\"keydown\",Wn),e.calendarContainer!==void 0&&y(e.calendarContainer,\"keydown\",Wn),!e.config.inline&&!e.config.static&&y(window,\"resize\",r),window.ontouchstart!==void 0?y(window.document,\"touchstart\",rn):y(window.document,\"mousedown\",rn),y(window.document,\"focus\",rn,{capture:!0}),e.config.clickOpens===!0&&(y(e._input,\"focus\",e.open),y(e._input,\"click\",e.open)),e.daysContainer!==void 0&&(y(e.monthNav,\"click\",or),y(e.monthNav,[\"keyup\",\"increment\"],I),y(e.daysContainer,\"click\",Gn)),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0){var o=function(s){return se(s).select()};y(e.timeContainer,[\"increment\"],f),y(e.timeContainer,\"blur\",f,{capture:!0}),y(e.timeContainer,\"click\",q),y([e.hourElement,e.minuteElement],[\"focus\",\"click\"],o),e.secondElement!==void 0&&y(e.secondElement,\"focus\",function(){return e.secondElement&&e.secondElement.select()}),e.amPM!==void 0&&y(e.amPM,\"click\",function(s){f(s)})}e.config.allowInput&&y(e._input,\"blur\",Gi)}function P(r,o){var s=r!==void 0?e.parseDate(r):e.latestSelectedDateObj||(e.config.minDate&&e.config.minDate>e.now?e.config.minDate:e.config.maxDate&&e.config.maxDate1),e.calendarContainer.appendChild(r);var h=e.config.appendTo!==void 0&&e.config.appendTo.nodeType!==void 0;if((e.config.inline||e.config.static)&&(e.calendarContainer.classList.add(e.config.inline?\"inline\":\"static\"),e.config.inline&&(!h&&e.element.parentNode?e.element.parentNode.insertBefore(e.calendarContainer,e._input.nextSibling):e.config.appendTo!==void 0&&e.config.appendTo.appendChild(e.calendarContainer)),e.config.static)){var b=k(\"div\",\"flatpickr-wrapper\");e.element.parentNode&&e.element.parentNode.insertBefore(b,e.element),b.appendChild(e.element),e.altInput&&b.appendChild(e.altInput),b.appendChild(e.calendarContainer)}!e.config.static&&!e.config.inline&&(e.config.appendTo!==void 0?e.config.appendTo:window.document.body).appendChild(e.calendarContainer)}function A(r,o,s,d){var h=He(o,!0),b=k(\"span\",r,o.getDate().toString());return b.dateObj=o,b.$i=d,b.setAttribute(\"aria-label\",e.formatDate(o,e.config.ariaDateFormat)),r.indexOf(\"hidden\")===-1&&ue(o,e.now)===0&&(e.todayDateElem=b,b.classList.add(\"today\"),b.setAttribute(\"aria-current\",\"date\")),h?(b.tabIndex=-1,ln(o)&&(b.classList.add(\"selected\"),e.selectedDateElem=b,e.config.mode===\"range\"&&(ne(b,\"startRange\",e.selectedDates[0]&&ue(o,e.selectedDates[0],!0)===0),ne(b,\"endRange\",e.selectedDates[1]&&ue(o,e.selectedDates[1],!0)===0),r===\"nextMonthDay\"&&b.classList.add(\"inRange\")))):b.classList.add(\"flatpickr-disabled\"),e.config.mode===\"range\"&&ar(o)&&!ln(o)&&b.classList.add(\"inRange\"),e.weekNumbers&&e.config.showMonths===1&&r!==\"prevMonthDay\"&&d%7===6&&e.weekNumbers.insertAdjacentHTML(\"beforeend\",\"\"+e.config.getWeek(o)+\"\"),j(\"onDayCreate\",b),b}function Y(r){r.focus(),e.config.mode===\"range\"&&St(r)}function V(r){for(var o=r>0?0:e.config.showMonths-1,s=r>0?e.config.showMonths:-1,d=o;d!=s;d+=r)for(var h=e.daysContainer.children[d],b=r>0?0:h.children.length-1,T=r>0?h.children.length:-1,w=b;w!=T;w+=r){var O=h.children[w];if(O.className.indexOf(\"hidden\")===-1&&He(O.dateObj))return O}}function K(r,o){for(var s=r.className.indexOf(\"Month\")===-1?r.dateObj.getMonth():e.currentMonth,d=o>0?e.config.showMonths:-1,h=o>0?1:-1,b=s-e.currentMonth;b!=d;b+=h)for(var T=e.daysContainer.children[b],w=s-e.currentMonth===b?r.$i+o:o<0?T.children.length-1:0,O=T.children.length,D=w;D>=0&&D0?O:-1);D+=h){var M=T.children[D];if(M.className.indexOf(\"hidden\")===-1&&He(M.dateObj)&&Math.abs(r.$i-D)>=Math.abs(o))return Y(M)}e.changeMonth(h),me(V(h),0)}function me(r,o){var s=l(),d=Et(s||document.body),h=r!==void 0?r:d?s:e.selectedDateElem!==void 0&&Et(e.selectedDateElem)?e.selectedDateElem:e.todayDateElem!==void 0&&Et(e.todayDateElem)?e.todayDateElem:V(o>0?1:-1);h===void 0?e._input.focus():d?K(h,o):Y(h)}function ve(r,o){for(var s=(new Date(r,o,1).getDay()-e.l10n.firstDayOfWeek+7)%7,d=e.utils.getDaysInMonth((o-1+12)%12,r),h=e.utils.getDaysInMonth(o,r),b=window.document.createDocumentFragment(),T=e.config.showMonths>1,w=T?\"prevMonthDay hidden\":\"prevMonthDay\",O=T?\"nextMonthDay hidden\":\"nextMonthDay\",D=d+1-s,M=0;D<=d;D++,M++)b.appendChild(A(\"flatpickr-day \"+w,new Date(r,o-1,D),D,M));for(D=1;D<=h;D++,M++)b.appendChild(A(\"flatpickr-day\",new Date(r,o,D),D,M));for(var L=h+1;L<=42-s&&(e.config.showMonths===1||M%7!==0);L++,M++)b.appendChild(A(\"flatpickr-day \"+O,new Date(r,o+1,L%h),L,M));var De=k(\"div\",\"dayContainer\");return De.appendChild(b),De}function be(){if(e.daysContainer!==void 0){gt(e.daysContainer),e.weekNumbers&>(e.weekNumbers);for(var r=document.createDocumentFragment(),o=0;o1||e.config.monthSelectorType!==\"dropdown\")){var r=function(d){return e.config.minDate!==void 0&&e.currentYear===e.config.minDate.getFullYear()&&de.config.maxDate.getMonth())};e.monthsDropdownContainer.tabIndex=-1,e.monthsDropdownContainer.innerHTML=\"\";for(var o=0;o<12;o++)if(r(o)){var s=k(\"option\",\"flatpickr-monthDropdown-month\");s.value=new Date(e.currentYear,o).getMonth().toString(),s.textContent=bt(o,e.config.shorthandCurrentMonth,e.l10n),s.tabIndex=-1,e.currentMonth===o&&(s.selected=!0),e.monthsDropdownContainer.appendChild(s)}}}function Me(){var r=k(\"div\",\"flatpickr-month\"),o=window.document.createDocumentFragment(),s;e.config.showMonths>1||e.config.monthSelectorType===\"static\"?s=k(\"span\",\"cur-month\"):(e.monthsDropdownContainer=k(\"select\",\"flatpickr-monthDropdown-months\"),e.monthsDropdownContainer.setAttribute(\"aria-label\",e.l10n.monthAriaLabel),y(e.monthsDropdownContainer,\"change\",function(T){var w=se(T),O=parseInt(w.value,10);e.changeMonth(O-e.currentMonth),j(\"onMonthChange\")}),Q(),s=e.monthsDropdownContainer);var d=vt(\"cur-year\",{tabindex:\"-1\"}),h=d.getElementsByTagName(\"input\")[0];h.setAttribute(\"aria-label\",e.l10n.yearAriaLabel),e.config.minDate&&h.setAttribute(\"min\",e.config.minDate.getFullYear().toString()),e.config.maxDate&&(h.setAttribute(\"max\",e.config.maxDate.getFullYear().toString()),h.disabled=!!e.config.minDate&&e.config.minDate.getFullYear()===e.config.maxDate.getFullYear());var b=k(\"div\",\"flatpickr-current-month\");return b.appendChild(s),b.appendChild(d),o.appendChild(b),r.appendChild(o),{container:r,yearElement:h,monthElement:s}}function Oe(){gt(e.monthNav),e.monthNav.appendChild(e.prevMonthNav),e.config.showMonths&&(e.yearElements=[],e.monthElements=[]);for(var r=e.config.showMonths;r--;){var o=Me();e.yearElements.push(o.yearElement),e.monthElements.push(o.monthElement),e.monthNav.appendChild(o.container)}e.monthNav.appendChild(e.nextMonthNav)}function ye(){return e.monthNav=k(\"div\",\"flatpickr-months\"),e.yearElements=[],e.monthElements=[],e.prevMonthNav=k(\"span\",\"flatpickr-prev-month\"),e.prevMonthNav.innerHTML=e.config.prevArrow,e.nextMonthNav=k(\"span\",\"flatpickr-next-month\"),e.nextMonthNav.innerHTML=e.config.nextArrow,Oe(),Object.defineProperty(e,\"_hidePrevMonthArrow\",{get:function(){return e.__hidePrevMonthArrow},set:function(r){e.__hidePrevMonthArrow!==r&&(ne(e.prevMonthNav,\"flatpickr-disabled\",r),e.__hidePrevMonthArrow=r)}}),Object.defineProperty(e,\"_hideNextMonthArrow\",{get:function(){return e.__hideNextMonthArrow},set:function(r){e.__hideNextMonthArrow!==r&&(ne(e.nextMonthNav,\"flatpickr-disabled\",r),e.__hideNextMonthArrow=r)}}),e.currentYearElement=e.yearElements[0],_t(),e.monthNav}function We(){e.calendarContainer.classList.add(\"hasTime\"),e.config.noCalendar&&e.calendarContainer.classList.add(\"noCalendar\");var r=en(e.config);e.timeContainer=k(\"div\",\"flatpickr-time\"),e.timeContainer.tabIndex=-1;var o=k(\"span\",\"flatpickr-time-separator\",\":\"),s=vt(\"flatpickr-hour\",{\"aria-label\":e.l10n.hourAriaLabel});e.hourElement=s.getElementsByTagName(\"input\")[0];var d=vt(\"flatpickr-minute\",{\"aria-label\":e.l10n.minuteAriaLabel});if(e.minuteElement=d.getElementsByTagName(\"input\")[0],e.hourElement.tabIndex=e.minuteElement.tabIndex=-1,e.hourElement.value=te(e.latestSelectedDateObj?e.latestSelectedDateObj.getHours():e.config.time_24hr?r.hours:v(r.hours)),e.minuteElement.value=te(e.latestSelectedDateObj?e.latestSelectedDateObj.getMinutes():r.minutes),e.hourElement.setAttribute(\"step\",e.config.hourIncrement.toString()),e.minuteElement.setAttribute(\"step\",e.config.minuteIncrement.toString()),e.hourElement.setAttribute(\"min\",e.config.time_24hr?\"0\":\"1\"),e.hourElement.setAttribute(\"max\",e.config.time_24hr?\"23\":\"12\"),e.hourElement.setAttribute(\"maxlength\",\"2\"),e.minuteElement.setAttribute(\"min\",\"0\"),e.minuteElement.setAttribute(\"max\",\"59\"),e.minuteElement.setAttribute(\"maxlength\",\"2\"),e.timeContainer.appendChild(s),e.timeContainer.appendChild(o),e.timeContainer.appendChild(d),e.config.time_24hr&&e.timeContainer.classList.add(\"time24hr\"),e.config.enableSeconds){e.timeContainer.classList.add(\"hasSeconds\");var h=vt(\"flatpickr-second\");e.secondElement=h.getElementsByTagName(\"input\")[0],e.secondElement.value=te(e.latestSelectedDateObj?e.latestSelectedDateObj.getSeconds():r.seconds),e.secondElement.setAttribute(\"step\",e.minuteElement.getAttribute(\"step\")),e.secondElement.setAttribute(\"min\",\"0\"),e.secondElement.setAttribute(\"max\",\"59\"),e.secondElement.setAttribute(\"maxlength\",\"2\"),e.timeContainer.appendChild(k(\"span\",\"flatpickr-time-separator\",\":\")),e.timeContainer.appendChild(h)}return e.config.time_24hr||(e.amPM=k(\"span\",\"flatpickr-am-pm\",e.l10n.amPM[le((e.latestSelectedDateObj?e.hourElement.value:e.config.defaultHour)>11)]),e.amPM.title=e.l10n.toggleTitle,e.amPM.tabIndex=-1,e.timeContainer.appendChild(e.amPM)),e.timeContainer}function Fe(){e.weekdayContainer?gt(e.weekdayContainer):e.weekdayContainer=k(\"div\",\"flatpickr-weekdays\");for(var r=e.config.showMonths;r--;){var o=k(\"div\",\"flatpickr-weekdaycontainer\");e.weekdayContainer.appendChild(o)}return Dt(),e.weekdayContainer}function Dt(){if(e.weekdayContainer){var r=e.l10n.firstDayOfWeek,o=Bi(e.l10n.weekdays.shorthand);r>0&&r\n `+o.join(\"\")+`\n \n `}}function Bn(){e.calendarContainer.classList.add(\"hasWeeks\");var r=k(\"div\",\"flatpickr-weekwrapper\");r.appendChild(k(\"span\",\"flatpickr-weekday\",e.l10n.weekAbbreviation));var o=k(\"div\",\"flatpickr-weeks\");return r.appendChild(o),{weekWrapper:r,weekNumbers:o}}function ze(r,o){o===void 0&&(o=!0);var s=o?r:r-e.currentMonth;s<0&&e._hidePrevMonthArrow===!0||s>0&&e._hideNextMonthArrow===!0||(e.currentMonth+=s,(e.currentMonth<0||e.currentMonth>11)&&(e.currentYear+=e.currentMonth>11?1:-1,e.currentMonth=(e.currentMonth+12)%12,j(\"onYearChange\"),Q()),be(),j(\"onMonthChange\"),_t())}function nn(r,o){if(r===void 0&&(r=!0),o===void 0&&(o=!0),e.input.value=\"\",e.altInput!==void 0&&(e.altInput.value=\"\"),e.mobileInput!==void 0&&(e.mobileInput.value=\"\"),e.selectedDates=[],e.latestSelectedDateObj=void 0,o===!0&&(e.currentYear=e._initialDate.getFullYear(),e.currentMonth=e._initialDate.getMonth()),e.config.enableTime===!0){var s=en(e.config),d=s.hours,h=s.minutes,b=s.seconds;_(d,h,b)}e.redraw(),r&&j(\"onChange\")}function Ki(){e.isOpen=!1,e.isMobile||(e.calendarContainer!==void 0&&e.calendarContainer.classList.remove(\"open\"),e._input!==void 0&&e._input.classList.remove(\"active\")),j(\"onClose\")}function Xi(){e.config!==void 0&&j(\"onDestroy\");for(var r=e._handlers.length;r--;)e._handlers[r].remove();if(e._handlers=[],e.mobileInput)e.mobileInput.parentNode&&e.mobileInput.parentNode.removeChild(e.mobileInput),e.mobileInput=void 0;else if(e.calendarContainer&&e.calendarContainer.parentNode)if(e.config.static&&e.calendarContainer.parentNode){var o=e.calendarContainer.parentNode;if(o.lastChild&&o.removeChild(o.lastChild),o.parentNode){for(;o.firstChild;)o.parentNode.insertBefore(o.firstChild,o);o.parentNode.removeChild(o)}}else e.calendarContainer.parentNode.removeChild(e.calendarContainer);e.altInput&&(e.input.type=\"text\",e.altInput.parentNode&&e.altInput.parentNode.removeChild(e.altInput),delete e.altInput),e.input&&(e.input.type=e.input._type,e.input.classList.remove(\"flatpickr-input\"),e.input.removeAttribute(\"readonly\")),[\"_showTimeInput\",\"latestSelectedDateObj\",\"_hideNextMonthArrow\",\"_hidePrevMonthArrow\",\"__hideNextMonthArrow\",\"__hidePrevMonthArrow\",\"isMobile\",\"isOpen\",\"selectedDateElem\",\"minDateHasTime\",\"maxDateHasTime\",\"days\",\"daysContainer\",\"_input\",\"_positionElement\",\"innerContainer\",\"rContainer\",\"monthNav\",\"todayDateElem\",\"calendarContainer\",\"weekdayContainer\",\"prevMonthNav\",\"nextMonthNav\",\"monthsDropdownContainer\",\"currentMonthElement\",\"currentYearElement\",\"navigationCurrentMonth\",\"selectedDateElem\",\"config\"].forEach(function(s){try{delete e[s]}catch{}})}function et(r){return e.calendarContainer.contains(r)}function rn(r){if(e.isOpen&&!e.config.inline){var o=se(r),s=et(o),d=o===e.input||o===e.altInput||e.element.contains(o)||r.path&&r.path.indexOf&&(~r.path.indexOf(e.input)||~r.path.indexOf(e.altInput)),h=!d&&!s&&!et(r.relatedTarget),b=!e.config.ignoredFocusElements.some(function(T){return T.contains(o)});h&&b&&(e.config.allowInput&&e.setDate(e._input.value,!1,e.config.altInput?e.config.altFormat:e.config.dateFormat),e.timeContainer!==void 0&&e.minuteElement!==void 0&&e.hourElement!==void 0&&e.input.value!==\"\"&&e.input.value!==void 0&&f(),e.close(),e.config&&e.config.mode===\"range\"&&e.selectedDates.length===1&&e.clear(!1))}}function wt(r){if(!(!r||e.config.minDate&&re.config.maxDate.getFullYear())){var o=r,s=e.currentYear!==o;e.currentYear=o||e.currentYear,e.config.maxDate&&e.currentYear===e.config.maxDate.getFullYear()?e.currentMonth=Math.min(e.config.maxDate.getMonth(),e.currentMonth):e.config.minDate&&e.currentYear===e.config.minDate.getFullYear()&&(e.currentMonth=Math.max(e.config.minDate.getMonth(),e.currentMonth)),s&&(e.redraw(),j(\"onYearChange\"),Q())}}function He(r,o){var s;o===void 0&&(o=!0);var d=e.parseDate(r,void 0,o);if(e.config.minDate&&d&&ue(d,e.config.minDate,o!==void 0?o:!e.minDateHasTime)<0||e.config.maxDate&&d&&ue(d,e.config.maxDate,o!==void 0?o:!e.maxDateHasTime)>0)return!1;if(!e.config.enable&&e.config.disable.length===0)return!0;if(d===void 0)return!1;for(var h=!!e.config.enable,b=(s=e.config.enable)!==null&&s!==void 0?s:e.config.disable,T=0,w=void 0;T=w.from.getTime()&&d.getTime()<=w.to.getTime())return h}return!h}function Et(r){return e.daysContainer!==void 0?r.className.indexOf(\"hidden\")===-1&&r.className.indexOf(\"flatpickr-disabled\")===-1&&e.daysContainer.contains(r):!1}function Gi(r){var o=r.target===e._input,s=e._input.value.trimEnd()!==sn();o&&s&&!(r.relatedTarget&&et(r.relatedTarget))&&e.setDate(e._input.value,!0,r.target===e.altInput?e.config.altFormat:e.config.dateFormat)}function Wn(r){var o=se(r),s=e.config.wrap?n.contains(o):o===e._input,d=e.config.allowInput,h=e.isOpen&&(!d||!s),b=e.config.inline&&s&&!d;if(r.keyCode===13&&s){if(d)return e.setDate(e._input.value,!0,o===e.altInput?e.config.altFormat:e.config.dateFormat),e.close(),o.blur();e.open()}else if(et(o)||h||b){var T=!!e.timeContainer&&e.timeContainer.contains(o);switch(r.keyCode){case 13:T?(r.preventDefault(),f(),an()):Gn(r);break;case 27:r.preventDefault(),an();break;case 8:case 46:s&&!e.config.allowInput&&(r.preventDefault(),e.clear());break;case 37:case 39:if(!T&&!s){r.preventDefault();var w=l();if(e.daysContainer!==void 0&&(d===!1||w&&Et(w))){var O=r.keyCode===39?1:-1;r.ctrlKey?(r.stopPropagation(),ze(O),me(V(1),0)):me(void 0,O)}}else e.hourElement&&e.hourElement.focus();break;case 38:case 40:r.preventDefault();var D=r.keyCode===40?1:-1;e.daysContainer&&o.$i!==void 0||o===e.input||o===e.altInput?r.ctrlKey?(r.stopPropagation(),wt(e.currentYear-D),me(V(1),0)):T||me(void 0,D*7):o===e.currentYearElement?wt(e.currentYear-D):e.config.enableTime&&(!T&&e.hourElement&&e.hourElement.focus(),f(r),e._debouncedChange());break;case 9:if(T){var M=[e.hourElement,e.minuteElement,e.secondElement,e.amPM].concat(e.pluginElements).filter(function(ce){return ce}),L=M.indexOf(o);if(L!==-1){var De=M[L+(r.shiftKey?-1:1)];r.preventDefault(),(De||e._input).focus()}}else!e.config.noCalendar&&e.daysContainer&&e.daysContainer.contains(o)&&r.shiftKey&&(r.preventDefault(),e._input.focus());break;default:break}}if(e.amPM!==void 0&&o===e.amPM)switch(r.key){case e.l10n.amPM[0].charAt(0):case e.l10n.amPM[0].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[0],g(),_e();break;case e.l10n.amPM[1].charAt(0):case e.l10n.amPM[1].charAt(0).toLowerCase():e.amPM.textContent=e.l10n.amPM[1],g(),_e();break}(s||et(o))&&j(\"onKeyDown\",r)}function St(r,o){if(o===void 0&&(o=\"flatpickr-day\"),!(e.selectedDates.length!==1||r&&(!r.classList.contains(o)||r.classList.contains(\"flatpickr-disabled\")))){for(var s=r?r.dateObj.getTime():e.days.firstElementChild.dateObj.getTime(),d=e.parseDate(e.selectedDates[0],void 0,!0).getTime(),h=Math.min(s,e.selectedDates[0].getTime()),b=Math.max(s,e.selectedDates[0].getTime()),T=!1,w=0,O=0,D=h;Dh&&Dw)?w=D:D>d&&(!O||D .\"+o));M.forEach(function(L){var De=L.dateObj,ce=De.getTime(),tt=w>0&&ce0&&ce>O;if(tt){L.classList.add(\"notAllowed\"),[\"inRange\",\"startRange\",\"endRange\"].forEach(function(qe){L.classList.remove(qe)});return}else if(T&&!tt)return;[\"startRange\",\"inRange\",\"endRange\",\"notAllowed\"].forEach(function(qe){L.classList.remove(qe)}),r!==void 0&&(r.classList.add(s<=e.selectedDates[0].getTime()?\"startRange\":\"endRange\"),ds&&ce===d&&L.classList.add(\"endRange\"),ce>=w&&(O===0||ce<=O)&&Yi(ce,d,s)&&L.classList.add(\"inRange\"))})}}function $i(){e.isOpen&&!e.config.static&&!e.config.inline&&Ct()}function Ui(r,o){if(o===void 0&&(o=e._positionElement),e.isMobile===!0){if(r){r.preventDefault();var s=se(r);s&&s.blur()}e.mobileInput!==void 0&&(e.mobileInput.focus(),e.mobileInput.click()),j(\"onOpen\");return}else if(e._input.disabled||e.config.inline)return;var d=e.isOpen;e.isOpen=!0,d||(e.calendarContainer.classList.add(\"open\"),e._input.classList.add(\"active\"),j(\"onOpen\"),Ct(o)),e.config.enableTime===!0&&e.config.noCalendar===!0&&e.config.allowInput===!1&&(r===void 0||!e.timeContainer.contains(r.relatedTarget))&&setTimeout(function(){return e.hourElement.select()},50)}function zn(r){return function(o){var s=e.config[\"_\"+r+\"Date\"]=e.parseDate(o,e.config.dateFormat),d=e.config[\"_\"+(r===\"min\"?\"max\":\"min\")+\"Date\"];s!==void 0&&(e[r===\"min\"?\"minDateHasTime\":\"maxDateHasTime\"]=s.getHours()>0||s.getMinutes()>0||s.getSeconds()>0),e.selectedDates&&(e.selectedDates=e.selectedDates.filter(function(h){return He(h)}),!e.selectedDates.length&&r===\"min\"&&E(s),_e()),e.daysContainer&&(Xn(),s!==void 0?e.currentYearElement[r]=s.getFullYear().toString():e.currentYearElement.removeAttribute(r),e.currentYearElement.disabled=!!d&&s!==void 0&&d.getFullYear()===s.getFullYear())}}function Ji(){var r=[\"wrap\",\"weekNumbers\",\"allowInput\",\"allowInvalidPreload\",\"clickOpens\",\"time_24hr\",\"enableTime\",\"noCalendar\",\"altInput\",\"shorthandCurrentMonth\",\"inline\",\"static\",\"enableSeconds\",\"disableMobile\"],o=ie(ie({},JSON.parse(JSON.stringify(n.dataset||{}))),t),s={};e.config.parseDate=o.parseDate,e.config.formatDate=o.formatDate,Object.defineProperty(e.config,\"enable\",{get:function(){return e.config._enable},set:function(M){e.config._enable=Un(M)}}),Object.defineProperty(e.config,\"disable\",{get:function(){return e.config._disable},set:function(M){e.config._disable=Un(M)}});var d=o.mode===\"time\";if(!o.dateFormat&&(o.enableTime||d)){var h=G.defaultConfig.dateFormat||Le.dateFormat;s.dateFormat=o.noCalendar||d?\"H:i\"+(o.enableSeconds?\":S\":\"\"):h+\" H:i\"+(o.enableSeconds?\":S\":\"\")}if(o.altInput&&(o.enableTime||d)&&!o.altFormat){var b=G.defaultConfig.altFormat||Le.altFormat;s.altFormat=o.noCalendar||d?\"h:i\"+(o.enableSeconds?\":S K\":\" K\"):b+(\" h:i\"+(o.enableSeconds?\":S\":\"\")+\" K\")}Object.defineProperty(e.config,\"minDate\",{get:function(){return e.config._minDate},set:zn(\"min\")}),Object.defineProperty(e.config,\"maxDate\",{get:function(){return e.config._maxDate},set:zn(\"max\")});var T=function(M){return function(L){e.config[M===\"min\"?\"_minTime\":\"_maxTime\"]=e.parseDate(L,\"H:i:S\")}};Object.defineProperty(e.config,\"minTime\",{get:function(){return e.config._minTime},set:T(\"min\")}),Object.defineProperty(e.config,\"maxTime\",{get:function(){return e.config._maxTime},set:T(\"max\")}),o.mode===\"time\"&&(e.config.noCalendar=!0,e.config.enableTime=!0),Object.assign(e.config,s,o);for(var w=0;w-1?e.config[D]=Vt(O[D]).map(u).concat(e.config[D]):typeof o[D]>\"u\"&&(e.config[D]=O[D])}o.altInputClass||(e.config.altInputClass=qn().className+\" \"+e.config.altInputClass),j(\"onParseConfig\")}function qn(){return e.config.wrap?n.querySelector(\"[data-input]\"):n}function Kn(){typeof e.config.locale!=\"object\"&&typeof G.l10ns[e.config.locale]>\"u\"&&e.config.errorHandler(new Error(\"flatpickr: invalid locale \"+e.config.locale)),e.l10n=ie(ie({},G.l10ns.default),typeof e.config.locale==\"object\"?e.config.locale:e.config.locale!==\"default\"?G.l10ns[e.config.locale]:void 0),Ae.D=\"(\"+e.l10n.weekdays.shorthand.join(\"|\")+\")\",Ae.l=\"(\"+e.l10n.weekdays.longhand.join(\"|\")+\")\",Ae.M=\"(\"+e.l10n.months.shorthand.join(\"|\")+\")\",Ae.F=\"(\"+e.l10n.months.longhand.join(\"|\")+\")\",Ae.K=\"(\"+e.l10n.amPM[0]+\"|\"+e.l10n.amPM[1]+\"|\"+e.l10n.amPM[0].toLowerCase()+\"|\"+e.l10n.amPM[1].toLowerCase()+\")\";var r=ie(ie({},t),JSON.parse(JSON.stringify(n.dataset||{})));r.time_24hr===void 0&&G.defaultConfig.time_24hr===void 0&&(e.config.time_24hr=e.l10n.time_24hr),e.formatDate=Yn(e),e.parseDate=Zt({config:e.config,l10n:e.l10n})}function Ct(r){if(typeof e.config.position==\"function\")return void e.config.position(e,r);if(e.calendarContainer!==void 0){j(\"onPreCalendarPosition\");var o=r||e._positionElement,s=Array.prototype.reduce.call(e.calendarContainer.children,function(mr,gr){return mr+gr.offsetHeight},0),d=e.calendarContainer.offsetWidth,h=e.config.position.split(\" \"),b=h[0],T=h.length>1?h[1]:null,w=o.getBoundingClientRect(),O=window.innerHeight-w.bottom,D=b===\"above\"||b!==\"below\"&&Os,M=window.pageYOffset+w.top+(D?-s-2:o.offsetHeight+2);if(ne(e.calendarContainer,\"arrowTop\",!D),ne(e.calendarContainer,\"arrowBottom\",D),!e.config.inline){var L=window.pageXOffset+w.left,De=!1,ce=!1;T===\"center\"?(L-=(d-w.width)/2,De=!0):T===\"right\"&&(L-=d-w.width,ce=!0),ne(e.calendarContainer,\"arrowLeft\",!De&&!ce),ne(e.calendarContainer,\"arrowCenter\",De),ne(e.calendarContainer,\"arrowRight\",ce);var tt=window.document.body.offsetWidth-(window.pageXOffset+w.right),qe=L+d>window.document.body.offsetWidth,sr=tt+d>window.document.body.offsetWidth;if(ne(e.calendarContainer,\"rightMost\",qe),!e.config.static)if(e.calendarContainer.style.top=M+\"px\",!qe)e.calendarContainer.style.left=L+\"px\",e.calendarContainer.style.right=\"auto\";else if(!sr)e.calendarContainer.style.left=\"auto\",e.calendarContainer.style.right=tt+\"px\";else{var un=Vi();if(un===void 0)return;var ur=window.document.body.offsetWidth,cr=Math.max(0,ur/2-d/2),dr=\".flatpickr-calendar.centerMost:before\",fr=\".flatpickr-calendar.centerMost:after\",pr=un.cssRules.length,hr=\"{left:\"+w.left+\"px;right:auto;}\";ne(e.calendarContainer,\"rightMost\",!1),ne(e.calendarContainer,\"centerMost\",!0),un.insertRule(dr+\",\"+fr+hr,pr),e.calendarContainer.style.left=cr+\"px\",e.calendarContainer.style.right=\"auto\"}}}}function Vi(){for(var r=null,o=0;oe.currentMonth+e.config.showMonths-1)&&e.config.mode!==\"range\";if(e.selectedDateElem=d,e.config.mode===\"single\")e.selectedDates=[h];else if(e.config.mode===\"multiple\"){var T=ln(h);T?e.selectedDates.splice(parseInt(T),1):e.selectedDates.push(h)}else e.config.mode===\"range\"&&(e.selectedDates.length===2&&e.clear(!1,!1),e.latestSelectedDateObj=h,e.selectedDates.push(h),ue(h,e.selectedDates[0],!0)!==0&&e.selectedDates.sort(function(M,L){return M.getTime()-L.getTime()}));if(g(),b){var w=e.currentYear!==h.getFullYear();e.currentYear=h.getFullYear(),e.currentMonth=h.getMonth(),w&&(j(\"onYearChange\"),Q()),j(\"onMonthChange\")}if(_t(),be(),_e(),!b&&e.config.mode!==\"range\"&&e.config.showMonths===1?Y(d):e.selectedDateElem!==void 0&&e.hourElement===void 0&&e.selectedDateElem&&e.selectedDateElem.focus(),e.hourElement!==void 0&&e.hourElement!==void 0&&e.hourElement.focus(),e.config.closeOnSelect){var O=e.config.mode===\"single\"&&!e.config.enableTime,D=e.config.mode===\"range\"&&e.selectedDates.length===2&&!e.config.enableTime;(O||D)&&an()}B()}}var Mt={locale:[Kn,Dt],showMonths:[Oe,c,Fe],minDate:[P],maxDate:[P],positionElement:[Jn],clickOpens:[function(){e.config.clickOpens===!0?(y(e._input,\"focus\",e.open),y(e._input,\"click\",e.open)):(e._input.removeEventListener(\"focus\",e.open),e._input.removeEventListener(\"click\",e.open))}]};function Qi(r,o){if(r!==null&&typeof r==\"object\"){Object.assign(e.config,r);for(var s in r)Mt[s]!==void 0&&Mt[s].forEach(function(d){return d()})}else e.config[r]=o,Mt[r]!==void 0?Mt[r].forEach(function(d){return d()}):$t.indexOf(r)>-1&&(e.config[r]=Vt(o));e.redraw(),_e(!0)}function $n(r,o){var s=[];if(r instanceof Array)s=r.map(function(d){return e.parseDate(d,o)});else if(r instanceof Date||typeof r==\"number\")s=[e.parseDate(r,o)];else if(typeof r==\"string\")switch(e.config.mode){case\"single\":case\"time\":s=[e.parseDate(r,o)];break;case\"multiple\":s=r.split(e.config.conjunction).map(function(d){return e.parseDate(d,o)});break;case\"range\":s=r.split(e.l10n.rangeSeparator).map(function(d){return e.parseDate(d,o)});break;default:break}else e.config.errorHandler(new Error(\"Invalid date supplied: \"+JSON.stringify(r)));e.selectedDates=e.config.allowInvalidPreload?s:s.filter(function(d){return d instanceof Date&&He(d,!1)}),e.config.mode===\"range\"&&e.selectedDates.sort(function(d,h){return d.getTime()-h.getTime()})}function er(r,o,s){if(o===void 0&&(o=!1),s===void 0&&(s=e.config.dateFormat),r!==0&&!r||r instanceof Array&&r.length===0)return e.clear(o);$n(r,s),e.latestSelectedDateObj=e.selectedDates[e.selectedDates.length-1],e.redraw(),P(void 0,o),E(),e.selectedDates.length===0&&e.clear(!1),_e(o),o&&j(\"onChange\")}function Un(r){return r.slice().map(function(o){return typeof o==\"string\"||typeof o==\"number\"||o instanceof Date?e.parseDate(o,void 0,!0):o&&typeof o==\"object\"&&o.from&&o.to?{from:e.parseDate(o.from,void 0),to:e.parseDate(o.to,void 0)}:o}).filter(function(o){return o})}function tr(){e.selectedDates=[],e.now=e.parseDate(e.config.now)||new Date;var r=e.config.defaultDate||((e.input.nodeName===\"INPUT\"||e.input.nodeName===\"TEXTAREA\")&&e.input.placeholder&&e.input.value===e.input.placeholder?null:e.input.value);r&&$n(r,e.config.dateFormat),e._initialDate=e.selectedDates.length>0?e.selectedDates[0]:e.config.minDate&&e.config.minDate.getTime()>e.now.getTime()?e.config.minDate:e.config.maxDate&&e.config.maxDate.getTime()0&&(e.latestSelectedDateObj=e.selectedDates[0]),e.config.minTime!==void 0&&(e.config.minTime=e.parseDate(e.config.minTime,\"H:i\")),e.config.maxTime!==void 0&&(e.config.maxTime=e.parseDate(e.config.maxTime,\"H:i\")),e.minDateHasTime=!!e.config.minDate&&(e.config.minDate.getHours()>0||e.config.minDate.getMinutes()>0||e.config.minDate.getSeconds()>0),e.maxDateHasTime=!!e.config.maxDate&&(e.config.maxDate.getHours()>0||e.config.maxDate.getMinutes()>0||e.config.maxDate.getSeconds()>0)}function nr(){if(e.input=qn(),!e.input){e.config.errorHandler(new Error(\"Invalid input element specified\"));return}e.input._type=e.input.type,e.input.type=\"text\",e.input.classList.add(\"flatpickr-input\"),e._input=e.input,e.config.altInput&&(e.altInput=k(e.input.nodeName,e.config.altInputClass),e._input=e.altInput,e.altInput.placeholder=e.input.placeholder,e.altInput.disabled=e.input.disabled,e.altInput.required=e.input.required,e.altInput.tabIndex=e.input.tabIndex,e.altInput.type=\"text\",e.input.setAttribute(\"type\",\"hidden\"),!e.config.static&&e.input.parentNode&&e.input.parentNode.insertBefore(e.altInput,e.input.nextSibling)),e.config.allowInput||e._input.setAttribute(\"readonly\",\"readonly\"),Jn()}function Jn(){e._positionElement=e.config.positionElement||e._input}function ir(){var r=e.config.enableTime?e.config.noCalendar?\"time\":\"datetime-local\":\"date\";e.mobileInput=k(\"input\",e.input.className+\" flatpickr-mobile\"),e.mobileInput.tabIndex=1,e.mobileInput.type=r,e.mobileInput.disabled=e.input.disabled,e.mobileInput.required=e.input.required,e.mobileInput.placeholder=e.input.placeholder,e.mobileFormatStr=r===\"datetime-local\"?\"Y-m-d\\\\TH:i:S\":r===\"date\"?\"Y-m-d\":\"H:i:S\",e.selectedDates.length>0&&(e.mobileInput.defaultValue=e.mobileInput.value=e.formatDate(e.selectedDates[0],e.mobileFormatStr)),e.config.minDate&&(e.mobileInput.min=e.formatDate(e.config.minDate,\"Y-m-d\")),e.config.maxDate&&(e.mobileInput.max=e.formatDate(e.config.maxDate,\"Y-m-d\")),e.input.getAttribute(\"step\")&&(e.mobileInput.step=String(e.input.getAttribute(\"step\"))),e.input.type=\"hidden\",e.altInput!==void 0&&(e.altInput.type=\"hidden\");try{e.input.parentNode&&e.input.parentNode.insertBefore(e.mobileInput,e.input.nextSibling)}catch{}y(e.mobileInput,\"change\",function(o){e.setDate(se(o).value,!1,e.mobileFormatStr),j(\"onChange\"),j(\"onClose\")})}function rr(r){if(e.isOpen===!0)return e.close();e.open(r)}function j(r,o){if(e.config!==void 0){var s=e.config[r];if(s!==void 0&&s.length>0)for(var d=0;s[d]&&d=0&&ue(r,e.selectedDates[1])<=0}function _t(){e.config.noCalendar||e.isMobile||!e.monthNav||(e.yearElements.forEach(function(r,o){var s=new Date(e.currentYear,e.currentMonth,1);s.setMonth(e.currentMonth+o),e.config.showMonths>1||e.config.monthSelectorType===\"static\"?e.monthElements[o].textContent=bt(s.getMonth(),e.config.shorthandCurrentMonth,e.l10n)+\" \":e.monthsDropdownContainer.value=s.getMonth().toString(),r.value=s.getFullYear().toString()}),e._hidePrevMonthArrow=e.config.minDate!==void 0&&(e.currentYear===e.config.minDate.getFullYear()?e.currentMonth<=e.config.minDate.getMonth():e.currentYeare.config.maxDate.getMonth():e.currentYear>e.config.maxDate.getFullYear()))}function sn(r){var o=r||(e.config.altInput?e.config.altFormat:e.config.dateFormat);return e.selectedDates.map(function(s){return e.formatDate(s,o)}).filter(function(s,d,h){return e.config.mode!==\"range\"||e.config.enableTime||h.indexOf(s)===d}).join(e.config.mode!==\"range\"?e.config.conjunction:e.l10n.rangeSeparator)}function _e(r){r===void 0&&(r=!0),e.mobileInput!==void 0&&e.mobileFormatStr&&(e.mobileInput.value=e.latestSelectedDateObj!==void 0?e.formatDate(e.latestSelectedDateObj,e.mobileFormatStr):\"\"),e.input.value=sn(e.config.dateFormat),e.altInput!==void 0&&(e.altInput.value=sn(e.config.altFormat)),r!==!1&&j(\"onValueUpdate\")}function or(r){var o=se(r),s=e.prevMonthNav.contains(o),d=e.nextMonthNav.contains(o);s||d?ze(s?-1:1):e.yearElements.indexOf(o)>=0?o.select():o.classList.contains(\"arrowUp\")?e.changeYear(e.currentYear+1):o.classList.contains(\"arrowDown\")&&e.changeYear(e.currentYear-1)}function lr(r){r.preventDefault();var o=r.type===\"keydown\",s=se(r),d=s;e.amPM!==void 0&&s===e.amPM&&(e.amPM.textContent=e.l10n.amPM[le(e.amPM.textContent===e.l10n.amPM[0])]);var h=parseFloat(d.getAttribute(\"min\")),b=parseFloat(d.getAttribute(\"max\")),T=parseFloat(d.getAttribute(\"step\")),w=parseInt(d.value,10),O=r.delta||(o?r.which===38?1:-1:0),D=w+T*O;if(typeof d.value<\"u\"&&d.value.length===2){var M=d===e.hourElement,L=d===e.minuteElement;Db&&(D=d===e.hourElement?D-b-le(!e.amPM):h,L&&W(void 0,1,e.hourElement)),e.amPM&&M&&(T===1?D+w===23:Math.abs(D-w)>T)&&(e.amPM.textContent=e.l10n.amPM[le(e.amPM.textContent===e.l10n.amPM[0])]),d.value=te(D)}}return a(),e}function Qe(n,t){for(var e=Array.prototype.slice.call(n).filter(function(u){return u instanceof HTMLElement}),i=[],a=0;a{e.attributes.type=e.dataset.datepickerType}):t.forEach(e=>{let i=e.dataset.datepickerType,a={locale:Alchemy.locale.slice(0,2),altInput:!0,altFormat:Alchemy.t(`formats.${i}`),altInputClass:\"flatpickr-input\",enableTime:/time/.test(i),noCalendar:i===\"time\",time_24hr:Alchemy.t(\"formats.time_24hr\"),onValueUpdate(l,u,c){return Alchemy.setElementDirty(c.element.closest(\".element-editor\"))}};Wi(e,a)})}function Ya(n){let t=n.item.dataset.pageId,e=Alchemy.routes.move_admin_page_path(t),i={target_parent_id:n.to.dataset.parentId,new_position:n.newIndex};Be(e,i).then(async a=>{let l=await a.data,c=document.getElementById(`page_${t}`).querySelector(\".sitemap_url\");Alchemy.growl(Alchemy.t(\"Successfully moved page\")),c.textContent=l.url_path,tn()}).catch(a=>{Alchemy.growl(a.message||a,\"error\")})}function tn(){document.querySelectorAll(\"li.sitemap-item\").forEach(n=>{let t=n.querySelector(\".page_folder\"),e=n.querySelector(\".children\"),i={folded:n.dataset.folded===\"true\",id:n.dataset.pageId,type:n.dataset.type};e.children.length>0||i.folded?t.outerHTML=HandlebarsTemplates.page_folder({page:i}):t.innerHTML=\"\"})}function Rn(n){n.forEach(t=>{new Wt(t,{group:\"pages\",animation:150,fallbackOnBody:!0,swapThreshold:.65,handle:\".handle\",onEnd:Ya})})}function zi(){let n=document.querySelectorAll(\"ul.children\");tn(),Rn(n)}var yt=class{constructor(t){let e=document.getElementById(\"sitemap-list\").innerHTML.replace(/__ID__/g,\"{{id}}\");this.search_field=document.querySelector(\".search_input_field\"),this.filter_field_clear=document.querySelector(\".search_field_clear\"),this.filter_field_clear.removeAttribute(\"href\"),this.display=document.getElementById(\"page_filter_result\"),this.sitemap_wrapper=document.getElementById(\"sitemap-wrapper\"),this.template=Handlebars.compile(document.getElementById(\"sitemap-template\").innerHTML),this.list_template=Handlebars.compile(e),this.items=null,this.options=t,Handlebars.registerPartial(\"list\",e),this.load(t.page_root_id)}load(t){let e=new Alchemy.Spinner(\"medium\"),i=this.sitemap_wrapper;i.innerHTML=\"\",e.spin(i),zt(this.options.url,{id:t}).then(async a=>{this.render(await a.data),this.handlePageFolders(),e.stop()}).catch(this.errorHandler)}handlePageFolders(){qt(\"click\",\"#sitemap\",\".page_folder\",function(t){let e=new Alchemy.Spinner(\"small\"),i=t.target.closest(\".page_folder\"),a=i.dataset.pageId;i.innerHTML=\"\",e.spin(i),Be(Alchemy.routes.fold_admin_page_path(a)).then(async l=>{this.reRender(a,await l.data),e.stop()}).catch(this.errorHandler)}.bind(this))}render(t){let e=this.sitemap_wrapper,i=this.template;e.innerHTML=i({children:t.pages}),this.items=document.getElementById(\"sitemap\").querySelectorAll(\".sitemap_page\"),this.sitemap_wrapper=document.getElementById(\"sitemap-wrapper\"),this._observe(),zi()}reRender(t,e){let i=document.getElementById(`page_${t}`);i.outerHTML=this.list_template({children:e.pages}),i=document.getElementById(`page_${t}`);let a=i.querySelectorAll(\"ul.children\");Rn(a),tn()}filter(t){let e=[];this.items.forEach(function(a){t!==\"\"&&a.getAttribute(\"name\").toLowerCase().indexOf(t)!==-1?(a.classList.add(\"highlight\"),a.classList.remove(\"no-match\"),e.push(a)):(a.classList.add(\"no-match\"),a.classList.remove(\"highlight\"))}),this.filter_field_clear.style.display=\"inline-block\";let{length:i}=e;i===1?(this.display.style.display=\"block\",this.display.innerText=`1 ${Alchemy.t(\"page_found\")}`,e[0].scrollIntoView({behavior:\"smooth\",block:\"center\"})):i>1?(this.display.style.display=\"block\",this.display.innerText=`${i} ${Alchemy.t(\"pages_found\")}`):(this.items.forEach(a=>a.classList.remove(\"no-match\",\"highlight\")),this.display.style.display=\"none\",window.scrollTo({top:0,left:0,behavior:\"smooth\"}),this.filter_field_clear.style.display=\"none\")}_observe(){this.search_field.addEventListener(\"keyup\",t=>{let e=t.target.value;this.filter(e.toLowerCase())}),this.search_field.addEventListener(\"focus\",()=>key.setScope(\"search\")),this.filter_field_clear.addEventListener(\"click\",()=>(this.search_field.value=\"\",this.filter(\"\"),!1))}errorHandler(t){Alchemy.growl(t.message||t,\"error\"),console.error(t)}};function qi(){document.addEventListener(\"DialogReady.Alchemy\",function(n){let t=n.detail.body,e=t.querySelector(\"#page_public_on\"),i=t.querySelector(\"#page_public_until\"),a=t.querySelector(\".page-publication-date-fields\"),l=t.querySelector(\"#page_public\");l&&l.addEventListener(\"click\",function(u){let c=u.target,f=new Date;c.checked?(a.classList.remove(\"hidden\"),e._flatpickr.setDate(f)):(a.classList.add(\"hidden\"),e.value=\"\"),i.value=\"\"})})}typeof window.Alchemy>\"u\"&&(window.Alchemy={});Object.assign(Alchemy,{t:cn,translations:Object.assign(Alchemy.translations||{},Zn),NodeTree:In,fileEditors:On,pictureEditors:Nn,ImageLoader:Ce.init,ImageCropper:mt,IngredientAnchorLink:ft,Datepicker:jn,Sitemap:yt,PagePublicationFields:qi});})();\n/*! Bundled license information:\n\nsortablejs/modular/sortable.esm.js:\n (**!\n * Sortable 1.15.0\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n *)\n*/\n//# sourceMappingURL=assets/admin.js.map\n"], - "mappings": "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", - "names": [] -} From 5c1825a3ae44c7b8e570cbf3656ba9a4516a149b Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 5 Jul 2023 17:41:57 +0200 Subject: [PATCH 2/4] Update dummy app to Rails 7 --- Gemfile | 3 +- spec/dummy/bin/bundle | 2 +- spec/dummy/bin/rails | 6 +-- spec/dummy/bin/rake | 4 +- spec/dummy/bin/rspec | 3 -- spec/dummy/bin/setup | 24 +++++----- spec/dummy/config/application.rb | 16 ++++--- spec/dummy/config/boot.rb | 4 +- spec/dummy/config/environment.rb | 2 +- spec/dummy/config/environments/development.rb | 29 ++++++++---- spec/dummy/config/environments/production.rb | 45 ++++++------------- spec/dummy/config/environments/test.rb | 26 ++++++++--- spec/dummy/config/initializers/assets.rb | 2 +- .../initializers/content_security_policy.rb | 45 +++++++++---------- .../initializers/filter_parameter_logging.rb | 8 +++- spec/dummy/config/initializers/inflections.rb | 8 ++-- .../config/initializers/permissions_policy.rb | 11 +++++ 17 files changed, 130 insertions(+), 108 deletions(-) delete mode 100755 spec/dummy/bin/rspec create mode 100644 spec/dummy/config/initializers/permissions_policy.rb diff --git a/Gemfile b/Gemfile index 2e538ea..c1ae277 100644 --- a/Gemfile +++ b/Gemfile @@ -3,8 +3,9 @@ source "https://rubygems.org" alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "6.1-stable") gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: alchemy_branch -gem "rails", "~> 6.1.7" +gem "rails", "~> 7.0.0" gem "listen", "~> 3.8" +gem "puma", "~> 6.0" # Specify your gem's dependencies in alchemy-solidus.gemspec gemspec diff --git a/spec/dummy/bin/bundle b/spec/dummy/bin/bundle index 66e9889..9eb144b 100755 --- a/spec/dummy/bin/bundle +++ b/spec/dummy/bin/bundle @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__) load Gem.bin_path('bundler', 'bundle') diff --git a/spec/dummy/bin/rails b/spec/dummy/bin/rails index 0739660..efc0377 100755 --- a/spec/dummy/bin/rails +++ b/spec/dummy/bin/rails @@ -1,4 +1,4 @@ #!/usr/bin/env ruby -APP_PATH = File.expand_path('../config/application', __dir__) -require_relative '../config/boot' -require 'rails/commands' +APP_PATH = File.expand_path("../config/application", __dir__) +require_relative "../config/boot" +require "rails/commands" diff --git a/spec/dummy/bin/rake b/spec/dummy/bin/rake index 1724048..4fbf10b 100755 --- a/spec/dummy/bin/rake +++ b/spec/dummy/bin/rake @@ -1,4 +1,4 @@ #!/usr/bin/env ruby -require_relative '../config/boot' -require 'rake' +require_relative "../config/boot" +require "rake" Rake.application.run diff --git a/spec/dummy/bin/rspec b/spec/dummy/bin/rspec deleted file mode 100755 index d72fadf..0000000 --- a/spec/dummy/bin/rspec +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env ruby -require 'bundler/setup' -load Gem.bin_path('rspec-core', 'rspec') diff --git a/spec/dummy/bin/setup b/spec/dummy/bin/setup index 0e39e8c..ec47b79 100755 --- a/spec/dummy/bin/setup +++ b/spec/dummy/bin/setup @@ -1,33 +1,33 @@ #!/usr/bin/env ruby -require 'fileutils' +require "fileutils" # path to your application root. -APP_ROOT = File.expand_path('..', __dir__) +APP_ROOT = File.expand_path("..", __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") end FileUtils.chdir APP_ROOT do - # This script is a way to setup or update your development environment automatically. - # This script is idempotent, so that you can run it at anytime and get an expectable outcome. + # This script is a way to set up or update your development environment automatically. + # This script is idempotent, so that you can run it at any time and get an expectable outcome. # Add necessary setup steps to this file. - puts '== Installing dependencies ==' - system! 'gem install bundler --conservative' - system('bundle check') || system!('bundle install') + puts "== Installing dependencies ==" + system! "gem install bundler --conservative" + system("bundle check") || system!("bundle install") # puts "\n== Copying sample files ==" - # unless File.exist?('config/database.yml') - # FileUtils.cp 'config/database.yml.sample', 'config/database.yml' + # unless File.exist?("config/database.yml") + # FileUtils.cp "config/database.yml.sample", "config/database.yml" # end puts "\n== Preparing database ==" - system! 'bin/rails db:prepare' + system! "bin/rails db:prepare" puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rails log:clear tmp:clear' + system! "bin/rails log:clear tmp:clear" puts "\n== Restarting application server ==" - system! 'bin/rails restart' + system! "bin/rails restart" end diff --git a/spec/dummy/config/application.rb b/spec/dummy/config/application.rb index 1d2fb68..9ade7bb 100644 --- a/spec/dummy/config/application.rb +++ b/spec/dummy/config/application.rb @@ -23,11 +23,17 @@ module Dummy class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 6.1 + config.load_defaults 7.0 - # Settings in config/environments/* take precedence over those specified here. - # Application configuration can go into files in config/initializers - # -- all .rb files in that directory are automatically loaded after loading - # the framework and any gems in your application. + # Configuration for the application, engines, and railties goes here. + # + # These settings can be overridden in specific environments using the files + # in config/environments, which are processed later. + # + # config.time_zone = "Central Time (US & Canada)" + # config.eager_load_paths << Rails.root.join("extras") + + # Don't generate system test files. + config.generators.system_tests = nil end end diff --git a/spec/dummy/config/boot.rb b/spec/dummy/config/boot.rb index 4059200..473d401 100644 --- a/spec/dummy/config/boot.rb +++ b/spec/dummy/config/boot.rb @@ -1,3 +1,3 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__) +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../Gemfile", __dir__) -require 'bundler/setup' # Set up gems listed in the Gemfile. +require "bundler/setup" # Set up gems listed in the Gemfile. diff --git a/spec/dummy/config/environment.rb b/spec/dummy/config/environment.rb index 426333b..cac5315 100644 --- a/spec/dummy/config/environment.rb +++ b/spec/dummy/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require_relative 'application' +require_relative "application" # Initialize the Rails application. Rails.application.initialize! diff --git a/spec/dummy/config/environments/development.rb b/spec/dummy/config/environments/development.rb index efa151f..9d3a3ee 100644 --- a/spec/dummy/config/environments/development.rb +++ b/spec/dummy/config/environments/development.rb @@ -1,8 +1,10 @@ +require "active_support/core_ext/integer/time" + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - # In the development environment your application's code is reloaded on - # every request. This slows down response time but is perfect for development + # In the development environment your application's code is reloaded any time + # it changes. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. config.cache_classes = false @@ -12,15 +14,18 @@ # Show full error reports. config.consider_all_requests_local = true + # Enable server timing + config.server_timing = true + # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. - if Rails.root.join('tmp', 'caching-dev.txt').exist? + if Rails.root.join("tmp/caching-dev.txt").exist? config.action_controller.perform_caching = true config.action_controller.enable_fragment_cache_logging = true config.cache_store = :memory_store config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{2.days.to_i}" + "Cache-Control" => "public, max-age=#{2.days.to_i}" } else config.action_controller.perform_caching = false @@ -36,6 +41,12 @@ # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + # Raise an error on page load if there are pending migrations. config.active_record.migration_error = :page_load @@ -51,9 +62,11 @@ config.assets.quiet = true # Raises error for missing translations. - # config.action_view.raise_on_missing_translations = true + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true - # Use an evented file watcher to asynchronously detect changes in source code, - # routes, locales, etc. This feature depends on the listen gem. - config.file_watcher = ActiveSupport::EventedFileUpdateChecker + # Uncomment if you wish to allow Action Cable access from any origin. + # config.action_cable.disable_request_forgery_protection = true end diff --git a/spec/dummy/config/environments/production.rb b/spec/dummy/config/environments/production.rb index b6e408c..63991a8 100644 --- a/spec/dummy/config/environments/production.rb +++ b/spec/dummy/config/environments/production.rb @@ -1,3 +1,5 @@ +require "active_support/core_ext/integer/time" + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -20,7 +22,7 @@ # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? # Compress CSS using a preprocessor. # config.assets.css_compressor = :sass @@ -29,18 +31,18 @@ config.assets.compile = false # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = 'http://assets.example.com' + # config.asset_host = "http://assets.example.com" # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache - # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache + # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true - # Use the lowest log level to ensure availability of diagnostic information - # when problems arise. - config.log_level = :debug + # Include generic and useful information about system operation, but avoid logging too much + # information to avoid inadvertent exposure of personally identifiable information (PII). + config.log_level = :info # Prepend all log lines with the following tags. config.log_tags = [ :request_id ] @@ -62,15 +64,15 @@ # the I18n.default_locale when a translation cannot be found). config.i18n.fallbacks = true - # Send deprecation notices to registered listeners. - config.active_support.deprecation = :notify + # Don't log any deprecations. + config.active_support.report_deprecations = false # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new # Use a different logger for distributed setups. - # require 'syslog/logger' - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + # require "syslog/logger" + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") if ENV["RAILS_LOG_TO_STDOUT"].present? logger = ActiveSupport::Logger.new(STDOUT) @@ -80,25 +82,4 @@ # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false - - # Inserts middleware to perform automatic connection switching. - # The `database_selector` hash is used to pass options to the DatabaseSelector - # middleware. The `delay` is used to determine how long to wait after a write - # to send a subsequent read to the primary. - # - # The `database_resolver` class is used by the middleware to determine which - # database is appropriate to use based on the time delay. - # - # The `database_resolver_context` class is used by the middleware to set - # timestamps for the last write to the primary. The resolver uses the context - # class timestamps to determine how long to wait before reading from the - # replica. - # - # By default Rails will store a last write timestamp in the session. The - # DatabaseSelector middleware is designed as such you can define your own - # strategy for connection switching and pass that into the middleware through - # these configuration options. - # config.active_record.database_selector = { delay: 2.seconds } - # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver - # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session end diff --git a/spec/dummy/config/environments/test.rb b/spec/dummy/config/environments/test.rb index b7c33dc..e57c036 100644 --- a/spec/dummy/config/environments/test.rb +++ b/spec/dummy/config/environments/test.rb @@ -1,3 +1,5 @@ +require "active_support/core_ext/integer/time" + # The test environment is used exclusively to run your application's # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped @@ -6,17 +8,18 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. + # Turn false under Spring and add config.action_view.cache_template_loading = true. config.cache_classes = true - # Do not eager load code on boot. This avoids loading your whole application - # just for the purpose of running a single test. If you are using a tool that - # preloads Rails for running tests, you may have to set it to true. - config.eager_load = false + # Eager loading loads your whole application. When running a single test locally, + # this probably isn't necessary. It's a good idea to do in a continuous integration + # system, or in some way before deploying your code. + config.eager_load = ENV["CI"].present? # Configure public file server for tests with Cache-Control for performance. config.public_file_server.enabled = true config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + "Cache-Control" => "public, max-age=#{1.hour.to_i}" } # Show full error reports and disable caching. @@ -28,7 +31,7 @@ config.action_dispatch.show_exceptions = false # Disable request forgery protection in test environment. - config.action_controller.allow_forgery_protection = true + config.action_controller.allow_forgery_protection = false config.action_mailer.perform_caching = false @@ -40,6 +43,15 @@ # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + # Raises error for missing translations. - # config.action_view.raise_on_missing_translations = true + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true end diff --git a/spec/dummy/config/initializers/assets.rb b/spec/dummy/config/initializers/assets.rb index fe48fc3..2eeef96 100644 --- a/spec/dummy/config/initializers/assets.rb +++ b/spec/dummy/config/initializers/assets.rb @@ -1,7 +1,7 @@ # Be sure to restart your server when you modify this file. # Version of your assets, change this if you want to expire all your assets. -Rails.application.config.assets.version = '1.0' +Rails.application.config.assets.version = "1.0" # Add additional assets to the asset load path. # Rails.application.config.assets.paths << Emoji.images_path diff --git a/spec/dummy/config/initializers/content_security_policy.rb b/spec/dummy/config/initializers/content_security_policy.rb index 41c4301..54f47cf 100644 --- a/spec/dummy/config/initializers/content_security_policy.rb +++ b/spec/dummy/config/initializers/content_security_policy.rb @@ -1,28 +1,25 @@ # Be sure to restart your server when you modify this file. -# Define an application-wide content security policy -# For further information see the following documentation -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy +# Define an application-wide content security policy. +# See the Securing Rails Applications Guide for more information: +# https://guides.rubyonrails.org/security.html#content-security-policy-header -# Rails.application.config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https - -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" +# Rails.application.configure do +# config.content_security_policy do |policy| +# policy.default_src :self, :https +# policy.font_src :self, :https, :data +# policy.img_src :self, :https, :data +# policy.object_src :none +# policy.script_src :self, :https +# policy.style_src :self, :https +# # Specify URI for violation reports +# # policy.report_uri "/csp-violation-report-endpoint" +# end +# +# # Generate session nonces for permitted importmap and inline scripts +# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } +# config.content_security_policy_nonce_directives = %w(script-src) +# +# # Report violations without enforcing the policy. +# # config.content_security_policy_report_only = true # end - -# If you are using UJS then enable automatic nonce generation -# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } - -# Set the nonce only to specific directives -# Rails.application.config.content_security_policy_nonce_directives = %w(script-src) - -# Report CSP violations to a specified URI -# For further information see the following documentation: -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only -# Rails.application.config.content_security_policy_report_only = true diff --git a/spec/dummy/config/initializers/filter_parameter_logging.rb b/spec/dummy/config/initializers/filter_parameter_logging.rb index 4a994e1..adc6568 100644 --- a/spec/dummy/config/initializers/filter_parameter_logging.rb +++ b/spec/dummy/config/initializers/filter_parameter_logging.rb @@ -1,4 +1,8 @@ # Be sure to restart your server when you modify this file. -# Configure sensitive parameters which will be filtered from the log file. -Rails.application.config.filter_parameters += [:password] +# Configure parameters to be filtered from the log file. Use this to limit dissemination of +# sensitive information. See the ActiveSupport::ParameterFilter documentation for supported +# notations and behaviors. +Rails.application.config.filter_parameters += [ + :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn +] diff --git a/spec/dummy/config/initializers/inflections.rb b/spec/dummy/config/initializers/inflections.rb index ac033bf..3860f65 100644 --- a/spec/dummy/config/initializers/inflections.rb +++ b/spec/dummy/config/initializers/inflections.rb @@ -4,13 +4,13 @@ # are locale specific, and you may define rules for as many different # locales as you wish. All of these examples are active by default: # ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person', 'people' +# inflect.plural /^(ox)$/i, "\\1en" +# inflect.singular /^(ox)en/i, "\\1" +# inflect.irregular "person", "people" # inflect.uncountable %w( fish sheep ) # end # These inflection rules are supported but not enabled by default: # ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.acronym 'RESTful' +# inflect.acronym "RESTful" # end diff --git a/spec/dummy/config/initializers/permissions_policy.rb b/spec/dummy/config/initializers/permissions_policy.rb new file mode 100644 index 0000000..00f64d7 --- /dev/null +++ b/spec/dummy/config/initializers/permissions_policy.rb @@ -0,0 +1,11 @@ +# Define an application-wide HTTP permissions policy. For further +# information see https://developers.google.com/web/updates/2018/06/feature-policy +# +# Rails.application.config.permissions_policy do |f| +# f.camera :none +# f.gyroscope :none +# f.microphone :none +# f.usb :none +# f.fullscreen :self +# f.payment :self, "https://secure.example.com" +# end From 1a208237592bcec3f22b2f19d787014096b382e5 Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 5 Jul 2023 18:21:22 +0200 Subject: [PATCH 3/4] Remove Alchemy 6 builds --- .github/workflows/ci.yml | 2 +- Gemfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f20ee4c..71b9406 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false matrix: alchemy_branch: - - 6.1-stable + - main ruby: - "3.0" - "3.1" diff --git a/Gemfile b/Gemfile index c1ae277..4a77824 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source "https://rubygems.org" -alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "6.1-stable") +alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "main") gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: alchemy_branch gem "rails", "~> 7.0.0" From 6799a6880f51e705bacd58489d32516e089c43b2 Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 5 Jul 2023 18:22:25 +0200 Subject: [PATCH 4/4] Drop Alchemy 6 support --- alchemy-devise.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alchemy-devise.gemspec b/alchemy-devise.gemspec index 061e258..68c88bb 100644 --- a/alchemy-devise.gemspec +++ b/alchemy-devise.gemspec @@ -15,7 +15,7 @@ Gem::Specification.new do |s| s.files = Dir["{app,config,db,lib}/**/*", "LICENSE", "CHANGELOG.md", "README.md"] - s.add_dependency "alchemy_cms", [">= 6.1.0", "< 7"] + s.add_dependency "alchemy_cms", [">= 7.0.0-rc1", "< 8"] s.add_dependency "devise", [">= 4.7.1", "< 5"] s.add_development_dependency "capybara"