@dosgato/dialog 0.0.48 → 0.0.50
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/FieldCodeEditor.svelte.d.ts +1 -1
- package/dist/FieldText.svelte.d.ts +1 -1
- package/dist/FieldTextArea.svelte.d.ts +1 -1
- package/dist/Input.svelte.d.ts +1 -1
- package/dist/chooser/ChooserAPI.d.ts +1 -0
- package/dist/chooser/ChooserStore.d.ts +3 -3
- package/dist/chooser/ChooserStore.js +1 -1
- package/dist/chooser/Details.svelte +1 -1
- package/dist/chooser/Details.svelte.d.ts +3 -2
- package/dist/tree/Tree.svelte +1 -5
- package/dist/tree/TreeNode.svelte +15 -4
- package/dist/tree/treestore.d.ts +1 -0
- package/dist/tree/treestore.js +11 -0
- package/package.json +2 -2
|
@@ -11,7 +11,7 @@ declare const __propDef: {
|
|
|
11
11
|
rows?: number | undefined;
|
|
12
12
|
conditional?: boolean | undefined;
|
|
13
13
|
required?: boolean | undefined;
|
|
14
|
-
use?: HTMLActionEntry
|
|
14
|
+
use?: HTMLActionEntry[] | undefined;
|
|
15
15
|
inputelement?: HTMLTextAreaElement | undefined;
|
|
16
16
|
related?: number | true | undefined;
|
|
17
17
|
extradescid?: string | undefined;
|
|
@@ -13,7 +13,7 @@ declare const __propDef: {
|
|
|
13
13
|
maxlength?: number | undefined;
|
|
14
14
|
conditional?: boolean | undefined;
|
|
15
15
|
required?: boolean | undefined;
|
|
16
|
-
use?: HTMLActionEntry
|
|
16
|
+
use?: HTMLActionEntry[] | undefined;
|
|
17
17
|
inputelement?: HTMLInputElement | undefined;
|
|
18
18
|
related?: number | true | undefined;
|
|
19
19
|
extradescid?: string | undefined;
|
|
@@ -12,7 +12,7 @@ declare const __propDef: {
|
|
|
12
12
|
rows?: number | undefined;
|
|
13
13
|
conditional?: boolean | undefined;
|
|
14
14
|
required?: boolean | undefined;
|
|
15
|
-
use?: HTMLActionEntry
|
|
15
|
+
use?: HTMLActionEntry[] | undefined;
|
|
16
16
|
inputelement?: HTMLTextAreaElement | undefined;
|
|
17
17
|
related?: number | true | undefined;
|
|
18
18
|
extradescid?: string | undefined;
|
package/dist/Input.svelte.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface IAssetStore {
|
|
|
18
18
|
activetype: ChooserType;
|
|
19
19
|
activesource: number;
|
|
20
20
|
initialized: boolean;
|
|
21
|
-
preview?: AnyUIItem;
|
|
21
|
+
preview?: AnyItem | AnyUIItem;
|
|
22
22
|
}
|
|
23
23
|
export interface ChooserStoreOptions<F> {
|
|
24
24
|
pages?: boolean;
|
|
@@ -44,11 +44,11 @@ export declare class ChooserStore<F = any> extends Store<IAssetStore> {
|
|
|
44
44
|
setOptions(options: ChooserStoreOptions<F>): void;
|
|
45
45
|
sources: import("@txstate-mws/svelte-store").DerivedStore<UISource[], IAssetStore>;
|
|
46
46
|
source: import("@txstate-mws/svelte-store").DerivedStore<UISource | undefined, IAssetStore>;
|
|
47
|
-
preview: import("@txstate-mws/svelte-store").DerivedStore<AnyUIItem | undefined, IAssetStore>;
|
|
47
|
+
preview: import("@txstate-mws/svelte-store").DerivedStore<AnyItem | AnyUIItem | undefined, IAssetStore>;
|
|
48
48
|
getSource(state?: IAssetStore): UISource | undefined;
|
|
49
49
|
getSourceIndex(name: string, state?: IAssetStore, type?: ChooserType): number;
|
|
50
50
|
init(options: ChooserStoreOptions<F>): Promise<void>;
|
|
51
|
-
setPreview(item?: AnyUIItem): void;
|
|
51
|
+
setPreview(item?: AnyItem | AnyUIItem): void;
|
|
52
52
|
clearPreview(): void;
|
|
53
53
|
setSource(name?: string, init?: boolean): void;
|
|
54
54
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Store, derivedStore } from '@txstate-mws/svelte-store';
|
|
2
2
|
import { tick } from 'svelte';
|
|
3
|
-
import { findIndex
|
|
3
|
+
import { findIndex } from 'txstate-utils';
|
|
4
4
|
export const CHOOSER_STORE_CONTEXT = {};
|
|
5
5
|
const nofilter = (x) => true;
|
|
6
6
|
export function combinePath(path, name) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import
|
|
2
|
+
import type { AnyItem } from './ChooserAPI';
|
|
3
|
+
import { type RawURL } from './ChooserStore';
|
|
3
4
|
declare const __propDef: {
|
|
4
5
|
props: {
|
|
5
|
-
item:
|
|
6
|
+
item: AnyItem | RawURL;
|
|
6
7
|
};
|
|
7
8
|
events: {
|
|
8
9
|
[evt: string]: CustomEvent<any>;
|
package/dist/tree/Tree.svelte
CHANGED
|
@@ -95,15 +95,11 @@ function headerDragReset() {
|
|
|
95
95
|
let mounted = false;
|
|
96
96
|
onMount(async () => {
|
|
97
97
|
document.addEventListener('dragend', onDragEnd);
|
|
98
|
-
const saveFocusId = $store.focused?.id;
|
|
99
98
|
headerSizes.set(calcHeaderSizes()); // seems to need a kick on first mount
|
|
100
99
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
101
100
|
// need to wait long enough for headers to redraw before trying to mount the rows
|
|
102
101
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
103
102
|
mounted = true;
|
|
104
|
-
const el = saveFocusId ? document.getElementById(getHashId(saveFocusId)) : undefined;
|
|
105
|
-
if ($store.focused?.id && $store.focused.id === saveFocusId)
|
|
106
|
-
el?.scrollIntoView({ block: 'center' });
|
|
107
103
|
await store.refresh();
|
|
108
104
|
});
|
|
109
105
|
onDestroy(() => {
|
|
@@ -159,7 +155,7 @@ afterUpdate(() => {
|
|
|
159
155
|
.tree-header {
|
|
160
156
|
display: flex;
|
|
161
157
|
align-items: center;
|
|
162
|
-
background-color: var(--tree-head-bg, #
|
|
158
|
+
background-color: var(--tree-head-bg, #757575);
|
|
163
159
|
color: var(--tree-head-text, white);
|
|
164
160
|
position: sticky;
|
|
165
161
|
top: 0;
|
|
@@ -3,10 +3,10 @@ import checkboxBlankOutline from '@iconify-icons/mdi/checkbox-blank-outline';
|
|
|
3
3
|
import menuDown from '@iconify-icons/mdi/menu-down';
|
|
4
4
|
import menuRight from '@iconify-icons/mdi/menu-right';
|
|
5
5
|
import { modifierKey, ScreenReaderOnly } from '@txstate-mws/svelte-components';
|
|
6
|
-
import { createEventDispatcher, getContext } from 'svelte';
|
|
6
|
+
import { createEventDispatcher, getContext, onMount } from 'svelte';
|
|
7
7
|
import { isNotBlank, toArray } from 'txstate-utils';
|
|
8
8
|
import { Icon } from '..';
|
|
9
|
-
import { TREE_STORE_CONTEXT, getHashId } from './treestore';
|
|
9
|
+
import { TREE_STORE_CONTEXT, getHashId, lazyObserver } from './treestore';
|
|
10
10
|
import LoadIcon from './LoadIcon.svelte';
|
|
11
11
|
import TreeCell from './TreeCell.svelte';
|
|
12
12
|
export let headers;
|
|
@@ -243,6 +243,14 @@ function onDragLeaveAbove(e) {
|
|
|
243
243
|
else
|
|
244
244
|
dragOverAbove--;
|
|
245
245
|
}
|
|
246
|
+
let display = $focused && $focused.id === item.id;
|
|
247
|
+
onMount(async () => {
|
|
248
|
+
if ($focused && $focused.id === item.id)
|
|
249
|
+
nodeelement.scrollIntoView({ block: 'center' });
|
|
250
|
+
nodeelement.addEventListener('lazy', () => { display = true; });
|
|
251
|
+
lazyObserver.observe(nodeelement);
|
|
252
|
+
return () => lazyObserver.unobserve(nodeelement);
|
|
253
|
+
});
|
|
246
254
|
$: if ($dragging) {
|
|
247
255
|
dragOver = 0;
|
|
248
256
|
dragOverAbove = 0;
|
|
@@ -287,6 +295,7 @@ $: if ($dragging) {
|
|
|
287
295
|
on:mousedown={e => { if (e.shiftKey) e.preventDefault() }}
|
|
288
296
|
on:dblclick={onDblClick}
|
|
289
297
|
>
|
|
298
|
+
{#if display}
|
|
290
299
|
<!-- keyboard users have modifier keys, they don't ever focus the checkbox -->
|
|
291
300
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
292
301
|
<div class="checkbox" on:click={onCheckClick}>
|
|
@@ -315,6 +324,7 @@ $: if ($dragging) {
|
|
|
315
324
|
{#if item.hasChildren && !showChildren}, right arrow to show children{/if}
|
|
316
325
|
{#if $selected.size > 0}, command-enter to select multiple, shift-enter to select all from last selection{/if}
|
|
317
326
|
</ScreenReaderOnly>
|
|
327
|
+
{/if}
|
|
318
328
|
</div>
|
|
319
329
|
{#if showChildren && item.children}
|
|
320
330
|
<ul role="group">
|
|
@@ -346,6 +356,7 @@ $: if ($dragging) {
|
|
|
346
356
|
border-bottom: var(--tree-border, 1px dashed #aaaaaa);
|
|
347
357
|
width: 100%;
|
|
348
358
|
overflow: hidden;
|
|
359
|
+
min-height: 2.9em;
|
|
349
360
|
}
|
|
350
361
|
:global(.resizing) .tree-node {
|
|
351
362
|
cursor: col-resize;
|
|
@@ -373,7 +384,7 @@ $: if ($dragging) {
|
|
|
373
384
|
color: var(--tree-selected-text, inherit);
|
|
374
385
|
}
|
|
375
386
|
.tree-node.dragOver {
|
|
376
|
-
background-color: var(--tree-droppable, #
|
|
387
|
+
background-color: var(--tree-droppable, #757575);
|
|
377
388
|
color: var(--tree-droppable-text, white);
|
|
378
389
|
}
|
|
379
390
|
.tree-node.dropDisabled {
|
|
@@ -387,7 +398,7 @@ $: if ($dragging) {
|
|
|
387
398
|
height: 6px;
|
|
388
399
|
}
|
|
389
400
|
.drop-above.dragOverAbove {
|
|
390
|
-
background-color: var(--tree-droppable, #
|
|
401
|
+
background-color: var(--tree-droppable, #757575);
|
|
391
402
|
}
|
|
392
403
|
li {
|
|
393
404
|
position: relative;
|
package/dist/tree/treestore.d.ts
CHANGED
|
@@ -117,3 +117,4 @@ export declare class TreeStore<T extends TreeItemFromDB> extends ActiveStore<ITr
|
|
|
117
117
|
}
|
|
118
118
|
export declare const hashedIds: Record<string, string>;
|
|
119
119
|
export declare function getHashId(str: string): string;
|
|
120
|
+
export declare const lazyObserver: IntersectionObserver | undefined;
|
package/dist/tree/treestore.js
CHANGED
|
@@ -345,3 +345,14 @@ export function getHashId(str) {
|
|
|
345
345
|
hashedIds[str] ??= hashid(str);
|
|
346
346
|
return hashedIds[str];
|
|
347
347
|
}
|
|
348
|
+
const lazyEvent = new CustomEvent('lazy');
|
|
349
|
+
export const lazyObserver = typeof IntersectionObserver !== 'undefined'
|
|
350
|
+
? new IntersectionObserver((entries) => {
|
|
351
|
+
for (const entry of entries) {
|
|
352
|
+
if (entry.isIntersecting) {
|
|
353
|
+
entry.target.dispatchEvent(lazyEvent);
|
|
354
|
+
lazyObserver.unobserve(entry.target);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}, { rootMargin: '500px' })
|
|
358
|
+
: undefined;
|
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": "0.0.
|
|
4
|
+
"version": "0.0.50",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepublishOnly": "svelte-package",
|
|
7
7
|
"dev": "vite dev --force",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"svelte-preprocess": "^5.0.0",
|
|
40
40
|
"svelte2tsx": "^0.6.0",
|
|
41
41
|
"tslib": "^2.3.1",
|
|
42
|
-
"typescript": "^
|
|
42
|
+
"typescript": "^5.0.2"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"svelte": "^3.53.1"
|