@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.mjs CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  import { injectTab } from "@elementor/editor-elements-panel";
16
16
  import { __registerPanel as registerPanel } from "@elementor/editor-panels";
17
17
  import { stylesRepository } from "@elementor/editor-styles-repository";
18
- import { registerDataHook as registerDataHook3 } from "@elementor/editor-v1-adapters";
18
+ import { registerDataHook as registerDataHook4 } from "@elementor/editor-v1-adapters";
19
19
  import { __registerSlice as registerSlice } from "@elementor/store";
20
20
  import { __ as __30 } from "@wordpress/i18n";
21
21
 
@@ -4295,150 +4295,16 @@ function isPropAllowed(propType) {
4295
4295
  return propType.meta.overridable !== false;
4296
4296
  }
4297
4297
 
4298
- // src/hooks/cleanup-overridable-props-on-delete.ts
4299
- import { getAllDescendants as getAllDescendants3 } from "@elementor/editor-elements";
4300
- import { registerDataHook } from "@elementor/editor-v1-adapters";
4301
- import { __dispatch as dispatch15, __getState as getState19 } from "@elementor/store";
4302
- function initCleanupOverridablePropsOnDelete() {
4303
- registerDataHook("dependency", "document/elements/delete", (args) => {
4304
- const state = getState19();
4305
- if (!state) {
4306
- return true;
4307
- }
4308
- const currentComponentId = selectCurrentComponentId(state);
4309
- if (!currentComponentId) {
4310
- return true;
4311
- }
4312
- const overridableProps = selectOverridableProps(state, currentComponentId);
4313
- if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
4314
- return true;
4315
- }
4316
- const containers = args.containers ?? (args.container ? [args.container] : []);
4317
- if (containers.length === 0) {
4318
- return true;
4319
- }
4320
- const deletedElementIds = collectDeletedElementIds(containers);
4321
- if (deletedElementIds.length === 0) {
4322
- return true;
4323
- }
4324
- const propKeysToDelete = Object.entries(overridableProps.props).filter(([, prop]) => deletedElementIds.includes(prop.elementId)).map(([propKey]) => propKey);
4325
- if (propKeysToDelete.length === 0) {
4326
- return true;
4327
- }
4328
- const remainingProps = Object.fromEntries(
4329
- Object.entries(overridableProps.props).filter(([propKey]) => !propKeysToDelete.includes(propKey))
4330
- );
4331
- let updatedGroups = overridableProps.groups;
4332
- for (const propKey of propKeysToDelete) {
4333
- updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
4334
- }
4335
- dispatch15(
4336
- slice.actions.setOverridableProps({
4337
- componentId: currentComponentId,
4338
- overridableProps: {
4339
- ...overridableProps,
4340
- props: remainingProps,
4341
- groups: updatedGroups
4342
- }
4343
- })
4344
- );
4345
- return true;
4346
- });
4347
- }
4348
- function collectDeletedElementIds(containers) {
4349
- const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...getAllDescendants3(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
4350
- return elementIds;
4351
- }
4352
-
4353
- // src/hooks/regenerate-override-keys.ts
4354
- import { getAllDescendants as getAllDescendants4, getContainer as getContainer4, updateElementSettings as updateElementSettings2 } from "@elementor/editor-elements";
4355
- import { registerDataHook as registerDataHook2 } from "@elementor/editor-v1-adapters";
4356
- import { generateUniqueId as generateUniqueId5 } from "@elementor/utils";
4357
- function initRegenerateOverrideKeys() {
4358
- registerDataHook2("after", "document/elements/duplicate", (_args, result) => {
4359
- regenerateOverrideKeysForContainers(result);
4360
- });
4361
- registerDataHook2("after", "document/elements/paste", (_args, result) => {
4362
- regenerateOverrideKeysForContainers(result);
4363
- });
4364
- registerDataHook2("after", "document/elements/import", (_args, result) => {
4365
- regenerateOverrideKeysForContainers(result);
4366
- });
4367
- }
4368
- function regenerateOverrideKeysForContainers(result) {
4369
- const containers = Array.isArray(result) ? result : [result];
4370
- containers.forEach((container) => {
4371
- regenerateOverrideKeysRecursive(container.id);
4372
- });
4373
- }
4374
- function regenerateOverrideKeysRecursive(elementId) {
4375
- const container = getContainer4(elementId);
4376
- if (!container) {
4377
- return;
4378
- }
4379
- getAllDescendants4(container).forEach(regenerateOverrideKeys);
4380
- }
4381
- function regenerateOverrideKeys(element) {
4382
- if (!isComponentInstance(element.model.toJSON())) {
4383
- return;
4384
- }
4385
- const settings = element.settings?.toJSON() ?? {};
4386
- if (!hasOverrides(settings)) {
4387
- return;
4388
- }
4389
- const componentInstance = settings.component_instance;
4390
- const overrides = componentInstance.value.overrides;
4391
- const newOverrides = overrides.value.map((override) => {
4392
- if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
4393
- return override;
4394
- }
4395
- return {
4396
- ...override,
4397
- value: {
4398
- ...override.value,
4399
- override_key: generateUniqueId5("prop")
4400
- }
4401
- };
4402
- });
4403
- const newComponentInstance = {
4404
- ...componentInstance,
4405
- value: {
4406
- ...componentInstance.value,
4407
- overrides: {
4408
- ...overrides,
4409
- value: newOverrides
4410
- }
4411
- }
4412
- };
4413
- updateElementSettings2({
4414
- id: element.id,
4415
- props: { component_instance: newComponentInstance },
4416
- withHistory: false
4417
- });
4418
- }
4419
- function hasOverrides(settings) {
4420
- if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
4421
- return false;
4422
- }
4423
- const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
4424
- const overrides = componentInstance?.overrides;
4425
- if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
4426
- return false;
4427
- }
4428
- const overridesValue = overrides?.value;
4429
- return !!overridesValue?.length;
4430
- }
4431
-
4432
4298
  // src/mcp/index.ts
