@lvce-editor/virtual-dom 1.19.0 → 1.20.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.
Files changed (2) hide show
  1. package/dist/index.js +380 -408
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,315 +1,308 @@
1
- // src/parts/ElementTags/ElementTags.ts
2
- var Audio = "audio";
3
- var Button = "button";
4
- var Col = "col";
5
- var ColGroup = "colgroup";
6
- var Del = "del";
7
- var Div = "div";
8
- var H1 = "h1";
9
- var H2 = "h2";
10
- var H3 = "h3";
11
- var H4 = "h4";
12
- var H5 = "h5";
13
- var H6 = "h6";
14
- var I = "i";
15
- var Img = "img";
16
- var Input = "input";
17
- var Ins = "ins";
18
- var Kbd = "kbd";
19
- var Span = "span";
20
- var Table = "table";
21
- var TBody = "tbody";
22
- var Td = "td";
23
- var Th = "th";
24
- var THead = "thead";
25
- var Tr = "tr";
26
- var Article = "article";
27
- var Aside = "aside";
28
- var Footer = "footer";
29
- var Header = "header";
30
- var Nav = "nav";
31
- var Section = "section";
32
- var Search = "search";
33
- var Dd = "dd";
34
- var Dl = "dl";
35
- var Figcaption = "figcaption";
36
- var Figure = "figure";
37
- var Hr = "hr";
38
- var Li = "li";
39
- var Ol = "ol";
40
- var P = "p";
41
- var Pre = "pre";
42
- var A = "a";
43
- var Br = "br";
44
- var Cite = "cite";
45
- var Data = "data";
46
- var Time = "time";
47
- var Tfoot = "tfoot";
48
- var Ul = "ul";
49
- var Video = "video";
50
- var TextArea = "textarea";
51
- var Select = "select";
52
- var Option = "option";
53
- var Code = "code";
1
+ const Audio$1 = 'audio';
2
+ const Button$1 = 'button';
3
+ const Col$1 = 'col';
4
+ const ColGroup$1 = 'colgroup';
5
+ const Del$1 = 'del';
6
+ const Div$1 = 'div';
7
+ const H1$1 = 'h1';
8
+ const H2$1 = 'h2';
9
+ const H3$1 = 'h3';
10
+ const H4$1 = 'h4';
11
+ const H5$1 = 'h5';
12
+ const H6$1 = 'h6';
13
+ const I$1 = 'i';
14
+ const Img$1 = 'img';
15
+ const Input$1 = 'input';
16
+ const Ins$1 = 'ins';
17
+ const Kbd$1 = 'kbd';
18
+ const Span$1 = 'span';
19
+ const Table$1 = 'table';
20
+ const TBody$1 = 'tbody';
21
+ const Td$1 = 'td';
22
+ const Th$1 = 'th';
23
+ const THead$1 = 'thead';
24
+ const Tr$1 = 'tr';
25
+ const Article$1 = 'article';
26
+ const Aside$1 = 'aside';
27
+ const Footer$1 = 'footer';
28
+ const Header$1 = 'header';
29
+ const Nav$1 = 'nav';
30
+ const Section$1 = 'section';
31
+ const Search$1 = 'search';
32
+ const Dd$1 = 'dd';
33
+ const Dl$1 = 'dl';
34
+ const Figcaption$1 = 'figcaption';
35
+ const Figure$1 = 'figure';
36
+ const Hr$1 = 'hr';
37
+ const Li$1 = 'li';
38
+ const Ol$1 = 'ol';
39
+ const P$1 = 'p';
40
+ const Pre$1 = 'pre';
41
+ const A$1 = 'a';
42
+ const Br$1 = 'br';
43
+ const Cite$1 = 'cite';
44
+ const Data$1 = 'data';
45
+ const Time$1 = 'time';
46
+ const Tfoot$1 = 'tfoot';
47
+ const Ul$1 = 'ul';
48
+ const Video$1 = 'video';
49
+ const TextArea$1 = 'textarea';
50
+ const Select$1 = 'select';
51
+ const Option$1 = 'option';
52
+ const Code$1 = 'code';
54
53
 
