import { computed, defineComponent, onMounted, type PropType, } from 'vue'; import type { BCMSMultiSelectItem, BCMSMultiSelectItemExtended, } from '../../types'; import { DefaultComponentProps } from '../_default'; import InputWrapper from './_input'; import BCMSImage from '../image'; import { useTranslation } from '../../translations'; const component = defineComponent({ props: { ...DefaultComponentProps, label: String, invalidText: String, helperText: String, addActionText: String, onlyOne: Boolean, title: String, items: { type: Array as PropType, required: true, }, }, emits: { change: (_items: BCMSMultiSelectItem[]) => { return true; }, }, setup(props, ctx) { const store = window.bcms.vue.store; const translations = computed(() => { return useTranslation(); }); const selectedItems = computed(() => props.items .filter((e) => e.selected) .map((e) => { if (e.imageId) { e.image = store.getters.media_findOne((m) => m._id === e.imageId); } return e; }) ); onMounted(async () => { await window.bcms.util.throwable(async () => { await window.bcms.sdk.media.getAll(); }); }); return () => ( ); }, }); export default component;