bettertend/frontend/node_modules/.vite/deps/chunk-ADPJOAU6.js

1262 lines
35 KiB
JavaScript

import {
Fragment,
camelize,
capitalize,
computed,
defineComponent,
getCurrentInstance,
h,
inject,
provide,
reactive,
ref,
shallowRef,
toRef,
unref,
warn,
watchEffect
} from "./chunk-FIAHBV72.js";
// node_modules/vuetify/lib/util/globals.js
var IN_BROWSER = typeof window !== "undefined";
var SUPPORTS_INTERSECTION = IN_BROWSER && "IntersectionObserver" in window;
var SUPPORTS_TOUCH = IN_BROWSER && ("ontouchstart" in window || window.navigator.maxTouchPoints > 0);
var SUPPORTS_EYE_DROPPER = IN_BROWSER && "EyeDropper" in window;
var SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof window.matchMedia === "function";
// node_modules/vuetify/lib/util/helpers.js
function _classPrivateFieldInitSpec(e, t, a) {
_checkPrivateRedeclaration(e, t), t.set(e, a);
}
function _checkPrivateRedeclaration(e, t) {
if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
}
function _classPrivateFieldSet(s, a, r) {
return s.set(_assertClassBrand(s, a), r), r;
}
function _classPrivateFieldGet(s, a) {
return s.get(_assertClassBrand(s, a));
}
function _assertClassBrand(e, t, n) {
if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
throw new TypeError("Private element is not present on this object");
}
function getNestedValue(obj, path, fallback) {
const last = path.length - 1;
if (last < 0) return obj === void 0 ? fallback : obj;
for (let i = 0; i < last; i++) {
if (obj == null) {
return fallback;
}
obj = obj[path[i]];
}
if (obj == null) return fallback;
return obj[path[last]] === void 0 ? fallback : obj[path[last]];
}
function deepEqual(a, b) {
if (a === b) return true;
if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {
return false;
}
if (a !== Object(a) || b !== Object(b)) {
return false;
}
const props = Object.keys(a);
if (props.length !== Object.keys(b).length) {
return false;
}
return props.every((p) => deepEqual(a[p], b[p]));
}
function getObjectValueByPath(obj, path, fallback) {
if (obj == null || !path || typeof path !== "string") return fallback;
if (obj[path] !== void 0) return obj[path];
path = path.replace(/\[(\w+)\]/g, ".$1");
path = path.replace(/^\./, "");
return getNestedValue(obj, path.split("."), fallback);
}
function createRange(length) {
let start = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
return Array.from({
length
}, (v, k) => start + k);
}
function convertToUnit(str) {
let unit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "px";
if (str == null || str === "") {
return void 0;
}
const num = Number(str);
if (isNaN(num)) {
return String(str);
} else if (!isFinite(num)) {
return void 0;
} else {
return `${num}${unit}`;
}
}
function isObject(obj) {
return obj !== null && typeof obj === "object" && !Array.isArray(obj);
}
function isPlainObject(obj) {
let proto;
return obj !== null && typeof obj === "object" && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);
}
function refElement(obj) {
if (obj && "$el" in obj) {
const el = obj.$el;
if ((el == null ? void 0 : el.nodeType) === Node.TEXT_NODE) {
return el.nextElementSibling;
}
return el;
}
return obj;
}
var keyCodes = Object.freeze({
enter: 13,
tab: 9,
delete: 46,
esc: 27,
space: 32,
up: 38,
down: 40,
left: 37,
right: 39,
end: 35,
home: 36,
del: 46,
backspace: 8,
insert: 45,
pageup: 33,
pagedown: 34,
shift: 16
});
var keyValues = Object.freeze({
enter: "Enter",
tab: "Tab",
delete: "Delete",
esc: "Escape",
space: "Space",
up: "ArrowUp",
down: "ArrowDown",
left: "ArrowLeft",
right: "ArrowRight",
end: "End",
home: "Home",
del: "Delete",
backspace: "Backspace",
insert: "Insert",
pageup: "PageUp",
pagedown: "PageDown",
shift: "Shift"
});
function has(obj, key) {
return key.every((k) => obj.hasOwnProperty(k));
}
function pick(obj, paths) {
const found = {};
for (const key of paths) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
found[key] = obj[key];
}
}
return found;
}
function omit(obj, exclude) {
const clone = {
...obj
};
exclude.forEach((prop) => delete clone[prop]);
return clone;
}
var onRE = /^on[^a-z]/;
var isOn = (key) => onRE.test(key);
function wrapInArray(v) {
return v == null ? [] : Array.isArray(v) ? v : [v];
}
function clamp(value) {
let min = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
let max = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
return Math.max(min, Math.min(max, value));
}
function padEnd(str, length) {
let char = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0";
return str + char.repeat(Math.max(0, length - str.length));
}
function padStart(str, length) {
let char = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0";
return char.repeat(Math.max(0, length - str.length)) + str;
}
function chunk(str) {
let size = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
const chunked = [];
let index = 0;
while (index < str.length) {
chunked.push(str.substr(index, size));
index += size;
}
return chunked;
}
function mergeDeep() {
let source = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
let target = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
let arrayFn = arguments.length > 2 ? arguments[2] : void 0;
const out = {};
for (const key in source) {
out[key] = source[key];
}
for (const key in target) {
const sourceProperty = source[key];
const targetProperty = target[key];
if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);
continue;
}
if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {
out[key] = arrayFn(sourceProperty, targetProperty);
continue;
}
out[key] = targetProperty;
}
return out;
}
function flattenFragments(nodes) {
return nodes.map((node) => {
if (node.type === Fragment) {
return flattenFragments(node.children);
} else {
return node;
}
}).flat();
}
function toKebabCase() {
let str = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
const kebab = str.replace(/[^a-z]/gi, "-").replace(/\B([A-Z])/g, "-$1").toLowerCase();
toKebabCase.cache.set(str, kebab);
return kebab;
}
toKebabCase.cache = /* @__PURE__ */ new Map();
function findChildrenWithProvide(key, vnode) {
if (!vnode || typeof vnode !== "object") return [];
if (Array.isArray(vnode)) {
return vnode.map((child) => findChildrenWithProvide(key, child)).flat(1);
} else if (vnode.suspense) {
return findChildrenWithProvide(key, vnode.ssContent);
} else if (Array.isArray(vnode.children)) {
return vnode.children.map((child) => findChildrenWithProvide(key, child)).flat(1);
} else if (vnode.component) {
if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) {
return [vnode.component];
} else if (vnode.component.subTree) {
return findChildrenWithProvide(key, vnode.component.subTree).flat(1);
}
}
return [];
}
var _arr = /* @__PURE__ */ new WeakMap();
var _pointer = /* @__PURE__ */ new WeakMap();
var CircularBuffer = class {
constructor(size) {
_classPrivateFieldInitSpec(this, _arr, []);
_classPrivateFieldInitSpec(this, _pointer, 0);
this.size = size;
}
get isFull() {
return _classPrivateFieldGet(_arr, this).length === this.size;
}
push(val) {
_classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;
_classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);
}
values() {
return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));
}
clear() {
_classPrivateFieldGet(_arr, this).length = 0;
_classPrivateFieldSet(_pointer, this, 0);
}
};
function destructComputed(getter) {
const refs = reactive({});
watchEffect(() => {
const base = getter();
for (const key in base) {
refs[key] = base[key];
}
}, {
flush: "sync"
});
const obj = {};
for (const key in refs) {
obj[key] = toRef(() => refs[key]);
}
return obj;
}
function includes(arr, val) {
return arr.includes(val);
}
function eventName(propName) {
return propName[2].toLowerCase() + propName.slice(3);
}
function hasEvent(props, name) {
name = "on" + capitalize(name);
return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);
}
function matchesSelector(el, selector) {
const supportsSelector = IN_BROWSER && typeof CSS !== "undefined" && typeof CSS.supports !== "undefined" && CSS.supports(`selector(${selector})`);
if (!supportsSelector) return null;
try {
return !!el && el.matches(selector);
} catch (err) {
return null;
}
}
function defer(timeout, cb) {
if (!IN_BROWSER || timeout === 0) {
cb();
return () => {
};
}
const timeoutId = window.setTimeout(cb, timeout);
return () => window.clearTimeout(timeoutId);
}
function templateRef() {
const el = shallowRef();
const fn = (target) => {
el.value = target;
};
Object.defineProperty(fn, "value", {
enumerable: true,
get: () => el.value,
set: (val) => el.value = val
});
Object.defineProperty(fn, "el", {
enumerable: true,
get: () => refElement(el.value)
});
return fn;
}
function onlyDefinedProps(props) {
const booleanAttributes = ["checked", "disabled"];
return Object.fromEntries(Object.entries(props).filter((_ref) => {
let [key, v] = _ref;
return booleanAttributes.includes(key) ? !!v : v !== void 0;
}));
}
// node_modules/vuetify/lib/util/getCurrentInstance.js
function getCurrentInstance2(name, message) {
const vm = getCurrentInstance();
if (!vm) {
throw new Error(`[Vuetify] ${name} ${message || "must be called from inside a setup function"}`);
}
return vm;
}
function getCurrentInstanceName() {
let name = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "composables";
const vm = getCurrentInstance2(name).type;
return toKebabCase((vm == null ? void 0 : vm.aliasName) || (vm == null ? void 0 : vm.name));
}
// node_modules/vuetify/lib/util/injectSelf.js
function injectSelf(key) {
let vm = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getCurrentInstance2("injectSelf");
const {
provides
} = vm;
if (provides && key in provides) {
return provides[key];
}
return void 0;
}
// node_modules/vuetify/lib/composables/defaults.js
var DefaultsSymbol = Symbol.for("vuetify:defaults");
function createDefaults(options) {
return ref(options);
}
function injectDefaults() {
const defaults = inject(DefaultsSymbol);
if (!defaults) throw new Error("[Vuetify] Could not find defaults instance");
return defaults;
}
function provideDefaults(defaults, options) {
const injectedDefaults = injectDefaults();
const providedDefaults = ref(defaults);
const newDefaults = computed(() => {
const disabled = unref(options == null ? void 0 : options.disabled);
if (disabled) return injectedDefaults.value;
const scoped = unref(options == null ? void 0 : options.scoped);
const reset = unref(options == null ? void 0 : options.reset);
const root = unref(options == null ? void 0 : options.root);
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
let properties = mergeDeep(providedDefaults.value, {
prev: injectedDefaults.value
});
if (scoped) return properties;
if (reset || root) {
const len = Number(reset || Infinity);
for (let i = 0; i <= len; i++) {
if (!properties || !("prev" in properties)) {
break;
}
properties = properties.prev;
}
if (properties && typeof root === "string" && root in properties) {
properties = mergeDeep(mergeDeep(properties, {
prev: properties
}), properties[root]);
}
return properties;
}
return properties.prev ? mergeDeep(properties.prev, properties) : properties;
});
provide(DefaultsSymbol, newDefaults);
return newDefaults;
}
function propIsDefined(vnode, prop) {
return vnode.props && (typeof vnode.props[prop] !== "undefined" || typeof vnode.props[toKebabCase(prop)] !== "undefined");
}
function internalUseDefaults() {
let props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
let name = arguments.length > 1 ? arguments[1] : void 0;
let defaults = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : injectDefaults();
const vm = getCurrentInstance2("useDefaults");
name = name ?? vm.type.name ?? vm.type.__name;
if (!name) {
throw new Error("[Vuetify] Could not determine component name");
}
const componentDefaults = computed(() => {
var _a;
return (_a = defaults.value) == null ? void 0 : _a[props._as ?? name];
});
const _props = new Proxy(props, {
get(target, prop) {
var _a, _b, _c, _d;
const propValue = Reflect.get(target, prop);
if (prop === "class" || prop === "style") {
return [(_a = componentDefaults.value) == null ? void 0 : _a[prop], propValue].filter((v) => v != null);
}
if (propIsDefined(vm.vnode, prop)) return propValue;
const _componentDefault = (_b = componentDefaults.value) == null ? void 0 : _b[prop];
if (_componentDefault !== void 0) return _componentDefault;
const _globalDefault = (_d = (_c = defaults.value) == null ? void 0 : _c.global) == null ? void 0 : _d[prop];
if (_globalDefault !== void 0) return _globalDefault;
return propValue;
}
});
const _subcomponentDefaults = shallowRef();
watchEffect(() => {
if (componentDefaults.value) {
const subComponents = Object.entries(componentDefaults.value).filter((_ref) => {
let [key] = _ref;
return key.startsWith(key[0].toUpperCase());
});
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : void 0;
} else {
_subcomponentDefaults.value = void 0;
}
});
function provideSubDefaults() {
const injected = injectSelf(DefaultsSymbol, vm);
provide(DefaultsSymbol, computed(() => {
return _subcomponentDefaults.value ? mergeDeep((injected == null ? void 0 : injected.value) ?? {}, _subcomponentDefaults.value) : injected == null ? void 0 : injected.value;
}));
}
return {
props: _props,
provideSubDefaults
};
}
function useDefaults() {
let props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
let name = arguments.length > 1 ? arguments[1] : void 0;
const {
props: _props,
provideSubDefaults
} = internalUseDefaults(props, name);
provideSubDefaults();
return _props;
}
// node_modules/vuetify/lib/util/console.js
function consoleWarn(message) {
warn(`Vuetify: ${message}`);
}
function consoleError(message) {
warn(`Vuetify error: ${message}`);
}
function deprecate(original, replacement) {
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map((s) => `'${s}'`).join(", ") + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
}
// node_modules/vuetify/lib/util/propsFactory.js
function propsFactory(props, source) {
return (defaults) => {
return Object.keys(props).reduce((obj, prop) => {
const isObjectDefinition = typeof props[prop] === "object" && props[prop] != null && !Array.isArray(props[prop]);
const definition = isObjectDefinition ? props[prop] : {
type: props[prop]
};
if (defaults && prop in defaults) {
obj[prop] = {
...definition,
default: defaults[prop]
};
} else {
obj[prop] = definition;
}
if (source && !obj[prop].source) {
obj[prop].source = source;
}
return obj;
}, {});
};
}
// node_modules/vuetify/lib/util/defineComponent.js
function defineComponent2(options) {
options._setup = options._setup ?? options.setup;
if (!options.name) {
consoleWarn("The component is missing an explicit name, unable to generate default prop value");
return options;
}
if (options._setup) {
options.props = propsFactory(options.props ?? {}, options.name)();
const propKeys = Object.keys(options.props).filter((key) => key !== "class" && key !== "style");
options.filterProps = function filterProps(props) {
return pick(props, propKeys);
};
options.props._as = String;
options.setup = function setup(props, ctx) {
const defaults = injectDefaults();
if (!defaults.value) return options._setup(props, ctx);
const {
props: _props,
provideSubDefaults
} = internalUseDefaults(props, props._as ?? options.name, defaults);
const setupBindings = options._setup(_props, ctx);
provideSubDefaults();
return setupBindings;
};
}
return options;
}
function genericComponent() {
let exposeDefaults = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
return (options) => (exposeDefaults ? defineComponent2 : defineComponent)(options);
}
// node_modules/vuetify/lib/util/anchor.js
var block = ["top", "bottom"];
var inline = ["start", "end", "left", "right"];
function parseAnchor(anchor, isRtl) {
let [side, align] = anchor.split(" ");
if (!align) {
align = includes(block, side) ? "start" : includes(inline, side) ? "top" : "center";
}
return {
side: toPhysical(side, isRtl),
align: toPhysical(align, isRtl)
};
}
function toPhysical(str, isRtl) {
if (str === "start") return isRtl ? "right" : "left";
if (str === "end") return isRtl ? "left" : "right";
return str;
}
function flipSide(anchor) {
return {
side: {
center: "center",
top: "bottom",
bottom: "top",
left: "right",
right: "left"
}[anchor.side],
align: anchor.align
};
}
function flipAlign(anchor) {
return {
side: anchor.side,
align: {
center: "center",
top: "bottom",
bottom: "top",
left: "right",
right: "left"
}[anchor.align]
};
}
function flipCorner(anchor) {
return {
side: anchor.align,
align: anchor.side
};
}
function getAxis(anchor) {
return includes(block, anchor.side) ? "y" : "x";
}
// node_modules/vuetify/lib/util/box.js
var Box = class {
constructor(_ref) {
let {
x,
y,
width,
height
} = _ref;
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
get top() {
return this.y;
}
get bottom() {
return this.y + this.height;
}
get left() {
return this.x;
}
get right() {
return this.x + this.width;
}
};
function getOverflow(a, b) {
return {
x: {
before: Math.max(0, b.left - a.left),
after: Math.max(0, a.right - b.right)
},
y: {
before: Math.max(0, b.top - a.top),
after: Math.max(0, a.bottom - b.bottom)
}
};
}
function getTargetBox(target) {
if (Array.isArray(target)) {
return new Box({
x: target[0],
y: target[1],
width: 0,
height: 0
});
} else {
return target.getBoundingClientRect();
}
}
function getElementBox(el) {
if (el === document.documentElement) {
if (!visualViewport) {
return new Box({
x: 0,
y: 0,
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight
});
} else {
return new Box({
x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
width: visualViewport.width * visualViewport.scale,
height: visualViewport.height * visualViewport.scale
});
}
} else {
const rect = el.getBoundingClientRect();
return new Box({
x: rect.x,
y: rect.y,
width: el.clientWidth,
height: el.clientHeight
});
}
}
// node_modules/vuetify/lib/util/animation.js
function nullifyTransforms(el) {
const rect = el.getBoundingClientRect();
const style = getComputedStyle(el);
const tx = style.transform;
if (tx) {
let ta, sx, sy, dx, dy;
if (tx.startsWith("matrix3d(")) {
ta = tx.slice(9, -1).split(/, /);
sx = Number(ta[0]);
sy = Number(ta[5]);
dx = Number(ta[12]);
dy = Number(ta[13]);
} else if (tx.startsWith("matrix(")) {
ta = tx.slice(7, -1).split(/, /);
sx = Number(ta[0]);
sy = Number(ta[3]);
dx = Number(ta[4]);
dy = Number(ta[5]);
} else {
return new Box(rect);
}
const to = style.transformOrigin;
const x = rect.x - dx - (1 - sx) * parseFloat(to);
const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(" ") + 1));
const w = sx ? rect.width / sx : el.offsetWidth + 1;
const h2 = sy ? rect.height / sy : el.offsetHeight + 1;
return new Box({
x,
y,
width: w,
height: h2
});
} else {
return new Box(rect);
}
}
function animate(el, keyframes, options) {
if (typeof el.animate === "undefined") return {
finished: Promise.resolve()
};
let animation;
try {
animation = el.animate(keyframes, options);
} catch (err) {
return {
finished: Promise.resolve()
};
}
if (typeof animation.finished === "undefined") {
animation.finished = new Promise((resolve) => {
animation.onfinish = () => {
resolve(animation);
};
});
}
return animation;
}
// node_modules/vuetify/lib/util/bindProps.js
var handlers = /* @__PURE__ */ new WeakMap();
function bindProps(el, props) {
Object.keys(props).forEach((k) => {
var _a;
if (isOn(k)) {
const name = eventName(k);
const handler = handlers.get(el);
if (props[k] == null) {
handler == null ? void 0 : handler.forEach((v) => {
const [n, fn] = v;
if (n === name) {
el.removeEventListener(name, fn);
handler.delete(v);
}
});
} else if (!handler || !((_a = [...handler]) == null ? void 0 : _a.some((v) => v[0] === name && v[1] === props[k]))) {
el.addEventListener(name, props[k]);
const _handler = handler || /* @__PURE__ */ new Set();
_handler.add([name, props[k]]);
if (!handlers.has(el)) handlers.set(el, _handler);
}
} else {
if (props[k] == null) {
el.removeAttribute(k);
} else {
el.setAttribute(k, props[k]);
}
}
});
}
function unbindProps(el, props) {
Object.keys(props).forEach((k) => {
if (isOn(k)) {
const name = eventName(k);
const handler = handlers.get(el);
handler == null ? void 0 : handler.forEach((v) => {
const [n, fn] = v;
if (n === name) {
el.removeEventListener(name, fn);
handler.delete(v);
}
});
} else {
el.removeAttribute(k);
}
});
}
// node_modules/vuetify/lib/util/color/APCA.js
var mainTRC = 2.4;
var Rco = 0.2126729;
var Gco = 0.7151522;
var Bco = 0.072175;
var normBG = 0.55;
var normTXT = 0.58;
var revTXT = 0.57;
var revBG = 0.62;
var blkThrs = 0.03;
var blkClmp = 1.45;
var deltaYmin = 5e-4;
var scaleBoW = 1.25;
var scaleWoB = 1.25;
var loConThresh = 0.078;
var loConFactor = 12.82051282051282;
var loConOffset = 0.06;
var loClip = 1e-3;
function APCAcontrast(text, background) {
const Rtxt = (text.r / 255) ** mainTRC;
const Gtxt = (text.g / 255) ** mainTRC;
const Btxt = (text.b / 255) ** mainTRC;
const Rbg = (background.r / 255) ** mainTRC;
const Gbg = (background.g / 255) ** mainTRC;
const Bbg = (background.b / 255) ** mainTRC;
let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;
let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;
if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;
if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;
if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0;
let outputContrast;
if (Ybg > Ytxt) {
const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;
outputContrast = SAPC < loClip ? 0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;
} else {
const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;
outputContrast = SAPC > -loClip ? 0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;
}
return outputContrast * 100;
}
// node_modules/vuetify/lib/util/color/transformCIELAB.js
var delta = 0.20689655172413793;
var cielabForwardTransform = (t) => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;
var cielabReverseTransform = (t) => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29);
function fromXYZ(xyz) {
const transform = cielabForwardTransform;
const transformedY = transform(xyz[1]);
return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))];
}
function toXYZ(lab) {
const transform = cielabReverseTransform;
const Ln = (lab[0] + 16) / 116;
return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883];
}
// node_modules/vuetify/lib/util/color/transformSRGB.js
var srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.204, 1.057]];
var srgbForwardTransform = (C) => C <= 31308e-7 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055;
var srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]];
var srgbReverseTransform = (C) => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4;
function fromXYZ2(xyz) {
const rgb = Array(3);
const transform = srgbForwardTransform;
const matrix = srgbForwardMatrix;
for (let i = 0; i < 3; ++i) {
rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);
}
return {
r: rgb[0],
g: rgb[1],
b: rgb[2]
};
}
function toXYZ2(_ref) {
let {
r,
g,
b
} = _ref;
const xyz = [0, 0, 0];
const transform = srgbReverseTransform;
const matrix = srgbReverseMatrix;
r = transform(r / 255);
g = transform(g / 255);
b = transform(b / 255);
for (let i = 0; i < 3; ++i) {
xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;
}
return xyz;
}
// node_modules/vuetify/lib/util/colorUtils.js
function isCssColor(color) {
return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
}
function isParsableColor(color) {
return isCssColor(color) && !/^((rgb|hsl)a?\()?var\(--/.test(color);
}
var cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
var mappers = {
rgb: (r, g, b, a) => ({
r,
g,
b,
a
}),
rgba: (r, g, b, a) => ({
r,
g,
b,
a
}),
hsl: (h2, s, l, a) => HSLtoRGB({
h: h2,
s,
l,
a
}),
hsla: (h2, s, l, a) => HSLtoRGB({
h: h2,
s,
l,
a
}),
hsv: (h2, s, v, a) => HSVtoRGB({
h: h2,
s,
v,
a
}),
hsva: (h2, s, v, a) => HSVtoRGB({
h: h2,
s,
v,
a
})
};
function parseColor(color) {
if (typeof color === "number") {
if (isNaN(color) || color < 0 || color > 16777215) {
consoleWarn(`'${color}' is not a valid hex color`);
}
return {
r: (color & 16711680) >> 16,
g: (color & 65280) >> 8,
b: color & 255
};
} else if (typeof color === "string" && cssColorRe.test(color)) {
const {
groups
} = color.match(cssColorRe);
const {
fn,
values
} = groups;
const realValues = values.split(/,\s*|\s*\/\s*|\s+/).map((v, i) => {
if (v.endsWith("%") || // unitless slv are %
i > 0 && i < 3 && ["hsl", "hsla", "hsv", "hsva"].includes(fn)) {
return parseFloat(v) / 100;
} else {
return parseFloat(v);
}
});
return mappers[fn](...realValues);
} else if (typeof color === "string") {
let hex = color.startsWith("#") ? color.slice(1) : color;
if ([3, 4].includes(hex.length)) {
hex = hex.split("").map((char) => char + char).join("");
} else if (![6, 8].includes(hex.length)) {
consoleWarn(`'${color}' is not a valid hex(a) color`);
}
const int = parseInt(hex, 16);
if (isNaN(int) || int < 0 || int > 4294967295) {
consoleWarn(`'${color}' is not a valid hex(a) color`);
}
return HexToRGB(hex);
} else if (typeof color === "object") {
if (has(color, ["r", "g", "b"])) {
return color;
} else if (has(color, ["h", "s", "l"])) {
return HSVtoRGB(HSLtoHSV(color));
} else if (has(color, ["h", "s", "v"])) {
return HSVtoRGB(color);
}
}
throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}
Expected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);
}
function HSVtoRGB(hsva) {
const {
h: h2,
s,
v,
a
} = hsva;
const f = (n) => {
const k = (n + h2 / 60) % 6;
return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);
};
const rgb = [f(5), f(3), f(1)].map((v2) => Math.round(v2 * 255));
return {
r: rgb[0],
g: rgb[1],
b: rgb[2],
a
};
}
function HSLtoRGB(hsla) {
return HSVtoRGB(HSLtoHSV(hsla));
}
function HSLtoHSV(hsl) {
const {
h: h2,
s,
l,
a
} = hsl;
const v = l + s * Math.min(l, 1 - l);
const sprime = v === 0 ? 0 : 2 - 2 * l / v;
return {
h: h2,
s: sprime,
v,
a
};
}
function toHex(v) {
const h2 = Math.round(v).toString(16);
return ("00".substr(0, 2 - h2.length) + h2).toUpperCase();
}
function RGBtoHex(_ref2) {
let {
r,
g,
b,
a
} = _ref2;
return `#${[toHex(r), toHex(g), toHex(b), a !== void 0 ? toHex(Math.round(a * 255)) : ""].join("")}`;
}
function HexToRGB(hex) {
hex = parseHex(hex);
let [r, g, b, a] = chunk(hex, 2).map((c) => parseInt(c, 16));
a = a === void 0 ? a : a / 255;
return {
r,
g,
b,
a
};
}
function parseHex(hex) {
if (hex.startsWith("#")) {
hex = hex.slice(1);
}
hex = hex.replace(/([^0-9a-f])/gi, "F");
if (hex.length === 3 || hex.length === 4) {
hex = hex.split("").map((x) => x + x).join("");
}
if (hex.length !== 6) {
hex = padEnd(padEnd(hex, 6), 8, "F");
}
return hex;
}
function lighten(value, amount) {
const lab = fromXYZ(toXYZ2(value));
lab[0] = lab[0] + amount * 10;
return fromXYZ2(toXYZ(lab));
}
function darken(value, amount) {
const lab = fromXYZ(toXYZ2(value));
lab[0] = lab[0] - amount * 10;
return fromXYZ2(toXYZ(lab));
}
function getLuma(color) {
const rgb = parseColor(color);
return toXYZ2(rgb)[1];
}
function getForeground(color) {
const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));
const whiteContrast = Math.abs(APCAcontrast(parseColor(16777215), parseColor(color)));
return whiteContrast > Math.min(blackContrast, 50) ? "#fff" : "#000";
}
// node_modules/vuetify/lib/composables/component.js
var makeComponentProps = propsFactory({
class: [String, Array, Object],
style: {
type: [String, Array, Object],
default: null
}
}, "component");
// node_modules/vuetify/lib/util/createSimpleFunctional.js
function createSimpleFunctional(klass) {
let tag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "div";
let name = arguments.length > 2 ? arguments[2] : void 0;
return genericComponent()({
name: name ?? capitalize(camelize(klass.replace(/__/g, "-"))),
props: {
tag: {
type: String,
default: tag
},
...makeComponentProps()
},
setup(props, _ref) {
let {
slots
} = _ref;
return () => {
var _a;
return h(props.tag, {
class: [klass, props.class],
style: props.style
}, (_a = slots.default) == null ? void 0 : _a.call(slots));
};
}
});
}
// node_modules/vuetify/lib/util/dom.js
function attachedRoot(node) {
if (typeof node.getRootNode !== "function") {
while (node.parentNode) node = node.parentNode;
if (node !== document) return null;
return document;
}
const root = node.getRootNode();
if (root !== document && root.getRootNode({
composed: true
}) !== document) return null;
return root;
}
// node_modules/vuetify/lib/util/easing.js
var standardEasing = "cubic-bezier(0.4, 0, 0.2, 1)";
var easingPatterns = {
linear: (t) => t,
easeInQuad: (t) => t ** 2,
easeOutQuad: (t) => t * (2 - t),
easeInOutQuad: (t) => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,
easeInCubic: (t) => t ** 3,
easeOutCubic: (t) => --t ** 3 + 1,
easeInOutCubic: (t) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
easeInQuart: (t) => t ** 4,
easeOutQuart: (t) => 1 - --t ** 4,
easeInOutQuart: (t) => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,
easeInQuint: (t) => t ** 5,
easeOutQuint: (t) => 1 + --t ** 5,
easeInOutQuint: (t) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5
};
// node_modules/vuetify/lib/util/getScrollParent.js
function getScrollParent(el) {
let includeHidden = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
while (el) {
if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el;
el = el.parentElement;
}
return document.scrollingElement;
}
function getScrollParents(el, stopAt) {
const elements = [];
if (stopAt && el && !stopAt.contains(el)) return elements;
while (el) {
if (hasScrollbar(el)) elements.push(el);
if (el === stopAt) break;
el = el.parentElement;
}
return elements;
}
function hasScrollbar(el) {
if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;
const style = window.getComputedStyle(el);
return style.overflowY === "scroll" || style.overflowY === "auto" && el.scrollHeight > el.clientHeight;
}
function isPotentiallyScrollable(el) {
if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;
const style = window.getComputedStyle(el);
return ["scroll", "auto"].includes(style.overflowY);
}
// node_modules/vuetify/lib/util/isFixedPosition.js
function isFixedPosition(el) {
while (el) {
if (window.getComputedStyle(el).position === "fixed") {
return true;
}
el = el.offsetParent;
}
return false;
}
// node_modules/vuetify/lib/util/useRender.js
function useRender(render) {
const vm = getCurrentInstance2("useRender");
vm.render = render;
}
export {
propsFactory,
makeComponentProps,
IN_BROWSER,
SUPPORTS_INTERSECTION,
SUPPORTS_TOUCH,
SUPPORTS_MATCH_MEDIA,
deepEqual,
getObjectValueByPath,
createRange,
convertToUnit,
isObject,
refElement,
omit,
wrapInArray,
clamp,
padStart,
mergeDeep,
flattenFragments,
toKebabCase,
findChildrenWithProvide,
CircularBuffer,
destructComputed,
includes,
hasEvent,
matchesSelector,
defer,
templateRef,
onlyDefinedProps,
parseAnchor,
flipSide,
flipAlign,
flipCorner,
getAxis,
Box,
getOverflow,
getTargetBox,
getElementBox,
nullifyTransforms,
animate,
bindProps,
unbindProps,
consoleWarn,
consoleError,
deprecate,
isCssColor,
isParsableColor,
parseColor,
RGBtoHex,
lighten,
darken,
getLuma,
getForeground,
getCurrentInstance2 as getCurrentInstance,
getCurrentInstanceName,
DefaultsSymbol,
createDefaults,
provideDefaults,
useDefaults,
defineComponent2 as defineComponent,
genericComponent,
createSimpleFunctional,
attachedRoot,
standardEasing,
easingPatterns,
getScrollParent,
getScrollParents,
hasScrollbar,
isFixedPosition,
useRender
};
//# sourceMappingURL=chunk-ADPJOAU6.js.map