@elementor/editor-elements 3.33.0-272 → 3.33.0-274

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
@@ -52,6 +52,26 @@ type ElementControl = {
52
52
  type ControlItem = ControlsSection | Control | ElementControl;
53
53
  type ControlLayout = 'full' | 'two-columns' | 'custom';
54
54
 
55
+ type ExtendedWindow = Window & {
56
+ elementor?: {
57
+ selection?: {
58
+ getElements: () => V1Element[];
59
+ };
60
+ widgetsCache?: Record<string, V1ElementConfig>;
61
+ documents?: {
62
+ getCurrent?: () => {
63
+ container: V1Element;
64
+ } | undefined;
65
+ getCurrentId?: () => number;
66
+ };
67
+ getContainer?: (id: string) => V1Element | undefined;
68
+ };
69
+ elementorCommon?: {
70
+ helpers?: {
71
+ getUniqueId?: () => string;
72
+ };
73
+ };
74
+ };
55
75
  type V1Element = {
56
76
  id: string;
57
77
  model: V1Model<V1ElementModelProps>;
@@ -69,6 +89,16 @@ type V1Element = {
69
89
  };
70
90
  parent?: V1Element;
71
91
  };
92
+ type ElementInteractions = {
93
+ version: number;
94
+ items: InteractionItem[];
95
+ };
96
+ type InteractionItem = {
97
+ animation: {
98
+ animation_type: string;
99
+ animation_id: string;
100
+ };
101
+ };
72
102
  type V1ElementModelProps = {
73
103
  widgetType?: string;
74
104
  elType: string;
@@ -77,7 +107,7 @@ type V1ElementModelProps = {
77
107
  elements?: V1Model<V1ElementModelProps>[];
78
108
  settings?: V1ElementSettingsProps;
79
109
  editor_settings?: V1ElementEditorSettingsProps;
80
- interactions?: string | Record<string, unknown>;
110
+ interactions?: string | ElementInteractions;
81
111
  };
82
112
  type V1ElementData = Omit<V1ElementModelProps, 'elements'> & {
83
113
  elements?: V1ElementData[];
@@ -258,6 +288,8 @@ type MoveElementsParams = {
258
288
  moves: MoveElementParams[];
259
289
  title: string;
260
290
  subtitle?: string;
291
+ onMoveElements?: () => void;
292
+ onRestoreElements?: () => void;
261
293
  };
262
294
  type OriginalPosition = {
263
295
  elementId: string;
@@ -274,7 +306,7 @@ type MovedElementsResult = {
274
306
  movedElements: MovedElement[];
275
307
  };
276
308
 
277
- declare const moveElements: ({ moves: movesToMake, title, subtitle, }: MoveElementsParams) => MovedElementsResult;
309
+ declare const moveElements: ({ moves: movesToMake, title, subtitle, onMoveElements, onRestoreElements, }: MoveElementsParams) => MovedElementsResult;
278
310
 
279
311
  type RemoveNestedElementsParams = {
280
312
  elementIds: string[];
@@ -359,9 +391,9 @@ type UpdateElementStyleArgs = {
359
391
  };
360
392
  declare function updateElementStyle(args: UpdateElementStyleArgs): void;
361
393
 
362
- declare const useElementInteractions: (elementId: ElementID) => string;
394
+ declare const useElementInteractions: (elementId: ElementID) => ElementInteractions;
363
395
 
364
- declare function getElementInteractions(elementId: ElementID): string;
396
+ declare function getElementInteractions(elementId: ElementID): ElementInteractions | undefined;
365
397
 
366
398
  declare const updateElementInteractions: ({ elementId, interactions, }: {
367
399
  elementId: string;
@@ -371,4 +403,4 @@ declare const playElementInteractions: (elementId: string) => void;
371
403
 
372
404
  declare function initMcp(): void;
373
405
 
374
- export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DropElementParams, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementControl, type ElementID, type ElementModel, type ElementType, type LinkInLinkRestriction, type MoveElementParams, type MoveElementsParams, type MovedElement, type MovedElementsResult, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementData, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, dropElement, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentContainer, getCurrentDocumentId, getElementEditorSettings, getElementInteractions, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElementType, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, initMcp as initElementsMcp, isElementAnchored, moveElement, moveElements, playElementInteractions, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementEditorSettings, updateElementInteractions, updateElementSettings, updateElementStyle, useElementChildren, useElementEditorSettings, useElementInteractions, useElementSetting, useElementSettings, useParentElement, useSelectedElement };
406
+ export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DropElementParams, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementControl, type ElementID, type ElementInteractions, type ElementModel, type ElementType, type ExtendedWindow, type InteractionItem, type LinkInLinkRestriction, type MoveElementParams, type MoveElementsParams, type MovedElement, type MovedElementsResult, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementData, type V1ElementEditorSettingsProps, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, dropElement, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentContainer, getCurrentDocumentId, getElementEditorSettings, getElementInteractions, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElementType, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, initMcp as initElementsMcp, isElementAnchored, moveElement, moveElements, playElementInteractions, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementEditorSettings, updateElementInteractions, updateElementSettings, updateElementStyle, useElementChildren, useElementEditorSettings, useElementInteractions, useElementSetting, useElementSettings, useParentElement, useSelectedElement };
package/dist/index.d.ts CHANGED
@@ -52,6 +52,26 @@ type ElementControl = {
52
52
  type ControlItem = ControlsSection | Control | ElementControl;
53
53
  type ControlLayout = 'full' | 'two-columns' | 'custom';
54
54
 
55
+ type ExtendedWindow = Window & {
56
+ elementor?: {
57
+ selection?: {
58
+ getElements: () => V1Element[];
59
+ };
60
+ widgetsCache?: Record<string, V1ElementConfig>;
61
+ documents?: {
62
+ getCurrent?: () => {
63
+ container: V1Element;
64
+ } | undefined;
65
+ getCurrentId?: () => number;
66
+ };
67
+ getContainer?: (id: string) => V1Element | undefined;
68
+ };
69
+ elementorCommon?: {
70
+ helpers?: {
71
+ getUniqueId?: () => string;
72
+ };
73
+ };
74
+ };
55
75
  type V1Element = {
56
76
  id: string;
57
77
  model: V1Model<V1ElementModelProps>;
@@ -69,6 +89,16 @@ type V1Element = {
69
89
  };
70
90
  parent?: V1Element;
71
91
  };
92
+ type ElementInteractions = {
93
+ version: number;
94
+ items: InteractionItem[];
95
+ };
96
+ type InteractionItem = {
97
+ animation: {
98
+ animation_type: string;
99
+ animation_id: string;
100
+ };
101
+ };
72
102
  type V1ElementModelProps = {
73
103
  widgetType?: string;
74
104
  elType: string;
@@ -77,7 +107,7 @@ type V1ElementModelProps = {
77
107
  elements?: V1Model<V1ElementModelProps>[];
78
108
  settings?: V1ElementSettingsProps;
79
109
  editor_settings?: V1ElementEditorSettingsProps;
80
- interactions?: string | Record<string, unknown>;
110
+ interactions?: string | ElementInteractions;
81
111
  };
82
112
  type V1ElementData = Omit<V1ElementModelProps, 'elements'> & {
83
113
  elements?: V1ElementData[];
@@ -258,6 +288,8 @@ type MoveElementsParams = {
258
288
  moves: MoveElementParams[];
259
289
  title: string;
260
290
  subtitle?: string;
291
+ onMoveElements?: () => void;
292
+ onRestoreElements?: () => void;
261
293
  };
262
294
  type OriginalPosition = {
263
295
  elementId: string;
@@ -274,7 +306,7 @@ type MovedElementsResult = {
274
306
  movedElements: MovedElement[];
275
307
  };
276
308
 
277
- declare const moveElements: ({ moves: movesToMake, title, subtitle, }: MoveElementsParams) => MovedElementsResult;
309
+ declare const moveElements: ({ moves: movesToMake, title, subtitle, onMoveElements, onRestoreElements, }: MoveElementsParams) => MovedElementsResult;
278
310
 
279
311
  type RemoveNestedElementsParams = {
280
312
  elementIds: string[];
@@ -359,9 +391,9 @@ type UpdateElementStyleArgs = {
359
391
  };
360
392
  declare function updateElementStyle(args: UpdateElementStyleArgs): void;
361
393
 
362
- declare const useElementInteractions: (elementId: ElementID) => string;
394
+ declare const useElementInteractions: (elementId: ElementID) => ElementInteractions;
363
395
 
364
- declare function getElementInteractions(elementId: ElementID): string;
396
+ declare function getElementInteractions(elementId: ElementID): ElementInteractions | undefined;
365
397
 
366
398
  declare const updateElementInteractions: ({ elementId, interactions, }: {
367
399
  elementId: string;
@@ -371,4 +403,4 @@ declare const playElementInteractions: (elementId: string) => void;
371
403
 
372
404
  declare function initMcp(): void;
373
405
 
374
- export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DropElementParams, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementControl, type ElementID, type ElementModel, type ElementType, type LinkInLinkRestriction, type MoveElementParams, type MoveElementsParams, type MovedElement, type MovedElementsResult, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementData, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, dropElement, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentContainer, getCurrentDocumentId, getElementEditorSettings, getElementInteractions, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElementType, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, initMcp as initElementsMcp, isElementAnchored, moveElement, moveElements, playElementInteractions, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementEditorSettings, updateElementInteractions, updateElementSettings, updateElementStyle, useElementChildren, useElementEditorSettings, useElementInteractions, useElementSetting, useElementSettings, useParentElement, useSelectedElement };
406
+ export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DropElementParams, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementControl, type ElementID, type ElementInteractions, type ElementModel, type ElementType, type ExtendedWindow, type InteractionItem, type LinkInLinkRestriction, type MoveElementParams, type MoveElementsParams, type MovedElement, type MovedElementsResult, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementData, type V1ElementEditorSettingsProps, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, dropElement, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentContainer, getCurrentDocumentId, getElementEditorSettings, getElementInteractions, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElementType, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, initMcp as initElementsMcp, isElementAnchored, moveElement, moveElements, playElementInteractions, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementEditorSettings, updateElementInteractions, updateElementSettings, updateElementStyle, useElementChildren, useElementEditorSettings, useElementInteractions, useElementSetting, useElementSettings, useParentElement, useSelectedElement };
package/dist/index.js CHANGED
@@ -574,7 +574,9 @@ var import_i18n3 = require("@wordpress/i18n");
574
574
  var moveElements = ({
575
575
  moves: movesToMake,
576
576
  title,
577
- subtitle = (0, import_i18n3.__)("Elements moved", "elementor")
577
+ subtitle = (0, import_i18n3.__)("Elements moved", "elementor"),
578
+ onMoveElements,
579
+ onRestoreElements
578
580
  }) => {
579
581
  const undoableMove = (0, import_editor_v1_adapters12.undoable)(
580
582
  {
@@ -597,6 +599,7 @@ var moveElements = ({
597
599
  ...move,
598
600
  options: { ...move.options, useHistory: false }
599
601
  });
602
+ onMoveElements?.();
600
603
  movedElements.push({
601
604
  elementId,
602
605
  originalPosition,
@@ -609,6 +612,7 @@ var moveElements = ({
609
612
  undo: (_, { movedElements }) => {
610
613
  [...movedElements].reverse().forEach(({ originalPosition }) => {
611
614
  const { elementId, originalContainerId, originalIndex } = originalPosition;
615
+ onRestoreElements?.();
612
616
  moveElement({
613
617
  elementId,
614
618
  targetContainerId: originalContainerId,
@@ -626,6 +630,7 @@ var moveElements = ({
626
630
  ...move,
627
631
  options: { ...move.options, useHistory: false }
628
632
  });
633
+ onMoveElements?.();
629
634
  newMovedElements.push({
630
635
  elementId: move.elementId,
631
636
  originalPosition,
@@ -672,18 +677,17 @@ var removeElements = ({
672
677
  });
673
678
  }
674
679
  });
675
- const results = elementIdsParam.map((elementId) => {
676
- return deleteElement({
680
+ onRemoveElements?.();
681
+ elementIdsParam.forEach((elementId) => {
682
+ deleteElement({
677
683
  elementId,
678
684
  options: { useHistory: false }
679
685
  });
680
686
  });
681
- Promise.all(results).then(() => {
682
- onRemoveElements?.();
683
- });
684
687
  return { elementIds: elementIdsParam, removedElements };
685
688
  },
686
689
  undo: (_, { removedElements }) => {
690
+ onRestoreElements?.();
687
691
  [...removedElements].reverse().forEach(({ model, parent, at }) => {
688
692
  if (parent && model) {
689
693
  createElement({
@@ -693,16 +697,15 @@ var removeElements = ({
693
697
  });
694
698
  }
695
699
  });
696
- onRestoreElements?.();
697
700
  },
698
701
  redo: (_, { elementIds: originalElementIds, removedElements }) => {
702
+ onRemoveElements?.();
699
703
  originalElementIds.forEach((elementId) => {
700
704
  deleteElement({
701
705
  elementId,
702
706
  options: { useHistory: false }
703
707
  });
704
708
  });
705
- onRemoveElements?.();
706
709
  return { elementIds: originalElementIds, removedElements };
707
710
  }
708
711
  },
@@ -1033,22 +1036,22 @@ function getElementInteractions(elementId) {
1033
1036
  const container = getContainer(elementId);
1034
1037
  const interactions = container?.model?.get("interactions");
1035
1038
  if (typeof interactions === "string") {
1036
- return interactions;
1039
+ return JSON.parse(interactions);
1037
1040
  }
1038
- return JSON.stringify(interactions);
1041
+ return interactions;
1039
1042
  }
1040
1043
 
1041
1044
  // src/hooks/use-element-interactions.ts
1042
1045
  var useElementInteractions = (elementId) => {
1043
1046
  const [interactions, setInteractions] = (0, import_react.useState)(() => {
1044
1047
  const initial = getElementInteractions(elementId);
1045
- return initial;
1048
+ return initial ?? { version: 1, items: [] };
1046
1049
  });
1047
1050
  (0, import_editor_v1_adapters18.__privateUseListenTo)(
1048
1051
  (0, import_editor_v1_adapters18.windowEvent)("elementor/element/update_interactions"),
1049
1052
  () => {
1050
1053
  const newInteractions = getElementInteractions(elementId);
1051
- setInteractions(newInteractions);
1054
+ setInteractions(newInteractions ?? { version: 1, items: [] });
1052
1055
  },
1053
1056
  [elementId]
1054
1057
  );