@elementor/frontend-handlers 4.1.0-783 → 4.1.0-785

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/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  type Settings = Record<string, unknown>;
2
- type ChildRenderCallback = () => void;
2
+ type ChildRenderCallback = (event: Event) => void;
3
3
  interface ListenToChildrenAPI {
4
4
  render: (callback: ChildRenderCallback) => void;
5
5
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  type Settings = Record<string, unknown>;
2
- type ChildRenderCallback = () => void;
2
+ type ChildRenderCallback = (event: Event) => void;
3
3
  interface ListenToChildrenAPI {
4
4
  render: (callback: ChildRenderCallback) => void;
5
5
  }
package/dist/index.js CHANGED
@@ -135,7 +135,7 @@ var onElementRender = ({
135
135
  if (!elementTypes.includes(childType)) {
136
136
  return;
137
137
  }
138
- callback();
138
+ callback(event);
139
139
  };
140
140
  element.addEventListener(ELEMENT_RENDERED_EVENT_NAME, listener, { signal: controller.signal });
141
141
  element.addEventListener(ELEMENT_DESTROYED_EVENT_NAME, listener, { signal: controller.signal });
package/dist/index.mjs CHANGED
@@ -105,7 +105,7 @@ var onElementRender = ({
105
105
  if (!elementTypes.includes(childType)) {
106
106
  return;
107
107
  }
108
- callback();
108
+ callback(event);
109
109
  };
110
110
  element.addEventListener(ELEMENT_RENDERED_EVENT_NAME, listener, { signal: controller.signal });
111
111
  element.addEventListener(ELEMENT_DESTROYED_EVENT_NAME, listener, { signal: controller.signal });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementor/frontend-handlers",
3
3
  "description": "Elementor Frontend Handlers",
4
- "version": "4.1.0-783",
4
+ "version": "4.1.0-785",
5
5
  "private": false,
6
6
  "author": "Elementor Team",
7
7
  "homepage": "https://elementor.com/",
@@ -623,6 +623,58 @@ describe( 'Frontend Handlers', () => {
623
623
  // Assert
624
624
  expect( childRenderCallback ).not.toHaveBeenCalled();
625
625
  } );
626
+
627
+ it( 'should pass the event object to the render callback', () => {
628
+ // Arrange
629
+ const PARENT_ID = 'parent-1';
630
+ const CHILD_ID = 'child-1';
631
+ const childRenderCallback = jest.fn();
632
+
633
+ register( {
634
+ elementType: PARENT_ELEMENT_TYPE,
635
+ id: HANDLER_IDS.handler_1,
636
+ callback: ( { listenToChildren } ) => {
637
+ listenToChildren( [ CHILD_ELEMENT_TYPE ] ).render( childRenderCallback );
638
+ return undefined;
639
+ },
640
+ } );
641
+
642
+ const parent = document.createElement( 'div' );
643
+ parent.setAttribute( 'data-e-type', PARENT_ELEMENT_TYPE );
644
+ parent.setAttribute( 'data-id', PARENT_ID );
645
+ document.body.appendChild( parent );
646
+
647
+ const child = document.createElement( 'div' );
648
+ child.setAttribute( 'data-e-type', CHILD_ELEMENT_TYPE );
649
+ child.setAttribute( 'data-id', CHILD_ID );
650
+ parent.appendChild( child );
651
+
652
+ // Act
653
+ window.dispatchEvent(
654
+ new CustomEvent( 'elementor/element/render', {
655
+ detail: { id: PARENT_ID, type: PARENT_ELEMENT_TYPE, element: parent },
656
+ } )
657
+ );
658
+
659
+ window.dispatchEvent(
660
+ new CustomEvent( 'elementor/element/render', {
661
+ detail: { id: CHILD_ID, type: CHILD_ELEMENT_TYPE, element: child },
662
+ } )
663
+ );
664
+
665
+ // Assert
666
+ expect( childRenderCallback ).toHaveBeenCalledTimes( 1 );
667
+ expect( childRenderCallback ).toHaveBeenCalledWith(
668
+ expect.objectContaining( {
669
+ type: 'elementor/element/rendered',
670
+ detail: expect.objectContaining( {
671
+ element: child,
672
+ elementType: CHILD_ELEMENT_TYPE,
673
+ elementId: CHILD_ID,
674
+ } ),
675
+ } )
676
+ );
677
+ } );
626
678
  } );
627
679
 
628
680
  describe( 'Multiple Element Instances', () => {
@@ -1,6 +1,6 @@
1
1
  type Settings = Record< string, unknown >;
2
2
 
3
- type ChildRenderCallback = () => void;
3
+ type ChildRenderCallback = ( event: Event ) => void;
4
4
 
5
5
  interface ListenToChildrenAPI {
6
6
  render: ( callback: ChildRenderCallback ) => void;
@@ -73,7 +73,7 @@ export const onElementRender = ( {
73
73
  const settings = element.getAttribute( 'data-e-settings' );
74
74
 
75
75
  const listenToChildren = ( elementTypes: string[] ) => ( {
76
- render: ( callback: () => void ) => {
76
+ render: ( callback: ( event: Event ) => void ) => {
77
77
  const listener = ( event: Event ) => {
78
78
  const { elementType: childType } = ( event as CustomEvent ).detail;
79
79
 
@@ -81,7 +81,7 @@ export const onElementRender = ( {
81
81
  return;
82
82
  }
83
83
 
84
- callback();
84
+ callback( event );
85
85
  };
86
86
 
87
87
  element.addEventListener( ELEMENT_RENDERED_EVENT_NAME, listener, { signal: controller.signal } );