@elementor/editor-elements 3.33.0-97 → 3.33.0-99

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
@@ -106,14 +106,14 @@ type ElementModel = {
106
106
  type ElementChildren = Record<string, ElementModel[]>;
107
107
  declare function useElementChildren<T extends ElementChildren>(elementId: ElementID, childrenTypes: (keyof T & string)[]): T;
108
108
 
109
- type Options$2 = {
109
+ type Options$3 = {
110
110
  useHistory?: boolean;
111
111
  at?: number;
112
112
  clone?: boolean;
113
113
  };
114
114
  type CreateElementParams = {
115
115
  containerId: string;
116
- options?: Options$2;
116
+ options?: Options$3;
117
117
  model?: Omit<V1ElementModelProps, 'settings' | 'id'> & {
118
118
  settings?: V1ElementSettingsProps;
119
119
  id?: string;
@@ -121,6 +121,40 @@ type CreateElementParams = {
121
121
  };
122
122
  declare function createElement({ containerId, model, options }: CreateElementParams): V1Element;
123
123
 
124
+ type Options$2 = {
125
+ useHistory?: boolean;
126
+ at?: number;
127
+ edit?: boolean;
128
+ };
129
+ type MoveElementParams = {
130
+ elementId: string;
131
+ targetContainerId: string;
132
+ options?: Options$2;
133
+ };
134
+ declare function moveElement({ elementId, targetContainerId, options }: MoveElementParams): V1Element;
135
+
136
+ type MoveElementsParams = {
137
+ moves: MoveElementParams[];
138
+ title: string;
139
+ subtitle?: string;
140
+ };
141
+ type OriginalPosition = {
142
+ elementId: string;
143
+ originalContainerId: string;
144
+ originalIndex: number;
145
+ };
146
+ type MovedElement = {
147
+ elementId: string;
148
+ originalPosition: OriginalPosition;
149
+ move: MoveElementParams;
150
+ element: V1Element;
151
+ };
152
+ type MovedElementsResult = {
153
+ movedElements: MovedElement[];
154
+ };
155
+
156
+ declare const moveElements: ({ moves: movesToMake, title, subtitle, }: MoveElementsParams) => MovedElementsResult;
157
+
124
158
  type Options$1 = {
125
159
  useHistory?: boolean;
126
160
  at?: number;
@@ -273,4 +307,4 @@ declare function getAnchoredDescendantId(elementId: string): string | null;
273
307
  declare function getAnchoredAncestorId(elementId: string): string | null;
274
308
  declare function isElementAnchored(elementId: string): boolean;
275
309
 
276
- export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementID, type ElementType, type LinkInLinkRestriction, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentId, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, isElementAnchored, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementSettings, updateElementStyle, useElementChildren, useElementSetting, useElementSettings, useElementType, useParentElement, useSelectedElement };
310
+ export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementID, type ElementType, type LinkInLinkRestriction, type MoveElementParams, type MoveElementsParams, type MovedElement, type MovedElementsResult, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentId, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, isElementAnchored, moveElement, moveElements, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementSettings, updateElementStyle, useElementChildren, useElementSetting, useElementSettings, useElementType, useParentElement, useSelectedElement };
package/dist/index.d.ts CHANGED
@@ -106,14 +106,14 @@ type ElementModel = {
106
106
  type ElementChildren = Record<string, ElementModel[]>;
107
107
  declare function useElementChildren<T extends ElementChildren>(elementId: ElementID, childrenTypes: (keyof T & string)[]): T;
108
108
 
109
- type Options$2 = {
109
+ type Options$3 = {
110
110
  useHistory?: boolean;
111
111
  at?: number;
112
112
  clone?: boolean;
113
113
  };
114
114
  type CreateElementParams = {
115
115
  containerId: string;
116
- options?: Options$2;
116
+ options?: Options$3;
117
117
  model?: Omit<V1ElementModelProps, 'settings' | 'id'> & {
118
118
  settings?: V1ElementSettingsProps;
119
119
  id?: string;
@@ -121,6 +121,40 @@ type CreateElementParams = {
121
121
  };
122
122
  declare function createElement({ containerId, model, options }: CreateElementParams): V1Element;
123
123
 
124
+ type Options$2 = {
125
+ useHistory?: boolean;
126
+ at?: number;
127
+ edit?: boolean;
128
+ };
129
+ type MoveElementParams = {
130
+ elementId: string;
131
+ targetContainerId: string;
132
+ options?: Options$2;
133
+ };
134
+ declare function moveElement({ elementId, targetContainerId, options }: MoveElementParams): V1Element;
135
+
136
+ type MoveElementsParams = {
137
+ moves: MoveElementParams[];
138
+ title: string;
139
+ subtitle?: string;
140
+ };
141
+ type OriginalPosition = {
142
+ elementId: string;
143
+ originalContainerId: string;
144
+ originalIndex: number;
145
+ };
146
+ type MovedElement = {
147
+ elementId: string;
148
+ originalPosition: OriginalPosition;
149
+ move: MoveElementParams;
150
+ element: V1Element;
151
+ };
152
+ type MovedElementsResult = {
153
+ movedElements: MovedElement[];
154
+ };
155
+
156
+ declare const moveElements: ({ moves: movesToMake, title, subtitle, }: MoveElementsParams) => MovedElementsResult;
157
+
124
158
  type Options$1 = {
125
159
  useHistory?: boolean;
126
160
  at?: number;
@@ -273,4 +307,4 @@ declare function getAnchoredDescendantId(elementId: string): string | null;
273
307
  declare function getAnchoredAncestorId(elementId: string): string | null;
274
308
  declare function isElementAnchored(elementId: string): boolean;
275
309
 
276
- export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementID, type ElementType, type LinkInLinkRestriction, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentId, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, isElementAnchored, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementSettings, updateElementStyle, useElementChildren, useElementSetting, useElementSettings, useElementType, useParentElement, useSelectedElement };
310
+ export { type Control, type ControlItem, type ControlLayout, type ControlsSection, type CreateElementParams, type CreateElementStyleArgs, type DuplicateElementParams, type DuplicateElementsParams, type DuplicatedElement, type DuplicatedElementsResult, ELEMENT_STYLE_CHANGE_EVENT, type Element, type ElementChildren, type ElementID, type ElementType, type LinkInLinkRestriction, type MoveElementParams, type MoveElementsParams, type MovedElement, type MovedElementsResult, type UpdateElementSettingsArgs, type UpdateElementStyleArgs, type V1Element, type V1ElementConfig, type V1ElementModelProps, type V1ElementSettingsProps, createElement, createElementStyle, createElements, deleteElement, deleteElementStyle, duplicateElement, duplicateElements, generateElementId, getAnchoredAncestorId, getAnchoredDescendantId, getContainer, getCurrentDocumentId, getElementLabel, getElementSetting, getElementSettings, getElementStyles, getElements, getLinkInLinkRestriction, getSelectedElements, getWidgetsCache, isElementAnchored, moveElement, moveElements, removeElements, replaceElement, selectElement, shouldCreateNewLocalStyle, styleRerenderEvents, updateElementSettings, updateElementStyle, useElementChildren, useElementSetting, useElementSettings, useElementType, useParentElement, useSelectedElement };
package/dist/index.js CHANGED
@@ -42,6 +42,8 @@ __export(index_exports, {
42
42
  getSelectedElements: () => getSelectedElements,
43
43
  getWidgetsCache: () => getWidgetsCache,
44
44
  isElementAnchored: () => isElementAnchored,
45
+ moveElement: () => moveElement,
46
+ moveElements: () => moveElements,
45
47
  removeElements: () => removeElements,
46
48
  replaceElement: () => replaceElement,
47
49
  selectElement: () => selectElement,
@@ -245,6 +247,120 @@ function createElement({ containerId, model, options }) {
245
247
  });
246
248
  }
247
249
 
250
+ // src/sync/delete-element.ts
251
+ var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
252
+ function deleteElement({ elementId, options = {} }) {
253
+ const container = getContainer(elementId);
254
+ if (!container) {
255
+ throw new Error(`Element with ID "${elementId}" not found`);
256
+ }
257
+ (0, import_editor_v1_adapters8.__privateRunCommand)("document/elements/delete", {
258
+ container,
259
+ options
260
+ });
261
+ }
262
+
263
+ // src/sync/move-element.ts
264
+ function moveElement({ elementId, targetContainerId, options = {} }) {
265
+ const container = getContainer(elementId);
266
+ const target = getContainer(targetContainerId);
267
+ if (!container) {
268
+ throw new Error(`Element with ID "${elementId}" not found`);
269
+ }
270
+ if (!target) {
271
+ throw new Error(`Target container with ID "${targetContainerId}" not found`);
272
+ }
273
+ const modelToRecreate = container.model.toJSON();
274
+ deleteElement({
275
+ elementId,
276
+ // prevent inner history from being created
277
+ options: { ...options, useHistory: false }
278
+ });
279
+ const newContainer = createElement({
280
+ containerId: targetContainerId,
281
+ model: modelToRecreate,
282
+ // prevent inner history from being created
283
+ options: { edit: false, ...options, useHistory: false }
284
+ });
285
+ return newContainer;
286
+ }
287
+
288
+ // src/sync/move-elements.ts
289
+ var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
290
+ var import_i18n = require("@wordpress/i18n");
291
+ var moveElements = ({
292
+ moves: movesToMake,
293
+ title,
294
+ subtitle = (0, import_i18n.__)("Elements moved", "elementor")
295
+ }) => {
296
+ const undoableMove = (0, import_editor_v1_adapters9.undoable)(
297
+ {
298
+ do: ({ moves }) => {
299
+ const movedElements = [];
300
+ moves.forEach((move) => {
301
+ const { elementId } = move;
302
+ const sourceContainer = getContainer(elementId);
303
+ if (!sourceContainer) {
304
+ throw new Error(`Element with ID "${elementId}" not found`);
305
+ }
306
+ const originalContainerId = sourceContainer.parent?.id || "";
307
+ const originalIndex = sourceContainer.parent?.children?.indexOf(sourceContainer) ?? -1;
308
+ const originalPosition = {
309
+ elementId,
310
+ originalContainerId,
311
+ originalIndex
312
+ };
313
+ const element = moveElement({
314
+ ...move,
315
+ options: { ...move.options, useHistory: false }
316
+ });
317
+ movedElements.push({
318
+ elementId,
319
+ originalPosition,
320
+ move,
321
+ element
322
+ });
323
+ });
324
+ return { movedElements };
325
+ },
326
+ undo: (_, { movedElements }) => {
327
+ [...movedElements].reverse().forEach(({ originalPosition }) => {
328
+ const { elementId, originalContainerId, originalIndex } = originalPosition;
329
+ moveElement({
330
+ elementId,
331
+ targetContainerId: originalContainerId,
332
+ options: {
333
+ useHistory: false,
334
+ at: originalIndex >= 0 ? originalIndex : void 0
335
+ }
336
+ });
337
+ });
338
+ },
339
+ redo: (_, { movedElements }) => {
340
+ const newMovedElements = [];
341
+ movedElements.forEach(({ move, originalPosition }) => {
342
+ const element = moveElement({
343
+ ...move,
344
+ options: { ...move.options, useHistory: false }
345
+ });
346
+ newMovedElements.push({
347
+ elementId: move.elementId,
348
+ originalPosition,
349
+ move,
350
+ element
351
+ });
352
+ });
353
+ return { movedElements: newMovedElements };
354
+ }
355
+ },
356
+ {
357
+ title,
358
+ subtitle
359
+ }
360
+ );
361
+ return undoableMove({ moves: movesToMake });
362
+ };
363
+
248
364
  // src/sync/duplicate-element.ts
249
365
  function duplicateElement({ elementId, options = {} }) {
250
366
  const elementToDuplicate = getContainer(elementId);
@@ -269,29 +385,14 @@ function duplicateElement({ elementId, options = {} }) {
269
385
  }
270
386
 
271
387
  // src/sync/create-elements.ts
272
- var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
273
- var import_i18n = require("@wordpress/i18n");
274
-
275
- // src/sync/delete-element.ts
276
- var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
277
- function deleteElement({ elementId, options = {} }) {
278
- const container = getContainer(elementId);
279
- if (!container) {
280
- throw new Error(`Element with ID "${elementId}" not found`);
281
- }
282
- (0, import_editor_v1_adapters8.__privateRunCommand)("document/elements/delete", {
283
- container,
284
- options
285
- });
286
- }
287
-
288
- // src/sync/create-elements.ts
388
+ var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
389
+ var import_i18n2 = require("@wordpress/i18n");
289
390
  var createElements = ({
290
391
  elements,
291
392
  title,
292
- subtitle = (0, import_i18n.__)("Item added", "elementor")
393
+ subtitle = (0, import_i18n2.__)("Item added", "elementor")
293
394
  }) => {
294
- const undoableCreate = (0, import_editor_v1_adapters9.undoable)(
395
+ const undoableCreate = (0, import_editor_v1_adapters10.undoable)(
295
396
  {
296
397
  do: ({ elements: elementsParam }) => {
297
398
  const createdElements = [];
@@ -350,15 +451,15 @@ var createElements = ({
350
451
  };
351
452
 
352
453
  // src/sync/duplicate-elements.ts
353
- var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
354
- var import_i18n2 = require("@wordpress/i18n");
454
+ var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
455
+ var import_i18n3 = require("@wordpress/i18n");
355
456
  var duplicateElements = ({
356
457
  elementIds,
357
458
  title,
358
- subtitle = (0, import_i18n2.__)("Item duplicated", "elementor"),
459
+ subtitle = (0, import_i18n3.__)("Item duplicated", "elementor"),
359
460
  onCreate
360
461
  }) => {
361
- const undoableDuplicate = (0, import_editor_v1_adapters10.undoable)(
462
+ const undoableDuplicate = (0, import_editor_v1_adapters11.undoable)(
362
463
  {
363
464
  do: ({ elementIds: elementIdsToDuplicate }) => {
364
465
  const duplicatedElements = elementIdsToDuplicate.reduce((acc, elementId) => {
@@ -424,14 +525,14 @@ var duplicateElements = ({
424
525
  };
425
526
 
426
527
  // src/sync/remove-elements.ts
427
- var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
428
- var import_i18n3 = require("@wordpress/i18n");
528
+ var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
529
+ var import_i18n4 = require("@wordpress/i18n");
429
530
  var removeElements = ({
430
531
  elementIds,
431
532
  title,
432
- subtitle = (0, import_i18n3.__)("Item removed", "elementor")
533
+ subtitle = (0, import_i18n4.__)("Item removed", "elementor")
433
534
  }) => {
434
- const undoableRemove = (0, import_editor_v1_adapters11.undoable)(
535
+ const undoableRemove = (0, import_editor_v1_adapters12.undoable)(
435
536
  {
436
537
  do: ({ elementIds: elementIdsParam }) => {
437
538
  const removedElements = [];
@@ -550,7 +651,7 @@ function getCurrentDocumentId() {
550
651
  }
551
652
 
552
653
  // src/sync/update-element-settings.ts
553
- var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
654
+ var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
554
655
  var updateElementSettings = ({ id, props, withHistory = true }) => {
555
656
  const container = getContainer(id);
556
657
  const args = {
@@ -558,9 +659,9 @@ var updateElementSettings = ({ id, props, withHistory = true }) => {
558
659
  settings: { ...props }
559
660
  };
560
661
  if (withHistory) {
561
- (0, import_editor_v1_adapters12.__privateRunCommandSync)("document/elements/settings", args);
662
+ (0, import_editor_v1_adapters13.__privateRunCommandSync)("document/elements/settings", args);
562
663
  } else {
563
- (0, import_editor_v1_adapters12.__privateRunCommandSync)("document/elements/set-settings", args, { internal: true });
664
+ (0, import_editor_v1_adapters13.__privateRunCommandSync)("document/elements/set-settings", args, { internal: true });
564
665
  }
565
666
  };
566
667
 
@@ -589,14 +690,14 @@ var replaceElement = ({ currentElement, newElement, withHistory = true }) => {
589
690
  };
590
691
 
591
692
  // src/styles/consts.ts
592
- var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
693
+ var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
593
694
  var ELEMENT_STYLE_CHANGE_EVENT = "elementor/editor-v2/editor-elements/style";
594
695
  var styleRerenderEvents = [
595
- (0, import_editor_v1_adapters13.commandEndEvent)("document/elements/create"),
596
- (0, import_editor_v1_adapters13.commandEndEvent)("document/elements/duplicate"),
597
- (0, import_editor_v1_adapters13.commandEndEvent)("document/elements/import"),
598
- (0, import_editor_v1_adapters13.commandEndEvent)("document/elements/paste"),
599
- (0, import_editor_v1_adapters13.windowEvent)(ELEMENT_STYLE_CHANGE_EVENT)
696
+ (0, import_editor_v1_adapters14.commandEndEvent)("document/elements/create"),
697
+ (0, import_editor_v1_adapters14.commandEndEvent)("document/elements/duplicate"),
698
+ (0, import_editor_v1_adapters14.commandEndEvent)("document/elements/import"),
699
+ (0, import_editor_v1_adapters14.commandEndEvent)("document/elements/paste"),
700
+ (0, import_editor_v1_adapters14.windowEvent)(ELEMENT_STYLE_CHANGE_EVENT)
600
701
  ];
601
702
 
602
703
  // src/styles/create-element-style.ts
@@ -605,7 +706,7 @@ var import_editor_styles = require("@elementor/editor-styles");
605
706
 
606
707
  // src/styles/mutate-element-styles.ts
607
708
  var import_editor_props = require("@elementor/editor-props");
608
- var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
709
+ var import_editor_v1_adapters15 = require("@elementor/editor-v1-adapters");
609
710
  function mutateElementStyles(elementId, mutator) {
610
711
  const container = getContainer(elementId);
611
712
  if (!container) {
@@ -661,7 +762,7 @@ function getClassesProps(container) {
661
762
  }
662
763
  function notifyChanges() {
663
764
  dispatchChangeEvent();
664
- (0, import_editor_v1_adapters14.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
765
+ (0, import_editor_v1_adapters15.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
665
766
  }
666
767
  function dispatchChangeEvent() {
667
768
  window.dispatchEvent(new CustomEvent(ELEMENT_STYLE_CHANGE_EVENT));
@@ -849,6 +950,8 @@ function isElementorElement(element) {
849
950
  getSelectedElements,
850
951
  getWidgetsCache,
851
952
  isElementAnchored,
953
+ moveElement,
954
+ moveElements,
852
955
  removeElements,
853
956
  replaceElement,
854
957
  selectElement,