@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
65 lines (62 loc) • 2.07 kB
JavaScript
import { defineComponent, inject, computed, openBlock, createElementBlock, normalizeClass, renderSlot, createBlock, unref, createCommentVNode } from 'vue';
import '../../../hooks/index.mjs';
import { IconClose } from '../../icon/index.mjs';
import { chipProps, chipEmits } from './chip.mjs';
import { selectContextKey } from './tokens.mjs';
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
const __default__ = defineComponent({
name: "VsChip"
});
const _sfc_main = defineComponent({
...__default__,
props: chipProps,
emits: chipEmits,
setup(__props, { emit }) {
const props = __props;
const ns = useNamespace("chip");
const select = inject(selectContextKey);
const chipKls = computed(() => [
ns.b(),
ns.is("disabled", props.disabled),
ns.is("hit", props.hit),
ns.is(props.shape)
]);
const onClick = (e) => {
emit("click", e);
};
const onClose = (e) => {
emit("close", e);
};
const onMouseEnterClose = () => {
select.handleTarget("chip-close", !props.disabled);
};
const onMouseLeaveClose = () => {
select.handleTarget(null);
};
return (_ctx, _cache) => {
return openBlock(), createElementBlock(
"span",
{
class: normalizeClass(chipKls.value),
onClick
},
[
renderSlot(_ctx.$slots, "default"),
!_ctx.disabled && _ctx.showClose ? (openBlock(), createBlock(unref(IconClose), {
key: 0,
hover: "less",
scale: "0.5",
onClick: onClose,
onMouseenter: onMouseEnterClose,
onMouseleave: onMouseLeaveClose
})) : createCommentVNode("v-if", true)
],
2
);
};
}
});
var VsChip = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/select/src/chip.vue"]]);
export { VsChip as default };
//# sourceMappingURL=chip2.mjs.map