pre-tailwind removal bc the snackbar ain't coloring right
This commit is contained in:
Binary file not shown.
Vendored
+2
@@ -1,2 +1,4 @@
|
||||
/// <reference types="vite/client" />
|
||||
/// <reference types="vite-plugin-vue-layouts-next/client" />
|
||||
|
||||
declare module '*.vue'
|
||||
-218
@@ -1,218 +0,0 @@
|
||||
import { C as vShow, Cn as withDirectives, Dt as mergeProps, U as computed, W as createBaseVNode, ar as normalizeClass, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { I as isObject, _ as convertToUnit, l as propsFactory, n as genericComponent, q as pickWithRest } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { r as useTextColor, t as useBackgroundColor } from "./color-B6vuQruj.js";
|
||||
import { a as useTheme, i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { n as IconValue } from "./icons-k2ZLE_i8.js";
|
||||
import { r as useLocale } from "./locale-DDGMqzqb.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { t as VDefaultsProvider } from "./VDefaultsProvider-C09t4-My.js";
|
||||
import { n as useDimension, t as makeDimensionProps } from "./dimensions-BDdmuRdK.js";
|
||||
import { t as VImg } from "./VImg-DaEUT7gG.js";
|
||||
import { n as useRounded, t as makeRoundedProps } from "./rounded-BuPGKRa9.js";
|
||||
import { n as makeTransitionProps, t as MaybeTransition } from "./transition-DqoZ8fA1.js";
|
||||
import { n as useBorder, t as makeBorderProps } from "./border-jCmRyoxP.js";
|
||||
import { n as useLocation, t as makeLocationProps } from "./location-BIKTnDF4.js";
|
||||
import { n as useDensity, t as makeDensityProps } from "./density-CpKZ5PhP.js";
|
||||
import { n as makeVariantProps, r as useVariant, t as genOverlays } from "./variant-CqXtG9Ih.js";
|
||||
import { n as makeSizeProps, r as useSize, t as VIcon } from "./VIcon-1CJH_3Uo.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VAvatar/VAvatar.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VBadge/VBadge.css";
|
||||
//#region node_modules/vuetify/lib/components/VBadge/VBadge.js
|
||||
var makeVBadgeProps = propsFactory({
|
||||
bordered: Boolean,
|
||||
color: String,
|
||||
content: [Number, String],
|
||||
dot: Boolean,
|
||||
dotSize: [Number, String],
|
||||
floating: Boolean,
|
||||
icon: IconValue,
|
||||
inline: Boolean,
|
||||
label: {
|
||||
type: String,
|
||||
default: "$vuetify.badge"
|
||||
},
|
||||
max: [Number, String],
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
offsetX: [Number, String],
|
||||
offsetY: [Number, String],
|
||||
textColor: String,
|
||||
...makeComponentProps(),
|
||||
...makeLocationProps({ location: "top end" }),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps(),
|
||||
...makeTransitionProps({ transition: "scale-rotate-transition" }),
|
||||
...makeDimensionProps()
|
||||
}, "VBadge");
|
||||
var VBadge = genericComponent()({
|
||||
name: "VBadge",
|
||||
inheritAttrs: false,
|
||||
props: makeVBadgeProps(),
|
||||
setup(props, ctx) {
|
||||
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
const { t } = useLocale();
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => props.textColor);
|
||||
const { themeClasses } = useTheme();
|
||||
const { locationStyles } = useLocation(props, true, (side) => {
|
||||
return (props.floating ? props.dot ? 2 : 4 : props.dot ? Number(props.dotSize ?? 8) : 12) + (["top", "bottom"].includes(side) ? Number(props.offsetY ?? 0) : ["left", "right"].includes(side) ? Number(props.offsetX ?? 0) : 0);
|
||||
});
|
||||
const { dimensionStyles } = useDimension(props);
|
||||
useRender(() => {
|
||||
const value = Number(props.content);
|
||||
const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
|
||||
const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, [
|
||||
"aria-atomic",
|
||||
"aria-label",
|
||||
"aria-live",
|
||||
"role",
|
||||
"title"
|
||||
]);
|
||||
return createVNode(props.tag, mergeProps({ "class": [
|
||||
"v-badge",
|
||||
{
|
||||
"v-badge--bordered": props.bordered,
|
||||
"v-badge--dot": props.dot,
|
||||
"v-badge--floating": props.floating,
|
||||
"v-badge--inline": props.inline
|
||||
},
|
||||
props.class
|
||||
] }, attrs, { "style": props.style }), { default: () => [createBaseVNode("div", { "class": "v-badge__wrapper" }, [ctx.slots.default?.(), createVNode(MaybeTransition, { "transition": props.transition }, { default: () => [withDirectives(createBaseVNode("span", mergeProps({
|
||||
"class": [
|
||||
"v-badge__badge",
|
||||
themeClasses.value,
|
||||
backgroundColorClasses.value,
|
||||
roundedClasses.value,
|
||||
textColorClasses.value
|
||||
],
|
||||
"style": [
|
||||
backgroundColorStyles.value,
|
||||
textColorStyles.value,
|
||||
dimensionStyles.value,
|
||||
props.inline ? {} : locationStyles.value,
|
||||
props.dot && props.dotSize ? {
|
||||
width: convertToUnit(props.dotSize),
|
||||
height: convertToUnit(props.dotSize)
|
||||
} : {}
|
||||
],
|
||||
"aria-atomic": "true",
|
||||
"aria-label": t(props.label, value),
|
||||
"aria-live": "polite",
|
||||
"role": "status"
|
||||
}, badgeAttrs), [props.dot ? void 0 : ctx.slots.badge ? ctx.slots.badge?.() : props.icon ? createVNode(VIcon, { "icon": props.icon }, null) : content]), [[vShow, props.modelValue]])] })])] });
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VAvatar/VAvatar.js
|
||||
var makeVAvatarProps = propsFactory({
|
||||
badge: {
|
||||
type: [Boolean, Object],
|
||||
default: false
|
||||
},
|
||||
start: Boolean,
|
||||
end: Boolean,
|
||||
icon: IconValue,
|
||||
image: String,
|
||||
text: String,
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeSizeProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps(),
|
||||
...makeVariantProps({ variant: "flat" })
|
||||
}, "VAvatar");
|
||||
var VAvatar = genericComponent()({
|
||||
name: "VAvatar",
|
||||
props: makeVAvatarProps(),
|
||||
setup(props, { slots }) {
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { borderClasses } = useBorder(props);
|
||||
const { colorClasses, colorStyles, variantClasses } = useVariant(props);
|
||||
const { densityClasses } = useDensity(props);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
const { sizeClasses, sizeStyles } = useSize(props);
|
||||
const badgeDotSize = computed(() => {
|
||||
switch (props.size) {
|
||||
case "x-small": return 8;
|
||||
case "small": return 10;
|
||||
case "large": return 14;
|
||||
case "x-large": return 16;
|
||||
default: return 12;
|
||||
}
|
||||
});
|
||||
const badgeOffset = computed(() => {
|
||||
const { floating } = isObject(props.badge) ? props.badge : {};
|
||||
return (floating ? badgeDotSize.value / 2 : 0) - 1.5;
|
||||
});
|
||||
const badgeProps = computed(() => {
|
||||
return {
|
||||
bordered: true,
|
||||
dot: !slots.badge,
|
||||
dotSize: badgeDotSize.value,
|
||||
offsetX: badgeOffset.value,
|
||||
offsetY: badgeOffset.value,
|
||||
color: typeof props.badge === "string" ? props.badge : "primary",
|
||||
...isObject(props.badge) ? props.badge : {}
|
||||
};
|
||||
});
|
||||
useRender(() => {
|
||||
const avatar = createVNode(props.tag, {
|
||||
"class": normalizeClass([
|
||||
"v-avatar",
|
||||
{
|
||||
"v-avatar--start": props.start,
|
||||
"v-avatar--end": props.end
|
||||
},
|
||||
themeClasses.value,
|
||||
borderClasses.value,
|
||||
colorClasses.value,
|
||||
densityClasses.value,
|
||||
roundedClasses.value,
|
||||
sizeClasses.value,
|
||||
variantClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
colorStyles.value,
|
||||
sizeStyles.value,
|
||||
props.style
|
||||
])
|
||||
}, { default: () => [!slots.default ? props.image ? createVNode(VImg, {
|
||||
"key": "image",
|
||||
"src": props.image,
|
||||
"alt": "",
|
||||
"cover": true
|
||||
}, null) : props.icon ? createVNode(VIcon, {
|
||||
"key": "icon",
|
||||
"icon": props.icon
|
||||
}, null) : props.text : createVNode(VDefaultsProvider, {
|
||||
"key": "content-defaults",
|
||||
"defaults": {
|
||||
VImg: {
|
||||
cover: true,
|
||||
src: props.image
|
||||
},
|
||||
VIcon: { icon: props.icon }
|
||||
}
|
||||
}, { default: () => [slots.default()] }), genOverlays(false, "v-avatar")] });
|
||||
return props.badge ? createVNode(VBadge, badgeProps.value, {
|
||||
default: () => avatar,
|
||||
badge: slots.badge
|
||||
}) : avatar;
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VAvatar as t };
|
||||
|
||||
//# sourceMappingURL=VAvatar-CA-KqvIX.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-318
@@ -1,318 +0,0 @@
|
||||
import { Cn as withDirectives, Dt as mergeProps, Ot as nextTick, Qn as toRef, U as computed, W as createBaseVNode, ar as normalizeClass, cr as toDisplayString, et as createVNode, gn as watch, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { a as provideDefaults, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { n as IconValue } from "./icons-k2ZLE_i8.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { t as VDefaultsProvider } from "./VDefaultsProvider-C09t4-My.js";
|
||||
import { n as useDimension, t as makeDimensionProps } from "./dimensions-BDdmuRdK.js";
|
||||
import { n as useRounded, t as makeRoundedProps } from "./rounded-BuPGKRa9.js";
|
||||
import { n as useBorder, t as makeBorderProps } from "./border-jCmRyoxP.js";
|
||||
import { n as useElevation, t as makeElevationProps } from "./elevation-B0TH2wU6.js";
|
||||
import { n as useLocation, t as makeLocationProps } from "./location-BIKTnDF4.js";
|
||||
import { n as useDensity, t as makeDensityProps } from "./density-CpKZ5PhP.js";
|
||||
import { n as makeVariantProps, r as useVariant, t as genOverlays } from "./variant-CqXtG9Ih.js";
|
||||
import { i as useGroupItem, n as makeGroupProps, r as useGroup, t as makeGroupItemProps } from "./group-Cm2viEWK.js";
|
||||
import { n as makeSizeProps, r as useSize, t as VIcon } from "./VIcon-1CJH_3Uo.js";
|
||||
import { n as makeLoaderProps, r as useLoader } from "./loader-CV4sMFhE.js";
|
||||
import { t as VProgressCircular } from "./VProgressCircular-yKv2qs75.js";
|
||||
import { n as usePosition, t as makePositionProps } from "./position-BCUsnxVO.js";
|
||||
import { r as useLink, t as makeRouterProps } from "./router-D_jP4Uwb.js";
|
||||
import { t as Ripple } from "./ripple-Z40rPDte.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VBtn/VBtn.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VBtnToggle/VBtnToggle.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VBtnGroup/VBtnGroup.css";
|
||||
//#region node_modules/vuetify/lib/components/VBtnGroup/VBtnGroup.js
|
||||
var makeVBtnGroupProps = propsFactory({
|
||||
baseColor: String,
|
||||
divided: Boolean,
|
||||
direction: {
|
||||
type: String,
|
||||
default: "horizontal"
|
||||
},
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeElevationProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps(),
|
||||
...makeVariantProps()
|
||||
}, "VBtnGroup");
|
||||
var VBtnGroup = genericComponent()({
|
||||
name: "VBtnGroup",
|
||||
props: makeVBtnGroupProps(),
|
||||
setup(props, { slots }) {
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { densityClasses } = useDensity(props);
|
||||
const { borderClasses } = useBorder(props);
|
||||
const { elevationClasses } = useElevation(props);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
provideDefaults({ VBtn: {
|
||||
height: toRef(() => props.direction === "horizontal" ? "auto" : null),
|
||||
baseColor: toRef(() => props.baseColor),
|
||||
color: toRef(() => props.color),
|
||||
density: toRef(() => props.density),
|
||||
flat: true,
|
||||
variant: toRef(() => props.variant)
|
||||
} });
|
||||
useRender(() => {
|
||||
return createVNode(props.tag, {
|
||||
"class": normalizeClass([
|
||||
"v-btn-group",
|
||||
`v-btn-group--${props.direction}`,
|
||||
{ "v-btn-group--divided": props.divided },
|
||||
themeClasses.value,
|
||||
borderClasses.value,
|
||||
densityClasses.value,
|
||||
elevationClasses.value,
|
||||
roundedClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle(props.style)
|
||||
}, slots);
|
||||
});
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VBtnToggle/VBtnToggle.js
|
||||
var VBtnToggleSymbol = Symbol.for("vuetify:v-btn-toggle");
|
||||
var makeVBtnToggleProps = propsFactory({
|
||||
...makeVBtnGroupProps(),
|
||||
...makeGroupProps()
|
||||
}, "VBtnToggle");
|
||||
genericComponent()({
|
||||
name: "VBtnToggle",
|
||||
props: makeVBtnToggleProps(),
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { slots }) {
|
||||
const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol);
|
||||
useRender(() => {
|
||||
const btnGroupProps = VBtnGroup.filterProps(props);
|
||||
return createVNode(VBtnGroup, mergeProps({ "class": ["v-btn-toggle", props.class] }, btnGroupProps, { "style": props.style }), { default: () => [slots.default?.({
|
||||
isSelected,
|
||||
next,
|
||||
prev,
|
||||
select,
|
||||
selected
|
||||
})] });
|
||||
});
|
||||
return {
|
||||
next,
|
||||
prev,
|
||||
select
|
||||
};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/selectLink.js
|
||||
function useSelectLink(link, select) {
|
||||
watch(() => link.isActive?.value, (isActive) => {
|
||||
if (link.isLink.value && isActive != null && select) nextTick(() => {
|
||||
select(isActive);
|
||||
});
|
||||
}, { immediate: true });
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VBtn/VBtn.js
|
||||
var makeVBtnProps = propsFactory({
|
||||
active: {
|
||||
type: Boolean,
|
||||
default: void 0
|
||||
},
|
||||
activeColor: String,
|
||||
baseColor: String,
|
||||
symbol: {
|
||||
type: null,
|
||||
default: VBtnToggleSymbol
|
||||
},
|
||||
flat: Boolean,
|
||||
icon: [
|
||||
Boolean,
|
||||
String,
|
||||
Function,
|
||||
Object
|
||||
],
|
||||
prependIcon: IconValue,
|
||||
appendIcon: IconValue,
|
||||
block: Boolean,
|
||||
readonly: Boolean,
|
||||
slim: Boolean,
|
||||
stacked: Boolean,
|
||||
spaced: String,
|
||||
ripple: {
|
||||
type: [Boolean, Object],
|
||||
default: true
|
||||
},
|
||||
text: {
|
||||
type: [
|
||||
String,
|
||||
Number,
|
||||
Boolean
|
||||
],
|
||||
default: void 0
|
||||
},
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeDimensionProps(),
|
||||
...makeElevationProps(),
|
||||
...makeGroupItemProps(),
|
||||
...makeLoaderProps(),
|
||||
...makeLocationProps(),
|
||||
...makePositionProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeRouterProps(),
|
||||
...makeSizeProps(),
|
||||
...makeTagProps({ tag: "button" }),
|
||||
...makeThemeProps(),
|
||||
...makeVariantProps({ variant: "elevated" })
|
||||
}, "VBtn");
|
||||
var VBtn = genericComponent()({
|
||||
name: "VBtn",
|
||||
props: makeVBtnProps(),
|
||||
emits: { "group:selected": (val) => true },
|
||||
setup(props, { attrs, slots }) {
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { borderClasses } = useBorder(props);
|
||||
const { densityClasses } = useDensity(props);
|
||||
const { dimensionStyles } = useDimension(props);
|
||||
const { elevationClasses } = useElevation(props);
|
||||
const { loaderClasses } = useLoader(props);
|
||||
const { locationStyles } = useLocation(props);
|
||||
const { positionClasses } = usePosition(props);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
const { sizeClasses, sizeStyles } = useSize(props);
|
||||
const group = useGroupItem(props, props.symbol, false);
|
||||
const link = useLink(props, attrs);
|
||||
const isActive = computed(() => {
|
||||
if (props.active !== void 0) return props.active;
|
||||
if (link.isRouterLink.value) return link.isActive?.value;
|
||||
return group?.isSelected.value;
|
||||
});
|
||||
const color = toRef(() => isActive.value ? props.activeColor ?? props.color : props.color);
|
||||
const { colorClasses, colorStyles, variantClasses } = useVariant(computed(() => {
|
||||
return {
|
||||
color: group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value ? color.value ?? props.baseColor : props.baseColor,
|
||||
variant: props.variant
|
||||
};
|
||||
}));
|
||||
const isDisabled = computed(() => group?.disabled.value || props.disabled);
|
||||
const isElevated = toRef(() => {
|
||||
return props.variant === "elevated" && !(props.disabled || props.flat || props.border);
|
||||
});
|
||||
const valueAttr = computed(() => {
|
||||
if (props.value === void 0 || typeof props.value === "symbol") return void 0;
|
||||
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
||||
});
|
||||
function onClick(e) {
|
||||
if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === "_blank")) return;
|
||||
if (link.isRouterLink.value) link.navigate.value?.(e);
|
||||
else group?.toggle();
|
||||
}
|
||||
useSelectLink(link, group?.select);
|
||||
useRender(() => {
|
||||
const Tag = link.isLink.value ? "a" : props.tag;
|
||||
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
||||
const hasAppend = !!(props.appendIcon || slots.append);
|
||||
const hasIcon = !!(props.icon && props.icon !== true);
|
||||
return withDirectives(createVNode(Tag, mergeProps(link.linkProps, {
|
||||
"type": Tag === "a" ? void 0 : "button",
|
||||
"class": [
|
||||
"v-btn",
|
||||
group?.selectedClass.value,
|
||||
{
|
||||
"v-btn--active": isActive.value,
|
||||
"v-btn--block": props.block,
|
||||
"v-btn--disabled": isDisabled.value,
|
||||
"v-btn--elevated": isElevated.value,
|
||||
"v-btn--flat": props.flat,
|
||||
"v-btn--icon": !!props.icon,
|
||||
"v-btn--loading": props.loading,
|
||||
"v-btn--readonly": props.readonly,
|
||||
"v-btn--slim": props.slim,
|
||||
"v-btn--stacked": props.stacked
|
||||
},
|
||||
props.spaced ? ["v-btn--spaced", `v-btn--spaced-${props.spaced}`] : [],
|
||||
themeClasses.value,
|
||||
borderClasses.value,
|
||||
colorClasses.value,
|
||||
densityClasses.value,
|
||||
elevationClasses.value,
|
||||
loaderClasses.value,
|
||||
positionClasses.value,
|
||||
roundedClasses.value,
|
||||
sizeClasses.value,
|
||||
variantClasses.value,
|
||||
props.class
|
||||
],
|
||||
"style": [
|
||||
colorStyles.value,
|
||||
dimensionStyles.value,
|
||||
locationStyles.value,
|
||||
sizeStyles.value,
|
||||
props.style
|
||||
],
|
||||
"aria-busy": props.loading ? true : void 0,
|
||||
"disabled": isDisabled.value && Tag !== "a" || void 0,
|
||||
"tabindex": props.loading || props.readonly ? -1 : void 0,
|
||||
"onClick": onClick,
|
||||
"value": valueAttr.value
|
||||
}), { default: () => [
|
||||
genOverlays(true, "v-btn"),
|
||||
!props.icon && hasPrepend && createBaseVNode("span", {
|
||||
"key": "prepend",
|
||||
"class": "v-btn__prepend"
|
||||
}, [!slots.prepend ? createVNode(VIcon, {
|
||||
"key": "prepend-icon",
|
||||
"icon": props.prependIcon
|
||||
}, null) : createVNode(VDefaultsProvider, {
|
||||
"key": "prepend-defaults",
|
||||
"disabled": !props.prependIcon,
|
||||
"defaults": { VIcon: { icon: props.prependIcon } }
|
||||
}, slots.prepend)]),
|
||||
createBaseVNode("span", {
|
||||
"class": "v-btn__content",
|
||||
"data-no-activator": ""
|
||||
}, [!slots.default && hasIcon ? createVNode(VIcon, {
|
||||
"key": "content-icon",
|
||||
"icon": props.icon
|
||||
}, null) : createVNode(VDefaultsProvider, {
|
||||
"key": "content-defaults",
|
||||
"disabled": !hasIcon,
|
||||
"defaults": { VIcon: { icon: props.icon } }
|
||||
}, { default: () => [slots.default?.() ?? toDisplayString(props.text)] })]),
|
||||
!props.icon && hasAppend && createBaseVNode("span", {
|
||||
"key": "append",
|
||||
"class": "v-btn__append"
|
||||
}, [!slots.append ? createVNode(VIcon, {
|
||||
"key": "append-icon",
|
||||
"icon": props.appendIcon
|
||||
}, null) : createVNode(VDefaultsProvider, {
|
||||
"key": "append-defaults",
|
||||
"disabled": !props.appendIcon,
|
||||
"defaults": { VIcon: { icon: props.appendIcon } }
|
||||
}, slots.append)]),
|
||||
!!props.loading && createBaseVNode("span", {
|
||||
"key": "loader",
|
||||
"class": "v-btn__loader"
|
||||
}, [slots.loader?.() ?? createVNode(VProgressCircular, {
|
||||
"color": typeof props.loading === "boolean" ? void 0 : props.loading,
|
||||
"indeterminate": true,
|
||||
"width": "2"
|
||||
}, null)])
|
||||
] }), [[
|
||||
Ripple,
|
||||
!isDisabled.value && props.ripple,
|
||||
"",
|
||||
{ center: !!props.icon }
|
||||
]]);
|
||||
});
|
||||
return { group };
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { makeVBtnProps as n, VBtn as t };
|
||||
|
||||
//# sourceMappingURL=VBtn-BZzD9gwE.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-28
@@ -1,28 +0,0 @@
|
||||
import { $n as toRefs } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { a as provideDefaults, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.js
|
||||
var makeVDefaultsProviderProps = propsFactory({
|
||||
defaults: Object,
|
||||
disabled: Boolean,
|
||||
reset: [Number, String],
|
||||
root: [Boolean, String],
|
||||
scoped: Boolean
|
||||
}, "VDefaultsProvider");
|
||||
var VDefaultsProvider = genericComponent(false)({
|
||||
name: "VDefaultsProvider",
|
||||
props: makeVDefaultsProviderProps(),
|
||||
setup(props, { slots }) {
|
||||
const { defaults, disabled, reset, root, scoped } = toRefs(props);
|
||||
provideDefaults(defaults, {
|
||||
reset,
|
||||
root,
|
||||
scoped,
|
||||
disabled
|
||||
});
|
||||
return () => slots.default?.();
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VDefaultsProvider as t };
|
||||
|
||||
//# sourceMappingURL=VDefaultsProvider-C09t4-My.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"VDefaultsProvider-C09t4-My.js","names":[],"sources":["../../vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.js"],"sourcesContent":["// Composables\nimport { provideDefaults } from \"../../composables/defaults.js\"; // Utilities\nimport { toRefs } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.js\"; // Types\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean\n}, 'VDefaultsProvider');\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n props: makeVDefaultsProviderProps(),\n setup(props, {\n slots\n }) {\n const {\n defaults,\n disabled,\n reset,\n root,\n scoped\n } = toRefs(props);\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled\n });\n return () => slots.default?.();\n }\n});\n//# sourceMappingURL=VDefaultsProvider.js.map"],"mappings":";;;AAIA,IAAa,6BAA6B,aAAa;CACrD,UAAU;CACV,UAAU;CACV,OAAO,CAAC,QAAQ,OAAO;CACvB,MAAM,CAAC,SAAS,OAAO;CACvB,QAAQ;CACT,EAAE,oBAAoB;AACvB,IAAa,oBAAoB,iBAAiB,MAAM,CAAC;CACvD,MAAM;CACN,OAAO,4BAA4B;CACnC,MAAM,OAAO,EACX,SACC;EACD,MAAM,EACJ,UACA,UACA,OACA,MACA,WACE,OAAO,MAAM;AACjB,kBAAgB,UAAU;GACxB;GACA;GACA;GACA;GACD,CAAC;AACF,eAAa,MAAM,WAAW;;CAEjC,CAAC"}
|
||||
-100
@@ -1,100 +0,0 @@
|
||||
import { Qn as toRef, U as computed, W as createBaseVNode, ar as normalizeClass, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { _ as convertToUnit, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { r as useTextColor } from "./color-B6vuQruj.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VDivider/VDivider.css";
|
||||
//#region node_modules/vuetify/lib/components/VDivider/VDivider.js
|
||||
var allowedVariants = [
|
||||
"dotted",
|
||||
"dashed",
|
||||
"solid",
|
||||
"double"
|
||||
];
|
||||
var makeVDividerProps = propsFactory({
|
||||
color: String,
|
||||
contentOffset: [
|
||||
Number,
|
||||
String,
|
||||
Array
|
||||
],
|
||||
gradient: Boolean,
|
||||
inset: Boolean,
|
||||
length: [Number, String],
|
||||
opacity: [Number, String],
|
||||
thickness: [Number, String],
|
||||
vertical: Boolean,
|
||||
variant: {
|
||||
type: String,
|
||||
default: "solid",
|
||||
validator: (v) => allowedVariants.includes(v)
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeThemeProps()
|
||||
}, "VDivider");
|
||||
var VDivider = genericComponent()({
|
||||
name: "VDivider",
|
||||
props: makeVDividerProps(),
|
||||
setup(props, { attrs, slots }) {
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => props.color);
|
||||
const dividerStyles = computed(() => {
|
||||
const styles = {};
|
||||
if (props.length) styles[props.vertical ? "height" : "width"] = convertToUnit(props.length);
|
||||
if (props.thickness) styles[props.vertical ? "borderRightWidth" : "borderTopWidth"] = convertToUnit(props.thickness);
|
||||
return styles;
|
||||
});
|
||||
const contentStyles = toRef(() => {
|
||||
const margin = Array.isArray(props.contentOffset) ? props.contentOffset[0] : props.contentOffset;
|
||||
const shift = Array.isArray(props.contentOffset) ? props.contentOffset[1] : 0;
|
||||
return {
|
||||
marginBlock: props.vertical && margin ? convertToUnit(margin) : void 0,
|
||||
marginInline: !props.vertical && margin ? convertToUnit(margin) : void 0,
|
||||
transform: shift ? `translate${props.vertical ? "X" : "Y"}(${convertToUnit(shift)})` : void 0
|
||||
};
|
||||
});
|
||||
useRender(() => {
|
||||
const divider = createBaseVNode("hr", {
|
||||
"class": normalizeClass([
|
||||
{
|
||||
"v-divider": true,
|
||||
"v-divider--gradient": props.gradient && !slots.default,
|
||||
"v-divider--inset": props.inset,
|
||||
"v-divider--vertical": props.vertical
|
||||
},
|
||||
themeClasses.value,
|
||||
textColorClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
dividerStyles.value,
|
||||
textColorStyles.value,
|
||||
{ "--v-border-opacity": props.opacity },
|
||||
{ "border-style": props.variant },
|
||||
props.style
|
||||
]),
|
||||
"aria-orientation": !attrs.role || attrs.role === "separator" ? props.vertical ? "vertical" : "horizontal" : void 0,
|
||||
"role": `${attrs.role || "separator"}`
|
||||
}, null);
|
||||
if (!slots.default) return divider;
|
||||
return createBaseVNode("div", { "class": normalizeClass(["v-divider__wrapper", {
|
||||
"v-divider__wrapper--gradient": props.gradient,
|
||||
"v-divider__wrapper--inset": props.inset,
|
||||
"v-divider__wrapper--vertical": props.vertical
|
||||
}]) }, [
|
||||
divider,
|
||||
createBaseVNode("div", {
|
||||
"class": "v-divider__content",
|
||||
"style": normalizeStyle(contentStyles.value)
|
||||
}, [slots.default()]),
|
||||
divider
|
||||
]);
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VDivider as t };
|
||||
|
||||
//# sourceMappingURL=VDivider-BJiijT0J.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-103
@@ -1,103 +0,0 @@
|
||||
import { L as Text, Yn as shallowRef, ar as normalizeClass, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { E as flattenFragments, P as includes, _ as convertToUnit, c as getCurrentInstanceName, l as propsFactory, n as genericComponent, x as destructComputed } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { r as useTextColor } from "./color-B6vuQruj.js";
|
||||
import { a as useTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { n as IconValue, s as useIcon } from "./icons-k2ZLE_i8.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VIcon/VIcon.css";
|
||||
//#region node_modules/vuetify/lib/composables/size.js
|
||||
var predefinedSizes = [
|
||||
"x-small",
|
||||
"small",
|
||||
"default",
|
||||
"large",
|
||||
"x-large"
|
||||
];
|
||||
var makeSizeProps = propsFactory({ size: {
|
||||
type: [String, Number],
|
||||
default: "default"
|
||||
} }, "size");
|
||||
function useSize(props, name = getCurrentInstanceName()) {
|
||||
return destructComputed(() => {
|
||||
const size = props.size;
|
||||
let sizeClasses;
|
||||
let sizeStyles;
|
||||
if (includes(predefinedSizes, size)) sizeClasses = `${name}--size-${size}`;
|
||||
else if (size) sizeStyles = {
|
||||
width: convertToUnit(size),
|
||||
height: convertToUnit(size)
|
||||
};
|
||||
return {
|
||||
sizeClasses,
|
||||
sizeStyles
|
||||
};
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VIcon/VIcon.js
|
||||
var makeVIconProps = propsFactory({
|
||||
color: String,
|
||||
disabled: Boolean,
|
||||
start: Boolean,
|
||||
end: Boolean,
|
||||
icon: IconValue,
|
||||
opacity: [String, Number],
|
||||
...makeComponentProps(),
|
||||
...makeSizeProps(),
|
||||
...makeTagProps({ tag: "i" }),
|
||||
...makeThemeProps()
|
||||
}, "VIcon");
|
||||
var VIcon = genericComponent()({
|
||||
name: "VIcon",
|
||||
props: makeVIconProps(),
|
||||
setup(props, { attrs, slots }) {
|
||||
const slotIcon = shallowRef();
|
||||
const { themeClasses } = useTheme();
|
||||
const { iconData } = useIcon(() => slotIcon.value || props.icon);
|
||||
const { sizeClasses } = useSize(props);
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => props.color);
|
||||
useRender(() => {
|
||||
const slotValue = slots.default?.();
|
||||
if (slotValue) slotIcon.value = flattenFragments(slotValue).filter((node) => node.type === Text && node.children && typeof node.children === "string")[0]?.children;
|
||||
const hasClick = !!(attrs.onClick || attrs.onClickOnce);
|
||||
return createVNode(iconData.value.component, {
|
||||
"tag": props.tag,
|
||||
"icon": iconData.value.icon,
|
||||
"class": normalizeClass([
|
||||
"v-icon",
|
||||
"notranslate",
|
||||
themeClasses.value,
|
||||
sizeClasses.value,
|
||||
textColorClasses.value,
|
||||
{
|
||||
"v-icon--clickable": hasClick,
|
||||
"v-icon--disabled": props.disabled,
|
||||
"v-icon--start": props.start,
|
||||
"v-icon--end": props.end
|
||||
},
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
{ "--v-icon-opacity": props.opacity },
|
||||
!sizeClasses.value ? {
|
||||
fontSize: convertToUnit(props.size),
|
||||
height: convertToUnit(props.size),
|
||||
width: convertToUnit(props.size)
|
||||
} : void 0,
|
||||
textColorStyles.value,
|
||||
props.style
|
||||
]),
|
||||
"role": hasClick ? "button" : void 0,
|
||||
"aria-hidden": !hasClick,
|
||||
"tabindex": hasClick ? props.disabled ? -1 : 0 : void 0
|
||||
}, { default: () => [slotValue] });
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { makeSizeProps as n, useSize as r, VIcon as t };
|
||||
|
||||
//# sourceMappingURL=VIcon-1CJH_3Uo.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-363
@@ -1,363 +0,0 @@
|
||||
import { At as onBeforeMount, C as vShow, Cn as withDirectives, Dt as mergeProps, Kn as ref, M as Fragment, Ot as nextTick, Qn as toRef, U as computed, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, et as createVNode, gn as watch, jt as onBeforeUnmount, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { _ as convertToUnit, et as SUPPORTS_INTERSECTION, l as propsFactory, n as genericComponent, s as getCurrentInstance, w as filterInputAttrs } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { t as useBackgroundColor } from "./color-B6vuQruj.js";
|
||||
import { n as useDimension, t as makeDimensionProps } from "./dimensions-BDdmuRdK.js";
|
||||
import { n as useRounded, t as makeRoundedProps } from "./rounded-BuPGKRa9.js";
|
||||
import { n as makeTransitionProps, t as MaybeTransition } from "./transition-DqoZ8fA1.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VImg/VImg.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VResponsive/VResponsive.css";
|
||||
//#region node_modules/vuetify/lib/components/VResponsive/VResponsive.js
|
||||
function useAspectStyles(props) {
|
||||
return { aspectStyles: computed(() => {
|
||||
const ratio = Number(props.aspectRatio);
|
||||
return ratio ? { paddingBottom: String(1 / ratio * 100) + "%" } : void 0;
|
||||
}) };
|
||||
}
|
||||
var makeVResponsiveProps = propsFactory({
|
||||
aspectRatio: [String, Number],
|
||||
contentClass: null,
|
||||
inline: Boolean,
|
||||
...makeComponentProps(),
|
||||
...makeDimensionProps()
|
||||
}, "VResponsive");
|
||||
var VResponsive = genericComponent()({
|
||||
name: "VResponsive",
|
||||
props: makeVResponsiveProps(),
|
||||
setup(props, { slots }) {
|
||||
const { aspectStyles } = useAspectStyles(props);
|
||||
const { dimensionStyles } = useDimension(props);
|
||||
useRender(() => createBaseVNode("div", {
|
||||
"class": normalizeClass([
|
||||
"v-responsive",
|
||||
{ "v-responsive--inline": props.inline },
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([dimensionStyles.value, props.style])
|
||||
}, [
|
||||
createBaseVNode("div", {
|
||||
"class": "v-responsive__sizer",
|
||||
"style": normalizeStyle(aspectStyles.value)
|
||||
}, null),
|
||||
slots.additional?.(),
|
||||
slots.default && createBaseVNode("div", { "class": normalizeClass(["v-responsive__content", props.contentClass]) }, [slots.default()])
|
||||
]));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/directives/intersect/index.js
|
||||
function mounted(el, binding) {
|
||||
if (!SUPPORTS_INTERSECTION) return;
|
||||
const modifiers = binding.modifiers || {};
|
||||
const value = binding.value;
|
||||
const { handler, options } = typeof value === "object" ? value : {
|
||||
handler: value,
|
||||
options: {}
|
||||
};
|
||||
const observer = new IntersectionObserver((entries = [], observer) => {
|
||||
const _observe = el._observe?.[binding.instance.$.uid];
|
||||
if (!_observe) return;
|
||||
const isIntersecting = entries.some((entry) => entry.isIntersecting);
|
||||
if (handler && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) handler(isIntersecting, entries, observer);
|
||||
if (isIntersecting && modifiers.once) unmounted(el, binding);
|
||||
else _observe.init = true;
|
||||
}, options);
|
||||
el._observe = Object(el._observe);
|
||||
el._observe[binding.instance.$.uid] = {
|
||||
init: false,
|
||||
observer
|
||||
};
|
||||
observer.observe(el);
|
||||
}
|
||||
function unmounted(el, binding) {
|
||||
const observe = el._observe?.[binding.instance.$.uid];
|
||||
if (!observe) return;
|
||||
observe.observer.unobserve(el);
|
||||
delete el._observe[binding.instance.$.uid];
|
||||
}
|
||||
var Intersect = {
|
||||
mounted,
|
||||
unmounted,
|
||||
updated: (el, binding) => {
|
||||
if (el._observe?.[binding.instance.$.uid]) {
|
||||
unmounted(el, binding);
|
||||
mounted(el, binding);
|
||||
}
|
||||
}
|
||||
};
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VImg/VImg.js
|
||||
var makeVImgProps = propsFactory({
|
||||
absolute: Boolean,
|
||||
alt: String,
|
||||
cover: Boolean,
|
||||
color: String,
|
||||
draggable: {
|
||||
type: [Boolean, String],
|
||||
default: void 0
|
||||
},
|
||||
eager: Boolean,
|
||||
gradient: String,
|
||||
imageClass: null,
|
||||
lazySrc: String,
|
||||
options: {
|
||||
type: Object,
|
||||
default: () => ({
|
||||
root: void 0,
|
||||
rootMargin: void 0,
|
||||
threshold: void 0
|
||||
})
|
||||
},
|
||||
sizes: String,
|
||||
src: {
|
||||
type: [String, Object],
|
||||
default: ""
|
||||
},
|
||||
crossorigin: String,
|
||||
referrerpolicy: String,
|
||||
srcset: String,
|
||||
position: String,
|
||||
...makeVResponsiveProps(),
|
||||
...makeComponentProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTransitionProps()
|
||||
}, "VImg");
|
||||
var VImg = genericComponent()({
|
||||
name: "VImg",
|
||||
directives: { vIntersect: Intersect },
|
||||
inheritAttrs: false,
|
||||
props: makeVImgProps(),
|
||||
emits: {
|
||||
loadstart: (value) => true,
|
||||
load: (value) => true,
|
||||
error: (value) => true
|
||||
},
|
||||
setup(props, { attrs, emit, slots }) {
|
||||
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
const vm = getCurrentInstance("VImg");
|
||||
const currentSrc = shallowRef("");
|
||||
const image = ref();
|
||||
const state = shallowRef(props.eager ? "loading" : "idle");
|
||||
const naturalWidth = shallowRef();
|
||||
const naturalHeight = shallowRef();
|
||||
const normalisedSrc = computed(() => {
|
||||
return props.src && typeof props.src === "object" ? {
|
||||
src: props.src.src,
|
||||
srcset: props.srcset || props.src.srcset,
|
||||
lazySrc: props.lazySrc || props.src.lazySrc,
|
||||
aspect: Number(props.aspectRatio || props.src.aspect || 0)
|
||||
} : {
|
||||
src: props.src,
|
||||
srcset: props.srcset,
|
||||
lazySrc: props.lazySrc,
|
||||
aspect: Number(props.aspectRatio || 0)
|
||||
};
|
||||
});
|
||||
const aspectRatio = computed(() => {
|
||||
return normalisedSrc.value.aspect || naturalWidth.value / naturalHeight.value || 0;
|
||||
});
|
||||
watch(() => props.src, () => {
|
||||
init(state.value !== "idle");
|
||||
});
|
||||
watch(aspectRatio, (val, oldVal) => {
|
||||
if (!val && oldVal && image.value) pollForSize(image.value);
|
||||
});
|
||||
onBeforeMount(() => init());
|
||||
function init(isIntersecting) {
|
||||
if (props.eager && isIntersecting) return;
|
||||
if (SUPPORTS_INTERSECTION && !isIntersecting && !props.eager) return;
|
||||
state.value = "loading";
|
||||
if (normalisedSrc.value.lazySrc) {
|
||||
const lazyImg = new Image();
|
||||
lazyImg.src = normalisedSrc.value.lazySrc;
|
||||
pollForSize(lazyImg, null);
|
||||
}
|
||||
if (!normalisedSrc.value.src) return;
|
||||
nextTick(() => {
|
||||
emit("loadstart", image.value?.currentSrc || normalisedSrc.value.src);
|
||||
setTimeout(() => {
|
||||
if (vm.isUnmounted) return;
|
||||
if (image.value?.complete) {
|
||||
if (!image.value.naturalWidth) onError();
|
||||
if (state.value === "error") return;
|
||||
if (!aspectRatio.value) pollForSize(image.value, null);
|
||||
if (state.value === "loading") onLoad();
|
||||
} else {
|
||||
if (!aspectRatio.value) pollForSize(image.value);
|
||||
getSrc();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
function onLoad() {
|
||||
if (vm.isUnmounted) return;
|
||||
getSrc();
|
||||
pollForSize(image.value);
|
||||
state.value = "loaded";
|
||||
emit("load", image.value?.currentSrc || normalisedSrc.value.src);
|
||||
}
|
||||
function onError() {
|
||||
if (vm.isUnmounted) return;
|
||||
state.value = "error";
|
||||
emit("error", image.value?.currentSrc || normalisedSrc.value.src);
|
||||
}
|
||||
function getSrc() {
|
||||
const img = image.value;
|
||||
if (img) currentSrc.value = img.currentSrc || img.src;
|
||||
}
|
||||
let timer = -1;
|
||||
onBeforeUnmount(() => {
|
||||
clearTimeout(timer);
|
||||
});
|
||||
function pollForSize(img, timeout = 100) {
|
||||
const poll = () => {
|
||||
clearTimeout(timer);
|
||||
if (vm.isUnmounted) return;
|
||||
const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img;
|
||||
if (imgHeight || imgWidth) {
|
||||
naturalWidth.value = imgWidth;
|
||||
naturalHeight.value = imgHeight;
|
||||
} else if (!img.complete && state.value === "loading" && timeout != null) timer = window.setTimeout(poll, timeout);
|
||||
else if (img.currentSrc.endsWith(".svg") || img.currentSrc.startsWith("data:image/svg+xml")) {
|
||||
naturalWidth.value = 1;
|
||||
naturalHeight.value = 1;
|
||||
}
|
||||
};
|
||||
poll();
|
||||
}
|
||||
const containClasses = toRef(() => ({
|
||||
"v-img__img--cover": props.cover,
|
||||
"v-img__img--contain": !props.cover
|
||||
}));
|
||||
const __image = () => {
|
||||
if (!normalisedSrc.value.src || state.value === "idle") return null;
|
||||
const img = createBaseVNode("img", {
|
||||
"class": normalizeClass([
|
||||
"v-img__img",
|
||||
containClasses.value,
|
||||
props.imageClass
|
||||
]),
|
||||
"style": { objectPosition: props.position },
|
||||
"crossorigin": props.crossorigin,
|
||||
"src": normalisedSrc.value.src,
|
||||
"srcset": normalisedSrc.value.srcset,
|
||||
"alt": props.alt,
|
||||
"referrerpolicy": props.referrerpolicy,
|
||||
"draggable": props.draggable,
|
||||
"sizes": props.sizes,
|
||||
"ref": image,
|
||||
"onLoad": onLoad,
|
||||
"onError": onError
|
||||
}, null);
|
||||
const sources = slots.sources?.();
|
||||
return createVNode(MaybeTransition, {
|
||||
"transition": props.transition,
|
||||
"appear": true
|
||||
}, { default: () => [withDirectives(sources ? createBaseVNode("picture", { "class": "v-img__picture" }, [sources, img]) : img, [[vShow, state.value === "loaded"]])] });
|
||||
};
|
||||
const __preloadImage = () => createVNode(MaybeTransition, { "transition": props.transition }, { default: () => [normalisedSrc.value.lazySrc && state.value !== "loaded" && createBaseVNode("img", {
|
||||
"class": normalizeClass([
|
||||
"v-img__img",
|
||||
"v-img__img--preload",
|
||||
containClasses.value
|
||||
]),
|
||||
"style": { objectPosition: props.position },
|
||||
"crossorigin": props.crossorigin,
|
||||
"src": normalisedSrc.value.lazySrc,
|
||||
"alt": props.alt,
|
||||
"referrerpolicy": props.referrerpolicy,
|
||||
"draggable": props.draggable
|
||||
}, null)] });
|
||||
const __placeholder = () => {
|
||||
if (!slots.placeholder) return null;
|
||||
return createVNode(MaybeTransition, {
|
||||
"transition": props.transition,
|
||||
"appear": true
|
||||
}, { default: () => [(state.value === "loading" || state.value === "error" && !slots.error) && createBaseVNode("div", { "class": "v-img__placeholder" }, [slots.placeholder()])] });
|
||||
};
|
||||
const __error = () => {
|
||||
if (!slots.error) return null;
|
||||
return createVNode(MaybeTransition, {
|
||||
"transition": props.transition,
|
||||
"appear": true
|
||||
}, { default: () => [state.value === "error" && createBaseVNode("div", { "class": "v-img__error" }, [slots.error()])] });
|
||||
};
|
||||
const __gradient = () => {
|
||||
if (!props.gradient) return null;
|
||||
return createBaseVNode("div", {
|
||||
"class": "v-img__gradient",
|
||||
"style": { backgroundImage: `linear-gradient(${props.gradient})` }
|
||||
}, null);
|
||||
};
|
||||
const isBooted = shallowRef(false);
|
||||
{
|
||||
const stop = watch(aspectRatio, (val) => {
|
||||
if (val) {
|
||||
requestAnimationFrame(() => {
|
||||
requestAnimationFrame(() => {
|
||||
isBooted.value = true;
|
||||
});
|
||||
});
|
||||
stop();
|
||||
}
|
||||
});
|
||||
}
|
||||
useRender(() => {
|
||||
const responsiveProps = VResponsive.filterProps(props);
|
||||
const [rootAttrs, imageAttrs] = filterInputAttrs(attrs);
|
||||
return withDirectives(createVNode(VResponsive, mergeProps({
|
||||
"class": [
|
||||
"v-img",
|
||||
{
|
||||
"v-img--absolute": props.absolute,
|
||||
"v-img--booting": !isBooted.value,
|
||||
"v-img--fit-content": props.width === "fit-content"
|
||||
},
|
||||
backgroundColorClasses.value,
|
||||
roundedClasses.value,
|
||||
props.class
|
||||
],
|
||||
"style": [
|
||||
{ width: convertToUnit(props.width === "auto" ? naturalWidth.value : props.width) },
|
||||
backgroundColorStyles.value,
|
||||
props.style
|
||||
]
|
||||
}, responsiveProps, rootAttrs, {
|
||||
"aspectRatio": aspectRatio.value,
|
||||
"aria-label": props.alt,
|
||||
"role": props.alt ? "img" : void 0
|
||||
}), {
|
||||
additional: () => createBaseVNode(Fragment, null, [
|
||||
createVNode(__image, imageAttrs, null),
|
||||
createVNode(__preloadImage, null, null),
|
||||
createVNode(__gradient, null, null),
|
||||
createVNode(__placeholder, null, null),
|
||||
createVNode(__error, null, null)
|
||||
]),
|
||||
default: slots.default
|
||||
}), [[
|
||||
Intersect,
|
||||
{
|
||||
handler: init,
|
||||
options: props.options
|
||||
},
|
||||
null,
|
||||
{ once: true }
|
||||
]]);
|
||||
});
|
||||
return {
|
||||
currentSrc,
|
||||
image,
|
||||
state,
|
||||
naturalWidth,
|
||||
naturalHeight
|
||||
};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { Intersect as n, VImg as t };
|
||||
|
||||
//# sourceMappingURL=VImg-DaEUT7gG.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-720
@@ -1,720 +0,0 @@
|
||||
import { At as onBeforeMount, Cn as withDirectives, Dt as mergeProps, Ft as onMounted, Kn as ref, M as Fragment, Ot as nextTick, Qn as toRef, U as computed, Ut as provide, Vn as onScopeDispose, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, cn as useId, et as createVNode, gn as watch, jt as onBeforeUnmount, nr as unref, sr as normalizeStyle, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { B as matchesSelector, K as pick, Z as wrapInArray, a as provideDefaults, c as getCurrentInstanceName, d as EventProp, f as callEvent, l as propsFactory, n as genericComponent, s as getCurrentInstance, w as filterInputAttrs } from "./defineComponent-DB6xIcDy.js";
|
||||
import { a as VSlideYTransition } from "./transitions-DCQ3sjjZ.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as deepEqual } from "./deepEqual-DDqmGqyF.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { r as useTextColor, t as useBackgroundColor } from "./color-B6vuQruj.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { n as IconValue } from "./icons-k2ZLE_i8.js";
|
||||
import { n as useToggleScope, t as useProxiedModel } from "./proxiedModel-DSlSIQ0y.js";
|
||||
import { i as useRtl, r as useLocale } from "./locale-DDGMqzqb.js";
|
||||
import { n as useDimension, t as makeDimensionProps } from "./dimensions-BDdmuRdK.js";
|
||||
import { n as makeTransitionProps, t as MaybeTransition } from "./transition-DqoZ8fA1.js";
|
||||
import { n as useDensity, t as makeDensityProps } from "./density-CpKZ5PhP.js";
|
||||
import { t as VIcon } from "./VIcon-1CJH_3Uo.js";
|
||||
import { t as Ripple } from "./ripple-Z40rPDte.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VSelectionControl/VSelectionControl.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VLabel/VLabel.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VSelectionControlGroup/VSelectionControlGroup.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VInput/VInput.css";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VMessages/VMessages.css";
|
||||
//#region node_modules/vuetify/lib/components/VLabel/VLabel.js
|
||||
var makeVLabelProps = propsFactory({
|
||||
text: String,
|
||||
onClick: EventProp(),
|
||||
...makeComponentProps(),
|
||||
...makeThemeProps()
|
||||
}, "VLabel");
|
||||
var VLabel = genericComponent()({
|
||||
name: "VLabel",
|
||||
props: makeVLabelProps(),
|
||||
setup(props, { slots }) {
|
||||
useRender(() => createBaseVNode("label", {
|
||||
"class": normalizeClass([
|
||||
"v-label",
|
||||
{ "v-label--clickable": !!props.onClick },
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle(props.style),
|
||||
"onClick": props.onClick
|
||||
}, [props.text, slots.default?.()]));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VSelectionControlGroup/VSelectionControlGroup.js
|
||||
var VSelectionControlGroupSymbol = Symbol.for("vuetify:selection-control-group");
|
||||
var makeSelectionControlGroupProps = propsFactory({
|
||||
color: String,
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
defaultsTarget: String,
|
||||
error: Boolean,
|
||||
id: String,
|
||||
inline: Boolean,
|
||||
falseIcon: IconValue,
|
||||
trueIcon: IconValue,
|
||||
ripple: {
|
||||
type: [Boolean, Object],
|
||||
default: true
|
||||
},
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
name: String,
|
||||
readonly: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
modelValue: null,
|
||||
type: String,
|
||||
valueComparator: {
|
||||
type: Function,
|
||||
default: deepEqual
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeThemeProps()
|
||||
}, "SelectionControlGroup");
|
||||
var makeVSelectionControlGroupProps = propsFactory({ ...makeSelectionControlGroupProps({ defaultsTarget: "VSelectionControl" }) }, "VSelectionControlGroup");
|
||||
genericComponent()({
|
||||
name: "VSelectionControlGroup",
|
||||
props: makeVSelectionControlGroupProps(),
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { slots }) {
|
||||
const modelValue = useProxiedModel(props, "modelValue");
|
||||
const uid = useId();
|
||||
const id = toRef(() => props.id || `v-selection-control-group-${uid}`);
|
||||
const name = toRef(() => props.name || id.value);
|
||||
const updateHandlers = /* @__PURE__ */ new Set();
|
||||
provide(VSelectionControlGroupSymbol, {
|
||||
modelValue,
|
||||
forceUpdate: () => {
|
||||
updateHandlers.forEach((fn) => fn());
|
||||
},
|
||||
onForceUpdate: (cb) => {
|
||||
updateHandlers.add(cb);
|
||||
onScopeDispose(() => {
|
||||
updateHandlers.delete(cb);
|
||||
});
|
||||
}
|
||||
});
|
||||
provideDefaults({ [props.defaultsTarget]: {
|
||||
color: toRef(() => props.color),
|
||||
disabled: toRef(() => props.disabled),
|
||||
density: toRef(() => props.density),
|
||||
error: toRef(() => props.error),
|
||||
inline: toRef(() => props.inline),
|
||||
modelValue,
|
||||
multiple: toRef(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
|
||||
name,
|
||||
falseIcon: toRef(() => props.falseIcon),
|
||||
trueIcon: toRef(() => props.trueIcon),
|
||||
readonly: toRef(() => props.readonly),
|
||||
ripple: toRef(() => props.ripple),
|
||||
type: toRef(() => props.type),
|
||||
valueComparator: toRef(() => props.valueComparator)
|
||||
} });
|
||||
useRender(() => createBaseVNode("div", {
|
||||
"class": normalizeClass([
|
||||
"v-selection-control-group",
|
||||
{ "v-selection-control-group--inline": props.inline },
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle(props.style),
|
||||
"role": props.type === "radio" ? "radiogroup" : void 0
|
||||
}, [slots.default?.()]));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VSelectionControl/VSelectionControl.js
|
||||
var makeVSelectionControlProps = propsFactory({
|
||||
label: String,
|
||||
baseColor: String,
|
||||
trueValue: null,
|
||||
falseValue: null,
|
||||
value: null,
|
||||
...makeComponentProps(),
|
||||
...makeSelectionControlGroupProps()
|
||||
}, "VSelectionControl");
|
||||
function useSelectionControl(props) {
|
||||
const group = inject(VSelectionControlGroupSymbol, void 0);
|
||||
const { densityClasses } = useDensity(props);
|
||||
const modelValue = useProxiedModel(props, "modelValue");
|
||||
const trueValue = computed(() => props.trueValue !== void 0 ? props.trueValue : props.value !== void 0 ? props.value : true);
|
||||
const falseValue = computed(() => props.falseValue !== void 0 ? props.falseValue : false);
|
||||
const isMultiple = computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value));
|
||||
const model = computed({
|
||||
get() {
|
||||
const val = group ? group.modelValue.value : modelValue.value;
|
||||
return isMultiple.value ? wrapInArray(val).some((v) => props.valueComparator(v, trueValue.value)) : props.valueComparator(val, trueValue.value);
|
||||
},
|
||||
set(val) {
|
||||
if (props.readonly) return;
|
||||
const currentValue = val ? trueValue.value : falseValue.value;
|
||||
let newVal = currentValue;
|
||||
if (isMultiple.value) newVal = val ? [...wrapInArray(modelValue.value), currentValue] : wrapInArray(modelValue.value).filter((item) => !props.valueComparator(item, trueValue.value));
|
||||
if (group) group.modelValue.value = newVal;
|
||||
else modelValue.value = newVal;
|
||||
}
|
||||
});
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => {
|
||||
if (props.error || props.disabled) return void 0;
|
||||
return model.value ? props.color : props.baseColor;
|
||||
});
|
||||
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => {
|
||||
return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
|
||||
});
|
||||
return {
|
||||
group,
|
||||
densityClasses,
|
||||
trueValue,
|
||||
falseValue,
|
||||
model,
|
||||
textColorClasses,
|
||||
textColorStyles,
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles,
|
||||
icon: computed(() => model.value ? props.trueIcon : props.falseIcon)
|
||||
};
|
||||
}
|
||||
var VSelectionControl = genericComponent()({
|
||||
name: "VSelectionControl",
|
||||
directives: { vRipple: Ripple },
|
||||
inheritAttrs: false,
|
||||
props: makeVSelectionControlProps(),
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { attrs, slots }) {
|
||||
const { group, densityClasses, icon, model, textColorClasses, textColorStyles, backgroundColorClasses, backgroundColorStyles, trueValue } = useSelectionControl(props);
|
||||
const uid = useId();
|
||||
const isFocused = shallowRef(false);
|
||||
const isFocusVisible = shallowRef(false);
|
||||
const input = ref();
|
||||
const id = toRef(() => props.id || `input-${uid}`);
|
||||
const isInteractive = toRef(() => !props.disabled && !props.readonly);
|
||||
group?.onForceUpdate(() => {
|
||||
if (input.value) input.value.checked = model.value;
|
||||
});
|
||||
function onFocus(e) {
|
||||
if (props.disabled) return;
|
||||
isFocused.value = true;
|
||||
if (matchesSelector(e.target, ":focus-visible") !== false) isFocusVisible.value = true;
|
||||
}
|
||||
function onBlur() {
|
||||
isFocused.value = false;
|
||||
isFocusVisible.value = false;
|
||||
}
|
||||
function onClickLabel(e) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
function onInput(e) {
|
||||
if (!isInteractive.value) {
|
||||
if (input.value) input.value.checked = model.value;
|
||||
return;
|
||||
}
|
||||
if (props.readonly && group) nextTick(() => group.forceUpdate());
|
||||
model.value = e.target.checked;
|
||||
}
|
||||
useRender(() => {
|
||||
const label = slots.label ? slots.label({
|
||||
label: props.label,
|
||||
props: { for: id.value }
|
||||
}) : props.label;
|
||||
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
||||
const inputNode = createBaseVNode("input", mergeProps({
|
||||
"ref": input,
|
||||
"checked": model.value,
|
||||
"disabled": !!props.disabled,
|
||||
"id": id.value,
|
||||
"onBlur": onBlur,
|
||||
"onFocus": onFocus,
|
||||
"onInput": onInput,
|
||||
"aria-disabled": !!props.disabled,
|
||||
"aria-label": props.label,
|
||||
"type": props.type,
|
||||
"value": trueValue.value,
|
||||
"name": props.name,
|
||||
"aria-checked": props.type === "checkbox" ? model.value : void 0
|
||||
}, inputAttrs), null);
|
||||
return createBaseVNode("div", mergeProps({ "class": [
|
||||
"v-selection-control",
|
||||
{
|
||||
"v-selection-control--dirty": model.value,
|
||||
"v-selection-control--disabled": props.disabled,
|
||||
"v-selection-control--error": props.error,
|
||||
"v-selection-control--focused": isFocused.value,
|
||||
"v-selection-control--focus-visible": isFocusVisible.value,
|
||||
"v-selection-control--inline": props.inline
|
||||
},
|
||||
densityClasses.value,
|
||||
props.class
|
||||
] }, rootAttrs, { "style": props.style }), [createBaseVNode("div", {
|
||||
"class": normalizeClass(["v-selection-control__wrapper", textColorClasses.value]),
|
||||
"style": normalizeStyle(textColorStyles.value)
|
||||
}, [slots.default?.({
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
}), withDirectives(createBaseVNode("div", { "class": normalizeClass(["v-selection-control__input"]) }, [slots.input?.({
|
||||
model,
|
||||
textColorClasses,
|
||||
textColorStyles,
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles,
|
||||
inputNode,
|
||||
icon: icon.value,
|
||||
props: {
|
||||
onFocus,
|
||||
onBlur,
|
||||
id: id.value
|
||||
}
|
||||
}) ?? createBaseVNode(Fragment, null, [icon.value && createVNode(VIcon, {
|
||||
"key": "icon",
|
||||
"icon": icon.value
|
||||
}, null), inputNode])]), [[
|
||||
Ripple,
|
||||
!props.disabled && !props.readonly && props.ripple,
|
||||
null,
|
||||
{
|
||||
center: true,
|
||||
circle: true
|
||||
}
|
||||
]])]), label && createVNode(VLabel, {
|
||||
"for": id.value,
|
||||
"onClick": onClickLabel
|
||||
}, { default: () => [label] })]);
|
||||
});
|
||||
return {
|
||||
isFocused,
|
||||
input
|
||||
};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VInput/InputIcon.js
|
||||
function useInputIcon(props) {
|
||||
const { t } = useLocale();
|
||||
function InputIcon({ name, color, ...attrs }) {
|
||||
const localeKey = {
|
||||
prepend: "prependAction",
|
||||
prependInner: "prependAction",
|
||||
append: "appendAction",
|
||||
appendInner: "appendAction",
|
||||
clear: "clear"
|
||||
}[name];
|
||||
const listener = props[`onClick:${name}`];
|
||||
function onKeydown(e) {
|
||||
if (e.key !== "Enter" && e.key !== " ") return;
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
callEvent(listener, new PointerEvent("click", e));
|
||||
}
|
||||
const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? "") : void 0;
|
||||
return createVNode(VIcon, mergeProps({
|
||||
"icon": props[`${name}Icon`],
|
||||
"aria-label": label,
|
||||
"onClick": listener,
|
||||
"onKeydown": onKeydown,
|
||||
"color": color
|
||||
}, attrs), null);
|
||||
}
|
||||
return { InputIcon };
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VMessages/VMessages.js
|
||||
var makeVMessagesProps = propsFactory({
|
||||
active: Boolean,
|
||||
color: String,
|
||||
messages: {
|
||||
type: [Array, String],
|
||||
default: () => []
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeTransitionProps({ transition: {
|
||||
component: VSlideYTransition,
|
||||
leaveAbsolute: true,
|
||||
group: true
|
||||
} })
|
||||
}, "VMessages");
|
||||
var VMessages = genericComponent()({
|
||||
name: "VMessages",
|
||||
props: makeVMessagesProps(),
|
||||
setup(props, { slots }) {
|
||||
const messages = computed(() => wrapInArray(props.messages));
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => props.color);
|
||||
useRender(() => createVNode(MaybeTransition, {
|
||||
"transition": props.transition,
|
||||
"tag": "div",
|
||||
"class": normalizeClass([
|
||||
"v-messages",
|
||||
textColorClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([textColorStyles.value, props.style])
|
||||
}, { default: () => [props.active && messages.value.map((message, i) => createBaseVNode("div", {
|
||||
"class": "v-messages__message",
|
||||
"key": `${i}-${messages.value}`
|
||||
}, [slots.message ? slots.message({ message }) : message]))] }));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/focus.js
|
||||
var makeFocusProps = propsFactory({
|
||||
focused: Boolean,
|
||||
"onUpdate:focused": EventProp()
|
||||
}, "focus");
|
||||
function useFocus(props, name = getCurrentInstanceName()) {
|
||||
const isFocused = useProxiedModel(props, "focused");
|
||||
const focusClasses = toRef(() => {
|
||||
return { [`${name}--focused`]: isFocused.value };
|
||||
});
|
||||
function focus() {
|
||||
isFocused.value = true;
|
||||
}
|
||||
function blur() {
|
||||
isFocused.value = false;
|
||||
}
|
||||
return {
|
||||
focusClasses,
|
||||
isFocused,
|
||||
focus,
|
||||
blur
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/form.js
|
||||
var FormKey = Symbol.for("vuetify:form");
|
||||
propsFactory({
|
||||
disabled: Boolean,
|
||||
fastFail: Boolean,
|
||||
readonly: Boolean,
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
validateOn: {
|
||||
type: String,
|
||||
default: "input"
|
||||
}
|
||||
}, "form");
|
||||
function useForm(props) {
|
||||
const form = inject(FormKey, null);
|
||||
return {
|
||||
...form,
|
||||
isReadonly: computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
|
||||
isDisabled: computed(() => !!(props?.disabled ?? form?.isDisabled.value))
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/labs/rules/rules.js
|
||||
var RulesSymbol = Symbol.for("vuetify:rules");
|
||||
function useRules(fn) {
|
||||
const rules = inject(RulesSymbol, null);
|
||||
if (!fn) {
|
||||
if (!rules) throw new Error("Could not find Vuetify rules injection");
|
||||
return rules.aliases;
|
||||
}
|
||||
return rules?.resolve(fn) ?? toRef(fn);
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/validation.js
|
||||
var makeValidationProps = propsFactory({
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
error: Boolean,
|
||||
errorMessages: {
|
||||
type: [Array, String],
|
||||
default: () => []
|
||||
},
|
||||
maxErrors: {
|
||||
type: [Number, String],
|
||||
default: 1
|
||||
},
|
||||
name: String,
|
||||
label: String,
|
||||
readonly: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
rules: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
modelValue: null,
|
||||
validateOn: String,
|
||||
validationValue: null,
|
||||
...makeFocusProps()
|
||||
}, "validation");
|
||||
function useValidation(props, name = getCurrentInstanceName(), id = useId()) {
|
||||
const model = useProxiedModel(props, "modelValue");
|
||||
const validationModel = computed(() => props.validationValue === void 0 ? model.value : props.validationValue);
|
||||
const form = useForm(props);
|
||||
const rules = useRules(() => props.rules);
|
||||
const internalErrorMessages = ref([]);
|
||||
const isPristine = shallowRef(true);
|
||||
const isDirty = computed(() => !!(wrapInArray(model.value === "" ? null : model.value).length || wrapInArray(validationModel.value === "" ? null : validationModel.value).length));
|
||||
const errorMessages = computed(() => {
|
||||
return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors))) : internalErrorMessages.value;
|
||||
});
|
||||
const validateOn = computed(() => {
|
||||
let value = (props.validateOn ?? form.validateOn?.value) || "input";
|
||||
if (value === "lazy") value = "input lazy";
|
||||
if (value === "eager") value = "input eager";
|
||||
const set = new Set(value?.split(" ") ?? []);
|
||||
return {
|
||||
input: set.has("input"),
|
||||
blur: set.has("blur") || set.has("input") || set.has("invalid-input"),
|
||||
invalidInput: set.has("invalid-input"),
|
||||
lazy: set.has("lazy"),
|
||||
eager: set.has("eager")
|
||||
};
|
||||
});
|
||||
const isValid = computed(() => {
|
||||
if (props.error || props.errorMessages?.length) return false;
|
||||
if (!props.rules.length) return true;
|
||||
if (isPristine.value) return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;
|
||||
else return !internalErrorMessages.value.length;
|
||||
});
|
||||
const isValidating = shallowRef(false);
|
||||
const validationClasses = computed(() => {
|
||||
return {
|
||||
[`${name}--error`]: isValid.value === false,
|
||||
[`${name}--dirty`]: isDirty.value,
|
||||
[`${name}--disabled`]: form.isDisabled.value,
|
||||
[`${name}--readonly`]: form.isReadonly.value
|
||||
};
|
||||
});
|
||||
const vm = getCurrentInstance("validation");
|
||||
const uid = computed(() => props.name ?? unref(id));
|
||||
onBeforeMount(() => {
|
||||
form.register?.({
|
||||
id: uid.value,
|
||||
vm,
|
||||
validate,
|
||||
reset,
|
||||
resetValidation
|
||||
});
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
form.unregister?.(uid.value);
|
||||
});
|
||||
onMounted(async () => {
|
||||
if (!validateOn.value.lazy) await validate(!validateOn.value.eager);
|
||||
form.update?.(uid.value, isValid.value, errorMessages.value);
|
||||
});
|
||||
useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
|
||||
watch(validationModel, () => {
|
||||
if (validationModel.value != null) validate();
|
||||
else if (props.focused) {
|
||||
const unwatch = watch(() => props.focused, (val) => {
|
||||
if (!val) validate();
|
||||
unwatch();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
useToggleScope(() => validateOn.value.blur, () => {
|
||||
watch(() => props.focused, (val) => {
|
||||
if (!val) validate();
|
||||
});
|
||||
});
|
||||
watch([isValid, errorMessages], () => {
|
||||
form.update?.(uid.value, isValid.value, errorMessages.value);
|
||||
});
|
||||
async function reset() {
|
||||
model.value = null;
|
||||
await nextTick();
|
||||
await resetValidation();
|
||||
}
|
||||
async function resetValidation() {
|
||||
isPristine.value = true;
|
||||
if (!validateOn.value.lazy) await validate(!validateOn.value.eager);
|
||||
else internalErrorMessages.value = [];
|
||||
}
|
||||
async function validate(silent = false) {
|
||||
const results = [];
|
||||
isValidating.value = true;
|
||||
for (const rule of rules.value) {
|
||||
if (results.length >= Number(props.maxErrors ?? 1)) break;
|
||||
const result = await (typeof rule === "function" ? rule : () => rule)(validationModel.value);
|
||||
if (result === true) continue;
|
||||
if (result !== false && typeof result !== "string") {
|
||||
console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);
|
||||
continue;
|
||||
}
|
||||
results.push(result || "");
|
||||
}
|
||||
internalErrorMessages.value = results;
|
||||
isValidating.value = false;
|
||||
isPristine.value = silent;
|
||||
return internalErrorMessages.value;
|
||||
}
|
||||
return {
|
||||
errorMessages,
|
||||
isDirty,
|
||||
isDisabled: form.isDisabled,
|
||||
isReadonly: form.isReadonly,
|
||||
isPristine,
|
||||
isValid,
|
||||
isValidating,
|
||||
reset,
|
||||
resetValidation,
|
||||
validate,
|
||||
validationClasses
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VInput/VInput.js
|
||||
var makeVInputProps = propsFactory({
|
||||
id: String,
|
||||
appendIcon: IconValue,
|
||||
baseColor: String,
|
||||
centerAffix: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
color: String,
|
||||
glow: Boolean,
|
||||
iconColor: [Boolean, String],
|
||||
prependIcon: IconValue,
|
||||
hideDetails: [Boolean, String],
|
||||
hideSpinButtons: Boolean,
|
||||
hint: String,
|
||||
indentDetails: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
persistentHint: Boolean,
|
||||
messages: {
|
||||
type: [Array, String],
|
||||
default: () => []
|
||||
},
|
||||
direction: {
|
||||
type: String,
|
||||
default: "horizontal",
|
||||
validator: (v) => ["horizontal", "vertical"].includes(v)
|
||||
},
|
||||
"onClick:prepend": EventProp(),
|
||||
"onClick:append": EventProp(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...pick(makeDimensionProps(), [
|
||||
"maxWidth",
|
||||
"minWidth",
|
||||
"width"
|
||||
]),
|
||||
...makeThemeProps(),
|
||||
...makeValidationProps()
|
||||
}, "VInput");
|
||||
var VInput = genericComponent()({
|
||||
name: "VInput",
|
||||
props: { ...makeVInputProps() },
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { attrs, slots, emit }) {
|
||||
const { densityClasses } = useDensity(props);
|
||||
const { dimensionStyles } = useDimension(props);
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { rtlClasses } = useRtl();
|
||||
const { InputIcon } = useInputIcon(props);
|
||||
const uid = useId();
|
||||
const id = computed(() => props.id || `input-${uid}`);
|
||||
const { errorMessages, isDirty, isDisabled, isReadonly, isPristine, isValid, isValidating, reset, resetValidation, validate, validationClasses } = useValidation(props, "v-input", id);
|
||||
const messages = computed(() => {
|
||||
if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) return errorMessages.value;
|
||||
else if (props.hint && (props.persistentHint || props.focused)) return props.hint;
|
||||
else return props.messages;
|
||||
});
|
||||
const hasMessages = toRef(() => messages.value.length > 0);
|
||||
const hasDetails = toRef(() => !props.hideDetails || props.hideDetails === "auto" && (hasMessages.value || !!slots.details));
|
||||
const messagesId = computed(() => hasDetails.value ? `${id.value}-messages` : void 0);
|
||||
const slotProps = computed(() => ({
|
||||
id,
|
||||
messagesId,
|
||||
isDirty,
|
||||
isDisabled,
|
||||
isReadonly,
|
||||
isPristine,
|
||||
isValid,
|
||||
isValidating,
|
||||
hasDetails,
|
||||
reset,
|
||||
resetValidation,
|
||||
validate
|
||||
}));
|
||||
const color = toRef(() => {
|
||||
return props.error || props.disabled ? void 0 : props.focused ? props.color : props.baseColor;
|
||||
});
|
||||
const iconColor = toRef(() => {
|
||||
if (!props.iconColor) return void 0;
|
||||
return props.iconColor === true ? color.value : props.iconColor;
|
||||
});
|
||||
useRender(() => {
|
||||
const hasPrepend = !!(slots.prepend || props.prependIcon);
|
||||
const hasAppend = !!(slots.append || props.appendIcon);
|
||||
return createBaseVNode("div", {
|
||||
"class": normalizeClass([
|
||||
"v-input",
|
||||
`v-input--${props.direction}`,
|
||||
{
|
||||
"v-input--center-affix": props.centerAffix,
|
||||
"v-input--focused": props.focused,
|
||||
"v-input--glow": props.glow,
|
||||
"v-input--hide-spin-buttons": props.hideSpinButtons,
|
||||
"v-input--indent-details": props.indentDetails
|
||||
},
|
||||
densityClasses.value,
|
||||
themeClasses.value,
|
||||
rtlClasses.value,
|
||||
validationClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([dimensionStyles.value, props.style])
|
||||
}, [
|
||||
hasPrepend && createBaseVNode("div", {
|
||||
"key": "prepend",
|
||||
"class": "v-input__prepend"
|
||||
}, [slots.prepend ? slots.prepend(slotProps.value) : props.prependIcon && createVNode(InputIcon, {
|
||||
"key": "prepend-icon",
|
||||
"name": "prepend",
|
||||
"color": iconColor.value
|
||||
}, null)]),
|
||||
slots.default && createBaseVNode("div", { "class": "v-input__control" }, [slots.default?.(slotProps.value)]),
|
||||
hasAppend && createBaseVNode("div", {
|
||||
"key": "append",
|
||||
"class": "v-input__append"
|
||||
}, [slots.append ? slots.append(slotProps.value) : props.appendIcon && createVNode(InputIcon, {
|
||||
"key": "append-icon",
|
||||
"name": "append",
|
||||
"color": iconColor.value
|
||||
}, null)]),
|
||||
hasDetails.value && createBaseVNode("div", {
|
||||
"id": messagesId.value,
|
||||
"class": "v-input__details",
|
||||
"role": "alert",
|
||||
"aria-live": "polite"
|
||||
}, [createVNode(VMessages, {
|
||||
"active": hasMessages.value,
|
||||
"messages": messages.value
|
||||
}, { message: slots.message }), slots.details?.(slotProps.value)])
|
||||
]);
|
||||
});
|
||||
return {
|
||||
reset,
|
||||
resetValidation,
|
||||
validate,
|
||||
isValid,
|
||||
errorMessages
|
||||
};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { useFocus as a, makeVSelectionControlProps as c, makeFocusProps as i, VLabel as l, makeVInputProps as n, useInputIcon as o, useForm as r, VSelectionControl as s, VInput as t };
|
||||
|
||||
//# sourceMappingURL=VInput-BxI8SL-_.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-1677
File diff suppressed because it is too large
Load Diff
-1
File diff suppressed because one or more lines are too long
-140
@@ -1,140 +0,0 @@
|
||||
import { Dt as mergeProps, Kn as ref, Nt as onDeactivated, Qn as toRef, U as computed, Ut as provide, Yn as shallowRef, cn as useId, et as createVNode, gn as watch, jt as onBeforeUnmount, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { D as focusChild, F as isClickInsideElement, H as omit, O as focusableChildren, k as getNextElement, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { o as VDialogTransition } from "./transitions-DCQ3sjjZ.js";
|
||||
import { n as makeVOverlayProps, r as VMenuSymbol, t as VOverlay } from "./VOverlay-BS8OrX3g.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { t as useProxiedModel } from "./proxiedModel-DSlSIQ0y.js";
|
||||
import { i as useRtl } from "./locale-DDGMqzqb.js";
|
||||
import { t as VDefaultsProvider } from "./VDefaultsProvider-C09t4-My.js";
|
||||
import { t as useScopeId } from "./scopeId-CyMkmyzM.js";
|
||||
import { t as forwardRefs } from "./forwardRefs-CW3d8km7.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VMenu/VMenu.css";
|
||||
//#region node_modules/vuetify/lib/components/VMenu/VMenu.js
|
||||
var makeVMenuProps = propsFactory({
|
||||
id: String,
|
||||
submenu: Boolean,
|
||||
...omit(makeVOverlayProps({
|
||||
captureFocus: true,
|
||||
closeDelay: 250,
|
||||
closeOnContentClick: true,
|
||||
locationStrategy: "connected",
|
||||
location: void 0,
|
||||
openDelay: 300,
|
||||
scrim: false,
|
||||
scrollStrategy: "reposition",
|
||||
transition: { component: VDialogTransition }
|
||||
}), ["absolute"])
|
||||
}, "VMenu");
|
||||
var VMenu = genericComponent()({
|
||||
name: "VMenu",
|
||||
props: makeVMenuProps(),
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { slots }) {
|
||||
const isActive = useProxiedModel(props, "modelValue");
|
||||
const { scopeId } = useScopeId();
|
||||
const { isRtl } = useRtl();
|
||||
const uid = useId();
|
||||
const id = toRef(() => props.id || `v-menu-${uid}`);
|
||||
const overlay = ref();
|
||||
const parent = inject(VMenuSymbol, null);
|
||||
const openChildren = shallowRef(/* @__PURE__ */ new Set());
|
||||
provide(VMenuSymbol, {
|
||||
register() {
|
||||
openChildren.value.add(uid);
|
||||
},
|
||||
unregister() {
|
||||
openChildren.value.delete(uid);
|
||||
},
|
||||
closeParents(e) {
|
||||
setTimeout(() => {
|
||||
if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {
|
||||
isActive.value = false;
|
||||
parent?.closeParents();
|
||||
}
|
||||
}, 40);
|
||||
}
|
||||
});
|
||||
onBeforeUnmount(() => parent?.unregister());
|
||||
onDeactivated(() => isActive.value = false);
|
||||
watch(isActive, (val) => {
|
||||
val ? parent?.register() : parent?.unregister();
|
||||
}, { immediate: true });
|
||||
function onClickOutside(e) {
|
||||
parent?.closeParents(e);
|
||||
}
|
||||
function onKeydown(e) {
|
||||
if (props.disabled) return;
|
||||
if (e.key === "Tab" || e.key === "Enter" && !props.closeOnContentClick) {
|
||||
if (e.key === "Enter" && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest("form"))) return;
|
||||
if (e.key === "Enter") e.preventDefault();
|
||||
if (!getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? "prev" : "next", (el) => el.tabIndex >= 0) && !props.retainFocus) {
|
||||
isActive.value = false;
|
||||
overlay.value?.activatorEl?.focus();
|
||||
}
|
||||
} else if (props.submenu && e.key === (isRtl.value ? "ArrowRight" : "ArrowLeft")) {
|
||||
isActive.value = false;
|
||||
overlay.value?.activatorEl?.focus();
|
||||
}
|
||||
}
|
||||
function onActivatorKeydown(e) {
|
||||
if (props.disabled) return;
|
||||
const el = overlay.value?.contentEl;
|
||||
if (el && isActive.value) {
|
||||
if (e.key === "ArrowDown") {
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
focusChild(el, "next");
|
||||
} else if (e.key === "ArrowUp") {
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
focusChild(el, "prev");
|
||||
} else if (props.submenu) {
|
||||
if (e.key === (isRtl.value ? "ArrowRight" : "ArrowLeft")) isActive.value = false;
|
||||
else if (e.key === (isRtl.value ? "ArrowLeft" : "ArrowRight")) {
|
||||
e.preventDefault();
|
||||
focusChild(el, "first");
|
||||
}
|
||||
}
|
||||
} else if (props.submenu ? e.key === (isRtl.value ? "ArrowLeft" : "ArrowRight") : ["ArrowDown", "ArrowUp"].includes(e.key)) {
|
||||
isActive.value = true;
|
||||
e.preventDefault();
|
||||
setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
|
||||
}
|
||||
}
|
||||
const activatorProps = computed(() => mergeProps({
|
||||
"aria-haspopup": "menu",
|
||||
"aria-expanded": String(isActive.value),
|
||||
"aria-controls": id.value,
|
||||
"aria-owns": id.value,
|
||||
onKeydown: onActivatorKeydown
|
||||
}, props.activatorProps));
|
||||
useRender(() => {
|
||||
const overlayProps = VOverlay.filterProps(props);
|
||||
return createVNode(VOverlay, mergeProps({
|
||||
"ref": overlay,
|
||||
"id": id.value,
|
||||
"class": ["v-menu", props.class],
|
||||
"style": props.style
|
||||
}, overlayProps, {
|
||||
"modelValue": isActive.value,
|
||||
"onUpdate:modelValue": ($event) => isActive.value = $event,
|
||||
"absolute": true,
|
||||
"activatorProps": activatorProps.value,
|
||||
"location": props.location ?? (props.submenu ? "end" : "bottom"),
|
||||
"onClick:outside": onClickOutside,
|
||||
"onKeydown": onKeydown
|
||||
}, scopeId), {
|
||||
activator: slots.activator,
|
||||
default: (...args) => createVNode(VDefaultsProvider, { "root": "VMenu" }, { default: () => [slots.default?.(...args)] })
|
||||
});
|
||||
});
|
||||
return forwardRefs({
|
||||
id,
|
||||
ΨopenChildren: openChildren
|
||||
}, overlay);
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VMenu as t };
|
||||
|
||||
//# sourceMappingURL=VMenu-DCQFp-2Y.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-1203
File diff suppressed because it is too large
Load Diff
-1
File diff suppressed because one or more lines are too long
-149
@@ -1,149 +0,0 @@
|
||||
import { Ft as onMounted, Kn as ref, Qn as toRef, U as computed, W as createBaseVNode, Yn as shallowRef, _n as watchEffect, ar as normalizeClass, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { $ as PREFERS_REDUCED_MOTION, _ as convertToUnit, g as clamp, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { r as useTextColor } from "./color-B6vuQruj.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { t as useResizeObserver } from "./resizeObserver-C12jWpYk.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { n as makeSizeProps, r as useSize } from "./VIcon-1CJH_3Uo.js";
|
||||
import { i as useIntersectionObserver } from "./loader-CV4sMFhE.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.css";
|
||||
//#region node_modules/vuetify/lib/composables/reveal.js
|
||||
var makeRevealProps = propsFactory({ reveal: {
|
||||
type: [Boolean, Object],
|
||||
default: false
|
||||
} }, "reveal");
|
||||
function useReveal(props) {
|
||||
const defaultDuration = 900;
|
||||
const duration = toRef(() => typeof props.reveal === "object" ? Math.max(0, Number(props.reveal.duration ?? defaultDuration)) : defaultDuration);
|
||||
const state = shallowRef(props.reveal ? "initial" : "disabled");
|
||||
onMounted(async () => {
|
||||
if (props.reveal) {
|
||||
state.value = "initial";
|
||||
await new Promise((resolve) => requestAnimationFrame(resolve));
|
||||
state.value = "pending";
|
||||
await new Promise((resolve) => setTimeout(resolve, duration.value));
|
||||
state.value = "done";
|
||||
}
|
||||
});
|
||||
return {
|
||||
duration,
|
||||
state
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.js
|
||||
var makeVProgressCircularProps = propsFactory({
|
||||
bgColor: String,
|
||||
color: String,
|
||||
indeterminate: [Boolean, String],
|
||||
rounded: Boolean,
|
||||
modelValue: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
rotate: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
width: {
|
||||
type: [Number, String],
|
||||
default: 4
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeRevealProps(),
|
||||
...makeSizeProps(),
|
||||
...makeTagProps({ tag: "div" }),
|
||||
...makeThemeProps()
|
||||
}, "VProgressCircular");
|
||||
var VProgressCircular = genericComponent()({
|
||||
name: "VProgressCircular",
|
||||
props: makeVProgressCircularProps(),
|
||||
setup(props, { slots }) {
|
||||
const MAGIC_RADIUS_CONSTANT = 20;
|
||||
const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT;
|
||||
const root = ref();
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { sizeClasses, sizeStyles } = useSize(props);
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => props.color);
|
||||
const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(() => props.bgColor);
|
||||
const { intersectionRef, isIntersecting } = useIntersectionObserver();
|
||||
const { resizeRef, contentRect } = useResizeObserver();
|
||||
const { state: revealState, duration: revealDuration } = useReveal(props);
|
||||
const normalizedValue = toRef(() => revealState.value === "initial" ? 0 : clamp(parseFloat(props.modelValue), 0, 100));
|
||||
const width = toRef(() => Number(props.width));
|
||||
const size = toRef(() => {
|
||||
return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);
|
||||
});
|
||||
const diameter = toRef(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);
|
||||
const strokeWidth = toRef(() => width.value / size.value * diameter.value);
|
||||
const strokeDashOffset = toRef(() => {
|
||||
const baseLength = (100 - normalizedValue.value) / 100 * CIRCUMFERENCE;
|
||||
return props.rounded && normalizedValue.value > 0 && normalizedValue.value < 100 ? convertToUnit(Math.min(CIRCUMFERENCE - .01, baseLength + strokeWidth.value)) : convertToUnit(baseLength);
|
||||
});
|
||||
const startAngle = computed(() => {
|
||||
const baseAngle = Number(props.rotate);
|
||||
return props.rounded ? baseAngle + strokeWidth.value / 2 / CIRCUMFERENCE * 360 : baseAngle;
|
||||
});
|
||||
watchEffect(() => {
|
||||
intersectionRef.value = root.value;
|
||||
resizeRef.value = root.value;
|
||||
});
|
||||
useRender(() => createVNode(props.tag, {
|
||||
"ref": root,
|
||||
"class": normalizeClass([
|
||||
"v-progress-circular",
|
||||
{
|
||||
"v-progress-circular--indeterminate": !!props.indeterminate,
|
||||
"v-progress-circular--visible": isIntersecting.value,
|
||||
"v-progress-circular--disable-shrink": props.indeterminate && (props.indeterminate === "disable-shrink" || PREFERS_REDUCED_MOTION()),
|
||||
"v-progress-circular--revealing": ["initial", "pending"].includes(revealState.value)
|
||||
},
|
||||
themeClasses.value,
|
||||
sizeClasses.value,
|
||||
textColorClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
sizeStyles.value,
|
||||
textColorStyles.value,
|
||||
{ "--progress-reveal-duration": `${revealDuration.value}ms` },
|
||||
props.style
|
||||
]),
|
||||
"role": "progressbar",
|
||||
"aria-valuemin": "0",
|
||||
"aria-valuemax": "100",
|
||||
"aria-valuenow": props.indeterminate ? void 0 : normalizedValue.value
|
||||
}, { default: () => [createBaseVNode("svg", {
|
||||
"style": { transform: `rotate(calc(-90deg + ${startAngle.value}deg))` },
|
||||
"xmlns": "http://www.w3.org/2000/svg",
|
||||
"viewBox": `0 0 ${diameter.value} ${diameter.value}`
|
||||
}, [createBaseVNode("circle", {
|
||||
"class": normalizeClass(["v-progress-circular__underlay", underlayColorClasses.value]),
|
||||
"style": normalizeStyle(underlayColorStyles.value),
|
||||
"fill": "transparent",
|
||||
"cx": "50%",
|
||||
"cy": "50%",
|
||||
"r": MAGIC_RADIUS_CONSTANT,
|
||||
"stroke-width": strokeWidth.value,
|
||||
"stroke-dasharray": CIRCUMFERENCE,
|
||||
"stroke-dashoffset": 0
|
||||
}, null), createBaseVNode("circle", {
|
||||
"class": "v-progress-circular__overlay",
|
||||
"fill": "transparent",
|
||||
"cx": "50%",
|
||||
"cy": "50%",
|
||||
"r": MAGIC_RADIUS_CONSTANT,
|
||||
"stroke-width": strokeWidth.value,
|
||||
"stroke-dasharray": CIRCUMFERENCE,
|
||||
"stroke-dashoffset": strokeDashOffset.value,
|
||||
"stroke-linecap": props.rounded ? "round" : void 0
|
||||
}, null)]), slots.default && createBaseVNode("div", { "class": "v-progress-circular__content" }, [slots.default({ value: normalizedValue.value })])] }));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VProgressCircular as t };
|
||||
|
||||
//# sourceMappingURL=VProgressCircular-yKv2qs75.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-64
@@ -1,64 +0,0 @@
|
||||
import { ar as normalizeClass, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { t as useBackgroundColor } from "./color-B6vuQruj.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { n as useDimension, t as makeDimensionProps } from "./dimensions-BDdmuRdK.js";
|
||||
import { n as useRounded, t as makeRoundedProps } from "./rounded-BuPGKRa9.js";
|
||||
import { n as useBorder, t as makeBorderProps } from "./border-jCmRyoxP.js";
|
||||
import { n as useElevation, t as makeElevationProps } from "./elevation-B0TH2wU6.js";
|
||||
import { n as useLocation, t as makeLocationProps } from "./location-BIKTnDF4.js";
|
||||
import { n as usePosition, t as makePositionProps } from "./position-BCUsnxVO.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VSheet/VSheet.css";
|
||||
//#region node_modules/vuetify/lib/components/VSheet/VSheet.js
|
||||
var makeVSheetProps = propsFactory({
|
||||
color: String,
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDimensionProps(),
|
||||
...makeElevationProps(),
|
||||
...makeLocationProps(),
|
||||
...makePositionProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps()
|
||||
}, "VSheet");
|
||||
var VSheet = genericComponent()({
|
||||
name: "VSheet",
|
||||
props: makeVSheetProps(),
|
||||
setup(props, { slots }) {
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color);
|
||||
const { borderClasses } = useBorder(props);
|
||||
const { dimensionStyles } = useDimension(props);
|
||||
const { elevationClasses } = useElevation(props);
|
||||
const { locationStyles } = useLocation(props);
|
||||
const { positionClasses } = usePosition(props);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
useRender(() => createVNode(props.tag, {
|
||||
"class": normalizeClass([
|
||||
"v-sheet",
|
||||
themeClasses.value,
|
||||
backgroundColorClasses.value,
|
||||
borderClasses.value,
|
||||
elevationClasses.value,
|
||||
positionClasses.value,
|
||||
roundedClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
backgroundColorStyles.value,
|
||||
dimensionStyles.value,
|
||||
locationStyles.value,
|
||||
props.style
|
||||
])
|
||||
}, slots));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VSheet as t };
|
||||
|
||||
//# sourceMappingURL=VSheet-CLHX3uIJ.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"VSheet-CLHX3uIJ.js","names":["_createVNode","_normalizeClass","_normalizeStyle"],"sources":["../../vuetify/lib/components/VSheet/VSheet.js"],"sourcesContent":["import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSheet.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { useBackgroundColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.js\";\nimport { makePositionProps, usePosition } from \"../../composables/position.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVSheetProps = propsFactory({\n color: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSheet');\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n props: makeVSheetProps(),\n setup(props, {\n slots\n }) {\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(() => props.color);\n const {\n borderClasses\n } = useBorder(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),\n \"style\": _normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style])\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSheet.js.map"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAa,kBAAkB,aAAa;CAC1C,OAAO;CACP,GAAG,iBAAiB;CACpB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,mBAAmB;CACtB,GAAG,mBAAmB;CACtB,GAAG,kBAAkB;CACrB,GAAG,cAAc;CACjB,GAAG,gBAAgB;CACpB,EAAE,SAAS;AACZ,IAAa,SAAS,kBAAkB,CAAC;CACvC,MAAM;CACN,OAAO,iBAAiB;CACxB,MAAM,OAAO,EACX,SACC;EACD,MAAM,EACJ,iBACE,aAAa,MAAM;EACvB,MAAM,EACJ,wBACA,0BACE,yBAAyB,MAAM,MAAM;EACzC,MAAM,EACJ,kBACE,UAAU,MAAM;EACpB,MAAM,EACJ,oBACE,aAAa,MAAM;EACvB,MAAM,EACJ,qBACE,aAAa,MAAM;EACvB,MAAM,EACJ,mBACE,YAAY,MAAM;EACtB,MAAM,EACJ,oBACE,YAAY,MAAM;EACtB,MAAM,EACJ,mBACE,WAAW,MAAM;AACrB,kBAAgBA,YAAa,MAAM,KAAK;GACtC,SAASC,eAAgB;IAAC;IAAW,aAAa;IAAO,uBAAuB;IAAO,cAAc;IAAO,iBAAiB;IAAO,gBAAgB;IAAO,eAAe;IAAO,MAAM;IAAM,CAAC;GAC9L,SAASC,eAAgB;IAAC,sBAAsB;IAAO,gBAAgB;IAAO,eAAe;IAAO,MAAM;IAAM,CAAC;GAClH,EAAE,MAAM,CAAC;AACV,SAAO,EAAE;;CAEZ,CAAC"}
|
||||
-320
@@ -1,320 +0,0 @@
|
||||
import { U as computed, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, et as createVNode, gn as watch, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { O as focusableChildren, Q as IN_BROWSER, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { r as VFadeTransition } from "./transitions-DCQ3sjjZ.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { n as IconValue } from "./icons-k2ZLE_i8.js";
|
||||
import { i as useRtl } from "./locale-DDGMqzqb.js";
|
||||
import { a as useDisplay, i as makeDisplayProps } from "./display-DKaCj-_K.js";
|
||||
import { r as useGoTo } from "./goto-Bn-PzNUr.js";
|
||||
import { t as useResizeObserver } from "./resizeObserver-C12jWpYk.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { n as makeGroupProps, r as useGroup } from "./group-Cm2viEWK.js";
|
||||
import { t as VIcon } from "./VIcon-1CJH_3Uo.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.css";
|
||||
//#region node_modules/vuetify/lib/components/VSlideGroup/helpers.js
|
||||
function calculateUpdatedTarget({ selectedElement, containerElement, isRtl, isHorizontal }) {
|
||||
const containerSize = getOffsetSize(isHorizontal, containerElement);
|
||||
const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);
|
||||
const childrenSize = getOffsetSize(isHorizontal, selectedElement);
|
||||
const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);
|
||||
const additionalOffset = childrenSize * .4;
|
||||
if (scrollPosition > childrenStartPosition) return childrenStartPosition - additionalOffset;
|
||||
else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) return childrenStartPosition - containerSize + childrenSize + additionalOffset;
|
||||
return scrollPosition;
|
||||
}
|
||||
function calculateCenteredTarget({ selectedElement, containerElement, isHorizontal }) {
|
||||
const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);
|
||||
const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);
|
||||
const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);
|
||||
return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;
|
||||
}
|
||||
function getScrollSize(isHorizontal, element) {
|
||||
return element?.[isHorizontal ? "scrollWidth" : "scrollHeight"] || 0;
|
||||
}
|
||||
function getScrollPosition(isHorizontal, rtl, element) {
|
||||
if (!element) return 0;
|
||||
const { scrollLeft, offsetWidth, scrollWidth } = element;
|
||||
if (isHorizontal) return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;
|
||||
return element.scrollTop;
|
||||
}
|
||||
function getOffsetSize(isHorizontal, element) {
|
||||
return element?.[isHorizontal ? "offsetWidth" : "offsetHeight"] || 0;
|
||||
}
|
||||
function getOffsetPosition(isHorizontal, element) {
|
||||
return element?.[isHorizontal ? "offsetLeft" : "offsetTop"] || 0;
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.js
|
||||
var VSlideGroupSymbol = Symbol.for("vuetify:v-slide-group");
|
||||
var makeVSlideGroupProps = propsFactory({
|
||||
centerActive: Boolean,
|
||||
scrollToActive: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
contentClass: null,
|
||||
direction: {
|
||||
type: String,
|
||||
default: "horizontal"
|
||||
},
|
||||
symbol: {
|
||||
type: null,
|
||||
default: VSlideGroupSymbol
|
||||
},
|
||||
nextIcon: {
|
||||
type: IconValue,
|
||||
default: "$next"
|
||||
},
|
||||
prevIcon: {
|
||||
type: IconValue,
|
||||
default: "$prev"
|
||||
},
|
||||
showArrows: {
|
||||
type: [Boolean, String],
|
||||
validator: (v) => typeof v === "boolean" || [
|
||||
"always",
|
||||
"desktop",
|
||||
"mobile",
|
||||
"never"
|
||||
].includes(v)
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeDisplayProps({ mobile: null }),
|
||||
...makeTagProps(),
|
||||
...makeGroupProps({ selectedClass: "v-slide-group-item--active" })
|
||||
}, "VSlideGroup");
|
||||
var VSlideGroup = genericComponent()({
|
||||
name: "VSlideGroup",
|
||||
props: makeVSlideGroupProps(),
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { slots }) {
|
||||
const { isRtl } = useRtl();
|
||||
const { displayClasses, mobile } = useDisplay(props);
|
||||
const group = useGroup(props, props.symbol);
|
||||
const isOverflowing = shallowRef(false);
|
||||
const scrollOffset = shallowRef(0);
|
||||
const containerSize = shallowRef(0);
|
||||
const contentSize = shallowRef(0);
|
||||
const isHorizontal = computed(() => props.direction === "horizontal");
|
||||
const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver();
|
||||
const { resizeRef: contentRef, contentRect } = useResizeObserver();
|
||||
const goTo = useGoTo();
|
||||
const goToOptions = computed(() => {
|
||||
return {
|
||||
container: containerRef.el,
|
||||
duration: 200,
|
||||
easing: "easeOutQuart"
|
||||
};
|
||||
});
|
||||
const firstSelectedIndex = computed(() => {
|
||||
if (!group.selected.value.length) return -1;
|
||||
return group.items.value.findIndex((item) => item.id === group.selected.value[0]);
|
||||
});
|
||||
const lastSelectedIndex = computed(() => {
|
||||
if (!group.selected.value.length) return -1;
|
||||
return group.items.value.findIndex((item) => item.id === group.selected.value[group.selected.value.length - 1]);
|
||||
});
|
||||
if (IN_BROWSER) {
|
||||
let frame = -1;
|
||||
watch(() => [
|
||||
group.selected.value,
|
||||
containerRect.value,
|
||||
contentRect.value,
|
||||
isHorizontal.value
|
||||
], () => {
|
||||
cancelAnimationFrame(frame);
|
||||
frame = requestAnimationFrame(() => {
|
||||
if (containerRect.value && contentRect.value) {
|
||||
const sizeProperty = isHorizontal.value ? "width" : "height";
|
||||
containerSize.value = containerRect.value[sizeProperty];
|
||||
contentSize.value = contentRect.value[sizeProperty];
|
||||
isOverflowing.value = containerSize.value + 1 < contentSize.value;
|
||||
}
|
||||
if (props.scrollToActive && firstSelectedIndex.value >= 0 && contentRef.el) {
|
||||
const selectedElement = contentRef.el.children[lastSelectedIndex.value];
|
||||
scrollToChildren(selectedElement, props.centerActive);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
const isFocused = shallowRef(false);
|
||||
function scrollToChildren(children, center) {
|
||||
let target = 0;
|
||||
if (center) target = calculateCenteredTarget({
|
||||
containerElement: containerRef.el,
|
||||
isHorizontal: isHorizontal.value,
|
||||
selectedElement: children
|
||||
});
|
||||
else target = calculateUpdatedTarget({
|
||||
containerElement: containerRef.el,
|
||||
isHorizontal: isHorizontal.value,
|
||||
isRtl: isRtl.value,
|
||||
selectedElement: children
|
||||
});
|
||||
scrollToPosition(target);
|
||||
}
|
||||
function scrollToPosition(newPosition) {
|
||||
if (!IN_BROWSER || !containerRef.el) return;
|
||||
const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);
|
||||
const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);
|
||||
if (getScrollSize(isHorizontal.value, containerRef.el) <= offsetSize || Math.abs(newPosition - scrollPosition) < 16) return;
|
||||
if (isHorizontal.value && isRtl.value && containerRef.el) {
|
||||
const { scrollWidth, offsetWidth: containerWidth } = containerRef.el;
|
||||
newPosition = scrollWidth - containerWidth - newPosition;
|
||||
}
|
||||
if (isHorizontal.value) goTo.horizontal(newPosition, goToOptions.value);
|
||||
else goTo(newPosition, goToOptions.value);
|
||||
}
|
||||
function onScroll(e) {
|
||||
const { scrollTop, scrollLeft } = e.target;
|
||||
scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;
|
||||
}
|
||||
function onFocusin(e) {
|
||||
isFocused.value = true;
|
||||
if (!isOverflowing.value || !contentRef.el) return;
|
||||
for (const el of e.composedPath()) for (const item of contentRef.el.children) if (item === el) {
|
||||
scrollToChildren(item);
|
||||
return;
|
||||
}
|
||||
}
|
||||
function onFocusout(e) {
|
||||
isFocused.value = false;
|
||||
}
|
||||
let ignoreFocusEvent = false;
|
||||
function onFocus(e) {
|
||||
if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();
|
||||
ignoreFocusEvent = false;
|
||||
}
|
||||
function onFocusAffixes() {
|
||||
ignoreFocusEvent = true;
|
||||
}
|
||||
function onKeydown(e) {
|
||||
if (!contentRef.el) return;
|
||||
function toFocus(location) {
|
||||
e.preventDefault();
|
||||
focus(location);
|
||||
}
|
||||
if (isHorizontal.value) {
|
||||
if (e.key === "ArrowRight") toFocus(isRtl.value ? "prev" : "next");
|
||||
else if (e.key === "ArrowLeft") toFocus(isRtl.value ? "next" : "prev");
|
||||
} else if (e.key === "ArrowDown") toFocus("next");
|
||||
else if (e.key === "ArrowUp") toFocus("prev");
|
||||
if (e.key === "Home") toFocus("first");
|
||||
else if (e.key === "End") toFocus("last");
|
||||
}
|
||||
function getSiblingElement(el, location) {
|
||||
if (!el) return void 0;
|
||||
let sibling = el;
|
||||
do
|
||||
sibling = sibling?.[location === "next" ? "nextElementSibling" : "previousElementSibling"];
|
||||
while (sibling?.hasAttribute("disabled"));
|
||||
return sibling;
|
||||
}
|
||||
function focus(location) {
|
||||
if (!contentRef.el) return;
|
||||
let el;
|
||||
if (!location) el = focusableChildren(contentRef.el)[0];
|
||||
else if (location === "next") {
|
||||
el = getSiblingElement(contentRef.el.querySelector(":focus"), location);
|
||||
if (!el) return focus("first");
|
||||
} else if (location === "prev") {
|
||||
el = getSiblingElement(contentRef.el.querySelector(":focus"), location);
|
||||
if (!el) return focus("last");
|
||||
} else if (location === "first") {
|
||||
el = contentRef.el.firstElementChild;
|
||||
if (el?.hasAttribute("disabled")) el = getSiblingElement(el, "next");
|
||||
} else if (location === "last") {
|
||||
el = contentRef.el.lastElementChild;
|
||||
if (el?.hasAttribute("disabled")) el = getSiblingElement(el, "prev");
|
||||
}
|
||||
if (el) el.focus({ preventScroll: true });
|
||||
}
|
||||
function scrollTo(location) {
|
||||
const direction = isHorizontal.value && isRtl.value ? -1 : 1;
|
||||
const offsetStep = (location === "prev" ? -direction : direction) * containerSize.value;
|
||||
let newPosition = scrollOffset.value + offsetStep;
|
||||
if (isHorizontal.value && isRtl.value && containerRef.el) {
|
||||
const { scrollWidth, offsetWidth: containerWidth } = containerRef.el;
|
||||
newPosition += scrollWidth - containerWidth;
|
||||
}
|
||||
scrollToPosition(newPosition);
|
||||
}
|
||||
const slotProps = computed(() => ({
|
||||
next: group.next,
|
||||
prev: group.prev,
|
||||
select: group.select,
|
||||
isSelected: group.isSelected
|
||||
}));
|
||||
const hasOverflowOrScroll = computed(() => isOverflowing.value || Math.abs(scrollOffset.value) > 0);
|
||||
const hasAffixes = computed(() => {
|
||||
switch (props.showArrows) {
|
||||
case "never": return false;
|
||||
case "always": return true;
|
||||
case "desktop": return !mobile.value;
|
||||
case true: return hasOverflowOrScroll.value;
|
||||
case "mobile": return mobile.value || hasOverflowOrScroll.value;
|
||||
default: return !mobile.value && hasOverflowOrScroll.value;
|
||||
}
|
||||
});
|
||||
const hasPrev = computed(() => {
|
||||
return Math.abs(scrollOffset.value) > 1;
|
||||
});
|
||||
const hasNext = computed(() => {
|
||||
if (!hasOverflowOrScroll.value) return false;
|
||||
return contentSize.value - containerSize.value - Math.abs(scrollOffset.value) > 1;
|
||||
});
|
||||
useRender(() => createVNode(props.tag, {
|
||||
"class": normalizeClass([
|
||||
"v-slide-group",
|
||||
{
|
||||
"v-slide-group--vertical": !isHorizontal.value,
|
||||
"v-slide-group--has-affixes": hasAffixes.value,
|
||||
"v-slide-group--is-overflowing": isOverflowing.value
|
||||
},
|
||||
displayClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle(props.style),
|
||||
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
||||
"onFocus": onFocus
|
||||
}, { default: () => [
|
||||
hasAffixes.value && createBaseVNode("div", {
|
||||
"key": "prev",
|
||||
"class": normalizeClass(["v-slide-group__prev", { "v-slide-group__prev--disabled": !hasPrev.value }]),
|
||||
"onMousedown": onFocusAffixes,
|
||||
"onClick": () => hasPrev.value && scrollTo("prev")
|
||||
}, [slots.prev?.(slotProps.value) ?? createVNode(VFadeTransition, null, { default: () => [createVNode(VIcon, { "icon": isRtl.value ? props.nextIcon : props.prevIcon }, null)] })]),
|
||||
createBaseVNode("div", {
|
||||
"key": "container",
|
||||
"ref": containerRef,
|
||||
"class": normalizeClass(["v-slide-group__container", props.contentClass]),
|
||||
"onScroll": onScroll
|
||||
}, [createBaseVNode("div", {
|
||||
"ref": contentRef,
|
||||
"class": "v-slide-group__content",
|
||||
"onFocusin": onFocusin,
|
||||
"onFocusout": onFocusout,
|
||||
"onKeydown": onKeydown
|
||||
}, [slots.default?.(slotProps.value)])]),
|
||||
hasAffixes.value && createBaseVNode("div", {
|
||||
"key": "next",
|
||||
"class": normalizeClass(["v-slide-group__next", { "v-slide-group__next--disabled": !hasNext.value }]),
|
||||
"onMousedown": onFocusAffixes,
|
||||
"onClick": () => hasNext.value && scrollTo("next")
|
||||
}, [slots.next?.(slotProps.value) ?? createVNode(VFadeTransition, null, { default: () => [createVNode(VIcon, { "icon": isRtl.value ? props.prevIcon : props.nextIcon }, null)] })])
|
||||
] }));
|
||||
return {
|
||||
selected: group.selected,
|
||||
scrollTo,
|
||||
scrollOffset,
|
||||
focus,
|
||||
hasPrev,
|
||||
hasNext
|
||||
};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { VSlideGroupSymbol as n, makeVSlideGroupProps as r, VSlideGroup as t };
|
||||
|
||||
//# sourceMappingURL=VSlideGroup-TpMGTwfd.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-170
@@ -1,170 +0,0 @@
|
||||
import { U as computed, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, et as createVNode, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { _ as convertToUnit, a as provideDefaults, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as VExpandTransition } from "./transitions-DCQ3sjjZ.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { t as useBackgroundColor } from "./color-B6vuQruj.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { i as useRtl } from "./locale-DDGMqzqb.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { t as VDefaultsProvider } from "./VDefaultsProvider-C09t4-My.js";
|
||||
import { t as VImg } from "./VImg-DaEUT7gG.js";
|
||||
import { n as useRounded, t as makeRoundedProps } from "./rounded-BuPGKRa9.js";
|
||||
import { n as useBorder, t as makeBorderProps } from "./border-jCmRyoxP.js";
|
||||
import { n as useElevation, t as makeElevationProps } from "./elevation-B0TH2wU6.js";
|
||||
import { n as useLocation, t as makeLocationProps } from "./location-BIKTnDF4.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VToolbar/VToolbar.css";
|
||||
//#region node_modules/vuetify/lib/components/VToolbar/VToolbarTitle.js
|
||||
var makeVToolbarTitleProps = propsFactory({
|
||||
text: String,
|
||||
...makeComponentProps(),
|
||||
...makeTagProps()
|
||||
}, "VToolbarTitle");
|
||||
var VToolbarTitle = genericComponent()({
|
||||
name: "VToolbarTitle",
|
||||
props: makeVToolbarTitleProps(),
|
||||
setup(props, { slots }) {
|
||||
useRender(() => {
|
||||
const hasText = !!(slots.default || slots.text || props.text);
|
||||
return createVNode(props.tag, {
|
||||
"class": normalizeClass(["v-toolbar-title", props.class]),
|
||||
"style": normalizeStyle(props.style)
|
||||
}, { default: () => [hasText && createBaseVNode("div", { "class": "v-toolbar-title__placeholder" }, [slots.text ? slots.text() : props.text, slots.default?.()])] });
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VToolbar/VToolbar.js
|
||||
var allowedDensities = [
|
||||
null,
|
||||
"prominent",
|
||||
"default",
|
||||
"comfortable",
|
||||
"compact"
|
||||
];
|
||||
var makeVToolbarProps = propsFactory({
|
||||
absolute: Boolean,
|
||||
collapse: Boolean,
|
||||
collapsePosition: {
|
||||
type: String,
|
||||
default: "start"
|
||||
},
|
||||
color: String,
|
||||
density: {
|
||||
type: String,
|
||||
default: "default",
|
||||
validator: (v) => allowedDensities.includes(v)
|
||||
},
|
||||
extended: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
extensionHeight: {
|
||||
type: [Number, String],
|
||||
default: 48
|
||||
},
|
||||
flat: Boolean,
|
||||
floating: Boolean,
|
||||
height: {
|
||||
type: [Number, String],
|
||||
default: 64
|
||||
},
|
||||
image: String,
|
||||
title: String,
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeElevationProps(),
|
||||
...makeLocationProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps({ tag: "header" }),
|
||||
...makeThemeProps()
|
||||
}, "VToolbar");
|
||||
var VToolbar = genericComponent()({
|
||||
name: "VToolbar",
|
||||
props: makeVToolbarProps(),
|
||||
setup(props, { slots }) {
|
||||
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color);
|
||||
const { borderClasses } = useBorder(props);
|
||||
const { elevationClasses } = useElevation(props);
|
||||
const { locationStyles } = useLocation(props);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { rtlClasses } = useRtl();
|
||||
const isExtended = shallowRef(props.extended === null ? !!slots.extension?.() : props.extended);
|
||||
const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === "prominent" ? Number(props.height) : 0) - (props.density === "comfortable" ? 8 : 0) - (props.density === "compact" ? 16 : 0), 10));
|
||||
const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === "prominent" ? Number(props.extensionHeight) : 0) - (props.density === "comfortable" ? 4 : 0) - (props.density === "compact" ? 8 : 0), 10) : 0);
|
||||
provideDefaults({ VBtn: { variant: "text" } });
|
||||
useRender(() => {
|
||||
const hasTitle = !!(props.title || slots.title);
|
||||
const hasImage = !!(slots.image || props.image);
|
||||
const extension = slots.extension?.();
|
||||
isExtended.value = props.extended === null ? !!extension : props.extended;
|
||||
return createVNode(props.tag, {
|
||||
"class": normalizeClass([
|
||||
"v-toolbar",
|
||||
`v-toolbar--collapse-${props.collapsePosition}`,
|
||||
{
|
||||
"v-toolbar--absolute": props.absolute,
|
||||
"v-toolbar--collapse": props.collapse,
|
||||
"v-toolbar--flat": props.flat,
|
||||
"v-toolbar--floating": props.floating,
|
||||
[`v-toolbar--density-${props.density}`]: true
|
||||
},
|
||||
backgroundColorClasses.value,
|
||||
borderClasses.value,
|
||||
elevationClasses.value,
|
||||
roundedClasses.value,
|
||||
themeClasses.value,
|
||||
rtlClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
backgroundColorStyles.value,
|
||||
locationStyles.value,
|
||||
props.style
|
||||
])
|
||||
}, { default: () => [
|
||||
hasImage && createBaseVNode("div", {
|
||||
"key": "image",
|
||||
"class": "v-toolbar__image"
|
||||
}, [!slots.image ? createVNode(VImg, {
|
||||
"key": "image-img",
|
||||
"cover": true,
|
||||
"src": props.image
|
||||
}, null) : createVNode(VDefaultsProvider, {
|
||||
"key": "image-defaults",
|
||||
"disabled": !props.image,
|
||||
"defaults": { VImg: {
|
||||
cover: true,
|
||||
src: props.image
|
||||
} }
|
||||
}, slots.image)]),
|
||||
createVNode(VDefaultsProvider, { "defaults": { VTabs: { height: convertToUnit(contentHeight.value) } } }, { default: () => [createBaseVNode("div", {
|
||||
"class": "v-toolbar__content",
|
||||
"style": { height: convertToUnit(contentHeight.value) }
|
||||
}, [
|
||||
slots.prepend && createBaseVNode("div", { "class": "v-toolbar__prepend" }, [slots.prepend?.()]),
|
||||
hasTitle && createVNode(VToolbarTitle, {
|
||||
"key": "title",
|
||||
"text": props.title
|
||||
}, { text: slots.title }),
|
||||
slots.default?.(),
|
||||
slots.append && createBaseVNode("div", { "class": "v-toolbar__append" }, [slots.append?.()])
|
||||
])] }),
|
||||
createVNode(VDefaultsProvider, { "defaults": { VTabs: { height: convertToUnit(extensionHeight.value) } } }, { default: () => [createVNode(VExpandTransition, null, { default: () => [isExtended.value && createBaseVNode("div", {
|
||||
"class": "v-toolbar__extension",
|
||||
"style": { height: convertToUnit(extensionHeight.value) }
|
||||
}, [extension])] })] })
|
||||
] });
|
||||
});
|
||||
return {
|
||||
contentHeight,
|
||||
extensionHeight
|
||||
};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
export { makeVToolbarTitleProps as i, makeVToolbarProps as n, VToolbarTitle as r, VToolbar as t };
|
||||
|
||||
//# sourceMappingURL=VToolbar-XKeTy7Mr.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
+265
-125
@@ -2,7 +2,7 @@
|
||||
"hash": "8e064f63",
|
||||
"configHash": "9602e671",
|
||||
"lockfileHash": "2af5d584",
|
||||
"browserHash": "42fe83ff",
|
||||
"browserHash": "96f57e4a",
|
||||
"optimized": {
|
||||
"vue-router": {
|
||||
"src": "../../vue-router/dist/vue-router.mjs",
|
||||
@@ -19,347 +19,487 @@
|
||||
"vuetify": {
|
||||
"src": "../../vuetify/lib/framework.js",
|
||||
"file": "vuetify.js",
|
||||
"fileHash": "f2f22051",
|
||||
"fileHash": "c6e98d38",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VAlert": {
|
||||
"src": "../../vuetify/lib/components/VAlert/index.js",
|
||||
"file": "vuetify_components_VAlert.js",
|
||||
"fileHash": "ab007c98",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VApp": {
|
||||
"src": "../../vuetify/lib/components/VApp/index.js",
|
||||
"file": "vuetify_components_VApp.js",
|
||||
"fileHash": "7d5bc39c",
|
||||
"fileHash": "f20430f7",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VAppBar": {
|
||||
"src": "../../vuetify/lib/components/VAppBar/index.js",
|
||||
"file": "vuetify_components_VAppBar.js",
|
||||
"fileHash": "52919531",
|
||||
"fileHash": "269d1d21",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VAvatar": {
|
||||
"src": "../../vuetify/lib/components/VAvatar/index.js",
|
||||
"file": "vuetify_components_VAvatar.js",
|
||||
"fileHash": "affaa970",
|
||||
"fileHash": "ec01a545",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VBtn": {
|
||||
"src": "../../vuetify/lib/components/VBtn/index.js",
|
||||
"file": "vuetify_components_VBtn.js",
|
||||
"fileHash": "bf1868e4",
|
||||
"fileHash": "0fcf61d0",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VBtnToggle": {
|
||||
"src": "../../vuetify/lib/components/VBtnToggle/index.js",
|
||||
"file": "vuetify_components_VBtnToggle.js",
|
||||
"fileHash": "639387a0",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VCard": {
|
||||
"src": "../../vuetify/lib/components/VCard/index.js",
|
||||
"file": "vuetify_components_VCard.js",
|
||||
"fileHash": "1d7888e1",
|
||||
"fileHash": "1fdfa6bf",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VChip": {
|
||||
"src": "../../vuetify/lib/components/VChip/index.js",
|
||||
"file": "vuetify_components_VChip.js",
|
||||
"fileHash": "65e75ee4",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VCode": {
|
||||
"src": "../../vuetify/lib/components/VCode/index.js",
|
||||
"file": "vuetify_components_VCode.js",
|
||||
"fileHash": "3bb42ba7",
|
||||
"fileHash": "c2812980",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VDataTable": {
|
||||
"src": "../../vuetify/lib/components/VDataTable/index.js",
|
||||
"file": "vuetify_components_VDataTable.js",
|
||||
"fileHash": "a51c2fa4",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VDialog": {
|
||||
"src": "../../vuetify/lib/components/VDialog/index.js",
|
||||
"file": "vuetify_components_VDialog.js",
|
||||
"fileHash": "ab2af168",
|
||||
"fileHash": "9634c8d8",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VDivider": {
|
||||
"src": "../../vuetify/lib/components/VDivider/index.js",
|
||||
"file": "vuetify_components_VDivider.js",
|
||||
"fileHash": "94063435",
|
||||
"fileHash": "7aa6c03c",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VEmptyState": {
|
||||
"src": "../../vuetify/lib/components/VEmptyState/index.js",
|
||||
"file": "vuetify_components_VEmptyState.js",
|
||||
"fileHash": "85c1d869",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VExpansionPanel": {
|
||||
"src": "../../vuetify/lib/components/VExpansionPanel/index.js",
|
||||
"file": "vuetify_components_VExpansionPanel.js",
|
||||
"fileHash": "ec3b7564",
|
||||
"fileHash": "a0026ebc",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VFileInput": {
|
||||
"src": "../../vuetify/lib/components/VFileInput/index.js",
|
||||
"file": "vuetify_components_VFileInput.js",
|
||||
"fileHash": "b38829ad",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VForm": {
|
||||
"src": "../../vuetify/lib/components/VForm/index.js",
|
||||
"file": "vuetify_components_VForm.js",
|
||||
"fileHash": "ed25eb6f",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VGrid": {
|
||||
"src": "../../vuetify/lib/components/VGrid/index.js",
|
||||
"file": "vuetify_components_VGrid.js",
|
||||
"fileHash": "51bab3d5",
|
||||
"fileHash": "a4bea739",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VIcon": {
|
||||
"src": "../../vuetify/lib/components/VIcon/index.js",
|
||||
"file": "vuetify_components_VIcon.js",
|
||||
"fileHash": "2b9944e9",
|
||||
"fileHash": "539b5820",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VImg": {
|
||||
"src": "../../vuetify/lib/components/VImg/index.js",
|
||||
"file": "vuetify_components_VImg.js",
|
||||
"fileHash": "9243aee4",
|
||||
"fileHash": "5753ddf7",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VList": {
|
||||
"src": "../../vuetify/lib/components/VList/index.js",
|
||||
"file": "vuetify_components_VList.js",
|
||||
"fileHash": "c02ef873",
|
||||
"fileHash": "9322645a",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VMain": {
|
||||
"src": "../../vuetify/lib/components/VMain/index.js",
|
||||
"file": "vuetify_components_VMain.js",
|
||||
"fileHash": "71aadc09",
|
||||
"fileHash": "33923772",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VMenu": {
|
||||
"src": "../../vuetify/lib/components/VMenu/index.js",
|
||||
"file": "vuetify_components_VMenu.js",
|
||||
"fileHash": "d7a1339d",
|
||||
"fileHash": "8cecfbc2",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VNavigationDrawer": {
|
||||
"src": "../../vuetify/lib/components/VNavigationDrawer/index.js",
|
||||
"file": "vuetify_components_VNavigationDrawer.js",
|
||||
"fileHash": "708ecbaa",
|
||||
"fileHash": "32ab5ae0",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VProgressLinear": {
|
||||
"src": "../../vuetify/lib/components/VProgressLinear/index.js",
|
||||
"file": "vuetify_components_VProgressLinear.js",
|
||||
"fileHash": "9856819c",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VSelect": {
|
||||
"src": "../../vuetify/lib/components/VSelect/index.js",
|
||||
"file": "vuetify_components_VSelect.js",
|
||||
"fileHash": "246963c8",
|
||||
"fileHash": "92807e93",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VSheet": {
|
||||
"src": "../../vuetify/lib/components/VSheet/index.js",
|
||||
"file": "vuetify_components_VSheet.js",
|
||||
"fileHash": "95c536e9",
|
||||
"fileHash": "e87c90bb",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VSnackbar": {
|
||||
"src": "../../vuetify/lib/components/VSnackbar/index.js",
|
||||
"file": "vuetify_components_VSnackbar.js",
|
||||
"fileHash": "65283df8",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VSwitch": {
|
||||
"src": "../../vuetify/lib/components/VSwitch/index.js",
|
||||
"file": "vuetify_components_VSwitch.js",
|
||||
"fileHash": "9703e7db",
|
||||
"fileHash": "5798cdd3",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VTabs": {
|
||||
"src": "../../vuetify/lib/components/VTabs/index.js",
|
||||
"file": "vuetify_components_VTabs.js",
|
||||
"fileHash": "3caec951",
|
||||
"fileHash": "05f9a354",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VTextField": {
|
||||
"src": "../../vuetify/lib/components/VTextField/index.js",
|
||||
"file": "vuetify_components_VTextField.js",
|
||||
"fileHash": "6959b30d",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VTextarea": {
|
||||
"src": "../../vuetify/lib/components/VTextarea/index.js",
|
||||
"file": "vuetify_components_VTextarea.js",
|
||||
"fileHash": "88df35a8",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VTimeline": {
|
||||
"src": "../../vuetify/lib/components/VTimeline/index.js",
|
||||
"file": "vuetify_components_VTimeline.js",
|
||||
"fileHash": "dfc98cd0",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/VToolbar": {
|
||||
"src": "../../vuetify/lib/components/VToolbar/index.js",
|
||||
"file": "vuetify_components_VToolbar.js",
|
||||
"fileHash": "af8ddee1",
|
||||
"fileHash": "37534b0f",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/components/transitions": {
|
||||
"src": "../../vuetify/lib/components/transitions/index.js",
|
||||
"file": "vuetify_components_transitions.js",
|
||||
"fileHash": "d7b77fc2",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vuetify/labs/VDateInput": {
|
||||
"src": "../../vuetify/lib/labs/VDateInput/index.js",
|
||||
"file": "vuetify_labs_VDateInput.js",
|
||||
"fileHash": "25fd9cc8",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {
|
||||
"VAvatar-CA-KqvIX": {
|
||||
"file": "VAvatar-CA-KqvIX.js",
|
||||
"VAvatar-DdzLb6e_": {
|
||||
"file": "VAvatar-DdzLb6e_.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VBtn-BZzD9gwE": {
|
||||
"file": "VBtn-BZzD9gwE.js",
|
||||
"VBadge-CiN6PgMV": {
|
||||
"file": "VBadge-CiN6PgMV.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VDefaultsProvider-C09t4-My": {
|
||||
"file": "VDefaultsProvider-C09t4-My.js",
|
||||
"VBtn-0bT-99qM": {
|
||||
"file": "VBtn-0bT-99qM.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VDivider-BJiijT0J": {
|
||||
"file": "VDivider-BJiijT0J.js",
|
||||
"VBtnToggle-COHI6AoR": {
|
||||
"file": "VBtnToggle-COHI6AoR.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VIcon-1CJH_3Uo": {
|
||||
"file": "VIcon-1CJH_3Uo.js",
|
||||
"VChip-CE9xKsuM": {
|
||||
"file": "VChip-CE9xKsuM.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VImg-DaEUT7gG": {
|
||||
"file": "VImg-DaEUT7gG.js",
|
||||
"VDefaultsProvider-CTN39wwv": {
|
||||
"file": "VDefaultsProvider-CTN39wwv.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VInput-BxI8SL-_": {
|
||||
"file": "VInput-BxI8SL-_.js",
|
||||
"VDivider-vMskEUvN": {
|
||||
"file": "VDivider-vMskEUvN.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VList-DkWOjB0M": {
|
||||
"file": "VList-DkWOjB0M.js",
|
||||
"VField-D15cm8qP": {
|
||||
"file": "VField-D15cm8qP.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VMenu-DCQFp-2Y": {
|
||||
"file": "VMenu-DCQFp-2Y.js",
|
||||
"VGrid-DPxB4khS": {
|
||||
"file": "VGrid-DPxB4khS.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VOverlay-BS8OrX3g": {
|
||||
"file": "VOverlay-BS8OrX3g.js",
|
||||
"VIcon-sEJi0XKP": {
|
||||
"file": "VIcon-sEJi0XKP.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VProgressCircular-yKv2qs75": {
|
||||
"file": "VProgressCircular-yKv2qs75.js",
|
||||
"VImg-B3K_zKHG": {
|
||||
"file": "VImg-B3K_zKHG.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VSheet-CLHX3uIJ": {
|
||||
"file": "VSheet-CLHX3uIJ.js",
|
||||
"VLabel-BWVZfhvb": {
|
||||
"file": "VLabel-BWVZfhvb.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VSlideGroup-TpMGTwfd": {
|
||||
"file": "VSlideGroup-TpMGTwfd.js",
|
||||
"VList-BPYFsjU7": {
|
||||
"file": "VList-BPYFsjU7.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"VToolbar-XKeTy7Mr": {
|
||||
"file": "VToolbar-XKeTy7Mr.js",
|
||||
"VMenu-tK8Rb46Q": {
|
||||
"file": "VMenu-tK8Rb46Q.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"anchor-DB_quObT": {
|
||||
"file": "anchor-DB_quObT.js",
|
||||
"VOverlay-CXGz5s5q": {
|
||||
"file": "VOverlay-CXGz5s5q.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"border-jCmRyoxP": {
|
||||
"file": "border-jCmRyoxP.js",
|
||||
"VProgressCircular-BQ041Mfz": {
|
||||
"file": "VProgressCircular-BQ041Mfz.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"box-BNWMOtF7": {
|
||||
"file": "box-BNWMOtF7.js",
|
||||
"VProgressLinear-DIOl79V8": {
|
||||
"file": "VProgressLinear-DIOl79V8.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"color-B6vuQruj": {
|
||||
"file": "color-B6vuQruj.js",
|
||||
"VSelect-DP-1aJrD": {
|
||||
"file": "VSelect-DP-1aJrD.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"colorUtils-BE28T62U": {
|
||||
"file": "colorUtils-BE28T62U.js",
|
||||
"VSelectionControl-CPYYRZWE": {
|
||||
"file": "VSelectionControl-CPYYRZWE.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"component-DdiwBe6i": {
|
||||
"file": "component-DdiwBe6i.js",
|
||||
"VSheet-C9a054Bu": {
|
||||
"file": "VSheet-C9a054Bu.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"createSimpleFunctional-Cqw8cOWQ": {
|
||||
"file": "createSimpleFunctional-Cqw8cOWQ.js",
|
||||
"VSlideGroup-CTSq2TjT": {
|
||||
"file": "VSlideGroup-CTSq2TjT.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"deepEqual-DDqmGqyF": {
|
||||
"file": "deepEqual-DDqmGqyF.js",
|
||||
"VTextField-BAHlIp66": {
|
||||
"file": "VTextField-BAHlIp66.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"defineComponent-DB6xIcDy": {
|
||||
"file": "defineComponent-DB6xIcDy.js",
|
||||
"VToolbar-CBjuzsOU": {
|
||||
"file": "VToolbar-CBjuzsOU.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"density-CpKZ5PhP": {
|
||||
"file": "density-CpKZ5PhP.js",
|
||||
"anchor-fmhqx-jH": {
|
||||
"file": "anchor-fmhqx-jH.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"dimensions-BDdmuRdK": {
|
||||
"file": "dimensions-BDdmuRdK.js",
|
||||
"animation-IGJS3o2f": {
|
||||
"file": "animation-IGJS3o2f.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"display-DKaCj-_K": {
|
||||
"file": "display-DKaCj-_K.js",
|
||||
"autofocus-DSuuMpGE": {
|
||||
"file": "autofocus-DSuuMpGE.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"border-BomwBLze": {
|
||||
"file": "border-BomwBLze.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"box-De_BNjdi": {
|
||||
"file": "box-De_BNjdi.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"color-CsNXUJXB": {
|
||||
"file": "color-CsNXUJXB.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"colorUtils-CrR4MKb6": {
|
||||
"file": "colorUtils-CrR4MKb6.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"component-cNt7KGbA": {
|
||||
"file": "component-cNt7KGbA.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"createSimpleFunctional-CJfT4avK": {
|
||||
"file": "createSimpleFunctional-CJfT4avK.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"date-DIfArSSH": {
|
||||
"file": "date-DIfArSSH.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"deepEqual-tRUStdYj": {
|
||||
"file": "deepEqual-tRUStdYj.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"defineComponent-92h8LsW-": {
|
||||
"file": "defineComponent-92h8LsW-.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"density-D-xugoKB": {
|
||||
"file": "density-D-xugoKB.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"dimensions-BOUfezru": {
|
||||
"file": "dimensions-BOUfezru.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"display-NNQAdN_b": {
|
||||
"file": "display-NNQAdN_b.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"easing-DfcvkbkS": {
|
||||
"file": "easing-DfcvkbkS.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"elevation-B0TH2wU6": {
|
||||
"file": "elevation-B0TH2wU6.js",
|
||||
"elevation-B2sqdJV6": {
|
||||
"file": "elevation-B2sqdJV6.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"focusTrap-rHoJd0qS": {
|
||||
"file": "focusTrap-rHoJd0qS.js",
|
||||
"focusTrap-5P1D0YbH": {
|
||||
"file": "focusTrap-5P1D0YbH.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"forwardRefs-CW3d8km7": {
|
||||
"file": "forwardRefs-CW3d8km7.js",
|
||||
"form-aavUvMUm": {
|
||||
"file": "form-aavUvMUm.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"forwardRefs-BgbYSFg3": {
|
||||
"file": "forwardRefs-BgbYSFg3.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"getScrollParent-DuXs8SPu": {
|
||||
"file": "getScrollParent-DuXs8SPu.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"goto-Bn-PzNUr": {
|
||||
"file": "goto-Bn-PzNUr.js",
|
||||
"goto-CD4cxzRn": {
|
||||
"file": "goto-CD4cxzRn.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"group-Cm2viEWK": {
|
||||
"file": "group-Cm2viEWK.js",
|
||||
"group-Ba02qEMS": {
|
||||
"file": "group-Ba02qEMS.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"icons-k2ZLE_i8": {
|
||||
"file": "icons-k2ZLE_i8.js",
|
||||
"icons-BqOQHwEN": {
|
||||
"file": "icons-BqOQHwEN.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"layout-C9QMoF7I": {
|
||||
"file": "layout-C9QMoF7I.js",
|
||||
"intersect-B3zhL1Fk": {
|
||||
"file": "intersect-B3zhL1Fk.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"lazy-DhsobH97": {
|
||||
"file": "lazy-DhsobH97.js",
|
||||
"layout-Booh7E97": {
|
||||
"file": "layout-Booh7E97.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"loader-CV4sMFhE": {
|
||||
"file": "loader-CV4sMFhE.js",
|
||||
"lazy-CNRMZBuk": {
|
||||
"file": "lazy-CNRMZBuk.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"locale-DDGMqzqb": {
|
||||
"file": "locale-DDGMqzqb.js",
|
||||
"loader-Cg-RQrUq": {
|
||||
"file": "loader-Cg-RQrUq.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"location-BIKTnDF4": {
|
||||
"file": "location-BIKTnDF4.js",
|
||||
"locale-BI-ulWIe": {
|
||||
"file": "locale-BI-ulWIe.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"position-BCUsnxVO": {
|
||||
"file": "position-BCUsnxVO.js",
|
||||
"location-Df6p1WYP": {
|
||||
"file": "location-Df6p1WYP.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"proxiedModel-DSlSIQ0y": {
|
||||
"file": "proxiedModel-DSlSIQ0y.js",
|
||||
"position-ew5Obs9G": {
|
||||
"file": "position-ew5Obs9G.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"resizeObserver-C12jWpYk": {
|
||||
"file": "resizeObserver-C12jWpYk.js",
|
||||
"proxiedModel-BI_mmSsi": {
|
||||
"file": "proxiedModel-BI_mmSsi.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"ripple-Z40rPDte": {
|
||||
"file": "ripple-Z40rPDte.js",
|
||||
"resizeObserver-Cj_8nVae": {
|
||||
"file": "resizeObserver-Cj_8nVae.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"rounded-BuPGKRa9": {
|
||||
"file": "rounded-BuPGKRa9.js",
|
||||
"ripple-BcjS5Kg8": {
|
||||
"file": "ripple-BcjS5Kg8.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"router-D_jP4Uwb": {
|
||||
"file": "router-D_jP4Uwb.js",
|
||||
"rounded-zeYjdF6x": {
|
||||
"file": "rounded-zeYjdF6x.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"scopeId-CyMkmyzM": {
|
||||
"file": "scopeId-CyMkmyzM.js",
|
||||
"router-CXIrojRO": {
|
||||
"file": "router-CXIrojRO.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"ssrBoot-CSc1_bcP": {
|
||||
"file": "ssrBoot-CSc1_bcP.js",
|
||||
"scopeId-BhBMGBSS": {
|
||||
"file": "scopeId-BhBMGBSS.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"tag-C_KkCPzB": {
|
||||
"file": "tag-C_KkCPzB.js",
|
||||
"ssrBoot-DPOmvdPm": {
|
||||
"file": "ssrBoot-DPOmvdPm.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"theme-Cx5kFg0-": {
|
||||
"file": "theme-Cx5kFg0-.js",
|
||||
"tag-BzACG_PL": {
|
||||
"file": "tag-BzACG_PL.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"transition-DqoZ8fA1": {
|
||||
"file": "transition-DqoZ8fA1.js",
|
||||
"theme-CwW_z-RC": {
|
||||
"file": "theme-CwW_z-RC.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"transitions-DCQ3sjjZ": {
|
||||
"file": "transitions-DCQ3sjjZ.js",
|
||||
"transition-C2n5e2YD": {
|
||||
"file": "transition-C2n5e2YD.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"useRender-fVtVsZgv": {
|
||||
"file": "useRender-fVtVsZgv.js",
|
||||
"transitions-CIB99T2D": {
|
||||
"file": "transitions-CIB99T2D.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"variant-CqXtG9Ih": {
|
||||
"file": "variant-CqXtG9Ih.js",
|
||||
"useRender-kn3mcOTh": {
|
||||
"file": "useRender-kn3mcOTh.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"variant-CXhPdVre": {
|
||||
"file": "variant-CXhPdVre.js",
|
||||
"isDynamicEntry": false
|
||||
},
|
||||
"vue.runtime.esm-bundler-BvoXUmaf": {
|
||||
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
import { P as includes } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/util/anchor.js
|
||||
var block = ["top", "bottom"];
|
||||
var inline = [
|
||||
"start",
|
||||
"end",
|
||||
"left",
|
||||
"right"
|
||||
];
|
||||
/** Parse a raw anchor string into an object */
|
||||
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";
|
||||
}
|
||||
//#endregion
|
||||
export { parseAnchor as a, getAxis as i, flipCorner as n, toPhysical as o, flipSide as r, flipAlign as t };
|
||||
|
||||
//# sourceMappingURL=anchor-DB_quObT.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"anchor-DB_quObT.js","names":[],"sources":["../../vuetify/lib/util/anchor.js"],"sourcesContent":["// Utilities\nimport { includes } from \"./helpers.js\";\nconst block = ['top', 'bottom'];\nconst inline = ['start', 'end', 'left', 'right'];\n/** Parse a raw anchor string into an object */\nexport function parseAnchor(anchor, isRtl) {\n let [side, align] = anchor.split(' ');\n if (!align) {\n align = includes(block, side) ? 'start' : includes(inline, side) ? 'top' : 'center';\n }\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl)\n };\n}\nexport function toPhysical(str, isRtl) {\n if (str === 'start') return isRtl ? 'right' : 'left';\n if (str === 'end') return isRtl ? 'left' : 'right';\n return str;\n}\nexport function flipSide(anchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.side],\n align: anchor.align\n };\n}\nexport function flipAlign(anchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.align]\n };\n}\nexport function flipCorner(anchor) {\n return {\n side: anchor.align,\n align: anchor.side\n };\n}\nexport function getAxis(anchor) {\n return includes(block, anchor.side) ? 'y' : 'x';\n}\n//# sourceMappingURL=anchor.js.map"],"mappings":";;AAEA,IAAM,QAAQ,CAAC,OAAO,SAAS;AAC/B,IAAM,SAAS;CAAC;CAAS;CAAO;CAAQ;CAAQ;;AAEhD,SAAgB,YAAY,QAAQ,OAAO;CACzC,IAAI,CAAC,MAAM,SAAS,OAAO,MAAM,IAAI;AACrC,KAAI,CAAC,MACH,SAAQ,SAAS,OAAO,KAAK,GAAG,UAAU,SAAS,QAAQ,KAAK,GAAG,QAAQ;AAE7E,QAAO;EACL,MAAM,WAAW,MAAM,MAAM;EAC7B,OAAO,WAAW,OAAO,MAAM;EAChC;;AAEH,SAAgB,WAAW,KAAK,OAAO;AACrC,KAAI,QAAQ,QAAS,QAAO,QAAQ,UAAU;AAC9C,KAAI,QAAQ,MAAO,QAAO,QAAQ,SAAS;AAC3C,QAAO;;AAET,SAAgB,SAAS,QAAQ;AAC/B,QAAO;EACL,MAAM;GACJ,QAAQ;GACR,KAAK;GACL,QAAQ;GACR,MAAM;GACN,OAAO;GACR,CAAC,OAAO;EACT,OAAO,OAAO;EACf;;AAEH,SAAgB,UAAU,QAAQ;AAChC,QAAO;EACL,MAAM,OAAO;EACb,OAAO;GACL,QAAQ;GACR,KAAK;GACL,QAAQ;GACR,MAAM;GACN,OAAO;GACR,CAAC,OAAO;EACV;;AAEH,SAAgB,WAAW,QAAQ;AACjC,QAAO;EACL,MAAM,OAAO;EACb,OAAO,OAAO;EACf;;AAEH,SAAgB,QAAQ,QAAQ;AAC9B,QAAO,SAAS,OAAO,OAAO,KAAK,GAAG,MAAM"}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
import { U as computed } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { c as getCurrentInstanceName, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/border.js
|
||||
var makeBorderProps = propsFactory({ border: [
|
||||
Boolean,
|
||||
Number,
|
||||
String
|
||||
] }, "border");
|
||||
function useBorder(props, name = getCurrentInstanceName()) {
|
||||
return { borderClasses: computed(() => {
|
||||
const border = props.border;
|
||||
if (border === true || border === "") return `${name}--border`;
|
||||
else if (typeof border === "string" || border === 0) return String(border).split(" ").map((v) => `border-${v}`);
|
||||
return [];
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { useBorder as n, makeBorderProps as t };
|
||||
|
||||
//# sourceMappingURL=border-jCmRyoxP.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"border-jCmRyoxP.js","names":[],"sources":["../../vuetify/lib/composables/border.js"],"sourcesContent":["// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String]\n}, 'border');\nexport function useBorder(props, name = getCurrentInstanceName()) {\n const borderClasses = computed(() => {\n const border = props.border;\n if (border === true || border === '') {\n return `${name}--border`;\n } else if (typeof border === 'string' || border === 0) {\n return String(border).split(' ').map(v => `border-${v}`);\n }\n return [];\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.js.map"],"mappings":";;;AAIA,IAAa,kBAAkB,aAAa,EAC1C,QAAQ;CAAC;CAAS;CAAQ;CAAO,EAClC,EAAE,SAAS;AACZ,SAAgB,UAAU,OAAO,OAAO,wBAAwB,EAAE;AAUhE,QAAO,EACL,eAVoB,eAAe;EACnC,MAAM,SAAS,MAAM;AACrB,MAAI,WAAW,QAAQ,WAAW,GAChC,QAAO,GAAG,KAAK;WACN,OAAO,WAAW,YAAY,WAAW,EAClD,QAAO,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,KAAI,MAAK,UAAU,IAAI;AAE1D,SAAO,EAAE;GAGI,EACd"}
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
//#region node_modules/vuetify/lib/util/box.js
|
||||
var Box = class {
|
||||
constructor(args) {
|
||||
const pageScale = document.body.currentCSSZoom ?? 1;
|
||||
const isElement = args instanceof Element;
|
||||
const factor = isElement ? 1 + (1 - pageScale) / pageScale : 1;
|
||||
const { x, y, width, height } = isElement ? args.getBoundingClientRect() : args;
|
||||
this.x = x * factor;
|
||||
this.y = y * factor;
|
||||
this.width = width * factor;
|
||||
this.height = height * factor;
|
||||
}
|
||||
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)) {
|
||||
const pageScale = document.body.currentCSSZoom ?? 1;
|
||||
const factor = 1 + (1 - pageScale) / pageScale;
|
||||
return new Box({
|
||||
x: target[0] * factor,
|
||||
y: target[1] * factor,
|
||||
width: 0 * factor,
|
||||
height: 0 * factor
|
||||
});
|
||||
} else return new Box(target);
|
||||
}
|
||||
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 {
|
||||
const pageScale = document.body.currentCSSZoom ?? 1;
|
||||
return new Box({
|
||||
x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
|
||||
y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
|
||||
width: visualViewport.width * visualViewport.scale / pageScale,
|
||||
height: visualViewport.height * visualViewport.scale / pageScale
|
||||
});
|
||||
}
|
||||
else return new Box(el);
|
||||
}
|
||||
//#endregion
|
||||
export { getTargetBox as i, getElementBox as n, getOverflow as r, Box as t };
|
||||
|
||||
//# sourceMappingURL=box-BNWMOtF7.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"box-BNWMOtF7.js","names":[],"sources":["../../vuetify/lib/util/box.js"],"sourcesContent":["export class Box {\n constructor(args) {\n const pageScale = document.body.currentCSSZoom ?? 1;\n const isElement = args instanceof Element;\n const factor = isElement ? 1 + (1 - pageScale) / pageScale : 1;\n const {\n x,\n y,\n width,\n height\n } = isElement ? args.getBoundingClientRect() : args;\n this.x = x * factor;\n this.y = y * factor;\n this.width = width * factor;\n this.height = height * factor;\n }\n get top() {\n return this.y;\n }\n get bottom() {\n return this.y + this.height;\n }\n get left() {\n return this.x;\n }\n get right() {\n return this.x + this.width;\n }\n}\nexport function getOverflow(a, b) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right)\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom)\n }\n };\n}\nexport function getTargetBox(target) {\n if (Array.isArray(target)) {\n const pageScale = document.body.currentCSSZoom ?? 1;\n const factor = 1 + (1 - pageScale) / pageScale;\n return new Box({\n x: target[0] * factor,\n y: target[1] * factor,\n width: 0 * factor,\n height: 0 * factor\n });\n } else {\n return new Box(target);\n }\n}\nexport function getElementBox(el) {\n if (el === document.documentElement) {\n if (!visualViewport) {\n return new Box({\n x: 0,\n y: 0,\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight\n });\n } else {\n const pageScale = document.body.currentCSSZoom ?? 1;\n return new Box({\n x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,\n y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,\n width: visualViewport.width * visualViewport.scale / pageScale,\n height: visualViewport.height * visualViewport.scale / pageScale\n });\n }\n } else {\n return new Box(el);\n }\n}\n//# sourceMappingURL=box.js.map"],"mappings":";AAAA,IAAa,MAAb,MAAiB;CACf,YAAY,MAAM;EAChB,MAAM,YAAY,SAAS,KAAK,kBAAkB;EAClD,MAAM,YAAY,gBAAgB;EAClC,MAAM,SAAS,YAAY,KAAK,IAAI,aAAa,YAAY;EAC7D,MAAM,EACJ,GACA,GACA,OACA,WACE,YAAY,KAAK,uBAAuB,GAAG;AAC/C,OAAK,IAAI,IAAI;AACb,OAAK,IAAI,IAAI;AACb,OAAK,QAAQ,QAAQ;AACrB,OAAK,SAAS,SAAS;;CAEzB,IAAI,MAAM;AACR,SAAO,KAAK;;CAEd,IAAI,SAAS;AACX,SAAO,KAAK,IAAI,KAAK;;CAEvB,IAAI,OAAO;AACT,SAAO,KAAK;;CAEd,IAAI,QAAQ;AACV,SAAO,KAAK,IAAI,KAAK;;;AAGzB,SAAgB,YAAY,GAAG,GAAG;AAChC,QAAO;EACL,GAAG;GACD,QAAQ,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK;GACpC,OAAO,KAAK,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM;GACtC;EACD,GAAG;GACD,QAAQ,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI;GAClC,OAAO,KAAK,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO;GACxC;EACF;;AAEH,SAAgB,aAAa,QAAQ;AACnC,KAAI,MAAM,QAAQ,OAAO,EAAE;EACzB,MAAM,YAAY,SAAS,KAAK,kBAAkB;EAClD,MAAM,SAAS,KAAK,IAAI,aAAa;AACrC,SAAO,IAAI,IAAI;GACb,GAAG,OAAO,KAAK;GACf,GAAG,OAAO,KAAK;GACf,OAAO,IAAI;GACX,QAAQ,IAAI;GACb,CAAC;OAEF,QAAO,IAAI,IAAI,OAAO;;AAG1B,SAAgB,cAAc,IAAI;AAChC,KAAI,OAAO,SAAS,gBAClB,KAAI,CAAC,eACH,QAAO,IAAI,IAAI;EACb,GAAG;EACH,GAAG;EACH,OAAO,SAAS,gBAAgB;EAChC,QAAQ,SAAS,gBAAgB;EAClC,CAAC;MACG;EACL,MAAM,YAAY,SAAS,KAAK,kBAAkB;AAClD,SAAO,IAAI,IAAI;GACb,GAAG,eAAe,QAAQ,IAAI,IAAI,eAAe;GACjD,GAAG,eAAe,QAAQ,IAAI,IAAI,eAAe;GACjD,OAAO,eAAe,QAAQ,eAAe,QAAQ;GACrD,QAAQ,eAAe,SAAS,eAAe,QAAQ;GACxD,CAAC;;KAGJ,QAAO,IAAI,IAAI,GAAG"}
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
import { er as toValue } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { x as destructComputed } from "./defineComponent-DB6xIcDy.js";
|
||||
import { a as isCssColor, c as parseColor, i as hasLightForeground, o as isParsableColor } from "./colorUtils-BE28T62U.js";
|
||||
//#region node_modules/vuetify/lib/composables/color.js
|
||||
function useColor(colors) {
|
||||
return destructComputed(() => {
|
||||
const { class: colorClasses, style: colorStyles } = computeColor(colors);
|
||||
return {
|
||||
colorClasses,
|
||||
colorStyles
|
||||
};
|
||||
});
|
||||
}
|
||||
function useTextColor(color) {
|
||||
const { colorClasses: textColorClasses, colorStyles: textColorStyles } = useColor(() => ({ text: toValue(color) }));
|
||||
return {
|
||||
textColorClasses,
|
||||
textColorStyles
|
||||
};
|
||||
}
|
||||
function useBackgroundColor(color) {
|
||||
const { colorClasses: backgroundColorClasses, colorStyles: backgroundColorStyles } = useColor(() => ({ background: toValue(color) }));
|
||||
return {
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
};
|
||||
}
|
||||
function normalizeColors(colors) {
|
||||
return {
|
||||
text: typeof colors.text === "string" ? colors.text.replace(/^text-/, "") : colors.text,
|
||||
background: typeof colors.background === "string" ? colors.background.replace(/^bg-/, "") : colors.background
|
||||
};
|
||||
}
|
||||
function computeColor(colors) {
|
||||
const _colors = normalizeColors(toValue(colors));
|
||||
const classes = [];
|
||||
const styles = {};
|
||||
if (_colors.background) if (isCssColor(_colors.background)) {
|
||||
styles.backgroundColor = _colors.background;
|
||||
if (!_colors.text && isParsableColor(_colors.background)) {
|
||||
const backgroundColor = parseColor(_colors.background);
|
||||
if (backgroundColor.a == null || backgroundColor.a === 1) classes.push(hasLightForeground(backgroundColor) ? "v-theme-on-dark" : "v-theme-on-light");
|
||||
}
|
||||
} else classes.push(`bg-${_colors.background}`);
|
||||
if (_colors.text) if (isCssColor(_colors.text)) {
|
||||
styles.color = _colors.text;
|
||||
styles.caretColor = _colors.text;
|
||||
} else classes.push(`text-${_colors.text}`);
|
||||
return {
|
||||
class: classes,
|
||||
style: styles
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useColor as n, useTextColor as r, useBackgroundColor as t };
|
||||
|
||||
//# sourceMappingURL=color-B6vuQruj.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"color-B6vuQruj.js","names":[],"sources":["../../vuetify/lib/composables/color.js"],"sourcesContent":["// Utilities\nimport { toValue } from 'vue';\nimport { destructComputed, hasLightForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.js\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const {\n class: colorClasses,\n style: colorStyles\n } = computeColor(colors);\n return {\n colorClasses,\n colorStyles\n };\n });\n}\nexport function useTextColor(color) {\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(() => ({\n text: toValue(color)\n }));\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(color) {\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(() => ({\n background: toValue(color)\n }));\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\nfunction normalizeColors(colors) {\n return {\n text: typeof colors.text === 'string' ? colors.text.replace(/^text-/, '') : colors.text,\n background: typeof colors.background === 'string' ? colors.background.replace(/^bg-/, '') : colors.background\n };\n}\nexport function computeColor(colors) {\n const _colors = normalizeColors(toValue(colors));\n const classes = [];\n const styles = {};\n if (_colors.background) {\n if (isCssColor(_colors.background)) {\n styles.backgroundColor = _colors.background;\n if (!_colors.text && isParsableColor(_colors.background)) {\n const backgroundColor = parseColor(_colors.background);\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n classes.push(hasLightForeground(backgroundColor) ? 'v-theme-on-dark' : 'v-theme-on-light');\n }\n }\n } else {\n classes.push(`bg-${_colors.background}`);\n }\n }\n if (_colors.text) {\n if (isCssColor(_colors.text)) {\n styles.color = _colors.text;\n styles.caretColor = _colors.text;\n } else {\n classes.push(`text-${_colors.text}`);\n }\n }\n return {\n class: classes,\n style: styles\n };\n}\n//# sourceMappingURL=color.js.map"],"mappings":";;;;AAIA,SAAgB,SAAS,QAAQ;AAC/B,QAAO,uBAAuB;EAC5B,MAAM,EACJ,OAAO,cACP,OAAO,gBACL,aAAa,OAAO;AACxB,SAAO;GACL;GACA;GACD;GACD;;AAEJ,SAAgB,aAAa,OAAO;CAClC,MAAM,EACJ,cAAc,kBACd,aAAa,oBACX,gBAAgB,EAClB,MAAM,QAAQ,MAAM,EACrB,EAAE;AACH,QAAO;EACL;EACA;EACD;;AAEH,SAAgB,mBAAmB,OAAO;CACxC,MAAM,EACJ,cAAc,wBACd,aAAa,0BACX,gBAAgB,EAClB,YAAY,QAAQ,MAAM,EAC3B,EAAE;AACH,QAAO;EACL;EACA;EACD;;AAEH,SAAS,gBAAgB,QAAQ;AAC/B,QAAO;EACL,MAAM,OAAO,OAAO,SAAS,WAAW,OAAO,KAAK,QAAQ,UAAU,GAAG,GAAG,OAAO;EACnF,YAAY,OAAO,OAAO,eAAe,WAAW,OAAO,WAAW,QAAQ,QAAQ,GAAG,GAAG,OAAO;EACpG;;AAEH,SAAgB,aAAa,QAAQ;CACnC,MAAM,UAAU,gBAAgB,QAAQ,OAAO,CAAC;CAChD,MAAM,UAAU,EAAE;CAClB,MAAM,SAAS,EAAE;AACjB,KAAI,QAAQ,WACV,KAAI,WAAW,QAAQ,WAAW,EAAE;AAClC,SAAO,kBAAkB,QAAQ;AACjC,MAAI,CAAC,QAAQ,QAAQ,gBAAgB,QAAQ,WAAW,EAAE;GACxD,MAAM,kBAAkB,WAAW,QAAQ,WAAW;AACtD,OAAI,gBAAgB,KAAK,QAAQ,gBAAgB,MAAM,EACrD,SAAQ,KAAK,mBAAmB,gBAAgB,GAAG,oBAAoB,mBAAmB;;OAI9F,SAAQ,KAAK,MAAM,QAAQ,aAAa;AAG5C,KAAI,QAAQ,KACV,KAAI,WAAW,QAAQ,KAAK,EAAE;AAC5B,SAAO,QAAQ,QAAQ;AACvB,SAAO,aAAa,QAAQ;OAE5B,SAAQ,KAAK,QAAQ,QAAQ,OAAO;AAGxC,QAAO;EACL,OAAO;EACP,OAAO;EACR"}
|
||||
-313
@@ -1,313 +0,0 @@
|
||||
import { M as has, W as padEnd, g as clamp, h as chunk, it as consoleWarn } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/util/color/APCA.js
|
||||
/**
|
||||
* WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA
|
||||
* @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
|
||||
* @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup
|
||||
*/
|
||||
var mainTRC = 2.4;
|
||||
var Rco = .2126729;
|
||||
var Gco = .7151522;
|
||||
var Bco = .072175;
|
||||
var normBG = .55;
|
||||
var normTXT = .58;
|
||||
var revTXT = .57;
|
||||
var revBG = .62;
|
||||
var blkThrs = .03;
|
||||
var blkClmp = 1.45;
|
||||
var deltaYmin = 5e-4;
|
||||
var scaleBoW = 1.25;
|
||||
var scaleWoB = 1.25;
|
||||
var loConThresh = .078;
|
||||
var loConFactor = 12.82051282051282;
|
||||
var loConOffset = .06;
|
||||
var loClip = .001;
|
||||
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;
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/color/transformCIELAB.js
|
||||
var delta = .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$1(xyz) {
|
||||
const transform = cielabForwardTransform;
|
||||
const transformedY = transform(xyz[1]);
|
||||
return [
|
||||
116 * transformedY - 16,
|
||||
500 * (transform(xyz[0] / .95047) - transformedY),
|
||||
200 * (transformedY - transform(xyz[2] / 1.08883))
|
||||
];
|
||||
}
|
||||
function toXYZ$1(lab) {
|
||||
const transform = cielabReverseTransform;
|
||||
const Ln = (lab[0] + 16) / 116;
|
||||
return [
|
||||
transform(Ln + lab[1] / 500) * .95047,
|
||||
transform(Ln),
|
||||
transform(Ln - lab[2] / 200) * 1.08883
|
||||
];
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/color/transformSRGB.js
|
||||
var srgbForwardMatrix = [
|
||||
[
|
||||
3.2406,
|
||||
-1.5372,
|
||||
-.4986
|
||||
],
|
||||
[
|
||||
-.9689,
|
||||
1.8758,
|
||||
.0415
|
||||
],
|
||||
[
|
||||
.0557,
|
||||
-.204,
|
||||
1.057
|
||||
]
|
||||
];
|
||||
var srgbForwardTransform = (C) => C <= .0031308 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - .055;
|
||||
var srgbReverseMatrix = [
|
||||
[
|
||||
.4124,
|
||||
.3576,
|
||||
.1805
|
||||
],
|
||||
[
|
||||
.2126,
|
||||
.7152,
|
||||
.0722
|
||||
],
|
||||
[
|
||||
.0193,
|
||||
.1192,
|
||||
.9505
|
||||
]
|
||||
];
|
||||
var srgbReverseTransform = (C) => C <= .04045 ? C / 12.92 : ((C + .055) / 1.055) ** 2.4;
|
||||
function fromXYZ(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 toXYZ({ r, g, b }) {
|
||||
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;
|
||||
}
|
||||
//#endregion
|
||||
//#region 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: (h, s, l, a) => HSLtoRGB({
|
||||
h,
|
||||
s,
|
||||
l,
|
||||
a
|
||||
}),
|
||||
hsla: (h, s, l, a) => HSLtoRGB({
|
||||
h,
|
||||
s,
|
||||
l,
|
||||
a
|
||||
}),
|
||||
hsv: (h, s, v, a) => HSVtoRGB({
|
||||
h,
|
||||
s,
|
||||
v,
|
||||
a
|
||||
}),
|
||||
hsva: (h, s, v, a) => HSVtoRGB({
|
||||
h,
|
||||
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("%") || 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}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);
|
||||
}
|
||||
/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
||||
function HSVtoRGB(hsva) {
|
||||
const { h, s, v, a } = hsva;
|
||||
const f = (n) => {
|
||||
const k = (n + h / 60) % 6;
|
||||
return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);
|
||||
};
|
||||
const rgb = [
|
||||
f(5),
|
||||
f(3),
|
||||
f(1)
|
||||
].map((v) => Math.round(v * 255));
|
||||
return {
|
||||
r: rgb[0],
|
||||
g: rgb[1],
|
||||
b: rgb[2],
|
||||
a
|
||||
};
|
||||
}
|
||||
function HSLtoRGB(hsla) {
|
||||
return HSVtoRGB(HSLtoHSV(hsla));
|
||||
}
|
||||
function HSLtoHSV(hsl) {
|
||||
const { h, s, l, a } = hsl;
|
||||
const v = l + s * Math.min(l, 1 - l);
|
||||
return {
|
||||
h,
|
||||
s: v === 0 ? 0 : 2 - 2 * l / v,
|
||||
v,
|
||||
a
|
||||
};
|
||||
}
|
||||
function toHex(v) {
|
||||
const h = Math.round(v).toString(16);
|
||||
return ("00".substr(0, 2 - h.length) + h).toUpperCase();
|
||||
}
|
||||
function RGBtoHex({ r, g, b, a }) {
|
||||
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$1(toXYZ(value));
|
||||
lab[0] = lab[0] + amount * 10;
|
||||
return fromXYZ(toXYZ$1(lab));
|
||||
}
|
||||
function darken(value, amount) {
|
||||
const lab = fromXYZ$1(toXYZ(value));
|
||||
lab[0] = lab[0] - amount * 10;
|
||||
return fromXYZ(toXYZ$1(lab));
|
||||
}
|
||||
/**
|
||||
* Calculate the relative luminance of a given color
|
||||
* @see https://www.w3.org/TR/WCAG20/#relativeluminancedef
|
||||
*/
|
||||
function getLuma(color) {
|
||||
return toXYZ(parseColor(color))[1];
|
||||
}
|
||||
function hasLightForeground(color) {
|
||||
const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));
|
||||
return Math.abs(APCAcontrast(parseColor(16777215), parseColor(color))) > Math.min(blackContrast, 50);
|
||||
}
|
||||
//#endregion
|
||||
export { isCssColor as a, parseColor as c, hasLightForeground as i, darken as n, isParsableColor as o, getLuma as r, lighten as s, RGBtoHex as t };
|
||||
|
||||
//# sourceMappingURL=colorUtils-BE28T62U.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-21
@@ -1,21 +0,0 @@
|
||||
import { l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/component.js
|
||||
var makeComponentProps = propsFactory({
|
||||
class: [
|
||||
String,
|
||||
Array,
|
||||
Object
|
||||
],
|
||||
style: {
|
||||
type: [
|
||||
String,
|
||||
Array,
|
||||
Object
|
||||
],
|
||||
default: null
|
||||
}
|
||||
}, "component");
|
||||
//#endregion
|
||||
export { makeComponentProps as t };
|
||||
|
||||
//# sourceMappingURL=component-DdiwBe6i.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"component-DdiwBe6i.js","names":[],"sources":["../../vuetify/lib/composables/component.js"],"sourcesContent":["// Utilities\nimport { propsFactory } from \"../util/propsFactory.js\"; // Types\n// TODO: import from vue once upstream PR is merged\n// https://github.com/vuejs/core/pull/14441\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object],\n style: {\n type: [String, Array, Object],\n default: null\n }\n}, 'component');\n//# sourceMappingURL=component.js.map"],"mappings":";;AAKA,IAAa,qBAAqB,aAAa;CAC7C,OAAO;EAAC;EAAQ;EAAO;EAAO;CAC9B,OAAO;EACL,MAAM;GAAC;GAAQ;GAAO;GAAO;EAC7B,SAAS;EACV;CACF,EAAE,YAAY"}
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
import { ir as capitalize, pt as h, rr as camelize } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
//#region node_modules/vuetify/lib/util/createSimpleFunctional.js
|
||||
function createSimpleFunctional(klass, tag = "div", name) {
|
||||
return genericComponent()({
|
||||
name: name ?? capitalize(camelize(klass.replace(/__/g, "-"))),
|
||||
props: {
|
||||
tag: {
|
||||
type: String,
|
||||
default: tag
|
||||
},
|
||||
...makeComponentProps()
|
||||
},
|
||||
setup(props, { slots }) {
|
||||
return () => {
|
||||
return h(props.tag, {
|
||||
class: [klass, props.class],
|
||||
style: props.style
|
||||
}, slots.default?.());
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
export { createSimpleFunctional as t };
|
||||
|
||||
//# sourceMappingURL=createSimpleFunctional-Cqw8cOWQ.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"createSimpleFunctional-Cqw8cOWQ.js","names":[],"sources":["../../vuetify/lib/util/createSimpleFunctional.js"],"sourcesContent":["// Composables\nimport { makeComponentProps } from \"../composables/component.js\"; // Utilities\nimport { camelize, capitalize, h } from 'vue';\nimport { genericComponent } from \"./defineComponent.js\";\nexport function createSimpleFunctional(klass, tag = 'div', name) {\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n props: {\n tag: {\n type: String,\n default: tag\n },\n ...makeComponentProps()\n },\n setup(props, {\n slots\n }) {\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style\n }, slots.default?.());\n };\n }\n });\n}\n//# sourceMappingURL=createSimpleFunctional.js.map"],"mappings":";;;;AAIA,SAAgB,uBAAuB,OAAO,MAAM,OAAO,MAAM;AAC/D,QAAO,kBAAkB,CAAC;EACxB,MAAM,QAAQ,WAAW,SAAS,MAAM,QAAQ,OAAO,IAAI,CAAC,CAAC;EAC7D,OAAO;GACL,KAAK;IACH,MAAM;IACN,SAAS;IACV;GACD,GAAG,oBAAoB;GACxB;EACD,MAAM,OAAO,EACX,SACC;AACD,gBAAa;AACX,WAAO,EAAE,MAAM,KAAK;KAClB,OAAO,CAAC,OAAO,MAAM,MAAM;KAC3B,OAAO,MAAM;KACd,EAAE,MAAM,WAAW,CAAC;;;EAG1B,CAAC"}
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
import { R as isPrimitive } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/util/deepEqual.js
|
||||
function updateRecursionCache(a, b, cache, result) {
|
||||
if (!cache || isPrimitive(a) || isPrimitive(b)) return;
|
||||
const visitedObject = cache.get(a);
|
||||
if (visitedObject) visitedObject.set(b, result);
|
||||
else {
|
||||
const newCacheItem = /* @__PURE__ */ new WeakMap();
|
||||
newCacheItem.set(b, result);
|
||||
cache.set(a, newCacheItem);
|
||||
}
|
||||
}
|
||||
function findCachedComparison(a, b, cache) {
|
||||
if (!cache || isPrimitive(a) || isPrimitive(b)) return null;
|
||||
const r1 = cache.get(a)?.get(b);
|
||||
if (typeof r1 === "boolean") return r1;
|
||||
const r2 = cache.get(b)?.get(a);
|
||||
if (typeof r2 === "boolean") return r2;
|
||||
return null;
|
||||
}
|
||||
function deepEqual(a, b, recursionCache = /* @__PURE__ */ new WeakMap()) {
|
||||
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;
|
||||
const cachedComparisonResult = findCachedComparison(a, b, recursionCache);
|
||||
if (cachedComparisonResult) return cachedComparisonResult;
|
||||
updateRecursionCache(a, b, recursionCache, true);
|
||||
return props.every((p) => deepEqual(a[p], b[p], recursionCache));
|
||||
}
|
||||
//#endregion
|
||||
export { deepEqual as t };
|
||||
|
||||
//# sourceMappingURL=deepEqual-DDqmGqyF.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"deepEqual-DDqmGqyF.js","names":[],"sources":["../../vuetify/lib/util/deepEqual.js"],"sourcesContent":["import { isPrimitive } from \"./helpers.js\";\nfunction updateRecursionCache(a, b, cache, result) {\n if (!cache || isPrimitive(a) || isPrimitive(b)) return;\n const visitedObject = cache.get(a);\n if (visitedObject) {\n visitedObject.set(b, result);\n } else {\n const newCacheItem = new WeakMap();\n newCacheItem.set(b, result);\n cache.set(a, newCacheItem);\n }\n}\nfunction findCachedComparison(a, b, cache) {\n if (!cache || isPrimitive(a) || isPrimitive(b)) return null;\n const r1 = cache.get(a)?.get(b);\n if (typeof r1 === 'boolean') return r1;\n const r2 = cache.get(b)?.get(a);\n if (typeof r2 === 'boolean') return r2;\n return null;\n}\nexport function deepEqual(a, b, recursionCache = new WeakMap()) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n // If the values are Date, compare them as timestamps\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false;\n }\n const cachedComparisonResult = findCachedComparison(a, b, recursionCache);\n if (cachedComparisonResult) {\n return cachedComparisonResult;\n }\n updateRecursionCache(a, b, recursionCache, true);\n return props.every(p => deepEqual(a[p], b[p], recursionCache));\n}\n//# sourceMappingURL=deepEqual.js.map"],"mappings":";;AACA,SAAS,qBAAqB,GAAG,GAAG,OAAO,QAAQ;AACjD,KAAI,CAAC,SAAS,YAAY,EAAE,IAAI,YAAY,EAAE,CAAE;CAChD,MAAM,gBAAgB,MAAM,IAAI,EAAE;AAClC,KAAI,cACF,eAAc,IAAI,GAAG,OAAO;MACvB;EACL,MAAM,+BAAe,IAAI,SAAS;AAClC,eAAa,IAAI,GAAG,OAAO;AAC3B,QAAM,IAAI,GAAG,aAAa;;;AAG9B,SAAS,qBAAqB,GAAG,GAAG,OAAO;AACzC,KAAI,CAAC,SAAS,YAAY,EAAE,IAAI,YAAY,EAAE,CAAE,QAAO;CACvD,MAAM,KAAK,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE;AAC/B,KAAI,OAAO,OAAO,UAAW,QAAO;CACpC,MAAM,KAAK,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE;AAC/B,KAAI,OAAO,OAAO,UAAW,QAAO;AACpC,QAAO;;AAET,SAAgB,UAAU,GAAG,GAAG,iCAAiB,IAAI,SAAS,EAAE;AAC9D,KAAI,MAAM,EAAG,QAAO;AACpB,KAAI,aAAa,QAAQ,aAAa,QAAQ,EAAE,SAAS,KAAK,EAAE,SAAS,CAEvE,QAAO;AAET,KAAI,MAAM,OAAO,EAAE,IAAI,MAAM,OAAO,EAAE,CAEpC,QAAO;CAET,MAAM,QAAQ,OAAO,KAAK,EAAE;AAC5B,KAAI,MAAM,WAAW,OAAO,KAAK,EAAE,CAAC,OAElC,QAAO;CAET,MAAM,yBAAyB,qBAAqB,GAAG,GAAG,eAAe;AACzE,KAAI,uBACF,QAAO;AAET,sBAAqB,GAAG,GAAG,gBAAgB,KAAK;AAChD,QAAO,MAAM,OAAM,MAAK,UAAU,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC"}
|
||||
-630
@@ -1,630 +0,0 @@
|
||||
import { Kn as ref, M as Fragment, O as Comment, Qn as toRef, U as computed, Ut as provide, Wn as reactive, Yn as shallowRef, _n as watchEffect, hn as warn, ir as capitalize, nr as unref, nt as defineComponent$1, rr as camelize, ut as getCurrentInstance$1, wt as isVNode, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
//#region 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.`);
|
||||
}
|
||||
//#endregion
|
||||
//#region 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);
|
||||
IN_BROWSER && "EyeDropper" in window;
|
||||
var SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof window.matchMedia === "function";
|
||||
var PREFERS_REDUCED_MOTION = () => SUPPORTS_MATCH_MEDIA && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/helpers.js
|
||||
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 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 getPropertyFromItem(item, property, fallback) {
|
||||
if (property === true) return item === void 0 ? fallback : item;
|
||||
if (property == null || typeof property === "boolean") return fallback;
|
||||
if (item !== Object(item)) {
|
||||
if (typeof property !== "function") return fallback;
|
||||
const value = property(item, fallback);
|
||||
return typeof value === "undefined" ? fallback : value;
|
||||
}
|
||||
if (typeof property === "string") return getObjectValueByPath(item, property, fallback);
|
||||
if (Array.isArray(property)) return getNestedValue(item, property, fallback);
|
||||
if (typeof property !== "function") return fallback;
|
||||
const value = property(item, fallback);
|
||||
return typeof value === "undefined" ? fallback : value;
|
||||
}
|
||||
function createRange(length, start = 0) {
|
||||
return Array.from({ length }, (v, k) => start + k);
|
||||
}
|
||||
function convertToUnit(str, unit = "px") {
|
||||
if (str == null || str === "") return;
|
||||
const num = Number(str);
|
||||
if (isNaN(num)) return String(str);
|
||||
else if (!isFinite(num)) return;
|
||||
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?.nodeType === Node.TEXT_NODE) return el.nextElementSibling;
|
||||
return el;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
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
|
||||
});
|
||||
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 keys(o) {
|
||||
return Object.keys(o);
|
||||
}
|
||||
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 pickWithRest(obj, paths, exclude) {
|
||||
const found = Object.create(null);
|
||||
const rest = Object.create(null);
|
||||
for (const key in obj) if (paths.some((path) => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some((path) => path === key)) found[key] = obj[key];
|
||||
else rest[key] = obj[key];
|
||||
return [found, rest];
|
||||
}
|
||||
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);
|
||||
var bubblingEvents = [
|
||||
"onAfterscriptexecute",
|
||||
"onAnimationcancel",
|
||||
"onAnimationend",
|
||||
"onAnimationiteration",
|
||||
"onAnimationstart",
|
||||
"onAuxclick",
|
||||
"onBeforeinput",
|
||||
"onBeforescriptexecute",
|
||||
"onChange",
|
||||
"onClick",
|
||||
"onCompositionend",
|
||||
"onCompositionstart",
|
||||
"onCompositionupdate",
|
||||
"onContextmenu",
|
||||
"onCopy",
|
||||
"onCut",
|
||||
"onDblclick",
|
||||
"onFocusin",
|
||||
"onFocusout",
|
||||
"onFullscreenchange",
|
||||
"onFullscreenerror",
|
||||
"onGesturechange",
|
||||
"onGestureend",
|
||||
"onGesturestart",
|
||||
"onGotpointercapture",
|
||||
"onInput",
|
||||
"onKeydown",
|
||||
"onKeypress",
|
||||
"onKeyup",
|
||||
"onLostpointercapture",
|
||||
"onMousedown",
|
||||
"onMousemove",
|
||||
"onMouseout",
|
||||
"onMouseover",
|
||||
"onMouseup",
|
||||
"onMousewheel",
|
||||
"onPaste",
|
||||
"onPointercancel",
|
||||
"onPointerdown",
|
||||
"onPointerenter",
|
||||
"onPointerleave",
|
||||
"onPointermove",
|
||||
"onPointerout",
|
||||
"onPointerover",
|
||||
"onPointerup",
|
||||
"onReset",
|
||||
"onSelect",
|
||||
"onSubmit",
|
||||
"onTouchcancel",
|
||||
"onTouchend",
|
||||
"onTouchmove",
|
||||
"onTouchstart",
|
||||
"onTransitioncancel",
|
||||
"onTransitionend",
|
||||
"onTransitionrun",
|
||||
"onTransitionstart",
|
||||
"onWheel"
|
||||
];
|
||||
/**
|
||||
* Filter attributes that should be applied to
|
||||
* the root element of an input component. Remaining
|
||||
* attributes should be passed to the <input> element inside.
|
||||
*/
|
||||
function filterInputAttrs(attrs) {
|
||||
const [events, props] = pickWithRest(attrs, [onRE]);
|
||||
const inputEvents = omit(events, bubblingEvents);
|
||||
const [rootAttrs, inputAttrs] = pickWithRest(props, [
|
||||
"class",
|
||||
"style",
|
||||
"id",
|
||||
"inert",
|
||||
/^data-/
|
||||
]);
|
||||
Object.assign(rootAttrs, events);
|
||||
Object.assign(inputAttrs, inputEvents);
|
||||
return [rootAttrs, inputAttrs];
|
||||
}
|
||||
function wrapInArray(v) {
|
||||
return v == null ? [] : Array.isArray(v) ? v : [v];
|
||||
}
|
||||
function debounce(fn, delay) {
|
||||
let timeoutId = 0;
|
||||
const wrap = (...args) => {
|
||||
clearTimeout(timeoutId);
|
||||
timeoutId = setTimeout(() => fn(...args), unref(delay));
|
||||
};
|
||||
wrap.clear = () => {
|
||||
clearTimeout(timeoutId);
|
||||
};
|
||||
wrap.immediate = fn;
|
||||
return wrap;
|
||||
}
|
||||
function clamp(value, min = 0, max = 1) {
|
||||
return Math.max(min, Math.min(max, value));
|
||||
}
|
||||
function padEnd(str, length, char = "0") {
|
||||
return str + char.repeat(Math.max(0, length - str.length));
|
||||
}
|
||||
function padStart(str, length, char = "0") {
|
||||
return char.repeat(Math.max(0, length - str.length)) + str;
|
||||
}
|
||||
function chunk(str, size = 1) {
|
||||
const chunked = [];
|
||||
let index = 0;
|
||||
while (index < str.length) {
|
||||
chunked.push(str.substr(index, size));
|
||||
index += size;
|
||||
}
|
||||
return chunked;
|
||||
}
|
||||
function mergeDeep(source = {}, target = {}, arrayFn, targetCondition) {
|
||||
const out = {};
|
||||
for (const key in source) out[key] = source[key];
|
||||
for (const key in target) {
|
||||
const targetProperty = target[key];
|
||||
if (targetCondition && !targetCondition(key, targetProperty)) continue;
|
||||
const sourceProperty = source[key];
|
||||
if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
|
||||
out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn, targetCondition);
|
||||
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(str = "") {
|
||||
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.getOwnPropertyDescriptor(vnode.component.provides, key)) return [vnode.component];
|
||||
else if (vnode.component.subTree) return findChildrenWithProvide(key, vnode.component.subTree).flat(1);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
var CircularBuffer = class {
|
||||
#arr = [];
|
||||
#pointer = 0;
|
||||
constructor(size) {
|
||||
this.size = size;
|
||||
}
|
||||
get isFull() {
|
||||
return this.#arr.length === this.size;
|
||||
}
|
||||
push(val) {
|
||||
this.#arr[this.#pointer] = val;
|
||||
this.#pointer = (this.#pointer + 1) % this.size;
|
||||
}
|
||||
values() {
|
||||
return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer));
|
||||
}
|
||||
clear() {
|
||||
this.#arr.length = 0;
|
||||
this.#pointer = 0;
|
||||
}
|
||||
};
|
||||
/**
|
||||
* Convert a computed ref to a record of refs.
|
||||
* The getter function must always return an object with the same keys.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
/** Array.includes but value can be any type */
|
||||
function includes(arr, val) {
|
||||
return arr.includes(val);
|
||||
}
|
||||
function eventName(propName) {
|
||||
return propName[2].toLowerCase() + propName.slice(3);
|
||||
}
|
||||
var EventProp = () => [Function, Array];
|
||||
function hasEvent(props, name) {
|
||||
name = "on" + capitalize(name);
|
||||
return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);
|
||||
}
|
||||
function callEvent(handler, ...args) {
|
||||
if (Array.isArray(handler)) for (const h of handler) h(...args);
|
||||
else if (typeof handler === "function") handler(...args);
|
||||
}
|
||||
function focusableChildren(el, filterByTabIndex = true) {
|
||||
const targets = [
|
||||
"button",
|
||||
"[href]",
|
||||
"input:not([type=\"hidden\"])",
|
||||
"select",
|
||||
"textarea",
|
||||
"details:not(:has(> summary))",
|
||||
"details > summary",
|
||||
"[tabindex]",
|
||||
"[contenteditable]:not([contenteditable=\"false\"])",
|
||||
"audio[controls]",
|
||||
"video[controls]"
|
||||
].map((s) => `${s}${filterByTabIndex ? ":not([tabindex=\"-1\"])" : ""}:not([disabled], [inert])`).join(", ");
|
||||
let elements;
|
||||
try {
|
||||
elements = [...el.querySelectorAll(targets)];
|
||||
} catch (err) {
|
||||
consoleError(String(err));
|
||||
return [];
|
||||
}
|
||||
return elements.filter((x) => !x.closest("[inert]")).filter((x) => !!x.offsetParent || x.getClientRects().length > 0).filter((x) => !x.parentElement?.closest("details:not([open])") || x.tagName === "SUMMARY" && x.parentElement?.tagName === "DETAILS");
|
||||
}
|
||||
function getNextElement(elements, location, condition) {
|
||||
let _el;
|
||||
let idx = elements.indexOf(document.activeElement);
|
||||
const inc = location === "next" ? 1 : -1;
|
||||
do {
|
||||
idx += inc;
|
||||
_el = elements[idx];
|
||||
} while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);
|
||||
return _el;
|
||||
}
|
||||
function focusChild(el, location) {
|
||||
const focusable = focusableChildren(el);
|
||||
if (location == null) {
|
||||
if (el === document.activeElement || !el.contains(document.activeElement)) focusable[0]?.focus();
|
||||
} else if (location === "first") focusable[0]?.focus();
|
||||
else if (location === "last") focusable.at(-1)?.focus();
|
||||
else if (typeof location === "number") focusable[location]?.focus();
|
||||
else {
|
||||
const _el = getNextElement(focusable, location);
|
||||
if (_el) _el.focus();
|
||||
else focusChild(el, location === "next" ? "first" : "last");
|
||||
}
|
||||
}
|
||||
/** Returns null if the selector is not supported or we can't check */
|
||||
function matchesSelector(el, selector) {
|
||||
if (!(IN_BROWSER && typeof CSS !== "undefined" && typeof CSS.supports !== "undefined" && CSS.supports(`selector(${selector})`))) return null;
|
||||
try {
|
||||
return !!el && el.matches(selector);
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
function ensureValidVNode(vnodes) {
|
||||
return vnodes.some((child) => {
|
||||
if (!isVNode(child)) return true;
|
||||
if (child.type === Comment) return false;
|
||||
return child.type !== Fragment || ensureValidVNode(child.children);
|
||||
}) ? vnodes : null;
|
||||
}
|
||||
function defer(timeout, cb) {
|
||||
if (!IN_BROWSER || timeout === 0) {
|
||||
cb();
|
||||
return () => {};
|
||||
}
|
||||
const timeoutId = window.setTimeout(cb, timeout);
|
||||
return () => window.clearTimeout(timeoutId);
|
||||
}
|
||||
function isClickInsideElement(event, targetDiv) {
|
||||
const mouseX = event.clientX;
|
||||
const mouseY = event.clientY;
|
||||
const divRect = targetDiv.getBoundingClientRect();
|
||||
const divLeft = divRect.left;
|
||||
const divTop = divRect.top;
|
||||
const divRight = divRect.right;
|
||||
const divBottom = divRect.bottom;
|
||||
return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;
|
||||
}
|
||||
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 checkPrintable(e) {
|
||||
const isPrintableChar = e.key.length === 1;
|
||||
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
||||
return isPrintableChar && noModifier;
|
||||
}
|
||||
function isPrimitive(value) {
|
||||
return typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint";
|
||||
}
|
||||
function camelizeProps(props) {
|
||||
const out = {};
|
||||
for (const prop in props) out[camelize(prop)] = props[prop];
|
||||
return out;
|
||||
}
|
||||
function onlyDefinedProps(props) {
|
||||
const booleanAttributes = ["checked", "disabled"];
|
||||
return Object.fromEntries(Object.entries(props).filter(([key, v]) => booleanAttributes.includes(key) ? !!v : v !== void 0));
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/propsFactory.js
|
||||
/**
|
||||
* Creates a factory function for props definitions.
|
||||
* This is used to define props in a composable then override
|
||||
* default values in an implementing component.
|
||||
*
|
||||
* @example Simplified signature
|
||||
* (props: Props) => (defaults?: Record<keyof props, any>) => Props
|
||||
*
|
||||
* @example Usage
|
||||
* const makeProps = propsFactory({
|
||||
* foo: String,
|
||||
* })
|
||||
*
|
||||
* defineComponent({
|
||||
* props: {
|
||||
* ...makeProps({
|
||||
* foo: 'a',
|
||||
* }),
|
||||
* },
|
||||
* setup (props) {
|
||||
* // would be "string | undefined", now "string" because a default has been provided
|
||||
* props.foo
|
||||
* },
|
||||
* }
|
||||
*/
|
||||
function propsFactory(props, source) {
|
||||
return (defaults) => {
|
||||
return Object.keys(props).reduce((obj, prop) => {
|
||||
const definition = typeof props[prop] === "object" && props[prop] != null && !Array.isArray(props[prop]) ? 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;
|
||||
}, {});
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Like `Partial<T>` but doesn't care what the value is
|
||||
*/
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/getCurrentInstance.js
|
||||
function getCurrentInstance(name, message) {
|
||||
const vm = getCurrentInstance$1();
|
||||
if (!vm) throw new Error(`[Vuetify] ${name} ${message || "must be called from inside a setup function"}`);
|
||||
return vm;
|
||||
}
|
||||
function getCurrentInstanceName(name = "composables") {
|
||||
const vm = getCurrentInstance(name).type;
|
||||
return toKebabCase(vm?.aliasName || vm?.name);
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/injectSelf.js
|
||||
function injectSelf(key, vm = getCurrentInstance("injectSelf")) {
|
||||
const { provides } = vm;
|
||||
if (provides && key in provides) return provides[key];
|
||||
}
|
||||
//#endregion
|
||||
//#region 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(() => {
|
||||
if (unref(options?.disabled)) return injectedDefaults.value;
|
||||
const scoped = unref(options?.scoped);
|
||||
const reset = unref(options?.reset);
|
||||
const root = unref(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, void 0, (_, v) => v !== void 0) : 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(props = {}, name, defaults = injectDefaults()) {
|
||||
const vm = getCurrentInstance("useDefaults");
|
||||
name = name ?? vm.type.name ?? vm.type.__name;
|
||||
if (!name) throw new Error("[Vuetify] Could not determine component name");
|
||||
const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);
|
||||
const _props = new Proxy(props, { get(target, prop) {
|
||||
const propValue = Reflect.get(target, prop);
|
||||
if (prop === "class" || prop === "style") return [componentDefaults.value?.[prop], propValue].filter((v) => v != null);
|
||||
if (propIsDefined(vm.vnode, prop)) return propValue;
|
||||
const _componentDefault = componentDefaults.value?.[prop];
|
||||
if (_componentDefault !== void 0) return _componentDefault;
|
||||
const _globalDefault = defaults.value?.global?.[prop];
|
||||
if (_globalDefault !== void 0) return _globalDefault;
|
||||
return propValue;
|
||||
} });
|
||||
const _subcomponentDefaults = shallowRef();
|
||||
watchEffect(() => {
|
||||
if (componentDefaults.value) {
|
||||
const subComponents = Object.entries(componentDefaults.value).filter(([key]) => 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?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
||||
}));
|
||||
}
|
||||
return {
|
||||
props: _props,
|
||||
provideSubDefaults
|
||||
};
|
||||
}
|
||||
function useDefaults(props = {}, name) {
|
||||
const { props: _props, provideSubDefaults } = internalUseDefaults(props, name);
|
||||
provideSubDefaults();
|
||||
return _props;
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/util/defineComponent.js
|
||||
function defineComponent(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(exposeDefaults = true) {
|
||||
return (options) => (exposeDefaults ? defineComponent : defineComponent$1)(options);
|
||||
}
|
||||
//#endregion
|
||||
export { PREFERS_REDUCED_MOTION as $, getObjectValueByPath as A, matchesSelector as B, eventName as C, focusChild as D, flattenFragments as E, isClickInsideElement as F, padStart as G, omit as H, isObject as I, refElement as J, pick as K, isOn as L, has as M, hasEvent as N, focusableChildren as O, includes as P, IN_BROWSER as Q, isPrimitive as R, ensureValidVNode as S, findChildrenWithProvide as T, onlyDefinedProps as U, mergeDeep as V, padEnd as W, toKebabCase as X, templateRef as Y, wrapInArray as Z, convertToUnit as _, provideDefaults as a, deprecate as at, defer as b, getCurrentInstanceName as c, EventProp as d, SUPPORTS_INTERSECTION as et, callEvent as f, clamp as g, chunk as h, createDefaults as i, consoleWarn as it, getPropertyFromItem as j, getNextElement as k, propsFactory as l, checkPrintable as m, genericComponent as n, SUPPORTS_TOUCH as nt, useDefaults as o, camelizeProps as p, pickWithRest as q, DefaultsSymbol as r, consoleError as rt, getCurrentInstance as s, defineComponent as t, SUPPORTS_MATCH_MEDIA as tt, CircularBuffer as u, createRange as v, filterInputAttrs as w, destructComputed as x, debounce as y, keys as z };
|
||||
|
||||
//# sourceMappingURL=defineComponent-DB6xIcDy.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-23
@@ -1,23 +0,0 @@
|
||||
import { Qn as toRef } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { c as getCurrentInstanceName, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/density.js
|
||||
var allowedDensities = [
|
||||
null,
|
||||
"default",
|
||||
"comfortable",
|
||||
"compact"
|
||||
];
|
||||
var makeDensityProps = propsFactory({ density: {
|
||||
type: String,
|
||||
default: "default",
|
||||
validator: (v) => allowedDensities.includes(v)
|
||||
} }, "density");
|
||||
function useDensity(props, name = getCurrentInstanceName()) {
|
||||
return { densityClasses: toRef(() => {
|
||||
return `${name}--density-${props.density}`;
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { useDensity as n, makeDensityProps as t };
|
||||
|
||||
//# sourceMappingURL=density-CpKZ5PhP.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"density-CpKZ5PhP.js","names":[],"sources":["../../vuetify/lib/composables/density.js"],"sourcesContent":["// Utilities\nimport { toRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evaluates to any\n// when generating api types for whatever reason.\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n }\n}, 'density');\nexport function useDensity(props, name = getCurrentInstanceName()) {\n const densityClasses = toRef(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.js.map"],"mappings":";;;AAGA,IAAM,mBAAmB;CAAC;CAAM;CAAW;CAAe;CAAU;AAMpE,IAAa,mBAAmB,aAAa,EAC3C,SAAS;CACP,MAAM;CACN,SAAS;CACT,YAAW,MAAK,iBAAiB,SAAS,EAAE;CAC7C,EACF,EAAE,UAAU;AACb,SAAgB,WAAW,OAAO,OAAO,wBAAwB,EAAE;AAIjE,QAAO,EACL,gBAJqB,YAAY;AACjC,SAAO,GAAG,KAAK,YAAY,MAAM;GAGnB,EACf"}
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
import { U as computed } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { _ as convertToUnit, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/dimensions.js
|
||||
var makeDimensionProps = propsFactory({
|
||||
height: [Number, String],
|
||||
maxHeight: [Number, String],
|
||||
maxWidth: [Number, String],
|
||||
minHeight: [Number, String],
|
||||
minWidth: [Number, String],
|
||||
width: [Number, String]
|
||||
}, "dimension");
|
||||
function useDimension(props) {
|
||||
return { dimensionStyles: computed(() => {
|
||||
const styles = {};
|
||||
const height = convertToUnit(props.height);
|
||||
const maxHeight = convertToUnit(props.maxHeight);
|
||||
const maxWidth = convertToUnit(props.maxWidth);
|
||||
const minHeight = convertToUnit(props.minHeight);
|
||||
const minWidth = convertToUnit(props.minWidth);
|
||||
const width = convertToUnit(props.width);
|
||||
if (height != null) styles.height = height;
|
||||
if (maxHeight != null) styles.maxHeight = maxHeight;
|
||||
if (maxWidth != null) styles.maxWidth = maxWidth;
|
||||
if (minHeight != null) styles.minHeight = minHeight;
|
||||
if (minWidth != null) styles.minWidth = minWidth;
|
||||
if (width != null) styles.width = width;
|
||||
return styles;
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { useDimension as n, makeDimensionProps as t };
|
||||
|
||||
//# sourceMappingURL=dimensions-BDdmuRdK.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"dimensions-BDdmuRdK.js","names":[],"sources":["../../vuetify/lib/composables/dimensions.js"],"sourcesContent":["// Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String]\n}, 'dimension');\nexport function useDimension(props) {\n const dimensionStyles = computed(() => {\n const styles = {};\n const height = convertToUnit(props.height);\n const maxHeight = convertToUnit(props.maxHeight);\n const maxWidth = convertToUnit(props.maxWidth);\n const minHeight = convertToUnit(props.minHeight);\n const minWidth = convertToUnit(props.minWidth);\n const width = convertToUnit(props.width);\n if (height != null) styles.height = height;\n if (maxHeight != null) styles.maxHeight = maxHeight;\n if (maxWidth != null) styles.maxWidth = maxWidth;\n if (minHeight != null) styles.minHeight = minHeight;\n if (minWidth != null) styles.minWidth = minWidth;\n if (width != null) styles.width = width;\n return styles;\n });\n return {\n dimensionStyles\n };\n}\n//# sourceMappingURL=dimensions.js.map"],"mappings":";;;AAIA,IAAa,qBAAqB,aAAa;CAC7C,QAAQ,CAAC,QAAQ,OAAO;CACxB,WAAW,CAAC,QAAQ,OAAO;CAC3B,UAAU,CAAC,QAAQ,OAAO;CAC1B,WAAW,CAAC,QAAQ,OAAO;CAC3B,UAAU,CAAC,QAAQ,OAAO;CAC1B,OAAO,CAAC,QAAQ,OAAO;CACxB,EAAE,YAAY;AACf,SAAgB,aAAa,OAAO;AAiBlC,QAAO,EACL,iBAjBsB,eAAe;EACrC,MAAM,SAAS,EAAE;EACjB,MAAM,SAAS,cAAc,MAAM,OAAO;EAC1C,MAAM,YAAY,cAAc,MAAM,UAAU;EAChD,MAAM,WAAW,cAAc,MAAM,SAAS;EAC9C,MAAM,YAAY,cAAc,MAAM,UAAU;EAChD,MAAM,WAAW,cAAc,MAAM,SAAS;EAC9C,MAAM,QAAQ,cAAc,MAAM,MAAM;AACxC,MAAI,UAAU,KAAM,QAAO,SAAS;AACpC,MAAI,aAAa,KAAM,QAAO,YAAY;AAC1C,MAAI,YAAY,KAAM,QAAO,WAAW;AACxC,MAAI,aAAa,KAAM,QAAO,YAAY;AAC1C,MAAI,YAAY,KAAM,QAAO,WAAW;AACxC,MAAI,SAAS,KAAM,QAAO,QAAQ;AAClC,SAAO;GAGQ,EAChB"}
|
||||
-141
@@ -1,141 +0,0 @@
|
||||
import { $n as toRefs, Qn as toRef, U as computed, Vn as onScopeDispose, Wn as reactive, Yn as shallowRef, _n as watchEffect, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { Q as IN_BROWSER, V as mergeDeep, c as getCurrentInstanceName, l as propsFactory, nt as SUPPORTS_TOUCH } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/display.js
|
||||
var breakpoints = [
|
||||
"sm",
|
||||
"md",
|
||||
"lg",
|
||||
"xl",
|
||||
"xxl"
|
||||
];
|
||||
var DisplaySymbol = Symbol.for("vuetify:display");
|
||||
var defaultDisplayOptions = {
|
||||
mobileBreakpoint: "lg",
|
||||
thresholds: {
|
||||
xs: 0,
|
||||
sm: 600,
|
||||
md: 840,
|
||||
lg: 1145,
|
||||
xl: 1545,
|
||||
xxl: 2138
|
||||
}
|
||||
};
|
||||
var parseDisplayOptions = (options = defaultDisplayOptions) => {
|
||||
return mergeDeep(defaultDisplayOptions, options);
|
||||
};
|
||||
function getClientWidth(ssr) {
|
||||
return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === "object" && ssr.clientWidth || 0;
|
||||
}
|
||||
function getClientHeight(ssr) {
|
||||
return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === "object" && ssr.clientHeight || 0;
|
||||
}
|
||||
function getPlatform(ssr) {
|
||||
const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : "ssr";
|
||||
function match(regexp) {
|
||||
return Boolean(userAgent.match(regexp));
|
||||
}
|
||||
return {
|
||||
android: match(/android/i),
|
||||
ios: match(/iphone|ipad|ipod/i),
|
||||
cordova: match(/cordova/i),
|
||||
electron: match(/electron/i),
|
||||
chrome: match(/chrome/i),
|
||||
edge: match(/edge/i),
|
||||
firefox: match(/firefox/i),
|
||||
opera: match(/opera/i),
|
||||
win: match(/win/i),
|
||||
mac: match(/mac/i),
|
||||
linux: match(/linux/i),
|
||||
touch: SUPPORTS_TOUCH,
|
||||
ssr: userAgent === "ssr"
|
||||
};
|
||||
}
|
||||
function createDisplay(options, ssr) {
|
||||
const { thresholds, mobileBreakpoint } = parseDisplayOptions(options);
|
||||
const height = shallowRef(getClientHeight(ssr));
|
||||
const platform = shallowRef(getPlatform(ssr));
|
||||
const state = reactive({});
|
||||
const width = shallowRef(getClientWidth(ssr));
|
||||
function updateSize() {
|
||||
height.value = getClientHeight();
|
||||
width.value = getClientWidth();
|
||||
}
|
||||
function update() {
|
||||
updateSize();
|
||||
platform.value = getPlatform();
|
||||
}
|
||||
watchEffect(() => {
|
||||
const xs = width.value < thresholds.sm;
|
||||
const sm = width.value < thresholds.md && !xs;
|
||||
const md = width.value < thresholds.lg && !(sm || xs);
|
||||
const lg = width.value < thresholds.xl && !(md || sm || xs);
|
||||
const xl = width.value < thresholds.xxl && !(lg || md || sm || xs);
|
||||
const xxl = width.value >= thresholds.xxl;
|
||||
const name = xs ? "xs" : sm ? "sm" : md ? "md" : lg ? "lg" : xl ? "xl" : "xxl";
|
||||
const breakpointValue = typeof mobileBreakpoint === "number" ? mobileBreakpoint : thresholds[mobileBreakpoint];
|
||||
const mobile = width.value < breakpointValue;
|
||||
state.xs = xs;
|
||||
state.sm = sm;
|
||||
state.md = md;
|
||||
state.lg = lg;
|
||||
state.xl = xl;
|
||||
state.xxl = xxl;
|
||||
state.smAndUp = !xs;
|
||||
state.mdAndUp = !(xs || sm);
|
||||
state.lgAndUp = !(xs || sm || md);
|
||||
state.xlAndUp = !(xs || sm || md || lg);
|
||||
state.smAndDown = !(md || lg || xl || xxl);
|
||||
state.mdAndDown = !(lg || xl || xxl);
|
||||
state.lgAndDown = !(xl || xxl);
|
||||
state.xlAndDown = !xxl;
|
||||
state.name = name;
|
||||
state.height = height.value;
|
||||
state.width = width.value;
|
||||
state.mobile = mobile;
|
||||
state.mobileBreakpoint = mobileBreakpoint;
|
||||
state.platform = platform.value;
|
||||
state.thresholds = thresholds;
|
||||
});
|
||||
if (IN_BROWSER) {
|
||||
window.addEventListener("resize", updateSize, { passive: true });
|
||||
onScopeDispose(() => {
|
||||
window.removeEventListener("resize", updateSize);
|
||||
}, true);
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
update,
|
||||
ssr: !!ssr
|
||||
};
|
||||
}
|
||||
var makeDisplayProps = propsFactory({
|
||||
mobile: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
mobileBreakpoint: [Number, String]
|
||||
}, "display");
|
||||
function useDisplay(props = { mobile: null }, name = getCurrentInstanceName()) {
|
||||
const display = inject(DisplaySymbol);
|
||||
if (!display) throw new Error("Could not find Vuetify display injection");
|
||||
const mobile = computed(() => {
|
||||
if (props.mobile) return true;
|
||||
else if (typeof props.mobileBreakpoint === "number") return display.width.value < props.mobileBreakpoint;
|
||||
else if (props.mobileBreakpoint) return display.width.value < display.thresholds.value[props.mobileBreakpoint];
|
||||
else if (props.mobile === null) return display.mobile.value;
|
||||
else return false;
|
||||
});
|
||||
const displayClasses = toRef(() => {
|
||||
if (!name) return {};
|
||||
return { [`${name}--mobile`]: mobile.value };
|
||||
});
|
||||
return {
|
||||
...display,
|
||||
displayClasses,
|
||||
mobile
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useDisplay as a, makeDisplayProps as i, breakpoints as n, createDisplay as r, DisplaySymbol as t };
|
||||
|
||||
//# sourceMappingURL=display-DKaCj-_K.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-18
@@ -1,18 +0,0 @@
|
||||
import { Qn as toRef, Rn as isRef } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/elevation.js
|
||||
var makeElevationProps = propsFactory({ elevation: {
|
||||
type: [Number, String],
|
||||
validator: (value) => parseInt(value) >= 0
|
||||
} }, "elevation");
|
||||
function useElevation(props) {
|
||||
return { elevationClasses: toRef(() => {
|
||||
const elevation = isRef(props) ? props.value : props.elevation;
|
||||
if (elevation == null) return [];
|
||||
return [`elevation-${parseInt(elevation)}`];
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { useElevation as n, makeElevationProps as t };
|
||||
|
||||
//# sourceMappingURL=elevation-B0TH2wU6.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"elevation-B0TH2wU6.js","names":[],"sources":["../../vuetify/lib/composables/elevation.js"],"sourcesContent":["// Utilities\nimport { isRef, toRef } from 'vue';\nimport { propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n // no limit to allow both 0-6 (MD3) and legacy 0-24 (MD2)\n validator: value => parseInt(value) >= 0\n }\n}, 'elevation');\nexport function useElevation(props) {\n const elevationClasses = toRef(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n if (elevation == null) return [];\n return [`elevation-${parseInt(elevation)}`];\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.js.map"],"mappings":";;;AAIA,IAAa,qBAAqB,aAAa,EAC7C,WAAW;CACT,MAAM,CAAC,QAAQ,OAAO;CAEtB,YAAW,UAAS,SAAS,MAAM,IAAI;CACxC,EACF,EAAE,YAAY;AACf,SAAgB,aAAa,OAAO;AAMlC,QAAO,EACL,kBANuB,YAAY;EACnC,MAAM,YAAY,MAAM,MAAM,GAAG,MAAM,QAAQ,MAAM;AACrD,MAAI,aAAa,KAAM,QAAO,EAAE;AAChC,SAAO,CAAC,aAAa,SAAS,UAAU,GAAG;GAG3B,EACjB"}
|
||||
-142
@@ -1,142 +0,0 @@
|
||||
import { Ot as nextTick, Qn as toRef, Vn as onScopeDispose, er as toValue, gn as watch } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { O as focusableChildren, Q as IN_BROWSER, b as defer, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/delay.js
|
||||
var makeDelayProps = propsFactory({
|
||||
closeDelay: [Number, String],
|
||||
openDelay: [Number, String]
|
||||
}, "delay");
|
||||
function useDelay(props, cb) {
|
||||
let clearDelay = () => {};
|
||||
function runDelay(isOpening, options) {
|
||||
clearDelay?.();
|
||||
const delay = isOpening ? props.openDelay : props.closeDelay;
|
||||
const normalizedDelay = Math.max(options?.minDelay ?? 0, Number(delay ?? 0));
|
||||
return new Promise((resolve) => {
|
||||
clearDelay = defer(normalizedDelay, () => {
|
||||
cb?.(isOpening);
|
||||
resolve(isOpening);
|
||||
});
|
||||
});
|
||||
}
|
||||
function runOpenDelay() {
|
||||
return runDelay(true);
|
||||
}
|
||||
function runCloseDelay(options) {
|
||||
return runDelay(false, options);
|
||||
}
|
||||
return {
|
||||
clearDelay,
|
||||
runOpenDelay,
|
||||
runCloseDelay
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/focusTrap.js
|
||||
var makeFocusTrapProps = propsFactory({
|
||||
retainFocus: Boolean,
|
||||
captureFocus: Boolean,
|
||||
/** @deprecated */
|
||||
disableInitialFocus: Boolean
|
||||
}, "focusTrap");
|
||||
var registry = /* @__PURE__ */ new Map();
|
||||
var subscribers = 0;
|
||||
function onKeydown(e) {
|
||||
const activeElement = document.activeElement;
|
||||
if (e.key !== "Tab" || !activeElement) return;
|
||||
const parentTraps = Array.from(registry.values()).filter(({ isActive, contentEl }) => isActive.value && contentEl.value?.contains(activeElement)).map((x) => x.contentEl.value);
|
||||
let closestTrap;
|
||||
let currentParent = activeElement.parentElement;
|
||||
while (currentParent) {
|
||||
if (parentTraps.includes(currentParent)) {
|
||||
closestTrap = currentParent;
|
||||
break;
|
||||
}
|
||||
currentParent = currentParent.parentElement;
|
||||
}
|
||||
if (!closestTrap) return;
|
||||
const focusable = focusableChildren(closestTrap).filter((x) => x.tabIndex >= 0);
|
||||
if (!focusable.length) return;
|
||||
const active = document.activeElement;
|
||||
if (focusable.length === 1 && focusable[0].classList.contains("v-list") && focusable[0].contains(active)) {
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
const firstElement = focusable[0];
|
||||
const lastElement = focusable[focusable.length - 1];
|
||||
if (e.shiftKey && (active === firstElement || firstElement.classList.contains("v-list") && firstElement.contains(active))) {
|
||||
e.preventDefault();
|
||||
lastElement.focus();
|
||||
}
|
||||
if (!e.shiftKey && (active === lastElement || lastElement.classList.contains("v-list") && lastElement.contains(active))) {
|
||||
e.preventDefault();
|
||||
firstElement.focus();
|
||||
}
|
||||
}
|
||||
function useFocusTrap(props, { isActive, localTop, activatorEl, contentEl }) {
|
||||
const trapId = Symbol("trap");
|
||||
let focusTrapSuppressed = false;
|
||||
let focusTrapSuppressionTimeout = -1;
|
||||
async function onPointerdown() {
|
||||
focusTrapSuppressed = true;
|
||||
focusTrapSuppressionTimeout = window.setTimeout(() => {
|
||||
focusTrapSuppressed = false;
|
||||
}, 100);
|
||||
}
|
||||
async function captureOnFocus(e) {
|
||||
const before = e.relatedTarget;
|
||||
const after = e.target;
|
||||
document.removeEventListener("pointerdown", onPointerdown);
|
||||
document.removeEventListener("keydown", captureOnKeydown);
|
||||
await nextTick();
|
||||
if (isActive.value && !focusTrapSuppressed && before !== after && contentEl.value && toValue(localTop) && ![document, contentEl.value].includes(after) && !contentEl.value.contains(after)) focusableChildren(contentEl.value)[0]?.focus();
|
||||
}
|
||||
function captureOnKeydown(e) {
|
||||
if (e.key !== "Tab") return;
|
||||
document.removeEventListener("keydown", captureOnKeydown);
|
||||
if (isActive.value && contentEl.value && e.target && !contentEl.value.contains(e.target)) {
|
||||
const allFocusableElements = focusableChildren(document.documentElement);
|
||||
if (e.shiftKey && e.target === allFocusableElements.at(0) || !e.shiftKey && e.target === allFocusableElements.at(-1)) {
|
||||
const focusable = focusableChildren(contentEl.value);
|
||||
if (focusable.length > 0) {
|
||||
e.preventDefault();
|
||||
focusable[0].focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const shouldCapture = toRef(() => isActive.value && props.captureFocus && !props.disableInitialFocus);
|
||||
if (IN_BROWSER) {
|
||||
watch(() => props.retainFocus, (val) => {
|
||||
if (val) registry.set(trapId, {
|
||||
isActive,
|
||||
contentEl
|
||||
});
|
||||
else registry.delete(trapId);
|
||||
}, { immediate: true });
|
||||
watch(shouldCapture, (val) => {
|
||||
if (val) {
|
||||
document.addEventListener("pointerdown", onPointerdown);
|
||||
document.addEventListener("focusin", captureOnFocus, { once: true });
|
||||
document.addEventListener("keydown", captureOnKeydown);
|
||||
} else {
|
||||
document.removeEventListener("pointerdown", onPointerdown);
|
||||
document.removeEventListener("focusin", captureOnFocus);
|
||||
document.removeEventListener("keydown", captureOnKeydown);
|
||||
}
|
||||
}, { immediate: true });
|
||||
if (subscribers++ < 1) document.addEventListener("keydown", onKeydown);
|
||||
}
|
||||
onScopeDispose(() => {
|
||||
registry.delete(trapId);
|
||||
if (!IN_BROWSER) return;
|
||||
clearTimeout(focusTrapSuppressionTimeout);
|
||||
document.removeEventListener("pointerdown", onPointerdown);
|
||||
document.removeEventListener("focusin", captureOnFocus);
|
||||
document.removeEventListener("keydown", captureOnKeydown);
|
||||
if (--subscribers < 1) document.removeEventListener("keydown", onKeydown);
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
export { useDelay as i, useFocusTrap as n, makeDelayProps as r, makeFocusTrapProps as t };
|
||||
|
||||
//# sourceMappingURL=focusTrap-rHoJd0qS.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-63
@@ -1,63 +0,0 @@
|
||||
//#region node_modules/vuetify/lib/composables/forwardRefs.js
|
||||
var Refs = Symbol("Forwarded refs");
|
||||
/** Omit properties starting with P */
|
||||
/** Omit keyof $props from T */
|
||||
function getDescriptor(obj, key) {
|
||||
let currentObj = obj;
|
||||
while (currentObj) {
|
||||
const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);
|
||||
if (descriptor) return descriptor;
|
||||
currentObj = Object.getPrototypeOf(currentObj);
|
||||
}
|
||||
}
|
||||
function forwardRefs(target, ...refs) {
|
||||
target[Refs] = refs;
|
||||
return new Proxy(target, {
|
||||
get(target, key) {
|
||||
if (Reflect.has(target, key)) return Reflect.get(target, key);
|
||||
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return;
|
||||
for (const ref of refs) if (ref.value && Reflect.has(ref.value, key)) {
|
||||
const val = Reflect.get(ref.value, key);
|
||||
return typeof val === "function" ? val.bind(ref.value) : val;
|
||||
}
|
||||
},
|
||||
has(target, key) {
|
||||
if (Reflect.has(target, key)) return true;
|
||||
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return false;
|
||||
for (const ref of refs) if (ref.value && Reflect.has(ref.value, key)) return true;
|
||||
return false;
|
||||
},
|
||||
set(target, key, value) {
|
||||
if (Reflect.has(target, key)) return Reflect.set(target, key, value);
|
||||
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return false;
|
||||
for (const ref of refs) if (ref.value && Reflect.has(ref.value, key)) return Reflect.set(ref.value, key, value);
|
||||
return false;
|
||||
},
|
||||
getOwnPropertyDescriptor(target, key) {
|
||||
const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
|
||||
if (descriptor) return descriptor;
|
||||
if (typeof key === "symbol" || key.startsWith("$") || key.startsWith("__")) return;
|
||||
for (const ref of refs) {
|
||||
if (!ref.value) continue;
|
||||
const descriptor = getDescriptor(ref.value, key) ?? ("_" in ref.value ? getDescriptor(ref.value._?.setupState, key) : void 0);
|
||||
if (descriptor) return descriptor;
|
||||
}
|
||||
for (const ref of refs) {
|
||||
const childRefs = ref.value && ref.value[Refs];
|
||||
if (!childRefs) continue;
|
||||
const queue = childRefs.slice();
|
||||
while (queue.length) {
|
||||
const ref = queue.shift();
|
||||
const descriptor = getDescriptor(ref.value, key);
|
||||
if (descriptor) return descriptor;
|
||||
const childRefs = ref.value && ref.value[Refs];
|
||||
if (childRefs) queue.push(...childRefs);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
export { forwardRefs as t };
|
||||
|
||||
//# sourceMappingURL=forwardRefs-CW3d8km7.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"forwardRefs-CW3d8km7.js","names":[],"sources":["../../vuetify/lib/composables/forwardRefs.js"],"sourcesContent":["// Types\n\nconst Refs = Symbol('Forwarded refs');\n\n/** Omit properties starting with P */\n\n/** Omit keyof $props from T */\n\nfunction getDescriptor(obj, key) {\n let currentObj = obj;\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);\n if (descriptor) return descriptor;\n currentObj = Object.getPrototypeOf(currentObj);\n }\n return undefined;\n}\nexport function forwardRefs(target, ...refs) {\n target[Refs] = refs;\n return new Proxy(target, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key);\n return typeof val === 'function' ? val.bind(ref.value) : val;\n }\n }\n },\n has(target, key) {\n if (Reflect.has(target, key)) {\n return true;\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true;\n }\n }\n return false;\n },\n set(target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value);\n }\n }\n return false;\n },\n getOwnPropertyDescriptor(target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key);\n if (descriptor) return descriptor;\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue;\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);\n if (descriptor) return descriptor;\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && ref.value[Refs];\n if (!childRefs) continue;\n const queue = childRefs.slice();\n while (queue.length) {\n const ref = queue.shift();\n const descriptor = getDescriptor(ref.value, key);\n if (descriptor) return descriptor;\n const childRefs = ref.value && ref.value[Refs];\n if (childRefs) queue.push(...childRefs);\n }\n }\n return undefined;\n }\n });\n}\n//# sourceMappingURL=forwardRefs.js.map"],"mappings":";AAEA,IAAM,OAAO,OAAO,iBAAiB;;;AAMrC,SAAS,cAAc,KAAK,KAAK;CAC/B,IAAI,aAAa;AACjB,QAAO,YAAY;EACjB,MAAM,aAAa,QAAQ,yBAAyB,YAAY,IAAI;AACpE,MAAI,WAAY,QAAO;AACvB,eAAa,OAAO,eAAe,WAAW;;;AAIlD,SAAgB,YAAY,QAAQ,GAAG,MAAM;AAC3C,QAAO,QAAQ;AACf,QAAO,IAAI,MAAM,QAAQ;EACvB,IAAI,QAAQ,KAAK;AACf,OAAI,QAAQ,IAAI,QAAQ,IAAI,CAC1B,QAAO,QAAQ,IAAI,QAAQ,IAAI;AAIjC,OAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,CAAE;AAC5E,QAAK,MAAM,OAAO,KAChB,KAAI,IAAI,SAAS,QAAQ,IAAI,IAAI,OAAO,IAAI,EAAE;IAC5C,MAAM,MAAM,QAAQ,IAAI,IAAI,OAAO,IAAI;AACvC,WAAO,OAAO,QAAQ,aAAa,IAAI,KAAK,IAAI,MAAM,GAAG;;;EAI/D,IAAI,QAAQ,KAAK;AACf,OAAI,QAAQ,IAAI,QAAQ,IAAI,CAC1B,QAAO;AAIT,OAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,CAAE,QAAO;AACnF,QAAK,MAAM,OAAO,KAChB,KAAI,IAAI,SAAS,QAAQ,IAAI,IAAI,OAAO,IAAI,CAC1C,QAAO;AAGX,UAAO;;EAET,IAAI,QAAQ,KAAK,OAAO;AACtB,OAAI,QAAQ,IAAI,QAAQ,IAAI,CAC1B,QAAO,QAAQ,IAAI,QAAQ,KAAK,MAAM;AAIxC,OAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,CAAE,QAAO;AACnF,QAAK,MAAM,OAAO,KAChB,KAAI,IAAI,SAAS,QAAQ,IAAI,IAAI,OAAO,IAAI,CAC1C,QAAO,QAAQ,IAAI,IAAI,OAAO,KAAK,MAAM;AAG7C,UAAO;;EAET,yBAAyB,QAAQ,KAAK;GACpC,MAAM,aAAa,QAAQ,yBAAyB,QAAQ,IAAI;AAChE,OAAI,WAAY,QAAO;AAGvB,OAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,CAAE;AAG5E,QAAK,MAAM,OAAO,MAAM;AACtB,QAAI,CAAC,IAAI,MAAO;IAChB,MAAM,aAAa,cAAc,IAAI,OAAO,IAAI,KAAK,OAAO,IAAI,QAAQ,cAAc,IAAI,MAAM,GAAG,YAAY,IAAI,GAAG,KAAA;AACtH,QAAI,WAAY,QAAO;;AAIzB,QAAK,MAAM,OAAO,MAAM;IACtB,MAAM,YAAY,IAAI,SAAS,IAAI,MAAM;AACzC,QAAI,CAAC,UAAW;IAChB,MAAM,QAAQ,UAAU,OAAO;AAC/B,WAAO,MAAM,QAAQ;KACnB,MAAM,MAAM,MAAM,OAAO;KACzB,MAAM,aAAa,cAAc,IAAI,OAAO,IAAI;AAChD,SAAI,WAAY,QAAO;KACvB,MAAM,YAAY,IAAI,SAAS,IAAI,MAAM;AACzC,SAAI,UAAW,OAAM,KAAK,GAAG,UAAU;;;;EAK9C,CAAC"}
|
||||
-114
@@ -1,114 +0,0 @@
|
||||
import { Qn as toRef, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { $ as PREFERS_REDUCED_MOTION, J as refElement, V as mergeDeep, g as clamp, it as consoleWarn } from "./defineComponent-DB6xIcDy.js";
|
||||
import { r as easingPatterns } from "./easing-DfcvkbkS.js";
|
||||
import { i as useRtl } from "./locale-DDGMqzqb.js";
|
||||
//#region node_modules/vuetify/lib/composables/goto.js
|
||||
var GoToSymbol = Symbol.for("vuetify:goto");
|
||||
function genDefaults() {
|
||||
return {
|
||||
container: void 0,
|
||||
duration: 300,
|
||||
layout: false,
|
||||
offset: 0,
|
||||
easing: "easeInOutCubic",
|
||||
patterns: easingPatterns
|
||||
};
|
||||
}
|
||||
function getContainer(el) {
|
||||
return getTarget(el) ?? (document.scrollingElement || document.body);
|
||||
}
|
||||
function getTarget(el) {
|
||||
return typeof el === "string" ? document.querySelector(el) : refElement(el);
|
||||
}
|
||||
function getOffset(target, horizontal, rtl) {
|
||||
if (typeof target === "number") return horizontal && rtl ? -target : target;
|
||||
let el = getTarget(target);
|
||||
let totalOffset = 0;
|
||||
while (el) {
|
||||
totalOffset += horizontal ? el.offsetLeft : el.offsetTop;
|
||||
el = el.offsetParent;
|
||||
}
|
||||
return totalOffset;
|
||||
}
|
||||
function createGoTo(options, locale) {
|
||||
return {
|
||||
rtl: locale.isRtl,
|
||||
options: mergeDeep(genDefaults(), options)
|
||||
};
|
||||
}
|
||||
async function scrollTo(_target, _options, horizontal, goTo) {
|
||||
const property = horizontal ? "scrollLeft" : "scrollTop";
|
||||
const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
|
||||
const rtl = goTo?.rtl.value;
|
||||
const target = (typeof _target === "number" ? _target : getTarget(_target)) ?? 0;
|
||||
const container = options.container === "parent" && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
||||
const ease = PREFERS_REDUCED_MOTION() ? options.patterns.instant : typeof options.easing === "function" ? options.easing : options.patterns[options.easing];
|
||||
if (!ease) throw new TypeError(`Easing function "${options.easing}" not found.`);
|
||||
let targetLocation;
|
||||
if (typeof target === "number") targetLocation = getOffset(target, horizontal, rtl);
|
||||
else {
|
||||
targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);
|
||||
if (options.layout) {
|
||||
const layoutOffset = window.getComputedStyle(target).getPropertyValue("--v-layout-top");
|
||||
if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);
|
||||
}
|
||||
}
|
||||
targetLocation += options.offset;
|
||||
targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);
|
||||
const startLocation = container[property] ?? 0;
|
||||
if (targetLocation === startLocation) return Promise.resolve(targetLocation);
|
||||
const startTime = performance.now();
|
||||
return new Promise((resolve) => requestAnimationFrame(function step(currentTime) {
|
||||
const progress = (currentTime - startTime) / options.duration;
|
||||
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));
|
||||
container[property] = location;
|
||||
if (progress >= 1 && Math.abs(location - container[property]) < 10) return resolve(targetLocation);
|
||||
else if (progress > 2) {
|
||||
consoleWarn("Scroll target is not reachable");
|
||||
return resolve(container[property]);
|
||||
}
|
||||
requestAnimationFrame(step);
|
||||
}));
|
||||
}
|
||||
function useGoTo(_options = {}) {
|
||||
const goToInstance = inject(GoToSymbol);
|
||||
const { isRtl } = useRtl();
|
||||
if (!goToInstance) throw new Error("[Vuetify] Could not find injected goto instance");
|
||||
const goTo = {
|
||||
...goToInstance,
|
||||
rtl: toRef(() => goToInstance.rtl.value || isRtl.value)
|
||||
};
|
||||
async function go(target, options) {
|
||||
return scrollTo(target, mergeDeep(_options, options), false, goTo);
|
||||
}
|
||||
go.horizontal = async (target, options) => {
|
||||
return scrollTo(target, mergeDeep(_options, options), true, goTo);
|
||||
};
|
||||
return go;
|
||||
}
|
||||
/**
|
||||
* Clamp target value to achieve a smooth scroll animation
|
||||
* when the value goes outside the scroll container size
|
||||
*/
|
||||
function clampTarget(container, value, rtl, horizontal) {
|
||||
const { scrollWidth, scrollHeight } = container;
|
||||
const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];
|
||||
let min;
|
||||
let max;
|
||||
if (horizontal) if (rtl) {
|
||||
min = -(scrollWidth - containerWidth);
|
||||
max = 0;
|
||||
} else {
|
||||
min = 0;
|
||||
max = scrollWidth - containerWidth;
|
||||
}
|
||||
else {
|
||||
min = 0;
|
||||
max = scrollHeight + -containerHeight;
|
||||
}
|
||||
return clamp(value, min, max);
|
||||
}
|
||||
//#endregion
|
||||
export { createGoTo as n, useGoTo as r, GoToSymbol as t };
|
||||
|
||||
//# sourceMappingURL=goto-Bn-PzNUr.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-197
@@ -1,197 +0,0 @@
|
||||
import { Bt as onUpdated, Ft as onMounted, Qn as toRef, U as computed, Ut as provide, Wn as reactive, cn as useId, gn as watch, jt as onBeforeUnmount, nr as unref, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { T as findChildrenWithProvide, Z as wrapInArray, it as consoleWarn, l as propsFactory, s as getCurrentInstance } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as deepEqual } from "./deepEqual-DDqmGqyF.js";
|
||||
import { t as useProxiedModel } from "./proxiedModel-DSlSIQ0y.js";
|
||||
//#region node_modules/vuetify/lib/composables/group.js
|
||||
var makeGroupProps = propsFactory({
|
||||
modelValue: {
|
||||
type: null,
|
||||
default: void 0
|
||||
},
|
||||
multiple: Boolean,
|
||||
mandatory: [Boolean, String],
|
||||
max: Number,
|
||||
selectedClass: String,
|
||||
disabled: Boolean
|
||||
}, "group");
|
||||
var makeGroupItemProps = propsFactory({
|
||||
value: null,
|
||||
disabled: Boolean,
|
||||
selectedClass: String
|
||||
}, "group-item");
|
||||
function useGroupItem(props, injectKey, required = true) {
|
||||
const vm = getCurrentInstance("useGroupItem");
|
||||
if (!vm) throw new Error("[Vuetify] useGroupItem composable must be used inside a component setup function");
|
||||
const id = useId();
|
||||
provide(Symbol.for(`${injectKey.description}:id`), id);
|
||||
const group = inject(injectKey, null);
|
||||
if (!group) {
|
||||
if (!required) return group;
|
||||
throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
|
||||
}
|
||||
const value = toRef(() => props.value);
|
||||
const disabled = computed(() => !!(group.disabled.value || props.disabled));
|
||||
function register() {
|
||||
group?.register({
|
||||
id,
|
||||
value,
|
||||
disabled
|
||||
}, vm);
|
||||
}
|
||||
function unregister() {
|
||||
group?.unregister(id);
|
||||
}
|
||||
register();
|
||||
onBeforeUnmount(() => unregister());
|
||||
const isSelected = computed(() => {
|
||||
return group.isSelected(id);
|
||||
});
|
||||
const isFirst = computed(() => {
|
||||
return group.items.value[0].id === id;
|
||||
});
|
||||
const isLast = computed(() => {
|
||||
return group.items.value[group.items.value.length - 1].id === id;
|
||||
});
|
||||
const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);
|
||||
watch(isSelected, (value) => {
|
||||
vm.emit("group:selected", { value });
|
||||
}, { flush: "sync" });
|
||||
return {
|
||||
id,
|
||||
isSelected,
|
||||
isFirst,
|
||||
isLast,
|
||||
toggle: () => group.select(id, !isSelected.value),
|
||||
select: (value) => group.select(id, value),
|
||||
selectedClass,
|
||||
value,
|
||||
disabled,
|
||||
group,
|
||||
register,
|
||||
unregister
|
||||
};
|
||||
}
|
||||
function useGroup(props, injectKey) {
|
||||
let isUnmounted = false;
|
||||
const items = reactive([]);
|
||||
const selected = useProxiedModel(props, "modelValue", [], (v) => {
|
||||
if (v === void 0) return [];
|
||||
return getIds(items, v === null ? [null] : wrapInArray(v));
|
||||
}, (v) => {
|
||||
const arr = getValues(items, v);
|
||||
return props.multiple ? arr : arr[0];
|
||||
});
|
||||
const groupVm = getCurrentInstance("useGroup");
|
||||
function register(item, vm) {
|
||||
const unwrapped = item;
|
||||
const index = findChildrenWithProvide(Symbol.for(`${injectKey.description}:id`), groupVm?.vnode).indexOf(vm);
|
||||
if (unref(unwrapped.value) === void 0) {
|
||||
unwrapped.value = index;
|
||||
unwrapped.useIndexAsValue = true;
|
||||
}
|
||||
if (index > -1) items.splice(index, 0, unwrapped);
|
||||
else items.push(unwrapped);
|
||||
}
|
||||
function unregister(id) {
|
||||
if (isUnmounted) return;
|
||||
forceMandatoryValue();
|
||||
const index = items.findIndex((item) => item.id === id);
|
||||
items.splice(index, 1);
|
||||
}
|
||||
function forceMandatoryValue() {
|
||||
const item = items.find((item) => !item.disabled);
|
||||
if (item && props.mandatory === "force" && !selected.value.length) selected.value = [item.id];
|
||||
}
|
||||
onMounted(() => {
|
||||
forceMandatoryValue();
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
isUnmounted = true;
|
||||
});
|
||||
onUpdated(() => {
|
||||
for (let i = 0; i < items.length; i++) if (items[i].useIndexAsValue) items[i].value = i;
|
||||
});
|
||||
function select(id, value) {
|
||||
const item = items.find((item) => item.id === id);
|
||||
if (value && item?.disabled) return;
|
||||
if (props.multiple) {
|
||||
const internalValue = selected.value.slice();
|
||||
const index = internalValue.findIndex((v) => v === id);
|
||||
const isSelected = ~index;
|
||||
value = value ?? !isSelected;
|
||||
if (isSelected && props.mandatory && internalValue.length <= 1) return;
|
||||
if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;
|
||||
if (index < 0 && value) internalValue.push(id);
|
||||
else if (index >= 0 && !value) internalValue.splice(index, 1);
|
||||
selected.value = internalValue;
|
||||
} else {
|
||||
const isSelected = selected.value.includes(id);
|
||||
if (props.mandatory && isSelected) return;
|
||||
if (!isSelected && !value) return;
|
||||
selected.value = value ?? !isSelected ? [id] : [];
|
||||
}
|
||||
}
|
||||
function step(offset) {
|
||||
if (props.multiple) consoleWarn("This method is not supported when using \"multiple\" prop");
|
||||
if (!selected.value.length) {
|
||||
const item = items.find((item) => !item.disabled);
|
||||
item && (selected.value = [item.id]);
|
||||
} else {
|
||||
const currentId = selected.value[0];
|
||||
const currentIndex = items.findIndex((i) => i.id === currentId);
|
||||
let newIndex = (currentIndex + offset) % items.length;
|
||||
let newItem = items[newIndex];
|
||||
while (newItem.disabled && newIndex !== currentIndex) {
|
||||
newIndex = (newIndex + offset) % items.length;
|
||||
newItem = items[newIndex];
|
||||
}
|
||||
if (newItem.disabled) return;
|
||||
selected.value = [items[newIndex].id];
|
||||
}
|
||||
}
|
||||
const state = {
|
||||
register,
|
||||
unregister,
|
||||
selected,
|
||||
select,
|
||||
disabled: toRef(() => props.disabled),
|
||||
prev: () => step(items.length - 1),
|
||||
next: () => step(1),
|
||||
isSelected: (id) => selected.value.includes(id),
|
||||
selectedClass: toRef(() => props.selectedClass),
|
||||
items: toRef(() => items),
|
||||
getItemIndex: (value) => getItemIndex(items, value)
|
||||
};
|
||||
provide(injectKey, state);
|
||||
return state;
|
||||
}
|
||||
function getItemIndex(items, value) {
|
||||
const ids = getIds(items, [value]);
|
||||
if (!ids.length) return -1;
|
||||
return items.findIndex((item) => item.id === ids[0]);
|
||||
}
|
||||
function getIds(items, modelValue) {
|
||||
const ids = [];
|
||||
modelValue.forEach((value) => {
|
||||
const item = items.find((item) => deepEqual(value, item.value));
|
||||
const itemByIndex = items[value];
|
||||
if (item?.value !== void 0) ids.push(item.id);
|
||||
else if (itemByIndex?.useIndexAsValue) ids.push(itemByIndex.id);
|
||||
});
|
||||
return ids;
|
||||
}
|
||||
function getValues(items, ids) {
|
||||
const values = [];
|
||||
ids.forEach((id) => {
|
||||
const itemIndex = items.findIndex((item) => item.id === id);
|
||||
if (~itemIndex) {
|
||||
const item = items[itemIndex];
|
||||
values.push(item.value !== void 0 ? item.value : itemIndex);
|
||||
}
|
||||
});
|
||||
return values;
|
||||
}
|
||||
//#endregion
|
||||
export { useGroupItem as i, makeGroupProps as n, useGroup as r, makeGroupItemProps as t };
|
||||
|
||||
//# sourceMappingURL=group-Cm2viEWK.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-100
@@ -1,100 +0,0 @@
|
||||
import { Dt as mergeProps, U as computed, W as createBaseVNode, ar as normalizeClass, er as toValue, et as createVNode, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { it as consoleWarn, l as propsFactory, n as genericComponent, t as defineComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/icons.js
|
||||
var IconValue = [
|
||||
String,
|
||||
Function,
|
||||
Object,
|
||||
Array
|
||||
];
|
||||
var IconSymbol = Symbol.for("vuetify:icons");
|
||||
var makeIconProps = propsFactory({
|
||||
icon: { type: IconValue },
|
||||
tag: {
|
||||
type: [
|
||||
String,
|
||||
Object,
|
||||
Function
|
||||
],
|
||||
required: true
|
||||
}
|
||||
}, "icon");
|
||||
var VComponentIcon = genericComponent()({
|
||||
name: "VComponentIcon",
|
||||
props: makeIconProps(),
|
||||
setup(props, { slots }) {
|
||||
return () => {
|
||||
const Icon = props.icon;
|
||||
return createVNode(props.tag, null, { default: () => [props.icon ? createVNode(Icon, null, null) : slots.default?.()] });
|
||||
};
|
||||
}
|
||||
});
|
||||
var VSvgIcon = defineComponent({
|
||||
name: "VSvgIcon",
|
||||
inheritAttrs: false,
|
||||
props: makeIconProps(),
|
||||
setup(props, { attrs }) {
|
||||
return () => {
|
||||
return createVNode(props.tag, mergeProps(attrs, { "style": null }), { default: () => [createBaseVNode("svg", {
|
||||
"class": "v-icon__svg",
|
||||
"xmlns": "http://www.w3.org/2000/svg",
|
||||
"viewBox": "0 0 24 24",
|
||||
"role": "img",
|
||||
"aria-hidden": "true"
|
||||
}, [Array.isArray(props.icon) ? props.icon.map((path) => Array.isArray(path) ? createBaseVNode("path", {
|
||||
"d": path[0],
|
||||
"fill-opacity": path[1]
|
||||
}, null) : createBaseVNode("path", { "d": path }, null)) : createBaseVNode("path", { "d": props.icon }, null)])] });
|
||||
};
|
||||
}
|
||||
});
|
||||
var VLigatureIcon = defineComponent({
|
||||
name: "VLigatureIcon",
|
||||
props: makeIconProps(),
|
||||
setup(props) {
|
||||
return () => {
|
||||
return createVNode(props.tag, null, { default: () => [props.icon] });
|
||||
};
|
||||
}
|
||||
});
|
||||
var VClassIcon = defineComponent({
|
||||
name: "VClassIcon",
|
||||
props: makeIconProps(),
|
||||
setup(props) {
|
||||
return () => {
|
||||
return createVNode(props.tag, { "class": normalizeClass(props.icon) }, null);
|
||||
};
|
||||
}
|
||||
});
|
||||
var useIcon = (props) => {
|
||||
const icons = inject(IconSymbol);
|
||||
if (!icons) throw new Error("Missing Vuetify Icons provide!");
|
||||
return { iconData: computed(() => {
|
||||
const iconAlias = toValue(props);
|
||||
if (!iconAlias) return { component: VComponentIcon };
|
||||
let icon = iconAlias;
|
||||
if (typeof icon === "string") {
|
||||
icon = icon.trim();
|
||||
if (icon.startsWith("$")) icon = icons.aliases?.[icon.slice(1)];
|
||||
}
|
||||
if (!icon) consoleWarn(`Could not find aliased icon "${iconAlias}"`);
|
||||
if (Array.isArray(icon)) return {
|
||||
component: VSvgIcon,
|
||||
icon
|
||||
};
|
||||
else if (typeof icon !== "string") return {
|
||||
component: VComponentIcon,
|
||||
icon
|
||||
};
|
||||
const iconSetName = Object.keys(icons.sets).find((setName) => typeof icon === "string" && icon.startsWith(`${setName}:`));
|
||||
const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
|
||||
return {
|
||||
component: icons.sets[iconSetName ?? icons.defaultSet].component,
|
||||
icon: iconName
|
||||
};
|
||||
}) };
|
||||
};
|
||||
//#endregion
|
||||
export { VLigatureIcon as a, VComponentIcon as i, IconValue as n, VSvgIcon as o, VClassIcon as r, useIcon as s, IconSymbol as t };
|
||||
|
||||
//# sourceMappingURL=icons-k2ZLE_i8.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-236
@@ -1,236 +0,0 @@
|
||||
import { Ft as onMounted, Kn as ref, Nt as onDeactivated, Qn as toRef, U as computed, Ut as provide, Wn as reactive, Yn as shallowRef, cn as useId, jt as onBeforeUnmount, kt as onActivated, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { T as findChildrenWithProvide, _ as convertToUnit, it as consoleWarn, l as propsFactory, s as getCurrentInstance } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as useResizeObserver } from "./resizeObserver-C12jWpYk.js";
|
||||
//#region node_modules/vuetify/lib/composables/layout.js
|
||||
var VuetifyLayoutKey = Symbol.for("vuetify:layout");
|
||||
var VuetifyLayoutItemKey = Symbol.for("vuetify:layout-item");
|
||||
var ROOT_ZINDEX = 1e3;
|
||||
var makeLayoutProps = propsFactory({
|
||||
overlaps: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
fullHeight: Boolean
|
||||
}, "layout");
|
||||
var makeLayoutItemProps = propsFactory({
|
||||
name: { type: String },
|
||||
order: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
absolute: Boolean
|
||||
}, "layout-item");
|
||||
function useLayout() {
|
||||
const layout = inject(VuetifyLayoutKey);
|
||||
if (!layout) throw new Error("[Vuetify] Could not find injected layout");
|
||||
return {
|
||||
getLayoutItem: layout.getLayoutItem,
|
||||
mainRect: layout.mainRect,
|
||||
mainStyles: layout.mainStyles
|
||||
};
|
||||
}
|
||||
function useLayoutItem(options) {
|
||||
const layout = inject(VuetifyLayoutKey);
|
||||
if (!layout) throw new Error("[Vuetify] Could not find injected layout");
|
||||
const id = options.id ?? `layout-item-${useId()}`;
|
||||
const vm = getCurrentInstance("useLayoutItem");
|
||||
provide(VuetifyLayoutItemKey, { id });
|
||||
const isKeptAlive = shallowRef(false);
|
||||
onDeactivated(() => isKeptAlive.value = true);
|
||||
onActivated(() => isKeptAlive.value = false);
|
||||
const { layoutItemStyles, layoutItemScrimStyles } = layout.register(vm, {
|
||||
...options,
|
||||
active: computed(() => isKeptAlive.value ? false : options.active.value),
|
||||
id
|
||||
});
|
||||
onBeforeUnmount(() => layout.unregister(id));
|
||||
return {
|
||||
layoutItemStyles,
|
||||
layoutRect: layout.layoutRect,
|
||||
layoutItemScrimStyles
|
||||
};
|
||||
}
|
||||
var generateLayers = (layout, positions, layoutSizes, activeItems) => {
|
||||
let previousLayer = {
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0
|
||||
};
|
||||
const layers = [{
|
||||
id: "",
|
||||
layer: { ...previousLayer }
|
||||
}];
|
||||
for (const id of layout) {
|
||||
const position = positions.get(id);
|
||||
const amount = layoutSizes.get(id);
|
||||
const active = activeItems.get(id);
|
||||
if (!position || !amount || !active) continue;
|
||||
const layer = {
|
||||
...previousLayer,
|
||||
[position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)
|
||||
};
|
||||
layers.push({
|
||||
id,
|
||||
layer
|
||||
});
|
||||
previousLayer = layer;
|
||||
}
|
||||
return layers;
|
||||
};
|
||||
function createLayout(props) {
|
||||
const parentLayout = inject(VuetifyLayoutKey, null);
|
||||
const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);
|
||||
const registered = ref([]);
|
||||
const positions = reactive(/* @__PURE__ */ new Map());
|
||||
const layoutSizes = reactive(/* @__PURE__ */ new Map());
|
||||
const priorities = reactive(/* @__PURE__ */ new Map());
|
||||
const activeItems = reactive(/* @__PURE__ */ new Map());
|
||||
const disabledTransitions = reactive(/* @__PURE__ */ new Map());
|
||||
const { resizeRef, contentRect: layoutRect } = useResizeObserver();
|
||||
const computedOverlaps = computed(() => {
|
||||
const map = /* @__PURE__ */ new Map();
|
||||
const overlaps = props.overlaps ?? [];
|
||||
for (const overlap of overlaps.filter((item) => item.includes(":"))) {
|
||||
const [top, bottom] = overlap.split(":");
|
||||
if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
|
||||
const topPosition = positions.get(top);
|
||||
const bottomPosition = positions.get(bottom);
|
||||
const topAmount = layoutSizes.get(top);
|
||||
const bottomAmount = layoutSizes.get(bottom);
|
||||
if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
|
||||
map.set(bottom, {
|
||||
position: topPosition.value,
|
||||
amount: parseInt(topAmount.value, 10)
|
||||
});
|
||||
map.set(top, {
|
||||
position: bottomPosition.value,
|
||||
amount: -parseInt(bottomAmount.value, 10)
|
||||
});
|
||||
}
|
||||
return map;
|
||||
});
|
||||
const layers = computed(() => {
|
||||
const uniquePriorities = [...new Set([...priorities.values()].map((p) => p.value))].sort((a, b) => a - b);
|
||||
const layout = [];
|
||||
for (const p of uniquePriorities) {
|
||||
const items = registered.value.filter((id) => priorities.get(id)?.value === p);
|
||||
layout.push(...items);
|
||||
}
|
||||
return generateLayers(layout, positions, layoutSizes, activeItems);
|
||||
});
|
||||
const transitionsEnabled = computed(() => {
|
||||
return !Array.from(disabledTransitions.values()).some((ref) => ref.value);
|
||||
});
|
||||
const mainRect = computed(() => {
|
||||
return layers.value[layers.value.length - 1].layer;
|
||||
});
|
||||
const mainStyles = toRef(() => {
|
||||
return {
|
||||
"--v-layout-left": convertToUnit(mainRect.value.left),
|
||||
"--v-layout-right": convertToUnit(mainRect.value.right),
|
||||
"--v-layout-top": convertToUnit(mainRect.value.top),
|
||||
"--v-layout-bottom": convertToUnit(mainRect.value.bottom),
|
||||
...transitionsEnabled.value ? void 0 : { transition: "none" }
|
||||
};
|
||||
});
|
||||
const items = computed(() => {
|
||||
return layers.value.slice(1).map(({ id }, index) => {
|
||||
const { layer } = layers.value[index];
|
||||
const size = layoutSizes.get(id);
|
||||
const position = positions.get(id);
|
||||
return {
|
||||
id,
|
||||
...layer,
|
||||
size: Number(size.value),
|
||||
position: position.value
|
||||
};
|
||||
});
|
||||
});
|
||||
const getLayoutItem = (id) => {
|
||||
return items.value.find((item) => item.id === id);
|
||||
};
|
||||
const rootVm = getCurrentInstance("createLayout");
|
||||
const isMounted = shallowRef(false);
|
||||
onMounted(() => {
|
||||
isMounted.value = true;
|
||||
});
|
||||
provide(VuetifyLayoutKey, {
|
||||
register: (vm, { id, order, position, layoutSize, elementSize, active, disableTransitions, absolute }) => {
|
||||
priorities.set(id, order);
|
||||
positions.set(id, position);
|
||||
layoutSizes.set(id, layoutSize);
|
||||
activeItems.set(id, active);
|
||||
disableTransitions && disabledTransitions.set(id, disableTransitions);
|
||||
const instanceIndex = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode).indexOf(vm);
|
||||
if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);
|
||||
else registered.value.push(id);
|
||||
const index = computed(() => items.value.findIndex((i) => i.id === id));
|
||||
const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);
|
||||
return {
|
||||
layoutItemStyles: computed(() => {
|
||||
const isHorizontal = position.value === "left" || position.value === "right";
|
||||
const isOppositeHorizontal = position.value === "right";
|
||||
const isOppositeVertical = position.value === "bottom";
|
||||
const size = Number(elementSize.value ?? layoutSize.value);
|
||||
const transformFunction = `translate${isHorizontal ? "X" : "Y"}`;
|
||||
const transformValue = active.value ? 0 : (size === 0 ? 100 : size + 1) * (isOppositeHorizontal || isOppositeVertical ? 1 : -1);
|
||||
const unit = size === 0 ? "%" : "px";
|
||||
const styles = {
|
||||
[position.value]: 0,
|
||||
zIndex: zIndex.value,
|
||||
transform: `${transformFunction}(${transformValue}${unit})`,
|
||||
position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? "absolute" : "fixed",
|
||||
...transitionsEnabled.value ? void 0 : { transition: "none" }
|
||||
};
|
||||
if (!isMounted.value) return styles;
|
||||
const item = items.value[index.value];
|
||||
if (!item) consoleWarn(`[Vuetify] Could not find layout item "${id}"`);
|
||||
const overlap = computedOverlaps.value.get(id);
|
||||
if (overlap) item[overlap.position] += overlap.amount;
|
||||
return {
|
||||
...styles,
|
||||
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : void 0,
|
||||
left: isOppositeHorizontal ? void 0 : `${item.left}px`,
|
||||
right: isOppositeHorizontal ? `${item.right}px` : void 0,
|
||||
top: position.value !== "bottom" ? `${item.top}px` : void 0,
|
||||
bottom: position.value !== "top" ? `${item.bottom}px` : void 0,
|
||||
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : void 0
|
||||
};
|
||||
}),
|
||||
layoutItemScrimStyles: computed(() => ({ zIndex: zIndex.value - 1 })),
|
||||
zIndex
|
||||
};
|
||||
},
|
||||
unregister: (id) => {
|
||||
priorities.delete(id);
|
||||
positions.delete(id);
|
||||
layoutSizes.delete(id);
|
||||
activeItems.delete(id);
|
||||
disabledTransitions.delete(id);
|
||||
registered.value = registered.value.filter((v) => v !== id);
|
||||
},
|
||||
mainRect,
|
||||
mainStyles,
|
||||
getLayoutItem,
|
||||
items,
|
||||
layoutRect,
|
||||
rootZIndex
|
||||
});
|
||||
return {
|
||||
layoutClasses: toRef(() => ["v-layout", { "v-layout--full-height": props.fullHeight }]),
|
||||
layoutStyles: toRef(() => ({
|
||||
zIndex: parentLayout ? rootZIndex.value : void 0,
|
||||
position: parentLayout ? "relative" : void 0,
|
||||
overflow: parentLayout ? "hidden" : void 0
|
||||
})),
|
||||
getLayoutItem,
|
||||
items,
|
||||
layoutRect,
|
||||
layoutRef: resizeRef
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useLayoutItem as a, useLayout as i, makeLayoutItemProps as n, makeLayoutProps as r, createLayout as t };
|
||||
|
||||
//# sourceMappingURL=layout-C9QMoF7I.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-21
@@ -1,21 +0,0 @@
|
||||
import { Qn as toRef, Yn as shallowRef, gn as watch } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/lazy.js
|
||||
var makeLazyProps = propsFactory({ eager: Boolean }, "lazy");
|
||||
function useLazy(props, active) {
|
||||
const isBooted = shallowRef(false);
|
||||
const hasContent = toRef(() => isBooted.value || props.eager || active.value);
|
||||
watch(active, () => isBooted.value = true);
|
||||
function onAfterLeave() {
|
||||
if (!props.eager) isBooted.value = false;
|
||||
}
|
||||
return {
|
||||
isBooted,
|
||||
hasContent,
|
||||
onAfterLeave
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useLazy as n, makeLazyProps as t };
|
||||
|
||||
//# sourceMappingURL=lazy-DhsobH97.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"lazy-DhsobH97.js","names":[],"sources":["../../vuetify/lib/composables/lazy.js"],"sourcesContent":["// Utilities\nimport { shallowRef, toRef, watch } from 'vue';\nimport { propsFactory } from \"../util/index.js\"; // Types\nexport const makeLazyProps = propsFactory({\n eager: Boolean\n}, 'lazy');\nexport function useLazy(props, active) {\n const isBooted = shallowRef(false);\n const hasContent = toRef(() => isBooted.value || props.eager || active.value);\n watch(active, () => isBooted.value = true);\n function onAfterLeave() {\n if (!props.eager) isBooted.value = false;\n }\n return {\n isBooted,\n hasContent,\n onAfterLeave\n };\n}\n//# sourceMappingURL=lazy.js.map"],"mappings":";;;AAGA,IAAa,gBAAgB,aAAa,EACxC,OAAO,SACR,EAAE,OAAO;AACV,SAAgB,QAAQ,OAAO,QAAQ;CACrC,MAAM,WAAW,WAAW,MAAM;CAClC,MAAM,aAAa,YAAY,SAAS,SAAS,MAAM,SAAS,OAAO,MAAM;AAC7E,OAAM,cAAc,SAAS,QAAQ,KAAK;CAC1C,SAAS,eAAe;AACtB,MAAI,CAAC,MAAM,MAAO,UAAS,QAAQ;;AAErC,QAAO;EACL;EACA;EACA;EACD"}
|
||||
-278
@@ -1,278 +0,0 @@
|
||||
import { Kn as ref, Qn as toRef, U as computed, Vn as onScopeDispose, W as createBaseVNode, Yn as shallowRef, _n as watchEffect, ar as normalizeClass, er as toValue, et as createVNode, gn as watch, n as Transition, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { _ as convertToUnit, c as getCurrentInstanceName, et as SUPPORTS_INTERSECTION, g as clamp, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as makeComponentProps } from "./component-DdiwBe6i.js";
|
||||
import { t as useRender } from "./useRender-fVtVsZgv.js";
|
||||
import { r as useTextColor, t as useBackgroundColor } from "./color-B6vuQruj.js";
|
||||
import { i as provideTheme, r as makeThemeProps } from "./theme-Cx5kFg0-.js";
|
||||
import { n as useToggleScope, t as useProxiedModel } from "./proxiedModel-DSlSIQ0y.js";
|
||||
import { i as useRtl } from "./locale-DDGMqzqb.js";
|
||||
import { t as useResizeObserver } from "./resizeObserver-C12jWpYk.js";
|
||||
import { t as makeTagProps } from "./tag-C_KkCPzB.js";
|
||||
import { n as useRounded, t as makeRoundedProps } from "./rounded-BuPGKRa9.js";
|
||||
import { n as useLocation, t as makeLocationProps } from "./location-BIKTnDF4.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.css";
|
||||
//#region node_modules/vuetify/lib/composables/intersectionObserver.js
|
||||
function useIntersectionObserver(callback, options) {
|
||||
const intersectionRef = ref();
|
||||
const isIntersecting = shallowRef(false);
|
||||
if (SUPPORTS_INTERSECTION) {
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
callback?.(entries, observer);
|
||||
isIntersecting.value = !!entries.find((entry) => entry.isIntersecting);
|
||||
}, options);
|
||||
onScopeDispose(() => {
|
||||
observer.disconnect();
|
||||
});
|
||||
watch(intersectionRef, (newValue, oldValue) => {
|
||||
if (oldValue) {
|
||||
observer.unobserve(oldValue);
|
||||
isIntersecting.value = false;
|
||||
}
|
||||
if (newValue) observer.observe(newValue);
|
||||
}, { flush: "post" });
|
||||
}
|
||||
return {
|
||||
intersectionRef,
|
||||
isIntersecting
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VProgressLinear/chunks.js
|
||||
var makeChunksProps = propsFactory({
|
||||
chunkCount: {
|
||||
type: [Number, String],
|
||||
default: null
|
||||
},
|
||||
chunkWidth: {
|
||||
type: [Number, String],
|
||||
default: null
|
||||
},
|
||||
chunkGap: {
|
||||
type: [Number, String],
|
||||
default: 4
|
||||
}
|
||||
}, "chunks");
|
||||
function useChunks(props, containerWidth) {
|
||||
const hasChunks = toRef(() => !!props.chunkCount || !!props.chunkWidth);
|
||||
const chunkWidth = computed(() => {
|
||||
const containerSize = toValue(containerWidth);
|
||||
if (!containerSize) return 0;
|
||||
if (!props.chunkCount) return Number(props.chunkWidth);
|
||||
const count = Number(props.chunkCount);
|
||||
return (containerSize - Number(props.chunkGap) * (count - 1)) / count;
|
||||
});
|
||||
const chunkGap = toRef(() => Number(props.chunkGap));
|
||||
const chunksMaskStyles = computed(() => {
|
||||
if (!hasChunks.value) return {};
|
||||
const chunkGapPx = convertToUnit(chunkGap.value);
|
||||
const chunkWidthPx = convertToUnit(chunkWidth.value);
|
||||
return {
|
||||
maskRepeat: "repeat-x",
|
||||
maskImage: `linear-gradient(90deg, #000, #000 ${chunkWidthPx}, transparent ${chunkWidthPx}, transparent)`,
|
||||
maskSize: `calc(${chunkWidthPx} + ${chunkGapPx}) 100%`
|
||||
};
|
||||
});
|
||||
function snapValueToChunk(val) {
|
||||
const containerSize = toValue(containerWidth);
|
||||
if (!containerSize) return val;
|
||||
const gapRelativeSize = 100 * chunkGap.value / containerSize;
|
||||
const chunkRelativeSize = 100 * (chunkWidth.value + chunkGap.value) / containerSize;
|
||||
return clamp(0, Math.floor((val + gapRelativeSize) / chunkRelativeSize) * chunkRelativeSize - gapRelativeSize / 2, 100);
|
||||
}
|
||||
return {
|
||||
hasChunks,
|
||||
chunksMaskStyles,
|
||||
snapValueToChunk
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.js
|
||||
var makeVProgressLinearProps = propsFactory({
|
||||
absolute: Boolean,
|
||||
active: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
bgColor: String,
|
||||
bgOpacity: [Number, String],
|
||||
bufferValue: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
bufferColor: String,
|
||||
bufferOpacity: [Number, String],
|
||||
clickable: Boolean,
|
||||
color: String,
|
||||
height: {
|
||||
type: [Number, String],
|
||||
default: 4
|
||||
},
|
||||
indeterminate: Boolean,
|
||||
max: {
|
||||
type: [Number, String],
|
||||
default: 100
|
||||
},
|
||||
modelValue: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
opacity: [Number, String],
|
||||
reverse: Boolean,
|
||||
stream: Boolean,
|
||||
striped: Boolean,
|
||||
roundedBar: Boolean,
|
||||
...makeChunksProps(),
|
||||
...makeComponentProps(),
|
||||
...makeLocationProps({ location: "top" }),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps()
|
||||
}, "VProgressLinear");
|
||||
var VProgressLinear = genericComponent()({
|
||||
name: "VProgressLinear",
|
||||
props: makeVProgressLinearProps(),
|
||||
emits: { "update:modelValue": (value) => true },
|
||||
setup(props, { slots }) {
|
||||
const root = ref();
|
||||
const progress = useProxiedModel(props, "modelValue");
|
||||
const { isRtl, rtlClasses } = useRtl();
|
||||
const { themeClasses } = provideTheme(props);
|
||||
const { locationStyles } = useLocation(props);
|
||||
const { textColorClasses, textColorStyles } = useTextColor(() => props.color);
|
||||
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor || props.color);
|
||||
const { backgroundColorClasses: bufferColorClasses, backgroundColorStyles: bufferColorStyles } = useBackgroundColor(() => props.bufferColor || props.bgColor || props.color);
|
||||
const { backgroundColorClasses: barColorClasses, backgroundColorStyles: barColorStyles } = useBackgroundColor(() => props.color);
|
||||
const { roundedClasses } = useRounded(props);
|
||||
const { intersectionRef, isIntersecting } = useIntersectionObserver();
|
||||
const max = computed(() => parseFloat(props.max));
|
||||
const height = computed(() => parseFloat(props.height));
|
||||
const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100));
|
||||
const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100));
|
||||
const isReversed = computed(() => isRtl.value !== props.reverse);
|
||||
const transition = computed(() => props.indeterminate ? "fade-transition" : "slide-x-transition");
|
||||
const containerWidth = shallowRef(0);
|
||||
const { hasChunks, chunksMaskStyles, snapValueToChunk } = useChunks(props, containerWidth);
|
||||
useToggleScope(hasChunks, () => {
|
||||
const { resizeRef } = useResizeObserver((entries) => containerWidth.value = entries[0].contentRect.width);
|
||||
watchEffect(() => resizeRef.value = root.value);
|
||||
});
|
||||
const bufferWidth = computed(() => {
|
||||
return hasChunks.value ? snapValueToChunk(normalizedBuffer.value) : normalizedBuffer.value;
|
||||
});
|
||||
const barWidth = computed(() => {
|
||||
return hasChunks.value ? snapValueToChunk(normalizedValue.value) : normalizedValue.value;
|
||||
});
|
||||
function handleClick(e) {
|
||||
if (!intersectionRef.value) return;
|
||||
const { left, right, width } = intersectionRef.value.getBoundingClientRect();
|
||||
const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;
|
||||
progress.value = Math.round(value / width * max.value);
|
||||
}
|
||||
watchEffect(() => {
|
||||
intersectionRef.value = root.value;
|
||||
});
|
||||
useRender(() => createVNode(props.tag, {
|
||||
"ref": root,
|
||||
"class": normalizeClass([
|
||||
"v-progress-linear",
|
||||
{
|
||||
"v-progress-linear--absolute": props.absolute,
|
||||
"v-progress-linear--active": props.active && isIntersecting.value,
|
||||
"v-progress-linear--reverse": isReversed.value,
|
||||
"v-progress-linear--rounded": props.rounded,
|
||||
"v-progress-linear--rounded-bar": props.roundedBar,
|
||||
"v-progress-linear--striped": props.striped,
|
||||
"v-progress-linear--clickable": props.clickable
|
||||
},
|
||||
roundedClasses.value,
|
||||
themeClasses.value,
|
||||
rtlClasses.value,
|
||||
props.class
|
||||
]),
|
||||
"style": normalizeStyle([
|
||||
{
|
||||
bottom: props.location === "bottom" ? 0 : void 0,
|
||||
top: props.location === "top" ? 0 : void 0,
|
||||
height: props.active ? convertToUnit(height.value) : 0,
|
||||
"--v-progress-linear-height": convertToUnit(height.value),
|
||||
...props.absolute ? locationStyles.value : {}
|
||||
},
|
||||
chunksMaskStyles.value,
|
||||
props.style
|
||||
]),
|
||||
"role": "progressbar",
|
||||
"aria-hidden": props.active ? "false" : "true",
|
||||
"aria-valuemin": "0",
|
||||
"aria-valuemax": props.max,
|
||||
"aria-valuenow": props.indeterminate ? void 0 : Math.min(parseFloat(progress.value), max.value),
|
||||
"onClick": props.clickable && handleClick
|
||||
}, { default: () => [
|
||||
props.stream && createBaseVNode("div", {
|
||||
"key": "stream",
|
||||
"class": normalizeClass(["v-progress-linear__stream", textColorClasses.value]),
|
||||
"style": {
|
||||
...textColorStyles.value,
|
||||
[isReversed.value ? "left" : "right"]: convertToUnit(-height.value),
|
||||
borderTop: `${convertToUnit(height.value / 2)} dotted`,
|
||||
opacity: parseFloat(props.bufferOpacity),
|
||||
top: `calc(50% - ${convertToUnit(height.value / 4)})`,
|
||||
width: convertToUnit(100 - normalizedBuffer.value, "%"),
|
||||
"--v-progress-linear-stream-to": convertToUnit(height.value * (isReversed.value ? 1 : -1))
|
||||
}
|
||||
}, null),
|
||||
createBaseVNode("div", {
|
||||
"class": normalizeClass(["v-progress-linear__background", backgroundColorClasses.value]),
|
||||
"style": normalizeStyle([backgroundColorStyles.value, {
|
||||
opacity: parseFloat(props.bgOpacity),
|
||||
width: props.stream ? 0 : void 0
|
||||
}])
|
||||
}, null),
|
||||
createBaseVNode("div", {
|
||||
"class": normalizeClass(["v-progress-linear__buffer", bufferColorClasses.value]),
|
||||
"style": normalizeStyle([bufferColorStyles.value, {
|
||||
opacity: parseFloat(props.bufferOpacity),
|
||||
width: convertToUnit(bufferWidth.value, "%")
|
||||
}])
|
||||
}, null),
|
||||
createVNode(Transition, { "name": transition.value }, { default: () => [!props.indeterminate ? createBaseVNode("div", {
|
||||
"class": normalizeClass(["v-progress-linear__determinate", barColorClasses.value]),
|
||||
"style": normalizeStyle([barColorStyles.value, { width: convertToUnit(barWidth.value, "%") }])
|
||||
}, null) : createBaseVNode("div", { "class": "v-progress-linear__indeterminate" }, [["long", "short"].map((bar) => createBaseVNode("div", {
|
||||
"key": bar,
|
||||
"class": normalizeClass([
|
||||
"v-progress-linear__indeterminate",
|
||||
bar,
|
||||
barColorClasses.value
|
||||
]),
|
||||
"style": normalizeStyle(barColorStyles.value)
|
||||
}, null))])] }),
|
||||
slots.default && createBaseVNode("div", { "class": "v-progress-linear__content" }, [slots.default({
|
||||
value: normalizedValue.value,
|
||||
buffer: normalizedBuffer.value
|
||||
})])
|
||||
] }));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/loader.js
|
||||
var makeLoaderProps = propsFactory({ loading: [Boolean, String] }, "loader");
|
||||
function useLoader(props, name = getCurrentInstanceName()) {
|
||||
return { loaderClasses: toRef(() => ({ [`${name}--loading`]: props.loading })) };
|
||||
}
|
||||
function LoaderSlot(props, { slots }) {
|
||||
return createBaseVNode("div", { "class": normalizeClass(`${props.name}__loader`) }, [slots.default?.({
|
||||
color: props.color,
|
||||
isActive: props.active
|
||||
}) || createVNode(VProgressLinear, {
|
||||
"absolute": props.absolute,
|
||||
"active": props.active,
|
||||
"color": props.color,
|
||||
"height": "2",
|
||||
"indeterminate": true
|
||||
}, null)]);
|
||||
}
|
||||
//#endregion
|
||||
export { useIntersectionObserver as i, makeLoaderProps as n, useLoader as r, LoaderSlot as t };
|
||||
|
||||
//# sourceMappingURL=loader-CV4sMFhE.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-347
@@ -1,347 +0,0 @@
|
||||
import { Kn as ref, Qn as toRef, U as computed, Yn as shallowRef, gn as watch, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { A as getObjectValueByPath, it as consoleWarn, rt as consoleError } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as useProxiedModel } from "./proxiedModel-DSlSIQ0y.js";
|
||||
//#region node_modules/vuetify/lib/locale/en.js
|
||||
var en_default = {
|
||||
badge: "Badge",
|
||||
open: "Open",
|
||||
close: "Close",
|
||||
dismiss: "Dismiss",
|
||||
confirmEdit: {
|
||||
ok: "OK",
|
||||
cancel: "Cancel"
|
||||
},
|
||||
dataIterator: {
|
||||
noResultsText: "No matching records found",
|
||||
loadingText: "Loading items..."
|
||||
},
|
||||
dataTable: {
|
||||
itemsPerPageText: "Rows per page:",
|
||||
ariaLabel: {
|
||||
sortDescending: "Sorted descending.",
|
||||
sortAscending: "Sorted ascending.",
|
||||
sortNone: "Not sorted.",
|
||||
activateNone: "Activate to remove sorting.",
|
||||
activateDescending: "Activate to sort descending.",
|
||||
activateAscending: "Activate to sort ascending."
|
||||
},
|
||||
sortBy: "Sort by"
|
||||
},
|
||||
dataFooter: {
|
||||
itemsPerPageText: "Items per page:",
|
||||
itemsPerPageAll: "All",
|
||||
nextPage: "Next page",
|
||||
prevPage: "Previous page",
|
||||
firstPage: "First page",
|
||||
lastPage: "Last page",
|
||||
pageText: "{0}-{1} of {2}"
|
||||
},
|
||||
dateRangeInput: { divider: "to" },
|
||||
datePicker: {
|
||||
itemsSelected: "{0} selected",
|
||||
range: {
|
||||
title: "Select dates",
|
||||
header: "Enter dates"
|
||||
},
|
||||
title: "Select date",
|
||||
header: "Enter date",
|
||||
input: { placeholder: "Enter date" },
|
||||
ariaLabel: {
|
||||
previousMonth: "Previous month",
|
||||
nextMonth: "Next month",
|
||||
selectYear: "Select year",
|
||||
previousYear: "Previous year",
|
||||
nextYear: "Next year",
|
||||
selectMonth: "Select month",
|
||||
selectDate: "{0}",
|
||||
currentDate: "Today, {0}"
|
||||
}
|
||||
},
|
||||
noDataText: "No data available",
|
||||
carousel: {
|
||||
prev: "Previous visual",
|
||||
next: "Next visual",
|
||||
ariaLabel: { delimiter: "Carousel slide {0} of {1}" }
|
||||
},
|
||||
calendar: {
|
||||
moreEvents: "{0} more",
|
||||
today: "Today"
|
||||
},
|
||||
input: {
|
||||
clear: "Clear {0}",
|
||||
prependAction: "{0} prepended action",
|
||||
appendAction: "{0} appended action",
|
||||
otp: "Please enter OTP character {0}"
|
||||
},
|
||||
fileInput: {
|
||||
counter: "{0} files",
|
||||
counterSize: "{0} files ({1} in total)"
|
||||
},
|
||||
fileUpload: {
|
||||
title: "Drag and drop files here",
|
||||
divider: "or",
|
||||
browse: "Browse Files"
|
||||
},
|
||||
timePicker: {
|
||||
am: "AM",
|
||||
pm: "PM",
|
||||
title: "Select Time",
|
||||
hour: "Hour",
|
||||
minute: "Minute",
|
||||
second: "Second",
|
||||
notAllowed: "Value is not allowed"
|
||||
},
|
||||
pagination: { ariaLabel: {
|
||||
root: "Pagination Navigation",
|
||||
next: "Next page",
|
||||
previous: "Previous page",
|
||||
page: "Go to page {0}",
|
||||
currentPage: "Page {0}, Current page",
|
||||
first: "First page",
|
||||
last: "Last page"
|
||||
} },
|
||||
stepper: {
|
||||
next: "Next",
|
||||
prev: "Previous"
|
||||
},
|
||||
rating: { ariaLabel: { item: "Rating {0} of {1}" } },
|
||||
loading: "Loading...",
|
||||
infiniteScroll: {
|
||||
loadMore: "Load more",
|
||||
empty: "No more"
|
||||
},
|
||||
rules: {
|
||||
required: "This field is required",
|
||||
email: "Please enter a valid email",
|
||||
number: "This field can only contain numbers",
|
||||
integer: "This field can only contain integer values",
|
||||
capital: "This field can only contain uppercase letters",
|
||||
maxLength: "You must enter a maximum of {0} characters",
|
||||
minLength: "You must enter a minimum of {0} characters",
|
||||
strictLength: "The length of the entered field is invalid",
|
||||
exclude: "The {0} character is not allowed",
|
||||
notEmpty: "Please choose at least one value",
|
||||
pattern: "Invalid format"
|
||||
},
|
||||
command: { search: "Type a command or search..." },
|
||||
hotkey: {
|
||||
then: "then",
|
||||
ctrl: "Ctrl",
|
||||
command: "Command",
|
||||
space: "Space",
|
||||
shift: "Shift",
|
||||
alt: "Alt",
|
||||
enter: "Enter",
|
||||
escape: "Escape",
|
||||
upArrow: "Up Arrow",
|
||||
downArrow: "Down Arrow",
|
||||
leftArrow: "Left Arrow",
|
||||
rightArrow: "Right Arrow",
|
||||
backspace: "Backspace",
|
||||
option: "Option",
|
||||
plus: "plus",
|
||||
shortcut: "Keyboard shortcut: {0}",
|
||||
or: "or"
|
||||
},
|
||||
video: {
|
||||
play: "Play",
|
||||
pause: "Pause",
|
||||
seek: "Seek",
|
||||
volume: "Volume",
|
||||
showVolume: "Show volume control",
|
||||
mute: "Mute",
|
||||
unmute: "Unmute",
|
||||
enterFullscreen: "Full screen",
|
||||
exitFullscreen: "Exit full screen"
|
||||
},
|
||||
colorPicker: { ariaLabel: {
|
||||
eyedropper: "Select color with eyedropper",
|
||||
hueSlider: "Hue",
|
||||
alphaSlider: "Alpha",
|
||||
redInput: "Red value",
|
||||
greenInput: "Green value",
|
||||
blueInput: "Blue value",
|
||||
alphaInput: "Alpha value",
|
||||
hueInput: "Hue value",
|
||||
saturationInput: "Saturation value",
|
||||
lightnessInput: "Lightness value",
|
||||
hexInput: "HEX value",
|
||||
hexaInput: "HEX with alpha value",
|
||||
changeFormat: "Change color format"
|
||||
} }
|
||||
};
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/locale/adapters/vuetify.js
|
||||
var LANG_PREFIX = "$vuetify.";
|
||||
var replace = (str, params) => {
|
||||
return str.replace(/\{(\d+)\}/g, (match, index) => {
|
||||
return String(params[Number(index)]);
|
||||
});
|
||||
};
|
||||
var createTranslateFunction = (current, fallback, messages) => {
|
||||
return (key, ...params) => {
|
||||
if (!key.startsWith(LANG_PREFIX)) return replace(key, params);
|
||||
const shortKey = key.replace(LANG_PREFIX, "");
|
||||
const currentLocale = current.value && messages.value[current.value];
|
||||
const fallbackLocale = fallback.value && messages.value[fallback.value];
|
||||
let str = getObjectValueByPath(currentLocale, shortKey, null);
|
||||
if (!str) {
|
||||
consoleWarn(`Translation key "${key}" not found in "${current.value}", trying fallback locale`);
|
||||
str = getObjectValueByPath(fallbackLocale, shortKey, null);
|
||||
}
|
||||
if (!str) {
|
||||
consoleError(`Translation key "${key}" not found in fallback`);
|
||||
str = key;
|
||||
}
|
||||
if (typeof str !== "string") {
|
||||
consoleError(`Translation key "${key}" has a non-string value`);
|
||||
str = key;
|
||||
}
|
||||
return replace(str, params);
|
||||
};
|
||||
};
|
||||
function createNumberFunction(current, fallback) {
|
||||
return (value, options) => {
|
||||
return new Intl.NumberFormat([current.value, fallback.value], options).format(value);
|
||||
};
|
||||
}
|
||||
function inferDecimalSeparator(current, fallback) {
|
||||
return createNumberFunction(current, fallback)(.1).includes(",") ? "," : ".";
|
||||
}
|
||||
function useProvided(props, prop, provided) {
|
||||
const internal = useProxiedModel(props, prop, props[prop] ?? provided.value);
|
||||
internal.value = props[prop] ?? provided.value;
|
||||
watch(provided, (v) => {
|
||||
if (props[prop] == null) internal.value = provided.value;
|
||||
});
|
||||
return internal;
|
||||
}
|
||||
function createProvideFunction(state) {
|
||||
return (props) => {
|
||||
const current = useProvided(props, "locale", state.current);
|
||||
const fallback = useProvided(props, "fallback", state.fallback);
|
||||
const messages = useProvided(props, "messages", state.messages);
|
||||
return {
|
||||
name: "vuetify",
|
||||
current,
|
||||
fallback,
|
||||
messages,
|
||||
decimalSeparator: toRef(() => inferDecimalSeparator(current, fallback)),
|
||||
t: createTranslateFunction(current, fallback, messages),
|
||||
n: createNumberFunction(current, fallback),
|
||||
provide: createProvideFunction({
|
||||
current,
|
||||
fallback,
|
||||
messages
|
||||
})
|
||||
};
|
||||
};
|
||||
}
|
||||
function createVuetifyAdapter(options) {
|
||||
const current = shallowRef(options?.locale ?? "en");
|
||||
const fallback = shallowRef(options?.fallback ?? "en");
|
||||
const messages = ref({
|
||||
en: en_default,
|
||||
...options?.messages
|
||||
});
|
||||
return {
|
||||
name: "vuetify",
|
||||
current,
|
||||
fallback,
|
||||
messages,
|
||||
decimalSeparator: toRef(() => options?.decimalSeparator ?? inferDecimalSeparator(current, fallback)),
|
||||
t: createTranslateFunction(current, fallback, messages),
|
||||
n: createNumberFunction(current, fallback),
|
||||
provide: createProvideFunction({
|
||||
current,
|
||||
fallback,
|
||||
messages
|
||||
})
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/locale.js
|
||||
var LocaleSymbol = Symbol.for("vuetify:locale");
|
||||
function isLocaleInstance(obj) {
|
||||
return obj.name != null;
|
||||
}
|
||||
function createLocale(options) {
|
||||
const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);
|
||||
const rtl = createRtl(i18n, options);
|
||||
return {
|
||||
...i18n,
|
||||
...rtl
|
||||
};
|
||||
}
|
||||
function useLocale() {
|
||||
const locale = inject(LocaleSymbol);
|
||||
if (!locale) throw new Error("[Vuetify] Could not find injected locale instance");
|
||||
return locale;
|
||||
}
|
||||
function genDefaults() {
|
||||
return {
|
||||
af: false,
|
||||
ar: true,
|
||||
bg: false,
|
||||
ca: false,
|
||||
ckb: false,
|
||||
cs: false,
|
||||
de: false,
|
||||
el: false,
|
||||
en: false,
|
||||
es: false,
|
||||
et: false,
|
||||
fa: true,
|
||||
fi: false,
|
||||
fr: false,
|
||||
hr: false,
|
||||
hu: false,
|
||||
he: true,
|
||||
id: false,
|
||||
it: false,
|
||||
ja: false,
|
||||
km: false,
|
||||
ko: false,
|
||||
lv: false,
|
||||
lt: false,
|
||||
nl: false,
|
||||
no: false,
|
||||
pl: false,
|
||||
pt: false,
|
||||
ro: false,
|
||||
ru: false,
|
||||
sk: false,
|
||||
sl: false,
|
||||
srCyrl: false,
|
||||
srLatn: false,
|
||||
sv: false,
|
||||
th: false,
|
||||
tr: false,
|
||||
az: false,
|
||||
uk: false,
|
||||
vi: false,
|
||||
zhHans: false,
|
||||
zhHant: false
|
||||
};
|
||||
}
|
||||
function createRtl(i18n, options) {
|
||||
const rtl = ref(options?.rtl ?? genDefaults());
|
||||
const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
|
||||
return {
|
||||
isRtl,
|
||||
rtl,
|
||||
rtlClasses: toRef(() => `v-locale--is-${isRtl.value ? "rtl" : "ltr"}`)
|
||||
};
|
||||
}
|
||||
function useRtl() {
|
||||
const locale = inject(LocaleSymbol);
|
||||
if (!locale) throw new Error("[Vuetify] Could not find injected rtl instance");
|
||||
return {
|
||||
isRtl: locale.isRtl,
|
||||
rtlClasses: locale.rtlClasses
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useRtl as i, createLocale as n, useLocale as r, LocaleSymbol as t };
|
||||
|
||||
//# sourceMappingURL=locale-DDGMqzqb.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-49
@@ -1,49 +0,0 @@
|
||||
import { U as computed } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
import { a as parseAnchor } from "./anchor-DB_quObT.js";
|
||||
import { i as useRtl } from "./locale-DDGMqzqb.js";
|
||||
//#region node_modules/vuetify/lib/composables/location.js
|
||||
var oppositeMap = {
|
||||
center: "center",
|
||||
top: "bottom",
|
||||
bottom: "top",
|
||||
left: "right",
|
||||
right: "left"
|
||||
};
|
||||
var makeLocationProps = propsFactory({ location: String }, "location");
|
||||
function useLocation(props, opposite = false, offset) {
|
||||
const { isRtl } = useRtl();
|
||||
return { locationStyles: computed(() => {
|
||||
if (!props.location) return {};
|
||||
const { side, align } = parseAnchor(props.location.split(" ").length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
||||
function getOffset(side) {
|
||||
return offset ? offset(side) : 0;
|
||||
}
|
||||
const styles = {};
|
||||
if (side !== "center") if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;
|
||||
else styles[side] = 0;
|
||||
if (align !== "center") if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;
|
||||
else styles[align] = 0;
|
||||
else {
|
||||
if (side === "center") styles.top = styles.left = "50%";
|
||||
else styles[{
|
||||
top: "left",
|
||||
bottom: "left",
|
||||
left: "top",
|
||||
right: "top"
|
||||
}[side]] = "50%";
|
||||
styles.transform = {
|
||||
top: "translateX(-50%)",
|
||||
bottom: "translateX(-50%)",
|
||||
left: "translateY(-50%)",
|
||||
right: "translateY(-50%)",
|
||||
center: "translate(-50%, -50%)"
|
||||
}[side];
|
||||
}
|
||||
return styles;
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { useLocation as n, makeLocationProps as t };
|
||||
|
||||
//# sourceMappingURL=location-BIKTnDF4.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"location-BIKTnDF4.js","names":[],"sources":["../../vuetify/lib/composables/location.js"],"sourcesContent":["// Composables\nimport { useRtl } from \"./locale.js\"; // Utilities\nimport { computed } from 'vue';\nimport { parseAnchor, propsFactory } from \"../util/index.js\"; // Types\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nexport const makeLocationProps = propsFactory({\n location: String\n}, 'location');\nexport function useLocation(props, opposite = false, offset) {\n const {\n isRtl\n } = useRtl();\n const locationStyles = computed(() => {\n if (!props.location) return {};\n const {\n side,\n align\n } = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);\n function getOffset(side) {\n return offset ? offset(side) : 0;\n }\n const styles = {};\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;\n } else {\n if (side === 'center') styles.top = styles.left = '50%';else {\n styles[{\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top'\n }[side]] = '50%';\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)'\n }[side];\n }\n return styles;\n });\n return {\n locationStyles\n };\n}\n//# sourceMappingURL=location.js.map"],"mappings":";;;;;AAIA,IAAM,cAAc;CAClB,QAAQ;CACR,KAAK;CACL,QAAQ;CACR,MAAM;CACN,OAAO;CACR;AACD,IAAa,oBAAoB,aAAa,EAC5C,UAAU,QACX,EAAE,WAAW;AACd,SAAgB,YAAY,OAAO,WAAW,OAAO,QAAQ;CAC3D,MAAM,EACJ,UACE,QAAQ;AAmCZ,QAAO,EACL,gBAnCqB,eAAe;AACpC,MAAI,CAAC,MAAM,SAAU,QAAO,EAAE;EAC9B,MAAM,EACJ,MACA,UACE,YAAY,MAAM,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,WAAW,GAAG,MAAM,SAAS,UAAU,MAAM,MAAM;EAChH,SAAS,UAAU,MAAM;AACvB,UAAO,SAAS,OAAO,KAAK,GAAG;;EAEjC,MAAM,SAAS,EAAE;AACjB,MAAI,SAAS,SACX,KAAI,SAAU,QAAO,YAAY,SAAS,eAAe,UAAU,KAAK,CAAC;MAAU,QAAO,QAAQ;AAEpG,MAAI,UAAU,SACZ,KAAI,SAAU,QAAO,YAAY,UAAU,eAAe,UAAU,MAAM,CAAC;MAAU,QAAO,SAAS;OAChG;AACL,OAAI,SAAS,SAAU,QAAO,MAAM,OAAO,OAAO;OAChD,QAAO;IACL,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACR,CAAC,SAAS;AAEb,UAAO,YAAY;IACjB,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACT,CAAC;;AAEJ,SAAO;GAGO,EACf"}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
import { Qn as toRef } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { c as getCurrentInstanceName, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/position.js
|
||||
var positionValues = [
|
||||
"static",
|
||||
"relative",
|
||||
"fixed",
|
||||
"absolute",
|
||||
"sticky"
|
||||
];
|
||||
var makePositionProps = propsFactory({ position: {
|
||||
type: String,
|
||||
validator: (v) => positionValues.includes(v)
|
||||
} }, "position");
|
||||
function usePosition(props, name = getCurrentInstanceName()) {
|
||||
return { positionClasses: toRef(() => {
|
||||
return props.position ? `${name}--${props.position}` : void 0;
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { usePosition as n, makePositionProps as t };
|
||||
|
||||
//# sourceMappingURL=position-BCUsnxVO.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"position-BCUsnxVO.js","names":[],"sources":["../../vuetify/lib/composables/position.js"],"sourcesContent":["// Utilities\nimport { toRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String,\n validator: /* istanbul ignore next */v => positionValues.includes(v)\n }\n}, 'position');\nexport function usePosition(props, name = getCurrentInstanceName()) {\n const positionClasses = toRef(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n return {\n positionClasses\n };\n}\n//# sourceMappingURL=position.js.map"],"mappings":";;;AAGA,IAAM,iBAAiB;CAAC;CAAU;CAAY;CAAS;CAAY;CAAS;AAE5E,IAAa,oBAAoB,aAAa,EAC5C,UAAU;CACR,MAAM;CACN,YAAqC,MAAK,eAAe,SAAS,EAAE;CACrE,EACF,EAAE,WAAW;AACd,SAAgB,YAAY,OAAO,OAAO,wBAAwB,EAAE;AAIlE,QAAO,EACL,iBAJsB,YAAY;AAClC,SAAO,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,aAAa,KAAA;GAGxC,EAChB"}
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
import { Kn as ref, Mn as effectScope, U as computed, Vn as onScopeDispose, Zn as toRaw, gn as watch } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { X as toKebabCase, s as getCurrentInstance } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/toggleScope.js
|
||||
function useToggleScope(source, fn) {
|
||||
let scope;
|
||||
function start() {
|
||||
scope = effectScope();
|
||||
scope.run(() => fn.length ? fn(() => {
|
||||
scope?.stop();
|
||||
start();
|
||||
}) : fn());
|
||||
}
|
||||
watch(source, (active) => {
|
||||
if (active && !scope) start();
|
||||
else if (!active) {
|
||||
scope?.stop();
|
||||
scope = void 0;
|
||||
}
|
||||
}, { immediate: true });
|
||||
onScopeDispose(() => {
|
||||
scope?.stop();
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/composables/proxiedModel.js
|
||||
function useProxiedModel(props, prop, defaultValue, transformIn = (v) => v, transformOut = (v) => v) {
|
||||
const vm = getCurrentInstance("useProxiedModel");
|
||||
const internal = ref(props[prop] !== void 0 ? props[prop] : defaultValue);
|
||||
const kebabProp = toKebabCase(prop);
|
||||
const isControlled = kebabProp !== prop ? computed(() => {
|
||||
props[prop];
|
||||
return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));
|
||||
}) : computed(() => {
|
||||
props[prop];
|
||||
return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));
|
||||
});
|
||||
useToggleScope(() => !isControlled.value, () => {
|
||||
watch(() => props[prop], (val) => {
|
||||
internal.value = val;
|
||||
});
|
||||
});
|
||||
const model = computed({
|
||||
get() {
|
||||
const externalValue = props[prop];
|
||||
return transformIn(isControlled.value ? externalValue : internal.value);
|
||||
},
|
||||
set(internalValue) {
|
||||
const newValue = transformOut(internalValue);
|
||||
const value = toRaw(isControlled.value ? props[prop] : internal.value);
|
||||
if (value === newValue || transformIn(value) === internalValue) return;
|
||||
internal.value = newValue;
|
||||
vm?.emit(`update:${prop}`, newValue);
|
||||
}
|
||||
});
|
||||
Object.defineProperty(model, "externalValue", { get: () => isControlled.value ? props[prop] : internal.value });
|
||||
return model;
|
||||
}
|
||||
//#endregion
|
||||
export { useToggleScope as n, useProxiedModel as t };
|
||||
|
||||
//# sourceMappingURL=proxiedModel-DSlSIQ0y.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"proxiedModel-DSlSIQ0y.js","names":[],"sources":["../../vuetify/lib/composables/toggleScope.js","../../vuetify/lib/composables/proxiedModel.js"],"sourcesContent":["// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue';\n\n// Types\n\nexport function useToggleScope(source, fn) {\n let scope;\n function start() {\n scope = effectScope();\n scope.run(() => fn.length ? fn(() => {\n scope?.stop();\n start();\n }) : fn());\n }\n watch(source, active => {\n if (active && !scope) {\n start();\n } else if (!active) {\n scope?.stop();\n scope = undefined;\n }\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\n//# sourceMappingURL=toggleScope.js.map","// Composables\nimport { useToggleScope } from \"./toggleScope.js\"; // Utilities\nimport { computed, ref, toRaw, watch } from 'vue';\nimport { getCurrentInstance, toKebabCase } from \"../util/index.js\"; // Types\n// Composables\nexport function useProxiedModel(props, prop, defaultValue, transformIn = v => v, transformOut = v => v) {\n const vm = getCurrentInstance('useProxiedModel');\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);\n const kebabProp = toKebabCase(prop);\n const checkKebab = kebabProp !== prop;\n const isControlled = checkKebab ? computed(() => {\n void props[prop];\n return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));\n }) : computed(() => {\n void props[prop];\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));\n });\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val;\n });\n });\n const model = computed({\n get() {\n const externalValue = props[prop];\n return transformIn(isControlled.value ? externalValue : internal.value);\n },\n set(internalValue) {\n const newValue = transformOut(internalValue);\n const value = toRaw(isControlled.value ? props[prop] : internal.value);\n if (value === newValue || transformIn(value) === internalValue) {\n return;\n }\n internal.value = newValue;\n vm?.emit(`update:${prop}`, newValue);\n }\n });\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value\n });\n return model;\n}\n//# sourceMappingURL=proxiedModel.js.map"],"mappings":";;;AAKA,SAAgB,eAAe,QAAQ,IAAI;CACzC,IAAI;CACJ,SAAS,QAAQ;AACf,UAAQ,aAAa;AACrB,QAAM,UAAU,GAAG,SAAS,SAAS;AACnC,UAAO,MAAM;AACb,UAAO;IACP,GAAG,IAAI,CAAC;;AAEZ,OAAM,SAAQ,WAAU;AACtB,MAAI,UAAU,CAAC,MACb,QAAO;WACE,CAAC,QAAQ;AAClB,UAAO,MAAM;AACb,WAAQ,KAAA;;IAET,EACD,WAAW,MACZ,CAAC;AACF,sBAAqB;AACnB,SAAO,MAAM;GACb;;;;ACrBJ,SAAgB,gBAAgB,OAAO,MAAM,cAAc,eAAc,MAAK,GAAG,gBAAe,MAAK,GAAG;CACtG,MAAM,KAAK,mBAAmB,kBAAkB;CAChD,MAAM,WAAW,IAAI,MAAM,UAAU,KAAA,IAAY,MAAM,QAAQ,aAAa;CAC5E,MAAM,YAAY,YAAY,KAAK;CAEnC,MAAM,eADa,cAAc,OACC,eAAe;AAC1C,QAAM;AACX,SAAO,CAAC,GAAG,GAAG,MAAM,OAAO,eAAe,KAAK,IAAI,GAAG,MAAM,OAAO,eAAe,UAAU,MAAM,GAAG,MAAM,OAAO,eAAe,YAAY,OAAO,IAAI,GAAG,MAAM,OAAO,eAAe,YAAY,YAAY;GAC/M,GAAG,eAAe;AACb,QAAM;AACX,SAAO,CAAC,EAAE,GAAG,MAAM,OAAO,eAAe,KAAK,IAAI,GAAG,MAAM,OAAO,eAAe,YAAY,OAAO;GACpG;AACF,sBAAqB,CAAC,aAAa,aAAa;AAC9C,cAAY,MAAM,QAAO,QAAO;AAC9B,YAAS,QAAQ;IACjB;GACF;CACF,MAAM,QAAQ,SAAS;EACrB,MAAM;GACJ,MAAM,gBAAgB,MAAM;AAC5B,UAAO,YAAY,aAAa,QAAQ,gBAAgB,SAAS,MAAM;;EAEzE,IAAI,eAAe;GACjB,MAAM,WAAW,aAAa,cAAc;GAC5C,MAAM,QAAQ,MAAM,aAAa,QAAQ,MAAM,QAAQ,SAAS,MAAM;AACtE,OAAI,UAAU,YAAY,YAAY,MAAM,KAAK,cAC/C;AAEF,YAAS,QAAQ;AACjB,OAAI,KAAK,UAAU,QAAQ,SAAS;;EAEvC,CAAC;AACF,QAAO,eAAe,OAAO,iBAAiB,EAC5C,WAAW,aAAa,QAAQ,MAAM,QAAQ,SAAS,OACxD,CAAC;AACF,QAAO"}
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
import { Gn as readonly, Kn as ref, gn as watch, jt as onBeforeUnmount } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { Q as IN_BROWSER, Y as templateRef } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/resizeObserver.js
|
||||
function useResizeObserver(callback, box = "content") {
|
||||
const resizeRef = templateRef();
|
||||
const contentRect = ref();
|
||||
if (IN_BROWSER) {
|
||||
const observer = new ResizeObserver((entries) => {
|
||||
callback?.(entries, observer);
|
||||
if (!entries.length) return;
|
||||
if (box === "content") contentRect.value = entries[0].contentRect;
|
||||
else contentRect.value = entries[0].target.getBoundingClientRect();
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
observer.disconnect();
|
||||
});
|
||||
watch(() => resizeRef.el, (newValue, oldValue) => {
|
||||
if (oldValue) {
|
||||
observer.unobserve(oldValue);
|
||||
contentRect.value = void 0;
|
||||
}
|
||||
if (newValue) observer.observe(newValue);
|
||||
}, { flush: "post" });
|
||||
}
|
||||
return {
|
||||
resizeRef,
|
||||
contentRect: readonly(contentRect)
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useResizeObserver as t };
|
||||
|
||||
//# sourceMappingURL=resizeObserver-C12jWpYk.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"resizeObserver-C12jWpYk.js","names":[],"sources":["../../vuetify/lib/composables/resizeObserver.js"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.js\";\nimport { IN_BROWSER } from \"../util/globals.js\"; // Types\nexport function useResizeObserver(callback, box = 'content') {\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.js.map"],"mappings":";;;AAIA,SAAgB,kBAAkB,UAAU,MAAM,WAAW;CAC3D,MAAM,YAAY,aAAa;CAC/B,MAAM,cAAc,KAAK;AACzB,KAAI,YAAY;EACd,MAAM,WAAW,IAAI,gBAAe,YAAW;AAC7C,cAAW,SAAS,SAAS;AAC7B,OAAI,CAAC,QAAQ,OAAQ;AACrB,OAAI,QAAQ,UACV,aAAY,QAAQ,QAAQ,GAAG;OAE/B,aAAY,QAAQ,QAAQ,GAAG,OAAO,uBAAuB;IAE/D;AACF,wBAAsB;AACpB,YAAS,YAAY;IACrB;AACF,cAAY,UAAU,KAAK,UAAU,aAAa;AAChD,OAAI,UAAU;AACZ,aAAS,UAAU,SAAS;AAC5B,gBAAY,QAAQ,KAAA;;AAEtB,OAAI,SAAU,UAAS,QAAQ,SAAS;KACvC,EACD,OAAO,QACR,CAAC;;AAEJ,QAAO;EACL;EACA,aAAa,SAAS,YAAY;EACnC"}
|
||||
-235
@@ -1,235 +0,0 @@
|
||||
import { I as isObject } from "./defineComponent-DB6xIcDy.js";
|
||||
import { i as getTargetBox, t as Box } from "./box-BNWMOtF7.js";
|
||||
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/directives/ripple/VRipple.css";
|
||||
//#region node_modules/vuetify/lib/directives/ripple/index.js
|
||||
var stopSymbol = Symbol("rippleStop");
|
||||
var DELAY_RIPPLE = 80;
|
||||
function transform(el, value) {
|
||||
el.style.transform = value;
|
||||
el.style.webkitTransform = value;
|
||||
}
|
||||
function isTouchEvent(e) {
|
||||
return e.constructor.name === "TouchEvent";
|
||||
}
|
||||
function isKeyboardEvent(e) {
|
||||
return e.constructor.name === "KeyboardEvent";
|
||||
}
|
||||
var calculate = (e, el, value = {}) => {
|
||||
let localX = 0;
|
||||
let localY = 0;
|
||||
if (!isKeyboardEvent(e)) {
|
||||
const offset = new Box(el);
|
||||
const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;
|
||||
const point = getTargetBox([target.clientX, target.clientY]);
|
||||
localX = point.x - offset.left;
|
||||
localY = point.y - offset.top;
|
||||
}
|
||||
let radius = 0;
|
||||
let scale = .3;
|
||||
if (el._ripple?.circle) {
|
||||
scale = .15;
|
||||
radius = el.clientWidth / 2;
|
||||
radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4;
|
||||
} else radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2;
|
||||
const centerX = `${(el.clientWidth - radius * 2) / 2}px`;
|
||||
const centerY = `${(el.clientHeight - radius * 2) / 2}px`;
|
||||
const x = value.center ? centerX : `${localX - radius}px`;
|
||||
const y = value.center ? centerY : `${localY - radius}px`;
|
||||
return {
|
||||
radius,
|
||||
scale,
|
||||
x,
|
||||
y,
|
||||
centerX,
|
||||
centerY
|
||||
};
|
||||
};
|
||||
var ripples = {
|
||||
show(e, el, value = {}) {
|
||||
if (!el?._ripple?.enabled) return;
|
||||
const container = document.createElement("span");
|
||||
const animation = document.createElement("span");
|
||||
container.appendChild(animation);
|
||||
container.className = "v-ripple__container";
|
||||
if (value.class) container.className += ` ${value.class}`;
|
||||
const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value);
|
||||
const size = `${radius * 2}px`;
|
||||
animation.className = "v-ripple__animation";
|
||||
animation.style.width = size;
|
||||
animation.style.height = size;
|
||||
el.appendChild(container);
|
||||
const computed = window.getComputedStyle(el);
|
||||
if (computed && computed.position === "static") {
|
||||
el.style.position = "relative";
|
||||
el.dataset.previousPosition = "static";
|
||||
}
|
||||
animation.classList.add("v-ripple__animation--enter");
|
||||
animation.classList.add("v-ripple__animation--visible");
|
||||
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
||||
animation.dataset.activated = String(performance.now());
|
||||
requestAnimationFrame(() => {
|
||||
requestAnimationFrame(() => {
|
||||
animation.classList.remove("v-ripple__animation--enter");
|
||||
animation.classList.add("v-ripple__animation--in");
|
||||
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
||||
});
|
||||
});
|
||||
},
|
||||
hide(el) {
|
||||
if (!el?._ripple?.enabled) return;
|
||||
const ripples = el.getElementsByClassName("v-ripple__animation");
|
||||
if (ripples.length === 0) return;
|
||||
const animation = Array.from(ripples).findLast((ripple) => !ripple.dataset.isHiding);
|
||||
if (!animation) return;
|
||||
else animation.dataset.isHiding = "true";
|
||||
const diff = performance.now() - Number(animation.dataset.activated);
|
||||
const delay = Math.max(250 - diff, 0);
|
||||
setTimeout(() => {
|
||||
animation.classList.remove("v-ripple__animation--in");
|
||||
animation.classList.add("v-ripple__animation--out");
|
||||
setTimeout(() => {
|
||||
if (el.getElementsByClassName("v-ripple__animation").length === 1 && el.dataset.previousPosition) {
|
||||
el.style.position = el.dataset.previousPosition;
|
||||
delete el.dataset.previousPosition;
|
||||
}
|
||||
if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode);
|
||||
}, 300);
|
||||
}, delay);
|
||||
}
|
||||
};
|
||||
function isRippleEnabled(value) {
|
||||
return typeof value === "undefined" || !!value;
|
||||
}
|
||||
function rippleShow(e) {
|
||||
const value = {};
|
||||
const element = e.currentTarget;
|
||||
if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return;
|
||||
e[stopSymbol] = true;
|
||||
if (isTouchEvent(e)) {
|
||||
element._ripple.touched = true;
|
||||
element._ripple.isTouch = true;
|
||||
} else if (element._ripple.isTouch) return;
|
||||
value.center = element._ripple.centered || isKeyboardEvent(e);
|
||||
if (element._ripple.class) value.class = element._ripple.class;
|
||||
if (isTouchEvent(e)) {
|
||||
if (element._ripple.showTimerCommit) return;
|
||||
element._ripple.showTimerCommit = () => {
|
||||
ripples.show(e, element, value);
|
||||
};
|
||||
element._ripple.showTimer = window.setTimeout(() => {
|
||||
if (element?._ripple?.showTimerCommit) {
|
||||
element._ripple.showTimerCommit();
|
||||
element._ripple.showTimerCommit = null;
|
||||
}
|
||||
}, DELAY_RIPPLE);
|
||||
} else ripples.show(e, element, value);
|
||||
}
|
||||
function rippleStop(e) {
|
||||
e[stopSymbol] = true;
|
||||
}
|
||||
function rippleHide(e) {
|
||||
const element = e.currentTarget;
|
||||
if (!element?._ripple) return;
|
||||
window.clearTimeout(element._ripple.showTimer);
|
||||
if (e.type === "touchend" && element._ripple.showTimerCommit) {
|
||||
element._ripple.showTimerCommit();
|
||||
element._ripple.showTimerCommit = null;
|
||||
element._ripple.showTimer = window.setTimeout(() => {
|
||||
rippleHide(e);
|
||||
});
|
||||
return;
|
||||
}
|
||||
window.setTimeout(() => {
|
||||
if (element._ripple) element._ripple.touched = false;
|
||||
});
|
||||
ripples.hide(element);
|
||||
}
|
||||
function rippleCancelShow(e) {
|
||||
const element = e.currentTarget;
|
||||
if (!element?._ripple) return;
|
||||
if (element._ripple.showTimerCommit) element._ripple.showTimerCommit = null;
|
||||
window.clearTimeout(element._ripple.showTimer);
|
||||
}
|
||||
var keyboardRipple = false;
|
||||
function keyboardRippleShow(e, keys) {
|
||||
if (!keyboardRipple && keys.includes(e.key)) {
|
||||
keyboardRipple = true;
|
||||
rippleShow(e);
|
||||
}
|
||||
}
|
||||
function keyboardRippleHide(e) {
|
||||
keyboardRipple = false;
|
||||
rippleHide(e);
|
||||
}
|
||||
function focusRippleHide(e) {
|
||||
if (keyboardRipple) {
|
||||
keyboardRipple = false;
|
||||
rippleHide(e);
|
||||
}
|
||||
}
|
||||
function updateRipple(el, binding, wasEnabled) {
|
||||
const { value, modifiers } = binding;
|
||||
const enabled = isRippleEnabled(value);
|
||||
if (!enabled) ripples.hide(el);
|
||||
el._ripple = el._ripple ?? {};
|
||||
el._ripple.enabled = enabled;
|
||||
el._ripple.centered = modifiers.center;
|
||||
el._ripple.circle = modifiers.circle;
|
||||
const bindingValue = isObject(value) ? value : {};
|
||||
if (bindingValue.class) el._ripple.class = bindingValue.class;
|
||||
const allowedKeys = bindingValue.keys ?? ["Enter", "Space"];
|
||||
el._ripple.keyDownHandler = (e) => keyboardRippleShow(e, allowedKeys);
|
||||
if (enabled && !wasEnabled) {
|
||||
if (modifiers.stop) {
|
||||
el.addEventListener("touchstart", rippleStop, { passive: true });
|
||||
el.addEventListener("mousedown", rippleStop);
|
||||
return;
|
||||
}
|
||||
el.addEventListener("touchstart", rippleShow, { passive: true });
|
||||
el.addEventListener("touchend", rippleHide, { passive: true });
|
||||
el.addEventListener("touchmove", rippleCancelShow, { passive: true });
|
||||
el.addEventListener("touchcancel", rippleHide);
|
||||
el.addEventListener("mousedown", rippleShow);
|
||||
el.addEventListener("mouseup", rippleHide);
|
||||
el.addEventListener("mouseleave", rippleHide);
|
||||
el.addEventListener("keydown", el._ripple.keyDownHandler);
|
||||
el.addEventListener("keyup", keyboardRippleHide);
|
||||
el.addEventListener("blur", focusRippleHide);
|
||||
el.addEventListener("dragstart", rippleHide, { passive: true });
|
||||
} else if (!enabled && wasEnabled) removeListeners(el);
|
||||
}
|
||||
function removeListeners(el) {
|
||||
el.removeEventListener("touchstart", rippleStop);
|
||||
el.removeEventListener("mousedown", rippleStop);
|
||||
el.removeEventListener("touchstart", rippleShow);
|
||||
el.removeEventListener("touchend", rippleHide);
|
||||
el.removeEventListener("touchmove", rippleCancelShow);
|
||||
el.removeEventListener("touchcancel", rippleHide);
|
||||
el.removeEventListener("mousedown", rippleShow);
|
||||
el.removeEventListener("mouseup", rippleHide);
|
||||
el.removeEventListener("mouseleave", rippleHide);
|
||||
if (el._ripple?.keyDownHandler) el.removeEventListener("keydown", el._ripple.keyDownHandler);
|
||||
el.removeEventListener("keyup", keyboardRippleHide);
|
||||
el.removeEventListener("blur", focusRippleHide);
|
||||
el.removeEventListener("dragstart", rippleHide);
|
||||
}
|
||||
function mounted(el, binding) {
|
||||
updateRipple(el, binding, false);
|
||||
}
|
||||
function unmounted(el) {
|
||||
removeListeners(el);
|
||||
delete el._ripple;
|
||||
}
|
||||
function updated(el, binding) {
|
||||
if (binding.value === binding.oldValue) return;
|
||||
updateRipple(el, binding, isRippleEnabled(binding.oldValue));
|
||||
}
|
||||
var Ripple = {
|
||||
mounted,
|
||||
unmounted,
|
||||
updated
|
||||
};
|
||||
//#endregion
|
||||
export { Ripple as t };
|
||||
|
||||
//# sourceMappingURL=ripple-Z40rPDte.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-29
@@ -1,29 +0,0 @@
|
||||
import { Rn as isRef, U as computed } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { c as getCurrentInstanceName, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/rounded.js
|
||||
var makeRoundedProps = propsFactory({
|
||||
rounded: {
|
||||
type: [
|
||||
Boolean,
|
||||
Number,
|
||||
String
|
||||
],
|
||||
default: void 0
|
||||
},
|
||||
tile: Boolean
|
||||
}, "rounded");
|
||||
function useRounded(props, name = getCurrentInstanceName()) {
|
||||
return { roundedClasses: computed(() => {
|
||||
const rounded = isRef(props) ? props.value : props.rounded;
|
||||
const tile = isRef(props) ? false : props.tile;
|
||||
const classes = [];
|
||||
if (tile || rounded === false) classes.push("rounded-0");
|
||||
else if (rounded === true || rounded === "") classes.push(`${name}--rounded`);
|
||||
else if (typeof rounded === "string" || rounded === 0) for (const value of String(rounded).split(" ")) classes.push(`rounded-${value}`);
|
||||
return classes;
|
||||
}) };
|
||||
}
|
||||
//#endregion
|
||||
export { useRounded as n, makeRoundedProps as t };
|
||||
|
||||
//# sourceMappingURL=rounded-BuPGKRa9.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"rounded-BuPGKRa9.js","names":[],"sources":["../../vuetify/lib/composables/rounded.js"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined\n },\n tile: Boolean\n}, 'rounded');\nexport function useRounded(props, name = getCurrentInstanceName()) {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded;\n const tile = isRef(props) ? false : props.tile;\n const classes = [];\n if (tile || rounded === false) {\n classes.push('rounded-0');\n } else if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`);\n } else if (typeof rounded === 'string' || rounded === 0) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`);\n }\n }\n return classes;\n });\n return {\n roundedClasses\n };\n}\n//# sourceMappingURL=rounded.js.map"],"mappings":";;;AAIA,IAAa,mBAAmB,aAAa;CAC3C,SAAS;EACP,MAAM;GAAC;GAAS;GAAQ;GAAO;EAC/B,SAAS,KAAA;EACV;CACD,MAAM;CACP,EAAE,UAAU;AACb,SAAgB,WAAW,OAAO,OAAO,wBAAwB,EAAE;AAgBjE,QAAO,EACL,gBAhBqB,eAAe;EACpC,MAAM,UAAU,MAAM,MAAM,GAAG,MAAM,QAAQ,MAAM;EACnD,MAAM,OAAO,MAAM,MAAM,GAAG,QAAQ,MAAM;EAC1C,MAAM,UAAU,EAAE;AAClB,MAAI,QAAQ,YAAY,MACtB,SAAQ,KAAK,YAAY;WAChB,YAAY,QAAQ,YAAY,GACzC,SAAQ,KAAK,GAAG,KAAK,WAAW;WACvB,OAAO,YAAY,YAAY,YAAY,EACpD,MAAK,MAAM,SAAS,OAAO,QAAQ,CAAC,MAAM,IAAI,CAC5C,SAAQ,KAAK,WAAW,QAAQ;AAGpC,SAAO;GAGO,EACf"}
|
||||
-101
@@ -1,101 +0,0 @@
|
||||
import { Ot as nextTick, Qn as toRef, U as computed, Vn as onScopeDispose, Wn as reactive, Zt as resolveDynamicComponent } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { N as hasEvent, Q as IN_BROWSER, l as propsFactory, s as getCurrentInstance } from "./defineComponent-DB6xIcDy.js";
|
||||
import { t as deepEqual } from "./deepEqual-DDqmGqyF.js";
|
||||
//#region node_modules/vuetify/lib/composables/router.js
|
||||
function useRoute() {
|
||||
const vm = getCurrentInstance("useRoute");
|
||||
return computed(() => vm?.proxy?.$route);
|
||||
}
|
||||
function useRouter() {
|
||||
return getCurrentInstance("useRouter")?.proxy?.$router;
|
||||
}
|
||||
function useLink(props, attrs) {
|
||||
const RouterLink = resolveDynamicComponent("RouterLink");
|
||||
const isLink = toRef(() => !!(props.href || props.to));
|
||||
const isClickable = computed(() => {
|
||||
return isLink?.value || hasEvent(attrs, "click") || hasEvent(props, "click");
|
||||
});
|
||||
if (typeof RouterLink === "string" || !("useLink" in RouterLink)) {
|
||||
const href = toRef(() => props.href);
|
||||
return {
|
||||
isLink,
|
||||
isRouterLink: toRef(() => false),
|
||||
isClickable,
|
||||
href,
|
||||
linkProps: reactive({ href }),
|
||||
route: toRef(() => void 0),
|
||||
navigate: toRef(() => void 0)
|
||||
};
|
||||
}
|
||||
const routerLink = RouterLink.useLink({
|
||||
to: toRef(() => props.to || ""),
|
||||
replace: toRef(() => props.replace)
|
||||
});
|
||||
const link = computed(() => props.to ? routerLink : void 0);
|
||||
const route = useRoute();
|
||||
const isActive = computed(() => {
|
||||
if (!link.value) return false;
|
||||
if (!props.exact) return link.value.isActive?.value ?? false;
|
||||
if (!route.value) return link.value.isExactActive?.value ?? false;
|
||||
return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
|
||||
});
|
||||
const href = computed(() => props.to ? link.value?.route.value.href : props.href);
|
||||
return {
|
||||
isLink,
|
||||
isRouterLink: toRef(() => !!props.to),
|
||||
isClickable,
|
||||
isActive,
|
||||
route: toRef(() => link.value?.route.value),
|
||||
navigate: toRef(() => link.value?.navigate),
|
||||
href,
|
||||
linkProps: reactive({
|
||||
href,
|
||||
"aria-current": toRef(() => isActive.value ? "page" : void 0),
|
||||
"aria-disabled": toRef(() => props.disabled && isLink.value ? "true" : void 0),
|
||||
tabindex: toRef(() => props.disabled && isLink.value ? "-1" : void 0)
|
||||
})
|
||||
};
|
||||
}
|
||||
var makeRouterProps = propsFactory({
|
||||
href: String,
|
||||
replace: Boolean,
|
||||
to: [String, Object],
|
||||
exact: Boolean
|
||||
}, "router");
|
||||
var inTransition = false;
|
||||
function useBackButton(router, cb) {
|
||||
let popped = false;
|
||||
let removeBefore;
|
||||
let removeAfter;
|
||||
if (IN_BROWSER && router?.beforeEach) {
|
||||
nextTick(() => {
|
||||
window.addEventListener("popstate", onPopstate);
|
||||
removeBefore = router.beforeEach(() => {
|
||||
if (!inTransition) {
|
||||
inTransition = true;
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => resolve(popped ? cb() : void 0));
|
||||
});
|
||||
}
|
||||
return popped ? cb() : void 0;
|
||||
});
|
||||
removeAfter = router?.afterEach(() => {
|
||||
inTransition = false;
|
||||
});
|
||||
});
|
||||
onScopeDispose(() => {
|
||||
window.removeEventListener("popstate", onPopstate);
|
||||
removeBefore?.();
|
||||
removeAfter?.();
|
||||
});
|
||||
}
|
||||
function onPopstate(e) {
|
||||
if (e.state?.replaced) return;
|
||||
popped = true;
|
||||
setTimeout(() => popped = false);
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
export { useRouter as i, useBackButton as n, useLink as r, makeRouterProps as t };
|
||||
|
||||
//# sourceMappingURL=router-D_jP4Uwb.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-10
@@ -1,10 +0,0 @@
|
||||
import { s as getCurrentInstance } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/scopeId.js
|
||||
function useScopeId() {
|
||||
const scopeId = getCurrentInstance("useScopeId").vnode.scopeId;
|
||||
return { scopeId: scopeId ? { [scopeId]: "" } : void 0 };
|
||||
}
|
||||
//#endregion
|
||||
export { useScopeId as t };
|
||||
|
||||
//# sourceMappingURL=scopeId-CyMkmyzM.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"scopeId-CyMkmyzM.js","names":[],"sources":["../../vuetify/lib/composables/scopeId.js"],"sourcesContent":["// Utilities\nimport { getCurrentInstance } from \"../util/index.js\";\nexport function useScopeId() {\n const vm = getCurrentInstance('useScopeId');\n const scopeId = vm.vnode.scopeId;\n return {\n scopeId: scopeId ? {\n [scopeId]: ''\n } : undefined\n };\n}\n//# sourceMappingURL=scopeId.js.map"],"mappings":";;AAEA,SAAgB,aAAa;CAE3B,MAAM,UADK,mBAAmB,aACZ,CAAC,MAAM;AACzB,QAAO,EACL,SAAS,UAAU,GAChB,UAAU,IACZ,GAAG,KAAA,GACL"}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
import { Ft as onMounted, Gn as readonly, Qn as toRef, Yn as shallowRef } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
//#region node_modules/vuetify/lib/composables/ssrBoot.js
|
||||
function useSsrBoot() {
|
||||
const isBooted = shallowRef(false);
|
||||
onMounted(() => {
|
||||
window.requestAnimationFrame(() => {
|
||||
isBooted.value = true;
|
||||
});
|
||||
});
|
||||
return {
|
||||
ssrBootStyles: toRef(() => !isBooted.value ? { transition: "none !important" } : void 0),
|
||||
isBooted: readonly(isBooted)
|
||||
};
|
||||
}
|
||||
//#endregion
|
||||
export { useSsrBoot as t };
|
||||
|
||||
//# sourceMappingURL=ssrBoot-CSc1_bcP.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"ssrBoot-CSc1_bcP.js","names":[],"sources":["../../vuetify/lib/composables/ssrBoot.js"],"sourcesContent":["// Utilities\nimport { onMounted, readonly, shallowRef, toRef } from 'vue';\n\n// Composables\nexport function useSsrBoot() {\n const isBooted = shallowRef(false);\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n const ssrBootStyles = toRef(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.js.map"],"mappings":";;AAIA,SAAgB,aAAa;CAC3B,MAAM,WAAW,WAAW,MAAM;AAClC,iBAAgB;AACd,SAAO,4BAA4B;AACjC,YAAS,QAAQ;IACjB;GACF;AAIF,QAAO;EACL,eAJoB,YAAY,CAAC,SAAS,QAAQ,EAClD,YAAY,mBACb,GAAG,KAAA,EAEW;EACb,UAAU,SAAS,SAAS;EAC7B"}
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
import { l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/tag.js
|
||||
var makeTagProps = propsFactory({ tag: {
|
||||
type: [
|
||||
String,
|
||||
Object,
|
||||
Function
|
||||
],
|
||||
default: "div"
|
||||
} }, "tag");
|
||||
//#endregion
|
||||
export { makeTagProps as t };
|
||||
|
||||
//# sourceMappingURL=tag-C_KkCPzB.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"tag-C_KkCPzB.js","names":[],"sources":["../../vuetify/lib/composables/tag.js"],"sourcesContent":["// Utilities\nimport { propsFactory } from \"../util/index.js\"; // Types\n// Types\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: [String, Object, Function],\n default: 'div'\n }\n}, 'tag');\n//# sourceMappingURL=tag.js.map"],"mappings":";;AAIA,IAAa,eAAe,aAAa,EACvC,KAAK;CACH,MAAM;EAAC;EAAQ;EAAQ;EAAS;CAChC,SAAS;CACV,EACF,EAAE,MAAM"}
|
||||
-355
@@ -1,355 +0,0 @@
|
||||
import { Kn as ref, Nn as getCurrentScope, Qn as toRef, U as computed, Ut as provide, Vn as onScopeDispose, Yn as shallowRef, _n as watchEffect, gn as watch, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { Q as IN_BROWSER, V as mergeDeep, at as deprecate, it as consoleWarn, l as propsFactory, s as getCurrentInstance, tt as SUPPORTS_MATCH_MEDIA, v as createRange } from "./defineComponent-DB6xIcDy.js";
|
||||
import { c as parseColor, i as hasLightForeground, n as darken, r as getLuma, s as lighten, t as RGBtoHex } from "./colorUtils-BE28T62U.js";
|
||||
//#region node_modules/vuetify/lib/composables/theme.js
|
||||
var ThemeSymbol = Symbol.for("vuetify:theme");
|
||||
var makeThemeProps = propsFactory({ theme: String }, "theme");
|
||||
function genDefaults() {
|
||||
return {
|
||||
defaultTheme: "system",
|
||||
prefix: "v-",
|
||||
variations: {
|
||||
colors: [],
|
||||
lighten: 0,
|
||||
darken: 0
|
||||
},
|
||||
themes: {
|
||||
light: {
|
||||
dark: false,
|
||||
colors: {
|
||||
background: "#FFFFFF",
|
||||
surface: "#FFFFFF",
|
||||
"surface-bright": "#FFFFFF",
|
||||
"surface-light": "#EEEEEE",
|
||||
"surface-variant": "#424242",
|
||||
"on-surface-variant": "#EEEEEE",
|
||||
primary: "#1867C0",
|
||||
"primary-darken-1": "#1F5592",
|
||||
secondary: "#48A9A6",
|
||||
"secondary-darken-1": "#018786",
|
||||
error: "#B00020",
|
||||
info: "#2196F3",
|
||||
success: "#4CAF50",
|
||||
warning: "#FB8C00"
|
||||
},
|
||||
variables: {
|
||||
"border-color": "#000000",
|
||||
"border-opacity": .12,
|
||||
"shadow-color": "#000000",
|
||||
"high-emphasis-opacity": .87,
|
||||
"medium-emphasis-opacity": .6,
|
||||
"disabled-opacity": .38,
|
||||
"idle-opacity": .04,
|
||||
"hover-opacity": .04,
|
||||
"focus-opacity": .12,
|
||||
"selected-opacity": .08,
|
||||
"activated-opacity": .12,
|
||||
"pressed-opacity": .12,
|
||||
"dragged-opacity": .08,
|
||||
"theme-kbd": "#EEEEEE",
|
||||
"theme-on-kbd": "#000000",
|
||||
"theme-code": "#F5F5F5",
|
||||
"theme-on-code": "#000000",
|
||||
"theme-on-dark": "#FFF",
|
||||
"theme-on-light": "#000",
|
||||
"elevation-overlay-color": "black",
|
||||
"elevation-overlay-opacity-step": "2%"
|
||||
}
|
||||
},
|
||||
dark: {
|
||||
dark: true,
|
||||
colors: {
|
||||
background: "#121212",
|
||||
surface: "#212121",
|
||||
"surface-bright": "#ccbfd6",
|
||||
"surface-light": "#424242",
|
||||
"surface-variant": "#c8c8c8",
|
||||
"on-surface-variant": "#000000",
|
||||
primary: "#2196F3",
|
||||
"primary-darken-1": "#277CC1",
|
||||
secondary: "#54B6B2",
|
||||
"secondary-darken-1": "#48A9A6",
|
||||
error: "#CF6679",
|
||||
info: "#2196F3",
|
||||
success: "#4CAF50",
|
||||
warning: "#FB8C00"
|
||||
},
|
||||
variables: {
|
||||
"border-color": "#FFFFFF",
|
||||
"border-opacity": .12,
|
||||
"shadow-color": "#000000",
|
||||
"high-emphasis-opacity": 1,
|
||||
"medium-emphasis-opacity": .7,
|
||||
"disabled-opacity": .5,
|
||||
"idle-opacity": .1,
|
||||
"hover-opacity": .04,
|
||||
"focus-opacity": .12,
|
||||
"selected-opacity": .08,
|
||||
"activated-opacity": .12,
|
||||
"pressed-opacity": .16,
|
||||
"dragged-opacity": .08,
|
||||
"theme-kbd": "#424242",
|
||||
"theme-on-kbd": "#FFFFFF",
|
||||
"theme-code": "#343434",
|
||||
"theme-on-code": "#CCCCCC",
|
||||
"theme-on-dark": "#FFF",
|
||||
"theme-on-light": "#000",
|
||||
"elevation-overlay-color": "white",
|
||||
"elevation-overlay-opacity-step": "2%"
|
||||
}
|
||||
}
|
||||
},
|
||||
stylesheetId: "vuetify-theme-stylesheet",
|
||||
scoped: false,
|
||||
utilities: true
|
||||
};
|
||||
}
|
||||
function parseThemeOptions(options = genDefaults()) {
|
||||
const defaults = genDefaults();
|
||||
if (!options) return {
|
||||
...defaults,
|
||||
isDisabled: true
|
||||
};
|
||||
return mergeDeep(defaults, options);
|
||||
}
|
||||
function createCssClass(lines, selector, content, scope) {
|
||||
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map((line) => ` ${line};\n`), "}\n");
|
||||
}
|
||||
function genCssVariables(theme, prefix) {
|
||||
const lightOverlay = theme.dark ? 2 : 1;
|
||||
const darkOverlay = theme.dark ? 1 : 2;
|
||||
const variables = [];
|
||||
for (const [key, value] of Object.entries(theme.colors)) {
|
||||
const rgb = parseColor(value);
|
||||
variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}` + (rgb.a == null ? "" : `,${rgb.a}`));
|
||||
if (!key.startsWith("on-")) variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > .18 ? lightOverlay : darkOverlay}`);
|
||||
}
|
||||
for (const [key, value] of Object.entries(theme.variables)) {
|
||||
const color = typeof value === "string" && value.startsWith("#") ? parseColor(value) : void 0;
|
||||
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : void 0;
|
||||
variables.push(`--${prefix}${key}: ${rgb ?? value}`);
|
||||
}
|
||||
return variables;
|
||||
}
|
||||
function genVariation(name, color, variations) {
|
||||
const object = {};
|
||||
if (variations) for (const variation of ["lighten", "darken"]) {
|
||||
const fn = variation === "lighten" ? lighten : darken;
|
||||
for (const amount of createRange(variations[variation], 1)) object[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
||||
}
|
||||
return object;
|
||||
}
|
||||
function genVariations(colors, variations) {
|
||||
if (!variations) return {};
|
||||
let variationColors = {};
|
||||
for (const name of variations.colors) {
|
||||
const color = colors[name];
|
||||
if (!color) continue;
|
||||
variationColors = {
|
||||
...variationColors,
|
||||
...genVariation(name, color, variations)
|
||||
};
|
||||
}
|
||||
return variationColors;
|
||||
}
|
||||
function genOnColors(colors, variables) {
|
||||
const onColors = {};
|
||||
for (const color of Object.keys(colors)) {
|
||||
if (color.startsWith("on-") || colors[`on-${color}`]) continue;
|
||||
const onColor = `on-${color}`;
|
||||
onColors[onColor] = hasLightForeground(parseColor(colors[color])) ? variables["theme-on-dark"] : variables["theme-on-light"];
|
||||
}
|
||||
return onColors;
|
||||
}
|
||||
function getScopedSelector(selector, scope) {
|
||||
if (!scope) return selector;
|
||||
const scopeSelector = `:where(${scope})`;
|
||||
return selector === ":root" ? scopeSelector : `${scopeSelector} ${selector}`;
|
||||
}
|
||||
function upsertStyles(id, cspNonce, styles) {
|
||||
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
||||
if (!styleEl) return;
|
||||
styleEl.innerHTML = styles;
|
||||
}
|
||||
function getOrCreateStyleElement(id, cspNonce) {
|
||||
if (!IN_BROWSER) return null;
|
||||
let style = document.getElementById(id);
|
||||
if (!style) {
|
||||
style = document.createElement("style");
|
||||
style.id = id;
|
||||
style.type = "text/css";
|
||||
if (cspNonce) style.setAttribute("nonce", cspNonce);
|
||||
document.head.appendChild(style);
|
||||
}
|
||||
return style;
|
||||
}
|
||||
function createTheme(options) {
|
||||
const parsedOptions = parseThemeOptions(options);
|
||||
const _name = shallowRef(parsedOptions.defaultTheme);
|
||||
const themes = ref(parsedOptions.themes);
|
||||
const systemName = shallowRef("light");
|
||||
const name = computed({
|
||||
get() {
|
||||
return _name.value === "system" ? systemName.value : _name.value;
|
||||
},
|
||||
set(val) {
|
||||
_name.value = val;
|
||||
}
|
||||
});
|
||||
const computedThemes = computed(() => {
|
||||
const acc = {};
|
||||
for (const [name, original] of Object.entries(themes.value)) {
|
||||
const merged = mergeDeep(original.dark || name === "dark" ? themes.value.dark : themes.value.light, original);
|
||||
const colors = {
|
||||
...merged.colors,
|
||||
...genVariations(merged.colors, parsedOptions.variations)
|
||||
};
|
||||
acc[name] = {
|
||||
...merged,
|
||||
colors: {
|
||||
...colors,
|
||||
...genOnColors(colors, merged.variables)
|
||||
}
|
||||
};
|
||||
}
|
||||
return acc;
|
||||
});
|
||||
const current = toRef(() => computedThemes.value[name.value]);
|
||||
const isSystem = toRef(() => _name.value === "system");
|
||||
const styles = computed(() => {
|
||||
const lines = [];
|
||||
const scoped = parsedOptions.scoped ? parsedOptions.prefix : "";
|
||||
lines.push("@layer theme-base {\n");
|
||||
if (current.value?.dark) createCssClass(lines, ":root", ["color-scheme: dark"], parsedOptions.scope);
|
||||
createCssClass(lines, ":root", genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
|
||||
for (const [themeName, theme] of Object.entries(computedThemes.value)) createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? "dark" : "normal"}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
|
||||
lines.push("}\n");
|
||||
if (parsedOptions.utilities) {
|
||||
const bgLines = [];
|
||||
const fgLines = [];
|
||||
const colors = new Set(Object.values(computedThemes.value).flatMap((theme) => Object.keys(theme.colors)));
|
||||
for (const key of colors) if (key.startsWith("on-")) createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))`], parsedOptions.scope);
|
||||
else {
|
||||
createCssClass(bgLines, `.${scoped}bg-${key}`, [
|
||||
`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`,
|
||||
`background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))`,
|
||||
`color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))`
|
||||
], parsedOptions.scope);
|
||||
createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))`], parsedOptions.scope);
|
||||
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
||||
}
|
||||
lines.push("@layer theme-background {\n", ...bgLines.map((v) => ` ${v}`), "}\n", "@layer theme-foreground {\n", ...fgLines.map((v) => ` ${v}`), "}\n");
|
||||
}
|
||||
return "@layer vuetify-utilities {\n" + lines.map((v) => ` ${v}`).join("") + "\n}";
|
||||
});
|
||||
const themeClasses = toRef(() => parsedOptions.isDisabled ? void 0 : `${parsedOptions.prefix}theme--${name.value}`);
|
||||
const themeNames = toRef(() => Object.keys(computedThemes.value));
|
||||
if (SUPPORTS_MATCH_MEDIA) {
|
||||
const media = window.matchMedia("(prefers-color-scheme: dark)");
|
||||
function updateSystemName() {
|
||||
systemName.value = media.matches ? "dark" : "light";
|
||||
}
|
||||
updateSystemName();
|
||||
media.addEventListener("change", updateSystemName, { passive: true });
|
||||
if (getCurrentScope()) onScopeDispose(() => {
|
||||
media.removeEventListener("change", updateSystemName);
|
||||
});
|
||||
}
|
||||
function install(app) {
|
||||
if (parsedOptions.isDisabled) return;
|
||||
const head = app._context.provides.usehead;
|
||||
if (head) {
|
||||
function getHead() {
|
||||
return { style: [{
|
||||
textContent: styles.value,
|
||||
id: parsedOptions.stylesheetId,
|
||||
nonce: parsedOptions.cspNonce || false,
|
||||
tagPosition: "bodyOpen"
|
||||
}] };
|
||||
}
|
||||
if (head.push) {
|
||||
const entry = head.push(getHead);
|
||||
if (IN_BROWSER) watch(styles, () => {
|
||||
entry.patch(getHead);
|
||||
});
|
||||
} else if (IN_BROWSER) {
|
||||
head.addHeadObjs(toRef(getHead));
|
||||
watchEffect(() => head.updateDOM());
|
||||
} else head.addHeadObjs(getHead());
|
||||
} else {
|
||||
if (IN_BROWSER) watch(styles, updateStyles, { immediate: true });
|
||||
else updateStyles();
|
||||
function updateStyles() {
|
||||
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
function change(themeName) {
|
||||
if (themeName !== "system" && !themeNames.value.includes(themeName)) {
|
||||
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
||||
return;
|
||||
}
|
||||
name.value = themeName;
|
||||
}
|
||||
function cycle(themeArray = themeNames.value) {
|
||||
const currentIndex = themeArray.indexOf(name.value);
|
||||
change(themeArray[currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length]);
|
||||
}
|
||||
function toggle(themeArray = ["light", "dark"]) {
|
||||
cycle(themeArray);
|
||||
}
|
||||
const globalName = new Proxy(name, {
|
||||
get(target, prop) {
|
||||
return Reflect.get(target, prop);
|
||||
},
|
||||
set(target, prop, val) {
|
||||
if (prop === "value") deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
||||
return Reflect.set(target, prop, val);
|
||||
}
|
||||
});
|
||||
return {
|
||||
install,
|
||||
change,
|
||||
cycle,
|
||||
toggle,
|
||||
isDisabled: parsedOptions.isDisabled,
|
||||
isSystem,
|
||||
name,
|
||||
themes,
|
||||
current,
|
||||
computedThemes,
|
||||
prefix: parsedOptions.prefix,
|
||||
themeClasses,
|
||||
styles,
|
||||
global: {
|
||||
name: globalName,
|
||||
current
|
||||
}
|
||||
};
|
||||
}
|
||||
function provideTheme(props) {
|
||||
getCurrentInstance("provideTheme");
|
||||
const theme = inject(ThemeSymbol, null);
|
||||
if (!theme) throw new Error("Could not find Vuetify theme injection");
|
||||
const name = toRef(() => props.theme ?? theme.name.value);
|
||||
const current = toRef(() => theme.themes.value[name.value]);
|
||||
const themeClasses = toRef(() => theme.isDisabled ? void 0 : `${theme.prefix}theme--${name.value}`);
|
||||
const newTheme = {
|
||||
...theme,
|
||||
name,
|
||||
current,
|
||||
themeClasses
|
||||
};
|
||||
provide(ThemeSymbol, newTheme);
|
||||
return newTheme;
|
||||
}
|
||||
function useTheme() {
|
||||
getCurrentInstance("useTheme");
|
||||
const theme = inject(ThemeSymbol, null);
|
||||
if (!theme) throw new Error("Could not find Vuetify theme injection");
|
||||
return theme;
|
||||
}
|
||||
//#endregion
|
||||
export { useTheme as a, provideTheme as i, createTheme as n, makeThemeProps as r, ThemeSymbol as t };
|
||||
|
||||
//# sourceMappingURL=theme-Cx5kFg0-.js.map
|
||||
-1
File diff suppressed because one or more lines are too long
-23
@@ -1,23 +0,0 @@
|
||||
import { Dt as mergeProps, n as Transition, pt as h, r as TransitionGroup } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { I as isObject, U as onlyDefinedProps, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
||||
//#region node_modules/vuetify/lib/composables/transition.js
|
||||
var makeTransitionProps = propsFactory({ transition: {
|
||||
type: null,
|
||||
default: "fade-transition",
|
||||
validator: (val) => val !== true
|
||||
} }, "transition");
|
||||
var MaybeTransition = (props, { slots }) => {
|
||||
const { transition, disabled, group, ...rest } = props;
|
||||
const { component = group ? TransitionGroup : Transition, ...customProps } = isObject(transition) ? transition : {};
|
||||
let transitionProps;
|
||||
if (isObject(transition)) transitionProps = mergeProps(customProps, onlyDefinedProps({
|
||||
disabled,
|
||||
group
|
||||
}), rest);
|
||||
else transitionProps = mergeProps({ name: disabled || !transition ? "" : transition }, rest);
|
||||
return h(component, transitionProps, slots);
|
||||
};
|
||||
//#endregion
|
||||
export { makeTransitionProps as n, MaybeTransition as t };
|
||||
|
||||
//# sourceMappingURL=transition-DqoZ8fA1.js.map
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"transition-DqoZ8fA1.js","names":[],"sources":["../../vuetify/lib/composables/transition.js"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue';\nimport { isObject, onlyDefinedProps, propsFactory } from \"../util/index.js\"; // Types\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true\n }\n}, 'transition');\nexport const MaybeTransition = (props, {\n slots\n}) => {\n const {\n transition,\n disabled,\n group,\n ...rest\n } = props;\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {};\n let transitionProps;\n if (isObject(transition)) {\n transitionProps = mergeProps(customProps, onlyDefinedProps({\n disabled,\n group\n }), rest);\n } else {\n transitionProps = mergeProps({\n name: disabled || !transition ? '' : transition\n }, rest);\n }\n return h(component, transitionProps, slots);\n};\n//# sourceMappingURL=transition.js.map"],"mappings":";;;AAGA,IAAa,sBAAsB,aAAa,EAC9C,YAAY;CACV,MAAM;CACN,SAAS;CACT,YAAW,QAAO,QAAQ;CAC3B,EACF,EAAE,aAAa;AAChB,IAAa,mBAAmB,OAAO,EACrC,YACI;CACJ,MAAM,EACJ,YACA,UACA,OACA,GAAG,SACD;CACJ,MAAM,EACJ,YAAY,QAAQ,kBAAkB,YACtC,GAAG,gBACD,SAAS,WAAW,GAAG,aAAa,EAAE;CAC1C,IAAI;AACJ,KAAI,SAAS,WAAW,CACtB,mBAAkB,WAAW,aAAa,iBAAiB;EACzD;EACA;EACD,CAAC,EAAE,KAAK;KAET,mBAAkB,WAAW,EAC3B,MAAM,YAAY,CAAC,aAAa,KAAK,YACtC,EAAE,KAAK;AAEV,QAAO,EAAE,WAAW,iBAAiB,MAAM"}
|
||||
-356
@@ -1,356 +0,0 @@
|
||||
import { Dt as mergeProps, et as createVNode, n as Transition, pt as h, r as TransitionGroup } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
||||
import { $ as PREFERS_REDUCED_MOTION, l as propsFactory, n as genericComponent } from "./defineComponent-DB6xIcDy.js";
|
||||
import { i as getTargetBox, t as Box } from "./box-BNWMOtF7.js";
|
||||
import { i as standardEasing, n as deceleratedEasing, t as acceleratedEasing } from "./easing-DfcvkbkS.js";
|
||||
//#region node_modules/vuetify/lib/util/animation.js
|
||||
/** @see https://stackoverflow.com/a/57876601/2074736 */
|
||||
function nullifyTransforms(el) {
|
||||
const rect = new Box(el);
|
||||
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;
|
||||
return new Box({
|
||||
x: rect.x - dx - (1 - sx) * parseFloat(to),
|
||||
y: rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(" ") + 1)),
|
||||
width: sx ? rect.width / sx : el.offsetWidth + 1,
|
||||
height: sy ? rect.height / sy : el.offsetHeight + 1
|
||||
});
|
||||
} 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;
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/transitions/createTransition.js
|
||||
var makeTransitionProps = propsFactory({
|
||||
disabled: Boolean,
|
||||
group: Boolean,
|
||||
hideOnLeave: Boolean,
|
||||
leaveAbsolute: Boolean,
|
||||
mode: String,
|
||||
origin: String
|
||||
}, "transition");
|
||||
function createCssTransition(name, origin, mode) {
|
||||
return genericComponent()({
|
||||
name,
|
||||
props: makeTransitionProps({
|
||||
mode,
|
||||
origin
|
||||
}),
|
||||
setup(props, { slots }) {
|
||||
const functions = {
|
||||
onBeforeEnter(el) {
|
||||
if (props.origin) el.style.transformOrigin = props.origin;
|
||||
},
|
||||
onLeave(el) {
|
||||
if (props.leaveAbsolute) {
|
||||
const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el;
|
||||
el._transitionInitialStyles = {
|
||||
position: el.style.position,
|
||||
top: el.style.top,
|
||||
left: el.style.left,
|
||||
width: el.style.width,
|
||||
height: el.style.height
|
||||
};
|
||||
el.style.position = "absolute";
|
||||
el.style.top = `${offsetTop}px`;
|
||||
el.style.left = `${offsetLeft}px`;
|
||||
el.style.width = `${offsetWidth}px`;
|
||||
el.style.height = `${offsetHeight}px`;
|
||||
}
|
||||
if (props.hideOnLeave) el.style.setProperty("display", "none", "important");
|
||||
},
|
||||
onAfterLeave(el) {
|
||||
if (props.leaveAbsolute && el?._transitionInitialStyles) {
|
||||
const { position, top, left, width, height } = el._transitionInitialStyles;
|
||||
delete el._transitionInitialStyles;
|
||||
el.style.position = position || "";
|
||||
el.style.top = top || "";
|
||||
el.style.left = left || "";
|
||||
el.style.width = width || "";
|
||||
el.style.height = height || "";
|
||||
}
|
||||
}
|
||||
};
|
||||
return () => {
|
||||
return h(props.group ? TransitionGroup : Transition, {
|
||||
name: props.disabled ? "" : name,
|
||||
css: !props.disabled,
|
||||
...props.group ? void 0 : { mode: props.mode },
|
||||
...props.disabled ? {} : functions
|
||||
}, slots.default);
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
function createJavascriptTransition(name, functions, mode = "in-out") {
|
||||
return genericComponent()({
|
||||
name,
|
||||
props: {
|
||||
mode: {
|
||||
type: String,
|
||||
default: mode
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: PREFERS_REDUCED_MOTION()
|
||||
},
|
||||
group: Boolean,
|
||||
hideOnLeave: Boolean
|
||||
},
|
||||
setup(props, { slots }) {
|
||||
const tag = props.group ? TransitionGroup : Transition;
|
||||
return () => {
|
||||
return h(tag, {
|
||||
name: props.disabled ? "" : name,
|
||||
css: !props.disabled,
|
||||
...props.disabled ? {} : {
|
||||
...functions,
|
||||
onLeave: (el) => {
|
||||
if (props.hideOnLeave) el.style.setProperty("display", "none", "important");
|
||||
else functions.onLeave?.(el);
|
||||
}
|
||||
}
|
||||
}, slots.default);
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/transitions/expand-transition.js
|
||||
function expand_transition_default(expandedParentClass = "", type = "y") {
|
||||
return {
|
||||
onBeforeEnter(el) {
|
||||
el._parent = el.parentNode;
|
||||
el._initialStyle = {
|
||||
transition: el.style.transition,
|
||||
overflow: el.style.overflow,
|
||||
width: el.style.width,
|
||||
height: el.style.height
|
||||
};
|
||||
},
|
||||
onEnter(el) {
|
||||
const initialStyle = el._initialStyle;
|
||||
if (!initialStyle) return;
|
||||
el.style.setProperty("transition", "none", "important");
|
||||
el.style.overflow = "hidden";
|
||||
const offsetWidth = `${el.offsetWidth}px`;
|
||||
const offsetHeight = `${el.offsetHeight}px`;
|
||||
if (["x", "both"].includes(type)) el.style.width = "0";
|
||||
if (["y", "both"].includes(type)) el.style.height = "0";
|
||||
el.offsetHeight;
|
||||
el.style.transition = initialStyle.transition;
|
||||
if (expandedParentClass && el._parent) el._parent.classList.add(expandedParentClass);
|
||||
requestAnimationFrame(() => {
|
||||
if (["x", "both"].includes(type)) el.style.width = offsetWidth;
|
||||
if (["y", "both"].includes(type)) el.style.height = offsetHeight;
|
||||
});
|
||||
},
|
||||
onAfterEnter: resetStyles,
|
||||
onEnterCancelled: resetStyles,
|
||||
onLeave(el) {
|
||||
el._initialStyle = {
|
||||
transition: "",
|
||||
overflow: el.style.overflow,
|
||||
width: el.style.width,
|
||||
height: el.style.height
|
||||
};
|
||||
el.style.overflow = "hidden";
|
||||
if (["x", "both"].includes(type)) el.style.width = `${el.offsetWidth}px`;
|
||||
if (["y", "both"].includes(type)) el.style.height = `${el.offsetHeight}px`;
|
||||
el.offsetHeight;
|
||||
requestAnimationFrame(() => {
|
||||
if (["x", "both"].includes(type)) el.style.width = "0";
|
||||
if (["y", "both"].includes(type)) el.style.height = "0";
|
||||
});
|
||||
},
|
||||
onAfterLeave,
|
||||
onLeaveCancelled: onAfterLeave
|
||||
};
|
||||
function onAfterLeave(el) {
|
||||
if (expandedParentClass && el._parent) el._parent.classList.remove(expandedParentClass);
|
||||
resetStyles(el);
|
||||
}
|
||||
function resetStyles(el) {
|
||||
if (!el._initialStyle) return;
|
||||
const { width: w, height: h } = el._initialStyle;
|
||||
el.style.overflow = el._initialStyle.overflow;
|
||||
if (w != null && ["x", "both"].includes(type)) el.style.width = w;
|
||||
if (h != null && ["y", "both"].includes(type)) el.style.height = h;
|
||||
delete el._initialStyle;
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
//#region node_modules/vuetify/lib/components/transitions/dialog-transition.js
|
||||
var makeVDialogTransitionProps = propsFactory({ target: [Object, Array] }, "v-dialog-transition");
|
||||
var saved = /* @__PURE__ */ new WeakMap();
|
||||
var VDialogTransition = genericComponent()({
|
||||
name: "VDialogTransition",
|
||||
props: makeVDialogTransitionProps(),
|
||||
setup(props, { slots }) {
|
||||
const functions = {
|
||||
onBeforeEnter(el) {
|
||||
el.style.pointerEvents = "none";
|
||||
el.style.visibility = "hidden";
|
||||
},
|
||||
async onEnter(el, done) {
|
||||
await new Promise((resolve) => requestAnimationFrame(resolve));
|
||||
await new Promise((resolve) => requestAnimationFrame(resolve));
|
||||
el.style.visibility = "";
|
||||
const dimensions = getDimensions(props.target, el);
|
||||
const { x, y, sx, sy, speed } = dimensions;
|
||||
saved.set(el, dimensions);
|
||||
if (PREFERS_REDUCED_MOTION()) animate(el, [{ opacity: 0 }, {}], {
|
||||
duration: 125 * speed,
|
||||
easing: deceleratedEasing
|
||||
}).finished.then(() => done());
|
||||
else {
|
||||
const animation = animate(el, [{
|
||||
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
||||
opacity: 0
|
||||
}, {}], {
|
||||
duration: 225 * speed,
|
||||
easing: deceleratedEasing
|
||||
});
|
||||
getChildren(el)?.forEach((el) => {
|
||||
animate(el, [
|
||||
{ opacity: 0 },
|
||||
{
|
||||
opacity: 0,
|
||||
offset: .33
|
||||
},
|
||||
{}
|
||||
], {
|
||||
duration: 450 * speed,
|
||||
easing: standardEasing
|
||||
});
|
||||
});
|
||||
animation.finished.then(() => done());
|
||||
}
|
||||
},
|
||||
onAfterEnter(el) {
|
||||
el.style.removeProperty("pointer-events");
|
||||
},
|
||||
onBeforeLeave(el) {
|
||||
el.style.pointerEvents = "none";
|
||||
},
|
||||
async onLeave(el, done) {
|
||||
await new Promise((resolve) => requestAnimationFrame(resolve));
|
||||
let dimensions;
|
||||
if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) dimensions = getDimensions(props.target, el);
|
||||
else dimensions = saved.get(el);
|
||||
const { x, y, sx, sy, speed } = dimensions;
|
||||
if (PREFERS_REDUCED_MOTION()) animate(el, [{}, { opacity: 0 }], {
|
||||
duration: 85 * speed,
|
||||
easing: acceleratedEasing
|
||||
}).finished.then(() => done());
|
||||
else {
|
||||
animate(el, [{}, {
|
||||
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
||||
opacity: 0
|
||||
}], {
|
||||
duration: 125 * speed,
|
||||
easing: acceleratedEasing
|
||||
}).finished.then(() => done());
|
||||
getChildren(el)?.forEach((el) => {
|
||||
animate(el, [
|
||||
{},
|
||||
{
|
||||
opacity: 0,
|
||||
offset: .2
|
||||
},
|
||||
{ opacity: 0 }
|
||||
], {
|
||||
duration: 250 * speed,
|
||||
easing: standardEasing
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
onAfterLeave(el) {
|
||||
el.style.removeProperty("pointer-events");
|
||||
}
|
||||
};
|
||||
return () => {
|
||||
return props.target ? createVNode(Transition, mergeProps({ "name": "dialog-transition" }, functions, { "css": false }), slots) : createVNode(Transition, { "name": "dialog-transition" }, slots);
|
||||
};
|
||||
}
|
||||
});
|
||||
/** Animatable children (card, sheet, list) */
|
||||
function getChildren(el) {
|
||||
const els = el.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list")?.children;
|
||||
return els && [...els];
|
||||
}
|
||||
function getDimensions(target, el) {
|
||||
const targetBox = getTargetBox(target);
|
||||
const elBox = nullifyTransforms(el);
|
||||
const [originX, originY] = getComputedStyle(el).transformOrigin.split(" ").map((v) => parseFloat(v));
|
||||
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue("--v-overlay-anchor-origin").split(" ");
|
||||
let offsetX = targetBox.left + targetBox.width / 2;
|
||||
if (anchorSide === "left" || anchorOffset === "left") offsetX -= targetBox.width / 2;
|
||||
else if (anchorSide === "right" || anchorOffset === "right") offsetX += targetBox.width / 2;
|
||||
let offsetY = targetBox.top + targetBox.height / 2;
|
||||
if (anchorSide === "top" || anchorOffset === "top") offsetY -= targetBox.height / 2;
|
||||
else if (anchorSide === "bottom" || anchorOffset === "bottom") offsetY += targetBox.height / 2;
|
||||
const tsx = targetBox.width / elBox.width;
|
||||
const tsy = targetBox.height / elBox.height;
|
||||
const maxs = Math.max(1, tsx, tsy);
|
||||
const sx = tsx / maxs || 0;
|
||||
const sy = tsy / maxs || 0;
|
||||
const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);
|
||||
const speed = asa > .12 ? Math.min(1.5, (asa - .12) * 10 + 1) : 1;
|
||||
return {
|
||||
x: offsetX - (originX + elBox.left),
|
||||
y: offsetY - (originY + elBox.top),
|
||||
sx,
|
||||
sy,
|
||||
speed
|
||||
};
|
||||
}
|
||||
createCssTransition("fab-transition", "center center", "out-in");
|
||||
createCssTransition("dialog-bottom-transition");
|
||||
createCssTransition("dialog-top-transition");
|
||||
var VFadeTransition = createCssTransition("fade-transition");
|
||||
var VScaleTransition = createCssTransition("scale-transition");
|
||||
createCssTransition("scroll-x-transition");
|
||||
createCssTransition("scroll-x-reverse-transition");
|
||||
createCssTransition("scroll-y-transition");
|
||||
createCssTransition("scroll-y-reverse-transition");
|
||||
createCssTransition("slide-x-transition");
|
||||
createCssTransition("slide-x-reverse-transition");
|
||||
var VSlideYTransition = createCssTransition("slide-y-transition");
|
||||
createCssTransition("slide-y-reverse-transition");
|
||||
var VExpandTransition = createJavascriptTransition("expand-transition", expand_transition_default());
|
||||
var VExpandXTransition = createJavascriptTransition("expand-x-transition", expand_transition_default("", "x"));
|
||||
createJavascriptTransition("expand-both-transition", expand_transition_default("", "both"));
|
||||
//#endregion
|
||||
export { VSlideYTransition as a, nullifyTransforms as c, VScaleTransition as i, VExpandXTransition as n, VDialogTransition as o, VFadeTransition as r, animate as s, VExpandTransition as t };
|
||||
|
||||
//# sourceMappingURL=transitions-DCQ3sjjZ.js.map
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user