@lvce-editor/virtual-dom 1.26.0 → 1.28.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/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -262,14 +262,14 @@ const getComponentUidFromEvent = event => {
|
|
|
262
262
|
return getComponentUid(currentTarget || target);
|
|
263
263
|
};
|
|
264
264
|
|
|
265
|
-
const state = {
|
|
265
|
+
const state$1 = {
|
|
266
266
|
ipc: undefined
|
|
267
267
|
};
|
|
268
268
|
const getIpc = () => {
|
|
269
|
-
return state.ipc;
|
|
269
|
+
return state$1.ipc;
|
|
270
270
|
};
|
|
271
271
|
const setIpc = value => {
|
|
272
|
-
state.ipc = value;
|
|
272
|
+
state$1.ipc = value;
|
|
273
273
|
};
|
|
274
274
|
|
|
275
275
|
const cache = new Map();
|
|
@@ -279,7 +279,7 @@ const has = listener => {
|
|
|
279
279
|
const set = (listener, value) => {
|
|
280
280
|
cache.set(listener, value);
|
|
281
281
|
};
|
|
282
|
-
const get = listener => {
|
|
282
|
+
const get$1 = listener => {
|
|
283
283
|
return cache.get(listener);
|
|
284
284
|
};
|
|
285
285
|
|
|
@@ -307,7 +307,7 @@ const getWrappedListener = (listener, returnValue) => {
|
|
|
307
307
|
nameAnonymousFunction(wrapped, listener.name);
|
|
308
308
|
set(listener, wrapped);
|
|
309
309
|
}
|
|
310
|
-
return get(listener);
|
|
310
|
+
return get$1(listener);
|
|
311
311
|
};
|
|
312
312
|
|
|
313
313
|
const getOptions = fn => {
|
|
@@ -488,7 +488,7 @@ const removeChild = ($Element, index) => {
|
|
|
488
488
|
const $Child = $Element.children[index];
|
|
489
489
|
$Child.remove();
|
|
490
490
|
};
|
|
491
|
-
const add = ($Element, nodes) => {
|
|
491
|
+
const add$1 = ($Element, nodes) => {
|
|
492
492
|
renderInternal($Element, nodes, {}, {});
|
|
493
493
|
};
|
|
494
494
|
|
|
@@ -518,7 +518,7 @@ const applyPatch = ($Element, patches) => {
|
|
|
518
518
|
removeChild($Current, patch.index);
|
|
519
519
|
break;
|
|
520
520
|
case Add:
|
|
521
|
-
add($Current, patch.nodes);
|
|
521
|
+
add$1($Current, patch.nodes);
|
|
522
522
|
break;
|
|
523
523
|
case NavigateSibling:
|
|
524
524
|
$Current = $Current.parentNode.childNodes[patch.index];
|
|
@@ -533,8 +533,36 @@ const applyPatch = ($Element, patches) => {
|
|
|
533
533
|
}
|
|
534
534
|
};
|
|
535
535
|
|
|
536
|
+
let id = 0;
|
|
537
|
+
const create = () => {
|
|
538
|
+
return ++id;
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
const state = Object.create(null);
|
|
542
|
+
const get = id => {
|
|
543
|
+
return state[id];
|
|
544
|
+
};
|
|
545
|
+
const getFileHandles = async ids => {
|
|
546
|
+
const promises = ids.map(id => get(id));
|
|
547
|
+
const handles = await Promise.all(promises);
|
|
548
|
+
return handles;
|
|
549
|
+
};
|
|
550
|
+
const add = promise => {
|
|
551
|
+
const id = create();
|
|
552
|
+
state[id] = promise;
|
|
553
|
+
return id;
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
const handleDataTransferFiles = async event => {
|
|
557
|
+
const items = [...event.dataTransfer.items];
|
|
558
|
+
const promises = items.map(item => item.getAsFileSystemHandle());
|
|
559
|
+
const ids = promises.map(promise => add(promise));
|
|
560
|
+
return ids;
|
|
561
|
+
};
|
|
536
562
|
const getEventListenerArg = (param, event) => {
|
|
537
563
|
switch (param) {
|
|
564
|
+
case 'event.dataTransfer.files2':
|
|
565
|
+
return handleDataTransferFiles(event);
|
|
538
566
|
case 'event.clientX':
|
|
539
567
|
return event.clientX;
|
|
540
568
|
case 'event.x':
|
|
@@ -549,6 +577,8 @@ const getEventListenerArg = (param, event) => {
|
|
|
549
577
|
return event.target.value;
|
|
550
578
|
case 'event.isTrusted':
|
|
551
579
|
return event.isTrusted;
|
|
580
|
+
case 'event.dataTransfer.files':
|
|
581
|
+
return event.dataTransfer.files;
|
|
552
582
|
case 'event.target.className':
|
|
553
583
|
return event.target.className;
|
|
554
584
|
case 'event.data':
|
|
@@ -716,4 +746,4 @@ const rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
|
|
|
716
746
|
return $Viewlet;
|
|
717
747
|
};
|
|
718
748
|
|
|
719
|
-
export { applyPatch, getComponentUid, getComponentUidFromEvent, registerEventListeners, rememberFocus, render, renderInto, setComponentUid, setIpc };
|
|
749
|
+
export { applyPatch, getComponentUid, getComponentUidFromEvent, getFileHandles, registerEventListeners, rememberFocus, render, renderInto, setComponentUid, setIpc };
|
package/package.json
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Id from '../Id/Id.ts'
|
|
2
|
+
|
|
3
|
+
const state: Record<number, Promise<FileSystemHandle>> = Object.create(null)
|
|
4
|
+
|
|
5
|
+
export const get = (id: number): Promise<FileSystemHandle> => {
|
|
6
|
+
return state[id]
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const getFileHandles = async (
|
|
10
|
+
ids: readonly number[],
|
|
11
|
+
): Promise<readonly FileSystemHandle[]> => {
|
|
12
|
+
const promises = ids.map((id) => get(id))
|
|
13
|
+
const handles = await Promise.all(promises)
|
|
14
|
+
return handles
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const add = (promise: Promise<FileSystemHandle>): number => {
|
|
18
|
+
const id = Id.create()
|
|
19
|
+
state[id] = promise
|
|
20
|
+
return id
|
|
21
|
+
}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import * as FileHandles from '../FileHandles/FileHandles.ts'
|
|
2
|
+
|
|
3
|
+
const handleDataTransferFiles = async (
|
|
4
|
+
event: any,
|
|
5
|
+
): Promise<readonly number[]> => {
|
|
6
|
+
const items = [...event.dataTransfer.items]
|
|
7
|
+
const promises = items.map((item) => item.getAsFileSystemHandle())
|
|
8
|
+
const ids = promises.map((promise) => FileHandles.add(promise))
|
|
9
|
+
return ids
|
|
10
|
+
}
|
|
11
|
+
|
|
1
12
|
export const getEventListenerArg = (param: string, event: any): any => {
|
|
2
13
|
switch (param) {
|
|
14
|
+
case 'event.dataTransfer.files2':
|
|
15
|
+
return handleDataTransferFiles(event)
|
|
3
16
|
case 'event.clientX':
|
|
4
17
|
return event.clientX
|
|
5
18
|
case 'event.x':
|
|
@@ -14,6 +27,8 @@ export const getEventListenerArg = (param: string, event: any): any => {
|
|
|
14
27
|
return event.target.value
|
|
15
28
|
case 'event.isTrusted':
|
|
16
29
|
return event.isTrusted
|
|
30
|
+
case 'event.dataTransfer.files':
|
|
31
|
+
return event.dataTransfer.files
|
|
17
32
|
case 'event.target.className':
|
|
18
33
|
return event.target.className
|
|
19
34
|
case 'event.data':
|
package/src/parts/Main/Main.ts
CHANGED
|
@@ -8,3 +8,4 @@ export { setIpc } from '../IpcState/IpcState.ts'
|
|
|
8
8
|
export { registerEventListeners } from '../RegisterEventListeners/RegisterEventListeners.ts'
|
|
9
9
|
export { rememberFocus } from '../RememberFocus/RememberFocus.ts'
|
|
10
10
|
export { render, renderInto } from '../VirtualDom/VirtualDom.ts'
|
|
11
|
+
export { getFileHandles } from '../FileHandles/FileHandles.ts'
|