Vue component multi-select widget (#2987)

This commit is contained in:
Chenlei Hu
2025-03-12 12:03:21 -04:00
committed by GitHub
parent aad7ded636
commit bcd76ba49b
8 changed files with 299 additions and 133 deletions

View File

@@ -0,0 +1,30 @@
<template>
<div>
<MultiSelect
v-model="selectedItems"
:options="options"
filter
:placeholder="placeholder"
:maxSelectedLabels="3"
:display="display"
class="w-full"
/>
</div>
</template>
<script setup lang="ts">
import MultiSelect from 'primevue/multiselect'
import type { ComboInputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2'
import type { ComponentWidget } from '@/scripts/domWidget'
const selectedItems = defineModel<string[]>({ required: true })
const { widget } = defineProps<{
widget: ComponentWidget<string[]>
}>()
const inputSpec = widget.inputSpec as ComboInputSpec
const options = inputSpec.options ?? []
const placeholder = inputSpec.multi_select?.placeholder ?? 'Select items'
const display = inputSpec.multi_select?.chip ? 'chip' : 'comma'
</script>