|
3 | 3 | import { DEV } from "esm-env";
|
4 | 4 | import { flushSync, getContext, hasContext, setContext } from "svelte";
|
5 | 5 | import type { EventHandler } from "svelte/elements";
|
6 |
| - import { getTreeItemProviderContext } from "../Tree/TreeItemProvider.svelte"; |
7 |
| - import type { TreeItemPosition } from "../Tree/state.svelte.js"; |
8 |
| - import type { TreeItemState } from "../Tree/types.js"; |
9 |
| - import { createDragState } from "./state.svelte.js"; |
10 |
| - import type { TreeItemChildrenSnippetArgs, TreeItemProps } from "./types.js"; |
| 6 | + import { getTreeItemProviderContext } from "./TreeItemProvider.svelte"; |
| 7 | + import { createTreeItemDragState, type TreeItemPosition } from "./state.svelte.js"; |
| 8 | + import type { TreeItemChildrenSnippetArgs, TreeItemProps, TreeItemState } from "./types.js"; |
11 | 9 |
|
12 | 10 | const CONTEXT_KEY = Symbol("TreeItem");
|
13 | 11 |
|
|
50 | 48 | }: TreeItemProps = $props();
|
51 | 49 |
|
52 | 50 | const { dropPosition, canDrop, getLatestDropPosition, updateDropPosition, clearDropPosition } =
|
53 |
| - createDragState({ |
| 51 | + createTreeItemDragState({ |
54 | 52 | draggedId: treeState.draggedId,
|
55 | 53 | item,
|
56 | 54 | });
|
|
73 | 71 | return;
|
74 | 72 | }
|
75 | 73 |
|
76 |
| - if (item().disabled()) { |
| 74 | + if (item().disabled) { |
77 | 75 | return;
|
78 | 76 | }
|
79 | 77 |
|
|
84 | 82 | break;
|
85 | 83 | }
|
86 | 84 |
|
87 |
| - if (!item().expanded()) { |
| 85 | + if (!item().expanded) { |
88 | 86 | treeState.expandedIds().add(node.id);
|
89 | 87 | break;
|
90 | 88 | }
|
|
95 | 93 | break;
|
96 | 94 | }
|
97 | 95 | case "ArrowLeft": {
|
98 |
| - if (item().node.type === "folder" && item().expanded()) { |
| 96 | + if (item().node.type === "folder" && item().expanded) { |
99 | 97 | treeState.expandedIds().delete(item().node.id);
|
100 | 98 | break;
|
101 | 99 | }
|
|
270 | 268 | break;
|
271 | 269 | }
|
272 | 270 | case "F2": {
|
273 |
| - if (item().editable()) { |
| 271 | + if (item().editable) { |
274 | 272 | editing = true;
|
275 | 273 | }
|
276 | 274 | break;
|
|
312 | 310 | };
|
313 | 311 |
|
314 | 312 | const handleClick: EventHandler<MouseEvent, HTMLElement> = (event) => {
|
315 |
| - if (item().disabled()) { |
| 313 | + if (item().disabled) { |
316 | 314 | return;
|
317 | 315 | }
|
318 | 316 |
|
|
327 | 325 | };
|
328 | 326 |
|
329 | 327 | const handleDragStart: EventHandler<DragEvent, HTMLElement> = (event) => {
|
330 |
| - if (item().disabled()) { |
| 328 | + if (item().disabled) { |
331 | 329 | return;
|
332 | 330 | }
|
333 | 331 |
|
|
402 | 400 | bind:this={ref}
|
403 | 401 | id={treeState.getItemElementId(item().node.id)}
|
404 | 402 | role="treeitem"
|
405 |
| - aria-selected={item().selected()} |
406 |
| - aria-expanded={hasChildren(item()) ? item().expanded() : undefined} |
| 403 | + aria-selected={item().selected} |
| 404 | + aria-expanded={hasChildren(item()) ? item().expanded : undefined} |
407 | 405 | aria-level={item().depth + 1}
|
408 | 406 | aria-posinset={item().index + 1}
|
409 | 407 | aria-setsize={item().parent?.node.children.length ?? treeState.tree().children.length}
|
|
0 commit comments