@lvce-editor/renderer-process 3.3.0 → 3.4.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.
@@ -12,7 +12,7 @@ class CommandNotFoundError extends Error {
12
12
  }
13
13
  }
14
14
 
15
- const Audio$4 = 1;
15
+ const Audio$3 = 1;
16
16
  const ClipBoard = 2;
17
17
  const Css = 3;
18
18
  const Developer = 4;
@@ -57,7 +57,7 @@ const MeasureTextBlockHeight = 45;
57
57
  const getModuleId = commandId => {
58
58
  switch (commandId) {
59
59
  case 'Audio.play':
60
- return Audio$4;
60
+ return Audio$3;
61
61
  case 'ClipBoard.execCopy':
62
62
  case 'ClipBoard.readText':
63
63
  case 'ClipBoard.writeImage':
@@ -394,7 +394,7 @@ const handleContentSecurityPolicyViolation = event => {
394
394
 
395
395
  const load$1 = moduleId => {
396
396
  switch (moduleId) {
397
- case Audio$4:
397
+ case Audio$3:
398
398
  return Promise.resolve().then(function () { return Audio_ipc; });
399
399
  case ClipBoard:
400
400
  return Promise.resolve().then(function () { return ClipBoard_ipc; });
@@ -995,9 +995,6 @@ let AssertionError$1 = class AssertionError extends Error {
995
995
  this.name = 'AssertionError';
996
996
  }
997
997
  };
998
-
999
- // TODO treeshake out this whole module in production
1000
-
1001
998
  const getType = value => {
1002
999
  switch (typeof value) {
1003
1000
  case 'number':
@@ -2676,7 +2673,7 @@ const Error$3 = 'error';
2676
2673
  const Focus = 'focus';
2677
2674
  const FocusIn = 'focusin';
2678
2675
  const FocusOut = 'focusout';
2679
- const Input$2 = 'input';
2676
+ const Input$1 = 'input';
2680
2677
  const KeyDown = 'keydown';
2681
2678
  const KeyUp = 'keyup';
2682
2679
  const LostPointerCapture = 'lostpointercapture';
@@ -2695,391 +2692,321 @@ const TouchMove = 'touchmove';
2695
2692
  const TouchStart = 'touchstart';
2696
2693
  const Wheel = 'wheel';
2697
2694
 
2698
- const clearNode = $Node => {
2699
- $Node.textContent = '';
2700
- };
2701
-
2702
- const Audio$3 = 'audio';
2703
- const Button$1 = 'button';
2704
- const Col$1 = 'col';
2705
- const ColGroup$1 = 'colgroup';
2706
- const Del$1 = 'del';
2707
- const Div$1 = 'div';
2708
- const H1$1 = 'h1';
2709
- const H2$1 = 'h2';
2710
- const H3$1 = 'h3';
2711
- const H4$1 = 'h4';
2712
- const H5$1 = 'h5';
2713
- const H6$1 = 'h6';
2714
- const I$1 = 'i';
2715
- const Img$1 = 'img';
2716
- const Input$1 = 'input';
2717
- const Ins$1 = 'ins';
2718
- const Kbd$1 = 'kbd';
2719
- const Span$1 = 'span';
2720
- const Table$1 = 'table';
2721
- const TBody$1 = 'tbody';
2722
- const Td$1 = 'td';
2723
- const Th$1 = 'th';
2724
- const THead$1 = 'thead';
2725
- const Tr$1 = 'tr';
2726
- const Article$1 = 'article';
2727
- const Aside$1 = 'aside';
2728
- const Footer$1 = 'footer';
2729
- const Header$1 = 'header';
2730
- const Nav$1 = 'nav';
2731
- const Section$1 = 'section';
2732
- const Search$2 = 'search';
2733
- const Dd$1 = 'dd';
2734
- const Dl$1 = 'dl';
2735
- const Figcaption$1 = 'figcaption';
2736
- const Figure$1 = 'figure';
2737
- const Hr$1 = 'hr';
2738
- const Li$1 = 'li';
2739
- const Ol$1 = 'ol';
2740
- const P$1 = 'p';
2741
- const Pre$1 = 'pre';
2742
- const A$1 = 'a';
2743
- const Br$1 = 'br';
2744
- const Cite$1 = 'cite';
2745
- const Data$1 = 'data';
2746
- const Time$2 = 'time';
2747
- const Tfoot$1 = 'tfoot';
2748
- const Ul$1 = 'ul';
2749
- const Video$2 = 'video';
2750
- const TextArea$1 = 'textarea';
2751
- const Select$1 = 'select';
2752
- const Option$1 = 'option';
2753
-
2754
- const Audio$2 = 0;
2755
- const Button = 1;
2756
- const Col = 2;
2757
- const ColGroup = 3;
2758
- const Div = 4;
2759
- const H1 = 5;
2760
- const Input = 6;
2761
- const Kbd = 7;
2762
- const Span = 8;
2763
- const Table = 9;
2764
- const TBody = 10;
2765
- const Td = 11;
2766
- const Text$2 = 12;
2767
- const Th = 13;
2768
- const THead = 14;
2769
- const Tr = 15;
2770
- const I = 16;
2771
- const Img = 17;
2772
- const Ins = 20;
2773
- const Del = 21;
2774
- const H2 = 22;
2775
- const H3 = 23;
2776
- const H4 = 24;
2777
- const H5 = 25;
2778
- const H6 = 26;
2779
- const Article = 27;
2780
- const Aside = 28;
2781
- const Footer = 29;
2782
- const Header = 30;
2783
- const Nav = 40;
2784
- const Section = 41;
2785
- const Search$1 = 42;
2786
- const Dd = 43;
2787
- const Dl = 44;
2788
- const Figcaption = 45;
2789
- const Figure = 46;
2790
- const Hr = 47;
2791
- const Li = 48;
2792
- const Ol = 49;
2793
- const P = 50;
2794
- const Pre = 51;
2795
- const A = 53;
2796
- const Br = 55;
2797
- const Cite = 56;
2798
- const Data = 57;
2799
- const Time$1 = 58;
2800
- const Tfoot = 59;
2801
- const Ul = 60;
2802
- const Video$1 = 61;
2803
- const TextArea = 62;
2804
- const Select = 63;
2805
- const Option = 64;
2806
-
2807
- const getElementTag = type => {
2695
+ // src/parts/ClearNode/ClearNode.ts
2696
+ var clearNode = $Node => {
2697
+ $Node.textContent = "";
2698
+ };
2699
+
2700
+ // src/parts/ElementTags/ElementTags.ts
2701
+ var Audio$2 = "audio";
2702
+ var Button = "button";
2703
+ var Col = "col";
2704
+ var ColGroup = "colgroup";
2705
+ var Del = "del";
2706
+ var Div = "div";
2707
+ var H1 = "h1";
2708
+ var H2 = "h2";
2709
+ var H3 = "h3";
2710
+ var H4 = "h4";
2711
+ var H5 = "h5";
2712
+ var H6 = "h6";
2713
+ var I = "i";
2714
+ var Img = "img";
2715
+ var Input = "input";
2716
+ var Ins = "ins";
2717
+ var Kbd = "kbd";
2718
+ var Span = "span";
2719
+ var Table = "table";
2720
+ var TBody = "tbody";
2721
+ var Td = "td";
2722
+ var Th = "th";
2723
+ var THead = "thead";
2724
+ var Tr = "tr";
2725
+ var Article = "article";
2726
+ var Aside = "aside";
2727
+ var Footer = "footer";
2728
+ var Header = "header";
2729
+ var Nav = "nav";
2730
+ var Section = "section";
2731
+ var Search$1 = "search";
2732
+ var Dd = "dd";
2733
+ var Dl = "dl";
2734
+ var Figcaption = "figcaption";
2735
+ var Figure = "figure";
2736
+ var Hr = "hr";
2737
+ var Li = "li";
2738
+ var Ol = "ol";
2739
+ var P = "p";
2740
+ var Pre = "pre";
2741
+ var A = "a";
2742
+ var Br = "br";
2743
+ var Cite = "cite";
2744
+ var Data = "data";
2745
+ var Time$1 = "time";
2746
+ var Tfoot = "tfoot";
2747
+ var Ul = "ul";
2748
+ var Video$1 = "video";
2749
+ var TextArea = "textarea";
2750
+ var Select = "select";
2751
+ var Option = "option";
2752
+
2753
+ // src/parts/VirtualDomElements/VirtualDomElements.ts
2754
+ var Audio2 = 0;
2755
+ var Button2 = 1;
2756
+ var Col2 = 2;
2757
+ var ColGroup2 = 3;
2758
+ var Div2 = 4;
2759
+ var H12 = 5;
2760
+ var Input2 = 6;
2761
+ var Kbd2 = 7;
2762
+ var Span2 = 8;
2763
+ var Table2 = 9;
2764
+ var TBody2 = 10;
2765
+ var Td2 = 11;
2766
+ var Text$2 = 12;
2767
+ var Th2 = 13;
2768
+ var THead2 = 14;
2769
+ var Tr2 = 15;
2770
+ var I2 = 16;
2771
+ var Img2 = 17;
2772
+ var Ins2 = 20;
2773
+ var Del2 = 21;
2774
+ var H22 = 22;
2775
+ var H32 = 23;
2776
+ var H42 = 24;
2777
+ var H52 = 25;
2778
+ var H62 = 26;
2779
+ var Article2 = 27;
2780
+ var Aside2 = 28;
2781
+ var Footer2 = 29;
2782
+ var Header2 = 30;
2783
+ var Nav2 = 40;
2784
+ var Section2 = 41;
2785
+ var Search2 = 42;
2786
+ var Dd2 = 43;
2787
+ var Dl2 = 44;
2788
+ var Figcaption2 = 45;
2789
+ var Figure2 = 46;
2790
+ var Hr2 = 47;
2791
+ var Li2 = 48;
2792
+ var Ol2 = 49;
2793
+ var P2 = 50;
2794
+ var Pre2 = 51;
2795
+ var A2 = 53;
2796
+ var Br2 = 55;
2797
+ var Cite2 = 56;
2798
+ var Data2 = 57;
2799
+ var Time2 = 58;
2800
+ var Tfoot2 = 59;
2801
+ var Ul2 = 60;
2802
+ var Video2 = 61;
2803
+ var TextArea2 = 62;
2804
+ var Select2 = 63;
2805
+ var Option2 = 64;
2806
+
2807
+ // src/parts/ElementTagMap/ElementTagMap.ts
2808
+ var getElementTag = type => {
2808
2809
  switch (type) {
2809
- case Audio$2:
2810
- return Audio$3;
2811
- case H1:
2812
- return H1$1;
2813
- case H2:
2814
- return H2$1;
2815
- case H3:
2816
- return H3$1;
2817
- case H4:
2818
- return H4$1;
2819
- case H5:
2820
- return H5$1;
2821
- case H6:
2822
- return H6$1;
2823
- case Div:
2824
- return Div$1;
2825
- case Kbd:
2826
- return Kbd$1;
2827
- case Table:
2828
- return Table$1;
2829
- case TBody:
2830
- return TBody$1;
2831
- case Th:
2832
- return Th$1;
2833
- case Td:
2834
- return Td$1;
2835
- case THead:
2836
- return THead$1;
2837
- case Tr:
2838
- return Tr$1;
2839
- case Input:
2840
- return Input$1;
2841
- case ColGroup:
2842
- return ColGroup$1;
2843
- case Col:
2844
- return Col$1;
2845
- case Button:
2846
- return Button$1;
2847
- case Span:
2848
- return Span$1;
2849
- case I:
2850
- return I$1;
2851
- case Img:
2852
- return Img$1;
2853
- case Ins:
2854
- return Ins$1;
2855
- case Del:
2856
- return Del$1;
2857
- case Article:
2858
- return Article$1;
2859
- case Aside:
2860
- return Aside$1;
2861
- case Footer:
2862
- return Footer$1;
2863
- case Header:
2864
- return Header$1;
2865
- case Nav:
2866
- return Nav$1;
2867
- case Section:
2868
- return Section$1;
2869
- case Search$1:
2870
- return Search$2;
2871
- case Dd:
2872
- return Dd$1;
2873
- case Dl:
2874
- return Dl$1;
2875
- case Figcaption:
2876
- return Figcaption$1;
2877
- case Figure:
2878
- return Figure$1;
2879
- case Hr:
2880
- return Hr$1;
2881
- case Li:
2882
- return Li$1;
2883
- case Ol:
2884
- return Ol$1;
2885
- case P:
2886
- return P$1;
2887
- case Pre:
2888
- return Pre$1;
2889
- case A:
2890
- return A$1;
2891
- case Br:
2892
- return Br$1;
2893
- case Cite:
2894
- return Cite$1;
2895
- case Data:
2896
- return Data$1;
2897
- case Time$1:
2898
- return Time$2;
2899
- case Tfoot:
2900
- return Tfoot$1;
2901
- case Ul:
2902
- return Ul$1;
2903
- case Video$1:
2904
- return Video$2;
2905
- case TextArea:
2906
- return TextArea$1;
2907
- case Select:
2908
- return Select$1;
2909
- case Option:
2910
- return Option$1;
2810
+ case Audio2:
2811
+ return Audio$2;
2812
+ case H12:
2813
+ return H1;
2814
+ case H22:
2815
+ return H2;
2816
+ case H32:
2817
+ return H3;
2818
+ case H42:
2819
+ return H4;
2820
+ case H52:
2821
+ return H5;
2822
+ case H62:
2823
+ return H6;
2824
+ case Div2:
2825
+ return Div;
2826
+ case Kbd2:
2827
+ return Kbd;
2828
+ case Table2:
2829
+ return Table;
2830
+ case TBody2:
2831
+ return TBody;
2832
+ case Th2:
2833
+ return Th;
2834
+ case Td2:
2835
+ return Td;
2836
+ case THead2:
2837
+ return THead;
2838
+ case Tr2:
2839
+ return Tr;
2840
+ case Input2:
2841
+ return Input;
2842
+ case ColGroup2:
2843
+ return ColGroup;
2844
+ case Col2:
2845
+ return Col;
2846
+ case Button2:
2847
+ return Button;
2848
+ case Span2:
2849
+ return Span;
2850
+ case I2:
2851
+ return I;
2852
+ case Img2:
2853
+ return Img;
2854
+ case Ins2:
2855
+ return Ins;
2856
+ case Del2:
2857
+ return Del;
2858
+ case Article2:
2859
+ return Article;
2860
+ case Aside2:
2861
+ return Aside;
2862
+ case Footer2:
2863
+ return Footer;
2864
+ case Header2:
2865
+ return Header;
2866
+ case Nav2:
2867
+ return Nav;
2868
+ case Section2:
2869
+ return Section;
2870
+ case Search2:
2871
+ return Search$1;
2872
+ case Dd2:
2873
+ return Dd;
2874
+ case Dl2:
2875
+ return Dl;
2876
+ case Figcaption2:
2877
+ return Figcaption;
2878
+ case Figure2:
2879
+ return Figure;
2880
+ case Hr2:
2881
+ return Hr;
2882
+ case Li2:
2883
+ return Li;
2884
+ case Ol2:
2885
+ return Ol;
2886
+ case P2:
2887
+ return P;
2888
+ case Pre2:
2889
+ return Pre;
2890
+ case A2:
2891
+ return A;
2892
+ case Br2:
2893
+ return Br;
2894
+ case Cite2:
2895
+ return Cite;
2896
+ case Data2:
2897
+ return Data;
2898
+ case Time2:
2899
+ return Time$1;
2900
+ case Tfoot2:
2901
+ return Tfoot;
2902
+ case Ul2:
2903
+ return Ul;
2904
+ case Video2:
2905
+ return Video$1;
2906
+ case TextArea2:
2907
+ return TextArea;
2908
+ case Select2:
2909
+ return Select;
2910
+ case Option2:
2911
+ return Option;
2911
2912
  default:
2912
2913
  throw new Error(`element tag not found ${type}`);
2913
2914
  }
2914
2915
  };
2915
2916
 
2916
- const getEventListenerOptions = eventName => {
2917
- switch (eventName) {
2918
- case 'wheel':
2919
- return {
2920
- passive: true
2921
- };
2922
- default:
2923
- return undefined;
2924
- }
2925
- };
2926
-
2927
- const uidSymbol = Symbol('uid');
2928
- const set$2 = ($Element, uid) => {
2929
- $Element[uidSymbol] = uid;
2930
- };
2931
- const getUidTarget = $Element => {
2932
- while ($Element) {
2933
- if ($Element[uidSymbol]) {
2934
- return $Element;
2935
- }
2936
- $Element = $Element.parentNode;
2937
- }
2938
- return undefined;
2939
- };
2940
- const get$2 = $Element => {
2941
- const $Target = getUidTarget($Element);
2942
- return $Target[uidSymbol];
2943
- };
2944
- const fromEvent = event => {
2945
- const {
2946
- target,
2947
- currentTarget
2948
- } = event;
2949
- return get$2(currentTarget || target);
2950
- };
2951
-
2952
- const nameAnonymousFunction = (fn, name) => {
2953
- Object.defineProperty(fn, 'name', {
2954
- value: name
2955
- });
2956
- };
2957
-
2958
- const cache = new Map();
2959
- const getWrappedListener = (listener, returnValue) => {
2960
- if (!returnValue) {
2961
- return listener;
2962
- }
2963
- if (!cache.has(listener)) {
2964
- const wrapped = event => {
2965
- const uid = fromEvent(event);
2966
- const result = listener(event);
2967
- // TODO check for empty array by value
2968
- if (result.length === 0) {
2969
- return;
2970
- }
2971
- send('Viewlet.executeViewletCommand', uid, ...result);
2972
- };
2973
- nameAnonymousFunction(wrapped, listener.name);
2974
- cache.set(listener, wrapped);
2975
- }
2976
- return cache.get(listener);
2977
- };
2978
-
2979
- const attachEvent = ($Node, eventMap, key, value) => {
2980
- const listener = eventMap[value];
2981
- if (!listener) {
2982
- console.warn('listener not found', value);
2983
- return;
2984
- }
2985
- const options = getEventListenerOptions(eventMap);
2986
- const wrapped = getWrappedListener(listener, eventMap.returnValue);
2987
- $Node.addEventListener(key, wrapped, options);
2988
- };
2989
-
2990
- const setProp = ($Element, key, value, eventMap) => {
2917
+ // src/parts/VirtualDomElementProp/VirtualDomElementProp.ts
2918
+ var setProp = ($Element, key, value, eventMap) => {
2991
2919
  switch (key) {
2992
- case 'maskImage':
2920
+ case "maskImage":
2993
2921
  $Element.style.maskImage = `url('${value}')`;
2994
2922
  $Element.style.webkitMaskImage = `url('${value}')`;
2995
2923
  break;
2996
- case 'paddingLeft':
2997
- case 'paddingRight':
2998
- case 'top':
2999
- case 'left':
3000
- case 'marginTop':
3001
- $Element.style[key] = typeof value === 'number' ? `${value}px` : value;
2924
+ case "paddingLeft":
2925
+ case "paddingRight":
2926
+ case "top":
2927
+ case "left":
2928
+ case "marginTop":
2929
+ $Element.style[key] = typeof value === "number" ? `${value}px` : value;
3002
2930
  break;
3003
- case 'translate':
2931
+ case "translate":
3004
2932
  $Element.style[key] = value;
3005
2933
  break;
3006
- case 'width':
3007
- case 'height':
2934
+ case "width":
2935
+ case "height":
3008
2936
  if ($Element instanceof HTMLImageElement) {
3009
2937
  $Element[key] = value;
3010
- } else if (typeof value === 'number') {
2938
+ } else if (typeof value === "number") {
3011
2939
  $Element.style[key] = `${value}px`;
3012
2940
  } else {
3013
2941
  $Element.style[key] = value;
3014
2942
  }
3015
2943
  break;
3016
- case 'style':
3017
- throw new Error('style property is not supported');
3018
- case 'childCount':
3019
- case 'type':
2944
+ case "style":
2945
+ throw new Error("style property is not supported");
2946
+ case "childCount":
2947
+ case "type":
3020
2948
  break;
3021
- case 'ariaOwns':
3022
- // TODO remove this once idl is supported
2949
+ case "ariaOwns":
3023
2950
  if (value) {
3024
- $Element.setAttribute('aria-owns', value);
2951
+ $Element.setAttribute("aria-owns", value);
3025
2952
  } else {
3026
- $Element.removeAttribute('aria-owns');
2953
+ $Element.removeAttribute("aria-owns");
3027
2954
  }
3028
2955
  break;
3029
- case 'inputType':
3030
- // @ts-ignore
2956
+ case "inputType":
3031
2957
  $Element.type = value;
3032
2958
  break;
3033
- case 'ariaLabelledBy':
3034
- $Element.setAttribute('aria-labelledby', value);
2959
+ case "ariaLabelledBy":
2960
+ $Element.setAttribute("aria-labelledby", value);
3035
2961
  break;
3036
- case 'onBlur':
3037
- case 'onChange':
3038
- case 'onClick':
3039
- case 'onContextMenu':
3040
- case 'onDblClick':
3041
- case 'onFocus':
3042
- case 'onFocusIn':
3043
- case 'onFocusIn':
3044
- case 'onFocusOut':
3045
- case 'onInput':
3046
- case 'onKeyDown':
3047
- case 'onMouseDown':
3048
- case 'onPointerDown':
3049
- case 'onPointerOut':
3050
- case 'onPointerOver':
3051
- case 'onWheel':
3052
- const eventName = key.slice(2).toLowerCase();
2962
+ case "onBlur":
2963
+ case "onChange":
2964
+ case "onClick":
2965
+ case "onContextMenu":
2966
+ case "onDblClick":
2967
+ case "onFocus":
2968
+ case "onFocusIn":
2969
+ case "onFocusIn":
2970
+ case "onFocusOut":
2971
+ case "onInput":
2972
+ case "onKeyDown":
2973
+ case "onMouseDown":
2974
+ case "onPointerDown":
2975
+ case "onPointerOut":
2976
+ case "onPointerOver":
2977
+ case "onWheel":
2978
+ key.slice(2).toLowerCase();
3053
2979
  if (!eventMap || !value) {
3054
2980
  return;
3055
2981
  }
3056
- attachEvent($Element, eventMap, eventName, value);
3057
2982
  break;
3058
2983
  default:
3059
- if (key.startsWith('data-')) {
3060
- $Element.dataset[key.slice('data-'.length)] = value;
2984
+ if (key.startsWith("data-")) {
2985
+ $Element.dataset[key.slice("data-".length)] = value;
3061
2986
  } else {
3062
2987
  $Element[key] = value;
3063
2988
  }
3064
2989
  }
3065
2990
  };
3066
2991
 
3067
- const setProps = ($Element, props, eventMap) => {
2992
+ // src/parts/VirtualDomElementProps/VirtualDomElementProps.ts
2993
+ var setProps = ($Element, props, eventMap) => {
3068
2994
  for (const key in props) {
3069
2995
  setProp($Element, key, props[key], eventMap);
3070
2996
  }
3071
2997
  };
3072
2998
 
3073
- const renderDomTextNode = element => {
2999
+ // src/parts/VirtualDomElement/VirtualDomElement.ts
3000
+ var renderDomTextNode = element => {
3074
3001
  return document.createTextNode(element.text);
3075
3002
  };
3076
- const renderDomElement = (element, eventMap) => {
3003
+ var renderDomElement = (element, eventMap) => {
3077
3004
  const tag = getElementTag(element.type);
3078
3005
  const $Element = document.createElement(tag);
3079
3006
  setProps($Element, element, eventMap);
3080
3007
  return $Element;
3081
3008
  };
3082
- const render$1 = (element, eventMap) => {
3009
+ var render = (element, eventMap) => {
3083
3010
  switch (element.type) {
3084
3011
  case Text$2:
3085
3012
  return renderDomTextNode(element);
@@ -3088,41 +3015,30 @@ const render$1 = (element, eventMap) => {
3088
3015
  }
3089
3016
  };
3090
3017
 
3091
- /**
3092
- *
3093
- * @param {any[]} elements
3094
- * @returns
3095
- */
3096
- const renderInternal = ($Parent, elements, eventMap) => {
3018
+ // src/parts/RenderInternal/RenderInternal.ts
3019
+ var renderInternal2 = ($Parent, elements, eventMap) => {
3097
3020
  const max = elements.length - 1;
3098
3021
  let stack = [];
3099
3022
  for (let i = max; i >= 0; i--) {
3100
3023
  const element = elements[i];
3101
- const $Element = render$1(element, eventMap);
3024
+ const $Element = render(element, eventMap);
3102
3025
  if (element.childCount > 0) {
3103
- // @ts-expect-error
3104
3026
  $Element.append(...stack.slice(0, element.childCount));
3105
3027
  stack = stack.slice(element.childCount);
3106
3028
  }
3107
- // @ts-expect-error
3108
3029
  stack.unshift($Element);
3109
3030
  }
3110
3031
  $Parent.append(...stack);
3111
3032
  };
3112
- const renderInto = ($Parent, dom, eventMap = {}) => {
3113
- array(dom);
3033
+
3034
+ // src/parts/VirtualDom/VirtualDom.ts
3035
+ var renderInto = ($Parent, dom, eventMap = {}) => {
3114
3036
  clearNode($Parent);
3115
- renderInternal($Parent, dom, eventMap);
3037
+ renderInternal2($Parent, dom, eventMap);
3116
3038
  };
3117
-
3118
- /**
3119
- *
3120
- * @param {any[]} elements
3121
- * @returns
3122
- */
3123
- const render = (elements, eventMap = {}) => {
3124
- const $Root = document.createElement('div');
3125
- renderInternal($Root, elements, eventMap);
3039
+ var render2 = (elements, eventMap = {}) => {
3040
+ const $Root = document.createElement("div");
3041
+ renderInternal2($Root, elements, eventMap);
3126
3042
  return $Root;
3127
3043
  };
3128
3044
 
@@ -3487,26 +3403,26 @@ const Prompt_ipc = {
3487
3403
  };
3488
3404
 
3489
3405
  const screenCaptures = Object.create(null);
3490
- const get$1 = id => {
3406
+ const get$2 = id => {
3491
3407
  return screenCaptures[id];
3492
3408
  };
3493
- const set$1 = (id, captureStream) => {
3409
+ const set$2 = (id, captureStream) => {
3494
3410
  screenCaptures[id] = captureStream;
3495
3411
  };
3496
3412
  const remove = id => {
3497
3413
  delete screenCaptures[id];
3498
3414
  };
3499
3415
 
3500
- const get = id => {
3416
+ const get$1 = id => {
3501
3417
  number(id);
3502
- return get$1(id);
3418
+ return get$2(id);
3503
3419
  };
3504
3420
  const start = async (id, options) => {
3505
3421
  try {
3506
3422
  number(id);
3507
3423
  object(options);
3508
3424
  const captureStream = await navigator.mediaDevices.getUserMedia(options);
3509
- set$1(id, captureStream);
3425
+ set$2(id, captureStream);
3510
3426
  } catch (error) {
3511
3427
  throw new VError$1(error, `Failed to start screen capture`);
3512
3428
  }
@@ -3514,7 +3430,7 @@ const start = async (id, options) => {
3514
3430
  const dispose$f = async (id, options) => {
3515
3431
  try {
3516
3432
  number(id);
3517
- const captureStream = get$1(id);
3433
+ const captureStream = get$2(id);
3518
3434
  for (const track of captureStream.getTracks()) {
3519
3435
  track.stop();
3520
3436
  }
@@ -4072,6 +3988,31 @@ const Transferrable_ipc = {
4072
3988
  name: name$8
4073
3989
  };
4074
3990
 
3991
+ const uidSymbol = Symbol('uid');
3992
+ const set$1 = ($Element, uid) => {
3993
+ $Element[uidSymbol] = uid;
3994
+ };
3995
+ const getUidTarget = $Element => {
3996
+ while ($Element) {
3997
+ if ($Element[uidSymbol]) {
3998
+ return $Element;
3999
+ }
4000
+ $Element = $Element.parentNode;
4001
+ }
4002
+ return undefined;
4003
+ };
4004
+ const get = $Element => {
4005
+ const $Target = getUidTarget($Element);
4006
+ return $Target[uidSymbol];
4007
+ };
4008
+ const fromEvent = event => {
4009
+ const {
4010
+ target,
4011
+ currentTarget
4012
+ } = event;
4013
+ return get(currentTarget || target);
4014
+ };
4015
+
4075
4016
  const state$1 = {
4076
4017
  identifiers: new Uint32Array()
4077
4018
  };
@@ -4115,8 +4056,8 @@ const rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
4115
4056
  inputMap[$Input.name] = $Input.value;
4116
4057
  }
4117
4058
  if (uid) {
4118
- const $New = render(dom, eventMap).firstChild;
4119
- set$2($New, uid);
4059
+ const $New = render2(dom, eventMap).firstChild;
4060
+ set$1($New, uid);
4120
4061
  $Viewlet.replaceWith($New);
4121
4062
  $Viewlet = $New;
4122
4063
  } else {
@@ -4322,7 +4263,7 @@ const create$D = (id, uid = id) => {
4322
4263
  state.instances[id].state.$Viewlet.remove();
4323
4264
  }
4324
4265
  const instanceState = module.create();
4325
- set$2(instanceState.$Viewlet, uid);
4266
+ set$1(instanceState.$Viewlet, uid);
4326
4267
  if (module.attachEvents) {
4327
4268
  module.attachEvents(instanceState);
4328
4269
  }
@@ -5739,6 +5680,12 @@ const executeViewletCommand = (uid, command, ...args) => {
5739
5680
  send('Viewlet.executeViewletCommand', uid, command, ...args);
5740
5681
  };
5741
5682
 
5683
+ const nameAnonymousFunction = (fn, name) => {
5684
+ Object.defineProperty(fn, 'name', {
5685
+ value: name
5686
+ });
5687
+ };
5688
+
5742
5689
  const forwardViewletCommand = name => {
5743
5690
  const fn = (uid, ...args) => {
5744
5691
  executeViewletCommand(uid, name, ...args);
@@ -6387,7 +6334,7 @@ const setDom$7 = (state, dom) => {
6387
6334
  $ListItems,
6388
6335
  $Viewlet
6389
6336
  } = state;
6390
- const $Root = render(dom);
6337
+ const $Root = render2(dom);
6391
6338
  // @ts-expect-error
6392
6339
  $ListItems.replaceChildren(...$Root.firstChild.childNodes);
6393
6340
  append$1($Viewlet);
@@ -6735,6 +6682,49 @@ const QuickInput = 'Quick Input';
6735
6682
  const SideBar = 'Side Bar';
6736
6683
  const StatusBar = 'Status Bar';
6737
6684
 
6685
+ const getEventListenerOptions = eventName => {
6686
+ switch (eventName) {
6687
+ case 'wheel':
6688
+ return {
6689
+ passive: true
6690
+ };
6691
+ default:
6692
+ return undefined;
6693
+ }
6694
+ };
6695
+
6696
+ const cache = new Map();
6697
+ const getWrappedListener = (listener, returnValue) => {
6698
+ if (!returnValue) {
6699
+ return listener;
6700
+ }
6701
+ if (!cache.has(listener)) {
6702
+ const wrapped = event => {
6703
+ const uid = fromEvent(event);
6704
+ const result = listener(event);
6705
+ // TODO check for empty array by value
6706
+ if (result.length === 0) {
6707
+ return;
6708
+ }
6709
+ send('Viewlet.executeViewletCommand', uid, ...result);
6710
+ };
6711
+ nameAnonymousFunction(wrapped, listener.name);
6712
+ cache.set(listener, wrapped);
6713
+ }
6714
+ return cache.get(listener);
6715
+ };
6716
+
6717
+ const attachEvent = ($Node, eventMap, key, value) => {
6718
+ const listener = eventMap[value];
6719
+ if (!listener) {
6720
+ console.warn('listener not found', value);
6721
+ return;
6722
+ }
6723
+ const options = getEventListenerOptions(eventMap);
6724
+ const wrapped = getWrappedListener(listener, eventMap.returnValue);
6725
+ $Node.addEventListener(key, wrapped, options);
6726
+ };
6727
+
6738
6728
  const attachEventsFunctional = ($Node, eventMap) => {
6739
6729
  for (const [key] of Object.entries(eventMap)) {
6740
6730
  if (key === 'returnValue') {
@@ -7905,7 +7895,7 @@ const attachEvents$8 = state => {
7905
7895
  $ListItems,
7906
7896
  $ScrollBar
7907
7897
  } = state;
7908
- $ExtensionHeader.addEventListener(Input$2, handleInput$6, Capture);
7898
+ $ExtensionHeader.addEventListener(Input$1, handleInput$6, Capture);
7909
7899
  // @ts-expect-error
7910
7900
  $ExtensionHeader.addEventListener(Click, undefined);
7911
7901
  attachEvents$c($ListItems, {
@@ -7958,7 +7948,7 @@ const setHeaderDom = (state, dom) => {
7958
7948
  $ExtensionHeader
7959
7949
  } = state;
7960
7950
  // @ts-expect-error
7961
- const $Element = render(dom).firstChild.firstChild;
7951
+ const $Element = render2(dom).firstChild.firstChild;
7962
7952
  $ExtensionHeader.replaceChildren($Element);
7963
7953
  };
7964
7954
  const setExtensionsDom = (state, dom) => {
@@ -7967,7 +7957,7 @@ const setExtensionsDom = (state, dom) => {
7967
7957
  const {
7968
7958
  $ListItems
7969
7959
  } = state;
7970
- const $Root = render(dom);
7960
+ const $Root = render2(dom);
7971
7961
  // @ts-expect-error
7972
7962
  $ListItems.replaceChildren(...$Root.firstChild.childNodes);
7973
7963
  };
@@ -8984,7 +8974,7 @@ const ViewletMain = {
8984
8974
 
8985
8975
  // TODO
8986
8976
  const getUid = () => {
8987
- return get$2(document.getElementById('Main'));
8977
+ return get(document.getElementById('Main'));
8988
8978
  };
8989
8979
  const handleTabsWheel = event => {
8990
8980
  const uid = getUid();
@@ -9786,7 +9776,7 @@ const setScreenCapture = (state, id) => {
9786
9776
  $Viewlet
9787
9777
  } = state;
9788
9778
  const $Video = document.createElement('video');
9789
- const screenCapture = get(id);
9779
+ const screenCapture = get$1(id);
9790
9780
  $Video.srcObject = screenCapture;
9791
9781
  $Video.onloadedmetadata = handleLoadedMetaData;
9792
9782
  $Viewlet.append($Video);
@@ -10033,7 +10023,7 @@ const setActionsDom = (state, actions) => {
10033
10023
  $Actions
10034
10024
  } = state;
10035
10025
  const eventMap = {};
10036
- const $NewActions = render(actions, eventMap).firstChild;
10026
+ const $NewActions = render2(actions, eventMap).firstChild;
10037
10027
  if ($Actions) {
10038
10028
  $Actions.replaceWith($NewActions);
10039
10029
  } else {
@@ -10903,7 +10893,7 @@ const setMenus = (state, changes, uid) => {
10903
10893
  const menu = change[1];
10904
10894
  const dom = change[2];
10905
10895
  const $Menu = create$Menu();
10906
- set$2($Menu, uid);
10896
+ set$1($Menu, uid);
10907
10897
  $Menu.onmouseover = handleMenuMouseOver;
10908
10898
  $Menu.onclick = handleMenuClick;
10909
10899
  const {
@@ -11335,6 +11325,7 @@ const isSyntaxError = error => {
11335
11325
  };
11336
11326
 
11337
11327
  const isBabelError = error => {
11328
+ // @ts-ignore
11338
11329
  return isSyntaxError(error) && error.code === BABEL_PARSER_SYNTAX_ERROR;
11339
11330
  };
11340
11331
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "",
5
5
  "main": "dist/diffWorkerMain.js",
6
6
  "type": "module",