@lvce-editor/renderer-process 30.13.0 → 30.13.2

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.
@@ -443,6 +443,17 @@ const getTargetName = event => {
443
443
  }
444
444
  return namedTarget?.getAttribute?.('name') || namedTarget?.name || '';
445
445
  };
446
+ const getNestedProperty = (value, path) => {
447
+ const parts = path.split('.');
448
+ let current = value;
449
+ for (const part of parts) {
450
+ if (current === undefined || current === null) {
451
+ return undefined;
452
+ }
453
+ current = current[part];
454
+ }
455
+ return current;
456
+ };
446
457
  const getEventListenerArg = (param, event) => {
447
458
  switch (param) {
448
459
  case 'event.altKey':
@@ -507,17 +518,12 @@ const getEventListenerArg = (param, event) => {
507
518
  return event.y;
508
519
  default:
509
520
  if (typeof param === 'string' && param.startsWith('event.currentTarget.')) {
510
- const rest = param.slice('event.currentTarget.'.length);
511
- const parts = rest.split('.');
512
- let current = event.currentTarget;
513
- for (const part of parts) {
514
- current = current[part];
515
- }
516
- return current;
521
+ const path = param.slice('event.currentTarget.'.length);
522
+ return getNestedProperty(event.currentTarget, path);
517
523
  }
518
- if (typeof param === 'string' && param.startsWith('event.target.dataset')) {
519
- const rest = param.slice('event.target.dataset.'.length);
520
- return event.target.dataset[rest];
524
+ if (typeof param === 'string' && param.startsWith('event.target.')) {
525
+ const path = param.slice('event.target.'.length);
526
+ return getNestedProperty(event.target, path);
521
527
  }
522
528
  return param;
523
529
  }
@@ -1414,7 +1420,7 @@ const setStyle = ($Element, styleString) => {
1414
1420
 
1415
1421
  const removedAttributeProps = new Map([['ariaActivedescendant', 'aria-activedescendant'], ['ariaControls', 'aria-controls'], ['ariaDescribedBy', 'aria-describedby'], ['ariaInvalid', 'aria-invalid'], ['ariaLabelledBy', 'aria-labelledby'], ['ariaOwns', 'aria-owns'], ['className', 'class'], ['htmlFor', 'for'], ['inputType', 'type']]);
1416
1422
  const pixelStyleProps = new Set(['height', 'left', 'marginTop', 'paddingLeft', 'paddingRight', 'top', 'width']);
1417
- const eventProps = new Set(['onBlur', 'onChange', 'onClick', 'onContextMenu', 'onBeforeInput', 'onDblClick', 'onDragEnd', 'onDragEnter', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onFocus', 'onFocusIn', 'onFocusOut', 'onInput', 'onKeydown', 'onKeyDown', 'onKeyUp', 'onMouseDown', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onPointerDown', 'onPointerMove', 'onPointerOut', 'onPointerOver', 'onScroll', 'onSelectionChange', 'onSubmit', 'onWheel']);
1423
+ const eventProps = new Set(['onBlur', 'onChange', 'onClick', 'onContextMenu', 'onBeforeInput', 'onDblClick', 'onDragEnd', 'onDragEnter', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onError', 'onFocus', 'onFocusIn', 'onFocusOut', 'onInput', 'onKeydown', 'onKeyDown', 'onKeyUp', 'onLoadedData', 'onMouseDown', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onPointerDown', 'onPointerMove', 'onPointerOut', 'onPointerOver', 'onScroll', 'onSelectionChange', 'onSubmit', 'onTimeUpdate', 'onWheel']);
1418
1424
  const setOptionalAttribute = ($Element, attributeName, value) => {
1419
1425
  if (value) {
1420
1426
  $Element.setAttribute(attributeName, value);
@@ -1457,6 +1463,10 @@ const removeProp = ($Element, key) => {
1457
1463
  $Element.removeAttribute(attributeName);
1458
1464
  };
1459
1465
  const setProp = ($Element, key, value, eventMap, newEventMap) => {
1466
+ if (key.startsWith('aria-')) {
1467
+ $Element.setAttribute(key, String(value));
1468
+ return;
1469
+ }
1460
1470
  switch (key) {
1461
1471
  case 'ariaActivedescendant':
1462
1472
  setOptionalAttribute($Element, 'aria-activedescendant', value);
@@ -1544,18 +1554,20 @@ const renderDomElement = (element, eventMap, newEventMap) => {
1544
1554
  setProps($Element, element, eventMap, newEventMap);
1545
1555
  return $Element;
1546
1556
  };
1547
- const renderReferenceNode = element => {
1557
+ const renderReferenceNode = (element, eventMap, newEventMap) => {
1548
1558
  const instance = get$a(element.uid);
1549
1559
  if (!instance || !instance.state) {
1550
1560
  return document.createTextNode('Reference node not found');
1551
1561
  }
1552
1562
  const $Node = instance.state.$Viewlet;
1563
+ const props = Object.fromEntries(Object.entries(element).filter(([key]) => key !== 'uid'));
1564
+ setProps($Node, props, eventMap, newEventMap);
1553
1565
  return $Node;
1554
1566
  };
1555
1567
  const render$1 = (element, eventMap, newEventMap) => {
1556
1568
  switch (element.type) {
1557
1569
  case Reference:
1558
- return renderReferenceNode(element);
1570
+ return renderReferenceNode(element, eventMap, newEventMap);
1559
1571
  case Text:
1560
1572
  return renderDomTextNode(element);
1561
1573
  default:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "30.13.0",
3
+ "version": "30.13.2",
4
4
  "keywords": [
5
5
  "lvce-editor",
6
6
  "renderer-process"