UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 6.22 kB
{"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","propsFactory","useRender","makeVDataTableRowProps","index","Number","item","Object","onClick","Function","VDataTableRow","name","props","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps","selectable"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const makeVDataTableRowProps = propsFactory({\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n}, 'VDataTableRow')\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: makeVDataTableRowProps(),\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { columns } = useHeaders()\n\n useRender(() => (\n <tr\n class={[\n 'v-data-table__tr',\n {\n 'v-data-table__tr--clickable': !!props.onClick,\n },\n ]}\n onClick={ props.onClick }\n >\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n disabled={ !item.selectable }\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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"}