@lvce-editor/renderer-process 30.23.0 → 30.23.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.
@@ -2412,9 +2412,10 @@ const restoreFocusedElement = ($Hidden, $New, focused) => {
2412
2412
  }
2413
2413
  $NewFocused.replaceWith($Previous);
2414
2414
  };
2415
- const renderWithUid = ($Viewlet, dom, eventMap, uid, inputMap, focused, $Hidden) => {
2415
+ const renderWithUid = ($Viewlet, dom, eventMap, uid, inputMap, focused, activeElement) => {
2416
2416
  const newEventMap = getEventListenerMap(uid);
2417
2417
  const $New = render$1(dom, eventMap, newEventMap).firstChild;
2418
+ const $Hidden = createHiddenContainer($New.contains(activeElement || null) ? undefined : activeElement, focused);
2418
2419
  setComponentUid($New, uid);
2419
2420
  const $$NewInputs = queryInputs($New);
2420
2421
  for (const $Input of $$NewInputs) {
@@ -2424,6 +2425,7 @@ const renderWithUid = ($Viewlet, dom, eventMap, uid, inputMap, focused, $Hidden)
2424
2425
  if (focused) {
2425
2426
  restoreFocusedElement($Hidden, $New, focused);
2426
2427
  }
2428
+ $Hidden.remove();
2427
2429
  return $New;
2428
2430
  };
2429
2431
  const restoreFocus = ($Viewlet, isRootTree, isTreeFocused, focused) => {
@@ -2459,16 +2461,16 @@ const rememberFocus = ($Viewlet, dom, eventMap, uid = 0) => {
2459
2461
  const isTreeFocused = activeElement?.getAttribute('role') === 'tree';
2460
2462
  const isRootTree = $Viewlet.getAttribute('role') === 'tree' && activeElement === $Viewlet;
2461
2463
  const focused = activeElement?.getAttribute('name') || null;
2462
- const $Hidden = createHiddenContainer(activeElement, focused);
2463
2464
  if (uid) {
2464
2465
  const numericUid = Number(uid);
2465
2466
  const inputMap = getInputMap($Viewlet);
2466
- $Viewlet = renderWithUid($Viewlet, dom, eventMap, numericUid, inputMap, focused, $Hidden);
2467
+ $Viewlet = renderWithUid($Viewlet, dom, eventMap, numericUid, inputMap, focused, activeElement);
2467
2468
  }
2468
2469
  if (!uid) {
2470
+ const $Hidden = createHiddenContainer(activeElement, focused);
2469
2471
  renderInto($Viewlet, dom, eventMap);
2472
+ $Hidden.remove();
2470
2473
  }
2471
- $Hidden.remove();
2472
2474
  restoreFocus($Viewlet, isRootTree, isTreeFocused, focused);
2473
2475
  $Viewlet.style.top = oldTop;
2474
2476
  $Viewlet.style.left = oldLeft;
@@ -2536,6 +2538,13 @@ const focusSelector = (uid, selector) => {
2536
2538
  const element = getElement(uid).querySelector(selector);
2537
2539
  element?.focus();
2538
2540
  };
2541
+ const focusSelectorAfterRender = (uid, selector) => {
2542
+ requestAnimationFrame(() => {
2543
+ requestAnimationFrame(() => {
2544
+ focusSelector(uid, selector);
2545
+ });
2546
+ });
2547
+ };
2539
2548
  const setBounds = (uid, left, top, width, height) => {
2540
2549
  const element = getElement(uid);
2541
2550
  element.style.left = `${left}px`;
@@ -2580,6 +2589,7 @@ const setValueByName = (uid, name, value) => {
2580
2589
  const commandHandlers = {
2581
2590
  'Viewlet.dispose': dispose,
2582
2591
  'Viewlet.focusSelector': focusSelector,
2592
+ 'Viewlet.focusSelectorAfterRender': focusSelectorAfterRender,
2583
2593
  'Viewlet.setAdditionalFocus': ignoreCommand,
2584
2594
  'Viewlet.setBounds': setBounds,
2585
2595
  'Viewlet.setCss': addCssStyleSheet,
@@ -1566,9 +1566,10 @@ const restoreFocusedElement = ($Hidden, $New, focused) => {
1566
1566
  }
1567
1567
  $NewFocused.replaceWith($Previous);
1568
1568
  };
1569
- const renderWithUid = ($Viewlet, dom, eventMap, uid, inputMap, focused, $Hidden) => {
1569
+ const renderWithUid = ($Viewlet, dom, eventMap, uid, inputMap, focused, activeElement) => {
1570
1570
  const newEventMap = getEventListenerMap(uid);
1571
1571
  const $New = render(dom, eventMap, newEventMap).firstChild;
1572
+ const $Hidden = createHiddenContainer($New.contains(activeElement || null) ? undefined : activeElement, focused);
1572
1573
  setComponentUid($New, uid);
1573
1574
  const $$NewInputs = queryInputs($New);
1574
1575
  for (const $Input of $$NewInputs) {
@@ -1578,6 +1579,7 @@ const renderWithUid = ($Viewlet, dom, eventMap, uid, inputMap, focused, $Hidden)
1578
1579
  if (focused) {
1579
1580
  restoreFocusedElement($Hidden, $New, focused);
1580
1581
  }
1582
+ $Hidden.remove();
1581
1583
  return $New;
1582
1584
  };
1583
1585
  const restoreFocus = ($Viewlet, isRootTree, isTreeFocused, focused) => {
@@ -1613,16 +1615,16 @@ const rememberFocus$1 = ($Viewlet, dom, eventMap, uid = 0) => {
1613
1615
  const isTreeFocused = activeElement?.getAttribute('role') === 'tree';
1614
1616
  const isRootTree = $Viewlet.getAttribute('role') === 'tree' && activeElement === $Viewlet;
1615
1617
  const focused = activeElement?.getAttribute('name') || null;
1616
- const $Hidden = createHiddenContainer(activeElement, focused);
1617
1618
  if (uid) {
1618
1619
  const numericUid = Number(uid);
1619
1620
  const inputMap = getInputMap($Viewlet);
1620
- $Viewlet = renderWithUid($Viewlet, dom, eventMap, numericUid, inputMap, focused, $Hidden);
1621
+ $Viewlet = renderWithUid($Viewlet, dom, eventMap, numericUid, inputMap, focused, activeElement);
1621
1622
  }
1622
1623
  if (!uid) {
1624
+ const $Hidden = createHiddenContainer(activeElement, focused);
1623
1625
  renderInto($Viewlet, dom, eventMap);
1626
+ $Hidden.remove();
1624
1627
  }
1625
- $Hidden.remove();
1626
1628
  restoreFocus($Viewlet, isRootTree, isTreeFocused, focused);
1627
1629
  $Viewlet.style.top = oldTop;
1628
1630
  $Viewlet.style.left = oldLeft;
@@ -8960,6 +8962,13 @@ const focusSelector = (viewletId, selector) => {
8960
8962
  }
8961
8963
  }
8962
8964
  };
8965
+ const focusSelectorAfterRender = (viewletId, selector) => {
8966
+ requestAnimationFrame(() => {
8967
+ requestAnimationFrame(() => {
8968
+ focusSelector(viewletId, selector);
8969
+ });
8970
+ });
8971
+ };
8963
8972
 
8964
8973
  /**
8965
8974
  * @deprecated
@@ -9336,6 +9345,7 @@ const commandHandlers = {
9336
9345
  'Viewlet.focus': focus$1,
9337
9346
  'Viewlet.focusElementByName': focusElementByName,
9338
9347
  'Viewlet.focusSelector': focusSelector,
9348
+ 'Viewlet.focusSelectorAfterRender': focusSelectorAfterRender,
9339
9349
  'Viewlet.handleError': handleError$1,
9340
9350
  'Viewlet.move': move,
9341
9351
  'Viewlet.patchCss': patchCssStyleSheet,
@@ -9619,6 +9629,7 @@ const commandMap = {
9619
9629
  'Viewlet.focus': focus$1,
9620
9630
  'Viewlet.focusElementByName': focusElementByName,
9621
9631
  'Viewlet.focusSelector': focusSelector,
9632
+ 'Viewlet.focusSelectorAfterRender': focusSelectorAfterRender,
9622
9633
  'Viewlet.getDragData': getDragData,
9623
9634
  'Viewlet.handleError': handleError$1,
9624
9635
  'Viewlet.invoke': invoke,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "30.23.0",
3
+ "version": "30.23.2",
4
4
  "keywords": [
5
5
  "lvce-editor",
6
6
  "renderer-process"