@lvce-editor/renderer-process 23.5.0 → 24.0.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/rendererProcessMain.js +913 -892
- package/package.json +1 -1
|
@@ -180,328 +180,18 @@ const downloadFile = (fileName, url) => {
|
|
|
180
180
|
a.click();
|
|
181
181
|
};
|
|
182
182
|
|
|
183
|
-
const
|
|
184
|
-
const
|
|
185
|
-
|
|
183
|
+
const uidSymbol = Symbol('uid');
|
|
184
|
+
const getUidTarget = $Element => {
|
|
185
|
+
while ($Element) {
|
|
186
|
+
if ($Element[uidSymbol]) {
|
|
187
|
+
return $Element;
|
|
188
|
+
}
|
|
189
|
+
$Element = $Element.parentNode;
|
|
190
|
+
}
|
|
191
|
+
return undefined;
|
|
186
192
|
};
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
};
|
|
190
|
-
const Audio$2 = 'audio';
|
|
191
|
-
const Button$2 = 'button';
|
|
192
|
-
const Col$2 = 'col';
|
|
193
|
-
const ColGroup$2 = 'colgroup';
|
|
194
|
-
const Del$2 = 'del';
|
|
195
|
-
const Div$2 = 'div';
|
|
196
|
-
const H1$2 = 'h1';
|
|
197
|
-
const H2$2 = 'h2';
|
|
198
|
-
const H3$2 = 'h3';
|
|
199
|
-
const H4$2 = 'h4';
|
|
200
|
-
const H5$2 = 'h5';
|
|
201
|
-
const H6$2 = 'h6';
|
|
202
|
-
const I$2 = 'i';
|
|
203
|
-
const Img$2 = 'img';
|
|
204
|
-
const Input$2 = 'input';
|
|
205
|
-
const Ins$2 = 'ins';
|
|
206
|
-
const Kbd$2 = 'kbd';
|
|
207
|
-
const Span$2 = 'span';
|
|
208
|
-
const Table$2 = 'table';
|
|
209
|
-
const TBody$2 = 'tbody';
|
|
210
|
-
const Td$2 = 'td';
|
|
211
|
-
const Th$2 = 'th';
|
|
212
|
-
const THead$2 = 'thead';
|
|
213
|
-
const Tr$2 = 'tr';
|
|
214
|
-
const Article$2 = 'article';
|
|
215
|
-
const Aside$2 = 'aside';
|
|
216
|
-
const Footer$2 = 'footer';
|
|
217
|
-
const Header$2 = 'header';
|
|
218
|
-
const Nav$2 = 'nav';
|
|
219
|
-
const Section$2 = 'section';
|
|
220
|
-
const Search$2 = 'search';
|
|
221
|
-
const Dd$2 = 'dd';
|
|
222
|
-
const Dl$2 = 'dl';
|
|
223
|
-
const Figcaption$2 = 'figcaption';
|
|
224
|
-
const Figure$2 = 'figure';
|
|
225
|
-
const Hr$2 = 'hr';
|
|
226
|
-
const Li$2 = 'li';
|
|
227
|
-
const Ol$2 = 'ol';
|
|
228
|
-
const P$2 = 'p';
|
|
229
|
-
const Pre$2 = 'pre';
|
|
230
|
-
const A$2 = 'a';
|
|
231
|
-
const Br$2 = 'br';
|
|
232
|
-
const Cite$2 = 'cite';
|
|
233
|
-
const Data$2 = 'data';
|
|
234
|
-
const Time$2 = 'time';
|
|
235
|
-
const Tfoot$2 = 'tfoot';
|
|
236
|
-
const Ul$2 = 'ul';
|
|
237
|
-
const Video$2 = 'video';
|
|
238
|
-
const TextArea$2 = 'textarea';
|
|
239
|
-
const Select$2 = 'select';
|
|
240
|
-
const Option$2 = 'option';
|
|
241
|
-
const Code$2 = 'code';
|
|
242
|
-
const Label$2 = 'label';
|
|
243
|
-
const Dt$2 = 'dt';
|
|
244
|
-
const Iframe$1 = 'iframe';
|
|
245
|
-
const Em$1 = 'em';
|
|
246
|
-
const Strong$1 = 'strong';
|
|
247
|
-
const Style$1 = 'style';
|
|
248
|
-
const Html$1 = 'html';
|
|
249
|
-
const Head$1 = 'head';
|
|
250
|
-
const Title$1 = 'title';
|
|
251
|
-
const Meta$1 = 'meta';
|
|
252
|
-
const Canvas$1 = 'canvas';
|
|
253
|
-
const Form$1 = 'form';
|
|
254
|
-
const Quote$1$1 = 'quote';
|
|
255
|
-
const BlockQuote$1 = 'blockquote';
|
|
256
|
-
const Audio$1$1 = 0;
|
|
257
|
-
const Button$1 = 1;
|
|
258
|
-
const Col$1 = 2;
|
|
259
|
-
const ColGroup$1 = 3;
|
|
260
|
-
const Div$1 = 4;
|
|
261
|
-
const H1$1 = 5;
|
|
262
|
-
const Input$1 = 6;
|
|
263
|
-
const Kbd$1 = 7;
|
|
264
|
-
const Span$1 = 8;
|
|
265
|
-
const Table$1 = 9;
|
|
266
|
-
const TBody$1 = 10;
|
|
267
|
-
const Td$1 = 11;
|
|
268
|
-
const Text$1$1 = 12;
|
|
269
|
-
const Th$1 = 13;
|
|
270
|
-
const THead$1 = 14;
|
|
271
|
-
const Tr$1 = 15;
|
|
272
|
-
const I$1 = 16;
|
|
273
|
-
const Img$1 = 17;
|
|
274
|
-
const Ins$1 = 20;
|
|
275
|
-
const Del$1 = 21;
|
|
276
|
-
const H2$1 = 22;
|
|
277
|
-
const H3$1 = 23;
|
|
278
|
-
const H4$1 = 24;
|
|
279
|
-
const H5$1 = 25;
|
|
280
|
-
const H6$1 = 26;
|
|
281
|
-
const Article$1 = 27;
|
|
282
|
-
const Aside$1 = 28;
|
|
283
|
-
const Footer$1 = 29;
|
|
284
|
-
const Header$1 = 30;
|
|
285
|
-
const Nav$1 = 40;
|
|
286
|
-
const Section$1 = 41;
|
|
287
|
-
const Search$1 = 42;
|
|
288
|
-
const Dd$1 = 43;
|
|
289
|
-
const Dl$1 = 44;
|
|
290
|
-
const Figcaption$1 = 45;
|
|
291
|
-
const Figure$1 = 46;
|
|
292
|
-
const Hr$1 = 47;
|
|
293
|
-
const Li$1 = 48;
|
|
294
|
-
const Ol$1 = 49;
|
|
295
|
-
const P$1 = 50;
|
|
296
|
-
const Pre$1 = 51;
|
|
297
|
-
const A$1 = 53;
|
|
298
|
-
const Br$1 = 55;
|
|
299
|
-
const Cite$1 = 56;
|
|
300
|
-
const Data$1 = 57;
|
|
301
|
-
const Time$1 = 58;
|
|
302
|
-
const Tfoot$1 = 59;
|
|
303
|
-
const Ul$1 = 60;
|
|
304
|
-
const Video$1 = 61;
|
|
305
|
-
const TextArea$1 = 62;
|
|
306
|
-
const Select$1 = 63;
|
|
307
|
-
const Option$1 = 64;
|
|
308
|
-
const Code$1 = 65;
|
|
309
|
-
const Label$1 = 66;
|
|
310
|
-
const Dt$1 = 67;
|
|
311
|
-
const Iframe = 68;
|
|
312
|
-
const Strong = 70;
|
|
313
|
-
const Em = 71;
|
|
314
|
-
const Style = 72;
|
|
315
|
-
const Html = 73;
|
|
316
|
-
const Head = 74;
|
|
317
|
-
const Title = 75;
|
|
318
|
-
const Meta = 76;
|
|
319
|
-
const Canvas = 77;
|
|
320
|
-
const Form = 78;
|
|
321
|
-
const BlockQuote = 79;
|
|
322
|
-
const Quote$2 = 80;
|
|
323
|
-
const Reference$1 = 100;
|
|
324
|
-
const VirtualDomElements$1 = {
|
|
325
|
-
__proto__: null,
|
|
326
|
-
Reference: Reference$1,
|
|
327
|
-
Text: Text$1$1};
|
|
328
|
-
const getElementTag$1 = type => {
|
|
329
|
-
switch (type) {
|
|
330
|
-
case A$1:
|
|
331
|
-
return A$2;
|
|
332
|
-
case Article$1:
|
|
333
|
-
return Article$2;
|
|
334
|
-
case Aside$1:
|
|
335
|
-
return Aside$2;
|
|
336
|
-
case Audio$1$1:
|
|
337
|
-
return Audio$2;
|
|
338
|
-
case BlockQuote:
|
|
339
|
-
return BlockQuote$1;
|
|
340
|
-
case Br$1:
|
|
341
|
-
return Br$2;
|
|
342
|
-
case Button$1:
|
|
343
|
-
return Button$2;
|
|
344
|
-
case Canvas:
|
|
345
|
-
return Canvas$1;
|
|
346
|
-
case Cite$1:
|
|
347
|
-
return Cite$2;
|
|
348
|
-
case Code$1:
|
|
349
|
-
return Code$2;
|
|
350
|
-
case Col$1:
|
|
351
|
-
return Col$2;
|
|
352
|
-
case ColGroup$1:
|
|
353
|
-
return ColGroup$2;
|
|
354
|
-
case Data$1:
|
|
355
|
-
return Data$2;
|
|
356
|
-
case Dd$1:
|
|
357
|
-
return Dd$2;
|
|
358
|
-
case Del$1:
|
|
359
|
-
return Del$2;
|
|
360
|
-
case Div$1:
|
|
361
|
-
return Div$2;
|
|
362
|
-
case Dl$1:
|
|
363
|
-
return Dl$2;
|
|
364
|
-
case Dt$1:
|
|
365
|
-
return Dt$2;
|
|
366
|
-
case Em:
|
|
367
|
-
return Em$1;
|
|
368
|
-
case Figcaption$1:
|
|
369
|
-
return Figcaption$2;
|
|
370
|
-
case Figure$1:
|
|
371
|
-
return Figure$2;
|
|
372
|
-
case Footer$1:
|
|
373
|
-
return Footer$2;
|
|
374
|
-
case Form:
|
|
375
|
-
return Form$1;
|
|
376
|
-
case H1$1:
|
|
377
|
-
return H1$2;
|
|
378
|
-
case H2$1:
|
|
379
|
-
return H2$2;
|
|
380
|
-
case H3$1:
|
|
381
|
-
return H3$2;
|
|
382
|
-
case H4$1:
|
|
383
|
-
return H4$2;
|
|
384
|
-
case H5$1:
|
|
385
|
-
return H5$2;
|
|
386
|
-
case H6$1:
|
|
387
|
-
return H6$2;
|
|
388
|
-
case Head:
|
|
389
|
-
return Head$1;
|
|
390
|
-
case Header$1:
|
|
391
|
-
return Header$2;
|
|
392
|
-
case Hr$1:
|
|
393
|
-
return Hr$2;
|
|
394
|
-
case Html:
|
|
395
|
-
return Html$1;
|
|
396
|
-
case I$1:
|
|
397
|
-
return I$2;
|
|
398
|
-
case Iframe:
|
|
399
|
-
return Iframe$1;
|
|
400
|
-
case Img$1:
|
|
401
|
-
return Img$2;
|
|
402
|
-
case Input$1:
|
|
403
|
-
return Input$2;
|
|
404
|
-
case Ins$1:
|
|
405
|
-
return Ins$2;
|
|
406
|
-
case Kbd$1:
|
|
407
|
-
return Kbd$2;
|
|
408
|
-
case Label$1:
|
|
409
|
-
return Label$2;
|
|
410
|
-
case Li$1:
|
|
411
|
-
return Li$2;
|
|
412
|
-
case Meta:
|
|
413
|
-
return Meta$1;
|
|
414
|
-
case Nav$1:
|
|
415
|
-
return Nav$2;
|
|
416
|
-
case Ol$1:
|
|
417
|
-
return Ol$2;
|
|
418
|
-
case Option$1:
|
|
419
|
-
return Option$2;
|
|
420
|
-
case P$1:
|
|
421
|
-
return P$2;
|
|
422
|
-
case Pre$1:
|
|
423
|
-
return Pre$2;
|
|
424
|
-
case Quote$2:
|
|
425
|
-
return Quote$1$1;
|
|
426
|
-
case Search$1:
|
|
427
|
-
return Search$2;
|
|
428
|
-
case Section$1:
|
|
429
|
-
return Section$2;
|
|
430
|
-
case Select$1:
|
|
431
|
-
return Select$2;
|
|
432
|
-
case Span$1:
|
|
433
|
-
return Span$2;
|
|
434
|
-
case Strong:
|
|
435
|
-
return Strong$1;
|
|
436
|
-
case Style:
|
|
437
|
-
return Style$1;
|
|
438
|
-
case Table$1:
|
|
439
|
-
return Table$2;
|
|
440
|
-
case TBody$1:
|
|
441
|
-
return TBody$2;
|
|
442
|
-
case Td$1:
|
|
443
|
-
return Td$2;
|
|
444
|
-
case TextArea$1:
|
|
445
|
-
return TextArea$2;
|
|
446
|
-
case Tfoot$1:
|
|
447
|
-
return Tfoot$2;
|
|
448
|
-
case Th$1:
|
|
449
|
-
return Th$2;
|
|
450
|
-
case THead$1:
|
|
451
|
-
return THead$2;
|
|
452
|
-
case Time$1:
|
|
453
|
-
return Time$2;
|
|
454
|
-
case Title:
|
|
455
|
-
return Title$1;
|
|
456
|
-
case Tr$1:
|
|
457
|
-
return Tr$2;
|
|
458
|
-
case Ul$1:
|
|
459
|
-
return Ul$2;
|
|
460
|
-
case Video$1:
|
|
461
|
-
return Video$2;
|
|
462
|
-
default:
|
|
463
|
-
throw new Error(`element tag not found ${type}`);
|
|
464
|
-
}
|
|
465
|
-
};
|
|
466
|
-
const ElementTagMap = {
|
|
467
|
-
__proto__: null,
|
|
468
|
-
getElementTag: getElementTag$1
|
|
469
|
-
};
|
|
470
|
-
const {
|
|
471
|
-
getElementTag
|
|
472
|
-
} = ElementTagMap;
|
|
473
|
-
const getEventListenerOptions$1 = (eventName, value) => {
|
|
474
|
-
if (value.passive) {
|
|
475
|
-
return {
|
|
476
|
-
passive: true
|
|
477
|
-
};
|
|
478
|
-
}
|
|
479
|
-
if (value.capture) {
|
|
480
|
-
return {
|
|
481
|
-
capture: true
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
switch (eventName) {
|
|
485
|
-
case 'wheel':
|
|
486
|
-
return {
|
|
487
|
-
passive: true
|
|
488
|
-
};
|
|
489
|
-
default:
|
|
490
|
-
return undefined;
|
|
491
|
-
}
|
|
492
|
-
};
|
|
493
|
-
const uidSymbol = Symbol('uid');
|
|
494
|
-
const getUidTarget = $Element => {
|
|
495
|
-
while ($Element) {
|
|
496
|
-
if ($Element[uidSymbol]) {
|
|
497
|
-
return $Element;
|
|
498
|
-
}
|
|
499
|
-
$Element = $Element.parentNode;
|
|
500
|
-
}
|
|
501
|
-
return undefined;
|
|
502
|
-
};
|
|
503
|
-
const setComponentUid = ($Element, uid) => {
|
|
504
|
-
$Element[uidSymbol] = uid;
|
|
193
|
+
const setComponentUid = ($Element, uid) => {
|
|
194
|
+
$Element[uidSymbol] = uid;
|
|
505
195
|
};
|
|
506
196
|
const getComponentUid = $Element => {
|
|
507
197
|
const $Target = getUidTarget($Element);
|
|
@@ -517,605 +207,954 @@ const getComponentUidFromEvent = event => {
|
|
|
517
207
|
} = event;
|
|
518
208
|
return getComponentUid(currentTarget || target);
|
|
519
209
|
};
|
|
520
|
-
const
|
|
521
|
-
|
|
210
|
+
const dragInfos = Object.create(null);
|
|
211
|
+
const setDragInfo = (id, data) => {
|
|
212
|
+
dragInfos[id] = data;
|
|
522
213
|
};
|
|
523
|
-
const
|
|
524
|
-
return
|
|
214
|
+
const getDragInfo = id => {
|
|
215
|
+
return dragInfos[id];
|
|
525
216
|
};
|
|
526
|
-
const
|
|
527
|
-
|
|
217
|
+
const isDragInfoOld = data => {
|
|
218
|
+
return Array.isArray(data);
|
|
528
219
|
};
|
|
529
|
-
const
|
|
530
|
-
const
|
|
531
|
-
|
|
220
|
+
const setDragImage = (dataTransfer, label) => {
|
|
221
|
+
const dragImage = document.createElement('div');
|
|
222
|
+
dragImage.className = 'DragImage';
|
|
223
|
+
dragImage.textContent = label;
|
|
224
|
+
document.body.append(dragImage);
|
|
225
|
+
dataTransfer.setDragImage(dragImage, -10, -10);
|
|
226
|
+
const handleTimeOut = () => {
|
|
227
|
+
dragImage.remove();
|
|
228
|
+
};
|
|
229
|
+
setTimeout(handleTimeOut, 0);
|
|
532
230
|
};
|
|
533
|
-
const
|
|
534
|
-
|
|
231
|
+
const applyDragInfoMaybe = event => {
|
|
232
|
+
const {
|
|
233
|
+
dataTransfer,
|
|
234
|
+
target
|
|
235
|
+
} = event;
|
|
236
|
+
if (dataTransfer) {
|
|
237
|
+
const uid = getComponentUid(target);
|
|
238
|
+
const dragInfo = getDragInfo(uid);
|
|
239
|
+
if (!dragInfo) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (isDragInfoOld(dragInfo)) {
|
|
243
|
+
for (const item of dragInfo) {
|
|
244
|
+
dataTransfer.setData(item.type, item.data);
|
|
245
|
+
}
|
|
246
|
+
} else {
|
|
247
|
+
for (const item of dragInfo.items) {
|
|
248
|
+
dataTransfer.items.add(item.data, item.type);
|
|
249
|
+
}
|
|
250
|
+
if (dragInfo.label) {
|
|
251
|
+
setDragImage(dataTransfer, dragInfo.label);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
535
255
|
};
|
|
536
|
-
const
|
|
537
|
-
|
|
256
|
+
const PointerMove$1 = 'pointermove';
|
|
257
|
+
const lostpointercapture = 'lostpointercapture';
|
|
258
|
+
let ignore = false;
|
|
259
|
+
const startIgnore = () => {
|
|
260
|
+
ignore = true;
|
|
538
261
|
};
|
|
539
|
-
const
|
|
540
|
-
|
|
541
|
-
value: name
|
|
542
|
-
});
|
|
262
|
+
const stopIgnore = () => {
|
|
263
|
+
ignore = false;
|
|
543
264
|
};
|
|
544
|
-
const
|
|
545
|
-
|
|
546
|
-
return listener;
|
|
547
|
-
}
|
|
548
|
-
if (!has$1(listener)) {
|
|
549
|
-
const wrapped = event => {
|
|
550
|
-
const uid = getComponentUidFromEvent(event);
|
|
551
|
-
const result = listener(event);
|
|
552
|
-
// TODO check for empty array by value
|
|
553
|
-
if (result.length === 0) {
|
|
554
|
-
return;
|
|
555
|
-
}
|
|
556
|
-
const ipc = getIpc();
|
|
557
|
-
ipc.send('Viewlet.executeViewletCommand', uid, ...result);
|
|
558
|
-
};
|
|
559
|
-
nameAnonymousFunction$1(wrapped, listener.name);
|
|
560
|
-
set$8(listener, wrapped);
|
|
561
|
-
}
|
|
562
|
-
return get$9(listener);
|
|
265
|
+
const enabled = () => {
|
|
266
|
+
return ignore;
|
|
563
267
|
};
|
|
564
|
-
|
|
565
|
-
const
|
|
566
|
-
|
|
567
|
-
return {
|
|
568
|
-
passive: true
|
|
569
|
-
};
|
|
570
|
-
}
|
|
571
|
-
if (fn.capture) {
|
|
572
|
-
return {
|
|
573
|
-
capture: true
|
|
574
|
-
};
|
|
575
|
-
}
|
|
576
|
-
return undefined;
|
|
268
|
+
let id$1 = 0;
|
|
269
|
+
const create$N = () => {
|
|
270
|
+
return ++id$1;
|
|
577
271
|
};
|
|
578
|
-
const
|
|
579
|
-
|
|
580
|
-
const
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
$Node.removeEventListener(keyLower, previous.listener, previous.options);
|
|
584
|
-
}
|
|
585
|
-
if (newEventMap && newEventMap[value]) {
|
|
586
|
-
const fn = newEventMap[value];
|
|
587
|
-
const options = getOptions(fn);
|
|
588
|
-
// TODO support event listener options
|
|
589
|
-
$Node.addEventListener(keyLower, newEventMap[value], options);
|
|
590
|
-
listenersByEvent.set(keyLower, {
|
|
591
|
-
listener: newEventMap[value],
|
|
592
|
-
options
|
|
593
|
-
});
|
|
594
|
-
attachedListeners.set($Node, listenersByEvent);
|
|
595
|
-
return;
|
|
596
|
-
}
|
|
597
|
-
const listener = eventMap[value];
|
|
598
|
-
if (!listener) {
|
|
599
|
-
console.warn('listener not found', value);
|
|
600
|
-
return;
|
|
601
|
-
}
|
|
602
|
-
const options = getEventListenerOptions$1(key, value);
|
|
603
|
-
const wrapped = getWrappedListener$1(listener, eventMap.returnValue);
|
|
604
|
-
$Node.addEventListener(keyLower, wrapped, options);
|
|
605
|
-
listenersByEvent.set(keyLower, {
|
|
606
|
-
listener: wrapped,
|
|
607
|
-
options
|
|
608
|
-
});
|
|
609
|
-
attachedListeners.set($Node, listenersByEvent);
|
|
272
|
+
const state$1$1 = Object.create(null);
|
|
273
|
+
const acquire$1 = id => {
|
|
274
|
+
const promise = state$1$1[id];
|
|
275
|
+
delete state$1$1[id];
|
|
276
|
+
return promise;
|
|
610
277
|
};
|
|
611
|
-
const
|
|
612
|
-
const
|
|
613
|
-
const
|
|
614
|
-
|
|
615
|
-
return;
|
|
616
|
-
}
|
|
617
|
-
let match;
|
|
618
|
-
while ((match = STYLE_REGEX.exec(styleString)) !== null) {
|
|
619
|
-
const key = match[1].trim();
|
|
620
|
-
const value = match[2].trim();
|
|
621
|
-
// Convert kebab-case to camelCase for CSS properties with dashes
|
|
622
|
-
const camelCaseKey = key.replaceAll(KEBAB_CASE_REGEX, (_, char) => char.toUpperCase());
|
|
623
|
-
$Element.style[camelCaseKey] = value;
|
|
624
|
-
}
|
|
278
|
+
const getFileHandles$1 = async ids => {
|
|
279
|
+
const promises = ids.map(acquire$1);
|
|
280
|
+
const handles = await Promise.all(promises);
|
|
281
|
+
return handles;
|
|
625
282
|
};
|
|
626
|
-
const
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
283
|
+
const add$1 = promise => {
|
|
284
|
+
const id = create$N();
|
|
285
|
+
state$1$1[id] = promise;
|
|
286
|
+
return id;
|
|
287
|
+
};
|
|
288
|
+
const addFileHandle$1 = fileHandle => {
|
|
289
|
+
const promise = Promise.resolve(fileHandle);
|
|
290
|
+
return add$1(promise);
|
|
291
|
+
};
|
|
292
|
+
const unwrapItemString = async item => {
|
|
293
|
+
const {
|
|
294
|
+
resolve,
|
|
295
|
+
promise
|
|
296
|
+
} = Promise.withResolvers();
|
|
297
|
+
item.getAsString(resolve);
|
|
298
|
+
const value = await promise;
|
|
299
|
+
return {
|
|
300
|
+
kind: 'string',
|
|
301
|
+
type: item.type,
|
|
302
|
+
value
|
|
303
|
+
};
|
|
304
|
+
};
|
|
305
|
+
const unwrapItemFile = async item => {
|
|
306
|
+
// @ts-ignore
|
|
307
|
+
const file = await item.getAsFileSystemHandle();
|
|
308
|
+
return {
|
|
309
|
+
kind: 'file',
|
|
310
|
+
type: item.type,
|
|
311
|
+
value: file
|
|
312
|
+
};
|
|
313
|
+
};
|
|
314
|
+
const unknownItem = {
|
|
315
|
+
kind: 'unknown',
|
|
316
|
+
type: '',
|
|
317
|
+
value: ''
|
|
318
|
+
};
|
|
319
|
+
const unwrapItem = item => {
|
|
320
|
+
switch (item.kind) {
|
|
321
|
+
case 'file':
|
|
322
|
+
return unwrapItemFile(item);
|
|
323
|
+
case 'string':
|
|
324
|
+
return unwrapItemString(item);
|
|
325
|
+
default:
|
|
326
|
+
return unknownItem;
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
const handleDataTransferFiles = event => {
|
|
330
|
+
if (!event.dataTransfer) {
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
const items = [...event.dataTransfer.items];
|
|
334
|
+
const promises = items.map(unwrapItem);
|
|
335
|
+
const ids = promises.map(promise => add$1(promise));
|
|
336
|
+
return ids;
|
|
337
|
+
};
|
|
338
|
+
const getEventListenerArg = (param, event) => {
|
|
339
|
+
switch (param) {
|
|
340
|
+
case 'event.altKey':
|
|
341
|
+
return event.altKey;
|
|
342
|
+
case 'event.button':
|
|
343
|
+
return event.button;
|
|
344
|
+
case 'event.clientX':
|
|
345
|
+
return event.clientX;
|
|
346
|
+
case 'event.clientY':
|
|
347
|
+
return event.clientY;
|
|
348
|
+
case 'event.ctrlKey':
|
|
349
|
+
return event.ctrlKey;
|
|
350
|
+
case 'event.data':
|
|
351
|
+
return event.data;
|
|
352
|
+
case 'event.dataTransfer.files':
|
|
353
|
+
return event.dataTransfer.files;
|
|
354
|
+
case 'event.dataTransfer.files2':
|
|
355
|
+
return handleDataTransferFiles(event);
|
|
356
|
+
case 'event.defaultPrevented':
|
|
357
|
+
return event.defaultPrevented;
|
|
358
|
+
case 'event.deltaMode':
|
|
359
|
+
return event.deltaMode;
|
|
360
|
+
case 'event.deltaX':
|
|
361
|
+
return event.deltaX;
|
|
362
|
+
case 'event.deltaY':
|
|
363
|
+
return event.deltaY;
|
|
364
|
+
case 'event.detail':
|
|
365
|
+
return event.detail;
|
|
366
|
+
case 'event.inputType':
|
|
367
|
+
return event.inputType;
|
|
368
|
+
case 'event.isTrusted':
|
|
369
|
+
return event.isTrusted;
|
|
370
|
+
case 'event.key':
|
|
371
|
+
return event.key;
|
|
372
|
+
case 'event.shiftKey':
|
|
373
|
+
return event.shiftKey;
|
|
374
|
+
case 'event.target.checked':
|
|
375
|
+
return event.target.checked;
|
|
376
|
+
case 'event.target.className':
|
|
377
|
+
return event.target.className;
|
|
378
|
+
case 'event.target.href':
|
|
379
|
+
return event.target.href;
|
|
380
|
+
case 'event.target.name':
|
|
381
|
+
return event.target.name || '';
|
|
382
|
+
case 'event.target.nodeName':
|
|
383
|
+
return event.target.nodeName;
|
|
384
|
+
case 'event.target.scrollTop':
|
|
385
|
+
return event.target.scrollTop;
|
|
386
|
+
case 'event.target.selectionEnd':
|
|
387
|
+
return event.target.selectionEnd;
|
|
388
|
+
case 'event.target.selectionStart':
|
|
389
|
+
return event.target.selectionStart;
|
|
390
|
+
case 'event.target.src':
|
|
391
|
+
return event.target.src;
|
|
392
|
+
case 'event.target.value':
|
|
393
|
+
return event.target.value;
|
|
394
|
+
case 'event.x':
|
|
395
|
+
return event.x;
|
|
396
|
+
case 'event.y':
|
|
397
|
+
return event.y;
|
|
398
|
+
default:
|
|
399
|
+
if (typeof param === 'string' && param.startsWith('event.currentTarget.')) {
|
|
400
|
+
const rest = param.slice('event.currentTarget.'.length);
|
|
401
|
+
const parts = rest.split('.');
|
|
402
|
+
let current = event.currentTarget;
|
|
403
|
+
for (const part of parts) {
|
|
404
|
+
current = current[part];
|
|
405
|
+
}
|
|
406
|
+
return current;
|
|
667
407
|
}
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
$Element.type = value;
|
|
672
|
-
break;
|
|
673
|
-
case 'left':
|
|
674
|
-
case 'marginTop':
|
|
675
|
-
case 'paddingLeft':
|
|
676
|
-
case 'paddingRight':
|
|
677
|
-
case 'top':
|
|
678
|
-
$Element.style[key] = typeof value === 'number' ? `${value}px` : value;
|
|
679
|
-
break;
|
|
680
|
-
case 'maskImage':
|
|
681
|
-
$Element.style.maskImage = `url('${value}')`;
|
|
682
|
-
$Element.style.webkitMaskImage = `url('${value}')`;
|
|
683
|
-
break;
|
|
684
|
-
case 'onBlur':
|
|
685
|
-
case 'onChange':
|
|
686
|
-
case 'onClick':
|
|
687
|
-
case 'onContextMenu':
|
|
688
|
-
case 'onDblClick':
|
|
689
|
-
case 'onDragEnd':
|
|
690
|
-
case 'onDragEnter':
|
|
691
|
-
case 'onDragLeave':
|
|
692
|
-
case 'onDragOver':
|
|
693
|
-
case 'onDragStart':
|
|
694
|
-
case 'onDrop':
|
|
695
|
-
case 'onFocus':
|
|
696
|
-
case 'onFocusIn':
|
|
697
|
-
case 'onFocusOut':
|
|
698
|
-
case 'onInput':
|
|
699
|
-
case 'onKeydown':
|
|
700
|
-
case 'onKeyDown':
|
|
701
|
-
case 'onKeyUp':
|
|
702
|
-
case 'onMouseDown':
|
|
703
|
-
case 'onMouseMove':
|
|
704
|
-
case 'onMouseOut':
|
|
705
|
-
case 'onMouseOver':
|
|
706
|
-
case 'onMouseUp':
|
|
707
|
-
case 'onPointerDown':
|
|
708
|
-
case 'onPointerMove':
|
|
709
|
-
case 'onPointerOut':
|
|
710
|
-
case 'onPointerOver':
|
|
711
|
-
case 'onScroll':
|
|
712
|
-
case 'onSelectionChange':
|
|
713
|
-
case 'onSubmit':
|
|
714
|
-
case 'onWheel':
|
|
715
|
-
const eventName = key.slice(2).toLowerCase();
|
|
716
|
-
if (!eventMap || !value) {
|
|
717
|
-
return;
|
|
408
|
+
if (typeof param === 'string' && param.startsWith('event.target.dataset')) {
|
|
409
|
+
const rest = param.slice('event.target.dataset.'.length);
|
|
410
|
+
return event.target.dataset[rest];
|
|
718
411
|
}
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
412
|
+
return param;
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
const getEventListenerArgs = (params, event) => {
|
|
416
|
+
const serialized = [];
|
|
417
|
+
for (const param of params) {
|
|
418
|
+
serialized.push(getEventListenerArg(param, event));
|
|
419
|
+
}
|
|
420
|
+
return serialized;
|
|
421
|
+
};
|
|
422
|
+
const state$8 = {
|
|
423
|
+
ipc: undefined
|
|
424
|
+
};
|
|
425
|
+
const getIpc = () => {
|
|
426
|
+
return state$8.ipc;
|
|
427
|
+
};
|
|
428
|
+
const setIpc = value => {
|
|
429
|
+
state$8.ipc = value;
|
|
430
|
+
};
|
|
431
|
+
const nameAnonymousFunction$1 = (fn, name) => {
|
|
432
|
+
Object.defineProperty(fn, 'name', {
|
|
433
|
+
value: name
|
|
434
|
+
});
|
|
435
|
+
};
|
|
436
|
+
const isInputElement = element => {
|
|
437
|
+
return element instanceof HTMLInputElement;
|
|
438
|
+
};
|
|
439
|
+
const preventEventsMaybe = (info, event) => {
|
|
440
|
+
if (info.preventDefault === 2) {
|
|
441
|
+
if (!isInputElement(event.target)) {
|
|
442
|
+
event.preventDefault();
|
|
443
|
+
}
|
|
444
|
+
} else if (info.preventDefault) {
|
|
445
|
+
event.preventDefault();
|
|
446
|
+
}
|
|
447
|
+
if (info.stopPropagation) {
|
|
448
|
+
event.stopPropagation();
|
|
449
|
+
}
|
|
450
|
+
};
|
|
451
|
+
const applyPointerTrackMaybe = (info, map, event) => {
|
|
452
|
+
const {
|
|
453
|
+
trackPointerEvents
|
|
454
|
+
} = info;
|
|
455
|
+
if (!trackPointerEvents) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
const {
|
|
459
|
+
pointerId,
|
|
460
|
+
target
|
|
461
|
+
} = event;
|
|
462
|
+
target.setPointerCapture(pointerId);
|
|
463
|
+
const [pointerMoveKey, pointerUpKey] = trackPointerEvents;
|
|
464
|
+
target.addEventListener(PointerMove$1, map[pointerMoveKey]);
|
|
465
|
+
target.addEventListener(lostpointercapture, map[pointerUpKey]);
|
|
466
|
+
};
|
|
467
|
+
const createFn = (info, map) => {
|
|
468
|
+
const fn = event => {
|
|
469
|
+
if (enabled()) {
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
const uid = getComponentUidFromEvent(event);
|
|
473
|
+
const args = getEventListenerArgs(info.params, event);
|
|
474
|
+
preventEventsMaybe(info, event);
|
|
475
|
+
applyDragInfoMaybe(event);
|
|
476
|
+
applyPointerTrackMaybe(info, map, event);
|
|
477
|
+
if (args.length === 0) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
const ipc = getIpc();
|
|
481
|
+
ipc.send('Viewlet.executeViewletCommand', uid, ...args);
|
|
482
|
+
};
|
|
483
|
+
nameAnonymousFunction$1(fn, info.name);
|
|
484
|
+
if (info.passive) {
|
|
485
|
+
// TODO avoid mutating function property, maybe return an object with function and options
|
|
486
|
+
fn.passive = true;
|
|
487
|
+
}
|
|
488
|
+
if (info.capture) {
|
|
489
|
+
// TODO avoid mutating function property, maybe return an object with function and options
|
|
490
|
+
fn.capture = true;
|
|
491
|
+
}
|
|
492
|
+
return fn;
|
|
493
|
+
};
|
|
494
|
+
const listeners = Object.create(null);
|
|
495
|
+
const registerEventListeners = (id, eventListeners) => {
|
|
496
|
+
const map = Object.create(null);
|
|
497
|
+
for (const info of eventListeners) {
|
|
498
|
+
const fn = createFn(info, map);
|
|
499
|
+
map[info.name] = fn;
|
|
500
|
+
}
|
|
501
|
+
listeners[id] = map;
|
|
502
|
+
};
|
|
503
|
+
const getEventListenerMap = id => {
|
|
504
|
+
const map = listeners[id];
|
|
505
|
+
return map;
|
|
506
|
+
};
|
|
507
|
+
const clearNode = $Node => {
|
|
508
|
+
$Node.textContent = '';
|
|
509
|
+
};
|
|
510
|
+
const Audio$2 = 'audio';
|
|
511
|
+
const Button$2 = 'button';
|
|
512
|
+
const Col$2 = 'col';
|
|
513
|
+
const ColGroup$2 = 'colgroup';
|
|
514
|
+
const Del$2 = 'del';
|
|
515
|
+
const Div$2 = 'div';
|
|
516
|
+
const H1$2 = 'h1';
|
|
517
|
+
const H2$2 = 'h2';
|
|
518
|
+
const H3$2 = 'h3';
|
|
519
|
+
const H4$2 = 'h4';
|
|
520
|
+
const H5$2 = 'h5';
|
|
521
|
+
const H6$2 = 'h6';
|
|
522
|
+
const I$2 = 'i';
|
|
523
|
+
const Img$2 = 'img';
|
|
524
|
+
const Input$2 = 'input';
|
|
525
|
+
const Ins$2 = 'ins';
|
|
526
|
+
const Kbd$2 = 'kbd';
|
|
527
|
+
const Span$2 = 'span';
|
|
528
|
+
const Table$2 = 'table';
|
|
529
|
+
const TBody$2 = 'tbody';
|
|
530
|
+
const Td$2 = 'td';
|
|
531
|
+
const Th$2 = 'th';
|
|
532
|
+
const THead$2 = 'thead';
|
|
533
|
+
const Tr$2 = 'tr';
|
|
534
|
+
const Article$2 = 'article';
|
|
535
|
+
const Aside$2 = 'aside';
|
|
536
|
+
const Footer$2 = 'footer';
|
|
537
|
+
const Header$2 = 'header';
|
|
538
|
+
const Nav$2 = 'nav';
|
|
539
|
+
const Section$2 = 'section';
|
|
540
|
+
const Search$2 = 'search';
|
|
541
|
+
const Dd$2 = 'dd';
|
|
542
|
+
const Dl$2 = 'dl';
|
|
543
|
+
const Figcaption$2 = 'figcaption';
|
|
544
|
+
const Figure$2 = 'figure';
|
|
545
|
+
const Hr$2 = 'hr';
|
|
546
|
+
const Li$2 = 'li';
|
|
547
|
+
const Ol$2 = 'ol';
|
|
548
|
+
const P$2 = 'p';
|
|
549
|
+
const Pre$2 = 'pre';
|
|
550
|
+
const A$2 = 'a';
|
|
551
|
+
const Br$2 = 'br';
|
|
552
|
+
const Cite$2 = 'cite';
|
|
553
|
+
const Data$2 = 'data';
|
|
554
|
+
const Time$2 = 'time';
|
|
555
|
+
const Tfoot$2 = 'tfoot';
|
|
556
|
+
const Ul$2 = 'ul';
|
|
557
|
+
const Video$2 = 'video';
|
|
558
|
+
const TextArea$2 = 'textarea';
|
|
559
|
+
const Select$2 = 'select';
|
|
560
|
+
const Option$2 = 'option';
|
|
561
|
+
const Code$2 = 'code';
|
|
562
|
+
const Label$2 = 'label';
|
|
563
|
+
const Dt$2 = 'dt';
|
|
564
|
+
const Iframe$1 = 'iframe';
|
|
565
|
+
const Em$1 = 'em';
|
|
566
|
+
const Strong$1 = 'strong';
|
|
567
|
+
const Style$1 = 'style';
|
|
568
|
+
const Html$1 = 'html';
|
|
569
|
+
const Head$1 = 'head';
|
|
570
|
+
const Title$1 = 'title';
|
|
571
|
+
const Meta$1 = 'meta';
|
|
572
|
+
const Canvas$1 = 'canvas';
|
|
573
|
+
const Form$1 = 'form';
|
|
574
|
+
const Quote$1$1 = 'quote';
|
|
575
|
+
const BlockQuote$1 = 'blockquote';
|
|
576
|
+
const Audio$1$1 = 0;
|
|
577
|
+
const Button$1 = 1;
|
|
578
|
+
const Col$1 = 2;
|
|
579
|
+
const ColGroup$1 = 3;
|
|
580
|
+
const Div$1 = 4;
|
|
581
|
+
const H1$1 = 5;
|
|
582
|
+
const Input$1 = 6;
|
|
583
|
+
const Kbd$1 = 7;
|
|
584
|
+
const Span$1 = 8;
|
|
585
|
+
const Table$1 = 9;
|
|
586
|
+
const TBody$1 = 10;
|
|
587
|
+
const Td$1 = 11;
|
|
588
|
+
const Text$1$1 = 12;
|
|
589
|
+
const Th$1 = 13;
|
|
590
|
+
const THead$1 = 14;
|
|
591
|
+
const Tr$1 = 15;
|
|
592
|
+
const I$1 = 16;
|
|
593
|
+
const Img$1 = 17;
|
|
594
|
+
const Ins$1 = 20;
|
|
595
|
+
const Del$1 = 21;
|
|
596
|
+
const H2$1 = 22;
|
|
597
|
+
const H3$1 = 23;
|
|
598
|
+
const H4$1 = 24;
|
|
599
|
+
const H5$1 = 25;
|
|
600
|
+
const H6$1 = 26;
|
|
601
|
+
const Article$1 = 27;
|
|
602
|
+
const Aside$1 = 28;
|
|
603
|
+
const Footer$1 = 29;
|
|
604
|
+
const Header$1 = 30;
|
|
605
|
+
const Nav$1 = 40;
|
|
606
|
+
const Section$1 = 41;
|
|
607
|
+
const Search$1 = 42;
|
|
608
|
+
const Dd$1 = 43;
|
|
609
|
+
const Dl$1 = 44;
|
|
610
|
+
const Figcaption$1 = 45;
|
|
611
|
+
const Figure$1 = 46;
|
|
612
|
+
const Hr$1 = 47;
|
|
613
|
+
const Li$1 = 48;
|
|
614
|
+
const Ol$1 = 49;
|
|
615
|
+
const P$1 = 50;
|
|
616
|
+
const Pre$1 = 51;
|
|
617
|
+
const A$1 = 53;
|
|
618
|
+
const Br$1 = 55;
|
|
619
|
+
const Cite$1 = 56;
|
|
620
|
+
const Data$1 = 57;
|
|
621
|
+
const Time$1 = 58;
|
|
622
|
+
const Tfoot$1 = 59;
|
|
623
|
+
const Ul$1 = 60;
|
|
624
|
+
const Video$1 = 61;
|
|
625
|
+
const TextArea$1 = 62;
|
|
626
|
+
const Select$1 = 63;
|
|
627
|
+
const Option$1 = 64;
|
|
628
|
+
const Code$1 = 65;
|
|
629
|
+
const Label$1 = 66;
|
|
630
|
+
const Dt$1 = 67;
|
|
631
|
+
const Iframe = 68;
|
|
632
|
+
const Strong = 70;
|
|
633
|
+
const Em = 71;
|
|
634
|
+
const Style = 72;
|
|
635
|
+
const Html = 73;
|
|
636
|
+
const Head = 74;
|
|
637
|
+
const Title = 75;
|
|
638
|
+
const Meta = 76;
|
|
639
|
+
const Canvas = 77;
|
|
640
|
+
const Form = 78;
|
|
641
|
+
const BlockQuote = 79;
|
|
642
|
+
const Quote$2 = 80;
|
|
643
|
+
const Reference$1 = 100;
|
|
644
|
+
const VirtualDomElements$1 = {
|
|
645
|
+
__proto__: null,
|
|
646
|
+
Reference: Reference$1,
|
|
647
|
+
Text: Text$1$1};
|
|
648
|
+
const getElementTag$1 = type => {
|
|
649
|
+
switch (type) {
|
|
650
|
+
case A$1:
|
|
651
|
+
return A$2;
|
|
652
|
+
case Article$1:
|
|
653
|
+
return Article$2;
|
|
654
|
+
case Aside$1:
|
|
655
|
+
return Aside$2;
|
|
656
|
+
case Audio$1$1:
|
|
657
|
+
return Audio$2;
|
|
658
|
+
case BlockQuote:
|
|
659
|
+
return BlockQuote$1;
|
|
660
|
+
case Br$1:
|
|
661
|
+
return Br$2;
|
|
662
|
+
case Button$1:
|
|
663
|
+
return Button$2;
|
|
664
|
+
case Canvas:
|
|
665
|
+
return Canvas$1;
|
|
666
|
+
case Cite$1:
|
|
667
|
+
return Cite$2;
|
|
668
|
+
case Code$1:
|
|
669
|
+
return Code$2;
|
|
670
|
+
case Col$1:
|
|
671
|
+
return Col$2;
|
|
672
|
+
case ColGroup$1:
|
|
673
|
+
return ColGroup$2;
|
|
674
|
+
case Data$1:
|
|
675
|
+
return Data$2;
|
|
676
|
+
case Dd$1:
|
|
677
|
+
return Dd$2;
|
|
678
|
+
case Del$1:
|
|
679
|
+
return Del$2;
|
|
680
|
+
case Div$1:
|
|
681
|
+
return Div$2;
|
|
682
|
+
case Dl$1:
|
|
683
|
+
return Dl$2;
|
|
684
|
+
case Dt$1:
|
|
685
|
+
return Dt$2;
|
|
686
|
+
case Em:
|
|
687
|
+
return Em$1;
|
|
688
|
+
case Figcaption$1:
|
|
689
|
+
return Figcaption$2;
|
|
690
|
+
case Figure$1:
|
|
691
|
+
return Figure$2;
|
|
692
|
+
case Footer$1:
|
|
693
|
+
return Footer$2;
|
|
694
|
+
case Form:
|
|
695
|
+
return Form$1;
|
|
696
|
+
case H1$1:
|
|
697
|
+
return H1$2;
|
|
698
|
+
case H2$1:
|
|
699
|
+
return H2$2;
|
|
700
|
+
case H3$1:
|
|
701
|
+
return H3$2;
|
|
702
|
+
case H4$1:
|
|
703
|
+
return H4$2;
|
|
704
|
+
case H5$1:
|
|
705
|
+
return H5$2;
|
|
706
|
+
case H6$1:
|
|
707
|
+
return H6$2;
|
|
708
|
+
case Head:
|
|
709
|
+
return Head$1;
|
|
710
|
+
case Header$1:
|
|
711
|
+
return Header$2;
|
|
712
|
+
case Hr$1:
|
|
713
|
+
return Hr$2;
|
|
714
|
+
case Html:
|
|
715
|
+
return Html$1;
|
|
716
|
+
case I$1:
|
|
717
|
+
return I$2;
|
|
718
|
+
case Iframe:
|
|
719
|
+
return Iframe$1;
|
|
720
|
+
case Img$1:
|
|
721
|
+
return Img$2;
|
|
722
|
+
case Input$1:
|
|
723
|
+
return Input$2;
|
|
724
|
+
case Ins$1:
|
|
725
|
+
return Ins$2;
|
|
726
|
+
case Kbd$1:
|
|
727
|
+
return Kbd$2;
|
|
728
|
+
case Label$1:
|
|
729
|
+
return Label$2;
|
|
730
|
+
case Li$1:
|
|
731
|
+
return Li$2;
|
|
732
|
+
case Meta:
|
|
733
|
+
return Meta$1;
|
|
734
|
+
case Nav$1:
|
|
735
|
+
return Nav$2;
|
|
736
|
+
case Ol$1:
|
|
737
|
+
return Ol$2;
|
|
738
|
+
case Option$1:
|
|
739
|
+
return Option$2;
|
|
740
|
+
case P$1:
|
|
741
|
+
return P$2;
|
|
742
|
+
case Pre$1:
|
|
743
|
+
return Pre$2;
|
|
744
|
+
case Quote$2:
|
|
745
|
+
return Quote$1$1;
|
|
746
|
+
case Search$1:
|
|
747
|
+
return Search$2;
|
|
748
|
+
case Section$1:
|
|
749
|
+
return Section$2;
|
|
750
|
+
case Select$1:
|
|
751
|
+
return Select$2;
|
|
752
|
+
case Span$1:
|
|
753
|
+
return Span$2;
|
|
754
|
+
case Strong:
|
|
755
|
+
return Strong$1;
|
|
756
|
+
case Style:
|
|
757
|
+
return Style$1;
|
|
758
|
+
case Table$1:
|
|
759
|
+
return Table$2;
|
|
760
|
+
case TBody$1:
|
|
761
|
+
return TBody$2;
|
|
762
|
+
case Td$1:
|
|
763
|
+
return Td$2;
|
|
764
|
+
case TextArea$1:
|
|
765
|
+
return TextArea$2;
|
|
766
|
+
case Tfoot$1:
|
|
767
|
+
return Tfoot$2;
|
|
768
|
+
case Th$1:
|
|
769
|
+
return Th$2;
|
|
770
|
+
case THead$1:
|
|
771
|
+
return THead$2;
|
|
772
|
+
case Time$1:
|
|
773
|
+
return Time$2;
|
|
774
|
+
case Title:
|
|
775
|
+
return Title$1;
|
|
776
|
+
case Tr$1:
|
|
777
|
+
return Tr$2;
|
|
778
|
+
case Ul$1:
|
|
779
|
+
return Ul$2;
|
|
780
|
+
case Video$1:
|
|
781
|
+
return Video$2;
|
|
727
782
|
default:
|
|
728
|
-
|
|
729
|
-
$Element.dataset[key.slice('data-'.length)] = value;
|
|
730
|
-
} else {
|
|
731
|
-
$Element[key] = value;
|
|
732
|
-
}
|
|
783
|
+
throw new Error(`element tag not found ${type}`);
|
|
733
784
|
}
|
|
734
785
|
};
|
|
735
|
-
const
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
}
|
|
786
|
+
const ElementTagMap = {
|
|
787
|
+
__proto__: null,
|
|
788
|
+
getElementTag: getElementTag$1
|
|
739
789
|
};
|
|
740
790
|
const {
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
const
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
const renderDomElement = (element, eventMap, newEventMap) => {
|
|
747
|
-
const tag = getElementTag(element.type);
|
|
748
|
-
const $Element = document.createElement(tag);
|
|
749
|
-
setProps($Element, element, eventMap, newEventMap);
|
|
750
|
-
return $Element;
|
|
751
|
-
};
|
|
752
|
-
const renderReferenceNode = element => {
|
|
753
|
-
const instance = get$1$1(element.uid);
|
|
754
|
-
if (!instance || !instance.state) {
|
|
755
|
-
return document.createTextNode('Reference node not found');
|
|
756
|
-
}
|
|
757
|
-
const $Node = instance.state.$Viewlet;
|
|
758
|
-
return $Node;
|
|
759
|
-
};
|
|
760
|
-
const render$1 = (element, eventMap, newEventMap) => {
|
|
761
|
-
switch (element.type) {
|
|
762
|
-
case Reference:
|
|
763
|
-
return renderReferenceNode(element);
|
|
764
|
-
case Text$2:
|
|
765
|
-
return renderDomTextNode(element);
|
|
766
|
-
default:
|
|
767
|
-
return renderDomElement(element, eventMap, newEventMap);
|
|
768
|
-
}
|
|
769
|
-
};
|
|
770
|
-
const renderInternal = ($Parent, elements, eventMap, newEventMap) => {
|
|
771
|
-
const max = elements.length - 1;
|
|
772
|
-
let stack = [];
|
|
773
|
-
for (let i = max; i >= 0; i--) {
|
|
774
|
-
const element = elements[i];
|
|
775
|
-
const $Element = render$1(element, eventMap, newEventMap);
|
|
776
|
-
if (element.childCount > 0) {
|
|
777
|
-
// @ts-expect-error
|
|
778
|
-
$Element.append(...stack.slice(0, element.childCount));
|
|
779
|
-
stack = stack.slice(element.childCount);
|
|
780
|
-
}
|
|
781
|
-
stack.unshift($Element);
|
|
782
|
-
}
|
|
783
|
-
$Parent.append(...stack);
|
|
784
|
-
};
|
|
785
|
-
|
|
786
|
-
// Map of property names to attribute names for cases where they differ
|
|
787
|
-
const propertyToAttribute = {
|
|
788
|
-
className: 'class',
|
|
789
|
-
htmlFor: 'for',
|
|
790
|
-
ariaActivedescendant: 'aria-activedescendant',
|
|
791
|
-
ariaControls: 'aria-controls',
|
|
792
|
-
ariaLabelledBy: 'aria-labelledby',
|
|
793
|
-
ariaOwns: 'aria-owns',
|
|
794
|
-
inputType: 'type'
|
|
795
|
-
};
|
|
796
|
-
|
|
797
|
-
// Style properties that need to be set on element.style
|
|
798
|
-
const styleProperties = new Set(['width', 'height', 'top', 'left', 'marginTop', 'paddingLeft', 'paddingRight']);
|
|
799
|
-
const removeAttribute = ($Element, key) => {
|
|
800
|
-
// Handle style properties
|
|
801
|
-
if (styleProperties.has(key)) {
|
|
802
|
-
// @ts-ignore - dynamic style property access
|
|
803
|
-
$Element.style[key] = '';
|
|
804
|
-
return;
|
|
805
|
-
}
|
|
806
|
-
const attributeName = propertyToAttribute[key] || key;
|
|
807
|
-
$Element.removeAttribute(attributeName);
|
|
808
|
-
};
|
|
809
|
-
const setText$3 = ($Element, value) => {
|
|
810
|
-
$Element.nodeValue = value;
|
|
811
|
-
};
|
|
812
|
-
const removeChild = ($Element, index) => {
|
|
813
|
-
const $Child = $Element.childNodes[index];
|
|
814
|
-
if ($Child) {
|
|
815
|
-
$Child.remove();
|
|
816
|
-
}
|
|
817
|
-
};
|
|
818
|
-
const add$1 = ($Element, nodes, eventMap = {}) => {
|
|
819
|
-
renderInternal($Element, nodes, eventMap, eventMap);
|
|
820
|
-
};
|
|
821
|
-
const replace = ($Element, nodes, eventMap = {}) => {
|
|
822
|
-
// Create a temporary container to render the new nodes
|
|
823
|
-
const $Temp = document.createElement('div');
|
|
824
|
-
renderInternal($Temp, nodes, eventMap, eventMap);
|
|
825
|
-
// Replace the current element with the new node(s)
|
|
826
|
-
const $NewNode = $Temp.firstChild;
|
|
827
|
-
if (!$NewNode) {
|
|
828
|
-
// No node was created, just remove the old element
|
|
829
|
-
$Element.remove();
|
|
830
|
-
return $Element;
|
|
831
|
-
}
|
|
832
|
-
$Element.replaceWith($NewNode);
|
|
833
|
-
return $NewNode;
|
|
834
|
-
};
|
|
835
|
-
const SetText = 1;
|
|
836
|
-
const Replace = 2;
|
|
837
|
-
const SetAttribute = 3;
|
|
838
|
-
const RemoveAttribute = 4;
|
|
839
|
-
const Add = 6;
|
|
840
|
-
const NavigateChild = 7;
|
|
841
|
-
const NavigateParent = 8;
|
|
842
|
-
const RemoveChild = 9;
|
|
843
|
-
const NavigateSibling = 10;
|
|
844
|
-
const SetReferenceNodeUid = 11;
|
|
845
|
-
const dragInfos = Object.create(null);
|
|
846
|
-
const setDragInfo = (id, data) => {
|
|
847
|
-
dragInfos[id] = data;
|
|
848
|
-
};
|
|
849
|
-
const getDragInfo = id => {
|
|
850
|
-
return dragInfos[id];
|
|
851
|
-
};
|
|
852
|
-
const isDragInfoOld = data => {
|
|
853
|
-
return Array.isArray(data);
|
|
854
|
-
};
|
|
855
|
-
const setDragImage = (dataTransfer, label) => {
|
|
856
|
-
const dragImage = document.createElement('div');
|
|
857
|
-
dragImage.className = 'DragImage';
|
|
858
|
-
dragImage.textContent = label;
|
|
859
|
-
document.body.append(dragImage);
|
|
860
|
-
dataTransfer.setDragImage(dragImage, -10, -10);
|
|
861
|
-
const handleTimeOut = () => {
|
|
862
|
-
dragImage.remove();
|
|
863
|
-
};
|
|
864
|
-
setTimeout(handleTimeOut, 0);
|
|
865
|
-
};
|
|
866
|
-
const applyDragInfoMaybe = event => {
|
|
867
|
-
const {
|
|
868
|
-
dataTransfer,
|
|
869
|
-
target
|
|
870
|
-
} = event;
|
|
871
|
-
if (dataTransfer) {
|
|
872
|
-
const uid = getComponentUid(target);
|
|
873
|
-
const dragInfo = getDragInfo(uid);
|
|
874
|
-
if (!dragInfo) {
|
|
875
|
-
return;
|
|
876
|
-
}
|
|
877
|
-
if (isDragInfoOld(dragInfo)) {
|
|
878
|
-
for (const item of dragInfo) {
|
|
879
|
-
dataTransfer.setData(item.type, item.data);
|
|
880
|
-
}
|
|
881
|
-
} else {
|
|
882
|
-
for (const item of dragInfo.items) {
|
|
883
|
-
dataTransfer.items.add(item.data, item.type);
|
|
884
|
-
}
|
|
885
|
-
if (dragInfo.label) {
|
|
886
|
-
setDragImage(dataTransfer, dragInfo.label);
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
}
|
|
890
|
-
};
|
|
891
|
-
const PointerMove$1 = 'pointermove';
|
|
892
|
-
const lostpointercapture = 'lostpointercapture';
|
|
893
|
-
let ignore = false;
|
|
894
|
-
const startIgnore = () => {
|
|
895
|
-
ignore = true;
|
|
896
|
-
};
|
|
897
|
-
const stopIgnore = () => {
|
|
898
|
-
ignore = false;
|
|
899
|
-
};
|
|
900
|
-
const enabled = () => {
|
|
901
|
-
return ignore;
|
|
902
|
-
};
|
|
903
|
-
let id$1 = 0;
|
|
904
|
-
const create$N = () => {
|
|
905
|
-
return ++id$1;
|
|
791
|
+
getElementTag
|
|
792
|
+
} = ElementTagMap;
|
|
793
|
+
const instances = Object.create(null);
|
|
794
|
+
const get$1$1 = viewletId => {
|
|
795
|
+
return instances[viewletId];
|
|
906
796
|
};
|
|
907
|
-
const
|
|
908
|
-
|
|
909
|
-
const promise = state$8[id];
|
|
910
|
-
delete state$8[id];
|
|
911
|
-
return promise;
|
|
797
|
+
const set$1$1 = (viewletId, instance) => {
|
|
798
|
+
instances[viewletId] = instance;
|
|
912
799
|
};
|
|
913
|
-
const
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
800
|
+
const getEventListenerOptions$1 = (eventName, value) => {
|
|
801
|
+
if (value.passive) {
|
|
802
|
+
return {
|
|
803
|
+
passive: true
|
|
804
|
+
};
|
|
805
|
+
}
|
|
806
|
+
if (value.capture) {
|
|
807
|
+
return {
|
|
808
|
+
capture: true
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
switch (eventName) {
|
|
812
|
+
case 'wheel':
|
|
813
|
+
return {
|
|
814
|
+
passive: true
|
|
815
|
+
};
|
|
816
|
+
default:
|
|
817
|
+
return undefined;
|
|
818
|
+
}
|
|
917
819
|
};
|
|
918
|
-
const
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
return id;
|
|
820
|
+
const cache$1 = new Map();
|
|
821
|
+
const has$1 = listener => {
|
|
822
|
+
return cache$1.has(listener);
|
|
922
823
|
};
|
|
923
|
-
const
|
|
924
|
-
|
|
925
|
-
return add(promise);
|
|
824
|
+
const set$8 = (listener, value) => {
|
|
825
|
+
cache$1.set(listener, value);
|
|
926
826
|
};
|
|
927
|
-
const
|
|
928
|
-
|
|
929
|
-
resolve,
|
|
930
|
-
promise
|
|
931
|
-
} = Promise.withResolvers();
|
|
932
|
-
item.getAsString(resolve);
|
|
933
|
-
const value = await promise;
|
|
934
|
-
return {
|
|
935
|
-
kind: 'string',
|
|
936
|
-
type: item.type,
|
|
937
|
-
value
|
|
938
|
-
};
|
|
827
|
+
const get$9 = listener => {
|
|
828
|
+
return cache$1.get(listener);
|
|
939
829
|
};
|
|
940
|
-
const
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
830
|
+
const getWrappedListener$1 = (listener, returnValue) => {
|
|
831
|
+
if (!returnValue) {
|
|
832
|
+
return listener;
|
|
833
|
+
}
|
|
834
|
+
if (!has$1(listener)) {
|
|
835
|
+
const wrapped = event => {
|
|
836
|
+
const uid = getComponentUidFromEvent(event);
|
|
837
|
+
const result = listener(event);
|
|
838
|
+
// TODO check for empty array by value
|
|
839
|
+
if (result.length === 0) {
|
|
840
|
+
return;
|
|
841
|
+
}
|
|
842
|
+
const ipc = getIpc();
|
|
843
|
+
ipc.send('Viewlet.executeViewletCommand', uid, ...result);
|
|
844
|
+
};
|
|
845
|
+
nameAnonymousFunction$1(wrapped, listener.name);
|
|
846
|
+
set$8(listener, wrapped);
|
|
847
|
+
}
|
|
848
|
+
return get$9(listener);
|
|
948
849
|
};
|
|
949
|
-
const
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
850
|
+
const attachedListeners = new WeakMap();
|
|
851
|
+
const getOptions = fn => {
|
|
852
|
+
if (fn.passive) {
|
|
853
|
+
return {
|
|
854
|
+
passive: true
|
|
855
|
+
};
|
|
856
|
+
}
|
|
857
|
+
if (fn.capture) {
|
|
858
|
+
return {
|
|
859
|
+
capture: true
|
|
860
|
+
};
|
|
861
|
+
}
|
|
862
|
+
return undefined;
|
|
953
863
|
};
|
|
954
|
-
const
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
default:
|
|
961
|
-
return unknownItem;
|
|
864
|
+
const attachEvent$1 = ($Node, eventMap, key, value, newEventMap) => {
|
|
865
|
+
const keyLower = key.toLowerCase();
|
|
866
|
+
const listenersByEvent = attachedListeners.get($Node) || new Map();
|
|
867
|
+
const previous = listenersByEvent.get(keyLower);
|
|
868
|
+
if (previous) {
|
|
869
|
+
$Node.removeEventListener(keyLower, previous.listener, previous.options);
|
|
962
870
|
}
|
|
871
|
+
if (newEventMap && newEventMap[value]) {
|
|
872
|
+
const fn = newEventMap[value];
|
|
873
|
+
const options = getOptions(fn);
|
|
874
|
+
// TODO support event listener options
|
|
875
|
+
$Node.addEventListener(keyLower, newEventMap[value], options);
|
|
876
|
+
listenersByEvent.set(keyLower, {
|
|
877
|
+
listener: newEventMap[value],
|
|
878
|
+
options
|
|
879
|
+
});
|
|
880
|
+
attachedListeners.set($Node, listenersByEvent);
|
|
881
|
+
return;
|
|
882
|
+
}
|
|
883
|
+
const listener = eventMap[value];
|
|
884
|
+
if (!listener) {
|
|
885
|
+
console.warn('listener not found', value);
|
|
886
|
+
return;
|
|
887
|
+
}
|
|
888
|
+
const options = getEventListenerOptions$1(key, value);
|
|
889
|
+
const wrapped = getWrappedListener$1(listener, eventMap.returnValue);
|
|
890
|
+
$Node.addEventListener(keyLower, wrapped, options);
|
|
891
|
+
listenersByEvent.set(keyLower, {
|
|
892
|
+
listener: wrapped,
|
|
893
|
+
options
|
|
894
|
+
});
|
|
895
|
+
attachedListeners.set($Node, listenersByEvent);
|
|
963
896
|
};
|
|
964
|
-
const
|
|
965
|
-
|
|
966
|
-
|
|
897
|
+
const STYLE_REGEX = /([^:;]+):\s*([^;]+)/g;
|
|
898
|
+
const KEBAB_CASE_REGEX = /-([a-z])/g;
|
|
899
|
+
const setStyle = ($Element, styleString) => {
|
|
900
|
+
if (typeof styleString !== 'string') {
|
|
901
|
+
return;
|
|
902
|
+
}
|
|
903
|
+
let match;
|
|
904
|
+
while ((match = STYLE_REGEX.exec(styleString)) !== null) {
|
|
905
|
+
const key = match[1].trim();
|
|
906
|
+
const value = match[2].trim();
|
|
907
|
+
// Convert kebab-case to camelCase for CSS properties with dashes
|
|
908
|
+
const camelCaseKey = key.replaceAll(KEBAB_CASE_REGEX, (_, char) => char.toUpperCase());
|
|
909
|
+
$Element.style[camelCaseKey] = value;
|
|
967
910
|
}
|
|
968
|
-
const items = [...event.dataTransfer.items];
|
|
969
|
-
const promises = items.map(unwrapItem);
|
|
970
|
-
const ids = promises.map(promise => add(promise));
|
|
971
|
-
return ids;
|
|
972
911
|
};
|
|
973
|
-
const
|
|
974
|
-
switch (
|
|
975
|
-
case '
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
case '
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
case '
|
|
998
|
-
|
|
999
|
-
case '
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
case '
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
case '
|
|
1022
|
-
|
|
1023
|
-
case '
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
case '
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
case '
|
|
1032
|
-
|
|
912
|
+
const setProp = ($Element, key, value, eventMap, newEventMap) => {
|
|
913
|
+
switch (key) {
|
|
914
|
+
case 'ariaActivedescendant':
|
|
915
|
+
if (value) {
|
|
916
|
+
$Element.setAttribute('aria-activedescendant', value);
|
|
917
|
+
} else {
|
|
918
|
+
$Element.removeAttribute('aria-activedescendant');
|
|
919
|
+
}
|
|
920
|
+
break;
|
|
921
|
+
case 'ariaControls':
|
|
922
|
+
$Element.setAttribute('aria-controls', value);
|
|
923
|
+
break;
|
|
924
|
+
case 'ariaLabelledBy':
|
|
925
|
+
$Element.setAttribute('aria-labelledby', value);
|
|
926
|
+
break;
|
|
927
|
+
case 'ariaOwns':
|
|
928
|
+
// TODO remove this once idl is supported
|
|
929
|
+
if (value) {
|
|
930
|
+
$Element.setAttribute('aria-owns', value);
|
|
931
|
+
} else {
|
|
932
|
+
$Element.removeAttribute('aria-owns');
|
|
933
|
+
}
|
|
934
|
+
break;
|
|
935
|
+
case 'childCount':
|
|
936
|
+
case 'type':
|
|
937
|
+
break;
|
|
938
|
+
case 'height':
|
|
939
|
+
case 'width':
|
|
940
|
+
if ($Element instanceof HTMLImageElement) {
|
|
941
|
+
$Element[key] = value;
|
|
942
|
+
} else if (typeof value === 'number') {
|
|
943
|
+
$Element.style[key] = `${value}px`;
|
|
944
|
+
} else {
|
|
945
|
+
$Element.style[key] = value;
|
|
946
|
+
}
|
|
947
|
+
break;
|
|
948
|
+
case 'id':
|
|
949
|
+
if (value) {
|
|
950
|
+
$Element[key] = value;
|
|
951
|
+
} else {
|
|
952
|
+
$Element.removeAttribute(key);
|
|
953
|
+
}
|
|
954
|
+
break;
|
|
955
|
+
case 'inputType':
|
|
956
|
+
// @ts-ignore
|
|
957
|
+
$Element.type = value;
|
|
958
|
+
break;
|
|
959
|
+
case 'left':
|
|
960
|
+
case 'marginTop':
|
|
961
|
+
case 'paddingLeft':
|
|
962
|
+
case 'paddingRight':
|
|
963
|
+
case 'top':
|
|
964
|
+
$Element.style[key] = typeof value === 'number' ? `${value}px` : value;
|
|
965
|
+
break;
|
|
966
|
+
case 'maskImage':
|
|
967
|
+
$Element.style.maskImage = `url('${value}')`;
|
|
968
|
+
$Element.style.webkitMaskImage = `url('${value}')`;
|
|
969
|
+
break;
|
|
970
|
+
case 'onBlur':
|
|
971
|
+
case 'onChange':
|
|
972
|
+
case 'onClick':
|
|
973
|
+
case 'onContextMenu':
|
|
974
|
+
case 'onDblClick':
|
|
975
|
+
case 'onDragEnd':
|
|
976
|
+
case 'onDragEnter':
|
|
977
|
+
case 'onDragLeave':
|
|
978
|
+
case 'onDragOver':
|
|
979
|
+
case 'onDragStart':
|
|
980
|
+
case 'onDrop':
|
|
981
|
+
case 'onFocus':
|
|
982
|
+
case 'onFocusIn':
|
|
983
|
+
case 'onFocusOut':
|
|
984
|
+
case 'onInput':
|
|
985
|
+
case 'onKeydown':
|
|
986
|
+
case 'onKeyDown':
|
|
987
|
+
case 'onKeyUp':
|
|
988
|
+
case 'onMouseDown':
|
|
989
|
+
case 'onMouseMove':
|
|
990
|
+
case 'onMouseOut':
|
|
991
|
+
case 'onMouseOver':
|
|
992
|
+
case 'onMouseUp':
|
|
993
|
+
case 'onPointerDown':
|
|
994
|
+
case 'onPointerMove':
|
|
995
|
+
case 'onPointerOut':
|
|
996
|
+
case 'onPointerOver':
|
|
997
|
+
case 'onScroll':
|
|
998
|
+
case 'onSelectionChange':
|
|
999
|
+
case 'onSubmit':
|
|
1000
|
+
case 'onWheel':
|
|
1001
|
+
const eventName = key.slice(2).toLowerCase();
|
|
1002
|
+
if (!eventMap || !value) {
|
|
1003
|
+
return;
|
|
1004
|
+
}
|
|
1005
|
+
attachEvent$1($Element, eventMap, eventName, value, newEventMap);
|
|
1006
|
+
break;
|
|
1007
|
+
case 'style':
|
|
1008
|
+
setStyle($Element, value);
|
|
1009
|
+
break;
|
|
1010
|
+
case 'translate':
|
|
1011
|
+
$Element.style[key] = value;
|
|
1012
|
+
break;
|
|
1033
1013
|
default:
|
|
1034
|
-
if (
|
|
1035
|
-
|
|
1036
|
-
|
|
1014
|
+
if (key.startsWith('data-')) {
|
|
1015
|
+
$Element.dataset[key.slice('data-'.length)] = value;
|
|
1016
|
+
} else {
|
|
1017
|
+
$Element[key] = value;
|
|
1037
1018
|
}
|
|
1038
|
-
return param;
|
|
1039
1019
|
}
|
|
1040
1020
|
};
|
|
1041
|
-
const
|
|
1042
|
-
const
|
|
1043
|
-
|
|
1044
|
-
serialized.push(getEventListenerArg(param, event));
|
|
1021
|
+
const setProps = ($Element, props, eventMap, newEventMap) => {
|
|
1022
|
+
for (const key in props) {
|
|
1023
|
+
setProp($Element, key, props[key], eventMap, newEventMap);
|
|
1045
1024
|
}
|
|
1046
|
-
return serialized;
|
|
1047
1025
|
};
|
|
1048
|
-
const
|
|
1049
|
-
|
|
1026
|
+
const {
|
|
1027
|
+
Text: Text$2,
|
|
1028
|
+
Reference} = VirtualDomElements$1;
|
|
1029
|
+
const renderDomTextNode = element => {
|
|
1030
|
+
return document.createTextNode(element.text);
|
|
1050
1031
|
};
|
|
1051
|
-
const
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
if (
|
|
1060
|
-
|
|
1032
|
+
const renderDomElement = (element, eventMap, newEventMap) => {
|
|
1033
|
+
const tag = getElementTag(element.type);
|
|
1034
|
+
const $Element = document.createElement(tag);
|
|
1035
|
+
setProps($Element, element, eventMap, newEventMap);
|
|
1036
|
+
return $Element;
|
|
1037
|
+
};
|
|
1038
|
+
const renderReferenceNode = element => {
|
|
1039
|
+
const instance = get$1$1(element.uid);
|
|
1040
|
+
if (!instance || !instance.state) {
|
|
1041
|
+
return document.createTextNode('Reference node not found');
|
|
1061
1042
|
}
|
|
1043
|
+
const $Node = instance.state.$Viewlet;
|
|
1044
|
+
return $Node;
|
|
1062
1045
|
};
|
|
1063
|
-
const
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1046
|
+
const render$1 = (element, eventMap, newEventMap) => {
|
|
1047
|
+
switch (element.type) {
|
|
1048
|
+
case Reference:
|
|
1049
|
+
return renderReferenceNode(element);
|
|
1050
|
+
case Text$2:
|
|
1051
|
+
return renderDomTextNode(element);
|
|
1052
|
+
default:
|
|
1053
|
+
return renderDomElement(element, eventMap, newEventMap);
|
|
1069
1054
|
}
|
|
1070
|
-
const {
|
|
1071
|
-
pointerId,
|
|
1072
|
-
target
|
|
1073
|
-
} = event;
|
|
1074
|
-
target.setPointerCapture(pointerId);
|
|
1075
|
-
const [pointerMoveKey, pointerUpKey] = trackPointerEvents;
|
|
1076
|
-
target.addEventListener(PointerMove$1, map[pointerMoveKey]);
|
|
1077
|
-
target.addEventListener(lostpointercapture, map[pointerUpKey]);
|
|
1078
1055
|
};
|
|
1079
|
-
const
|
|
1080
|
-
const
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
const
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
if (args.length === 0) {
|
|
1090
|
-
return;
|
|
1056
|
+
const renderInternal = ($Parent, elements, eventMap, newEventMap) => {
|
|
1057
|
+
const max = elements.length - 1;
|
|
1058
|
+
let stack = [];
|
|
1059
|
+
for (let i = max; i >= 0; i--) {
|
|
1060
|
+
const element = elements[i];
|
|
1061
|
+
const $Element = render$1(element, eventMap, newEventMap);
|
|
1062
|
+
if (element.childCount > 0) {
|
|
1063
|
+
// @ts-expect-error
|
|
1064
|
+
$Element.append(...stack.slice(0, element.childCount));
|
|
1065
|
+
stack = stack.slice(element.childCount);
|
|
1091
1066
|
}
|
|
1092
|
-
|
|
1093
|
-
ipc.send('Viewlet.executeViewletCommand', uid, ...args);
|
|
1094
|
-
};
|
|
1095
|
-
nameAnonymousFunction$1(fn, info.name);
|
|
1096
|
-
if (info.passive) {
|
|
1097
|
-
// TODO avoid mutating function property, maybe return an object with function and options
|
|
1098
|
-
fn.passive = true;
|
|
1067
|
+
stack.unshift($Element);
|
|
1099
1068
|
}
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1069
|
+
$Parent.append(...stack);
|
|
1070
|
+
};
|
|
1071
|
+
const renderInto = ($Parent, dom, eventMap = {}) => {
|
|
1072
|
+
clearNode($Parent);
|
|
1073
|
+
renderInternal($Parent, dom, eventMap);
|
|
1074
|
+
};
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
*
|
|
1078
|
+
* @param {any[]} elements
|
|
1079
|
+
* @returns
|
|
1080
|
+
*/
|
|
1081
|
+
const render = (elements, eventMap = {}, newEventMap = {}) => {
|
|
1082
|
+
const $Root = document.createElement('div');
|
|
1083
|
+
renderInternal($Root, elements, eventMap, newEventMap);
|
|
1084
|
+
return $Root;
|
|
1085
|
+
};
|
|
1086
|
+
const rememberFocus2 = ($Viewlet, dom, eventMap, uid = 0) => {
|
|
1087
|
+
if (uid) {
|
|
1088
|
+
const newEventMap = getEventListenerMap(uid);
|
|
1089
|
+
const $New = render(dom, eventMap, newEventMap).firstChild;
|
|
1090
|
+
setComponentUid($New, uid);
|
|
1091
|
+
$Viewlet.replaceWith($New);
|
|
1092
|
+
$Viewlet = $New;
|
|
1093
|
+
} else {
|
|
1094
|
+
renderInto($Viewlet, dom, eventMap);
|
|
1103
1095
|
}
|
|
1104
|
-
return
|
|
1096
|
+
return $Viewlet;
|
|
1105
1097
|
};
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1098
|
+
|
|
1099
|
+
// Map of property names to attribute names for cases where they differ
|
|
1100
|
+
const propertyToAttribute = {
|
|
1101
|
+
className: 'class',
|
|
1102
|
+
htmlFor: 'for',
|
|
1103
|
+
ariaActivedescendant: 'aria-activedescendant',
|
|
1104
|
+
ariaControls: 'aria-controls',
|
|
1105
|
+
ariaLabelledBy: 'aria-labelledby',
|
|
1106
|
+
ariaOwns: 'aria-owns',
|
|
1107
|
+
inputType: 'type'
|
|
1108
|
+
};
|
|
1109
|
+
|
|
1110
|
+
// Style properties that need to be set on element.style
|
|
1111
|
+
const styleProperties = new Set(['width', 'height', 'top', 'left', 'marginTop', 'paddingLeft', 'paddingRight']);
|
|
1112
|
+
const removeAttribute = ($Element, key) => {
|
|
1113
|
+
// Handle style properties
|
|
1114
|
+
if (styleProperties.has(key)) {
|
|
1115
|
+
// @ts-ignore - dynamic style property access
|
|
1116
|
+
$Element.style[key] = '';
|
|
1117
|
+
return;
|
|
1112
1118
|
}
|
|
1113
|
-
|
|
1119
|
+
const attributeName = propertyToAttribute[key] || key;
|
|
1120
|
+
$Element.removeAttribute(attributeName);
|
|
1114
1121
|
};
|
|
1115
|
-
const
|
|
1116
|
-
|
|
1117
|
-
|
|
1122
|
+
const setText$3 = ($Element, value) => {
|
|
1123
|
+
$Element.nodeValue = value;
|
|
1124
|
+
};
|
|
1125
|
+
const removeChild = ($Element, index) => {
|
|
1126
|
+
const $Child = $Element.childNodes[index];
|
|
1127
|
+
if ($Child) {
|
|
1128
|
+
$Child.remove();
|
|
1129
|
+
}
|
|
1130
|
+
};
|
|
1131
|
+
const add = ($Element, nodes, eventMap = {}) => {
|
|
1132
|
+
renderInternal($Element, nodes, eventMap, eventMap);
|
|
1133
|
+
};
|
|
1134
|
+
const replace = ($Element, nodes, eventMap = {}) => {
|
|
1135
|
+
// Create a temporary container to render the new nodes
|
|
1136
|
+
const $Temp = document.createElement('div');
|
|
1137
|
+
renderInternal($Temp, nodes, eventMap, eventMap);
|
|
1138
|
+
// Replace the current element with the new node(s)
|
|
1139
|
+
const $NewNode = $Temp.firstChild;
|
|
1140
|
+
if (!$NewNode) {
|
|
1141
|
+
// No node was created, just remove the old element
|
|
1142
|
+
$Element.remove();
|
|
1143
|
+
return $Element;
|
|
1144
|
+
}
|
|
1145
|
+
$Element.replaceWith($NewNode);
|
|
1146
|
+
return $NewNode;
|
|
1118
1147
|
};
|
|
1148
|
+
const SetText = 1;
|
|
1149
|
+
const Replace = 2;
|
|
1150
|
+
const SetAttribute = 3;
|
|
1151
|
+
const RemoveAttribute = 4;
|
|
1152
|
+
const Add = 6;
|
|
1153
|
+
const NavigateChild = 7;
|
|
1154
|
+
const NavigateParent = 8;
|
|
1155
|
+
const RemoveChild = 9;
|
|
1156
|
+
const NavigateSibling = 10;
|
|
1157
|
+
const SetReferenceNodeUid = 11;
|
|
1119
1158
|
const applyPatch = ($Element, patches, eventMap = {}, id = 0) => {
|
|
1120
1159
|
const events = getEventListenerMap(id) || eventMap;
|
|
1121
1160
|
let $Current = $Element;
|
|
@@ -1124,7 +1163,7 @@ const applyPatch = ($Element, patches, eventMap = {}, id = 0) => {
|
|
|
1124
1163
|
try {
|
|
1125
1164
|
switch (patch.type) {
|
|
1126
1165
|
case Add:
|
|
1127
|
-
add
|
|
1166
|
+
add($Current, patch.nodes, events);
|
|
1128
1167
|
break;
|
|
1129
1168
|
case NavigateChild:
|
|
1130
1169
|
{
|
|
@@ -1237,24 +1276,6 @@ const getActiveElementInside = $Viewlet => {
|
|
|
1237
1276
|
const queryInputs = $Viewlet => {
|
|
1238
1277
|
return [...$Viewlet.querySelectorAll('input, textarea, select')];
|
|
1239
1278
|
};
|
|
1240
|
-
const clearNode = $Node => {
|
|
1241
|
-
$Node.textContent = '';
|
|
1242
|
-
};
|
|
1243
|
-
const renderInto = ($Parent, dom, eventMap = {}) => {
|
|
1244
|
-
clearNode($Parent);
|
|
1245
|
-
renderInternal($Parent, dom, eventMap);
|
|
1246
|
-
};
|
|
1247
|
-
|
|
1248
|
-
/**
|
|
1249
|
-
*
|
|
1250
|
-
* @param {any[]} elements
|
|
1251
|
-
* @returns
|
|
1252
|
-
*/
|
|
1253
|
-
const render = (elements, eventMap = {}, newEventMap = {}) => {
|
|
1254
|
-
const $Root = document.createElement('div');
|
|
1255
|
-
renderInternal($Root, elements, eventMap, newEventMap);
|
|
1256
|
-
return $Root;
|
|
1257
|
-
};
|
|
1258
1279
|
const focusElement = $Element => {
|
|
1259
1280
|
$Element.focus({
|
|
1260
1281
|
preventScroll: true
|
|
@@ -4333,7 +4354,7 @@ const setIdentifiers = identifiers => {
|
|
|
4333
4354
|
setIdentifiers$1(identifiers);
|
|
4334
4355
|
};
|
|
4335
4356
|
|
|
4336
|
-
const rememberFocus =
|
|
4357
|
+
const rememberFocus = rememberFocus2;
|
|
4337
4358
|
|
|
4338
4359
|
const handleImageLoad = event => {
|
|
4339
4360
|
const $ImagePreviewImage = event.target;
|