oui-kit
Version:
> *...c'est un "kit" pour Vue.js :)*
1,514 lines • 161 kB
JavaScript
import { ref as H, inject as on, reactive as Mt, defineComponent as F, createElementBlock as C, openBlock as h, normalizeClass as ve, renderSlot as K, createTextVNode as J, toDisplayString as I, createCommentVNode as z, createElementVNode as P, mergeModels as oe, useModel as re, computed as ee, withDirectives as me, Fragment as X, mergeProps as ne, vModelCheckbox as Wt, unref as x, createBlock as Z, withCtx as te, vModelText as rt, Teleport as Pe, createVNode as pe, withModifiers as _e, onBeforeUnmount as Tt, watch as le, withKeys as bt, vModelDynamic as Kt, onMounted as Ye, normalizeStyle as Ae, toRefs as Rn, renderList as ue, normalizeProps as Pn, vShow as Fe, isRef as xn, vModelSelect as Nn, nextTick as it, resolveDynamicComponent as Lt, shallowRef as In, getCurrentScope as qn, onScopeDispose as zn, shallowReadonly as qe, useSlots as Fn, useAttrs as Un, Transition as sn, createSlots as Hn, createApp as Wn, TransitionGroup as Kn, resolveComponent as an } from "vue";
import { useDark as jn, useToggle as Yn, useEventListener as ge, useDropZone as Xn, useFileDialog as Qn, useLocalStorage as Bt, useTextareaAutosize as Gn, onKeyStroke as rn, useElementHover as jt, useFocusWithin as Jn, useScrollLock as Zn, useWindowSize as eo } from "@vueuse/core";
import { Logger as Le, arrayEmptyInPlace as to, createArray as no, LoggerContext as oo, LoggerMemoryHandler as so, LogLevelAll as ao, dayFromString as ro, dayToString as io, dayFromToday as lo, getTimestamp as et, createPromise as uo, debounce as co, parseOrderby as tt, arraySetArrayInPlace as fo, arraySum as po, isString as mo, isArray as Yt, logMessageFromCompact as vo, formatMilliseconds as ho, browserSelectColorByName as go, Uint8ArrayToHexDump as yo, isPrimitive as wo, isRecord as bo, useDispose as _o } from "zeed";
const ln = Le("directives"), Gr = {
mounted: (t, e, ...n) => {
if (e instanceof H)
throw new Error("v-action-toggle requires ref as argument");
t.addEventListener("contextmenu", (s) => {
s.preventDefault(), e.value = !e.value;
}), t.addEventListener("click", (s) => {
e.value = !e.value;
});
}
}, Jr = {
mounted: (t, e) => {
if (e instanceof H)
throw new Error("v-action-ture requires ref as argument");
t.addEventListener("contextmenu", (n) => {
n.preventDefault(), e.value = !0;
}), t.addEventListener("click", (n) => {
e.value = !0;
});
}
}, Zr = {
mounted: (t, e) => {
ln.warn("v-no-selection, use with care! causes issues on draggable!"), t.draggable || t.addEventListener(
"pointermove",
(n) => n.preventDefault()
);
}
}, ei = {
mounted: (t, e) => {
ln("focus", t), setTimeout(() => t.focus(), 50);
}
};
function ti(t, e, n = "") {
try {
try {
return new Intl.NumberFormat(void 0, { style: "currency", currency: e }).format(t);
} catch {
}
return `${e} ${t.toFixed(2)}`;
} catch {
return n;
}
}
function ni(t, e = "") {
try {
try {
return new Intl.NumberFormat(void 0, { style: "percent" }).format(t);
} catch {
}
return `${(t * 100).toFixed(0)} %`;
} catch {
return e;
}
}
function Xt(t, ...e) {
return (on("t") ?? ((n) => String(n)))(t, ...e);
}
function oi(t, e, ...n) {
return (on("t") ?? ((s) => String(t)))(e, ...n);
}
const Qt = Le("lazy-data");
function si(t) {
const { chunkSize: e = 10, margin: n = 5, onFetch: s, size: o = 0 } = t;
let a = 0, r = 0;
const l = t.data ?? Mt([]);
let u = {}, d = 0, f = 0;
function m() {
a++, to(l);
const M = no(r);
l.push(...M), u = {};
}
function k(M) {
r = M, m();
}
o > 0 && k(o);
function w(M, R) {
d = M, f = R;
const E = M + R, _ = Math.max(0, M - n), b = Math.min(r, E + n), v = Math.floor(_ / e), $ = Math.floor(b / e);
let c = [];
function y() {
if (c.length === 0)
return;
const p = [...c];
c = [];
const i = p[0] * e, T = (p[p.length - 1] - p[0] + 1) * e, B = a;
s(i, T).then((S) => {
if (Qt("Loaded", i, T, S), a === B) {
p.forEach(
(q) => u[q] = 2
/* Loaded */
);
for (let q = 0; q < T; q++)
l[i + q] = S[q];
}
}).catch((S) => {
Qt.error("Failed to load chunks", p, S);
});
}
for (let p = v; p <= $; p++)
u[p] == null ? (u[p] = 1, c.push(p)) : y();
y();
}
function g() {
m(), w(d, f);
}
return {
setSize: k,
getSize: () => r,
setVisible: w,
reload: g,
data: l
};
}
function ai(t) {
const e = Mt([]), n = oo();
n.setHandlers([
so({
level: ao,
filter: "*",
messages: e
})
]);
const s = n(t);
return s.messages = e, s;
}
const $o = ["href", "target"], ko = ["disabled"], je = /* @__PURE__ */ F({
__name: "oui-button",
props: {
title: {},
mode: { default: "neutral" },
size: { default: "normal" },
dropdown: { type: Boolean, default: !1 },
outline: { type: Boolean, default: !1 },
href: {},
target: { default: "_blank" },
disabled: { type: Boolean, default: !1 }
},
setup(t) {
return (e, n) => e.href && !e.disabled ? (h(), C("a", {
key: 0,
href: e.href,
target: e.target,
class: ve(["oui-button", [
e.mode && `_button_mode_${e.mode}`,
e.size && `_button_size_${e.size}`,
e.dropdown && "_button_dropdown"
]])
}, [
K(e.$slots, "default", {}, () => [
J(I(e.title), 1)
])
], 10, $o)) : (h(), C("button", {
key: 1,
disabled: e.disabled,
class: ve(["oui-button", [
e.mode && `_button_mode_${e.mode}`,
e.size && `_button_size_${e.size}`,
e.dropdown && "_button_dropdown"
]])
}, [
K(e.$slots, "default", {}, () => [
J(I(e.title), 1)
])
], 10, ko));
}
}), Co = { class: "oui-card" }, Ao = {
key: 0,
class: "oui-card-header"
}, Mo = { class: "oui-card-body" }, To = {
key: 1,
class: "oui-card-footer"
}, ri = /* @__PURE__ */ F({
__name: "oui-card",
props: {
title: {}
},
setup(t) {
return (e, n) => (h(), C("div", Co, [
e.$slots.header || e.$slots.title || e.title ? (h(), C("div", Ao, [
K(e.$slots, "header", {}, () => [
K(e.$slots, "title", {}, () => [
J(I(e.title), 1)
])
])
])) : z("", !0),
P("div", Mo, [
K(e.$slots, "default")
]),
e.$slots.footer ? (h(), C("div", To, [
K(e.$slots, "footer")
])) : z("", !0)
]));
}
}), ii = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-checkbox",
props: /* @__PURE__ */ oe({
title: {},
switch: { type: Boolean, default: !1 },
intermediate: { type: Boolean, default: !1 },
description: {}
}, {
modelValue: { required: !0 },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(t) {
const e = t, n = re(t, "modelValue"), s = ee({
get() {
return !!n.value;
},
set(a) {
n.value = a;
}
}), o = ee(() => {
const a = [e.switch ? "oui-switch" : "oui-checkbox"];
return n.value == null && a.push("_checkbox_intermediate"), a;
});
return (a, r) => a.title || a.$slots.default ? (h(), C(X, { key: 0 }, [
P("label", {
class: ve(["oui-form-item-checkbox", { _disabled: a.$attrs.disabled }])
}, [
me(P("input", ne({
"onUpdate:modelValue": r[0] || (r[0] = (l) => s.value = l),
type: "checkbox",
class: o.value
}, a.$attrs), null, 16), [
[Wt, s.value]
]),
r[2] || (r[2] = J(" " + I(" ") + " ")),
K(a.$slots, "default", {}, () => [
J(I(a.title), 1)
])
], 2),
a.$slots.description || a.description ? (h(), C("div", {
key: 0,
class: ve(["oui-form-item-description", { _disabled: a.$attrs.disabled }])
}, [
K(a.$slots, "description", {}, () => [
J(I(a.description), 1)
])
], 2)) : z("", !0)
], 64)) : me((h(), C("input", ne({
key: 1,
"onUpdate:modelValue": r[1] || (r[1] = (l) => s.value = l),
type: "checkbox",
class: o.value
}, a.$attrs), null, 16)), [
[Wt, s.value]
]);
}
}), Et = (t, e) => {
const n = t.__vccOpts || t;
for (const [s, o] of e)
n[s] = o;
return n;
}, Lo = {}, Bo = {
xmlns: "http://www.w3.org/2000/svg",
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2",
"stroke-linecap": "round",
"stroke-linejoin": "round"
};
function Eo(t, e) {
return h(), C("svg", Bo, e[0] || (e[0] = [
P("line", {
x1: "18",
y1: "6",
x2: "6",
y2: "18"
}, null, -1),
P("line", {
x1: "6",
y1: "6",
x2: "18",
y2: "18"
}, null, -1)
]));
}
const St = /* @__PURE__ */ Et(Lo, [["render", Eo]]), li = /* @__PURE__ */ F({
__name: "oui-dark",
setup(t) {
const e = jn(), n = Yn(e);
return (s, o) => (h(), C("button", {
class: "oui-dark",
onClick: o[0] || (o[0] = (a) => x(n)())
}, " toggleDark " + I(x(e)), 1));
}
}), So = {
key: 0,
class: "oui-form-item-title"
}, Do = { key: 0 }, Oo = { class: "oui-form-item-body" }, Vo = {
key: 1,
class: "oui-form-item-description"
}, Be = /* @__PURE__ */ F({
__name: "oui-form-item",
props: {
title: {},
description: {},
required: { type: Boolean },
id: {},
disabled: { type: Boolean }
},
setup(t) {
return (e, n) => e.title != null || e.$slots.description || e.description ? (h(), C("div", {
key: 0,
class: ve(["oui-form-item", { _disabled: e.disabled }])
}, [
P("label", null, [
e.title ? (h(), C("div", So, [
J(I(e.title) + " ", 1),
e.required ? (h(), C("span", Do, "*")) : z("", !0)
])) : z("", !0),
P("div", Oo, [
K(e.$slots, "default")
]),
e.$slots.description || e.description ? (h(), C("div", Vo, [
K(e.$slots, "description", {}, () => [
J(I(e.description), 1)
])
])) : z("", !0)
])
], 2)) : K(e.$slots, "default", { key: 1 });
}
}), Ro = ["id"], ui = /* @__PURE__ */ F({
__name: "oui-date",
props: /* @__PURE__ */ oe({
title: {},
description: {},
required: { type: Boolean },
id: {}
}, {
modelValue: {
required: !0,
default: lo()
},
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(t) {
const e = re(t, "modelValue"), n = ee({
get() {
return e.value ? io(e.value) : "";
},
set(s) {
e.value = s ? ro(s) : void 0;
}
});
return (s, o) => (h(), Z(Be, {
id: s.id,
title: s.title,
description: s.description,
required: s.required
}, {
default: te(() => [
me(P("input", ne({
id: s.id,
"onUpdate:modelValue": o[0] || (o[0] = (a) => n.value = a),
type: "date",
class: "oui-input oui-input-datetime"
}, s.$attrs), null, 16, Ro), [
[rt, n.value]
])
]),
_: 1
}, 8, ["id", "title", "description", "required"]));
}
}), Po = ["id"], ci = /* @__PURE__ */ F({
__name: "oui-datetime",
props: /* @__PURE__ */ oe({
title: {},
description: {},
required: { type: Boolean },
id: {}
}, {
modelValue: {
required: !0,
default: et()
},
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(t) {
const e = re(t, "modelValue"), n = ee({
get() {
const s = new Date(e.value), o = /* @__PURE__ */ new Date();
return o.setUTCFullYear(s.getFullYear()), o.setUTCMonth(s.getMonth()), o.setUTCDate(s.getDate()), o.setUTCHours(s.getHours()), o.setUTCMinutes(s.getMinutes()), o.setUTCSeconds(s.getSeconds()), o.setUTCMilliseconds(s.getMilliseconds()), o.toISOString().slice(0, 16);
},
set(s) {
const [o, a, r, l, u] = s.replace(/\D/g, " ").split(" "), d = /* @__PURE__ */ new Date();
d.setFullYear(+o), d.setMonth(+a - 1), d.setDate(+r), d.setHours(+l), d.setMinutes(+u), d.setSeconds(0), d.setMilliseconds(0), e.value = d.getTime();
}
});
return (s, o) => (h(), Z(Be, {
id: s.id,
title: s.title,
description: s.description,
required: s.required
}, {
default: te(() => [
me(P("input", ne({
id: s.id,
"onUpdate:modelValue": o[0] || (o[0] = (a) => n.value = a),
type: "datetime-local",
class: "oui-input oui-input-datetime"
}, s.$attrs), null, 16, Po), [
[rt, n.value]
])
]),
_: 1
}, 8, ["id", "title", "description", "required"]));
}
}), di = /* @__PURE__ */ F({
__name: "oui-demo",
props: {
state: {}
},
setup(t) {
return (e, n) => (h(), C(X, null, [
(h(), Z(Pe, { to: "#props" }, [
K(e.$slots, "default")
])),
(h(), Z(Pe, { to: "#state" }, [
pe(x(Kr), { value: e.state }, null, 8, ["value"])
]))
], 64));
}
}), mt = Le("drag-util");
function un(t, e) {
var n;
for (; t != null; ) {
if (e && (!(e != null && e.contains(t)) || e.isSameNode(t)))
return !1;
if (((n = t.dataset) == null ? void 0 : n.noscroll) === "true")
return mt("exit noscroll"), !0;
if (t.tagName === "BODY")
return mt("exit body"), !0;
const { overflow: s } = window.getComputedStyle(t);
if (s.split(" ").some((o) => o === "auto" || o === "scroll"))
return mt("exit scroll", t.scrollTop, s), !0;
t = t.parentElement;
}
return !1;
}
const cn = /* @__PURE__ */ F({
__name: "oui-draggable",
props: {
onlyTouch: { type: Boolean },
cancelEvents: { type: Boolean }
},
emits: ["moveStart", "move", "moveEnd"],
setup(t, { emit: e }) {
const n = t, s = e, o = Le("oui-draggable"), a = H();
let r = 0, l = !1, u = 0, d = 0, f = 0, m = 0, k = 0, w = 0, g;
function M(i) {
var Q;
const { pageX: T, pageY: B } = ((Q = i == null ? void 0 : i.touches) == null ? void 0 : Q[0]) ?? i;
k = T - f, w = B - m, f = T, m = B;
const S = u - T, q = d - B, U = {
startX: u,
startY: d,
pageX: T,
pageY: B,
deltaX: k,
deltaY: w,
moveX: S,
moveY: q,
timeMS: et() - r
};
return o("event", U), g = U, U;
}
function R(i) {
n.cancelEvents && (i == null || i.stopPropagation(), i == null || i.preventDefault());
}
function E(i) {
var S;
if (i.target && a.value && un(i.target, a.value))
return;
o("down");
const { pageX: T, pageY: B } = ((S = i == null ? void 0 : i.touches) == null ? void 0 : S[0]) ?? i;
return r = et(), l = !0, u = T, d = B, f = T, m = B, s("moveStart", M(i)), y(), R(i);
}
function _(i) {
if (o("move", l, i), !!l)
return s("move", M(i)), R(i);
}
function b(i) {
return o("up"), l = !1, g && (g.timeMS = et() - r), s("moveEnd", g ?? M(i)), g = void 0, p(), R(i);
}
function v() {
}
const $ = { passive: !1 };
n.onlyTouch || (ge(a, "mousedown", E), ge(a, "dblclick", v)), ge(a, "touchstart", E);
let c = [];
function y() {
c = [
ge(document, "touchmove", _, $),
ge(document, "touchend", b)
], n.onlyTouch || c.push(
ge(document, "mousemove", _, $),
ge(document, "mouseup", b)
);
}
function p() {
c.forEach((i) => i()), c = [];
}
return (i, T) => (h(), C("div", {
ref_key: "el",
ref: a,
"data-noscroll": "true"
}, [
K(i.$slots, "default")
], 512));
}
}), xo = { class: "_content" }, fi = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-file",
props: /* @__PURE__ */ oe({
title: {},
titleChoose: {},
description: {},
accept: { default: "image/*" },
disabled: { type: Boolean, default: !1 },
required: { type: Boolean },
id: {}
}, {
modelValue: { required: !0 },
modelModifiers: {},
filename: { required: !1 },
filenameModifiers: {}
}),
emits: ["update:modelValue", "update:filename"],
setup(t) {
const e = t, n = Le("oui-file"), s = H(), o = re(t, "modelValue"), a = re(t, "filename");
async function r(g) {
const [M, R] = uo(), E = new FileReader();
E.addEventListener("error", R), E.addEventListener("abort", R), E.addEventListener("loadend", (b) => R(E.result)), E.readAsDataURL(g);
const _ = await M;
return _ && (a.value = g.name), _;
}
async function l(g) {
const M = g == null ? void 0 : g[0];
M && (o.value = await r(M));
}
const { isOverDropZone: u } = Xn(s, {
onDrop: l,
dataTypes: [e.accept],
multiple: !1,
// props.multiple,
preventDefaultForUnhandled: !1
}), { files: d, open: f, reset: m, onChange: k } = Qn({
accept: e.accept,
multiple: !1
// props.multiple,
});
k(async () => {
var M;
if (e.disabled)
return;
const g = (M = d.value) == null ? void 0 : M[0];
if (g) {
const R = await r(g);
n("url", R), o.value = R, m();
}
});
function w() {
e.disabled || (n("select"), f());
}
return (g, M) => (h(), Z(Be, {
id: g.id,
title: g.title,
description: g.description,
required: g.required
}, {
default: te(() => {
var R;
return [
P("div", {
ref_key: "dropZoneRef",
ref: s,
class: ve(["oui-file", { _over: x(u), _disabled: g.disabled }]),
onClick: _e(w, ["prevent"])
}, [
P("div", xo, [
!o.value || ((R = o.value) == null ? void 0 : R.length) <= 0 ? K(g.$slots, "default", { key: 0 }, () => [
J(I(g.titleChoose ?? x(Xt)("Choose file...", "oui.file.choose")), 1)
]) : (h(), C(X, { key: 1 }, [
K(g.$slots, "preview", { filename: a.value }, () => [
J(I(a.value ?? x(Xt)("File available", "oui.file.placeholder")), 1)
]),
pe(St, {
onClick: M[0] || (M[0] = _e((E) => o.value = void 0, ["stop", "prevent"]))
})
], 64))
])
], 2)
];
}),
_: 3
}, 8, ["id", "title", "description", "required"]));
}
}), No = { class: "oui-input-group" }, pi = /* @__PURE__ */ F({
__name: "oui-input-group",
setup(t) {
return (e, n) => (h(), C("div", No, [
K(e.$slots, "default")
]));
}
}), Io = ["id"], mi = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-input-number",
props: /* @__PURE__ */ oe({
title: {},
description: {},
required: { type: Boolean },
id: {}
}, {
modelValue: { required: !0 },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(t) {
const e = re(t, "modelValue");
return (n, s) => (h(), Z(Be, {
id: n.id,
title: n.title,
description: n.description,
required: n.required
}, {
default: te(() => [
me(P("input", ne({
id: n.id,
"onUpdate:modelValue": s[0] || (s[0] = (o) => e.value = o),
type: "number",
class: "oui-number"
}, n.$attrs), null, 16, Io), [
[rt, e.value]
])
]),
_: 1
}, 8, ["id", "title", "description", "required"]));
}
}), qo = ["disabled"], zo = ["id", "type"], Fo = ["id", "type"], dn = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-input",
props: /* @__PURE__ */ oe({
title: {},
description: {},
required: { type: Boolean },
type: { default: "text" },
id: {},
lazy: { type: Boolean },
lazyDelay: { default: 1e3 }
}, {
modelValue: { required: !0 },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(t) {
const e = t, n = re(t, "modelValue"), s = H("");
let o;
function a() {
clearTimeout(o);
}
Tt(a), le(s, (l) => {
e.lazy ? e.lazyDelay > 0 && (a(), o = setTimeout(() => n.value = l, e.lazyDelay)) : n.value = l;
}), le(() => n.value, (l) => s.value = l ?? "", { immediate: !0 });
function r() {
e.lazy && (a(), n.value = s.value);
}
return (l, u) => (h(), Z(Be, {
id: l.id,
title: l.title,
description: l.description,
required: l.required
}, {
default: te(() => [
l.$slots.start || l.$slots.end ? (h(), C("div", {
key: 0,
class: "oui-input oui-input-container",
disabled: l.$attrs.disabled
}, [
K(l.$slots, "start"),
me(P("input", ne({
id: l.id,
"onUpdate:modelValue": u[0] || (u[0] = (d) => s.value = d),
type: l.type
}, l.$attrs, {
onBlur: r,
onKeypress: bt(r, ["enter"])
}), null, 16, zo), [
[Kt, s.value]
]),
K(l.$slots, "end")
], 8, qo)) : me((h(), C("input", ne({
key: 1,
id: l.id,
"onUpdate:modelValue": u[1] || (u[1] = (d) => s.value = d),
type: l.type,
class: "oui-input oui-input-string"
}, l.$attrs, {
onBlur: r,
onKeypress: bt(r, ["enter"])
}), null, 16, Fo)), [
[Kt, s.value]
])
]),
_: 3
}, 8, ["id", "title", "description", "required"]));
}
});
function Ee(t) {
return `${t}px`;
}
const fn = /* @__PURE__ */ F({
__name: "oui-separator",
props: /* @__PURE__ */ oe({
side: {},
modelValue: {},
minSize: {},
maxSize: {},
absolute: { type: Boolean, default: !1 },
color: {},
name: {}
}, {
styleValue: { required: !1 },
styleValueModifiers: {}
}),
emits: /* @__PURE__ */ oe(["update:modelValue"], ["update:styleValue"]),
setup(t, { emit: e }) {
const n = t, s = e, o = n.name ? Bt(`oui.separator.${n.name}`, n.modelValue) : H(n.modelValue), a = H(!1), r = re(t, "styleValue");
function l() {
r.value = {
[n.side === "top" || n.side === "bottom" ? "height" : "width"]: Ee(o.value)
};
}
function u(g) {
o.value = Math.max(n.minSize, Math.min(n.maxSize, g)), s("update:modelValue", o.value), l();
}
Ye(() => {
n.name || o.value && (o.value < n.minSize || o.value > n.maxSize) ? u(o.value) : l();
});
let d = 0;
function f(g) {
a.value = !0, d = o.value;
}
function m(g) {
n.side === "top" ? u(d + g.moveY) : n.side === "bottom" ? u(d - g.moveY) : n.side === "left" ? u(d + g.moveX) : u(d - g.moveX);
}
function k(g) {
m(g), a.value = !1;
}
const w = ee(() => n.color ? `--separator: ${n.color}` : void 0);
return (g, M) => (h(), Z(cn, {
class: ve(["oui-separator", {
[`_${g.side}`]: !0,
_active: a.value,
_absolute: g.absolute
}]),
style: Ae(w.value),
onMoveStart: f,
onMoveEnd: k,
onMove: m
}, null, 8, ["class", "style"]));
}
}), vt = (
/* props.margin ?? */
0
), Uo = /* @__PURE__ */ F({
__name: "oui-virtual-list",
props: {
data: {},
rowHeight: { default: 20 },
rowBuffer: { default: 5 },
scrollToEnd: { type: Boolean, default: !1 },
emitDelay: { default: 100 }
},
emits: ["scrollX", "visible"],
setup(t, { emit: e }) {
const n = t, s = e, { data: o, rowBuffer: a, rowHeight: r } = Rn(n), l = H(), u = Math.ceil(a.value / 10) * 2, d = H(o.value.length * r.value + 2 * vt), f = H(0), m = H(0), k = H(vt);
let w = 0, g = !1, M = !1;
function R() {
l.value && (l.value.scrollLeft, !g && (g = !0, requestAnimationFrame(() => {
if (g = !1, !l.value)
return;
const v = [];
v[0] = Math.floor(l.value.scrollTop / r.value) - Math.floor(a.value / 2), v[0] = Math.max(v[0], 0), v[1] = v[0] + Math.floor(l.value.clientHeight / r.value) + a.value, v[1] = Math.min(Math.ceil(v[1] / u) * u, o.value.length), v[0] = Math.max(Math.floor(v[0] / u) * u, 0), f.value = v[0], m.value = v[1], k.value = v[0] * r.value + vt, s("scrollX", l.value.scrollLeft), n.scrollToEnd && !g && !M && (l.value.scrollTop = d.value);
})));
}
const E = co(() => s("visible", f.value, m.value - f.value), { delay: n.emitDelay });
le(() => [f.value, m.value], E);
function _() {
l.value && (n.scrollToEnd ? l.value.scrollTop = d.value : l.value.scrollTop = 0);
}
le(() => n.scrollToEnd, _), le(() => o.value.length, (v) => {
d.value = v * r.value, R();
}), le(r, (v) => {
d.value = o.value.length * v;
});
function b() {
const v = l.value ? l.value.scrollTop + l.value.clientHeight + 1 : 0;
R(), M = d.value > v;
}
return Ye(() => {
if (!l.value)
return;
w = l.value.clientHeight;
const c = [0, Math.ceil(w / r.value) + a.value];
f.value = c[0], m.value = c[0] + c[1], _();
}), (v, $) => (h(), C("div", {
ref_key: "root",
ref: l,
class: "oui-virtual-list",
onScrollPassive: b
}, [
P("div", {
style: Ae(`height: ${x(Ee)(d.value)}; padding-top: ${x(Ee)(k.value)}`)
}, [
(h(!0), C(X, null, ue(x(o).slice(f.value, m.value), (c, y) => (h(), C("div", {
key: f.value + y,
style: Ae({ height: `${x(Ee)(x(r))}` })
}, [
c ? K(v.$slots, "default", {
key: 0,
item: c,
index: f.value + y
}, () => [
J(" Placeholder " + I(y), 1)
]) : z("", !0)
], 4))), 128))
], 4)
], 544));
}
}), Ho = { class: "_tableview_row" }, Wo = ["onClick"], Ko = ["onClick", "onContextmenu"], jo = ["align", "valign"], Yo = { class: "_tableview_row" }, Xo = ["align", "valign"], Qo = /* @__PURE__ */ F({
__name: "oui-tableview",
props: /* @__PURE__ */ oe({
data: {},
columns: {},
rowHeight: { default: 44 },
header: { type: Boolean, default: !0 },
footer: { type: Boolean, default: !1 },
selectable: { type: Boolean, default: !0 },
fillLast: { type: Boolean, default: !0 },
scrollToEnd: { type: Boolean, default: !1 },
rowAttrs: { type: Function, default: () => ({}) },
name: {},
resizeable: { type: Boolean, default: !0 }
}, {
sort: {},
sortModifiers: {},
modelValue: {},
modelModifiers: {}
}),
emits: /* @__PURE__ */ oe(["context", "select", "visible"], ["update:sort", "update:modelValue"]),
setup(t, { emit: e }) {
const n = t, s = e, o = re(t, "sort"), a = re(t, "modelValue"), r = ee(() => tt(o.value).field), l = ee(() => tt(o.value).asc), u = n.columns.map((E) => E.width ?? 120), d = n.name && n.resizeable ? Bt(`oui.tableview.${n.name}.widths`, u) : H(u);
le(() => [n.data, n.fillLast], () => {
let E = n.columns.map((_, b) => d.value[b] ?? _.width ?? 120);
n.fillLast && (E = E.slice(0, -1)), fo(d.value, E);
}, { immediate: !0 });
const f = ee(() => {
const E = d.value.map((_) => Ee(_ ?? 120));
return n.fillLast && E.push("auto"), `--tableview-columns: ${E.join(" ")}`;
});
function m(E) {
if (E.sortable === !0) {
if (r.value === E.name) {
o.value = `${E.name} ${l.value ? "desc" : "asc"}`;
return;
}
o.value = `${E.name} asc`;
}
}
function k(E) {
a.value === E ? a.value = void 0 : a.value = E;
}
const w = H(0), g = H(), M = H();
function R(E) {
w.value = E, g.value && (g.value.style.marginLeft = Ee(-1 * E)), M.value && (M.value.style.marginLeft = Ee(-1 * E));
}
return (E, _) => E.columns != null && E.data != null ? (h(), C("div", {
key: 0,
class: "oui-tableview",
style: Ae(f.value)
}, [
E.header ? (h(), C("div", {
key: 0,
ref_key: "headerElement",
ref: g,
class: "_tableview_header"
}, [
P("div", Ho, [
(h(!0), C(X, null, ue(E.columns, (b, v) => (h(), C("div", {
key: b.name,
class: ve(["_tableview_cell", {
_sortable: b.sortable === !0,
_asc: r.value === b.name && l.value,
_desc: r.value === b.name && !l.value,
_active: r.value === b.name
}]),
onClick: ($) => m(b)
}, [
K(E.$slots, `header-${b.name}`, ne({ ref_for: !0 }, { col: b, pos: v }), () => [
J(I(b.title ?? b.name) + " ", 1),
b.sortable === !0 && r.value === b.name ? (h(), C(X, { key: 0 }, [], 64)) : z("", !0)
])
], 10, Wo))), 128))
])
], 512)) : z("", !0),
pe(Uo, {
class: "_tableview_body",
data: E.data,
"row-height": E.rowHeight,
"scroll-to-end": E.scrollToEnd,
onScrollX: R,
onVisible: _[0] || (_[0] = (b, v) => E.$emit("visible", b, v))
}, {
default: te(({ item: b, index: v }) => [
P("div", ne({
class: ["_tableview_row", {
_selectable: E.selectable,
_active: a.value === v
}]
}, E.rowAttrs(b, v), {
onClick: ($) => {
k(v), s("select", b, v, $);
},
onContextmenu: _e(($) => s("context", b, v, $), ["prevent"])
}), [
(h(!0), C(X, null, ue(E.columns, ($, c) => (h(), C("div", {
key: $.name,
class: "_tableview_cell",
align: $.align ?? "left",
valign: $.valign ?? "top"
}, [
K(E.$slots, `col-${$.name}`, ne({ ref_for: !0 }, {
index: v,
value: b[$.name],
col: $,
pos: c,
item: b
}), () => [
J(I(b[$.name]), 1)
])
], 8, jo))), 128))
], 16, Ko)
]),
_: 3
}, 8, ["data", "row-height", "scroll-to-end"]),
E.footer ? (h(), C("div", {
key: 1,
ref_key: "footerElement",
ref: M,
class: "_tableview_footer"
}, [
P("div", Yo, [
(h(!0), C(X, null, ue(E.columns, (b, v) => (h(), C("div", {
key: b.name,
class: "_tableview_cell",
align: b.align ?? "left",
valign: b.valign ?? "top"
}, [
K(E.$slots, `footer-${b.name}`, ne({ ref_for: !0 }, { col: b, pos: v }), () => [
J(I(b.footer ?? ""), 1)
])
], 8, Xo))), 128))
])
], 512)) : z("", !0),
E.resizeable ? (h(!0), C(X, { key: 2 }, ue(x(d), (b, v) => (h(), Z(fn, {
key: v,
modelValue: x(d)[v],
"onUpdate:modelValue": ($) => x(d)[v] = $,
side: "right",
"min-size": E.columns[v].minWidth ?? 80,
"max-size": E.columns[v].maxWidth ?? 300,
style: Ae({ left: x(Ee)(x(po)(x(d).slice(0, v + 1)) - 1 - w.value) })
}, null, 8, ["modelValue", "onUpdate:modelValue", "min-size", "max-size", "style"]))), 128)) : z("", !0)
], 4)) : z("", !0);
}
}), Go = { style: { color: "#888", "white-space": "pre" } }, Jo = {
key: 0,
style: { "font-weight": "600" }
}, Zo = { key: 1 }, es = {
key: 1,
class: "code"
}, vi = /* @__PURE__ */ F({
__name: "oui-log",
props: {
log: {},
showTime: { type: Boolean, default: !0 },
showTag: { type: Boolean, default: !0 }
},
setup(t) {
const e = t, n = H();
function s(d, f = {}) {
const { trace: m = !0, pretty: k = !0 } = f;
return d.map((w) => w && typeof w == "object" ? k && (w instanceof Uint8Array || w instanceof ArrayBuffer) ? `
${yo(w)}
` : w instanceof Error ? m ? `${w.name || "Error"}: ${w.message}
${w.stack}` : `${w.name || "Error"}: ${w.message}` : w : String(w));
}
function o(d, f = {}) {
return s(d, f) ?? "?";
}
function a(d) {
const f = d.name || "", m = go(f), k = o(Yt(d.messages) ? d.messages : [d.messages], { pretty: !0 });
return {
...d,
name: f,
color: m,
background: {
1: "#d4f4ff",
2: "#ffedbd",
3: "#ffaab0",
4: "#ffbbe9"
}[d.level] ?? "transparent",
message: k
};
}
const r = H([]);
function l() {
const d = [...e.log.messages], f = d[0], m = Yt(f);
let k = (m ? f[0] : f == null ? void 0 : f.timestamp) ?? 0;
r.value = d.map((w) => {
const g = m ? vo(w) : w, { name: M, message: R, color: E, background: _ } = a(g), b = Math.abs(k - (g.timestamp ?? 0));
k = g.timestamp ?? 0;
const v = b && `+${ho(b)}`, $ = new Date(g.timestamp).toLocaleString("de");
return {
...g,
diff: b,
datetime: $,
timeDiffString: v,
name: M,
message: R,
color: E,
background: _
};
});
}
le(() => e.log.messages.length, l), l();
const u = ee(() => {
const d = [];
return e.showTime && d.push({ title: "Time", name: "time", sortable: !1, width: 96, align: "right" }), e.showTag && d.push({ title: "Tag", name: "tag", sortable: !1 }), d.push({ title: "Message", name: "message", sortable: !1 }), d;
});
return (d, f) => (h(), Z(Qo, {
modelValue: n.value,
"onUpdate:modelValue": f[0] || (f[0] = (m) => n.value = m),
class: "oui-log",
name: "log-table",
selectable: "",
data: r.value,
columns: u.value,
"row-height": 23,
"row-attrs": (m) => ({ style: `background: ${m.background}` }),
header: !1,
"scroll-to-end": !0,
resizeable: !1
}, {
"col-time": te(({ item: m }) => [
P("span", Go, I(m.diff ? m.timeDiffString : ""), 1)
]),
"col-tag": te(({ item: m }) => [
P("span", {
style: Ae({ color: m.color, whiteSpace: "pre", fontWeight: 600 })
}, I(m.name), 5)
]),
"col-message": te(({ item: m }) => [
P("span", null, [
(h(!0), C(X, null, ue(m.message, (k, w) => (h(), C(X, { key: k }, [
x(mo)(k) ? (h(), C(X, { key: 0 }, [
w % 2 !== 0 ? (h(), C("b", Jo, I(k.slice(0, 255)), 1)) : (h(), C("span", Zo, I(k.slice(0, 255)), 1))
], 64)) : (h(), C("span", es, "<" + I((k == null ? void 0 : k.__class) ?? typeof k) + ">", 1)),
f[1] || (f[1] = J(" " + I(" ")))
], 64))), 128))
])
]),
_: 1
}, 8, ["modelValue", "data", "columns", "row-attrs"]));
}
}), ts = [
"a[href]",
"area[href]",
"input:not([disabled])",
"select:not([disabled])",
"textarea:not([disabled])",
"button:not([disabled])",
"iframe",
"object",
"embed",
"*[tabindex]",
"*[contenteditable]"
];
let ht;
function ns(t) {
return t ? (ht == null && (ht = ts.join(",")), Array.from(t.querySelectorAll(ht)) || []) : [];
}
let _t;
function os(t, { value: e = !0 }) {
e && t && (_t = (n) => {
const s = ns(t), o = document.querySelector(":focus");
let a = s.findIndex((l) => l.isSameNode(o));
const r = s.length;
n.key === "Tab" && (n.preventDefault(), n.shiftKey ? (--a, a <= 0 && (a = r - 1)) : (++a, a >= r && (a = 0)), s[a].focus());
}, t.addEventListener("keydown", _t));
}
function ss(t) {
t == null || t.removeEventListener("keydown", _t);
}
const pn = {
beforeMount: os,
unMount: ss
}, as = {
key: 0,
class: "oui-notice-icon"
}, rs = {
key: 1,
class: "oui-notice-title"
}, is = {
key: 2,
class: "oui-notice-message"
}, ls = {
key: 1,
class: "oui-notice"
}, us = {
key: 0,
class: "oui-notice-icon"
}, cs = {
key: 1,
class: "oui-notice-title"
}, ds = {
key: 2,
class: "oui-notice-message"
}, hi = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-notice",
props: {
title: {},
cover: { type: Boolean }
},
setup(t) {
const e = H();
return le(e, (n) => {
n && (n.querySelector("._focus") ?? n.querySelector("input,button,select") ?? n).focus();
}, { immediate: !0 }), (n, s) => n.cover ? (h(), Z(Pe, {
key: 0,
to: "body",
disabled: !n.cover
}, [
me((h(), C("div", {
ref_key: "root",
ref: e,
class: "oui-notice _notice_cover _keyboard_aware_height",
"data-noscroll": "true"
}, [
P("div", ne({ class: "oui-notice-body" }, n.$attrs), [
n.$slots.icon ? (h(), C("div", as, [
K(n.$slots, "icon")
])) : z("", !0),
n.$slots.title || n.title ? (h(), C("div", rs, [
K(n.$slots, "title", {}, () => [
J(I(n.title), 1)
])
])) : z("", !0),
n.$slots.default ? (h(), C("div", is, [
K(n.$slots, "default")
])) : z("", !0)
], 16)
])), [
[x(pn)]
])
], 8, ["disabled"])) : (h(), C("div", ls, [
P("div", ne({ class: "oui-notice-body" }, n.$attrs), [
n.$slots.icon ? (h(), C("div", us, [
K(n.$slots, "icon")
])) : z("", !0),
n.$slots.title || n.title ? (h(), C("div", cs, [
K(n.$slots, "title", {}, () => [
J(I(n.title), 1)
])
])) : z("", !0),
n.$slots.default ? (h(), C("div", ds, [
K(n.$slots, "default")
])) : z("", !0)
], 16)
]));
}
}), fs = ["data-score"], ps = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-password-meter",
props: {
value: {}
},
setup(t) {
const e = t, n = ee(() => s(e.value ?? ""));
function s(o) {
let a = 0, r = 0, l = 0, u = 0, d = 0;
const f = /[^A-Z0-9]/i, m = /.*[a-z].*/, k = /.*[A-Z].*/, w = /.*\d.*/, g = /(\w)\1\1\1\1/, M = f.test(o), R = m.test(o), E = k.test(o), _ = w.test(o), b = g.test(o);
return o.length > 4 && ((R || E) && _ && (d = 1), E && R && (u = 1), (R || E || _) && M && (l = 1), o.length > 8 && (r = 1), o.length > 12 && !b && (r = 2), o.length > 25 && !b && (r = 3), a = r + l + u + d, a > 4 && (a = 4)), a;
}
return (o, a) => (h(), C("div", {
class: "oui-password-strength",
"data-score": n.value
}, null, 8, fs));
}
}), ms = { class: "oui-password" }, vs = {
key: 0,
xmlns: "http://www.w3.org/2000/svg",
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2",
"stroke-linecap": "round",
"stroke-linejoin": "round",
class: "lucide lucide-eye-off"
}, hs = {
key: 1,
xmlns: "http://www.w3.org/2000/svg",
width: "24",
height: "24",
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": "2",
"stroke-linecap": "round",
"stroke-linejoin": "round",
class: "lucide lucide-eye"
}, gi = /* @__PURE__ */ F({
inheritAttrs: !1,
__name: "oui-password",
props: /* @__PURE__ */ oe({
showMeter: { type: Boolean, default: !0 },
showVisibility: { type: Boolean, default: !0 },
placeholder: {},
title: {},
description: {},
required: { type: Boolean },
id: {}
}, {
modelValue: { required: !0 },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(t) {
const e = re(t, "modelValue"), n = H(!1);
return (s, o) => (h(), Z(Be, {
id: s.id,
title: s.title,
description: s.description,
required: s.required
}, {
default: te(() => [
P("div", ms, [
pe(dn, ne({
id: s.id,
modelValue: e.value,
"onUpdate:modelValue": o[1] || (o[1] = (a) => e.value = a),
type: n.value ? "text" : "password",
placeholder: s.placeholder
}, s.$attrs), {
end: te(() => [
s.showVisibility ? (h(), C("button", {
key: 0,
onClick: o[0] || (o[0] = (a) => n.value = !n.value)
}, [
n.value ? (h(), C("svg", vs, o[2] || (o[2] = [
P("path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24" }, null, -1),
P("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }, null, -1),
P("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }, null, -1),
P("line", {
x1: "2",
x2: "22",
y1: "2",
y2: "22"
}, null, -1)
]))) : z("", !0),
n.value ? z("", !0) : (h(), C("svg", hs, o[3] || (o[3] = [
P("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }, null, -1),
P("circle", {
cx: "12",
cy: "12",
r: "3"
}, null, -1)
])))
])) : z("", !0)
]),
_: 1
}, 16, ["id", "modelValue", "type", "placeholder"]),
s.showMeter !== !1 ? (h(), Z(ps, {
key: 0,
value: e.value
}, null, 8, ["value"])) : z("", !0)
])
]),
_: 1
}, 8, ["id", "title", "description", "required"]));
}
});
function gs() {
const t = function(_, b) {
let c = _;
const y = n[b];
let p = null, i = 0, T = null;
const B = [], S = {}, q = function(L, O) {
i = c * 4 + 17, p = function(A) {
const D = new Array(A);
for (let V = 0; V < A; V += 1) {
D[V] = new Array(A);
for (let N = 0; N < A; N += 1)
D[V][N] = null;
}
return D;
}(i), U(0, 0), U(i - 7, 0), U(0, i - 7), G(), ce(), ie(L, O), c >= 7 && se(L), T == null && (T = On(c, y, B)), de(T, O);
};
var U = function(L, O) {
for (let A = -1; A <= 7; A += 1)
if (!(L + A <= -1 || i <= L + A))
for (let D = -1; D <= 7; D += 1)
O + D <= -1 || i <= O + D || (A >= 0 && A <= 6 && (D == 0 || D == 6) || D >= 0 && D <= 6 && (A == 0 || A == 6) || A >= 2 && A <= 4 && D >= 2 && D <= 4 ? p[L + A][O + D] = !0 : p[L + A][O + D] = !1);
};
const Q = function() {
let L = 0, O = 0;
for (let A = 0; A < 8; A += 1) {
q(!0, A);
const D = o.getLostPoint(S);
(A == 0 || L > D) && (L = D, O = A);
}
return O;
};
var ce = function() {
for (let L = 8; L < i - 8; L += 1)
p[L][6] == null && (p[L][6] = L % 2 == 0);
for (let L = 8; L < i - 8; L += 1)
p[6][L] == null && (p[6][L] = L % 2 == 0);
}, G = function() {
const L = o.getPatternPosition(c);
for (let O = 0; O < L.length; O += 1)
for (let A = 0; A < L.length; A += 1) {
const D = L[O], V = L[A];
if (p[D][V] == null)
for (let N = -2; N <= 2; N += 1)
for (let W = -2; W <= 2; W += 1)
N == -2 || N == 2 || W == -2 || W == 2 || N == 0 && W == 0 ? p[D + N][V + W] = !0 : p[D + N][V + W] = !1;
}
}, se = function(L) {
const O = o.getBCHTypeNumber(c);
for (var A = 0; A < 18; A += 1) {
var D = !L && (O >> A & 1) == 1;
p[Math.floor(A / 3)][A % 3 + i - 8 - 3] = D;
}
for (var A = 0; A < 18; A += 1) {
var D = !L && (O >> A & 1) == 1;
p[A % 3 + i - 8 - 3][Math.floor(A / 3)] = D;
}
}, ie = function(L, O) {
const A = y << 3 | O, D = o.getBCHTypeInfo(A);
for (var V = 0; V < 15; V += 1) {
var N = !L && (D >> V & 1) == 1;
V < 6 ? p[V][8] = N : V < 8 ? p[V + 1][8] = N : p[i - 15 + V][8] = N;
}
for (var V = 0; V < 15; V += 1) {
var N = !L && (D >> V & 1) == 1;
V < 8 ? p[8][i - V - 1] = N : V < 9 ? p[8][15 - V - 1 + 1] = N : p[8][15 - V - 1] = N;
}
p[i - 8][8] = !L;
}, de = function(L, O) {
let A = -1, D = i - 1, V = 7, N = 0;
const W = o.getMaskFunction(O);
for (let j = i - 1; j > 0; j -= 2)
for (j == 6 && (j -= 1); ; ) {
for (let Y = 0; Y < 2; Y += 1)
if (p[D][j - Y] == null) {
let fe = !1;
N < L.length && (fe = (L[N] >>> V & 1) == 1), W(D, j - Y) && (fe = !fe), p[D][j - Y] = fe, V -= 1, V == -1 && (N += 1, V = 7);
}
if (D += A, D < 0 || i <= D) {
D -= A, A = -A;
break;
}
}
};
const ft = function(L, O) {
let A = 0, D = 0, V = 0;
const N = Array.from({ length: O.length }), W = Array.from({ length: O.length });
for (var j = 0; j < O.length; j += 1) {
const he = O[j].dataCount, Ft = O[j].totalCount - he;
D = Math.max(D, he), V = Math.max(V, Ft), N[j] = new Array(he);
for (var Y = 0; Y < N[j].length; Y += 1)
N[j][Y] = 255 & L.getBuffer()[Y + A];
A += he;
const pt = o.getErrorCorrectPolynomial(Ft), Ut = r(N[j], pt.getLength() - 1).mod(pt);
W[j] = Array.from({ length: pt.getLength() - 1 });
for (var Y = 0; Y < W[j].length; Y += 1) {
const Ht = Y + Ut.getLength() - W[j].length;
W[j][Y] = Ht >= 0 ? Ut.getAt(Ht) : 0;
}
}
let fe = 0;
for (var Y = 0; Y < O.length; Y += 1)
fe += O[Y].totalCount;
const ae = new Array(fe);
let ye = 0;
for (var Y = 0; Y < D; Y += 1)
for (var j = 0; j < O.length; j += 1)
Y < N[j].length && (ae[ye] = N[j][Y], ye += 1);
for (var Y = 0; Y < V; Y += 1)
for (var j = 0; j < O.length; j += 1)
Y < W[j].length && (ae[ye] = W[j][Y], ye += 1);
return ae;
};
var On = function(L, O, A) {
const D = l.getRSBlocks(L, O), V = u();
for (var N = 0; N < A.length; N += 1) {
const j = A[N];
V.put(j.getMode(), 4), V.put(
j.getLength(),
o.getLengthInBits(j.getMode(), L)
), j.write(V);
}
let W = 0;
for (var N = 0; N < D.length; N += 1)
W += D[N].dataCount;
if (V.getLengthInBits() > W * 8)
throw `code length overflow. (${V.getLengthInBits()}>${W * 8})`;
for (V.getLengthInBits() + 4 <= W * 8 && V.put(0, 4); V.getLengthInBits() % 8 != 0; )
V.putBit(!1);
for (; !(V.getLengthInBits() >= W * 8 || (V.put(236, 8), V.getLengthInBits() >= W * 8)); )
V.put(17, 8);
return ft(V, D);
};
S.addData = function(L, O) {
O = O || "Byte";
let A = null;
switch (O) {
case "Numeric":
A = d(L);
break;
case "Alphanumeric":
A = f(L);
break;
case "Byte":
A = m(L);
break;
case "Kanji":
A = k(L);
break;
default:
throw `mode:${O}`;
}
B.push(A), T = null;
}, S.isDark = function(L, O) {
if (L < 0 || i <= L || O < 0 || i <= O)
throw `${L},${O}`;
return p[L][O];
}, S.getModuleCount = function() {
return i;
}, S.make = function() {
if (c < 1) {
let O = 1;
for (; O < 40; O++) {
const A = l.getRSBlocks(
O,
y
), D = u();
for (var L = 0; L < B.length; L++) {
const N = B[L];
D.put(N.getMode(), 4), D.put(
N.getLength(),
o.getLengthInBits(N.getMode(), O)
), N.write(D);
}
let V = 0;
for (var L = 0; L < A.length; L++)
V += A[L].dataCount;
if (D.getLengthInBits() <= V * 8)
break;
}
c = O;
}
q(!1, Q());
}, S.createTableTag = function(L, O) {
L = L || 2, O = typeof O > "u" ? L * 4 : O;
let A = "";
A += '<table style="', A += " border-width: 0px; border-style: none;", A += " border-collapse: collapse;", A += ` padding: 0px; margin: ${O}px;`, A += '">', A += "<tbody>";
for (let D = 0; D < S.getModuleCount(); D += 1) {
A += "<tr>";
for (let V = 0; V < S.getModuleCount(); V += 1)
A += '<td style="', A += " border-width: 0px; border-style: none;", A += " border-collapse: collapse;", A += " padding: 0px; margin: 0px;", A += ` width: ${L}px;`, A += ` height: ${L}px;`, A += " background-color: ", A += S.isDark(D, V) ? "#000000" : "#ffffff", A += ";", A += '"/>';
A += "</tr>";
}
return A += "</tbody>", A += "</table>", A;
}, S.createSvgTag = function(L, O, A, D) {
let V = {};
typeof arguments[0] == "object" && (V = arguments[0], L = V.cellSize, O = V.margin, A = V.alt, D = V.title), L = L || 2, O = typeof O > "u" ? L * 4 : O, A = typeof A == "string" ? { text: A } : A || {}, A.text = A.text || null, A.id = A.text ? A.id || "qrcode-description" : null, D = typeof D == "string" ? { text: D } : D || {}, D.text = D.text || null, D.id = D.text ? D.id || "qrcode-title" : null;
const N = S.getModuleCount() * L + O * 2;
let W, j, Y, fe, ae = "", ye;
for (ye = `l${L},0 0,${L} -${L},0 0,-${L}z `, ae += '<svg version="1.1" xmlns="http://www.w3.org/2000/svg"', ae += V.scalable ? "" : ` width="${N}px" height="${N}px"`, ae += ` viewBox="0 0 ${N} ${N}" `, ae += ' preserveAspectRatio="xMinYMin meet"', ae += D.text || A.text ? ` role="img" aria-labelledby="${Ie([D.id, A.id].join(" ").trim())}"` : "", ae += ">", ae += D.text ? `<title id="${Ie(D.id)}">${Ie(D.text)}</title>` : "", ae += A.text ? `<description id="${Ie(A.id)}">${Ie(A.text)}</description>` : "", ae += '<path d="', Y = 0; Y < S.getModuleCount(); Y += 1)
for (fe = Y * L + O, W = 0; W < S.getModuleCount(); W += 1)
S.isDark(Y, W) && (j = W * L + O, ae += `M${j},${fe}${ye}`);
return ae += '" stroke="transparent" fill="currentColor"/>', ae += "</svg>", ae;
}, S.createDataURL = function(L, O) {
L = L || 2, O = typeof O > "u" ? L * 4 : O;
const A = S.getModuleCount() * L + O * 2, D = O, V = A - O;
return E(A, A, (N, W) => {
if (D <= N && N < V && D <= W && W < V) {
const j = Math.floor((N - D) / L), Y = Math.floor((W - D)