352 lines
12 KiB
JavaScript
352 lines
12 KiB
JavaScript
import { Cn as withDirectives, Dt as mergeProps, M as Fragment, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, cr as toDisplayString, et as createVNode, gn as watch, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
|
import { _ as convertToUnit, o as provideDefaults, r as genericComponent, ut as propsFactory } from "./defineComponent-92h8LsW-.js";
|
|
import { t as makeComponentProps } from "./component-cNt7KGbA.js";
|
|
import { t as createSimpleFunctional } from "./createSimpleFunctional-CJfT4avK.js";
|
|
import { t as useRender } from "./useRender-kn3mcOTh.js";
|
|
import { i as provideTheme, r as makeThemeProps } from "./theme-CwW_z-RC.js";
|
|
import { t as makeTagProps } from "./tag-BzACG_PL.js";
|
|
import { t as VDefaultsProvider } from "./VDefaultsProvider-CTN39wwv.js";
|
|
import { n as useDimension, t as makeDimensionProps } from "./dimensions-BOUfezru.js";
|
|
import { t as VImg } from "./VImg-B3K_zKHG.js";
|
|
import { n as useRounded, t as makeRoundedProps } from "./rounded-zeYjdF6x.js";
|
|
import { n as useBorder, t as makeBorderProps } from "./border-BomwBLze.js";
|
|
import { n as useElevation, t as makeElevationProps } from "./elevation-B2sqdJV6.js";
|
|
import { n as useLocation, t as makeLocationProps } from "./location-Df6p1WYP.js";
|
|
import { n as useDensity, t as makeDensityProps } from "./density-D-xugoKB.js";
|
|
import { n as makeVariantProps, r as useVariant, t as genOverlays } from "./variant-CXhPdVre.js";
|
|
import { n as IconValue } from "./icons-BqOQHwEN.js";
|
|
import { t as VIcon } from "./VIcon-sEJi0XKP.js";
|
|
import { n as makeLoaderProps, r as useLoader, t as LoaderSlot } from "./loader-Cg-RQrUq.js";
|
|
import { n as usePosition, t as makePositionProps } from "./position-ew5Obs9G.js";
|
|
import { r as useLink, t as makeRouterProps } from "./router-CXIrojRO.js";
|
|
import { t as Ripple } from "./ripple-BcjS5Kg8.js";
|
|
import { t as VAvatar } from "./VAvatar-DdzLb6e_.js";
|
|
import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VCard/VCard.css";
|
|
//#region node_modules/vuetify/lib/components/VCard/VCardActions.js
|
|
var makeVCardActionsProps = propsFactory({
|
|
...makeComponentProps(),
|
|
...makeTagProps()
|
|
}, "VCardActions");
|
|
var VCardActions = genericComponent()({
|
|
name: "VCardActions",
|
|
props: makeVCardActionsProps(),
|
|
setup(props, { slots }) {
|
|
provideDefaults({ VBtn: {
|
|
slim: true,
|
|
variant: "text"
|
|
} });
|
|
useRender(() => createVNode(props.tag, {
|
|
"class": normalizeClass(["v-card-actions", props.class]),
|
|
"style": normalizeStyle(props.style)
|
|
}, slots));
|
|
return {};
|
|
}
|
|
});
|
|
//#endregion
|
|
//#region node_modules/vuetify/lib/components/VCard/VCardSubtitle.js
|
|
var makeVCardSubtitleProps = propsFactory({
|
|
opacity: [Number, String],
|
|
...makeComponentProps(),
|
|
...makeTagProps()
|
|
}, "VCardSubtitle");
|
|
var VCardSubtitle = genericComponent()({
|
|
name: "VCardSubtitle",
|
|
props: makeVCardSubtitleProps(),
|
|
setup(props, { slots }) {
|
|
useRender(() => createVNode(props.tag, {
|
|
"class": normalizeClass(["v-card-subtitle", props.class]),
|
|
"style": normalizeStyle([{ "--v-card-subtitle-opacity": props.opacity }, props.style])
|
|
}, slots));
|
|
return {};
|
|
}
|
|
});
|
|
//#endregion
|
|
//#region node_modules/vuetify/lib/components/VCard/VCardTitle.js
|
|
var VCardTitle = createSimpleFunctional("v-card-title");
|
|
//#endregion
|
|
//#region node_modules/vuetify/lib/components/VCard/VCardItem.js
|
|
var makeCardItemProps = propsFactory({
|
|
appendAvatar: String,
|
|
appendIcon: IconValue,
|
|
prependAvatar: String,
|
|
prependIcon: IconValue,
|
|
subtitle: {
|
|
type: [
|
|
String,
|
|
Number,
|
|
Boolean
|
|
],
|
|
default: void 0
|
|
},
|
|
title: {
|
|
type: [
|
|
String,
|
|
Number,
|
|
Boolean
|
|
],
|
|
default: void 0
|
|
},
|
|
...makeComponentProps(),
|
|
...makeDensityProps(),
|
|
...makeTagProps()
|
|
}, "VCardItem");
|
|
var VCardItem = genericComponent()({
|
|
name: "VCardItem",
|
|
props: makeCardItemProps(),
|
|
setup(props, { slots }) {
|
|
useRender(() => {
|
|
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
|
|
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
|
|
const hasAppend = !!(hasAppendMedia || slots.append);
|
|
const hasTitle = !!(props.title != null || slots.title);
|
|
const hasSubtitle = !!(props.subtitle != null || slots.subtitle);
|
|
return createVNode(props.tag, {
|
|
"class": normalizeClass(["v-card-item", props.class]),
|
|
"style": normalizeStyle(props.style)
|
|
}, { default: () => [
|
|
hasPrepend && createBaseVNode("div", {
|
|
"key": "prepend",
|
|
"class": "v-card-item__prepend"
|
|
}, [!slots.prepend ? createBaseVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
|
|
"key": "prepend-avatar",
|
|
"density": props.density,
|
|
"image": props.prependAvatar
|
|
}, null), props.prependIcon && createVNode(VIcon, {
|
|
"key": "prepend-icon",
|
|
"density": props.density,
|
|
"icon": props.prependIcon
|
|
}, null)]) : createVNode(VDefaultsProvider, {
|
|
"key": "prepend-defaults",
|
|
"disabled": !hasPrependMedia,
|
|
"defaults": {
|
|
VAvatar: {
|
|
density: props.density,
|
|
image: props.prependAvatar
|
|
},
|
|
VIcon: {
|
|
density: props.density,
|
|
icon: props.prependIcon
|
|
}
|
|
}
|
|
}, slots.prepend)]),
|
|
createBaseVNode("div", { "class": "v-card-item__content" }, [
|
|
hasTitle && createVNode(VCardTitle, { "key": "title" }, { default: () => [slots.title?.() ?? toDisplayString(props.title)] }),
|
|
hasSubtitle && createVNode(VCardSubtitle, { "key": "subtitle" }, { default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)] }),
|
|
slots.default?.()
|
|
]),
|
|
hasAppend && createBaseVNode("div", {
|
|
"key": "append",
|
|
"class": "v-card-item__append"
|
|
}, [!slots.append ? createBaseVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
|
|
"key": "append-icon",
|
|
"density": props.density,
|
|
"icon": props.appendIcon
|
|
}, null), props.appendAvatar && createVNode(VAvatar, {
|
|
"key": "append-avatar",
|
|
"density": props.density,
|
|
"image": props.appendAvatar
|
|
}, null)]) : createVNode(VDefaultsProvider, {
|
|
"key": "append-defaults",
|
|
"disabled": !hasAppendMedia,
|
|
"defaults": {
|
|
VAvatar: {
|
|
density: props.density,
|
|
image: props.appendAvatar
|
|
},
|
|
VIcon: {
|
|
density: props.density,
|
|
icon: props.appendIcon
|
|
}
|
|
}
|
|
}, slots.append)])
|
|
] });
|
|
});
|
|
return {};
|
|
}
|
|
});
|
|
//#endregion
|
|
//#region node_modules/vuetify/lib/components/VCard/VCardText.js
|
|
var makeVCardTextProps = propsFactory({
|
|
opacity: [Number, String],
|
|
...makeComponentProps(),
|
|
...makeTagProps()
|
|
}, "VCardText");
|
|
var VCardText = genericComponent()({
|
|
name: "VCardText",
|
|
props: makeVCardTextProps(),
|
|
setup(props, { slots }) {
|
|
useRender(() => createVNode(props.tag, {
|
|
"class": normalizeClass(["v-card-text", props.class]),
|
|
"style": normalizeStyle([{ "--v-card-text-opacity": props.opacity }, props.style])
|
|
}, slots));
|
|
return {};
|
|
}
|
|
});
|
|
//#endregion
|
|
//#region node_modules/vuetify/lib/components/VCard/VCard.js
|
|
var makeVCardProps = propsFactory({
|
|
appendAvatar: String,
|
|
appendIcon: IconValue,
|
|
disabled: Boolean,
|
|
flat: Boolean,
|
|
hover: Boolean,
|
|
image: String,
|
|
link: {
|
|
type: Boolean,
|
|
default: void 0
|
|
},
|
|
prependAvatar: String,
|
|
prependIcon: IconValue,
|
|
ripple: {
|
|
type: [Boolean, Object],
|
|
default: true
|
|
},
|
|
subtitle: {
|
|
type: [
|
|
String,
|
|
Number,
|
|
Boolean
|
|
],
|
|
default: void 0
|
|
},
|
|
text: {
|
|
type: [
|
|
String,
|
|
Number,
|
|
Boolean
|
|
],
|
|
default: void 0
|
|
},
|
|
title: {
|
|
type: [
|
|
String,
|
|
Number,
|
|
Boolean
|
|
],
|
|
default: void 0
|
|
},
|
|
...makeBorderProps(),
|
|
...makeComponentProps(),
|
|
...makeDensityProps(),
|
|
...makeDimensionProps(),
|
|
...makeElevationProps(),
|
|
...makeLoaderProps(),
|
|
...makeLocationProps(),
|
|
...makePositionProps(),
|
|
...makeRoundedProps(),
|
|
...makeRouterProps(),
|
|
...makeTagProps(),
|
|
...makeThemeProps(),
|
|
...makeVariantProps({ variant: "elevated" })
|
|
}, "VCard");
|
|
var VCard = genericComponent()({
|
|
name: "VCard",
|
|
directives: { vRipple: Ripple },
|
|
props: makeVCardProps(),
|
|
setup(props, { attrs, slots }) {
|
|
const { themeClasses } = provideTheme(props);
|
|
const { borderClasses } = useBorder(props);
|
|
const { colorClasses, colorStyles, variantClasses } = useVariant(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 link = useLink(props, attrs);
|
|
const loadingColor = shallowRef(void 0);
|
|
watch(() => props.loading, (val, old) => {
|
|
loadingColor.value = !val && typeof old === "string" ? old : typeof val === "boolean" ? void 0 : val;
|
|
}, { immediate: true });
|
|
useRender(() => {
|
|
const isLink = props.link !== false && link.isLink.value;
|
|
const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
|
|
const Tag = isLink ? "a" : props.tag;
|
|
const hasTitle = !!(slots.title || props.title != null);
|
|
const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
|
|
const hasHeader = hasTitle || hasSubtitle;
|
|
const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);
|
|
const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);
|
|
const hasImage = !!(slots.image || props.image);
|
|
const hasCardItem = hasHeader || hasPrepend || hasAppend;
|
|
const hasText = !!(slots.text || props.text != null);
|
|
return withDirectives(createVNode(Tag, mergeProps(link.linkProps, {
|
|
"class": [
|
|
"v-card",
|
|
{
|
|
"v-card--disabled": props.disabled,
|
|
"v-card--flat": props.flat,
|
|
"v-card--hover": props.hover && !(props.disabled || props.flat),
|
|
"v-card--link": isClickable
|
|
},
|
|
themeClasses.value,
|
|
borderClasses.value,
|
|
colorClasses.value,
|
|
densityClasses.value,
|
|
elevationClasses.value,
|
|
loaderClasses.value,
|
|
positionClasses.value,
|
|
roundedClasses.value,
|
|
variantClasses.value,
|
|
props.class
|
|
],
|
|
"style": [
|
|
colorStyles.value,
|
|
dimensionStyles.value,
|
|
locationStyles.value,
|
|
{ "--v-card-height": convertToUnit(props.height) },
|
|
props.style
|
|
],
|
|
"onClick": isClickable && link.navigate.value,
|
|
"tabindex": props.disabled ? -1 : void 0
|
|
}), { default: () => [
|
|
hasImage && createBaseVNode("div", {
|
|
"key": "image",
|
|
"class": "v-card__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(LoaderSlot, {
|
|
"name": "v-card",
|
|
"active": !!props.loading,
|
|
"color": loadingColor.value
|
|
}, { default: slots.loader }),
|
|
hasCardItem && createVNode(VCardItem, {
|
|
"key": "item",
|
|
"prependAvatar": props.prependAvatar,
|
|
"prependIcon": props.prependIcon,
|
|
"title": props.title,
|
|
"subtitle": props.subtitle,
|
|
"appendAvatar": props.appendAvatar,
|
|
"appendIcon": props.appendIcon
|
|
}, {
|
|
default: slots.item,
|
|
prepend: slots.prepend,
|
|
title: slots.title,
|
|
subtitle: slots.subtitle,
|
|
append: slots.append
|
|
}),
|
|
hasText && createVNode(VCardText, { "key": "text" }, { default: () => [slots.text?.() ?? props.text] }),
|
|
slots.default?.(),
|
|
slots.actions && createVNode(VCardActions, null, { default: slots.actions }),
|
|
genOverlays(isClickable, "v-card")
|
|
] }), [[Ripple, isClickable && props.ripple]]);
|
|
});
|
|
return {};
|
|
}
|
|
});
|
|
//#endregion
|
|
export { VCard, VCardActions, VCardItem, VCardSubtitle, VCardText, VCardTitle };
|
|
|
|
//# sourceMappingURL=vuetify_components_VCard.js.map
|