55
- // src/parts/VirtualDomElements/VirtualDomElements.ts
56
- var Audio2 = 0;
57
- var Button2 = 1;
58
- var Col2 = 2;
59
- var ColGroup2 = 3;
60
- var Div2 = 4;
61
- var H12 = 5;
62
- var Input2 = 6;
63
- var Kbd2 = 7;
64
- var Span2 = 8;
65
- var Table2 = 9;
66
- var TBody2 = 10;
67
- var Td2 = 11;
68
- var Text = 12;
69
- var Th2 = 13;
70
- var THead2 = 14;
71
- var Tr2 = 15;
72
- var I2 = 16;
73
- var Img2 = 17;
74
- var Ins2 = 20;
75
- var Del2 = 21;
76
- var H22 = 22;
77
- var H32 = 23;
78
- var H42 = 24;
79
- var H52 = 25;
80
- var H62 = 26;
81
- var Article2 = 27;
82
- var Aside2 = 28;
83
- var Footer2 = 29;
84
- var Header2 = 30;
85
- var Nav2 = 40;
86
- var Section2 = 41;
87
- var Search2 = 42;
88
- var Dd2 = 43;
89
- var Dl2 = 44;
90
- var Figcaption2 = 45;
91
- var Figure2 = 46;
92
- var Hr2 = 47;
93
- var Li2 = 48;
94
- var Ol2 = 49;
95
- var P2 = 50;
96
- var Pre2 = 51;
97
- var A2 = 53;
98
- var Br2 = 55;
99
- var Cite2 = 56;
100
- var Data2 = 57;
101
- var Time2 = 58;
102
- var Tfoot2 = 59;
103
- var Ul2 = 60;
104
- var Video2 = 61;
105
- var TextArea2 = 62;
106
- var Select2 = 63;
107
- var Option2 = 64;
108
- var Code2 = 65;
54
+ const Audio = 0;
55
+ const Button = 1;
56
+ const Col = 2;
57
+ const ColGroup = 3;
58
+ const Div = 4;
59
+ const H1 = 5;
60
+ const Input = 6;
61
+ const Kbd = 7;
62
+ const Span = 8;
63
+ const Table = 9;
64
+ const TBody = 10;
65
+ const Td = 11;
66
+ const Text = 12;
67
+ const Th = 13;
68
+ const THead = 14;
69
+ const Tr = 15;
70
+ const I = 16;
71
+ const Img = 17;
72
+ const Ins = 20;
73
+ const Del = 21;
74
+ const H2 = 22;
75
+ const H3 = 23;
76
+ const H4 = 24;
77
+ const H5 = 25;
78
+ const H6 = 26;
79
+ const Article = 27;
80
+ const Aside = 28;
81
+ const Footer = 29;
82
+ const Header = 30;
83
+ const Nav = 40;
84
+ const Section = 41;
85
+ const Search = 42;
86
+ const Dd = 43;
87
+ const Dl = 44;
88
+ const Figcaption = 45;
89
+ const Figure = 46;
90
+ const Hr = 47;
91
+ const Li = 48;
92
+ const Ol = 49;
93
+ const P = 50;
94
+ const Pre = 51;
95
+ const A = 53;
96
+ const Br = 55;
97
+ const Cite = 56;
98
+ const Data = 57;
99
+ const Time = 58;
100
+ const Tfoot = 59;
101
+ const Ul = 60;
102
+ const Video = 61;
103
+ const TextArea = 62;
104
+ const Select = 63;
105
+ const Option = 64;
106
+ const Code = 65;
109
107
 