4433
4299
  import { getMCPByDomain as getMCPByDomain2 } from "@elementor/editor-mcp";
4434
4300
 
4435
4301
  // src/mcp/save-as-component-tool.ts
4436
4302
  import { DOCUMENT_STRUCTURE_URI, WIDGET_SCHEMA_URI } from "@elementor/editor-canvas";
4437
- import { getContainer as getContainer5, getElementType as getElementType4, getWidgetsCache as getWidgetsCache4 } from "@elementor/editor-elements";
4303
+ import { getContainer as getContainer4, getElementType as getElementType4, getWidgetsCache as getWidgetsCache4 } from "@elementor/editor-elements";
4438
4304
  import { getMCPByDomain, toolPrompts } from "@elementor/editor-mcp";
4439
4305
  import { AxiosError } from "@elementor/http-client";
4440
4306
  import { z as z6 } from "@elementor/schema";
4441
- import { generateUniqueId as generateUniqueId6 } from "@elementor/utils";
4307
+ import { generateUniqueId as generateUniqueId5 } from "@elementor/utils";
4442
4308
  var InputSchema = {
4443
4309
  element_id: z6.string().describe(
4444
4310
  '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.'
@@ -4472,7 +4338,7 @@ var ERROR_MESSAGES3 = {
4472
4338
  var handleSaveAsComponent = async (params) => {
4473
4339
  const { element_id: elementId, component_name: componentName, overridable_props: overridablePropsInput } = params;
4474
4340
  const validElementTypes = getValidElementTypes();
4475
- const container = getContainer5(elementId);
4341
+ const container = getContainer4(elementId);
4476
4342
  if (!container) {
4477
4343
  throw new Error(ERROR_MESSAGES3.ELEMENT_NOT_FOUND);
4478
4344
  }
@@ -4488,7 +4354,7 @@ var handleSaveAsComponent = async (params) => {
4488
4354
  if (overridableProps) {
4489
4355
  updateElementDataWithOverridableProps(element, overridableProps);
4490
4356
  }
4491
- const uid = generateUniqueId6("component");
4357
+ const uid = generateUniqueId5("component");
4492
4358
  try {
4493
4359
  await apiClient.validate({
4494
4360
  items: [
@@ -4510,7 +4376,7 @@ var handleSaveAsComponent = async (params) => {
4510
4376
  };
4511
4377
  function enrichOverridableProps(input, rootElement) {
4512
4378
  const enrichedProps = {};
4513
- const defaultGroupId = generateUniqueId6("group");
4379
+ const defaultGroupId = generateUniqueId5("group");
4514
4380
  Object.entries(input.props).forEach(([, prop]) => {
4515
4381
  const { elementId, propKey, label } = prop;
4516
4382
  const element = findElementById(rootElement, elementId);
@@ -4531,7 +4397,7 @@ function enrichOverridableProps(input, rootElement) {
4531
4397
  `Property "${propKey}" does not exist in element "${elementId}" (type: ${widgetType}). Available properties: ${availableProps}`
4532
4398
  );
4533
4399
  }
4534
- const overrideKey = generateUniqueId6("prop");
4400
+ const overrideKey = generateUniqueId5("prop");
4535
4401
  const originValue = element.settings?.[propKey] ? element.settings[propKey] : elementType.propsSchema[propKey].default ?? null;
4536
4402
  enrichedProps[overrideKey] = {
4537
4403
  overrideKey,
@@ -4766,19 +4632,19 @@ function initMcp() {
4766
4632
 
4767
4633
  // src/populate-store.ts
4768
4634
  import { useEffect as useEffect6 } from "react";
4769
- import { __dispatch as dispatch16 } from "@elementor/store";
4635
+ import { __dispatch as dispatch15 } from "@elementor/store";
4770
4636
  function PopulateStore() {
4771
4637
  useEffect6(() => {
4772
- dispatch16(loadComponents());
4638
+ dispatch15(loadComponents());
4773
4639
  }, []);
4774
4640
  return null;
4775
4641
  }
4776
4642
 
4777
4643
  // src/prevent-circular-nesting.ts
4778
- import { getAllDescendants as getAllDescendants5 } from "@elementor/editor-elements";
4644
+ import { getAllDescendants as getAllDescendants3 } from "@elementor/editor-elements";
4779
4645
  import { notify as notify4 } from "@elementor/editor-notifications";
4780
4646
  import { blockCommand as blockCommand2 } from "@elementor/editor-v1-adapters";
4781
- import { __getState as getState20 } from "@elementor/store";
4647
+ import { __getState as getState19 } from "@elementor/store";
4782
4648
  import { __ as __29 } from "@wordpress/i18n";
4783
4649
  var COMPONENT_TYPE = "e-component";
4784
4650
  var COMPONENT_CIRCULAR_NESTING_ALERT = {
@@ -4804,7 +4670,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
4804
4670
  if (componentIdToAdd === void 0) {
4805
4671
  return false;
4806
4672
  }
4807
- const state = getState20();
4673
+ const state = getState19();
4808
4674
  const currentComponentId = selectCurrentComponentId(state);
4809
4675
  const path = selectPath(state);
4810
4676
  if (currentComponentId === null) {
@@ -4870,7 +4736,7 @@ function blockCircularMove(args) {
4870
4736
  if (!container) {
4871
4737
  return false;
4872
4738
  }
4873
- const allElements = getAllDescendants5(container);
4739
+ const allElements = getAllDescendants3(container);
4874
4740
  return allElements.some((element) => {
4875
4741
  const componentId = extractComponentIdFromContainer(element);
4876
4742
  if (componentId === null) {
@@ -4902,15 +4768,15 @@ function blockCircularPaste(args) {
4902
4768
  }
4903
4769
 
4904
4770
  // src/store/actions/remove-component-styles.ts
4905
- import { __dispatch as dispatch17 } from "@elementor/store";
4771
+ import { __dispatch as dispatch16 } from "@elementor/store";
4906
4772
  function removeComponentStyles(id2) {
4907
4773
  apiClient.invalidateComponentConfigCache(id2);
4908
- dispatch17(slice.actions.removeStyles({ id: id2 }));
4774
+ dispatch16(slice.actions.removeStyles({ id: id2 }));
4909
4775
  }
4910
4776
 
4911
4777
  // src/store/components-styles-provider.ts
4912
4778
  import { createStylesProvider } from "@elementor/editor-styles-repository";
4913
- import { __getState as getState21, __subscribeWithSelector as subscribeWithSelector } from "@elementor/store";
4779
+ import { __getState as getState20, __subscribeWithSelector as subscribeWithSelector } from "@elementor/store";
4914
4780
  var componentsStylesProvider = createStylesProvider({
4915
4781
  key: "components-styles",
4916
4782
  priority: 100,
@@ -4922,29 +4788,29 @@ var componentsStylesProvider = createStylesProvider({
4922
4788
  ),
4923
4789
  actions: {
4924
4790
  all: () => {
4925
- return selectFlatStyles(getState21());
4791
+ return selectFlatStyles(getState20());
4926
4792
  },
4927
4793
  get: (id2) => {
4928
- return selectFlatStyles(getState21()).find((style) => style.id === id2) ?? null;
4794
+ return selectFlatStyles(getState20()).find((style) => style.id === id2) ?? null;
4929
4795
  }
4930
4796
  }
4931
4797
  });
4932
4798
 
4933
4799
  // src/sync/create-components-before-save.ts
4934
- import { updateElementSettings as updateElementSettings3 } from "@elementor/editor-elements";
4935
- import { __dispatch as dispatch18, __getState as getState22 } from "@elementor/store";
4800
+ import { updateElementSettings as updateElementSettings2 } from "@elementor/editor-elements";
4801
+ import { __dispatch as dispatch17, __getState as getState21 } from "@elementor/store";
4936
4802
  async function createComponentsBeforeSave({
4937
4803
  elements,
4938
4804
  status
4939
4805
  }) {
4940
- const unpublishedComponents = selectUnpublishedComponents(getState22());
4806
+ const unpublishedComponents = selectUnpublishedComponents(getState21());
4941
4807
  if (!unpublishedComponents.length) {
4942
4808
  return;
4943
4809
  }
4944
4810
  try {
4945
4811
  const uidToComponentId = await createComponents(unpublishedComponents, status);
4946
4812
  updateComponentInstances(elements, uidToComponentId);
4947
- dispatch18(
4813
+ dispatch17(
4948
4814
  slice.actions.add(
4949
4815
  unpublishedComponents.map((component) => ({
4950
4816
  id: uidToComponentId.get(component.uid),
@@ -4954,7 +4820,7 @@ async function createComponentsBeforeSave({
4954
4820
  }))
4955
4821
  )
4956
4822
  );
4957
- dispatch18(slice.actions.resetUnpublished());
4823
+ dispatch17(slice.actions.resetUnpublished());
4958
4824
  } catch (error) {
4959
4825
  throw new Error(`Failed to publish components and update component instances: ${error}`);
4960
4826
  }
@@ -4999,7 +4865,7 @@ function shouldUpdateElement(element, uidToComponentId) {
4999
4865
  return { shouldUpdate: false, newComponentId: null };
5000
4866
  }
5001
4867
  function updateElementComponentId(elementId, componentId) {
5002
- updateElementSettings3({
4868
+ updateElementSettings2({
5003
4869
  id: elementId,
5004
4870
  props: {
5005
4871
  component_instance: {
@@ -5014,7 +4880,7 @@ function updateElementComponentId(elementId, componentId) {
5014
4880
  }
5015
4881
 
5016
4882
  // src/sync/set-component-overridable-props-settings-before-save.ts
5017
- import { __getState as getState23 } from "@elementor/store";
4883
+ import { __getState as getState22 } from "@elementor/store";
5018
4884
  var setComponentOverridablePropsSettingsBeforeSave = ({
5019
4885
  container
5020
4886
  }) => {
@@ -5022,7 +4888,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
5022
4888
  if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
5023
4889
  return;
5024
4890
  }
5025
- const overridableProps = selectOverridableProps(getState23(), currentDocument.id);
4891
+ const overridableProps = selectOverridableProps(getState22(), currentDocument.id);
5026
4892
  if (overridableProps) {
5027
4893
  container.settings.set("overridable_props", overridableProps);
5028
4894
  }
@@ -5030,7 +4896,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
5030
4896
 
5031
4897
  // src/sync/update-archived-component-before-save.ts
5032
4898
  import { notify as notify5 } from "@elementor/editor-notifications";
5033
- import { __getState as getState24 } from "@elementor/store";
4899
+ import { __getState as getState23 } from "@elementor/store";
5034
4900
  var failedNotification = (message) => ({
5035
4901
  type: "error",
5036
4902
  message: `Failed to archive components: ${message}`,
@@ -5038,7 +4904,7 @@ var failedNotification = (message) => ({
5038
4904
  });
5039
4905
  var updateArchivedComponentBeforeSave = async () => {
5040
4906
  try {
5041
- const archivedComponents = selectArchivedThisSession(getState24());
4907
+ const archivedComponents = selectArchivedThisSession(getState23());
5042
4908
  if (!archivedComponents.length) {
5043
4909
  return;
5044
4910
  }
@@ -5053,15 +4919,15 @@ var updateArchivedComponentBeforeSave = async () => {
5053
4919
  };
5054
4920
 
5055
4921
  // src/sync/update-component-title-before-save.ts
5056
- import { __dispatch as dispatch19, __getState as getState25 } from "@elementor/store";
4922
+ import { __dispatch as dispatch18, __getState as getState24 } from "@elementor/store";
5057
4923
  var updateComponentTitleBeforeSave = async () => {
5058
- const updatedComponentNames = selectUpdatedComponentNames(getState25());
4924
+ const updatedComponentNames = selectUpdatedComponentNames(getState24());
5059
4925
  if (!updatedComponentNames.length) {
5060
4926
  return;
5061
4927
  }
5062
4928
  const result = await apiClient.updateComponentTitle(updatedComponentNames);
5063
4929
  if (result.failedIds.length === 0) {
5064
- dispatch19(slice.actions.cleanUpdatedComponentNames());
4930
+ dispatch18(slice.actions.cleanUpdatedComponentNames());
5065
4931
  }
5066
4932
  };
5067
4933
 
@@ -5093,6 +4959,155 @@ var beforeSave = ({ container, status }) => {
5093
4959
  ]);
5094
4960
  };
5095
4961
 
4962
+ // src/sync/cleanup-overridable-props-on-delete.ts
4963
+ import { getAllDescendants as getAllDescendants4 } from "@elementor/editor-elements";
4964
+ import { registerDataHook } from "@elementor/editor-v1-adapters";
4965
+ import { __dispatch as dispatch19, __getState as getState25 } from "@elementor/store";
4966
+ function initCleanupOverridablePropsOnDelete() {
4967
+ registerDataHook("dependency", "document/elements/delete", (args) => {
4968
+ const state = getState25();
4969
+ if (!state) {
4970
+ return true;
4971
+ }
4972
+ const currentComponentId = selectCurrentComponentId(state);
4973
+ if (!currentComponentId) {
4974
+ return true;
4975
+ }
4976
+ const overridableProps = selectOverridableProps(state, currentComponentId);
4977
+ if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
4978
+ return true;
4979
+ }
4980
+ const containers = args.containers ?? (args.container ? [args.container] : []);
4981
+ if (containers.length === 0) {
4982
+ return true;
4983
+ }
4984
+ const deletedElementIds = collectDeletedElementIds(containers);
4985
+ if (deletedElementIds.length === 0) {
4986
+ return true;
4987
+ }
4988
+ const propKeysToDelete = Object.entries(overridableProps.props).filter(([, prop]) => deletedElementIds.includes(prop.elementId)).map(([propKey]) => propKey);
4989
+ if (propKeysToDelete.length === 0) {
4990
+ return true;
4991
+ }
4992
+ const remainingProps = Object.fromEntries(
4993
+ Object.entries(overridableProps.props).filter(([propKey]) => !propKeysToDelete.includes(propKey))
4994
+ );
4995
+ let updatedGroups = overridableProps.groups;
4996
+ for (const propKey of propKeysToDelete) {
4997
+ updatedGroups = removePropFromAllGroups(updatedGroups, propKey);
4998
+ }
4999
+ dispatch19(
5000
+ slice.actions.setOverridableProps({
5001
+ componentId: currentComponentId,
5002
+ overridableProps: {
5003
+ ...overridableProps,
5004
+ props: remainingProps,
5005
+ groups: updatedGroups
5006
+ }
5007
+ })
5008
+ );
5009
+ return true;
5010
+ });
5011
+ }
5012
+ function collectDeletedElementIds(containers) {
5013
+ const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...getAllDescendants4(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
5014
+ return elementIds;
5015
+ }
5016
+
5017
+ // src/sync/load-component-data-after-instance-added.ts
5018
+ import { registerDataHook as registerDataHook2 } from "@elementor/editor-v1-adapters";
5019
+ function initLoadComponentDataAfterInstanceAdded() {
5020
+ registerDataHook2("after", "document/elements/paste", (_args, result) => {
5021
+ load(result);
5022
+ });
5023
+ registerDataHook2("after", "document/elements/import", (_args, result) => {
5024
+ load(result);
5025
+ });
5026
+ }
5027
+ function load(result) {
5028
+ const containers = Array.isArray(result) ? result : [result];
5029
+ loadComponentsAssets(containers.map((container) => container.model.toJSON()));
5030
+ }
5031
+
5032
+ // src/sync/regenerate-override-keys.ts
5033
+ import { getAllDescendants as getAllDescendants5, getContainer as getContainer5, updateElementSettings as updateElementSettings3 } from "@elementor/editor-elements";
5034
+ import { registerDataHook as registerDataHook3 } from "@elementor/editor-v1-adapters";
5035
+ import { generateUniqueId as generateUniqueId6 } from "@elementor/utils";
5036
+ function initRegenerateOverrideKeys() {
5037
+ registerDataHook3("after", "document/elements/duplicate", (_args, result) => {
5038
+ regenerateOverrideKeysForContainers(result);
5039
+ });
5040
+ registerDataHook3("after", "document/elements/paste", (_args, result) => {
5041
+ regenerateOverrideKeysForContainers(result);
5042
+ });
5043
+ registerDataHook3("after", "document/elements/import", (_args, result) => {
5044
+ regenerateOverrideKeysForContainers(result);
5045
+ });
5046
+ }
5047
+ function regenerateOverrideKeysForContainers(result) {
5048
+ const containers = Array.isArray(result) ? result : [result];
5049
+ containers.forEach((container) => {
5050
+ regenerateOverrideKeysRecursive(container.id);
5051
+ });
5052
+ }
5053
+ function regenerateOverrideKeysRecursive(elementId) {
5054
+ const container = getContainer5(elementId);
5055
+ if (!container) {
5056
+ return;
5057
+ }
5058
+ getAllDescendants5(container).forEach(regenerateOverrideKeys);
5059
+ }
5060
+ function regenerateOverrideKeys(element) {
5061
+ if (!isComponentInstance(element.model.toJSON())) {
5062
+ return;
5063
+ }
5064
+ const settings = element.settings?.toJSON() ?? {};
5065
+ if (!hasOverrides(settings)) {
5066
+ return;
5067
+ }
5068
+ const componentInstance = settings.component_instance;
5069
+ const overrides = componentInstance.value.overrides;
5070
+ const newOverrides = overrides.value.map((override) => {
5071
+ if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
5072
+ return override;
5073
+ }
5074
+ return {
5075
+ ...override,
5076
+ value: {
5077
+ ...override.value,
5078
+ override_key: generateUniqueId6("prop")
5079
+ }
5080
+ };
5081
+ });
5082
+ const newComponentInstance = {
5083
+ ...componentInstance,
5084
+ value: {
5085
+ ...componentInstance.value,
5086
+ overrides: {
5087
+ ...overrides,
5088
+ value: newOverrides
5089
+ }
5090
+ }
5091
+ };
5092
+ updateElementSettings3({
5093
+ id: element.id,
5094
+ props: { component_instance: newComponentInstance },
5095
+ withHistory: false
5096
+ });
5097
+ }
5098
+ function hasOverrides(settings) {
5099
+ if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
5100
+ return false;
5101
+ }
5102
+ const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
5103
+ const overrides = componentInstance?.overrides;
5104
+ if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
5105
+ return false;
5106
+ }
5107
+ const overridesValue = overrides?.value;
5108
+ return !!overridesValue?.length;
5109
+ }
5110
+
5096
5111
  // src/init.ts
5097
5112
  function init() {
5098
5113
  stylesRepository.register(componentsStylesProvider);
@@ -5102,14 +5117,14 @@ function init() {
5102
5117
  COMPONENT_WIDGET_TYPE,
5103
5118
  (options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
5104
5119
  );
5105
- registerDataHook3("dependency", "editor/documents/close", (args) => {
5120
+ registerDataHook4("dependency", "editor/documents/close", (args) => {
5106
5121
  const document = getV1CurrentDocument();
5107
5122
  if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
5108
5123
  args.mode = "autosave";
5109
5124
  }
5110
5125
  return true;
5111
5126
  });
5112
- registerDataHook3("after", "preview/drop", onElementDrop);
5127
+ registerDataHook4("after", "preview/drop", onElementDrop);
5113
5128
  window.elementorCommon.__beforeSave = beforeSave;
5114
5129
  injectTab({
5115
5130
  id: "components",
@@ -5133,7 +5148,7 @@ function init() {
5133
5148
  id: "component-panel-header",
5134
5149
  component: ComponentPanelHeader
5135
5150
  });
5136
- registerDataHook3("after", "editor/documents/attach-preview", async () => {
5151
+ registerDataHook4("after", "editor/documents/attach-preview", async () => {
5137
5152
  const { id: id2, config } = getV1CurrentDocument();
5138
5153
  if (id2) {
5139
5154
  removeComponentStyles(id2);
@@ -5164,6 +5179,7 @@ function init() {
5164
5179
  initMcp();
5165
5180
  initCircularNestingPrevention();
5166
5181
  initNonAtomicNestingPrevention();
5182
+ initLoadComponentDataAfterInstanceAdded();
5167
5183
  }
5168
5184
  export {
5169
5185
  init