@elementor/editor-components 3.35.0-493 → 3.35.0
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.js +213 -199
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +129 -114
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -22
- package/src/components/instance-editing-panel/instance-editing-panel.tsx +1 -1
- package/src/components/instance-editing-panel/override-prop-control.tsx +35 -15
- package/src/components/instance-editing-panel/use-resolved-origin-value.tsx +132 -0
- package/src/init.ts +0 -3
- package/src/store/store.ts +1 -1
- package/src/sync/publish-draft-components-in-page-before-save.ts +2 -3
- package/src/utils/component-document-data.ts +0 -6
- package/src/utils/get-prop-type-for-component-override.ts +2 -4
- package/src/utils/switch-to-component.ts +5 -4
- package/src/sync/regenerate-override-keys.ts +0 -114
package/dist/index.js
CHANGED
|
@@ -37,13 +37,13 @@ module.exports = __toCommonJS(index_exports);
|
|
|
37
37
|
// src/init.ts
|
|
38
38
|
var import_editor = require("@elementor/editor");
|
|
39
39
|
var import_editor_canvas8 = require("@elementor/editor-canvas");
|
|
40
|
-
var
|
|
40
|
+
var import_editor_documents14 = require("@elementor/editor-documents");
|
|
41
41
|
var import_editor_editing_panel8 = require("@elementor/editor-editing-panel");
|
|
42
42
|
var import_editor_elements_panel = require("@elementor/editor-elements-panel");
|
|
43
43
|
var import_editor_panels5 = require("@elementor/editor-panels");
|
|
44
44
|
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
45
|
-
var
|
|
46
|
-
var
|
|
45
|
+
var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
|
|
46
|
+
var import_store82 = require("@elementor/store");
|
|
47
47
|
var import_i18n31 = require("@wordpress/i18n");
|
|
48
48
|
|
|
49
49
|
// src/component-instance-transformer.ts
|
|
@@ -313,10 +313,6 @@ var getComponentDocumentData = async (id2) => {
|
|
|
313
313
|
return null;
|
|
314
314
|
}
|
|
315
315
|
};
|
|
316
|
-
var invalidateComponentDocumentData = (id2) => {
|
|
317
|
-
const documentManager = (0, import_editor_documents.getV1DocumentsManager)();
|
|
318
|
-
documentManager.invalidateCache(id2);
|
|
319
|
-
};
|
|
320
316
|
|
|
321
317
|
// src/component-instance-transformer.ts
|
|
322
318
|
var componentInstanceTransformer = (0, import_editor_canvas.createTransformer)(
|
|
@@ -388,7 +384,7 @@ var componentOverrideTransformer = (0, import_editor_canvas3.createTransformer)(
|
|
|
388
384
|
// src/components/component-panel-header/component-panel-header.tsx
|
|
389
385
|
var React10 = __toESM(require("react"));
|
|
390
386
|
var import_editor_current_user = require("@elementor/editor-current-user");
|
|
391
|
-
var
|
|
387
|
+
var import_editor_documents7 = require("@elementor/editor-documents");
|
|
392
388
|
var import_editor_panels3 = require("@elementor/editor-panels");
|
|
393
389
|
var import_editor_ui6 = require("@elementor/editor-ui");
|
|
394
390
|
var import_icons7 = require("@elementor/icons");
|
|
@@ -398,12 +394,12 @@ var import_i18n13 = require("@wordpress/i18n");
|
|
|
398
394
|
|
|
399
395
|
// src/hooks/use-navigate-back.ts
|
|
400
396
|
var import_react = require("react");
|
|
401
|
-
var
|
|
397
|
+
var import_editor_documents3 = require("@elementor/editor-documents");
|
|
402
398
|
var import_store5 = require("@elementor/store");
|
|
403
399
|
|
|
404
400
|
// src/utils/switch-to-component.ts
|
|
401
|
+
var import_editor_documents2 = require("@elementor/editor-documents");
|
|
405
402
|
var import_editor_elements = require("@elementor/editor-elements");
|
|
406
|
-
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
407
403
|
|
|
408
404
|
// src/utils/expand-navigator.ts
|
|
409
405
|
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
@@ -414,8 +410,8 @@ async function expandNavigator() {
|
|
|
414
410
|
// src/utils/switch-to-component.ts
|
|
415
411
|
async function switchToComponent(componentId, componentInstanceId, element) {
|
|
416
412
|
const selector = getSelector(element, componentInstanceId);
|
|
417
|
-
|
|
418
|
-
|
|
413
|
+
(0, import_editor_documents2.invalidateDocumentData)(componentId);
|
|
414
|
+
await (0, import_editor_documents2.switchToDocument)(componentId, {
|
|
419
415
|
selector,
|
|
420
416
|
mode: "autosave",
|
|
421
417
|
setAsInitial: false,
|
|
@@ -460,7 +456,7 @@ function buildUniqueSelector(element) {
|
|
|
460
456
|
// src/hooks/use-navigate-back.ts
|
|
461
457
|
function useNavigateBack() {
|
|
462
458
|
const path = (0, import_store5.__useSelector)(selectPath);
|
|
463
|
-
const documentsManager = (0,
|
|
459
|
+
const documentsManager = (0, import_editor_documents3.getV1DocumentsManager)();
|
|
464
460
|
return (0, import_react.useCallback)(() => {
|
|
465
461
|
const { componentId: prevComponentId, instanceId: prevComponentInstanceId } = path.at(-2) ?? {};
|
|
466
462
|
if (prevComponentId && prevComponentInstanceId) {
|
|
@@ -519,7 +515,7 @@ var import_i18n11 = require("@wordpress/i18n");
|
|
|
519
515
|
// src/components/component-properties-panel/component-properties-panel-content.tsx
|
|
520
516
|
var React7 = __toESM(require("react"));
|
|
521
517
|
var import_react5 = require("react");
|
|
522
|
-
var
|
|
518
|
+
var import_editor_documents6 = require("@elementor/editor-documents");
|
|
523
519
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
524
520
|
var import_icons5 = require("@elementor/icons");
|
|
525
521
|
var import_ui7 = require("@elementor/ui");
|
|
@@ -747,7 +743,7 @@ var import_editor_elements2 = require("@elementor/editor-elements");
|
|
|
747
743
|
|
|
748
744
|
// src/create-component-type.ts
|
|
749
745
|
var import_editor_canvas4 = require("@elementor/editor-canvas");
|
|
750
|
-
var
|
|
746
|
+
var import_editor_documents4 = require("@elementor/editor-documents");
|
|
751
747
|
var import_store13 = require("@elementor/store");
|
|
752
748
|
var import_i18n2 = require("@wordpress/i18n");
|
|
753
749
|
var COMPONENT_WIDGET_TYPE = "e-component";
|
|
@@ -788,7 +784,7 @@ function createComponentView(options) {
|
|
|
788
784
|
eventsManagerConfig = legacyWindow.elementorCommon.eventsManager.config;
|
|
789
785
|
#componentRenderContext;
|
|
790
786
|
isComponentCurrentlyEdited() {
|
|
791
|
-
const currentDocument = (0,
|
|
787
|
+
const currentDocument = (0, import_editor_documents4.getCurrentDocument)();
|
|
792
788
|
return currentDocument?.id === this.getComponentId();
|
|
793
789
|
}
|
|
794
790
|
getRenderContext() {
|
|
@@ -1848,7 +1844,7 @@ function PropertiesGroup({
|
|
|
1848
1844
|
|
|
1849
1845
|
// src/components/component-properties-panel/use-current-editable-item.ts
|
|
1850
1846
|
var import_react4 = require("react");
|
|
1851
|
-
var
|
|
1847
|
+
var import_editor_documents5 = require("@elementor/editor-documents");
|
|
1852
1848
|
var import_editor_ui4 = require("@elementor/editor-ui");
|
|
1853
1849
|
var import_i18n9 = require("@wordpress/i18n");
|
|
1854
1850
|
|
|
@@ -1916,7 +1912,7 @@ function useCurrentEditableItem() {
|
|
|
1916
1912
|
groupId: editingGroupId,
|
|
1917
1913
|
label: newLabel
|
|
1918
1914
|
});
|
|
1919
|
-
(0,
|
|
1915
|
+
(0, import_editor_documents5.setDocumentModifiedStatus)(true);
|
|
1920
1916
|
};
|
|
1921
1917
|
const {
|
|
1922
1918
|
ref: editableRef,
|
|
@@ -1993,21 +1989,21 @@ function ComponentPropertiesPanelContent({ onClose }) {
|
|
|
1993
1989
|
label: newLabel,
|
|
1994
1990
|
source: "user"
|
|
1995
1991
|
});
|
|
1996
|
-
(0,
|
|
1992
|
+
(0, import_editor_documents6.setDocumentModifiedStatus)(true);
|
|
1997
1993
|
setIsAddingGroup(false);
|
|
1998
1994
|
groupLabelEditable.setEditingGroupId(newGroupId);
|
|
1999
1995
|
};
|
|
2000
1996
|
const handleGroupsReorder = (newOrder) => {
|
|
2001
1997
|
reorderOverridableGroups({ componentId: currentComponentId, newOrder });
|
|
2002
|
-
(0,
|
|
1998
|
+
(0, import_editor_documents6.setDocumentModifiedStatus)(true);
|
|
2003
1999
|
};
|
|
2004
2000
|
const handlePropsReorder = (groupId, newPropsOrder) => {
|
|
2005
2001
|
reorderGroupProps({ componentId: currentComponentId, groupId, newPropsOrder });
|
|
2006
|
-
(0,
|
|
2002
|
+
(0, import_editor_documents6.setDocumentModifiedStatus)(true);
|
|
2007
2003
|
};
|
|
2008
2004
|
const handlePropertyDelete = (propKey) => {
|
|
2009
2005
|
deleteOverridableProp({ componentId: currentComponentId, propKey, source: "user" });
|
|
2010
|
-
(0,
|
|
2006
|
+
(0, import_editor_documents6.setDocumentModifiedStatus)(true);
|
|
2011
2007
|
};
|
|
2012
2008
|
const handlePropertyUpdate = (overrideKey, data) => {
|
|
2013
2009
|
updateOverridablePropParams({
|
|
@@ -2016,11 +2012,11 @@ function ComponentPropertiesPanelContent({ onClose }) {
|
|
|
2016
2012
|
label: data.label,
|
|
2017
2013
|
groupId: data.group
|
|
2018
2014
|
});
|
|
2019
|
-
(0,
|
|
2015
|
+
(0, import_editor_documents6.setDocumentModifiedStatus)(true);
|
|
2020
2016
|
};
|
|
2021
2017
|
const handleGroupDelete = (groupId) => {
|
|
2022
2018
|
deleteOverridableGroup({ componentId: currentComponentId, groupId });
|
|
2023
|
-
(0,
|
|
2019
|
+
(0, import_editor_documents6.setDocumentModifiedStatus)(true);
|
|
2024
2020
|
};
|
|
2025
2021
|
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(import_editor_panels.PanelHeader, { sx: { justifyContent: "start", pl: 1.5, pr: 1, py: 1 } }, /* @__PURE__ */ React7.createElement(import_ui7.Stack, { direction: "row", alignItems: "center", gap: 0.5, flexGrow: 1 }, /* @__PURE__ */ React7.createElement(import_icons5.ComponentPropListIcon, { fontSize: "tiny" }), /* @__PURE__ */ React7.createElement(import_editor_panels.PanelHeaderTitle, { variant: "subtitle2" }, (0, import_i18n10.__)("Component properties", "elementor"))), !showEmptyState && /* @__PURE__ */ React7.createElement(import_ui7.Tooltip, { title: (0, import_i18n10.__)("Add new group", "elementor") }, /* @__PURE__ */ React7.createElement(
|
|
2026
2022
|
import_ui7.IconButton,
|
|
@@ -2203,7 +2199,7 @@ function getComponentName() {
|
|
|
2203
2199
|
if (instanceTitle) {
|
|
2204
2200
|
return instanceTitle;
|
|
2205
2201
|
}
|
|
2206
|
-
const documentsManager = (0,
|
|
2202
|
+
const documentsManager = (0, import_editor_documents7.getV1DocumentsManager)();
|
|
2207
2203
|
const currentDocument = documentsManager.getCurrent();
|
|
2208
2204
|
return currentDocument?.container?.settings?.get("post_title") ?? "";
|
|
2209
2205
|
}
|
|
@@ -2298,13 +2294,13 @@ var useComponentsPermissions = () => {
|
|
|
2298
2294
|
};
|
|
2299
2295
|
|
|
2300
2296
|
// src/store/actions/rename-component.ts
|
|
2301
|
-
var
|
|
2297
|
+
var import_editor_documents8 = require("@elementor/editor-documents");
|
|
2302
2298
|
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
2303
2299
|
var import_store33 = require("@elementor/store");
|
|
2304
2300
|
var TITLE_EXTERNAL_CHANGE_COMMAND = "title_external_change";
|
|
2305
2301
|
var renameComponent = (componentUid, newName) => {
|
|
2306
2302
|
(0, import_store33.__dispatch)(slice.actions.rename({ componentUid, name: newName }));
|
|
2307
|
-
(0,
|
|
2303
|
+
(0, import_editor_documents8.setDocumentModifiedStatus)(true);
|
|
2308
2304
|
refreshComponentInstanceTitles(componentUid);
|
|
2309
2305
|
};
|
|
2310
2306
|
function refreshComponentInstanceTitles(componentUid) {
|
|
@@ -2318,7 +2314,7 @@ function refreshComponentInstanceTitles(componentUid) {
|
|
|
2318
2314
|
});
|
|
2319
2315
|
}
|
|
2320
2316
|
function getDocumentContainer() {
|
|
2321
|
-
const documentsManager = (0,
|
|
2317
|
+
const documentsManager = (0, import_editor_documents8.getV1DocumentsManager)();
|
|
2322
2318
|
return documentsManager?.getCurrent()?.container;
|
|
2323
2319
|
}
|
|
2324
2320
|
function findComponentInstancesByUid(documentContainer, componentUid) {
|
|
@@ -2342,7 +2338,7 @@ var import_ui12 = require("@elementor/ui");
|
|
|
2342
2338
|
var import_i18n18 = require("@wordpress/i18n");
|
|
2343
2339
|
|
|
2344
2340
|
// src/store/actions/archive-component.ts
|
|
2345
|
-
var
|
|
2341
|
+
var import_editor_documents9 = require("@elementor/editor-documents");
|
|
2346
2342
|
var import_editor_notifications = require("@elementor/editor-notifications");
|
|
2347
2343
|
var import_store35 = require("@elementor/store");
|
|
2348
2344
|
var import_i18n15 = require("@wordpress/i18n");
|
|
@@ -2354,12 +2350,12 @@ var successNotification = (componentId, componentName) => ({
|
|
|
2354
2350
|
});
|
|
2355
2351
|
var archiveComponent = (componentId, componentName) => {
|
|
2356
2352
|
(0, import_store35.__dispatch)(slice.actions.archive(componentId));
|
|
2357
|
-
(0,
|
|
2353
|
+
(0, import_editor_documents9.setDocumentModifiedStatus)(true);
|
|
2358
2354
|
(0, import_editor_notifications.notify)(successNotification(componentId, componentName));
|
|
2359
2355
|
};
|
|
2360
2356
|
|
|
2361
2357
|
// src/store/actions/load-components-assets.ts
|
|
2362
|
-
var
|
|
2358
|
+
var import_editor_documents10 = require("@elementor/editor-documents");
|
|
2363
2359
|
|
|
2364
2360
|
// src/utils/get-component-documents.ts
|
|
2365
2361
|
async function getComponentDocuments(elements, cache = /* @__PURE__ */ new Map()) {
|
|
@@ -2469,9 +2465,9 @@ async function loadComponentsAssets(elements) {
|
|
|
2469
2465
|
await loadComponentsOverridableProps([...documents.keys()]);
|
|
2470
2466
|
}
|
|
2471
2467
|
function updateDocumentState(documents) {
|
|
2472
|
-
const isDrafted = [...documents.values()].some(
|
|
2468
|
+
const isDrafted = [...documents.values()].some(import_editor_documents10.isDocumentDirty);
|
|
2473
2469
|
if (isDrafted) {
|
|
2474
|
-
(0,
|
|
2470
|
+
(0, import_editor_documents10.setDocumentModifiedStatus)(true);
|
|
2475
2471
|
}
|
|
2476
2472
|
}
|
|
2477
2473
|
|
|
@@ -2999,7 +2995,7 @@ var import_i18n23 = require("@wordpress/i18n");
|
|
|
2999
2995
|
var import_editor_canvas6 = require("@elementor/editor-canvas");
|
|
3000
2996
|
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
3001
2997
|
var import_editor_notifications2 = require("@elementor/editor-notifications");
|
|
3002
|
-
var
|
|
2998
|
+
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
3003
2999
|
var import_i18n21 = require("@wordpress/i18n");
|
|
3004
3000
|
|
|
3005
3001
|
// src/utils/is-editing-component.ts
|
|
@@ -3019,15 +3015,15 @@ var NON_ATOMIC_ELEMENT_ALERT = {
|
|
|
3019
3015
|
id: "non-atomic-element-blocked"
|
|
3020
3016
|
};
|
|
3021
3017
|
function initNonAtomicNestingPrevention() {
|
|
3022
|
-
(0,
|
|
3018
|
+
(0, import_editor_v1_adapters3.blockCommand)({
|
|
3023
3019
|
command: "document/elements/create",
|
|
3024
3020
|
condition: blockNonAtomicCreate
|
|
3025
3021
|
});
|
|
3026
|
-
(0,
|
|
3022
|
+
(0, import_editor_v1_adapters3.blockCommand)({
|
|
3027
3023
|
command: "document/elements/move",
|
|
3028
3024
|
condition: blockNonAtomicMove
|
|
3029
3025
|
});
|
|
3030
|
-
(0,
|
|
3026
|
+
(0, import_editor_v1_adapters3.blockCommand)({
|
|
3031
3027
|
command: "document/elements/paste",
|
|
3032
3028
|
condition: blockNonAtomicPaste
|
|
3033
3029
|
});
|
|
@@ -3115,7 +3111,7 @@ function findNonAtomicElementsInElement(element) {
|
|
|
3115
3111
|
|
|
3116
3112
|
// src/store/actions/create-unpublished-component.ts
|
|
3117
3113
|
var import_editor_elements10 = require("@elementor/editor-elements");
|
|
3118
|
-
var
|
|
3114
|
+
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
3119
3115
|
var import_store45 = require("@elementor/store");
|
|
3120
3116
|
var import_utils4 = require("@elementor/utils");
|
|
3121
3117
|
var import_i18n22 = require("@wordpress/i18n");
|
|
@@ -3154,7 +3150,7 @@ async function createUnpublishedComponent({
|
|
|
3154
3150
|
...eventData
|
|
3155
3151
|
});
|
|
3156
3152
|
try {
|
|
3157
|
-
await (0,
|
|
3153
|
+
await (0, import_editor_v1_adapters4.__privateRunCommand)("document/save/auto");
|
|
3158
3154
|
} catch (error) {
|
|
3159
3155
|
restoreOriginalElement(originalElement, componentInstance.id);
|
|
3160
3156
|
(0, import_store45.__dispatch)(slice.actions.removeUnpublished(generatedUid));
|
|
@@ -3440,13 +3436,13 @@ var Form2 = ({
|
|
|
3440
3436
|
// src/components/edit-component/edit-component.tsx
|
|
3441
3437
|
var React21 = __toESM(require("react"));
|
|
3442
3438
|
var import_react13 = require("react");
|
|
3443
|
-
var
|
|
3444
|
-
var
|
|
3439
|
+
var import_editor_documents12 = require("@elementor/editor-documents");
|
|
3440
|
+
var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
|
|
3445
3441
|
var import_store51 = require("@elementor/store");
|
|
3446
3442
|
var import_utils6 = require("@elementor/utils");
|
|
3447
3443
|
|
|
3448
3444
|
// src/store/actions/update-current-component.ts
|
|
3449
|
-
var
|
|
3445
|
+
var import_editor_documents11 = require("@elementor/editor-documents");
|
|
3450
3446
|
var import_store49 = require("@elementor/store");
|
|
3451
3447
|
function updateCurrentComponent({
|
|
3452
3448
|
path,
|
|
@@ -3467,9 +3463,9 @@ var import_react_dom = require("react-dom");
|
|
|
3467
3463
|
var import_i18n24 = require("@wordpress/i18n");
|
|
3468
3464
|
|
|
3469
3465
|
// src/hooks/use-canvas-document.ts
|
|
3470
|
-
var
|
|
3466
|
+
var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
|
|
3471
3467
|
function useCanvasDocument() {
|
|
3472
|
-
return (0,
|
|
3468
|
+
return (0, import_editor_v1_adapters5.__privateUseListenTo)((0, import_editor_v1_adapters5.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_v1_adapters5.getCanvasIframeDocument)());
|
|
3473
3469
|
}
|
|
3474
3470
|
|
|
3475
3471
|
// src/hooks/use-element-rect.ts
|
|
@@ -3646,11 +3642,11 @@ function EditComponent() {
|
|
|
3646
3642
|
return /* @__PURE__ */ React21.createElement(ComponentModal, { topLevelElementDom, onClose });
|
|
3647
3643
|
}
|
|
3648
3644
|
function useHandleDocumentSwitches() {
|
|
3649
|
-
const documentsManager = (0,
|
|
3645
|
+
const documentsManager = (0, import_editor_documents12.getV1DocumentsManager)();
|
|
3650
3646
|
const currentComponentId = useCurrentComponentId();
|
|
3651
3647
|
const path = (0, import_store51.__useSelector)(selectPath);
|
|
3652
3648
|
(0, import_react13.useEffect)(() => {
|
|
3653
|
-
return (0,
|
|
3649
|
+
return (0, import_editor_v1_adapters6.__privateListenTo)((0, import_editor_v1_adapters6.commandEndEvent)("editor/documents/open"), () => {
|
|
3654
3650
|
const nextDocument = documentsManager.getCurrent();
|
|
3655
3651
|
if (nextDocument.id === currentComponentId) {
|
|
3656
3652
|
return;
|
|
@@ -3690,7 +3686,7 @@ function getInstanceTitle(instanceId, path) {
|
|
|
3690
3686
|
if (!instanceId) {
|
|
3691
3687
|
return void 0;
|
|
3692
3688
|
}
|
|
3693
|
-
const documentsManager = (0,
|
|
3689
|
+
const documentsManager = (0, import_editor_documents12.getV1DocumentsManager)();
|
|
3694
3690
|
const parentDocId = path.at(-1)?.componentId ?? documentsManager.getInitialId();
|
|
3695
3691
|
const parentDoc = documentsManager.get(parentDocId);
|
|
3696
3692
|
const parentContainer = parentDoc?.container;
|
|
@@ -3725,7 +3721,7 @@ function getComponentDOMElements(id2) {
|
|
|
3725
3721
|
if (!id2) {
|
|
3726
3722
|
return { componentContainerDomElement: null, topLevelElementDom: null };
|
|
3727
3723
|
}
|
|
3728
|
-
const documentsManager = (0,
|
|
3724
|
+
const documentsManager = (0, import_editor_documents12.getV1DocumentsManager)();
|
|
3729
3725
|
const currentComponent = documentsManager.get(id2);
|
|
3730
3726
|
const componentContainer = currentComponent?.container;
|
|
3731
3727
|
const componentContainerDomElement = componentContainer?.view?.el?.children?.[0] ?? null;
|
|
@@ -3933,12 +3929,10 @@ var getPropTypeForComponentOverride = (overridableProp) => {
|
|
|
3933
3929
|
if (overridableProp.originPropFields) {
|
|
3934
3930
|
return getPropType(overridableProp.originPropFields);
|
|
3935
3931
|
}
|
|
3936
|
-
const {
|
|
3932
|
+
const { widgetType, propKey } = overridableProp;
|
|
3937
3933
|
return getPropType({
|
|
3938
|
-
elType,
|
|
3939
3934
|
widgetType,
|
|
3940
|
-
propKey
|
|
3941
|
-
elementId
|
|
3935
|
+
propKey
|
|
3942
3936
|
});
|
|
3943
3937
|
};
|
|
3944
3938
|
function getPropType({ widgetType, propKey }) {
|
|
@@ -3961,6 +3955,92 @@ var OverrideControlInnerElementNotFoundError = (0, import_utils7.createError)({
|
|
|
3961
3955
|
message: `Component inner element not found for override control. The element may have been deleted without updating the overridable props, or the component has not finished rendering yet.`
|
|
3962
3956
|
});
|
|
3963
3957
|
|
|
3958
|
+
// src/components/instance-editing-panel/use-resolved-origin-value.tsx
|
|
3959
|
+
var import_store55 = require("@elementor/store");
|
|
3960
|
+
function useResolvedOriginValue(override, overridableProp) {
|
|
3961
|
+
const components = (0, import_store55.__useSelector)(selectData);
|
|
3962
|
+
return resolveOriginValue(components, override, overridableProp);
|
|
3963
|
+
}
|
|
3964
|
+
function resolveOriginValue(components, matchingOverride, overridableProp) {
|
|
3965
|
+
const { originValue: fallbackOriginValue, originPropFields } = overridableProp;
|
|
3966
|
+
if (hasValue(fallbackOriginValue)) {
|
|
3967
|
+
return fallbackOriginValue;
|
|
3968
|
+
}
|
|
3969
|
+
if (matchingOverride) {
|
|
3970
|
+
const result = getOriginFromOverride(components, matchingOverride);
|
|
3971
|
+
if (hasValue(result)) {
|
|
3972
|
+
return result;
|
|
3973
|
+
}
|
|
3974
|
+
}
|
|
3975
|
+
const { elementId, propKey } = originPropFields ?? {};
|
|
3976
|
+
if (elementId && propKey) {
|
|
3977
|
+
return findOriginValueByElementId(components, elementId, propKey);
|
|
3978
|
+
}
|
|
3979
|
+
return null;
|
|
3980
|
+
}
|
|
3981
|
+
function getOriginFromOverride(components, override) {
|
|
3982
|
+
const overridableValue = componentOverridablePropTypeUtil.extract(override);
|
|
3983
|
+
const innerOverride = overridableValue ? componentInstanceOverridePropTypeUtil.extract(overridableValue.origin_value) : componentInstanceOverridePropTypeUtil.extract(override);
|
|
3984
|
+
if (!innerOverride) {
|
|
3985
|
+
return null;
|
|
3986
|
+
}
|
|
3987
|
+
const { schema_source: schemaSource, override_key: overrideKey, override_value: overrideValue } = innerOverride;
|
|
3988
|
+
const componentId = schemaSource?.id;
|
|
3989
|
+
if (!componentId || !overrideKey) {
|
|
3990
|
+
return null;
|
|
3991
|
+
}
|
|
3992
|
+
const prop = getOverridableProp(components, componentId, overrideKey);
|
|
3993
|
+
if (hasValue(prop?.originValue)) {
|
|
3994
|
+
return prop.originValue;
|
|
3995
|
+
}
|
|
3996
|
+
if (prop?.originPropFields?.elementId) {
|
|
3997
|
+
const targetPropKey = prop.originPropFields.propKey ?? prop.propKey;
|
|
3998
|
+
const result = findOriginValueByElementId(components, prop.originPropFields.elementId, targetPropKey);
|
|
3999
|
+
if (hasValue(result)) {
|
|
4000
|
+
return result;
|
|
4001
|
+
}
|
|
4002
|
+
}
|
|
4003
|
+
const nestedOverridable = componentOverridablePropTypeUtil.extract(overrideValue);
|
|
4004
|
+
if (nestedOverridable) {
|
|
4005
|
+
return getOriginFromOverride(components, componentOverridablePropTypeUtil.create(nestedOverridable));
|
|
4006
|
+
}
|
|
4007
|
+
return null;
|
|
4008
|
+
}
|
|
4009
|
+
function findOriginValueByElementId(components, targetElementId, targetPropKey, visited = /* @__PURE__ */ new Set()) {
|
|
4010
|
+
for (const component of components) {
|
|
4011
|
+
if (visited.has(component.id)) {
|
|
4012
|
+
continue;
|
|
4013
|
+
}
|
|
4014
|
+
visited.add(component.id);
|
|
4015
|
+
const matchingProp = Object.values(component.overridableProps?.props ?? {}).find(
|
|
4016
|
+
({ elementId, propKey }) => elementId === targetElementId && propKey === targetPropKey
|
|
4017
|
+
);
|
|
4018
|
+
if (!matchingProp) {
|
|
4019
|
+
continue;
|
|
4020
|
+
}
|
|
4021
|
+
if (hasValue(matchingProp.originValue)) {
|
|
4022
|
+
return matchingProp.originValue;
|
|
4023
|
+
}
|
|
4024
|
+
if (matchingProp.originPropFields?.elementId) {
|
|
4025
|
+
const innerPropKey = matchingProp.originPropFields.propKey ?? targetPropKey;
|
|
4026
|
+
return findOriginValueByElementId(
|
|
4027
|
+
components,
|
|
4028
|
+
matchingProp.originPropFields.elementId,
|
|
4029
|
+
innerPropKey,
|
|
4030
|
+
visited
|
|
4031
|
+
);
|
|
4032
|
+
}
|
|
4033
|
+
}
|
|
4034
|
+
return null;
|
|
4035
|
+
}
|
|
4036
|
+
function hasValue(value) {
|
|
4037
|
+
return value !== null && value !== void 0;
|
|
4038
|
+
}
|
|
4039
|
+
function getOverridableProp(components, componentId, overrideKey) {
|
|
4040
|
+
const component = components.find(({ id: id2 }) => id2 === componentId);
|
|
4041
|
+
return component?.overridableProps?.props?.[overrideKey];
|
|
4042
|
+
}
|
|
4043
|
+
|
|
3964
4044
|
// src/components/instance-editing-panel/override-prop-control.tsx
|
|
3965
4045
|
function OverridePropControl({ overridableProp, overrides }) {
|
|
3966
4046
|
return /* @__PURE__ */ React26.createElement(import_editor_editing_panel3.SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React26.createElement(OverrideControl, { overridableProp, overrides }));
|
|
@@ -3973,26 +4053,27 @@ function OverrideControl({ overridableProp, overrides }) {
|
|
|
3973
4053
|
overridableProp?.originPropFields?.widgetType ?? overridableProp.widgetType
|
|
3974
4054
|
);
|
|
3975
4055
|
const controlReplacements = (0, import_editor_editing_panel3.getControlReplacements)();
|
|
4056
|
+
const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
|
|
4057
|
+
const recursiveOriginValue = useResolvedOriginValue(matchingOverride, overridableProp);
|
|
3976
4058
|
const propType = getPropTypeForComponentOverride(overridableProp);
|
|
3977
4059
|
if (!propType) {
|
|
3978
4060
|
return null;
|
|
3979
4061
|
}
|
|
3980
|
-
const propTypeSchema = (0, import_editor_editing_panel3.createTopLevelObjectType)({
|
|
3981
|
-
schema: {
|
|
3982
|
-
[overridableProp.overrideKey]: propType
|
|
3983
|
-
}
|
|
3984
|
-
});
|
|
3985
4062
|
const componentInstanceId = instanceValue.component_id?.value;
|
|
3986
4063
|
if (!componentInstanceId) {
|
|
3987
4064
|
throw new Error("Component ID is required");
|
|
3988
4065
|
}
|
|
3989
|
-
const
|
|
3990
|
-
const propValue =
|
|
4066
|
+
const resolvedOverrideValue = matchingOverride ? resolveOverridePropValue(matchingOverride) : null;
|
|
4067
|
+
const propValue = resolvedOverrideValue ?? recursiveOriginValue ?? overridableProp.originValue;
|
|
3991
4068
|
const value = {
|
|
3992
4069
|
[overridableProp.overrideKey]: propValue
|
|
3993
4070
|
};
|
|
3994
4071
|
const setValue = (newValue) => {
|
|
3995
|
-
const newPropValue =
|
|
4072
|
+
const newPropValue = getTempNewValueForDynamicProp(
|
|
4073
|
+
propType,
|
|
4074
|
+
propValue,
|
|
4075
|
+
newValue[overridableProp.overrideKey]
|
|
4076
|
+
);
|
|
3996
4077
|
const newOverrideValue = createOverrideValue({
|
|
3997
4078
|
matchingOverride,
|
|
3998
4079
|
overrideKey: overridableProp.overrideKey,
|
|
@@ -4034,6 +4115,11 @@ function OverrideControl({ overridableProp, overrides }) {
|
|
|
4034
4115
|
if (!elementType) {
|
|
4035
4116
|
return null;
|
|
4036
4117
|
}
|
|
4118
|
+
const propTypeSchema = (0, import_editor_editing_panel3.createTopLevelObjectType)({
|
|
4119
|
+
schema: {
|
|
4120
|
+
[overridableProp.overrideKey]: propType
|
|
4121
|
+
}
|
|
4122
|
+
});
|
|
4037
4123
|
return /* @__PURE__ */ React26.createElement(
|
|
4038
4124
|
OverridablePropProvider,
|
|
4039
4125
|
{
|
|
@@ -4054,8 +4140,15 @@ function OverrideControl({ overridableProp, overrides }) {
|
|
|
4054
4140
|
)))
|
|
4055
4141
|
);
|
|
4056
4142
|
}
|
|
4143
|
+
function getTempNewValueForDynamicProp(propType, propValue, newPropValue) {
|
|
4144
|
+
const isRemovingOverride = newPropValue === null;
|
|
4145
|
+
if (isRemovingOverride && (0, import_editor_editing_panel3.isDynamicPropValue)(propValue)) {
|
|
4146
|
+
return propType.default ?? null;
|
|
4147
|
+
}
|
|
4148
|
+
return newPropValue;
|
|
4149
|
+
}
|
|
4057
4150
|
function getMatchingOverride(overrides, overrideKey) {
|
|
4058
|
-
|
|
4151
|
+
const result = overrides?.find((override) => {
|
|
4059
4152
|
const overridableValue = componentOverridablePropTypeUtil.extract(override);
|
|
4060
4153
|
let comparedOverrideKey = null;
|
|
4061
4154
|
if (overridableValue) {
|
|
@@ -4065,6 +4158,7 @@ function getMatchingOverride(overrides, overrideKey) {
|
|
|
4065
4158
|
}
|
|
4066
4159
|
return comparedOverrideKey === overrideKey;
|
|
4067
4160
|
}) ?? null;
|
|
4161
|
+
return result;
|
|
4068
4162
|
}
|
|
4069
4163
|
function createOverrideValue({
|
|
4070
4164
|
matchingOverride,
|
|
@@ -4191,7 +4285,7 @@ function InstanceEditingPanel() {
|
|
|
4191
4285
|
const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
|
|
4192
4286
|
const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
|
|
4193
4287
|
const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
|
|
4194
|
-
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelHeader, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React28.createElement(import_icons14.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React28.createElement(import_editor_ui14.EllipsisWithTooltip, { title: component.name, as: import_editor_panels4.PanelHeaderTitle, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React28.createElement(import_ui22.Tooltip, { title: panelTitle }, /* @__PURE__ */ React28.createElement(import_ui22.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React28.createElement(import_icons14.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelBody, null, /* @__PURE__ */ React28.createElement(import_editor_controls4.ControlAdornmentsProvider, { items: (0, import_editor_editing_panel5.getFieldIndicators)("settings") }, isEmpty ? /* @__PURE__ */ React28.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React28.createElement(React28.Fragment, { key: group.id }, /* @__PURE__ */ React28.createElement(
|
|
4288
|
+
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelHeader, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React28.createElement(import_icons14.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React28.createElement(import_editor_ui14.EllipsisWithTooltip, { title: component.name, as: import_editor_panels4.PanelHeaderTitle, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React28.createElement(import_ui22.Tooltip, { title: panelTitle }, /* @__PURE__ */ React28.createElement(import_ui22.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React28.createElement(import_icons14.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React28.createElement(import_editor_panels4.PanelBody, null, /* @__PURE__ */ React28.createElement(import_editor_controls4.ControlAdornmentsProvider, { items: (0, import_editor_editing_panel5.getFieldIndicators)("settings") }, isEmpty ? /* @__PURE__ */ React28.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React28.createElement(React28.Fragment, { key: group.id + componentInstanceId }, /* @__PURE__ */ React28.createElement(
|
|
4195
4289
|
OverridePropsGroup,
|
|
4196
4290
|
{
|
|
4197
4291
|
group,
|
|
@@ -4282,7 +4376,7 @@ var import_ui24 = require("@elementor/ui");
|
|
|
4282
4376
|
var import_i18n29 = require("@wordpress/i18n");
|
|
4283
4377
|
|
|
4284
4378
|
// src/store/actions/set-overridable-prop.ts
|
|
4285
|
-
var
|
|
4379
|
+
var import_store60 = require("@elementor/store");
|
|
4286
4380
|
var import_utils8 = require("@elementor/utils");
|
|
4287
4381
|
function setOverridableProp({
|
|
4288
4382
|
componentId,
|
|
@@ -4297,7 +4391,7 @@ function setOverridableProp({
|
|
|
4297
4391
|
originPropFields,
|
|
4298
4392
|
source
|
|
4299
4393
|
}) {
|
|
4300
|
-
const overridableProps = selectOverridableProps((0,
|
|
4394
|
+
const overridableProps = selectOverridableProps((0, import_store60.__getState)(), componentId);
|
|
4301
4395
|
if (!overridableProps) {
|
|
4302
4396
|
return;
|
|
4303
4397
|
}
|
|
@@ -4334,7 +4428,7 @@ function setOverridableProp({
|
|
|
4334
4428
|
if (isChangingGroups) {
|
|
4335
4429
|
groups = removePropFromGroup(groups, existingOverridableProp.groupId, overridableProp.overrideKey);
|
|
4336
4430
|
}
|
|
4337
|
-
(0,
|
|
4431
|
+
(0, import_store60.__dispatch)(
|
|
4338
4432
|
slice.actions.setOverridableProps({
|
|
4339
4433
|
componentId,
|
|
4340
4434
|
overridableProps: {
|
|
@@ -4345,7 +4439,7 @@ function setOverridableProp({
|
|
|
4345
4439
|
);
|
|
4346
4440
|
const isNewProperty = !existingOverridableProp;
|
|
4347
4441
|
if (isNewProperty) {
|
|
4348
|
-
const currentComponent = selectCurrentComponent((0,
|
|
4442
|
+
const currentComponent = selectCurrentComponent((0, import_store60.__getState)());
|
|
4349
4443
|
trackComponentEvent({
|
|
4350
4444
|
action: "propertyExposed",
|
|
4351
4445
|
source,
|
|
@@ -4430,12 +4524,12 @@ var Indicator2 = (0, import_react16.forwardRef)(({ isOpen, isOverridable, ...pro
|
|
|
4430
4524
|
)));
|
|
4431
4525
|
|
|
4432
4526
|
// src/components/overridable-props/utils/get-overridable-prop.ts
|
|
4433
|
-
var
|
|
4434
|
-
function
|
|
4527
|
+
var import_store62 = require("@elementor/store");
|
|
4528
|
+
function getOverridableProp2({
|
|
4435
4529
|
componentId,
|
|
4436
4530
|
overrideKey
|
|
4437
4531
|
}) {
|
|
4438
|
-
const overridableProps = selectOverridableProps((0,
|
|
4532
|
+
const overridableProps = selectOverridableProps((0, import_store62.__getState)(), componentId);
|
|
4439
4533
|
if (!overridableProps) {
|
|
4440
4534
|
return void 0;
|
|
4441
4535
|
}
|
|
@@ -4495,7 +4589,7 @@ function Content2({ componentId, overridableProps }) {
|
|
|
4495
4589
|
}
|
|
4496
4590
|
popupState.close();
|
|
4497
4591
|
};
|
|
4498
|
-
const overridableConfig = overridableValue ?
|
|
4592
|
+
const overridableConfig = overridableValue ? getOverridableProp2({ componentId, overrideKey: overridableValue.override_key }) : void 0;
|
|
4499
4593
|
return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(import_ui24.Tooltip, { placement: "top", title: (0, import_i18n29.__)("Override Property", "elementor") }, /* @__PURE__ */ React31.createElement(Indicator2, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React31.createElement(
|
|
4500
4594
|
import_ui24.Popover,
|
|
4501
4595
|
{
|
|
@@ -4875,10 +4969,10 @@ function initMcp() {
|
|
|
4875
4969
|
|
|
4876
4970
|
// src/populate-store.ts
|
|
4877
4971
|
var import_react17 = require("react");
|
|
4878
|
-
var
|
|
4972
|
+
var import_store65 = require("@elementor/store");
|
|
4879
4973
|
function PopulateStore() {
|
|
4880
4974
|
(0, import_react17.useEffect)(() => {
|
|
4881
|
-
(0,
|
|
4975
|
+
(0, import_store65.__dispatch)(loadComponents());
|
|
4882
4976
|
}, []);
|
|
4883
4977
|
return null;
|
|
4884
4978
|
}
|
|
@@ -4886,8 +4980,8 @@ function PopulateStore() {
|
|
|
4886
4980
|
// src/prevent-circular-nesting.ts
|
|
4887
4981
|
var import_editor_elements19 = require("@elementor/editor-elements");
|
|
4888
4982
|
var import_editor_notifications4 = require("@elementor/editor-notifications");
|
|
4889
|
-
var
|
|
4890
|
-
var
|
|
4983
|
+
var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
|
|
4984
|
+
var import_store66 = require("@elementor/store");
|
|
4891
4985
|
var import_i18n30 = require("@wordpress/i18n");
|
|
4892
4986
|
var COMPONENT_TYPE = "e-component";
|
|
4893
4987
|
var COMPONENT_CIRCULAR_NESTING_ALERT = {
|
|
@@ -4896,15 +4990,15 @@ var COMPONENT_CIRCULAR_NESTING_ALERT = {
|
|
|
4896
4990
|
id: "circular-component-nesting-blocked"
|
|
4897
4991
|
};
|
|
4898
4992
|
function initCircularNestingPrevention() {
|
|
4899
|
-
(0,
|
|
4993
|
+
(0, import_editor_v1_adapters7.blockCommand)({
|
|
4900
4994
|
command: "document/elements/create",
|
|
4901
4995
|
condition: blockCircularCreate
|
|
4902
4996
|
});
|
|
4903
|
-
(0,
|
|
4997
|
+
(0, import_editor_v1_adapters7.blockCommand)({
|
|
4904
4998
|
command: "document/elements/move",
|
|
4905
4999
|
condition: blockCircularMove
|
|
4906
5000
|
});
|
|
4907
|
-
(0,
|
|
5001
|
+
(0, import_editor_v1_adapters7.blockCommand)({
|
|
4908
5002
|
command: "document/elements/paste",
|
|
4909
5003
|
condition: blockCircularPaste
|
|
4910
5004
|
});
|
|
@@ -4913,7 +5007,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
|
|
|
4913
5007
|
if (componentIdToAdd === void 0) {
|
|
4914
5008
|
return false;
|
|
4915
5009
|
}
|
|
4916
|
-
const state = (0,
|
|
5010
|
+
const state = (0, import_store66.__getState)();
|
|
4917
5011
|
const currentComponentId = selectCurrentComponentId(state);
|
|
4918
5012
|
const path = selectPath(state);
|
|
4919
5013
|
if (currentComponentId === null) {
|
|
@@ -5011,19 +5105,19 @@ function blockCircularPaste(args) {
|
|
|
5011
5105
|
}
|
|
5012
5106
|
|
|
5013
5107
|
// src/store/actions/remove-component-styles.ts
|
|
5014
|
-
var
|
|
5108
|
+
var import_store68 = require("@elementor/store");
|
|
5015
5109
|
function removeComponentStyles(id2) {
|
|
5016
5110
|
apiClient.invalidateComponentConfigCache(id2);
|
|
5017
|
-
(0,
|
|
5111
|
+
(0, import_store68.__dispatch)(slice.actions.removeStyles({ id: id2 }));
|
|
5018
5112
|
}
|
|
5019
5113
|
|
|
5020
5114
|
// src/store/components-styles-provider.ts
|
|
5021
5115
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
5022
|
-
var
|
|
5116
|
+
var import_store70 = require("@elementor/store");
|
|
5023
5117
|
var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
|
|
5024
5118
|
key: "components-styles",
|
|
5025
5119
|
priority: 100,
|
|
5026
|
-
subscribe: (cb) => (0,
|
|
5120
|
+
subscribe: (cb) => (0, import_store70.__subscribeWithSelector)(
|
|
5027
5121
|
(state) => state[SLICE_NAME],
|
|
5028
5122
|
() => {
|
|
5029
5123
|
cb();
|
|
@@ -5031,29 +5125,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
|
|
|
5031
5125
|
),
|
|
5032
5126
|
actions: {
|
|
5033
5127
|
all: () => {
|
|
5034
|
-
return selectFlatStyles((0,
|
|
5128
|
+
return selectFlatStyles((0, import_store70.__getState)());
|
|
5035
5129
|
},
|
|
5036
5130
|
get: (id2) => {
|
|
5037
|
-
return selectFlatStyles((0,
|
|
5131
|
+
return selectFlatStyles((0, import_store70.__getState)()).find((style) => style.id === id2) ?? null;
|
|
5038
5132
|
}
|
|
5039
5133
|
}
|
|
5040
5134
|
});
|
|
5041
5135
|
|
|
5042
5136
|
// src/sync/create-components-before-save.ts
|
|
5043
5137
|
var import_editor_elements20 = require("@elementor/editor-elements");
|
|
5044
|
-
var
|
|
5138
|
+
var import_store72 = require("@elementor/store");
|
|
5045
5139
|
async function createComponentsBeforeSave({
|
|
5046
5140
|
elements,
|
|
5047
5141
|
status
|
|
5048
5142
|
}) {
|
|
5049
|
-
const unpublishedComponents = selectUnpublishedComponents((0,
|
|
5143
|
+
const unpublishedComponents = selectUnpublishedComponents((0, import_store72.__getState)());
|
|
5050
5144
|
if (!unpublishedComponents.length) {
|
|
5051
5145
|
return;
|
|
5052
5146
|
}
|
|
5053
5147
|
try {
|
|
5054
5148
|
const uidToComponentId = await createComponents(unpublishedComponents, status);
|
|
5055
5149
|
updateComponentInstances(elements, uidToComponentId);
|
|
5056
|
-
(0,
|
|
5150
|
+
(0, import_store72.__dispatch)(
|
|
5057
5151
|
slice.actions.add(
|
|
5058
5152
|
unpublishedComponents.map((component) => ({
|
|
5059
5153
|
id: uidToComponentId.get(component.uid),
|
|
@@ -5063,10 +5157,10 @@ async function createComponentsBeforeSave({
|
|
|
5063
5157
|
}))
|
|
5064
5158
|
)
|
|
5065
5159
|
);
|
|
5066
|
-
(0,
|
|
5160
|
+
(0, import_store72.__dispatch)(slice.actions.resetUnpublished());
|
|
5067
5161
|
} catch (error) {
|
|
5068
5162
|
const failedUids = unpublishedComponents.map((component) => component.uid);
|
|
5069
|
-
(0,
|
|
5163
|
+
(0, import_store72.__dispatch)(slice.actions.removeUnpublished(failedUids));
|
|
5070
5164
|
throw new Error(`Failed to publish components: ${error}`);
|
|
5071
5165
|
}
|
|
5072
5166
|
}
|
|
@@ -5125,22 +5219,22 @@ function updateElementComponentId(elementId, componentId) {
|
|
|
5125
5219
|
}
|
|
5126
5220
|
|
|
5127
5221
|
// src/sync/publish-draft-components-in-page-before-save.ts
|
|
5128
|
-
var
|
|
5222
|
+
var import_editor_documents13 = require("@elementor/editor-documents");
|
|
5129
5223
|
async function publishDraftComponentsInPageBeforeSave({ status, elements }) {
|
|
5130
5224
|
if (status !== "publish") {
|
|
5131
5225
|
return;
|
|
5132
5226
|
}
|
|
5133
5227
|
const documents = await getComponentDocuments(elements);
|
|
5134
|
-
const draftIds = [...documents.values()].filter(
|
|
5228
|
+
const draftIds = [...documents.values()].filter(import_editor_documents13.isDocumentDirty).map((document) => document.id);
|
|
5135
5229
|
if (draftIds.length === 0) {
|
|
5136
5230
|
return;
|
|
5137
5231
|
}
|
|
5138
5232
|
await apiClient.updateStatuses(draftIds, "publish");
|
|
5139
|
-
draftIds.forEach((id2) =>
|
|
5233
|
+
draftIds.forEach((id2) => (0, import_editor_documents13.invalidateDocumentData)(id2));
|
|
5140
5234
|
}
|
|
5141
5235
|
|
|
5142
5236
|
// src/sync/set-component-overridable-props-settings-before-save.ts
|
|
5143
|
-
var
|
|
5237
|
+
var import_store74 = require("@elementor/store");
|
|
5144
5238
|
var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
5145
5239
|
container
|
|
5146
5240
|
}) => {
|
|
@@ -5148,7 +5242,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
5148
5242
|
if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
|
|
5149
5243
|
return;
|
|
5150
5244
|
}
|
|
5151
|
-
const overridableProps = selectOverridableProps((0,
|
|
5245
|
+
const overridableProps = selectOverridableProps((0, import_store74.__getState)(), currentDocument.id);
|
|
5152
5246
|
if (overridableProps) {
|
|
5153
5247
|
container.settings.set("overridable_props", overridableProps);
|
|
5154
5248
|
}
|
|
@@ -5156,7 +5250,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
5156
5250
|
|
|
5157
5251
|
// src/sync/update-archived-component-before-save.ts
|
|
5158
5252
|
var import_editor_notifications5 = require("@elementor/editor-notifications");
|
|
5159
|
-
var
|
|
5253
|
+
var import_store76 = require("@elementor/store");
|
|
5160
5254
|
var failedNotification = (message) => ({
|
|
5161
5255
|
type: "error",
|
|
5162
5256
|
message: `Failed to archive components: ${message}`,
|
|
@@ -5164,7 +5258,7 @@ var failedNotification = (message) => ({
|
|
|
5164
5258
|
});
|
|
5165
5259
|
var updateArchivedComponentBeforeSave = async (status) => {
|
|
5166
5260
|
try {
|
|
5167
|
-
const archivedComponents = selectArchivedThisSession((0,
|
|
5261
|
+
const archivedComponents = selectArchivedThisSession((0, import_store76.__getState)());
|
|
5168
5262
|
if (!archivedComponents.length) {
|
|
5169
5263
|
return;
|
|
5170
5264
|
}
|
|
@@ -5179,15 +5273,15 @@ var updateArchivedComponentBeforeSave = async (status) => {
|
|
|
5179
5273
|
};
|
|
5180
5274
|
|
|
5181
5275
|
// src/sync/update-component-title-before-save.ts
|
|
5182
|
-
var
|
|
5276
|
+
var import_store78 = require("@elementor/store");
|
|
5183
5277
|
var updateComponentTitleBeforeSave = async (status) => {
|
|
5184
|
-
const updatedComponentNames = selectUpdatedComponentNames((0,
|
|
5278
|
+
const updatedComponentNames = selectUpdatedComponentNames((0, import_store78.__getState)());
|
|
5185
5279
|
if (!updatedComponentNames.length) {
|
|
5186
5280
|
return;
|
|
5187
5281
|
}
|
|
5188
5282
|
const result = await apiClient.updateComponentTitle(updatedComponentNames, status);
|
|
5189
5283
|
if (result.failedIds.length === 0) {
|
|
5190
|
-
(0,
|
|
5284
|
+
(0, import_store78.__dispatch)(slice.actions.cleanUpdatedComponentNames());
|
|
5191
5285
|
}
|
|
5192
5286
|
};
|
|
5193
5287
|
|
|
@@ -5214,11 +5308,11 @@ var updateExistingComponentsBeforeSave = async ({
|
|
|
5214
5308
|
|
|
5215
5309
|
// src/sync/cleanup-overridable-props-on-delete.ts
|
|
5216
5310
|
var import_editor_elements21 = require("@elementor/editor-elements");
|
|
5217
|
-
var
|
|
5218
|
-
var
|
|
5311
|
+
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
5312
|
+
var import_store80 = require("@elementor/store");
|
|
5219
5313
|
function initCleanupOverridablePropsOnDelete() {
|
|
5220
|
-
(0,
|
|
5221
|
-
const state = (0,
|
|
5314
|
+
(0, import_editor_v1_adapters8.registerDataHook)("dependency", "document/elements/delete", (args) => {
|
|
5315
|
+
const state = (0, import_store80.__getState)();
|
|
5222
5316
|
if (!state) {
|
|
5223
5317
|
return true;
|
|
5224
5318
|
}
|
|
@@ -5249,7 +5343,7 @@ function initCleanupOverridablePropsOnDelete() {
|
|
|
5249
5343
|
for (const propKey of propKeysToDelete) {
|
|
5250
5344
|
updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
|
|
5251
5345
|
}
|
|
5252
|
-
(0,
|
|
5346
|
+
(0, import_store80.__dispatch)(
|
|
5253
5347
|
slice.actions.setOverridableProps({
|
|
5254
5348
|
componentId: currentComponentId,
|
|
5255
5349
|
overridableProps: {
|
|
@@ -5269,14 +5363,14 @@ function collectDeletedElementIds(containers) {
|
|
|
5269
5363
|
|
|
5270
5364
|
// src/sync/handle-component-edit-mode-container.ts
|
|
5271
5365
|
var import_editor_elements22 = require("@elementor/editor-elements");
|
|
5272
|
-
var
|
|
5366
|
+
var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
|
|
5273
5367
|
var V4_DEFAULT_CONTAINER_TYPE = "e-flexbox";
|
|
5274
5368
|
function initHandleComponentEditModeContainer() {
|
|
5275
5369
|
initRedirectDropIntoComponent();
|
|
5276
5370
|
initHandleTopLevelElementDelete();
|
|
5277
5371
|
}
|
|
5278
5372
|
function initHandleTopLevelElementDelete() {
|
|
5279
|
-
(0,
|
|
5373
|
+
(0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/delete", (args) => {
|
|
5280
5374
|
if (!isEditingComponent()) {
|
|
5281
5375
|
return;
|
|
5282
5376
|
}
|
|
@@ -5294,7 +5388,7 @@ function initHandleTopLevelElementDelete() {
|
|
|
5294
5388
|
});
|
|
5295
5389
|
}
|
|
5296
5390
|
function initRedirectDropIntoComponent() {
|
|
5297
|
-
(0,
|
|
5391
|
+
(0, import_editor_v1_adapters9.registerDataHook)("dependency", "preview/drop", (args) => {
|
|
5298
5392
|
if (!isEditingComponent()) {
|
|
5299
5393
|
return true;
|
|
5300
5394
|
}
|
|
@@ -5340,12 +5434,12 @@ function isComponent(container) {
|
|
|
5340
5434
|
}
|
|
5341
5435
|
|
|
5342
5436
|
// src/sync/load-component-data-after-instance-added.ts
|
|
5343
|
-
var
|
|
5437
|
+
var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
|
|
5344
5438
|
function initLoadComponentDataAfterInstanceAdded() {
|
|
5345
|
-
(0,
|
|
5439
|
+
(0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/paste", (_args, result) => {
|
|
5346
5440
|
load(result);
|
|
5347
5441
|
});
|
|
5348
|
-
(0,
|
|
5442
|
+
(0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/import", (_args, result) => {
|
|
5349
5443
|
load(result);
|
|
5350
5444
|
});
|
|
5351
5445
|
}
|
|
@@ -5354,95 +5448,16 @@ function load(result) {
|
|
|
5354
5448
|
loadComponentsAssets(containers.map((container) => container.model.toJSON()));
|
|
5355
5449
|
}
|
|
5356
5450
|
|
|
5357
|
-
// src/sync/regenerate-override-keys.ts
|
|
5358
|
-
var import_editor_elements23 = require("@elementor/editor-elements");
|
|
5359
|
-
var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
|
|
5360
|
-
var import_utils10 = require("@elementor/utils");
|
|
5361
|
-
function initRegenerateOverrideKeys() {
|
|
5362
|
-
(0, import_editor_v1_adapters12.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
|
|
5363
|
-
regenerateOverrideKeysForContainers(result);
|
|
5364
|
-
});
|
|
5365
|
-
(0, import_editor_v1_adapters12.registerDataHook)("after", "document/elements/paste", (_args, result) => {
|
|
5366
|
-
regenerateOverrideKeysForContainers(result);
|
|
5367
|
-
});
|
|
5368
|
-
(0, import_editor_v1_adapters12.registerDataHook)("after", "document/elements/import", (_args, result) => {
|
|
5369
|
-
regenerateOverrideKeysForContainers(result);
|
|
5370
|
-
});
|
|
5371
|
-
}
|
|
5372
|
-
function regenerateOverrideKeysForContainers(result) {
|
|
5373
|
-
const containers = Array.isArray(result) ? result : [result];
|
|
5374
|
-
containers.forEach((container) => {
|
|
5375
|
-
regenerateOverrideKeysRecursive(container.id);
|
|
5376
|
-
});
|
|
5377
|
-
}
|
|
5378
|
-
function regenerateOverrideKeysRecursive(elementId) {
|
|
5379
|
-
const container = (0, import_editor_elements23.getContainer)(elementId);
|
|
5380
|
-
if (!container) {
|
|
5381
|
-
return;
|
|
5382
|
-
}
|
|
5383
|
-
(0, import_editor_elements23.getAllDescendants)(container).forEach(regenerateOverrideKeys);
|
|
5384
|
-
}
|
|
5385
|
-
function regenerateOverrideKeys(element) {
|
|
5386
|
-
if (!isComponentInstance(element.model.toJSON())) {
|
|
5387
|
-
return;
|
|
5388
|
-
}
|
|
5389
|
-
const settings = element.settings?.toJSON() ?? {};
|
|
5390
|
-
if (!hasOverrides(settings)) {
|
|
5391
|
-
return;
|
|
5392
|
-
}
|
|
5393
|
-
const componentInstance = settings.component_instance;
|
|
5394
|
-
const overrides = componentInstance.value.overrides;
|
|
5395
|
-
const newOverrides = overrides.value.map((override) => {
|
|
5396
|
-
if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
|
|
5397
|
-
return override;
|
|
5398
|
-
}
|
|
5399
|
-
return {
|
|
5400
|
-
...override,
|
|
5401
|
-
value: {
|
|
5402
|
-
...override.value,
|
|
5403
|
-
override_key: (0, import_utils10.generateUniqueId)("prop")
|
|
5404
|
-
}
|
|
5405
|
-
};
|
|
5406
|
-
});
|
|
5407
|
-
const newComponentInstance = {
|
|
5408
|
-
...componentInstance,
|
|
5409
|
-
value: {
|
|
5410
|
-
...componentInstance.value,
|
|
5411
|
-
overrides: {
|
|
5412
|
-
...overrides,
|
|
5413
|
-
value: newOverrides
|
|
5414
|
-
}
|
|
5415
|
-
}
|
|
5416
|
-
};
|
|
5417
|
-
(0, import_editor_elements23.updateElementSettings)({
|
|
5418
|
-
id: element.id,
|
|
5419
|
-
props: { component_instance: newComponentInstance },
|
|
5420
|
-
withHistory: false
|
|
5421
|
-
});
|
|
5422
|
-
}
|
|
5423
|
-
function hasOverrides(settings) {
|
|
5424
|
-
if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
|
|
5425
|
-
return false;
|
|
5426
|
-
}
|
|
5427
|
-
const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
|
|
5428
|
-
const overrides = componentInstance?.overrides;
|
|
5429
|
-
if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
|
|
5430
|
-
return false;
|
|
5431
|
-
}
|
|
5432
|
-
const overridesValue = overrides?.value;
|
|
5433
|
-
return !!overridesValue?.length;
|
|
5434
|
-
}
|
|
5435
|
-
|
|
5436
5451
|
// src/sync/revert-overridables-on-copy-or-duplicate.ts
|
|
5437
|
-
var
|
|
5452
|
+
var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
|
|
5438
5453
|
function initRevertOverridablesOnCopyOrDuplicate() {
|
|
5439
|
-
(0,
|
|
5454
|
+
(0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
|
|
5440
5455
|
if (!isEditingComponent()) {
|
|
5441
5456
|
return;
|
|
5442
5457
|
}
|
|
5443
5458
|
revertOverridablesForDuplicatedElements(result);
|
|
5444
5459
|
});
|
|
5445
|
-
(0,
|
|
5460
|
+
(0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/copy", (args) => {
|
|
5446
5461
|
if (!isEditingComponent()) {
|
|
5447
5462
|
return;
|
|
5448
5463
|
}
|
|
@@ -5474,20 +5489,20 @@ function revertOverridablesInStorage(storageKey) {
|
|
|
5474
5489
|
// src/init.ts
|
|
5475
5490
|
function init() {
|
|
5476
5491
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
5477
|
-
(0,
|
|
5492
|
+
(0, import_store82.__registerSlice)(slice);
|
|
5478
5493
|
(0, import_editor_panels5.__registerPanel)(panel);
|
|
5479
5494
|
(0, import_editor_canvas8.registerElementType)(
|
|
5480
5495
|
COMPONENT_WIDGET_TYPE,
|
|
5481
5496
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|
|
5482
5497
|
);
|
|
5483
|
-
(0,
|
|
5484
|
-
const document = (0,
|
|
5498
|
+
(0, import_editor_v1_adapters12.registerDataHook)("dependency", "editor/documents/close", (args) => {
|
|
5499
|
+
const document = (0, import_editor_documents14.getV1CurrentDocument)();
|
|
5485
5500
|
if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
|
|
5486
5501
|
args.mode = "autosave";
|
|
5487
5502
|
}
|
|
5488
5503
|
return true;
|
|
5489
5504
|
});
|
|
5490
|
-
(0,
|
|
5505
|
+
(0, import_editor_v1_adapters12.registerDataHook)("after", "preview/drop", onElementDrop);
|
|
5491
5506
|
window.elementorCommon.__beforeSave = beforeSave;
|
|
5492
5507
|
(0, import_editor_elements_panel.injectTab)({
|
|
5493
5508
|
id: "components",
|
|
@@ -5511,8 +5526,8 @@ function init() {
|
|
|
5511
5526
|
id: "component-panel-header",
|
|
5512
5527
|
component: ComponentPanelHeader
|
|
5513
5528
|
});
|
|
5514
|
-
(0,
|
|
5515
|
-
const { id: id2, config } = (0,
|
|
5529
|
+
(0, import_editor_v1_adapters12.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
5530
|
+
const { id: id2, config } = (0, import_editor_documents14.getV1CurrentDocument)();
|
|
5516
5531
|
if (id2) {
|
|
5517
5532
|
removeComponentStyles(id2);
|
|
5518
5533
|
}
|
|
@@ -5537,7 +5552,6 @@ function init() {
|
|
|
5537
5552
|
import_editor_canvas8.settingsTransformersRegistry.register("component-instance", componentInstanceTransformer);
|
|
5538
5553
|
import_editor_canvas8.settingsTransformersRegistry.register("overridable", componentOverridableTransformer);
|
|
5539
5554
|
import_editor_canvas8.settingsTransformersRegistry.register("override", componentOverrideTransformer);
|
|
5540
|
-
initRegenerateOverrideKeys();
|
|
5541
5555
|
initCleanupOverridablePropsOnDelete();
|
|
5542
5556
|
initMcp();
|
|
5543
5557
|
initCircularNestingPrevention();
|