import {
CA,
pA,
wA,
yA
} from "./chunk-SR72G2KZ.js";
import {
hn,
wn
} from "./chunk-EEZUFMIV.js";
import {
Comment,
Fragment,
Teleport,
Text,
Transition,
cloneVNode,
computed,
createApp,
createBaseVNode,
createBlock,
createCommentVNode,
createElementBlock,
createSlots,
createTextVNode,
createVNode,
defineComponent,
effectScope,
getCurrentInstance,
getCurrentScope,
h,
hasInjectionContext,
inject,
isReactive,
isRef,
isVNode,
markRaw,
mergeProps,
nextTick,
normalizeClass,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onDeactivated,
onMounted,
onScopeDispose,
onUnmounted,
onUpdated,
openBlock,
popScopeId,
provide,
pushScopeId,
reactive,
readonly,
ref,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
shallowRef,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
unref,
useAttrs,
useSlots,
vModelText,
vShow,
warn,
watch,
watchEffect,
withCtx,
withDirectives,
withKeys,
withModifiers
} from "./chunk-6UGCK2MK.js";
import "./chunk-DC5AMYBS.js";
// node_modules/@abi-software/scaffoldvuer/dist/scaffoldvuer.js
var qi = (n, e, { checkForDefaultPrevented: t = true } = {}) => (r) => {
const s = n == null ? void 0 : n(r);
if (t === false || !s)
return e == null ? void 0 : e(r);
};
var M1 = Object.defineProperty;
var _1 = Object.defineProperties;
var S1 = Object.getOwnPropertyDescriptors;
var Gp = Object.getOwnPropertySymbols;
var T1 = Object.prototype.hasOwnProperty;
var E1 = Object.prototype.propertyIsEnumerable;
var Hp = (n, e, t) => e in n ? M1(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
var A1 = (n, e) => {
for (var t in e || (e = {}))
T1.call(e, t) && Hp(n, t, e[t]);
if (Gp)
for (var t of Gp(e))
E1.call(e, t) && Hp(n, t, e[t]);
return n;
};
var C1 = (n, e) => _1(n, S1(e));
function Wp(n, e) {
var t;
const i = shallowRef();
return watchEffect(() => {
i.value = n();
}, C1(A1({}, e), {
flush: (t = void 0) != null ? t : "sync"
})), readonly(i);
}
var jp;
var Qt = typeof window < "u";
var L1 = (n) => typeof n == "string";
var h0 = () => {
};
var td = Qt && ((jp = window == null ? void 0 : window.navigator) == null ? void 0 : jp.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);
function d0(n) {
return typeof n == "function" ? n() : unref(n);
}
function R1(n) {
return n;
}
function au(n) {
return getCurrentScope() ? (onScopeDispose(n), true) : false;
}
function P1(n, e = true) {
getCurrentInstance() ? onMounted(n) : e ? n() : nextTick(n);
}
function nr(n) {
var e;
const t = d0(n);
return (e = t == null ? void 0 : t.$el) != null ? e : t;
}
var dl = Qt ? window : void 0;
var I1 = Qt ? window.document : void 0;
function un(...n) {
let e, t, i, r;
if (L1(n[0]) || Array.isArray(n[0]) ? ([t, i, r] = n, e = dl) : [e, t, i, r] = n, !e)
return h0;
Array.isArray(t) || (t = [t]), Array.isArray(i) || (i = [i]);
const s = [], o = () => {
s.forEach((d) => d()), s.length = 0;
}, a = (d, h4, f, g) => (d.addEventListener(h4, f, g), () => d.removeEventListener(h4, f, g)), c = watch(() => [nr(e), d0(r)], ([d, h4]) => {
o(), d && s.push(...t.flatMap((f) => i.map((g) => a(d, f, g, h4))));
}, { immediate: true, flush: "post" }), l = () => {
c(), o();
};
return au(l), l;
}
var $p = false;
function O1(n, e, t = {}) {
const { window: i = dl, ignore: r = [], capture: s = true, detectIframe: o = false } = t;
if (!i)
return;
td && !$p && ($p = true, Array.from(i.document.body.children).forEach((f) => f.addEventListener("click", h0)));
let a = true;
const c = (f) => r.some((g) => {
if (typeof g == "string")
return Array.from(i.document.querySelectorAll(g)).some((p) => p === f.target || f.composedPath().includes(p));
{
const p = nr(g);
return p && (f.target === p || f.composedPath().includes(p));
}
}), d = [
un(i, "click", (f) => {
const g = nr(n);
if (!(!g || g === f.target || f.composedPath().includes(g))) {
if (f.detail === 0 && (a = !c(f)), !a) {
a = true;
return;
}
e(f);
}
}, { passive: true, capture: s }),
un(i, "pointerdown", (f) => {
const g = nr(n);
g && (a = !f.composedPath().includes(g) && !c(f));
}, { passive: true }),
o && un(i, "blur", (f) => {
var g;
const p = nr(n);
((g = i.document.activeElement) == null ? void 0 : g.tagName) === "IFRAME" && !(p != null && p.contains(i.document.activeElement)) && e(f);
})
].filter(Boolean);
return () => d.forEach((f) => f());
}
function f0(n, e = false) {
const t = ref(), i = () => t.value = !!n();
return i(), P1(i, e), t;
}
var Zp = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
var Xp = "__vueuse_ssr_handlers__";
Zp[Xp] = Zp[Xp] || {};
function D1({ document: n = I1 } = {}) {
if (!n)
return ref("visible");
const e = ref(n.visibilityState);
return un(n, "visibilitychange", () => {
e.value = n.visibilityState;
}), e;
}
var Yp = Object.getOwnPropertySymbols;
var N1 = Object.prototype.hasOwnProperty;
var B1 = Object.prototype.propertyIsEnumerable;
var F1 = (n, e) => {
var t = {};
for (var i in n)
N1.call(n, i) && e.indexOf(i) < 0 && (t[i] = n[i]);
if (n != null && Yp)
for (var i of Yp(n))
e.indexOf(i) < 0 && B1.call(n, i) && (t[i] = n[i]);
return t;
};
function Qn(n, e, t = {}) {
const i = t, { window: r = dl } = i, s = F1(i, ["window"]);
let o;
const a = f0(() => r && "ResizeObserver" in r), c = () => {
o && (o.disconnect(), o = void 0);
}, l = watch(() => nr(n), (h4) => {
c(), a.value && r && h4 && (o = new ResizeObserver(e), o.observe(h4, s));
}, { immediate: true, flush: "post" }), d = () => {
c(), l();
};
return au(d), {
isSupported: a,
stop: d
};
}
var Jp = Object.getOwnPropertySymbols;
var z1 = Object.prototype.hasOwnProperty;
var U1 = Object.prototype.propertyIsEnumerable;
var V1 = (n, e) => {
var t = {};
for (var i in n)
z1.call(n, i) && e.indexOf(i) < 0 && (t[i] = n[i]);
if (n != null && Jp)
for (var i of Jp(n))
e.indexOf(i) < 0 && U1.call(n, i) && (t[i] = n[i]);
return t;
};
function k1(n, e, t = {}) {
const i = t, { window: r = dl } = i, s = V1(i, ["window"]);
let o;
const a = f0(() => r && "MutationObserver" in r), c = () => {
o && (o.disconnect(), o = void 0);
}, l = watch(() => nr(n), (h4) => {
c(), a.value && r && h4 && (o = new MutationObserver(e), o.observe(h4, s));
}, { immediate: true }), d = () => {
c(), l();
};
return au(d), {
isSupported: a,
stop: d
};
}
var Kp;
(function(n) {
n.UP = "UP", n.RIGHT = "RIGHT", n.DOWN = "DOWN", n.LEFT = "LEFT", n.NONE = "NONE";
})(Kp || (Kp = {}));
var G1 = Object.defineProperty;
var qp = Object.getOwnPropertySymbols;
var H1 = Object.prototype.hasOwnProperty;
var W1 = Object.prototype.propertyIsEnumerable;
var Qp = (n, e, t) => e in n ? G1(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
var j1 = (n, e) => {
for (var t in e || (e = {}))
H1.call(e, t) && Qp(n, t, e[t]);
if (qp)
for (var t of qp(e))
W1.call(e, t) && Qp(n, t, e[t]);
return n;
};
var $1 = {
easeInSine: [0.12, 0, 0.39, 0],
easeOutSine: [0.61, 1, 0.88, 1],
easeInOutSine: [0.37, 0, 0.63, 1],
easeInQuad: [0.11, 0, 0.5, 0],
easeOutQuad: [0.5, 1, 0.89, 1],
easeInOutQuad: [0.45, 0, 0.55, 1],
easeInCubic: [0.32, 0, 0.67, 0],
easeOutCubic: [0.33, 1, 0.68, 1],
easeInOutCubic: [0.65, 0, 0.35, 1],
easeInQuart: [0.5, 0, 0.75, 0],
easeOutQuart: [0.25, 1, 0.5, 1],
easeInOutQuart: [0.76, 0, 0.24, 1],
easeInQuint: [0.64, 0, 0.78, 0],
easeOutQuint: [0.22, 1, 0.36, 1],
easeInOutQuint: [0.83, 0, 0.17, 1],
easeInExpo: [0.7, 0, 0.84, 0],
easeOutExpo: [0.16, 1, 0.3, 1],
easeInOutExpo: [0.87, 0, 0.13, 1],
easeInCirc: [0.55, 0, 1, 0.45],
easeOutCirc: [0, 0.55, 0.45, 1],
easeInOutCirc: [0.85, 0, 0.15, 1],
easeInBack: [0.36, 0, 0.66, -0.56],
easeOutBack: [0.34, 1.56, 0.64, 1],
easeInOutBack: [0.68, -0.6, 0.32, 1.6]
};
j1({
linear: R1
}, $1);
function Z1({ window: n = dl } = {}) {
if (!n)
return ref(false);
const e = ref(n.document.hasFocus());
return un(n, "blur", () => {
e.value = false;
}), un(n, "focus", () => {
e.value = true;
}), e;
}
var X1 = () => Qt && /firefox/i.test(window.navigator.userAgent);
Object.freeze({});
Object.freeze([]);
var $a = () => {
};
var Y1 = Object.prototype.hasOwnProperty;
var em = (n, e) => Y1.call(n, e);
var Nn = Array.isArray;
var Tn = (n) => typeof n == "function";
var Ln = (n) => typeof n == "string";
var An = (n) => n !== null && typeof n == "object";
var J1 = Object.prototype.toString;
var K1 = (n) => J1.call(n);
var ju = (n) => K1(n).slice(8, -1);
var lf = (n) => {
const e = /* @__PURE__ */ Object.create(null);
return (t) => e[t] || (e[t] = n(t));
};
var q1 = /-(\w)/g;
var Q1 = lf(
(n) => n.replace(q1, (e, t) => t ? t.toUpperCase() : "")
);
var eM = /\B([A-Z])/g;
var tM = lf(
(n) => n.replace(eM, "-$1").toLowerCase()
);
var nM = lf((n) => n.charAt(0).toUpperCase() + n.slice(1));
var p0 = typeof global == "object" && global && global.Object === Object && global;
var iM = typeof self == "object" && self && self.Object === Object && self;
var Ui = p0 || iM || Function("return this")();
var Di = Ui.Symbol;
var m0 = Object.prototype;
var rM = m0.hasOwnProperty;
var sM = m0.toString;
var ga = Di ? Di.toStringTag : void 0;
function oM(n) {
var e = rM.call(n, ga), t = n[ga];
try {
n[ga] = void 0;
var i = true;
} catch {
}
var r = sM.call(n);
return i && (e ? n[ga] = t : delete n[ga]), r;
}
var aM = Object.prototype;
var lM = aM.toString;
function cM(n) {
return lM.call(n);
}
var uM = "[object Null]";
var hM = "[object Undefined]";
var tm = Di ? Di.toStringTag : void 0;
function ta(n) {
return n == null ? n === void 0 ? hM : uM : tm && tm in Object(n) ? oM(n) : cM(n);
}
function Co(n) {
return n != null && typeof n == "object";
}
var dM = "[object Symbol]";
function lu(n) {
return typeof n == "symbol" || Co(n) && ta(n) == dM;
}
function fM(n, e) {
for (var t = -1, i = n == null ? 0 : n.length, r = Array(i); ++t < i; )
r[t] = e(n[t], t, n);
return r;
}
var vi = Array.isArray;
var pM = 1 / 0;
var nm = Di ? Di.prototype : void 0;
var im = nm ? nm.toString : void 0;
function g0(n) {
if (typeof n == "string")
return n;
if (vi(n))
return fM(n, g0) + "";
if (lu(n))
return im ? im.call(n) : "";
var e = n + "";
return e == "0" && 1 / n == -pM ? "-0" : e;
}
var mM = /\s/;
function gM(n) {
for (var e = n.length; e-- && mM.test(n.charAt(e)); )
;
return e;
}
var vM = /^\s+/;
function yM(n) {
return n && n.slice(0, gM(n) + 1).replace(vM, "");
}
function Hr(n) {
var e = typeof n;
return n != null && (e == "object" || e == "function");
}
var rm = NaN;
var bM = /^[-+]0x[0-9a-f]+$/i;
var xM = /^0b[01]+$/i;
var wM = /^0o[0-7]+$/i;
var MM = parseInt;
function sm(n) {
if (typeof n == "number")
return n;
if (lu(n))
return rm;
if (Hr(n)) {
var e = typeof n.valueOf == "function" ? n.valueOf() : n;
n = Hr(e) ? e + "" : e;
}
if (typeof n != "string")
return n === 0 ? n : +n;
n = yM(n);
var t = xM.test(n);
return t || wM.test(n) ? MM(n.slice(2), t ? 2 : 8) : bM.test(n) ? rm : +n;
}
function v0(n) {
return n;
}
var _M = "[object AsyncFunction]";
var SM = "[object Function]";
var TM = "[object GeneratorFunction]";
var EM = "[object Proxy]";
function y0(n) {
if (!Hr(n))
return false;
var e = ta(n);
return e == SM || e == TM || e == _M || e == EM;
}
var $u = Ui["__core-js_shared__"];
var om = function() {
var n = /[^.]+$/.exec($u && $u.keys && $u.keys.IE_PROTO || "");
return n ? "Symbol(src)_1." + n : "";
}();
function AM(n) {
return !!om && om in n;
}
var CM = Function.prototype;
var LM = CM.toString;
function Vs(n) {
if (n != null) {
try {
return LM.call(n);
} catch {
}
try {
return n + "";
} catch {
}
}
return "";
}
var RM = /[\\^$.*+?()[\]{}|]/g;
var PM = /^\[object .+?Constructor\]$/;
var IM = Function.prototype;
var OM = Object.prototype;
var DM = IM.toString;
var NM = OM.hasOwnProperty;
var BM = RegExp(
"^" + DM.call(NM).replace(RM, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function FM(n) {
if (!Hr(n) || AM(n))
return false;
var e = y0(n) ? BM : PM;
return e.test(Vs(n));
}
function zM(n, e) {
return n == null ? void 0 : n[e];
}
function ks(n, e) {
var t = zM(n, e);
return FM(t) ? t : void 0;
}
var nd = ks(Ui, "WeakMap");
function UM(n, e, t) {
switch (t.length) {
case 0:
return n.call(e);
case 1:
return n.call(e, t[0]);
case 2:
return n.call(e, t[0], t[1]);
case 3:
return n.call(e, t[0], t[1], t[2]);
}
return n.apply(e, t);
}
var VM = 800;
var kM = 16;
var GM = Date.now;
function HM(n) {
var e = 0, t = 0;
return function() {
var i = GM(), r = kM - (i - t);
if (t = i, r > 0) {
if (++e >= VM)
return arguments[0];
} else
e = 0;
return n.apply(void 0, arguments);
};
}
function WM(n) {
return function() {
return n;
};
}
var Hc = function() {
try {
var n = ks(Object, "defineProperty");
return n({}, "", {}), n;
} catch {
}
}();
var jM = Hc ? function(n, e) {
return Hc(n, "toString", {
configurable: true,
enumerable: false,
value: WM(e),
writable: true
});
} : v0;
var $M = HM(jM);
function ZM(n, e, t, i) {
n.length;
for (var r = t + 1; r--; )
if (e(n[r], r, n))
return r;
return -1;
}
var XM = 9007199254740991;
var YM = /^(?:0|[1-9]\d*)$/;
function cf(n, e) {
var t = typeof n;
return e = e ?? XM, !!e && (t == "number" || t != "symbol" && YM.test(n)) && n > -1 && n % 1 == 0 && n < e;
}
function JM(n, e, t) {
e == "__proto__" && Hc ? Hc(n, e, {
configurable: true,
enumerable: true,
value: t,
writable: true
}) : n[e] = t;
}
function uf(n, e) {
return n === e || n !== n && e !== e;
}
var KM = Object.prototype;
var qM = KM.hasOwnProperty;
function QM(n, e, t) {
var i = n[e];
(!(qM.call(n, e) && uf(i, t)) || t === void 0 && !(e in n)) && JM(n, e, t);
}
var am = Math.max;
function e_(n, e, t) {
return e = am(e === void 0 ? n.length - 1 : e, 0), function() {
for (var i = arguments, r = -1, s = am(i.length - e, 0), o = Array(s); ++r < s; )
o[r] = i[e + r];
r = -1;
for (var a = Array(e + 1); ++r < e; )
a[r] = i[r];
return a[e] = t(o), UM(n, this, a);
};
}
var t_ = 9007199254740991;
function hf(n) {
return typeof n == "number" && n > -1 && n % 1 == 0 && n <= t_;
}
function n_(n) {
return n != null && hf(n.length) && !y0(n);
}
var i_ = Object.prototype;
function r_(n) {
var e = n && n.constructor, t = typeof e == "function" && e.prototype || i_;
return n === t;
}
function s_(n, e) {
for (var t = -1, i = Array(n); ++t < n; )
i[t] = e(t);
return i;
}
var o_ = "[object Arguments]";
function lm(n) {
return Co(n) && ta(n) == o_;
}
var b0 = Object.prototype;
var a_ = b0.hasOwnProperty;
var l_ = b0.propertyIsEnumerable;
var df = lm(/* @__PURE__ */ function() {
return arguments;
}()) ? lm : function(n) {
return Co(n) && a_.call(n, "callee") && !l_.call(n, "callee");
};
function c_() {
return false;
}
var x0 = typeof exports == "object" && exports && !exports.nodeType && exports;
var cm = x0 && typeof module == "object" && module && !module.nodeType && module;
var u_ = cm && cm.exports === x0;
var um = u_ ? Ui.Buffer : void 0;
var h_ = um ? um.isBuffer : void 0;
var id = h_ || c_;
var d_ = "[object Arguments]";
var f_ = "[object Array]";
var p_ = "[object Boolean]";
var m_ = "[object Date]";
var g_ = "[object Error]";
var v_ = "[object Function]";
var y_ = "[object Map]";
var b_ = "[object Number]";
var x_ = "[object Object]";
var w_ = "[object RegExp]";
var M_ = "[object Set]";
var __ = "[object String]";
var S_ = "[object WeakMap]";
var T_ = "[object ArrayBuffer]";
var E_ = "[object DataView]";
var A_ = "[object Float32Array]";
var C_ = "[object Float64Array]";
var L_ = "[object Int8Array]";
var R_ = "[object Int16Array]";
var P_ = "[object Int32Array]";
var I_ = "[object Uint8Array]";
var O_ = "[object Uint8ClampedArray]";
var D_ = "[object Uint16Array]";
var N_ = "[object Uint32Array]";
var Et = {};
Et[A_] = Et[C_] = Et[L_] = Et[R_] = Et[P_] = Et[I_] = Et[O_] = Et[D_] = Et[N_] = true;
Et[d_] = Et[f_] = Et[T_] = Et[p_] = Et[E_] = Et[m_] = Et[g_] = Et[v_] = Et[y_] = Et[b_] = Et[x_] = Et[w_] = Et[M_] = Et[__] = Et[S_] = false;
function B_(n) {
return Co(n) && hf(n.length) && !!Et[ta(n)];
}
function F_(n) {
return function(e) {
return n(e);
};
}
var w0 = typeof exports == "object" && exports && !exports.nodeType && exports;
var Fa = w0 && typeof module == "object" && module && !module.nodeType && module;
var z_ = Fa && Fa.exports === w0;
var Zu = z_ && p0.process;
var hm = function() {
try {
var n = Fa && Fa.require && Fa.require("util").types;
return n || Zu && Zu.binding && Zu.binding("util");
} catch {
}
}();
var dm = hm && hm.isTypedArray;
var M0 = dm ? F_(dm) : B_;
var U_ = Object.prototype;
var V_ = U_.hasOwnProperty;
function k_(n, e) {
var t = vi(n), i = !t && df(n), r = !t && !i && id(n), s = !t && !i && !r && M0(n), o = t || i || r || s, a = o ? s_(n.length, String) : [], c = a.length;
for (var l in n)
V_.call(n, l) && !(o && // Safari 9 has enumerable `arguments.length` in strict mode.
(l == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
r && (l == "offset" || l == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
s && (l == "buffer" || l == "byteLength" || l == "byteOffset") || // Skip index properties.
cf(l, c))) && a.push(l);
return a;
}
function G_(n, e) {
return function(t) {
return n(e(t));
};
}
var H_ = G_(Object.keys, Object);
var W_ = Object.prototype;
var j_ = W_.hasOwnProperty;
function $_(n) {
if (!r_(n))
return H_(n);
var e = [];
for (var t in Object(n))
j_.call(n, t) && t != "constructor" && e.push(t);
return e;
}
function _0(n) {
return n_(n) ? k_(n) : $_(n);
}
var Z_ = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
var X_ = /^\w*$/;
function ff(n, e) {
if (vi(n))
return false;
var t = typeof n;
return t == "number" || t == "symbol" || t == "boolean" || n == null || lu(n) ? true : X_.test(n) || !Z_.test(n) || e != null && n in Object(e);
}
var Za = ks(Object, "create");
function Y_() {
this.__data__ = Za ? Za(null) : {}, this.size = 0;
}
function J_(n) {
var e = this.has(n) && delete this.__data__[n];
return this.size -= e ? 1 : 0, e;
}
var K_ = "__lodash_hash_undefined__";
var q_ = Object.prototype;
var Q_ = q_.hasOwnProperty;
function eS(n) {
var e = this.__data__;
if (Za) {
var t = e[n];
return t === K_ ? void 0 : t;
}
return Q_.call(e, n) ? e[n] : void 0;
}
var tS = Object.prototype;
var nS = tS.hasOwnProperty;
function iS(n) {
var e = this.__data__;
return Za ? e[n] !== void 0 : nS.call(e, n);
}
var rS = "__lodash_hash_undefined__";
function sS(n, e) {
var t = this.__data__;
return this.size += this.has(n) ? 0 : 1, t[n] = Za && e === void 0 ? rS : e, this;
}
function Rs(n) {
var e = -1, t = n == null ? 0 : n.length;
for (this.clear(); ++e < t; ) {
var i = n[e];
this.set(i[0], i[1]);
}
}
Rs.prototype.clear = Y_;
Rs.prototype.delete = J_;
Rs.prototype.get = eS;
Rs.prototype.has = iS;
Rs.prototype.set = sS;
function oS() {
this.__data__ = [], this.size = 0;
}
function cu(n, e) {
for (var t = n.length; t--; )
if (uf(n[t][0], e))
return t;
return -1;
}
var aS = Array.prototype;
var lS = aS.splice;
function cS(n) {
var e = this.__data__, t = cu(e, n);
if (t < 0)
return false;
var i = e.length - 1;
return t == i ? e.pop() : lS.call(e, t, 1), --this.size, true;
}
function uS(n) {
var e = this.__data__, t = cu(e, n);
return t < 0 ? void 0 : e[t][1];
}
function hS(n) {
return cu(this.__data__, n) > -1;
}
function dS(n, e) {
var t = this.__data__, i = cu(t, n);
return i < 0 ? (++this.size, t.push([n, e])) : t[i][1] = e, this;
}
function fr(n) {
var e = -1, t = n == null ? 0 : n.length;
for (this.clear(); ++e < t; ) {
var i = n[e];
this.set(i[0], i[1]);
}
}
fr.prototype.clear = oS;
fr.prototype.delete = cS;
fr.prototype.get = uS;
fr.prototype.has = hS;
fr.prototype.set = dS;
var Xa = ks(Ui, "Map");
function fS() {
this.size = 0, this.__data__ = {
hash: new Rs(),
map: new (Xa || fr)(),
string: new Rs()
};
}
function pS(n) {
var e = typeof n;
return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? n !== "__proto__" : n === null;
}
function uu(n, e) {
var t = n.__data__;
return pS(e) ? t[typeof e == "string" ? "string" : "hash"] : t.map;
}
function mS(n) {
var e = uu(this, n).delete(n);
return this.size -= e ? 1 : 0, e;
}
function gS(n) {
return uu(this, n).get(n);
}
function vS(n) {
return uu(this, n).has(n);
}
function yS(n, e) {
var t = uu(this, n), i = t.size;
return t.set(n, e), this.size += t.size == i ? 0 : 1, this;
}
function pr(n) {
var e = -1, t = n == null ? 0 : n.length;
for (this.clear(); ++e < t; ) {
var i = n[e];
this.set(i[0], i[1]);
}
}
pr.prototype.clear = fS;
pr.prototype.delete = mS;
pr.prototype.get = gS;
pr.prototype.has = vS;
pr.prototype.set = yS;
var bS = "Expected a function";
function pf(n, e) {
if (typeof n != "function" || e != null && typeof e != "function")
throw new TypeError(bS);
var t = function() {
var i = arguments, r = e ? e.apply(this, i) : i[0], s = t.cache;
if (s.has(r))
return s.get(r);
var o = n.apply(this, i);
return t.cache = s.set(r, o) || s, o;
};
return t.cache = new (pf.Cache || pr)(), t;
}
pf.Cache = pr;
var xS = 500;
function wS(n) {
var e = pf(n, function(i) {
return t.size === xS && t.clear(), i;
}), t = e.cache;
return e;
}
var MS = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
var _S = /\\(\\)?/g;
var SS = wS(function(n) {
var e = [];
return n.charCodeAt(0) === 46 && e.push(""), n.replace(MS, function(t, i, r, s) {
e.push(r ? s.replace(_S, "$1") : i || t);
}), e;
});
function TS(n) {
return n == null ? "" : g0(n);
}
function hu(n, e) {
return vi(n) ? n : ff(n, e) ? [n] : SS(TS(n));
}
var ES = 1 / 0;
function fl(n) {
if (typeof n == "string" || lu(n))
return n;
var e = n + "";
return e == "0" && 1 / n == -ES ? "-0" : e;
}
function mf(n, e) {
e = hu(e, n);
for (var t = 0, i = e.length; n != null && t < i; )
n = n[fl(e[t++])];
return t && t == i ? n : void 0;
}
function Qi(n, e, t) {
var i = n == null ? void 0 : mf(n, e);
return i === void 0 ? t : i;
}
function S0(n, e) {
for (var t = -1, i = e.length, r = n.length; ++t < i; )
n[r + t] = e[t];
return n;
}
var fm = Di ? Di.isConcatSpreadable : void 0;
function AS(n) {
return vi(n) || df(n) || !!(fm && n && n[fm]);
}
function CS(n, e, t, i, r) {
var s = -1, o = n.length;
for (t || (t = AS), r || (r = []); ++s < o; ) {
var a = n[s];
t(a) ? S0(r, a) : r[r.length] = a;
}
return r;
}
function LS(n) {
var e = n == null ? 0 : n.length;
return e ? CS(n) : [];
}
function RS(n) {
return $M(e_(n, void 0, LS), n + "");
}
function Ai() {
if (!arguments.length)
return [];
var n = arguments[0];
return vi(n) ? n : [n];
}
function PS() {
this.__data__ = new fr(), this.size = 0;
}
function IS(n) {
var e = this.__data__, t = e.delete(n);
return this.size = e.size, t;
}
function OS(n) {
return this.__data__.get(n);
}
function DS(n) {
return this.__data__.has(n);
}
var NS = 200;
function BS(n, e) {
var t = this.__data__;
if (t instanceof fr) {
var i = t.__data__;
if (!Xa || i.length < NS - 1)
return i.push([n, e]), this.size = ++t.size, this;
t = this.__data__ = new pr(i);
}
return t.set(n, e), this.size = t.size, this;
}
function ir(n) {
var e = this.__data__ = new fr(n);
this.size = e.size;
}
ir.prototype.clear = PS;
ir.prototype.delete = IS;
ir.prototype.get = OS;
ir.prototype.has = DS;
ir.prototype.set = BS;
function FS(n, e) {
for (var t = -1, i = n == null ? 0 : n.length, r = 0, s = []; ++t < i; ) {
var o = n[t];
e(o, t, n) && (s[r++] = o);
}
return s;
}
function zS() {
return [];
}
var US = Object.prototype;
var VS = US.propertyIsEnumerable;
var pm = Object.getOwnPropertySymbols;
var kS = pm ? function(n) {
return n == null ? [] : (n = Object(n), FS(pm(n), function(e) {
return VS.call(n, e);
}));
} : zS;
function GS(n, e, t) {
var i = e(n);
return vi(n) ? i : S0(i, t(n));
}
function mm(n) {
return GS(n, _0, kS);
}
var rd = ks(Ui, "DataView");
var sd = ks(Ui, "Promise");
var od = ks(Ui, "Set");
var gm = "[object Map]";
var HS = "[object Object]";
var vm = "[object Promise]";
var ym = "[object Set]";
var bm = "[object WeakMap]";
var xm = "[object DataView]";
var WS = Vs(rd);
var jS = Vs(Xa);
var $S = Vs(sd);
var ZS = Vs(od);
var XS = Vs(nd);
var Dr = ta;
(rd && Dr(new rd(new ArrayBuffer(1))) != xm || Xa && Dr(new Xa()) != gm || sd && Dr(sd.resolve()) != vm || od && Dr(new od()) != ym || nd && Dr(new nd()) != bm) && (Dr = function(n) {
var e = ta(n), t = e == HS ? n.constructor : void 0, i = t ? Vs(t) : "";
if (i)
switch (i) {
case WS:
return xm;
case jS:
return gm;
case $S:
return vm;
case ZS:
return ym;
case XS:
return bm;
}
return e;
});
var wm = Ui.Uint8Array;
var YS = "__lodash_hash_undefined__";
function JS(n) {
return this.__data__.set(n, YS), this;
}
function KS(n) {
return this.__data__.has(n);
}
function Wc(n) {
var e = -1, t = n == null ? 0 : n.length;
for (this.__data__ = new pr(); ++e < t; )
this.add(n[e]);
}
Wc.prototype.add = Wc.prototype.push = JS;
Wc.prototype.has = KS;
function qS(n, e) {
for (var t = -1, i = n == null ? 0 : n.length; ++t < i; )
if (e(n[t], t, n))
return true;
return false;
}
function QS(n, e) {
return n.has(e);
}
var eT = 1;
var tT = 2;
function T0(n, e, t, i, r, s) {
var o = t & eT, a = n.length, c = e.length;
if (a != c && !(o && c > a))
return false;
var l = s.get(n), d = s.get(e);
if (l && d)
return l == e && d == n;
var h4 = -1, f = true, g = t & tT ? new Wc() : void 0;
for (s.set(n, e), s.set(e, n); ++h4 < a; ) {
var p = n[h4], u = e[h4];
if (i)
var y = o ? i(u, p, h4, e, n, s) : i(p, u, h4, n, e, s);
if (y !== void 0) {
if (y)
continue;
f = false;
break;
}
if (g) {
if (!qS(e, function(v, m) {
if (!QS(g, m) && (p === v || r(p, v, t, i, s)))
return g.push(m);
})) {
f = false;
break;
}
} else if (!(p === u || r(p, u, t, i, s))) {
f = false;
break;
}
}
return s.delete(n), s.delete(e), f;
}
function nT(n) {
var e = -1, t = Array(n.size);
return n.forEach(function(i, r) {
t[++e] = [r, i];
}), t;
}
function iT(n) {
var e = -1, t = Array(n.size);
return n.forEach(function(i) {
t[++e] = i;
}), t;
}
var rT = 1;
var sT = 2;
var oT = "[object Boolean]";
var aT = "[object Date]";
var lT = "[object Error]";
var cT = "[object Map]";
var uT = "[object Number]";
var hT = "[object RegExp]";
var dT = "[object Set]";
var fT = "[object String]";
var pT = "[object Symbol]";
var mT = "[object ArrayBuffer]";
var gT = "[object DataView]";
var Mm = Di ? Di.prototype : void 0;
var Xu = Mm ? Mm.valueOf : void 0;
function vT(n, e, t, i, r, s, o) {
switch (t) {
case gT:
if (n.byteLength != e.byteLength || n.byteOffset != e.byteOffset)
return false;
n = n.buffer, e = e.buffer;
case mT:
return !(n.byteLength != e.byteLength || !s(new wm(n), new wm(e)));
case oT:
case aT:
case uT:
return uf(+n, +e);
case lT:
return n.name == e.name && n.message == e.message;
case hT:
case fT:
return n == e + "";
case cT:
var a = nT;
case dT:
var c = i & rT;
if (a || (a = iT), n.size != e.size && !c)
return false;
var l = o.get(n);
if (l)
return l == e;
i |= sT, o.set(n, e);
var d = T0(a(n), a(e), i, r, s, o);
return o.delete(n), d;
case pT:
if (Xu)
return Xu.call(n) == Xu.call(e);
}
return false;
}
var yT = 1;
var bT = Object.prototype;
var xT = bT.hasOwnProperty;
function wT(n, e, t, i, r, s) {
var o = t & yT, a = mm(n), c = a.length, l = mm(e), d = l.length;
if (c != d && !o)
return false;
for (var h4 = c; h4--; ) {
var f = a[h4];
if (!(o ? f in e : xT.call(e, f)))
return false;
}
var g = s.get(n), p = s.get(e);
if (g && p)
return g == e && p == n;
var u = true;
s.set(n, e), s.set(e, n);
for (var y = o; ++h4 < c; ) {
f = a[h4];
var v = n[f], m = e[f];
if (i)
var x = o ? i(m, v, f, e, n, s) : i(v, m, f, n, e, s);
if (!(x === void 0 ? v === m || r(v, m, t, i, s) : x)) {
u = false;
break;
}
y || (y = f == "constructor");
}
if (u && !y) {
var M = n.constructor, T = e.constructor;
M != T && "constructor" in n && "constructor" in e && !(typeof M == "function" && M instanceof M && typeof T == "function" && T instanceof T) && (u = false);
}
return s.delete(n), s.delete(e), u;
}
var MT = 1;
var _m = "[object Arguments]";
var Sm = "[object Array]";
var Nl = "[object Object]";
var _T = Object.prototype;
var Tm = _T.hasOwnProperty;
function ST(n, e, t, i, r, s) {
var o = vi(n), a = vi(e), c = o ? Sm : Dr(n), l = a ? Sm : Dr(e);
c = c == _m ? Nl : c, l = l == _m ? Nl : l;
var d = c == Nl, h4 = l == Nl, f = c == l;
if (f && id(n)) {
if (!id(e))
return false;
o = true, d = false;
}
if (f && !d)
return s || (s = new ir()), o || M0(n) ? T0(n, e, t, i, r, s) : vT(n, e, c, t, i, r, s);
if (!(t & MT)) {
var g = d && Tm.call(n, "__wrapped__"), p = h4 && Tm.call(e, "__wrapped__");
if (g || p) {
var u = g ? n.value() : n, y = p ? e.value() : e;
return s || (s = new ir()), r(u, y, t, i, s);
}
}
return f ? (s || (s = new ir()), wT(n, e, t, i, r, s)) : false;
}
function du(n, e, t, i, r) {
return n === e ? true : n == null || e == null || !Co(n) && !Co(e) ? n !== n && e !== e : ST(n, e, t, i, du, r);
}
var TT = 1;
var ET = 2;
function AT(n, e, t, i) {
var r = t.length, s = r;
if (n == null)
return !s;
for (n = Object(n); r--; ) {
var o = t[r];
if (o[2] ? o[1] !== n[o[0]] : !(o[0] in n))
return false;
}
for (; ++r < s; ) {
o = t[r];
var a = o[0], c = n[a], l = o[1];
if (o[2]) {
if (c === void 0 && !(a in n))
return false;
} else {
var d = new ir(), h4;
if (!(h4 === void 0 ? du(l, c, TT | ET, i, d) : h4))
return false;
}
}
return true;
}
function E0(n) {
return n === n && !Hr(n);
}
function CT(n) {
for (var e = _0(n), t = e.length; t--; ) {
var i = e[t], r = n[i];
e[t] = [i, r, E0(r)];
}
return e;
}
function A0(n, e) {
return function(t) {
return t == null ? false : t[n] === e && (e !== void 0 || n in Object(t));
};
}
function LT(n) {
var e = CT(n);
return e.length == 1 && e[0][2] ? A0(e[0][0], e[0][1]) : function(t) {
return t === n || AT(t, n, e);
};
}
function RT(n, e) {
return n != null && e in Object(n);
}
function PT(n, e, t) {
e = hu(e, n);
for (var i = -1, r = e.length, s = false; ++i < r; ) {
var o = fl(e[i]);
if (!(s = n != null && t(n, o)))
break;
n = n[o];
}
return s || ++i != r ? s : (r = n == null ? 0 : n.length, !!r && hf(r) && cf(o, r) && (vi(n) || df(n)));
}
function C0(n, e) {
return n != null && PT(n, e, RT);
}
var IT = 1;
var OT = 2;
function DT(n, e) {
return ff(n) && E0(e) ? A0(fl(n), e) : function(t) {
var i = Qi(t, n);
return i === void 0 && i === e ? C0(t, n) : du(e, i, IT | OT);
};
}
function NT(n) {
return function(e) {
return e == null ? void 0 : e[n];
};
}
function BT(n) {
return function(e) {
return mf(e, n);
};
}
function FT(n) {
return ff(n) ? NT(fl(n)) : BT(n);
}
function zT(n) {
return typeof n == "function" ? n : n == null ? v0 : typeof n == "object" ? vi(n) ? DT(n[0], n[1]) : LT(n) : FT(n);
}
var Yu = function() {
return Ui.Date.now();
};
var UT = "Expected a function";
var VT = Math.max;
var kT = Math.min;
function ad(n, e, t) {
var i, r, s, o, a, c, l = 0, d = false, h4 = false, f = true;
if (typeof n != "function")
throw new TypeError(UT);
e = sm(e) || 0, Hr(t) && (d = !!t.leading, h4 = "maxWait" in t, s = h4 ? VT(sm(t.maxWait) || 0, e) : s, f = "trailing" in t ? !!t.trailing : f);
function g(w) {
var _ = i, E = r;
return i = r = void 0, l = w, o = n.apply(E, _), o;
}
function p(w) {
return l = w, a = setTimeout(v, e), d ? g(w) : o;
}
function u(w) {
var _ = w - c, E = w - l, P = e - _;
return h4 ? kT(P, s - E) : P;
}
function y(w) {
var _ = w - c, E = w - l;
return c === void 0 || _ >= e || _ < 0 || h4 && E >= s;
}
function v() {
var w = Yu();
if (y(w))
return m(w);
a = setTimeout(v, u(w));
}
function m(w) {
return a = void 0, f && i ? g(w) : (i = r = void 0, o);
}
function x() {
a !== void 0 && clearTimeout(a), l = 0, i = c = r = a = void 0;
}
function M() {
return a === void 0 ? o : m(Yu());
}
function T() {
var w = Yu(), _ = y(w);
if (i = arguments, r = this, c = w, _) {
if (a === void 0)
return p(c);
if (h4)
return clearTimeout(a), a = setTimeout(v, e), g(c);
}
return a === void 0 && (a = setTimeout(v, e)), o;
}
return T.cancel = x, T.flush = M, T;
}
function GT(n, e, t) {
var i = n == null ? 0 : n.length;
if (!i)
return -1;
var r = i - 1;
return ZM(n, zT(e), r);
}
function jc(n) {
for (var e = -1, t = n == null ? 0 : n.length, i = {}; ++e < t; ) {
var r = n[e];
i[r[0]] = r[1];
}
return i;
}
function ld(n, e) {
return du(n, e);
}
function rr(n) {
return n == null;
}
function HT(n) {
return n === void 0;
}
function WT(n, e, t, i) {
if (!Hr(n))
return n;
e = hu(e, n);
for (var r = -1, s = e.length, o = s - 1, a = n; a != null && ++r < s; ) {
var c = fl(e[r]), l = t;
if (c === "__proto__" || c === "constructor" || c === "prototype")
return n;
if (r != o) {
var d = a[c];
l = void 0, l === void 0 && (l = Hr(d) ? d : cf(e[r + 1]) ? [] : {});
}
QM(a, c, l), a = a[c];
}
return n;
}
function jT(n, e, t) {
for (var i = -1, r = e.length, s = {}; ++i < r; ) {
var o = e[i], a = mf(n, o);
t(a, o) && WT(s, hu(o, n), a);
}
return s;
}
function $T(n, e) {
return jT(n, e, function(t, i) {
return C0(n, i);
});
}
var ZT = RS(function(n, e) {
return n == null ? {} : $T(n, e);
});
var mi = (n) => n === void 0;
var gf = (n) => typeof n == "boolean";
var bt = (n) => typeof n == "number";
var Ms = (n) => typeof Element > "u" ? false : n instanceof Element;
var XT = (n) => Ln(n) ? !Number.isNaN(Number(n)) : false;
var YT = (n = "") => n.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
var Br = (n) => nM(n);
var Em = (n) => Object.keys(n);
var L0 = class extends Error {
constructor(e) {
super(e), this.name = "ElementPlusError";
}
};
function na(n, e) {
throw new L0(`[${n}] ${e}`);
}
function Xt(n, e) {
if (true) {
const t = Ln(n) ? new L0(`[${n}] ${e}`) : n;
console.warn(t);
}
}
var JT = "utils/dom/style";
var R0 = (n = "") => n.split(" ").filter((e) => !!e.trim());
var Am = (n, e) => {
!n || !e.trim() || n.classList.add(...R0(e));
};
var $c = (n, e) => {
!n || !e.trim() || n.classList.remove(...R0(e));
};
var va = (n, e) => {
var t;
if (!Qt || !n || !e)
return "";
let i = Q1(e);
i === "float" && (i = "cssFloat");
try {
const r = n.style[i];
if (r)
return r;
const s = (t = document.defaultView) == null ? void 0 : t.getComputedStyle(n, "");
return s ? s[i] : "";
} catch {
return n.style[i];
}
};
function Zc(n, e = "px") {
if (!n)
return "";
if (bt(n) || XT(n))
return `${n}${e}`;
if (Ln(n))
return n;
Xt(JT, "binding value must be a string or number");
}
function KT(n, e) {
if (!Qt)
return;
if (!e) {
n.scrollTop = 0;
return;
}
const t = [];
let i = e.offsetParent;
for (; i !== null && n !== i && n.contains(i); )
t.push(i), i = i.offsetParent;
const r = e.offsetTop + t.reduce((c, l) => c + l.offsetTop, 0), s = r + e.offsetHeight, o = n.scrollTop, a = o + n.clientHeight;
r < o ? n.scrollTop = r : s > a && (n.scrollTop = s - n.clientHeight);
}
var qT = defineComponent({
name: "ArrowDown",
__name: "arrow-down",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"
})
]));
}
});
var vf = qT;
var QT = defineComponent({
name: "ArrowLeft",
__name: "arrow-left",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"
})
]));
}
});
var Wr = QT;
var eE = defineComponent({
name: "ArrowRight",
__name: "arrow-right",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"
})
]));
}
});
var jr = eE;
var tE = defineComponent({
name: "ArrowUp",
__name: "arrow-up",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"
})
]));
}
});
var nE = tE;
var iE = defineComponent({
name: "CircleCheck",
__name: "circle-check",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
}),
createBaseVNode("path", {
fill: "currentColor",
d: "M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"
})
]));
}
});
var rE = iE;
var sE = defineComponent({
name: "CircleClose",
__name: "circle-close",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"
}),
createBaseVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
})
]));
}
});
var yf = sE;
var oE = defineComponent({
name: "Close",
__name: "close",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
})
]));
}
});
var cd = oE;
var aE = defineComponent({
name: "Delete",
__name: "delete",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"
})
]));
}
});
var Xc = aE;
var lE = defineComponent({
name: "Hide",
__name: "hide",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"
}),
createBaseVNode("path", {
fill: "currentColor",
d: "M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"
})
]));
}
});
var cE = lE;
var uE = defineComponent({
name: "Loading",
__name: "loading",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"
})
]));
}
});
var P0 = uE;
var hE = defineComponent({
name: "Minus",
__name: "minus",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"
})
]));
}
});
var dE = hE;
var fE = defineComponent({
name: "Plus",
__name: "plus",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"
})
]));
}
});
var fu = fE;
var pE = defineComponent({
name: "View",
__name: "view",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"
})
]));
}
});
var mE = pE;
var gE = defineComponent({
name: "WarningFilled",
__name: "warning-filled",
setup(n) {
return (e, t) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"
})
]));
}
});
var I0 = gE;
var O0 = "__epPropKey";
var Je = (n) => n;
var vE = (n) => An(n) && !!n[O0];
var pu = (n, e) => {
if (!An(n) || vE(n))
return n;
const { values: t, required: i, default: r, type: s, validator: o } = n, c = {
type: s,
required: !!i,
validator: t || o ? (l) => {
let d = false, h4 = [];
if (t && (h4 = Array.from(t), em(n, "default") && h4.push(r), d || (d = h4.includes(l))), o && (d || (d = o(l))), !d && h4.length > 0) {
const f = [...new Set(h4)].map((g) => JSON.stringify(g)).join(", ");
warn(`Invalid prop: validation failed${e ? ` for prop "${e}"` : ""}. Expected one of [${f}], got value ${JSON.stringify(l)}.`);
}
return d;
} : void 0,
[O0]: true
};
return em(n, "default") && (c.default = r), c;
};
var ft = (n) => jc(Object.entries(n).map(([e, t]) => [
e,
pu(t, e)
]));
var $r = Je([
String,
Object,
Function
]);
var D0 = {
validating: P0,
success: rE,
error: yf
};
var fn = (n, e) => {
if (n.install = (t) => {
for (const i of [n, ...Object.values(e ?? {})])
t.component(i.name, i);
}, e)
for (const [t, i] of Object.entries(e))
n[t] = i;
return n;
};
var yE = (n, e) => (n.install = (t) => {
t.directive(e, n);
}, n);
var mr = (n) => (n.install = $a, n);
var Pi = {
tab: "Tab",
enter: "Enter",
space: "Space",
left: "ArrowLeft",
up: "ArrowUp",
right: "ArrowRight",
down: "ArrowDown",
esc: "Escape",
delete: "Delete",
backspace: "Backspace",
numpadEnter: "NumpadEnter",
pageUp: "PageUp",
pageDown: "PageDown",
home: "Home",
end: "End"
};
var Lt = "update:modelValue";
var qr = "change";
var _s = "input";
var N0 = ["", "default", "small", "large"];
var Bc = (n) => {
const e = Nn(n) ? n : [n], t = [];
return e.forEach((i) => {
var r;
Nn(i) ? t.push(...Bc(i)) : isVNode(i) && Nn(i.children) ? t.push(...Bc(i.children)) : (t.push(i), isVNode(i) && ((r = i.component) != null && r.subTree) && t.push(...Bc(i.component.subTree)));
}), t;
};
var bE = (n) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(n);
var er = (n) => n;
var xE = ["class", "style"];
var wE = /^on[A-Z]/;
var ME = (n = {}) => {
const { excludeListeners: e = false, excludeKeys: t } = n, i = computed(() => ((t == null ? void 0 : t.value) || []).concat(xE)), r = getCurrentInstance();
return r ? computed(() => {
var s;
return jc(Object.entries((s = r.proxy) == null ? void 0 : s.$attrs).filter(([o]) => !i.value.includes(o) && !(e && wE.test(o))));
}) : (Xt("use-attrs", "getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function"), computed(() => ({})));
};
var _E = ({ from: n, replacement: e, scope: t, version: i, ref: r, type: s = "API" }, o) => {
watch(() => unref(o), (a) => {
a && Xt(t, `[${s}] ${n} is about to be deprecated in version ${i}, please use ${e} instead.
For more detail, please visit: ${r}
`);
}, {
immediate: true
});
};
var SE = {
name: "en",
el: {
breadcrumb: {
label: "Breadcrumb"
},
colorpicker: {
confirm: "OK",
clear: "Clear",
defaultLabel: "color picker",
description: "current color is {color}. press enter to select a new color.",
alphaLabel: "pick alpha value"
},
datepicker: {
now: "Now",
today: "Today",
cancel: "Cancel",
clear: "Clear",
confirm: "OK",
dateTablePrompt: "Use the arrow keys and enter to select the day of the month",
monthTablePrompt: "Use the arrow keys and enter to select the month",
yearTablePrompt: "Use the arrow keys and enter to select the year",
selectedDate: "Selected date",
selectDate: "Select date",
selectTime: "Select time",
startDate: "Start Date",
startTime: "Start Time",
endDate: "End Date",
endTime: "End Time",
prevYear: "Previous Year",
nextYear: "Next Year",
prevMonth: "Previous Month",
nextMonth: "Next Month",
year: "",
month1: "January",
month2: "February",
month3: "March",
month4: "April",
month5: "May",
month6: "June",
month7: "July",
month8: "August",
month9: "September",
month10: "October",
month11: "November",
month12: "December",
week: "week",
weeks: {
sun: "Sun",
mon: "Mon",
tue: "Tue",
wed: "Wed",
thu: "Thu",
fri: "Fri",
sat: "Sat"
},
weeksFull: {
sun: "Sunday",
mon: "Monday",
tue: "Tuesday",
wed: "Wednesday",
thu: "Thursday",
fri: "Friday",
sat: "Saturday"
},
months: {
jan: "Jan",
feb: "Feb",
mar: "Mar",
apr: "Apr",
may: "May",
jun: "Jun",
jul: "Jul",
aug: "Aug",
sep: "Sep",
oct: "Oct",
nov: "Nov",
dec: "Dec"
}
},
inputNumber: {
decrease: "decrease number",
increase: "increase number"
},
select: {
loading: "Loading",
noMatch: "No matching data",
noData: "No data",
placeholder: "Select"
},
mention: {
loading: "Loading"
},
dropdown: {
toggleDropdown: "Toggle Dropdown"
},
cascader: {
noMatch: "No matching data",
loading: "Loading",
placeholder: "Select",
noData: "No data"
},
pagination: {
goto: "Go to",
pagesize: "/page",
total: "Total {total}",
pageClassifier: "",
page: "Page",
prev: "Go to previous page",
next: "Go to next page",
currentPage: "page {pager}",
prevPages: "Previous {pager} pages",
nextPages: "Next {pager} pages",
deprecationWarning: "Deprecated usages detected, please refer to the el-pagination documentation for more details"
},
dialog: {
close: "Close this dialog"
},
drawer: {
close: "Close this dialog"
},
messagebox: {
title: "Message",
confirm: "OK",
cancel: "Cancel",
error: "Illegal input",
close: "Close this dialog"
},
upload: {
deleteTip: "press delete to remove",
delete: "Delete",
preview: "Preview",
continue: "Continue"
},
slider: {
defaultLabel: "slider between {min} and {max}",
defaultRangeStartLabel: "pick start value",
defaultRangeEndLabel: "pick end value"
},
table: {
emptyText: "No Data",
confirmFilter: "Confirm",
resetFilter: "Reset",
clearFilter: "All",
sumText: "Sum"
},
tour: {
next: "Next",
previous: "Previous",
finish: "Finish"
},
tree: {
emptyText: "No Data"
},
transfer: {
noMatch: "No matching data",
noData: "No data",
titles: ["List 1", "List 2"],
filterPlaceholder: "Enter keyword",
noCheckedFormat: "{total} items",
hasCheckedFormat: "{checked}/{total} checked"
},
image: {
error: "FAILED"
},
pageHeader: {
title: "Back"
},
popconfirm: {
confirmButtonText: "Yes",
cancelButtonText: "No"
},
carousel: {
leftArrow: "Carousel arrow left",
rightArrow: "Carousel arrow right",
indicator: "Carousel switch to index {index}"
}
}
};
var TE = (n) => (e, t) => EE(e, t, unref(n));
var EE = (n, e, t) => Qi(t, n, n).replace(/\{(\w+)\}/g, (i, r) => {
var s;
return `${(s = e == null ? void 0 : e[r]) != null ? s : `{${r}}`}`;
});
var AE = (n) => {
const e = computed(() => unref(n).name), t = isRef(n) ? n : ref(n);
return {
lang: e,
locale: t,
t: TE(n)
};
};
var B0 = Symbol("localeContextKey");
var mu = (n) => {
const e = n || inject(B0, ref());
return AE(computed(() => e.value || SE));
};
var Fc = "el";
var CE = "is-";
var ls = (n, e, t, i, r) => {
let s = `${n}-${e}`;
return t && (s += `-${t}`), i && (s += `__${i}`), r && (s += `--${r}`), s;
};
var F0 = Symbol("namespaceContextKey");
var bf = (n) => {
const e = n || (getCurrentInstance() ? inject(F0, ref(Fc)) : ref(Fc));
return computed(() => unref(e) || Fc);
};
var rt = (n, e) => {
const t = bf(e);
return {
namespace: t,
b: (u = "") => ls(t.value, n, u, "", ""),
e: (u) => u ? ls(t.value, n, "", u, "") : "",
m: (u) => u ? ls(t.value, n, "", "", u) : "",
be: (u, y) => u && y ? ls(t.value, n, u, y, "") : "",
em: (u, y) => u && y ? ls(t.value, n, "", u, y) : "",
bm: (u, y) => u && y ? ls(t.value, n, u, "", y) : "",
bem: (u, y, v) => u && y && v ? ls(t.value, n, u, y, v) : "",
is: (u, ...y) => {
const v = y.length >= 1 ? y[0] : true;
return u && v ? `${CE}${u}` : "";
},
cssVar: (u) => {
const y = {};
for (const v in u)
u[v] && (y[`--${t.value}-${v}`] = u[v]);
return y;
},
cssVarName: (u) => `--${t.value}-${u}`,
cssVarBlock: (u) => {
const y = {};
for (const v in u)
u[v] && (y[`--${t.value}-${n}-${v}`] = u[v]);
return y;
},
cssVarBlockName: (u) => `--${t.value}-${n}-${u}`
};
};
var LE = pu({
type: Je(Boolean),
default: null
});
var RE = pu({
type: Je(Function)
});
var PE = (n) => {
const e = `update:${n}`, t = `onUpdate:${n}`, i = [e], r = {
[n]: LE,
[t]: RE
};
return {
useModelToggle: ({
indicator: o,
toggleReason: a,
shouldHideWhenRouteChanges: c,
shouldProceed: l,
onShow: d,
onHide: h4
}) => {
const f = getCurrentInstance(), { emit: g } = f, p = f.props, u = computed(() => Tn(p[t])), y = computed(() => p[n] === null), v = (_) => {
o.value !== true && (o.value = true, a && (a.value = _), Tn(d) && d(_));
}, m = (_) => {
o.value !== false && (o.value = false, a && (a.value = _), Tn(h4) && h4(_));
}, x = (_) => {
if (p.disabled === true || Tn(l) && !l())
return;
const E = u.value && Qt;
E && g(e, true), (y.value || !E) && v(_);
}, M = (_) => {
if (p.disabled === true || !Qt)
return;
const E = u.value && Qt;
E && g(e, false), (y.value || !E) && m(_);
}, T = (_) => {
gf(_) && (p.disabled && _ ? u.value && g(e, false) : o.value !== _ && (_ ? v() : m()));
}, w = () => {
o.value ? M() : x();
};
return watch(() => p[n], T), c && f.appContext.config.globalProperties.$route !== void 0 && watch(() => ({
...f.proxy.$route
}), () => {
c.value && o.value && M();
}), onMounted(() => {
T(p[n]);
}), {
hide: M,
show: x,
toggle: w,
hasUpdateHandler: u
};
},
useModelToggleProps: r,
useModelToggleEmits: i
};
};
var z0 = (n) => {
const e = getCurrentInstance();
return computed(() => {
var t, i;
return (i = (t = e == null ? void 0 : e.proxy) == null ? void 0 : t.$props) == null ? void 0 : i[n];
});
};
var Fn = "top";
var ni = "bottom";
var ii = "right";
var zn = "left";
var xf = "auto";
var pl = [Fn, ni, ii, zn];
var Lo = "start";
var Ya = "end";
var IE = "clippingParents";
var U0 = "viewport";
var ya = "popper";
var OE = "reference";
var Cm = pl.reduce(function(n, e) {
return n.concat([e + "-" + Lo, e + "-" + Ya]);
}, []);
var ia = [].concat(pl, [xf]).reduce(function(n, e) {
return n.concat([e, e + "-" + Lo, e + "-" + Ya]);
}, []);
var DE = "beforeRead";
var NE = "read";
var BE = "afterRead";
var FE = "beforeMain";
var zE = "main";
var UE = "afterMain";
var VE = "beforeWrite";
var kE = "write";
var GE = "afterWrite";
var HE = [DE, NE, BE, FE, zE, UE, VE, kE, GE];
function Ni(n) {
return n ? (n.nodeName || "").toLowerCase() : null;
}
function xi(n) {
if (n == null) return window;
if (n.toString() !== "[object Window]") {
var e = n.ownerDocument;
return e && e.defaultView || window;
}
return n;
}
function Ro(n) {
var e = xi(n).Element;
return n instanceof e || n instanceof Element;
}
function ti(n) {
var e = xi(n).HTMLElement;
return n instanceof e || n instanceof HTMLElement;
}
function wf(n) {
if (typeof ShadowRoot > "u") return false;
var e = xi(n).ShadowRoot;
return n instanceof e || n instanceof ShadowRoot;
}
function WE(n) {
var e = n.state;
Object.keys(e.elements).forEach(function(t) {
var i = e.styles[t] || {}, r = e.attributes[t] || {}, s = e.elements[t];
!ti(s) || !Ni(s) || (Object.assign(s.style, i), Object.keys(r).forEach(function(o) {
var a = r[o];
a === false ? s.removeAttribute(o) : s.setAttribute(o, a === true ? "" : a);
}));
});
}
function jE(n) {
var e = n.state, t = { popper: { position: e.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} };
return Object.assign(e.elements.popper.style, t.popper), e.styles = t, e.elements.arrow && Object.assign(e.elements.arrow.style, t.arrow), function() {
Object.keys(e.elements).forEach(function(i) {
var r = e.elements[i], s = e.attributes[i] || {}, o = Object.keys(e.styles.hasOwnProperty(i) ? e.styles[i] : t[i]), a = o.reduce(function(c, l) {
return c[l] = "", c;
}, {});
!ti(r) || !Ni(r) || (Object.assign(r.style, a), Object.keys(s).forEach(function(c) {
r.removeAttribute(c);
}));
});
};
}
var V0 = { name: "applyStyles", enabled: true, phase: "write", fn: WE, effect: jE, requires: ["computeStyles"] };
function Ii(n) {
return n.split("-")[0];
}
var Ss = Math.max;
var Yc = Math.min;
var Po = Math.round;
function Io(n, e) {
e === void 0 && (e = false);
var t = n.getBoundingClientRect(), i = 1, r = 1;
if (ti(n) && e) {
var s = n.offsetHeight, o = n.offsetWidth;
o > 0 && (i = Po(t.width) / o || 1), s > 0 && (r = Po(t.height) / s || 1);
}
return { width: t.width / i, height: t.height / r, top: t.top / r, right: t.right / i, bottom: t.bottom / r, left: t.left / i, x: t.left / i, y: t.top / r };
}
function Mf(n) {
var e = Io(n), t = n.offsetWidth, i = n.offsetHeight;
return Math.abs(e.width - t) <= 1 && (t = e.width), Math.abs(e.height - i) <= 1 && (i = e.height), { x: n.offsetLeft, y: n.offsetTop, width: t, height: i };
}
function k0(n, e) {
var t = e.getRootNode && e.getRootNode();
if (n.contains(e)) return true;
if (t && wf(t)) {
var i = e;
do {
if (i && n.isSameNode(i)) return true;
i = i.parentNode || i.host;
} while (i);
}
return false;
}
function cr(n) {
return xi(n).getComputedStyle(n);
}
function $E(n) {
return ["table", "td", "th"].indexOf(Ni(n)) >= 0;
}
function Qr(n) {
return ((Ro(n) ? n.ownerDocument : n.document) || window.document).documentElement;
}
function gu(n) {
return Ni(n) === "html" ? n : n.assignedSlot || n.parentNode || (wf(n) ? n.host : null) || Qr(n);
}
function Lm(n) {
return !ti(n) || cr(n).position === "fixed" ? null : n.offsetParent;
}
function ZE(n) {
var e = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1, t = navigator.userAgent.indexOf("Trident") !== -1;
if (t && ti(n)) {
var i = cr(n);
if (i.position === "fixed") return null;
}
var r = gu(n);
for (wf(r) && (r = r.host); ti(r) && ["html", "body"].indexOf(Ni(r)) < 0; ) {
var s = cr(r);
if (s.transform !== "none" || s.perspective !== "none" || s.contain === "paint" || ["transform", "perspective"].indexOf(s.willChange) !== -1 || e && s.willChange === "filter" || e && s.filter && s.filter !== "none") return r;
r = r.parentNode;
}
return null;
}
function ml(n) {
for (var e = xi(n), t = Lm(n); t && $E(t) && cr(t).position === "static"; ) t = Lm(t);
return t && (Ni(t) === "html" || Ni(t) === "body" && cr(t).position === "static") ? e : t || ZE(n) || e;
}
function _f(n) {
return ["top", "bottom"].indexOf(n) >= 0 ? "x" : "y";
}
function za(n, e, t) {
return Ss(n, Yc(e, t));
}
function XE(n, e, t) {
var i = za(n, e, t);
return i > t ? t : i;
}
function G0() {
return { top: 0, right: 0, bottom: 0, left: 0 };
}
function H0(n) {
return Object.assign({}, G0(), n);
}
function W0(n, e) {
return e.reduce(function(t, i) {
return t[i] = n, t;
}, {});
}
var YE = function(n, e) {
return n = typeof n == "function" ? n(Object.assign({}, e.rects, { placement: e.placement })) : n, H0(typeof n != "number" ? n : W0(n, pl));
};
function JE(n) {
var e, t = n.state, i = n.name, r = n.options, s = t.elements.arrow, o = t.modifiersData.popperOffsets, a = Ii(t.placement), c = _f(a), l = [zn, ii].indexOf(a) >= 0, d = l ? "height" : "width";
if (!(!s || !o)) {
var h4 = YE(r.padding, t), f = Mf(s), g = c === "y" ? Fn : zn, p = c === "y" ? ni : ii, u = t.rects.reference[d] + t.rects.reference[c] - o[c] - t.rects.popper[d], y = o[c] - t.rects.reference[c], v = ml(s), m = v ? c === "y" ? v.clientHeight || 0 : v.clientWidth || 0 : 0, x = u / 2 - y / 2, M = h4[g], T = m - f[d] - h4[p], w = m / 2 - f[d] / 2 + x, _ = za(M, w, T), E = c;
t.modifiersData[i] = (e = {}, e[E] = _, e.centerOffset = _ - w, e);
}
}
function KE(n) {
var e = n.state, t = n.options, i = t.element, r = i === void 0 ? "[data-popper-arrow]" : i;
r != null && (typeof r == "string" && (r = e.elements.popper.querySelector(r), !r) || !k0(e.elements.popper, r) || (e.elements.arrow = r));
}
var qE = { name: "arrow", enabled: true, phase: "main", fn: JE, effect: KE, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] };
function Oo(n) {
return n.split("-")[1];
}
var QE = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
function eA(n) {
var e = n.x, t = n.y, i = window, r = i.devicePixelRatio || 1;
return { x: Po(e * r) / r || 0, y: Po(t * r) / r || 0 };
}
function Rm(n) {
var e, t = n.popper, i = n.popperRect, r = n.placement, s = n.variation, o = n.offsets, a = n.position, c = n.gpuAcceleration, l = n.adaptive, d = n.roundOffsets, h4 = n.isFixed, f = o.x, g = f === void 0 ? 0 : f, p = o.y, u = p === void 0 ? 0 : p, y = typeof d == "function" ? d({ x: g, y: u }) : { x: g, y: u };
g = y.x, u = y.y;
var v = o.hasOwnProperty("x"), m = o.hasOwnProperty("y"), x = zn, M = Fn, T = window;
if (l) {
var w = ml(t), _ = "clientHeight", E = "clientWidth";
if (w === xi(t) && (w = Qr(t), cr(w).position !== "static" && a === "absolute" && (_ = "scrollHeight", E = "scrollWidth")), w = w, r === Fn || (r === zn || r === ii) && s === Ya) {
M = ni;
var P = h4 && w === T && T.visualViewport ? T.visualViewport.height : w[_];
u -= P - i.height, u *= c ? 1 : -1;
}
if (r === zn || (r === Fn || r === ni) && s === Ya) {
x = ii;
var S = h4 && w === T && T.visualViewport ? T.visualViewport.width : w[E];
g -= S - i.width, g *= c ? 1 : -1;
}
}
var R = Object.assign({ position: a }, l && QE), A = d === true ? eA({ x: g, y: u }) : { x: g, y: u };
if (g = A.x, u = A.y, c) {
var C;
return Object.assign({}, R, (C = {}, C[M] = m ? "0" : "", C[x] = v ? "0" : "", C.transform = (T.devicePixelRatio || 1) <= 1 ? "translate(" + g + "px, " + u + "px)" : "translate3d(" + g + "px, " + u + "px, 0)", C));
}
return Object.assign({}, R, (e = {}, e[M] = m ? u + "px" : "", e[x] = v ? g + "px" : "", e.transform = "", e));
}
function tA(n) {
var e = n.state, t = n.options, i = t.gpuAcceleration, r = i === void 0 ? true : i, s = t.adaptive, o = s === void 0 ? true : s, a = t.roundOffsets, c = a === void 0 ? true : a, l = { placement: Ii(e.placement), variation: Oo(e.placement), popper: e.elements.popper, popperRect: e.rects.popper, gpuAcceleration: r, isFixed: e.options.strategy === "fixed" };
e.modifiersData.popperOffsets != null && (e.styles.popper = Object.assign({}, e.styles.popper, Rm(Object.assign({}, l, { offsets: e.modifiersData.popperOffsets, position: e.options.strategy, adaptive: o, roundOffsets: c })))), e.modifiersData.arrow != null && (e.styles.arrow = Object.assign({}, e.styles.arrow, Rm(Object.assign({}, l, { offsets: e.modifiersData.arrow, position: "absolute", adaptive: false, roundOffsets: c })))), e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-placement": e.placement });
}
var j0 = { name: "computeStyles", enabled: true, phase: "beforeWrite", fn: tA, data: {} };
var Bl = { passive: true };
function nA(n) {
var e = n.state, t = n.instance, i = n.options, r = i.scroll, s = r === void 0 ? true : r, o = i.resize, a = o === void 0 ? true : o, c = xi(e.elements.popper), l = [].concat(e.scrollParents.reference, e.scrollParents.popper);
return s && l.forEach(function(d) {
d.addEventListener("scroll", t.update, Bl);
}), a && c.addEventListener("resize", t.update, Bl), function() {
s && l.forEach(function(d) {
d.removeEventListener("scroll", t.update, Bl);
}), a && c.removeEventListener("resize", t.update, Bl);
};
}
var $0 = { name: "eventListeners", enabled: true, phase: "write", fn: function() {
}, effect: nA, data: {} };
var iA = { left: "right", right: "left", bottom: "top", top: "bottom" };
function zc(n) {
return n.replace(/left|right|bottom|top/g, function(e) {
return iA[e];
});
}
var rA = { start: "end", end: "start" };
function Pm(n) {
return n.replace(/start|end/g, function(e) {
return rA[e];
});
}
function Sf(n) {
var e = xi(n), t = e.pageXOffset, i = e.pageYOffset;
return { scrollLeft: t, scrollTop: i };
}
function Tf(n) {
return Io(Qr(n)).left + Sf(n).scrollLeft;
}
function sA(n) {
var e = xi(n), t = Qr(n), i = e.visualViewport, r = t.clientWidth, s = t.clientHeight, o = 0, a = 0;
return i && (r = i.width, s = i.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (o = i.offsetLeft, a = i.offsetTop)), { width: r, height: s, x: o + Tf(n), y: a };
}
function oA(n) {
var e, t = Qr(n), i = Sf(n), r = (e = n.ownerDocument) == null ? void 0 : e.body, s = Ss(t.scrollWidth, t.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0), o = Ss(t.scrollHeight, t.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0), a = -i.scrollLeft + Tf(n), c = -i.scrollTop;
return cr(r || t).direction === "rtl" && (a += Ss(t.clientWidth, r ? r.clientWidth : 0) - s), { width: s, height: o, x: a, y: c };
}
function Ef(n) {
var e = cr(n), t = e.overflow, i = e.overflowX, r = e.overflowY;
return /auto|scroll|overlay|hidden/.test(t + r + i);
}
function Z0(n) {
return ["html", "body", "#document"].indexOf(Ni(n)) >= 0 ? n.ownerDocument.body : ti(n) && Ef(n) ? n : Z0(gu(n));
}
function Ua(n, e) {
var t;
e === void 0 && (e = []);
var i = Z0(n), r = i === ((t = n.ownerDocument) == null ? void 0 : t.body), s = xi(i), o = r ? [s].concat(s.visualViewport || [], Ef(i) ? i : []) : i, a = e.concat(o);
return r ? a : a.concat(Ua(gu(o)));
}
function ud(n) {
return Object.assign({}, n, { left: n.x, top: n.y, right: n.x + n.width, bottom: n.y + n.height });
}
function aA(n) {
var e = Io(n);
return e.top = e.top + n.clientTop, e.left = e.left + n.clientLeft, e.bottom = e.top + n.clientHeight, e.right = e.left + n.clientWidth, e.width = n.clientWidth, e.height = n.clientHeight, e.x = e.left, e.y = e.top, e;
}
function Im(n, e) {
return e === U0 ? ud(sA(n)) : Ro(e) ? aA(e) : ud(oA(Qr(n)));
}
function lA(n) {
var e = Ua(gu(n)), t = ["absolute", "fixed"].indexOf(cr(n).position) >= 0, i = t && ti(n) ? ml(n) : n;
return Ro(i) ? e.filter(function(r) {
return Ro(r) && k0(r, i) && Ni(r) !== "body";
}) : [];
}
function cA(n, e, t) {
var i = e === "clippingParents" ? lA(n) : [].concat(e), r = [].concat(i, [t]), s = r[0], o = r.reduce(function(a, c) {
var l = Im(n, c);
return a.top = Ss(l.top, a.top), a.right = Yc(l.right, a.right), a.bottom = Yc(l.bottom, a.bottom), a.left = Ss(l.left, a.left), a;
}, Im(n, s));
return o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o;
}
function X0(n) {
var e = n.reference, t = n.element, i = n.placement, r = i ? Ii(i) : null, s = i ? Oo(i) : null, o = e.x + e.width / 2 - t.width / 2, a = e.y + e.height / 2 - t.height / 2, c;
switch (r) {
case Fn:
c = { x: o, y: e.y - t.height };
break;
case ni:
c = { x: o, y: e.y + e.height };
break;
case ii:
c = { x: e.x + e.width, y: a };
break;
case zn:
c = { x: e.x - t.width, y: a };
break;
default:
c = { x: e.x, y: e.y };
}
var l = r ? _f(r) : null;
if (l != null) {
var d = l === "y" ? "height" : "width";
switch (s) {
case Lo:
c[l] = c[l] - (e[d] / 2 - t[d] / 2);
break;
case Ya:
c[l] = c[l] + (e[d] / 2 - t[d] / 2);
break;
}
}
return c;
}
function Ja(n, e) {
e === void 0 && (e = {});
var t = e, i = t.placement, r = i === void 0 ? n.placement : i, s = t.boundary, o = s === void 0 ? IE : s, a = t.rootBoundary, c = a === void 0 ? U0 : a, l = t.elementContext, d = l === void 0 ? ya : l, h4 = t.altBoundary, f = h4 === void 0 ? false : h4, g = t.padding, p = g === void 0 ? 0 : g, u = H0(typeof p != "number" ? p : W0(p, pl)), y = d === ya ? OE : ya, v = n.rects.popper, m = n.elements[f ? y : d], x = cA(Ro(m) ? m : m.contextElement || Qr(n.elements.popper), o, c), M = Io(n.elements.reference), T = X0({ reference: M, element: v, strategy: "absolute", placement: r }), w = ud(Object.assign({}, v, T)), _ = d === ya ? w : M, E = { top: x.top - _.top + u.top, bottom: _.bottom - x.bottom + u.bottom, left: x.left - _.left + u.left, right: _.right - x.right + u.right }, P = n.modifiersData.offset;
if (d === ya && P) {
var S = P[r];
Object.keys(E).forEach(function(R) {
var A = [ii, ni].indexOf(R) >= 0 ? 1 : -1, C = [Fn, ni].indexOf(R) >= 0 ? "y" : "x";
E[R] += S[C] * A;
});
}
return E;
}
function uA(n, e) {
e === void 0 && (e = {});
var t = e, i = t.placement, r = t.boundary, s = t.rootBoundary, o = t.padding, a = t.flipVariations, c = t.allowedAutoPlacements, l = c === void 0 ? ia : c, d = Oo(i), h4 = d ? a ? Cm : Cm.filter(function(p) {
return Oo(p) === d;
}) : pl, f = h4.filter(function(p) {
return l.indexOf(p) >= 0;
});
f.length === 0 && (f = h4);
var g = f.reduce(function(p, u) {
return p[u] = Ja(n, { placement: u, boundary: r, rootBoundary: s, padding: o })[Ii(u)], p;
}, {});
return Object.keys(g).sort(function(p, u) {
return g[p] - g[u];
});
}
function hA(n) {
if (Ii(n) === xf) return [];
var e = zc(n);
return [Pm(n), e, Pm(e)];
}
function dA(n) {
var e = n.state, t = n.options, i = n.name;
if (!e.modifiersData[i]._skip) {
for (var r = t.mainAxis, s = r === void 0 ? true : r, o = t.altAxis, a = o === void 0 ? true : o, c = t.fallbackPlacements, l = t.padding, d = t.boundary, h4 = t.rootBoundary, f = t.altBoundary, g = t.flipVariations, p = g === void 0 ? true : g, u = t.allowedAutoPlacements, y = e.options.placement, v = Ii(y), m = v === y, x = c || (m || !p ? [zc(y)] : hA(y)), M = [y].concat(x).reduce(function(ie, ae) {
return ie.concat(Ii(ae) === xf ? uA(e, { placement: ae, boundary: d, rootBoundary: h4, padding: l, flipVariations: p, allowedAutoPlacements: u }) : ae);
}, []), T = e.rects.reference, w = e.rects.popper, _ = /* @__PURE__ */ new Map(), E = true, P = M[0], S = 0; S < M.length; S++) {
var R = M[S], A = Ii(R), C = Oo(R) === Lo, L = [Fn, ni].indexOf(A) >= 0, O = L ? "width" : "height", b = Ja(e, { placement: R, boundary: d, rootBoundary: h4, altBoundary: f, padding: l }), I = L ? C ? ii : zn : C ? ni : Fn;
T[O] > w[O] && (I = zc(I));
var N = zc(I), D = [];
if (s && D.push(b[A] <= 0), a && D.push(b[I] <= 0, b[N] <= 0), D.every(function(ie) {
return ie;
})) {
P = R, E = false;
break;
}
_.set(R, D);
}
if (E) for (var U = p ? 3 : 1, V = function(ie) {
var ae = M.find(function(ee) {
var oe = _.get(ee);
if (oe) return oe.slice(0, ie).every(function(j) {
return j;
});
});
if (ae) return P = ae, "break";
}, H = U; H > 0; H--) {
var Y = V(H);
if (Y === "break") break;
}
e.placement !== P && (e.modifiersData[i]._skip = true, e.placement = P, e.reset = true);
}
}
var fA = { name: "flip", enabled: true, phase: "main", fn: dA, requiresIfExists: ["offset"], data: { _skip: false } };
function Om(n, e, t) {
return t === void 0 && (t = { x: 0, y: 0 }), { top: n.top - e.height - t.y, right: n.right - e.width + t.x, bottom: n.bottom - e.height + t.y, left: n.left - e.width - t.x };
}
function Dm(n) {
return [Fn, ii, ni, zn].some(function(e) {
return n[e] >= 0;
});
}
function pA2(n) {
var e = n.state, t = n.name, i = e.rects.reference, r = e.rects.popper, s = e.modifiersData.preventOverflow, o = Ja(e, { elementContext: "reference" }), a = Ja(e, { altBoundary: true }), c = Om(o, i), l = Om(a, r, s), d = Dm(c), h4 = Dm(l);
e.modifiersData[t] = { referenceClippingOffsets: c, popperEscapeOffsets: l, isReferenceHidden: d, hasPopperEscaped: h4 }, e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-reference-hidden": d, "data-popper-escaped": h4 });
}
var mA = { name: "hide", enabled: true, phase: "main", requiresIfExists: ["preventOverflow"], fn: pA2 };
function gA(n, e, t) {
var i = Ii(n), r = [zn, Fn].indexOf(i) >= 0 ? -1 : 1, s = typeof t == "function" ? t(Object.assign({}, e, { placement: n })) : t, o = s[0], a = s[1];
return o = o || 0, a = (a || 0) * r, [zn, ii].indexOf(i) >= 0 ? { x: a, y: o } : { x: o, y: a };
}
function vA(n) {
var e = n.state, t = n.options, i = n.name, r = t.offset, s = r === void 0 ? [0, 0] : r, o = ia.reduce(function(d, h4) {
return d[h4] = gA(h4, e.rects, s), d;
}, {}), a = o[e.placement], c = a.x, l = a.y;
e.modifiersData.popperOffsets != null && (e.modifiersData.popperOffsets.x += c, e.modifiersData.popperOffsets.y += l), e.modifiersData[i] = o;
}
var yA2 = { name: "offset", enabled: true, phase: "main", requires: ["popperOffsets"], fn: vA };
function bA(n) {
var e = n.state, t = n.name;
e.modifiersData[t] = X0({ reference: e.rects.reference, element: e.rects.popper, strategy: "absolute", placement: e.placement });
}
var Y0 = { name: "popperOffsets", enabled: true, phase: "read", fn: bA, data: {} };
function xA(n) {
return n === "x" ? "y" : "x";
}
function wA2(n) {
var e = n.state, t = n.options, i = n.name, r = t.mainAxis, s = r === void 0 ? true : r, o = t.altAxis, a = o === void 0 ? false : o, c = t.boundary, l = t.rootBoundary, d = t.altBoundary, h4 = t.padding, f = t.tether, g = f === void 0 ? true : f, p = t.tetherOffset, u = p === void 0 ? 0 : p, y = Ja(e, { boundary: c, rootBoundary: l, padding: h4, altBoundary: d }), v = Ii(e.placement), m = Oo(e.placement), x = !m, M = _f(v), T = xA(M), w = e.modifiersData.popperOffsets, _ = e.rects.reference, E = e.rects.popper, P = typeof u == "function" ? u(Object.assign({}, e.rects, { placement: e.placement })) : u, S = typeof P == "number" ? { mainAxis: P, altAxis: P } : Object.assign({ mainAxis: 0, altAxis: 0 }, P), R = e.modifiersData.offset ? e.modifiersData.offset[e.placement] : null, A = { x: 0, y: 0 };
if (w) {
if (s) {
var C, L = M === "y" ? Fn : zn, O = M === "y" ? ni : ii, b = M === "y" ? "height" : "width", I = w[M], N = I + y[L], D = I - y[O], U = g ? -E[b] / 2 : 0, V = m === Lo ? _[b] : E[b], H = m === Lo ? -E[b] : -_[b], Y = e.elements.arrow, ie = g && Y ? Mf(Y) : { width: 0, height: 0 }, ae = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : G0(), ee = ae[L], oe = ae[O], j = za(0, _[b], ie[b]), K = x ? _[b] / 2 - U - j - ee - S.mainAxis : V - j - ee - S.mainAxis, $ = x ? -_[b] / 2 + U + j + oe + S.mainAxis : H + j + oe + S.mainAxis, re = e.elements.arrow && ml(e.elements.arrow), k = re ? M === "y" ? re.clientTop || 0 : re.clientLeft || 0 : 0, W = (C = R == null ? void 0 : R[M]) != null ? C : 0, B = I + K - W - k, X = I + $ - W, J = za(g ? Yc(N, B) : N, I, g ? Ss(D, X) : D);
w[M] = J, A[M] = J - I;
}
if (a) {
var F, z = M === "x" ? Fn : zn, te = M === "x" ? ni : ii, se = w[T], ce = T === "y" ? "height" : "width", me = se + y[z], Te = se - y[te], _e = [Fn, zn].indexOf(v) !== -1, fe = (F = R == null ? void 0 : R[T]) != null ? F : 0, we = _e ? me : se - _[ce] - E[ce] - fe + S.altAxis, ne = _e ? se + _[ce] + E[ce] - fe - S.altAxis : Te, pe = g && _e ? XE(we, se, ne) : za(g ? we : me, se, g ? ne : Te);
w[T] = pe, A[T] = pe - se;
}
e.modifiersData[i] = A;
}
}
var MA = { name: "preventOverflow", enabled: true, phase: "main", fn: wA2, requiresIfExists: ["offset"] };
function _A(n) {
return { scrollLeft: n.scrollLeft, scrollTop: n.scrollTop };
}
function SA(n) {
return n === xi(n) || !ti(n) ? Sf(n) : _A(n);
}
function TA(n) {
var e = n.getBoundingClientRect(), t = Po(e.width) / n.offsetWidth || 1, i = Po(e.height) / n.offsetHeight || 1;
return t !== 1 || i !== 1;
}
function EA(n, e, t) {
t === void 0 && (t = false);
var i = ti(e), r = ti(e) && TA(e), s = Qr(e), o = Io(n, r), a = { scrollLeft: 0, scrollTop: 0 }, c = { x: 0, y: 0 };
return (i || !i && !t) && ((Ni(e) !== "body" || Ef(s)) && (a = SA(e)), ti(e) ? (c = Io(e, true), c.x += e.clientLeft, c.y += e.clientTop) : s && (c.x = Tf(s))), { x: o.left + a.scrollLeft - c.x, y: o.top + a.scrollTop - c.y, width: o.width, height: o.height };
}
function AA(n) {
var e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Set(), i = [];
n.forEach(function(s) {
e.set(s.name, s);
});
function r(s) {
t.add(s.name);
var o = [].concat(s.requires || [], s.requiresIfExists || []);
o.forEach(function(a) {
if (!t.has(a)) {
var c = e.get(a);
c && r(c);
}
}), i.push(s);
}
return n.forEach(function(s) {
t.has(s.name) || r(s);
}), i;
}
function CA2(n) {
var e = AA(n);
return HE.reduce(function(t, i) {
return t.concat(e.filter(function(r) {
return r.phase === i;
}));
}, []);
}
function LA(n) {
var e;
return function() {
return e || (e = new Promise(function(t) {
Promise.resolve().then(function() {
e = void 0, t(n());
});
})), e;
};
}
function RA(n) {
var e = n.reduce(function(t, i) {
var r = t[i.name];
return t[i.name] = r ? Object.assign({}, r, i, { options: Object.assign({}, r.options, i.options), data: Object.assign({}, r.data, i.data) }) : i, t;
}, {});
return Object.keys(e).map(function(t) {
return e[t];
});
}
var Nm = { placement: "bottom", modifiers: [], strategy: "absolute" };
function Bm() {
for (var n = arguments.length, e = new Array(n), t = 0; t < n; t++) e[t] = arguments[t];
return !e.some(function(i) {
return !(i && typeof i.getBoundingClientRect == "function");
});
}
function Af(n) {
n === void 0 && (n = {});
var e = n, t = e.defaultModifiers, i = t === void 0 ? [] : t, r = e.defaultOptions, s = r === void 0 ? Nm : r;
return function(o, a, c) {
c === void 0 && (c = s);
var l = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, Nm, s), modifiersData: {}, elements: { reference: o, popper: a }, attributes: {}, styles: {} }, d = [], h4 = false, f = { state: l, setOptions: function(u) {
var y = typeof u == "function" ? u(l.options) : u;
p(), l.options = Object.assign({}, s, l.options, y), l.scrollParents = { reference: Ro(o) ? Ua(o) : o.contextElement ? Ua(o.contextElement) : [], popper: Ua(a) };
var v = CA2(RA([].concat(i, l.options.modifiers)));
return l.orderedModifiers = v.filter(function(m) {
return m.enabled;
}), g(), f.update();
}, forceUpdate: function() {
if (!h4) {
var u = l.elements, y = u.reference, v = u.popper;
if (Bm(y, v)) {
l.rects = { reference: EA(y, ml(v), l.options.strategy === "fixed"), popper: Mf(v) }, l.reset = false, l.placement = l.options.placement, l.orderedModifiers.forEach(function(E) {
return l.modifiersData[E.name] = Object.assign({}, E.data);
});
for (var m = 0; m < l.orderedModifiers.length; m++) {
if (l.reset === true) {
l.reset = false, m = -1;
continue;
}
var x = l.orderedModifiers[m], M = x.fn, T = x.options, w = T === void 0 ? {} : T, _ = x.name;
typeof M == "function" && (l = M({ state: l, options: w, name: _, instance: f }) || l);
}
}
}
}, update: LA(function() {
return new Promise(function(u) {
f.forceUpdate(), u(l);
});
}), destroy: function() {
p(), h4 = true;
} };
if (!Bm(o, a)) return f;
f.setOptions(c).then(function(u) {
!h4 && c.onFirstUpdate && c.onFirstUpdate(u);
});
function g() {
l.orderedModifiers.forEach(function(u) {
var y = u.name, v = u.options, m = v === void 0 ? {} : v, x = u.effect;
if (typeof x == "function") {
var M = x({ state: l, name: y, instance: f, options: m }), T = function() {
};
d.push(M || T);
}
});
}
function p() {
d.forEach(function(u) {
return u();
}), d = [];
}
return f;
};
}
Af();
var PA = [$0, Y0, j0, V0];
Af({ defaultModifiers: PA });
var IA = [$0, Y0, j0, V0, yA2, fA, MA, qE, mA];
var OA = Af({ defaultModifiers: IA });
var DA = (n, e, t = {}) => {
const i = {
name: "updateState",
enabled: true,
phase: "write",
fn: ({ state: c }) => {
const l = NA(c);
Object.assign(o.value, l);
},
requires: ["computeStyles"]
}, r = computed(() => {
const { onFirstUpdate: c, placement: l, strategy: d, modifiers: h4 } = unref(t);
return {
onFirstUpdate: c,
placement: l || "bottom",
strategy: d || "absolute",
modifiers: [
...h4 || [],
i,
{ name: "applyStyles", enabled: false }
]
};
}), s = shallowRef(), o = ref({
styles: {
popper: {
position: unref(r).strategy,
left: "0",
top: "0"
},
arrow: {
position: "absolute"
}
},
attributes: {}
}), a = () => {
s.value && (s.value.destroy(), s.value = void 0);
};
return watch(r, (c) => {
const l = unref(s);
l && l.setOptions(c);
}, {
deep: true
}), watch([n, e], ([c, l]) => {
a(), !(!c || !l) && (s.value = OA(c, l, unref(r)));
}), onBeforeUnmount(() => {
a();
}), {
state: computed(() => {
var c;
return { ...((c = unref(s)) == null ? void 0 : c.state) || {} };
}),
styles: computed(() => unref(o).styles),
attributes: computed(() => unref(o).attributes),
update: () => {
var c;
return (c = unref(s)) == null ? void 0 : c.update();
},
forceUpdate: () => {
var c;
return (c = unref(s)) == null ? void 0 : c.forceUpdate();
},
instanceRef: computed(() => unref(s))
};
};
function NA(n) {
const e = Object.keys(n.elements), t = jc(e.map((r) => [r, n.styles[r] || {}])), i = jc(e.map((r) => [r, n.attributes[r]]));
return {
styles: t,
attributes: i
};
}
function Fm() {
let n;
const e = (i, r) => {
t(), n = window.setTimeout(i, r);
}, t = () => window.clearTimeout(n);
return au(() => t()), {
registerTimeout: e,
cancelTimeout: t
};
}
var hd = {
prefix: Math.floor(Math.random() * 1e4),
current: 0
};
var BA = Symbol("elIdInjection");
var Cf = () => getCurrentInstance() ? inject(BA, hd) : hd;
var vu = (n) => {
const e = Cf();
!Qt && e === hd && Xt("IdInjection", `Looks like you are using server rendering, you must provide a id provider to ensure the hydration process to be succeed
usage: app.provide(ID_INJECTION_KEY, {
prefix: number,
current: number,
})`);
const t = bf();
return computed(() => unref(n) || `${t.value}-id-${e.prefix}-${e.current++}`);
};
var xo = [];
var zm = (n) => {
const e = n;
e.key === Pi.esc && xo.forEach((t) => t(e));
};
var FA = (n) => {
onMounted(() => {
xo.length === 0 && document.addEventListener("keydown", zm), Qt && xo.push(n);
}), onBeforeUnmount(() => {
xo = xo.filter((e) => e !== n), xo.length === 0 && Qt && document.removeEventListener("keydown", zm);
});
};
var Um;
var J0 = () => {
const n = bf(), e = Cf(), t = computed(() => `${n.value}-popper-container-${e.prefix}`), i = computed(() => `#${t.value}`);
return {
id: t,
selector: i
};
};
var zA = (n) => {
const e = document.createElement("div");
return e.id = n, document.body.appendChild(e), e;
};
var UA = () => {
const { id: n, selector: e } = J0();
return onBeforeMount(() => {
Qt && (!Um || !document.body.querySelector(e.value)) && (Um = zA(n.value));
}), {
id: n,
selector: e
};
};
var VA = ft({
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
}
});
var kA = ({
showAfter: n,
hideAfter: e,
autoClose: t,
open: i,
close: r
}) => {
const { registerTimeout: s } = Fm(), {
registerTimeout: o,
cancelTimeout: a
} = Fm();
return {
onOpen: (d) => {
s(() => {
i(d);
const h4 = unref(t);
bt(h4) && h4 > 0 && o(() => {
r(d);
}, h4);
}, unref(n));
},
onClose: (d) => {
a(), s(() => {
r(d);
}, unref(e));
}
};
};
var K0 = Symbol("elForwardRef");
var GA = (n) => {
provide(K0, {
setForwardRef: (t) => {
n.value = t;
}
});
};
var HA = (n) => ({
mounted(e) {
n(e);
},
updated(e) {
n(e);
},
unmounted() {
n(null);
}
});
var Vm = {
current: 0
};
var km = ref(0);
var q0 = 2e3;
var Gm = Symbol("elZIndexContextKey");
var Q0 = Symbol("zIndexContextKey");
var ey = (n) => {
const e = getCurrentInstance() ? inject(Gm, Vm) : Vm, t = n || (getCurrentInstance() ? inject(Q0, void 0) : void 0), i = computed(() => {
const o = unref(t);
return bt(o) ? o : q0;
}), r = computed(() => i.value + km.value), s = () => (e.current++, km.value = e.current, r.value);
return !Qt && !inject(Gm) && Xt("ZIndexInjection", `Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed
usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`), {
initialZIndex: i,
currentZIndex: r,
nextZIndex: s
};
};
function WA(n) {
let e;
function t() {
if (n.value == null)
return;
const { selectionStart: r, selectionEnd: s, value: o } = n.value;
if (r == null || s == null)
return;
const a = o.slice(0, Math.max(0, r)), c = o.slice(Math.max(0, s));
e = {
selectionStart: r,
selectionEnd: s,
value: o,
beforeTxt: a,
afterTxt: c
};
}
function i() {
if (n.value == null || e == null)
return;
const { value: r } = n.value, { beforeTxt: s, afterTxt: o, selectionStart: a } = e;
if (s == null || o == null || a == null)
return;
let c = r.length;
if (r.endsWith(o))
c = r.length - o.length;
else if (r.startsWith(s))
c = s.length;
else {
const l = s[a - 1], d = r.indexOf(l, a - 1);
d !== -1 && (c = d + 1);
}
n.value.setSelectionRange(c, c);
}
return [t, i];
}
var jA = (n, e, t) => Bc(n.subTree).filter((s) => {
var o;
return isVNode(s) && ((o = s.type) == null ? void 0 : o.name) === e && !!s.component;
}).map((s) => s.component.uid).map((s) => t[s]).filter((s) => !!s);
var $A = (n, e) => {
const t = {}, i = shallowRef([]);
return {
children: i,
addChild: (o) => {
t[o.uid] = o, i.value = jA(n, e, t);
},
removeChild: (o) => {
delete t[o], i.value = i.value.filter((a) => a.uid !== o);
}
};
};
var Do = pu({
type: String,
values: N0,
required: false
});
var ty = Symbol("size");
var ZA = () => {
const n = inject(ty, {});
return computed(() => unref(n.size) || "");
};
function ny(n, {
beforeFocus: e,
afterFocus: t,
beforeBlur: i,
afterBlur: r
} = {}) {
const s = getCurrentInstance(), { emit: o } = s, a = shallowRef(), c = ref(false), l = (f) => {
Tn(e) && e(f) || c.value || (c.value = true, o("focus", f), t == null || t());
}, d = (f) => {
var g;
Tn(i) && i(f) || f.relatedTarget && ((g = a.value) != null && g.contains(f.relatedTarget)) || (c.value = false, o("blur", f), r == null || r());
}, h4 = () => {
var f, g;
(f = a.value) != null && f.contains(document.activeElement) && a.value !== document.activeElement || (g = n.value) == null || g.focus();
};
return watch(a, (f) => {
f && f.setAttribute("tabindex", "-1");
}), un(a, "focus", l, true), un(a, "blur", d, true), un(a, "click", h4, true), false, {
isFocused: c,
wrapperRef: a,
handleFocus: l,
handleBlur: d
};
}
function iy({
afterComposition: n,
emit: e
}) {
const t = ref(false), i = (a) => {
e == null || e("compositionstart", a), t.value = true;
}, r = (a) => {
var c;
e == null || e("compositionupdate", a);
const l = (c = a.target) == null ? void 0 : c.value, d = l[l.length - 1] || "";
t.value = !bE(d);
}, s = (a) => {
e == null || e("compositionend", a), t.value && (t.value = false, nextTick(() => n(a)));
};
return {
isComposing: t,
handleComposition: (a) => {
a.type === "compositionend" ? s(a) : r(a);
},
handleCompositionStart: i,
handleCompositionUpdate: r,
handleCompositionEnd: s
};
}
var ry = Symbol("emptyValuesContextKey");
var XA = "use-empty-values";
var YA = ["", void 0, null];
var JA = void 0;
var KA = ft({
emptyValues: Array,
valueOnClear: {
type: [String, Number, Boolean, Function],
default: void 0,
validator: (n) => Tn(n) ? !n() : !n
}
});
var qA = (n, e) => {
const t = getCurrentInstance() ? inject(ry, ref({})) : ref({}), i = computed(() => n.emptyValues || t.value.emptyValues || YA), r = computed(() => Tn(n.valueOnClear) ? n.valueOnClear() : n.valueOnClear !== void 0 ? n.valueOnClear : Tn(t.value.valueOnClear) ? t.value.valueOnClear() : t.value.valueOnClear !== void 0 ? t.value.valueOnClear : JA), s = (o) => i.value.includes(o);
return i.value.includes(r.value) || Xt(XA, "value-on-clear should be a value of empty-values"), {
emptyValues: i,
valueOnClear: r,
isEmptyValue: s
};
};
var QA = ft({
ariaLabel: String,
ariaOrientation: {
type: String,
values: ["horizontal", "vertical", "undefined"]
},
ariaControls: String
});
var Gs = (n) => ZT(QA, n);
var sy = Symbol();
var Jc = ref();
function Lf(n, e = void 0) {
const t = getCurrentInstance() ? inject(sy, Jc) : Jc;
return n ? computed(() => {
var i, r;
return (r = (i = t.value) == null ? void 0 : i[n]) != null ? r : e;
}) : t;
}
function eC(n, e) {
const t = Lf(), i = rt(n, computed(() => {
var a;
return ((a = t.value) == null ? void 0 : a.namespace) || Fc;
})), r = mu(computed(() => {
var a;
return (a = t.value) == null ? void 0 : a.locale;
})), s = ey(computed(() => {
var a;
return ((a = t.value) == null ? void 0 : a.zIndex) || q0;
})), o = computed(() => {
var a;
return unref(e) || ((a = t.value) == null ? void 0 : a.size) || "";
});
return tC(computed(() => unref(t) || {})), {
ns: i,
locale: r,
zIndex: s,
size: o
};
}
var tC = (n, e, t = false) => {
var i;
const r = !!getCurrentInstance(), s = r ? Lf() : void 0, o = (i = void 0) != null ? i : r ? provide : void 0;
if (!o) {
Xt("provideGlobalConfig", "provideGlobalConfig() can only be used inside setup().");
return;
}
const a = computed(() => {
const c = unref(n);
return s != null && s.value ? nC(s.value, c) : c;
});
return o(sy, a), o(B0, computed(() => a.value.locale)), o(F0, computed(() => a.value.namespace)), o(Q0, computed(() => a.value.zIndex)), o(ty, {
size: computed(() => a.value.size || "")
}), o(ry, computed(() => ({
emptyValues: a.value.emptyValues,
valueOnClear: a.value.valueOnClear
}))), (t || !Jc.value) && (Jc.value = a.value), a;
};
var nC = (n, e) => {
const t = [.../* @__PURE__ */ new Set([...Em(n), ...Em(e)])], i = {};
for (const r of t)
i[r] = e[r] !== void 0 ? e[r] : n[r];
return i;
};
var lt = (n, e) => {
const t = n.__vccOpts || n;
for (const [i, r] of e)
t[i] = r;
return t;
};
var iC = ft({
size: {
type: Je([Number, String])
},
color: {
type: String
}
});
var rC = defineComponent({
name: "ElIcon",
inheritAttrs: false
});
var sC = defineComponent({
...rC,
props: iC,
setup(n) {
const e = n, t = rt("icon"), i = computed(() => {
const { size: r, color: s } = e;
return !r && !s ? {} : {
fontSize: mi(r) ? void 0 : Zc(r),
"--color": s
};
});
return (r, s) => (openBlock(), createElementBlock("i", mergeProps({
class: unref(t).b(),
style: unref(i)
}, r.$attrs), [
renderSlot(r.$slots, "default")
], 16));
}
});
var oC = lt(sC, [["__file", "icon.vue"]]);
var It = fn(oC);
var Rf = Symbol("formContextKey");
var Kc = Symbol("formItemContextKey");
var ra = (n, e = {}) => {
const t = ref(void 0), i = e.prop ? t : z0("size"), r = e.global ? t : ZA(), s = e.form ? { size: void 0 } : inject(Rf, void 0), o = e.formItem ? { size: void 0 } : inject(Kc, void 0);
return computed(() => i.value || unref(n) || (o == null ? void 0 : o.size) || (s == null ? void 0 : s.size) || r.value || "");
};
var yu = (n) => {
const e = z0("disabled"), t = inject(Rf, void 0);
return computed(() => e.value || unref(n) || (t == null ? void 0 : t.disabled) || false);
};
var gl = () => {
const n = inject(Rf, void 0), e = inject(Kc, void 0);
return {
form: n,
formItem: e
};
};
var Pf = (n, {
formItemContext: e,
disableIdGeneration: t,
disableIdManagement: i
}) => {
t || (t = ref(false)), i || (i = ref(false));
const r = ref();
let s;
const o = computed(() => {
var a;
return !!(!(n.label || n.ariaLabel) && e && e.inputIds && ((a = e.inputIds) == null ? void 0 : a.length) <= 1);
});
return onMounted(() => {
s = watch([toRef(n, "id"), t], ([a, c]) => {
const l = a ?? (c ? void 0 : vu().value);
l !== r.value && (e != null && e.removeInputId && (r.value && e.removeInputId(r.value), !(i != null && i.value) && !c && l && e.addInputId(l)), r.value = l);
}, { immediate: true });
}), onUnmounted(() => {
s && s(), e != null && e.removeInputId && r.value && e.removeInputId(r.value);
}), {
isLabeledByFormItem: o,
inputId: r
};
};
var ai;
var aC = `
height:0 !important;
visibility:hidden !important;
${X1() ? "" : "overflow:hidden !important;"}
position:absolute !important;
z-index:-1000 !important;
top:0 !important;
right:0 !important;
`;
var lC = [
"letter-spacing",
"line-height",
"padding-top",
"padding-bottom",
"font-family",
"font-weight",
"font-size",
"text-rendering",
"text-transform",
"width",
"text-indent",
"padding-left",
"padding-right",
"border-width",
"box-sizing"
];
function cC(n) {
const e = window.getComputedStyle(n), t = e.getPropertyValue("box-sizing"), i = Number.parseFloat(e.getPropertyValue("padding-bottom")) + Number.parseFloat(e.getPropertyValue("padding-top")), r = Number.parseFloat(e.getPropertyValue("border-bottom-width")) + Number.parseFloat(e.getPropertyValue("border-top-width"));
return { contextStyle: lC.map((o) => `${o}:${e.getPropertyValue(o)}`).join(";"), paddingSize: i, borderSize: r, boxSizing: t };
}
function Hm(n, e = 1, t) {
var i;
ai || (ai = document.createElement("textarea"), document.body.appendChild(ai));
const { paddingSize: r, borderSize: s, boxSizing: o, contextStyle: a } = cC(n);
ai.setAttribute("style", `${a};${aC}`), ai.value = n.value || n.placeholder || "";
let c = ai.scrollHeight;
const l = {};
o === "border-box" ? c = c + s : o === "content-box" && (c = c - r), ai.value = "";
const d = ai.scrollHeight - r;
if (bt(e)) {
let h4 = d * e;
o === "border-box" && (h4 = h4 + r + s), c = Math.max(h4, c), l.minHeight = `${h4}px`;
}
if (bt(t)) {
let h4 = d * t;
o === "border-box" && (h4 = h4 + r + s), c = Math.min(h4, c);
}
return l.height = `${c}px`, (i = ai.parentNode) == null || i.removeChild(ai), ai = void 0, l;
}
var uC = ft({
id: {
type: String,
default: void 0
},
size: Do,
disabled: Boolean,
modelValue: {
type: Je([
String,
Number,
Object
]),
default: ""
},
maxlength: {
type: [String, Number]
},
minlength: {
type: [String, Number]
},
type: {
type: String,
default: "text"
},
resize: {
type: String,
values: ["none", "both", "horizontal", "vertical"]
},
autosize: {
type: Je([Boolean, Object]),
default: false
},
autocomplete: {
type: String,
default: "off"
},
formatter: {
type: Function
},
parser: {
type: Function
},
placeholder: {
type: String
},
form: {
type: String
},
readonly: Boolean,
clearable: Boolean,
showPassword: Boolean,
showWordLimit: Boolean,
suffixIcon: {
type: $r
},
prefixIcon: {
type: $r
},
containerRole: {
type: String,
default: void 0
},
tabindex: {
type: [String, Number],
default: 0
},
validateEvent: {
type: Boolean,
default: true
},
inputStyle: {
type: Je([Object, Array, String]),
default: () => er({})
},
autofocus: Boolean,
rows: {
type: Number,
default: 2
},
...Gs(["ariaLabel"])
});
var hC = {
[Lt]: (n) => Ln(n),
input: (n) => Ln(n),
change: (n) => Ln(n),
focus: (n) => n instanceof FocusEvent,
blur: (n) => n instanceof FocusEvent,
clear: () => true,
mouseleave: (n) => n instanceof MouseEvent,
mouseenter: (n) => n instanceof MouseEvent,
keydown: (n) => n instanceof Event,
compositionstart: (n) => n instanceof CompositionEvent,
compositionupdate: (n) => n instanceof CompositionEvent,
compositionend: (n) => n instanceof CompositionEvent
};
var dC = defineComponent({
name: "ElInput",
inheritAttrs: false
});
var fC = defineComponent({
...dC,
props: uC,
emits: hC,
setup(n, { expose: e, emit: t }) {
const i = n, r = useAttrs(), s = useSlots(), o = computed(() => {
const fe = {};
return i.containerRole === "combobox" && (fe["aria-haspopup"] = r["aria-haspopup"], fe["aria-owns"] = r["aria-owns"], fe["aria-expanded"] = r["aria-expanded"]), fe;
}), a = computed(() => [
i.type === "textarea" ? y.b() : u.b(),
u.m(g.value),
u.is("disabled", p.value),
u.is("exceed", Y.value),
{
[u.b("group")]: s.prepend || s.append,
[u.m("prefix")]: s.prefix || i.prefixIcon,
[u.m("suffix")]: s.suffix || i.suffixIcon || i.clearable || i.showPassword,
[u.bm("suffix", "password-clear")]: D.value && U.value,
[u.b("hidden")]: i.type === "hidden"
},
r.class
]), c = computed(() => [
u.e("wrapper"),
u.is("focus", P.value)
]), l = ME({
excludeKeys: computed(() => Object.keys(o.value))
}), { form: d, formItem: h4 } = gl(), { inputId: f } = Pf(i, {
formItemContext: h4
}), g = ra(), p = yu(), u = rt("input"), y = rt("textarea"), v = shallowRef(), m = shallowRef(), x = ref(false), M = ref(false), T = ref(), w = shallowRef(i.inputStyle), _ = computed(() => v.value || m.value), { wrapperRef: E, isFocused: P, handleFocus: S, handleBlur: R } = ny(_, {
beforeFocus() {
return p.value;
},
afterBlur() {
var fe;
i.validateEvent && ((fe = h4 == null ? void 0 : h4.validate) == null || fe.call(h4, "blur").catch((we) => Xt(we)));
}
}), A = computed(() => {
var fe;
return (fe = d == null ? void 0 : d.statusIcon) != null ? fe : false;
}), C = computed(() => (h4 == null ? void 0 : h4.validateState) || ""), L = computed(() => C.value && D0[C.value]), O = computed(() => M.value ? mE : cE), b = computed(() => [
r.style
]), I = computed(() => [
i.inputStyle,
w.value,
{ resize: i.resize }
]), N = computed(() => rr(i.modelValue) ? "" : String(i.modelValue)), D = computed(() => i.clearable && !p.value && !i.readonly && !!N.value && (P.value || x.value)), U = computed(() => i.showPassword && !p.value && !i.readonly && !!N.value && (!!N.value || P.value)), V = computed(() => i.showWordLimit && !!i.maxlength && (i.type === "text" || i.type === "textarea") && !p.value && !i.readonly && !i.showPassword), H = computed(() => N.value.length), Y = computed(() => !!V.value && H.value > Number(i.maxlength)), ie = computed(() => !!s.suffix || !!i.suffixIcon || D.value || i.showPassword || V.value || !!C.value && A.value), [ae, ee] = WA(v);
Qn(m, (fe) => {
if (K(), !V.value || i.resize !== "both")
return;
const we = fe[0], { width: ne } = we.contentRect;
T.value = {
right: `calc(100% - ${ne + 15 + 6}px)`
};
});
const oe = () => {
const { type: fe, autosize: we } = i;
if (!(!Qt || fe !== "textarea" || !m.value))
if (we) {
const ne = An(we) ? we.minRows : void 0, pe = An(we) ? we.maxRows : void 0, be = Hm(m.value, ne, pe);
w.value = {
overflowY: "hidden",
...be
}, nextTick(() => {
m.value.offsetHeight, w.value = be;
});
} else
w.value = {
minHeight: Hm(m.value).minHeight
};
}, K = /* @__PURE__ */ ((fe) => {
let we = false;
return () => {
var ne;
if (we || !i.autosize)
return;
((ne = m.value) == null ? void 0 : ne.offsetParent) === null || (fe(), we = true);
};
})(oe), $ = () => {
const fe = _.value, we = i.formatter ? i.formatter(N.value) : N.value;
!fe || fe.value === we || (fe.value = we);
}, re = async (fe) => {
ae();
let { value: we } = fe.target;
if (i.formatter && (we = i.parser ? i.parser(we) : we), !W.value) {
if (we === N.value) {
$();
return;
}
t(Lt, we), t("input", we), await nextTick(), $(), ee();
}
}, k = (fe) => {
t("change", fe.target.value);
}, {
isComposing: W,
handleCompositionStart: B,
handleCompositionUpdate: X,
handleCompositionEnd: J
} = iy({ emit: t, afterComposition: re }), F = () => {
M.value = !M.value, z();
}, z = async () => {
var fe;
await nextTick(), (fe = _.value) == null || fe.focus();
}, te = () => {
var fe;
return (fe = _.value) == null ? void 0 : fe.blur();
}, se = (fe) => {
x.value = false, t("mouseleave", fe);
}, ce = (fe) => {
x.value = true, t("mouseenter", fe);
}, me = (fe) => {
t("keydown", fe);
}, Te = () => {
var fe;
(fe = _.value) == null || fe.select();
}, _e = () => {
t(Lt, ""), t("change", ""), t("clear"), t("input", "");
};
return watch(() => i.modelValue, () => {
var fe;
nextTick(() => oe()), i.validateEvent && ((fe = h4 == null ? void 0 : h4.validate) == null || fe.call(h4, "change").catch((we) => Xt(we)));
}), watch(N, () => $()), watch(() => i.type, async () => {
await nextTick(), $(), oe();
}), onMounted(() => {
!i.formatter && i.parser && Xt("ElInput", "If you set the parser, you also need to set the formatter."), $(), nextTick(oe);
}), e({
input: v,
textarea: m,
ref: _,
textareaStyle: I,
autosize: toRef(i, "autosize"),
isComposing: W,
focus: z,
blur: te,
select: Te,
clear: _e,
resizeTextarea: oe
}), (fe, we) => (openBlock(), createElementBlock("div", mergeProps(unref(o), {
class: [
unref(a),
{
[unref(u).bm("group", "append")]: fe.$slots.append,
[unref(u).bm("group", "prepend")]: fe.$slots.prepend
}
],
style: unref(b),
role: fe.containerRole,
onMouseenter: ce,
onMouseleave: se
}), [
createCommentVNode(" input "),
fe.type !== "textarea" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createCommentVNode(" prepend slot "),
fe.$slots.prepend ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(u).be("group", "prepend"))
}, [
renderSlot(fe.$slots, "prepend")
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("div", {
ref_key: "wrapperRef",
ref: E,
class: normalizeClass(unref(c))
}, [
createCommentVNode(" prefix slot "),
fe.$slots.prefix || fe.prefixIcon ? (openBlock(), createElementBlock("span", {
key: 0,
class: normalizeClass(unref(u).e("prefix"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(u).e("prefix-inner"))
}, [
renderSlot(fe.$slots, "prefix"),
fe.prefixIcon ? (openBlock(), createBlock(unref(It), {
key: 0,
class: normalizeClass(unref(u).e("icon"))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(fe.prefixIcon)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 2)
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("input", mergeProps({
id: unref(f),
ref_key: "input",
ref: v,
class: unref(u).e("inner")
}, unref(l), {
minlength: fe.minlength,
maxlength: fe.maxlength,
type: fe.showPassword ? M.value ? "text" : "password" : fe.type,
disabled: unref(p),
readonly: fe.readonly,
autocomplete: fe.autocomplete,
tabindex: fe.tabindex,
"aria-label": fe.ariaLabel,
placeholder: fe.placeholder,
style: fe.inputStyle,
form: fe.form,
autofocus: fe.autofocus,
onCompositionstart: unref(B),
onCompositionupdate: unref(X),
onCompositionend: unref(J),
onInput: re,
onChange: k,
onKeydown: me
}), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
createCommentVNode(" suffix slot "),
unref(ie) ? (openBlock(), createElementBlock("span", {
key: 1,
class: normalizeClass(unref(u).e("suffix"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(u).e("suffix-inner"))
}, [
!unref(D) || !unref(U) || !unref(V) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
renderSlot(fe.$slots, "suffix"),
fe.suffixIcon ? (openBlock(), createBlock(unref(It), {
key: 0,
class: normalizeClass(unref(u).e("icon"))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(fe.suffixIcon)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 64)) : createCommentVNode("v-if", true),
unref(D) ? (openBlock(), createBlock(unref(It), {
key: 1,
class: normalizeClass([unref(u).e("icon"), unref(u).e("clear")]),
onMousedown: withModifiers(unref($a), ["prevent"]),
onClick: _e
}, {
default: withCtx(() => [
createVNode(unref(yf))
]),
_: 1
}, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true),
unref(U) ? (openBlock(), createBlock(unref(It), {
key: 2,
class: normalizeClass([unref(u).e("icon"), unref(u).e("password")]),
onClick: F
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(unref(O))))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true),
unref(V) ? (openBlock(), createElementBlock("span", {
key: 3,
class: normalizeClass(unref(u).e("count"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(u).e("count-inner"))
}, toDisplayString(unref(H)) + " / " + toDisplayString(fe.maxlength), 3)
], 2)) : createCommentVNode("v-if", true),
unref(C) && unref(L) && unref(A) ? (openBlock(), createBlock(unref(It), {
key: 4,
class: normalizeClass([
unref(u).e("icon"),
unref(u).e("validateIcon"),
unref(u).is("loading", unref(C) === "validating")
])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(unref(L))))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 2)
], 2)) : createCommentVNode("v-if", true)
], 2),
createCommentVNode(" append slot "),
fe.$slots.append ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(unref(u).be("group", "append"))
}, [
renderSlot(fe.$slots, "append")
], 2)) : createCommentVNode("v-if", true)
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
createCommentVNode(" textarea "),
createBaseVNode("textarea", mergeProps({
id: unref(f),
ref_key: "textarea",
ref: m,
class: [unref(y).e("inner"), unref(u).is("focus", unref(P))]
}, unref(l), {
minlength: fe.minlength,
maxlength: fe.maxlength,
tabindex: fe.tabindex,
disabled: unref(p),
readonly: fe.readonly,
autocomplete: fe.autocomplete,
style: unref(I),
"aria-label": fe.ariaLabel,
placeholder: fe.placeholder,
form: fe.form,
autofocus: fe.autofocus,
rows: fe.rows,
onCompositionstart: unref(B),
onCompositionupdate: unref(X),
onCompositionend: unref(J),
onInput: re,
onFocus: unref(S),
onBlur: unref(R),
onChange: k,
onKeydown: me
}), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
unref(V) ? (openBlock(), createElementBlock("span", {
key: 0,
style: normalizeStyle(T.value),
class: normalizeClass(unref(u).e("count"))
}, toDisplayString(unref(H)) + " / " + toDisplayString(fe.maxlength), 7)) : createCommentVNode("v-if", true)
], 64))
], 16, ["role"]));
}
});
var pC = lt(fC, [["__file", "input.vue"]]);
var mC = fn(pC);
var Ys = 4;
var gC = {
vertical: {
offset: "offsetHeight",
scroll: "scrollTop",
scrollSize: "scrollHeight",
size: "height",
key: "vertical",
axis: "Y",
client: "clientY",
direction: "top"
},
horizontal: {
offset: "offsetWidth",
scroll: "scrollLeft",
scrollSize: "scrollWidth",
size: "width",
key: "horizontal",
axis: "X",
client: "clientX",
direction: "left"
}
};
var vC = ({
move: n,
size: e,
bar: t
}) => ({
[t.size]: e,
transform: `translate${t.axis}(${n}%)`
});
var If = Symbol("scrollbarContextKey");
var yC = ft({
vertical: Boolean,
size: String,
move: Number,
ratio: {
type: Number,
required: true
},
always: Boolean
});
var bC = "Thumb";
var xC = defineComponent({
__name: "thumb",
props: yC,
setup(n) {
const e = n, t = inject(If), i = rt("scrollbar");
t || na(bC, "can not inject scrollbar context");
const r = ref(), s = ref(), o = ref({}), a = ref(false);
let c = false, l = false, d = Qt ? document.onselectstart : null;
const h4 = computed(() => gC[e.vertical ? "vertical" : "horizontal"]), f = computed(() => vC({
size: e.size,
move: e.move,
bar: h4.value
})), g = computed(() => r.value[h4.value.offset] ** 2 / t.wrapElement[h4.value.scrollSize] / e.ratio / s.value[h4.value.offset]), p = (w) => {
var _;
if (w.stopPropagation(), w.ctrlKey || [1, 2].includes(w.button))
return;
(_ = window.getSelection()) == null || _.removeAllRanges(), y(w);
const E = w.currentTarget;
E && (o.value[h4.value.axis] = E[h4.value.offset] - (w[h4.value.client] - E.getBoundingClientRect()[h4.value.direction]));
}, u = (w) => {
if (!s.value || !r.value || !t.wrapElement)
return;
const _ = Math.abs(w.target.getBoundingClientRect()[h4.value.direction] - w[h4.value.client]), E = s.value[h4.value.offset] / 2, P = (_ - E) * 100 * g.value / r.value[h4.value.offset];
t.wrapElement[h4.value.scroll] = P * t.wrapElement[h4.value.scrollSize] / 100;
}, y = (w) => {
w.stopImmediatePropagation(), c = true, document.addEventListener("mousemove", v), document.addEventListener("mouseup", m), d = document.onselectstart, document.onselectstart = () => false;
}, v = (w) => {
if (!r.value || !s.value || c === false)
return;
const _ = o.value[h4.value.axis];
if (!_)
return;
const E = (r.value.getBoundingClientRect()[h4.value.direction] - w[h4.value.client]) * -1, P = s.value[h4.value.offset] - _, S = (E - P) * 100 * g.value / r.value[h4.value.offset];
t.wrapElement[h4.value.scroll] = S * t.wrapElement[h4.value.scrollSize] / 100;
}, m = () => {
c = false, o.value[h4.value.axis] = 0, document.removeEventListener("mousemove", v), document.removeEventListener("mouseup", m), T(), l && (a.value = false);
}, x = () => {
l = false, a.value = !!e.size;
}, M = () => {
l = true, a.value = c;
};
onBeforeUnmount(() => {
T(), document.removeEventListener("mouseup", m);
});
const T = () => {
document.onselectstart !== d && (document.onselectstart = d);
};
return un(toRef(t, "scrollbarElement"), "mousemove", x), un(toRef(t, "scrollbarElement"), "mouseleave", M), (w, _) => (openBlock(), createBlock(Transition, {
name: unref(i).b("fade"),
persisted: ""
}, {
default: withCtx(() => [
withDirectives(createBaseVNode("div", {
ref_key: "instance",
ref: r,
class: normalizeClass([unref(i).e("bar"), unref(i).is(unref(h4).key)]),
onMousedown: u
}, [
createBaseVNode("div", {
ref_key: "thumb",
ref: s,
class: normalizeClass(unref(i).e("thumb")),
style: normalizeStyle(unref(f)),
onMousedown: p
}, null, 38)
], 34), [
[vShow, w.always || a.value]
])
]),
_: 1
}, 8, ["name"]));
}
});
var Wm = lt(xC, [["__file", "thumb.vue"]]);
var wC = ft({
always: {
type: Boolean,
default: true
},
minSize: {
type: Number,
required: true
}
});
var MC = defineComponent({
__name: "bar",
props: wC,
setup(n, { expose: e }) {
const t = n, i = inject(If), r = ref(0), s = ref(0), o = ref(""), a = ref(""), c = ref(1), l = ref(1);
return e({
handleScroll: (f) => {
if (f) {
const g = f.offsetHeight - Ys, p = f.offsetWidth - Ys;
s.value = f.scrollTop * 100 / g * c.value, r.value = f.scrollLeft * 100 / p * l.value;
}
},
update: () => {
const f = i == null ? void 0 : i.wrapElement;
if (!f)
return;
const g = f.offsetHeight - Ys, p = f.offsetWidth - Ys, u = g ** 2 / f.scrollHeight, y = p ** 2 / f.scrollWidth, v = Math.max(u, t.minSize), m = Math.max(y, t.minSize);
c.value = u / (g - u) / (v / (g - v)), l.value = y / (p - y) / (m / (p - m)), a.value = v + Ys < g ? `${v}px` : "", o.value = m + Ys < p ? `${m}px` : "";
}
}), (f, g) => (openBlock(), createElementBlock(Fragment, null, [
createVNode(Wm, {
move: r.value,
ratio: l.value,
size: o.value,
always: f.always
}, null, 8, ["move", "ratio", "size", "always"]),
createVNode(Wm, {
move: s.value,
ratio: c.value,
size: a.value,
vertical: "",
always: f.always
}, null, 8, ["move", "ratio", "size", "always"])
], 64));
}
});
var _C = lt(MC, [["__file", "bar.vue"]]);
var SC = ft({
height: {
type: [String, Number],
default: ""
},
maxHeight: {
type: [String, Number],
default: ""
},
native: {
type: Boolean,
default: false
},
wrapStyle: {
type: Je([String, Object, Array]),
default: ""
},
wrapClass: {
type: [String, Array],
default: ""
},
viewClass: {
type: [String, Array],
default: ""
},
viewStyle: {
type: [String, Array, Object],
default: ""
},
noresize: Boolean,
tag: {
type: String,
default: "div"
},
always: Boolean,
minSize: {
type: Number,
default: 20
},
tabindex: {
type: [String, Number],
default: void 0
},
id: String,
role: String,
...Gs(["ariaLabel", "ariaOrientation"])
});
var TC = {
scroll: ({
scrollTop: n,
scrollLeft: e
}) => [n, e].every(bt)
};
var dd = "ElScrollbar";
var EC = defineComponent({
name: dd
});
var AC = defineComponent({
...EC,
props: SC,
emits: TC,
setup(n, { expose: e, emit: t }) {
const i = n, r = rt("scrollbar");
let s, o, a = 0, c = 0;
const l = ref(), d = ref(), h4 = ref(), f = ref(), g = computed(() => {
const T = {};
return i.height && (T.height = Zc(i.height)), i.maxHeight && (T.maxHeight = Zc(i.maxHeight)), [i.wrapStyle, T];
}), p = computed(() => [
i.wrapClass,
r.e("wrap"),
{ [r.em("wrap", "hidden-default")]: !i.native }
]), u = computed(() => [r.e("view"), i.viewClass]), y = () => {
var T;
d.value && ((T = f.value) == null || T.handleScroll(d.value), a = d.value.scrollTop, c = d.value.scrollLeft, t("scroll", {
scrollTop: d.value.scrollTop,
scrollLeft: d.value.scrollLeft
}));
};
function v(T, w) {
An(T) ? d.value.scrollTo(T) : bt(T) && bt(w) && d.value.scrollTo(T, w);
}
const m = (T) => {
if (!bt(T)) {
Xt(dd, "value must be a number");
return;
}
d.value.scrollTop = T;
}, x = (T) => {
if (!bt(T)) {
Xt(dd, "value must be a number");
return;
}
d.value.scrollLeft = T;
}, M = () => {
var T;
(T = f.value) == null || T.update();
};
return watch(() => i.noresize, (T) => {
T ? (s == null || s(), o == null || o()) : ({ stop: s } = Qn(h4, M), o = un("resize", M));
}, { immediate: true }), watch(() => [i.maxHeight, i.height], () => {
i.native || nextTick(() => {
var T;
M(), d.value && ((T = f.value) == null || T.handleScroll(d.value));
});
}), provide(If, reactive({
scrollbarElement: l,
wrapElement: d
})), onActivated(() => {
d.value && (d.value.scrollTop = a, d.value.scrollLeft = c);
}), onMounted(() => {
i.native || nextTick(() => {
M();
});
}), onUpdated(() => M()), e({
wrapRef: d,
update: M,
scrollTo: v,
setScrollTop: m,
setScrollLeft: x,
handleScroll: y
}), (T, w) => (openBlock(), createElementBlock("div", {
ref_key: "scrollbarRef",
ref: l,
class: normalizeClass(unref(r).b())
}, [
createBaseVNode("div", {
ref_key: "wrapRef",
ref: d,
class: normalizeClass(unref(p)),
style: normalizeStyle(unref(g)),
tabindex: T.tabindex,
onScroll: y
}, [
(openBlock(), createBlock(resolveDynamicComponent(T.tag), {
id: T.id,
ref_key: "resizeRef",
ref: h4,
class: normalizeClass(unref(u)),
style: normalizeStyle(T.viewStyle),
role: T.role,
"aria-label": T.ariaLabel,
"aria-orientation": T.ariaOrientation
}, {
default: withCtx(() => [
renderSlot(T.$slots, "default")
]),
_: 3
}, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"]))
], 46, ["tabindex"]),
T.native ? createCommentVNode("v-if", true) : (openBlock(), createBlock(_C, {
key: 0,
ref_key: "barRef",
ref: f,
always: T.always,
"min-size": T.minSize
}, null, 8, ["always", "min-size"]))
], 2));
}
});
var CC = lt(AC, [["__file", "scrollbar.vue"]]);
var LC = fn(CC);
var Of = Symbol("popper");
var oy = Symbol("popperContent");
var RC = [
"dialog",
"grid",
"group",
"listbox",
"menu",
"navigation",
"tooltip",
"tree"
];
var ay = ft({
role: {
type: String,
values: RC,
default: "tooltip"
}
});
var PC = defineComponent({
name: "ElPopper",
inheritAttrs: false
});
var IC = defineComponent({
...PC,
props: ay,
setup(n, { expose: e }) {
const t = n, i = ref(), r = ref(), s = ref(), o = ref(), a = computed(() => t.role), c = {
triggerRef: i,
popperInstanceRef: r,
contentRef: s,
referenceRef: o,
role: a
};
return e(c), provide(Of, c), (l, d) => renderSlot(l.$slots, "default");
}
});
var OC = lt(IC, [["__file", "popper.vue"]]);
var ly = ft({
arrowOffset: {
type: Number,
default: 5
}
});
var DC = defineComponent({
name: "ElPopperArrow",
inheritAttrs: false
});
var NC = defineComponent({
...DC,
props: ly,
setup(n, { expose: e }) {
const t = n, i = rt("popper"), { arrowOffset: r, arrowRef: s, arrowStyle: o } = inject(oy, void 0);
return watch(() => t.arrowOffset, (a) => {
r.value = a;
}), onBeforeUnmount(() => {
s.value = void 0;
}), e({
arrowRef: s
}), (a, c) => (openBlock(), createElementBlock("span", {
ref_key: "arrowRef",
ref: s,
class: normalizeClass(unref(i).e("arrow")),
style: normalizeStyle(unref(o)),
"data-popper-arrow": ""
}, null, 6));
}
});
var BC = lt(NC, [["__file", "arrow.vue"]]);
var Ju = "ElOnlyChild";
var FC = defineComponent({
name: Ju,
setup(n, {
slots: e,
attrs: t
}) {
var i;
const r = inject(K0), s = HA((i = r == null ? void 0 : r.setForwardRef) != null ? i : $a);
return () => {
var o;
const a = (o = e.default) == null ? void 0 : o.call(e, t);
if (!a)
return null;
if (a.length > 1)
return Xt(Ju, "requires exact only one valid child."), null;
const c = cy(a);
return c ? withDirectives(cloneVNode(c, t), [[s]]) : (Xt(Ju, "no valid child node found"), null);
};
}
});
function cy(n) {
if (!n)
return null;
const e = n;
for (const t of e) {
if (An(t))
switch (t.type) {
case Comment:
continue;
case Text:
case "svg":
return jm(t);
case Fragment:
return cy(t.children);
default:
return t;
}
return jm(t);
}
return null;
}
function jm(n) {
const e = rt("only-child");
return createVNode("span", {
class: e.e("content")
}, [n]);
}
var uy = ft({
virtualRef: {
type: Je(Object)
},
virtualTriggering: Boolean,
onMouseenter: {
type: Je(Function)
},
onMouseleave: {
type: Je(Function)
},
onClick: {
type: Je(Function)
},
onKeydown: {
type: Je(Function)
},
onFocus: {
type: Je(Function)
},
onBlur: {
type: Je(Function)
},
onContextmenu: {
type: Je(Function)
},
id: String,
open: Boolean
});
var zC = defineComponent({
name: "ElPopperTrigger",
inheritAttrs: false
});
var UC = defineComponent({
...zC,
props: uy,
setup(n, { expose: e }) {
const t = n, { role: i, triggerRef: r } = inject(Of, void 0);
GA(r);
const s = computed(() => a.value ? t.id : void 0), o = computed(() => {
if (i && i.value === "tooltip")
return t.open && t.id ? t.id : void 0;
}), a = computed(() => {
if (i && i.value !== "tooltip")
return i.value;
}), c = computed(() => a.value ? `${t.open}` : void 0);
let l;
const d = [
"onMouseenter",
"onMouseleave",
"onClick",
"onKeydown",
"onFocus",
"onBlur",
"onContextmenu"
];
return onMounted(() => {
watch(() => t.virtualRef, (h4) => {
h4 && (r.value = nr(h4));
}, {
immediate: true
}), watch(r, (h4, f) => {
l == null || l(), l = void 0, Ms(h4) && (d.forEach((g) => {
var p;
const u = t[g];
u && (h4.addEventListener(g.slice(2).toLowerCase(), u), (p = f == null ? void 0 : f.removeEventListener) == null || p.call(f, g.slice(2).toLowerCase(), u));
}), l = watch([s, o, a, c], (g) => {
[
"aria-controls",
"aria-describedby",
"aria-haspopup",
"aria-expanded"
].forEach((p, u) => {
rr(g[u]) ? h4.removeAttribute(p) : h4.setAttribute(p, g[u]);
});
}, { immediate: true })), Ms(f) && [
"aria-controls",
"aria-describedby",
"aria-haspopup",
"aria-expanded"
].forEach((g) => f.removeAttribute(g));
}, {
immediate: true
});
}), onBeforeUnmount(() => {
if (l == null || l(), l = void 0, r.value && Ms(r.value)) {
const h4 = r.value;
d.forEach((f) => {
const g = t[f];
g && h4.removeEventListener(f.slice(2).toLowerCase(), g);
}), r.value = void 0;
}
}), e({
triggerRef: r
}), (h4, f) => h4.virtualTriggering ? createCommentVNode("v-if", true) : (openBlock(), createBlock(unref(FC), mergeProps({ key: 0 }, h4.$attrs, {
"aria-controls": unref(s),
"aria-describedby": unref(o),
"aria-expanded": unref(c),
"aria-haspopup": unref(a)
}), {
default: withCtx(() => [
renderSlot(h4.$slots, "default")
]),
_: 3
}, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"]));
}
});
var VC = lt(UC, [["__file", "trigger.vue"]]);
var Ku = "focus-trap.focus-after-trapped";
var qu = "focus-trap.focus-after-released";
var kC = "focus-trap.focusout-prevented";
var $m = {
cancelable: true,
bubbles: false
};
var GC = {
cancelable: true,
bubbles: false
};
var Zm = "focusAfterTrapped";
var Xm = "focusAfterReleased";
var HC = Symbol("elFocusTrap");
var Df = ref();
var bu = ref(0);
var Nf = ref(0);
var Fl = 0;
var hy = (n) => {
const e = [], t = document.createTreeWalker(n, NodeFilter.SHOW_ELEMENT, {
acceptNode: (i) => {
const r = i.tagName === "INPUT" && i.type === "hidden";
return i.disabled || i.hidden || r ? NodeFilter.FILTER_SKIP : i.tabIndex >= 0 || i === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
}
});
for (; t.nextNode(); )
e.push(t.currentNode);
return e;
};
var Ym = (n, e) => {
for (const t of n)
if (!WC(t, e))
return t;
};
var WC = (n, e) => {
if (false)
return false;
if (getComputedStyle(n).visibility === "hidden")
return true;
for (; n; ) {
if (e && n === e)
return false;
if (getComputedStyle(n).display === "none")
return true;
n = n.parentElement;
}
return false;
};
var jC = (n) => {
const e = hy(n), t = Ym(e, n), i = Ym(e.reverse(), n);
return [t, i];
};
var $C = (n) => n instanceof HTMLInputElement && "select" in n;
var Pr = (n, e) => {
if (n && n.focus) {
const t = document.activeElement;
n.focus({ preventScroll: true }), Nf.value = window.performance.now(), n !== t && $C(n) && e && n.select();
}
};
function Jm(n, e) {
const t = [...n], i = n.indexOf(e);
return i !== -1 && t.splice(i, 1), t;
}
var ZC = () => {
let n = [];
return {
push: (i) => {
const r = n[0];
r && i !== r && r.pause(), n = Jm(n, i), n.unshift(i);
},
remove: (i) => {
var r, s;
n = Jm(n, i), (s = (r = n[0]) == null ? void 0 : r.resume) == null || s.call(r);
}
};
};
var XC = (n, e = false) => {
const t = document.activeElement;
for (const i of n)
if (Pr(i, e), document.activeElement !== t)
return;
};
var Km = ZC();
var YC = () => bu.value > Nf.value;
var zl = () => {
Df.value = "pointer", bu.value = window.performance.now();
};
var qm = () => {
Df.value = "keyboard", bu.value = window.performance.now();
};
var JC = () => (onMounted(() => {
Fl === 0 && (document.addEventListener("mousedown", zl), document.addEventListener("touchstart", zl), document.addEventListener("keydown", qm)), Fl++;
}), onBeforeUnmount(() => {
Fl--, Fl <= 0 && (document.removeEventListener("mousedown", zl), document.removeEventListener("touchstart", zl), document.removeEventListener("keydown", qm));
}), {
focusReason: Df,
lastUserFocusTimestamp: bu,
lastAutomatedFocusTimestamp: Nf
});
var Ul = (n) => new CustomEvent(kC, {
...GC,
detail: n
});
var KC = defineComponent({
name: "ElFocusTrap",
inheritAttrs: false,
props: {
loop: Boolean,
trapped: Boolean,
focusTrapEl: Object,
focusStartEl: {
type: [Object, String],
default: "first"
}
},
emits: [
Zm,
Xm,
"focusin",
"focusout",
"focusout-prevented",
"release-requested"
],
setup(n, { emit: e }) {
const t = ref();
let i, r;
const { focusReason: s } = JC();
FA((p) => {
n.trapped && !o.paused && e("release-requested", p);
});
const o = {
paused: false,
pause() {
this.paused = true;
},
resume() {
this.paused = false;
}
}, a = (p) => {
if (!n.loop && !n.trapped || o.paused)
return;
const { key: u, altKey: y, ctrlKey: v, metaKey: m, currentTarget: x, shiftKey: M } = p, { loop: T } = n, w = u === Pi.tab && !y && !v && !m, _ = document.activeElement;
if (w && _) {
const E = x, [P, S] = jC(E);
if (P && S) {
if (!M && _ === S) {
const A = Ul({
focusReason: s.value
});
e("focusout-prevented", A), A.defaultPrevented || (p.preventDefault(), T && Pr(P, true));
} else if (M && [P, E].includes(_)) {
const A = Ul({
focusReason: s.value
});
e("focusout-prevented", A), A.defaultPrevented || (p.preventDefault(), T && Pr(S, true));
}
} else if (_ === E) {
const A = Ul({
focusReason: s.value
});
e("focusout-prevented", A), A.defaultPrevented || p.preventDefault();
}
}
};
provide(HC, {
focusTrapRef: t,
onKeydown: a
}), watch(() => n.focusTrapEl, (p) => {
p && (t.value = p);
}, { immediate: true }), watch([t], ([p], [u]) => {
p && (p.addEventListener("keydown", a), p.addEventListener("focusin", d), p.addEventListener("focusout", h4)), u && (u.removeEventListener("keydown", a), u.removeEventListener("focusin", d), u.removeEventListener("focusout", h4));
});
const c = (p) => {
e(Zm, p);
}, l = (p) => e(Xm, p), d = (p) => {
const u = unref(t);
if (!u)
return;
const y = p.target, v = p.relatedTarget, m = y && u.contains(y);
n.trapped || v && u.contains(v) || (i = v), m && e("focusin", p), !o.paused && n.trapped && (m ? r = y : Pr(r, true));
}, h4 = (p) => {
const u = unref(t);
if (!(o.paused || !u))
if (n.trapped) {
const y = p.relatedTarget;
!rr(y) && !u.contains(y) && setTimeout(() => {
if (!o.paused && n.trapped) {
const v = Ul({
focusReason: s.value
});
e("focusout-prevented", v), v.defaultPrevented || Pr(r, true);
}
}, 0);
} else {
const y = p.target;
y && u.contains(y) || e("focusout", p);
}
};
async function f() {
await nextTick();
const p = unref(t);
if (p) {
Km.push(o);
const u = p.contains(document.activeElement) ? i : document.activeElement;
if (i = u, !p.contains(u)) {
const v = new Event(Ku, $m);
p.addEventListener(Ku, c), p.dispatchEvent(v), v.defaultPrevented || nextTick(() => {
let m = n.focusStartEl;
Ln(m) || (Pr(m), document.activeElement !== m && (m = "first")), m === "first" && XC(hy(p), true), (document.activeElement === u || m === "container") && Pr(p);
});
}
}
}
function g() {
const p = unref(t);
if (p) {
p.removeEventListener(Ku, c);
const u = new CustomEvent(qu, {
...$m,
detail: {
focusReason: s.value
}
});
p.addEventListener(qu, l), p.dispatchEvent(u), !u.defaultPrevented && (s.value == "keyboard" || !YC() || p.contains(document.activeElement)) && Pr(i ?? document.body), p.removeEventListener(qu, l), Km.remove(o);
}
}
return onMounted(() => {
n.trapped && f(), watch(() => n.trapped, (p) => {
p ? f() : g();
});
}), onBeforeUnmount(() => {
n.trapped && g(), t.value && (t.value.removeEventListener("keydown", a), t.value.removeEventListener("focusin", d), t.value.removeEventListener("focusout", h4), t.value = void 0);
}), {
onKeydown: a
};
}
});
function qC(n, e, t, i, r, s) {
return renderSlot(n.$slots, "default", { handleKeydown: n.onKeydown });
}
var QC = lt(KC, [["render", qC], ["__file", "focus-trap.vue"]]);
var e2 = ["fixed", "absolute"];
var t2 = ft({
boundariesPadding: {
type: Number,
default: 0
},
fallbackPlacements: {
type: Je(Array),
default: void 0
},
gpuAcceleration: {
type: Boolean,
default: true
},
offset: {
type: Number,
default: 12
},
placement: {
type: String,
values: ia,
default: "bottom"
},
popperOptions: {
type: Je(Object),
default: () => ({})
},
strategy: {
type: String,
values: e2,
default: "absolute"
}
});
var dy = ft({
...t2,
id: String,
style: {
type: Je([String, Array, Object])
},
className: {
type: Je([String, Array, Object])
},
effect: {
type: Je(String),
default: "dark"
},
visible: Boolean,
enterable: {
type: Boolean,
default: true
},
pure: Boolean,
focusOnShow: {
type: Boolean,
default: false
},
trapping: {
type: Boolean,
default: false
},
popperClass: {
type: Je([String, Array, Object])
},
popperStyle: {
type: Je([String, Array, Object])
},
referenceEl: {
type: Je(Object)
},
triggerTargetEl: {
type: Je(Object)
},
stopPopperMouseEvent: {
type: Boolean,
default: true
},
virtualTriggering: Boolean,
zIndex: Number,
...Gs(["ariaLabel"])
});
var n2 = {
mouseenter: (n) => n instanceof MouseEvent,
mouseleave: (n) => n instanceof MouseEvent,
focus: () => true,
blur: () => true,
close: () => true
};
var i2 = (n, e = []) => {
const { placement: t, strategy: i, popperOptions: r } = n, s = {
placement: t,
strategy: i,
...r,
modifiers: [...s2(n), ...e]
};
return o2(s, r == null ? void 0 : r.modifiers), s;
};
var r2 = (n) => {
if (Qt)
return nr(n);
};
function s2(n) {
const { offset: e, gpuAcceleration: t, fallbackPlacements: i } = n;
return [
{
name: "offset",
options: {
offset: [0, e ?? 12]
}
},
{
name: "preventOverflow",
options: {
padding: {
top: 2,
bottom: 2,
left: 5,
right: 5
}
}
},
{
name: "flip",
options: {
padding: 5,
fallbackPlacements: i
}
},
{
name: "computeStyles",
options: {
gpuAcceleration: t
}
}
];
}
function o2(n, e) {
e && (n.modifiers = [...n.modifiers, ...e ?? []]);
}
var a2 = 0;
var l2 = (n) => {
const { popperInstanceRef: e, contentRef: t, triggerRef: i, role: r } = inject(Of, void 0), s = ref(), o = ref(), a = computed(() => ({
name: "eventListeners",
enabled: !!n.visible
})), c = computed(() => {
var v;
const m = unref(s), x = (v = unref(o)) != null ? v : a2;
return {
name: "arrow",
enabled: !HT(m),
options: {
element: m,
padding: x
}
};
}), l = computed(() => ({
onFirstUpdate: () => {
p();
},
...i2(n, [
unref(c),
unref(a)
])
})), d = computed(() => r2(n.referenceEl) || unref(i)), { attributes: h4, state: f, styles: g, update: p, forceUpdate: u, instanceRef: y } = DA(d, t, l);
return watch(y, (v) => e.value = v), onMounted(() => {
watch(() => {
var v;
return (v = unref(d)) == null ? void 0 : v.getBoundingClientRect();
}, () => {
p();
});
}), {
attributes: h4,
arrowRef: s,
contentRef: t,
instanceRef: y,
state: f,
styles: g,
role: r,
forceUpdate: u,
update: p
};
};
var c2 = (n, {
attributes: e,
styles: t,
role: i
}) => {
const { nextZIndex: r } = ey(), s = rt("popper"), o = computed(() => unref(e).popper), a = ref(bt(n.zIndex) ? n.zIndex : r()), c = computed(() => [
s.b(),
s.is("pure", n.pure),
s.is(n.effect),
n.popperClass
]), l = computed(() => [
{ zIndex: unref(a) },
unref(t).popper,
n.popperStyle || {}
]), d = computed(() => i.value === "dialog" ? "false" : void 0), h4 = computed(() => unref(t).arrow || {});
return {
ariaModal: d,
arrowStyle: h4,
contentAttrs: o,
contentClass: c,
contentStyle: l,
contentZIndex: a,
updateZIndex: () => {
a.value = bt(n.zIndex) ? n.zIndex : r();
}
};
};
var u2 = (n, e) => {
const t = ref(false), i = ref();
return {
focusStartRef: i,
trapped: t,
onFocusAfterReleased: (l) => {
var d;
((d = l.detail) == null ? void 0 : d.focusReason) !== "pointer" && (i.value = "first", e("blur"));
},
onFocusAfterTrapped: () => {
e("focus");
},
onFocusInTrap: (l) => {
n.visible && !t.value && (l.target && (i.value = l.target), t.value = true);
},
onFocusoutPrevented: (l) => {
n.trapping || (l.detail.focusReason === "pointer" && l.preventDefault(), t.value = false);
},
onReleaseRequested: () => {
t.value = false, e("close");
}
};
};
var h2 = defineComponent({
name: "ElPopperContent"
});
var d2 = defineComponent({
...h2,
props: dy,
emits: n2,
setup(n, { expose: e, emit: t }) {
const i = n, {
focusStartRef: r,
trapped: s,
onFocusAfterReleased: o,
onFocusAfterTrapped: a,
onFocusInTrap: c,
onFocusoutPrevented: l,
onReleaseRequested: d
} = u2(i, t), { attributes: h4, arrowRef: f, contentRef: g, styles: p, instanceRef: u, role: y, update: v } = l2(i), {
ariaModal: m,
arrowStyle: x,
contentAttrs: M,
contentClass: T,
contentStyle: w,
updateZIndex: _
} = c2(i, {
styles: p,
attributes: h4,
role: y
}), E = inject(Kc, void 0), P = ref();
provide(oy, {
arrowStyle: x,
arrowRef: f,
arrowOffset: P
}), E && provide(Kc, {
...E,
addInputId: $a,
removeInputId: $a
});
let S;
const R = (C = true) => {
v(), C && _();
}, A = () => {
R(false), i.visible && i.focusOnShow ? s.value = true : i.visible === false && (s.value = false);
};
return onMounted(() => {
watch(() => i.triggerTargetEl, (C, L) => {
S == null || S(), S = void 0;
const O = unref(C || g.value), b = unref(L || g.value);
Ms(O) && (S = watch([y, () => i.ariaLabel, m, () => i.id], (I) => {
["role", "aria-label", "aria-modal", "id"].forEach((N, D) => {
rr(I[D]) ? O.removeAttribute(N) : O.setAttribute(N, I[D]);
});
}, { immediate: true })), b !== O && Ms(b) && ["role", "aria-label", "aria-modal", "id"].forEach((I) => {
b.removeAttribute(I);
});
}, { immediate: true }), watch(() => i.visible, A, { immediate: true });
}), onBeforeUnmount(() => {
S == null || S(), S = void 0;
}), e({
popperContentRef: g,
popperInstanceRef: u,
updatePopper: R,
contentStyle: w
}), (C, L) => (openBlock(), createElementBlock("div", mergeProps({
ref_key: "contentRef",
ref: g
}, unref(M), {
style: unref(w),
class: unref(T),
tabindex: "-1",
onMouseenter: (O) => C.$emit("mouseenter", O),
onMouseleave: (O) => C.$emit("mouseleave", O)
}), [
createVNode(unref(QC), {
trapped: unref(s),
"trap-on-focus-in": true,
"focus-trap-el": unref(g),
"focus-start-el": unref(r),
onFocusAfterTrapped: unref(a),
onFocusAfterReleased: unref(o),
onFocusin: unref(c),
onFocusoutPrevented: unref(l),
onReleaseRequested: unref(d)
}, {
default: withCtx(() => [
renderSlot(C.$slots, "default")
]),
_: 3
}, 8, ["trapped", "focus-trap-el", "focus-start-el", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusin", "onFocusoutPrevented", "onReleaseRequested"])
], 16, ["onMouseenter", "onMouseleave"]));
}
});
var f2 = lt(d2, [["__file", "content.vue"]]);
var p2 = fn(OC);
var Bf = Symbol("elTooltip");
var Hn = ft({
...VA,
...dy,
appendTo: {
type: Je([String, Object])
},
content: {
type: String,
default: ""
},
rawContent: Boolean,
persistent: Boolean,
visible: {
type: Je(Boolean),
default: null
},
transition: String,
teleported: {
type: Boolean,
default: true
},
disabled: Boolean,
...Gs(["ariaLabel"])
});
var Ka = ft({
...uy,
disabled: Boolean,
trigger: {
type: Je([String, Array]),
default: "hover"
},
triggerKeys: {
type: Je(Array),
default: () => [Pi.enter, Pi.space]
}
});
var {
useModelToggleProps: m2,
useModelToggleEmits: g2,
useModelToggle: v2
} = PE("visible");
var y2 = ft({
...ay,
...m2,
...Hn,
...Ka,
...ly,
showArrow: {
type: Boolean,
default: true
}
});
var b2 = [
...g2,
"before-show",
"before-hide",
"show",
"hide",
"open",
"close"
];
var x2 = (n, e) => Nn(n) ? n.includes(e) : n === e;
var Js = (n, e, t) => (i) => {
x2(unref(n), e) && t(i);
};
var w2 = defineComponent({
name: "ElTooltipTrigger"
});
var M2 = defineComponent({
...w2,
props: Ka,
setup(n, { expose: e }) {
const t = n, i = rt("tooltip"), { controlled: r, id: s, open: o, onOpen: a, onClose: c, onToggle: l } = inject(Bf, void 0), d = ref(null), h4 = () => {
if (unref(r) || t.disabled)
return true;
}, f = toRef(t, "trigger"), g = qi(h4, Js(f, "hover", a)), p = qi(h4, Js(f, "hover", c)), u = qi(h4, Js(f, "click", (M) => {
M.button === 0 && l(M);
})), y = qi(h4, Js(f, "focus", a)), v = qi(h4, Js(f, "focus", c)), m = qi(h4, Js(f, "contextmenu", (M) => {
M.preventDefault(), l(M);
})), x = qi(h4, (M) => {
const { code: T } = M;
t.triggerKeys.includes(T) && (M.preventDefault(), l(M));
});
return e({
triggerRef: d
}), (M, T) => (openBlock(), createBlock(unref(VC), {
id: unref(s),
"virtual-ref": M.virtualRef,
open: unref(o),
"virtual-triggering": M.virtualTriggering,
class: normalizeClass(unref(i).e("trigger")),
onBlur: unref(v),
onClick: unref(u),
onContextmenu: unref(m),
onFocus: unref(y),
onMouseenter: unref(g),
onMouseleave: unref(p),
onKeydown: unref(x)
}, {
default: withCtx(() => [
renderSlot(M.$slots, "default")
]),
_: 3
}, 8, ["id", "virtual-ref", "open", "virtual-triggering", "class", "onBlur", "onClick", "onContextmenu", "onFocus", "onMouseenter", "onMouseleave", "onKeydown"]));
}
});
var _2 = lt(M2, [["__file", "trigger.vue"]]);
var S2 = ft({
to: {
type: Je([String, Object]),
required: true
},
disabled: Boolean
});
var T2 = defineComponent({
__name: "teleport",
props: S2,
setup(n) {
return (e, t) => e.disabled ? renderSlot(e.$slots, "default", { key: 0 }) : (openBlock(), createBlock(Teleport, {
key: 1,
to: e.to
}, [
renderSlot(e.$slots, "default")
], 8, ["to"]));
}
});
var E2 = lt(T2, [["__file", "teleport.vue"]]);
var A2 = fn(E2);
var C2 = defineComponent({
name: "ElTooltipContent",
inheritAttrs: false
});
var L2 = defineComponent({
...C2,
props: Hn,
setup(n, { expose: e }) {
const t = n, { selector: i } = J0(), r = rt("tooltip"), s = ref(null);
let o;
const {
controlled: a,
id: c,
open: l,
trigger: d,
onClose: h4,
onOpen: f,
onShow: g,
onHide: p,
onBeforeShow: u,
onBeforeHide: y
} = inject(Bf, void 0), v = computed(() => t.transition || `${r.namespace.value}-fade-in-linear`), m = computed(() => false ? true : t.persistent);
onBeforeUnmount(() => {
o == null || o();
});
const x = computed(() => unref(m) ? true : unref(l)), M = computed(() => t.disabled ? false : unref(l)), T = computed(() => t.appendTo || i.value), w = computed(() => {
var b;
return (b = t.style) != null ? b : {};
}), _ = ref(true), E = () => {
p(), _.value = true;
}, P = () => {
if (unref(a))
return true;
}, S = qi(P, () => {
t.enterable && unref(d) === "hover" && f();
}), R = qi(P, () => {
unref(d) === "hover" && h4();
}), A = () => {
var b, I;
(I = (b = s.value) == null ? void 0 : b.updatePopper) == null || I.call(b), u == null || u();
}, C = () => {
y == null || y();
}, L = () => {
g(), o = O1(computed(() => {
var b;
return (b = s.value) == null ? void 0 : b.popperContentRef;
}), () => {
if (unref(a))
return;
unref(d) !== "hover" && h4();
});
}, O = () => {
t.virtualTriggering || h4();
};
return watch(() => unref(l), (b) => {
b ? _.value = false : o == null || o();
}, {
flush: "post"
}), watch(() => t.content, () => {
var b, I;
(I = (b = s.value) == null ? void 0 : b.updatePopper) == null || I.call(b);
}), e({
contentRef: s
}), (b, I) => (openBlock(), createBlock(unref(A2), {
disabled: !b.teleported,
to: unref(T)
}, {
default: withCtx(() => [
createVNode(Transition, {
name: unref(v),
onAfterLeave: E,
onBeforeEnter: A,
onAfterEnter: L,
onBeforeLeave: C
}, {
default: withCtx(() => [
unref(x) ? withDirectives((openBlock(), createBlock(unref(f2), mergeProps({
key: 0,
id: unref(c),
ref_key: "contentRef",
ref: s
}, b.$attrs, {
"aria-label": b.ariaLabel,
"aria-hidden": _.value,
"boundaries-padding": b.boundariesPadding,
"fallback-placements": b.fallbackPlacements,
"gpu-acceleration": b.gpuAcceleration,
offset: b.offset,
placement: b.placement,
"popper-options": b.popperOptions,
strategy: b.strategy,
effect: b.effect,
enterable: b.enterable,
pure: b.pure,
"popper-class": b.popperClass,
"popper-style": [b.popperStyle, unref(w)],
"reference-el": b.referenceEl,
"trigger-target-el": b.triggerTargetEl,
visible: unref(M),
"z-index": b.zIndex,
onMouseenter: unref(S),
onMouseleave: unref(R),
onBlur: O,
onClose: unref(h4)
}), {
default: withCtx(() => [
renderSlot(b.$slots, "default")
]),
_: 3
}, 16, ["id", "aria-label", "aria-hidden", "boundaries-padding", "fallback-placements", "gpu-acceleration", "offset", "placement", "popper-options", "strategy", "effect", "enterable", "pure", "popper-class", "popper-style", "reference-el", "trigger-target-el", "visible", "z-index", "onMouseenter", "onMouseleave", "onClose"])), [
[vShow, unref(M)]
]) : createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["name"])
]),
_: 3
}, 8, ["disabled", "to"]));
}
});
var R2 = lt(L2, [["__file", "content.vue"]]);
var P2 = defineComponent({
name: "ElTooltip"
});
var I2 = defineComponent({
...P2,
props: y2,
emits: b2,
setup(n, { expose: e, emit: t }) {
const i = n;
UA();
const r = vu(), s = ref(), o = ref(), a = () => {
var v;
const m = unref(s);
m && ((v = m.popperInstanceRef) == null || v.update());
}, c = ref(false), l = ref(), { show: d, hide: h4, hasUpdateHandler: f } = v2({
indicator: c,
toggleReason: l
}), { onOpen: g, onClose: p } = kA({
showAfter: toRef(i, "showAfter"),
hideAfter: toRef(i, "hideAfter"),
autoClose: toRef(i, "autoClose"),
open: d,
close: h4
}), u = computed(() => gf(i.visible) && !f.value);
provide(Bf, {
controlled: u,
id: r,
open: readonly(c),
trigger: toRef(i, "trigger"),
onOpen: (v) => {
g(v);
},
onClose: (v) => {
p(v);
},
onToggle: (v) => {
unref(c) ? p(v) : g(v);
},
onShow: () => {
t("show", l.value);
},
onHide: () => {
t("hide", l.value);
},
onBeforeShow: () => {
t("before-show", l.value);
},
onBeforeHide: () => {
t("before-hide", l.value);
},
updatePopper: a
}), watch(() => i.disabled, (v) => {
v && c.value && (c.value = false);
});
const y = (v) => {
var m, x;
const M = (x = (m = o.value) == null ? void 0 : m.contentRef) == null ? void 0 : x.popperContentRef, T = (v == null ? void 0 : v.relatedTarget) || document.activeElement;
return M && M.contains(T);
};
return onDeactivated(() => c.value && h4()), e({
popperRef: s,
contentRef: o,
isFocusInsideContent: y,
updatePopper: a,
onOpen: g,
onClose: p,
hide: h4
}), (v, m) => (openBlock(), createBlock(unref(p2), {
ref_key: "popperRef",
ref: s,
role: v.role
}, {
default: withCtx(() => [
createVNode(_2, {
disabled: v.disabled,
trigger: v.trigger,
"trigger-keys": v.triggerKeys,
"virtual-ref": v.virtualRef,
"virtual-triggering": v.virtualTriggering
}, {
default: withCtx(() => [
v.$slots.default ? renderSlot(v.$slots, "default", { key: 0 }) : createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["disabled", "trigger", "trigger-keys", "virtual-ref", "virtual-triggering"]),
createVNode(R2, {
ref_key: "contentRef",
ref: o,
"aria-label": v.ariaLabel,
"boundaries-padding": v.boundariesPadding,
content: v.content,
disabled: v.disabled,
effect: v.effect,
enterable: v.enterable,
"fallback-placements": v.fallbackPlacements,
"hide-after": v.hideAfter,
"gpu-acceleration": v.gpuAcceleration,
offset: v.offset,
persistent: v.persistent,
"popper-class": v.popperClass,
"popper-style": v.popperStyle,
placement: v.placement,
"popper-options": v.popperOptions,
pure: v.pure,
"raw-content": v.rawContent,
"reference-el": v.referenceEl,
"trigger-target-el": v.triggerTargetEl,
"show-after": v.showAfter,
strategy: v.strategy,
teleported: v.teleported,
transition: v.transition,
"virtual-triggering": v.virtualTriggering,
"z-index": v.zIndex,
"append-to": v.appendTo
}, {
default: withCtx(() => [
renderSlot(v.$slots, "content", {}, () => [
v.rawContent ? (openBlock(), createElementBlock("span", {
key: 0,
innerHTML: v.content
}, null, 8, ["innerHTML"])) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(v.content), 1))
]),
v.showArrow ? (openBlock(), createBlock(unref(BC), {
key: 0,
"arrow-offset": v.arrowOffset
}, null, 8, ["arrow-offset"])) : createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["aria-label", "boundaries-padding", "content", "disabled", "effect", "enterable", "fallback-placements", "hide-after", "gpu-acceleration", "offset", "persistent", "popper-class", "popper-style", "placement", "popper-options", "pure", "raw-content", "reference-el", "trigger-target-el", "show-after", "strategy", "teleported", "transition", "virtual-triggering", "z-index", "append-to"])
]),
_: 3
}, 8, ["role"]));
}
});
var O2 = lt(I2, [["__file", "tooltip.vue"]]);
var Ff = fn(O2);
var fy = Symbol("buttonGroupContextKey");
var D2 = (n, e) => {
_E({
from: "type.text",
replacement: "link",
version: "3.0.0",
scope: "props",
ref: "https://element-plus.org/en-US/component/button.html#button-attributes"
}, computed(() => n.type === "text"));
const t = inject(fy, void 0), i = Lf("button"), { form: r } = gl(), s = ra(computed(() => t == null ? void 0 : t.size)), o = yu(), a = ref(), c = useSlots(), l = computed(() => n.type || (t == null ? void 0 : t.type) || ""), d = computed(() => {
var p, u, y;
return (y = (u = n.autoInsertSpace) != null ? u : (p = i.value) == null ? void 0 : p.autoInsertSpace) != null ? y : false;
}), h4 = computed(() => n.tag === "button" ? {
ariaDisabled: o.value || n.loading,
disabled: o.value || n.loading,
autofocus: n.autofocus,
type: n.nativeType
} : {}), f = computed(() => {
var p;
const u = (p = c.default) == null ? void 0 : p.call(c);
if (d.value && (u == null ? void 0 : u.length) === 1) {
const y = u[0];
if ((y == null ? void 0 : y.type) === Text) {
const v = y.children;
return new RegExp("^\\p{Unified_Ideograph}{2}$", "u").test(v.trim());
}
}
return false;
});
return {
_disabled: o,
_size: s,
_type: l,
_ref: a,
_props: h4,
shouldAddSpace: f,
handleClick: (p) => {
if (o.value || n.loading) {
p.stopPropagation();
return;
}
n.nativeType === "reset" && (r == null || r.resetFields()), e("click", p);
}
};
};
var N2 = [
"default",
"primary",
"success",
"warning",
"info",
"danger",
"text",
""
];
var B2 = ["button", "submit", "reset"];
var fd = ft({
size: Do,
disabled: Boolean,
type: {
type: String,
values: N2,
default: ""
},
icon: {
type: $r
},
nativeType: {
type: String,
values: B2,
default: "button"
},
loading: Boolean,
loadingIcon: {
type: $r,
default: () => P0
},
plain: Boolean,
text: Boolean,
link: Boolean,
bg: Boolean,
autofocus: Boolean,
round: Boolean,
circle: Boolean,
color: String,
dark: Boolean,
autoInsertSpace: {
type: Boolean,
default: void 0
},
tag: {
type: Je([String, Object]),
default: "button"
}
});
var F2 = {
click: (n) => n instanceof MouseEvent
};
function yn(n, e) {
z2(n) && (n = "100%");
var t = U2(n);
return n = e === 360 ? n : Math.min(e, Math.max(0, parseFloat(n))), t && (n = parseInt(String(n * e), 10) / 100), Math.abs(n - e) < 1e-6 ? 1 : (e === 360 ? n = (n < 0 ? n % e + e : n % e) / parseFloat(String(e)) : n = n % e / parseFloat(String(e)), n);
}
function Vl(n) {
return Math.min(1, Math.max(0, n));
}
function z2(n) {
return typeof n == "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1;
}
function U2(n) {
return typeof n == "string" && n.indexOf("%") !== -1;
}
function py(n) {
return n = parseFloat(n), (isNaN(n) || n < 0 || n > 1) && (n = 1), n;
}
function kl(n) {
return n <= 1 ? "".concat(Number(n) * 100, "%") : n;
}
function bs(n) {
return n.length === 1 ? "0" + n : String(n);
}
function V2(n, e, t) {
return {
r: yn(n, 255) * 255,
g: yn(e, 255) * 255,
b: yn(t, 255) * 255
};
}
function Qm(n, e, t) {
n = yn(n, 255), e = yn(e, 255), t = yn(t, 255);
var i = Math.max(n, e, t), r = Math.min(n, e, t), s = 0, o = 0, a = (i + r) / 2;
if (i === r)
o = 0, s = 0;
else {
var c = i - r;
switch (o = a > 0.5 ? c / (2 - i - r) : c / (i + r), i) {
case n:
s = (e - t) / c + (e < t ? 6 : 0);
break;
case e:
s = (t - n) / c + 2;
break;
case t:
s = (n - e) / c + 4;
break;
}
s /= 6;
}
return { h: s, s: o, l: a };
}
function Qu(n, e, t) {
return t < 0 && (t += 1), t > 1 && (t -= 1), t < 1 / 6 ? n + (e - n) * (6 * t) : t < 1 / 2 ? e : t < 2 / 3 ? n + (e - n) * (2 / 3 - t) * 6 : n;
}
function k2(n, e, t) {
var i, r, s;
if (n = yn(n, 360), e = yn(e, 100), t = yn(t, 100), e === 0)
r = t, s = t, i = t;
else {
var o = t < 0.5 ? t * (1 + e) : t + e - t * e, a = 2 * t - o;
i = Qu(a, o, n + 1 / 3), r = Qu(a, o, n), s = Qu(a, o, n - 1 / 3);
}
return { r: i * 255, g: r * 255, b: s * 255 };
}
function eg(n, e, t) {
n = yn(n, 255), e = yn(e, 255), t = yn(t, 255);
var i = Math.max(n, e, t), r = Math.min(n, e, t), s = 0, o = i, a = i - r, c = i === 0 ? 0 : a / i;
if (i === r)
s = 0;
else {
switch (i) {
case n:
s = (e - t) / a + (e < t ? 6 : 0);
break;
case e:
s = (t - n) / a + 2;
break;
case t:
s = (n - e) / a + 4;
break;
}
s /= 6;
}
return { h: s, s: c, v: o };
}
function G2(n, e, t) {
n = yn(n, 360) * 6, e = yn(e, 100), t = yn(t, 100);
var i = Math.floor(n), r = n - i, s = t * (1 - e), o = t * (1 - r * e), a = t * (1 - (1 - r) * e), c = i % 6, l = [t, o, s, s, a, t][c], d = [a, t, t, o, s, s][c], h4 = [s, s, a, t, t, o][c];
return { r: l * 255, g: d * 255, b: h4 * 255 };
}
function tg(n, e, t, i) {
var r = [
bs(Math.round(n).toString(16)),
bs(Math.round(e).toString(16)),
bs(Math.round(t).toString(16))
];
return i && r[0].startsWith(r[0].charAt(1)) && r[1].startsWith(r[1].charAt(1)) && r[2].startsWith(r[2].charAt(1)) ? r[0].charAt(0) + r[1].charAt(0) + r[2].charAt(0) : r.join("");
}
function H2(n, e, t, i, r) {
var s = [
bs(Math.round(n).toString(16)),
bs(Math.round(e).toString(16)),
bs(Math.round(t).toString(16)),
bs(W2(i))
];
return r && s[0].startsWith(s[0].charAt(1)) && s[1].startsWith(s[1].charAt(1)) && s[2].startsWith(s[2].charAt(1)) && s[3].startsWith(s[3].charAt(1)) ? s[0].charAt(0) + s[1].charAt(0) + s[2].charAt(0) + s[3].charAt(0) : s.join("");
}
function W2(n) {
return Math.round(parseFloat(n) * 255).toString(16);
}
function ng(n) {
return Gn(n) / 255;
}
function Gn(n) {
return parseInt(n, 16);
}
function j2(n) {
return {
r: n >> 16,
g: (n & 65280) >> 8,
b: n & 255
};
}
var pd = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
goldenrod: "#daa520",
gold: "#ffd700",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavenderblush: "#fff0f5",
lavender: "#e6e6fa",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
rebeccapurple: "#663399",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
};
function $2(n) {
var e = { r: 0, g: 0, b: 0 }, t = 1, i = null, r = null, s = null, o = false, a = false;
return typeof n == "string" && (n = Y2(n)), typeof n == "object" && (Wi(n.r) && Wi(n.g) && Wi(n.b) ? (e = V2(n.r, n.g, n.b), o = true, a = String(n.r).substr(-1) === "%" ? "prgb" : "rgb") : Wi(n.h) && Wi(n.s) && Wi(n.v) ? (i = kl(n.s), r = kl(n.v), e = G2(n.h, i, r), o = true, a = "hsv") : Wi(n.h) && Wi(n.s) && Wi(n.l) && (i = kl(n.s), s = kl(n.l), e = k2(n.h, i, s), o = true, a = "hsl"), Object.prototype.hasOwnProperty.call(n, "a") && (t = n.a)), t = py(t), {
ok: o,
format: n.format || a,
r: Math.min(255, Math.max(e.r, 0)),
g: Math.min(255, Math.max(e.g, 0)),
b: Math.min(255, Math.max(e.b, 0)),
a: t
};
}
var Z2 = "[-\\+]?\\d+%?";
var X2 = "[-\\+]?\\d*\\.\\d+%?";
var Fr = "(?:".concat(X2, ")|(?:").concat(Z2, ")");
var eh = "[\\s|\\(]+(".concat(Fr, ")[,|\\s]+(").concat(Fr, ")[,|\\s]+(").concat(Fr, ")\\s*\\)?");
var th = "[\\s|\\(]+(".concat(Fr, ")[,|\\s]+(").concat(Fr, ")[,|\\s]+(").concat(Fr, ")[,|\\s]+(").concat(Fr, ")\\s*\\)?");
var di = {
CSS_UNIT: new RegExp(Fr),
rgb: new RegExp("rgb" + eh),
rgba: new RegExp("rgba" + th),
hsl: new RegExp("hsl" + eh),
hsla: new RegExp("hsla" + th),
hsv: new RegExp("hsv" + eh),
hsva: new RegExp("hsva" + th),
hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
};
function Y2(n) {
if (n = n.trim().toLowerCase(), n.length === 0)
return false;
var e = false;
if (pd[n])
n = pd[n], e = true;
else if (n === "transparent")
return { r: 0, g: 0, b: 0, a: 0, format: "name" };
var t = di.rgb.exec(n);
return t ? { r: t[1], g: t[2], b: t[3] } : (t = di.rgba.exec(n), t ? { r: t[1], g: t[2], b: t[3], a: t[4] } : (t = di.hsl.exec(n), t ? { h: t[1], s: t[2], l: t[3] } : (t = di.hsla.exec(n), t ? { h: t[1], s: t[2], l: t[3], a: t[4] } : (t = di.hsv.exec(n), t ? { h: t[1], s: t[2], v: t[3] } : (t = di.hsva.exec(n), t ? { h: t[1], s: t[2], v: t[3], a: t[4] } : (t = di.hex8.exec(n), t ? {
r: Gn(t[1]),
g: Gn(t[2]),
b: Gn(t[3]),
a: ng(t[4]),
format: e ? "name" : "hex8"
} : (t = di.hex6.exec(n), t ? {
r: Gn(t[1]),
g: Gn(t[2]),
b: Gn(t[3]),
format: e ? "name" : "hex"
} : (t = di.hex4.exec(n), t ? {
r: Gn(t[1] + t[1]),
g: Gn(t[2] + t[2]),
b: Gn(t[3] + t[3]),
a: ng(t[4] + t[4]),
format: e ? "name" : "hex8"
} : (t = di.hex3.exec(n), t ? {
r: Gn(t[1] + t[1]),
g: Gn(t[2] + t[2]),
b: Gn(t[3] + t[3]),
format: e ? "name" : "hex"
} : false)))))))));
}
function Wi(n) {
return !!di.CSS_UNIT.exec(String(n));
}
var J2 = (
/** @class */
function() {
function n(e, t) {
e === void 0 && (e = ""), t === void 0 && (t = {});
var i;
if (e instanceof n)
return e;
typeof e == "number" && (e = j2(e)), this.originalInput = e;
var r = $2(e);
this.originalInput = e, this.r = r.r, this.g = r.g, this.b = r.b, this.a = r.a, this.roundA = Math.round(100 * this.a) / 100, this.format = (i = t.format) !== null && i !== void 0 ? i : r.format, this.gradientType = t.gradientType, this.r < 1 && (this.r = Math.round(this.r)), this.g < 1 && (this.g = Math.round(this.g)), this.b < 1 && (this.b = Math.round(this.b)), this.isValid = r.ok;
}
return n.prototype.isDark = function() {
return this.getBrightness() < 128;
}, n.prototype.isLight = function() {
return !this.isDark();
}, n.prototype.getBrightness = function() {
var e = this.toRgb();
return (e.r * 299 + e.g * 587 + e.b * 114) / 1e3;
}, n.prototype.getLuminance = function() {
var e = this.toRgb(), t, i, r, s = e.r / 255, o = e.g / 255, a = e.b / 255;
return s <= 0.03928 ? t = s / 12.92 : t = Math.pow((s + 0.055) / 1.055, 2.4), o <= 0.03928 ? i = o / 12.92 : i = Math.pow((o + 0.055) / 1.055, 2.4), a <= 0.03928 ? r = a / 12.92 : r = Math.pow((a + 0.055) / 1.055, 2.4), 0.2126 * t + 0.7152 * i + 0.0722 * r;
}, n.prototype.getAlpha = function() {
return this.a;
}, n.prototype.setAlpha = function(e) {
return this.a = py(e), this.roundA = Math.round(100 * this.a) / 100, this;
}, n.prototype.isMonochrome = function() {
var e = this.toHsl().s;
return e === 0;
}, n.prototype.toHsv = function() {
var e = eg(this.r, this.g, this.b);
return { h: e.h * 360, s: e.s, v: e.v, a: this.a };
}, n.prototype.toHsvString = function() {
var e = eg(this.r, this.g, this.b), t = Math.round(e.h * 360), i = Math.round(e.s * 100), r = Math.round(e.v * 100);
return this.a === 1 ? "hsv(".concat(t, ", ").concat(i, "%, ").concat(r, "%)") : "hsva(".concat(t, ", ").concat(i, "%, ").concat(r, "%, ").concat(this.roundA, ")");
}, n.prototype.toHsl = function() {
var e = Qm(this.r, this.g, this.b);
return { h: e.h * 360, s: e.s, l: e.l, a: this.a };
}, n.prototype.toHslString = function() {
var e = Qm(this.r, this.g, this.b), t = Math.round(e.h * 360), i = Math.round(e.s * 100), r = Math.round(e.l * 100);
return this.a === 1 ? "hsl(".concat(t, ", ").concat(i, "%, ").concat(r, "%)") : "hsla(".concat(t, ", ").concat(i, "%, ").concat(r, "%, ").concat(this.roundA, ")");
}, n.prototype.toHex = function(e) {
return e === void 0 && (e = false), tg(this.r, this.g, this.b, e);
}, n.prototype.toHexString = function(e) {
return e === void 0 && (e = false), "#" + this.toHex(e);
}, n.prototype.toHex8 = function(e) {
return e === void 0 && (e = false), H2(this.r, this.g, this.b, this.a, e);
}, n.prototype.toHex8String = function(e) {
return e === void 0 && (e = false), "#" + this.toHex8(e);
}, n.prototype.toHexShortString = function(e) {
return e === void 0 && (e = false), this.a === 1 ? this.toHexString(e) : this.toHex8String(e);
}, n.prototype.toRgb = function() {
return {
r: Math.round(this.r),
g: Math.round(this.g),
b: Math.round(this.b),
a: this.a
};
}, n.prototype.toRgbString = function() {
var e = Math.round(this.r), t = Math.round(this.g), i = Math.round(this.b);
return this.a === 1 ? "rgb(".concat(e, ", ").concat(t, ", ").concat(i, ")") : "rgba(".concat(e, ", ").concat(t, ", ").concat(i, ", ").concat(this.roundA, ")");
}, n.prototype.toPercentageRgb = function() {
var e = function(t) {
return "".concat(Math.round(yn(t, 255) * 100), "%");
};
return {
r: e(this.r),
g: e(this.g),
b: e(this.b),
a: this.a
};
}, n.prototype.toPercentageRgbString = function() {
var e = function(t) {
return Math.round(yn(t, 255) * 100);
};
return this.a === 1 ? "rgb(".concat(e(this.r), "%, ").concat(e(this.g), "%, ").concat(e(this.b), "%)") : "rgba(".concat(e(this.r), "%, ").concat(e(this.g), "%, ").concat(e(this.b), "%, ").concat(this.roundA, ")");
}, n.prototype.toName = function() {
if (this.a === 0)
return "transparent";
if (this.a < 1)
return false;
for (var e = "#" + tg(this.r, this.g, this.b, false), t = 0, i = Object.entries(pd); t < i.length; t++) {
var r = i[t], s = r[0], o = r[1];
if (e === o)
return s;
}
return false;
}, n.prototype.toString = function(e) {
var t = !!e;
e = e ?? this.format;
var i = false, r = this.a < 1 && this.a >= 0, s = !t && r && (e.startsWith("hex") || e === "name");
return s ? e === "name" && this.a === 0 ? this.toName() : this.toRgbString() : (e === "rgb" && (i = this.toRgbString()), e === "prgb" && (i = this.toPercentageRgbString()), (e === "hex" || e === "hex6") && (i = this.toHexString()), e === "hex3" && (i = this.toHexString(true)), e === "hex4" && (i = this.toHex8String(true)), e === "hex8" && (i = this.toHex8String()), e === "name" && (i = this.toName()), e === "hsl" && (i = this.toHslString()), e === "hsv" && (i = this.toHsvString()), i || this.toHexString());
}, n.prototype.toNumber = function() {
return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
}, n.prototype.clone = function() {
return new n(this.toString());
}, n.prototype.lighten = function(e) {
e === void 0 && (e = 10);
var t = this.toHsl();
return t.l += e / 100, t.l = Vl(t.l), new n(t);
}, n.prototype.brighten = function(e) {
e === void 0 && (e = 10);
var t = this.toRgb();
return t.r = Math.max(0, Math.min(255, t.r - Math.round(255 * -(e / 100)))), t.g = Math.max(0, Math.min(255, t.g - Math.round(255 * -(e / 100)))), t.b = Math.max(0, Math.min(255, t.b - Math.round(255 * -(e / 100)))), new n(t);
}, n.prototype.darken = function(e) {
e === void 0 && (e = 10);
var t = this.toHsl();
return t.l -= e / 100, t.l = Vl(t.l), new n(t);
}, n.prototype.tint = function(e) {
return e === void 0 && (e = 10), this.mix("white", e);
}, n.prototype.shade = function(e) {
return e === void 0 && (e = 10), this.mix("black", e);
}, n.prototype.desaturate = function(e) {
e === void 0 && (e = 10);
var t = this.toHsl();
return t.s -= e / 100, t.s = Vl(t.s), new n(t);
}, n.prototype.saturate = function(e) {
e === void 0 && (e = 10);
var t = this.toHsl();
return t.s += e / 100, t.s = Vl(t.s), new n(t);
}, n.prototype.greyscale = function() {
return this.desaturate(100);
}, n.prototype.spin = function(e) {
var t = this.toHsl(), i = (t.h + e) % 360;
return t.h = i < 0 ? 360 + i : i, new n(t);
}, n.prototype.mix = function(e, t) {
t === void 0 && (t = 50);
var i = this.toRgb(), r = new n(e).toRgb(), s = t / 100, o = {
r: (r.r - i.r) * s + i.r,
g: (r.g - i.g) * s + i.g,
b: (r.b - i.b) * s + i.b,
a: (r.a - i.a) * s + i.a
};
return new n(o);
}, n.prototype.analogous = function(e, t) {
e === void 0 && (e = 6), t === void 0 && (t = 30);
var i = this.toHsl(), r = 360 / t, s = [this];
for (i.h = (i.h - (r * e >> 1) + 720) % 360; --e; )
i.h = (i.h + r) % 360, s.push(new n(i));
return s;
}, n.prototype.complement = function() {
var e = this.toHsl();
return e.h = (e.h + 180) % 360, new n(e);
}, n.prototype.monochromatic = function(e) {
e === void 0 && (e = 6);
for (var t = this.toHsv(), i = t.h, r = t.s, s = t.v, o = [], a = 1 / e; e--; )
o.push(new n({ h: i, s: r, v: s })), s = (s + a) % 1;
return o;
}, n.prototype.splitcomplement = function() {
var e = this.toHsl(), t = e.h;
return [
this,
new n({ h: (t + 72) % 360, s: e.s, l: e.l }),
new n({ h: (t + 216) % 360, s: e.s, l: e.l })
];
}, n.prototype.onBackground = function(e) {
var t = this.toRgb(), i = new n(e).toRgb(), r = t.a + i.a * (1 - t.a);
return new n({
r: (t.r * t.a + i.r * i.a * (1 - t.a)) / r,
g: (t.g * t.a + i.g * i.a * (1 - t.a)) / r,
b: (t.b * t.a + i.b * i.a * (1 - t.a)) / r,
a: r
});
}, n.prototype.triad = function() {
return this.polyad(3);
}, n.prototype.tetrad = function() {
return this.polyad(4);
}, n.prototype.polyad = function(e) {
for (var t = this.toHsl(), i = t.h, r = [this], s = 360 / e, o = 1; o < e; o++)
r.push(new n({ h: (i + o * s) % 360, s: t.s, l: t.l }));
return r;
}, n.prototype.equals = function(e) {
return this.toRgbString() === new n(e).toRgbString();
}, n;
}()
);
function wr(n, e = 20) {
return n.mix("#141414", e).toString();
}
function K2(n) {
const e = yu(), t = rt("button");
return computed(() => {
let i = {}, r = n.color;
if (r) {
const s = r.match(/var\((.*?)\)/);
s && (r = window.getComputedStyle(window.document.documentElement).getPropertyValue(s[1]));
const o = new J2(r), a = n.dark ? o.tint(20).toString() : wr(o, 20);
if (n.plain)
i = t.cssVarBlock({
"bg-color": n.dark ? wr(o, 90) : o.tint(90).toString(),
"text-color": r,
"border-color": n.dark ? wr(o, 50) : o.tint(50).toString(),
"hover-text-color": `var(${t.cssVarName("color-white")})`,
"hover-bg-color": r,
"hover-border-color": r,
"active-bg-color": a,
"active-text-color": `var(${t.cssVarName("color-white")})`,
"active-border-color": a
}), e.value && (i[t.cssVarBlockName("disabled-bg-color")] = n.dark ? wr(o, 90) : o.tint(90).toString(), i[t.cssVarBlockName("disabled-text-color")] = n.dark ? wr(o, 50) : o.tint(50).toString(), i[t.cssVarBlockName("disabled-border-color")] = n.dark ? wr(o, 80) : o.tint(80).toString());
else {
const c = n.dark ? wr(o, 30) : o.tint(30).toString(), l = o.isDark() ? `var(${t.cssVarName("color-white")})` : `var(${t.cssVarName("color-black")})`;
if (i = t.cssVarBlock({
"bg-color": r,
"text-color": l,
"border-color": r,
"hover-bg-color": c,
"hover-text-color": l,
"hover-border-color": c,
"active-bg-color": a,
"active-border-color": a
}), e.value) {
const d = n.dark ? wr(o, 50) : o.tint(50).toString();
i[t.cssVarBlockName("disabled-bg-color")] = d, i[t.cssVarBlockName("disabled-text-color")] = n.dark ? "rgba(255, 255, 255, 0.5)" : `var(${t.cssVarName("color-white")})`, i[t.cssVarBlockName("disabled-border-color")] = d;
}
}
}
return i;
});
}
var q2 = defineComponent({
name: "ElButton"
});
var Q2 = defineComponent({
...q2,
props: fd,
emits: F2,
setup(n, { expose: e, emit: t }) {
const i = n, r = K2(i), s = rt("button"), { _ref: o, _size: a, _type: c, _disabled: l, _props: d, shouldAddSpace: h4, handleClick: f } = D2(i, t), g = computed(() => [
s.b(),
s.m(c.value),
s.m(a.value),
s.is("disabled", l.value),
s.is("loading", i.loading),
s.is("plain", i.plain),
s.is("round", i.round),
s.is("circle", i.circle),
s.is("text", i.text),
s.is("link", i.link),
s.is("has-bg", i.bg)
]);
return e({
ref: o,
size: a,
type: c,
disabled: l,
shouldAddSpace: h4
}), (p, u) => (openBlock(), createBlock(resolveDynamicComponent(p.tag), mergeProps({
ref_key: "_ref",
ref: o
}, unref(d), {
class: unref(g),
style: unref(r),
onClick: unref(f)
}), {
default: withCtx(() => [
p.loading ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
p.$slots.loading ? renderSlot(p.$slots, "loading", { key: 0 }) : (openBlock(), createBlock(unref(It), {
key: 1,
class: normalizeClass(unref(s).is("loading"))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(p.loadingIcon)))
]),
_: 1
}, 8, ["class"]))
], 64)) : p.icon || p.$slots.icon ? (openBlock(), createBlock(unref(It), { key: 1 }, {
default: withCtx(() => [
p.icon ? (openBlock(), createBlock(resolveDynamicComponent(p.icon), { key: 0 })) : renderSlot(p.$slots, "icon", { key: 1 })
]),
_: 3
})) : createCommentVNode("v-if", true),
p.$slots.default ? (openBlock(), createElementBlock("span", {
key: 2,
class: normalizeClass({ [unref(s).em("text", "expand")]: unref(h4) })
}, [
renderSlot(p.$slots, "default")
], 2)) : createCommentVNode("v-if", true)
]),
_: 3
}, 16, ["class", "style", "onClick"]));
}
});
var eL = lt(Q2, [["__file", "button.vue"]]);
var tL = {
size: fd.size,
type: fd.type
};
var nL = defineComponent({
name: "ElButtonGroup"
});
var iL = defineComponent({
...nL,
props: tL,
setup(n) {
const e = n;
provide(fy, reactive({
size: toRef(e, "size"),
type: toRef(e, "type")
}));
const t = rt("button");
return (i, r) => (openBlock(), createElementBlock("div", {
class: normalizeClass(unref(t).b("group"))
}, [
renderSlot(i.$slots, "default")
], 2));
}
});
var my = lt(iL, [["__file", "button-group.vue"]]);
var sa = fn(eL, {
ButtonGroup: my
});
mr(my);
var Nr = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function rL(n) {
return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
}
function xu(n) {
if (n.__esModule) return n;
var e = n.default;
if (typeof e == "function") {
var t = function i() {
return this instanceof i ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);
};
t.prototype = e.prototype;
} else t = {};
return Object.defineProperty(t, "__esModule", { value: true }), Object.keys(n).forEach(function(i) {
var r = Object.getOwnPropertyDescriptor(n, i);
Object.defineProperty(t, i, r.get ? r : {
enumerable: true,
get: function() {
return n[i];
}
});
}), t;
}
var Ir = /* @__PURE__ */ new Map();
if (Qt) {
let n;
document.addEventListener("mousedown", (e) => n = e), document.addEventListener("mouseup", (e) => {
if (n) {
for (const t of Ir.values())
for (const { documentHandler: i } of t)
i(e, n);
n = void 0;
}
});
}
function ig(n, e) {
let t = [];
return Array.isArray(e.arg) ? t = e.arg : Ms(e.arg) && t.push(e.arg), function(i, r) {
const s = e.instance.popperRef, o = i.target, a = r == null ? void 0 : r.target, c = !e || !e.instance, l = !o || !a, d = n.contains(o) || n.contains(a), h4 = n === o, f = t.length && t.some((p) => p == null ? void 0 : p.contains(o)) || t.length && t.includes(a), g = s && (s.contains(o) || s.contains(a));
c || l || d || h4 || f || g || e.value(i, r);
};
}
var sL = {
beforeMount(n, e) {
Ir.has(n) || Ir.set(n, []), Ir.get(n).push({
documentHandler: ig(n, e),
bindingFn: e.value
});
},
updated(n, e) {
Ir.has(n) || Ir.set(n, []);
const t = Ir.get(n), i = t.findIndex((s) => s.bindingFn === e.oldValue), r = {
documentHandler: ig(n, e),
bindingFn: e.value
};
i >= 0 ? t.splice(i, 1, r) : t.push(r);
},
unmounted(n) {
Ir.delete(n);
}
};
var oL = 100;
var aL = 600;
var rg = {
beforeMount(n, e) {
const t = e.value, { interval: i = oL, delay: r = aL } = Tn(t) ? {} : t;
let s, o;
const a = () => Tn(t) ? t() : t.handler(), c = () => {
o && (clearTimeout(o), o = void 0), s && (clearInterval(s), s = void 0);
};
n.addEventListener("mousedown", (l) => {
l.button === 0 && (c(), a(), document.addEventListener("mouseup", () => c(), {
once: true
}), o = setTimeout(() => {
s = setInterval(() => {
a();
}, i);
}, r));
});
}
};
var md = ft({
type: {
type: String,
values: ["primary", "success", "info", "warning", "danger"],
default: "primary"
},
closable: Boolean,
disableTransitions: Boolean,
hit: Boolean,
color: String,
size: {
type: String,
values: N0
},
effect: {
type: String,
values: ["dark", "light", "plain"],
default: "light"
},
round: Boolean
});
var lL = {
close: (n) => n instanceof MouseEvent,
click: (n) => n instanceof MouseEvent
};
var cL = defineComponent({
name: "ElTag"
});
var uL = defineComponent({
...cL,
props: md,
emits: lL,
setup(n, { emit: e }) {
const t = n, i = ra(), r = rt("tag"), s = computed(() => {
const { type: l, hit: d, effect: h4, closable: f, round: g } = t;
return [
r.b(),
r.is("closable", f),
r.m(l || "primary"),
r.m(i.value),
r.m(h4),
r.is("hit", d),
r.is("round", g)
];
}), o = (l) => {
e("close", l);
}, a = (l) => {
e("click", l);
}, c = (l) => {
l.component.subTree.component.bum = null;
};
return (l, d) => l.disableTransitions ? (openBlock(), createElementBlock("span", {
key: 0,
class: normalizeClass(unref(s)),
style: normalizeStyle({ backgroundColor: l.color }),
onClick: a
}, [
createBaseVNode("span", {
class: normalizeClass(unref(r).e("content"))
}, [
renderSlot(l.$slots, "default")
], 2),
l.closable ? (openBlock(), createBlock(unref(It), {
key: 0,
class: normalizeClass(unref(r).e("close")),
onClick: withModifiers(o, ["stop"])
}, {
default: withCtx(() => [
createVNode(unref(cd))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
], 6)) : (openBlock(), createBlock(Transition, {
key: 1,
name: `${unref(r).namespace.value}-zoom-in-center`,
appear: "",
onVnodeMounted: c
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(unref(s)),
style: normalizeStyle({ backgroundColor: l.color }),
onClick: a
}, [
createBaseVNode("span", {
class: normalizeClass(unref(r).e("content"))
}, [
renderSlot(l.$slots, "default")
], 2),
l.closable ? (openBlock(), createBlock(unref(It), {
key: 0,
class: normalizeClass(unref(r).e("close")),
onClick: withModifiers(o, ["stop"])
}, {
default: withCtx(() => [
createVNode(unref(cd))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
], 6)
]),
_: 3
}, 8, ["name"]));
}
});
var hL = lt(uL, [["__file", "tag.vue"]]);
var dL = fn(hL);
var gy = Symbol("rowContextKey");
var fL = [
"start",
"center",
"end",
"space-around",
"space-between",
"space-evenly"
];
var pL = ["top", "middle", "bottom"];
var mL = ft({
tag: {
type: String,
default: "div"
},
gutter: {
type: Number,
default: 0
},
justify: {
type: String,
values: fL,
default: "start"
},
align: {
type: String,
values: pL
}
});
var gL = defineComponent({
name: "ElRow"
});
var vL = defineComponent({
...gL,
props: mL,
setup(n) {
const e = n, t = rt("row"), i = computed(() => e.gutter);
provide(gy, {
gutter: i
});
const r = computed(() => {
const o = {};
return e.gutter && (o.marginRight = o.marginLeft = `-${e.gutter / 2}px`), o;
}), s = computed(() => [
t.b(),
t.is(`justify-${e.justify}`, e.justify !== "start"),
t.is(`align-${e.align}`, !!e.align)
]);
return (o, a) => (openBlock(), createBlock(resolveDynamicComponent(o.tag), {
class: normalizeClass(unref(s)),
style: normalizeStyle(unref(r))
}, {
default: withCtx(() => [
renderSlot(o.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]));
}
});
var yL = lt(vL, [["__file", "row.vue"]]);
var Vi = fn(yL);
var bL = ft({
tag: {
type: String,
default: "div"
},
span: {
type: Number,
default: 24
},
offset: {
type: Number,
default: 0
},
pull: {
type: Number,
default: 0
},
push: {
type: Number,
default: 0
},
xs: {
type: Je([Number, Object]),
default: () => er({})
},
sm: {
type: Je([Number, Object]),
default: () => er({})
},
md: {
type: Je([Number, Object]),
default: () => er({})
},
lg: {
type: Je([Number, Object]),
default: () => er({})
},
xl: {
type: Je([Number, Object]),
default: () => er({})
}
});
var xL = defineComponent({
name: "ElCol"
});
var wL = defineComponent({
...xL,
props: bL,
setup(n) {
const e = n, { gutter: t } = inject(gy, { gutter: computed(() => 0) }), i = rt("col"), r = computed(() => {
const o = {};
return t.value && (o.paddingLeft = o.paddingRight = `${t.value / 2}px`), o;
}), s = computed(() => {
const o = [];
return ["span", "offset", "pull", "push"].forEach((l) => {
const d = e[l];
bt(d) && (l === "span" ? o.push(i.b(`${e[l]}`)) : d > 0 && o.push(i.b(`${l}-${e[l]}`)));
}), ["xs", "sm", "md", "lg", "xl"].forEach((l) => {
bt(e[l]) ? o.push(i.b(`${l}-${e[l]}`)) : An(e[l]) && Object.entries(e[l]).forEach(([d, h4]) => {
o.push(d !== "span" ? i.b(`${l}-${d}-${h4}`) : i.b(`${l}-${h4}`));
});
}), t.value && o.push(i.is("guttered")), [i.b(), o];
});
return (o, a) => (openBlock(), createBlock(resolveDynamicComponent(o.tag), {
class: normalizeClass(unref(s)),
style: normalizeStyle(unref(r))
}, {
default: withCtx(() => [
renderSlot(o.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]));
}
});
var ML = lt(wL, [["__file", "col.vue"]]);
var wi = fn(ML);
var sg = (n) => bt(n) || Ln(n) || Nn(n);
var _L = ft({
accordion: Boolean,
modelValue: {
type: Je([Array, String, Number]),
default: () => er([])
}
});
var SL = {
[Lt]: sg,
[qr]: sg
};
var vy = Symbol("collapseContextKey");
var TL = (n, e) => {
const t = ref(Ai(n.modelValue)), i = (s) => {
t.value = s;
const o = n.accordion ? t.value[0] : t.value;
e(Lt, o), e(qr, o);
}, r = (s) => {
if (n.accordion)
i([t.value[0] === s ? "" : s]);
else {
const o = [...t.value], a = o.indexOf(s);
a > -1 ? o.splice(a, 1) : o.push(s), i(o);
}
};
return watch(() => n.modelValue, () => t.value = Ai(n.modelValue), { deep: true }), provide(vy, {
activeNames: t,
handleItemClick: r
}), {
activeNames: t,
setActiveNames: i
};
};
var EL = () => {
const n = rt("collapse");
return {
rootKls: computed(() => n.b())
};
};
var AL = defineComponent({
name: "ElCollapse"
});
var CL = defineComponent({
...AL,
props: _L,
emits: SL,
setup(n, { expose: e, emit: t }) {
const i = n, { activeNames: r, setActiveNames: s } = TL(i, t), { rootKls: o } = EL();
return e({
activeNames: r,
setActiveNames: s
}), (a, c) => (openBlock(), createElementBlock("div", {
class: normalizeClass(unref(o))
}, [
renderSlot(a.$slots, "default")
], 2));
}
});
var LL = lt(CL, [["__file", "collapse.vue"]]);
var RL = defineComponent({
name: "ElCollapseTransition"
});
var PL = defineComponent({
...RL,
setup(n) {
const e = rt("collapse-transition"), t = (r) => {
r.style.maxHeight = "", r.style.overflow = r.dataset.oldOverflow, r.style.paddingTop = r.dataset.oldPaddingTop, r.style.paddingBottom = r.dataset.oldPaddingBottom;
}, i = {
beforeEnter(r) {
r.dataset || (r.dataset = {}), r.dataset.oldPaddingTop = r.style.paddingTop, r.dataset.oldPaddingBottom = r.style.paddingBottom, r.style.height && (r.dataset.elExistsHeight = r.style.height), r.style.maxHeight = 0, r.style.paddingTop = 0, r.style.paddingBottom = 0;
},
enter(r) {
requestAnimationFrame(() => {
r.dataset.oldOverflow = r.style.overflow, r.dataset.elExistsHeight ? r.style.maxHeight = r.dataset.elExistsHeight : r.scrollHeight !== 0 ? r.style.maxHeight = `${r.scrollHeight}px` : r.style.maxHeight = 0, r.style.paddingTop = r.dataset.oldPaddingTop, r.style.paddingBottom = r.dataset.oldPaddingBottom, r.style.overflow = "hidden";
});
},
afterEnter(r) {
r.style.maxHeight = "", r.style.overflow = r.dataset.oldOverflow;
},
enterCancelled(r) {
t(r);
},
beforeLeave(r) {
r.dataset || (r.dataset = {}), r.dataset.oldPaddingTop = r.style.paddingTop, r.dataset.oldPaddingBottom = r.style.paddingBottom, r.dataset.oldOverflow = r.style.overflow, r.style.maxHeight = `${r.scrollHeight}px`, r.style.overflow = "hidden";
},
leave(r) {
r.scrollHeight !== 0 && (r.style.maxHeight = 0, r.style.paddingTop = 0, r.style.paddingBottom = 0);
},
afterLeave(r) {
t(r);
},
leaveCancelled(r) {
t(r);
}
};
return (r, s) => (openBlock(), createBlock(Transition, mergeProps({
name: unref(e).b()
}, toHandlers(i)), {
default: withCtx(() => [
renderSlot(r.$slots, "default")
]),
_: 3
}, 16, ["name"]));
}
});
var IL = lt(PL, [["__file", "collapse-transition.vue"]]);
var OL = fn(IL);
var DL = ft({
title: {
type: String,
default: ""
},
name: {
type: Je([String, Number]),
default: void 0
},
icon: {
type: $r,
default: jr
},
disabled: Boolean
});
var NL = (n) => {
const e = inject(vy), { namespace: t } = rt("collapse"), i = ref(false), r = ref(false), s = Cf(), o = computed(() => s.current++), a = computed(() => {
var f;
return (f = n.name) != null ? f : `${t.value}-id-${s.prefix}-${unref(o)}`;
}), c = computed(() => e == null ? void 0 : e.activeNames.value.includes(unref(a)));
return {
focusing: i,
id: o,
isActive: c,
handleFocus: () => {
setTimeout(() => {
r.value ? r.value = false : i.value = true;
}, 50);
},
handleHeaderClick: () => {
n.disabled || (e == null || e.handleItemClick(unref(a)), i.value = false, r.value = true);
},
handleEnterClick: () => {
e == null || e.handleItemClick(unref(a));
}
};
};
var BL = (n, { focusing: e, isActive: t, id: i }) => {
const r = rt("collapse"), s = computed(() => [
r.b("item"),
r.is("active", unref(t)),
r.is("disabled", n.disabled)
]), o = computed(() => [
r.be("item", "header"),
r.is("active", unref(t)),
{ focusing: unref(e) && !n.disabled }
]), a = computed(() => [
r.be("item", "arrow"),
r.is("active", unref(t))
]), c = computed(() => r.be("item", "wrap")), l = computed(() => r.be("item", "content")), d = computed(() => r.b(`content-${unref(i)}`)), h4 = computed(() => r.b(`head-${unref(i)}`));
return {
arrowKls: a,
headKls: o,
rootKls: s,
itemWrapperKls: c,
itemContentKls: l,
scopedContentId: d,
scopedHeadId: h4
};
};
var FL = defineComponent({
name: "ElCollapseItem"
});
var zL = defineComponent({
...FL,
props: DL,
setup(n, { expose: e }) {
const t = n, {
focusing: i,
id: r,
isActive: s,
handleFocus: o,
handleHeaderClick: a,
handleEnterClick: c
} = NL(t), {
arrowKls: l,
headKls: d,
rootKls: h4,
itemWrapperKls: f,
itemContentKls: g,
scopedContentId: p,
scopedHeadId: u
} = BL(t, { focusing: i, isActive: s, id: r });
return e({
isActive: s
}), (y, v) => (openBlock(), createElementBlock("div", {
class: normalizeClass(unref(h4))
}, [
createBaseVNode("button", {
id: unref(u),
class: normalizeClass(unref(d)),
"aria-expanded": unref(s),
"aria-controls": unref(p),
"aria-describedby": unref(p),
tabindex: y.disabled ? -1 : 0,
type: "button",
onClick: unref(a),
onKeydown: withKeys(withModifiers(unref(c), ["stop", "prevent"]), ["space", "enter"]),
onFocus: unref(o),
onBlur: (m) => i.value = false
}, [
renderSlot(y.$slots, "title", {}, () => [
createTextVNode(toDisplayString(y.title), 1)
]),
renderSlot(y.$slots, "icon", { isActive: unref(s) }, () => [
createVNode(unref(It), {
class: normalizeClass(unref(l))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(y.icon)))
]),
_: 1
}, 8, ["class"])
])
], 42, ["id", "aria-expanded", "aria-controls", "aria-describedby", "tabindex", "onClick", "onKeydown", "onFocus", "onBlur"]),
createVNode(unref(OL), null, {
default: withCtx(() => [
withDirectives(createBaseVNode("div", {
id: unref(p),
role: "region",
class: normalizeClass(unref(f)),
"aria-hidden": !unref(s),
"aria-labelledby": unref(u)
}, [
createBaseVNode("div", {
class: normalizeClass(unref(g))
}, [
renderSlot(y.$slots, "default")
], 2)
], 10, ["id", "aria-hidden", "aria-labelledby"]), [
[vShow, unref(s)]
])
]),
_: 3
})
], 2));
}
});
var yy = lt(zL, [["__file", "collapse-item.vue"]]);
var by = fn(LL, {
CollapseItem: yy
});
var xy = mr(yy);
var UL = defineComponent({
name: "ElContainer"
});
var VL = defineComponent({
...UL,
props: {
direction: {
type: String
}
},
setup(n) {
const e = n, t = useSlots(), i = rt("container"), r = computed(() => e.direction === "vertical" ? true : e.direction === "horizontal" ? false : t && t.default ? t.default().some((o) => {
const a = o.type.name;
return a === "ElHeader" || a === "ElFooter";
}) : false);
return (s, o) => (openBlock(), createElementBlock("section", {
class: normalizeClass([unref(i).b(), unref(i).is("vertical", unref(r))])
}, [
renderSlot(s.$slots, "default")
], 2));
}
});
var kL = lt(VL, [["__file", "container.vue"]]);
var GL = defineComponent({
name: "ElAside"
});
var HL = defineComponent({
...GL,
props: {
width: {
type: String,
default: null
}
},
setup(n) {
const e = n, t = rt("aside"), i = computed(() => e.width ? t.cssVarBlock({ width: e.width }) : {});
return (r, s) => (openBlock(), createElementBlock("aside", {
class: normalizeClass(unref(t).b()),
style: normalizeStyle(unref(i))
}, [
renderSlot(r.$slots, "default")
], 6));
}
});
var wy = lt(HL, [["__file", "aside.vue"]]);
var WL = defineComponent({
name: "ElFooter"
});
var jL = defineComponent({
...WL,
props: {
height: {
type: String,
default: null
}
},
setup(n) {
const e = n, t = rt("footer"), i = computed(() => e.height ? t.cssVarBlock({ height: e.height }) : {});
return (r, s) => (openBlock(), createElementBlock("footer", {
class: normalizeClass(unref(t).b()),
style: normalizeStyle(unref(i))
}, [
renderSlot(r.$slots, "default")
], 6));
}
});
var My = lt(jL, [["__file", "footer.vue"]]);
var $L = defineComponent({
name: "ElHeader"
});
var ZL = defineComponent({
...$L,
props: {
height: {
type: String,
default: null
}
},
setup(n) {
const e = n, t = rt("header"), i = computed(() => e.height ? t.cssVarBlock({
height: e.height
}) : {});
return (r, s) => (openBlock(), createElementBlock("header", {
class: normalizeClass(unref(t).b()),
style: normalizeStyle(unref(i))
}, [
renderSlot(r.$slots, "default")
], 6));
}
});
var _y = lt(ZL, [["__file", "header.vue"]]);
var XL = defineComponent({
name: "ElMain"
});
var YL = defineComponent({
...XL,
setup(n) {
const e = rt("main");
return (t, i) => (openBlock(), createElementBlock("main", {
class: normalizeClass(unref(e).b())
}, [
renderSlot(t.$slots, "default")
], 2));
}
});
var Sy = lt(YL, [["__file", "main.vue"]]);
var ki = fn(kL, {
Aside: wy,
Footer: My,
Header: _y,
Main: Sy
});
mr(wy);
var Ty = mr(My);
var JL = mr(_y);
var gr = mr(Sy);
var KL = defineComponent({
inheritAttrs: false
});
function qL(n, e, t, i, r, s) {
return renderSlot(n.$slots, "default");
}
var QL = lt(KL, [["render", qL], ["__file", "collection.vue"]]);
var eR = defineComponent({
name: "ElCollectionItem",
inheritAttrs: false
});
function tR(n, e, t, i, r, s) {
return renderSlot(n.$slots, "default");
}
var nR = lt(eR, [["render", tR], ["__file", "collection-item.vue"]]);
var iR = "data-el-collection-item";
var rR = (n) => {
const e = `El${n}Collection`, t = `${e}Item`, i = Symbol(e), r = Symbol(t), s = {
...QL,
name: e,
setup() {
const a = ref(null), c = /* @__PURE__ */ new Map();
provide(i, {
itemMap: c,
getItems: () => {
const d = unref(a);
if (!d)
return [];
const h4 = Array.from(d.querySelectorAll(`[${iR}]`));
return [...c.values()].sort((g, p) => h4.indexOf(g.ref) - h4.indexOf(p.ref));
},
collectionRef: a
});
}
}, o = {
...nR,
name: t,
setup(a, { attrs: c }) {
const l = ref(null), d = inject(i, void 0);
provide(r, {
collectionItemRef: l
}), onMounted(() => {
const h4 = unref(l);
h4 && d.itemMap.set(h4, {
ref: h4,
...c
});
}), onBeforeUnmount(() => {
const h4 = unref(l);
d.itemMap.delete(h4);
});
}
};
return {
COLLECTION_INJECTION_KEY: i,
COLLECTION_ITEM_INJECTION_KEY: r,
ElCollection: s,
ElCollectionItem: o
};
};
var nh = ft({
trigger: Ka.trigger,
effect: {
...Hn.effect,
default: "light"
},
type: {
type: Je(String)
},
placement: {
type: Je(String),
default: "bottom"
},
popperOptions: {
type: Je(Object),
default: () => ({})
},
id: String,
size: {
type: String,
default: ""
},
splitButton: Boolean,
hideOnClick: {
type: Boolean,
default: true
},
loop: {
type: Boolean,
default: true
},
showTimeout: {
type: Number,
default: 150
},
hideTimeout: {
type: Number,
default: 150
},
tabindex: {
type: Je([Number, String]),
default: 0
},
maxHeight: {
type: Je([Number, String]),
default: ""
},
popperClass: {
type: String,
default: ""
},
disabled: Boolean,
role: {
type: String,
default: "menu"
},
buttonProps: {
type: Je(Object)
},
teleported: Hn.teleported
});
ft({
command: {
type: [Object, String, Number],
default: () => ({})
},
disabled: Boolean,
divided: Boolean,
textValue: String,
icon: {
type: $r
}
});
ft({
onKeydown: { type: Je(Function) }
});
rR("Dropdown");
var sR = ft({
id: {
type: String,
default: void 0
},
step: {
type: Number,
default: 1
},
stepStrictly: Boolean,
max: {
type: Number,
default: Number.POSITIVE_INFINITY
},
min: {
type: Number,
default: Number.NEGATIVE_INFINITY
},
modelValue: Number,
readonly: Boolean,
disabled: Boolean,
size: Do,
controls: {
type: Boolean,
default: true
},
controlsPosition: {
type: String,
default: "",
values: ["", "right"]
},
valueOnClear: {
type: [String, Number, null],
validator: (n) => n === null || bt(n) || ["min", "max"].includes(n),
default: null
},
name: String,
placeholder: String,
precision: {
type: Number,
validator: (n) => n >= 0 && n === Number.parseInt(`${n}`, 10)
},
validateEvent: {
type: Boolean,
default: true
},
...Gs(["ariaLabel"])
});
var oR = {
[qr]: (n, e) => e !== n,
blur: (n) => n instanceof FocusEvent,
focus: (n) => n instanceof FocusEvent,
[_s]: (n) => bt(n) || rr(n),
[Lt]: (n) => bt(n) || rr(n)
};
var aR = defineComponent({
name: "ElInputNumber"
});
var lR = defineComponent({
...aR,
props: sR,
emits: oR,
setup(n, { expose: e, emit: t }) {
const i = n, { t: r } = mu(), s = rt("input-number"), o = ref(), a = reactive({
currentValue: i.modelValue,
userInput: null
}), { formItem: c } = gl(), l = computed(() => bt(i.modelValue) && i.modelValue <= i.min), d = computed(() => bt(i.modelValue) && i.modelValue >= i.max), h4 = computed(() => {
const O = v(i.step);
return mi(i.precision) ? Math.max(v(i.modelValue), O) : (O > i.precision && Xt("InputNumber", "precision should not be less than the decimal places of step"), i.precision);
}), f = computed(() => i.controls && i.controlsPosition === "right"), g = ra(), p = yu(), u = computed(() => {
if (a.userInput !== null)
return a.userInput;
let O = a.currentValue;
if (rr(O))
return "";
if (bt(O)) {
if (Number.isNaN(O))
return "";
mi(i.precision) || (O = O.toFixed(i.precision));
}
return O;
}), y = (O, b) => {
if (mi(b) && (b = h4.value), b === 0)
return Math.round(O);
let I = String(O);
const N = I.indexOf(".");
if (N === -1 || !I.replace(".", "").split("")[N + b])
return O;
const V = I.length;
return I.charAt(V - 1) === "5" && (I = `${I.slice(0, Math.max(0, V - 1))}6`), Number.parseFloat(Number(I).toFixed(b));
}, v = (O) => {
if (rr(O))
return 0;
const b = O.toString(), I = b.indexOf(".");
let N = 0;
return I !== -1 && (N = b.length - I - 1), N;
}, m = (O, b = 1) => bt(O) ? y(O + i.step * b) : a.currentValue, x = () => {
if (i.readonly || p.value || d.value)
return;
const O = Number(u.value) || 0, b = m(O);
w(b), t(_s, a.currentValue), C();
}, M = () => {
if (i.readonly || p.value || l.value)
return;
const O = Number(u.value) || 0, b = m(O, -1);
w(b), t(_s, a.currentValue), C();
}, T = (O, b) => {
const { max: I, min: N, step: D, precision: U, stepStrictly: V, valueOnClear: H } = i;
I < N && na("InputNumber", "min should not be greater than max.");
let Y = Number(O);
if (rr(O) || Number.isNaN(Y))
return null;
if (O === "") {
if (H === null)
return null;
Y = Ln(H) ? { min: N, max: I }[H] : H;
}
return V && (Y = y(Math.round(Y / D) * D, U), Y !== O && b && t(Lt, Y)), mi(U) || (Y = y(Y, U)), (Y > I || Y < N) && (Y = Y > I ? I : N, b && t(Lt, Y)), Y;
}, w = (O, b = true) => {
var I;
const N = a.currentValue, D = T(O);
if (!b) {
t(Lt, D);
return;
}
N === D && O || (a.userInput = null, t(Lt, D), N !== D && t(qr, D, N), i.validateEvent && ((I = c == null ? void 0 : c.validate) == null || I.call(c, "change").catch((U) => Xt(U))), a.currentValue = D);
}, _ = (O) => {
a.userInput = O;
const b = O === "" ? null : Number(O);
t(_s, b), w(b, false);
}, E = (O) => {
const b = O !== "" ? Number(O) : "";
(bt(b) && !Number.isNaN(b) || O === "") && w(b), C(), a.userInput = null;
}, P = () => {
var O, b;
(b = (O = o.value) == null ? void 0 : O.focus) == null || b.call(O);
}, S = () => {
var O, b;
(b = (O = o.value) == null ? void 0 : O.blur) == null || b.call(O);
}, R = (O) => {
t("focus", O);
}, A = (O) => {
var b;
a.userInput = null, t("blur", O), i.validateEvent && ((b = c == null ? void 0 : c.validate) == null || b.call(c, "blur").catch((I) => Xt(I)));
}, C = () => {
a.currentValue !== i.modelValue && (a.currentValue = i.modelValue);
}, L = (O) => {
document.activeElement === O.target && O.preventDefault();
};
return watch(() => i.modelValue, (O, b) => {
const I = T(O, true);
a.userInput === null && I !== b && (a.currentValue = I);
}, { immediate: true }), onMounted(() => {
var O;
const { min: b, max: I, modelValue: N } = i, D = (O = o.value) == null ? void 0 : O.input;
if (D.setAttribute("role", "spinbutton"), Number.isFinite(I) ? D.setAttribute("aria-valuemax", String(I)) : D.removeAttribute("aria-valuemax"), Number.isFinite(b) ? D.setAttribute("aria-valuemin", String(b)) : D.removeAttribute("aria-valuemin"), D.setAttribute("aria-valuenow", a.currentValue || a.currentValue === 0 ? String(a.currentValue) : ""), D.setAttribute("aria-disabled", String(p.value)), !bt(N) && N != null) {
let U = Number(N);
Number.isNaN(U) && (U = null), t(Lt, U);
}
D.addEventListener("wheel", L, { passive: false });
}), onUpdated(() => {
var O, b;
const I = (O = o.value) == null ? void 0 : O.input;
I == null || I.setAttribute("aria-valuenow", `${(b = a.currentValue) != null ? b : ""}`);
}), e({
focus: P,
blur: S
}), (O, b) => (openBlock(), createElementBlock("div", {
class: normalizeClass([
unref(s).b(),
unref(s).m(unref(g)),
unref(s).is("disabled", unref(p)),
unref(s).is("without-controls", !O.controls),
unref(s).is("controls-right", unref(f))
]),
onDragstart: withModifiers(() => {
}, ["prevent"])
}, [
O.controls ? withDirectives((openBlock(), createElementBlock("span", {
key: 0,
role: "button",
"aria-label": unref(r)("el.inputNumber.decrease"),
class: normalizeClass([unref(s).e("decrease"), unref(s).is("disabled", unref(l))]),
onKeydown: withKeys(M, ["enter"])
}, [
renderSlot(O.$slots, "decrease-icon", {}, () => [
createVNode(unref(It), null, {
default: withCtx(() => [
unref(f) ? (openBlock(), createBlock(unref(vf), { key: 0 })) : (openBlock(), createBlock(unref(dE), { key: 1 }))
]),
_: 1
})
])
], 42, ["aria-label", "onKeydown"])), [
[unref(rg), M]
]) : createCommentVNode("v-if", true),
O.controls ? withDirectives((openBlock(), createElementBlock("span", {
key: 1,
role: "button",
"aria-label": unref(r)("el.inputNumber.increase"),
class: normalizeClass([unref(s).e("increase"), unref(s).is("disabled", unref(d))]),
onKeydown: withKeys(x, ["enter"])
}, [
renderSlot(O.$slots, "increase-icon", {}, () => [
createVNode(unref(It), null, {
default: withCtx(() => [
unref(f) ? (openBlock(), createBlock(unref(nE), { key: 0 })) : (openBlock(), createBlock(unref(fu), { key: 1 }))
]),
_: 1
})
])
], 42, ["aria-label", "onKeydown"])), [
[unref(rg), x]
]) : createCommentVNode("v-if", true),
createVNode(unref(mC), {
id: O.id,
ref_key: "input",
ref: o,
type: "number",
step: O.step,
"model-value": unref(u),
placeholder: O.placeholder,
readonly: O.readonly,
disabled: unref(p),
size: unref(g),
max: O.max,
min: O.min,
name: O.name,
"aria-label": O.ariaLabel,
"validate-event": false,
onKeydown: [
withKeys(withModifiers(x, ["prevent"]), ["up"]),
withKeys(withModifiers(M, ["prevent"]), ["down"])
],
onBlur: A,
onFocus: R,
onInput: _,
onChange: E
}, createSlots({ _: 2 }, [
O.$slots.prefix ? {
name: "prefix",
fn: withCtx(() => [
renderSlot(O.$slots, "prefix")
])
} : void 0,
O.$slots.suffix ? {
name: "suffix",
fn: withCtx(() => [
renderSlot(O.$slots, "suffix")
])
} : void 0
]), 1032, ["id", "step", "model-value", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "aria-label", "onKeydown"])
], 42, ["onDragstart"]));
}
});
var cR = lt(lR, [["__file", "input-number.vue"]]);
var vr = fn(cR);
var Ey = Symbol("ElSelectGroup");
var wu = Symbol("ElSelect");
function uR(n, e) {
const t = inject(wu), i = inject(Ey, { disabled: false }), r = computed(() => d(Ai(t.props.modelValue), n.value)), s = computed(() => {
var g;
if (t.props.multiple) {
const p = Ai((g = t.props.modelValue) != null ? g : []);
return !r.value && p.length >= t.props.multipleLimit && t.props.multipleLimit > 0;
} else
return false;
}), o = computed(() => n.label || (An(n.value) ? "" : n.value)), a = computed(() => n.value || n.label || ""), c = computed(() => n.disabled || e.groupDisabled || s.value), l = getCurrentInstance(), d = (g = [], p) => {
if (An(n.value)) {
const u = t.props.valueKey;
return g && g.some((y) => toRaw(Qi(y, u)) === Qi(p, u));
} else
return g && g.includes(p);
}, h4 = () => {
!n.disabled && !i.disabled && (t.states.hoveringIndex = t.optionsArray.indexOf(l.proxy));
}, f = (g) => {
const p = new RegExp(YT(g), "i");
e.visible = p.test(o.value) || n.created;
};
return watch(() => o.value, () => {
!n.created && !t.props.remote && t.setSelected();
}), watch(() => n.value, (g, p) => {
const { remote: u, valueKey: y } = t.props;
if (g !== p && (t.onOptionDestroy(p, l.proxy), t.onOptionCreate(l.proxy)), !n.created && !u) {
if (y && An(g) && An(p) && g[y] === p[y])
return;
t.setSelected();
}
}), watch(() => i.disabled, () => {
e.groupDisabled = i.disabled;
}, { immediate: true }), {
select: t,
currentLabel: o,
currentValue: a,
itemSelected: r,
isDisabled: c,
hoverItem: h4,
updateOption: f
};
}
var hR = defineComponent({
name: "ElOption",
componentName: "ElOption",
props: {
value: {
required: true,
type: [String, Number, Boolean, Object]
},
label: [String, Number],
created: Boolean,
disabled: Boolean
},
setup(n) {
const e = rt("select"), t = vu(), i = computed(() => [
e.be("dropdown", "item"),
e.is("disabled", unref(a)),
e.is("selected", unref(o)),
e.is("hovering", unref(f))
]), r = reactive({
index: -1,
groupDisabled: false,
visible: true,
hover: false
}), {
currentLabel: s,
itemSelected: o,
isDisabled: a,
select: c,
hoverItem: l,
updateOption: d
} = uR(n, r), { visible: h4, hover: f } = toRefs(r), g = getCurrentInstance().proxy;
c.onOptionCreate(g), onBeforeUnmount(() => {
const u = g.value, { selected: y } = c.states, m = (c.props.multiple ? y : [y]).some((x) => x.value === g.value);
nextTick(() => {
c.states.cachedOptions.get(u) === g && !m && c.states.cachedOptions.delete(u);
}), c.onOptionDestroy(u, g);
});
function p() {
a.value || c.handleOptionSelect(g);
}
return {
ns: e,
id: t,
containerKls: i,
currentLabel: s,
itemSelected: o,
isDisabled: a,
select: c,
hoverItem: l,
updateOption: d,
visible: h4,
hover: f,
selectOptionClick: p,
states: r
};
}
});
function dR(n, e, t, i, r, s) {
return withDirectives((openBlock(), createElementBlock("li", {
id: n.id,
class: normalizeClass(n.containerKls),
role: "option",
"aria-disabled": n.isDisabled || void 0,
"aria-selected": n.itemSelected,
onMouseenter: n.hoverItem,
onClick: withModifiers(n.selectOptionClick, ["stop"])
}, [
renderSlot(n.$slots, "default", {}, () => [
createBaseVNode("span", null, toDisplayString(n.currentLabel), 1)
])
], 42, ["id", "aria-disabled", "aria-selected", "onMouseenter", "onClick"])), [
[vShow, n.visible]
]);
}
var zf = lt(hR, [["render", dR], ["__file", "option.vue"]]);
var fR = defineComponent({
name: "ElSelectDropdown",
componentName: "ElSelectDropdown",
setup() {
const n = inject(wu), e = rt("select"), t = computed(() => n.props.popperClass), i = computed(() => n.props.multiple), r = computed(() => n.props.fitInputWidth), s = ref("");
function o() {
var a;
s.value = `${(a = n.selectRef) == null ? void 0 : a.offsetWidth}px`;
}
return onMounted(() => {
o(), Qn(n.selectRef, o);
}), {
ns: e,
minWidth: s,
popperClass: t,
isMultiple: i,
isFitInputWidth: r
};
}
});
function pR(n, e, t, i, r, s) {
return openBlock(), createElementBlock("div", {
class: normalizeClass([n.ns.b("dropdown"), n.ns.is("multiple", n.isMultiple), n.popperClass]),
style: normalizeStyle({ [n.isFitInputWidth ? "width" : "minWidth"]: n.minWidth })
}, [
n.$slots.header ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(n.ns.be("dropdown", "header"))
}, [
renderSlot(n.$slots, "header")
], 2)) : createCommentVNode("v-if", true),
renderSlot(n.$slots, "default"),
n.$slots.footer ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(n.ns.be("dropdown", "footer"))
}, [
renderSlot(n.$slots, "footer")
], 2)) : createCommentVNode("v-if", true)
], 6);
}
var mR = lt(fR, [["render", pR], ["__file", "select-dropdown.vue"]]);
var gR = 11;
var vR = (n, e) => {
const { t } = mu(), i = vu(), r = rt("select"), s = rt("input"), o = reactive({
inputValue: "",
options: /* @__PURE__ */ new Map(),
cachedOptions: /* @__PURE__ */ new Map(),
disabledOptions: /* @__PURE__ */ new Map(),
optionValues: [],
selected: [],
selectionWidth: 0,
calculatorWidth: 0,
collapseItemWidth: 0,
selectedLabel: "",
hoveringIndex: -1,
previousQuery: null,
inputHovering: false,
menuVisibleOnFocus: false,
isBeforeHide: false
}), a = ref(null), c = ref(null), l = ref(null), d = ref(null), h4 = ref(null), f = ref(null), g = ref(null), p = ref(null), u = ref(null), y = ref(null), v = ref(null), m = ref(null), {
isComposing: x,
handleCompositionStart: M,
handleCompositionUpdate: T,
handleCompositionEnd: w
} = iy({
afterComposition: (de) => ne(de)
}), { wrapperRef: _, isFocused: E } = ny(h4, {
beforeFocus() {
return b.value;
},
afterFocus() {
n.automaticDropdown && !P.value && (P.value = true, o.menuVisibleOnFocus = true);
},
beforeBlur(de) {
var Me, Pe;
return ((Me = l.value) == null ? void 0 : Me.isFocusInsideContent(de)) || ((Pe = d.value) == null ? void 0 : Pe.isFocusInsideContent(de));
},
afterBlur() {
P.value = false, o.menuVisibleOnFocus = false;
}
}), P = ref(false), S = ref(), { form: R, formItem: A } = gl(), { inputId: C } = Pf(n, {
formItemContext: A
}), { valueOnClear: L, isEmptyValue: O } = qA(n), b = computed(() => n.disabled || (R == null ? void 0 : R.disabled)), I = computed(() => Nn(n.modelValue) ? n.modelValue.length > 0 : !O(n.modelValue)), N = computed(() => n.clearable && !b.value && o.inputHovering && I.value), D = computed(() => n.remote && n.filterable && !n.remoteShowSuffix ? "" : n.suffixIcon), U = computed(() => r.is("reverse", D.value && P.value)), V = computed(() => (A == null ? void 0 : A.validateState) || ""), H = computed(() => D0[V.value]), Y = computed(() => n.remote ? 300 : 0), ie = computed(() => n.loading ? n.loadingText || t("el.select.loading") : n.remote && !o.inputValue && o.options.size === 0 ? false : n.filterable && o.inputValue && o.options.size > 0 && ae.value === 0 ? n.noMatchText || t("el.select.noMatch") : o.options.size === 0 ? n.noDataText || t("el.select.noData") : null), ae = computed(() => ee.value.filter((de) => de.visible).length), ee = computed(() => {
const de = Array.from(o.options.values()), Me = [];
return o.optionValues.forEach((Pe) => {
const Ve = de.findIndex((We) => We.value === Pe);
Ve > -1 && Me.push(de[Ve]);
}), Me.length >= de.length ? Me : de;
}), oe = computed(() => Array.from(o.cachedOptions.values())), j = computed(() => {
const de = ee.value.filter((Me) => !Me.created).some((Me) => Me.currentLabel === o.inputValue);
return n.filterable && n.allowCreate && o.inputValue !== "" && !de;
}), K = () => {
n.filterable && Tn(n.filterMethod) || n.filterable && n.remote && Tn(n.remoteMethod) || ee.value.forEach((de) => {
var Me;
(Me = de.updateOption) == null || Me.call(de, o.inputValue);
});
}, $ = ra(), re = computed(() => ["small"].includes($.value) ? "small" : "default"), k = computed({
get() {
return P.value && ie.value !== false;
},
set(de) {
P.value = de;
}
}), W = computed(() => {
if (n.multiple && !mi(n.modelValue))
return Ai(n.modelValue).length === 0 && !o.inputValue;
const de = Nn(n.modelValue) ? n.modelValue[0] : n.modelValue;
return n.filterable || mi(de) ? !o.inputValue : true;
}), B = computed(() => {
var de;
const Me = (de = n.placeholder) != null ? de : t("el.select.placeholder");
return n.multiple || !I.value ? Me : o.selectedLabel;
}), X = computed(() => td ? null : "mouseenter");
watch(() => n.modelValue, (de, Me) => {
n.multiple && n.filterable && !n.reserveKeyword && (o.inputValue = "", J("")), z(), !ld(de, Me) && n.validateEvent && (A == null || A.validate("change").catch((Pe) => Xt(Pe)));
}, {
flush: "post",
deep: true
}), watch(() => P.value, (de) => {
de ? J(o.inputValue) : (o.inputValue = "", o.previousQuery = null, o.isBeforeHide = true), e("visible-change", de);
}), watch(() => o.options.entries(), () => {
var de;
if (!Qt)
return;
const Me = ((de = a.value) == null ? void 0 : de.querySelectorAll("input")) || [];
(!n.filterable && !n.defaultFirstOption && !mi(n.modelValue) || !Array.from(Me).includes(document.activeElement)) && z(), n.defaultFirstOption && (n.filterable || n.remote) && ae.value && F();
}, {
flush: "post"
}), watch(() => o.hoveringIndex, (de) => {
bt(de) && de > -1 ? S.value = ee.value[de] || {} : S.value = {}, ee.value.forEach((Me) => {
Me.hover = S.value === Me;
});
}), watchEffect(() => {
o.isBeforeHide || K();
});
const J = (de) => {
o.previousQuery === de || x.value || (o.previousQuery = de, n.filterable && Tn(n.filterMethod) ? n.filterMethod(de) : n.filterable && n.remote && Tn(n.remoteMethod) && n.remoteMethod(de), n.defaultFirstOption && (n.filterable || n.remote) && ae.value ? nextTick(F) : nextTick(se));
}, F = () => {
const de = ee.value.filter((Ve) => Ve.visible && !Ve.disabled && !Ve.states.groupDisabled), Me = de.find((Ve) => Ve.created), Pe = de[0];
o.hoveringIndex = wt(ee.value, Me || Pe);
}, z = () => {
if (n.multiple)
o.selectedLabel = "";
else {
const Me = Nn(n.modelValue) ? n.modelValue[0] : n.modelValue, Pe = te(Me);
o.selectedLabel = Pe.currentLabel, o.selected = [Pe];
return;
}
const de = [];
mi(n.modelValue) || Ai(n.modelValue).forEach((Me) => {
de.push(te(Me));
}), o.selected = de;
}, te = (de) => {
let Me;
const Pe = ju(de).toLowerCase() === "object", Ve = ju(de).toLowerCase() === "null", We = ju(de).toLowerCase() === "undefined";
for (let ht = o.cachedOptions.size - 1; ht >= 0; ht--) {
const kt = oe.value[ht];
if (Pe ? Qi(kt.value, n.valueKey) === Qi(de, n.valueKey) : kt.value === de) {
Me = {
value: de,
currentLabel: kt.currentLabel,
get isDisabled() {
return kt.isDisabled;
}
};
break;
}
}
if (Me)
return Me;
const et = Pe ? de.label : !Ve && !We ? de : "";
return {
value: de,
currentLabel: et
};
}, se = () => {
o.hoveringIndex = ee.value.findIndex((de) => o.selected.some((Me) => Se(Me) === Se(de)));
}, ce = () => {
o.selectionWidth = c.value.getBoundingClientRect().width;
}, me = () => {
o.calculatorWidth = f.value.getBoundingClientRect().width;
}, Te = () => {
o.collapseItemWidth = v.value.getBoundingClientRect().width;
}, _e = () => {
var de, Me;
(Me = (de = l.value) == null ? void 0 : de.updatePopper) == null || Me.call(de);
}, fe = () => {
var de, Me;
(Me = (de = d.value) == null ? void 0 : de.updatePopper) == null || Me.call(de);
}, we = () => {
o.inputValue.length > 0 && !P.value && (P.value = true), J(o.inputValue);
}, ne = (de) => {
if (o.inputValue = de.target.value, n.remote)
pe();
else
return we();
}, pe = ad(() => {
we();
}, Y.value), be = (de) => {
ld(n.modelValue, de) || e(qr, de);
}, Be = (de) => GT(de, (Me) => !o.disabledOptions.has(Me)), Ie = (de) => {
if (n.multiple && de.code !== Pi.delete && de.target.value.length <= 0) {
const Me = Ai(n.modelValue).slice(), Pe = Be(Me);
if (Pe < 0)
return;
const Ve = Me[Pe];
Me.splice(Pe, 1), e(Lt, Me), be(Me), e("remove-tag", Ve);
}
}, je = (de, Me) => {
const Pe = o.selected.indexOf(Me);
if (Pe > -1 && !b.value) {
const Ve = Ai(n.modelValue).slice();
Ve.splice(Pe, 1), e(Lt, Ve), be(Ve), e("remove-tag", Me.value);
}
de.stopPropagation(), Rt();
}, st = (de) => {
de.stopPropagation();
const Me = n.multiple ? [] : L.value;
if (n.multiple)
for (const Pe of o.selected)
Pe.isDisabled && Me.push(Pe.value);
e(Lt, Me), be(Me), o.hoveringIndex = -1, P.value = false, e("clear"), Rt();
}, qe = (de) => {
var Me;
if (n.multiple) {
const Pe = Ai((Me = n.modelValue) != null ? Me : []).slice(), Ve = wt(Pe, de.value);
Ve > -1 ? Pe.splice(Ve, 1) : (n.multipleLimit <= 0 || Pe.length < n.multipleLimit) && Pe.push(de.value), e(Lt, Pe), be(Pe), de.created && J(""), n.filterable && !n.reserveKeyword && (o.inputValue = "");
} else
e(Lt, de.value), be(de.value), P.value = false;
Rt(), !P.value && nextTick(() => {
Ne(de);
});
}, wt = (de = [], Me) => {
if (!An(Me))
return de.indexOf(Me);
const Pe = n.valueKey;
let Ve = -1;
return de.some((We, et) => toRaw(Qi(We, Pe)) === Qi(Me, Pe) ? (Ve = et, true) : false), Ve;
}, Ne = (de) => {
var Me, Pe, Ve, We, et;
const Ye = Nn(de) ? de[0] : de;
let ht = null;
if (Ye != null && Ye.value) {
const kt = ee.value.filter((an) => an.value === Ye.value);
kt.length > 0 && (ht = kt[0].$el);
}
if (l.value && ht) {
const kt = (We = (Ve = (Pe = (Me = l.value) == null ? void 0 : Me.popperRef) == null ? void 0 : Pe.contentRef) == null ? void 0 : Ve.querySelector) == null ? void 0 : We.call(Ve, `.${r.be("dropdown", "wrap")}`);
kt && KT(kt, ht);
}
(et = m.value) == null || et.handleScroll();
}, nt = (de) => {
o.options.set(de.value, de), o.cachedOptions.set(de.value, de), de.disabled && o.disabledOptions.set(de.value, de);
}, tt = (de, Me) => {
o.options.get(de) === Me && o.options.delete(de);
}, Kt = computed(() => {
var de, Me;
return (Me = (de = l.value) == null ? void 0 : de.popperRef) == null ? void 0 : Me.contentRef;
}), qt = () => {
o.isBeforeHide = false, nextTick(() => Ne(o.selected));
}, Rt = () => {
var de;
(de = h4.value) == null || de.focus();
}, Nt = () => {
var de;
(de = h4.value) == null || de.blur();
}, Gi = (de) => {
st(de);
}, Hi = () => {
P.value = false, E.value && Nt();
}, oi = () => {
o.inputValue.length > 0 ? o.inputValue = "" : P.value = false;
}, ss = () => {
b.value || (td && (o.inputHovering = true), o.menuVisibleOnFocus ? o.menuVisibleOnFocus = false : P.value = !P.value);
}, Q = () => {
P.value ? ee.value[o.hoveringIndex] && qe(ee.value[o.hoveringIndex]) : ss();
}, Se = (de) => An(de.value) ? Qi(de.value, n.valueKey) : de.value, De = computed(() => ee.value.filter((de) => de.visible).every((de) => de.disabled)), $e = computed(() => n.multiple ? n.collapseTags ? o.selected.slice(0, n.maxCollapseTags) : o.selected : []), ct = computed(() => n.multiple ? n.collapseTags ? o.selected.slice(n.maxCollapseTags) : [] : []), Z = (de) => {
if (!P.value) {
P.value = true;
return;
}
if (!(o.options.size === 0 || o.filteredOptionsCount === 0 || x.value) && !De.value) {
de === "next" ? (o.hoveringIndex++, o.hoveringIndex === o.options.size && (o.hoveringIndex = 0)) : de === "prev" && (o.hoveringIndex--, o.hoveringIndex < 0 && (o.hoveringIndex = o.options.size - 1));
const Me = ee.value[o.hoveringIndex];
(Me.disabled === true || Me.states.groupDisabled === true || !Me.visible) && Z(de), nextTick(() => Ne(S.value));
}
}, ge = () => {
if (!c.value)
return 0;
const de = window.getComputedStyle(c.value);
return Number.parseFloat(de.gap || "6px");
}, he = computed(() => {
const de = ge();
return { maxWidth: `${v.value && n.maxCollapseTags === 1 ? o.selectionWidth - o.collapseItemWidth - de : o.selectionWidth}px` };
}), xe = computed(() => ({ maxWidth: `${o.selectionWidth}px` })), Ae = computed(() => ({
width: `${Math.max(o.calculatorWidth, gR)}px`
}));
return Qn(c, ce), Qn(f, me), Qn(u, _e), Qn(_, _e), Qn(y, fe), Qn(v, Te), onMounted(() => {
z();
}), {
inputId: C,
contentId: i,
nsSelect: r,
nsInput: s,
states: o,
isFocused: E,
expanded: P,
optionsArray: ee,
hoverOption: S,
selectSize: $,
filteredOptionsCount: ae,
resetCalculatorWidth: me,
updateTooltip: _e,
updateTagTooltip: fe,
debouncedOnInputChange: pe,
onInput: ne,
deletePrevTag: Ie,
deleteTag: je,
deleteSelected: st,
handleOptionSelect: qe,
scrollToOption: Ne,
hasModelValue: I,
shouldShowPlaceholder: W,
currentPlaceholder: B,
mouseEnterEventName: X,
showClose: N,
iconComponent: D,
iconReverse: U,
validateState: V,
validateIcon: H,
showNewOption: j,
updateOptions: K,
collapseTagSize: re,
setSelected: z,
selectDisabled: b,
emptyText: ie,
handleCompositionStart: M,
handleCompositionUpdate: T,
handleCompositionEnd: w,
onOptionCreate: nt,
onOptionDestroy: tt,
handleMenuEnter: qt,
focus: Rt,
blur: Nt,
handleClearClick: Gi,
handleClickOutside: Hi,
handleEsc: oi,
toggleMenu: ss,
selectOption: Q,
getValueKey: Se,
navigateOptions: Z,
dropdownMenuVisible: k,
showTagList: $e,
collapseTagList: ct,
tagStyle: he,
collapseTagStyle: xe,
inputStyle: Ae,
popperRef: Kt,
inputRef: h4,
tooltipRef: l,
tagTooltipRef: d,
calculatorRef: f,
prefixRef: g,
suffixRef: p,
selectRef: a,
wrapperRef: _,
selectionRef: c,
scrollbarRef: m,
menuRef: u,
tagMenuRef: y,
collapseItemRef: v
};
};
var yR = defineComponent({
name: "ElOptions",
setup(n, { slots: e }) {
const t = inject(wu);
let i = [];
return () => {
var r, s;
const o = (r = e.default) == null ? void 0 : r.call(e), a = [];
function c(l) {
Nn(l) && l.forEach((d) => {
var h4, f, g, p;
const u = (h4 = (d == null ? void 0 : d.type) || {}) == null ? void 0 : h4.name;
u === "ElOptionGroup" ? c(!Ln(d.children) && !Nn(d.children) && Tn((f = d.children) == null ? void 0 : f.default) ? (g = d.children) == null ? void 0 : g.default() : d.children) : u === "ElOption" ? a.push((p = d.props) == null ? void 0 : p.value) : Nn(d.children) && c(d.children);
});
}
return o.length && c((s = o[0]) == null ? void 0 : s.children), ld(a, i) || (i = a, t && (t.states.optionValues = a)), o;
};
}
});
var bR = ft({
name: String,
id: String,
modelValue: {
type: [Array, String, Number, Boolean, Object],
default: void 0
},
autocomplete: {
type: String,
default: "off"
},
automaticDropdown: Boolean,
size: Do,
effect: {
type: Je(String),
default: "light"
},
disabled: Boolean,
clearable: Boolean,
filterable: Boolean,
allowCreate: Boolean,
loading: Boolean,
popperClass: {
type: String,
default: ""
},
popperOptions: {
type: Je(Object),
default: () => ({})
},
remote: Boolean,
loadingText: String,
noMatchText: String,
noDataText: String,
remoteMethod: Function,
filterMethod: Function,
multiple: Boolean,
multipleLimit: {
type: Number,
default: 0
},
placeholder: {
type: String
},
defaultFirstOption: Boolean,
reserveKeyword: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: "value"
},
collapseTags: Boolean,
collapseTagsTooltip: Boolean,
maxCollapseTags: {
type: Number,
default: 1
},
teleported: Hn.teleported,
persistent: {
type: Boolean,
default: true
},
clearIcon: {
type: $r,
default: yf
},
fitInputWidth: Boolean,
suffixIcon: {
type: $r,
default: vf
},
tagType: { ...md.type, default: "info" },
tagEffect: { ...md.effect, default: "light" },
validateEvent: {
type: Boolean,
default: true
},
remoteShowSuffix: Boolean,
placement: {
type: Je(String),
values: ia,
default: "bottom-start"
},
fallbackPlacements: {
type: Je(Array),
default: ["bottom-start", "top-start", "right", "left"]
},
appendTo: String,
...KA,
...Gs(["ariaLabel"])
});
var og = "ElSelect";
var xR = defineComponent({
name: og,
componentName: og,
components: {
ElSelectMenu: mR,
ElOption: zf,
ElOptions: yR,
ElTag: dL,
ElScrollbar: LC,
ElTooltip: Ff,
ElIcon: It
},
directives: { ClickOutside: sL },
props: bR,
emits: [
Lt,
qr,
"remove-tag",
"clear",
"visible-change",
"focus",
"blur"
],
setup(n, { emit: e }) {
const t = computed(() => {
const { modelValue: s, multiple: o } = n, a = o ? [] : void 0;
return Nn(s) ? o ? s : a : o ? a : s;
}), i = reactive({
...toRefs(n),
modelValue: t
}), r = vR(i, e);
return provide(wu, reactive({
props: i,
states: r.states,
optionsArray: r.optionsArray,
handleOptionSelect: r.handleOptionSelect,
onOptionCreate: r.onOptionCreate,
onOptionDestroy: r.onOptionDestroy,
selectRef: r.selectRef,
setSelected: r.setSelected
})), {
...r,
modelValue: t
};
}
});
function wR(n, e, t, i, r, s) {
const o = resolveComponent("el-tag"), a = resolveComponent("el-tooltip"), c = resolveComponent("el-icon"), l = resolveComponent("el-option"), d = resolveComponent("el-options"), h4 = resolveComponent("el-scrollbar"), f = resolveComponent("el-select-menu"), g = resolveDirective("click-outside");
return withDirectives((openBlock(), createElementBlock("div", {
ref: "selectRef",
class: normalizeClass([n.nsSelect.b(), n.nsSelect.m(n.selectSize)]),
[toHandlerKey(n.mouseEnterEventName)]: (p) => n.states.inputHovering = true,
onMouseleave: (p) => n.states.inputHovering = false
}, [
createVNode(a, {
ref: "tooltipRef",
visible: n.dropdownMenuVisible,
placement: n.placement,
teleported: n.teleported,
"popper-class": [n.nsSelect.e("popper"), n.popperClass],
"popper-options": n.popperOptions,
"fallback-placements": n.fallbackPlacements,
effect: n.effect,
pure: "",
trigger: "click",
transition: `${n.nsSelect.namespace.value}-zoom-in-top`,
"stop-popper-mouse-event": false,
"gpu-acceleration": false,
persistent: n.persistent,
"append-to": n.appendTo,
onBeforeShow: n.handleMenuEnter,
onHide: (p) => n.states.isBeforeHide = false
}, {
default: withCtx(() => {
var p;
return [
createBaseVNode("div", {
ref: "wrapperRef",
class: normalizeClass([
n.nsSelect.e("wrapper"),
n.nsSelect.is("focused", n.isFocused),
n.nsSelect.is("hovering", n.states.inputHovering),
n.nsSelect.is("filterable", n.filterable),
n.nsSelect.is("disabled", n.selectDisabled)
]),
onClick: withModifiers(n.toggleMenu, ["prevent"])
}, [
n.$slots.prefix ? (openBlock(), createElementBlock("div", {
key: 0,
ref: "prefixRef",
class: normalizeClass(n.nsSelect.e("prefix"))
}, [
renderSlot(n.$slots, "prefix")
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("div", {
ref: "selectionRef",
class: normalizeClass([
n.nsSelect.e("selection"),
n.nsSelect.is("near", n.multiple && !n.$slots.prefix && !!n.states.selected.length)
])
}, [
n.multiple ? renderSlot(n.$slots, "tag", { key: 0 }, () => [
(openBlock(true), createElementBlock(Fragment, null, renderList(n.showTagList, (u) => (openBlock(), createElementBlock("div", {
key: n.getValueKey(u),
class: normalizeClass(n.nsSelect.e("selected-item"))
}, [
createVNode(o, {
closable: !n.selectDisabled && !u.isDisabled,
size: n.collapseTagSize,
type: n.tagType,
effect: n.tagEffect,
"disable-transitions": "",
style: normalizeStyle(n.tagStyle),
onClose: (y) => n.deleteTag(y, u)
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(n.nsSelect.e("tags-text"))
}, [
renderSlot(n.$slots, "label", {
label: u.currentLabel,
value: u.value
}, () => [
createTextVNode(toDisplayString(u.currentLabel), 1)
])
], 2)
]),
_: 2
}, 1032, ["closable", "size", "type", "effect", "style", "onClose"])
], 2))), 128)),
n.collapseTags && n.states.selected.length > n.maxCollapseTags ? (openBlock(), createBlock(a, {
key: 0,
ref: "tagTooltipRef",
disabled: n.dropdownMenuVisible || !n.collapseTagsTooltip,
"fallback-placements": ["bottom", "top", "right", "left"],
effect: n.effect,
placement: "bottom",
teleported: n.teleported
}, {
default: withCtx(() => [
createBaseVNode("div", {
ref: "collapseItemRef",
class: normalizeClass(n.nsSelect.e("selected-item"))
}, [
createVNode(o, {
closable: false,
size: n.collapseTagSize,
type: n.tagType,
effect: n.tagEffect,
"disable-transitions": "",
style: normalizeStyle(n.collapseTagStyle)
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(n.nsSelect.e("tags-text"))
}, " + " + toDisplayString(n.states.selected.length - n.maxCollapseTags), 3)
]),
_: 1
}, 8, ["size", "type", "effect", "style"])
], 2)
]),
content: withCtx(() => [
createBaseVNode("div", {
ref: "tagMenuRef",
class: normalizeClass(n.nsSelect.e("selection"))
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(n.collapseTagList, (u) => (openBlock(), createElementBlock("div", {
key: n.getValueKey(u),
class: normalizeClass(n.nsSelect.e("selected-item"))
}, [
createVNode(o, {
class: "in-tooltip",
closable: !n.selectDisabled && !u.isDisabled,
size: n.collapseTagSize,
type: n.tagType,
effect: n.tagEffect,
"disable-transitions": "",
onClose: (y) => n.deleteTag(y, u)
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(n.nsSelect.e("tags-text"))
}, [
renderSlot(n.$slots, "label", {
label: u.currentLabel,
value: u.value
}, () => [
createTextVNode(toDisplayString(u.currentLabel), 1)
])
], 2)
]),
_: 2
}, 1032, ["closable", "size", "type", "effect", "onClose"])
], 2))), 128))
], 2)
]),
_: 3
}, 8, ["disabled", "effect", "teleported"])) : createCommentVNode("v-if", true)
]) : createCommentVNode("v-if", true),
n.selectDisabled ? createCommentVNode("v-if", true) : (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass([
n.nsSelect.e("selected-item"),
n.nsSelect.e("input-wrapper"),
n.nsSelect.is("hidden", !n.filterable)
])
}, [
withDirectives(createBaseVNode("input", {
id: n.inputId,
ref: "inputRef",
"onUpdate:modelValue": (u) => n.states.inputValue = u,
type: "text",
name: n.name,
class: normalizeClass([n.nsSelect.e("input"), n.nsSelect.is(n.selectSize)]),
disabled: n.selectDisabled,
autocomplete: n.autocomplete,
style: normalizeStyle(n.inputStyle),
role: "combobox",
readonly: !n.filterable,
spellcheck: "false",
"aria-activedescendant": ((p = n.hoverOption) == null ? void 0 : p.id) || "",
"aria-controls": n.contentId,
"aria-expanded": n.dropdownMenuVisible,
"aria-label": n.ariaLabel,
"aria-autocomplete": "none",
"aria-haspopup": "listbox",
onKeydown: [
withKeys(withModifiers((u) => n.navigateOptions("next"), ["stop", "prevent"]), ["down"]),
withKeys(withModifiers((u) => n.navigateOptions("prev"), ["stop", "prevent"]), ["up"]),
withKeys(withModifiers(n.handleEsc, ["stop", "prevent"]), ["esc"]),
withKeys(withModifiers(n.selectOption, ["stop", "prevent"]), ["enter"]),
withKeys(withModifiers(n.deletePrevTag, ["stop"]), ["delete"])
],
onCompositionstart: n.handleCompositionStart,
onCompositionupdate: n.handleCompositionUpdate,
onCompositionend: n.handleCompositionEnd,
onInput: n.onInput,
onClick: withModifiers(n.toggleMenu, ["stop"])
}, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
[vModelText, n.states.inputValue]
]),
n.filterable ? (openBlock(), createElementBlock("span", {
key: 0,
ref: "calculatorRef",
"aria-hidden": "true",
class: normalizeClass(n.nsSelect.e("input-calculator")),
textContent: toDisplayString(n.states.inputValue)
}, null, 10, ["textContent"])) : createCommentVNode("v-if", true)
], 2)),
n.shouldShowPlaceholder ? (openBlock(), createElementBlock("div", {
key: 2,
class: normalizeClass([
n.nsSelect.e("selected-item"),
n.nsSelect.e("placeholder"),
n.nsSelect.is("transparent", !n.hasModelValue || n.expanded && !n.states.inputValue)
])
}, [
n.hasModelValue ? renderSlot(n.$slots, "label", {
key: 0,
label: n.currentPlaceholder,
value: n.modelValue
}, () => [
createBaseVNode("span", null, toDisplayString(n.currentPlaceholder), 1)
]) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(n.currentPlaceholder), 1))
], 2)) : createCommentVNode("v-if", true)
], 2),
createBaseVNode("div", {
ref: "suffixRef",
class: normalizeClass(n.nsSelect.e("suffix"))
}, [
n.iconComponent && !n.showClose ? (openBlock(), createBlock(c, {
key: 0,
class: normalizeClass([n.nsSelect.e("caret"), n.nsSelect.e("icon"), n.iconReverse])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(n.iconComponent)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true),
n.showClose && n.clearIcon ? (openBlock(), createBlock(c, {
key: 1,
class: normalizeClass([
n.nsSelect.e("caret"),
n.nsSelect.e("icon"),
n.nsSelect.e("clear")
]),
onClick: n.handleClearClick
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(n.clearIcon)))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true),
n.validateState && n.validateIcon ? (openBlock(), createBlock(c, {
key: 2,
class: normalizeClass([n.nsInput.e("icon"), n.nsInput.e("validateIcon")])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(n.validateIcon)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 2)
], 10, ["onClick"])
];
}),
content: withCtx(() => [
createVNode(f, { ref: "menuRef" }, {
default: withCtx(() => [
n.$slots.header ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(n.nsSelect.be("dropdown", "header")),
onClick: withModifiers(() => {
}, ["stop"])
}, [
renderSlot(n.$slots, "header")
], 10, ["onClick"])) : createCommentVNode("v-if", true),
withDirectives(createVNode(h4, {
id: n.contentId,
ref: "scrollbarRef",
tag: "ul",
"wrap-class": n.nsSelect.be("dropdown", "wrap"),
"view-class": n.nsSelect.be("dropdown", "list"),
class: normalizeClass([n.nsSelect.is("empty", n.filteredOptionsCount === 0)]),
role: "listbox",
"aria-label": n.ariaLabel,
"aria-orientation": "vertical"
}, {
default: withCtx(() => [
n.showNewOption ? (openBlock(), createBlock(l, {
key: 0,
value: n.states.inputValue,
created: true
}, null, 8, ["value"])) : createCommentVNode("v-if", true),
createVNode(d, null, {
default: withCtx(() => [
renderSlot(n.$slots, "default")
]),
_: 3
})
]),
_: 3
}, 8, ["id", "wrap-class", "view-class", "class", "aria-label"]), [
[vShow, n.states.options.size > 0 && !n.loading]
]),
n.$slots.loading && n.loading ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(n.nsSelect.be("dropdown", "loading"))
}, [
renderSlot(n.$slots, "loading")
], 2)) : n.loading || n.filteredOptionsCount === 0 ? (openBlock(), createElementBlock("div", {
key: 2,
class: normalizeClass(n.nsSelect.be("dropdown", "empty"))
}, [
renderSlot(n.$slots, "empty", {}, () => [
createBaseVNode("span", null, toDisplayString(n.emptyText), 1)
])
], 2)) : createCommentVNode("v-if", true),
n.$slots.footer ? (openBlock(), createElementBlock("div", {
key: 3,
class: normalizeClass(n.nsSelect.be("dropdown", "footer")),
onClick: withModifiers(() => {
}, ["stop"])
}, [
renderSlot(n.$slots, "footer")
], 10, ["onClick"])) : createCommentVNode("v-if", true)
]),
_: 3
}, 512)
]),
_: 3
}, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "append-to", "onBeforeShow", "onHide"])
], 16, ["onMouseleave"])), [
[g, n.handleClickOutside, n.popperRef]
]);
}
var MR = lt(xR, [["render", wR], ["__file", "select.vue"]]);
var _R = defineComponent({
name: "ElOptionGroup",
componentName: "ElOptionGroup",
props: {
label: String,
disabled: Boolean
},
setup(n) {
const e = rt("select"), t = ref(null), i = getCurrentInstance(), r = ref([]);
provide(Ey, reactive({
...toRefs(n)
}));
const s = computed(() => r.value.some((l) => l.visible === true)), o = (l) => {
var d, h4;
return ((d = l.type) == null ? void 0 : d.name) === "ElOption" && !!((h4 = l.component) != null && h4.proxy);
}, a = (l) => {
const d = Ai(l), h4 = [];
return d.forEach((f) => {
var g, p;
o(f) ? h4.push(f.component.proxy) : (g = f.children) != null && g.length ? h4.push(...a(f.children)) : (p = f.component) != null && p.subTree && h4.push(...a(f.component.subTree));
}), h4;
}, c = () => {
r.value = a(i.subTree);
};
return onMounted(() => {
c();
}), k1(t, c, {
attributes: true,
subtree: true,
childList: true
}), {
groupRef: t,
visible: s,
ns: e
};
}
});
function SR(n, e, t, i, r, s) {
return withDirectives((openBlock(), createElementBlock("ul", {
ref: "groupRef",
class: normalizeClass(n.ns.be("group", "wrap"))
}, [
createBaseVNode("li", {
class: normalizeClass(n.ns.be("group", "title"))
}, toDisplayString(n.label), 3),
createBaseVNode("li", null, [
createBaseVNode("ul", {
class: normalizeClass(n.ns.b("group"))
}, [
renderSlot(n.$slots, "default")
], 2)
])
], 2)), [
[vShow, n.visible]
]);
}
var Ay = lt(_R, [["render", SR], ["__file", "option-group.vue"]]);
var oa = fn(MR, {
Option: zf,
OptionGroup: Ay
});
var aa = mr(zf);
mr(Ay);
var TR = ft({
trigger: Ka.trigger,
placement: nh.placement,
disabled: Ka.disabled,
visible: Hn.visible,
transition: Hn.transition,
popperOptions: nh.popperOptions,
tabindex: nh.tabindex,
content: Hn.content,
popperStyle: Hn.popperStyle,
popperClass: Hn.popperClass,
enterable: {
...Hn.enterable,
default: true
},
effect: {
...Hn.effect,
default: "light"
},
teleported: Hn.teleported,
title: String,
width: {
type: [String, Number],
default: 150
},
offset: {
type: Number,
default: void 0
},
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
},
showArrow: {
type: Boolean,
default: true
},
persistent: {
type: Boolean,
default: true
},
"onUpdate:visible": {
type: Function
}
});
var ER = {
"update:visible": (n) => gf(n),
"before-enter": () => true,
"before-leave": () => true,
"after-enter": () => true,
"after-leave": () => true
};
var AR = "onUpdate:visible";
var CR = defineComponent({
name: "ElPopover"
});
var LR = defineComponent({
...CR,
props: TR,
emits: ER,
setup(n, { expose: e, emit: t }) {
const i = n, r = computed(() => i[AR]), s = rt("popover"), o = ref(), a = computed(() => {
var y;
return (y = unref(o)) == null ? void 0 : y.popperRef;
}), c = computed(() => [
{
width: Zc(i.width)
},
i.popperStyle
]), l = computed(() => [s.b(), i.popperClass, { [s.m("plain")]: !!i.content }]), d = computed(() => i.transition === `${s.namespace.value}-fade-in-linear`), h4 = () => {
var y;
(y = o.value) == null || y.hide();
}, f = () => {
t("before-enter");
}, g = () => {
t("before-leave");
}, p = () => {
t("after-enter");
}, u = () => {
t("update:visible", false), t("after-leave");
};
return e({
popperRef: a,
hide: h4
}), (y, v) => (openBlock(), createBlock(unref(Ff), mergeProps({
ref_key: "tooltipRef",
ref: o
}, y.$attrs, {
trigger: y.trigger,
placement: y.placement,
disabled: y.disabled,
visible: y.visible,
transition: y.transition,
"popper-options": y.popperOptions,
tabindex: y.tabindex,
content: y.content,
offset: y.offset,
"show-after": y.showAfter,
"hide-after": y.hideAfter,
"auto-close": y.autoClose,
"show-arrow": y.showArrow,
"aria-label": y.title,
effect: y.effect,
enterable: y.enterable,
"popper-class": unref(l),
"popper-style": unref(c),
teleported: y.teleported,
persistent: y.persistent,
"gpu-acceleration": unref(d),
"onUpdate:visible": unref(r),
onBeforeShow: f,
onBeforeHide: g,
onShow: p,
onHide: u
}), {
content: withCtx(() => [
y.title ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(s).e("title")),
role: "title"
}, toDisplayString(y.title), 3)) : createCommentVNode("v-if", true),
renderSlot(y.$slots, "default", {}, () => [
createTextVNode(toDisplayString(y.content), 1)
])
]),
default: withCtx(() => [
y.$slots.reference ? renderSlot(y.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)
]),
_: 3
}, 16, ["trigger", "placement", "disabled", "visible", "transition", "popper-options", "tabindex", "content", "offset", "show-after", "hide-after", "auto-close", "show-arrow", "aria-label", "effect", "enterable", "popper-class", "popper-style", "teleported", "persistent", "gpu-acceleration", "onUpdate:visible"]));
}
});
var RR = lt(LR, [["__file", "popover.vue"]]);
var ag = (n, e) => {
const t = e.arg || e.value, i = t == null ? void 0 : t.popperRef;
i && (i.triggerRef = n);
};
var PR = {
mounted(n, e) {
ag(n, e);
},
updated(n, e) {
ag(n, e);
}
};
var IR = "popover";
var OR = yE(PR, IR);
var Mu = fn(RR, {
directive: OR
});
var Cy = Symbol("sliderContextKey");
var DR = ft({
modelValue: {
type: Je([Number, Array]),
default: 0
},
id: {
type: String,
default: void 0
},
min: {
type: Number,
default: 0
},
max: {
type: Number,
default: 100
},
step: {
type: Number,
default: 1
},
showInput: Boolean,
showInputControls: {
type: Boolean,
default: true
},
size: Do,
inputSize: Do,
showStops: Boolean,
showTooltip: {
type: Boolean,
default: true
},
formatTooltip: {
type: Je(Function),
default: void 0
},
disabled: Boolean,
range: Boolean,
vertical: Boolean,
height: String,
debounce: {
type: Number,
default: 300
},
rangeStartLabel: {
type: String,
default: void 0
},
rangeEndLabel: {
type: String,
default: void 0
},
formatValueText: {
type: Je(Function),
default: void 0
},
tooltipClass: {
type: String,
default: void 0
},
placement: {
type: String,
values: ia,
default: "top"
},
marks: {
type: Je(Object)
},
validateEvent: {
type: Boolean,
default: true
},
...Gs(["ariaLabel"])
});
var ih = (n) => bt(n) || Nn(n) && n.every(bt);
var NR = {
[Lt]: ih,
[_s]: ih,
[qr]: ih
};
var BR = (n, e, t) => {
const i = ref();
return onMounted(async () => {
n.range ? (Array.isArray(n.modelValue) ? (e.firstValue = Math.max(n.min, n.modelValue[0]), e.secondValue = Math.min(n.max, n.modelValue[1])) : (e.firstValue = n.min, e.secondValue = n.max), e.oldValue = [e.firstValue, e.secondValue]) : (typeof n.modelValue != "number" || Number.isNaN(n.modelValue) ? e.firstValue = n.min : e.firstValue = Math.min(n.max, Math.max(n.min, n.modelValue)), e.oldValue = e.firstValue), un(window, "resize", t), await nextTick(), t();
}), {
sliderWrapper: i
};
};
var FR = (n) => computed(() => n.marks ? Object.keys(n.marks).map(Number.parseFloat).sort((t, i) => t - i).filter((t) => t <= n.max && t >= n.min).map((t) => ({
point: t,
position: (t - n.min) * 100 / (n.max - n.min),
mark: n.marks[t]
})) : []);
var zR = (n, e, t) => {
const { form: i, formItem: r } = gl(), s = shallowRef(), o = ref(), a = ref(), c = {
firstButton: o,
secondButton: a
}, l = computed(() => n.disabled || (i == null ? void 0 : i.disabled) || false), d = computed(() => Math.min(e.firstValue, e.secondValue)), h4 = computed(() => Math.max(e.firstValue, e.secondValue)), f = computed(() => n.range ? `${100 * (h4.value - d.value) / (n.max - n.min)}%` : `${100 * (e.firstValue - n.min) / (n.max - n.min)}%`), g = computed(() => n.range ? `${100 * (d.value - n.min) / (n.max - n.min)}%` : "0%"), p = computed(() => n.vertical ? { height: n.height } : {}), u = computed(() => n.vertical ? {
height: f.value,
bottom: g.value
} : {
width: f.value,
left: g.value
}), y = () => {
s.value && (e.sliderSize = s.value[`client${n.vertical ? "Height" : "Width"}`]);
}, v = (A) => {
const C = n.min + A * (n.max - n.min) / 100;
if (!n.range)
return o;
let L;
return Math.abs(d.value - C) < Math.abs(h4.value - C) ? L = e.firstValue < e.secondValue ? "firstButton" : "secondButton" : L = e.firstValue > e.secondValue ? "firstButton" : "secondButton", c[L];
}, m = (A) => {
const C = v(A);
return C.value.setPosition(A), C;
}, x = (A) => {
e.firstValue = A ?? n.min, T(n.range ? [d.value, h4.value] : A ?? n.min);
}, M = (A) => {
e.secondValue = A, n.range && T([d.value, h4.value]);
}, T = (A) => {
t(Lt, A), t(_s, A);
}, w = async () => {
await nextTick(), t(qr, n.range ? [d.value, h4.value] : n.modelValue);
}, _ = (A) => {
var C, L, O, b, I, N;
if (l.value || e.dragging)
return;
y();
let D = 0;
if (n.vertical) {
const U = (O = (L = (C = A.touches) == null ? void 0 : C.item(0)) == null ? void 0 : L.clientY) != null ? O : A.clientY;
D = (s.value.getBoundingClientRect().bottom - U) / e.sliderSize * 100;
} else {
const U = (N = (I = (b = A.touches) == null ? void 0 : b.item(0)) == null ? void 0 : I.clientX) != null ? N : A.clientX, V = s.value.getBoundingClientRect().left;
D = (U - V) / e.sliderSize * 100;
}
if (!(D < 0 || D > 100))
return m(D);
};
return {
elFormItem: r,
slider: s,
firstButton: o,
secondButton: a,
sliderDisabled: l,
minValue: d,
maxValue: h4,
runwayStyle: p,
barStyle: u,
resetSize: y,
setPosition: m,
emitChange: w,
onSliderWrapperPrevent: (A) => {
var C, L;
((C = c.firstButton.value) != null && C.dragging || (L = c.secondButton.value) != null && L.dragging) && A.preventDefault();
},
onSliderClick: (A) => {
_(A) && w();
},
onSliderDown: async (A) => {
const C = _(A);
C && (await nextTick(), C.value.onButtonDown(A));
},
onSliderMarkerDown: (A) => {
l.value || e.dragging || m(A);
},
setFirstValue: x,
setSecondValue: M
};
};
var { left: UR, down: VR, right: kR, up: GR, home: HR, end: WR, pageUp: jR, pageDown: $R } = Pi;
var ZR = (n, e, t) => {
const i = ref(), r = ref(false), s = computed(() => e.value instanceof Function), o = computed(() => s.value && e.value(n.modelValue) || n.modelValue), a = ad(() => {
t.value && (r.value = true);
}, 50), c = ad(() => {
t.value && (r.value = false);
}, 50);
return {
tooltip: i,
tooltipVisible: r,
formatValue: o,
displayTooltip: a,
hideTooltip: c
};
};
var XR = (n, e, t) => {
const {
disabled: i,
min: r,
max: s,
step: o,
showTooltip: a,
precision: c,
sliderSize: l,
formatTooltip: d,
emitChange: h4,
resetSize: f,
updateDragging: g
} = inject(Cy), { tooltip: p, tooltipVisible: u, formatValue: y, displayTooltip: v, hideTooltip: m } = ZR(n, d, a), x = ref(), M = computed(() => `${(n.modelValue - r.value) / (s.value - r.value) * 100}%`), T = computed(() => n.vertical ? { bottom: M.value } : { left: M.value }), w = () => {
e.hovering = true, v();
}, _ = () => {
e.hovering = false, e.dragging || m();
}, E = (H) => {
i.value || (H.preventDefault(), N(H), window.addEventListener("mousemove", D), window.addEventListener("touchmove", D), window.addEventListener("mouseup", U), window.addEventListener("touchend", U), window.addEventListener("contextmenu", U), x.value.focus());
}, P = (H) => {
i.value || (e.newPosition = Number.parseFloat(M.value) + H / (s.value - r.value) * 100, V(e.newPosition), h4());
}, S = () => {
P(-o.value);
}, R = () => {
P(o.value);
}, A = () => {
P(-o.value * 4);
}, C = () => {
P(o.value * 4);
}, L = () => {
i.value || (V(0), h4());
}, O = () => {
i.value || (V(100), h4());
}, b = (H) => {
let Y = true;
[UR, VR].includes(H.key) ? S() : [kR, GR].includes(H.key) ? R() : H.key === HR ? L() : H.key === WR ? O() : H.key === $R ? A() : H.key === jR ? C() : Y = false, Y && H.preventDefault();
}, I = (H) => {
let Y, ie;
return H.type.startsWith("touch") ? (ie = H.touches[0].clientY, Y = H.touches[0].clientX) : (ie = H.clientY, Y = H.clientX), {
clientX: Y,
clientY: ie
};
}, N = (H) => {
e.dragging = true, e.isClick = true;
const { clientX: Y, clientY: ie } = I(H);
n.vertical ? e.startY = ie : e.startX = Y, e.startPosition = Number.parseFloat(M.value), e.newPosition = e.startPosition;
}, D = (H) => {
if (e.dragging) {
e.isClick = false, v(), f();
let Y;
const { clientX: ie, clientY: ae } = I(H);
n.vertical ? (e.currentY = ae, Y = (e.startY - e.currentY) / l.value * 100) : (e.currentX = ie, Y = (e.currentX - e.startX) / l.value * 100), e.newPosition = e.startPosition + Y, V(e.newPosition);
}
}, U = () => {
e.dragging && (setTimeout(() => {
e.dragging = false, e.hovering || m(), e.isClick || V(e.newPosition), h4();
}, 0), window.removeEventListener("mousemove", D), window.removeEventListener("touchmove", D), window.removeEventListener("mouseup", U), window.removeEventListener("touchend", U), window.removeEventListener("contextmenu", U));
}, V = async (H) => {
if (H === null || Number.isNaN(+H))
return;
H < 0 ? H = 0 : H > 100 && (H = 100);
const Y = 100 / ((s.value - r.value) / o.value);
let ae = Math.round(H / Y) * Y * (s.value - r.value) * 0.01 + r.value;
ae = Number.parseFloat(ae.toFixed(c.value)), ae !== n.modelValue && t(Lt, ae), !e.dragging && n.modelValue !== e.oldValue && (e.oldValue = n.modelValue), await nextTick(), e.dragging && v(), p.value.updatePopper();
};
return watch(() => e.dragging, (H) => {
g(H);
}), un(x, "touchstart", E, { passive: false }), {
disabled: i,
button: x,
tooltip: p,
tooltipVisible: u,
showTooltip: a,
wrapperStyle: T,
formatValue: y,
handleMouseEnter: w,
handleMouseLeave: _,
onButtonDown: E,
onKeyDown: b,
setPosition: V
};
};
var YR = (n, e, t, i) => ({
stops: computed(() => {
if (!n.showStops || n.min > n.max)
return [];
if (n.step === 0)
return Xt("ElSlider", "step should not be 0."), [];
const o = (n.max - n.min) / n.step, a = 100 * n.step / (n.max - n.min), c = Array.from({ length: o - 1 }).map((l, d) => (d + 1) * a);
return n.range ? c.filter((l) => l < 100 * (t.value - n.min) / (n.max - n.min) || l > 100 * (i.value - n.min) / (n.max - n.min)) : c.filter((l) => l > 100 * (e.firstValue - n.min) / (n.max - n.min));
}),
getStopStyle: (o) => n.vertical ? { bottom: `${o}%` } : { left: `${o}%` }
});
var JR = (n, e, t, i, r, s) => {
const o = (l) => {
r(Lt, l), r(_s, l);
}, a = () => n.range ? ![t.value, i.value].every((l, d) => l === e.oldValue[d]) : n.modelValue !== e.oldValue, c = () => {
var l, d;
n.min > n.max && na("Slider", "min should not be greater than max.");
const h4 = n.modelValue;
n.range && Array.isArray(h4) ? h4[1] < n.min ? o([n.min, n.min]) : h4[0] > n.max ? o([n.max, n.max]) : h4[0] < n.min ? o([n.min, h4[1]]) : h4[1] > n.max ? o([h4[0], n.max]) : (e.firstValue = h4[0], e.secondValue = h4[1], a() && (n.validateEvent && ((l = s == null ? void 0 : s.validate) == null || l.call(s, "change").catch((f) => Xt(f))), e.oldValue = h4.slice())) : !n.range && typeof h4 == "number" && !Number.isNaN(h4) && (h4 < n.min ? o(n.min) : h4 > n.max ? o(n.max) : (e.firstValue = h4, a() && (n.validateEvent && ((d = s == null ? void 0 : s.validate) == null || d.call(s, "change").catch((f) => Xt(f))), e.oldValue = h4)));
};
c(), watch(() => e.dragging, (l) => {
l || c();
}), watch(() => n.modelValue, (l, d) => {
e.dragging || Array.isArray(l) && Array.isArray(d) && l.every((h4, f) => h4 === d[f]) && e.firstValue === l[0] && e.secondValue === l[1] || c();
}, {
deep: true
}), watch(() => [n.min, n.max], () => {
c();
});
};
var KR = ft({
modelValue: {
type: Number,
default: 0
},
vertical: Boolean,
tooltipClass: String,
placement: {
type: String,
values: ia,
default: "top"
}
});
var qR = {
[Lt]: (n) => bt(n)
};
var QR = defineComponent({
name: "ElSliderButton"
});
var eP = defineComponent({
...QR,
props: KR,
emits: qR,
setup(n, { expose: e, emit: t }) {
const i = n, r = rt("slider"), s = reactive({
hovering: false,
dragging: false,
isClick: false,
startX: 0,
currentX: 0,
startY: 0,
currentY: 0,
startPosition: 0,
newPosition: 0,
oldValue: i.modelValue
}), {
disabled: o,
button: a,
tooltip: c,
showTooltip: l,
tooltipVisible: d,
wrapperStyle: h4,
formatValue: f,
handleMouseEnter: g,
handleMouseLeave: p,
onButtonDown: u,
onKeyDown: y,
setPosition: v
} = XR(i, s, t), { hovering: m, dragging: x } = toRefs(s);
return e({
onButtonDown: u,
onKeyDown: y,
setPosition: v,
hovering: m,
dragging: x
}), (M, T) => (openBlock(), createElementBlock("div", {
ref_key: "button",
ref: a,
class: normalizeClass([unref(r).e("button-wrapper"), { hover: unref(m), dragging: unref(x) }]),
style: normalizeStyle(unref(h4)),
tabindex: unref(o) ? -1 : 0,
onMouseenter: unref(g),
onMouseleave: unref(p),
onMousedown: unref(u),
onFocus: unref(g),
onBlur: unref(p),
onKeydown: unref(y)
}, [
createVNode(unref(Ff), {
ref_key: "tooltip",
ref: c,
visible: unref(d),
placement: M.placement,
"fallback-placements": ["top", "bottom", "right", "left"],
"stop-popper-mouse-event": false,
"popper-class": M.tooltipClass,
disabled: !unref(l),
persistent: ""
}, {
content: withCtx(() => [
createBaseVNode("span", null, toDisplayString(unref(f)), 1)
]),
default: withCtx(() => [
createBaseVNode("div", {
class: normalizeClass([unref(r).e("button"), { hover: unref(m), dragging: unref(x) }])
}, null, 2)
]),
_: 1
}, 8, ["visible", "placement", "popper-class", "disabled"])
], 46, ["tabindex", "onMouseenter", "onMouseleave", "onMousedown", "onFocus", "onBlur", "onKeydown"]));
}
});
var lg = lt(eP, [["__file", "button.vue"]]);
var tP = ft({
mark: {
type: Je([String, Object]),
default: void 0
}
});
var nP = defineComponent({
name: "ElSliderMarker",
props: tP,
setup(n) {
const e = rt("slider"), t = computed(() => Ln(n.mark) ? n.mark : n.mark.label), i = computed(() => Ln(n.mark) ? void 0 : n.mark.style);
return () => h("div", {
class: e.e("marks-text"),
style: i.value
}, t.value);
}
});
var iP = defineComponent({
name: "ElSlider"
});
var rP = defineComponent({
...iP,
props: DR,
emits: NR,
setup(n, { expose: e, emit: t }) {
const i = n, r = rt("slider"), { t: s } = mu(), o = reactive({
firstValue: 0,
secondValue: 0,
oldValue: 0,
dragging: false,
sliderSize: 1
}), {
elFormItem: a,
slider: c,
firstButton: l,
secondButton: d,
sliderDisabled: h4,
minValue: f,
maxValue: g,
runwayStyle: p,
barStyle: u,
resetSize: y,
emitChange: v,
onSliderWrapperPrevent: m,
onSliderClick: x,
onSliderDown: M,
onSliderMarkerDown: T,
setFirstValue: w,
setSecondValue: _
} = zR(i, o, t), { stops: E, getStopStyle: P } = YR(i, o, f, g), { inputId: S, isLabeledByFormItem: R } = Pf(i, {
formItemContext: a
}), A = ra(), C = computed(() => i.inputSize || A.value), L = computed(() => i.ariaLabel || s("el.slider.defaultLabel", {
min: i.min,
max: i.max
})), O = computed(() => i.range ? i.rangeStartLabel || s("el.slider.defaultRangeStartLabel") : L.value), b = computed(() => i.formatValueText ? i.formatValueText(Y.value) : `${Y.value}`), I = computed(() => i.rangeEndLabel || s("el.slider.defaultRangeEndLabel")), N = computed(() => i.formatValueText ? i.formatValueText(ie.value) : `${ie.value}`), D = computed(() => [
r.b(),
r.m(A.value),
r.is("vertical", i.vertical),
{ [r.m("with-input")]: i.showInput }
]), U = FR(i);
JR(i, o, f, g, t, a);
const V = computed(() => {
const oe = [i.min, i.max, i.step].map((j) => {
const K = `${j}`.split(".")[1];
return K ? K.length : 0;
});
return Math.max.apply(null, oe);
}), { sliderWrapper: H } = BR(i, o, y), { firstValue: Y, secondValue: ie, sliderSize: ae } = toRefs(o), ee = (oe) => {
o.dragging = oe;
};
return un(H, "touchstart", m, {
passive: false
}), un(H, "touchmove", m, {
passive: false
}), provide(Cy, {
...toRefs(i),
sliderSize: ae,
disabled: h4,
precision: V,
emitChange: v,
resetSize: y,
updateDragging: ee
}), e({
onSliderClick: x
}), (oe, j) => {
var K, $;
return openBlock(), createElementBlock("div", {
id: oe.range ? unref(S) : void 0,
ref_key: "sliderWrapper",
ref: H,
class: normalizeClass(unref(D)),
role: oe.range ? "group" : void 0,
"aria-label": oe.range && !unref(R) ? unref(L) : void 0,
"aria-labelledby": oe.range && unref(R) ? (K = unref(a)) == null ? void 0 : K.labelId : void 0
}, [
createBaseVNode("div", {
ref_key: "slider",
ref: c,
class: normalizeClass([
unref(r).e("runway"),
{ "show-input": oe.showInput && !oe.range },
unref(r).is("disabled", unref(h4))
]),
style: normalizeStyle(unref(p)),
onMousedown: unref(M),
onTouchstartPassive: unref(M)
}, [
createBaseVNode("div", {
class: normalizeClass(unref(r).e("bar")),
style: normalizeStyle(unref(u))
}, null, 6),
createVNode(lg, {
id: oe.range ? void 0 : unref(S),
ref_key: "firstButton",
ref: l,
"model-value": unref(Y),
vertical: oe.vertical,
"tooltip-class": oe.tooltipClass,
placement: oe.placement,
role: "slider",
"aria-label": oe.range || !unref(R) ? unref(O) : void 0,
"aria-labelledby": !oe.range && unref(R) ? ($ = unref(a)) == null ? void 0 : $.labelId : void 0,
"aria-valuemin": oe.min,
"aria-valuemax": oe.range ? unref(ie) : oe.max,
"aria-valuenow": unref(Y),
"aria-valuetext": unref(b),
"aria-orientation": oe.vertical ? "vertical" : "horizontal",
"aria-disabled": unref(h4),
"onUpdate:modelValue": unref(w)
}, null, 8, ["id", "model-value", "vertical", "tooltip-class", "placement", "aria-label", "aria-labelledby", "aria-valuemin", "aria-valuemax", "aria-valuenow", "aria-valuetext", "aria-orientation", "aria-disabled", "onUpdate:modelValue"]),
oe.range ? (openBlock(), createBlock(lg, {
key: 0,
ref_key: "secondButton",
ref: d,
"model-value": unref(ie),
vertical: oe.vertical,
"tooltip-class": oe.tooltipClass,
placement: oe.placement,
role: "slider",
"aria-label": unref(I),
"aria-valuemin": unref(Y),
"aria-valuemax": oe.max,
"aria-valuenow": unref(ie),
"aria-valuetext": unref(N),
"aria-orientation": oe.vertical ? "vertical" : "horizontal",
"aria-disabled": unref(h4),
"onUpdate:modelValue": unref(_)
}, null, 8, ["model-value", "vertical", "tooltip-class", "placement", "aria-label", "aria-valuemin", "aria-valuemax", "aria-valuenow", "aria-valuetext", "aria-orientation", "aria-disabled", "onUpdate:modelValue"])) : createCommentVNode("v-if", true),
oe.showStops ? (openBlock(), createElementBlock("div", { key: 1 }, [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(E), (re, k) => (openBlock(), createElementBlock("div", {
key: k,
class: normalizeClass(unref(r).e("stop")),
style: normalizeStyle(unref(P)(re))
}, null, 6))), 128))
])) : createCommentVNode("v-if", true),
unref(U).length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
createBaseVNode("div", null, [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(U), (re, k) => (openBlock(), createElementBlock("div", {
key: k,
style: normalizeStyle(unref(P)(re.position)),
class: normalizeClass([unref(r).e("stop"), unref(r).e("marks-stop")])
}, null, 6))), 128))
]),
createBaseVNode("div", {
class: normalizeClass(unref(r).e("marks"))
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(U), (re, k) => (openBlock(), createBlock(unref(nP), {
key: k,
mark: re.mark,
style: normalizeStyle(unref(P)(re.position)),
onMousedown: withModifiers((W) => unref(T)(re.position), ["stop"])
}, null, 8, ["mark", "style", "onMousedown"]))), 128))
], 2)
], 64)) : createCommentVNode("v-if", true)
], 46, ["onMousedown", "onTouchstartPassive"]),
oe.showInput && !oe.range ? (openBlock(), createBlock(unref(vr), {
key: 0,
ref: "input",
"model-value": unref(Y),
class: normalizeClass(unref(r).e("input")),
step: oe.step,
disabled: unref(h4),
controls: oe.showInputControls,
min: oe.min,
max: oe.max,
precision: unref(V),
debounce: oe.debounce,
size: unref(C),
"onUpdate:modelValue": unref(w),
onChange: unref(v)
}, null, 8, ["model-value", "class", "step", "disabled", "controls", "min", "max", "precision", "debounce", "size", "onUpdate:modelValue", "onChange"])) : createCommentVNode("v-if", true)
], 10, ["id", "role", "aria-label", "aria-labelledby"]);
};
}
});
var sP = lt(rP, [["__file", "slider.vue"]]);
var si = fn(sP);
var _u = Symbol("tabsRootContextKey");
var oP = ft({
tabs: {
type: Je(Array),
default: () => er([])
}
});
var Ly = "ElTabBar";
var aP = defineComponent({
name: Ly
});
var lP = defineComponent({
...aP,
props: oP,
setup(n, { expose: e }) {
const t = n, i = getCurrentInstance(), r = inject(_u);
r || na(Ly, "");
const s = rt("tabs"), o = ref(), a = ref(), c = () => {
let g = 0, p = 0;
const u = ["top", "bottom"].includes(r.props.tabPosition) ? "width" : "height", y = u === "width" ? "x" : "y", v = y === "x" ? "left" : "top";
return t.tabs.every((m) => {
var x, M;
const T = (M = (x = i.parent) == null ? void 0 : x.refs) == null ? void 0 : M[`tab-${m.uid}`];
if (!T)
return false;
if (!m.active)
return true;
g = T[`offset${Br(v)}`], p = T[`client${Br(u)}`];
const w = window.getComputedStyle(T);
return u === "width" && (p -= Number.parseFloat(w.paddingLeft) + Number.parseFloat(w.paddingRight), g += Number.parseFloat(w.paddingLeft)), false;
}), {
[u]: `${p}px`,
transform: `translate${Br(y)}(${g}px)`
};
}, l = () => a.value = c(), d = [], h4 = () => {
var g;
d.forEach((u) => u.stop()), d.length = 0;
const p = (g = i.parent) == null ? void 0 : g.refs;
if (p) {
for (const u in p)
if (u.startsWith("tab-")) {
const y = p[u];
y && d.push(Qn(y, l));
}
}
};
watch(() => t.tabs, async () => {
await nextTick(), l(), h4();
}, { immediate: true });
const f = Qn(o, () => l());
return onBeforeUnmount(() => {
d.forEach((g) => g.stop()), d.length = 0, f.stop();
}), e({
ref: o,
update: l
}), (g, p) => (openBlock(), createElementBlock("div", {
ref_key: "barRef",
ref: o,
class: normalizeClass([unref(s).e("active-bar"), unref(s).is(unref(r).props.tabPosition)]),
style: normalizeStyle(a.value)
}, null, 6));
}
});
var cP = lt(lP, [["__file", "tab-bar.vue"]]);
var uP = ft({
panes: {
type: Je(Array),
default: () => er([])
},
currentName: {
type: [String, Number],
default: ""
},
editable: Boolean,
type: {
type: String,
values: ["card", "border-card", ""],
default: ""
},
stretch: Boolean
});
var hP = {
tabClick: (n, e, t) => t instanceof Event,
tabRemove: (n, e) => e instanceof Event
};
var cg = "ElTabNav";
var dP = defineComponent({
name: cg,
props: uP,
emits: hP,
setup(n, {
expose: e,
emit: t
}) {
const i = inject(_u);
i || na(cg, "");
const r = rt("tabs"), s = D1(), o = Z1(), a = ref(), c = ref(), l = ref(), d = ref(), h4 = ref(false), f = ref(0), g = ref(false), p = ref(true), u = computed(() => ["top", "bottom"].includes(i.props.tabPosition) ? "width" : "height"), y = computed(() => ({
transform: `translate${u.value === "width" ? "X" : "Y"}(-${f.value}px)`
})), v = () => {
if (!a.value)
return;
const E = a.value[`offset${Br(u.value)}`], P = f.value;
if (!P)
return;
const S = P > E ? P - E : 0;
f.value = S;
}, m = () => {
if (!a.value || !c.value)
return;
const E = c.value[`offset${Br(u.value)}`], P = a.value[`offset${Br(u.value)}`], S = f.value;
if (E - S <= P)
return;
const R = E - S > P * 2 ? S + P : E - P;
f.value = R;
}, x = async () => {
const E = c.value;
if (!h4.value || !l.value || !a.value || !E)
return;
await nextTick();
const P = l.value.querySelector(".is-active");
if (!P)
return;
const S = a.value, R = ["top", "bottom"].includes(i.props.tabPosition), A = P.getBoundingClientRect(), C = S.getBoundingClientRect(), L = R ? E.offsetWidth - C.width : E.offsetHeight - C.height, O = f.value;
let b = O;
R ? (A.left < C.left && (b = O - (C.left - A.left)), A.right > C.right && (b = O + A.right - C.right)) : (A.top < C.top && (b = O - (C.top - A.top)), A.bottom > C.bottom && (b = O + (A.bottom - C.bottom))), b = Math.max(b, 0), f.value = Math.min(b, L);
}, M = () => {
var E;
if (!c.value || !a.value)
return;
n.stretch && ((E = d.value) == null || E.update());
const P = c.value[`offset${Br(u.value)}`], S = a.value[`offset${Br(u.value)}`], R = f.value;
S < P ? (h4.value = h4.value || {}, h4.value.prev = R, h4.value.next = R + S < P, P - R < S && (f.value = P - S)) : (h4.value = false, R > 0 && (f.value = 0));
}, T = (E) => {
const P = E.code, {
up: S,
down: R,
left: A,
right: C
} = Pi;
if (![S, R, A, C].includes(P))
return;
const L = Array.from(E.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")), O = L.indexOf(E.target);
let b;
P === A || P === S ? O === 0 ? b = L.length - 1 : b = O - 1 : O < L.length - 1 ? b = O + 1 : b = 0, L[b].focus({
preventScroll: true
}), L[b].click(), w();
}, w = () => {
p.value && (g.value = true);
}, _ = () => g.value = false;
return watch(s, (E) => {
E === "hidden" ? p.value = false : E === "visible" && setTimeout(() => p.value = true, 50);
}), watch(o, (E) => {
E ? setTimeout(() => p.value = true, 50) : p.value = false;
}), Qn(l, M), onMounted(() => setTimeout(() => x(), 0)), onUpdated(() => M()), e({
scrollToActiveTab: x,
removeFocus: _
}), () => {
const E = h4.value ? [createVNode("span", {
class: [r.e("nav-prev"), r.is("disabled", !h4.value.prev)],
onClick: v
}, [createVNode(It, null, {
default: () => [createVNode(Wr, null, null)]
})]), createVNode("span", {
class: [r.e("nav-next"), r.is("disabled", !h4.value.next)],
onClick: m
}, [createVNode(It, null, {
default: () => [createVNode(jr, null, null)]
})])] : null, P = n.panes.map((S, R) => {
var A, C, L, O;
const b = S.uid, I = S.props.disabled, N = (C = (A = S.props.name) != null ? A : S.index) != null ? C : `${R}`, D = !I && (S.isClosable || n.editable);
S.index = `${R}`;
const U = D ? createVNode(It, {
class: "is-icon-close",
onClick: (Y) => t("tabRemove", S, Y)
}, {
default: () => [createVNode(cd, null, null)]
}) : null, V = ((O = (L = S.slots).label) == null ? void 0 : O.call(L)) || S.props.label, H = !I && S.active ? 0 : -1;
return createVNode("div", {
ref: `tab-${b}`,
class: [r.e("item"), r.is(i.props.tabPosition), r.is("active", S.active), r.is("disabled", I), r.is("closable", D), r.is("focus", g.value)],
id: `tab-${N}`,
key: `tab-${b}`,
"aria-controls": `pane-${N}`,
role: "tab",
"aria-selected": S.active,
tabindex: H,
onFocus: () => w(),
onBlur: () => _(),
onClick: (Y) => {
_(), t("tabClick", S, N, Y);
},
onKeydown: (Y) => {
D && (Y.code === Pi.delete || Y.code === Pi.backspace) && t("tabRemove", S, Y);
}
}, [V, U]);
});
return createVNode("div", {
ref: l,
class: [r.e("nav-wrap"), r.is("scrollable", !!h4.value), r.is(i.props.tabPosition)]
}, [E, createVNode("div", {
class: r.e("nav-scroll"),
ref: a
}, [createVNode("div", {
class: [r.e("nav"), r.is(i.props.tabPosition), r.is("stretch", n.stretch && ["top", "bottom"].includes(i.props.tabPosition))],
ref: c,
style: y.value,
role: "tablist",
onKeydown: T
}, [n.type ? null : createVNode(cP, {
ref: d,
tabs: [...n.panes]
}, null), P])])]);
};
}
});
var fP = ft({
type: {
type: String,
values: ["card", "border-card", ""],
default: ""
},
closable: Boolean,
addable: Boolean,
modelValue: {
type: [String, Number]
},
editable: Boolean,
tabPosition: {
type: String,
values: ["top", "right", "bottom", "left"],
default: "top"
},
beforeLeave: {
type: Je(Function),
default: () => true
},
stretch: Boolean
});
var rh = (n) => Ln(n) || bt(n);
var pP = {
[Lt]: (n) => rh(n),
tabClick: (n, e) => e instanceof Event,
tabChange: (n) => rh(n),
edit: (n, e) => ["remove", "add"].includes(e),
tabRemove: (n) => rh(n),
tabAdd: () => true
};
var mP = defineComponent({
name: "ElTabs",
props: fP,
emits: pP,
setup(n, {
emit: e,
slots: t,
expose: i
}) {
var r;
const s = rt("tabs"), o = computed(() => ["left", "right"].includes(n.tabPosition)), {
children: a,
addChild: c,
removeChild: l
} = $A(getCurrentInstance(), "ElTabPane"), d = ref(), h4 = ref((r = n.modelValue) != null ? r : "0"), f = async (v, m = false) => {
var x, M, T;
if (!(h4.value === v || mi(v)))
try {
await ((x = n.beforeLeave) == null ? void 0 : x.call(n, v, h4.value)) !== false && (h4.value = v, m && (e(Lt, v), e("tabChange", v)), (T = (M = d.value) == null ? void 0 : M.removeFocus) == null || T.call(M));
} catch {
}
}, g = (v, m, x) => {
v.props.disabled || (f(m, true), e("tabClick", v, x));
}, p = (v, m) => {
v.props.disabled || mi(v.props.name) || (m.stopPropagation(), e("edit", v.props.name, "remove"), e("tabRemove", v.props.name));
}, u = () => {
e("edit", void 0, "add"), e("tabAdd");
};
watch(() => n.modelValue, (v) => f(v)), watch(h4, async () => {
var v;
await nextTick(), (v = d.value) == null || v.scrollToActiveTab();
}), provide(_u, {
props: n,
currentName: h4,
registerPane: (v) => {
a.value.push(v);
},
sortPane: c,
unregisterPane: l
}), i({
currentName: h4
});
const y = ({
render: v
}) => v();
return () => {
const v = t["add-icon"], m = n.editable || n.addable ? createVNode("div", {
class: [s.e("new-tab"), o.value && s.e("new-tab-vertical")],
tabindex: "0",
onClick: u,
onKeydown: (T) => {
T.code === Pi.enter && u();
}
}, [v ? renderSlot(t, "add-icon") : createVNode(It, {
class: s.is("icon-plus")
}, {
default: () => [createVNode(fu, null, null)]
})]) : null, x = createVNode("div", {
class: [s.e("header"), o.value && s.e("header-vertical"), s.is(n.tabPosition)]
}, [createVNode(y, {
render: () => {
const T = a.value.some((w) => w.slots.label);
return createVNode(dP, {
ref: d,
currentName: h4.value,
editable: n.editable,
type: n.type,
panes: a.value,
stretch: n.stretch,
onTabClick: g,
onTabRemove: p
}, {
$stable: !T
});
}
}, null), m]), M = createVNode("div", {
class: s.e("content")
}, [renderSlot(t, "default")]);
return createVNode("div", {
class: [s.b(), s.m(n.tabPosition), {
[s.m("card")]: n.type === "card",
[s.m("border-card")]: n.type === "border-card"
}]
}, [M, x]);
};
}
});
var gP = ft({
label: {
type: String,
default: ""
},
name: {
type: [String, Number]
},
closable: Boolean,
disabled: Boolean,
lazy: Boolean
});
var Ry = "ElTabPane";
var vP = defineComponent({
name: Ry
});
var yP = defineComponent({
...vP,
props: gP,
setup(n) {
const e = n, t = getCurrentInstance(), i = useSlots(), r = inject(_u);
r || na(Ry, "usage: ");
const s = rt("tab-pane"), o = ref(), a = computed(() => e.closable || r.props.closable), c = Wp(() => {
var g;
return r.currentName.value === ((g = e.name) != null ? g : o.value);
}), l = ref(c.value), d = computed(() => {
var g;
return (g = e.name) != null ? g : o.value;
}), h4 = Wp(() => !e.lazy || l.value || c.value);
watch(c, (g) => {
g && (l.value = true);
});
const f = reactive({
uid: t.uid,
slots: i,
props: e,
paneName: d,
active: c,
index: o,
isClosable: a
});
return r.registerPane(f), onMounted(() => {
r.sortPane(f);
}), onUnmounted(() => {
r.unregisterPane(f.uid);
}), (g, p) => unref(h4) ? withDirectives((openBlock(), createElementBlock("div", {
key: 0,
id: `pane-${unref(d)}`,
class: normalizeClass(unref(s).b()),
role: "tabpanel",
"aria-hidden": !unref(c),
"aria-labelledby": `tab-${unref(d)}`
}, [
renderSlot(g.$slots, "default")
], 10, ["id", "aria-hidden", "aria-labelledby"])), [
[vShow, unref(c)]
]) : createCommentVNode("v-if", true);
}
});
var Py = lt(yP, [["__file", "tab-pane.vue"]]);
var Iy = fn(mP, {
TabPane: Py
});
var Oy = mr(Py);
function bP(n) {
let e;
const t = ref(false), i = reactive({
...n,
originalPosition: "",
originalOverflow: "",
visible: false
});
function r(f) {
i.text = f;
}
function s() {
const f = i.parent, g = h4.ns;
if (!f.vLoadingAddClassList) {
let p = f.getAttribute("loading-number");
p = Number.parseInt(p) - 1, p ? f.setAttribute("loading-number", p.toString()) : ($c(f, g.bm("parent", "relative")), f.removeAttribute("loading-number")), $c(f, g.bm("parent", "hidden"));
}
o(), d.unmount();
}
function o() {
var f, g;
(g = (f = h4.$el) == null ? void 0 : f.parentNode) == null || g.removeChild(h4.$el);
}
function a() {
var f;
n.beforeClose && !n.beforeClose() || (t.value = true, clearTimeout(e), e = setTimeout(c, 400), i.visible = false, (f = n.closed) == null || f.call(n));
}
function c() {
if (!t.value)
return;
const f = i.parent;
t.value = false, f.vLoadingAddClassList = void 0, s();
}
const l = defineComponent({
name: "ElLoading",
setup(f, { expose: g }) {
const { ns: p, zIndex: u } = eC("loading");
return g({
ns: p,
zIndex: u
}), () => {
const y = i.spinner || i.svg, v = h("svg", {
class: "circular",
viewBox: i.svgViewBox ? i.svgViewBox : "0 0 50 50",
...y ? { innerHTML: y } : {}
}, [
h("circle", {
class: "path",
cx: "25",
cy: "25",
r: "20",
fill: "none"
})
]), m = i.text ? h("p", { class: p.b("text") }, [i.text]) : void 0;
return h(Transition, {
name: p.b("fade"),
onAfterLeave: c
}, {
default: withCtx(() => [
withDirectives(createVNode("div", {
style: {
backgroundColor: i.background || ""
},
class: [
p.b("mask"),
i.customClass,
i.fullscreen ? "is-fullscreen" : ""
]
}, [
h("div", {
class: p.b("spinner")
}, [v, m])
]), [[vShow, i.visible]])
])
});
};
}
}), d = createApp(l), h4 = d.mount(document.createElement("div"));
return {
...toRefs(i),
setText: r,
removeElLoadingChild: o,
close: a,
handleAfterLeave: c,
vm: h4,
get $el() {
return h4.$el;
}
};
}
var Gl;
var gd = function(n = {}) {
if (!Qt)
return;
const e = xP(n);
if (e.fullscreen && Gl)
return Gl;
const t = bP({
...e,
closed: () => {
var r;
(r = e.closed) == null || r.call(e), e.fullscreen && (Gl = void 0);
}
});
wP(e, e.parent, t), ug(e, e.parent, t), e.parent.vLoadingAddClassList = () => ug(e, e.parent, t);
let i = e.parent.getAttribute("loading-number");
return i ? i = `${Number.parseInt(i) + 1}` : i = "1", e.parent.setAttribute("loading-number", i), e.parent.appendChild(t.$el), nextTick(() => t.visible.value = e.visible), e.fullscreen && (Gl = t), t;
};
var xP = (n) => {
var e, t, i, r;
let s;
return Ln(n.target) ? s = (e = document.querySelector(n.target)) != null ? e : document.body : s = n.target || document.body, {
parent: s === document.body || n.body ? document.body : s,
background: n.background || "",
svg: n.svg || "",
svgViewBox: n.svgViewBox || "",
spinner: n.spinner || false,
text: n.text || "",
fullscreen: s === document.body && ((t = n.fullscreen) != null ? t : true),
lock: (i = n.lock) != null ? i : false,
customClass: n.customClass || "",
visible: (r = n.visible) != null ? r : true,
beforeClose: n.beforeClose,
closed: n.closed,
target: s
};
};
var wP = async (n, e, t) => {
const { nextZIndex: i } = t.vm.zIndex || t.vm._.exposed.zIndex, r = {};
if (n.fullscreen)
t.originalPosition.value = va(document.body, "position"), t.originalOverflow.value = va(document.body, "overflow"), r.zIndex = i();
else if (n.parent === document.body) {
t.originalPosition.value = va(document.body, "position"), await nextTick();
for (const s of ["top", "left"]) {
const o = s === "top" ? "scrollTop" : "scrollLeft";
r[s] = `${n.target.getBoundingClientRect()[s] + document.body[o] + document.documentElement[o] - Number.parseInt(va(document.body, `margin-${s}`), 10)}px`;
}
for (const s of ["height", "width"])
r[s] = `${n.target.getBoundingClientRect()[s]}px`;
} else
t.originalPosition.value = va(e, "position");
for (const [s, o] of Object.entries(r))
t.$el.style[s] = o;
};
var ug = (n, e, t) => {
const i = t.vm.ns || t.vm._.exposed.ns;
["absolute", "fixed", "sticky"].includes(t.originalPosition.value) ? $c(e, i.bm("parent", "relative")) : Am(e, i.bm("parent", "relative")), n.fullscreen && n.lock ? Am(e, i.bm("parent", "hidden")) : $c(e, i.bm("parent", "hidden"));
};
var Uc = Symbol("ElLoading");
var hg = (n, e) => {
var t, i, r, s;
const o = e.instance, a = (f) => An(e.value) ? e.value[f] : void 0, c = (f) => {
const g = Ln(f) && (o == null ? void 0 : o[f]) || f;
return g && ref(g);
}, l = (f) => c(a(f) || n.getAttribute(`element-loading-${tM(f)}`)), d = (t = a("fullscreen")) != null ? t : e.modifiers.fullscreen, h4 = {
text: l("text"),
svg: l("svg"),
svgViewBox: l("svgViewBox"),
spinner: l("spinner"),
background: l("background"),
customClass: l("customClass"),
fullscreen: d,
target: (i = a("target")) != null ? i : d ? void 0 : n,
body: (r = a("body")) != null ? r : e.modifiers.body,
lock: (s = a("lock")) != null ? s : e.modifiers.lock
};
n[Uc] = {
options: h4,
instance: gd(h4)
};
};
var MP = (n, e) => {
for (const t of Object.keys(e))
isRef(e[t]) && (e[t].value = n[t]);
};
var vd = {
mounted(n, e) {
e.value && hg(n, e);
},
updated(n, e) {
const t = n[Uc];
e.oldValue !== e.value && (e.value && !e.oldValue ? hg(n, e) : e.value && e.oldValue ? An(e.value) && MP(e.value, t.options) : t == null || t.instance.close());
},
unmounted(n) {
var e;
(e = n[Uc]) == null || e.instance.close(), n[Uc] = null;
}
};
var _P = {
install(n) {
n.directive("loading", vd), n.config.globalProperties.$loading = gd;
},
directive: vd,
service: gd
};
var Dy = { exports: {} };
var dg = {};
var fg;
function SP() {
return fg || (fg = 1, function(n) {
var e = function() {
try {
return !!Symbol.iterator;
} catch {
return false;
}
}, t = e(), i = function(l) {
var d = {
next: function() {
var h4 = l.shift();
return { done: h4 === void 0, value: h4 };
}
};
return t && (d[Symbol.iterator] = function() {
return d;
}), d;
}, r = function(l) {
return encodeURIComponent(l).replace(/%20/g, "+");
}, s = function(l) {
return decodeURIComponent(String(l).replace(/\+/g, " "));
}, o = function() {
var l = function(h4) {
Object.defineProperty(this, "_entries", { writable: true, value: {} });
var f = typeof h4;
if (f !== "undefined") if (f === "string")
h4 !== "" && this._fromString(h4);
else if (h4 instanceof l) {
var g = this;
h4.forEach(function(v, m) {
g.append(m, v);
});
} else if (h4 !== null && f === "object")
if (Object.prototype.toString.call(h4) === "[object Array]")
for (var p = 0; p < h4.length; p++) {
var u = h4[p];
if (Object.prototype.toString.call(u) === "[object Array]" || u.length !== 2)
this.append(u[0], u[1]);
else
throw new TypeError("Expected [string, any] as entry at index " + p + " of URLSearchParams's input");
}
else
for (var y in h4)
h4.hasOwnProperty(y) && this.append(y, h4[y]);
else
throw new TypeError("Unsupported input's type for URLSearchParams");
}, d = l.prototype;
d.append = function(h4, f) {
h4 in this._entries ? this._entries[h4].push(String(f)) : this._entries[h4] = [String(f)];
}, d.delete = function(h4) {
delete this._entries[h4];
}, d.get = function(h4) {
return h4 in this._entries ? this._entries[h4][0] : null;
}, d.getAll = function(h4) {
return h4 in this._entries ? this._entries[h4].slice(0) : [];
}, d.has = function(h4) {
return h4 in this._entries;
}, d.set = function(h4, f) {
this._entries[h4] = [String(f)];
}, d.forEach = function(h4, f) {
var g;
for (var p in this._entries)
if (this._entries.hasOwnProperty(p)) {
g = this._entries[p];
for (var u = 0; u < g.length; u++)
h4.call(f, g[u], p, this);
}
}, d.keys = function() {
var h4 = [];
return this.forEach(function(f, g) {
h4.push(g);
}), i(h4);
}, d.values = function() {
var h4 = [];
return this.forEach(function(f) {
h4.push(f);
}), i(h4);
}, d.entries = function() {
var h4 = [];
return this.forEach(function(f, g) {
h4.push([g, f]);
}), i(h4);
}, t && (d[Symbol.iterator] = d.entries), d.toString = function() {
var h4 = [];
return this.forEach(function(f, g) {
h4.push(r(g) + "=" + r(f));
}), h4.join("&");
}, n.URLSearchParams = l;
}, a = function() {
try {
var l = n.URLSearchParams;
return new l("?a=1").toString() === "a=1" && typeof l.prototype.set == "function" && typeof l.prototype.entries == "function";
} catch {
return false;
}
};
a() || o();
var c = n.URLSearchParams.prototype;
typeof c.sort != "function" && (c.sort = function() {
var l = this, d = [];
this.forEach(function(f, g) {
d.push([g, f]), l._entries || l.delete(g);
}), d.sort(function(f, g) {
return f[0] < g[0] ? -1 : f[0] > g[0] ? 1 : 0;
}), l._entries && (l._entries = {});
for (var h4 = 0; h4 < d.length; h4++)
this.append(d[h4][0], d[h4][1]);
}), typeof c._fromString != "function" && Object.defineProperty(c, "_fromString", {
enumerable: false,
configurable: false,
writable: false,
value: function(l) {
if (this._entries)
this._entries = {};
else {
var d = [];
this.forEach(function(p, u) {
d.push(u);
});
for (var h4 = 0; h4 < d.length; h4++)
this.delete(d[h4]);
}
l = l.replace(/^\?/, "");
for (var f = l.split("&"), g, h4 = 0; h4 < f.length; h4++)
g = f[h4].split("="), this.append(
s(g[0]),
g.length > 1 ? s(g[1]) : ""
);
}
});
}(
typeof Nr < "u" ? Nr : typeof window < "u" ? window : typeof self < "u" ? self : Nr
), function(n) {
var e = function() {
try {
var r = new n.URL("b", "http://a");
return r.pathname = "c d", r.href === "http://a/c%20d" && r.searchParams;
} catch {
return false;
}
}, t = function() {
var r = n.URL, s = function(c, l) {
typeof c != "string" && (c = String(c)), l && typeof l != "string" && (l = String(l));
var d = document, h4;
if (l && (n.location === void 0 || l !== n.location.href)) {
l = l.toLowerCase(), d = document.implementation.createHTMLDocument(""), h4 = d.createElement("base"), h4.href = l, d.head.appendChild(h4);
try {
if (h4.href.indexOf(l) !== 0) throw new Error(h4.href);
} catch (x) {
throw new Error("URL unable to set base " + l + " due to " + x);
}
}
var f = d.createElement("a");
f.href = c, h4 && (d.body.appendChild(f), f.href = f.href);
var g = d.createElement("input");
if (g.type = "url", g.value = c, f.protocol === ":" || !/:/.test(f.href) || !g.checkValidity() && !l)
throw new TypeError("Invalid URL");
Object.defineProperty(this, "_anchorElement", {
value: f
});
var p = new n.URLSearchParams(this.search), u = true, y = true, v = this;
["append", "delete", "set"].forEach(function(x) {
var M = p[x];
p[x] = function() {
M.apply(p, arguments), u && (y = false, v.search = p.toString(), y = true);
};
}), Object.defineProperty(this, "searchParams", {
value: p,
enumerable: true
});
var m = void 0;
Object.defineProperty(this, "_updateSearchParams", {
enumerable: false,
configurable: false,
writable: false,
value: function() {
this.search !== m && (m = this.search, y && (u = false, this.searchParams._fromString(this.search), u = true));
}
});
}, o = s.prototype, a = function(c) {
Object.defineProperty(o, c, {
get: function() {
return this._anchorElement[c];
},
set: function(l) {
this._anchorElement[c] = l;
},
enumerable: true
});
};
["hash", "host", "hostname", "port", "protocol"].forEach(function(c) {
a(c);
}), Object.defineProperty(o, "search", {
get: function() {
return this._anchorElement.search;
},
set: function(c) {
this._anchorElement.search = c, this._updateSearchParams();
},
enumerable: true
}), Object.defineProperties(o, {
toString: {
get: function() {
var c = this;
return function() {
return c.href;
};
}
},
href: {
get: function() {
return this._anchorElement.href.replace(/\?$/, "");
},
set: function(c) {
this._anchorElement.href = c, this._updateSearchParams();
},
enumerable: true
},
pathname: {
get: function() {
return this._anchorElement.pathname.replace(/(^\/?)/, "/");
},
set: function(c) {
this._anchorElement.pathname = c;
},
enumerable: true
},
origin: {
get: function() {
var c = { "http:": 80, "https:": 443, "ftp:": 21 }[this._anchorElement.protocol], l = this._anchorElement.port != c && this._anchorElement.port !== "";
return this._anchorElement.protocol + "//" + this._anchorElement.hostname + (l ? ":" + this._anchorElement.port : "");
},
enumerable: true
},
password: {
// TODO
get: function() {
return "";
},
set: function(c) {
},
enumerable: true
},
username: {
// TODO
get: function() {
return "";
},
set: function(c) {
},
enumerable: true
}
}), s.createObjectURL = function(c) {
return r.createObjectURL.apply(r, arguments);
}, s.revokeObjectURL = function(c) {
return r.revokeObjectURL.apply(r, arguments);
}, n.URL = s;
};
if (e() || t(), n.location !== void 0 && !("origin" in n.location)) {
var i = function() {
return n.location.protocol + "//" + n.location.hostname + (n.location.port ? ":" + n.location.port : "");
};
try {
Object.defineProperty(n.location, "origin", {
get: i,
enumerable: true
});
} catch {
setInterval(function() {
n.location.origin = i();
}, 100);
}
}
}(
typeof Nr < "u" ? Nr : typeof window < "u" ? window : typeof self < "u" ? self : Nr
)), dg;
}
var Uf = "130";
var TP = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
var EP = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
var Ny = 0;
var yd = 1;
var By = 2;
var AP = 3;
var CP = 0;
var Vf = 1;
var Fy = 2;
var wo = 3;
var Zr = 0;
var jt = 1;
var Xr = 2;
var kf = 1;
var LP = 2;
var sr = 0;
var So = 1;
var bd = 2;
var xd = 3;
var wd = 4;
var zy = 5;
var ys = 100;
var Uy = 101;
var Vy = 102;
var Md = 103;
var _d = 104;
var ky = 200;
var Gy = 201;
var Hy = 202;
var Wy = 203;
var Gf = 204;
var Hf = 205;
var jy = 206;
var $y = 207;
var Zy = 208;
var Xy = 209;
var Yy = 210;
var Jy = 0;
var Ky = 1;
var qy = 2;
var qc = 3;
var Qy = 4;
var eb = 5;
var tb = 6;
var nb = 7;
var vl = 0;
var ib = 1;
var rb = 2;
var Ur = 0;
var sb = 1;
var ob = 2;
var ab = 3;
var lb = 4;
var cb = 5;
var Su = 300;
var yl = 301;
var bl = 302;
var Qc = 303;
var eu = 304;
var la = 306;
var xl = 307;
var Yr = 1e3;
var hn2 = 1001;
var No = 1002;
var $t = 1003;
var qa = 1004;
var RP = 1004;
var Qa = 1005;
var PP = 1005;
var Ut = 1006;
var Tu = 1007;
var IP = 1007;
var yr = 1008;
var OP = 1008;
var Ps = 1009;
var ub = 1010;
var hb = 1011;
var el = 1012;
var db = 1013;
var Va = 1014;
var tr = 1015;
var Ts = 1016;
var fb = 1017;
var pb = 1018;
var mb = 1019;
var To = 1020;
var gb = 1021;
var or = 1022;
var jn = 1023;
var vb = 1024;
var yb = 1025;
var bb = jn;
var Es = 1026;
var Bo = 1027;
var xb = 1028;
var wb = 1029;
var Mb = 1030;
var _b = 1031;
var Sb = 1032;
var Tb = 1033;
var Sd = 33776;
var Td = 33777;
var Ed = 33778;
var Ad = 33779;
var Cd = 35840;
var Ld = 35841;
var Rd = 35842;
var Pd = 35843;
var Eb = 36196;
var Id = 37492;
var Od = 37496;
var Ab = 37808;
var Cb = 37809;
var Lb = 37810;
var Rb = 37811;
var Pb = 37812;
var Ib = 37813;
var Ob = 37814;
var Db = 37815;
var Nb = 37816;
var Bb = 37817;
var Fb = 37818;
var zb = 37819;
var Ub = 37820;
var Vb = 37821;
var kb = 36492;
var Gb = 37840;
var Hb = 37841;
var Wb = 37842;
var jb = 37843;
var $b = 37844;
var Zb = 37845;
var Xb = 37846;
var Yb = 37847;
var Jb = 37848;
var Kb = 37849;
var qb = 37850;
var Qb = 37851;
var ex = 37852;
var tx = 37853;
var nx = 2200;
var ix = 2201;
var rx = 2202;
var Fo = 2300;
var Is = 2301;
var Vc = 2302;
var xs = 2400;
var ws = 2401;
var tl = 2402;
var Eu = 2500;
var Wf = 2501;
var sx = 0;
var ox = 1;
var jf = 2;
var Rn = 3e3;
var Os = 3001;
var Au = 3007;
var Cu = 3002;
var ax = 3003;
var $f = 3004;
var Zf = 3005;
var Xf = 3006;
var lx = 3200;
var cx = 3201;
var es = 0;
var ux = 1;
var DP = 0;
var kc = 7680;
var NP = 7681;
var BP = 7682;
var FP = 7683;
var zP = 34055;
var UP = 34056;
var VP = 5386;
var kP = 512;
var GP = 513;
var HP = 514;
var WP = 515;
var jP = 516;
var $P = 517;
var ZP = 518;
var hx = 519;
var zo = 35044;
var Uo = 35048;
var XP = 35040;
var YP = 35045;
var JP = 35049;
var KP = 35041;
var qP = 35046;
var QP = 35050;
var eI = 35042;
var tI = "100";
var Dd = "300 es";
var ts = class {
addEventListener(e, t) {
this._listeners === void 0 && (this._listeners = {});
const i = this._listeners;
i[e] === void 0 && (i[e] = []), i[e].indexOf(t) === -1 && i[e].push(t);
}
hasEventListener(e, t) {
if (this._listeners === void 0) return false;
const i = this._listeners;
return i[e] !== void 0 && i[e].indexOf(t) !== -1;
}
removeEventListener(e, t) {
if (this._listeners === void 0) return;
const r = this._listeners[e];
if (r !== void 0) {
const s = r.indexOf(t);
s !== -1 && r.splice(s, 1);
}
}
dispatchEvent(e) {
if (this._listeners === void 0) return;
const i = this._listeners[e.type];
if (i !== void 0) {
e.target = this;
const r = i.slice(0);
for (let s = 0, o = r.length; s < o; s++)
r[s].call(this, e);
e.target = null;
}
}
};
var pn = [];
for (let n = 0; n < 256; n++)
pn[n] = (n < 16 ? "0" : "") + n.toString(16);
var Hl = 1234567;
var As = Math.PI / 180;
var nl = 180 / Math.PI;
function $n() {
const n = Math.random() * 4294967295 | 0, e = Math.random() * 4294967295 | 0, t = Math.random() * 4294967295 | 0, i = Math.random() * 4294967295 | 0;
return (pn[n & 255] + pn[n >> 8 & 255] + pn[n >> 16 & 255] + pn[n >> 24 & 255] + "-" + pn[e & 255] + pn[e >> 8 & 255] + "-" + pn[e >> 16 & 15 | 64] + pn[e >> 24 & 255] + "-" + pn[t & 63 | 128] + pn[t >> 8 & 255] + "-" + pn[t >> 16 & 255] + pn[t >> 24 & 255] + pn[i & 255] + pn[i >> 8 & 255] + pn[i >> 16 & 255] + pn[i >> 24 & 255]).toUpperCase();
}
function vn(n, e, t) {
return Math.max(e, Math.min(t, n));
}
function Yf(n, e) {
return (n % e + e) % e;
}
function nI(n, e, t, i, r) {
return i + (n - e) * (r - i) / (t - e);
}
function iI(n, e, t) {
return n !== e ? (t - n) / (e - n) : 0;
}
function ka(n, e, t) {
return (1 - t) * n + t * e;
}
function rI(n, e, t, i) {
return ka(n, e, 1 - Math.exp(-t * i));
}
function sI(n, e = 1) {
return e - Math.abs(Yf(n, e * 2) - e);
}
function oI(n, e, t) {
return n <= e ? 0 : n >= t ? 1 : (n = (n - e) / (t - e), n * n * (3 - 2 * n));
}
function aI(n, e, t) {
return n <= e ? 0 : n >= t ? 1 : (n = (n - e) / (t - e), n * n * n * (n * (n * 6 - 15) + 10));
}
function lI(n, e) {
return n + Math.floor(Math.random() * (e - n + 1));
}
function cI(n, e) {
return n + Math.random() * (e - n);
}
function uI(n) {
return n * (0.5 - Math.random());
}
function hI(n) {
return n !== void 0 && (Hl = n % 2147483647), Hl = Hl * 16807 % 2147483647, (Hl - 1) / 2147483646;
}
function dI(n) {
return n * As;
}
function fI(n) {
return n * nl;
}
function Nd(n) {
return (n & n - 1) === 0 && n !== 0;
}
function dx(n) {
return Math.pow(2, Math.ceil(Math.log(n) / Math.LN2));
}
function fx(n) {
return Math.pow(2, Math.floor(Math.log(n) / Math.LN2));
}
function pI(n, e, t, i, r) {
const s = Math.cos, o = Math.sin, a = s(t / 2), c = o(t / 2), l = s((e + i) / 2), d = o((e + i) / 2), h4 = s((e - i) / 2), f = o((e - i) / 2), g = s((i - e) / 2), p = o((i - e) / 2);
switch (r) {
case "XYX":
n.set(a * d, c * h4, c * f, a * l);
break;
case "YZY":
n.set(c * f, a * d, c * h4, a * l);
break;
case "ZXZ":
n.set(c * h4, c * f, a * d, a * l);
break;
case "XZX":
n.set(a * d, c * p, c * g, a * l);
break;
case "YXY":
n.set(c * g, a * d, c * p, a * l);
break;
case "ZYZ":
n.set(c * p, c * g, a * d, a * l);
break;
default:
console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: " + r);
}
}
var Bd = Object.freeze({
__proto__: null,
DEG2RAD: As,
RAD2DEG: nl,
generateUUID: $n,
clamp: vn,
euclideanModulo: Yf,
mapLinear: nI,
inverseLerp: iI,
lerp: ka,
damp: rI,
pingpong: sI,
smoothstep: oI,
smootherstep: aI,
randInt: lI,
randFloat: cI,
randFloatSpread: uI,
seededRandom: hI,
degToRad: dI,
radToDeg: fI,
isPowerOfTwo: Nd,
ceilPowerOfTwo: dx,
floorPowerOfTwo: fx,
setQuaternionFromProperEuler: pI
});
var Re = class {
constructor(e = 0, t = 0) {
this.x = e, this.y = t;
}
get width() {
return this.x;
}
set width(e) {
this.x = e;
}
get height() {
return this.y;
}
set height(e) {
this.y = e;
}
set(e, t) {
return this.x = e, this.y = t, this;
}
setScalar(e) {
return this.x = e, this.y = e, this;
}
setX(e) {
return this.x = e, this;
}
setY(e) {
return this.y = e, this;
}
setComponent(e, t) {
switch (e) {
case 0:
this.x = t;
break;
case 1:
this.y = t;
break;
default:
throw new Error("index is out of range: " + e);
}
return this;
}
getComponent(e) {
switch (e) {
case 0:
return this.x;
case 1:
return this.y;
default:
throw new Error("index is out of range: " + e);
}
}
clone() {
return new this.constructor(this.x, this.y);
}
copy(e) {
return this.x = e.x, this.y = e.y, this;
}
add(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(e, t)) : (this.x += e.x, this.y += e.y, this);
}
addScalar(e) {
return this.x += e, this.y += e, this;
}
addVectors(e, t) {
return this.x = e.x + t.x, this.y = e.y + t.y, this;
}
addScaledVector(e, t) {
return this.x += e.x * t, this.y += e.y * t, this;
}
sub(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(e, t)) : (this.x -= e.x, this.y -= e.y, this);
}
subScalar(e) {
return this.x -= e, this.y -= e, this;
}
subVectors(e, t) {
return this.x = e.x - t.x, this.y = e.y - t.y, this;
}
multiply(e) {
return this.x *= e.x, this.y *= e.y, this;
}
multiplyScalar(e) {
return this.x *= e, this.y *= e, this;
}
divide(e) {
return this.x /= e.x, this.y /= e.y, this;
}
divideScalar(e) {
return this.multiplyScalar(1 / e);
}
applyMatrix3(e) {
const t = this.x, i = this.y, r = e.elements;
return this.x = r[0] * t + r[3] * i + r[6], this.y = r[1] * t + r[4] * i + r[7], this;
}
min(e) {
return this.x = Math.min(this.x, e.x), this.y = Math.min(this.y, e.y), this;
}
max(e) {
return this.x = Math.max(this.x, e.x), this.y = Math.max(this.y, e.y), this;
}
clamp(e, t) {
return this.x = Math.max(e.x, Math.min(t.x, this.x)), this.y = Math.max(e.y, Math.min(t.y, this.y)), this;
}
clampScalar(e, t) {
return this.x = Math.max(e, Math.min(t, this.x)), this.y = Math.max(e, Math.min(t, this.y)), this;
}
clampLength(e, t) {
const i = this.length();
return this.divideScalar(i || 1).multiplyScalar(Math.max(e, Math.min(t, i)));
}
floor() {
return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this;
}
ceil() {
return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this;
}
round() {
return this.x = Math.round(this.x), this.y = Math.round(this.y), this;
}
roundToZero() {
return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this;
}
negate() {
return this.x = -this.x, this.y = -this.y, this;
}
dot(e) {
return this.x * e.x + this.y * e.y;
}
cross(e) {
return this.x * e.y - this.y * e.x;
}
lengthSq() {
return this.x * this.x + this.y * this.y;
}
length() {
return Math.sqrt(this.x * this.x + this.y * this.y);
}
manhattanLength() {
return Math.abs(this.x) + Math.abs(this.y);
}
normalize() {
return this.divideScalar(this.length() || 1);
}
angle() {
return Math.atan2(-this.y, -this.x) + Math.PI;
}
distanceTo(e) {
return Math.sqrt(this.distanceToSquared(e));
}
distanceToSquared(e) {
const t = this.x - e.x, i = this.y - e.y;
return t * t + i * i;
}
manhattanDistanceTo(e) {
return Math.abs(this.x - e.x) + Math.abs(this.y - e.y);
}
setLength(e) {
return this.normalize().multiplyScalar(e);
}
lerp(e, t) {
return this.x += (e.x - this.x) * t, this.y += (e.y - this.y) * t, this;
}
lerpVectors(e, t, i) {
return this.x = e.x + (t.x - e.x) * i, this.y = e.y + (t.y - e.y) * i, this;
}
equals(e) {
return e.x === this.x && e.y === this.y;
}
fromArray(e, t = 0) {
return this.x = e[t], this.y = e[t + 1], this;
}
toArray(e = [], t = 0) {
return e[t] = this.x, e[t + 1] = this.y, e;
}
fromBufferAttribute(e, t, i) {
return i !== void 0 && console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."), this.x = e.getX(t), this.y = e.getY(t), this;
}
rotateAround(e, t) {
const i = Math.cos(t), r = Math.sin(t), s = this.x - e.x, o = this.y - e.y;
return this.x = s * i - o * r + e.x, this.y = s * r + o * i + e.y, this;
}
random() {
return this.x = Math.random(), this.y = Math.random(), this;
}
};
Re.prototype.isVector2 = true;
var rn = class {
constructor() {
this.elements = [
1,
0,
0,
0,
1,
0,
0,
0,
1
], arguments.length > 0 && console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.");
}
set(e, t, i, r, s, o, a, c, l) {
const d = this.elements;
return d[0] = e, d[1] = r, d[2] = a, d[3] = t, d[4] = s, d[5] = c, d[6] = i, d[7] = o, d[8] = l, this;
}
identity() {
return this.set(
1,
0,
0,
0,
1,
0,
0,
0,
1
), this;
}
copy(e) {
const t = this.elements, i = e.elements;
return t[0] = i[0], t[1] = i[1], t[2] = i[2], t[3] = i[3], t[4] = i[4], t[5] = i[5], t[6] = i[6], t[7] = i[7], t[8] = i[8], this;
}
extractBasis(e, t, i) {
return e.setFromMatrix3Column(this, 0), t.setFromMatrix3Column(this, 1), i.setFromMatrix3Column(this, 2), this;
}
setFromMatrix4(e) {
const t = e.elements;
return this.set(
t[0],
t[4],
t[8],
t[1],
t[5],
t[9],
t[2],
t[6],
t[10]
), this;
}
multiply(e) {
return this.multiplyMatrices(this, e);
}
premultiply(e) {
return this.multiplyMatrices(e, this);
}
multiplyMatrices(e, t) {
const i = e.elements, r = t.elements, s = this.elements, o = i[0], a = i[3], c = i[6], l = i[1], d = i[4], h4 = i[7], f = i[2], g = i[5], p = i[8], u = r[0], y = r[3], v = r[6], m = r[1], x = r[4], M = r[7], T = r[2], w = r[5], _ = r[8];
return s[0] = o * u + a * m + c * T, s[3] = o * y + a * x + c * w, s[6] = o * v + a * M + c * _, s[1] = l * u + d * m + h4 * T, s[4] = l * y + d * x + h4 * w, s[7] = l * v + d * M + h4 * _, s[2] = f * u + g * m + p * T, s[5] = f * y + g * x + p * w, s[8] = f * v + g * M + p * _, this;
}
multiplyScalar(e) {
const t = this.elements;
return t[0] *= e, t[3] *= e, t[6] *= e, t[1] *= e, t[4] *= e, t[7] *= e, t[2] *= e, t[5] *= e, t[8] *= e, this;
}
determinant() {
const e = this.elements, t = e[0], i = e[1], r = e[2], s = e[3], o = e[4], a = e[5], c = e[6], l = e[7], d = e[8];
return t * o * d - t * a * l - i * s * d + i * a * c + r * s * l - r * o * c;
}
invert() {
const e = this.elements, t = e[0], i = e[1], r = e[2], s = e[3], o = e[4], a = e[5], c = e[6], l = e[7], d = e[8], h4 = d * o - a * l, f = a * c - d * s, g = l * s - o * c, p = t * h4 + i * f + r * g;
if (p === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);
const u = 1 / p;
return e[0] = h4 * u, e[1] = (r * l - d * i) * u, e[2] = (a * i - r * o) * u, e[3] = f * u, e[4] = (d * t - r * c) * u, e[5] = (r * s - a * t) * u, e[6] = g * u, e[7] = (i * c - l * t) * u, e[8] = (o * t - i * s) * u, this;
}
transpose() {
let e;
const t = this.elements;
return e = t[1], t[1] = t[3], t[3] = e, e = t[2], t[2] = t[6], t[6] = e, e = t[5], t[5] = t[7], t[7] = e, this;
}
getNormalMatrix(e) {
return this.setFromMatrix4(e).invert().transpose();
}
transposeIntoArray(e) {
const t = this.elements;
return e[0] = t[0], e[1] = t[3], e[2] = t[6], e[3] = t[1], e[4] = t[4], e[5] = t[7], e[6] = t[2], e[7] = t[5], e[8] = t[8], this;
}
setUvTransform(e, t, i, r, s, o, a) {
const c = Math.cos(s), l = Math.sin(s);
return this.set(
i * c,
i * l,
-i * (c * o + l * a) + o + e,
-r * l,
r * c,
-r * (-l * o + c * a) + a + t,
0,
0,
1
), this;
}
scale(e, t) {
const i = this.elements;
return i[0] *= e, i[3] *= e, i[6] *= e, i[1] *= t, i[4] *= t, i[7] *= t, this;
}
rotate(e) {
const t = Math.cos(e), i = Math.sin(e), r = this.elements, s = r[0], o = r[3], a = r[6], c = r[1], l = r[4], d = r[7];
return r[0] = t * s + i * c, r[3] = t * o + i * l, r[6] = t * a + i * d, r[1] = -i * s + t * c, r[4] = -i * o + t * l, r[7] = -i * a + t * d, this;
}
translate(e, t) {
const i = this.elements;
return i[0] += e * i[2], i[3] += e * i[5], i[6] += e * i[8], i[1] += t * i[2], i[4] += t * i[5], i[7] += t * i[8], this;
}
equals(e) {
const t = this.elements, i = e.elements;
for (let r = 0; r < 9; r++)
if (t[r] !== i[r]) return false;
return true;
}
fromArray(e, t = 0) {
for (let i = 0; i < 9; i++)
this.elements[i] = e[i + t];
return this;
}
toArray(e = [], t = 0) {
const i = this.elements;
return e[t] = i[0], e[t + 1] = i[1], e[t + 2] = i[2], e[t + 3] = i[3], e[t + 4] = i[4], e[t + 5] = i[5], e[t + 6] = i[6], e[t + 7] = i[7], e[t + 8] = i[8], e;
}
clone() {
return new this.constructor().fromArray(this.elements);
}
};
rn.prototype.isMatrix3 = true;
var Ks;
var Hs = class {
static getDataURL(e) {
if (/^data:/i.test(e.src) || typeof HTMLCanvasElement > "u")
return e.src;
let t;
if (e instanceof HTMLCanvasElement)
t = e;
else {
Ks === void 0 && (Ks = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas")), Ks.width = e.width, Ks.height = e.height;
const i = Ks.getContext("2d");
e instanceof ImageData ? i.putImageData(e, 0, 0) : i.drawImage(e, 0, 0, e.width, e.height), t = Ks;
}
return t.width > 2048 || t.height > 2048 ? (console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons", e), t.toDataURL("image/jpeg", 0.6)) : t.toDataURL("image/png");
}
};
var mI = 0;
var Jt = class _Jt extends ts {
constructor(e = _Jt.DEFAULT_IMAGE, t = _Jt.DEFAULT_MAPPING, i = hn2, r = hn2, s = Ut, o = yr, a = jn, c = Ps, l = 1, d = Rn) {
super(), Object.defineProperty(this, "id", { value: mI++ }), this.uuid = $n(), this.name = "", this.image = e, this.mipmaps = [], this.mapping = t, this.wrapS = i, this.wrapT = r, this.magFilter = s, this.minFilter = o, this.anisotropy = l, this.format = a, this.internalFormat = null, this.type = c, this.offset = new Re(0, 0), this.repeat = new Re(1, 1), this.center = new Re(0, 0), this.rotation = 0, this.matrixAutoUpdate = true, this.matrix = new rn(), this.generateMipmaps = true, this.premultiplyAlpha = false, this.flipY = true, this.unpackAlignment = 4, this.encoding = d, this.version = 0, this.onUpdate = null;
}
updateMatrix() {
this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);
}
clone() {
return new this.constructor().copy(this);
}
copy(e) {
return this.name = e.name, this.image = e.image, this.mipmaps = e.mipmaps.slice(0), this.mapping = e.mapping, this.wrapS = e.wrapS, this.wrapT = e.wrapT, this.magFilter = e.magFilter, this.minFilter = e.minFilter, this.anisotropy = e.anisotropy, this.format = e.format, this.internalFormat = e.internalFormat, this.type = e.type, this.offset.copy(e.offset), this.repeat.copy(e.repeat), this.center.copy(e.center), this.rotation = e.rotation, this.matrixAutoUpdate = e.matrixAutoUpdate, this.matrix.copy(e.matrix), this.generateMipmaps = e.generateMipmaps, this.premultiplyAlpha = e.premultiplyAlpha, this.flipY = e.flipY, this.unpackAlignment = e.unpackAlignment, this.encoding = e.encoding, this;
}
toJSON(e) {
const t = e === void 0 || typeof e == "string";
if (!t && e.textures[this.uuid] !== void 0)
return e.textures[this.uuid];
const i = {
metadata: {
version: 4.5,
type: "Texture",
generator: "Texture.toJSON"
},
uuid: this.uuid,
name: this.name,
mapping: this.mapping,
repeat: [this.repeat.x, this.repeat.y],
offset: [this.offset.x, this.offset.y],
center: [this.center.x, this.center.y],
rotation: this.rotation,
wrap: [this.wrapS, this.wrapT],
format: this.format,
type: this.type,
encoding: this.encoding,
minFilter: this.minFilter,
magFilter: this.magFilter,
anisotropy: this.anisotropy,
flipY: this.flipY,
premultiplyAlpha: this.premultiplyAlpha,
unpackAlignment: this.unpackAlignment
};
if (this.image !== void 0) {
const r = this.image;
if (r.uuid === void 0 && (r.uuid = $n()), !t && e.images[r.uuid] === void 0) {
let s;
if (Array.isArray(r)) {
s = [];
for (let o = 0, a = r.length; o < a; o++)
r[o].isDataTexture ? s.push(sh(r[o].image)) : s.push(sh(r[o]));
} else
s = sh(r);
e.images[r.uuid] = {
uuid: r.uuid,
url: s
};
}
i.image = r.uuid;
}
return t || (e.textures[this.uuid] = i), i;
}
dispose() {
this.dispatchEvent({ type: "dispose" });
}
transformUv(e) {
if (this.mapping !== Su) return e;
if (e.applyMatrix3(this.matrix), e.x < 0 || e.x > 1)
switch (this.wrapS) {
case Yr:
e.x = e.x - Math.floor(e.x);
break;
case hn2:
e.x = e.x < 0 ? 0 : 1;
break;
case No:
Math.abs(Math.floor(e.x) % 2) === 1 ? e.x = Math.ceil(e.x) - e.x : e.x = e.x - Math.floor(e.x);
break;
}
if (e.y < 0 || e.y > 1)
switch (this.wrapT) {
case Yr:
e.y = e.y - Math.floor(e.y);
break;
case hn2:
e.y = e.y < 0 ? 0 : 1;
break;
case No:
Math.abs(Math.floor(e.y) % 2) === 1 ? e.y = Math.ceil(e.y) - e.y : e.y = e.y - Math.floor(e.y);
break;
}
return this.flipY && (e.y = 1 - e.y), e;
}
set needsUpdate(e) {
e === true && this.version++;
}
};
Jt.DEFAULT_IMAGE = void 0;
Jt.DEFAULT_MAPPING = Su;
Jt.prototype.isTexture = true;
function sh(n) {
return typeof HTMLImageElement < "u" && n instanceof HTMLImageElement || typeof HTMLCanvasElement < "u" && n instanceof HTMLCanvasElement || typeof ImageBitmap < "u" && n instanceof ImageBitmap ? Hs.getDataURL(n) : n.data ? {
data: Array.prototype.slice.call(n.data),
width: n.width,
height: n.height,
type: n.data.constructor.name
} : (console.warn("THREE.Texture: Unable to serialize Texture."), {});
}
var xt = class {
constructor(e = 0, t = 0, i = 0, r = 1) {
this.x = e, this.y = t, this.z = i, this.w = r;
}
get width() {
return this.z;
}
set width(e) {
this.z = e;
}
get height() {
return this.w;
}
set height(e) {
this.w = e;
}
set(e, t, i, r) {
return this.x = e, this.y = t, this.z = i, this.w = r, this;
}
setScalar(e) {
return this.x = e, this.y = e, this.z = e, this.w = e, this;
}
setX(e) {
return this.x = e, this;
}
setY(e) {
return this.y = e, this;
}
setZ(e) {
return this.z = e, this;
}
setW(e) {
return this.w = e, this;
}
setComponent(e, t) {
switch (e) {
case 0:
this.x = t;
break;
case 1:
this.y = t;
break;
case 2:
this.z = t;
break;
case 3:
this.w = t;
break;
default:
throw new Error("index is out of range: " + e);
}
return this;
}
getComponent(e) {
switch (e) {
case 0:
return this.x;
case 1:
return this.y;
case 2:
return this.z;
case 3:
return this.w;
default:
throw new Error("index is out of range: " + e);
}
}
clone() {
return new this.constructor(this.x, this.y, this.z, this.w);
}
copy(e) {
return this.x = e.x, this.y = e.y, this.z = e.z, this.w = e.w !== void 0 ? e.w : 1, this;
}
add(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(e, t)) : (this.x += e.x, this.y += e.y, this.z += e.z, this.w += e.w, this);
}
addScalar(e) {
return this.x += e, this.y += e, this.z += e, this.w += e, this;
}
addVectors(e, t) {
return this.x = e.x + t.x, this.y = e.y + t.y, this.z = e.z + t.z, this.w = e.w + t.w, this;
}
addScaledVector(e, t) {
return this.x += e.x * t, this.y += e.y * t, this.z += e.z * t, this.w += e.w * t, this;
}
sub(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(e, t)) : (this.x -= e.x, this.y -= e.y, this.z -= e.z, this.w -= e.w, this);
}
subScalar(e) {
return this.x -= e, this.y -= e, this.z -= e, this.w -= e, this;
}
subVectors(e, t) {
return this.x = e.x - t.x, this.y = e.y - t.y, this.z = e.z - t.z, this.w = e.w - t.w, this;
}
multiply(e) {
return this.x *= e.x, this.y *= e.y, this.z *= e.z, this.w *= e.w, this;
}
multiplyScalar(e) {
return this.x *= e, this.y *= e, this.z *= e, this.w *= e, this;
}
applyMatrix4(e) {
const t = this.x, i = this.y, r = this.z, s = this.w, o = e.elements;
return this.x = o[0] * t + o[4] * i + o[8] * r + o[12] * s, this.y = o[1] * t + o[5] * i + o[9] * r + o[13] * s, this.z = o[2] * t + o[6] * i + o[10] * r + o[14] * s, this.w = o[3] * t + o[7] * i + o[11] * r + o[15] * s, this;
}
divideScalar(e) {
return this.multiplyScalar(1 / e);
}
setAxisAngleFromQuaternion(e) {
this.w = 2 * Math.acos(e.w);
const t = Math.sqrt(1 - e.w * e.w);
return t < 1e-4 ? (this.x = 1, this.y = 0, this.z = 0) : (this.x = e.x / t, this.y = e.y / t, this.z = e.z / t), this;
}
setAxisAngleFromRotationMatrix(e) {
let t, i, r, s;
const c = e.elements, l = c[0], d = c[4], h4 = c[8], f = c[1], g = c[5], p = c[9], u = c[2], y = c[6], v = c[10];
if (Math.abs(d - f) < 0.01 && Math.abs(h4 - u) < 0.01 && Math.abs(p - y) < 0.01) {
if (Math.abs(d + f) < 0.1 && Math.abs(h4 + u) < 0.1 && Math.abs(p + y) < 0.1 && Math.abs(l + g + v - 3) < 0.1)
return this.set(1, 0, 0, 0), this;
t = Math.PI;
const x = (l + 1) / 2, M = (g + 1) / 2, T = (v + 1) / 2, w = (d + f) / 4, _ = (h4 + u) / 4, E = (p + y) / 4;
return x > M && x > T ? x < 0.01 ? (i = 0, r = 0.707106781, s = 0.707106781) : (i = Math.sqrt(x), r = w / i, s = _ / i) : M > T ? M < 0.01 ? (i = 0.707106781, r = 0, s = 0.707106781) : (r = Math.sqrt(M), i = w / r, s = E / r) : T < 0.01 ? (i = 0.707106781, r = 0.707106781, s = 0) : (s = Math.sqrt(T), i = _ / s, r = E / s), this.set(i, r, s, t), this;
}
let m = Math.sqrt((y - p) * (y - p) + (h4 - u) * (h4 - u) + (f - d) * (f - d));
return Math.abs(m) < 1e-3 && (m = 1), this.x = (y - p) / m, this.y = (h4 - u) / m, this.z = (f - d) / m, this.w = Math.acos((l + g + v - 1) / 2), this;
}
min(e) {
return this.x = Math.min(this.x, e.x), this.y = Math.min(this.y, e.y), this.z = Math.min(this.z, e.z), this.w = Math.min(this.w, e.w), this;
}
max(e) {
return this.x = Math.max(this.x, e.x), this.y = Math.max(this.y, e.y), this.z = Math.max(this.z, e.z), this.w = Math.max(this.w, e.w), this;
}
clamp(e, t) {
return this.x = Math.max(e.x, Math.min(t.x, this.x)), this.y = Math.max(e.y, Math.min(t.y, this.y)), this.z = Math.max(e.z, Math.min(t.z, this.z)), this.w = Math.max(e.w, Math.min(t.w, this.w)), this;
}
clampScalar(e, t) {
return this.x = Math.max(e, Math.min(t, this.x)), this.y = Math.max(e, Math.min(t, this.y)), this.z = Math.max(e, Math.min(t, this.z)), this.w = Math.max(e, Math.min(t, this.w)), this;
}
clampLength(e, t) {
const i = this.length();
return this.divideScalar(i || 1).multiplyScalar(Math.max(e, Math.min(t, i)));
}
floor() {
return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this.w = Math.floor(this.w), this;
}
ceil() {
return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this.w = Math.ceil(this.w), this;
}
round() {
return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this.w = Math.round(this.w), this;
}
roundToZero() {
return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z), this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w), this;
}
negate() {
return this.x = -this.x, this.y = -this.y, this.z = -this.z, this.w = -this.w, this;
}
dot(e) {
return this.x * e.x + this.y * e.y + this.z * e.z + this.w * e.w;
}
lengthSq() {
return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;
}
length() {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);
}
manhattanLength() {
return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);
}
normalize() {
return this.divideScalar(this.length() || 1);
}
setLength(e) {
return this.normalize().multiplyScalar(e);
}
lerp(e, t) {
return this.x += (e.x - this.x) * t, this.y += (e.y - this.y) * t, this.z += (e.z - this.z) * t, this.w += (e.w - this.w) * t, this;
}
lerpVectors(e, t, i) {
return this.x = e.x + (t.x - e.x) * i, this.y = e.y + (t.y - e.y) * i, this.z = e.z + (t.z - e.z) * i, this.w = e.w + (t.w - e.w) * i, this;
}
equals(e) {
return e.x === this.x && e.y === this.y && e.z === this.z && e.w === this.w;
}
fromArray(e, t = 0) {
return this.x = e[t], this.y = e[t + 1], this.z = e[t + 2], this.w = e[t + 3], this;
}
toArray(e = [], t = 0) {
return e[t] = this.x, e[t + 1] = this.y, e[t + 2] = this.z, e[t + 3] = this.w, e;
}
fromBufferAttribute(e, t, i) {
return i !== void 0 && console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."), this.x = e.getX(t), this.y = e.getY(t), this.z = e.getZ(t), this.w = e.getW(t), this;
}
random() {
return this.x = Math.random(), this.y = Math.random(), this.z = Math.random(), this.w = Math.random(), this;
}
};
xt.prototype.isVector4 = true;
var gi = class extends ts {
constructor(e, t, i = {}) {
super(), this.width = e, this.height = t, this.depth = 1, this.scissor = new xt(0, 0, e, t), this.scissorTest = false, this.viewport = new xt(0, 0, e, t), this.texture = new Jt(void 0, i.mapping, i.wrapS, i.wrapT, i.magFilter, i.minFilter, i.format, i.type, i.anisotropy, i.encoding), this.texture.image = { width: e, height: t, depth: 1 }, this.texture.generateMipmaps = i.generateMipmaps !== void 0 ? i.generateMipmaps : false, this.texture.minFilter = i.minFilter !== void 0 ? i.minFilter : Ut, this.depthBuffer = i.depthBuffer !== void 0 ? i.depthBuffer : true, this.stencilBuffer = i.stencilBuffer !== void 0 ? i.stencilBuffer : false, this.depthTexture = i.depthTexture !== void 0 ? i.depthTexture : null;
}
setTexture(e) {
e.image = {
width: this.width,
height: this.height,
depth: this.depth
}, this.texture = e;
}
setSize(e, t, i = 1) {
(this.width !== e || this.height !== t || this.depth !== i) && (this.width = e, this.height = t, this.depth = i, this.texture.image.width = e, this.texture.image.height = t, this.texture.image.depth = i, this.dispose()), this.viewport.set(0, 0, e, t), this.scissor.set(0, 0, e, t);
}
clone() {
return new this.constructor().copy(this);
}
copy(e) {
return this.width = e.width, this.height = e.height, this.depth = e.depth, this.viewport.copy(e.viewport), this.texture = e.texture.clone(), this.texture.image = { ...this.texture.image }, this.depthBuffer = e.depthBuffer, this.stencilBuffer = e.stencilBuffer, this.depthTexture = e.depthTexture, this;
}
dispose() {
this.dispatchEvent({ type: "dispose" });
}
};
gi.prototype.isWebGLRenderTarget = true;
var px = class extends gi {
constructor(e, t, i) {
super(e, t);
const r = this.texture;
this.texture = [];
for (let s = 0; s < i; s++)
this.texture[s] = r.clone();
}
setSize(e, t, i = 1) {
if (this.width !== e || this.height !== t || this.depth !== i) {
this.width = e, this.height = t, this.depth = i;
for (let r = 0, s = this.texture.length; r < s; r++)
this.texture[r].image.width = e, this.texture[r].image.height = t, this.texture[r].image.depth = i;
this.dispose();
}
return this.viewport.set(0, 0, e, t), this.scissor.set(0, 0, e, t), this;
}
copy(e) {
this.dispose(), this.width = e.width, this.height = e.height, this.depth = e.depth, this.viewport.set(0, 0, this.width, this.height), this.scissor.set(0, 0, this.width, this.height), this.depthBuffer = e.depthBuffer, this.stencilBuffer = e.stencilBuffer, this.depthTexture = e.depthTexture, this.texture.length = 0;
for (let t = 0, i = e.texture.length; t < i; t++)
this.texture[t] = e.texture[t].clone();
return this;
}
};
px.prototype.isWebGLMultipleRenderTargets = true;
var Jf = class extends gi {
constructor(e, t, i) {
super(e, t, i), this.samples = 4;
}
copy(e) {
return super.copy.call(this, e), this.samples = e.samples, this;
}
};
Jf.prototype.isWebGLMultisampleRenderTarget = true;
var bn = class {
constructor(e = 0, t = 0, i = 0, r = 1) {
this._x = e, this._y = t, this._z = i, this._w = r;
}
static slerp(e, t, i, r) {
return console.warn("THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead."), i.slerpQuaternions(e, t, r);
}
static slerpFlat(e, t, i, r, s, o, a) {
let c = i[r + 0], l = i[r + 1], d = i[r + 2], h4 = i[r + 3];
const f = s[o + 0], g = s[o + 1], p = s[o + 2], u = s[o + 3];
if (a === 0) {
e[t + 0] = c, e[t + 1] = l, e[t + 2] = d, e[t + 3] = h4;
return;
}
if (a === 1) {
e[t + 0] = f, e[t + 1] = g, e[t + 2] = p, e[t + 3] = u;
return;
}
if (h4 !== u || c !== f || l !== g || d !== p) {
let y = 1 - a;
const v = c * f + l * g + d * p + h4 * u, m = v >= 0 ? 1 : -1, x = 1 - v * v;
if (x > Number.EPSILON) {
const T = Math.sqrt(x), w = Math.atan2(T, v * m);
y = Math.sin(y * w) / T, a = Math.sin(a * w) / T;
}
const M = a * m;
if (c = c * y + f * M, l = l * y + g * M, d = d * y + p * M, h4 = h4 * y + u * M, y === 1 - a) {
const T = 1 / Math.sqrt(c * c + l * l + d * d + h4 * h4);
c *= T, l *= T, d *= T, h4 *= T;
}
}
e[t] = c, e[t + 1] = l, e[t + 2] = d, e[t + 3] = h4;
}
static multiplyQuaternionsFlat(e, t, i, r, s, o) {
const a = i[r], c = i[r + 1], l = i[r + 2], d = i[r + 3], h4 = s[o], f = s[o + 1], g = s[o + 2], p = s[o + 3];
return e[t] = a * p + d * h4 + c * g - l * f, e[t + 1] = c * p + d * f + l * h4 - a * g, e[t + 2] = l * p + d * g + a * f - c * h4, e[t + 3] = d * p - a * h4 - c * f - l * g, e;
}
get x() {
return this._x;
}
set x(e) {
this._x = e, this._onChangeCallback();
}
get y() {
return this._y;
}
set y(e) {
this._y = e, this._onChangeCallback();
}
get z() {
return this._z;
}
set z(e) {
this._z = e, this._onChangeCallback();
}
get w() {
return this._w;
}
set w(e) {
this._w = e, this._onChangeCallback();
}
set(e, t, i, r) {
return this._x = e, this._y = t, this._z = i, this._w = r, this._onChangeCallback(), this;
}
clone() {
return new this.constructor(this._x, this._y, this._z, this._w);
}
copy(e) {
return this._x = e.x, this._y = e.y, this._z = e.z, this._w = e.w, this._onChangeCallback(), this;
}
setFromEuler(e, t) {
if (!(e && e.isEuler))
throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");
const i = e._x, r = e._y, s = e._z, o = e._order, a = Math.cos, c = Math.sin, l = a(i / 2), d = a(r / 2), h4 = a(s / 2), f = c(i / 2), g = c(r / 2), p = c(s / 2);
switch (o) {
case "XYZ":
this._x = f * d * h4 + l * g * p, this._y = l * g * h4 - f * d * p, this._z = l * d * p + f * g * h4, this._w = l * d * h4 - f * g * p;
break;
case "YXZ":
this._x = f * d * h4 + l * g * p, this._y = l * g * h4 - f * d * p, this._z = l * d * p - f * g * h4, this._w = l * d * h4 + f * g * p;
break;
case "ZXY":
this._x = f * d * h4 - l * g * p, this._y = l * g * h4 + f * d * p, this._z = l * d * p + f * g * h4, this._w = l * d * h4 - f * g * p;
break;
case "ZYX":
this._x = f * d * h4 - l * g * p, this._y = l * g * h4 + f * d * p, this._z = l * d * p - f * g * h4, this._w = l * d * h4 + f * g * p;
break;
case "YZX":
this._x = f * d * h4 + l * g * p, this._y = l * g * h4 + f * d * p, this._z = l * d * p - f * g * h4, this._w = l * d * h4 - f * g * p;
break;
case "XZY":
this._x = f * d * h4 - l * g * p, this._y = l * g * h4 - f * d * p, this._z = l * d * p + f * g * h4, this._w = l * d * h4 + f * g * p;
break;
default:
console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: " + o);
}
return t !== false && this._onChangeCallback(), this;
}
setFromAxisAngle(e, t) {
const i = t / 2, r = Math.sin(i);
return this._x = e.x * r, this._y = e.y * r, this._z = e.z * r, this._w = Math.cos(i), this._onChangeCallback(), this;
}
setFromRotationMatrix(e) {
const t = e.elements, i = t[0], r = t[4], s = t[8], o = t[1], a = t[5], c = t[9], l = t[2], d = t[6], h4 = t[10], f = i + a + h4;
if (f > 0) {
const g = 0.5 / Math.sqrt(f + 1);
this._w = 0.25 / g, this._x = (d - c) * g, this._y = (s - l) * g, this._z = (o - r) * g;
} else if (i > a && i > h4) {
const g = 2 * Math.sqrt(1 + i - a - h4);
this._w = (d - c) / g, this._x = 0.25 * g, this._y = (r + o) / g, this._z = (s + l) / g;
} else if (a > h4) {
const g = 2 * Math.sqrt(1 + a - i - h4);
this._w = (s - l) / g, this._x = (r + o) / g, this._y = 0.25 * g, this._z = (c + d) / g;
} else {
const g = 2 * Math.sqrt(1 + h4 - i - a);
this._w = (o - r) / g, this._x = (s + l) / g, this._y = (c + d) / g, this._z = 0.25 * g;
}
return this._onChangeCallback(), this;
}
setFromUnitVectors(e, t) {
let i = e.dot(t) + 1;
return i < Number.EPSILON ? (i = 0, Math.abs(e.x) > Math.abs(e.z) ? (this._x = -e.y, this._y = e.x, this._z = 0, this._w = i) : (this._x = 0, this._y = -e.z, this._z = e.y, this._w = i)) : (this._x = e.y * t.z - e.z * t.y, this._y = e.z * t.x - e.x * t.z, this._z = e.x * t.y - e.y * t.x, this._w = i), this.normalize();
}
angleTo(e) {
return 2 * Math.acos(Math.abs(vn(this.dot(e), -1, 1)));
}
rotateTowards(e, t) {
const i = this.angleTo(e);
if (i === 0) return this;
const r = Math.min(1, t / i);
return this.slerp(e, r), this;
}
identity() {
return this.set(0, 0, 0, 1);
}
invert() {
return this.conjugate();
}
conjugate() {
return this._x *= -1, this._y *= -1, this._z *= -1, this._onChangeCallback(), this;
}
dot(e) {
return this._x * e._x + this._y * e._y + this._z * e._z + this._w * e._w;
}
lengthSq() {
return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;
}
length() {
return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);
}
normalize() {
let e = this.length();
return e === 0 ? (this._x = 0, this._y = 0, this._z = 0, this._w = 1) : (e = 1 / e, this._x = this._x * e, this._y = this._y * e, this._z = this._z * e, this._w = this._w * e), this._onChangeCallback(), this;
}
multiply(e, t) {
return t !== void 0 ? (console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."), this.multiplyQuaternions(e, t)) : this.multiplyQuaternions(this, e);
}
premultiply(e) {
return this.multiplyQuaternions(e, this);
}
multiplyQuaternions(e, t) {
const i = e._x, r = e._y, s = e._z, o = e._w, a = t._x, c = t._y, l = t._z, d = t._w;
return this._x = i * d + o * a + r * l - s * c, this._y = r * d + o * c + s * a - i * l, this._z = s * d + o * l + i * c - r * a, this._w = o * d - i * a - r * c - s * l, this._onChangeCallback(), this;
}
slerp(e, t) {
if (t === 0) return this;
if (t === 1) return this.copy(e);
const i = this._x, r = this._y, s = this._z, o = this._w;
let a = o * e._w + i * e._x + r * e._y + s * e._z;
if (a < 0 ? (this._w = -e._w, this._x = -e._x, this._y = -e._y, this._z = -e._z, a = -a) : this.copy(e), a >= 1)
return this._w = o, this._x = i, this._y = r, this._z = s, this;
const c = 1 - a * a;
if (c <= Number.EPSILON) {
const g = 1 - t;
return this._w = g * o + t * this._w, this._x = g * i + t * this._x, this._y = g * r + t * this._y, this._z = g * s + t * this._z, this.normalize(), this._onChangeCallback(), this;
}
const l = Math.sqrt(c), d = Math.atan2(l, a), h4 = Math.sin((1 - t) * d) / l, f = Math.sin(t * d) / l;
return this._w = o * h4 + this._w * f, this._x = i * h4 + this._x * f, this._y = r * h4 + this._y * f, this._z = s * h4 + this._z * f, this._onChangeCallback(), this;
}
slerpQuaternions(e, t, i) {
this.copy(e).slerp(t, i);
}
equals(e) {
return e._x === this._x && e._y === this._y && e._z === this._z && e._w === this._w;
}
fromArray(e, t = 0) {
return this._x = e[t], this._y = e[t + 1], this._z = e[t + 2], this._w = e[t + 3], this._onChangeCallback(), this;
}
toArray(e = [], t = 0) {
return e[t] = this._x, e[t + 1] = this._y, e[t + 2] = this._z, e[t + 3] = this._w, e;
}
fromBufferAttribute(e, t) {
return this._x = e.getX(t), this._y = e.getY(t), this._z = e.getZ(t), this._w = e.getW(t), this;
}
_onChange(e) {
return this._onChangeCallback = e, this;
}
_onChangeCallback() {
}
};
bn.prototype.isQuaternion = true;
var q = class {
constructor(e = 0, t = 0, i = 0) {
this.x = e, this.y = t, this.z = i;
}
set(e, t, i) {
return i === void 0 && (i = this.z), this.x = e, this.y = t, this.z = i, this;
}
setScalar(e) {
return this.x = e, this.y = e, this.z = e, this;
}
setX(e) {
return this.x = e, this;
}
setY(e) {
return this.y = e, this;
}
setZ(e) {
return this.z = e, this;
}
setComponent(e, t) {
switch (e) {
case 0:
this.x = t;
break;
case 1:
this.y = t;
break;
case 2:
this.z = t;
break;
default:
throw new Error("index is out of range: " + e);
}
return this;
}
getComponent(e) {
switch (e) {
case 0:
return this.x;
case 1:
return this.y;
case 2:
return this.z;
default:
throw new Error("index is out of range: " + e);
}
}
clone() {
return new this.constructor(this.x, this.y, this.z);
}
copy(e) {
return this.x = e.x, this.y = e.y, this.z = e.z, this;
}
add(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(e, t)) : (this.x += e.x, this.y += e.y, this.z += e.z, this);
}
addScalar(e) {
return this.x += e, this.y += e, this.z += e, this;
}
addVectors(e, t) {
return this.x = e.x + t.x, this.y = e.y + t.y, this.z = e.z + t.z, this;
}
addScaledVector(e, t) {
return this.x += e.x * t, this.y += e.y * t, this.z += e.z * t, this;
}
sub(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(e, t)) : (this.x -= e.x, this.y -= e.y, this.z -= e.z, this);
}
subScalar(e) {
return this.x -= e, this.y -= e, this.z -= e, this;
}
subVectors(e, t) {
return this.x = e.x - t.x, this.y = e.y - t.y, this.z = e.z - t.z, this;
}
multiply(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."), this.multiplyVectors(e, t)) : (this.x *= e.x, this.y *= e.y, this.z *= e.z, this);
}
multiplyScalar(e) {
return this.x *= e, this.y *= e, this.z *= e, this;
}
multiplyVectors(e, t) {
return this.x = e.x * t.x, this.y = e.y * t.y, this.z = e.z * t.z, this;
}
applyEuler(e) {
return e && e.isEuler || console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."), this.applyQuaternion(pg.setFromEuler(e));
}
applyAxisAngle(e, t) {
return this.applyQuaternion(pg.setFromAxisAngle(e, t));
}
applyMatrix3(e) {
const t = this.x, i = this.y, r = this.z, s = e.elements;
return this.x = s[0] * t + s[3] * i + s[6] * r, this.y = s[1] * t + s[4] * i + s[7] * r, this.z = s[2] * t + s[5] * i + s[8] * r, this;
}
applyNormalMatrix(e) {
return this.applyMatrix3(e).normalize();
}
applyMatrix4(e) {
const t = this.x, i = this.y, r = this.z, s = e.elements, o = 1 / (s[3] * t + s[7] * i + s[11] * r + s[15]);
return this.x = (s[0] * t + s[4] * i + s[8] * r + s[12]) * o, this.y = (s[1] * t + s[5] * i + s[9] * r + s[13]) * o, this.z = (s[2] * t + s[6] * i + s[10] * r + s[14]) * o, this;
}
applyQuaternion(e) {
const t = this.x, i = this.y, r = this.z, s = e.x, o = e.y, a = e.z, c = e.w, l = c * t + o * r - a * i, d = c * i + a * t - s * r, h4 = c * r + s * i - o * t, f = -s * t - o * i - a * r;
return this.x = l * c + f * -s + d * -a - h4 * -o, this.y = d * c + f * -o + h4 * -s - l * -a, this.z = h4 * c + f * -a + l * -o - d * -s, this;
}
project(e) {
return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix);
}
unproject(e) {
return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld);
}
transformDirection(e) {
const t = this.x, i = this.y, r = this.z, s = e.elements;
return this.x = s[0] * t + s[4] * i + s[8] * r, this.y = s[1] * t + s[5] * i + s[9] * r, this.z = s[2] * t + s[6] * i + s[10] * r, this.normalize();
}
divide(e) {
return this.x /= e.x, this.y /= e.y, this.z /= e.z, this;
}
divideScalar(e) {
return this.multiplyScalar(1 / e);
}
min(e) {
return this.x = Math.min(this.x, e.x), this.y = Math.min(this.y, e.y), this.z = Math.min(this.z, e.z), this;
}
max(e) {
return this.x = Math.max(this.x, e.x), this.y = Math.max(this.y, e.y), this.z = Math.max(this.z, e.z), this;
}
clamp(e, t) {
return this.x = Math.max(e.x, Math.min(t.x, this.x)), this.y = Math.max(e.y, Math.min(t.y, this.y)), this.z = Math.max(e.z, Math.min(t.z, this.z)), this;
}
clampScalar(e, t) {
return this.x = Math.max(e, Math.min(t, this.x)), this.y = Math.max(e, Math.min(t, this.y)), this.z = Math.max(e, Math.min(t, this.z)), this;
}
clampLength(e, t) {
const i = this.length();
return this.divideScalar(i || 1).multiplyScalar(Math.max(e, Math.min(t, i)));
}
floor() {
return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this;
}
ceil() {
return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this;
}
round() {
return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this;
}
roundToZero() {
return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z), this;
}
negate() {
return this.x = -this.x, this.y = -this.y, this.z = -this.z, this;
}
dot(e) {
return this.x * e.x + this.y * e.y + this.z * e.z;
}
// TODO lengthSquared?
lengthSq() {
return this.x * this.x + this.y * this.y + this.z * this.z;
}
length() {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
}
manhattanLength() {
return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);
}
normalize() {
return this.divideScalar(this.length() || 1);
}
setLength(e) {
return this.normalize().multiplyScalar(e);
}
lerp(e, t) {
return this.x += (e.x - this.x) * t, this.y += (e.y - this.y) * t, this.z += (e.z - this.z) * t, this;
}
lerpVectors(e, t, i) {
return this.x = e.x + (t.x - e.x) * i, this.y = e.y + (t.y - e.y) * i, this.z = e.z + (t.z - e.z) * i, this;
}
cross(e, t) {
return t !== void 0 ? (console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."), this.crossVectors(e, t)) : this.crossVectors(this, e);
}
crossVectors(e, t) {
const i = e.x, r = e.y, s = e.z, o = t.x, a = t.y, c = t.z;
return this.x = r * c - s * a, this.y = s * o - i * c, this.z = i * a - r * o, this;
}
projectOnVector(e) {
const t = e.lengthSq();
if (t === 0) return this.set(0, 0, 0);
const i = e.dot(this) / t;
return this.copy(e).multiplyScalar(i);
}
projectOnPlane(e) {
return oh.copy(this).projectOnVector(e), this.sub(oh);
}
reflect(e) {
return this.sub(oh.copy(e).multiplyScalar(2 * this.dot(e)));
}
angleTo(e) {
const t = Math.sqrt(this.lengthSq() * e.lengthSq());
if (t === 0) return Math.PI / 2;
const i = this.dot(e) / t;
return Math.acos(vn(i, -1, 1));
}
distanceTo(e) {
return Math.sqrt(this.distanceToSquared(e));
}
distanceToSquared(e) {
const t = this.x - e.x, i = this.y - e.y, r = this.z - e.z;
return t * t + i * i + r * r;
}
manhattanDistanceTo(e) {
return Math.abs(this.x - e.x) + Math.abs(this.y - e.y) + Math.abs(this.z - e.z);
}
setFromSpherical(e) {
return this.setFromSphericalCoords(e.radius, e.phi, e.theta);
}
setFromSphericalCoords(e, t, i) {
const r = Math.sin(t) * e;
return this.x = r * Math.sin(i), this.y = Math.cos(t) * e, this.z = r * Math.cos(i), this;
}
setFromCylindrical(e) {
return this.setFromCylindricalCoords(e.radius, e.theta, e.y);
}
setFromCylindricalCoords(e, t, i) {
return this.x = e * Math.sin(t), this.y = i, this.z = e * Math.cos(t), this;
}
setFromMatrixPosition(e) {
const t = e.elements;
return this.x = t[12], this.y = t[13], this.z = t[14], this;
}
setFromMatrixScale(e) {
const t = this.setFromMatrixColumn(e, 0).length(), i = this.setFromMatrixColumn(e, 1).length(), r = this.setFromMatrixColumn(e, 2).length();
return this.x = t, this.y = i, this.z = r, this;
}
setFromMatrixColumn(e, t) {
return this.fromArray(e.elements, t * 4);
}
setFromMatrix3Column(e, t) {
return this.fromArray(e.elements, t * 3);
}
equals(e) {
return e.x === this.x && e.y === this.y && e.z === this.z;
}
fromArray(e, t = 0) {
return this.x = e[t], this.y = e[t + 1], this.z = e[t + 2], this;
}
toArray(e = [], t = 0) {
return e[t] = this.x, e[t + 1] = this.y, e[t + 2] = this.z, e;
}
fromBufferAttribute(e, t, i) {
return i !== void 0 && console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."), this.x = e.getX(t), this.y = e.getY(t), this.z = e.getZ(t), this;
}
random() {
return this.x = Math.random(), this.y = Math.random(), this.z = Math.random(), this;
}
};
q.prototype.isVector3 = true;
var oh = new q();
var pg = new bn();
var Un = class {
constructor(e = new q(1 / 0, 1 / 0, 1 / 0), t = new q(-1 / 0, -1 / 0, -1 / 0)) {
this.min = e, this.max = t;
}
set(e, t) {
return this.min.copy(e), this.max.copy(t), this;
}
setFromArray(e) {
let t = 1 / 0, i = 1 / 0, r = 1 / 0, s = -1 / 0, o = -1 / 0, a = -1 / 0;
for (let c = 0, l = e.length; c < l; c += 3) {
const d = e[c], h4 = e[c + 1], f = e[c + 2];
d < t && (t = d), h4 < i && (i = h4), f < r && (r = f), d > s && (s = d), h4 > o && (o = h4), f > a && (a = f);
}
return this.min.set(t, i, r), this.max.set(s, o, a), this;
}
setFromBufferAttribute(e) {
let t = 1 / 0, i = 1 / 0, r = 1 / 0, s = -1 / 0, o = -1 / 0, a = -1 / 0;
for (let c = 0, l = e.count; c < l; c++) {
const d = e.getX(c), h4 = e.getY(c), f = e.getZ(c);
d < t && (t = d), h4 < i && (i = h4), f < r && (r = f), d > s && (s = d), h4 > o && (o = h4), f > a && (a = f);
}
return this.min.set(t, i, r), this.max.set(s, o, a), this;
}
setFromPoints(e) {
this.makeEmpty();
for (let t = 0, i = e.length; t < i; t++)
this.expandByPoint(e[t]);
return this;
}
setFromCenterAndSize(e, t) {
const i = ba.copy(t).multiplyScalar(0.5);
return this.min.copy(e).sub(i), this.max.copy(e).add(i), this;
}
setFromObject(e) {
return this.makeEmpty(), this.expandByObject(e);
}
clone() {
return new this.constructor().copy(this);
}
copy(e) {
return this.min.copy(e.min), this.max.copy(e.max), this;
}
makeEmpty() {
return this.min.x = this.min.y = this.min.z = 1 / 0, this.max.x = this.max.y = this.max.z = -1 / 0, this;
}
isEmpty() {
return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;
}
getCenter(e) {
return this.isEmpty() ? e.set(0, 0, 0) : e.addVectors(this.min, this.max).multiplyScalar(0.5);
}
getSize(e) {
return this.isEmpty() ? e.set(0, 0, 0) : e.subVectors(this.max, this.min);
}
expandByPoint(e) {
return this.min.min(e), this.max.max(e), this;
}
expandByVector(e) {
return this.min.sub(e), this.max.add(e), this;
}
expandByScalar(e) {
return this.min.addScalar(-e), this.max.addScalar(e), this;
}
expandByObject(e) {
e.updateWorldMatrix(false, false);
const t = e.geometry;
t !== void 0 && (t.boundingBox === null && t.computeBoundingBox(), ah.copy(t.boundingBox), ah.applyMatrix4(e.matrixWorld), this.union(ah));
const i = e.children;
for (let r = 0, s = i.length; r < s; r++)
this.expandByObject(i[r]);
return this;
}
containsPoint(e) {
return !(e.x < this.min.x || e.x > this.max.x || e.y < this.min.y || e.y > this.max.y || e.z < this.min.z || e.z > this.max.z);
}
containsBox(e) {
return this.min.x <= e.min.x && e.max.x <= this.max.x && this.min.y <= e.min.y && e.max.y <= this.max.y && this.min.z <= e.min.z && e.max.z <= this.max.z;
}
getParameter(e, t) {
return t.set(
(e.x - this.min.x) / (this.max.x - this.min.x),
(e.y - this.min.y) / (this.max.y - this.min.y),
(e.z - this.min.z) / (this.max.z - this.min.z)
);
}
intersectsBox(e) {
return !(e.max.x < this.min.x || e.min.x > this.max.x || e.max.y < this.min.y || e.min.y > this.max.y || e.max.z < this.min.z || e.min.z > this.max.z);
}
intersectsSphere(e) {
return this.clampPoint(e.center, ba), ba.distanceToSquared(e.center) <= e.radius * e.radius;
}
intersectsPlane(e) {
let t, i;
return e.normal.x > 0 ? (t = e.normal.x * this.min.x, i = e.normal.x * this.max.x) : (t = e.normal.x * this.max.x, i = e.normal.x * this.min.x), e.normal.y > 0 ? (t += e.normal.y * this.min.y, i += e.normal.y * this.max.y) : (t += e.normal.y * this.max.y, i += e.normal.y * this.min.y), e.normal.z > 0 ? (t += e.normal.z * this.min.z, i += e.normal.z * this.max.z) : (t += e.normal.z * this.max.z, i += e.normal.z * this.min.z), t <= -e.constant && i >= -e.constant;
}
intersectsTriangle(e) {
if (this.isEmpty())
return false;
this.getCenter(xa), Wl.subVectors(this.max, xa), qs.subVectors(e.a, xa), Qs.subVectors(e.b, xa), eo.subVectors(e.c, xa), Mr.subVectors(Qs, qs), _r.subVectors(eo, Qs), cs.subVectors(qs, eo);
let t = [
0,
-Mr.z,
Mr.y,
0,
-_r.z,
_r.y,
0,
-cs.z,
cs.y,
Mr.z,
0,
-Mr.x,
_r.z,
0,
-_r.x,
cs.z,
0,
-cs.x,
-Mr.y,
Mr.x,
0,
-_r.y,
_r.x,
0,
-cs.y,
cs.x,
0
];
return !lh(t, qs, Qs, eo, Wl) || (t = [1, 0, 0, 0, 1, 0, 0, 0, 1], !lh(t, qs, Qs, eo, Wl)) ? false : (jl.crossVectors(Mr, _r), t = [jl.x, jl.y, jl.z], lh(t, qs, Qs, eo, Wl));
}
clampPoint(e, t) {
return t.copy(e).clamp(this.min, this.max);
}
distanceToPoint(e) {
return ba.copy(e).clamp(this.min, this.max).sub(e).length();
}
getBoundingSphere(e) {
return this.getCenter(e.center), e.radius = this.getSize(ba).length() * 0.5, e;
}
intersect(e) {
return this.min.max(e.min), this.max.min(e.max), this.isEmpty() && this.makeEmpty(), this;
}
union(e) {
return this.min.min(e.min), this.max.max(e.max), this;
}
applyMatrix4(e) {
return this.isEmpty() ? this : (ji[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(e), ji[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(e), ji[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(e), ji[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(e), ji[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(e), ji[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(e), ji[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(e), ji[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(e), this.setFromPoints(ji), this);
}
translate(e) {
return this.min.add(e), this.max.add(e), this;
}
equals(e) {
return e.min.equals(this.min) && e.max.equals(this.max);
}
};
Un.prototype.isBox3 = true;
var ji = [
new q(),
new q(),
new q(),
new q(),
new q(),
new q(),
new q(),
new q()
];
var ba = new q();
var ah = new Un();
var qs = new q();
var Qs = new q();
var eo = new q();
var Mr = new q();
var _r = new q();
var cs = new q();
var xa = new q();
var Wl = new q();
var jl = new q();
var us = new q();
function lh(n, e, t, i, r) {
for (let s = 0, o = n.length - 3; s <= o; s += 3) {
us.fromArray(n, s);
const a = r.x * Math.abs(us.x) + r.y * Math.abs(us.y) + r.z * Math.abs(us.z), c = e.dot(us), l = t.dot(us), d = i.dot(us);
if (Math.max(-Math.max(c, l, d), Math.min(c, l, d)) > a)
return false;
}
return true;
}
var gI = new Un();
var mg = new q();
var ch = new q();
var uh = new q();
var br = class {
constructor(e = new q(), t = -1) {
this.center = e, this.radius = t;
}
set(e, t) {
return this.center.copy(e), this.radius = t, this;
}
setFromPoints(e, t) {
const i = this.center;
t !== void 0 ? i.copy(t) : gI.setFromPoints(e).getCenter(i);
let r = 0;
for (let s = 0, o = e.length; s < o; s++)
r = Math.max(r, i.distanceToSquared(e[s]));
return this.radius = Math.sqrt(r), this;
}
copy(e) {
return this.center.copy(e.center), this.radius = e.radius, this;
}
isEmpty() {
return this.radius < 0;
}
makeEmpty() {
return this.center.set(0, 0, 0), this.radius = -1, this;
}
containsPoint(e) {
return e.distanceToSquared(this.center) <= this.radius * this.radius;
}
distanceToPoint(e) {
return e.distanceTo(this.center) - this.radius;
}
intersectsSphere(e) {
const t = this.radius + e.radius;
return e.center.distanceToSquared(this.center) <= t * t;
}
intersectsBox(e) {
return e.intersectsSphere(this);
}
intersectsPlane(e) {
return Math.abs(e.distanceToPoint(this.center)) <= this.radius;
}
clampPoint(e, t) {
const i = this.center.distanceToSquared(e);
return t.copy(e), i > this.radius * this.radius && (t.sub(this.center).normalize(), t.multiplyScalar(this.radius).add(this.center)), t;
}
getBoundingBox(e) {
return this.isEmpty() ? (e.makeEmpty(), e) : (e.set(this.center, this.center), e.expandByScalar(this.radius), e);
}
applyMatrix4(e) {
return this.center.applyMatrix4(e), this.radius = this.radius * e.getMaxScaleOnAxis(), this;
}
translate(e) {
return this.center.add(e), this;
}
expandByPoint(e) {
uh.subVectors(e, this.center);
const t = uh.lengthSq();
if (t > this.radius * this.radius) {
const i = Math.sqrt(t), r = (i - this.radius) * 0.5;
this.center.add(uh.multiplyScalar(r / i)), this.radius += r;
}
return this;
}
union(e) {
return ch.subVectors(e.center, this.center).normalize().multiplyScalar(e.radius), this.expandByPoint(mg.copy(e.center).add(ch)), this.expandByPoint(mg.copy(e.center).sub(ch)), this;
}
equals(e) {
return e.center.equals(this.center) && e.radius === this.radius;
}
clone() {
return new this.constructor().copy(this);
}
};
var $i = new q();
var hh = new q();
var $l = new q();
var Sr = new q();
var dh = new q();
var Zl = new q();
var fh = new q();
var ns = class {
constructor(e = new q(), t = new q(0, 0, -1)) {
this.origin = e, this.direction = t;
}
set(e, t) {
return this.origin.copy(e), this.direction.copy(t), this;
}
copy(e) {
return this.origin.copy(e.origin), this.direction.copy(e.direction), this;
}
at(e, t) {
return t.copy(this.direction).multiplyScalar(e).add(this.origin);
}
lookAt(e) {
return this.direction.copy(e).sub(this.origin).normalize(), this;
}
recast(e) {
return this.origin.copy(this.at(e, $i)), this;
}
closestPointToPoint(e, t) {
t.subVectors(e, this.origin);
const i = t.dot(this.direction);
return i < 0 ? t.copy(this.origin) : t.copy(this.direction).multiplyScalar(i).add(this.origin);
}
distanceToPoint(e) {
return Math.sqrt(this.distanceSqToPoint(e));
}
distanceSqToPoint(e) {
const t = $i.subVectors(e, this.origin).dot(this.direction);
return t < 0 ? this.origin.distanceToSquared(e) : ($i.copy(this.direction).multiplyScalar(t).add(this.origin), $i.distanceToSquared(e));
}
distanceSqToSegment(e, t, i, r) {
hh.copy(e).add(t).multiplyScalar(0.5), $l.copy(t).sub(e).normalize(), Sr.copy(this.origin).sub(hh);
const s = e.distanceTo(t) * 0.5, o = -this.direction.dot($l), a = Sr.dot(this.direction), c = -Sr.dot($l), l = Sr.lengthSq(), d = Math.abs(1 - o * o);
let h4, f, g, p;
if (d > 0)
if (h4 = o * c - a, f = o * a - c, p = s * d, h4 >= 0)
if (f >= -p)
if (f <= p) {
const u = 1 / d;
h4 *= u, f *= u, g = h4 * (h4 + o * f + 2 * a) + f * (o * h4 + f + 2 * c) + l;
} else
f = s, h4 = Math.max(0, -(o * f + a)), g = -h4 * h4 + f * (f + 2 * c) + l;
else
f = -s, h4 = Math.max(0, -(o * f + a)), g = -h4 * h4 + f * (f + 2 * c) + l;
else
f <= -p ? (h4 = Math.max(0, -(-o * s + a)), f = h4 > 0 ? -s : Math.min(Math.max(-s, -c), s), g = -h4 * h4 + f * (f + 2 * c) + l) : f <= p ? (h4 = 0, f = Math.min(Math.max(-s, -c), s), g = f * (f + 2 * c) + l) : (h4 = Math.max(0, -(o * s + a)), f = h4 > 0 ? s : Math.min(Math.max(-s, -c), s), g = -h4 * h4 + f * (f + 2 * c) + l);
else
f = o > 0 ? -s : s, h4 = Math.max(0, -(o * f + a)), g = -h4 * h4 + f * (f + 2 * c) + l;
return i && i.copy(this.direction).multiplyScalar(h4).add(this.origin), r && r.copy($l).multiplyScalar(f).add(hh), g;
}
intersectSphere(e, t) {
$i.subVectors(e.center, this.origin);
const i = $i.dot(this.direction), r = $i.dot($i) - i * i, s = e.radius * e.radius;
if (r > s) return null;
const o = Math.sqrt(s - r), a = i - o, c = i + o;
return a < 0 && c < 0 ? null : a < 0 ? this.at(c, t) : this.at(a, t);
}
intersectsSphere(e) {
return this.distanceSqToPoint(e.center) <= e.radius * e.radius;
}
distanceToPlane(e) {
const t = e.normal.dot(this.direction);
if (t === 0)
return e.distanceToPoint(this.origin) === 0 ? 0 : null;
const i = -(this.origin.dot(e.normal) + e.constant) / t;
return i >= 0 ? i : null;
}
intersectPlane(e, t) {
const i = this.distanceToPlane(e);
return i === null ? null : this.at(i, t);
}
intersectsPlane(e) {
const t = e.distanceToPoint(this.origin);
return t === 0 || e.normal.dot(this.direction) * t < 0;
}
intersectBox(e, t) {
let i, r, s, o, a, c;
const l = 1 / this.direction.x, d = 1 / this.direction.y, h4 = 1 / this.direction.z, f = this.origin;
return l >= 0 ? (i = (e.min.x - f.x) * l, r = (e.max.x - f.x) * l) : (i = (e.max.x - f.x) * l, r = (e.min.x - f.x) * l), d >= 0 ? (s = (e.min.y - f.y) * d, o = (e.max.y - f.y) * d) : (s = (e.max.y - f.y) * d, o = (e.min.y - f.y) * d), i > o || s > r || ((s > i || i !== i) && (i = s), (o < r || r !== r) && (r = o), h4 >= 0 ? (a = (e.min.z - f.z) * h4, c = (e.max.z - f.z) * h4) : (a = (e.max.z - f.z) * h4, c = (e.min.z - f.z) * h4), i > c || a > r) || ((a > i || i !== i) && (i = a), (c < r || r !== r) && (r = c), r < 0) ? null : this.at(i >= 0 ? i : r, t);
}
intersectsBox(e) {
return this.intersectBox(e, $i) !== null;
}
intersectTriangle(e, t, i, r, s) {
dh.subVectors(t, e), Zl.subVectors(i, e), fh.crossVectors(dh, Zl);
let o = this.direction.dot(fh), a;
if (o > 0) {
if (r) return null;
a = 1;
} else if (o < 0)
a = -1, o = -o;
else
return null;
Sr.subVectors(this.origin, e);
const c = a * this.direction.dot(Zl.crossVectors(Sr, Zl));
if (c < 0)
return null;
const l = a * this.direction.dot(dh.cross(Sr));
if (l < 0 || c + l > o)
return null;
const d = -a * Sr.dot(fh);
return d < 0 ? null : this.at(d / o, s);
}
applyMatrix4(e) {
return this.origin.applyMatrix4(e), this.direction.transformDirection(e), this;
}
equals(e) {
return e.origin.equals(this.origin) && e.direction.equals(this.direction);
}
clone() {
return new this.constructor().copy(this);
}
};
var Ze = class _Ze {
constructor() {
this.elements = [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
], arguments.length > 0 && console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.");
}
set(e, t, i, r, s, o, a, c, l, d, h4, f, g, p, u, y) {
const v = this.elements;
return v[0] = e, v[4] = t, v[8] = i, v[12] = r, v[1] = s, v[5] = o, v[9] = a, v[13] = c, v[2] = l, v[6] = d, v[10] = h4, v[14] = f, v[3] = g, v[7] = p, v[11] = u, v[15] = y, this;
}
identity() {
return this.set(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
), this;
}
clone() {
return new _Ze().fromArray(this.elements);
}
copy(e) {
const t = this.elements, i = e.elements;
return t[0] = i[0], t[1] = i[1], t[2] = i[2], t[3] = i[3], t[4] = i[4], t[5] = i[5], t[6] = i[6], t[7] = i[7], t[8] = i[8], t[9] = i[9], t[10] = i[10], t[11] = i[11], t[12] = i[12], t[13] = i[13], t[14] = i[14], t[15] = i[15], this;
}
copyPosition(e) {
const t = this.elements, i = e.elements;
return t[12] = i[12], t[13] = i[13], t[14] = i[14], this;
}
setFromMatrix3(e) {
const t = e.elements;
return this.set(
t[0],
t[3],
t[6],
0,
t[1],
t[4],
t[7],
0,
t[2],
t[5],
t[8],
0,
0,
0,
0,
1
), this;
}
extractBasis(e, t, i) {
return e.setFromMatrixColumn(this, 0), t.setFromMatrixColumn(this, 1), i.setFromMatrixColumn(this, 2), this;
}
makeBasis(e, t, i) {
return this.set(
e.x,
t.x,
i.x,
0,
e.y,
t.y,
i.y,
0,
e.z,
t.z,
i.z,
0,
0,
0,
0,
1
), this;
}
extractRotation(e) {
const t = this.elements, i = e.elements, r = 1 / to.setFromMatrixColumn(e, 0).length(), s = 1 / to.setFromMatrixColumn(e, 1).length(), o = 1 / to.setFromMatrixColumn(e, 2).length();
return t[0] = i[0] * r, t[1] = i[1] * r, t[2] = i[2] * r, t[3] = 0, t[4] = i[4] * s, t[5] = i[5] * s, t[6] = i[6] * s, t[7] = 0, t[8] = i[8] * o, t[9] = i[9] * o, t[10] = i[10] * o, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, this;
}
makeRotationFromEuler(e) {
e && e.isEuler || console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
const t = this.elements, i = e.x, r = e.y, s = e.z, o = Math.cos(i), a = Math.sin(i), c = Math.cos(r), l = Math.sin(r), d = Math.cos(s), h4 = Math.sin(s);
if (e.order === "XYZ") {
const f = o * d, g = o * h4, p = a * d, u = a * h4;
t[0] = c * d, t[4] = -c * h4, t[8] = l, t[1] = g + p * l, t[5] = f - u * l, t[9] = -a * c, t[2] = u - f * l, t[6] = p + g * l, t[10] = o * c;
} else if (e.order === "YXZ") {
const f = c * d, g = c * h4, p = l * d, u = l * h4;
t[0] = f + u * a, t[4] = p * a - g, t[8] = o * l, t[1] = o * h4, t[5] = o * d, t[9] = -a, t[2] = g * a - p, t[6] = u + f * a, t[10] = o * c;
} else if (e.order === "ZXY") {
const f = c * d, g = c * h4, p = l * d, u = l * h4;
t[0] = f - u * a, t[4] = -o * h4, t[8] = p + g * a, t[1] = g + p * a, t[5] = o * d, t[9] = u - f * a, t[2] = -o * l, t[6] = a, t[10] = o * c;
} else if (e.order === "ZYX") {
const f = o * d, g = o * h4, p = a * d, u = a * h4;
t[0] = c * d, t[4] = p * l - g, t[8] = f * l + u, t[1] = c * h4, t[5] = u * l + f, t[9] = g * l - p, t[2] = -l, t[6] = a * c, t[10] = o * c;
} else if (e.order === "YZX") {
const f = o * c, g = o * l, p = a * c, u = a * l;
t[0] = c * d, t[4] = u - f * h4, t[8] = p * h4 + g, t[1] = h4, t[5] = o * d, t[9] = -a * d, t[2] = -l * d, t[6] = g * h4 + p, t[10] = f - u * h4;
} else if (e.order === "XZY") {
const f = o * c, g = o * l, p = a * c, u = a * l;
t[0] = c * d, t[4] = -h4, t[8] = l * d, t[1] = f * h4 + u, t[5] = o * d, t[9] = g * h4 - p, t[2] = p * h4 - g, t[6] = a * d, t[10] = u * h4 + f;
}
return t[3] = 0, t[7] = 0, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, this;
}
makeRotationFromQuaternion(e) {
return this.compose(vI, e, yI);
}
lookAt(e, t, i) {
const r = this.elements;
return Vn.subVectors(e, t), Vn.lengthSq() === 0 && (Vn.z = 1), Vn.normalize(), Tr.crossVectors(i, Vn), Tr.lengthSq() === 0 && (Math.abs(i.z) === 1 ? Vn.x += 1e-4 : Vn.z += 1e-4, Vn.normalize(), Tr.crossVectors(i, Vn)), Tr.normalize(), Xl.crossVectors(Vn, Tr), r[0] = Tr.x, r[4] = Xl.x, r[8] = Vn.x, r[1] = Tr.y, r[5] = Xl.y, r[9] = Vn.y, r[2] = Tr.z, r[6] = Xl.z, r[10] = Vn.z, this;
}
multiply(e, t) {
return t !== void 0 ? (console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."), this.multiplyMatrices(e, t)) : this.multiplyMatrices(this, e);
}
premultiply(e) {
return this.multiplyMatrices(e, this);
}
multiplyMatrices(e, t) {
const i = e.elements, r = t.elements, s = this.elements, o = i[0], a = i[4], c = i[8], l = i[12], d = i[1], h4 = i[5], f = i[9], g = i[13], p = i[2], u = i[6], y = i[10], v = i[14], m = i[3], x = i[7], M = i[11], T = i[15], w = r[0], _ = r[4], E = r[8], P = r[12], S = r[1], R = r[5], A = r[9], C = r[13], L = r[2], O = r[6], b = r[10], I = r[14], N = r[3], D = r[7], U = r[11], V = r[15];
return s[0] = o * w + a * S + c * L + l * N, s[4] = o * _ + a * R + c * O + l * D, s[8] = o * E + a * A + c * b + l * U, s[12] = o * P + a * C + c * I + l * V, s[1] = d * w + h4 * S + f * L + g * N, s[5] = d * _ + h4 * R + f * O + g * D, s[9] = d * E + h4 * A + f * b + g * U, s[13] = d * P + h4 * C + f * I + g * V, s[2] = p * w + u * S + y * L + v * N, s[6] = p * _ + u * R + y * O + v * D, s[10] = p * E + u * A + y * b + v * U, s[14] = p * P + u * C + y * I + v * V, s[3] = m * w + x * S + M * L + T * N, s[7] = m * _ + x * R + M * O + T * D, s[11] = m * E + x * A + M * b + T * U, s[15] = m * P + x * C + M * I + T * V, this;
}
multiplyScalar(e) {
const t = this.elements;
return t[0] *= e, t[4] *= e, t[8] *= e, t[12] *= e, t[1] *= e, t[5] *= e, t[9] *= e, t[13] *= e, t[2] *= e, t[6] *= e, t[10] *= e, t[14] *= e, t[3] *= e, t[7] *= e, t[11] *= e, t[15] *= e, this;
}
determinant() {
const e = this.elements, t = e[0], i = e[4], r = e[8], s = e[12], o = e[1], a = e[5], c = e[9], l = e[13], d = e[2], h4 = e[6], f = e[10], g = e[14], p = e[3], u = e[7], y = e[11], v = e[15];
return p * (+s * c * h4 - r * l * h4 - s * a * f + i * l * f + r * a * g - i * c * g) + u * (+t * c * g - t * l * f + s * o * f - r * o * g + r * l * d - s * c * d) + y * (+t * l * h4 - t * a * g - s * o * h4 + i * o * g + s * a * d - i * l * d) + v * (-r * a * d - t * c * h4 + t * a * f + r * o * h4 - i * o * f + i * c * d);
}
transpose() {
const e = this.elements;
let t;
return t = e[1], e[1] = e[4], e[4] = t, t = e[2], e[2] = e[8], e[8] = t, t = e[6], e[6] = e[9], e[9] = t, t = e[3], e[3] = e[12], e[12] = t, t = e[7], e[7] = e[13], e[13] = t, t = e[11], e[11] = e[14], e[14] = t, this;
}
setPosition(e, t, i) {
const r = this.elements;
return e.isVector3 ? (r[12] = e.x, r[13] = e.y, r[14] = e.z) : (r[12] = e, r[13] = t, r[14] = i), this;
}
invert() {
const e = this.elements, t = e[0], i = e[1], r = e[2], s = e[3], o = e[4], a = e[5], c = e[6], l = e[7], d = e[8], h4 = e[9], f = e[10], g = e[11], p = e[12], u = e[13], y = e[14], v = e[15], m = h4 * y * l - u * f * l + u * c * g - a * y * g - h4 * c * v + a * f * v, x = p * f * l - d * y * l - p * c * g + o * y * g + d * c * v - o * f * v, M = d * u * l - p * h4 * l + p * a * g - o * u * g - d * a * v + o * h4 * v, T = p * h4 * c - d * u * c - p * a * f + o * u * f + d * a * y - o * h4 * y, w = t * m + i * x + r * M + s * T;
if (w === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
const _ = 1 / w;
return e[0] = m * _, e[1] = (u * f * s - h4 * y * s - u * r * g + i * y * g + h4 * r * v - i * f * v) * _, e[2] = (a * y * s - u * c * s + u * r * l - i * y * l - a * r * v + i * c * v) * _, e[3] = (h4 * c * s - a * f * s - h4 * r * l + i * f * l + a * r * g - i * c * g) * _, e[4] = x * _, e[5] = (d * y * s - p * f * s + p * r * g - t * y * g - d * r * v + t * f * v) * _, e[6] = (p * c * s - o * y * s - p * r * l + t * y * l + o * r * v - t * c * v) * _, e[7] = (o * f * s - d * c * s + d * r * l - t * f * l - o * r * g + t * c * g) * _, e[8] = M * _, e[9] = (p * h4 * s - d * u * s - p * i * g + t * u * g + d * i * v - t * h4 * v) * _, e[10] = (o * u * s - p * a * s + p * i * l - t * u * l - o * i * v + t * a * v) * _, e[11] = (d * a * s - o * h4 * s - d * i * l + t * h4 * l + o * i * g - t * a * g) * _, e[12] = T * _, e[13] = (d * u * r - p * h4 * r + p * i * f - t * u * f - d * i * y + t * h4 * y) * _, e[14] = (p * a * r - o * u * r - p * i * c + t * u * c + o * i * y - t * a * y) * _, e[15] = (o * h4 * r - d * a * r + d * i * c - t * h4 * c - o * i * f + t * a * f) * _, this;
}
scale(e) {
const t = this.elements, i = e.x, r = e.y, s = e.z;
return t[0] *= i, t[4] *= r, t[8] *= s, t[1] *= i, t[5] *= r, t[9] *= s, t[2] *= i, t[6] *= r, t[10] *= s, t[3] *= i, t[7] *= r, t[11] *= s, this;
}
getMaxScaleOnAxis() {
const e = this.elements, t = e[0] * e[0] + e[1] * e[1] + e[2] * e[2], i = e[4] * e[4] + e[5] * e[5] + e[6] * e[6], r = e[8] * e[8] + e[9] * e[9] + e[10] * e[10];
return Math.sqrt(Math.max(t, i, r));
}
makeTranslation(e, t, i) {
return this.set(
1,
0,
0,
e,
0,
1,
0,
t,
0,
0,
1,
i,
0,
0,
0,
1
), this;
}
makeRotationX(e) {
const t = Math.cos(e), i = Math.sin(e);
return this.set(
1,
0,
0,
0,
0,
t,
-i,
0,
0,
i,
t,
0,
0,
0,
0,
1
), this;
}
makeRotationY(e) {
const t = Math.cos(e), i = Math.sin(e);
return this.set(
t,
0,
i,
0,
0,
1,
0,
0,
-i,
0,
t,
0,
0,
0,
0,
1
), this;
}
makeRotationZ(e) {
const t = Math.cos(e), i = Math.sin(e);
return this.set(
t,
-i,
0,
0,
i,
t,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
), this;
}
makeRotationAxis(e, t) {
const i = Math.cos(t), r = Math.sin(t), s = 1 - i, o = e.x, a = e.y, c = e.z, l = s * o, d = s * a;
return this.set(
l * o + i,
l * a - r * c,
l * c + r * a,
0,
l * a + r * c,
d * a + i,
d * c - r * o,
0,
l * c - r * a,
d * c + r * o,
s * c * c + i,
0,
0,
0,
0,
1
), this;
}
makeScale(e, t, i) {
return this.set(
e,
0,
0,
0,
0,
t,
0,
0,
0,
0,
i,
0,
0,
0,
0,
1
), this;
}
makeShear(e, t, i, r, s, o) {
return this.set(
1,
i,
s,
0,
e,
1,
o,
0,
t,
r,
1,
0,
0,
0,
0,
1
), this;
}
compose(e, t, i) {
const r = this.elements, s = t._x, o = t._y, a = t._z, c = t._w, l = s + s, d = o + o, h4 = a + a, f = s * l, g = s * d, p = s * h4, u = o * d, y = o * h4, v = a * h4, m = c * l, x = c * d, M = c * h4, T = i.x, w = i.y, _ = i.z;
return r[0] = (1 - (u + v)) * T, r[1] = (g + M) * T, r[2] = (p - x) * T, r[3] = 0, r[4] = (g - M) * w, r[5] = (1 - (f + v)) * w, r[6] = (y + m) * w, r[7] = 0, r[8] = (p + x) * _, r[9] = (y - m) * _, r[10] = (1 - (f + u)) * _, r[11] = 0, r[12] = e.x, r[13] = e.y, r[14] = e.z, r[15] = 1, this;
}
decompose(e, t, i) {
const r = this.elements;
let s = to.set(r[0], r[1], r[2]).length();
const o = to.set(r[4], r[5], r[6]).length(), a = to.set(r[8], r[9], r[10]).length();
this.determinant() < 0 && (s = -s), e.x = r[12], e.y = r[13], e.z = r[14], li.copy(this);
const l = 1 / s, d = 1 / o, h4 = 1 / a;
return li.elements[0] *= l, li.elements[1] *= l, li.elements[2] *= l, li.elements[4] *= d, li.elements[5] *= d, li.elements[6] *= d, li.elements[8] *= h4, li.elements[9] *= h4, li.elements[10] *= h4, t.setFromRotationMatrix(li), i.x = s, i.y = o, i.z = a, this;
}
makePerspective(e, t, i, r, s, o) {
o === void 0 && console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");
const a = this.elements, c = 2 * s / (t - e), l = 2 * s / (i - r), d = (t + e) / (t - e), h4 = (i + r) / (i - r), f = -(o + s) / (o - s), g = -2 * o * s / (o - s);
return a[0] = c, a[4] = 0, a[8] = d, a[12] = 0, a[1] = 0, a[5] = l, a[9] = h4, a[13] = 0, a[2] = 0, a[6] = 0, a[10] = f, a[14] = g, a[3] = 0, a[7] = 0, a[11] = -1, a[15] = 0, this;
}
makeOrthographic(e, t, i, r, s, o) {
const a = this.elements, c = 1 / (t - e), l = 1 / (i - r), d = 1 / (o - s), h4 = (t + e) * c, f = (i + r) * l, g = (o + s) * d;
return a[0] = 2 * c, a[4] = 0, a[8] = 0, a[12] = -h4, a[1] = 0, a[5] = 2 * l, a[9] = 0, a[13] = -f, a[2] = 0, a[6] = 0, a[10] = -2 * d, a[14] = -g, a[3] = 0, a[7] = 0, a[11] = 0, a[15] = 1, this;
}
equals(e) {
const t = this.elements, i = e.elements;
for (let r = 0; r < 16; r++)
if (t[r] !== i[r]) return false;
return true;
}
fromArray(e, t = 0) {
for (let i = 0; i < 16; i++)
this.elements[i] = e[i + t];
return this;
}
toArray(e = [], t = 0) {
const i = this.elements;
return e[t] = i[0], e[t + 1] = i[1], e[t + 2] = i[2], e[t + 3] = i[3], e[t + 4] = i[4], e[t + 5] = i[5], e[t + 6] = i[6], e[t + 7] = i[7], e[t + 8] = i[8], e[t + 9] = i[9], e[t + 10] = i[10], e[t + 11] = i[11], e[t + 12] = i[12], e[t + 13] = i[13], e[t + 14] = i[14], e[t + 15] = i[15], e;
}
};
Ze.prototype.isMatrix4 = true;
var to = new q();
var li = new Ze();
var vI = new q(0, 0, 0);
var yI = new q(1, 1, 1);
var Tr = new q();
var Xl = new q();
var Vn = new q();
var gg = new Ze();
var vg = new bn();
var Ws = class _Ws {
constructor(e = 0, t = 0, i = 0, r = _Ws.DefaultOrder) {
this._x = e, this._y = t, this._z = i, this._order = r;
}
get x() {
return this._x;
}
set x(e) {
this._x = e, this._onChangeCallback();
}
get y() {
return this._y;
}
set y(e) {
this._y = e, this._onChangeCallback();
}
get z() {
return this._z;
}
set z(e) {
this._z = e, this._onChangeCallback();
}
get order() {
return this._order;
}
set order(e) {
this._order = e, this._onChangeCallback();
}
set(e, t, i, r = this._order) {
return this._x = e, this._y = t, this._z = i, this._order = r, this._onChangeCallback(), this;
}
clone() {
return new this.constructor(this._x, this._y, this._z, this._order);
}
copy(e) {
return this._x = e._x, this._y = e._y, this._z = e._z, this._order = e._order, this._onChangeCallback(), this;
}
setFromRotationMatrix(e, t = this._order, i = true) {
const r = e.elements, s = r[0], o = r[4], a = r[8], c = r[1], l = r[5], d = r[9], h4 = r[2], f = r[6], g = r[10];
switch (t) {
case "XYZ":
this._y = Math.asin(vn(a, -1, 1)), Math.abs(a) < 0.9999999 ? (this._x = Math.atan2(-d, g), this._z = Math.atan2(-o, s)) : (this._x = Math.atan2(f, l), this._z = 0);
break;
case "YXZ":
this._x = Math.asin(-vn(d, -1, 1)), Math.abs(d) < 0.9999999 ? (this._y = Math.atan2(a, g), this._z = Math.atan2(c, l)) : (this._y = Math.atan2(-h4, s), this._z = 0);
break;
case "ZXY":
this._x = Math.asin(vn(f, -1, 1)), Math.abs(f) < 0.9999999 ? (this._y = Math.atan2(-h4, g), this._z = Math.atan2(-o, l)) : (this._y = 0, this._z = Math.atan2(c, s));
break;
case "ZYX":
this._y = Math.asin(-vn(h4, -1, 1)), Math.abs(h4) < 0.9999999 ? (this._x = Math.atan2(f, g), this._z = Math.atan2(c, s)) : (this._x = 0, this._z = Math.atan2(-o, l));
break;
case "YZX":
this._z = Math.asin(vn(c, -1, 1)), Math.abs(c) < 0.9999999 ? (this._x = Math.atan2(-d, l), this._y = Math.atan2(-h4, s)) : (this._x = 0, this._y = Math.atan2(a, g));
break;
case "XZY":
this._z = Math.asin(-vn(o, -1, 1)), Math.abs(o) < 0.9999999 ? (this._x = Math.atan2(f, l), this._y = Math.atan2(a, s)) : (this._x = Math.atan2(-d, g), this._y = 0);
break;
default:
console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: " + t);
}
return this._order = t, i === true && this._onChangeCallback(), this;
}
setFromQuaternion(e, t, i) {
return gg.makeRotationFromQuaternion(e), this.setFromRotationMatrix(gg, t, i);
}
setFromVector3(e, t = this._order) {
return this.set(e.x, e.y, e.z, t);
}
reorder(e) {
return vg.setFromEuler(this), this.setFromQuaternion(vg, e);
}
equals(e) {
return e._x === this._x && e._y === this._y && e._z === this._z && e._order === this._order;
}
fromArray(e) {
return this._x = e[0], this._y = e[1], this._z = e[2], e[3] !== void 0 && (this._order = e[3]), this._onChangeCallback(), this;
}
toArray(e = [], t = 0) {
return e[t] = this._x, e[t + 1] = this._y, e[t + 2] = this._z, e[t + 3] = this._order, e;
}
toVector3(e) {
return e ? e.set(this._x, this._y, this._z) : new q(this._x, this._y, this._z);
}
_onChange(e) {
return this._onChangeCallback = e, this;
}
_onChangeCallback() {
}
};
Ws.prototype.isEuler = true;
Ws.DefaultOrder = "XYZ";
Ws.RotationOrders = ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"];
var Kf = class {
constructor() {
this.mask = 1;
}
set(e) {
this.mask = 1 << e | 0;
}
enable(e) {
this.mask |= 1 << e | 0;
}
enableAll() {
this.mask = -1;
}
toggle(e) {
this.mask ^= 1 << e | 0;
}
disable(e) {
this.mask &= ~(1 << e | 0);
}
disableAll() {
this.mask = 0;
}
test(e) {
return (this.mask & e.mask) !== 0;
}
};
var bI = 0;
var yg = new q();
var no = new bn();
var Zi = new Ze();
var Yl = new q();
var wa = new q();
var xI = new q();
var wI = new bn();
var bg = new q(1, 0, 0);
var xg = new q(0, 1, 0);
var wg = new q(0, 0, 1);
var MI = { type: "added" };
var Mg = { type: "removed" };
var at = class _at extends ts {
constructor() {
super(), Object.defineProperty(this, "id", { value: bI++ }), this.uuid = $n(), this.name = "", this.type = "Object3D", this.parent = null, this.children = [], this.up = _at.DefaultUp.clone();
const e = new q(), t = new Ws(), i = new bn(), r = new q(1, 1, 1);
function s() {
i.setFromEuler(t, false);
}
function o() {
t.setFromQuaternion(i, void 0, false);
}
t._onChange(s), i._onChange(o), Object.defineProperties(this, {
position: {
configurable: true,
enumerable: true,
value: e
},
rotation: {
configurable: true,
enumerable: true,
value: t
},
quaternion: {
configurable: true,
enumerable: true,
value: i
},
scale: {
configurable: true,
enumerable: true,
value: r
},
modelViewMatrix: {
value: new Ze()
},
normalMatrix: {
value: new rn()
}
}), this.matrix = new Ze(), this.matrixWorld = new Ze(), this.matrixAutoUpdate = _at.DefaultMatrixAutoUpdate, this.matrixWorldNeedsUpdate = false, this.layers = new Kf(), this.visible = true, this.castShadow = false, this.receiveShadow = false, this.frustumCulled = true, this.renderOrder = 0, this.animations = [], this.userData = {};
}
onBeforeRender() {
}
onAfterRender() {
}
applyMatrix4(e) {
this.matrixAutoUpdate && this.updateMatrix(), this.matrix.premultiply(e), this.matrix.decompose(this.position, this.quaternion, this.scale);
}
applyQuaternion(e) {
return this.quaternion.premultiply(e), this;
}
setRotationFromAxisAngle(e, t) {
this.quaternion.setFromAxisAngle(e, t);
}
setRotationFromEuler(e) {
this.quaternion.setFromEuler(e, true);
}
setRotationFromMatrix(e) {
this.quaternion.setFromRotationMatrix(e);
}
setRotationFromQuaternion(e) {
this.quaternion.copy(e);
}
rotateOnAxis(e, t) {
return no.setFromAxisAngle(e, t), this.quaternion.multiply(no), this;
}
rotateOnWorldAxis(e, t) {
return no.setFromAxisAngle(e, t), this.quaternion.premultiply(no), this;
}
rotateX(e) {
return this.rotateOnAxis(bg, e);
}
rotateY(e) {
return this.rotateOnAxis(xg, e);
}
rotateZ(e) {
return this.rotateOnAxis(wg, e);
}
translateOnAxis(e, t) {
return yg.copy(e).applyQuaternion(this.quaternion), this.position.add(yg.multiplyScalar(t)), this;
}
translateX(e) {
return this.translateOnAxis(bg, e);
}
translateY(e) {
return this.translateOnAxis(xg, e);
}
translateZ(e) {
return this.translateOnAxis(wg, e);
}
localToWorld(e) {
return e.applyMatrix4(this.matrixWorld);
}
worldToLocal(e) {
return e.applyMatrix4(Zi.copy(this.matrixWorld).invert());
}
lookAt(e, t, i) {
e.isVector3 ? Yl.copy(e) : Yl.set(e, t, i);
const r = this.parent;
this.updateWorldMatrix(true, false), wa.setFromMatrixPosition(this.matrixWorld), this.isCamera || this.isLight ? Zi.lookAt(wa, Yl, this.up) : Zi.lookAt(Yl, wa, this.up), this.quaternion.setFromRotationMatrix(Zi), r && (Zi.extractRotation(r.matrixWorld), no.setFromRotationMatrix(Zi), this.quaternion.premultiply(no.invert()));
}
add(e) {
if (arguments.length > 1) {
for (let t = 0; t < arguments.length; t++)
this.add(arguments[t]);
return this;
}
return e === this ? (console.error("THREE.Object3D.add: object can't be added as a child of itself.", e), this) : (e && e.isObject3D ? (e.parent !== null && e.parent.remove(e), e.parent = this, this.children.push(e), e.dispatchEvent(MI)) : console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.", e), this);
}
remove(e) {
if (arguments.length > 1) {
for (let i = 0; i < arguments.length; i++)
this.remove(arguments[i]);
return this;
}
const t = this.children.indexOf(e);
return t !== -1 && (e.parent = null, this.children.splice(t, 1), e.dispatchEvent(Mg)), this;
}
removeFromParent() {
const e = this.parent;
return e !== null && e.remove(this), this;
}
clear() {
for (let e = 0; e < this.children.length; e++) {
const t = this.children[e];
t.parent = null, t.dispatchEvent(Mg);
}
return this.children.length = 0, this;
}
attach(e) {
return this.updateWorldMatrix(true, false), Zi.copy(this.matrixWorld).invert(), e.parent !== null && (e.parent.updateWorldMatrix(true, false), Zi.multiply(e.parent.matrixWorld)), e.applyMatrix4(Zi), this.add(e), e.updateWorldMatrix(false, true), this;
}
getObjectById(e) {
return this.getObjectByProperty("id", e);
}
getObjectByName(e) {
return this.getObjectByProperty("name", e);
}
getObjectByProperty(e, t) {
if (this[e] === t) return this;
for (let i = 0, r = this.children.length; i < r; i++) {
const o = this.children[i].getObjectByProperty(e, t);
if (o !== void 0)
return o;
}
}
getWorldPosition(e) {
return this.updateWorldMatrix(true, false), e.setFromMatrixPosition(this.matrixWorld);
}
getWorldQuaternion(e) {
return this.updateWorldMatrix(true, false), this.matrixWorld.decompose(wa, e, xI), e;
}
getWorldScale(e) {
return this.updateWorldMatrix(true, false), this.matrixWorld.decompose(wa, wI, e), e;
}
getWorldDirection(e) {
this.updateWorldMatrix(true, false);
const t = this.matrixWorld.elements;
return e.set(t[8], t[9], t[10]).normalize();
}
raycast() {
}
traverse(e) {
e(this);
const t = this.children;
for (let i = 0, r = t.length; i < r; i++)
t[i].traverse(e);
}
traverseVisible(e) {
if (this.visible === false) return;
e(this);
const t = this.children;
for (let i = 0, r = t.length; i < r; i++)
t[i].traverseVisible(e);
}
traverseAncestors(e) {
const t = this.parent;
t !== null && (e(t), t.traverseAncestors(e));
}
updateMatrix() {
this.matrix.compose(this.position, this.quaternion, this.scale), this.matrixWorldNeedsUpdate = true;
}
updateMatrixWorld(e) {
this.matrixAutoUpdate && this.updateMatrix(), (this.matrixWorldNeedsUpdate || e) && (this.parent === null ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), this.matrixWorldNeedsUpdate = false, e = true);
const t = this.children;
for (let i = 0, r = t.length; i < r; i++)
t[i].updateMatrixWorld(e);
}
updateWorldMatrix(e, t) {
const i = this.parent;
if (e === true && i !== null && i.updateWorldMatrix(true, false), this.matrixAutoUpdate && this.updateMatrix(), this.parent === null ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), t === true) {
const r = this.children;
for (let s = 0, o = r.length; s < o; s++)
r[s].updateWorldMatrix(false, true);
}
}
toJSON(e) {
const t = e === void 0 || typeof e == "string", i = {};
t && (e = {
geometries: {},
materials: {},
textures: {},
images: {},
shapes: {},
skeletons: {},
animations: {}
}, i.metadata = {
version: 4.5,
type: "Object",
generator: "Object3D.toJSON"
});
const r = {};
r.uuid = this.uuid, r.type = this.type, this.name !== "" && (r.name = this.name), this.castShadow === true && (r.castShadow = true), this.receiveShadow === true && (r.receiveShadow = true), this.visible === false && (r.visible = false), this.frustumCulled === false && (r.frustumCulled = false), this.renderOrder !== 0 && (r.renderOrder = this.renderOrder), JSON.stringify(this.userData) !== "{}" && (r.userData = this.userData), r.layers = this.layers.mask, r.matrix = this.matrix.toArray(), this.matrixAutoUpdate === false && (r.matrixAutoUpdate = false), this.isInstancedMesh && (r.type = "InstancedMesh", r.count = this.count, r.instanceMatrix = this.instanceMatrix.toJSON(), this.instanceColor !== null && (r.instanceColor = this.instanceColor.toJSON()));
function s(a, c) {
return a[c.uuid] === void 0 && (a[c.uuid] = c.toJSON(e)), c.uuid;
}
if (this.isScene)
this.background && (this.background.isColor ? r.background = this.background.toJSON() : this.background.isTexture && (r.background = this.background.toJSON(e).uuid)), this.environment && this.environment.isTexture && (r.environment = this.environment.toJSON(e).uuid);
else if (this.isMesh || this.isLine || this.isPoints) {
r.geometry = s(e.geometries, this.geometry);
const a = this.geometry.parameters;
if (a !== void 0 && a.shapes !== void 0) {
const c = a.shapes;
if (Array.isArray(c))
for (let l = 0, d = c.length; l < d; l++) {
const h4 = c[l];
s(e.shapes, h4);
}
else
s(e.shapes, c);
}
}
if (this.isSkinnedMesh && (r.bindMode = this.bindMode, r.bindMatrix = this.bindMatrix.toArray(), this.skeleton !== void 0 && (s(e.skeletons, this.skeleton), r.skeleton = this.skeleton.uuid)), this.material !== void 0)
if (Array.isArray(this.material)) {
const a = [];
for (let c = 0, l = this.material.length; c < l; c++)
a.push(s(e.materials, this.material[c]));
r.material = a;
} else
r.material = s(e.materials, this.material);
if (this.children.length > 0) {
r.children = [];
for (let a = 0; a < this.children.length; a++)
r.children.push(this.children[a].toJSON(e).object);
}
if (this.animations.length > 0) {
r.animations = [];
for (let a = 0; a < this.animations.length; a++) {
const c = this.animations[a];
r.animations.push(s(e.animations, c));
}
}
if (t) {
const a = o(e.geometries), c = o(e.materials), l = o(e.textures), d = o(e.images), h4 = o(e.shapes), f = o(e.skeletons), g = o(e.animations);
a.length > 0 && (i.geometries = a), c.length > 0 && (i.materials = c), l.length > 0 && (i.textures = l), d.length > 0 && (i.images = d), h4.length > 0 && (i.shapes = h4), f.length > 0 && (i.skeletons = f), g.length > 0 && (i.animations = g);
}
return i.object = r, i;
function o(a) {
const c = [];
for (const l in a) {
const d = a[l];
delete d.metadata, c.push(d);
}
return c;
}
}
clone(e) {
return new this.constructor().copy(this, e);
}
copy(e, t = true) {
if (this.name = e.name, this.up.copy(e.up), this.position.copy(e.position), this.rotation.order = e.rotation.order, this.quaternion.copy(e.quaternion), this.scale.copy(e.scale), this.matrix.copy(e.matrix), this.matrixWorld.copy(e.matrixWorld), this.matrixAutoUpdate = e.matrixAutoUpdate, this.matrixWorldNeedsUpdate = e.matrixWorldNeedsUpdate, this.layers.mask = e.layers.mask, this.visible = e.visible, this.castShadow = e.castShadow, this.receiveShadow = e.receiveShadow, this.frustumCulled = e.frustumCulled, this.renderOrder = e.renderOrder, this.userData = JSON.parse(JSON.stringify(e.userData)), t === true)
for (let i = 0; i < e.children.length; i++) {
const r = e.children[i];
this.add(r.clone());
}
return this;
}
};
at.DefaultUp = new q(0, 1, 0);
at.DefaultMatrixAutoUpdate = true;
at.prototype.isObject3D = true;
var ci = new q();
var Xi = new q();
var ph = new q();
var Yi = new q();
var io = new q();
var ro = new q();
var _g = new q();
var mh = new q();
var gh = new q();
var vh = new q();
var Zt = class _Zt {
constructor(e = new q(), t = new q(), i = new q()) {
this.a = e, this.b = t, this.c = i;
}
static getNormal(e, t, i, r) {
r.subVectors(i, t), ci.subVectors(e, t), r.cross(ci);
const s = r.lengthSq();
return s > 0 ? r.multiplyScalar(1 / Math.sqrt(s)) : r.set(0, 0, 0);
}
// static/instance method to calculate barycentric coordinates
// based on: http://www.blackpawn.com/texts/pointinpoly/default.html
static getBarycoord(e, t, i, r, s) {
ci.subVectors(r, t), Xi.subVectors(i, t), ph.subVectors(e, t);
const o = ci.dot(ci), a = ci.dot(Xi), c = ci.dot(ph), l = Xi.dot(Xi), d = Xi.dot(ph), h4 = o * l - a * a;
if (h4 === 0)
return s.set(-2, -1, -1);
const f = 1 / h4, g = (l * c - a * d) * f, p = (o * d - a * c) * f;
return s.set(1 - g - p, p, g);
}
static containsPoint(e, t, i, r) {
return this.getBarycoord(e, t, i, r, Yi), Yi.x >= 0 && Yi.y >= 0 && Yi.x + Yi.y <= 1;
}
static getUV(e, t, i, r, s, o, a, c) {
return this.getBarycoord(e, t, i, r, Yi), c.set(0, 0), c.addScaledVector(s, Yi.x), c.addScaledVector(o, Yi.y), c.addScaledVector(a, Yi.z), c;
}
static isFrontFacing(e, t, i, r) {
return ci.subVectors(i, t), Xi.subVectors(e, t), ci.cross(Xi).dot(r) < 0;
}
set(e, t, i) {
return this.a.copy(e), this.b.copy(t), this.c.copy(i), this;
}
setFromPointsAndIndices(e, t, i, r) {
return this.a.copy(e[t]), this.b.copy(e[i]), this.c.copy(e[r]), this;
}
clone() {
return new this.constructor().copy(this);
}
copy(e) {
return this.a.copy(e.a), this.b.copy(e.b), this.c.copy(e.c), this;
}
getArea() {
return ci.subVectors(this.c, this.b), Xi.subVectors(this.a, this.b), ci.cross(Xi).length() * 0.5;
}
getMidpoint(e) {
return e.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);
}
getNormal(e) {
return _Zt.getNormal(this.a, this.b, this.c, e);
}
getPlane(e) {
return e.setFromCoplanarPoints(this.a, this.b, this.c);
}
getBarycoord(e, t) {
return _Zt.getBarycoord(e, this.a, this.b, this.c, t);
}
getUV(e, t, i, r, s) {
return _Zt.getUV(e, this.a, this.b, this.c, t, i, r, s);
}
containsPoint(e) {
return _Zt.containsPoint(e, this.a, this.b, this.c);
}
isFrontFacing(e) {
return _Zt.isFrontFacing(this.a, this.b, this.c, e);
}
intersectsBox(e) {
return e.intersectsTriangle(this);
}
closestPointToPoint(e, t) {
const i = this.a, r = this.b, s = this.c;
let o, a;
io.subVectors(r, i), ro.subVectors(s, i), mh.subVectors(e, i);
const c = io.dot(mh), l = ro.dot(mh);
if (c <= 0 && l <= 0)
return t.copy(i);
gh.subVectors(e, r);
const d = io.dot(gh), h4 = ro.dot(gh);
if (d >= 0 && h4 <= d)
return t.copy(r);
const f = c * h4 - d * l;
if (f <= 0 && c >= 0 && d <= 0)
return o = c / (c - d), t.copy(i).addScaledVector(io, o);
vh.subVectors(e, s);
const g = io.dot(vh), p = ro.dot(vh);
if (p >= 0 && g <= p)
return t.copy(s);
const u = g * l - c * p;
if (u <= 0 && l >= 0 && p <= 0)
return a = l / (l - p), t.copy(i).addScaledVector(ro, a);
const y = d * p - g * h4;
if (y <= 0 && h4 - d >= 0 && g - p >= 0)
return _g.subVectors(s, r), a = (h4 - d) / (h4 - d + (g - p)), t.copy(r).addScaledVector(_g, a);
const v = 1 / (y + u + f);
return o = u * v, a = f * v, t.copy(i).addScaledVector(io, o).addScaledVector(ro, a);
}
equals(e) {
return e.a.equals(this.a) && e.b.equals(this.b) && e.c.equals(this.c);
}
};
var _I = 0;
var en = class extends ts {
constructor() {
super(), Object.defineProperty(this, "id", { value: _I++ }), this.uuid = $n(), this.name = "", this.type = "Material", this.fog = true, this.blending = So, this.side = Zr, this.vertexColors = false, this.opacity = 1, this.transparent = false, this.blendSrc = Gf, this.blendDst = Hf, this.blendEquation = ys, this.blendSrcAlpha = null, this.blendDstAlpha = null, this.blendEquationAlpha = null, this.depthFunc = qc, this.depthTest = true, this.depthWrite = true, this.stencilWriteMask = 255, this.stencilFunc = hx, this.stencilRef = 0, this.stencilFuncMask = 255, this.stencilFail = kc, this.stencilZFail = kc, this.stencilZPass = kc, this.stencilWrite = false, this.clippingPlanes = null, this.clipIntersection = false, this.clipShadows = false, this.shadowSide = null, this.colorWrite = true, this.precision = null, this.polygonOffset = false, this.polygonOffsetFactor = 0, this.polygonOffsetUnits = 0, this.dithering = false, this.alphaTest = 0, this.alphaToCoverage = false, this.premultipliedAlpha = false, this.visible = true, this.toneMapped = true, this.userData = {}, this.version = 0;
}
onBuild() {
}
onBeforeCompile() {
}
customProgramCacheKey() {
return this.onBeforeCompile.toString();
}
setValues(e) {
if (e !== void 0)
for (const t in e) {
const i = e[t];
if (i === void 0) {
console.warn("THREE.Material: '" + t + "' parameter is undefined.");
continue;
}
if (t === "shading") {
console.warn("THREE." + this.type + ": .shading has been removed. Use the boolean .flatShading instead."), this.flatShading = i === kf;
continue;
}
const r = this[t];
if (r === void 0) {
console.warn("THREE." + this.type + ": '" + t + "' is not a property of this material.");
continue;
}
r && r.isColor ? r.set(i) : r && r.isVector3 && i && i.isVector3 ? r.copy(i) : this[t] = i;
}
}
toJSON(e) {
const t = e === void 0 || typeof e == "string";
t && (e = {
textures: {},
images: {}
});
const i = {
metadata: {
version: 4.5,
type: "Material",
generator: "Material.toJSON"
}
};
i.uuid = this.uuid, i.type = this.type, this.name !== "" && (i.name = this.name), this.color && this.color.isColor && (i.color = this.color.getHex()), this.roughness !== void 0 && (i.roughness = this.roughness), this.metalness !== void 0 && (i.metalness = this.metalness), this.sheen && this.sheen.isColor && (i.sheen = this.sheen.getHex()), this.emissive && this.emissive.isColor && (i.emissive = this.emissive.getHex()), this.emissiveIntensity && this.emissiveIntensity !== 1 && (i.emissiveIntensity = this.emissiveIntensity), this.specular && this.specular.isColor && (i.specular = this.specular.getHex()), this.shininess !== void 0 && (i.shininess = this.shininess), this.clearcoat !== void 0 && (i.clearcoat = this.clearcoat), this.clearcoatRoughness !== void 0 && (i.clearcoatRoughness = this.clearcoatRoughness), this.clearcoatMap && this.clearcoatMap.isTexture && (i.clearcoatMap = this.clearcoatMap.toJSON(e).uuid), this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture && (i.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(e).uuid), this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture && (i.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(e).uuid, i.clearcoatNormalScale = this.clearcoatNormalScale.toArray()), this.map && this.map.isTexture && (i.map = this.map.toJSON(e).uuid), this.matcap && this.matcap.isTexture && (i.matcap = this.matcap.toJSON(e).uuid), this.alphaMap && this.alphaMap.isTexture && (i.alphaMap = this.alphaMap.toJSON(e).uuid), this.lightMap && this.lightMap.isTexture && (i.lightMap = this.lightMap.toJSON(e).uuid, i.lightMapIntensity = this.lightMapIntensity), this.aoMap && this.aoMap.isTexture && (i.aoMap = this.aoMap.toJSON(e).uuid, i.aoMapIntensity = this.aoMapIntensity), this.bumpMap && this.bumpMap.isTexture && (i.bumpMap = this.bumpMap.toJSON(e).uuid, i.bumpScale = this.bumpScale), this.normalMap && this.normalMap.isTexture && (i.normalMap = this.normalMap.toJSON(e).uuid, i.normalMapType = this.normalMapType, i.normalScale = this.normalScale.toArray()), this.displacementMap && this.displacementMap.isTexture && (i.displacementMap = this.displacementMap.toJSON(e).uuid, i.displacementScale = this.displacementScale, i.displacementBias = this.displacementBias), this.roughnessMap && this.roughnessMap.isTexture && (i.roughnessMap = this.roughnessMap.toJSON(e).uuid), this.metalnessMap && this.metalnessMap.isTexture && (i.metalnessMap = this.metalnessMap.toJSON(e).uuid), this.emissiveMap && this.emissiveMap.isTexture && (i.emissiveMap = this.emissiveMap.toJSON(e).uuid), this.specularMap && this.specularMap.isTexture && (i.specularMap = this.specularMap.toJSON(e).uuid), this.envMap && this.envMap.isTexture && (i.envMap = this.envMap.toJSON(e).uuid, this.combine !== void 0 && (i.combine = this.combine)), this.envMapIntensity !== void 0 && (i.envMapIntensity = this.envMapIntensity), this.reflectivity !== void 0 && (i.reflectivity = this.reflectivity), this.refractionRatio !== void 0 && (i.refractionRatio = this.refractionRatio), this.gradientMap && this.gradientMap.isTexture && (i.gradientMap = this.gradientMap.toJSON(e).uuid), this.transmission !== void 0 && (i.transmission = this.transmission), this.transmissionMap && this.transmissionMap.isTexture && (i.transmissionMap = this.transmissionMap.toJSON(e).uuid), this.thickness !== void 0 && (i.thickness = this.thickness), this.thicknessMap && this.thicknessMap.isTexture && (i.thicknessMap = this.thicknessMap.toJSON(e).uuid), this.attenuationDistance !== void 0 && (i.attenuationDistance = this.attenuationDistance), this.attenuationColor !== void 0 && (i.attenuationColor = this.attenuationColor.getHex()), this.size !== void 0 && (i.size = this.size), this.shadowSide !== null && (i.shadowSide = this.shadowSide), this.sizeAttenuation !== void 0 && (i.sizeAttenuation = this.sizeAttenuation), this.blending !== So && (i.blending = this.blending), this.side !== Zr && (i.side = this.side), this.vertexColors && (i.vertexColors = true), this.opacity < 1 && (i.opacity = this.opacity), this.transparent === true && (i.transparent = this.transparent), i.depthFunc = this.depthFunc, i.depthTest = this.depthTest, i.depthWrite = this.depthWrite, i.colorWrite = this.colorWrite, i.stencilWrite = this.stencilWrite, i.stencilWriteMask = this.stencilWriteMask, i.stencilFunc = this.stencilFunc, i.stencilRef = this.stencilRef, i.stencilFuncMask = this.stencilFuncMask, i.stencilFail = this.stencilFail, i.stencilZFail = this.stencilZFail, i.stencilZPass = this.stencilZPass, this.rotation && this.rotation !== 0 && (i.rotation = this.rotation), this.polygonOffset === true && (i.polygonOffset = true), this.polygonOffsetFactor !== 0 && (i.polygonOffsetFactor = this.polygonOffsetFactor), this.polygonOffsetUnits !== 0 && (i.polygonOffsetUnits = this.polygonOffsetUnits), this.linewidth && this.linewidth !== 1 && (i.linewidth = this.linewidth), this.dashSize !== void 0 && (i.dashSize = this.dashSize), this.gapSize !== void 0 && (i.gapSize = this.gapSize), this.scale !== void 0 && (i.scale = this.scale), this.dithering === true && (i.dithering = true), this.alphaTest > 0 && (i.alphaTest = this.alphaTest), this.alphaToCoverage === true && (i.alphaToCoverage = this.alphaToCoverage), this.premultipliedAlpha === true && (i.premultipliedAlpha = this.premultipliedAlpha), this.wireframe === true && (i.wireframe = this.wireframe), this.wireframeLinewidth > 1 && (i.wireframeLinewidth = this.wireframeLinewidth), this.wireframeLinecap !== "round" && (i.wireframeLinecap = this.wireframeLinecap), this.wireframeLinejoin !== "round" && (i.wireframeLinejoin = this.wireframeLinejoin), this.morphTargets === true && (i.morphTargets = true), this.morphNormals === true && (i.morphNormals = true), this.flatShading === true && (i.flatShading = this.flatShading), this.visible === false && (i.visible = false), this.toneMapped === false && (i.toneMapped = false), JSON.stringify(this.userData) !== "{}" && (i.userData = this.userData);
function r(s) {
const o = [];
for (const a in s) {
const c = s[a];
delete c.metadata, o.push(c);
}
return o;
}
if (t) {
const s = r(e.textures), o = r(e.images);
s.length > 0 && (i.textures = s), o.length > 0 && (i.images = o);
}
return i;
}
clone() {
return new this.constructor().copy(this);
}
copy(e) {
this.name = e.name, this.fog = e.fog, this.blending = e.blending, this.side = e.side, this.vertexColors = e.vertexColors, this.opacity = e.opacity, this.transparent = e.transparent, this.blendSrc = e.blendSrc, this.blendDst = e.blendDst, this.blendEquation = e.blendEquation, this.blendSrcAlpha = e.blendSrcAlpha, this.blendDstAlpha = e.blendDstAlpha, this.blendEquationAlpha = e.blendEquationAlpha, this.depthFunc = e.depthFunc, this.depthTest = e.depthTest, this.depthWrite = e.depthWrite, this.stencilWriteMask = e.stencilWriteMask, this.stencilFunc = e.stencilFunc, this.stencilRef = e.stencilRef, this.stencilFuncMask = e.stencilFuncMask, this.stencilFail = e.stencilFail, this.stencilZFail = e.stencilZFail, this.stencilZPass = e.stencilZPass, this.stencilWrite = e.stencilWrite;
const t = e.clippingPlanes;
let i = null;
if (t !== null) {
const r = t.length;
i = new Array(r);
for (let s = 0; s !== r; ++s)
i[s] = t[s].clone();
}
return this.clippingPlanes = i, this.clipIntersection = e.clipIntersection, this.clipShadows = e.clipShadows, this.shadowSide = e.shadowSide, this.colorWrite = e.colorWrite, this.precision = e.precision, this.polygonOffset = e.polygonOffset, this.polygonOffsetFactor = e.polygonOffsetFactor, this.polygonOffsetUnits = e.polygonOffsetUnits, this.dithering = e.dithering, this.alphaTest = e.alphaTest, this.alphaToCoverage = e.alphaToCoverage, this.premultipliedAlpha = e.premultipliedAlpha, this.visible = e.visible, this.toneMapped = e.toneMapped, this.userData = JSON.parse(JSON.stringify(e.userData)), this;
}
dispose() {
this.dispatchEvent({ type: "dispose" });
}
set needsUpdate(e) {
e === true && this.version++;
}
};
en.prototype.isMaterial = true;
var mx = {
aliceblue: 15792383,
antiquewhite: 16444375,
aqua: 65535,
aquamarine: 8388564,
azure: 15794175,
beige: 16119260,
bisque: 16770244,
black: 0,
blanchedalmond: 16772045,
blue: 255,
blueviolet: 9055202,
brown: 10824234,
burlywood: 14596231,
cadetblue: 6266528,
chartreuse: 8388352,
chocolate: 13789470,
coral: 16744272,
cornflowerblue: 6591981,
cornsilk: 16775388,
crimson: 14423100,
cyan: 65535,
darkblue: 139,
darkcyan: 35723,
darkgoldenrod: 12092939,
darkgray: 11119017,
darkgreen: 25600,
darkgrey: 11119017,
darkkhaki: 12433259,
darkmagenta: 9109643,
darkolivegreen: 5597999,
darkorange: 16747520,
darkorchid: 10040012,
darkred: 9109504,
darksalmon: 15308410,
darkseagreen: 9419919,
darkslateblue: 4734347,
darkslategray: 3100495,
darkslategrey: 3100495,
darkturquoise: 52945,
darkviolet: 9699539,
deeppink: 16716947,
deepskyblue: 49151,
dimgray: 6908265,
dimgrey: 6908265,
dodgerblue: 2003199,
firebrick: 11674146,
floralwhite: 16775920,
forestgreen: 2263842,
fuchsia: 16711935,
gainsboro: 14474460,
ghostwhite: 16316671,
gold: 16766720,
goldenrod: 14329120,
gray: 8421504,
green: 32768,
greenyellow: 11403055,
grey: 8421504,
honeydew: 15794160,
hotpink: 16738740,
indianred: 13458524,
indigo: 4915330,
ivory: 16777200,
khaki: 15787660,
lavender: 15132410,
lavenderblush: 16773365,
lawngreen: 8190976,
lemonchiffon: 16775885,
lightblue: 11393254,
lightcoral: 15761536,
lightcyan: 14745599,
lightgoldenrodyellow: 16448210,
lightgray: 13882323,
lightgreen: 9498256,
lightgrey: 13882323,
lightpink: 16758465,
lightsalmon: 16752762,
lightseagreen: 2142890,
lightskyblue: 8900346,
lightslategray: 7833753,
lightslategrey: 7833753,
lightsteelblue: 11584734,
lightyellow: 16777184,
lime: 65280,
limegreen: 3329330,
linen: 16445670,
magenta: 16711935,
maroon: 8388608,
mediumaquamarine: 6737322,
mediumblue: 205,
mediumorchid: 12211667,
mediumpurple: 9662683,
mediumseagreen: 3978097,
mediumslateblue: 8087790,
mediumspringgreen: 64154,
mediumturquoise: 4772300,
mediumvioletred: 13047173,
midnightblue: 1644912,
mintcream: 16121850,
mistyrose: 16770273,
moccasin: 16770229,
navajowhite: 16768685,
navy: 128,
oldlace: 16643558,
olive: 8421376,
olivedrab: 7048739,
orange: 16753920,
orangered: 16729344,
orchid: 14315734,
palegoldenrod: 15657130,
palegreen: 10025880,
paleturquoise: 11529966,
palevioletred: 14381203,
papayawhip: 16773077,
peachpuff: 16767673,
peru: 13468991,
pink: 16761035,
plum: 14524637,
powderblue: 11591910,
purple: 8388736,
rebeccapurple: 6697881,
red: 16711680,
rosybrown: 12357519,
royalblue: 4286945,
saddlebrown: 9127187,
salmon: 16416882,
sandybrown: 16032864,
seagreen: 3050327,
seashell: 16774638,
sienna: 10506797,
silver: 12632256,
skyblue: 8900331,
slateblue: 6970061,
slategray: 7372944,
slategrey: 7372944,
snow: 16775930,
springgreen: 65407,
steelblue: 4620980,
tan: 13808780,
teal: 32896,
thistle: 14204888,
tomato: 16737095,
turquoise: 4251856,
violet: 15631086,
wheat: 16113331,
white: 16777215,
whitesmoke: 16119285,
yellow: 16776960,
yellowgreen: 10145074
};
var ui = { h: 0, s: 0, l: 0 };
var Jl = { h: 0, s: 0, l: 0 };
function yh(n, e, t) {
return t < 0 && (t += 1), t > 1 && (t -= 1), t < 1 / 6 ? n + (e - n) * 6 * t : t < 1 / 2 ? e : t < 2 / 3 ? n + (e - n) * 6 * (2 / 3 - t) : n;
}
function bh(n) {
return n < 0.04045 ? n * 0.0773993808 : Math.pow(n * 0.9478672986 + 0.0521327014, 2.4);
}
function xh(n) {
return n < 31308e-7 ? n * 12.92 : 1.055 * Math.pow(n, 0.41666) - 0.055;
}
var Fe = class {
constructor(e, t, i) {
return t === void 0 && i === void 0 ? this.set(e) : this.setRGB(e, t, i);
}
set(e) {
return e && e.isColor ? this.copy(e) : typeof e == "number" ? this.setHex(e) : typeof e == "string" && this.setStyle(e), this;
}
setScalar(e) {
return this.r = e, this.g = e, this.b = e, this;
}
setHex(e) {
return e = Math.floor(e), this.r = (e >> 16 & 255) / 255, this.g = (e >> 8 & 255) / 255, this.b = (e & 255) / 255, this;
}
setRGB(e, t, i) {
return this.r = e, this.g = t, this.b = i, this;
}
setHSL(e, t, i) {
if (e = Yf(e, 1), t = vn(t, 0, 1), i = vn(i, 0, 1), t === 0)
this.r = this.g = this.b = i;
else {
const r = i <= 0.5 ? i * (1 + t) : i + t - i * t, s = 2 * i - r;
this.r = yh(s, r, e + 1 / 3), this.g = yh(s, r, e), this.b = yh(s, r, e - 1 / 3);
}
return this;
}
setStyle(e) {
function t(r) {
r !== void 0 && parseFloat(r) < 1 && console.warn("THREE.Color: Alpha component of " + e + " will be ignored.");
}
let i;
if (i = /^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)) {
let r;
const s = i[1], o = i[2];
switch (s) {
case "rgb":
case "rgba":
if (r = /^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))
return this.r = Math.min(255, parseInt(r[1], 10)) / 255, this.g = Math.min(255, parseInt(r[2], 10)) / 255, this.b = Math.min(255, parseInt(r[3], 10)) / 255, t(r[4]), this;
if (r = /^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))
return this.r = Math.min(100, parseInt(r[1], 10)) / 100, this.g = Math.min(100, parseInt(r[2], 10)) / 100, this.b = Math.min(100, parseInt(r[3], 10)) / 100, t(r[4]), this;
break;
case "hsl":
case "hsla":
if (r = /^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)) {
const a = parseFloat(r[1]) / 360, c = parseInt(r[2], 10) / 100, l = parseInt(r[3], 10) / 100;
return t(r[4]), this.setHSL(a, c, l);
}
break;
}
} else if (i = /^\#([A-Fa-f\d]+)$/.exec(e)) {
const r = i[1], s = r.length;
if (s === 3)
return this.r = parseInt(r.charAt(0) + r.charAt(0), 16) / 255, this.g = parseInt(r.charAt(1) + r.charAt(1), 16) / 255, this.b = parseInt(r.charAt(2) + r.charAt(2), 16) / 255, this;
if (s === 6)
return this.r = parseInt(r.charAt(0) + r.charAt(1), 16) / 255, this.g = parseInt(r.charAt(2) + r.charAt(3), 16) / 255, this.b = parseInt(r.charAt(4) + r.charAt(5), 16) / 255, this;
}
return e && e.length > 0 ? this.setColorName(e) : this;
}
setColorName(e) {
const t = mx[e.toLowerCase()];
return t !== void 0 ? this.setHex(t) : console.warn("THREE.Color: Unknown color " + e), this;
}
clone() {
return new this.constructor(this.r, this.g, this.b);
}
copy(e) {
return this.r = e.r, this.g = e.g, this.b = e.b, this;
}
copyGammaToLinear(e, t = 2) {
return this.r = Math.pow(e.r, t), this.g = Math.pow(e.g, t), this.b = Math.pow(e.b, t), this;
}
copyLinearToGamma(e, t = 2) {
const i = t > 0 ? 1 / t : 1;
return this.r = Math.pow(e.r, i), this.g = Math.pow(e.g, i), this.b = Math.pow(e.b, i), this;
}
convertGammaToLinear(e) {
return this.copyGammaToLinear(this, e), this;
}
convertLinearToGamma(e) {
return this.copyLinearToGamma(this, e), this;
}
copySRGBToLinear(e) {
return this.r = bh(e.r), this.g = bh(e.g), this.b = bh(e.b), this;
}
copyLinearToSRGB(e) {
return this.r = xh(e.r), this.g = xh(e.g), this.b = xh(e.b), this;
}
convertSRGBToLinear() {
return this.copySRGBToLinear(this), this;
}
convertLinearToSRGB() {
return this.copyLinearToSRGB(this), this;
}
getHex() {
return this.r * 255 << 16 ^ this.g * 255 << 8 ^ this.b * 255 << 0;
}
getHexString() {
return ("000000" + this.getHex().toString(16)).slice(-6);
}
getHSL(e) {
const t = this.r, i = this.g, r = this.b, s = Math.max(t, i, r), o = Math.min(t, i, r);
let a, c;
const l = (o + s) / 2;
if (o === s)
a = 0, c = 0;
else {
const d = s - o;
switch (c = l <= 0.5 ? d / (s + o) : d / (2 - s - o), s) {
case t:
a = (i - r) / d + (i < r ? 6 : 0);
break;
case i:
a = (r - t) / d + 2;
break;
case r:
a = (t - i) / d + 4;
break;
}
a /= 6;
}
return e.h = a, e.s = c, e.l = l, e;
}
getStyle() {
return "rgb(" + (this.r * 255 | 0) + "," + (this.g * 255 | 0) + "," + (this.b * 255 | 0) + ")";
}
offsetHSL(e, t, i) {
return this.getHSL(ui), ui.h += e, ui.s += t, ui.l += i, this.setHSL(ui.h, ui.s, ui.l), this;
}
add(e) {
return this.r += e.r, this.g += e.g, this.b += e.b, this;
}
addColors(e, t) {
return this.r = e.r + t.r, this.g = e.g + t.g, this.b = e.b + t.b, this;
}
addScalar(e) {
return this.r += e, this.g += e, this.b += e, this;
}
sub(e) {
return this.r = Math.max(0, this.r - e.r), this.g = Math.max(0, this.g - e.g), this.b = Math.max(0, this.b - e.b), this;
}
multiply(e) {
return this.r *= e.r, this.g *= e.g, this.b *= e.b, this;
}
multiplyScalar(e) {
return this.r *= e, this.g *= e, this.b *= e, this;
}
lerp(e, t) {
return this.r += (e.r - this.r) * t, this.g += (e.g - this.g) * t, this.b += (e.b - this.b) * t, this;
}
lerpColors(e, t, i) {
return this.r = e.r + (t.r - e.r) * i, this.g = e.g + (t.g - e.g) * i, this.b = e.b + (t.b - e.b) * i, this;
}
lerpHSL(e, t) {
this.getHSL(ui), e.getHSL(Jl);
const i = ka(ui.h, Jl.h, t), r = ka(ui.s, Jl.s, t), s = ka(ui.l, Jl.l, t);
return this.setHSL(i, r, s), this;
}
equals(e) {
return e.r === this.r && e.g === this.g && e.b === this.b;
}
fromArray(e, t = 0) {
return this.r = e[t], this.g = e[t + 1], this.b = e[t + 2], this;
}
toArray(e = [], t = 0) {
return e[t] = this.r, e[t + 1] = this.g, e[t + 2] = this.b, e;
}
fromBufferAttribute(e, t) {
return this.r = e.getX(t), this.g = e.getY(t), this.b = e.getZ(t), e.normalized === true && (this.r /= 255, this.g /= 255, this.b /= 255), this;
}
toJSON() {
return this.getHex();
}
};
Fe.NAMES = mx;
Fe.prototype.isColor = true;
Fe.prototype.r = 1;
Fe.prototype.g = 1;
Fe.prototype.b = 1;
var Bn = class extends en {
constructor(e) {
super(), this.type = "MeshBasicMaterial", this.color = new Fe(16777215), this.map = null, this.lightMap = null, this.lightMapIntensity = 1, this.aoMap = null, this.aoMapIntensity = 1, this.specularMap = null, this.alphaMap = null, this.envMap = null, this.combine = vl, this.reflectivity = 1, this.refractionRatio = 0.98, this.wireframe = false, this.wireframeLinewidth = 1, this.wireframeLinecap = "round", this.wireframeLinejoin = "round", this.morphTargets = false, this.setValues(e);
}
copy(e) {
return super.copy(e), this.color.copy(e.color), this.map = e.map, this.lightMap = e.lightMap, this.lightMapIntensity = e.lightMapIntensity, this.aoMap = e.aoMap, this.aoMapIntensity = e.aoMapIntensity, this.specularMap = e.specularMap, this.alphaMap = e.alphaMap, this.envMap = e.envMap, this.combine = e.combine, this.reflectivity = e.reflectivity, this.refractionRatio = e.refractionRatio, this.wireframe = e.wireframe, this.wireframeLinewidth = e.wireframeLinewidth, this.wireframeLinecap = e.wireframeLinecap, this.wireframeLinejoin = e.wireframeLinejoin, this.morphTargets = e.morphTargets, this;
}
};
Bn.prototype.isMeshBasicMaterial = true;
var _t = new q();
var Kl = new Re();
var it = class {
constructor(e, t, i) {
if (Array.isArray(e))
throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");
this.name = "", this.array = e, this.itemSize = t, this.count = e !== void 0 ? e.length / t : 0, this.normalized = i === true, this.usage = zo, this.updateRange = { offset: 0, count: -1 }, this.version = 0;
}
onUploadCallback() {
}
set needsUpdate(e) {
e === true && this.version++;
}
setUsage(e) {
return this.usage = e, this;
}
copy(e) {
return this.name = e.name, this.array = new e.array.constructor(e.array), this.itemSize = e.itemSize, this.count = e.count, this.normalized = e.normalized, this.usage = e.usage, this;
}
copyAt(e, t, i) {
e *= this.itemSize, i *= t.itemSize;
for (let r = 0, s = this.itemSize; r < s; r++)
this.array[e + r] = t.array[i + r];
return this;
}
copyArray(e) {
return this.array.set(e), this;
}
copyColorsArray(e) {
const t = this.array;
let i = 0;
for (let r = 0, s = e.length; r < s; r++) {
let o = e[r];
o === void 0 && (console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined", r), o = new Fe()), t[i++] = o.r, t[i++] = o.g, t[i++] = o.b;
}
return this;
}
copyVector2sArray(e) {
const t = this.array;
let i = 0;
for (let r = 0, s = e.length; r < s; r++) {
let o = e[r];
o === void 0 && (console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined", r), o = new Re()), t[i++] = o.x, t[i++] = o.y;
}
return this;
}
copyVector3sArray(e) {
const t = this.array;
let i = 0;
for (let r = 0, s = e.length; r < s; r++) {
let o = e[r];
o === void 0 && (console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined", r), o = new q()), t[i++] = o.x, t[i++] = o.y, t[i++] = o.z;
}
return this;
}
copyVector4sArray(e) {
const t = this.array;
let i = 0;
for (let r = 0, s = e.length; r < s; r++) {
let o = e[r];
o === void 0 && (console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined", r), o = new xt()), t[i++] = o.x, t[i++] = o.y, t[i++] = o.z, t[i++] = o.w;
}
return this;
}
applyMatrix3(e) {
if (this.itemSize === 2)
for (let t = 0, i = this.count; t < i; t++)
Kl.fromBufferAttribute(this, t), Kl.applyMatrix3(e), this.setXY(t, Kl.x, Kl.y);
else if (this.itemSize === 3)
for (let t = 0, i = this.count; t < i; t++)
_t.fromBufferAttribute(this, t), _t.applyMatrix3(e), this.setXYZ(t, _t.x, _t.y, _t.z);
return this;
}
applyMatrix4(e) {
for (let t = 0, i = this.count; t < i; t++)
_t.x = this.getX(t), _t.y = this.getY(t), _t.z = this.getZ(t), _t.applyMatrix4(e), this.setXYZ(t, _t.x, _t.y, _t.z);
return this;
}
applyNormalMatrix(e) {
for (let t = 0, i = this.count; t < i; t++)
_t.x = this.getX(t), _t.y = this.getY(t), _t.z = this.getZ(t), _t.applyNormalMatrix(e), this.setXYZ(t, _t.x, _t.y, _t.z);
return this;
}
transformDirection(e) {
for (let t = 0, i = this.count; t < i; t++)
_t.x = this.getX(t), _t.y = this.getY(t), _t.z = this.getZ(t), _t.transformDirection(e), this.setXYZ(t, _t.x, _t.y, _t.z);
return this;
}
set(e, t = 0) {
return this.array.set(e, t), this;
}
getX(e) {
return this.array[e * this.itemSize];
}
setX(e, t) {
return this.array[e * this.itemSize] = t, this;
}
getY(e) {
return this.array[e * this.itemSize + 1];
}
setY(e, t) {
return this.array[e * this.itemSize + 1] = t, this;
}
getZ(e) {
return this.array[e * this.itemSize + 2];
}
setZ(e, t) {
return this.array[e * this.itemSize + 2] = t, this;
}
getW(e) {
return this.array[e * this.itemSize + 3];
}
setW(e, t) {
return this.array[e * this.itemSize + 3] = t, this;
}
setXY(e, t, i) {
return e *= this.itemSize, this.array[e + 0] = t, this.array[e + 1] = i, this;
}
setXYZ(e, t, i, r) {
return e *= this.itemSize, this.array[e + 0] = t, this.array[e + 1] = i, this.array[e + 2] = r, this;
}
setXYZW(e, t, i, r, s) {
return e *= this.itemSize, this.array[e + 0] = t, this.array[e + 1] = i, this.array[e + 2] = r, this.array[e + 3] = s, this;
}
onUpload(e) {
return this.onUploadCallback = e, this;
}
clone() {
return new this.constructor(this.array, this.itemSize).copy(this);
}
toJSON() {
const e = {
itemSize: this.itemSize,
type: this.array.constructor.name,
array: Array.prototype.slice.call(this.array),
normalized: this.normalized
};
return this.name !== "" && (e.name = this.name), this.usage !== zo && (e.usage = this.usage), (this.updateRange.offset !== 0 || this.updateRange.count !== -1) && (e.updateRange = this.updateRange), e;
}
};
it.prototype.isBufferAttribute = true;
var gx = class extends it {
constructor(e, t, i) {
super(new Int8Array(e), t, i);
}
};
var vx = class extends it {
constructor(e, t, i) {
super(new Uint8Array(e), t, i);
}
};
var yx = class extends it {
constructor(e, t, i) {
super(new Uint8ClampedArray(e), t, i);
}
};
var bx = class extends it {
constructor(e, t, i) {
super(new Int16Array(e), t, i);
}
};
var Lu = class extends it {
constructor(e, t, i) {
super(new Uint16Array(e), t, i);
}
};
var xx = class extends it {
constructor(e, t, i) {
super(new Int32Array(e), t, i);
}
};
var Ru = class extends it {
constructor(e, t, i) {
super(new Uint32Array(e), t, i);
}
};
var wx = class extends it {
constructor(e, t, i) {
super(new Uint16Array(e), t, i);
}
};
wx.prototype.isFloat16BufferAttribute = true;
var He = class extends it {
constructor(e, t, i) {
super(new Float32Array(e), t, i);
}
};
var Mx = class extends it {
constructor(e, t, i) {
super(new Float64Array(e), t, i);
}
};
function _x(n) {
if (n.length === 0) return -1 / 0;
let e = n[0];
for (let t = 1, i = n.length; t < i; ++t)
n[t] > e && (e = n[t]);
return e;
}
var SI = {
Int8Array,
Uint8Array,
Uint8ClampedArray,
Int16Array,
Uint16Array,
Int32Array,
Uint32Array,
Float32Array,
Float64Array
};
function Mo(n, e) {
return new SI[n](e);
}
var TI = 0;
var Kn = new Ze();
var wh = new at();
var so = new q();
var kn = new Un();
var Ma = new Un();
var ln = new q();
var Ke = class _Ke extends ts {
constructor() {
super(), Object.defineProperty(this, "id", { value: TI++ }), this.uuid = $n(), this.name = "", this.type = "BufferGeometry", this.index = null, this.attributes = {}, this.morphAttributes = {}, this.morphTargetsRelative = false, this.groups = [], this.boundingBox = null, this.boundingSphere = null, this.drawRange = { start: 0, count: 1 / 0 }, this.userData = {};
}
getIndex() {
return this.index;
}
setIndex(e) {
return Array.isArray(e) ? this.index = new (_x(e) > 65535 ? Ru : Lu)(e, 1) : this.index = e, this;
}
getAttribute(e) {
return this.attributes[e];
}
setAttribute(e, t) {
return this.attributes[e] = t, this;
}
deleteAttribute(e) {
return delete this.attributes[e], this;
}
hasAttribute(e) {
return this.attributes[e] !== void 0;
}
addGroup(e, t, i = 0) {
this.groups.push({
start: e,
count: t,
materialIndex: i
});
}
clearGroups() {
this.groups = [];
}
setDrawRange(e, t) {
this.drawRange.start = e, this.drawRange.count = t;
}
applyMatrix4(e) {
const t = this.attributes.position;
t !== void 0 && (t.applyMatrix4(e), t.needsUpdate = true);
const i = this.attributes.normal;
if (i !== void 0) {
const s = new rn().getNormalMatrix(e);
i.applyNormalMatrix(s), i.needsUpdate = true;
}
const r = this.attributes.tangent;
return r !== void 0 && (r.transformDirection(e), r.needsUpdate = true), this.boundingBox !== null && this.computeBoundingBox(), this.boundingSphere !== null && this.computeBoundingSphere(), this;
}
applyQuaternion(e) {
return Kn.makeRotationFromQuaternion(e), this.applyMatrix4(Kn), this;
}
rotateX(e) {
return Kn.makeRotationX(e), this.applyMatrix4(Kn), this;
}
rotateY(e) {
return Kn.makeRotationY(e), this.applyMatrix4(Kn), this;
}
rotateZ(e) {
return Kn.makeRotationZ(e), this.applyMatrix4(Kn), this;
}
translate(e, t, i) {
return Kn.makeTranslation(e, t, i), this.applyMatrix4(Kn), this;
}
scale(e, t, i) {
return Kn.makeScale(e, t, i), this.applyMatrix4(Kn), this;
}
lookAt(e) {
return wh.lookAt(e), wh.updateMatrix(), this.applyMatrix4(wh.matrix), this;
}
center() {
return this.computeBoundingBox(), this.boundingBox.getCenter(so).negate(), this.translate(so.x, so.y, so.z), this;
}
setFromPoints(e) {
const t = [];
for (let i = 0, r = e.length; i < r; i++) {
const s = e[i];
t.push(s.x, s.y, s.z || 0);
}
return this.setAttribute("position", new He(t, 3)), this;
}
computeBoundingBox() {
this.boundingBox === null && (this.boundingBox = new Un());
const e = this.attributes.position, t = this.morphAttributes.position;
if (e && e.isGLBufferAttribute) {
console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".', this), this.boundingBox.set(
new q(-1 / 0, -1 / 0, -1 / 0),
new q(1 / 0, 1 / 0, 1 / 0)
);
return;
}
if (e !== void 0) {
if (this.boundingBox.setFromBufferAttribute(e), t)
for (let i = 0, r = t.length; i < r; i++) {
const s = t[i];
kn.setFromBufferAttribute(s), this.morphTargetsRelative ? (ln.addVectors(this.boundingBox.min, kn.min), this.boundingBox.expandByPoint(ln), ln.addVectors(this.boundingBox.max, kn.max), this.boundingBox.expandByPoint(ln)) : (this.boundingBox.expandByPoint(kn.min), this.boundingBox.expandByPoint(kn.max));
}
} else
this.boundingBox.makeEmpty();
(isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) && console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this);
}
computeBoundingSphere() {
this.boundingSphere === null && (this.boundingSphere = new br());
const e = this.attributes.position, t = this.morphAttributes.position;
if (e && e.isGLBufferAttribute) {
console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".', this), this.boundingSphere.set(new q(), 1 / 0);
return;
}
if (e) {
const i = this.boundingSphere.center;
if (kn.setFromBufferAttribute(e), t)
for (let s = 0, o = t.length; s < o; s++) {
const a = t[s];
Ma.setFromBufferAttribute(a), this.morphTargetsRelative ? (ln.addVectors(kn.min, Ma.min), kn.expandByPoint(ln), ln.addVectors(kn.max, Ma.max), kn.expandByPoint(ln)) : (kn.expandByPoint(Ma.min), kn.expandByPoint(Ma.max));
}
kn.getCenter(i);
let r = 0;
for (let s = 0, o = e.count; s < o; s++)
ln.fromBufferAttribute(e, s), r = Math.max(r, i.distanceToSquared(ln));
if (t)
for (let s = 0, o = t.length; s < o; s++) {
const a = t[s], c = this.morphTargetsRelative;
for (let l = 0, d = a.count; l < d; l++)
ln.fromBufferAttribute(a, l), c && (so.fromBufferAttribute(e, l), ln.add(so)), r = Math.max(r, i.distanceToSquared(ln));
}
this.boundingSphere.radius = Math.sqrt(r), isNaN(this.boundingSphere.radius) && console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this);
}
}
computeFaceNormals() {
}
computeTangents() {
const e = this.index, t = this.attributes;
if (e === null || t.position === void 0 || t.normal === void 0 || t.uv === void 0) {
console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");
return;
}
const i = e.array, r = t.position.array, s = t.normal.array, o = t.uv.array, a = r.length / 3;
t.tangent === void 0 && this.setAttribute("tangent", new it(new Float32Array(4 * a), 4));
const c = t.tangent.array, l = [], d = [];
for (let S = 0; S < a; S++)
l[S] = new q(), d[S] = new q();
const h4 = new q(), f = new q(), g = new q(), p = new Re(), u = new Re(), y = new Re(), v = new q(), m = new q();
function x(S, R, A) {
h4.fromArray(r, S * 3), f.fromArray(r, R * 3), g.fromArray(r, A * 3), p.fromArray(o, S * 2), u.fromArray(o, R * 2), y.fromArray(o, A * 2), f.sub(h4), g.sub(h4), u.sub(p), y.sub(p);
const C = 1 / (u.x * y.y - y.x * u.y);
isFinite(C) && (v.copy(f).multiplyScalar(y.y).addScaledVector(g, -u.y).multiplyScalar(C), m.copy(g).multiplyScalar(u.x).addScaledVector(f, -y.x).multiplyScalar(C), l[S].add(v), l[R].add(v), l[A].add(v), d[S].add(m), d[R].add(m), d[A].add(m));
}
let M = this.groups;
M.length === 0 && (M = [{
start: 0,
count: i.length
}]);
for (let S = 0, R = M.length; S < R; ++S) {
const A = M[S], C = A.start, L = A.count;
for (let O = C, b = C + L; O < b; O += 3)
x(
i[O + 0],
i[O + 1],
i[O + 2]
);
}
const T = new q(), w = new q(), _ = new q(), E = new q();
function P(S) {
_.fromArray(s, S * 3), E.copy(_);
const R = l[S];
T.copy(R), T.sub(_.multiplyScalar(_.dot(R))).normalize(), w.crossVectors(E, R);
const C = w.dot(d[S]) < 0 ? -1 : 1;
c[S * 4] = T.x, c[S * 4 + 1] = T.y, c[S * 4 + 2] = T.z, c[S * 4 + 3] = C;
}
for (let S = 0, R = M.length; S < R; ++S) {
const A = M[S], C = A.start, L = A.count;
for (let O = C, b = C + L; O < b; O += 3)
P(i[O + 0]), P(i[O + 1]), P(i[O + 2]);
}
}
computeVertexNormals() {
const e = this.index, t = this.getAttribute("position");
if (t !== void 0) {
let i = this.getAttribute("normal");
if (i === void 0)
i = new it(new Float32Array(t.count * 3), 3), this.setAttribute("normal", i);
else
for (let f = 0, g = i.count; f < g; f++)
i.setXYZ(f, 0, 0, 0);
const r = new q(), s = new q(), o = new q(), a = new q(), c = new q(), l = new q(), d = new q(), h4 = new q();
if (e)
for (let f = 0, g = e.count; f < g; f += 3) {
const p = e.getX(f + 0), u = e.getX(f + 1), y = e.getX(f + 2);
r.fromBufferAttribute(t, p), s.fromBufferAttribute(t, u), o.fromBufferAttribute(t, y), d.subVectors(o, s), h4.subVectors(r, s), d.cross(h4), a.fromBufferAttribute(i, p), c.fromBufferAttribute(i, u), l.fromBufferAttribute(i, y), a.add(d), c.add(d), l.add(d), i.setXYZ(p, a.x, a.y, a.z), i.setXYZ(u, c.x, c.y, c.z), i.setXYZ(y, l.x, l.y, l.z);
}
else
for (let f = 0, g = t.count; f < g; f += 3)
r.fromBufferAttribute(t, f + 0), s.fromBufferAttribute(t, f + 1), o.fromBufferAttribute(t, f + 2), d.subVectors(o, s), h4.subVectors(r, s), d.cross(h4), i.setXYZ(f + 0, d.x, d.y, d.z), i.setXYZ(f + 1, d.x, d.y, d.z), i.setXYZ(f + 2, d.x, d.y, d.z);
this.normalizeNormals(), i.needsUpdate = true;
}
}
merge(e, t) {
if (!(e && e.isBufferGeometry)) {
console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.", e);
return;
}
t === void 0 && (t = 0, console.warn(
"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."
));
const i = this.attributes;
for (const r in i) {
if (e.attributes[r] === void 0) continue;
const o = i[r].array, a = e.attributes[r], c = a.array, l = a.itemSize * t, d = Math.min(c.length, o.length - l);
for (let h4 = 0, f = l; h4 < d; h4++, f++)
o[f] = c[h4];
}
return this;
}
normalizeNormals() {
const e = this.attributes.normal;
for (let t = 0, i = e.count; t < i; t++)
ln.fromBufferAttribute(e, t), ln.normalize(), e.setXYZ(t, ln.x, ln.y, ln.z);
}
toNonIndexed() {
function e(a, c) {
const l = a.array, d = a.itemSize, h4 = a.normalized, f = new l.constructor(c.length * d);
let g = 0, p = 0;
for (let u = 0, y = c.length; u < y; u++) {
a.isInterleavedBufferAttribute ? g = c[u] * a.data.stride + a.offset : g = c[u] * d;
for (let v = 0; v < d; v++)
f[p++] = l[g++];
}
return new it(f, d, h4);
}
if (this.index === null)
return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."), this;
const t = new _Ke(), i = this.index.array, r = this.attributes;
for (const a in r) {
const c = r[a], l = e(c, i);
t.setAttribute(a, l);
}
const s = this.morphAttributes;
for (const a in s) {
const c = [], l = s[a];
for (let d = 0, h4 = l.length; d < h4; d++) {
const f = l[d], g = e(f, i);
c.push(g);
}
t.morphAttributes[a] = c;
}
t.morphTargetsRelative = this.morphTargetsRelative;
const o = this.groups;
for (let a = 0, c = o.length; a < c; a++) {
const l = o[a];
t.addGroup(l.start, l.count, l.materialIndex);
}
return t;
}
toJSON() {
const e = {
metadata: {
version: 4.5,
type: "BufferGeometry",
generator: "BufferGeometry.toJSON"
}
};
if (e.uuid = this.uuid, e.type = this.type, this.name !== "" && (e.name = this.name), Object.keys(this.userData).length > 0 && (e.userData = this.userData), this.parameters !== void 0) {
const c = this.parameters;
for (const l in c)
c[l] !== void 0 && (e[l] = c[l]);
return e;
}
e.data = { attributes: {} };
const t = this.index;
t !== null && (e.data.index = {
type: t.array.constructor.name,
array: Array.prototype.slice.call(t.array)
});
const i = this.attributes;
for (const c in i) {
const l = i[c];
e.data.attributes[c] = l.toJSON(e.data);
}
const r = {};
let s = false;
for (const c in this.morphAttributes) {
const l = this.morphAttributes[c], d = [];
for (let h4 = 0, f = l.length; h4 < f; h4++) {
const g = l[h4];
d.push(g.toJSON(e.data));
}
d.length > 0 && (r[c] = d, s = true);
}
s && (e.data.morphAttributes = r, e.data.morphTargetsRelative = this.morphTargetsRelative);
const o = this.groups;
o.length > 0 && (e.data.groups = JSON.parse(JSON.stringify(o)));
const a = this.boundingSphere;
return a !== null && (e.data.boundingSphere = {
center: a.center.toArray(),
radius: a.radius
}), e;
}
clone() {
return new _Ke().copy(this);
}
copy(e) {
this.index = null, this.attributes = {}, this.morphAttributes = {}, this.groups = [], this.boundingBox = null, this.boundingSphere = null;
const t = {};
this.name = e.name;
const i = e.index;
i !== null && this.setIndex(i.clone(t));
const r = e.attributes;
for (const l in r) {
const d = r[l];
this.setAttribute(l, d.clone(t));
}
const s = e.morphAttributes;
for (const l in s) {
const d = [], h4 = s[l];
for (let f = 0, g = h4.length; f < g; f++)
d.push(h4[f].clone(t));
this.morphAttributes[l] = d;
}
this.morphTargetsRelative = e.morphTargetsRelative;
const o = e.groups;
for (let l = 0, d = o.length; l < d; l++) {
const h4 = o[l];
this.addGroup(h4.start, h4.count, h4.materialIndex);
}
const a = e.boundingBox;
a !== null && (this.boundingBox = a.clone());
const c = e.boundingSphere;
return c !== null && (this.boundingSphere = c.clone()), this.drawRange.start = e.drawRange.start, this.drawRange.count = e.drawRange.count, this.userData = e.userData, this;
}
dispose() {
this.dispatchEvent({ type: "dispose" });
}
};
Ke.prototype.isBufferGeometry = true;
var Sg = new Ze();
var oo = new ns();
var Mh = new br();
var Er = new q();
var Ar = new q();
var Cr = new q();
var _h = new q();
var Sh = new q();
var Th = new q();
var ql = new q();
var Ql = new q();
var ec = new q();
var tc = new Re();
var nc = new Re();
var ic = new Re();
var Eh = new q();
var rc = new q();
var Yt = class extends at {
constructor(e = new Ke(), t = new Bn()) {
super(), this.type = "Mesh", this.geometry = e, this.material = t, this.updateMorphTargets();
}
copy(e) {
return super.copy(e), e.morphTargetInfluences !== void 0 && (this.morphTargetInfluences = e.morphTargetInfluences.slice()), e.morphTargetDictionary !== void 0 && (this.morphTargetDictionary = Object.assign({}, e.morphTargetDictionary)), this.material = e.material, this.geometry = e.geometry, this;
}
updateMorphTargets() {
const e = this.geometry;
if (e.isBufferGeometry) {
const t = e.morphAttributes, i = Object.keys(t);
if (i.length > 0) {
const r = t[i[0]];
if (r !== void 0) {
this.morphTargetInfluences = [], this.morphTargetDictionary = {};
for (let s = 0, o = r.length; s < o; s++) {
const a = r[s].name || String(s);
this.morphTargetInfluences.push(0), this.morphTargetDictionary[a] = s;
}
}
}
} else {
const t = e.morphTargets;
t !== void 0 && t.length > 0 && console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");
}
}
raycast(e, t) {
const i = this.geometry, r = this.material, s = this.matrixWorld;
if (r === void 0 || (i.boundingSphere === null && i.computeBoundingSphere(), Mh.copy(i.boundingSphere), Mh.applyMatrix4(s), e.ray.intersectsSphere(Mh) === false) || (Sg.copy(s).invert(), oo.copy(e.ray).applyMatrix4(Sg), i.boundingBox !== null && oo.intersectsBox(i.boundingBox) === false))
return;
let o;
if (i.isBufferGeometry) {
const a = i.index, c = i.attributes.position, l = i.morphAttributes.position, d = i.morphTargetsRelative, h4 = i.attributes.uv, f = i.attributes.uv2, g = i.groups, p = i.drawRange;
if (a !== null)
if (Array.isArray(r))
for (let u = 0, y = g.length; u < y; u++) {
const v = g[u], m = r[v.materialIndex], x = Math.max(v.start, p.start), M = Math.min(v.start + v.count, p.start + p.count);
for (let T = x, w = M; T < w; T += 3) {
const _ = a.getX(T), E = a.getX(T + 1), P = a.getX(T + 2);
o = sc(this, m, e, oo, c, l, d, h4, f, _, E, P), o && (o.faceIndex = Math.floor(T / 3), o.face.materialIndex = v.materialIndex, t.push(o));
}
}
else {
const u = Math.max(0, p.start), y = Math.min(a.count, p.start + p.count);
for (let v = u, m = y; v < m; v += 3) {
const x = a.getX(v), M = a.getX(v + 1), T = a.getX(v + 2);
o = sc(this, r, e, oo, c, l, d, h4, f, x, M, T), o && (o.faceIndex = Math.floor(v / 3), t.push(o));
}
}
else if (c !== void 0)
if (Array.isArray(r))
for (let u = 0, y = g.length; u < y; u++) {
const v = g[u], m = r[v.materialIndex], x = Math.max(v.start, p.start), M = Math.min(v.start + v.count, p.start + p.count);
for (let T = x, w = M; T < w; T += 3) {
const _ = T, E = T + 1, P = T + 2;
o = sc(this, m, e, oo, c, l, d, h4, f, _, E, P), o && (o.faceIndex = Math.floor(T / 3), o.face.materialIndex = v.materialIndex, t.push(o));
}
}
else {
const u = Math.max(0, p.start), y = Math.min(c.count, p.start + p.count);
for (let v = u, m = y; v < m; v += 3) {
const x = v, M = v + 1, T = v + 2;
o = sc(this, r, e, oo, c, l, d, h4, f, x, M, T), o && (o.faceIndex = Math.floor(v / 3), t.push(o));
}
}
} else i.isGeometry && console.error("THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");
}
};
Yt.prototype.isMesh = true;
function EI(n, e, t, i, r, s, o, a) {
let c;
if (e.side === jt ? c = i.intersectTriangle(o, s, r, true, a) : c = i.intersectTriangle(r, s, o, e.side !== Xr, a), c === null) return null;
rc.copy(a), rc.applyMatrix4(n.matrixWorld);
const l = t.ray.origin.distanceTo(rc);
return l < t.near || l > t.far ? null : {
distance: l,
point: rc.clone(),
object: n
};
}
function sc(n, e, t, i, r, s, o, a, c, l, d, h4) {
Er.fromBufferAttribute(r, l), Ar.fromBufferAttribute(r, d), Cr.fromBufferAttribute(r, h4);
const f = n.morphTargetInfluences;
if (e.morphTargets && s && f) {
ql.set(0, 0, 0), Ql.set(0, 0, 0), ec.set(0, 0, 0);
for (let p = 0, u = s.length; p < u; p++) {
const y = f[p], v = s[p];
y !== 0 && (_h.fromBufferAttribute(v, l), Sh.fromBufferAttribute(v, d), Th.fromBufferAttribute(v, h4), o ? (ql.addScaledVector(_h, y), Ql.addScaledVector(Sh, y), ec.addScaledVector(Th, y)) : (ql.addScaledVector(_h.sub(Er), y), Ql.addScaledVector(Sh.sub(Ar), y), ec.addScaledVector(Th.sub(Cr), y)));
}
Er.add(ql), Ar.add(Ql), Cr.add(ec);
}
n.isSkinnedMesh && (n.boneTransform(l, Er), n.boneTransform(d, Ar), n.boneTransform(h4, Cr));
const g = EI(n, e, t, i, Er, Ar, Cr, Eh);
if (g) {
a && (tc.fromBufferAttribute(a, l), nc.fromBufferAttribute(a, d), ic.fromBufferAttribute(a, h4), g.uv = Zt.getUV(Eh, Er, Ar, Cr, tc, nc, ic, new Re())), c && (tc.fromBufferAttribute(c, l), nc.fromBufferAttribute(c, d), ic.fromBufferAttribute(c, h4), g.uv2 = Zt.getUV(Eh, Er, Ar, Cr, tc, nc, ic, new Re()));
const p = {
a: l,
b: d,
c: h4,
normal: new q(),
materialIndex: 0
};
Zt.getNormal(Er, Ar, Cr, p.normal), g.face = p;
}
return g;
}
var ur = class _ur extends Ke {
constructor(e = 1, t = 1, i = 1, r = 1, s = 1, o = 1) {
super(), this.type = "BoxGeometry", this.parameters = {
width: e,
height: t,
depth: i,
widthSegments: r,
heightSegments: s,
depthSegments: o
};
const a = this;
r = Math.floor(r), s = Math.floor(s), o = Math.floor(o);
const c = [], l = [], d = [], h4 = [];
let f = 0, g = 0;
p("z", "y", "x", -1, -1, i, t, e, o, s, 0), p("z", "y", "x", 1, -1, i, t, -e, o, s, 1), p("x", "z", "y", 1, 1, e, i, t, r, o, 2), p("x", "z", "y", 1, -1, e, i, -t, r, o, 3), p("x", "y", "z", 1, -1, e, t, i, r, s, 4), p("x", "y", "z", -1, -1, e, t, -i, r, s, 5), this.setIndex(c), this.setAttribute("position", new He(l, 3)), this.setAttribute("normal", new He(d, 3)), this.setAttribute("uv", new He(h4, 2));
function p(u, y, v, m, x, M, T, w, _, E, P) {
const S = M / _, R = T / E, A = M / 2, C = T / 2, L = w / 2, O = _ + 1, b = E + 1;
let I = 0, N = 0;
const D = new q();
for (let U = 0; U < b; U++) {
const V = U * R - C;
for (let H = 0; H < O; H++) {
const Y = H * S - A;
D[u] = Y * m, D[y] = V * x, D[v] = L, l.push(D.x, D.y, D.z), D[u] = 0, D[y] = 0, D[v] = w > 0 ? 1 : -1, d.push(D.x, D.y, D.z), h4.push(H / _), h4.push(1 - U / E), I += 1;
}
}
for (let U = 0; U < E; U++)
for (let V = 0; V < _; V++) {
const H = f + V + O * U, Y = f + V + O * (U + 1), ie = f + (V + 1) + O * (U + 1), ae = f + (V + 1) + O * U;
c.push(H, Y, ae), c.push(Y, ie, ae), N += 6;
}
a.addGroup(g, N, P), g += N, f += I;
}
}
static fromJSON(e) {
return new _ur(e.width, e.height, e.depth, e.widthSegments, e.heightSegments, e.depthSegments);
}
};
function Vo(n) {
const e = {};
for (const t in n) {
e[t] = {};
for (const i in n[t]) {
const r = n[t][i];
r && (r.isColor || r.isMatrix3 || r.isMatrix4 || r.isVector2 || r.isVector3 || r.isVector4 || r.isTexture || r.isQuaternion) ? e[t][i] = r.clone() : Array.isArray(r) ? e[t][i] = r.slice() : e[t][i] = r;
}
}
return e;
}
function Mn(n) {
const e = {};
for (let t = 0; t < n.length; t++) {
const i = Vo(n[t]);
for (const r in i)
e[r] = i[r];
}
return e;
}
var Sx = { clone: Vo, merge: Mn };
var AI = `void main() {
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
}`;
var CI = `void main() {
gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
}`;
var hr = class extends en {
constructor(e) {
super(), this.type = "ShaderMaterial", this.defines = {}, this.uniforms = {}, this.vertexShader = AI, this.fragmentShader = CI, this.linewidth = 1, this.wireframe = false, this.wireframeLinewidth = 1, this.fog = false, this.lights = false, this.clipping = false, this.morphTargets = false, this.morphNormals = false, this.extensions = {
derivatives: false,
// set to use derivatives
fragDepth: false,
// set to use fragment depth values
drawBuffers: false,
// set to use draw buffers
shaderTextureLOD: false
// set to use shader texture LOD
}, this.defaultAttributeValues = {
color: [1, 1, 1],
uv: [0, 0],
uv2: [0, 0]
}, this.index0AttributeName = void 0, this.uniformsNeedUpdate = false, this.glslVersion = null, e !== void 0 && (e.attributes !== void 0 && console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."), this.setValues(e));
}
copy(e) {
return super.copy(e), this.fragmentShader = e.fragmentShader, this.vertexShader = e.vertexShader, this.uniforms = Vo(e.uniforms), this.defines = Object.assign({}, e.defines), this.wireframe = e.wireframe, this.wireframeLinewidth = e.wireframeLinewidth, this.lights = e.lights, this.clipping = e.clipping, this.morphTargets = e.morphTargets, this.morphNormals = e.morphNormals, this.extensions = Object.assign({}, e.extensions), this.glslVersion = e.glslVersion, this;
}
toJSON(e) {
const t = super.toJSON(e);
t.glslVersion = this.glslVersion, t.uniforms = {};
for (const r in this.uniforms) {
const o = this.uniforms[r].value;
o && o.isTexture ? t.uniforms[r] = {
type: "t",
value: o.toJSON(e).uuid
} : o && o.isColor ? t.uniforms[r] = {
type: "c",
value: o.getHex()
} : o && o.isVector2 ? t.uniforms[r] = {
type: "v2",
value: o.toArray()
} : o && o.isVector3 ? t.uniforms[r] = {
type: "v3",
value: o.toArray()
} : o && o.isVector4 ? t.uniforms[r] = {
type: "v4",
value: o.toArray()
} : o && o.isMatrix3 ? t.uniforms[r] = {
type: "m3",
value: o.toArray()
} : o && o.isMatrix4 ? t.uniforms[r] = {
type: "m4",
value: o.toArray()
} : t.uniforms[r] = {
value: o
};
}
Object.keys(this.defines).length > 0 && (t.defines = this.defines), t.vertexShader = this.vertexShader, t.fragmentShader = this.fragmentShader;
const i = {};
for (const r in this.extensions)
this.extensions[r] === true && (i[r] = true);
return Object.keys(i).length > 0 && (t.extensions = i), t;
}
};
hr.prototype.isShaderMaterial = true;
var wl = class extends at {
constructor() {
super(), this.type = "Camera", this.matrixWorldInverse = new Ze(), this.projectionMatrix = new Ze(), this.projectionMatrixInverse = new Ze();
}
copy(e, t) {
return super.copy(e, t), this.matrixWorldInverse.copy(e.matrixWorldInverse), this.projectionMatrix.copy(e.projectionMatrix), this.projectionMatrixInverse.copy(e.projectionMatrixInverse), this;
}
getWorldDirection(e) {
this.updateWorldMatrix(true, false);
const t = this.matrixWorld.elements;
return e.set(-t[8], -t[9], -t[10]).normalize();
}
updateMatrixWorld(e) {
super.updateMatrixWorld(e), this.matrixWorldInverse.copy(this.matrixWorld).invert();
}
updateWorldMatrix(e, t) {
super.updateWorldMatrix(e, t), this.matrixWorldInverse.copy(this.matrixWorld).invert();
}
clone() {
return new this.constructor().copy(this);
}
};
wl.prototype.isCamera = true;
var nn = class extends wl {
constructor(e = 50, t = 1, i = 0.1, r = 2e3) {
super(), this.type = "PerspectiveCamera", this.fov = e, this.zoom = 1, this.near = i, this.far = r, this.focus = 10, this.aspect = t, this.view = null, this.filmGauge = 35, this.filmOffset = 0, this.updateProjectionMatrix();
}
copy(e, t) {
return super.copy(e, t), this.fov = e.fov, this.zoom = e.zoom, this.near = e.near, this.far = e.far, this.focus = e.focus, this.aspect = e.aspect, this.view = e.view === null ? null : Object.assign({}, e.view), this.filmGauge = e.filmGauge, this.filmOffset = e.filmOffset, this;
}
/**
* Sets the FOV by focal length in respect to the current .filmGauge.
*
* The default film gauge is 35, so that the focal length can be specified for
* a 35mm (full frame) camera.
*
* Values for focal length and film gauge must have the same unit.
*/
setFocalLength(e) {
const t = 0.5 * this.getFilmHeight() / e;
this.fov = nl * 2 * Math.atan(t), this.updateProjectionMatrix();
}
/**
* Calculates the focal length from the current .fov and .filmGauge.
*/
getFocalLength() {
const e = Math.tan(As * 0.5 * this.fov);
return 0.5 * this.getFilmHeight() / e;
}
getEffectiveFOV() {
return nl * 2 * Math.atan(
Math.tan(As * 0.5 * this.fov) / this.zoom
);
}
getFilmWidth() {
return this.filmGauge * Math.min(this.aspect, 1);
}
getFilmHeight() {
return this.filmGauge / Math.max(this.aspect, 1);
}
/**
* Sets an offset in a larger frustum. This is useful for multi-window or
* multi-monitor/multi-machine setups.
*
* For example, if you have 3x2 monitors and each monitor is 1920x1080 and
* the monitors are in grid like this
*
* +---+---+---+
* | A | B | C |
* +---+---+---+
* | D | E | F |
* +---+---+---+
*
* then for each monitor you would call it like this
*
* const w = 1920;
* const h = 1080;
* const fullWidth = w * 3;
* const fullHeight = h * 2;
*
* --A--
* camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );
* --B--
* camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );
* --C--
* camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );
* --D--
* camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );
* --E--
* camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
* --F--
* camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
*
* Note there is no reason monitors have to be the same size or in a grid.
*/
setViewOffset(e, t, i, r, s, o) {
this.aspect = e / t, this.view === null && (this.view = {
enabled: true,
fullWidth: 1,
fullHeight: 1,
offsetX: 0,
offsetY: 0,
width: 1,
height: 1
}), this.view.enabled = true, this.view.fullWidth = e, this.view.fullHeight = t, this.view.offsetX = i, this.view.offsetY = r, this.view.width = s, this.view.height = o, this.updateProjectionMatrix();
}
clearViewOffset() {
this.view !== null && (this.view.enabled = false), this.updateProjectionMatrix();
}
updateProjectionMatrix() {
const e = this.near;
let t = e * Math.tan(As * 0.5 * this.fov) / this.zoom, i = 2 * t, r = this.aspect * i, s = -0.5 * r;
const o = this.view;
if (this.view !== null && this.view.enabled) {
const c = o.fullWidth, l = o.fullHeight;
s += o.offsetX * r / c, t -= o.offsetY * i / l, r *= o.width / c, i *= o.height / l;
}
const a = this.filmOffset;
a !== 0 && (s += e * a / this.getFilmWidth()), this.projectionMatrix.makePerspective(s, s + r, t, t - i, e, this.far), this.projectionMatrixInverse.copy(this.projectionMatrix).invert();
}
toJSON(e) {
const t = super.toJSON(e);
return t.object.fov = this.fov, t.object.zoom = this.zoom, t.object.near = this.near, t.object.far = this.far, t.object.focus = this.focus, t.object.aspect = this.aspect, this.view !== null && (t.object.view = Object.assign({}, this.view)), t.object.filmGauge = this.filmGauge, t.object.filmOffset = this.filmOffset, t;
}
};
nn.prototype.isPerspectiveCamera = true;
var ao = 90;
var lo = 1;
var Pu = class extends at {
constructor(e, t, i) {
if (super(), this.type = "CubeCamera", i.isWebGLCubeRenderTarget !== true) {
console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");
return;
}
this.renderTarget = i;
const r = new nn(ao, lo, e, t);
r.layers = this.layers, r.up.set(0, -1, 0), r.lookAt(new q(1, 0, 0)), this.add(r);
const s = new nn(ao, lo, e, t);
s.layers = this.layers, s.up.set(0, -1, 0), s.lookAt(new q(-1, 0, 0)), this.add(s);
const o = new nn(ao, lo, e, t);
o.layers = this.layers, o.up.set(0, 0, 1), o.lookAt(new q(0, 1, 0)), this.add(o);
const a = new nn(ao, lo, e, t);
a.layers = this.layers, a.up.set(0, 0, -1), a.lookAt(new q(0, -1, 0)), this.add(a);
const c = new nn(ao, lo, e, t);
c.layers = this.layers, c.up.set(0, -1, 0), c.lookAt(new q(0, 0, 1)), this.add(c);
const l = new nn(ao, lo, e, t);
l.layers = this.layers, l.up.set(0, -1, 0), l.lookAt(new q(0, 0, -1)), this.add(l);
}
update(e, t) {
this.parent === null && this.updateMatrixWorld();
const i = this.renderTarget, [r, s, o, a, c, l] = this.children, d = e.xr.enabled, h4 = e.getRenderTarget();
e.xr.enabled = false;
const f = i.texture.generateMipmaps;
i.texture.generateMipmaps = false, e.setRenderTarget(i, 0), e.render(t, r), e.setRenderTarget(i, 1), e.render(t, s), e.setRenderTarget(i, 2), e.render(t, o), e.setRenderTarget(i, 3), e.render(t, a), e.setRenderTarget(i, 4), e.render(t, c), i.texture.generateMipmaps = f, e.setRenderTarget(i, 5), e.render(t, l), e.setRenderTarget(h4), e.xr.enabled = d;
}
};
var ca = class extends Jt {
constructor(e, t, i, r, s, o, a, c, l, d) {
e = e !== void 0 ? e : [], t = t !== void 0 ? t : yl, a = a !== void 0 ? a : or, super(e, t, i, r, s, o, a, c, l, d), this._needsFlipEnvMap = true, this.flipY = false;
}
get images() {
return this.image;
}
set images(e) {
this.image = e;
}
};
ca.prototype.isCubeTexture = true;
var Iu = class extends gi {
constructor(e, t, i) {
Number.isInteger(t) && (console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"), t = i), super(e, e, t), t = t || {}, this.texture = new ca(void 0, t.mapping, t.wrapS, t.wrapT, t.magFilter, t.minFilter, t.format, t.type, t.anisotropy, t.encoding), this.texture.generateMipmaps = t.generateMipmaps !== void 0 ? t.generateMipmaps : false, this.texture.minFilter = t.minFilter !== void 0 ? t.minFilter : Ut, this.texture._needsFlipEnvMap = false;
}
fromEquirectangularTexture(e, t) {
this.texture.type = t.type, this.texture.format = jn, this.texture.encoding = t.encoding, this.texture.generateMipmaps = t.generateMipmaps, this.texture.minFilter = t.minFilter, this.texture.magFilter = t.magFilter;
const i = {
uniforms: {
tEquirect: { value: null }
},
vertexShader: (
/* glsl */
`
varying vec3 vWorldDirection;
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
}
void main() {
vWorldDirection = transformDirection( position, modelMatrix );
#include
#include
}
`
),
fragmentShader: (
/* glsl */
`
uniform sampler2D tEquirect;
varying vec3 vWorldDirection;
#include
void main() {
vec3 direction = normalize( vWorldDirection );
vec2 sampleUV = equirectUv( direction );
gl_FragColor = texture2D( tEquirect, sampleUV );
}
`
)
}, r = new ur(5, 5, 5), s = new hr({
name: "CubemapFromEquirect",
uniforms: Vo(i.uniforms),
vertexShader: i.vertexShader,
fragmentShader: i.fragmentShader,
side: jt,
blending: sr
});
s.uniforms.tEquirect.value = t;
const o = new Yt(r, s), a = t.minFilter;
return t.minFilter === yr && (t.minFilter = Ut), new Pu(1, 10, this).update(e, o), t.minFilter = a, o.geometry.dispose(), o.material.dispose(), this;
}
clear(e, t, i, r) {
const s = e.getRenderTarget();
for (let o = 0; o < 6; o++)
e.setRenderTarget(this, o), e.clear(t, i, r);
e.setRenderTarget(s);
}
};
Iu.prototype.isWebGLCubeRenderTarget = true;
var Ah = new q();
var LI = new q();
var RI = new rn();
var Ei = class {
constructor(e = new q(1, 0, 0), t = 0) {
this.normal = e, this.constant = t;
}
set(e, t) {
return this.normal.copy(e), this.constant = t, this;
}
setComponents(e, t, i, r) {
return this.normal.set(e, t, i), this.constant = r, this;
}
setFromNormalAndCoplanarPoint(e, t) {
return this.normal.copy(e), this.constant = -t.dot(this.normal), this;
}
setFromCoplanarPoints(e, t, i) {
const r = Ah.subVectors(i, t).cross(LI.subVectors(e, t)).normalize();
return this.setFromNormalAndCoplanarPoint(r, e), this;
}
copy(e) {
return this.normal.copy(e.normal), this.constant = e.constant, this;
}
normalize() {
const e = 1 / this.normal.length();
return this.normal.multiplyScalar(e), this.constant *= e, this;
}
negate() {
return this.constant *= -1, this.normal.negate(), this;
}
distanceToPoint(e) {
return this.normal.dot(e) + this.constant;
}
distanceToSphere(e) {
return this.distanceToPoint(e.center) - e.radius;
}
projectPoint(e, t) {
return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e);
}
intersectLine(e, t) {
const i = e.delta(Ah), r = this.normal.dot(i);
if (r === 0)
return this.distanceToPoint(e.start) === 0 ? t.copy(e.start) : null;
const s = -(e.start.dot(this.normal) + this.constant) / r;
return s < 0 || s > 1 ? null : t.copy(i).multiplyScalar(s).add(e.start);
}
intersectsLine(e) {
const t = this.distanceToPoint(e.start), i = this.distanceToPoint(e.end);
return t < 0 && i > 0 || i < 0 && t > 0;
}
intersectsBox(e) {
return e.intersectsPlane(this);
}
intersectsSphere(e) {
return e.intersectsPlane(this);
}
coplanarPoint(e) {
return e.copy(this.normal).multiplyScalar(-this.constant);
}
applyMatrix4(e, t) {
const i = t || RI.getNormalMatrix(e), r = this.coplanarPoint(Ah).applyMatrix4(e), s = this.normal.applyMatrix3(i).normalize();
return this.constant = -r.dot(s), this;
}
translate(e) {
return this.constant -= e.dot(this.normal), this;
}
equals(e) {
return e.normal.equals(this.normal) && e.constant === this.constant;
}
clone() {
return new this.constructor().copy(this);
}
};
Ei.prototype.isPlane = true;
var co = new br();
var oc = new q();
var Ml = class {
constructor(e = new Ei(), t = new Ei(), i = new Ei(), r = new Ei(), s = new Ei(), o = new Ei()) {
this.planes = [e, t, i, r, s, o];
}
set(e, t, i, r, s, o) {
const a = this.planes;
return a[0].copy(e), a[1].copy(t), a[2].copy(i), a[3].copy(r), a[4].copy(s), a[5].copy(o), this;
}
copy(e) {
const t = this.planes;
for (let i = 0; i < 6; i++)
t[i].copy(e.planes[i]);
return this;
}
setFromProjectionMatrix(e) {
const t = this.planes, i = e.elements, r = i[0], s = i[1], o = i[2], a = i[3], c = i[4], l = i[5], d = i[6], h4 = i[7], f = i[8], g = i[9], p = i[10], u = i[11], y = i[12], v = i[13], m = i[14], x = i[15];
return t[0].setComponents(a - r, h4 - c, u - f, x - y).normalize(), t[1].setComponents(a + r, h4 + c, u + f, x + y).normalize(), t[2].setComponents(a + s, h4 + l, u + g, x + v).normalize(), t[3].setComponents(a - s, h4 - l, u - g, x - v).normalize(), t[4].setComponents(a - o, h4 - d, u - p, x - m).normalize(), t[5].setComponents(a + o, h4 + d, u + p, x + m).normalize(), this;
}
intersectsObject(e) {
const t = e.geometry;
return t.boundingSphere === null && t.computeBoundingSphere(), co.copy(t.boundingSphere).applyMatrix4(e.matrixWorld), this.intersectsSphere(co);
}
intersectsSprite(e) {
return co.center.set(0, 0, 0), co.radius = 0.7071067811865476, co.applyMatrix4(e.matrixWorld), this.intersectsSphere(co);
}
intersectsSphere(e) {
const t = this.planes, i = e.center, r = -e.radius;
for (let s = 0; s < 6; s++)
if (t[s].distanceToPoint(i) < r)
return false;
return true;
}
intersectsBox(e) {
const t = this.planes;
for (let i = 0; i < 6; i++) {
const r = t[i];
if (oc.x = r.normal.x > 0 ? e.max.x : e.min.x, oc.y = r.normal.y > 0 ? e.max.y : e.min.y, oc.z = r.normal.z > 0 ? e.max.z : e.min.z, r.distanceToPoint(oc) < 0)
return false;
}
return true;
}
containsPoint(e) {
const t = this.planes;
for (let i = 0; i < 6; i++)
if (t[i].distanceToPoint(e) < 0)
return false;
return true;
}
clone() {
return new this.constructor().copy(this);
}
};
function Tx() {
let n = null, e = false, t = null, i = null;
function r(s, o) {
t(s, o), i = n.requestAnimationFrame(r);
}
return {
start: function() {
e !== true && t !== null && (i = n.requestAnimationFrame(r), e = true);
},
stop: function() {
n.cancelAnimationFrame(i), e = false;
},
setAnimationLoop: function(s) {
t = s;
},
setContext: function(s) {
n = s;
}
};
}
function PI(n, e) {
const t = e.isWebGL2, i = /* @__PURE__ */ new WeakMap();
function r(l, d) {
const h4 = l.array, f = l.usage, g = n.createBuffer();
n.bindBuffer(d, g), n.bufferData(d, h4, f), l.onUploadCallback();
let p = 5126;
return h4 instanceof Float32Array ? p = 5126 : h4 instanceof Float64Array ? console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.") : h4 instanceof Uint16Array ? l.isFloat16BufferAttribute ? t ? p = 5131 : console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.") : p = 5123 : h4 instanceof Int16Array ? p = 5122 : h4 instanceof Uint32Array ? p = 5125 : h4 instanceof Int32Array ? p = 5124 : h4 instanceof Int8Array ? p = 5120 : (h4 instanceof Uint8Array || h4 instanceof Uint8ClampedArray) && (p = 5121), {
buffer: g,
type: p,
bytesPerElement: h4.BYTES_PER_ELEMENT,
version: l.version
};
}
function s(l, d, h4) {
const f = d.array, g = d.updateRange;
n.bindBuffer(h4, l), g.count === -1 ? n.bufferSubData(h4, 0, f) : (t ? n.bufferSubData(
h4,
g.offset * f.BYTES_PER_ELEMENT,
f,
g.offset,
g.count
) : n.bufferSubData(
h4,
g.offset * f.BYTES_PER_ELEMENT,
f.subarray(g.offset, g.offset + g.count)
), g.count = -1);
}
function o(l) {
return l.isInterleavedBufferAttribute && (l = l.data), i.get(l);
}
function a(l) {
l.isInterleavedBufferAttribute && (l = l.data);
const d = i.get(l);
d && (n.deleteBuffer(d.buffer), i.delete(l));
}
function c(l, d) {
if (l.isGLBufferAttribute) {
const f = i.get(l);
(!f || f.version < l.version) && i.set(l, {
buffer: l.buffer,
type: l.type,
bytesPerElement: l.elementSize,
version: l.version
});
return;
}
l.isInterleavedBufferAttribute && (l = l.data);
const h4 = i.get(l);
h4 === void 0 ? i.set(l, r(l, d)) : h4.version < l.version && (s(h4.buffer, l, d), h4.version = l.version);
}
return {
get: o,
remove: a,
update: c
};
}
var Ds = class _Ds extends Ke {
constructor(e = 1, t = 1, i = 1, r = 1) {
super(), this.type = "PlaneGeometry", this.parameters = {
width: e,
height: t,
widthSegments: i,
heightSegments: r
};
const s = e / 2, o = t / 2, a = Math.floor(i), c = Math.floor(r), l = a + 1, d = c + 1, h4 = e / a, f = t / c, g = [], p = [], u = [], y = [];
for (let v = 0; v < d; v++) {
const m = v * f - o;
for (let x = 0; x < l; x++) {
const M = x * h4 - s;
p.push(M, -m, 0), u.push(0, 0, 1), y.push(x / a), y.push(1 - v / c);
}
}
for (let v = 0; v < c; v++)
for (let m = 0; m < a; m++) {
const x = m + l * v, M = m + l * (v + 1), T = m + 1 + l * (v + 1), w = m + 1 + l * v;
g.push(x, M, w), g.push(M, T, w);
}
this.setIndex(g), this.setAttribute("position", new He(p, 3)), this.setAttribute("normal", new He(u, 3)), this.setAttribute("uv", new He(y, 2));
}
static fromJSON(e) {
return new _Ds(e.width, e.height, e.widthSegments, e.heightSegments);
}
};
var II = `#ifdef USE_ALPHAMAP
diffuseColor.a *= texture2D( alphaMap, vUv ).g;
#endif`;
var OI = `#ifdef USE_ALPHAMAP
uniform sampler2D alphaMap;
#endif`;
var DI = `#ifdef ALPHATEST
if ( diffuseColor.a < ALPHATEST ) discard;
#endif`;
var NI = `#ifdef USE_AOMAP
float ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;
reflectedLight.indirectDiffuse *= ambientOcclusion;
#if defined( USE_ENVMAP ) && defined( STANDARD )
float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );
reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );
#endif
#endif`;
var BI = `#ifdef USE_AOMAP
uniform sampler2D aoMap;
uniform float aoMapIntensity;
#endif`;
var FI = "vec3 transformed = vec3( position );";
var zI = `vec3 objectNormal = vec3( normal );
#ifdef USE_TANGENT
vec3 objectTangent = vec3( tangent.xyz );
#endif`;
var UI = `vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {
const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
vec4 r = roughness * c0 + c1;
float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
return vec2( -1.04, 1.04 ) * a004 + r.zw;
}
float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
#if defined ( PHYSICALLY_CORRECT_LIGHTS )
float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
if( cutoffDistance > 0.0 ) {
distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
}
return distanceFalloff;
#else
if( cutoffDistance > 0.0 && decayExponent > 0.0 ) {
return pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );
}
return 1.0;
#endif
}
vec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {
return RECIPROCAL_PI * diffuseColor;
}
vec3 F_Schlick( const in vec3 specularColor, const in float dotVH ) {
float fresnel = exp2( ( -5.55473 * dotVH - 6.98316 ) * dotVH );
return ( 1.0 - specularColor ) * fresnel + specularColor;
}
vec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {
float fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );
vec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;
return Fr * fresnel + F0;
}
float G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {
float a2 = pow2( alpha );
float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
return 1.0 / ( gl * gv );
}
float G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
float a2 = pow2( alpha );
float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
return 0.5 / max( gv + gl, EPSILON );
}
float D_GGX( const in float alpha, const in float dotNH ) {
float a2 = pow2( alpha );
float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
return RECIPROCAL_PI * a2 / pow2( denom );
}
vec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {
float alpha = pow2( roughness );
vec3 halfDir = normalize( incidentLight.direction + viewDir );
float dotNL = saturate( dot( normal, incidentLight.direction ) );
float dotNV = saturate( dot( normal, viewDir ) );
float dotNH = saturate( dot( normal, halfDir ) );
float dotLH = saturate( dot( incidentLight.direction, halfDir ) );
vec3 F = F_Schlick( specularColor, dotLH );
float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );
float D = D_GGX( alpha, dotNH );
return F * ( G * D );
}
vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
const float LUT_SIZE = 64.0;
const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
const float LUT_BIAS = 0.5 / LUT_SIZE;
float dotNV = saturate( dot( N, V ) );
vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
uv = uv * LUT_SCALE + LUT_BIAS;
return uv;
}
float LTC_ClippedSphereFormFactor( const in vec3 f ) {
float l = length( f );
return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
}
vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
float x = dot( v1, v2 );
float y = abs( x );
float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
float b = 3.4175940 + ( 4.1616724 + y ) * y;
float v = a / b;
float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
return cross( v1, v2 ) * theta_sintheta;
}
vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
vec3 lightNormal = cross( v1, v2 );
if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
vec3 T1, T2;
T1 = normalize( V - N * dot( V, N ) );
T2 = - cross( N, T1 );
mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );
vec3 coords[ 4 ];
coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
coords[ 0 ] = normalize( coords[ 0 ] );
coords[ 1 ] = normalize( coords[ 1 ] );
coords[ 2 ] = normalize( coords[ 2 ] );
coords[ 3 ] = normalize( coords[ 3 ] );
vec3 vectorFormFactor = vec3( 0.0 );
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
return vec3( result );
}
vec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {
float dotNV = saturate( dot( normal, viewDir ) );
vec2 brdf = integrateSpecularBRDF( dotNV, roughness );
return specularColor * brdf.x + brdf.y;
}
void BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
float dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );
vec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );
vec2 brdf = integrateSpecularBRDF( dotNV, roughness );
vec3 FssEss = F * brdf.x + brdf.y;
float Ess = brdf.x + brdf.y;
float Ems = 1.0 - Ess;
vec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
singleScatter += FssEss;
multiScatter += Fms * Ems;
}
float G_BlinnPhong_Implicit( ) {
return 0.25;
}
float D_BlinnPhong( const in float shininess, const in float dotNH ) {
return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
}
vec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {
vec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );
float dotNH = saturate( dot( geometry.normal, halfDir ) );
float dotLH = saturate( dot( incidentLight.direction, halfDir ) );
vec3 F = F_Schlick( specularColor, dotLH );
float G = G_BlinnPhong_Implicit( );
float D = D_BlinnPhong( shininess, dotNH );
return F * ( G * D );
}
float GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {
return ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );
}
float BlinnExponentToGGXRoughness( const in float blinnExponent ) {
return sqrt( 2.0 / ( blinnExponent + 2.0 ) );
}
#if defined( USE_SHEEN )
float D_Charlie(float roughness, float NoH) {
float invAlpha = 1.0 / roughness;
float cos2h = NoH * NoH;
float sin2h = max(1.0 - cos2h, 0.0078125); return (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);
}
float V_Neubelt(float NoV, float NoL) {
return saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));
}
vec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {
vec3 N = geometry.normal;
vec3 V = geometry.viewDir;
vec3 H = normalize( V + L );
float dotNH = saturate( dot( N, H ) );
return specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );
}
#endif`;
var VI = `#ifdef USE_BUMPMAP
uniform sampler2D bumpMap;
uniform float bumpScale;
vec2 dHdxy_fwd() {
vec2 dSTdx = dFdx( vUv );
vec2 dSTdy = dFdy( vUv );
float Hll = bumpScale * texture2D( bumpMap, vUv ).x;
float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;
float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;
return vec2( dBx, dBy );
}
vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );
vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );
vec3 vN = surf_norm;
vec3 R1 = cross( vSigmaY, vN );
vec3 R2 = cross( vN, vSigmaX );
float fDet = dot( vSigmaX, R1 ) * faceDirection;
vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
return normalize( abs( fDet ) * surf_norm - vGrad );
}
#endif`;
var kI = `#if NUM_CLIPPING_PLANES > 0
vec4 plane;
#pragma unroll_loop_start
for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
plane = clippingPlanes[ i ];
if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
}
#pragma unroll_loop_end
#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
bool clipped = true;
#pragma unroll_loop_start
for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
plane = clippingPlanes[ i ];
clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
}
#pragma unroll_loop_end
if ( clipped ) discard;
#endif
#endif`;
var GI = `#if NUM_CLIPPING_PLANES > 0
varying vec3 vClipPosition;
uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
#endif`;
var HI = `#if NUM_CLIPPING_PLANES > 0
varying vec3 vClipPosition;
#endif`;
var WI = `#if NUM_CLIPPING_PLANES > 0
vClipPosition = - mvPosition.xyz;
#endif`;
var jI = `#if defined( USE_COLOR_ALPHA )
diffuseColor *= vColor;
#elif defined( USE_COLOR )
diffuseColor.rgb *= vColor;
#endif`;
var $I = `#if defined( USE_COLOR_ALPHA )
varying vec4 vColor;
#elif defined( USE_COLOR )
varying vec3 vColor;
#endif`;
var ZI = `#if defined( USE_COLOR_ALPHA )
varying vec4 vColor;
#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )
varying vec3 vColor;
#endif`;
var XI = `#if defined( USE_COLOR_ALPHA )
vColor = vec4( 1.0 );
#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )
vColor = vec3( 1.0 );
#endif
#ifdef USE_COLOR
vColor *= color;
#endif
#ifdef USE_INSTANCING_COLOR
vColor.xyz *= instanceColor.xyz;
#endif`;
var YI = `#define PI 3.141592653589793
#define PI2 6.283185307179586
#define PI_HALF 1.5707963267948966
#define RECIPROCAL_PI 0.3183098861837907
#define RECIPROCAL_PI2 0.15915494309189535
#define EPSILON 1e-6
#ifndef saturate
#define saturate(a) clamp( a, 0.0, 1.0 )
#endif
#define whiteComplement(a) ( 1.0 - saturate( a ) )
float pow2( const in float x ) { return x*x; }
float pow3( const in float x ) { return x*x*x; }
float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
float average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }
highp float rand( const in vec2 uv ) {
const highp float a = 12.9898, b = 78.233, c = 43758.5453;
highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
return fract(sin(sn) * c);
}
#ifdef HIGH_PRECISION
float precisionSafeLength( vec3 v ) { return length( v ); }
#else
float max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }
float precisionSafeLength( vec3 v ) {
float maxComponent = max3( abs( v ) );
return length( v / maxComponent ) * maxComponent;
}
#endif
struct IncidentLight {
vec3 color;
vec3 direction;
bool visible;
};
struct ReflectedLight {
vec3 directDiffuse;
vec3 directSpecular;
vec3 indirectDiffuse;
vec3 indirectSpecular;
};
struct GeometricContext {
vec3 position;
vec3 normal;
vec3 viewDir;
#ifdef CLEARCOAT
vec3 clearcoatNormal;
#endif
};
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
}
vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
}
vec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {
float distance = dot( planeNormal, point - pointOnPlane );
return - distance * planeNormal + point;
}
float sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {
return sign( dot( point - pointOnPlane, planeNormal ) );
}
vec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {
return lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;
}
mat3 transposeMat3( const in mat3 m ) {
mat3 tmp;
tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );
tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );
tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );
return tmp;
}
float linearToRelativeLuminance( const in vec3 color ) {
vec3 weights = vec3( 0.2126, 0.7152, 0.0722 );
return dot( weights, color.rgb );
}
bool isPerspectiveMatrix( mat4 m ) {
return m[ 2 ][ 3 ] == - 1.0;
}
vec2 equirectUv( in vec3 dir ) {
float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
return vec2( u, v );
}`;
var JI = `#ifdef ENVMAP_TYPE_CUBE_UV
#define cubeUV_maxMipLevel 8.0
#define cubeUV_minMipLevel 4.0
#define cubeUV_maxTileSize 256.0
#define cubeUV_minTileSize 16.0
float getFace( vec3 direction ) {
vec3 absDirection = abs( direction );
float face = - 1.0;
if ( absDirection.x > absDirection.z ) {
if ( absDirection.x > absDirection.y )
face = direction.x > 0.0 ? 0.0 : 3.0;
else
face = direction.y > 0.0 ? 1.0 : 4.0;
} else {
if ( absDirection.z > absDirection.y )
face = direction.z > 0.0 ? 2.0 : 5.0;
else
face = direction.y > 0.0 ? 1.0 : 4.0;
}
return face;
}
vec2 getUV( vec3 direction, float face ) {
vec2 uv;
if ( face == 0.0 ) {
uv = vec2( direction.z, direction.y ) / abs( direction.x );
} else if ( face == 1.0 ) {
uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
} else if ( face == 2.0 ) {
uv = vec2( - direction.x, direction.y ) / abs( direction.z );
} else if ( face == 3.0 ) {
uv = vec2( - direction.z, direction.y ) / abs( direction.x );
} else if ( face == 4.0 ) {
uv = vec2( - direction.x, direction.z ) / abs( direction.y );
} else {
uv = vec2( direction.x, direction.y ) / abs( direction.z );
}
return 0.5 * ( uv + 1.0 );
}
vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
float face = getFace( direction );
float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
mipInt = max( mipInt, cubeUV_minMipLevel );
float faceSize = exp2( mipInt );
float texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );
vec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );
vec2 f = fract( uv );
uv += 0.5 - f;
if ( face > 2.0 ) {
uv.y += faceSize;
face -= 3.0;
}
uv.x += face * faceSize;
if ( mipInt < cubeUV_maxMipLevel ) {
uv.y += 2.0 * cubeUV_maxTileSize;
}
uv.y += filterInt * 2.0 * cubeUV_minTileSize;
uv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );
uv *= texelSize;
vec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;
uv.x += texelSize;
vec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;
uv.y += texelSize;
vec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;
uv.x -= texelSize;
vec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;
vec3 tm = mix( tl, tr, f.x );
vec3 bm = mix( bl, br, f.x );
return mix( tm, bm, f.y );
}
#define r0 1.0
#define v0 0.339
#define m0 - 2.0
#define r1 0.8
#define v1 0.276
#define m1 - 1.0
#define r4 0.4
#define v4 0.046
#define m4 2.0
#define r5 0.305
#define v5 0.016
#define m5 3.0
#define r6 0.21
#define v6 0.0038
#define m6 4.0
float roughnessToMip( float roughness ) {
float mip = 0.0;
if ( roughness >= r1 ) {
mip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;
} else if ( roughness >= r4 ) {
mip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;
} else if ( roughness >= r5 ) {
mip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;
} else if ( roughness >= r6 ) {
mip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;
} else {
mip = - 2.0 * log2( 1.16 * roughness ); }
return mip;
}
vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
float mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );
float mipF = fract( mip );
float mipInt = floor( mip );
vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
if ( mipF == 0.0 ) {
return vec4( color0, 1.0 );
} else {
vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
return vec4( mix( color0, color1, mipF ), 1.0 );
}
}
#endif`;
var KI = `vec3 transformedNormal = objectNormal;
#ifdef USE_INSTANCING
mat3 m = mat3( instanceMatrix );
transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );
transformedNormal = m * transformedNormal;
#endif
transformedNormal = normalMatrix * transformedNormal;
#ifdef FLIP_SIDED
transformedNormal = - transformedNormal;
#endif
#ifdef USE_TANGENT
vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;
#ifdef FLIP_SIDED
transformedTangent = - transformedTangent;
#endif
#endif`;
var qI = `#ifdef USE_DISPLACEMENTMAP
uniform sampler2D displacementMap;
uniform float displacementScale;
uniform float displacementBias;
#endif`;
var QI = `#ifdef USE_DISPLACEMENTMAP
transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );
#endif`;
var eO = `#ifdef USE_EMISSIVEMAP
vec4 emissiveColor = texture2D( emissiveMap, vUv );
emissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;
totalEmissiveRadiance *= emissiveColor.rgb;
#endif`;
var tO = `#ifdef USE_EMISSIVEMAP
uniform sampler2D emissiveMap;
#endif`;
var nO = "gl_FragColor = linearToOutputTexel( gl_FragColor );";
var iO = `
vec4 LinearToLinear( in vec4 value ) {
return value;
}
vec4 GammaToLinear( in vec4 value, in float gammaFactor ) {
return vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );
}
vec4 LinearToGamma( in vec4 value, in float gammaFactor ) {
return vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );
}
vec4 sRGBToLinear( in vec4 value ) {
return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );
}
vec4 LinearTosRGB( in vec4 value ) {
return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
}
vec4 RGBEToLinear( in vec4 value ) {
return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );
}
vec4 LinearToRGBE( in vec4 value ) {
float maxComponent = max( max( value.r, value.g ), value.b );
float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );
return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );
}
vec4 RGBMToLinear( in vec4 value, in float maxRange ) {
return vec4( value.rgb * value.a * maxRange, 1.0 );
}
vec4 LinearToRGBM( in vec4 value, in float maxRange ) {
float maxRGB = max( value.r, max( value.g, value.b ) );
float M = clamp( maxRGB / maxRange, 0.0, 1.0 );
M = ceil( M * 255.0 ) / 255.0;
return vec4( value.rgb / ( M * maxRange ), M );
}
vec4 RGBDToLinear( in vec4 value, in float maxRange ) {
return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );
}
vec4 LinearToRGBD( in vec4 value, in float maxRange ) {
float maxRGB = max( value.r, max( value.g, value.b ) );
float D = max( maxRange / maxRGB, 1.0 );
D = clamp( floor( D ) / 255.0, 0.0, 1.0 );
return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );
}
const mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );
vec4 LinearToLogLuv( in vec4 value ) {
vec3 Xp_Y_XYZp = cLogLuvM * value.rgb;
Xp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );
vec4 vResult;
vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;
float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;
vResult.w = fract( Le );
vResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;
return vResult;
}
const mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );
vec4 LogLuvToLinear( in vec4 value ) {
float Le = value.z * 255.0 + value.w;
vec3 Xp_Y_XYZp;
Xp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );
Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;
Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;
vec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;
return vec4( max( vRGB, 0.0 ), 1.0 );
}`;
var rO = `#ifdef USE_ENVMAP
#ifdef ENV_WORLDPOS
vec3 cameraToFrag;
if ( isOrthographic ) {
cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
} else {
cameraToFrag = normalize( vWorldPosition - cameraPosition );
}
vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
#ifdef ENVMAP_MODE_REFLECTION
vec3 reflectVec = reflect( cameraToFrag, worldNormal );
#else
vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
#endif
#else
vec3 reflectVec = vReflect;
#endif
#ifdef ENVMAP_TYPE_CUBE
vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
#elif defined( ENVMAP_TYPE_CUBE_UV )
vec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );
#else
vec4 envColor = vec4( 0.0 );
#endif
#ifndef ENVMAP_TYPE_CUBE_UV
envColor = envMapTexelToLinear( envColor );
#endif
#ifdef ENVMAP_BLENDING_MULTIPLY
outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
#elif defined( ENVMAP_BLENDING_MIX )
outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
#elif defined( ENVMAP_BLENDING_ADD )
outgoingLight += envColor.xyz * specularStrength * reflectivity;
#endif
#endif`;
var sO = `#ifdef USE_ENVMAP
uniform float envMapIntensity;
uniform float flipEnvMap;
uniform int maxMipLevel;
#ifdef ENVMAP_TYPE_CUBE
uniform samplerCube envMap;
#else
uniform sampler2D envMap;
#endif
#endif`;
var oO = `#ifdef USE_ENVMAP
uniform float reflectivity;
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )
#define ENV_WORLDPOS
#endif
#ifdef ENV_WORLDPOS
varying vec3 vWorldPosition;
uniform float refractionRatio;
#else
varying vec3 vReflect;
#endif
#endif`;
var aO = `#ifdef USE_ENVMAP
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )
#define ENV_WORLDPOS
#endif
#ifdef ENV_WORLDPOS
varying vec3 vWorldPosition;
#else
varying vec3 vReflect;
uniform float refractionRatio;
#endif
#endif`;
var lO = `#ifdef USE_ENVMAP
#ifdef ENV_WORLDPOS
vWorldPosition = worldPosition.xyz;
#else
vec3 cameraToVertex;
if ( isOrthographic ) {
cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
} else {
cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
}
vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
#ifdef ENVMAP_MODE_REFLECTION
vReflect = reflect( cameraToVertex, worldNormal );
#else
vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
#endif
#endif
#endif`;
var cO = `#ifdef USE_FOG
fogDepth = - mvPosition.z;
#endif`;
var uO = `#ifdef USE_FOG
varying float fogDepth;
#endif`;
var hO = `#ifdef USE_FOG
#ifdef FOG_EXP2
float fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );
#else
float fogFactor = smoothstep( fogNear, fogFar, fogDepth );
#endif
gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
#endif`;
var dO = `#ifdef USE_FOG
uniform vec3 fogColor;
varying float fogDepth;
#ifdef FOG_EXP2
uniform float fogDensity;
#else
uniform float fogNear;
uniform float fogFar;
#endif
#endif`;
var fO = `#ifdef USE_GRADIENTMAP
uniform sampler2D gradientMap;
#endif
vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
float dotNL = dot( normal, lightDirection );
vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
#ifdef USE_GRADIENTMAP
return texture2D( gradientMap, coord ).rgb;
#else
return ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );
#endif
}`;
var pO = `#ifdef USE_LIGHTMAP
vec4 lightMapTexel= texture2D( lightMap, vUv2 );
reflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;
#endif`;
var mO = `#ifdef USE_LIGHTMAP
uniform sampler2D lightMap;
uniform float lightMapIntensity;
#endif`;
var gO = `vec3 diffuse = vec3( 1.0 );
GeometricContext geometry;
geometry.position = mvPosition.xyz;
geometry.normal = normalize( transformedNormal );
geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );
GeometricContext backGeometry;
backGeometry.position = geometry.position;
backGeometry.normal = -geometry.normal;
backGeometry.viewDir = geometry.viewDir;
vLightFront = vec3( 0.0 );
vIndirectFront = vec3( 0.0 );
#ifdef DOUBLE_SIDED
vLightBack = vec3( 0.0 );
vIndirectBack = vec3( 0.0 );
#endif
IncidentLight directLight;
float dotNL;
vec3 directLightColor_Diffuse;
vIndirectFront += getAmbientLightIrradiance( ambientLightColor );
vIndirectFront += getLightProbeIrradiance( lightProbe, geometry );
#ifdef DOUBLE_SIDED
vIndirectBack += getAmbientLightIrradiance( ambientLightColor );
vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );
#endif
#if NUM_POINT_LIGHTS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
getPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );
dotNL = dot( geometry.normal, directLight.direction );
directLightColor_Diffuse = PI * directLight.color;
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
#ifdef DOUBLE_SIDED
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
#endif
}
#pragma unroll_loop_end
#endif
#if NUM_SPOT_LIGHTS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
getSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );
dotNL = dot( geometry.normal, directLight.direction );
directLightColor_Diffuse = PI * directLight.color;
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
#ifdef DOUBLE_SIDED
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
#endif
}
#pragma unroll_loop_end
#endif
#if NUM_DIR_LIGHTS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
getDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );
dotNL = dot( geometry.normal, directLight.direction );
directLightColor_Diffuse = PI * directLight.color;
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
#ifdef DOUBLE_SIDED
vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
#endif
}
#pragma unroll_loop_end
#endif
#if NUM_HEMI_LIGHTS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );
#ifdef DOUBLE_SIDED
vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );
#endif
}
#pragma unroll_loop_end
#endif`;
var vO = `uniform bool receiveShadow;
uniform vec3 ambientLightColor;
uniform vec3 lightProbe[ 9 ];
vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
float x = normal.x, y = normal.y, z = normal.z;
vec3 result = shCoefficients[ 0 ] * 0.886227;
result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
return result;
}
vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {
vec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );
vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
return irradiance;
}
vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
vec3 irradiance = ambientLightColor;
#ifndef PHYSICALLY_CORRECT_LIGHTS
irradiance *= PI;
#endif
return irradiance;
}
#if NUM_DIR_LIGHTS > 0
struct DirectionalLight {
vec3 direction;
vec3 color;
};
uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
void getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {
directLight.color = directionalLight.color;
directLight.direction = directionalLight.direction;
directLight.visible = true;
}
#endif
#if NUM_POINT_LIGHTS > 0
struct PointLight {
vec3 position;
vec3 color;
float distance;
float decay;
};
uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
void getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {
vec3 lVector = pointLight.position - geometry.position;
directLight.direction = normalize( lVector );
float lightDistance = length( lVector );
directLight.color = pointLight.color;
directLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );
directLight.visible = ( directLight.color != vec3( 0.0 ) );
}
#endif
#if NUM_SPOT_LIGHTS > 0
struct SpotLight {
vec3 position;
vec3 direction;
vec3 color;
float distance;
float decay;
float coneCos;
float penumbraCos;
};
uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
void getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {
vec3 lVector = spotLight.position - geometry.position;
directLight.direction = normalize( lVector );
float lightDistance = length( lVector );
float angleCos = dot( directLight.direction, spotLight.direction );
if ( angleCos > spotLight.coneCos ) {
float spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );
directLight.color = spotLight.color;
directLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );
directLight.visible = true;
} else {
directLight.color = vec3( 0.0 );
directLight.visible = false;
}
}
#endif
#if NUM_RECT_AREA_LIGHTS > 0
struct RectAreaLight {
vec3 color;
vec3 position;
vec3 halfWidth;
vec3 halfHeight;
};
uniform sampler2D ltc_1; uniform sampler2D ltc_2;
uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
#endif
#if NUM_HEMI_LIGHTS > 0
struct HemisphereLight {
vec3 direction;
vec3 skyColor;
vec3 groundColor;
};
uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {
float dotNL = dot( geometry.normal, hemiLight.direction );
float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
#ifndef PHYSICALLY_CORRECT_LIGHTS
irradiance *= PI;
#endif
return irradiance;
}
#endif`;
var yO = `#if defined( USE_ENVMAP )
#ifdef ENVMAP_MODE_REFRACTION
uniform float refractionRatio;
#endif
vec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {
vec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );
#ifdef ENVMAP_TYPE_CUBE
vec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );
#ifdef TEXTURE_LOD_EXT
vec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );
#else
vec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );
#endif
envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;
#elif defined( ENVMAP_TYPE_CUBE_UV )
vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );
#else
vec4 envMapColor = vec4( 0.0 );
#endif
return PI * envMapColor.rgb * envMapIntensity;
}
float getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {
float maxMIPLevelScalar = float( maxMIPLevel );
float sigma = PI * roughness * roughness / ( 1.0 + roughness );
float desiredMIPLevel = maxMIPLevelScalar + log2( sigma );
return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );
}
vec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {
#ifdef ENVMAP_MODE_REFLECTION
vec3 reflectVec = reflect( -viewDir, normal );
reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );
#else
vec3 reflectVec = refract( -viewDir, normal, refractionRatio );
#endif
reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
float specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );
#ifdef ENVMAP_TYPE_CUBE
vec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );
#ifdef TEXTURE_LOD_EXT
vec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );
#else
vec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );
#endif
envMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;
#elif defined( ENVMAP_TYPE_CUBE_UV )
vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );
#endif
return envMapColor.rgb * envMapIntensity;
}
#endif`;
var bO = `ToonMaterial material;
material.diffuseColor = diffuseColor.rgb;`;
var xO = `varying vec3 vViewPosition;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
struct ToonMaterial {
vec3 diffuseColor;
};
void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;
#ifndef PHYSICALLY_CORRECT_LIGHTS
irradiance *= PI;
#endif
reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );
}
void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );
}
#define RE_Direct RE_Direct_Toon
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
#define Material_LightProbeLOD( material ) (0)`;
var wO = `BlinnPhongMaterial material;
material.diffuseColor = diffuseColor.rgb;
material.specularColor = specular;
material.specularShininess = shininess;
material.specularStrength = specularStrength;`;
var MO = `varying vec3 vViewPosition;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
struct BlinnPhongMaterial {
vec3 diffuseColor;
vec3 specularColor;
float specularShininess;
float specularStrength;
};
void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
float dotNL = saturate( dot( geometry.normal, directLight.direction ) );
vec3 irradiance = dotNL * directLight.color;
#ifndef PHYSICALLY_CORRECT_LIGHTS
irradiance *= PI;
#endif
reflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );
reflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;
}
void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );
}
#define RE_Direct RE_Direct_BlinnPhong
#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong
#define Material_LightProbeLOD( material ) (0)`;
var _O = `PhysicalMaterial material;
material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );
float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
material.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;
material.specularRoughness = min( material.specularRoughness, 1.0 );
#ifdef REFLECTIVITY
material.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );
#else
material.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );
#endif
#ifdef CLEARCOAT
material.clearcoat = clearcoat;
material.clearcoatRoughness = clearcoatRoughness;
#ifdef USE_CLEARCOATMAP
material.clearcoat *= texture2D( clearcoatMap, vUv ).x;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;
#endif
material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
material.clearcoatRoughness += geometryRoughness;
material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
#endif
#ifdef USE_SHEEN
material.sheenColor = sheen;
#endif`;
var SO = `struct PhysicalMaterial {
vec3 diffuseColor;
float specularRoughness;
vec3 specularColor;
#ifdef CLEARCOAT
float clearcoat;
float clearcoatRoughness;
#endif
#ifdef USE_SHEEN
vec3 sheenColor;
#endif
};
#define MAXIMUM_SPECULAR_COEFFICIENT 0.16
#define DEFAULT_SPECULAR_COEFFICIENT 0.04
float clearcoatDHRApprox( const in float roughness, const in float dotNL ) {
return DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );
}
#if NUM_RECT_AREA_LIGHTS > 0
void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
vec3 normal = geometry.normal;
vec3 viewDir = geometry.viewDir;
vec3 position = geometry.position;
vec3 lightPos = rectAreaLight.position;
vec3 halfWidth = rectAreaLight.halfWidth;
vec3 halfHeight = rectAreaLight.halfHeight;
vec3 lightColor = rectAreaLight.color;
float roughness = material.specularRoughness;
vec3 rectCoords[ 4 ];
rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
vec2 uv = LTC_Uv( normal, viewDir, roughness );
vec4 t1 = texture2D( ltc_1, uv );
vec4 t2 = texture2D( ltc_2, uv );
mat3 mInv = mat3(
vec3( t1.x, 0, t1.y ),
vec3( 0, 1, 0 ),
vec3( t1.z, 0, t1.w )
);
vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
}
#endif
void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
float dotNL = saturate( dot( geometry.normal, directLight.direction ) );
vec3 irradiance = dotNL * directLight.color;
#ifndef PHYSICALLY_CORRECT_LIGHTS
irradiance *= PI;
#endif
#ifdef CLEARCOAT
float ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );
vec3 ccIrradiance = ccDotNL * directLight.color;
#ifndef PHYSICALLY_CORRECT_LIGHTS
ccIrradiance *= PI;
#endif
float clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );
reflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );
#else
float clearcoatDHR = 0.0;
#endif
#ifdef USE_SHEEN
reflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(
material.specularRoughness,
directLight.direction,
geometry,
material.sheenColor
);
#else
reflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);
#endif
reflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );
}
void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
reflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );
}
void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
#ifdef CLEARCOAT
float ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );
reflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );
float ccDotNL = ccDotNV;
float clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );
#else
float clearcoatDHR = 0.0;
#endif
float clearcoatInv = 1.0 - clearcoatDHR;
vec3 singleScattering = vec3( 0.0 );
vec3 multiScattering = vec3( 0.0 );
vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
BRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );
vec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );
reflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;
reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
}
#define RE_Direct RE_Direct_Physical
#define RE_Direct_RectArea RE_Direct_RectArea_Physical
#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical
#define RE_IndirectSpecular RE_IndirectSpecular_Physical
float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
}`;
var TO = `
GeometricContext geometry;
geometry.position = - vViewPosition;
geometry.normal = normal;
geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
#ifdef CLEARCOAT
geometry.clearcoatNormal = clearcoatNormal;
#endif
IncidentLight directLight;
#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
PointLight pointLight;
#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
PointLightShadow pointLightShadow;
#endif
#pragma unroll_loop_start
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
pointLight = pointLights[ i ];
getPointDirectLightIrradiance( pointLight, geometry, directLight );
#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
pointLightShadow = pointLightShadows[ i ];
directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
#endif
RE_Direct( directLight, geometry, material, reflectedLight );
}
#pragma unroll_loop_end
#endif
#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
SpotLight spotLight;
#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
SpotLightShadow spotLightShadow;
#endif
#pragma unroll_loop_start
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
spotLight = spotLights[ i ];
getSpotDirectLightIrradiance( spotLight, geometry, directLight );
#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
spotLightShadow = spotLightShadows[ i ];
directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;
#endif
RE_Direct( directLight, geometry, material, reflectedLight );
}
#pragma unroll_loop_end
#endif
#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
DirectionalLight directionalLight;
#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
DirectionalLightShadow directionalLightShadow;
#endif
#pragma unroll_loop_start
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
directionalLight = directionalLights[ i ];
getDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );
#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
directionalLightShadow = directionalLightShadows[ i ];
directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
#endif
RE_Direct( directLight, geometry, material, reflectedLight );
}
#pragma unroll_loop_end
#endif
#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
RectAreaLight rectAreaLight;
#pragma unroll_loop_start
for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
rectAreaLight = rectAreaLights[ i ];
RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );
}
#pragma unroll_loop_end
#endif
#if defined( RE_IndirectDiffuse )
vec3 iblIrradiance = vec3( 0.0 );
vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
irradiance += getLightProbeIrradiance( lightProbe, geometry );
#if ( NUM_HEMI_LIGHTS > 0 )
#pragma unroll_loop_start
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );
}
#pragma unroll_loop_end
#endif
#endif
#if defined( RE_IndirectSpecular )
vec3 radiance = vec3( 0.0 );
vec3 clearcoatRadiance = vec3( 0.0 );
#endif`;
var EO = `#if defined( RE_IndirectDiffuse )
#ifdef USE_LIGHTMAP
vec4 lightMapTexel= texture2D( lightMap, vUv2 );
vec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;
#ifndef PHYSICALLY_CORRECT_LIGHTS
lightMapIrradiance *= PI;
#endif
irradiance += lightMapIrradiance;
#endif
#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )
iblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );
#endif
#endif
#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
radiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );
#ifdef CLEARCOAT
clearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );
#endif
#endif`;
var AO = `#if defined( RE_IndirectDiffuse )
RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );
#endif
#if defined( RE_IndirectSpecular )
RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );
#endif`;
var CO = `#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )
gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
#endif`;
var LO = `#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )
uniform float logDepthBufFC;
varying float vFragDepth;
varying float vIsPerspective;
#endif`;
var RO = `#ifdef USE_LOGDEPTHBUF
#ifdef USE_LOGDEPTHBUF_EXT
varying float vFragDepth;
varying float vIsPerspective;
#else
uniform float logDepthBufFC;
#endif
#endif`;
var PO = `#ifdef USE_LOGDEPTHBUF
#ifdef USE_LOGDEPTHBUF_EXT
vFragDepth = 1.0 + gl_Position.w;
vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
#else
if ( isPerspectiveMatrix( projectionMatrix ) ) {
gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;
gl_Position.z *= gl_Position.w;
}
#endif
#endif`;
var IO = `#ifdef USE_MAP
vec4 texelColor = texture2D( map, vUv );
texelColor = mapTexelToLinear( texelColor );
diffuseColor *= texelColor;
#endif`;
var OO = `#ifdef USE_MAP
uniform sampler2D map;
#endif`;
var DO = `#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
#endif
#ifdef USE_MAP
vec4 mapTexel = texture2D( map, uv );
diffuseColor *= mapTexelToLinear( mapTexel );
#endif
#ifdef USE_ALPHAMAP
diffuseColor.a *= texture2D( alphaMap, uv ).g;
#endif`;
var NO = `#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
uniform mat3 uvTransform;
#endif
#ifdef USE_MAP
uniform sampler2D map;
#endif
#ifdef USE_ALPHAMAP
uniform sampler2D alphaMap;
#endif`;
var BO = `float metalnessFactor = metalness;
#ifdef USE_METALNESSMAP
vec4 texelMetalness = texture2D( metalnessMap, vUv );
metalnessFactor *= texelMetalness.b;
#endif`;
var FO = `#ifdef USE_METALNESSMAP
uniform sampler2D metalnessMap;
#endif`;
var zO = `#ifdef USE_MORPHNORMALS
objectNormal *= morphTargetBaseInfluence;
objectNormal += morphNormal0 * morphTargetInfluences[ 0 ];
objectNormal += morphNormal1 * morphTargetInfluences[ 1 ];
objectNormal += morphNormal2 * morphTargetInfluences[ 2 ];
objectNormal += morphNormal3 * morphTargetInfluences[ 3 ];
#endif`;
var UO = `#ifdef USE_MORPHTARGETS
uniform float morphTargetBaseInfluence;
#ifndef USE_MORPHNORMALS
uniform float morphTargetInfluences[ 8 ];
#else
uniform float morphTargetInfluences[ 4 ];
#endif
#endif`;
var VO = `#ifdef USE_MORPHTARGETS
transformed *= morphTargetBaseInfluence;
transformed += morphTarget0 * morphTargetInfluences[ 0 ];
transformed += morphTarget1 * morphTargetInfluences[ 1 ];
transformed += morphTarget2 * morphTargetInfluences[ 2 ];
transformed += morphTarget3 * morphTargetInfluences[ 3 ];
#ifndef USE_MORPHNORMALS
transformed += morphTarget4 * morphTargetInfluences[ 4 ];
transformed += morphTarget5 * morphTargetInfluences[ 5 ];
transformed += morphTarget6 * morphTargetInfluences[ 6 ];
transformed += morphTarget7 * morphTargetInfluences[ 7 ];
#endif
#endif`;
var kO = `float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
#ifdef FLAT_SHADED
vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );
vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );
vec3 normal = normalize( cross( fdx, fdy ) );
#else
vec3 normal = normalize( vNormal );
#ifdef DOUBLE_SIDED
normal = normal * faceDirection;
#endif
#ifdef USE_TANGENT
vec3 tangent = normalize( vTangent );
vec3 bitangent = normalize( vBitangent );
#ifdef DOUBLE_SIDED
tangent = tangent * faceDirection;
bitangent = bitangent * faceDirection;
#endif
#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )
mat3 vTBN = mat3( tangent, bitangent, normal );
#endif
#endif
#endif
vec3 geometryNormal = normal;`;
var GO = `#ifdef OBJECTSPACE_NORMALMAP
normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
#ifdef FLIP_SIDED
normal = - normal;
#endif
#ifdef DOUBLE_SIDED
normal = normal * faceDirection;
#endif
normal = normalize( normalMatrix * normal );
#elif defined( TANGENTSPACE_NORMALMAP )
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy *= normalScale;
#ifdef USE_TANGENT
normal = normalize( vTBN * mapN );
#else
normal = perturbNormal2Arb( -vViewPosition, normal, mapN, faceDirection );
#endif
#elif defined( USE_BUMPMAP )
normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd(), faceDirection );
#endif`;
var HO = `#ifdef USE_NORMALMAP
uniform sampler2D normalMap;
uniform vec2 normalScale;
#endif
#ifdef OBJECTSPACE_NORMALMAP
uniform mat3 normalMatrix;
#endif
#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )
vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {
vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );
vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );
vec2 st0 = dFdx( vUv.st );
vec2 st1 = dFdy( vUv.st );
vec3 N = surf_norm;
vec3 q1perp = cross( q1, N );
vec3 q0perp = cross( N, q0 );
vec3 T = q1perp * st0.x + q0perp * st1.x;
vec3 B = q1perp * st0.y + q0perp * st1.y;
float det = max( dot( T, T ), dot( B, B ) );
float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );
return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );
}
#endif`;
var WO = `#ifdef CLEARCOAT
vec3 clearcoatNormal = geometryNormal;
#endif`;
var jO = `#ifdef USE_CLEARCOAT_NORMALMAP
vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;
clearcoatMapN.xy *= clearcoatNormalScale;
#ifdef USE_TANGENT
clearcoatNormal = normalize( vTBN * clearcoatMapN );
#else
clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );
#endif
#endif`;
var $O = `#ifdef USE_CLEARCOATMAP
uniform sampler2D clearcoatMap;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
uniform sampler2D clearcoatRoughnessMap;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
uniform sampler2D clearcoatNormalMap;
uniform vec2 clearcoatNormalScale;
#endif`;
var ZO = `vec3 packNormalToRGB( const in vec3 normal ) {
return normalize( normal ) * 0.5 + 0.5;
}
vec3 unpackRGBToNormal( const in vec3 rgb ) {
return 2.0 * rgb.xyz - 1.0;
}
const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;
const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );
const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );
const float ShiftRight8 = 1. / 256.;
vec4 packDepthToRGBA( const in float v ) {
vec4 r = vec4( fract( v * PackFactors ), v );
r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale;
}
float unpackRGBAToDepth( const in vec4 v ) {
return dot( v, UnpackFactors );
}
vec4 pack2HalfToRGBA( vec2 v ) {
vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));
return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);
}
vec2 unpackRGBATo2Half( vec4 v ) {
return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
}
float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
return ( viewZ + near ) / ( near - far );
}
float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {
return linearClipZ * ( near - far ) - near;
}
float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
return (( near + viewZ ) * far ) / (( far - near ) * viewZ );
}
float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {
return ( near * far ) / ( ( far - near ) * invClipZ - far );
}`;
var XO = `#ifdef PREMULTIPLIED_ALPHA
gl_FragColor.rgb *= gl_FragColor.a;
#endif`;
var YO = `vec4 mvPosition = vec4( transformed, 1.0 );
#ifdef USE_INSTANCING
mvPosition = instanceMatrix * mvPosition;
#endif
mvPosition = modelViewMatrix * mvPosition;
gl_Position = projectionMatrix * mvPosition;`;
var JO = `#ifdef DITHERING
gl_FragColor.rgb = dithering( gl_FragColor.rgb );
#endif`;
var KO = `#ifdef DITHERING
vec3 dithering( vec3 color ) {
float grid_position = rand( gl_FragCoord.xy );
vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
return color + dither_shift_RGB;
}
#endif`;
var qO = `float roughnessFactor = roughness;
#ifdef USE_ROUGHNESSMAP
vec4 texelRoughness = texture2D( roughnessMap, vUv );
roughnessFactor *= texelRoughness.g;
#endif`;
var QO = `#ifdef USE_ROUGHNESSMAP
uniform sampler2D roughnessMap;
#endif`;
var e3 = `#ifdef USE_SHADOWMAP
#if NUM_DIR_LIGHT_SHADOWS > 0
uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
struct DirectionalLightShadow {
float shadowBias;
float shadowNormalBias;
float shadowRadius;
vec2 shadowMapSize;
};
uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
#endif
#if NUM_SPOT_LIGHT_SHADOWS > 0
uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];
struct SpotLightShadow {
float shadowBias;
float shadowNormalBias;
float shadowRadius;
vec2 shadowMapSize;
};
uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
#endif
#if NUM_POINT_LIGHT_SHADOWS > 0
uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
struct PointLightShadow {
float shadowBias;
float shadowNormalBias;
float shadowRadius;
vec2 shadowMapSize;
float shadowCameraNear;
float shadowCameraFar;
};
uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
#endif
float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );
}
vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
return unpackRGBATo2Half( texture2D( shadow, uv ) );
}
float VSMShadow (sampler2D shadow, vec2 uv, float compare ){
float occlusion = 1.0;
vec2 distribution = texture2DDistribution( shadow, uv );
float hard_shadow = step( compare , distribution.x );
if (hard_shadow != 1.0 ) {
float distance = compare - distribution.x ;
float variance = max( 0.00000, distribution.y * distribution.y );
float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
}
return occlusion;
}
float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
float shadow = 1.0;
shadowCoord.xyz /= shadowCoord.w;
shadowCoord.z += shadowBias;
bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );
bool inFrustum = all( inFrustumVec );
bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );
bool frustumTest = all( frustumTestVec );
if ( frustumTest ) {
#if defined( SHADOWMAP_TYPE_PCF )
vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
float dx0 = - texelSize.x * shadowRadius;
float dy0 = - texelSize.y * shadowRadius;
float dx1 = + texelSize.x * shadowRadius;
float dy1 = + texelSize.y * shadowRadius;
float dx2 = dx0 / 2.0;
float dy2 = dy0 / 2.0;
float dx3 = dx1 / 2.0;
float dy3 = dy1 / 2.0;
shadow = (
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
) * ( 1.0 / 17.0 );
#elif defined( SHADOWMAP_TYPE_PCF_SOFT )
vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
float dx = texelSize.x;
float dy = texelSize.y;
vec2 uv = shadowCoord.xy;
vec2 f = fract( uv * shadowMapSize + 0.5 );
uv -= f * texelSize;
shadow = (
texture2DCompare( shadowMap, uv, shadowCoord.z ) +
texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
f.x ) +
mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
f.x ) +
mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
f.y ) +
mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
f.y ) +
mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
f.x ),
mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
f.x ),
f.y )
) * ( 1.0 / 9.0 );
#elif defined( SHADOWMAP_TYPE_VSM )
shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
#else
shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
#endif
}
return shadow;
}
vec2 cubeToUV( vec3 v, float texelSizeY ) {
vec3 absV = abs( v );
float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
absV *= scaleToCube;
v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
vec2 planar = v.xy;
float almostATexel = 1.5 * texelSizeY;
float almostOne = 1.0 - almostATexel;
if ( absV.z >= almostOne ) {
if ( v.z > 0.0 )
planar.x = 4.0 - v.x;
} else if ( absV.x >= almostOne ) {
float signX = sign( v.x );
planar.x = v.z * signX + 2.0 * signX;
} else if ( absV.y >= almostOne ) {
float signY = sign( v.y );
planar.x = v.x + 2.0 * signY + 2.0;
planar.y = v.z * signY - 2.0;
}
return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
}
float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
vec3 lightToPosition = shadowCoord.xyz;
float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;
vec3 bd3D = normalize( lightToPosition );
#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
return (
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
) * ( 1.0 / 9.0 );
#else
return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
#endif
}
#endif`;
var t3 = `#ifdef USE_SHADOWMAP
#if NUM_DIR_LIGHT_SHADOWS > 0
uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
struct DirectionalLightShadow {
float shadowBias;
float shadowNormalBias;
float shadowRadius;
vec2 shadowMapSize;
};
uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
#endif
#if NUM_SPOT_LIGHT_SHADOWS > 0
uniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];
varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];
struct SpotLightShadow {
float shadowBias;
float shadowNormalBias;
float shadowRadius;
vec2 shadowMapSize;
};
uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
#endif
#if NUM_POINT_LIGHT_SHADOWS > 0
uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
struct PointLightShadow {
float shadowBias;
float shadowNormalBias;
float shadowRadius;
vec2 shadowMapSize;
float shadowCameraNear;
float shadowCameraFar;
};
uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
#endif
#endif`;
var n3 = `#ifdef USE_SHADOWMAP
#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0
vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
vec4 shadowWorldPosition;
#endif
#if NUM_DIR_LIGHT_SHADOWS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
}
#pragma unroll_loop_end
#endif
#if NUM_SPOT_LIGHT_SHADOWS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );
vSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;
}
#pragma unroll_loop_end
#endif
#if NUM_POINT_LIGHT_SHADOWS > 0
#pragma unroll_loop_start
for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
}
#pragma unroll_loop_end
#endif
#endif`;
var i3 = `float getShadowMask() {
float shadow = 1.0;
#ifdef USE_SHADOWMAP
#if NUM_DIR_LIGHT_SHADOWS > 0
DirectionalLightShadow directionalLight;
#pragma unroll_loop_start
for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
directionalLight = directionalLightShadows[ i ];
shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
}
#pragma unroll_loop_end
#endif
#if NUM_SPOT_LIGHT_SHADOWS > 0
SpotLightShadow spotLight;
#pragma unroll_loop_start
for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
spotLight = spotLightShadows[ i ];
shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;
}
#pragma unroll_loop_end
#endif
#if NUM_POINT_LIGHT_SHADOWS > 0
PointLightShadow pointLight;
#pragma unroll_loop_start
for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
pointLight = pointLightShadows[ i ];
shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
}
#pragma unroll_loop_end
#endif
#endif
return shadow;
}`;
var r3 = `#ifdef USE_SKINNING
mat4 boneMatX = getBoneMatrix( skinIndex.x );
mat4 boneMatY = getBoneMatrix( skinIndex.y );
mat4 boneMatZ = getBoneMatrix( skinIndex.z );
mat4 boneMatW = getBoneMatrix( skinIndex.w );
#endif`;
var s3 = `#ifdef USE_SKINNING
uniform mat4 bindMatrix;
uniform mat4 bindMatrixInverse;
#ifdef BONE_TEXTURE
uniform highp sampler2D boneTexture;
uniform int boneTextureSize;
mat4 getBoneMatrix( const in float i ) {
float j = i * 4.0;
float x = mod( j, float( boneTextureSize ) );
float y = floor( j / float( boneTextureSize ) );
float dx = 1.0 / float( boneTextureSize );
float dy = 1.0 / float( boneTextureSize );
y = dy * ( y + 0.5 );
vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );
vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );
vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );
vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );
mat4 bone = mat4( v1, v2, v3, v4 );
return bone;
}
#else
uniform mat4 boneMatrices[ MAX_BONES ];
mat4 getBoneMatrix( const in float i ) {
mat4 bone = boneMatrices[ int(i) ];
return bone;
}
#endif
#endif`;
var o3 = `#ifdef USE_SKINNING
vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
vec4 skinned = vec4( 0.0 );
skinned += boneMatX * skinVertex * skinWeight.x;
skinned += boneMatY * skinVertex * skinWeight.y;
skinned += boneMatZ * skinVertex * skinWeight.z;
skinned += boneMatW * skinVertex * skinWeight.w;
transformed = ( bindMatrixInverse * skinned ).xyz;
#endif`;
var a3 = `#ifdef USE_SKINNING
mat4 skinMatrix = mat4( 0.0 );
skinMatrix += skinWeight.x * boneMatX;
skinMatrix += skinWeight.y * boneMatY;
skinMatrix += skinWeight.z * boneMatZ;
skinMatrix += skinWeight.w * boneMatW;
skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
#ifdef USE_TANGENT
objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
#endif
#endif`;
var l3 = `float specularStrength;
#ifdef USE_SPECULARMAP
vec4 texelSpecular = texture2D( specularMap, vUv );
specularStrength = texelSpecular.r;
#else
specularStrength = 1.0;
#endif`;
var c3 = `#ifdef USE_SPECULARMAP
uniform sampler2D specularMap;
#endif`;
var u3 = `#if defined( TONE_MAPPING )
gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
#endif`;
var h3 = `#ifndef saturate
#define saturate(a) clamp( a, 0.0, 1.0 )
#endif
uniform float toneMappingExposure;
vec3 LinearToneMapping( vec3 color ) {
return toneMappingExposure * color;
}
vec3 ReinhardToneMapping( vec3 color ) {
color *= toneMappingExposure;
return saturate( color / ( vec3( 1.0 ) + color ) );
}
vec3 OptimizedCineonToneMapping( vec3 color ) {
color *= toneMappingExposure;
color = max( vec3( 0.0 ), color - 0.004 );
return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
}
vec3 RRTAndODTFit( vec3 v ) {
vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
return a / b;
}
vec3 ACESFilmicToneMapping( vec3 color ) {
const mat3 ACESInputMat = mat3(
vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),
vec3( 0.04823, 0.01566, 0.83777 )
);
const mat3 ACESOutputMat = mat3(
vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),
vec3( -0.07367, -0.00605, 1.07602 )
);
color *= toneMappingExposure / 0.6;
color = ACESInputMat * color;
color = RRTAndODTFit( color );
color = ACESOutputMat * color;
return saturate( color );
}
vec3 CustomToneMapping( vec3 color ) { return color; }`;
var d3 = `#ifdef USE_TRANSMISSION
float transmissionFactor = transmission;
float thicknessFactor = thickness;
#ifdef USE_TRANSMISSIONMAP
transmissionFactor *= texture2D( transmissionMap, vUv ).r;
#endif
#ifdef USE_THICKNESSNMAP
thicknessFactor *= texture2D( thicknessMap, vUv ).g;
#endif
vec3 pos = vWorldPosition.xyz / vWorldPosition.w;
vec3 v = normalize( cameraPosition - pos );
float ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );
vec3 transmission = transmissionFactor * getIBLVolumeRefraction(
normal, v, roughnessFactor, material.diffuseColor, totalSpecular,
pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,
attenuationColor, attenuationDistance );
totalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );
#endif`;
var f3 = `#ifdef USE_TRANSMISSION
#ifdef USE_TRANSMISSIONMAP
uniform sampler2D transmissionMap;
#endif
#ifdef USE_THICKNESSMAP
uniform sampler2D thicknessMap;
#endif
uniform vec2 transmissionSamplerSize;
uniform sampler2D transmissionSamplerMap;
uniform mat4 modelMatrix;
uniform mat4 projectionMatrix;
varying vec4 vWorldPosition;
vec3 getVolumeTransmissionRay(vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix) {
vec3 refractionVector = refract(-v, normalize(n), 1.0 / ior);
vec3 modelScale;
modelScale.x = length(vec3(modelMatrix[0].xyz));
modelScale.y = length(vec3(modelMatrix[1].xyz));
modelScale.z = length(vec3(modelMatrix[2].xyz));
return normalize(refractionVector) * thickness * modelScale;
}
float applyIorToRoughness(float roughness, float ior) {
return roughness * clamp(ior * 2.0 - 2.0, 0.0, 1.0);
}
vec3 getTransmissionSample(vec2 fragCoord, float roughness, float ior) {
float framebufferLod = log2(transmissionSamplerSize.x) * applyIorToRoughness(roughness, ior);
return texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod).rgb;
}
vec3 applyVolumeAttenuation(vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance) {
if (attenuationDistance == 0.0) {
return radiance;
} else {
vec3 attenuationCoefficient = -log(attenuationColor) / attenuationDistance;
vec3 transmittance = exp(-attenuationCoefficient * transmissionDistance); return transmittance * radiance;
}
}
vec3 getIBLVolumeRefraction(vec3 n, vec3 v, float perceptualRoughness, vec3 baseColor, vec3 specularColor,
vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,
vec3 attenuationColor, float attenuationDistance) {
vec3 transmissionRay = getVolumeTransmissionRay(n, v, thickness, ior, modelMatrix);
vec3 refractedRayExit = position + transmissionRay;
vec4 ndcPos = projMatrix * viewMatrix * vec4(refractedRayExit, 1.0);
vec2 refractionCoords = ndcPos.xy / ndcPos.w;
refractionCoords += 1.0;
refractionCoords /= 2.0;
vec3 transmittedLight = getTransmissionSample(refractionCoords, perceptualRoughness, ior);
vec3 attenuatedColor = applyVolumeAttenuation(transmittedLight, length(transmissionRay), attenuationColor, attenuationDistance);
return (1.0 - specularColor) * attenuatedColor * baseColor;
}
#endif`;
var p3 = `#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )
varying vec2 vUv;
#endif`;
var m3 = `#ifdef USE_UV
#ifdef UVS_VERTEX_ONLY
vec2 vUv;
#else
varying vec2 vUv;
#endif
uniform mat3 uvTransform;
#endif`;
var g3 = `#ifdef USE_UV
vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
#endif`;
var v3 = `#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )
varying vec2 vUv2;
#endif`;
var y3 = `#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )
attribute vec2 uv2;
varying vec2 vUv2;
uniform mat3 uv2Transform;
#endif`;
var b3 = `#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )
vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;
#endif`;
var x3 = `#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )
vec4 worldPosition = vec4( transformed, 1.0 );
#ifdef USE_INSTANCING
worldPosition = instanceMatrix * worldPosition;
#endif
worldPosition = modelMatrix * worldPosition;
#endif`;
var w3 = `uniform sampler2D t2D;
varying vec2 vUv;
void main() {
vec4 texColor = texture2D( t2D, vUv );
gl_FragColor = mapTexelToLinear( texColor );
#include
#include
}`;
var M3 = `varying vec2 vUv;
uniform mat3 uvTransform;
void main() {
vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
gl_Position = vec4( position.xy, 1.0, 1.0 );
}`;
var _3 = `#include
uniform float opacity;
varying vec3 vWorldDirection;
#include
void main() {
vec3 vReflect = vWorldDirection;
#include
gl_FragColor = envColor;
gl_FragColor.a *= opacity;
#include
#include
}`;
var S3 = `varying vec3 vWorldDirection;
#include
void main() {
vWorldDirection = transformDirection( position, modelMatrix );
#include
#include
gl_Position.z = gl_Position.w;
}`;
var T3 = `#if DEPTH_PACKING == 3200
uniform float opacity;
#endif
#include
#include
#include
#include
#include
#include
#include
varying vec2 vHighPrecisionZW;
void main() {
#include
vec4 diffuseColor = vec4( 1.0 );
#if DEPTH_PACKING == 3200
diffuseColor.a = opacity;
#endif
#include
#include
#include
#include
float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;
#if DEPTH_PACKING == 3200
gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
#elif DEPTH_PACKING == 3201
gl_FragColor = packDepthToRGBA( fragCoordZ );
#endif
}`;
var E3 = `#include
#include
#include
#include
#include
#include
#include
varying vec2 vHighPrecisionZW;
void main() {
#include
#include
#ifdef USE_DISPLACEMENTMAP
#include
#include
#include
#endif
#include
#include
#include
#include
#include
#include
#include
vHighPrecisionZW = gl_Position.zw;
}`;
var A3 = `#define DISTANCE
uniform vec3 referencePosition;
uniform float nearDistance;
uniform float farDistance;
varying vec3 vWorldPosition;
#include
#include
#include
#include
#include
#include
void main () {
#include
vec4 diffuseColor = vec4( 1.0 );
#include
#include
#include
float dist = length( vWorldPosition - referencePosition );
dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
dist = saturate( dist );
gl_FragColor = packDepthToRGBA( dist );
}`;
var C3 = `#define DISTANCE
varying vec3 vWorldPosition;
#include
#include
#include
#include
#include
#include
void main() {
#include
#include
#ifdef USE_DISPLACEMENTMAP
#include
#include
#include
#endif
#include
#include
#include
#include
#include
#include
#include
vWorldPosition = worldPosition.xyz;
}`;
var L3 = `uniform sampler2D tEquirect;
varying vec3 vWorldDirection;
#include
void main() {
vec3 direction = normalize( vWorldDirection );
vec2 sampleUV = equirectUv( direction );
vec4 texColor = texture2D( tEquirect, sampleUV );
gl_FragColor = mapTexelToLinear( texColor );
#include
#include
}`;
var R3 = `varying vec3 vWorldDirection;
#include
void main() {
vWorldDirection = transformDirection( position, modelMatrix );
#include
#include
}`;
var P3 = `uniform vec3 diffuse;
uniform float opacity;
uniform float dashSize;
uniform float totalSize;
varying float vLineDistance;
#include
#include
#include
#include
#include
void main() {
#include
if ( mod( vLineDistance, totalSize ) > dashSize ) {
discard;
}
vec3 outgoingLight = vec3( 0.0 );
vec4 diffuseColor = vec4( diffuse, opacity );
#include
#include
outgoingLight = diffuseColor.rgb;
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
#include
#include
#include
#include
}`;
var I3 = `uniform float scale;
attribute float lineDistance;
varying float vLineDistance;
#include
#include
#include
#include
#include
#include
void main() {
vLineDistance = scale * lineDistance;
#include
#include
#include
#include
#include
#include
#include
}`;
var O3 = `uniform vec3 diffuse;
uniform float opacity;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void main() {
#include
vec4 diffuseColor = vec4( diffuse, opacity );
#include
#include
#include
#include
#include
#include
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
#ifdef USE_LIGHTMAP
vec4 lightMapTexel= texture2D( lightMap, vUv2 );
reflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;
#else
reflectedLight.indirectDiffuse += vec3( 1.0 );
#endif
#include
reflectedLight.indirectDiffuse *= diffuseColor.rgb;
vec3 outgoingLight = reflectedLight.indirectDiffuse;
#include
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
#include
#include
#include
#include
#include
}`;
var D3 = `#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void main() {
#include
#include
#include
#include
#ifdef USE_ENVMAP
#include
#include
#include
#include
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
}`;
var N3 = `uniform vec3 diffuse;
uniform vec3 emissive;
uniform float opacity;
varying vec3 vLightFront;
varying vec3 vIndirectFront;
#ifdef DOUBLE_SIDED
varying vec3 vLightBack;
varying vec3 vIndirectBack;
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void main() {
#include
vec4 diffuseColor = vec4( diffuse, opacity );
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
vec3 totalEmissiveRadiance = emissive;
#include
#include
#include
#include
#include
#include
#include
#ifdef DOUBLE_SIDED
reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;
#else
reflectedLight.indirectDiffuse += vIndirectFront;
#endif
#include
reflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );
#ifdef DOUBLE_SIDED
reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;
#else
reflectedLight.directDiffuse = vLightFront;
#endif
reflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();
#include
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
#include
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
#include
#include
#include
#include
#include
}`;
var B3 = `#define LAMBERT
varying vec3 vLightFront;
varying vec3 vIndirectFront;
#ifdef DOUBLE_SIDED
varying vec3 vLightBack;
varying vec3 vIndirectBack;
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void main() {
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
}`;
var F3 = `#define MATCAP
uniform vec3 diffuse;
uniform float opacity;
uniform sampler2D matcap;
varying vec3 vViewPosition;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void main() {
#include
vec4 diffuseColor = vec4( diffuse, opacity );
#include
#include
#include
#include
#include
#include
#include
vec3 viewDir = normalize( vViewPosition );
vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
vec3 y = cross( viewDir, x );
vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
#ifdef USE_MATCAP
vec4 matcapColor = texture2D( matcap, uv );
matcapColor = matcapTexelToLinear( matcapColor );
#else
vec4 matcapColor = vec4( 1.0 );
#endif
vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
#include
#include
#include
#include
#include
}`;
var z3 = `#define MATCAP
varying vec3 vViewPosition;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
#include