init component

This commit is contained in:
Robin COuret
2026-02-16 17:28:37 +01:00
parent 460c7a25e0
commit e0e50af706
4557 changed files with 666911 additions and 8 deletions

98
node_modules/buetify/lib/components/table/BTableColumn.js generated vendored Executable file
View File

@@ -0,0 +1,98 @@
import { h, defineComponent, computed } from 'vue';
import VerticalExpansionIcon from '../icons/verticalExpansion/VerticalExpansionIcon';
import BTooltip from '../tooltip/BTooltip';
import { isBoolean, isString } from '../../utils/helpers';
import { useInjectedSortableTable } from './composables/useSortableTable';
function formatWidth(width, suffix = 'px') {
return isString(width) ? width : `${width}${suffix}`;
}
function useSortType(sortType, column) {
return column === undefined || isBoolean(column.sort) || column.sort === undefined ? sortType : column.sort.sortType ?? sortType;
}
export default defineComponent({
name: 'b-table-column',
props: {
column: {
type: Object,
required: true
}
},
setup(props, {
slots
}) {
const {
sortByMap,
isMultiple,
sortType,
updateSortColumn,
updateSortDirection
} = useInjectedSortableTable();
const isSortable = computed(() => !!props.column.sort);
const isSortColumn = computed(() => sortByMap.value.has(props.column.label));
const sortColumn = computed(() => sortByMap.value.get(props.column.label));
function updateColumn(e) {
e && e.stopPropagation();
updateSortColumn(props.column.label);
}
function onClick() {
if (isSortColumn.value) {
updateSortDirection(props.column.label);
} else {
updateColumn();
}
}
return () => {
const slot = slots[`header.${props.column.label}`] || slots.header;
const children = [];
if (slot) {
children.push(slot(props.column));
} else {
children.push(isString(props.column.detail) ? h(BTooltip, {
label: props.column.detail,
position: 'is-left'
}, () => props.column.label) : props.column.label);
}
if (isSortColumn.value) {
const type = useSortType(sortType.value, sortColumn.value);
const icon = slots['sort-icon'] ? slots['sort-icon']({
sortType: type
}) : h(VerticalExpansionIcon, {
isExpanded: useSortType(sortType.value, sortColumn.value) === 'Ascending'
});
if (isMultiple.value && sortColumn.value) {
children.push(icon, sortColumn.value.sortIndex + 1, h('button', {
class: 'delete is-small b-column-delete',
onClick: updateColumn
}));
} else {
children.push(icon);
}
}
return h('th', {
class: {
'is-sortable': isSortable.value,
'is-sticky-left': !!props.column.isSticky
},
onClick: isSortable.value ? onClick : undefined,
style: props.column.width !== undefined ? {
'min-width': formatWidth(props.column.width)
} : undefined
}, [h('div', {
class: ['th-wrap', props.column.position]
}, children)]);
};
}
});
//# sourceMappingURL=BTableColumn.js.map