UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 6.95 kB
{"version":3,"file":"VListGroup.mjs","names":["VDefaultsProvider","VExpandTransition","useList","IconValue","makeTagProps","useNestedGroupActivator","useNestedItem","computed","toRef","defineComponent","genericComponent","pick","propsFactory","useRender","VListGroupActivator","name","setup","_","slots","default","makeVListGroupProps","activeColor","String","color","collapseIcon","type","expandIcon","prependIcon","appendIcon","fluid","Boolean","subgroup","value","VListGroup","props","title","isOpen","open","id","_id","list","onClick","e","activatorProps","class","toggleIcon","hasPrepend","activator","VListItem","active","filterListGroupProps","Object","keys"],"sources":["../../../src/components/VList/VListGroup.tsx"],"sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { IconValue } from '@/composables/icons'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\n\nexport type VListGroupSlots = {\n default: []\n activator: [{ isOpen: boolean, props: Record<string, unknown> }]\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n activeColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n value: null,\n\n ...makeTagProps(),\n}, 'v-list-group')\n\nexport const VListGroup = genericComponent<VListGroupSlots>()({\n name: 'VListGroup',\n\n props: {\n title: String,\n\n ...makeVListGroupProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(toRef(props, 'value'), true)\n const id = computed(() => `v-list-group--id-${String(_id.value)}`)\n const list = useList()\n\n function onClick (e: Event) {\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n ) }\n\n <VExpandTransition>\n <div class=\"v-list-group__items\" role=\"group\" aria-labelledby={ id.value } v-show={ isOpen.value }>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VListGroup = InstanceType<typeof VListGroup>\n\nexport function filterListGroupProps (props: ExtractPropTypes<ReturnType<typeof makeVListGroupProps>>) {\n return pick(props, Object.keys(VListGroup.props) as any)\n}\n"],"mappings":"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"}