@dosgato/dialog 1.2.8 → 1.3.1
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/Button.svelte +15 -13
- package/dist/ButtonGroup.svelte +44 -40
- package/dist/Checkbox.svelte +13 -12
- package/dist/Container.svelte +50 -46
- package/dist/Dialog.svelte +56 -41
- package/dist/FieldAutocomplete.svelte +77 -70
- package/dist/FieldCheckbox.svelte +25 -22
- package/dist/FieldChoices.svelte +74 -68
- package/dist/FieldChooserLink.svelte +148 -150
- package/dist/FieldDate.svelte +19 -18
- package/dist/FieldDateTime.svelte +36 -34
- package/dist/FieldDualListbox.svelte +80 -79
- package/dist/FieldHidden.svelte +16 -15
- package/dist/FieldIdentifier.svelte +18 -17
- package/dist/FieldMultiple.svelte +71 -74
- package/dist/FieldMultiselect.svelte +81 -72
- package/dist/FieldNumber.svelte +20 -19
- package/dist/FieldRadio.svelte +42 -41
- package/dist/FieldSelect.svelte +45 -45
- package/dist/FieldStandard.svelte +28 -27
- package/dist/FieldText.svelte +27 -24
- package/dist/FieldTextArea.svelte +24 -24
- package/dist/FileIcon.svelte +10 -8
- package/dist/Form.svelte +40 -18
- package/dist/Form.svelte.d.ts +15 -13
- package/dist/FormDialog.svelte +40 -25
- package/dist/FormDialog.svelte.d.ts +23 -17
- package/dist/Icon.svelte +38 -33
- package/dist/InlineMessage.svelte +31 -29
- package/dist/InlineMessages.svelte +10 -7
- package/dist/Input.svelte +40 -39
- package/dist/Listbox.svelte +102 -109
- package/dist/MaxLength.svelte +19 -18
- package/dist/Radio.svelte +18 -15
- package/dist/Switcher.svelte +37 -33
- package/dist/Tab.svelte +23 -21
- package/dist/Tabs.svelte +111 -110
- package/dist/Tooltip.svelte +7 -7
- package/dist/chooser/Chooser.svelte +83 -76
- package/dist/chooser/ChooserPreview.svelte +16 -14
- package/dist/chooser/Details.svelte +6 -4
- package/dist/chooser/Thumbnail.svelte +20 -16
- package/dist/chooser/UploadUI.svelte +78 -69
- package/dist/code/CodeEditor.svelte +63 -66
- package/dist/code/FieldCodeEditor.svelte +21 -19
- package/dist/colorpicker/FieldColorPicker.svelte +36 -35
- package/dist/cropper/FieldCropper.svelte +142 -141
- package/dist/iconpicker/FieldIconPicker.svelte +102 -94
- package/dist/imageposition/FieldImagePosition.svelte +107 -98
- package/dist/tagpicker/FieldTagPicker.svelte +63 -54
- package/dist/tree/LoadIcon.svelte +0 -1
- package/dist/tree/Tree.svelte +198 -192
- package/dist/tree/Tree.svelte.d.ts +5 -5
- package/dist/tree/TreeCell.svelte +10 -6
- package/dist/tree/TreeCell.svelte.d.ts +5 -5
- package/dist/tree/TreeNode.svelte +213 -241
- package/dist/tree/TreeNode.svelte.d.ts +5 -5
- package/package.json +8 -9
|
@@ -1,260 +1,233 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export let
|
|
16
|
-
export let
|
|
17
|
-
export let
|
|
18
|
-
export let
|
|
19
|
-
export let
|
|
20
|
-
export let
|
|
21
|
-
export let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
$:
|
|
34
|
-
$:
|
|
35
|
-
|
|
1
|
+
<script lang="ts" generics="T extends TreeItemFromDB = TreeItemFromDB">
|
|
2
|
+
import checkboxOutline from '@iconify-icons/mdi/checkbox-outline'
|
|
3
|
+
import checkboxBlankOutline from '@iconify-icons/mdi/checkbox-blank-outline'
|
|
4
|
+
import menuDown from '@iconify-icons/mdi/menu-down'
|
|
5
|
+
import menuRight from '@iconify-icons/mdi/menu-right'
|
|
6
|
+
import { modifierKey, ScreenReaderOnly } from '@txstate-mws/svelte-components'
|
|
7
|
+
import type { Store } from '@txstate-mws/svelte-store'
|
|
8
|
+
import { createEventDispatcher, getContext, onMount } from 'svelte'
|
|
9
|
+
import { isNotBlank, toArray } from 'txstate-utils'
|
|
10
|
+
import { Icon } from '..'
|
|
11
|
+
import { type TreeStore, TREE_STORE_CONTEXT, type TypedTreeItem, type TreeItemFromDB, type TreeHeader, getHashId, lazyObserver } from './treestore'
|
|
12
|
+
import LoadIcon from './LoadIcon.svelte'
|
|
13
|
+
import TreeCell from './TreeCell.svelte'
|
|
14
|
+
|
|
15
|
+
export let headers: TreeHeader<T>[]
|
|
16
|
+
export let headerSizes: Store<string[]>
|
|
17
|
+
export let nodeClass: ((itm: T) => string) | undefined = undefined
|
|
18
|
+
export let item: TypedTreeItem<T>
|
|
19
|
+
export let posinset: number
|
|
20
|
+
export let setsize: number
|
|
21
|
+
export let level: number
|
|
22
|
+
export let next: TypedTreeItem<T> | undefined
|
|
23
|
+
export let prev: TypedTreeItem<T> | undefined
|
|
24
|
+
export let parent: TypedTreeItem<T> | undefined = undefined
|
|
25
|
+
|
|
26
|
+
const store = getContext<TreeStore<T>>(TREE_STORE_CONTEXT)
|
|
27
|
+
const { dragging, draggable, selectedUndraggable, selected, focused, copied, headerOverride } = store
|
|
28
|
+
|
|
29
|
+
const dispatch = createEventDispatcher()
|
|
30
|
+
let nodeelement: HTMLElement
|
|
31
|
+
|
|
32
|
+
let userWantsCopy = false
|
|
33
|
+
$: isSelected = $selected.has(item.id)
|
|
34
|
+
$: showChildren = !!item.open && !!item.children?.length
|
|
35
|
+
$: hashedId = getHashId(item.id)
|
|
36
|
+
$: isDraggable = $draggable && ((isSelected && !$selectedUndraggable) || store.dragEligible([item], true) || store.dragEligible([item], false))
|
|
37
|
+
$: dropZone = $dragging && store.dropEffect(item, false, userWantsCopy) !== 'none'
|
|
38
|
+
$: dropDisabled = $dragging && !dropZone
|
|
39
|
+
$: dropAbove = $dragging && store.dropEffect(item, true, userWantsCopy) !== 'none'
|
|
40
|
+
$: inClipboard = $copied.has(item.id)
|
|
41
|
+
|
|
42
|
+
function onKeyDown (e: KeyboardEvent) {
|
|
36
43
|
if (e.ctrlKey || e.metaKey) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else if (e.key === 'Escape') {
|
|
48
|
-
store.cancelCopy();
|
|
44
|
+
if (e.key === 'x') {
|
|
45
|
+
store.cut()
|
|
46
|
+
} else if (e.key === 'c') {
|
|
47
|
+
store.copy()
|
|
48
|
+
} else if (e.key === 'v') {
|
|
49
|
+
void store.paste()
|
|
50
|
+
}
|
|
51
|
+
} else if (e.key === 'Escape') {
|
|
52
|
+
store.cancelCopy()
|
|
49
53
|
}
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
|
|
55
|
+
if (modifierKey(e) && !['Enter', ' '].includes(e.key)) return
|
|
52
56
|
if (['Enter', ' '].includes(e.key)) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
store.select(item, { clear: true });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else if (e.key === 'Escape') {
|
|
70
|
-
store.deselect();
|
|
71
|
-
}
|
|
72
|
-
else if (e.key === 'ArrowRight') {
|
|
73
|
-
e.preventDefault();
|
|
74
|
-
e.stopPropagation();
|
|
75
|
-
if (item.open && item.children?.length) {
|
|
76
|
-
const child = item.children[0];
|
|
77
|
-
store.focus(child);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
void store.open(item);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else if (e.key === 'ArrowLeft') {
|
|
84
|
-
e.preventDefault();
|
|
85
|
-
e.stopPropagation();
|
|
86
|
-
if (item.open) {
|
|
87
|
-
store.close(item);
|
|
88
|
-
}
|
|
89
|
-
else if (parent) {
|
|
90
|
-
store.focus(parent);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
else if (e.key === 'ArrowDown') {
|
|
94
|
-
e.preventDefault();
|
|
95
|
-
e.stopPropagation();
|
|
96
|
-
const mynext = item.open && item.children?.length ? item.children[0] : next;
|
|
97
|
-
if (mynext) {
|
|
98
|
-
store.focus(mynext);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else if (e.key === 'ArrowUp') {
|
|
102
|
-
e.preventDefault();
|
|
103
|
-
e.stopPropagation();
|
|
104
|
-
const anyprev = prev;
|
|
105
|
-
const myprev = anyprev?.open && anyprev.children?.length && (!parent || parent.children?.some(c => c.id === anyprev.id)) ? anyprev.children[anyprev.children.length - 1] : prev;
|
|
106
|
-
if (myprev) {
|
|
107
|
-
store.focus(myprev);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
else if (e.key === '*') {
|
|
111
|
-
e.preventDefault();
|
|
112
|
-
e.stopPropagation();
|
|
113
|
-
const toOpen = (parent ? parent.children : $store.rootItems) ?? [];
|
|
114
|
-
for (const child of toOpen) {
|
|
115
|
-
store.open(child).catch(console.error);
|
|
57
|
+
e.preventDefault()
|
|
58
|
+
e.stopPropagation()
|
|
59
|
+
if ($store.selected && $store.selected.size === 1 && $store.selected.has(item.id)) dispatch('choose', item)
|
|
60
|
+
else {
|
|
61
|
+
if (e.metaKey || e.altKey) {
|
|
62
|
+
store.select(item, { clear: false, toggle: true })
|
|
63
|
+
} else if (e.shiftKey) {
|
|
64
|
+
shiftClick()
|
|
65
|
+
} else {
|
|
66
|
+
store.select(item, { clear: true })
|
|
116
67
|
}
|
|
68
|
+
}
|
|
69
|
+
} else if (e.key === 'Escape') {
|
|
70
|
+
store.deselect()
|
|
71
|
+
} else if (e.key === 'ArrowRight') {
|
|
72
|
+
e.preventDefault()
|
|
73
|
+
e.stopPropagation()
|
|
74
|
+
if (item.open && item.children?.length) {
|
|
75
|
+
const child = item.children[0]
|
|
76
|
+
store.focus(child)
|
|
77
|
+
} else {
|
|
78
|
+
void store.open(item)
|
|
79
|
+
}
|
|
80
|
+
} else if (e.key === 'ArrowLeft') {
|
|
81
|
+
e.preventDefault()
|
|
82
|
+
e.stopPropagation()
|
|
83
|
+
if (item.open) {
|
|
84
|
+
store.close(item)
|
|
85
|
+
} else if (parent) {
|
|
86
|
+
store.focus(parent)
|
|
87
|
+
}
|
|
88
|
+
} else if (e.key === 'ArrowDown') {
|
|
89
|
+
e.preventDefault()
|
|
90
|
+
e.stopPropagation()
|
|
91
|
+
const mynext = item.open && item.children?.length ? item.children[0] : next
|
|
92
|
+
if (mynext) {
|
|
93
|
+
store.focus(mynext)
|
|
94
|
+
}
|
|
95
|
+
} else if (e.key === 'ArrowUp') {
|
|
96
|
+
e.preventDefault()
|
|
97
|
+
e.stopPropagation()
|
|
98
|
+
const anyprev = prev
|
|
99
|
+
const myprev = anyprev?.open && anyprev.children?.length && (!parent || parent.children?.some(c => c.id === anyprev.id)) ? anyprev.children[anyprev.children.length - 1] : prev
|
|
100
|
+
if (myprev) {
|
|
101
|
+
store.focus(myprev)
|
|
102
|
+
}
|
|
103
|
+
} else if (e.key === '*') {
|
|
104
|
+
e.preventDefault()
|
|
105
|
+
e.stopPropagation()
|
|
106
|
+
const toOpen = (parent ? parent.children : $store.rootItems) ?? []
|
|
107
|
+
for (const child of toOpen) {
|
|
108
|
+
store.open(child).catch(console.error)
|
|
109
|
+
}
|
|
117
110
|
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
const
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function shiftClick () {
|
|
114
|
+
const treenodes: HTMLElement[] = Array.from(store.treeElement?.querySelectorAll('div[role="treeitem"]') ?? [])
|
|
115
|
+
const selectedNodes = treenodes.filter(n => n.matches('.selected'))
|
|
116
|
+
const firstSelected = selectedNodes[0]
|
|
123
117
|
if (!firstSelected || (selectedNodes.length === 1 && firstSelected === nodeelement)) {
|
|
124
|
-
|
|
118
|
+
return store.select(item, { toggle: true })
|
|
125
119
|
}
|
|
126
|
-
const lastSelected = selectedNodes[selectedNodes.length - 1]
|
|
127
|
-
const selectingdownward = firstSelected.compareDocumentPosition(nodeelement) === Node.DOCUMENT_POSITION_FOLLOWING
|
|
128
|
-
let selecting = false
|
|
129
|
-
store.deselect(false)
|
|
120
|
+
const lastSelected = selectedNodes[selectedNodes.length - 1]
|
|
121
|
+
const selectingdownward = firstSelected.compareDocumentPosition(nodeelement) === Node.DOCUMENT_POSITION_FOLLOWING
|
|
122
|
+
let selecting = false
|
|
123
|
+
store.deselect(false)
|
|
130
124
|
for (const node of treenodes) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
store.selectById(node.getAttribute('data-id'), { notify: false, toggle: false });
|
|
137
|
-
if (selectingdownward && node === nodeelement)
|
|
138
|
-
selecting = false;
|
|
139
|
-
if (!selectingdownward && node === lastSelected)
|
|
140
|
-
selecting = false;
|
|
125
|
+
if (selectingdownward && node === firstSelected) selecting = true
|
|
126
|
+
if (!selectingdownward && node === nodeelement) selecting = true
|
|
127
|
+
if (selecting) store.selectById(node.getAttribute('data-id')!, { notify: false, toggle: false })
|
|
128
|
+
if (selectingdownward && node === nodeelement) selecting = false
|
|
129
|
+
if (!selectingdownward && node === lastSelected) selecting = false
|
|
141
130
|
}
|
|
142
|
-
store.trigger()
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
e.preventDefault()
|
|
148
|
-
e.stopPropagation()
|
|
131
|
+
store.trigger()
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function onClick (e: MouseEvent) {
|
|
135
|
+
if (e.button > 0) return
|
|
136
|
+
e.preventDefault()
|
|
137
|
+
e.stopPropagation()
|
|
149
138
|
if (e.metaKey || e.altKey || e.ctrlKey) {
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (item.open && wasFocused && !item.loading)
|
|
159
|
-
store.close(item);
|
|
160
|
-
else if (!item.open)
|
|
161
|
-
void store.open(item);
|
|
139
|
+
store.select(item, { clear: false, toggle: true })
|
|
140
|
+
} else if (e.shiftKey) {
|
|
141
|
+
shiftClick()
|
|
142
|
+
} else {
|
|
143
|
+
const wasFocused = $store.focused?.id === item.id
|
|
144
|
+
store.select(item, { clear: true, toggle: false })
|
|
145
|
+
if (item.open && wasFocused && !item.loading) store.close(item)
|
|
146
|
+
else if (!item.open) void store.open(item)
|
|
162
147
|
}
|
|
163
|
-
}
|
|
164
|
-
function onCheckClick(e) {
|
|
165
|
-
if (e.button > 0)
|
|
166
|
-
|
|
167
|
-
e.
|
|
168
|
-
e.stopPropagation();
|
|
148
|
+
}
|
|
149
|
+
function onCheckClick (e: MouseEvent) {
|
|
150
|
+
if (e.button > 0) return
|
|
151
|
+
e.preventDefault()
|
|
152
|
+
e.stopPropagation()
|
|
169
153
|
if (e.shiftKey) {
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
dispatch('deselect', item);
|
|
175
|
-
store.select(item, { clear: false, toggle: true });
|
|
154
|
+
shiftClick()
|
|
155
|
+
} else {
|
|
156
|
+
if (isSelected) dispatch('deselect', item)
|
|
157
|
+
store.select(item, { clear: false, toggle: true })
|
|
176
158
|
}
|
|
177
|
-
}
|
|
178
|
-
function onDblClick(e) {
|
|
179
|
-
if (modifierKey(e) || e.button > 0)
|
|
180
|
-
|
|
181
|
-
e.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
function onDragOver(e) {
|
|
193
|
-
userWantsCopy = e.dataTransfer.dropEffect === 'copy';
|
|
159
|
+
}
|
|
160
|
+
function onDblClick (e: MouseEvent) {
|
|
161
|
+
if (modifierKey(e) || e.button > 0) return
|
|
162
|
+
e.preventDefault()
|
|
163
|
+
e.stopPropagation()
|
|
164
|
+
if ($store.selected.size <= 1) dispatch('choose', item)
|
|
165
|
+
}
|
|
166
|
+
function onDragStart (e: DragEvent) {
|
|
167
|
+
userWantsCopy = e.dataTransfer!.dropEffect === 'copy'
|
|
168
|
+
e.dataTransfer!.effectAllowed = 'copyMove'
|
|
169
|
+
e.dataTransfer!.setData('text/plain', item.id)
|
|
170
|
+
store.dragStart(item)
|
|
171
|
+
}
|
|
172
|
+
function onDragOver (e: DragEvent) {
|
|
173
|
+
userWantsCopy = e.dataTransfer!.dropEffect === 'copy'
|
|
194
174
|
if (dropZone) {
|
|
195
|
-
|
|
196
|
-
|
|
175
|
+
e.preventDefault()
|
|
176
|
+
e.dataTransfer!.dropEffect = store.dropEffect(item, false, userWantsCopy)
|
|
197
177
|
}
|
|
198
|
-
return !dropZone
|
|
199
|
-
}
|
|
200
|
-
function onDragOverAbove(e) {
|
|
201
|
-
userWantsCopy = e.dataTransfer
|
|
178
|
+
return !dropZone
|
|
179
|
+
}
|
|
180
|
+
function onDragOverAbove (e: DragEvent) {
|
|
181
|
+
userWantsCopy = e.dataTransfer!.dropEffect === 'copy'
|
|
202
182
|
if (dropAbove) {
|
|
203
|
-
|
|
204
|
-
|
|
183
|
+
e.preventDefault()
|
|
184
|
+
e.dataTransfer!.dropEffect = store.dropEffect(item, true, userWantsCopy)
|
|
205
185
|
}
|
|
206
|
-
return !dropAbove
|
|
207
|
-
}
|
|
208
|
-
let dragOver = 0
|
|
209
|
-
let dragOverAbove = 0
|
|
210
|
-
async function onDrop(e) {
|
|
211
|
-
e.preventDefault()
|
|
212
|
-
dragOver = 0
|
|
213
|
-
return await store.drop(item, false, e.dataTransfer
|
|
214
|
-
}
|
|
215
|
-
async function onDropAbove(e) {
|
|
216
|
-
e.preventDefault()
|
|
217
|
-
dragOverAbove = 0
|
|
218
|
-
return await store.drop(item, true, e.dataTransfer
|
|
219
|
-
}
|
|
220
|
-
function onDragEnter(e) {
|
|
221
|
-
if (!dropZone)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
function
|
|
235
|
-
if (!
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
if (
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
lazyObserver.observe(nodeelement);
|
|
252
|
-
return () => lazyObserver.unobserve(nodeelement);
|
|
253
|
-
});
|
|
254
|
-
$: if ($dragging) {
|
|
255
|
-
dragOver = 0;
|
|
256
|
-
dragOverAbove = 0;
|
|
257
|
-
}
|
|
186
|
+
return !dropAbove
|
|
187
|
+
}
|
|
188
|
+
let dragOver = 0
|
|
189
|
+
let dragOverAbove = 0
|
|
190
|
+
async function onDrop (e: DragEvent) {
|
|
191
|
+
e.preventDefault()
|
|
192
|
+
dragOver = 0
|
|
193
|
+
return await store.drop(item, false, e.dataTransfer!.dropEffect === 'copy')
|
|
194
|
+
}
|
|
195
|
+
async function onDropAbove (e: DragEvent) {
|
|
196
|
+
e.preventDefault()
|
|
197
|
+
dragOverAbove = 0
|
|
198
|
+
return await store.drop(item, true, e.dataTransfer!.dropEffect === 'copy')
|
|
199
|
+
}
|
|
200
|
+
function onDragEnter (e: DragEvent) {
|
|
201
|
+
if (!dropZone) dragOver = 0
|
|
202
|
+
else dragOver++
|
|
203
|
+
onDragOver(e)
|
|
204
|
+
}
|
|
205
|
+
function onDragEnterAbove (e: DragEvent) {
|
|
206
|
+
if (!dropAbove) dragOverAbove = 0
|
|
207
|
+
else dragOverAbove++
|
|
208
|
+
onDragOverAbove(e)
|
|
209
|
+
}
|
|
210
|
+
function onDragLeave (e: DragEvent) {
|
|
211
|
+
if (!dropZone) dragOver = 0
|
|
212
|
+
else dragOver--
|
|
213
|
+
}
|
|
214
|
+
function onDragLeaveAbove (e: DragEvent) {
|
|
215
|
+
if (!dropAbove) dragOverAbove = 0
|
|
216
|
+
else dragOverAbove--
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
let display = $focused && $focused.id === item.id
|
|
220
|
+
onMount(() => {
|
|
221
|
+
if ($focused && $focused.id === item.id) nodeelement.scrollIntoView({ block: 'center' })
|
|
222
|
+
nodeelement.addEventListener('lazy', () => { display = true })
|
|
223
|
+
lazyObserver!.observe(nodeelement)
|
|
224
|
+
return () => lazyObserver!.unobserve(nodeelement)
|
|
225
|
+
})
|
|
226
|
+
|
|
227
|
+
$: if ($dragging) {
|
|
228
|
+
dragOver = 0
|
|
229
|
+
dragOverAbove = 0
|
|
230
|
+
}
|
|
258
231
|
</script>
|
|
259
232
|
<li role="presentation">
|
|
260
233
|
{#if dropAbove}
|
|
@@ -439,5 +412,4 @@ $: if ($dragging) {
|
|
|
439
412
|
animation: none;
|
|
440
413
|
}
|
|
441
414
|
}
|
|
442
|
-
|
|
443
415
|
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
import type { Store } from '@txstate-mws/svelte-store';
|
|
3
3
|
import { type TypedTreeItem, type TreeItemFromDB, type TreeHeader } from './treestore';
|
|
4
|
-
declare class __sveltets_Render<T extends TreeItemFromDB> {
|
|
4
|
+
declare class __sveltets_Render<T extends TreeItemFromDB = TreeItemFromDB> {
|
|
5
5
|
props(): {
|
|
6
6
|
headers: TreeHeader<T>[];
|
|
7
7
|
headerSizes: Store<string[]>;
|
|
@@ -22,9 +22,9 @@ declare class __sveltets_Render<T extends TreeItemFromDB> {
|
|
|
22
22
|
};
|
|
23
23
|
slots(): {};
|
|
24
24
|
}
|
|
25
|
-
export type TreeNodeProps<T extends TreeItemFromDB> = ReturnType<__sveltets_Render<T>['props']>;
|
|
26
|
-
export type TreeNodeEvents<T extends TreeItemFromDB> = ReturnType<__sveltets_Render<T>['events']>;
|
|
27
|
-
export type TreeNodeSlots<T extends TreeItemFromDB> = ReturnType<__sveltets_Render<T>['slots']>;
|
|
28
|
-
export default class TreeNode<T extends TreeItemFromDB> extends SvelteComponentTyped<TreeNodeProps<T>, TreeNodeEvents<T>, TreeNodeSlots<T>> {
|
|
25
|
+
export type TreeNodeProps<T extends TreeItemFromDB = TreeItemFromDB> = ReturnType<__sveltets_Render<T>['props']>;
|
|
26
|
+
export type TreeNodeEvents<T extends TreeItemFromDB = TreeItemFromDB> = ReturnType<__sveltets_Render<T>['events']>;
|
|
27
|
+
export type TreeNodeSlots<T extends TreeItemFromDB = TreeItemFromDB> = ReturnType<__sveltets_Render<T>['slots']>;
|
|
28
|
+
export default class TreeNode<T extends TreeItemFromDB = TreeItemFromDB> extends SvelteComponentTyped<TreeNodeProps<T>, TreeNodeEvents<T>, TreeNodeSlots<T>> {
|
|
29
29
|
}
|
|
30
30
|
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dosgato/dialog",
|
|
3
3
|
"description": "A component library for building forms that edit a JSON document.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.1",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepublishOnly": "svelte-package",
|
|
7
7
|
"dev": "vite dev --force",
|
|
@@ -23,24 +23,23 @@
|
|
|
23
23
|
"@codemirror/lang-javascript": "^6.1.7",
|
|
24
24
|
"@codemirror/lang-css": "^6.2.1",
|
|
25
25
|
"@codemirror/lang-html": "^6.4.3",
|
|
26
|
-
"@iconify/svelte": "^4.0.0",
|
|
26
|
+
"@iconify/svelte": "^4.0.0 || ^5.0.0",
|
|
27
27
|
"@iconify-icons/mdi": "^1.2.22",
|
|
28
28
|
"@iconify-icons/ph": "^1.2.2",
|
|
29
29
|
"@txstate-mws/svelte-components": "^1.6.11",
|
|
30
|
-
"@txstate-mws/svelte-forms": "^
|
|
30
|
+
"@txstate-mws/svelte-forms": "^2.0.0",
|
|
31
31
|
"codemirror": "^6.0.1",
|
|
32
32
|
"txstate-utils": "^1.8.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@sveltejs/adapter-auto": "^
|
|
35
|
+
"@sveltejs/adapter-auto": "^6.0.0",
|
|
36
36
|
"@sveltejs/kit": "^2.0.1",
|
|
37
37
|
"@sveltejs/package": "^2.0.1",
|
|
38
|
-
"@sveltejs/vite-plugin-svelte": "^
|
|
38
|
+
"@sveltejs/vite-plugin-svelte": "^5.0.0",
|
|
39
39
|
"eslint-config-standard-with-typescript": "^43.0.0",
|
|
40
|
-
"eslint-plugin-svelte": "^
|
|
41
|
-
"svelte-check": "^
|
|
42
|
-
"svelte": "^
|
|
43
|
-
"tslib": "^2.3.1",
|
|
40
|
+
"eslint-plugin-svelte": "^3.0.0",
|
|
41
|
+
"svelte-check": "^4.0.0",
|
|
42
|
+
"svelte": "^5.0.0",
|
|
44
43
|
"typescript": "^5.0.2"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {
|