110
- // src/parts/ElementTagMap/ElementTagMap.ts
111
- var getElementTag = (type) => {
108
+ const getElementTag = type => {
112
109
  switch (type) {
113
- case Audio2:
114
- return Audio;
115
- case H12:
116
- return H1;
117
- case H22:
118
- return H2;
119
- case H32:
120
- return H3;
121
- case H42:
122
- return H4;
123
- case H52:
124
- return H5;
125
- case H62:
126
- return H6;
127
- case Div2:
128
- return Div;
129
- case Kbd2:
130
- return Kbd;
131
- case Table2:
132
- return Table;
133
- case TBody2:
134
- return TBody;
135
- case Th2:
136
- return Th;
137
- case Td2:
138
- return Td;
139
- case THead2:
140
- return THead;
141
- case Tr2:
142
- return Tr;
143
- case Input2:
144
- return Input;
145
- case ColGroup2:
146
- return ColGroup;
147
- case Col2:
148
- return Col;
149
- case Button2:
150
- return Button;
151
- case Span2:
152
- return Span;
153
- case I2:
154
- return I;
155
- case Img2:
156
- return Img;
157
- case Ins2:
158
- return Ins;
159
- case Del2:
160
- return Del;
161
- case Article2:
162
- return Article;
163
- case Aside2:
164
- return Aside;
165
- case Footer2:
166
- return Footer;
167
- case Header2:
168
- return Header;
169
- case Nav2:
170
- return Nav;
171
- case Section2:
172
- return Section;
173
- case Search2:
174
- return Search;
175
- case Dd2:
176
- return Dd;
177
- case Dl2:
178
- return Dl;
179
- case Figcaption2:
180
- return Figcaption;
181
- case Figure2:
182
- return Figure;
183
- case Hr2:
184
- return Hr;
185
- case Li2:
186
- return Li;
187
- case Ol2:
188
- return Ol;
189
- case P2:
190
- return P;
191
- case Pre2:
192
- return Pre;
193
- case A2:
194
- return A;
195
- case Br2:
196
- return Br;
197
- case Cite2:
198
- return Cite;
199
- case Data2:
200
- return Data;
201
- case Time2:
202
- return Time;
203
- case Tfoot2:
204
- return Tfoot;
205
- case Ul2:
206
- return Ul;
207
- case Video2:
208
- return Video;
209
- case TextArea2:
210
- return TextArea;
211
- case Select2:
212
- return Select;
213
- case Option2:
214
- return Option;
215
- case Code2:
216
- return Code;
110
+ case Audio:
111
+ return Audio$1;
112
+ case H1:
113
+ return H1$1;
114
+ case H2:
115
+ return H2$1;
116
+ case H3:
117
+ return H3$1;
118
+ case H4:
119
+ return H4$1;
120
+ case H5:
121
+ return H5$1;
122
+ case H6:
123
+ return H6$1;
124
+ case Div:
125
+ return Div$1;
126
+ case Kbd:
127
+ return Kbd$1;
128
+ case Table:
129
+ return Table$1;
130
+ case TBody:
131
+ return TBody$1;
132
+ case Th:
133
+ return Th$1;
134
+ case Td:
135
+ return Td$1;
136
+ case THead:
137
+ return THead$1;
138
+ case Tr:
139
+ return Tr$1;
140
+ case Input:
141
+ return Input$1;
142
+ case ColGroup:
143
+ return ColGroup$1;
144
+ case Col:
145
+ return Col$1;
146
+ case Button:
147
+ return Button$1;
148
+ case Span:
149
+ return Span$1;
150
+ case I:
151
+ return I$1;
152
+ case Img:
153
+ return Img$1;
154
+ case Ins:
155
+ return Ins$1;
156
+ case Del:
157
+ return Del$1;
158
+ case Article:
159
+ return Article$1;
160
+ case Aside:
161
+ return Aside$1;
162
+ case Footer:
163
+ return Footer$1;
164
+ case Header:
165
+ return Header$1;
166
+ case Nav:
167
+ return Nav$1;
168
+ case Section:
169
+ return Section$1;
170
+ case Search:
171
+ return Search$1;
172
+ case Dd:
173
+ return Dd$1;
174
+ case Dl:
175
+ return Dl$1;
176
+ case Figcaption:
177
+ return Figcaption$1;
178
+ case Figure:
179
+ return Figure$1;
180
+ case Hr:
181
+ return Hr$1;
182
+ case Li:
183
+ return Li$1;
184
+ case Ol:
185
+ return Ol$1;
186
+ case P:
187
+ return P$1;
188
+ case Pre:
189
+ return Pre$1;
190
+ case A:
191
+ return A$1;
192
+ case Br:
193
+ return Br$1;
194
+ case Cite:
195
+ return Cite$1;
196
+ case Data:
197
+ return Data$1;
198
+ case Time:
199
+ return Time$1;
200
+ case Tfoot:
201
+ return Tfoot$1;
202
+ case Ul:
203
+ return Ul$1;
204
+ case Video:
205
+ return Video$1;
206
+ case TextArea:
207
+ return TextArea$1;
208
+ case Select:
209
+ return Select$1;
210
+ case Option:
211
+ return Option$1;
212
+ case Code:
213
+ return Code$1;
217
214
  default:
218
215
  throw new Error(`element tag not found ${type}`);
219
216
  }
220
217
  };
221
218
 
222
- // src/parts/GetEventListenerOptions/GetEventListenerOptions.ts
223
- var getEventListenerOptions = (eventName, value) => {
219
+ const getEventListenerOptions = (eventName, value) => {
224
220
  if (value.passive) {
225
221
  return {
226
222
  passive: true
227
223
  };
228
224
  }
229
225
  switch (eventName) {
230
- case "wheel":
226
+ case 'wheel':
231
227
  return {
232
228
  passive: true
233
229
  };
234
230
  default:
235
- return void 0;
231
+ return undefined;
236
232
  }
237
233
  };
238
234
 
239
- // src/parts/UidSymbol/UidSymbol.ts
240
- var uidSymbol = Symbol("uid");
235
+ const uidSymbol = Symbol('uid');
241
236
 
242
- // src/parts/GetUidTarget/GetUidTarget.ts
243
- var getUidTarget = ($Element) => {
237
+ const getUidTarget = $Element => {
244
238
  while ($Element) {
245
239
  if ($Element[uidSymbol]) {
246
240
  return $Element;
247
241
  }
248
242
  $Element = $Element.parentNode;
249
243
  }
250
- return void 0;
244
+ return undefined;
251
245
  };
252
246
 
253
- // src/parts/ComponentUid/ComponentUid.ts
254
- var setComponentUid = ($Element, uid) => {
247
+ const setComponentUid = ($Element, uid) => {
255
248
  $Element[uidSymbol] = uid;
256
249
  };
257
- var getComponentUid = ($Element) => {
250
+ const getComponentUid = $Element => {
258
251
  const $Target = getUidTarget($Element);
259
252
  if (!$Target) {
260
253
  return 0;
261
254
  }
262
255
  return $Target[uidSymbol];
263
256
  };
264
- var getComponentUidFromEvent = (event) => {
265
- const { target, currentTarget } = event;
257
+ const getComponentUidFromEvent = event => {
258
+ const {
259
+ target,
260
+ currentTarget
261
+ } = event;
266
262
  return getComponentUid(currentTarget || target);
267
263
  };
268
264
 
269
- // src/parts/IpcState/IpcState.ts
270
- var state = {
271
- ipc: void 0
265
+ const state = {
266
+ ipc: undefined
272
267
  };
273
- var getIpc = () => {
268
+ const getIpc = () => {
274
269
  return state.ipc;
275
270
  };
276
- var setIpc = (value) => {
271
+ const setIpc = value => {
277
272
  state.ipc = value;
278
273
  };
279
274
 
280
- // src/parts/ListenerCache/ListenerCache.ts
281
- var cache = /* @__PURE__ */ new Map();
282
- var has = (listener) => {
275
+ const cache = new Map();
276
+ const has = listener => {
283
277
  return cache.has(listener);
284
278
  };
285
- var set = (listener, value) => {
279
+ const set = (listener, value) => {
286
280
  cache.set(listener, value);
287
281
  };
288
- var get = (listener) => {
282
+ const get = listener => {
289
283
  return cache.get(listener);
290
284
  };
291
285
 
292
- // src/parts/NameAnonymousFunction/NameAnonymousFunction.ts
293
- var nameAnonymousFunction = (fn, name) => {
294
- Object.defineProperty(fn, "name", {
286
+ const nameAnonymousFunction = (fn, name) => {
287
+ Object.defineProperty(fn, 'name', {
295
288
  value: name
296
289
  });
297
290
  };
298
291
 
299
- // src/parts/GetWrappedListener/GetWrappedListener.ts
300
- var getWrappedListener = (listener, returnValue) => {
292
+ const getWrappedListener = (listener, returnValue) => {
301
293
  if (!returnValue) {
302
294
  return listener;
303
295
  }
304
296
  if (!has(listener)) {
305
- const wrapped = (event) => {
297
+ const wrapped = event => {
306
298
  const uid = getComponentUidFromEvent(event);
307
299
  const result = listener(event);
300
+ // TODO check for empty array by value
308
301
  if (result.length === 0) {
309
302
  return;
310
303
  }
311
304
  const ipc = getIpc();
312
- ipc.send("Viewlet.executeViewletCommand", uid, ...result);
305
+ ipc.send('Viewlet.executeViewletCommand', uid, ...result);
313
306
  };
314
307
  nameAnonymousFunction(wrapped, listener.name);
315
308
  set(listener, wrapped);
@@ -317,112 +310,110 @@ var getWrappedListener = (listener, returnValue) => {
317
310
  return get(listener);
318
311
  };
319
312
 
320
- // src/parts/AttachEvent/AttachEvent.ts
321
- var getOptions = (fn) => {
313
+ const getOptions = fn => {
322
314
  if (fn.passive) {
323
315
  return {
324
316
  passive: true
325
317
  };
326
318
  }
327
- return void 0;
319
+ return undefined;
328
320
  };
329
- var attachEvent = ($Node, eventMap, key, value, newEventMap) => {
321
+ const attachEvent = ($Node, eventMap, key, value, newEventMap) => {
330
322
  if (newEventMap && newEventMap[value]) {
331
323
  const fn = newEventMap[value];
332
- const options2 = getOptions(fn);
333
- $Node.addEventListener(key, newEventMap[value], options2);
324
+ const options = getOptions(fn);
325
+ // TODO support event listener options
326
+ $Node.addEventListener(key, newEventMap[value], options);
334
327
  return;
335
328
  }
336
329
  const listener = eventMap[value];
337
330
  if (!listener) {
338
- console.warn("listener not found", value);
331
+ console.warn('listener not found', value);
339
332
  return;
340
333
  }
341
334
  const options = getEventListenerOptions(key, value);
342
- const wrapped = getWrappedListener(
343
- listener,
344
- eventMap.returnValue
345
- );
335
+ const wrapped = getWrappedListener(listener, eventMap.returnValue);
346
336
  $Node.addEventListener(key, wrapped, options);
347
337
  };
348
338
 
349
- // src/parts/VirtualDomElementProp/VirtualDomElementProp.ts
350
- var setProp = ($Element, key, value, eventMap, newEventMap) => {
339
+ const setProp = ($Element, key, value, eventMap, newEventMap) => {
351
340
  switch (key) {
352
- case "maskImage":
341
+ case 'maskImage':
353
342
  $Element.style.maskImage = `url('${value}')`;
354
343
  $Element.style.webkitMaskImage = `url('${value}')`;
355
344
  break;
356
- case "paddingLeft":
357
- case "paddingRight":
358
- case "top":
359
- case "left":
360
- case "marginTop":
361
- $Element.style[key] = typeof value === "number" ? `${value}px` : value;
345
+ case 'paddingLeft':
346
+ case 'paddingRight':
347
+ case 'top':
348
+ case 'left':
349
+ case 'marginTop':
350
+ $Element.style[key] = typeof value === 'number' ? `${value}px` : value;
362
351
  break;
363
- case "translate":
352
+ case 'translate':
364
353
  $Element.style[key] = value;
365
354
  break;
366
- case "width":
367
- case "height":
355
+ case 'width':
356
+ case 'height':
368
357
  if ($Element instanceof HTMLImageElement) {
369
358
  $Element[key] = value;
370
- } else if (typeof value === "number") {
359
+ } else if (typeof value === 'number') {
371
360
  $Element.style[key] = `${value}px`;
372
361
  } else {
373
362
  $Element.style[key] = value;
374
363
  }
375
364
  break;
376
- case "style":
377
- throw new Error("style property is not supported");
378
- case "childCount":
379
- case "type":
365
+ case 'style':
366
+ throw new Error('style property is not supported');
367
+ case 'childCount':
368
+ case 'type':
380
369
  break;
381
- case "ariaOwns":
370
+ case 'ariaOwns':
371
+ // TODO remove this once idl is supported
382
372
  if (value) {
383
- $Element.setAttribute("aria-owns", value);
373
+ $Element.setAttribute('aria-owns', value);
384
374
  } else {
385
- $Element.removeAttribute("aria-owns");
375
+ $Element.removeAttribute('aria-owns');
386
376
  }
387
377
  break;
388
- case "ariaActivedescendant":
378
+ case 'ariaActivedescendant':
389
379
  if (value) {
390
- $Element.setAttribute("aria-activedescendant", value);
380
+ $Element.setAttribute('aria-activedescendant', value);
391
381
  } else {
392
- $Element.removeAttribute("aria-activedescendant");
382
+ $Element.removeAttribute('aria-activedescendant');
393
383
  }
394
384
  break;
395
- case "ariaControls":
396
- $Element.setAttribute("aria-controls", value);
385
+ case 'ariaControls':
386
+ $Element.setAttribute('aria-controls', value);
397
387
  break;
398
- case "inputType":
388
+ case 'inputType':
389
+ // @ts-ignore
399
390
  $Element.type = value;
400
391
  break;
401
- case "ariaLabelledBy":
402
- $Element.setAttribute("aria-labelledby", value);
392
+ case 'ariaLabelledBy':
393
+ $Element.setAttribute('aria-labelledby', value);
403
394
  break;
404
- case "onBlur":
405
- case "onChange":
406
- case "onClick":
407
- case "onContextMenu":
408
- case "onDblClick":
409
- case "onFocus":
410
- case "onFocusIn":
411
- case "onFocusOut":
412
- case "onInput":
413
- case "onKeyDown":
414
- case "onMouseDown":
415
- case "onPointerDown":
416
- case "onPointerOut":
417
- case "onPointerOver":
418
- case "onWheel":
395
+ case 'onBlur':
396
+ case 'onChange':
397
+ case 'onClick':
398
+ case 'onContextMenu':
399
+ case 'onDblClick':
400
+ case 'onFocus':
401
+ case 'onFocusIn':
402
+ case 'onFocusOut':
403
+ case 'onInput':
404
+ case 'onKeyDown':
405
+ case 'onMouseDown':
406
+ case 'onPointerDown':
407
+ case 'onPointerOut':
408
+ case 'onPointerOver':
409
+ case 'onWheel':
419
410
  const eventName = key.slice(2).toLowerCase();
420
411
  if (!eventMap || !value) {
421
412
  return;
422
413
  }
423
414
  attachEvent($Element, eventMap, eventName, value, newEventMap);
424
415
  break;
425
- case "id":
416
+ case 'id':
426
417
  if (value) {
427
418
  $Element[key] = value;
428
419
  } else {
@@ -430,38 +421,30 @@ var setProp = ($Element, key, value, eventMap, newEventMap) => {
430
421
  }
431
422
  break;
432
423
  default:
433
- if (key.startsWith("data-")) {
434
- $Element.dataset[key.slice("data-".length)] = value;
424
+ if (key.startsWith('data-')) {
425
+ $Element.dataset[key.slice('data-'.length)] = value;
435
426
  } else {
436
427
  $Element[key] = value;
437
428
  }
438
429
  }
439
430
  };
440
431
 
441
- // src/parts/VirtualDomElementProps/VirtualDomElementProps.ts
442
- var setProps = ($Element, props, eventMap, newEventMap) => {
432
+ const setProps = ($Element, props, eventMap, newEventMap) => {
443
433
  for (const key in props) {
444
- setProp(
445
- $Element,
446
- key,
447
- props[key],
448
- eventMap,
449
- newEventMap
450
- );
434
+ setProp($Element, key, props[key], eventMap, newEventMap);
451
435
  }
452
436
  };
453
437
 
454
- // src/parts/VirtualDomElement/VirtualDomElement.ts
455
- var renderDomTextNode = (element) => {
438
+ const renderDomTextNode = element => {
456
439
  return document.createTextNode(element.text);
457
440
  };
458
- var renderDomElement = (element, eventMap, newEventMap) => {
441
+ const renderDomElement = (element, eventMap, newEventMap) => {
459
442
  const tag = getElementTag(element.type);
460
443
  const $Element = document.createElement(tag);
461
444
  setProps($Element, element, eventMap, newEventMap);
462
445
  return $Element;
463
446
  };
464
- var render = (element, eventMap, newEventMap) => {
447
+ const render$1 = (element, eventMap, newEventMap) => {
465
448
  switch (element.type) {
466
449
  case Text:
467
450
  return renderDomTextNode(element);
@@ -470,14 +453,14 @@ var render = (element, eventMap, newEventMap) => {
470
453
  }
471
454
  };
472
455
 
473
- // src/parts/RenderInternal/RenderInternal.ts
474
- var renderInternal2 = ($Parent, elements, eventMap, newEventMap) => {
456
+ const renderInternal = ($Parent, elements, eventMap, newEventMap) => {
475
457
  const max = elements.length - 1;
476
458
  let stack = [];
477
459
  for (let i = max; i >= 0; i--) {
478
460
  const element = elements[i];
479
- const $Element = render(element, eventMap, newEventMap);
461
+ const $Element = render$1(element, eventMap, newEventMap);
480
462
  if (element.childCount > 0) {
463
+ // @ts-expect-error
481
464
  $Element.append(...stack.slice(0, element.childCount));
482
465
  stack = stack.slice(element.childCount);
483
466
  }
@@ -486,45 +469,38 @@ var renderInternal2 = ($Parent, elements, eventMap, newEventMap) => {
486
469
  $Parent.append(...stack);
487
470
  };
488
471
 
489
- // src/parts/PatchFunctions/PatchFunctions.ts
490
- var setAttribute = ($Element, key, value) => {
472
+ const setAttribute = ($Element, key, value) => {
491
473
  $Element.setAttribute(key, value);
492
474
  };
493
- var removeAttribute = ($Element, key) => {
475
+ const removeAttribute = ($Element, key) => {
494
476
  $Element.removeAttribute(key);
495
477
  };
496
- var setText = ($Element, value) => {
478
+ const setText = ($Element, value) => {
497
479
  $Element.nodeValue = value;
498
480
  };
499
- var removeChild = ($Element, index) => {
481
+ const removeChild = ($Element, index) => {
500
482
  const $Child = $Element.children[index];
501
483
  $Child.remove();
502
484
  };
503
- var add = ($Element, nodes) => {
504
- renderInternal2($Element, nodes, {}, {});
485
+ const add = ($Element, nodes) => {
486
+ renderInternal($Element, nodes, {}, {});
505
487
  };
506
488
 
507
- // src/parts/PatchType/PatchType.ts
508
- var SetText = 1;
509
- var SetAttribute = 3;
510
- var RemoveAttribute = 4;
511
- var Add = 6;
512
- var NavigateChild = 7;
513
- var NavigateParent = 8;
514
- var RemoveChild = 9;
515
- var NavigateSibling = 10;
489
+ const SetText = 1;
490
+ const SetAttribute = 3;
491
+ const RemoveAttribute = 4;
492
+ const Add = 6;
493
+ const NavigateChild = 7;
494
+ const NavigateParent = 8;
495
+ const RemoveChild = 9;
496
+ const NavigateSibling = 10;
516
497
 
517
- // src/parts/ApplyPatch/ApplyPatch.ts
518
- var applyPatch = ($Element, patches) => {
498
+ const applyPatch = ($Element, patches) => {
519
499
  let $Current = $Element;
520
500
  for (const patch of patches) {
521
501
  switch (patch.type) {
522
502
  case SetAttribute:
523
- setAttribute(
524
- $Current,
525
- patch.key,
526
- patch.value
527
- );
503
+ setAttribute($Current, patch.key, patch.value);
528
504
  break;
529
505
  case RemoveAttribute:
530
506
  removeAttribute($Current, patch.key);
@@ -547,64 +523,60 @@ var applyPatch = ($Element, patches) => {
547
523
  case NavigateParent:
548
524
  $Current = $Current.parentNode;
549
525
  break;
550
- default:
551
- break;
552
526
  }
553
527
  }
554
528
  };
555
529
 
556
- // src/parts/GetEventListenerArg/GetEventListenerArg.ts
557
- var getEventListenerArg = (param, event) => {
530
+ const getEventListenerArg = (param, event) => {
558
531
  switch (param) {
559
- case "event.clientX":
532
+ case 'event.clientX':
560
533
  return event.clientX;
561
- case "event.x":
534
+ case 'event.x':
562
535
  return event.x;
563
- case "event.clientY":
536
+ case 'event.clientY':
564
537
  return event.clientY;
565
- case "event.y":
538
+ case 'event.y':
566
539
  return event.y;
567
- case "event.button":
540
+ case 'event.button':
568
541
  return event.button;
569
- case "event.target.value":
542
+ case 'event.target.value':
570
543
  return event.target.value;
571
- case "event.isTrusted":
544
+ case 'event.isTrusted':
572
545
  return event.isTrusted;
573
- case "event.target.className":
546
+ case 'event.target.className':
574
547
  return event.target.className;
575
- case "event.data":
548
+ case 'event.data':
576
549
  return event.data;
577
- case "event.deltaMode":
550
+ case 'event.deltaMode':
578
551
  return event.deltaMode;
579
- case "event.deltaX":
552
+ case 'event.deltaX':
580
553
  return event.deltaX;
581
- case "event.deltaY":
554
+ case 'event.deltaY':
582
555
  return event.deltaY;
583
- case "event.detail":
556
+ case 'event.detail':
584
557
  return event.detail;
585
- case "event.target.name":
558
+ case 'event.target.name':
586
559
  return event.target.name;
587
- case "event.target.href":
560
+ case 'event.target.href':
588
561
  return event.target.href;
589
- case "event.target.src":
562
+ case 'event.target.src':
590
563
  return event.target.src;
591
- case "event.altKey":
564
+ case 'event.altKey':
592
565
  return event.altKey;
593
- case "event.key":
566
+ case 'event.key':
594
567
  return event.key;
595
- case "event.ctrlKey":
568
+ case 'event.ctrlKey':
596
569
  return event.ctrlKey;
597
- case "event.shiftKey":
570
+ case 'event.shiftKey':
598
571
  return event.shiftKey;
599
- case "event.inputType":
572
+ case 'event.inputType':
600
573
  return event.inputType;
601
574
  default:
602
575
  return param;
603
576
  }
604
577
  };
605
578
 
606
- // src/parts/GetEventListenerArgs/GetEventListenerArgs.ts
607
- var getEventListenerArgs = (params, event) => {
579
+ const getEventListenerArgs = (params, event) => {
608
580
  const serialized = [];
609
581
  for (const param of params) {
610
582
  serialized.push(getEventListenerArg(param, event));
@@ -612,9 +584,8 @@ var getEventListenerArgs = (params, event) => {
612
584
  return serialized;
613
585
  };
614
586
 
615
- // src/parts/CreateEventListenerFunction/CreateEventListenerFunction.ts
616
- var createFn = (info) => {
617
- const fn = (event) => {
587
+ const createFn = info => {
588
+ const fn = event => {
618
589
  if (info.preventDefault) {
619
590
  event.preventDefault(event);
620
591
  }
@@ -624,89 +595,99 @@ var createFn = (info) => {
624
595
  return;
625
596
  }
626
597
  const ipc = getIpc();
627
- ipc.send("Viewlet.executeViewletCommand", uid, ...args);
598
+ ipc.send('Viewlet.executeViewletCommand', uid, ...args);
628
599
  };
629
600
  nameAnonymousFunction(fn, info.name);
630
601
  if (info.passive) {
602
+ // TODO avoid mutating function property, maybe return an object with function and options
631
603
  fn.passive = true;
632
604
  }
633
605
  return fn;
634
606
  };
635
607
 
636
- // src/parts/RegisterEventListeners/RegisterEventListeners.ts
637
- var listeners = /* @__PURE__ */ Object.create(null);
638
- var registerEventListeners = (id, eventListeners) => {
639
- const map = /* @__PURE__ */ Object.create(null);
608
+ const listeners = Object.create(null);
609
+ const registerEventListeners = (id, eventListeners) => {
610
+ const map = Object.create(null);
640
611
  for (const info of eventListeners) {
641
612
  const fn = createFn(info);
642
613
  map[info.name] = fn;
643
614
  }
644
615
  listeners[id] = map;
645
616
  };
646
- var getEventListenerMap = (id) => {
617
+ const getEventListenerMap = id => {
647
618
  const map = listeners[id];
648
619
  return map;
649
620
  };
650
621
 
651
- // src/parts/QueryInputs/QueryInputs.ts
652
- var queryInputs = ($Viewlet) => {
653
- return [...$Viewlet.querySelectorAll("input, textarea")];
622
+ const queryInputs = $Viewlet => {
623
+ return [...$Viewlet.querySelectorAll('input, textarea')];
654
624
  };
655
625
 
656
- // src/parts/ClearNode/ClearNode.ts
657
- var clearNode = ($Node) => {
658
- $Node.textContent = "";
626
+ const clearNode = $Node => {
627
+ $Node.textContent = '';
659
628
  };
660
629
 
661
- // src/parts/VirtualDom/VirtualDom.ts
662
- var renderInto = ($Parent, dom, eventMap = {}) => {
630
+ const renderInto = ($Parent, dom, eventMap = {}) => {
663
631
  clearNode($Parent);
664
- renderInternal2($Parent, dom, eventMap);
632
+ renderInternal($Parent, dom, eventMap);
665
633
  };
666
- var render2 = (elements, eventMap = {}, newEventMap = {}) => {
667
- const $Root = document.createElement("div");
668
- renderInternal2($Root, elements, eventMap, newEventMap);
634
+
635
+ /**
636
+ *
637
+ * @param {any[]} elements
638
+ * @returns
639
+ */
640
+ const render = (elements, eventMap = {}, newEventMap = {}) => {
641
+ const $Root = document.createElement('div');
642
+ renderInternal($Root, elements, eventMap, newEventMap);
669
643
  return $Root;
670
644
  };
671
645
 
672
- // src/parts/RememberFocus/RememberFocus.ts
673
- var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
646
+ const rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
674
647
  const oldLeft = $Viewlet.style.left;
675
648
  const oldTop = $Viewlet.style.top;
676
649
  const oldWidth = $Viewlet.style.width;
677
650
  const oldHeight = $Viewlet.style.height;
678
- const { activeElement } = document;
679
- const isTreeFocused = activeElement?.getAttribute("role") === "tree";
680
- const isRootTree = $Viewlet.getAttribute("role") === "tree" && activeElement === $Viewlet;
681
- const focused = activeElement?.getAttribute("name");
651
+ const {
652
+ activeElement
653
+ } = document;
654
+ const isTreeFocused = activeElement?.getAttribute('role') === 'tree';
655
+ const isRootTree = $Viewlet.getAttribute('role') === 'tree' && activeElement === $Viewlet;
656
+ const focused = activeElement?.getAttribute('name');
682
657
  const $$Inputs = queryInputs($Viewlet);
683
- const inputMap = /* @__PURE__ */ Object.create(null);
658
+ const inputMap = Object.create(null);
684
659
  for (const $Input of $$Inputs) {
660
+ // @ts-ignore
685
661
  inputMap[$Input.name] = $Input.value;
686
662
  }
687
663
  if (uid) {
688
664
  const newEventMap = getEventListenerMap(uid);
689
- const $New = render2(dom, eventMap, newEventMap).firstChild;
665
+ const $New = render(dom, eventMap, newEventMap).firstChild;
690
666
  setComponentUid($New, uid);
667
+ // @ts-ignore
691
668
  $Viewlet.replaceWith($New);
669
+ // @ts-ignore
692
670
  $Viewlet = $New;
693
671
  } else {
694
672
  renderInto($Viewlet, dom, eventMap);
695
673
  }
696
674
  const $$NewInputs = queryInputs($Viewlet);
697
675
  for (const $Input of $$NewInputs) {
698
- $Input.value = inputMap[$Input.name] || $Input.value || "";
676
+ // @ts-ignore
677
+ $Input.value = inputMap[$Input.name] || $Input.value || '';
699
678
  }
700
679
  if (isRootTree) {
701
680
  $Viewlet.focus();
702
681
  } else if (isTreeFocused) {
703
682
  const $Tree = $Viewlet.querySelector('[role="tree"]');
704
683
  if ($Tree) {
684
+ // @ts-ignore
705
685
  $Tree.focus();
706
686
  }
707
687
  } else if (focused) {
708
688
  const $Focused = $Viewlet.querySelector(`[name="${focused}"]`);
709
689
  if ($Focused) {
690
+ // @ts-ignore
710
691
  $Focused.focus();
711
692
  }
712
693
  }
@@ -716,14 +697,5 @@ var rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
716
697
  $Viewlet.style.width = oldWidth;
717
698
  return $Viewlet;
718
699
  };
719
- export {
720
- applyPatch,
721
- getComponentUid,
722
- getComponentUidFromEvent,
723
- registerEventListeners,
724
- rememberFocus,
725
- render2 as render,
726
- renderInto,
727
- setComponentUid,
728
- setIpc
729
- };
700
+
701
+ export { applyPatch, getComponentUid, getComponentUidFromEvent, registerEventListeners, rememberFocus, render, renderInto, setComponentUid, setIpc };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/virtual-dom",
3
- "version": "1.19.0",
3
+ "version": "1.20.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "keywords": [],