Files
routie/frontend/node_modules/.vite/deps/vuetify_components_VCard.js
T

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