ropav 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/autocomplete/autocomplete-root.js +3 -1
- package/dist/components/autocomplete/index.d.ts +3 -0
- package/dist/components/breadcrumbs/breadcrumbs-item.js +1 -0
- package/dist/components/breadcrumbs/index.d.ts +1 -0
- package/dist/components/calendar/index.d.ts +5 -3
- package/dist/components/calendar-year-picker/index.d.ts +4 -2
- package/dist/components/checkbox/checkbox-content.js +1 -1
- package/dist/components/color-field/index.d.ts +1 -0
- package/dist/components/color-input-group/color-input-group-root.js +2 -0
- package/dist/components/color-input-group/color-input-group.types.d.ts +2 -0
- package/dist/components/color-input-group/index.d.ts +2 -0
- package/dist/components/combo-box/combo-box-root.js +9 -2
- package/dist/components/combo-box/combo-box.types.d.ts +3 -0
- package/dist/components/combo-box/index.d.ts +3 -0
- package/dist/components/date-field/index.d.ts +1 -0
- package/dist/components/date-input-group/date-input-group-root.js +2 -0
- package/dist/components/date-input-group/date-input-group-segment.js +1 -1
- package/dist/components/date-input-group/date-input-group.types.d.ts +2 -0
- package/dist/{composables → components/date-input-group}/use-date-segment.d.ts +2 -2
- package/dist/{composables → components/date-input-group}/use-date-segment.js +9 -9
- package/dist/components/date-range-picker/date-range-picker-root.js +1 -1
- package/dist/components/date-range-picker/index.d.ts +15 -14
- package/dist/{composables → components/date-range-picker}/use-date-range-picker.d.ts +7 -7
- package/dist/{composables → components/date-range-picker}/use-date-range-picker.js +10 -10
- package/dist/components/drawer/drawer-dialog.js +1 -1
- package/dist/{composables → components/drawer}/use-drawer-drag.d.ts +1 -1
- package/dist/{composables → components/drawer}/use-drawer-drag.js +1 -1
- package/dist/components/drop-zone/drop-zone-root.d.ts +23 -0
- package/dist/components/drop-zone/drop-zone-root.js +153 -0
- package/dist/components/drop-zone/drop-zone-trigger.d.ts +21 -0
- package/dist/components/drop-zone/drop-zone-trigger.js +20 -0
- package/dist/components/drop-zone/drop-zone.accept.d.ts +19 -0
- package/dist/components/drop-zone/drop-zone.accept.js +28 -0
- package/dist/components/drop-zone/drop-zone.context.d.ts +6 -0
- package/dist/components/drop-zone/drop-zone.context.js +5 -0
- package/dist/components/drop-zone/drop-zone.types.d.ts +30 -0
- package/dist/components/drop-zone/index.d.ts +86 -0
- package/dist/components/drop-zone/index.js +11 -0
- package/dist/components/dropdown/dropdown-menu.js +1 -0
- package/dist/components/dropdown/dropdown-submenu-trigger.js +1 -1
- package/dist/components/dropdown/index.d.ts +4 -2
- package/dist/{composables → components/dropdown}/use-safely-mouse-to-submenu.js +1 -1
- package/dist/components/icons/icon-overlay-arrow.js +1 -1
- package/dist/components/index.d.ts +5 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/input-root.js +3 -0
- package/dist/components/input/input.types.d.ts +5 -0
- package/dist/components/input-group/index.d.ts +2 -0
- package/dist/components/input-group/input-group-root.js +3 -0
- package/dist/components/input-group/input-group.types.d.ts +5 -0
- package/dist/components/input-otp/index.d.ts +6 -4
- package/dist/components/link/index.d.ts +2 -0
- package/dist/components/link/link-root.js +22 -5
- package/dist/components/link/link.types.d.ts +14 -3
- package/dist/{composables → components/list-box}/drag-collection.d.ts +2 -2
- package/dist/{composables → components/list-box}/drag-collection.js +1 -1
- package/dist/components/list-box/index.d.ts +4 -0
- package/dist/components/list-box/list-box-root.js +53 -32
- package/dist/components/list-box/list-box.types.d.ts +2 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/menu-root.js +5 -1
- package/dist/components/menu/menu.types.d.ts +3 -0
- package/dist/components/number-field/index.d.ts +3 -0
- package/dist/components/number-field/number-field-root.js +2 -0
- package/dist/components/number-field/number-field.types.d.ts +2 -0
- package/dist/components/overlay/overlay-arrow.js +64 -11
- package/dist/components/progress-bar/index.d.ts +4 -0
- package/dist/components/progress-bar/progress-bar-root.js +4 -0
- package/dist/components/progress-bar/progress-bar.types.d.ts +7 -0
- package/dist/components/radio/radio-content.js +1 -1
- package/dist/components/range-calendar/index.d.ts +18 -15
- package/dist/components/router-provider/index.d.ts +5 -0
- package/dist/components/router-provider/index.js +3 -0
- package/dist/components/router-provider/router-provider.context.d.ts +40 -0
- package/dist/components/router-provider/router-provider.context.js +16 -0
- package/dist/components/router-provider/router-provider.d.ts +21 -0
- package/dist/components/router-provider/router-provider.js +22 -0
- package/dist/components/router-provider/router-provider.types.d.ts +23 -0
- package/dist/components/scroll-shadow/use-scroll-shadow.js +25 -1
- package/dist/components/search-field/index.d.ts +2 -0
- package/dist/components/search-field/search-field-root.js +3 -1
- package/dist/components/search-field/search-field.types.d.ts +2 -0
- package/dist/{composables → components/search-field}/use-search-field.d.ts +2 -2
- package/dist/{composables → components/search-field}/use-search-field.js +3 -3
- package/dist/components/segmented-control/index.d.ts +134 -0
- package/dist/components/segmented-control/index.js +15 -0
- package/dist/components/segmented-control/segmented-control-indicator.d.ts +19 -0
- package/dist/components/segmented-control/segmented-control-indicator.js +36 -0
- package/dist/components/segmented-control/segmented-control-item.d.ts +21 -0
- package/dist/components/segmented-control/segmented-control-item.js +96 -0
- package/dist/components/segmented-control/segmented-control-root.d.ts +25 -0
- package/dist/components/segmented-control/segmented-control-root.js +112 -0
- package/dist/components/segmented-control/segmented-control-separator.d.ts +19 -0
- package/dist/components/segmented-control/segmented-control-separator.js +18 -0
- package/dist/components/segmented-control/segmented-control.context.d.ts +17 -0
- package/dist/components/segmented-control/segmented-control.context.js +12 -0
- package/dist/components/segmented-control/segmented-control.types.d.ts +67 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/select-hidden-select.js +1 -1
- package/dist/components/select/select-root.js +2 -0
- package/dist/components/select/select.types.d.ts +2 -0
- package/dist/components/sidebar/index.d.ts +546 -0
- package/dist/components/sidebar/index.js +47 -0
- package/dist/components/sidebar/sidebar-collapsible-trigger.d.ts +21 -0
- package/dist/components/sidebar/sidebar-collapsible-trigger.js +70 -0
- package/dist/components/sidebar/sidebar-collapsible.d.ts +24 -0
- package/dist/components/sidebar/sidebar-collapsible.js +78 -0
- package/dist/components/sidebar/sidebar-content.d.ts +21 -0
- package/dist/components/sidebar/sidebar-content.js +37 -0
- package/dist/components/sidebar/sidebar-footer.d.ts +21 -0
- package/dist/components/sidebar/sidebar-footer.js +24 -0
- package/dist/components/sidebar/sidebar-group-label.d.ts +21 -0
- package/dist/components/sidebar/sidebar-group-label.js +32 -0
- package/dist/components/sidebar/sidebar-group.d.ts +21 -0
- package/dist/components/sidebar/sidebar-group.js +48 -0
- package/dist/components/sidebar/sidebar-header.d.ts +21 -0
- package/dist/components/sidebar/sidebar-header.js +24 -0
- package/dist/components/sidebar/sidebar-inset.d.ts +21 -0
- package/dist/components/sidebar/sidebar-inset.js +24 -0
- package/dist/components/sidebar/sidebar-item-icon.d.ts +21 -0
- package/dist/components/sidebar/sidebar-item-icon.js +20 -0
- package/dist/components/sidebar/sidebar-item-indicator.d.ts +21 -0
- package/dist/components/sidebar/sidebar-item-indicator.js +48 -0
- package/dist/components/sidebar/sidebar-item-label.d.ts +21 -0
- package/dist/components/sidebar/sidebar-item-label.js +28 -0
- package/dist/components/sidebar/sidebar-item-tooltip.d.ts +21 -0
- package/dist/components/sidebar/sidebar-item-tooltip.js +38 -0
- package/dist/components/sidebar/sidebar-item-trailing.d.ts +21 -0
- package/dist/components/sidebar/sidebar-item-trailing.js +28 -0
- package/dist/components/sidebar/sidebar-item.d.ts +23 -0
- package/dist/components/sidebar/sidebar-item.js +160 -0
- package/dist/components/sidebar/sidebar-panel.d.ts +21 -0
- package/dist/components/sidebar/sidebar-panel.js +88 -0
- package/dist/components/sidebar/sidebar-rail.d.ts +21 -0
- package/dist/components/sidebar/sidebar-rail.js +210 -0
- package/dist/components/sidebar/sidebar-root.d.ts +31 -0
- package/dist/components/sidebar/sidebar-root.js +140 -0
- package/dist/components/sidebar/sidebar-separator.d.ts +19 -0
- package/dist/components/sidebar/sidebar-separator.js +16 -0
- package/dist/components/sidebar/sidebar-sub-menu.d.ts +23 -0
- package/dist/components/sidebar/sidebar-sub-menu.js +40 -0
- package/dist/components/sidebar/sidebar-trigger.d.ts +21 -0
- package/dist/components/sidebar/sidebar-trigger.js +69 -0
- package/dist/components/sidebar/sidebar.context.d.ts +75 -0
- package/dist/components/sidebar/sidebar.context.js +30 -0
- package/dist/components/sidebar/sidebar.state.d.ts +73 -0
- package/dist/components/sidebar/sidebar.state.js +76 -0
- package/dist/components/sidebar/sidebar.storage.d.ts +8 -0
- package/dist/components/sidebar/sidebar.storage.js +45 -0
- package/dist/components/sidebar/sidebar.types.d.ts +273 -0
- package/dist/components/splitter/index.d.ts +143 -0
- package/dist/components/splitter/index.js +13 -0
- package/dist/components/splitter/splitter-handle.d.ts +21 -0
- package/dist/components/splitter/splitter-handle.js +209 -0
- package/dist/components/splitter/splitter-panel.d.ts +21 -0
- package/dist/components/splitter/splitter-panel.js +70 -0
- package/dist/components/splitter/splitter-root.d.ts +31 -0
- package/dist/components/splitter/splitter-root.js +152 -0
- package/dist/components/splitter/splitter.context.d.ts +15 -0
- package/dist/components/splitter/splitter.context.js +5 -0
- package/dist/components/splitter/splitter.state.d.ts +87 -0
- package/dist/components/splitter/splitter.state.js +322 -0
- package/dist/components/splitter/splitter.storage.d.ts +15 -0
- package/dist/components/splitter/splitter.storage.js +56 -0
- package/dist/components/splitter/splitter.types.d.ts +98 -0
- package/dist/components/switch/switch-content.js +1 -1
- package/dist/components/table/index.d.ts +10 -9
- package/dist/components/table/table-body.js +13 -13
- package/dist/components/table/table-cell.js +49 -46
- package/dist/components/table/table-column-resizer.js +1 -1
- package/dist/components/table/table-column.js +1 -1
- package/dist/components/table/table-content.js +37 -18
- package/dist/{composables → components/table}/table-drag-collection.d.ts +1 -1
- package/dist/{composables → components/table}/table-drag-collection.js +1 -1
- package/dist/components/table/table-drop-indicator.js +3 -1
- package/dist/components/table/table-resizable-container.d.ts +4 -5
- package/dist/components/table/table-row.js +45 -14
- package/dist/components/table/table-virtualizer-item.d.ts +2 -7
- package/dist/components/table/table-virtualizer-item.js +20 -9
- package/dist/components/table/table.context.d.ts +11 -3
- package/dist/components/table/table.types.d.ts +1 -1
- package/dist/{composables → components/table}/use-grid-keyboard.d.ts +3 -3
- package/dist/{composables → components/table}/use-grid-keyboard.js +57 -55
- package/dist/{composables → components/table}/use-grid-selection-announcement.d.ts +2 -2
- package/dist/{composables → components/table}/use-grid-selection-announcement.js +2 -2
- package/dist/{composables → components/table}/use-table-collection.d.ts +2 -2
- package/dist/{composables → components/table}/use-table-collection.js +4 -4
- package/dist/{composables → components/table}/use-table-column-layout.d.ts +13 -20
- package/dist/components/table/use-table-column-layout.js +115 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/textarea-root.js +3 -0
- package/dist/components/textarea/textarea.types.d.ts +5 -0
- package/dist/components/textfield/index.d.ts +2 -0
- package/dist/components/textfield/textfield-root.js +5 -1
- package/dist/components/textfield/textfield.context.d.ts +2 -0
- package/dist/components/textfield/textfield.types.d.ts +5 -0
- package/dist/components/time-field/index.d.ts +1 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/toast-default-content.js +1 -1
- package/dist/components/toolbar/index.d.ts +3 -2
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooltip/tooltip-root.js +1 -1
- package/dist/components/virtualizer/index.d.ts +3 -1
- package/dist/components/virtualizer/index.js +2 -1
- package/dist/components/virtualizer/use-virtualizer-item.d.ts +23 -0
- package/dist/components/virtualizer/use-virtualizer-item.js +45 -0
- package/dist/components/virtualizer/virtualizer-item.js +7 -41
- package/dist/components/virtualizer/virtualizer-scrollbar-track.d.ts +20 -0
- package/dist/components/virtualizer/virtualizer-scrollbar-track.js +141 -0
- package/dist/components/virtualizer/virtualizer-scrollbar.d.ts +18 -0
- package/dist/components/virtualizer/virtualizer-scrollbar.js +55 -0
- package/dist/components/virtualizer/virtualizer.context.d.ts +17 -1
- package/dist/composables/drag-manager.js +1 -13
- package/dist/composables/index.d.ts +3 -70
- package/dist/composables/use-collection.d.ts +22 -3
- package/dist/composables/use-collection.js +67 -14
- package/dist/composables/use-color-area.js +2 -2
- package/dist/composables/use-color-field.js +1 -1
- package/dist/composables/use-combo-box.js +1 -1
- package/dist/composables/use-date-field.js +1 -1
- package/dist/composables/use-drag.d.ts +6 -5
- package/dist/composables/use-draggable-item.d.ts +2 -2
- package/dist/composables/use-droppable-collection.js +3 -3
- package/dist/composables/use-droppable-item.js +1 -1
- package/dist/composables/use-form-reset.d.ts +6 -2
- package/dist/composables/use-form-reset.js +9 -5
- package/dist/composables/use-list-keyboard.js +64 -62
- package/dist/composables/use-number-field.js +1 -1
- package/dist/composables/use-select.js +2 -2
- package/dist/composables/use-selection-manager.js +4 -4
- package/dist/composables/use-single-select-list-state.d.ts +37 -0
- package/dist/composables/use-single-select-list-state.js +110 -0
- package/dist/composables/use-slider-thumb.js +2 -2
- package/dist/composables/use-slider.js +1 -1
- package/dist/composables/use-tab-list-state.d.ts +10 -29
- package/dist/composables/use-tab-list-state.js +10 -99
- package/dist/composables/use-text-field.js +1 -1
- package/dist/composables/use-virtualizer-scroll.d.ts +52 -2
- package/dist/composables/use-virtualizer-scroll.js +79 -13
- package/dist/composables/use-virtualizer.d.ts +24 -4
- package/dist/composables/use-virtualizer.js +40 -6
- package/dist/index.js +60 -83
- package/dist/utils/document-order.d.ts +14 -0
- package/dist/utils/document-order.js +17 -0
- package/dist/utils/flex-sizing.d.ts +41 -0
- package/dist/utils/flex-sizing.js +140 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/open-link.d.ts +31 -0
- package/dist/utils/open-link.js +32 -0
- package/dist/utils/story-truncation.d.ts +20 -0
- package/dist/utils/story-users.d.ts +11 -0
- package/dist/utils/virtualizer-collection.d.ts +14 -4
- package/dist/utils/virtualizer-collection.js +9 -14
- package/dist/utils/virtualizer-layout-info.js +3 -2
- package/dist/utils/virtualizer-list-layout.d.ts +75 -29
- package/dist/utils/virtualizer-list-layout.js +182 -99
- package/dist/utils/virtualizer-offsets.d.ts +111 -0
- package/dist/utils/virtualizer-offsets.js +159 -0
- package/dist/utils/virtualizer-overscan.d.ts +9 -15
- package/dist/utils/virtualizer-overscan.js +14 -33
- package/dist/utils/virtualizer-table-layout.d.ts +50 -21
- package/dist/utils/virtualizer-table-layout.js +130 -89
- package/dist/version.js +1 -1
- package/package.json +25 -5
- package/dist/composables/use-table-column-layout.js +0 -214
- /package/dist/{composables → components/dropdown}/use-safely-mouse-to-submenu.d.ts +0 -0
|
@@ -3,10 +3,10 @@ import { dataAttr } from "../../utils/assertion.js";
|
|
|
3
3
|
import { useId as useId$1 } from "../../composables/use-id.js";
|
|
4
4
|
import { useInteractionStates } from "../../composables/use-interaction-states.js";
|
|
5
5
|
import { getCollectionTextValue } from "../../utils/text-value.js";
|
|
6
|
+
import { useVirtualizerItem } from "../virtualizer/use-virtualizer-item.js";
|
|
6
7
|
import { useTableContext, useTableGridContext, useTableRowContext, useTableVirtualizerContext } from "./table.context.js";
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import { computed, createComponent, createDynamicComponent, createSlot, defineVaporComponent, extend, setStaticTemplateRef, shallowRef, unref, watch } from "vue";
|
|
8
|
+
import { tableCellId } from "./use-table-collection.js";
|
|
9
|
+
import { computed, createDynamicComponent, createSlot, defineVaporComponent, extend, setStaticTemplateRef, shallowRef, unref, watch } from "vue";
|
|
10
10
|
//#region src/components/table/table-cell.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
11
11
|
var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
|
|
12
12
|
__name: "table-cell",
|
|
@@ -18,7 +18,7 @@ var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
|
|
|
18
18
|
const props = __props;
|
|
19
19
|
const { slots } = useTableContext();
|
|
20
20
|
const { collection, collectionId, keyboard, selection, tableId, treeColumn } = useTableGridContext();
|
|
21
|
-
const { cells, hasChildRows, isExpanded, level, rowKey } = useTableRowContext();
|
|
21
|
+
const { cells, claimCellIndex, hasChildRows, isExpanded, level, rowKey } = useTableRowContext();
|
|
22
22
|
const cellKey = useId$1();
|
|
23
23
|
const element = shallowRef(null);
|
|
24
24
|
watch(element, (current, _previous, onCleanup) => {
|
|
@@ -31,7 +31,11 @@ var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
|
|
|
31
31
|
flush: "post",
|
|
32
32
|
immediate: true
|
|
33
33
|
});
|
|
34
|
-
const
|
|
34
|
+
const claimedIndex = claimCellIndex();
|
|
35
|
+
const index = computed(() => {
|
|
36
|
+
const registered = cells.indexOf(cellKey.value);
|
|
37
|
+
return registered < 0 ? claimedIndex : registered;
|
|
38
|
+
});
|
|
35
39
|
const columnKey = computed(() => index.value < 0 ? null : collection.columns.keyAt(index.value));
|
|
36
40
|
const isRowHeader = computed(() => columnKey.value != null && collection.rowHeaderColumnKeys.value.has(columnKey.value));
|
|
37
41
|
const cellId = computed(() => isRowHeader.value && columnKey.value != null ? tableCellId(tableId.value, rowKey.value, columnKey.value) : void 0);
|
|
@@ -48,12 +52,10 @@ var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
|
|
|
48
52
|
});
|
|
49
53
|
};
|
|
50
54
|
/**
|
|
51
|
-
* Virtualized, the cell
|
|
55
|
+
* Virtualized, the cell carries the column's width and offset itself, as the row does its own.
|
|
52
56
|
*
|
|
53
57
|
* The geometry is found by the cell the row and the column meet at, which means the row has to
|
|
54
|
-
* carry the `id` its item was keyed by — that key is half of the pair.
|
|
55
|
-
* settled the column is unknown and there is no wrapper yet, the same tick `data-column-index` is
|
|
56
|
-
* missing for.
|
|
58
|
+
* carry the `id` its item was keyed by — that key is half of the pair.
|
|
57
59
|
*/
|
|
58
60
|
const virtualizer = useTableVirtualizerContext();
|
|
59
61
|
const layoutInfo = computed(() => {
|
|
@@ -61,44 +63,45 @@ var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
|
|
|
61
63
|
return virtualizer.getLayoutInfo(virtualizer.collection.value.cellKey(rowKey.value, columnKey.value));
|
|
62
64
|
});
|
|
63
65
|
const parentLayoutInfo = computed(() => virtualizer ? virtualizer.getLayoutInfo(rowKey.value) : null);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
const placement = virtualizer ? useVirtualizerItem({
|
|
67
|
+
element,
|
|
68
|
+
layoutInfo: () => layoutInfo.value,
|
|
69
|
+
parentLayoutInfo: () => parentLayoutInfo.value
|
|
70
|
+
}) : null;
|
|
71
|
+
const n1 = createDynamicComponent(() => unref(virtualizer) ? "div" : "td", {
|
|
72
|
+
id: () => cellId.value,
|
|
73
|
+
"aria-colindex": () => unref(virtualizer) && index.value >= 0 ? index.value + 1 : void 0,
|
|
74
|
+
class: () => unref(composeSlotClassName)(unref(slots).cell, props.class),
|
|
75
|
+
"data-collection": () => unref(collectionId),
|
|
76
|
+
"data-column-index": () => index.value < 0 ? void 0 : index.value,
|
|
77
|
+
"data-disabled": () => unref(dataAttr)(isDisabled.value),
|
|
78
|
+
"data-expanded": () => unref(dataAttr)(unref(isExpanded)),
|
|
79
|
+
"data-focus-visible": () => unref(dataAttr)(unref(states).isFocusVisible.value),
|
|
80
|
+
"data-focused": () => unref(dataAttr)(unref(states).isFocused.value),
|
|
81
|
+
"data-has-child-items": () => unref(dataAttr)(unref(hasChildRows)),
|
|
82
|
+
"data-key": () => columnKey.value == null ? void 0 : `${unref(rowKey)}:${columnKey.value}`,
|
|
83
|
+
"data-level": () => unref(level),
|
|
84
|
+
"data-pressed": () => unref(dataAttr)(unref(states).isPressed.value),
|
|
85
|
+
"data-selected": () => unref(dataAttr)(isSelected.value),
|
|
86
|
+
"data-slot": "table-cell",
|
|
87
|
+
"data-tree-column": () => unref(dataAttr)(isTreeColumn.value),
|
|
88
|
+
role: () => isRowHeader.value ? "rowheader" : "gridcell",
|
|
89
|
+
style: () => unref(placement)?.style.value,
|
|
90
|
+
tabindex: () => unref(keyboard).cellTabIndex(unref(rowKey), columnKey.value),
|
|
91
|
+
onBlur: () => unref(states).onBlur,
|
|
92
|
+
onFocus: () => onFocus,
|
|
93
|
+
onPointerdown: () => unref(states).onPointerdown
|
|
67
94
|
}, extend(() => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"data-has-child-items": () => unref(dataAttr)(unref(hasChildRows)),
|
|
79
|
-
"data-key": () => columnKey.value == null ? void 0 : `${unref(rowKey)}:${columnKey.value}`,
|
|
80
|
-
"data-level": () => unref(level),
|
|
81
|
-
"data-pressed": () => unref(dataAttr)(unref(states).isPressed.value),
|
|
82
|
-
"data-selected": () => unref(dataAttr)(isSelected.value),
|
|
83
|
-
"data-slot": "table-cell",
|
|
84
|
-
"data-tree-column": () => unref(dataAttr)(isTreeColumn.value),
|
|
85
|
-
role: () => isRowHeader.value ? "rowheader" : "gridcell",
|
|
86
|
-
tabindex: () => unref(keyboard).cellTabIndex(unref(rowKey), columnKey.value),
|
|
87
|
-
onBlur: () => unref(states).onBlur,
|
|
88
|
-
onFocus: () => onFocus,
|
|
89
|
-
onPointerdown: () => unref(states).onPointerdown
|
|
90
|
-
}, extend(() => {
|
|
91
|
-
return createSlot("default", {
|
|
92
|
-
hasChildRows: () => unref(hasChildRows),
|
|
93
|
-
isDisabled: () => isDisabled.value,
|
|
94
|
-
isExpanded: () => unref(isExpanded),
|
|
95
|
-
isSelected: () => isSelected.value,
|
|
96
|
-
isTreeColumn: () => isTreeColumn.value
|
|
97
|
-
}, null, 36);
|
|
98
|
-
}, { _: 8 }), 4);
|
|
99
|
-
setStaticTemplateRef(n1, element, null, "element");
|
|
100
|
-
return n1;
|
|
101
|
-
}, { _: 8 }), true);
|
|
95
|
+
return createSlot("default", {
|
|
96
|
+
hasChildRows: () => unref(hasChildRows),
|
|
97
|
+
isDisabled: () => isDisabled.value,
|
|
98
|
+
isExpanded: () => unref(isExpanded),
|
|
99
|
+
isSelected: () => isSelected.value,
|
|
100
|
+
isTreeColumn: () => isTreeColumn.value
|
|
101
|
+
}, null, 36);
|
|
102
|
+
}, { _: 8 }), 1);
|
|
103
|
+
setStaticTemplateRef(n1, element, null, "element");
|
|
104
|
+
return n1;
|
|
102
105
|
}
|
|
103
106
|
});
|
|
104
107
|
//#endregion
|
|
@@ -2,9 +2,9 @@ import { composeSlotClassName } from "../../utils/compose.js";
|
|
|
2
2
|
import { dataAttr } from "../../utils/assertion.js";
|
|
3
3
|
import { useId as useId$1 } from "../../composables/use-id.js";
|
|
4
4
|
import { useInteractionStates } from "../../composables/use-interaction-states.js";
|
|
5
|
+
import { useMove } from "../../composables/use-move.js";
|
|
5
6
|
import { useDescription } from "../../composables/use-description.js";
|
|
6
7
|
import { visuallyHiddenStyle } from "../../utils/visually-hidden.js";
|
|
7
|
-
import { useMove } from "../../composables/use-move.js";
|
|
8
8
|
import { useTableColumnContext, useTableColumnLayoutContext, useTableContext } from "./table.context.js";
|
|
9
9
|
import { child, computed, defineVaporComponent, on, renderEffect, setAttr, setClass, setProp, setStaticTemplateRef, setStyle, setValue, shallowRef, template, unref, watch } from "vue";
|
|
10
10
|
//#region src/components/table/table-column-resizer.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
@@ -6,7 +6,7 @@ import { getCollectionTextValue } from "../../utils/text-value.js";
|
|
|
6
6
|
import { useDescription } from "../../composables/use-description.js";
|
|
7
7
|
import { provideTableColumnContext, useTableColumnLayoutContext, useTableContext, useTableGridContext, useTableVirtualizerContext } from "./table.context.js";
|
|
8
8
|
import table_virtualizer_item_default from "./table-virtualizer-item.js";
|
|
9
|
-
import { tableColumnHeaderId } from "
|
|
9
|
+
import { tableColumnHeaderId } from "./use-table-collection.js";
|
|
10
10
|
import { computed, createComponent, createDynamicComponent, createSlot, defineVaporComponent, extend, setStaticTemplateRef, shallowRef, unref, watch } from "vue";
|
|
11
11
|
//#region src/components/table/table-column.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
12
12
|
var table_column_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
|
|
@@ -5,6 +5,7 @@ import { useControllableState } from "../../composables/use-controllable-state.j
|
|
|
5
5
|
import { useSelectionManager } from "../../composables/use-selection-manager.js";
|
|
6
6
|
import { provideVirtualizerStateContext, useVirtualizerConfigContext } from "../virtualizer/virtualizer.context.js";
|
|
7
7
|
import { Size } from "../../utils/virtualizer-geometry.js";
|
|
8
|
+
import virtualizer_scrollbar_default from "../virtualizer/virtualizer-scrollbar.js";
|
|
8
9
|
import { useDndPersistedKeys } from "../../composables/use-dnd-persisted-keys.js";
|
|
9
10
|
import { useTypeahead } from "../../composables/use-typeahead.js";
|
|
10
11
|
import { useVirtualizer } from "../../composables/use-virtualizer.js";
|
|
@@ -13,13 +14,13 @@ import { useLocale } from "../../composables/use-locale.js";
|
|
|
13
14
|
import { useDescription } from "../../composables/use-description.js";
|
|
14
15
|
import { announce } from "../../utils/live-announcer.js";
|
|
15
16
|
import { provideTableColumnLayoutContext, provideTableGridContext, provideTableVirtualizerContext, useTableContext, useTableResizableContainerContext } from "./table.context.js";
|
|
16
|
-
import { useTableCollection } from "
|
|
17
|
-
import { toTableDragCollection } from "../../composables/table-drag-collection.js";
|
|
18
|
-
import { useGridKeyboard } from "../../composables/use-grid-keyboard.js";
|
|
19
|
-
import { useGridSelectionAnnouncement } from "../../composables/use-grid-selection-announcement.js";
|
|
20
|
-
import { buildColumnWidths, useTableColumnLayout } from "../../composables/use-table-column-layout.js";
|
|
17
|
+
import { useTableCollection } from "./use-table-collection.js";
|
|
21
18
|
import { TreeDropTargetDelegate } from "../../utils/dnd-tree-drop-target-delegate.js";
|
|
22
|
-
import {
|
|
19
|
+
import { toTableDragCollection } from "./table-drag-collection.js";
|
|
20
|
+
import { useGridKeyboard } from "./use-grid-keyboard.js";
|
|
21
|
+
import { useGridSelectionAnnouncement } from "./use-grid-selection-announcement.js";
|
|
22
|
+
import { buildColumnWidths, useTableColumnLayout } from "./use-table-column-layout.js";
|
|
23
|
+
import { computed, createComponent, createDynamicComponent, createIf, createSlot, defineVaporComponent, extend, renderEffect, setInsertionState, setStaticTemplateRef, setStyle, shallowRef, template, unref, watch } from "vue";
|
|
23
24
|
//#region src/components/table/table-content.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
24
25
|
var t0 = template("<div role=presentation>");
|
|
25
26
|
var table_content_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
|
|
@@ -207,7 +208,9 @@ var table_content_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
|
|
|
207
208
|
containerSize.value = size;
|
|
208
209
|
virtualizer.setSize(size);
|
|
209
210
|
},
|
|
210
|
-
onVisibleRectChange: virtualizer.setVisibleRect
|
|
211
|
+
onVisibleRectChange: virtualizer.setVisibleRect,
|
|
212
|
+
scrollAdjustment: () => virtualizer.scrollAdjustment.value,
|
|
213
|
+
takeScrollAdjustment: virtualizer.takeScrollAdjustment
|
|
211
214
|
});
|
|
212
215
|
/**
|
|
213
216
|
* The rows inside the window. The body renders these rather than every row it was given.
|
|
@@ -373,6 +376,13 @@ var table_content_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
|
|
|
373
376
|
getIndex: (key) => collection.rows.getIndex(key),
|
|
374
377
|
getLayoutInfo: virtualizer.getLayoutInfo,
|
|
375
378
|
itemCount: computed(() => collection.rows.size.value),
|
|
379
|
+
scroll: {
|
|
380
|
+
box: scroll.scrollBox,
|
|
381
|
+
offset: scroll.scrollOffset,
|
|
382
|
+
scrollSize: scroll.scrollSize,
|
|
383
|
+
scrollTo: scroll.scrollTo,
|
|
384
|
+
size: virtualizer.size
|
|
385
|
+
},
|
|
376
386
|
shouldObserveItemSize: virtualizerConfig.shouldObserveItemSize,
|
|
377
387
|
updateItemSize: virtualizer.updateItemSize
|
|
378
388
|
});
|
|
@@ -411,16 +421,23 @@ var table_content_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
|
|
|
411
421
|
* A CSS table lays its own columns out, and the two declarations below are how a resizable one is
|
|
412
422
|
* held to the widths it was given. Virtualized there is no CSS table to hold: the elements are
|
|
413
423
|
* divs, every cell is placed absolutely, and `min-content` on a div would collapse it.
|
|
424
|
+
*
|
|
425
|
+
* A windowed table hides the native scrollbar and draws its own in the content wrapper below: a
|
|
426
|
+
* native thumb is moved by the compositor, a frame ahead of the rows, and across a long collection
|
|
427
|
+
* that frame shows an empty body. Wheel, trackpad and keyboard scrolling stay native.
|
|
414
428
|
*/
|
|
415
|
-
const tableStyle = computed(() =>
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
429
|
+
const tableStyle = computed(() => {
|
|
430
|
+
if (isVirtualized) return { scrollbarWidth: "none" };
|
|
431
|
+
return layout ? {
|
|
432
|
+
tableLayout: "fixed",
|
|
433
|
+
width: "min-content"
|
|
434
|
+
} : void 0;
|
|
435
|
+
});
|
|
419
436
|
const _on_dragenter = ($event) => unref(droppable)?.handlers.onDragenter($event);
|
|
420
437
|
const _on_dragleave = ($event) => unref(droppable)?.handlers.onDragleave($event);
|
|
421
438
|
const _on_dragover = ($event) => unref(droppable)?.handlers.onDragover($event);
|
|
422
439
|
const _on_drop = ($event) => unref(droppable)?.handlers.onDrop($event);
|
|
423
|
-
const
|
|
440
|
+
const n8 = createDynamicComponent(() => isVirtualized ? "div" : "table", {
|
|
424
441
|
id: () => unref(tableId),
|
|
425
442
|
"aria-colcount": () => isVirtualized ? unref(collection).columns.size.value : void 0,
|
|
426
443
|
"aria-describedby": () => unref(describedBy),
|
|
@@ -444,17 +461,19 @@ var table_content_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
|
|
|
444
461
|
onKeydownCapture: () => unref(typeahead).onKeydownCapture
|
|
445
462
|
}, extend(() => {
|
|
446
463
|
return createIf(() => isVirtualized, () => {
|
|
447
|
-
const
|
|
448
|
-
renderEffect(() => setStyle(
|
|
449
|
-
setInsertionState(
|
|
464
|
+
const n4 = t0();
|
|
465
|
+
renderEffect(() => setStyle(n4, unref(scroll)?.contentStyle.value));
|
|
466
|
+
setInsertionState(n4);
|
|
467
|
+
createComponent(virtualizer_scrollbar_default);
|
|
468
|
+
setInsertionState(n4, 1);
|
|
450
469
|
createSlot();
|
|
451
|
-
return
|
|
470
|
+
return n4;
|
|
452
471
|
}, () => {
|
|
453
472
|
return createSlot("default", null, null, 36);
|
|
454
473
|
}, 389);
|
|
455
474
|
}, { _: 8 }), 1);
|
|
456
|
-
setStaticTemplateRef(
|
|
457
|
-
return
|
|
475
|
+
setStaticTemplateRef(n8, element, null, "element");
|
|
476
|
+
return n8;
|
|
458
477
|
}
|
|
459
478
|
});
|
|
460
479
|
//#endregion
|
|
@@ -33,7 +33,9 @@ var table_drop_indicator_vue_vue_type_script_setup_true_vapor_true_lang_default
|
|
|
33
33
|
const virtualizer = useTableVirtualizerContext();
|
|
34
34
|
const virtualizerState = useVirtualizerStateContext();
|
|
35
35
|
const element = shallowRef(null);
|
|
36
|
-
const indicator = dropState && dragAndDropHooks?.useDropIndicator ? dragAndDropHooks.useDropIndicator({
|
|
36
|
+
const indicator = dropState && dragAndDropHooks?.useDropIndicator ? dragAndDropHooks.useDropIndicator({ get target() {
|
|
37
|
+
return props.target;
|
|
38
|
+
} }, dropState, element) : null;
|
|
37
39
|
const isHidden = computed(() => indicator?.isHidden.value ?? true);
|
|
38
40
|
const isDropTarget = computed(() => indicator?.isDropTarget.value ?? false);
|
|
39
41
|
/** Depth of the gap, so an indented indicator lines up with the rows it sits between. */
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { CollectionKey } from "../../composables/use-collection.js";
|
|
2
|
-
import type { TableColumnSize } from "../../composables/use-table-column-layout.js";
|
|
3
2
|
import type { TableResizableContainerProps } from "./table.types.js";
|
|
4
3
|
declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, 'attrs' | 'emit' | 'slots'>>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
5
4
|
props: import('vue').PublicProps & __VLS_PrettifyLocal<TableResizableContainerProps & {
|
|
6
|
-
onResize?: ((widths: Map<CollectionKey,
|
|
7
|
-
onResizeEnd?: ((widths: Map<CollectionKey,
|
|
8
|
-
onResizeStart?: ((widths: Map<CollectionKey,
|
|
5
|
+
onResize?: ((widths: Map<CollectionKey, import("../../utils/flex-sizing.js").FlexSize>) => any) | undefined;
|
|
6
|
+
onResizeEnd?: ((widths: Map<CollectionKey, import("../../utils/flex-sizing.js").FlexSize>) => any) | undefined;
|
|
7
|
+
onResizeStart?: ((widths: Map<CollectionKey, import("../../utils/flex-sizing.js").FlexSize>) => any) | undefined;
|
|
9
8
|
}> & (typeof globalThis extends {
|
|
10
9
|
__VLS_PROPS_FALLBACK: infer P;
|
|
11
10
|
} ? P : {});
|
|
@@ -14,7 +13,7 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
|
|
|
14
13
|
slots: {
|
|
15
14
|
default?: () => unknown;
|
|
16
15
|
};
|
|
17
|
-
emit: ((evt: "resize", widths: Map<CollectionKey,
|
|
16
|
+
emit: ((evt: "resize", widths: Map<CollectionKey, import("../../utils/flex-sizing.js").FlexSize>) => void) & ((evt: "resizeEnd", widths: Map<CollectionKey, import("../../utils/flex-sizing.js").FlexSize>) => void) & ((evt: "resizeStart", widths: Map<CollectionKey, import("../../utils/flex-sizing.js").FlexSize>) => void);
|
|
18
17
|
}>) => import('vue').VNode & {
|
|
19
18
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
20
19
|
};
|
|
@@ -2,9 +2,10 @@ import { composeSlotClassName } from "../../utils/compose.js";
|
|
|
2
2
|
import { dataAttr } from "../../utils/assertion.js";
|
|
3
3
|
import { useId as useId$1 } from "../../composables/use-id.js";
|
|
4
4
|
import { useInteractionStates } from "../../composables/use-interaction-states.js";
|
|
5
|
+
import { useVirtualizerItem } from "../virtualizer/use-virtualizer-item.js";
|
|
5
6
|
import { visuallyHiddenStyle } from "../../utils/visually-hidden.js";
|
|
6
7
|
import { provideTableRowContext, useTableContext, useTableGridContext, useTableVirtualizerContext } from "./table.context.js";
|
|
7
|
-
import { createTableRegistry, isTableCellControl, tableCellId } from "
|
|
8
|
+
import { createTableRegistry, isTableCellControl, tableCellId } from "./use-table-collection.js";
|
|
8
9
|
import { computed, createDynamicComponent, createIf, createSlot, defineVaporComponent, extend, on, renderEffect, setDynamicProps, setStaticTemplateRef, shallowRef, template, unref, watch } from "vue";
|
|
9
10
|
//#region src/components/table/table-row.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
10
11
|
var t0 = template("<div>");
|
|
@@ -43,14 +44,14 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
|
|
|
43
44
|
return columnKey != null && rowHeaders.has(columnKey);
|
|
44
45
|
}).map((key) => cells.getItem(key)?.textValue() ?? "").filter(Boolean).join(" ");
|
|
45
46
|
};
|
|
46
|
-
watch(element, (current, _previous, onCleanup) => {
|
|
47
|
+
watch([element, rowKey], ([current, key], _previous, onCleanup) => {
|
|
47
48
|
if (!current) return;
|
|
48
|
-
onCleanup(collection.rows.register(
|
|
49
|
+
onCleanup(collection.rows.register(key, {
|
|
49
50
|
element: () => element.value,
|
|
50
51
|
isDisabled: () => false,
|
|
51
52
|
textValue
|
|
52
53
|
}));
|
|
53
|
-
onCleanup(collection.tree.register(
|
|
54
|
+
onCleanup(collection.tree.register(key, {
|
|
54
55
|
element: () => element.value,
|
|
55
56
|
hasChildRows: () => hasChildRows.value,
|
|
56
57
|
level: () => props.level ?? 0,
|
|
@@ -76,7 +77,9 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
|
|
|
76
77
|
*/
|
|
77
78
|
const draggable = dragState && dragAndDropHooks?.useDraggableItem ? dragAndDropHooks.useDraggableItem({
|
|
78
79
|
hasDragButton: true,
|
|
79
|
-
key
|
|
80
|
+
get key() {
|
|
81
|
+
return rowKey.value;
|
|
82
|
+
}
|
|
80
83
|
}, dragState) : null;
|
|
81
84
|
/**
|
|
82
85
|
* Dropping **on** the row, as an element a screen reader can reach.
|
|
@@ -86,20 +89,29 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
|
|
|
86
89
|
* The gaps between rows are `Table.DropIndicator`, placed by the caller.
|
|
87
90
|
*/
|
|
88
91
|
const dropIndicatorElement = shallowRef(null);
|
|
89
|
-
const
|
|
92
|
+
const dropTarget = computed(() => ({
|
|
90
93
|
dropPosition: "on",
|
|
91
94
|
key: rowKey.value,
|
|
92
95
|
type: "item"
|
|
96
|
+
}));
|
|
97
|
+
const dropIndicator = dropState && dragAndDropHooks?.useDropIndicator ? dragAndDropHooks.useDropIndicator({ get target() {
|
|
98
|
+
return dropTarget.value;
|
|
93
99
|
} }, dropState, dropIndicatorElement) : null;
|
|
94
100
|
const isDragging = computed(() => dragState?.isDragging(rowKey.value) ?? false);
|
|
95
101
|
const isDropTarget = computed(() => dropIndicator?.isDropTarget.value ?? false);
|
|
96
102
|
const allowsDragging = computed(() => draggable != null);
|
|
97
|
-
/**
|
|
98
|
-
*
|
|
103
|
+
/**
|
|
104
|
+
* Attributes from the drag half, bound by name below. Never listeners — Vapor re-attaches every
|
|
105
|
+
* `on*` key spread through `v-bind` on each render, so those are wired statically with `@event`.
|
|
106
|
+
* Not spread either: an object spread onto the element turns every attribute on it into a merged
|
|
107
|
+
* lookup, paid on every mount, and a windowed row mounts on every scroll.
|
|
108
|
+
*/
|
|
99
109
|
const dragAttrs = computed(() => draggable?.attrs.value ?? {});
|
|
110
|
+
let claimedCells = 0;
|
|
100
111
|
provideTableRowContext({
|
|
101
112
|
ariaLabelledBy,
|
|
102
113
|
cells,
|
|
114
|
+
claimCellIndex: () => claimedCells++,
|
|
103
115
|
drag: draggable,
|
|
104
116
|
hasChildRows,
|
|
105
117
|
isDisabled,
|
|
@@ -124,6 +136,20 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
|
|
|
124
136
|
* body's first row is two. A tree grid reports depth instead, exactly as React Aria does.
|
|
125
137
|
*/
|
|
126
138
|
const virtualizer = useTableVirtualizerContext();
|
|
139
|
+
/**
|
|
140
|
+
* Where the row sits, when the table is windowed.
|
|
141
|
+
*
|
|
142
|
+
* The row is its own wrapper: it carries the geometry the layout gave it rather than sitting inside
|
|
143
|
+
* an element that does. Every row of the window mounts on a scroll that moves it, and a wrapper
|
|
144
|
+
* would be a second component and a second element for each of them.
|
|
145
|
+
*/
|
|
146
|
+
const layoutInfo = computed(() => virtualizer ? virtualizer.getLayoutInfo(rowKey.value) : null);
|
|
147
|
+
const parentLayoutInfo = computed(() => virtualizer ? virtualizer.getLayoutInfo(virtualizer.collection.value.bodyKey) : null);
|
|
148
|
+
const placement = virtualizer ? useVirtualizerItem({
|
|
149
|
+
element,
|
|
150
|
+
layoutInfo: () => layoutInfo.value,
|
|
151
|
+
parentLayoutInfo: () => parentLayoutInfo.value
|
|
152
|
+
}) : null;
|
|
127
153
|
const ariaRowIndex = computed(() => {
|
|
128
154
|
if (!virtualizer || isTree.value) return void 0;
|
|
129
155
|
const index = collection.rows.getIndex(rowKey.value);
|
|
@@ -158,7 +184,11 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
|
|
|
158
184
|
}, 4);
|
|
159
185
|
}, { _: 8 }));
|
|
160
186
|
});
|
|
161
|
-
const
|
|
187
|
+
const _on_drag = ($event) => unref(draggable)?.handlers.onDrag($event);
|
|
188
|
+
const _on_dragend = ($event) => unref(draggable)?.handlers.onDragend($event);
|
|
189
|
+
const _on_dragstart = ($event) => unref(draggable)?.handlers.onDragstart($event);
|
|
190
|
+
const n6 = createDynamicComponent(() => unref(virtualizer) ? "div" : "tr", {
|
|
191
|
+
"aria-describedby": () => dragAttrs.value["aria-describedby"],
|
|
162
192
|
"aria-disabled": () => isDisabled.value || void 0,
|
|
163
193
|
"aria-expanded": () => isTree.value && hasChildRows.value ? isExpanded.value : void 0,
|
|
164
194
|
"aria-labelledby": () => ariaLabelledBy.value || void 0,
|
|
@@ -183,19 +213,20 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
|
|
|
183
213
|
"data-selected": () => unref(dataAttr)(isSelected.value),
|
|
184
214
|
"data-selection-mode": () => selectionMode.value === "none" ? void 0 : selectionMode.value,
|
|
185
215
|
"data-slot": "table-row",
|
|
216
|
+
draggable: () => dragAttrs.value.draggable,
|
|
186
217
|
role: "row",
|
|
187
|
-
style: () => ({ "--table-row-level": level.value }
|
|
218
|
+
style: () => [unref(placement)?.style.value, { "--table-row-level": level.value }],
|
|
188
219
|
tabindex: () => unref(keyboard).rowTabIndex(rowKey.value),
|
|
189
220
|
onBlur: () => unref(states).onBlur,
|
|
190
221
|
onClick: () => onClick,
|
|
191
|
-
onDrag: () =>
|
|
192
|
-
onDragend: () =>
|
|
193
|
-
onDragstart: () =>
|
|
222
|
+
onDrag: () => _on_drag,
|
|
223
|
+
onDragend: () => _on_dragend,
|
|
224
|
+
onDragstart: () => _on_dragstart,
|
|
194
225
|
onFocus: () => onFocus,
|
|
195
226
|
onPointerdown: () => unref(states).onPointerdown,
|
|
196
227
|
onPointerenter: () => unref(states).onPointerenter,
|
|
197
228
|
onPointerleave: () => unref(states).onPointerleave
|
|
198
|
-
}
|
|
229
|
+
}, extend(() => {
|
|
199
230
|
return createSlot("default", {
|
|
200
231
|
allowsDragging: () => allowsDragging.value,
|
|
201
232
|
hasChildRows: () => hasChildRows.value,
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { VirtualizerItemProps } from "../virtualizer/virtualizer.types.js";
|
|
2
2
|
declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, 'attrs' | 'emit' | 'slots'>>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
|
|
3
|
-
props: import('vue').PublicProps & __VLS_PrettifyLocal<{
|
|
4
|
-
/** Where this part goes, or `null` while the layout cannot say yet. */
|
|
5
|
-
layoutInfo?: LayoutInfo | null;
|
|
6
|
-
/** The enclosing part's layout info, which the offset is relative to. */
|
|
7
|
-
parentLayoutInfo?: LayoutInfo | null;
|
|
8
|
-
}> & (typeof globalThis extends {
|
|
3
|
+
props: import('vue').PublicProps & __VLS_PrettifyLocal<VirtualizerItemProps> & (typeof globalThis extends {
|
|
9
4
|
__VLS_PROPS_FALLBACK: infer P;
|
|
10
5
|
} ? P : {});
|
|
11
6
|
expose: (exposed: {}) => void;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useVirtualizerItem } from "../virtualizer/use-virtualizer-item.js";
|
|
2
2
|
import { useTableVirtualizerContext } from "./table.context.js";
|
|
3
|
-
import {
|
|
3
|
+
import { createIf, createSlot, defineVaporComponent, renderEffect, setInsertionState, setStaticTemplateRef, setStyle, shallowRef, template, unref } from "vue";
|
|
4
4
|
//#region src/components/table/table-virtualizer-item.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
5
|
+
var t0 = template("<div role=presentation>", 1);
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* The wrapper around a part of a virtualized table, or nothing at all.
|
|
7
8
|
*
|
|
8
9
|
* A part of a virtualized table sits inside a wrapper carrying the geometry the layout worked out
|
|
9
10
|
* for it, and a part of a plain table sits inside nothing. That is one element's difference in
|
|
@@ -14,6 +15,10 @@ import { createComponent, createIf, createSlot, defineVaporComponent, extend, un
|
|
|
14
15
|
* column's geometry only exists once the column has registered itself from the DOM, so a wrapper
|
|
15
16
|
* conditional on the geometry would destroy the element whose registration created it, unregister
|
|
16
17
|
* it, and flap between the two branches for ever.
|
|
18
|
+
*
|
|
19
|
+
* The wrapper is rendered here rather than delegated to `VirtualizerItem`: a drop indicator mounts
|
|
20
|
+
* one of these for every row of the window, and a scroll that replaces the window pays for every
|
|
21
|
+
* component instance in it. Rows and cells go further and carry their geometry themselves.
|
|
17
22
|
*/
|
|
18
23
|
var table_virtualizer_item_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
|
|
19
24
|
__name: "table-virtualizer-item",
|
|
@@ -24,13 +29,19 @@ var table_virtualizer_item_vue_vue_type_script_setup_true_vapor_true_lang_defaul
|
|
|
24
29
|
setup(__props) {
|
|
25
30
|
const props = __props;
|
|
26
31
|
const isVirtualized = useTableVirtualizerContext() != null;
|
|
32
|
+
const element = shallowRef(null);
|
|
33
|
+
const style = isVirtualized ? useVirtualizerItem({
|
|
34
|
+
element,
|
|
35
|
+
layoutInfo: () => props.layoutInfo,
|
|
36
|
+
parentLayoutInfo: () => props.parentLayoutInfo
|
|
37
|
+
}).style : null;
|
|
27
38
|
return createIf(() => isVirtualized, () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
const n3 = t0();
|
|
40
|
+
renderEffect(() => setStyle(n3, unref(style)));
|
|
41
|
+
setInsertionState(n3);
|
|
42
|
+
createSlot();
|
|
43
|
+
setStaticTemplateRef(n3, element, null, "element");
|
|
44
|
+
return n3;
|
|
34
45
|
}, () => {
|
|
35
46
|
return createSlot();
|
|
36
47
|
}, 261);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import type { TableCellMeta, TableCollectionItems, TableRegistry, UseTableCollectionReturn } from "../../composables/index.js";
|
|
2
1
|
import type { CollectionKey } from "../../composables/use-collection.js";
|
|
3
2
|
import type { DragAndDropHooks } from "../../composables/use-drag-and-drop.js";
|
|
4
3
|
import type { UseDraggableCollectionStateReturn } from "../../composables/use-draggable-collection-state.js";
|
|
5
4
|
import type { UseDraggableItemReturn } from "../../composables/use-draggable-item.js";
|
|
6
5
|
import type { UseDroppableCollectionStateReturn } from "../../composables/use-droppable-collection-state.js";
|
|
7
|
-
import type { UseGridKeyboardReturn } from "../../composables/use-grid-keyboard.js";
|
|
8
6
|
import type { UseSelectionManagerReturn } from "../../composables/use-selection-manager.js";
|
|
9
|
-
import type { TableColumnSize, UseTableColumnLayoutReturn } from "../../composables/use-table-column-layout.js";
|
|
10
7
|
import type { VirtualizerView } from "../../composables/use-virtualizer.js";
|
|
11
8
|
import type { VirtualizerTableCollection } from "../../utils/virtualizer-collection.js";
|
|
12
9
|
import type { LayoutInfo, VirtualizerKey } from "../../utils/virtualizer-layout-info.js";
|
|
13
10
|
import type { TableSortDescriptor, TableSortDirection } from "./table.types.js";
|
|
11
|
+
import type { UseGridKeyboardReturn } from "./use-grid-keyboard.js";
|
|
12
|
+
import type { TableCellMeta, TableCollectionItems, TableRegistry, UseTableCollectionReturn } from "./use-table-collection.js";
|
|
13
|
+
import type { TableColumnSize, UseTableColumnLayoutReturn } from "./use-table-column-layout.js";
|
|
14
14
|
import type { tableVariants } from "@ropav/styles";
|
|
15
15
|
import type { ComputedRef } from "vue";
|
|
16
16
|
export interface TableContext {
|
|
@@ -74,6 +74,14 @@ export interface TableRowContext {
|
|
|
74
74
|
ariaLabelledBy: ComputedRef<string>;
|
|
75
75
|
/** The cells of this row, which is how a cell learns which column it sits under. */
|
|
76
76
|
cells: TableRegistry<TableCellMeta>;
|
|
77
|
+
/**
|
|
78
|
+
* The position a cell takes among its siblings until the registry has read the DOM.
|
|
79
|
+
*
|
|
80
|
+
* Cells set up in template order, so the count of those before it is where a cell sits — and
|
|
81
|
+
* knowing it during the first render is what lets a windowed cell be placed under its column
|
|
82
|
+
* the moment it mounts, rather than a tick later in a second pass over every cell of the row.
|
|
83
|
+
*/
|
|
84
|
+
claimCellIndex: () => number;
|
|
77
85
|
/**
|
|
78
86
|
* What `Table.DragHandle` needs to turn a pressable into this row's drag control, or `null`
|
|
79
87
|
* when the table is not draggable.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { CollectionKey } from "../../composables/use-collection.js";
|
|
2
2
|
import type { DragAndDropHooks } from "../../composables/use-drag-and-drop.js";
|
|
3
3
|
import type { DisabledBehavior, SelectionBehavior, SelectionMode } from "../../composables/use-selection-manager.js";
|
|
4
|
-
import type { TableColumnSize } from "../../composables/use-table-column-layout.js";
|
|
5
4
|
import type { DropTarget } from "../../utils/dnd-types.js";
|
|
5
|
+
import type { TableColumnSize } from "./use-table-column-layout.js";
|
|
6
6
|
import type { CheckboxVariants, TableVariants } from "@ropav/styles";
|
|
7
7
|
export interface TableRootProps {
|
|
8
8
|
class?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { CollectionKey } from "
|
|
2
|
-
import type { ListKeyboardLayoutDelegate } from "
|
|
3
|
-
import type { UseSelectionManagerReturn } from "
|
|
1
|
+
import type { CollectionKey } from "../../composables/use-collection.js";
|
|
2
|
+
import type { ListKeyboardLayoutDelegate } from "../../composables/use-list-keyboard.js";
|
|
3
|
+
import type { UseSelectionManagerReturn } from "../../composables/use-selection-manager.js";
|
|
4
4
|
import type { UseTableCollectionReturn } from "./use-table-collection.js";
|
|
5
5
|
import type { ComputedRef, MaybeRefOrGetter } from "vue";
|
|
6
6
|
/**
|