@elementor/editor-components 3.35.0-460 → 3.35.0-461
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 +191 -175
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +184 -168
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -22
- package/src/init.ts +5 -2
- package/src/sync/load-component-data-after-instance-added.ts +20 -0
- /package/src/{hooks → sync}/cleanup-overridable-props-on-delete.ts +0 -0
- /package/src/{hooks → sync}/regenerate-override-keys.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ 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_panels4 = require("@elementor/editor-panels");
|
|
44
44
|
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
45
|
-
var
|
|
45
|
+
var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
|
|
46
46
|
var import_store80 = require("@elementor/store");
|
|
47
47
|
var import_i18n30 = require("@wordpress/i18n");
|
|
48
48
|
|
|
@@ -4255,150 +4255,16 @@ function isPropAllowed(propType) {
|
|
|
4255
4255
|
return propType.meta.overridable !== false;
|
|
4256
4256
|
}
|
|
4257
4257
|
|
|
4258
|
-
// src/hooks/cleanup-overridable-props-on-delete.ts
|
|
4259
|
-
var import_editor_elements17 = require("@elementor/editor-elements");
|
|
4260
|
-
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
4261
|
-
var import_store63 = require("@elementor/store");
|
|
4262
|
-
function initCleanupOverridablePropsOnDelete() {
|
|
4263
|
-
(0, import_editor_v1_adapters8.registerDataHook)("dependency", "document/elements/delete", (args) => {
|
|
4264
|
-
const state = (0, import_store63.__getState)();
|
|
4265
|
-
if (!state) {
|
|
4266
|
-
return true;
|
|
4267
|
-
}
|
|
4268
|
-
const currentComponentId = selectCurrentComponentId(state);
|
|
4269
|
-
if (!currentComponentId) {
|
|
4270
|
-
return true;
|
|
4271
|
-
}
|
|
4272
|
-
const overridableProps = selectOverridableProps(state, currentComponentId);
|
|
4273
|
-
if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
|
|
4274
|
-
return true;
|
|
4275
|
-
}
|
|
4276
|
-
const containers = args.containers ?? (args.container ? [args.container] : []);
|
|
4277
|
-
if (containers.length === 0) {
|
|
4278
|
-
return true;
|
|
4279
|
-
}
|
|
4280
|
-
const deletedElementIds = collectDeletedElementIds(containers);
|
|
4281
|
-
if (deletedElementIds.length === 0) {
|
|
4282
|
-
return true;
|
|
4283
|
-
}
|
|
4284
|
-
const propKeysToDelete = Object.entries(overridableProps.props).filter(([, prop]) => deletedElementIds.includes(prop.elementId)).map(([propKey]) => propKey);
|
|
4285
|
-
if (propKeysToDelete.length === 0) {
|
|
4286
|
-
return true;
|
|
4287
|
-
}
|
|
4288
|
-
const remainingProps = Object.fromEntries(
|
|
4289
|
-
Object.entries(overridableProps.props).filter(([propKey]) => !propKeysToDelete.includes(propKey))
|
|
4290
|
-
);
|
|
4291
|
-
let updatedGroups = overridableProps.groups;
|
|
4292
|
-
for (const propKey of propKeysToDelete) {
|
|
4293
|
-
updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
|
|
4294
|
-
}
|
|
4295
|
-
(0, import_store63.__dispatch)(
|
|
4296
|
-
slice.actions.setOverridableProps({
|
|
4297
|
-
componentId: currentComponentId,
|
|
4298
|
-
overridableProps: {
|
|
4299
|
-
...overridableProps,
|
|
4300
|
-
props: remainingProps,
|
|
4301
|
-
groups: updatedGroups
|
|
4302
|
-
}
|
|
4303
|
-
})
|
|
4304
|
-
);
|
|
4305
|
-
return true;
|
|
4306
|
-
});
|
|
4307
|
-
}
|
|
4308
|
-
function collectDeletedElementIds(containers) {
|
|
4309
|
-
const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements17.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
|
|
4310
|
-
return elementIds;
|
|
4311
|
-
}
|
|
4312
|
-
|
|
4313
|
-
// src/hooks/regenerate-override-keys.ts
|
|
4314
|
-
var import_editor_elements18 = require("@elementor/editor-elements");
|
|
4315
|
-
var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
|
|
4316
|
-
var import_utils9 = require("@elementor/utils");
|
|
4317
|
-
function initRegenerateOverrideKeys() {
|
|
4318
|
-
(0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
|
|
4319
|
-
regenerateOverrideKeysForContainers(result);
|
|
4320
|
-
});
|
|
4321
|
-
(0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/paste", (_args, result) => {
|
|
4322
|
-
regenerateOverrideKeysForContainers(result);
|
|
4323
|
-
});
|
|
4324
|
-
(0, import_editor_v1_adapters9.registerDataHook)("after", "document/elements/import", (_args, result) => {
|
|
4325
|
-
regenerateOverrideKeysForContainers(result);
|
|
4326
|
-
});
|
|
4327
|
-
}
|
|
4328
|
-
function regenerateOverrideKeysForContainers(result) {
|
|
4329
|
-
const containers = Array.isArray(result) ? result : [result];
|
|
4330
|
-
containers.forEach((container) => {
|
|
4331
|
-
regenerateOverrideKeysRecursive(container.id);
|
|
4332
|
-
});
|
|
4333
|
-
}
|
|
4334
|
-
function regenerateOverrideKeysRecursive(elementId) {
|
|
4335
|
-
const container = (0, import_editor_elements18.getContainer)(elementId);
|
|
4336
|
-
if (!container) {
|
|
4337
|
-
return;
|
|
4338
|
-
}
|
|
4339
|
-
(0, import_editor_elements18.getAllDescendants)(container).forEach(regenerateOverrideKeys);
|
|
4340
|
-
}
|
|
4341
|
-
function regenerateOverrideKeys(element) {
|
|
4342
|
-
if (!isComponentInstance(element.model.toJSON())) {
|
|
4343
|
-
return;
|
|
4344
|
-
}
|
|
4345
|
-
const settings = element.settings?.toJSON() ?? {};
|
|
4346
|
-
if (!hasOverrides(settings)) {
|
|
4347
|
-
return;
|
|
4348
|
-
}
|
|
4349
|
-
const componentInstance = settings.component_instance;
|
|
4350
|
-
const overrides = componentInstance.value.overrides;
|
|
4351
|
-
const newOverrides = overrides.value.map((override) => {
|
|
4352
|
-
if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
|
|
4353
|
-
return override;
|
|
4354
|
-
}
|
|
4355
|
-
return {
|
|
4356
|
-
...override,
|
|
4357
|
-
value: {
|
|
4358
|
-
...override.value,
|
|
4359
|
-
override_key: (0, import_utils9.generateUniqueId)("prop")
|
|
4360
|
-
}
|
|
4361
|
-
};
|
|
4362
|
-
});
|
|
4363
|
-
const newComponentInstance = {
|
|
4364
|
-
...componentInstance,
|
|
4365
|
-
value: {
|
|
4366
|
-
...componentInstance.value,
|
|
4367
|
-
overrides: {
|
|
4368
|
-
...overrides,
|
|
4369
|
-
value: newOverrides
|
|
4370
|
-
}
|
|
4371
|
-
}
|
|
4372
|
-
};
|
|
4373
|
-
(0, import_editor_elements18.updateElementSettings)({
|
|
4374
|
-
id: element.id,
|
|
4375
|
-
props: { component_instance: newComponentInstance },
|
|
4376
|
-
withHistory: false
|
|
4377
|
-
});
|
|
4378
|
-
}
|
|
4379
|
-
function hasOverrides(settings) {
|
|
4380
|
-
if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
|
|
4381
|
-
return false;
|
|
4382
|
-
}
|
|
4383
|
-
const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
|
|
4384
|
-
const overrides = componentInstance?.overrides;
|
|
4385
|
-
if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
|
|
4386
|
-
return false;
|
|
4387
|
-
}
|
|
4388
|
-
const overridesValue = overrides?.value;
|
|
4389
|
-
return !!overridesValue?.length;
|
|
4390
|
-
}
|
|
4391
|
-
|
|
4392
4258
|
// src/mcp/index.ts
|
|
4393
4259
|
var import_editor_mcp3 = require("@elementor/editor-mcp");
|
|
4394
4260
|
|
|
4395
4261
|
// src/mcp/save-as-component-tool.ts
|
|
4396
4262
|
var import_editor_canvas7 = require("@elementor/editor-canvas");
|
|
4397
|
-
var
|
|
4263
|
+
var import_editor_elements17 = require("@elementor/editor-elements");
|
|
4398
4264
|
var import_editor_mcp2 = require("@elementor/editor-mcp");
|
|
4399
4265
|
var import_http_client2 = require("@elementor/http-client");
|
|
4400
4266
|
var import_schema6 = require("@elementor/schema");
|
|
4401
|
-
var
|
|
4267
|
+
var import_utils9 = require("@elementor/utils");
|
|
4402
4268
|
var InputSchema = {
|
|
4403
4269
|
element_id: import_schema6.z.string().describe(
|
|
4404
4270
|
'The unique identifier of the element to save as a component. Use the "list-elements" tool to find available element IDs in the current document.'
|
|
@@ -4432,7 +4298,7 @@ var ERROR_MESSAGES3 = {
|
|
|
4432
4298
|
var handleSaveAsComponent = async (params) => {
|
|
4433
4299
|
const { element_id: elementId, component_name: componentName, overridable_props: overridablePropsInput } = params;
|
|
4434
4300
|
const validElementTypes = getValidElementTypes();
|
|
4435
|
-
const container = (0,
|
|
4301
|
+
const container = (0, import_editor_elements17.getContainer)(elementId);
|
|
4436
4302
|
if (!container) {
|
|
4437
4303
|
throw new Error(ERROR_MESSAGES3.ELEMENT_NOT_FOUND);
|
|
4438
4304
|
}
|
|
@@ -4448,7 +4314,7 @@ var handleSaveAsComponent = async (params) => {
|
|
|
4448
4314
|
if (overridableProps) {
|
|
4449
4315
|
updateElementDataWithOverridableProps(element, overridableProps);
|
|
4450
4316
|
}
|
|
4451
|
-
const uid = (0,
|
|
4317
|
+
const uid = (0, import_utils9.generateUniqueId)("component");
|
|
4452
4318
|
try {
|
|
4453
4319
|
await apiClient.validate({
|
|
4454
4320
|
items: [
|
|
@@ -4470,7 +4336,7 @@ var handleSaveAsComponent = async (params) => {
|
|
|
4470
4336
|
};
|
|
4471
4337
|
function enrichOverridableProps(input, rootElement) {
|
|
4472
4338
|
const enrichedProps = {};
|
|
4473
|
-
const defaultGroupId = (0,
|
|
4339
|
+
const defaultGroupId = (0, import_utils9.generateUniqueId)("group");
|
|
4474
4340
|
Object.entries(input.props).forEach(([, prop]) => {
|
|
4475
4341
|
const { elementId, propKey, label } = prop;
|
|
4476
4342
|
const element = findElementById(rootElement, elementId);
|
|
@@ -4479,7 +4345,7 @@ function enrichOverridableProps(input, rootElement) {
|
|
|
4479
4345
|
}
|
|
4480
4346
|
const elType = element.elType;
|
|
4481
4347
|
const widgetType = element.widgetType || element.elType;
|
|
4482
|
-
const elementType = (0,
|
|
4348
|
+
const elementType = (0, import_editor_elements17.getElementType)(widgetType);
|
|
4483
4349
|
if (!elementType) {
|
|
4484
4350
|
throw new Error(
|
|
4485
4351
|
`Element type "${widgetType}" is not atomic or does not have a settings schema. Cannot expose property "${propKey}" for element "${elementId}".`
|
|
@@ -4491,7 +4357,7 @@ function enrichOverridableProps(input, rootElement) {
|
|
|
4491
4357
|
`Property "${propKey}" does not exist in element "${elementId}" (type: ${widgetType}). Available properties: ${availableProps}`
|
|
4492
4358
|
);
|
|
4493
4359
|
}
|
|
4494
|
-
const overrideKey = (0,
|
|
4360
|
+
const overrideKey = (0, import_utils9.generateUniqueId)("prop");
|
|
4495
4361
|
const originValue = element.settings?.[propKey] ? element.settings[propKey] : elementType.propsSchema[propKey].default ?? null;
|
|
4496
4362
|
enrichedProps[overrideKey] = {
|
|
4497
4363
|
overrideKey,
|
|
@@ -4548,7 +4414,7 @@ function findElementById(root, targetId) {
|
|
|
4548
4414
|
return null;
|
|
4549
4415
|
}
|
|
4550
4416
|
function getValidElementTypes() {
|
|
4551
|
-
const types = (0,
|
|
4417
|
+
const types = (0, import_editor_elements17.getWidgetsCache)();
|
|
4552
4418
|
if (!types) {
|
|
4553
4419
|
return [];
|
|
4554
4420
|
}
|
|
@@ -4726,19 +4592,19 @@ function initMcp() {
|
|
|
4726
4592
|
|
|
4727
4593
|
// src/populate-store.ts
|
|
4728
4594
|
var import_react18 = require("react");
|
|
4729
|
-
var
|
|
4595
|
+
var import_store63 = require("@elementor/store");
|
|
4730
4596
|
function PopulateStore() {
|
|
4731
4597
|
(0, import_react18.useEffect)(() => {
|
|
4732
|
-
(0,
|
|
4598
|
+
(0, import_store63.__dispatch)(loadComponents());
|
|
4733
4599
|
}, []);
|
|
4734
4600
|
return null;
|
|
4735
4601
|
}
|
|
4736
4602
|
|
|
4737
4603
|
// src/prevent-circular-nesting.ts
|
|
4738
|
-
var
|
|
4604
|
+
var import_editor_elements18 = require("@elementor/editor-elements");
|
|
4739
4605
|
var import_editor_notifications4 = require("@elementor/editor-notifications");
|
|
4740
|
-
var
|
|
4741
|
-
var
|
|
4606
|
+
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
4607
|
+
var import_store64 = require("@elementor/store");
|
|
4742
4608
|
var import_i18n29 = require("@wordpress/i18n");
|
|
4743
4609
|
var COMPONENT_TYPE = "e-component";
|
|
4744
4610
|
var COMPONENT_CIRCULAR_NESTING_ALERT = {
|
|
@@ -4747,15 +4613,15 @@ var COMPONENT_CIRCULAR_NESTING_ALERT = {
|
|
|
4747
4613
|
id: "circular-component-nesting-blocked"
|
|
4748
4614
|
};
|
|
4749
4615
|
function initCircularNestingPrevention() {
|
|
4750
|
-
(0,
|
|
4616
|
+
(0, import_editor_v1_adapters8.blockCommand)({
|
|
4751
4617
|
command: "document/elements/create",
|
|
4752
4618
|
condition: blockCircularCreate
|
|
4753
4619
|
});
|
|
4754
|
-
(0,
|
|
4620
|
+
(0, import_editor_v1_adapters8.blockCommand)({
|
|
4755
4621
|
command: "document/elements/move",
|
|
4756
4622
|
condition: blockCircularMove
|
|
4757
4623
|
});
|
|
4758
|
-
(0,
|
|
4624
|
+
(0, import_editor_v1_adapters8.blockCommand)({
|
|
4759
4625
|
command: "document/elements/paste",
|
|
4760
4626
|
condition: blockCircularPaste
|
|
4761
4627
|
});
|
|
@@ -4764,7 +4630,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
|
|
|
4764
4630
|
if (componentIdToAdd === void 0) {
|
|
4765
4631
|
return false;
|
|
4766
4632
|
}
|
|
4767
|
-
const state = (0,
|
|
4633
|
+
const state = (0, import_store64.__getState)();
|
|
4768
4634
|
const currentComponentId = selectCurrentComponentId(state);
|
|
4769
4635
|
const path = selectPath(state);
|
|
4770
4636
|
if (currentComponentId === null) {
|
|
@@ -4830,7 +4696,7 @@ function blockCircularMove(args) {
|
|
|
4830
4696
|
if (!container) {
|
|
4831
4697
|
return false;
|
|
4832
4698
|
}
|
|
4833
|
-
const allElements = (0,
|
|
4699
|
+
const allElements = (0, import_editor_elements18.getAllDescendants)(container);
|
|
4834
4700
|
return allElements.some((element) => {
|
|
4835
4701
|
const componentId = extractComponentIdFromContainer(element);
|
|
4836
4702
|
if (componentId === null) {
|
|
@@ -4862,19 +4728,19 @@ function blockCircularPaste(args) {
|
|
|
4862
4728
|
}
|
|
4863
4729
|
|
|
4864
4730
|
// src/store/actions/remove-component-styles.ts
|
|
4865
|
-
var
|
|
4731
|
+
var import_store66 = require("@elementor/store");
|
|
4866
4732
|
function removeComponentStyles(id2) {
|
|
4867
4733
|
apiClient.invalidateComponentConfigCache(id2);
|
|
4868
|
-
(0,
|
|
4734
|
+
(0, import_store66.__dispatch)(slice.actions.removeStyles({ id: id2 }));
|
|
4869
4735
|
}
|
|
4870
4736
|
|
|
4871
4737
|
// src/store/components-styles-provider.ts
|
|
4872
4738
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
4873
|
-
var
|
|
4739
|
+
var import_store68 = require("@elementor/store");
|
|
4874
4740
|
var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
|
|
4875
4741
|
key: "components-styles",
|
|
4876
4742
|
priority: 100,
|
|
4877
|
-
subscribe: (cb) => (0,
|
|
4743
|
+
subscribe: (cb) => (0, import_store68.__subscribeWithSelector)(
|
|
4878
4744
|
(state) => state[SLICE_NAME],
|
|
4879
4745
|
() => {
|
|
4880
4746
|
cb();
|
|
@@ -4882,29 +4748,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
|
|
|
4882
4748
|
),
|
|
4883
4749
|
actions: {
|
|
4884
4750
|
all: () => {
|
|
4885
|
-
return selectFlatStyles((0,
|
|
4751
|
+
return selectFlatStyles((0, import_store68.__getState)());
|
|
4886
4752
|
},
|
|
4887
4753
|
get: (id2) => {
|
|
4888
|
-
return selectFlatStyles((0,
|
|
4754
|
+
return selectFlatStyles((0, import_store68.__getState)()).find((style) => style.id === id2) ?? null;
|
|
4889
4755
|
}
|
|
4890
4756
|
}
|
|
4891
4757
|
});
|
|
4892
4758
|
|
|
4893
4759
|
// src/sync/create-components-before-save.ts
|
|
4894
|
-
var
|
|
4895
|
-
var
|
|
4760
|
+
var import_editor_elements19 = require("@elementor/editor-elements");
|
|
4761
|
+
var import_store70 = require("@elementor/store");
|
|
4896
4762
|
async function createComponentsBeforeSave({
|
|
4897
4763
|
elements,
|
|
4898
4764
|
status
|
|
4899
4765
|
}) {
|
|
4900
|
-
const unpublishedComponents = selectUnpublishedComponents((0,
|
|
4766
|
+
const unpublishedComponents = selectUnpublishedComponents((0, import_store70.__getState)());
|
|
4901
4767
|
if (!unpublishedComponents.length) {
|
|
4902
4768
|
return;
|
|
4903
4769
|
}
|
|
4904
4770
|
try {
|
|
4905
4771
|
const uidToComponentId = await createComponents(unpublishedComponents, status);
|
|
4906
4772
|
updateComponentInstances(elements, uidToComponentId);
|
|
4907
|
-
(0,
|
|
4773
|
+
(0, import_store70.__dispatch)(
|
|
4908
4774
|
slice.actions.add(
|
|
4909
4775
|
unpublishedComponents.map((component) => ({
|
|
4910
4776
|
id: uidToComponentId.get(component.uid),
|
|
@@ -4914,7 +4780,7 @@ async function createComponentsBeforeSave({
|
|
|
4914
4780
|
}))
|
|
4915
4781
|
)
|
|
4916
4782
|
);
|
|
4917
|
-
(0,
|
|
4783
|
+
(0, import_store70.__dispatch)(slice.actions.resetUnpublished());
|
|
4918
4784
|
} catch (error) {
|
|
4919
4785
|
throw new Error(`Failed to publish components and update component instances: ${error}`);
|
|
4920
4786
|
}
|
|
@@ -4959,7 +4825,7 @@ function shouldUpdateElement(element, uidToComponentId) {
|
|
|
4959
4825
|
return { shouldUpdate: false, newComponentId: null };
|
|
4960
4826
|
}
|
|
4961
4827
|
function updateElementComponentId(elementId, componentId) {
|
|
4962
|
-
(0,
|
|
4828
|
+
(0, import_editor_elements19.updateElementSettings)({
|
|
4963
4829
|
id: elementId,
|
|
4964
4830
|
props: {
|
|
4965
4831
|
component_instance: {
|
|
@@ -4974,7 +4840,7 @@ function updateElementComponentId(elementId, componentId) {
|
|
|
4974
4840
|
}
|
|
4975
4841
|
|
|
4976
4842
|
// src/sync/set-component-overridable-props-settings-before-save.ts
|
|
4977
|
-
var
|
|
4843
|
+
var import_store72 = require("@elementor/store");
|
|
4978
4844
|
var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
4979
4845
|
container
|
|
4980
4846
|
}) => {
|
|
@@ -4982,7 +4848,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
4982
4848
|
if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
|
|
4983
4849
|
return;
|
|
4984
4850
|
}
|
|
4985
|
-
const overridableProps = selectOverridableProps((0,
|
|
4851
|
+
const overridableProps = selectOverridableProps((0, import_store72.__getState)(), currentDocument.id);
|
|
4986
4852
|
if (overridableProps) {
|
|
4987
4853
|
container.settings.set("overridable_props", overridableProps);
|
|
4988
4854
|
}
|
|
@@ -4990,7 +4856,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
4990
4856
|
|
|
4991
4857
|
// src/sync/update-archived-component-before-save.ts
|
|
4992
4858
|
var import_editor_notifications5 = require("@elementor/editor-notifications");
|
|
4993
|
-
var
|
|
4859
|
+
var import_store74 = require("@elementor/store");
|
|
4994
4860
|
var failedNotification = (message) => ({
|
|
4995
4861
|
type: "error",
|
|
4996
4862
|
message: `Failed to archive components: ${message}`,
|
|
@@ -4998,7 +4864,7 @@ var failedNotification = (message) => ({
|
|
|
4998
4864
|
});
|
|
4999
4865
|
var updateArchivedComponentBeforeSave = async () => {
|
|
5000
4866
|
try {
|
|
5001
|
-
const archivedComponents = selectArchivedThisSession((0,
|
|
4867
|
+
const archivedComponents = selectArchivedThisSession((0, import_store74.__getState)());
|
|
5002
4868
|
if (!archivedComponents.length) {
|
|
5003
4869
|
return;
|
|
5004
4870
|
}
|
|
@@ -5013,15 +4879,15 @@ var updateArchivedComponentBeforeSave = async () => {
|
|
|
5013
4879
|
};
|
|
5014
4880
|
|
|
5015
4881
|
// src/sync/update-component-title-before-save.ts
|
|
5016
|
-
var
|
|
4882
|
+
var import_store76 = require("@elementor/store");
|
|
5017
4883
|
var updateComponentTitleBeforeSave = async () => {
|
|
5018
|
-
const updatedComponentNames = selectUpdatedComponentNames((0,
|
|
4884
|
+
const updatedComponentNames = selectUpdatedComponentNames((0, import_store76.__getState)());
|
|
5019
4885
|
if (!updatedComponentNames.length) {
|
|
5020
4886
|
return;
|
|
5021
4887
|
}
|
|
5022
4888
|
const result = await apiClient.updateComponentTitle(updatedComponentNames);
|
|
5023
4889
|
if (result.failedIds.length === 0) {
|
|
5024
|
-
(0,
|
|
4890
|
+
(0, import_store76.__dispatch)(slice.actions.cleanUpdatedComponentNames());
|
|
5025
4891
|
}
|
|
5026
4892
|
};
|
|
5027
4893
|
|
|
@@ -5053,6 +4919,155 @@ var beforeSave = ({ container, status }) => {
|
|
|
5053
4919
|
]);
|
|
5054
4920
|
};
|
|
5055
4921
|
|
|
4922
|
+
// src/sync/cleanup-overridable-props-on-delete.ts
|
|
4923
|
+
var import_editor_elements20 = require("@elementor/editor-elements");
|
|
4924
|
+
var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
|
|
4925
|
+
var import_store78 = require("@elementor/store");
|
|
4926
|
+
function initCleanupOverridablePropsOnDelete() {
|
|
4927
|
+
(0, import_editor_v1_adapters9.registerDataHook)("dependency", "document/elements/delete", (args) => {
|
|
4928
|
+
const state = (0, import_store78.__getState)();
|
|
4929
|
+
if (!state) {
|
|
4930
|
+
return true;
|
|
4931
|
+
}
|
|
4932
|
+
const currentComponentId = selectCurrentComponentId(state);
|
|
4933
|
+
if (!currentComponentId) {
|
|
4934
|
+
return true;
|
|
4935
|
+
}
|
|
4936
|
+
const overridableProps = selectOverridableProps(state, currentComponentId);
|
|
4937
|
+
if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
|
|
4938
|
+
return true;
|
|
4939
|
+
}
|
|
4940
|
+
const containers = args.containers ?? (args.container ? [args.container] : []);
|
|
4941
|
+
if (containers.length === 0) {
|
|
4942
|
+
return true;
|
|
4943
|
+
}
|
|
4944
|
+
const deletedElementIds = collectDeletedElementIds(containers);
|
|
4945
|
+
if (deletedElementIds.length === 0) {
|
|
4946
|
+
return true;
|
|
4947
|
+
}
|
|
4948
|
+
const propKeysToDelete = Object.entries(overridableProps.props).filter(([, prop]) => deletedElementIds.includes(prop.elementId)).map(([propKey]) => propKey);
|
|
4949
|
+
if (propKeysToDelete.length === 0) {
|
|
4950
|
+
return true;
|
|
4951
|
+
}
|
|
4952
|
+
const remainingProps = Object.fromEntries(
|
|
4953
|
+
Object.entries(overridableProps.props).filter(([propKey]) => !propKeysToDelete.includes(propKey))
|
|
4954
|
+
);
|
|
4955
|
+
let updatedGroups = overridableProps.groups;
|
|
4956
|
+
for (const propKey of propKeysToDelete) {
|
|
4957
|
+
updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
|
|
4958
|
+
}
|
|
4959
|
+
(0, import_store78.__dispatch)(
|
|
4960
|
+
slice.actions.setOverridableProps({
|
|
4961
|
+
componentId: currentComponentId,
|
|
4962
|
+
overridableProps: {
|
|
4963
|
+
...overridableProps,
|
|
4964
|
+
props: remainingProps,
|
|
4965
|
+
groups: updatedGroups
|
|
4966
|
+
}
|
|
4967
|
+
})
|
|
4968
|
+
);
|
|
4969
|
+
return true;
|
|
4970
|
+
});
|
|
4971
|
+
}
|
|
4972
|
+
function collectDeletedElementIds(containers) {
|
|
4973
|
+
const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements20.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
|
|
4974
|
+
return elementIds;
|
|
4975
|
+
}
|
|
4976
|
+
|
|
4977
|
+
// src/sync/load-component-data-after-instance-added.ts
|
|
4978
|
+
var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
|
|
4979
|
+
function initLoadComponentDataAfterInstanceAdded() {
|
|
4980
|
+
(0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/paste", (_args, result) => {
|
|
4981
|
+
load(result);
|
|
4982
|
+
});
|
|
4983
|
+
(0, import_editor_v1_adapters10.registerDataHook)("after", "document/elements/import", (_args, result) => {
|
|
4984
|
+
load(result);
|
|
4985
|
+
});
|
|
4986
|
+
}
|
|
4987
|
+
function load(result) {
|
|
4988
|
+
const containers = Array.isArray(result) ? result : [result];
|
|
4989
|
+
loadComponentsAssets(containers.map((container) => container.model.toJSON()));
|
|
4990
|
+
}
|
|
4991
|
+
|
|
4992
|
+
// src/sync/regenerate-override-keys.ts
|
|
4993
|
+
var import_editor_elements21 = require("@elementor/editor-elements");
|
|
4994
|
+
var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
|
|
4995
|
+
var import_utils10 = require("@elementor/utils");
|
|
4996
|
+
function initRegenerateOverrideKeys() {
|
|
4997
|
+
(0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
|
|
4998
|
+
regenerateOverrideKeysForContainers(result);
|
|
4999
|
+
});
|
|
5000
|
+
(0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/paste", (_args, result) => {
|
|
5001
|
+
regenerateOverrideKeysForContainers(result);
|
|
5002
|
+
});
|
|
5003
|
+
(0, import_editor_v1_adapters11.registerDataHook)("after", "document/elements/import", (_args, result) => {
|
|
5004
|
+
regenerateOverrideKeysForContainers(result);
|
|
5005
|
+
});
|
|
5006
|
+
}
|
|
5007
|
+
function regenerateOverrideKeysForContainers(result) {
|
|
5008
|
+
const containers = Array.isArray(result) ? result : [result];
|
|
5009
|
+
containers.forEach((container) => {
|
|
5010
|
+
regenerateOverrideKeysRecursive(container.id);
|
|
5011
|
+
});
|
|
5012
|
+
}
|
|
5013
|
+
function regenerateOverrideKeysRecursive(elementId) {
|
|
5014
|
+
const container = (0, import_editor_elements21.getContainer)(elementId);
|
|
5015
|
+
if (!container) {
|
|
5016
|
+
return;
|
|
5017
|
+
}
|
|
5018
|
+
(0, import_editor_elements21.getAllDescendants)(container).forEach(regenerateOverrideKeys);
|
|
5019
|
+
}
|
|
5020
|
+
function regenerateOverrideKeys(element) {
|
|
5021
|
+
if (!isComponentInstance(element.model.toJSON())) {
|
|
5022
|
+
return;
|
|
5023
|
+
}
|
|
5024
|
+
const settings = element.settings?.toJSON() ?? {};
|
|
5025
|
+
if (!hasOverrides(settings)) {
|
|
5026
|
+
return;
|
|
5027
|
+
}
|
|
5028
|
+
const componentInstance = settings.component_instance;
|
|
5029
|
+
const overrides = componentInstance.value.overrides;
|
|
5030
|
+
const newOverrides = overrides.value.map((override) => {
|
|
5031
|
+
if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
|
|
5032
|
+
return override;
|
|
5033
|
+
}
|
|
5034
|
+
return {
|
|
5035
|
+
...override,
|
|
5036
|
+
value: {
|
|
5037
|
+
...override.value,
|
|
5038
|
+
override_key: (0, import_utils10.generateUniqueId)("prop")
|
|
5039
|
+
}
|
|
5040
|
+
};
|
|
5041
|
+
});
|
|
5042
|
+
const newComponentInstance = {
|
|
5043
|
+
...componentInstance,
|
|
5044
|
+
value: {
|
|
5045
|
+
...componentInstance.value,
|
|
5046
|
+
overrides: {
|
|
5047
|
+
...overrides,
|
|
5048
|
+
value: newOverrides
|
|
5049
|
+
}
|
|
5050
|
+
}
|
|
5051
|
+
};
|
|
5052
|
+
(0, import_editor_elements21.updateElementSettings)({
|
|
5053
|
+
id: element.id,
|
|
5054
|
+
props: { component_instance: newComponentInstance },
|
|
5055
|
+
withHistory: false
|
|
5056
|
+
});
|
|
5057
|
+
}
|
|
5058
|
+
function hasOverrides(settings) {
|
|
5059
|
+
if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
|
|
5060
|
+
return false;
|
|
5061
|
+
}
|
|
5062
|
+
const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
|
|
5063
|
+
const overrides = componentInstance?.overrides;
|
|
5064
|
+
if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
|
|
5065
|
+
return false;
|
|
5066
|
+
}
|
|
5067
|
+
const overridesValue = overrides?.value;
|
|
5068
|
+
return !!overridesValue?.length;
|
|
5069
|
+
}
|
|
5070
|
+
|
|
5056
5071
|
// src/init.ts
|
|
5057
5072
|
function init() {
|
|
5058
5073
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
@@ -5062,14 +5077,14 @@ function init() {
|
|
|
5062
5077
|
COMPONENT_WIDGET_TYPE,
|
|
5063
5078
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|
|
5064
5079
|
);
|
|
5065
|
-
(0,
|
|
5080
|
+
(0, import_editor_v1_adapters12.registerDataHook)("dependency", "editor/documents/close", (args) => {
|
|
5066
5081
|
const document = (0, import_editor_documents13.getV1CurrentDocument)();
|
|
5067
5082
|
if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
|
|
5068
5083
|
args.mode = "autosave";
|
|
5069
5084
|
}
|
|
5070
5085
|
return true;
|
|
5071
5086
|
});
|
|
5072
|
-
(0,
|
|
5087
|
+
(0, import_editor_v1_adapters12.registerDataHook)("after", "preview/drop", onElementDrop);
|
|
5073
5088
|
window.elementorCommon.__beforeSave = beforeSave;
|
|
5074
5089
|
(0, import_editor_elements_panel.injectTab)({
|
|
5075
5090
|
id: "components",
|
|
@@ -5093,7 +5108,7 @@ function init() {
|
|
|
5093
5108
|
id: "component-panel-header",
|
|
5094
5109
|
component: ComponentPanelHeader
|
|
5095
5110
|
});
|
|
5096
|
-
(0,
|
|
5111
|
+
(0, import_editor_v1_adapters12.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
5097
5112
|
const { id: id2, config } = (0, import_editor_documents13.getV1CurrentDocument)();
|
|
5098
5113
|
if (id2) {
|
|
5099
5114
|
removeComponentStyles(id2);
|
|
@@ -5124,6 +5139,7 @@ function init() {
|
|
|
5124
5139
|
initMcp();
|
|
5125
5140
|
initCircularNestingPrevention();
|
|
5126
5141
|
initNonAtomicNestingPrevention();
|
|
5142
|
+
initLoadComponentDataAfterInstanceAdded();
|
|
5127
5143
|
}
|
|
5128
5144
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5129
5145
|
0 && (module.exports = {
|