Files
music-admin/.output/server/chunks/build/VChip-DNdty0q7.mjs
poptong 83b162d2bd
Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled
🔧 웹훅 URL을 HTTPS로 수정
- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경
- Nginx 리버스 프록시 설정 파일 추가
- 배포 가이드 업데이트
2025-10-01 01:47:51 +09:00

330 lines
11 KiB
JavaScript

import { computed, withDirectives, createVNode, mergeProps, vShow, Fragment, resolveDirective, toRef } from 'vue';
import { a as VExpandXTransition } from './index-BNHdF426.mjs';
import { m as makeVSlideGroupProps, d as VSlideGroup } from './VTabs-BaH4QY_R.mjs';
import { g as genericComponent, p as propsFactory, af as Ripple, l as useLocale, ag as useBorder, ah as useVariant, ai as useDensity, aj as useElevation, ak as useRounded, al as useSize, F as provideTheme, n as useProxiedModel, am as useGroupItem, an as useLink, ao as genOverlays, s as VIcon, y as VDefaultsProvider, v as VAvatar, J as makeVariantProps, K as makeThemeProps, L as makeTagProps, M as makeSizeProps, ap as makeRouterProps, N as makeRoundedProps, aq as makeGroupItemProps, O as makeElevationProps, P as makeDensityProps, m as makeComponentProps, Q as makeBorderProps, a2 as EventProp, I as IconValue, ad as makeGroupProps, U as deepEqual, ae as useGroup, G as provideDefaults, a as useRender } from './server.mjs';
const VChipGroupSymbol = Symbol.for("vuetify:v-chip-group");
const makeVChipGroupProps = propsFactory({
column: Boolean,
filter: Boolean,
valueComparator: {
type: Function,
default: deepEqual
},
...makeVSlideGroupProps(),
...makeComponentProps(),
...makeGroupProps({
selectedClass: "v-chip--selected"
}),
...makeTagProps(),
...makeThemeProps(),
...makeVariantProps({
variant: "tonal"
})
}, "VChipGroup");
genericComponent()({
name: "VChipGroup",
props: makeVChipGroupProps(),
emits: {
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
slots
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
isSelected,
select,
next,
prev,
selected
} = useGroup(props, VChipGroupSymbol);
provideDefaults({
VChip: {
color: toRef(props, "color"),
disabled: toRef(props, "disabled"),
filter: toRef(props, "filter"),
variant: toRef(props, "variant")
}
});
useRender(() => {
const slideGroupProps = VSlideGroup.filterProps(props);
return createVNode(VSlideGroup, mergeProps(slideGroupProps, {
"class": ["v-chip-group", {
"v-chip-group--column": props.column
}, themeClasses.value, props.class],
"style": props.style
}), {
default: () => {
var _a;
return [(_a = slots.default) == null ? void 0 : _a.call(slots, {
isSelected,
select,
next,
prev,
selected: selected.value
})];
}
});
});
return {};
}
});
const makeVChipProps = propsFactory({
activeClass: String,
appendAvatar: String,
appendIcon: IconValue,
closable: Boolean,
closeIcon: {
type: IconValue,
default: "$delete"
},
closeLabel: {
type: String,
default: "$vuetify.close"
},
draggable: Boolean,
filter: Boolean,
filterIcon: {
type: IconValue,
default: "$complete"
},
label: Boolean,
link: {
type: Boolean,
default: void 0
},
pill: Boolean,
prependAvatar: String,
prependIcon: IconValue,
ripple: {
type: [Boolean, Object],
default: true
},
text: String,
modelValue: {
type: Boolean,
default: true
},
onClick: EventProp(),
onClickOnce: EventProp(),
...makeBorderProps(),
...makeComponentProps(),
...makeDensityProps(),
...makeElevationProps(),
...makeGroupItemProps(),
...makeRoundedProps(),
...makeRouterProps(),
...makeSizeProps(),
...makeTagProps({
tag: "span"
}),
...makeThemeProps(),
...makeVariantProps({
variant: "tonal"
})
}, "VChip");
const VChip = genericComponent()({
name: "VChip",
directives: {
Ripple
},
props: makeVChipProps(),
emits: {
"click:close": (e) => true,
"update:modelValue": (value) => true,
"group:selected": (val) => true,
click: (e) => true
},
setup(props, _ref) {
let {
attrs,
emit,
slots
} = _ref;
const {
t
} = useLocale();
const {
borderClasses
} = useBorder(props);
const {
colorClasses,
colorStyles,
variantClasses
} = useVariant(props);
const {
densityClasses
} = useDensity(props);
const {
elevationClasses
} = useElevation(props);
const {
roundedClasses
} = useRounded(props);
const {
sizeClasses
} = useSize(props);
const {
themeClasses
} = provideTheme(props);
const isActive = useProxiedModel(props, "modelValue");
const group = useGroupItem(props, VChipGroupSymbol, false);
const link = useLink(props, attrs);
const isLink = computed(() => props.link !== false && link.isLink.value);
const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
const closeProps = computed(() => ({
"aria-label": t(props.closeLabel),
onClick(e) {
e.preventDefault();
e.stopPropagation();
isActive.value = false;
emit("click:close", e);
}
}));
function onClick(e) {
var _a;
emit("click", e);
if (!isClickable.value) return;
(_a = link.navigate) == null ? void 0 : _a.call(link, e);
group == null ? void 0 : group.toggle();
}
function onKeyDown(e) {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
onClick(e);
}
}
return () => {
var _a;
const Tag = link.isLink.value ? "a" : props.tag;
const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);
const hasAppend = !!(hasAppendMedia || slots.append);
const hasClose = !!(slots.close || props.closable);
const hasFilter = !!(slots.filter || props.filter) && group;
const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
const hasPrepend = !!(hasPrependMedia || slots.prepend);
const hasColor = !group || group.isSelected.value;
return isActive.value && withDirectives(createVNode(Tag, mergeProps({
"class": ["v-chip", {
"v-chip--disabled": props.disabled,
"v-chip--label": props.label,
"v-chip--link": isClickable.value,
"v-chip--filter": hasFilter,
"v-chip--pill": props.pill,
[`${props.activeClass}`]: props.activeClass && ((_a = link.isActive) == null ? void 0 : _a.value)
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : void 0, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group == null ? void 0 : group.selectedClass.value, props.class],
"style": [hasColor ? colorStyles.value : void 0, props.style],
"disabled": props.disabled || void 0,
"draggable": props.draggable,
"tabindex": isClickable.value ? 0 : void 0,
"onClick": onClick,
"onKeydown": isClickable.value && !isLink.value && onKeyDown
}, link.linkProps), {
default: () => {
var _a3;
var _a2;
return [genOverlays(isClickable.value, "v-chip"), hasFilter && createVNode(VExpandXTransition, {
"key": "filter"
}, {
default: () => [withDirectives(createVNode("div", {
"class": "v-chip__filter"
}, [!slots.filter ? createVNode(VIcon, {
"key": "filter-icon",
"icon": props.filterIcon
}, null) : createVNode(VDefaultsProvider, {
"key": "filter-defaults",
"disabled": !props.filterIcon,
"defaults": {
VIcon: {
icon: props.filterIcon
}
}
}, slots.filter)]), [[vShow, group.isSelected.value]])]
}), hasPrepend && createVNode("div", {
"key": "prepend",
"class": "v-chip__prepend"
}, [!slots.prepend ? createVNode(Fragment, null, [props.prependIcon && createVNode(VIcon, {
"key": "prepend-icon",
"icon": props.prependIcon,
"start": true
}, null), props.prependAvatar && createVNode(VAvatar, {
"key": "prepend-avatar",
"image": props.prependAvatar,
"start": true
}, null)]) : createVNode(VDefaultsProvider, {
"key": "prepend-defaults",
"disabled": !hasPrependMedia,
"defaults": {
VAvatar: {
image: props.prependAvatar,
start: true
},
VIcon: {
icon: props.prependIcon,
start: true
}
}
}, slots.prepend)]), createVNode("div", {
"class": "v-chip__content",
"data-no-activator": ""
}, [(_a3 = (_a2 = slots.default) == null ? void 0 : _a2.call(slots, {
isSelected: group == null ? void 0 : group.isSelected.value,
selectedClass: group == null ? void 0 : group.selectedClass.value,
select: group == null ? void 0 : group.select,
toggle: group == null ? void 0 : group.toggle,
value: group == null ? void 0 : group.value.value,
disabled: props.disabled
})) != null ? _a3 : props.text]), hasAppend && createVNode("div", {
"key": "append",
"class": "v-chip__append"
}, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
"key": "append-icon",
"end": true,
"icon": props.appendIcon
}, null), props.appendAvatar && createVNode(VAvatar, {
"key": "append-avatar",
"end": true,
"image": props.appendAvatar
}, null)]) : createVNode(VDefaultsProvider, {
"key": "append-defaults",
"disabled": !hasAppendMedia,
"defaults": {
VAvatar: {
end: true,
image: props.appendAvatar
},
VIcon: {
end: true,
icon: props.appendIcon
}
}
}, slots.append)]), hasClose && createVNode("button", mergeProps({
"key": "close",
"class": "v-chip__close",
"type": "button",
"data-testid": "close-chip"
}, closeProps.value), [!slots.close ? createVNode(VIcon, {
"key": "close-icon",
"icon": props.closeIcon,
"size": "x-small"
}, null) : createVNode(VDefaultsProvider, {
"key": "close-defaults",
"defaults": {
VIcon: {
icon: props.closeIcon,
size: "x-small"
}
}
}, slots.close)])];
}
}), [[resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
};
}
});
export { VChip as V };