forked from jchomaz/Vulture
Tracking de l'application VApp (IHM du jeu)
This commit is contained in:
87
VApp/node_modules/vuetify/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs
generated
vendored
Normal file
87
VApp/node_modules/vuetify/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
import { createTextVNode as _createTextVNode, createVNode as _createVNode } from "vue";
|
||||
// Components
|
||||
import { VDataTableColumn } from "./VDataTableColumn.mjs";
|
||||
import { VBtn } from "../VBtn/index.mjs";
|
||||
import { VCheckboxBtn } from "../VCheckbox/index.mjs"; // Composables
|
||||
import { useGroupBy } from "./composables/group.mjs";
|
||||
import { useHeaders } from "./composables/headers.mjs";
|
||||
import { useSelection } from "./composables/select.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
|
||||
export const makeVDataTableGroupHeaderRowProps = propsFactory({
|
||||
item: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
}, 'VDataTableGroupHeaderRow');
|
||||
export const VDataTableGroupHeaderRow = genericComponent()({
|
||||
name: 'VDataTableGroupHeaderRow',
|
||||
props: makeVDataTableGroupHeaderRowProps(),
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
const {
|
||||
isGroupOpen,
|
||||
toggleGroup,
|
||||
extractRows
|
||||
} = useGroupBy();
|
||||
const {
|
||||
isSelected,
|
||||
isSomeSelected,
|
||||
select
|
||||
} = useSelection();
|
||||
const {
|
||||
columns
|
||||
} = useHeaders();
|
||||
const rows = computed(() => {
|
||||
return extractRows([props.item]);
|
||||
});
|
||||
return () => _createVNode("tr", {
|
||||
"class": "v-data-table-group-header-row",
|
||||
"style": {
|
||||
'--v-data-table-group-header-row-depth': props.item.depth
|
||||
}
|
||||
}, [columns.value.map(column => {
|
||||
if (column.key === 'data-table-group') {
|
||||
const icon = isGroupOpen(props.item) ? '$expand' : '$next';
|
||||
const onClick = () => toggleGroup(props.item);
|
||||
return slots['data-table-group']?.({
|
||||
item: props.item,
|
||||
count: rows.value.length,
|
||||
props: {
|
||||
icon,
|
||||
onClick
|
||||
}
|
||||
}) ?? _createVNode(VDataTableColumn, {
|
||||
"class": "v-data-table-group-header-row__column"
|
||||
}, {
|
||||
default: () => [_createVNode(VBtn, {
|
||||
"size": "small",
|
||||
"variant": "text",
|
||||
"icon": icon,
|
||||
"onClick": onClick
|
||||
}, null), _createVNode("span", null, [props.item.value]), _createVNode("span", null, [_createTextVNode("("), rows.value.length, _createTextVNode(")")])]
|
||||
});
|
||||
}
|
||||
if (column.key === 'data-table-select') {
|
||||
const modelValue = isSelected(rows.value);
|
||||
const indeterminate = isSomeSelected(rows.value) && !modelValue;
|
||||
const selectGroup = v => select(rows.value, v);
|
||||
return slots['data-table-select']?.({
|
||||
props: {
|
||||
modelValue,
|
||||
indeterminate,
|
||||
'onUpdate:modelValue': selectGroup
|
||||
}
|
||||
}) ?? _createVNode("td", null, [_createVNode(VCheckboxBtn, {
|
||||
"modelValue": modelValue,
|
||||
"indeterminate": indeterminate,
|
||||
"onUpdate:modelValue": selectGroup
|
||||
}, null)]);
|
||||
}
|
||||
return _createVNode("td", null, null);
|
||||
})]);
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VDataTableGroupHeaderRow.mjs.map
|
||||
Reference in New Issue
Block a user