UNPKG

vuetify

Version:

Vue Material Component Framework

109 lines 3.2 kB
import { resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue"; // Components import { VDataTableGroupHeaderRow } from "./VDataTableGroupHeaderRow.mjs"; import { VDataTableRow } from "./VDataTableRow.mjs"; // Composables import { useLocale } from "../../composables/locale.mjs"; import { useExpanded } from "./composables/expand.mjs"; import { useHeaders } from "./composables/headers.mjs"; import { useSelection } from "./composables/select.mjs"; import { useGroupBy } from "./composables/group.mjs"; // Utilities import { genericComponent, useRender } from "../../util/index.mjs"; // Types export const VDataTableRows = genericComponent()({ name: 'VDataTableRows', props: { loading: [Boolean, String], loadingText: { type: String, default: '$vuetify.dataIterator.loadingText' }, hideNoData: Boolean, items: { type: Array, default: () => [] }, noDataText: { type: String, default: '$vuetify.noDataText' }, rowHeight: Number }, emits: { 'click:row': (event, value) => true }, setup(props, _ref) { let { emit, slots } = _ref; const { columns } = useHeaders(); const { expandOnClick, toggleExpand, isExpanded } = useExpanded(); const { isSelected, toggleSelect } = useSelection(); const { toggleGroup, isGroupOpen } = useGroupBy(); const { t } = useLocale(); useRender(() => _createVNode(_Fragment, null, [props.loading ? slots.loading?.() ?? _createVNode(VDataTableRow, { "class": "v-data-table-rows-no-data", "key": "loading" }, { default: () => [t(props.loadingText)] }) : undefined, !props.loading && !props.items.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VDataTableRow, { "class": "v-data-table-rows-no-data", "key": "no-data" }, { default: () => [t(props.noDataText)] })), props.items.map((item, index) => { if (item.type === 'group-header') { return slots['group-header'] ? slots['group-header']({ index, item, columns: columns.value, isExpanded, toggleExpand, isSelected, toggleSelect, toggleGroup, isGroupOpen }) : _createVNode(VDataTableGroupHeaderRow, { "key": `group-header_${item.id}`, "item": item }, slots); } const slotProps = { index, item, columns: columns.value, isExpanded, toggleExpand, isSelected, toggleSelect }; return _createVNode(_Fragment, null, [slots.item ? slots.item(slotProps) : _createVNode(VDataTableRow, { "key": `item_${item.value}`, "onClick": event => { if (expandOnClick.value) { toggleExpand(item.value); } emit('click:row', event, { item }); }, "item": item }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]); })])); return {}; } }); //# sourceMappingURL=VDataTableRows.mjs.map