@lvce-editor/virtual-dom 4.0.0 → 4.1.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
@@ -1,16 +1,16 @@
1
1
  // Generated by dts-bundle-generator v9.5.1
2
2
 
3
3
  export interface VirtualDomNode {
4
- readonly type: number;
5
4
  readonly [key: string]: any;
5
+ readonly type: number;
6
6
  }
7
7
  export interface AddPatch {
8
- readonly type: 6;
9
8
  readonly nodes: readonly VirtualDomNode[];
9
+ readonly type: 6;
10
10
  }
11
11
  export interface AttributePatch {
12
- readonly type: 3;
13
12
  readonly key: string;
13
+ readonly type: 3;
14
14
  readonly value: any;
15
15
  }
16
16
  export type NavigateChildPatch = {
@@ -25,21 +25,21 @@ export type NavigateSiblingPatch = {
25
25
  readonly index: number;
26
26
  };
27
27
  export interface RemoveAttributePatch {
28
- readonly type: 4;
29
28
  readonly key: string;
29
+ readonly type: 4;
30
30
  }
31
31
  export interface RemoveChildPatch {
32
- readonly type: 9;
33
32
  readonly index: number;
33
+ readonly type: 9;
34
34
  }
35
35
  export interface RemovePatch {
36
- readonly type: 5;
37
36
  readonly index: number;
37
+ readonly type: 5;
38
38
  }
39
39
  export interface ReplacePatch {
40
- readonly type: 2;
41
40
  readonly index: number;
42
41
  readonly node: VirtualDomNode;
42
+ readonly type: 2;
43
43
  }
44
44
  export interface TextPatch {
45
45
  readonly type: 1;
@@ -50,8 +50,18 @@ export declare const applyPatch: ($Element: Node, patches: readonly Patch[]) =>
50
50
  export declare const setComponentUid: ($Element: any, uid: any) => void;
51
51
  export declare const getComponentUid: ($Element: any) => number;
52
52
  export declare const getComponentUidFromEvent: (event: any) => number;
53
- export declare const setDragInfo: (id: string | number, data: any) => void;
54
- export declare const getDragInfo: (id: string | number) => any;
53
+ export interface DragInfoItem {
54
+ readonly data: string;
55
+ readonly type: string;
56
+ }
57
+ export interface IDragInfoNew {
58
+ readonly items: readonly DragInfoItem[];
59
+ readonly label?: string;
60
+ }
61
+ export type IDragInfoOld = readonly DragInfoItem[];
62
+ export type IDragInfo = IDragInfoNew | IDragInfoOld;
63
+ export declare const setDragInfo: (id: string | number, data: IDragInfo) => void;
64
+ export declare const getDragInfo: (id: string | number) => IDragInfo;
55
65
  export declare const removeDragInfo: (id: string | number) => void;
56
66
  export declare const getFileHandles: (ids: readonly number[]) => Promise<readonly FileSystemHandle[]>;
57
67
  export declare const addFileHandle: (fileHandle: FileSystemHandle) => number;
package/dist/index.js CHANGED
@@ -174,8 +174,44 @@ const VirtualDomElements = {
174
174
 
175
175
  const getElementTag$1 = type => {
176
176
  switch (type) {
177
+ case A:
178
+ return A$1;
179
+ case Article:
180
+ return Article$1;
181
+ case Aside:
182
+ return Aside$1;
177
183
  case Audio:
178
184
  return Audio$1;
185
+ case Br:
186
+ return Br$1;
187
+ case Button:
188
+ return Button$1;
189
+ case Cite:
190
+ return Cite$1;
191
+ case Code:
192
+ return Code$1;
193
+ case Col:
194
+ return Col$1;
195
+ case ColGroup:
196
+ return ColGroup$1;
197
+ case Data:
198
+ return Data$1;
199
+ case Dd:
200
+ return Dd$1;
201
+ case Del:
202
+ return Del$1;
203
+ case Div:
204
+ return Div$1;
205
+ case Dl:
206
+ return Dl$1;
207
+ case Dt:
208
+ return Dt$1;
209
+ case Figcaption:
210
+ return Figcaption$1;
211
+ case Figure:
212
+ return Figure$1;
213
+ case Footer:
214
+ return Footer$1;
179
215
  case H1:
180
216
  return H1$1;
181
217
  case H2:
@@ -188,100 +224,64 @@ const getElementTag$1 = type => {
188
224
  return H5$1;
189
225
  case H6:
190
226
  return H6$1;
191
- case Div:
192
- return Div$1;
193
- case Kbd:
194
- return Kbd$1;
195
- case Table:
196
- return Table$1;
197
- case TBody:
198
- return TBody$1;
199
- case Th:
200
- return Th$1;
201
- case Td:
202
- return Td$1;
203
- case THead:
204
- return THead$1;
205
- case Tr:
206
- return Tr$1;
207
- case Input:
208
- return Input$1;
209
- case ColGroup:
210
- return ColGroup$1;
211
- case Col:
212
- return Col$1;
213
- case Button:
214
- return Button$1;
215
- case Span:
216
- return Span$1;
227
+ case Header:
228
+ return Header$1;
229
+ case Hr:
230
+ return Hr$1;
217
231
  case I:
218
232
  return I$1;
219
233
  case Img:
220
234
  return Img$1;
235
+ case Input:
236
+ return Input$1;
221
237
  case Ins:
222
238
  return Ins$1;
223
- case Del:
224
- return Del$1;
225
- case Article:
226
- return Article$1;
227
- case Aside:
228
- return Aside$1;
229
- case Footer:
230
- return Footer$1;
231
- case Header:
232
- return Header$1;
233
- case Nav:
234
- return Nav$1;
235
- case Section:
236
- return Section$1;
237
- case Search:
238
- return Search$1;
239
- case Dd:
240
- return Dd$1;
241
- case Dl:
242
- return Dl$1;
243
- case Figcaption:
244
- return Figcaption$1;
245
- case Figure:
246
- return Figure$1;
247
- case Hr:
248
- return Hr$1;
239
+ case Kbd:
240
+ return Kbd$1;
241
+ case Label:
242
+ return Label$1;
249
243
  case Li:
250
244
  return Li$1;
245
+ case Nav:
246
+ return Nav$1;
251
247
  case Ol:
252
248
  return Ol$1;
249
+ case Option:
250
+ return Option$1;
253
251
  case P:
254
252
  return P$1;
255
253
  case Pre:
256
254
  return Pre$1;
257
- case A:
258
- return A$1;
259
- case Br:
260
- return Br$1;
261
- case Cite:
262
- return Cite$1;
263
- case Data:
264
- return Data$1;
265
- case Time:
266
- return Time$1;
255
+ case Search:
256
+ return Search$1;
257
+ case Section:
258
+ return Section$1;
259
+ case Select:
260
+ return Select$1;
261
+ case Span:
262
+ return Span$1;
263
+ case Table:
264
+ return Table$1;
265
+ case TBody:
266
+ return TBody$1;
267
+ case Td:
268
+ return Td$1;
269
+ case TextArea:
270
+ return TextArea$1;
267
271
  case Tfoot:
268
272
  return Tfoot$1;
273
+ case Th:
274
+ return Th$1;
275
+ case THead:
276
+ return THead$1;
277
+ case Time:
278
+ return Time$1;
279
+ case Tr:
280
+ return Tr$1;
269
281
  case Ul:
270
282
  return Ul$1;
271
283
  case Video:
272
284
  return Video$1;
273
- case TextArea:
274
- return TextArea$1;
275
- case Select:
276
- return Select$1;
277
- case Option:
278
- return Option$1;
279
- case Code:
280
- return Code$1;
281
- case Label:
282
- return Label$1;
283
- case Dt:
284
- return Dt$1;
285
285
  default:
286
286
  throw new Error(`element tag not found ${type}`);
287
287
  }
@@ -336,8 +336,8 @@ const getComponentUid = $Element => {
336
336
  };
337
337
  const getComponentUidFromEvent = event => {
338
338
  const {
339
- target,
340
- currentTarget
339
+ currentTarget,
340
+ target
341
341
  } = event;
342
342
  return getComponentUid(currentTarget || target);
343
343
  };
@@ -419,34 +419,18 @@ const attachEvent = ($Node, eventMap, key, value, newEventMap) => {
419
419
 
420
420
  const setProp = ($Element, key, value, eventMap, newEventMap) => {
421
421
  switch (key) {
422
- case 'maskImage':
423
- $Element.style.maskImage = `url('${value}')`;
424
- $Element.style.webkitMaskImage = `url('${value}')`;
425
- break;
426
- case 'paddingLeft':
427
- case 'paddingRight':
428
- case 'top':
429
- case 'left':
430
- case 'marginTop':
431
- $Element.style[key] = typeof value === 'number' ? `${value}px` : value;
432
- break;
433
- case 'translate':
434
- $Element.style[key] = value;
435
- break;
436
- case 'width':
437
- case 'height':
438
- if ($Element instanceof HTMLImageElement) {
439
- $Element[key] = value;
440
- } else if (typeof value === 'number') {
441
- $Element.style[key] = `${value}px`;
422
+ case 'ariaActivedescendant':
423
+ if (value) {
424
+ $Element.setAttribute('aria-activedescendant', value);
442
425
  } else {
443
- $Element.style[key] = value;
426
+ $Element.removeAttribute('aria-activedescendant');
444
427
  }
445
428
  break;
446
- case 'style':
447
- throw new Error('style property is not supported');
448
- case 'childCount':
449
- case 'type':
429
+ case 'ariaControls':
430
+ $Element.setAttribute('aria-controls', value);
431
+ break;
432
+ case 'ariaLabelledBy':
433
+ $Element.setAttribute('aria-labelledby', value);
450
434
  break;
451
435
  case 'ariaOwns':
452
436
  // TODO remove this once idl is supported
@@ -456,22 +440,37 @@ const setProp = ($Element, key, value, eventMap, newEventMap) => {
456
440
  $Element.removeAttribute('aria-owns');
457
441
  }
458
442
  break;
459
- case 'ariaActivedescendant':
460
- if (value) {
461
- $Element.setAttribute('aria-activedescendant', value);
443
+ case 'height':
444
+ case 'width':
445
+ if ($Element instanceof HTMLImageElement) {
446
+ $Element[key] = value;
447
+ } else if (typeof value === 'number') {
448
+ $Element.style[key] = `${value}px`;
462
449
  } else {
463
- $Element.removeAttribute('aria-activedescendant');
450
+ $Element.style[key] = value;
464
451
  }
465
452
  break;
466
- case 'ariaControls':
467
- $Element.setAttribute('aria-controls', value);
453
+ case 'id':
454
+ if (value) {
455
+ $Element[key] = value;
456
+ } else {
457
+ $Element.removeAttribute(key);
458
+ }
468
459
  break;
469
460
  case 'inputType':
470
461
  // @ts-ignore
471
462
  $Element.type = value;
472
463
  break;
473
- case 'ariaLabelledBy':
474
- $Element.setAttribute('aria-labelledby', value);
464
+ case 'left':
465
+ case 'marginTop':
466
+ case 'paddingLeft':
467
+ case 'paddingRight':
468
+ case 'top':
469
+ $Element.style[key] = typeof value === 'number' ? `${value}px` : value;
470
+ break;
471
+ case 'maskImage':
472
+ $Element.style.maskImage = `url('${value}')`;
473
+ $Element.style.webkitMaskImage = `url('${value}')`;
475
474
  break;
476
475
  case 'onBlur':
477
476
  case 'onChange':
@@ -505,12 +504,13 @@ const setProp = ($Element, key, value, eventMap, newEventMap) => {
505
504
  }
506
505
  attachEvent($Element, eventMap, eventName, value, newEventMap);
507
506
  break;
508
- case 'id':
509
- if (value) {
510
- $Element[key] = value;
511
- } else {
512
- $Element.removeAttribute(key);
513
- }
507
+ case 'style':
508
+ throw new Error('style property is not supported');
509
+ case 'childCount':
510
+ case 'type':
511
+ break;
512
+ case 'translate':
513
+ $Element.style[key] = value;
514
514
  break;
515
515
  default:
516
516
  if (key.startsWith('data-')) {
@@ -594,30 +594,30 @@ const applyPatch = ($Element, patches) => {
594
594
  let $Current = $Element;
595
595
  for (const patch of patches) {
596
596
  switch (patch.type) {
597
- case SetAttribute:
598
- setAttribute($Current, patch.key, patch.value);
599
- break;
600
- case RemoveAttribute:
601
- removeAttribute($Current, patch.key);
602
- break;
603
- case SetText:
604
- setText($Current, patch.value);
605
- break;
606
- case RemoveChild:
607
- removeChild($Current, patch.index);
608
- break;
609
597
  case Add:
610
598
  add$1($Current, patch.nodes);
611
599
  break;
612
- case NavigateSibling:
613
- $Current = $Current.parentNode.childNodes[patch.index];
614
- break;
615
600
  case NavigateChild:
616
601
  $Current = $Current.childNodes[patch.index];
617
602
  break;
618
603
  case NavigateParent:
619
604
  $Current = $Current.parentNode;
620
605
  break;
606
+ case NavigateSibling:
607
+ $Current = $Current.parentNode.childNodes[patch.index];
608
+ break;
609
+ case RemoveAttribute:
610
+ removeAttribute($Current, patch.key);
611
+ break;
612
+ case RemoveChild:
613
+ removeChild($Current, patch.index);
614
+ break;
615
+ case SetAttribute:
616
+ setAttribute($Current, patch.key, patch.value);
617
+ break;
618
+ case SetText:
619
+ setText($Current, patch.value);
620
+ break;
621
621
  }
622
622
  }
623
623
  };
@@ -632,6 +632,9 @@ const getDragInfo = id => {
632
632
  const removeDragInfo = id => {
633
633
  delete dragInfos[id];
634
634
  };
635
+ const isDragInfoOld = data => {
636
+ return Array.isArray(data);
637
+ };
635
638
 
636
639
  let id = 0;
637
640
  const create = () => {
@@ -673,8 +676,8 @@ const setDragImage = (dataTransfer, label) => {
673
676
 
674
677
  const applyDragInfoMaybe = event => {
675
678
  const {
676
- target,
677
- dataTransfer
679
+ dataTransfer,
680
+ target
678
681
  } = event;
679
682
  if (dataTransfer) {
680
683
  const uid = getComponentUid(target);
@@ -682,11 +685,17 @@ const applyDragInfoMaybe = event => {
682
685
  if (!dragInfo) {
683
686
  return;
684
687
  }
685
- for (const item of dragInfo) {
686
- dataTransfer.setData(item.type, item.data);
687
- }
688
- if (dragInfo.label) {
689
- setDragImage(dataTransfer, dragInfo.label);
688
+ if (isDragInfoOld(dragInfo)) {
689
+ for (const item of dragInfo) {
690
+ dataTransfer.setData(item.type, item.data);
691
+ }
692
+ } else {
693
+ for (const item of dragInfo.items) {
694
+ dataTransfer.items.add(item.data, item.data);
695
+ }
696
+ if (dragInfo.label) {
697
+ setDragImage(dataTransfer, dragInfo.label);
698
+ }
690
699
  }
691
700
  }
692
701
  };
@@ -713,66 +722,66 @@ const handleDataTransferFiles = event => {
713
722
  };
714
723
  const getEventListenerArg = (param, event) => {
715
724
  switch (param) {
716
- case 'event.dataTransfer.files2':
717
- return handleDataTransferFiles(event);
725
+ case 'event.altKey':
726
+ return event.altKey;
727
+ case 'event.button':
728
+ return event.button;
718
729
  case 'event.clientX':
719
730
  return event.clientX;
720
- case 'event.x':
721
- return event.x;
722
731
  case 'event.clientY':
723
732
  return event.clientY;
724
- case 'event.y':
725
- return event.y;
726
- case 'event.button':
727
- return event.button;
728
- case 'event.target.value':
729
- return event.target.value;
730
- case 'event.isTrusted':
731
- return event.isTrusted;
732
- case 'event.dataTransfer.files':
733
- return event.dataTransfer.files;
734
- case 'event.target.className':
735
- return event.target.className;
733
+ case 'event.ctrlKey':
734
+ return event.ctrlKey;
736
735
  case 'event.data':
737
736
  return event.data;
737
+ case 'event.dataTransfer.files':
738
+ return event.dataTransfer.files;
739
+ case 'event.dataTransfer.files2':
740
+ return handleDataTransferFiles(event);
741
+ case 'event.defaultPrevented':
742
+ return event.defaultPrevented;
738
743
  case 'event.deltaMode':
739
744
  return event.deltaMode;
740
745
  case 'event.deltaX':
741
746
  return event.deltaX;
742
747
  case 'event.deltaY':
743
748
  return event.deltaY;
744
- case 'event.target.scrollTop':
745
- return event.target.scrollTop;
746
749
  case 'event.detail':
747
750
  return event.detail;
748
- case 'event.target.name':
749
- return event.target.name || '';
750
- case 'event.target.href':
751
- return event.target.href;
752
- case 'event.target.src':
753
- return event.target.src;
754
- case 'event.altKey':
755
- return event.altKey;
751
+ case 'event.inputType':
752
+ return event.inputType;
753
+ case 'event.isTrusted':
754
+ return event.isTrusted;
756
755
  case 'event.key':
757
756
  return event.key;
758
- case 'event.ctrlKey':
759
- return event.ctrlKey;
760
757
  case 'event.shiftKey':
761
758
  return event.shiftKey;
762
- case 'event.inputType':
763
- return event.inputType;
764
- case 'event.defaultPrevented':
765
- return event.defaultPrevented;
766
- case 'event.target.dataset.name':
767
- return event.target.dataset.name;
759
+ case 'event.target.className':
760
+ return event.target.className;
768
761
  case 'event.target.dataset.index':
769
762
  return event.target.dataset.index;
763
+ case 'event.target.dataset.name':
764
+ return event.target.dataset.name;
765
+ case 'event.target.href':
766
+ return event.target.href;
767
+ case 'event.target.name':
768
+ return event.target.name || '';
770
769
  case 'event.target.nodeName':
771
770
  return event.target.nodeName;
772
- case 'event.target.selectionStart':
773
- return event.target.selectionStart;
771
+ case 'event.target.scrollTop':
772
+ return event.target.scrollTop;
774
773
  case 'event.target.selectionEnd':
775
774
  return event.target.selectionEnd;
775
+ case 'event.target.selectionStart':
776
+ return event.target.selectionStart;
777
+ case 'event.target.src':
778
+ return event.target.src;
779
+ case 'event.target.value':
780
+ return event.target.value;
781
+ case 'event.x':
782
+ return event.x;
783
+ case 'event.y':
784
+ return event.y;
776
785
  default:
777
786
  return param;
778
787
  }
@@ -811,8 +820,8 @@ const applyPointerTrackMaybe = (info, map, event) => {
811
820
  return;
812
821
  }
813
822
  const {
814
- target,
815
- pointerId
823
+ pointerId,
824
+ target
816
825
  } = event;
817
826
  target.setPointerCapture(pointerId);
818
827
  const [pointerMoveKey, pointerUpKey] = trackPointerEvents;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/virtual-dom",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/lvce-editor/virtual-dom.git"