UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 7.17 kB
{"version":3,"file":"VSelectionControlGroup.mjs","names":["IconValue","makeDensityProps","makeThemeProps","provideDefaults","useProxiedModel","computed","onScopeDispose","provide","toRef","deepEqual","genericComponent","getUid","propsFactory","useRender","VSelectionControlGroupSymbol","Symbol","for","makeSelectionControlGroupProps","color","String","disabled","Boolean","error","id","inline","falseIcon","trueIcon","ripple","type","default","multiple","name","readonly","modelValue","valueComparator","Function","VSelectionControlGroup","props","defaultsTarget","emits","val","setup","slots","uid","value","updateHandlers","Set","forceUpdate","forEach","fn","onForceUpdate","cb","add","delete","density","Array","isArray","undefined"],"sources":["../../../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx"],"sourcesContent":["// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeThemeProps } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onScopeDispose, provide, toRef } from 'vue'\nimport { deepEqual, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport interface VSelectionGroupContext {\n modelValue: Ref<any>\n forceUpdate: () => void\n onForceUpdate: (fn: () => void) => void\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey<VSelectionGroupContext> = Symbol.for('vuetify:selection-control-group')\n\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: Boolean,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n name: String,\n readonly: Boolean,\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeThemeProps(),\n ...makeDensityProps(),\n}, 'v-selection-control-group')\n\nexport const VSelectionControlGroup = genericComponent()({\n name: 'VSelectionControlGroup',\n\n props: {\n defaultsTarget: {\n type: String,\n default: 'VSelectionControl',\n },\n\n ...makeSelectionControlGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n const updateHandlers = new Set<() => void>()\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn())\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb)\n onScopeDispose(() => {\n updateHandlers.delete(cb)\n })\n },\n })\n\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator'),\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-selection-control-group',\n { 'v-selection-control-group--inline': props.inline },\n ]}\n role={ props.type === 'radio' ? 'radiogroup' : undefined }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType<typeof VSelectionControlGroup>\n"],"mappings":"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"}