@elementor/editor-components 4.3.0-1034 → 4.3.0-1036
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 +70 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +65 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +23 -23
- package/src/create-component-type.ts +6 -1
- package/src/utils/reconcile-component-instance-elements.ts +108 -0
package/dist/index.js
CHANGED
|
@@ -2650,7 +2650,7 @@ var import_editor_canvas5 = require("@elementor/editor-canvas");
|
|
|
2650
2650
|
var import_editor_documents4 = require("@elementor/editor-documents");
|
|
2651
2651
|
var import_editor_notifications2 = require("@elementor/editor-notifications");
|
|
2652
2652
|
var import_store23 = require("@elementor/store");
|
|
2653
|
-
var
|
|
2653
|
+
var import_utils6 = require("@elementor/utils");
|
|
2654
2654
|
var import_i18n13 = require("@wordpress/i18n");
|
|
2655
2655
|
|
|
2656
2656
|
// src/utils/format-component-elements-id.ts
|
|
@@ -2669,9 +2669,66 @@ function formatComponentElementsId(elements, path) {
|
|
|
2669
2669
|
});
|
|
2670
2670
|
}
|
|
2671
2671
|
|
|
2672
|
+
// src/utils/reconcile-component-instance-elements.ts
|
|
2673
|
+
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
2674
|
+
var import_utils5 = require("@elementor/utils");
|
|
2675
|
+
var ELEMENT_ID_LENGTH2 = 7;
|
|
2676
|
+
function overridesRecordToMapping(overrides) {
|
|
2677
|
+
const mapping = {};
|
|
2678
|
+
for (const [key, value] of Object.entries(overrides)) {
|
|
2679
|
+
mapping[key] = { value };
|
|
2680
|
+
}
|
|
2681
|
+
return mapping;
|
|
2682
|
+
}
|
|
2683
|
+
function getElementConfig(element) {
|
|
2684
|
+
const type = element.elType === "widget" ? element.widgetType : element.elType;
|
|
2685
|
+
if (!type) {
|
|
2686
|
+
return void 0;
|
|
2687
|
+
}
|
|
2688
|
+
return (0, import_editor_elements8.getWidgetsCache)()?.[type];
|
|
2689
|
+
}
|
|
2690
|
+
function deriveIds(element, seed) {
|
|
2691
|
+
const id = (0, import_utils5.hashString)(seed, ELEMENT_ID_LENGTH2);
|
|
2692
|
+
return {
|
|
2693
|
+
...element,
|
|
2694
|
+
id,
|
|
2695
|
+
elements: (element.elements ?? []).map((child, index) => deriveIds(child, `${id}_${index}`))
|
|
2696
|
+
};
|
|
2697
|
+
}
|
|
2698
|
+
function reconcileElementTree(element, overridesMapping) {
|
|
2699
|
+
const elementConfig = getElementConfig(element);
|
|
2700
|
+
const withOverrides = applyOverridesToSettings(element.settings ?? {}, overridesMapping);
|
|
2701
|
+
const effectiveSettings = unwrapOverridableSettings(withOverrides);
|
|
2702
|
+
const originalChildren = element.elements ?? [];
|
|
2703
|
+
const originalChildIds = new Set(originalChildren.map((child) => child.id));
|
|
2704
|
+
const attributes = {
|
|
2705
|
+
elements: [...originalChildren],
|
|
2706
|
+
settings: effectiveSettings
|
|
2707
|
+
};
|
|
2708
|
+
if (elementConfig?.children_dependencies?.length) {
|
|
2709
|
+
(0, import_editor_elements8.reconcileInitialChildren)({
|
|
2710
|
+
elementId: element.id,
|
|
2711
|
+
elementConfig,
|
|
2712
|
+
attributes
|
|
2713
|
+
});
|
|
2714
|
+
}
|
|
2715
|
+
const reconciledChildren = (attributes.elements ?? []).map(
|
|
2716
|
+
(child) => originalChildIds.has(child.id) ? child : deriveIds(child, `${element.id}_${child.elType}`)
|
|
2717
|
+
).map((child) => reconcileElementTree(child, overridesMapping));
|
|
2718
|
+
return {
|
|
2719
|
+
...element,
|
|
2720
|
+
settings: effectiveSettings,
|
|
2721
|
+
elements: reconciledChildren
|
|
2722
|
+
};
|
|
2723
|
+
}
|
|
2724
|
+
function reconcileComponentInstanceElements(elements, overrides = {}) {
|
|
2725
|
+
const overridesMapping = overridesRecordToMapping(overrides);
|
|
2726
|
+
return elements.map((element) => reconcileElementTree(element, overridesMapping));
|
|
2727
|
+
}
|
|
2728
|
+
|
|
2672
2729
|
// src/utils/switch-to-component.ts
|
|
2673
2730
|
var import_editor_documents3 = require("@elementor/editor-documents");
|
|
2674
|
-
var
|
|
2731
|
+
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
2675
2732
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
2676
2733
|
async function switchToComponent(componentId, componentInstanceId, element) {
|
|
2677
2734
|
const selector = getSelector(element, componentInstanceId);
|
|
@@ -2683,10 +2740,10 @@ async function switchToComponent(componentId, componentInstanceId, element) {
|
|
|
2683
2740
|
shouldScroll: false
|
|
2684
2741
|
});
|
|
2685
2742
|
await loadComponentsOverridableProps([componentId], { force: true });
|
|
2686
|
-
const currentDocumentContainer = (0,
|
|
2743
|
+
const currentDocumentContainer = (0, import_editor_elements9.getCurrentDocumentContainer)();
|
|
2687
2744
|
const topLevelElement = currentDocumentContainer?.children?.[0];
|
|
2688
2745
|
if (topLevelElement) {
|
|
2689
|
-
(0,
|
|
2746
|
+
(0, import_editor_elements9.selectElement)(topLevelElement.id);
|
|
2690
2747
|
expandNavigator();
|
|
2691
2748
|
}
|
|
2692
2749
|
}
|
|
@@ -2845,7 +2902,11 @@ function createComponentView(options) {
|
|
|
2845
2902
|
};
|
|
2846
2903
|
const instanceId = this.model.get("id");
|
|
2847
2904
|
const elements = componentInstance.elements ?? [];
|
|
2848
|
-
const
|
|
2905
|
+
const reconciledElements = reconcileComponentInstanceElements(
|
|
2906
|
+
elements,
|
|
2907
|
+
componentInstance.overrides ?? {}
|
|
2908
|
+
);
|
|
2909
|
+
const formattedElements = formatComponentElementsId(reconciledElements, [instanceId]);
|
|
2849
2910
|
this.collection = legacyWindow.elementor.createBackboneElementsCollection(formattedElements);
|
|
2850
2911
|
this.collection.models.forEach(setInactiveRecursively);
|
|
2851
2912
|
settings.component_instance = "<template data-children-placeholder></template>";
|
|
@@ -2881,7 +2942,7 @@ function createComponentView(options) {
|
|
|
2881
2942
|
}
|
|
2882
2943
|
_getContextMenuConfig() {
|
|
2883
2944
|
const isAdministrator = isUserAdministrator();
|
|
2884
|
-
const hasPro = (0,
|
|
2945
|
+
const hasPro = (0, import_utils6.hasProInstalled)();
|
|
2885
2946
|
const isOutdated = isProOutdatedForComponents();
|
|
2886
2947
|
const showPromoBadge = !hasPro && !isOutdated;
|
|
2887
2948
|
const badgeClass = "elementor-context-menu-list__item__shortcut__promotion-badge";
|
|
@@ -2975,7 +3036,7 @@ function createComponentView(options) {
|
|
|
2975
3036
|
notifyComponentEditUpdate();
|
|
2976
3037
|
return;
|
|
2977
3038
|
}
|
|
2978
|
-
if (!(0,
|
|
3039
|
+
if (!(0, import_utils6.hasProInstalled)()) {
|
|
2979
3040
|
notifyComponentEditUpgrade();
|
|
2980
3041
|
return;
|
|
2981
3042
|
}
|
|
@@ -3072,7 +3133,7 @@ function PopulateStore() {
|
|
|
3072
3133
|
}
|
|
3073
3134
|
|
|
3074
3135
|
// src/prevent-circular-nesting.ts
|
|
3075
|
-
var
|
|
3136
|
+
var import_editor_elements10 = require("@elementor/editor-elements");
|
|
3076
3137
|
var import_editor_notifications3 = require("@elementor/editor-notifications");
|
|
3077
3138
|
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
3078
3139
|
var import_store26 = require("@elementor/store");
|
|
@@ -3167,7 +3228,7 @@ function blockCircularMove(args) {
|
|
|
3167
3228
|
if (!container) {
|
|
3168
3229
|
return false;
|
|
3169
3230
|
}
|
|
3170
|
-
const allElements = (0,
|
|
3231
|
+
const allElements = (0, import_editor_elements10.getAllDescendants)(container);
|
|
3171
3232
|
return allElements.some((element) => {
|
|
3172
3233
|
const componentId = extractComponentIdFromContainer(element);
|
|
3173
3234
|
if (componentId === null) {
|