@elementor/editor-components 4.0.0-506 → 4.0.0-509

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 CHANGED
@@ -48,7 +48,7 @@ var import_i18n31 = require("@wordpress/i18n");
48
48
 
49
49
  // src/component-instance-transformer.ts
50
50
  var import_editor_canvas = require("@elementor/editor-canvas");
51
- var import_store5 = require("@elementor/store");
51
+ var import_store3 = require("@elementor/store");
52
52
 
53
53
  // src/store/store.ts
54
54
  var import_store2 = require("@elementor/store");
@@ -188,12 +188,6 @@ var slice = (0, import_store2.__createSlice)({
188
188
  }
189
189
  component.overridableProps = payload.overridableProps;
190
190
  },
191
- clearOverridableProps: (state, { payload }) => {
192
- const component = state.data.find((comp) => comp.id === payload.componentId);
193
- if (component) {
194
- component.overridableProps = void 0;
195
- }
196
- },
197
191
  rename: (state, { payload }) => {
198
192
  const component = state.data.find((comp) => comp.uid === payload.componentUid);
199
193
  if (!component) {
@@ -311,7 +305,6 @@ var selectUpdatedComponentNames = (0, import_store2.__createSelector)(
311
305
 
312
306
  // src/utils/component-document-data.ts
313
307
  var import_editor_documents = require("@elementor/editor-documents");
314
- var import_store3 = require("@elementor/store");
315
308
  var getComponentDocumentData = async (id2) => {
316
309
  const documentManager = (0, import_editor_documents.getV1DocumentsManager)();
317
310
  try {
@@ -320,11 +313,9 @@ var getComponentDocumentData = async (id2) => {
320
313
  return null;
321
314
  }
322
315
  };
323
- var invalidateComponentCache = (id2) => {
316
+ var invalidateComponentDocumentData = (id2) => {
324
317
  const documentManager = (0, import_editor_documents.getV1DocumentsManager)();
325
318
  documentManager.invalidateCache(id2);
326
- (0, import_store3.__dispatch)(slice.actions.removeStyles({ id: id2 }));
327
- (0, import_store3.__dispatch)(slice.actions.clearOverridableProps({ componentId: id2 }));
328
319
  };
329
320
 
330
321
  // src/component-instance-transformer.ts
@@ -333,7 +324,7 @@ var componentInstanceTransformer = (0, import_editor_canvas.createTransformer)(
333
324
  component_id: id2,
334
325
  overrides: overridesValue
335
326
  }) => {
336
- const unpublishedComponents = selectUnpublishedComponents((0, import_store5.__getState)());
327
+ const unpublishedComponents = selectUnpublishedComponents((0, import_store3.__getState)());
337
328
  const unpublishedComponent = unpublishedComponents.find(({ uid }) => uid === id2);
338
329
  const overrides = overridesValue?.reduce((acc, override) => ({ ...acc, ...override }), {});
339
330
  if (unpublishedComponent) {
@@ -401,14 +392,14 @@ var import_editor_documents6 = require("@elementor/editor-documents");
401
392
  var import_editor_panels3 = require("@elementor/editor-panels");
402
393
  var import_editor_ui6 = require("@elementor/editor-ui");
403
394
  var import_icons7 = require("@elementor/icons");
404
- var import_store31 = require("@elementor/store");
395
+ var import_store29 = require("@elementor/store");
405
396
  var import_ui10 = require("@elementor/ui");
406
397
  var import_i18n13 = require("@wordpress/i18n");
407
398
 
408
399
  // src/hooks/use-navigate-back.ts
409
400
  var import_react = require("react");
410
401
  var import_editor_documents2 = require("@elementor/editor-documents");
411
- var import_store7 = require("@elementor/store");
402
+ var import_store5 = require("@elementor/store");
412
403
 
413
404
  // src/utils/switch-to-component.ts
414
405
  var import_editor_elements = require("@elementor/editor-elements");
@@ -423,7 +414,6 @@ async function expandNavigator() {
423
414
  // src/utils/switch-to-component.ts
424
415
  async function switchToComponent(componentId, componentInstanceId, element) {
425
416
  const selector = getSelector(element, componentInstanceId);
426
- invalidateComponentCache(componentId);
427
417
  await (0, import_editor_v1_adapters3.__privateRunCommand)("editor/documents/switch", {
428
418
  id: componentId,
429
419
  selector,
@@ -469,7 +459,7 @@ function buildUniqueSelector(element) {
469
459
 
470
460
  // src/hooks/use-navigate-back.ts
471
461
  function useNavigateBack() {
472
- const path = (0, import_store7.__useSelector)(selectPath);
462
+ const path = (0, import_store5.__useSelector)(selectPath);
473
463
  const documentsManager = (0, import_editor_documents2.getV1DocumentsManager)();
474
464
  return (0, import_react.useCallback)(() => {
475
465
  const { componentId: prevComponentId, instanceId: prevComponentInstanceId } = path.at(-2) ?? {};
@@ -483,7 +473,7 @@ function useNavigateBack() {
483
473
 
484
474
  // src/utils/tracking.ts
485
475
  var import_mixpanel = require("@elementor/mixpanel");
486
- var import_store9 = require("@elementor/store");
476
+ var import_store7 = require("@elementor/store");
487
477
  var FEATURE_NAME = "Components";
488
478
  var trackComponentEvent = ({ action, source, ...data }) => {
489
479
  const { dispatchEvent, config } = (0, import_mixpanel.getMixpanel)();
@@ -501,7 +491,7 @@ var onElementDrop = (_args, element) => {
501
491
  const componentName = editorSettings?.title;
502
492
  const componentUID = editorSettings?.component_uid;
503
493
  const instanceId = element.id;
504
- const createdThisSession = selectCreatedThisSession((0, import_store9.__getState)());
494
+ const createdThisSession = selectCreatedThisSession((0, import_store7.__getState)());
505
495
  const isSameSessionReuse = componentUID && createdThisSession.includes(componentUID);
506
496
  const eventsManagerConfig = window.elementorCommon.eventsManager.config;
507
497
  const { locations, secondaryLocations } = eventsManagerConfig;
@@ -537,15 +527,15 @@ var import_utils2 = require("@elementor/utils");
537
527
  var import_i18n10 = require("@wordpress/i18n");
538
528
 
539
529
  // src/store/actions/add-overridable-group.ts
540
- var import_store11 = require("@elementor/store");
530
+ var import_store9 = require("@elementor/store");
541
531
  function addOverridableGroup({
542
532
  componentId,
543
533
  groupId,
544
534
  label,
545
535
  source
546
536
  }) {
547
- const currentComponent = selectCurrentComponent((0, import_store11.__getState)());
548
- const overridableProps = selectOverridableProps((0, import_store11.__getState)(), componentId);
537
+ const currentComponent = selectCurrentComponent((0, import_store9.__getState)());
538
+ const overridableProps = selectOverridableProps((0, import_store9.__getState)(), componentId);
549
539
  if (!overridableProps) {
550
540
  return;
551
541
  }
@@ -554,7 +544,7 @@ function addOverridableGroup({
554
544
  label,
555
545
  props: []
556
546
  };
557
- (0, import_store11.__dispatch)(
547
+ (0, import_store9.__dispatch)(
558
548
  slice.actions.setOverridableProps({
559
549
  componentId,
560
550
  overridableProps: {
@@ -580,7 +570,7 @@ function addOverridableGroup({
580
570
  }
581
571
 
582
572
  // src/store/actions/delete-overridable-group.ts
583
- var import_store13 = require("@elementor/store");
573
+ var import_store11 = require("@elementor/store");
584
574
 
585
575
  // src/store/utils/groups-transformers.ts
586
576
  var import_utils = require("@elementor/utils");
@@ -728,7 +718,7 @@ function renameGroup(groups, groupId, newLabel) {
728
718
 
729
719
  // src/store/actions/delete-overridable-group.ts
730
720
  function deleteOverridableGroup({ componentId, groupId }) {
731
- const overridableProps = selectOverridableProps((0, import_store13.__getState)(), componentId);
721
+ const overridableProps = selectOverridableProps((0, import_store11.__getState)(), componentId);
732
722
  if (!overridableProps) {
733
723
  return false;
734
724
  }
@@ -737,7 +727,7 @@ function deleteOverridableGroup({ componentId, groupId }) {
737
727
  return false;
738
728
  }
739
729
  const updatedGroups = deleteGroup(overridableProps.groups, groupId);
740
- (0, import_store13.__dispatch)(
730
+ (0, import_store11.__dispatch)(
741
731
  slice.actions.setOverridableProps({
742
732
  componentId,
743
733
  overridableProps: {
@@ -750,7 +740,7 @@ function deleteOverridableGroup({ componentId, groupId }) {
750
740
  }
751
741
 
752
742
  // src/store/actions/delete-overridable-prop.ts
753
- var import_store17 = require("@elementor/store");
743
+ var import_store15 = require("@elementor/store");
754
744
 
755
745
  // src/utils/revert-overridable-settings.ts
756
746
  var import_editor_elements2 = require("@elementor/editor-elements");
@@ -758,7 +748,7 @@ var import_editor_elements2 = require("@elementor/editor-elements");
758
748
  // src/create-component-type.ts
759
749
  var import_editor_canvas4 = require("@elementor/editor-canvas");
760
750
  var import_editor_documents3 = require("@elementor/editor-documents");
761
- var import_store15 = require("@elementor/store");
751
+ var import_store13 = require("@elementor/store");
762
752
  var import_i18n2 = require("@wordpress/i18n");
763
753
  var COMPONENT_WIDGET_TYPE = "e-component";
764
754
  var updateGroups = (groups, config) => {
@@ -977,7 +967,7 @@ function createComponentModel() {
977
967
  }
978
968
  const componentUid = editorSettings?.component_uid;
979
969
  if (componentUid) {
980
- const component = selectComponentByUid((0, import_store15.__getState)(), componentUid);
970
+ const component = selectComponentByUid((0, import_store13.__getState)(), componentUid);
981
971
  if (component?.name) {
982
972
  return component.name;
983
973
  }
@@ -1186,7 +1176,7 @@ function revertElementSettings(element) {
1186
1176
 
1187
1177
  // src/store/actions/delete-overridable-prop.ts
1188
1178
  function deleteOverridableProp({ componentId, propKey, source }) {
1189
- const overridableProps = selectOverridableProps((0, import_store17.__getState)(), componentId);
1179
+ const overridableProps = selectOverridableProps((0, import_store15.__getState)(), componentId);
1190
1180
  if (!overridableProps) {
1191
1181
  return;
1192
1182
  }
@@ -1197,7 +1187,7 @@ function deleteOverridableProp({ componentId, propKey, source }) {
1197
1187
  revertElementOverridableSetting(prop.elementId, prop.propKey, prop.originValue, propKey);
1198
1188
  const { [propKey]: removedProp, ...remainingProps } = overridableProps.props;
1199
1189
  const updatedGroups = removePropFromAllGroups(overridableProps.groups, propKey);
1200
- (0, import_store17.__dispatch)(
1190
+ (0, import_store15.__dispatch)(
1201
1191
  slice.actions.setOverridableProps({
1202
1192
  componentId,
1203
1193
  overridableProps: {
@@ -1207,7 +1197,7 @@ function deleteOverridableProp({ componentId, propKey, source }) {
1207
1197
  }
1208
1198
  })
1209
1199
  );
1210
- const currentComponent = selectCurrentComponent((0, import_store17.__getState)());
1200
+ const currentComponent = selectCurrentComponent((0, import_store15.__getState)());
1211
1201
  trackComponentEvent({
1212
1202
  action: "propertyRemoved",
1213
1203
  source,
@@ -1220,9 +1210,9 @@ function deleteOverridableProp({ componentId, propKey, source }) {
1220
1210
  }
1221
1211
 
1222
1212
  // src/store/actions/reorder-group-props.ts
1223
- var import_store19 = require("@elementor/store");
1213
+ var import_store17 = require("@elementor/store");
1224
1214
  function reorderGroupProps({ componentId, groupId, newPropsOrder }) {
1225
- const overridableProps = selectOverridableProps((0, import_store19.__getState)(), componentId);
1215
+ const overridableProps = selectOverridableProps((0, import_store17.__getState)(), componentId);
1226
1216
  if (!overridableProps) {
1227
1217
  return;
1228
1218
  }
@@ -1230,7 +1220,7 @@ function reorderGroupProps({ componentId, groupId, newPropsOrder }) {
1230
1220
  if (!group) {
1231
1221
  return;
1232
1222
  }
1233
- (0, import_store19.__dispatch)(
1223
+ (0, import_store17.__dispatch)(
1234
1224
  slice.actions.setOverridableProps({
1235
1225
  componentId,
1236
1226
  overridableProps: {
@@ -1251,13 +1241,13 @@ function reorderGroupProps({ componentId, groupId, newPropsOrder }) {
1251
1241
  }
1252
1242
 
1253
1243
  // src/store/actions/reorder-overridable-groups.ts
1254
- var import_store21 = require("@elementor/store");
1244
+ var import_store19 = require("@elementor/store");
1255
1245
  function reorderOverridableGroups({ componentId, newOrder }) {
1256
- const overridableProps = selectOverridableProps((0, import_store21.__getState)(), componentId);
1246
+ const overridableProps = selectOverridableProps((0, import_store19.__getState)(), componentId);
1257
1247
  if (!overridableProps) {
1258
1248
  return;
1259
1249
  }
1260
- (0, import_store21.__dispatch)(
1250
+ (0, import_store19.__dispatch)(
1261
1251
  slice.actions.setOverridableProps({
1262
1252
  componentId,
1263
1253
  overridableProps: {
@@ -1272,14 +1262,14 @@ function reorderOverridableGroups({ componentId, newOrder }) {
1272
1262
  }
1273
1263
 
1274
1264
  // src/store/actions/update-overridable-prop-params.ts
1275
- var import_store23 = require("@elementor/store");
1265
+ var import_store21 = require("@elementor/store");
1276
1266
  function updateOverridablePropParams({
1277
1267
  componentId,
1278
1268
  overrideKey,
1279
1269
  label,
1280
1270
  groupId
1281
1271
  }) {
1282
- const overridableProps = selectOverridableProps((0, import_store23.__getState)(), componentId);
1272
+ const overridableProps = selectOverridableProps((0, import_store21.__getState)(), componentId);
1283
1273
  if (!overridableProps) {
1284
1274
  return;
1285
1275
  }
@@ -1295,7 +1285,7 @@ function updateOverridablePropParams({
1295
1285
  groupId: newGroupId
1296
1286
  };
1297
1287
  const updatedGroups = movePropBetweenGroups(overridableProps.groups, overrideKey, oldGroupId, newGroupId);
1298
- (0, import_store23.__dispatch)(
1288
+ (0, import_store21.__dispatch)(
1299
1289
  slice.actions.setOverridableProps({
1300
1290
  componentId,
1301
1291
  overridableProps: {
@@ -1312,9 +1302,9 @@ function updateOverridablePropParams({
1312
1302
  }
1313
1303
 
1314
1304
  // src/components/component-panel-header/use-overridable-props.ts
1315
- var import_store25 = require("@elementor/store");
1305
+ var import_store23 = require("@elementor/store");
1316
1306
  function useOverridableProps2(componentId) {
1317
- return (0, import_store25.__useSelector)((state) => {
1307
+ return (0, import_store23.__useSelector)((state) => {
1318
1308
  if (!componentId) {
1319
1309
  return void 0;
1320
1310
  }
@@ -1863,9 +1853,9 @@ var import_editor_ui4 = require("@elementor/editor-ui");
1863
1853
  var import_i18n9 = require("@wordpress/i18n");
1864
1854
 
1865
1855
  // src/store/actions/rename-overridable-group.ts
1866
- var import_store27 = require("@elementor/store");
1856
+ var import_store25 = require("@elementor/store");
1867
1857
  function renameOverridableGroup({ componentId, groupId, label }) {
1868
- const overridableProps = selectOverridableProps((0, import_store27.__getState)(), componentId);
1858
+ const overridableProps = selectOverridableProps((0, import_store25.__getState)(), componentId);
1869
1859
  if (!overridableProps) {
1870
1860
  return false;
1871
1861
  }
@@ -1874,7 +1864,7 @@ function renameOverridableGroup({ componentId, groupId, label }) {
1874
1864
  return false;
1875
1865
  }
1876
1866
  const updatedGroups = renameGroup(overridableProps.groups, groupId, label);
1877
- (0, import_store27.__dispatch)(
1867
+ (0, import_store25.__dispatch)(
1878
1868
  slice.actions.setOverridableProps({
1879
1869
  componentId,
1880
1870
  overridableProps: {
@@ -2207,7 +2197,7 @@ var ComponentPanelHeader = () => {
2207
2197
  ));
2208
2198
  };
2209
2199
  function getComponentName() {
2210
- const state = (0, import_store31.__getState)();
2200
+ const state = (0, import_store29.__getState)();
2211
2201
  const path = state[SLICE_NAME].path;
2212
2202
  const { instanceTitle } = path.at(-1) ?? {};
2213
2203
  if (instanceTitle) {
@@ -2223,10 +2213,10 @@ var React18 = __toESM(require("react"));
2223
2213
  var import_editor_ui10 = require("@elementor/editor-ui");
2224
2214
 
2225
2215
  // src/hooks/use-components.ts
2226
- var import_store33 = require("@elementor/store");
2216
+ var import_store31 = require("@elementor/store");
2227
2217
  var useComponents = () => {
2228
- const components = (0, import_store33.__useSelector)(selectComponents);
2229
- const isLoading = (0, import_store33.__useSelector)(selectLoadIsPending);
2218
+ const components = (0, import_store31.__useSelector)(selectComponents);
2219
+ const isLoading = (0, import_store31.__useSelector)(selectLoadIsPending);
2230
2220
  return { components, isLoading };
2231
2221
  };
2232
2222
 
@@ -2310,10 +2300,10 @@ var useComponentsPermissions = () => {
2310
2300
  // src/store/actions/rename-component.ts
2311
2301
  var import_editor_documents7 = require("@elementor/editor-documents");
2312
2302
  var import_editor_elements5 = require("@elementor/editor-elements");
2313
- var import_store35 = require("@elementor/store");
2303
+ var import_store33 = require("@elementor/store");
2314
2304
  var TITLE_EXTERNAL_CHANGE_COMMAND = "title_external_change";
2315
2305
  var renameComponent = (componentUid, newName) => {
2316
- (0, import_store35.__dispatch)(slice.actions.rename({ componentUid, name: newName }));
2306
+ (0, import_store33.__dispatch)(slice.actions.rename({ componentUid, name: newName }));
2317
2307
  (0, import_editor_documents7.setDocumentModifiedStatus)(true);
2318
2308
  refreshComponentInstanceTitles(componentUid);
2319
2309
  };
@@ -2354,7 +2344,7 @@ var import_i18n18 = require("@wordpress/i18n");
2354
2344
  // src/store/actions/archive-component.ts
2355
2345
  var import_editor_documents8 = require("@elementor/editor-documents");
2356
2346
  var import_editor_notifications = require("@elementor/editor-notifications");
2357
- var import_store37 = require("@elementor/store");
2347
+ var import_store35 = require("@elementor/store");
2358
2348
  var import_i18n15 = require("@wordpress/i18n");
2359
2349
  var successNotification = (componentId, componentName) => ({
2360
2350
  type: "success",
@@ -2363,7 +2353,7 @@ var successNotification = (componentId, componentName) => ({
2363
2353
  id: `success-archived-components-notification-${componentId}`
2364
2354
  });
2365
2355
  var archiveComponent = (componentId, componentName) => {
2366
- (0, import_store37.__dispatch)(slice.actions.archive(componentId));
2356
+ (0, import_store35.__dispatch)(slice.actions.archive(componentId));
2367
2357
  (0, import_editor_documents8.setDocumentModifiedStatus)(true);
2368
2358
  (0, import_editor_notifications.notify)(successNotification(componentId, componentName));
2369
2359
  };
@@ -2415,7 +2405,7 @@ async function getDocumentsMap(ids, cache) {
2415
2405
  }
2416
2406
 
2417
2407
  // src/store/actions/load-components-overridable-props.ts
2418
- var import_store39 = require("@elementor/store");
2408
+ var import_store37 = require("@elementor/store");
2419
2409
  function loadComponentsOverridableProps(componentIds) {
2420
2410
  if (!componentIds.length) {
2421
2411
  return;
@@ -2423,7 +2413,7 @@ function loadComponentsOverridableProps(componentIds) {
2423
2413
  return Promise.all(componentIds.map(loadComponentOverrides));
2424
2414
  }
2425
2415
  async function loadComponentOverrides(componentId) {
2426
- const isOverridablePropsLoaded = selectIsOverridablePropsLoaded((0, import_store39.__getState)(), componentId);
2416
+ const isOverridablePropsLoaded = selectIsOverridablePropsLoaded((0, import_store37.__getState)(), componentId);
2427
2417
  if (isOverridablePropsLoaded) {
2428
2418
  return;
2429
2419
  }
@@ -2431,7 +2421,7 @@ async function loadComponentOverrides(componentId) {
2431
2421
  if (!overridableProps) {
2432
2422
  return;
2433
2423
  }
2434
- (0, import_store39.__dispatch)(
2424
+ (0, import_store37.__dispatch)(
2435
2425
  slice.actions.setOverridableProps({
2436
2426
  componentId,
2437
2427
  overridableProps
@@ -2440,12 +2430,12 @@ async function loadComponentOverrides(componentId) {
2440
2430
  }
2441
2431
 
2442
2432
  // src/store/actions/load-components-styles.ts
2443
- var import_store41 = require("@elementor/store");
2433
+ var import_store39 = require("@elementor/store");
2444
2434
  function loadComponentsStyles(documents) {
2445
2435
  if (!documents.size) {
2446
2436
  return;
2447
2437
  }
2448
- const knownComponents = selectStyles((0, import_store41.__getState)());
2438
+ const knownComponents = selectStyles((0, import_store39.__getState)());
2449
2439
  const unknownDocuments = new Map([...documents.entries()].filter(([id2]) => !knownComponents[id2]));
2450
2440
  if (!unknownDocuments.size) {
2451
2441
  return;
@@ -2456,7 +2446,7 @@ function addStyles(documents) {
2456
2446
  const styles = Object.fromEntries(
2457
2447
  [...documents.entries()].map(([id2, document]) => [id2, extractStylesFromDocument(document)])
2458
2448
  );
2459
- (0, import_store41.__dispatch)(slice.actions.addStyles(styles));
2449
+ (0, import_store39.__dispatch)(slice.actions.addStyles(styles));
2460
2450
  }
2461
2451
  function extractStylesFromDocument(document) {
2462
2452
  if (!document.elements?.length) {
@@ -2486,7 +2476,7 @@ function updateDocumentState(documents) {
2486
2476
  }
2487
2477
 
2488
2478
  // src/utils/component-name-validation.ts
2489
- var import_store43 = require("@elementor/store");
2479
+ var import_store41 = require("@elementor/store");
2490
2480
 
2491
2481
  // src/components/create-component-form/utils/component-form-schema.ts
2492
2482
  var import_schema5 = require("@elementor/schema");
@@ -2514,7 +2504,7 @@ var createSubmitComponentSchema = (existingNames) => {
2514
2504
 
2515
2505
  // src/utils/component-name-validation.ts
2516
2506
  function validateComponentName(label) {
2517
- const existingComponentTitles = selectComponents((0, import_store43.__getState)())?.map(({ name }) => name) ?? [];
2507
+ const existingComponentTitles = selectComponents((0, import_store41.__getState)())?.map(({ name }) => name) ?? [];
2518
2508
  const schema = createSubmitComponentSchema(existingComponentTitles);
2519
2509
  const result = schema.safeParse({ componentName: label.toLowerCase() });
2520
2510
  if (result.success) {
@@ -3001,7 +2991,7 @@ var import_editor_elements11 = require("@elementor/editor-elements");
3001
2991
  var import_editor_notifications3 = require("@elementor/editor-notifications");
3002
2992
  var import_editor_ui11 = require("@elementor/editor-ui");
3003
2993
  var import_icons11 = require("@elementor/icons");
3004
- var import_store49 = require("@elementor/store");
2994
+ var import_store47 = require("@elementor/store");
3005
2995
  var import_ui16 = require("@elementor/ui");
3006
2996
  var import_i18n23 = require("@wordpress/i18n");
3007
2997
 
@@ -3013,9 +3003,9 @@ var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
3013
3003
  var import_i18n21 = require("@wordpress/i18n");
3014
3004
 
3015
3005
  // src/utils/is-editing-component.ts
3016
- var import_store45 = require("@elementor/store");
3006
+ var import_store43 = require("@elementor/store");
3017
3007
  function isEditingComponent() {
3018
- const state = (0, import_store45.__getStore)()?.getState();
3008
+ const state = (0, import_store43.__getStore)()?.getState();
3019
3009
  if (!state) {
3020
3010
  return false;
3021
3011
  }
@@ -3126,7 +3116,7 @@ function findNonAtomicElementsInElement(element) {
3126
3116
  // src/store/actions/create-unpublished-component.ts
3127
3117
  var import_editor_elements10 = require("@elementor/editor-elements");
3128
3118
  var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
3129
- var import_store47 = require("@elementor/store");
3119
+ var import_store45 = require("@elementor/store");
3130
3120
  var import_utils4 = require("@elementor/utils");
3131
3121
  var import_i18n22 = require("@wordpress/i18n");
3132
3122
  async function createUnpublishedComponent({
@@ -3147,14 +3137,14 @@ async function createUnpublishedComponent({
3147
3137
  parentId: container?.parent?.id ?? "",
3148
3138
  index: container?.view?._index ?? 0
3149
3139
  };
3150
- (0, import_store47.__dispatch)(
3140
+ (0, import_store45.__dispatch)(
3151
3141
  slice.actions.addUnpublished({
3152
3142
  ...componentBase,
3153
3143
  elements: [elementDataWithOverridablesReverted],
3154
3144
  overridableProps
3155
3145
  })
3156
3146
  );
3157
- (0, import_store47.__dispatch)(slice.actions.addCreatedThisSession(generatedUid));
3147
+ (0, import_store45.__dispatch)(slice.actions.addCreatedThisSession(generatedUid));
3158
3148
  const componentInstance = await replaceElementWithComponent(element, componentBase);
3159
3149
  trackComponentEvent({
3160
3150
  action: "created",
@@ -3167,8 +3157,8 @@ async function createUnpublishedComponent({
3167
3157
  await (0, import_editor_v1_adapters5.__privateRunCommand)("document/save/auto");
3168
3158
  } catch (error) {
3169
3159
  restoreOriginalElement(originalElement, componentInstance.id);
3170
- (0, import_store47.__dispatch)(slice.actions.removeUnpublished(generatedUid));
3171
- (0, import_store47.__dispatch)(slice.actions.removeCreatedThisSession(generatedUid));
3160
+ (0, import_store45.__dispatch)(slice.actions.removeUnpublished(generatedUid));
3161
+ (0, import_store45.__dispatch)(slice.actions.removeCreatedThisSession(generatedUid));
3172
3162
  throw error;
3173
3163
  }
3174
3164
  return { uid: generatedUid, instanceId: componentInstance.id };
@@ -3306,7 +3296,7 @@ function CreateComponentForm() {
3306
3296
  eventData: eventData.current,
3307
3297
  source: "user"
3308
3298
  });
3309
- const publishedComponentId = selectComponentByUid((0, import_store49.__getState)(), uid)?.id;
3299
+ const publishedComponentId = selectComponentByUid((0, import_store47.__getState)(), uid)?.id;
3310
3300
  if (publishedComponentId) {
3311
3301
  switchToComponent(publishedComponentId, instanceId);
3312
3302
  } else {
@@ -3452,22 +3442,22 @@ var React21 = __toESM(require("react"));
3452
3442
  var import_react13 = require("react");
3453
3443
  var import_editor_documents11 = require("@elementor/editor-documents");
3454
3444
  var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
3455
- var import_store53 = require("@elementor/store");
3445
+ var import_store51 = require("@elementor/store");
3456
3446
  var import_utils6 = require("@elementor/utils");
3457
3447
 
3458
3448
  // src/store/actions/update-current-component.ts
3459
3449
  var import_editor_documents10 = require("@elementor/editor-documents");
3460
- var import_store51 = require("@elementor/store");
3450
+ var import_store49 = require("@elementor/store");
3461
3451
  function updateCurrentComponent({
3462
3452
  path,
3463
3453
  currentComponentId
3464
3454
  }) {
3465
- const dispatch21 = (0, import_store51.__getStore)()?.dispatch;
3466
- if (!dispatch21) {
3455
+ const dispatch20 = (0, import_store49.__getStore)()?.dispatch;
3456
+ if (!dispatch20) {
3467
3457
  return;
3468
3458
  }
3469
- dispatch21(slice.actions.setPath(path));
3470
- dispatch21(slice.actions.setCurrentComponentId(currentComponentId));
3459
+ dispatch20(slice.actions.setPath(path));
3460
+ dispatch20(slice.actions.setCurrentComponentId(currentComponentId));
3471
3461
  }
3472
3462
 
3473
3463
  // src/components/edit-component/component-modal.tsx
@@ -3658,7 +3648,7 @@ function EditComponent() {
3658
3648
  function useHandleDocumentSwitches() {
3659
3649
  const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
3660
3650
  const currentComponentId = useCurrentComponentId();
3661
- const path = (0, import_store53.__useSelector)(selectPath);
3651
+ const path = (0, import_store51.__useSelector)(selectPath);
3662
3652
  (0, import_react13.useEffect)(() => {
3663
3653
  return (0, import_editor_v1_adapters7.__privateListenTo)((0, import_editor_v1_adapters7.commandEndEvent)("editor/documents/open"), () => {
3664
3654
  const nextDocument = documentsManager.getCurrent();
@@ -3869,7 +3859,7 @@ var useOverridablePropValue = () => (0, import_react14.useContext)(OverridablePr
3869
3859
  var useComponentInstanceElement = () => (0, import_react14.useContext)(OverridablePropContext)?.componentInstanceElement;
3870
3860
 
3871
3861
  // src/store/actions/update-overridable-prop.ts
3872
- var import_store55 = require("@elementor/store");
3862
+ var import_store53 = require("@elementor/store");
3873
3863
 
3874
3864
  // src/utils/resolve-override-prop-value.ts
3875
3865
  var resolveOverridePropValue = (originalPropValue) => {
@@ -3904,7 +3894,7 @@ function getOverrideValue(overrideProp) {
3904
3894
 
3905
3895
  // src/store/actions/update-overridable-prop.ts
3906
3896
  function updateOverridableProp(componentId, propValue, originPropFields) {
3907
- const overridableProps = selectOverridableProps((0, import_store55.__getState)(), componentId);
3897
+ const overridableProps = selectOverridableProps((0, import_store53.__getState)(), componentId);
3908
3898
  if (!overridableProps) {
3909
3899
  return;
3910
3900
  }
@@ -3929,7 +3919,7 @@ function updateOverridableProp(componentId, propValue, originPropFields) {
3929
3919
  }
3930
3920
  }
3931
3921
  };
3932
- (0, import_store55.__dispatch)(
3922
+ (0, import_store53.__dispatch)(
3933
3923
  slice.actions.setOverridableProps({
3934
3924
  componentId,
3935
3925
  overridableProps: newOverridableProps
@@ -3971,6 +3961,92 @@ var OverrideControlInnerElementNotFoundError = (0, import_utils7.createError)({
3971
3961
  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.`
3972
3962
  });
3973
3963
 
3964
+ // src/components/instance-editing-panel/use-resolved-origin-value.tsx
3965
+ var import_store55 = require("@elementor/store");
3966
+ function useResolvedOriginValue(override, overridableProp) {
3967
+ const components = (0, import_store55.__useSelector)(selectData);
3968
+ return resolveOriginValue(components, override, overridableProp);
3969
+ }
3970
+ function resolveOriginValue(components, matchingOverride, overridableProp) {
3971
+ const { originValue: fallbackOriginValue, originPropFields } = overridableProp;
3972
+ if (hasValue(fallbackOriginValue)) {
3973
+ return fallbackOriginValue;
3974
+ }
3975
+ if (matchingOverride) {
3976
+ const result = getOriginFromOverride(components, matchingOverride);
3977
+ if (hasValue(result)) {
3978
+ return result;
3979
+ }
3980
+ }
3981
+ const { elementId, propKey } = originPropFields ?? {};
3982
+ if (elementId && propKey) {
3983
+ return findOriginValueByElementId(components, elementId, propKey);
3984
+ }
3985
+ return null;
3986
+ }
3987
+ function getOriginFromOverride(components, override) {
3988
+ const overridableValue = componentOverridablePropTypeUtil.extract(override);
3989
+ const innerOverride = overridableValue ? componentInstanceOverridePropTypeUtil.extract(overridableValue.origin_value) : componentInstanceOverridePropTypeUtil.extract(override);
3990
+ if (!innerOverride) {
3991
+ return null;
3992
+ }
3993
+ const { schema_source: schemaSource, override_key: overrideKey, override_value: overrideValue } = innerOverride;
3994
+ const componentId = schemaSource?.id;
3995
+ if (!componentId || !overrideKey) {
3996
+ return null;
3997
+ }
3998
+ const prop = getOverridableProp(components, componentId, overrideKey);
3999
+ if (hasValue(prop?.originValue)) {
4000
+ return prop.originValue;
4001
+ }
4002
+ if (prop?.originPropFields?.elementId) {
4003
+ const targetPropKey = prop.originPropFields.propKey ?? prop.propKey;
4004
+ const result = findOriginValueByElementId(components, prop.originPropFields.elementId, targetPropKey);
4005
+ if (hasValue(result)) {
4006
+ return result;
4007
+ }
4008
+ }
4009
+ const nestedOverridable = componentOverridablePropTypeUtil.extract(overrideValue);
4010
+ if (nestedOverridable) {
4011
+ return getOriginFromOverride(components, componentOverridablePropTypeUtil.create(nestedOverridable));
4012
+ }
4013
+ return null;
4014
+ }
4015
+ function findOriginValueByElementId(components, targetElementId, targetPropKey, visited = /* @__PURE__ */ new Set()) {
4016
+ for (const component of components) {
4017
+ if (visited.has(component.id)) {
4018
+ continue;
4019
+ }
4020
+ visited.add(component.id);
4021
+ const matchingProp = Object.values(component.overridableProps?.props ?? {}).find(
4022
+ ({ elementId, propKey }) => elementId === targetElementId && propKey === targetPropKey
4023
+ );
4024
+ if (!matchingProp) {
4025
+ continue;
4026
+ }
4027
+ if (hasValue(matchingProp.originValue)) {
4028
+ return matchingProp.originValue;
4029
+ }
4030
+ if (matchingProp.originPropFields?.elementId) {
4031
+ const innerPropKey = matchingProp.originPropFields.propKey ?? targetPropKey;
4032
+ return findOriginValueByElementId(
4033
+ components,
4034
+ matchingProp.originPropFields.elementId,
4035
+ innerPropKey,
4036
+ visited
4037
+ );
4038
+ }
4039
+ }
4040
+ return null;
4041
+ }
4042
+ function hasValue(value) {
4043
+ return value !== null && value !== void 0;
4044
+ }
4045
+ function getOverridableProp(components, componentId, overrideKey) {
4046
+ const component = components.find(({ id: id2 }) => id2 === componentId);
4047
+ return component?.overridableProps?.props?.[overrideKey];
4048
+ }
4049
+
3974
4050
  // src/components/instance-editing-panel/override-prop-control.tsx
3975
4051
  function OverridePropControl({ overridableProp, overrides }) {
3976
4052
  return /* @__PURE__ */ React26.createElement(import_editor_editing_panel3.SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React26.createElement(OverrideControl, { overridableProp, overrides }));
@@ -3983,6 +4059,8 @@ function OverrideControl({ overridableProp, overrides }) {
3983
4059
  overridableProp?.originPropFields?.widgetType ?? overridableProp.widgetType
3984
4060
  );
3985
4061
  const controlReplacements = (0, import_editor_editing_panel3.getControlReplacements)();
4062
+ const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
4063
+ const recursiveOriginValue = useResolvedOriginValue(matchingOverride, overridableProp);
3986
4064
  const propType = getPropTypeForComponentOverride(overridableProp);
3987
4065
  if (!propType) {
3988
4066
  return null;
@@ -3996,8 +4074,8 @@ function OverrideControl({ overridableProp, overrides }) {
3996
4074
  if (!componentInstanceId) {
3997
4075
  throw new Error("Component ID is required");
3998
4076
  }
3999
- const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
4000
- const propValue = matchingOverride ? resolveOverridePropValue(matchingOverride) : overridableProp.originValue;
4077
+ const resolvedOverrideValue = matchingOverride ? resolveOverridePropValue(matchingOverride) : null;
4078
+ const propValue = resolvedOverrideValue ?? recursiveOriginValue ?? overridableProp.originValue;
4001
4079
  const value = {
4002
4080
  [overridableProp.overrideKey]: propValue
4003
4081
  };
@@ -4065,7 +4143,7 @@ function OverrideControl({ overridableProp, overrides }) {
4065
4143
  );
4066
4144
  }
4067
4145
  function getMatchingOverride(overrides, overrideKey) {
4068
- return overrides?.find((override) => {
4146
+ const result = overrides?.find((override) => {
4069
4147
  const overridableValue = componentOverridablePropTypeUtil.extract(override);
4070
4148
  let comparedOverrideKey = null;
4071
4149
  if (overridableValue) {
@@ -4075,6 +4153,7 @@ function getMatchingOverride(overrides, overrideKey) {
4075
4153
  }
4076
4154
  return comparedOverrideKey === overrideKey;
4077
4155
  }) ?? null;
4156
+ return result;
4078
4157
  }
4079
4158
  function createOverrideValue({
4080
4159
  matchingOverride,
@@ -4201,7 +4280,7 @@ function InstanceEditingPanel() {
4201
4280
  const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
4202
4281
  const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
4203
4282
  const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
4204
- 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(
4283
+ 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(
4205
4284
  OverridePropsGroup,
4206
4285
  {
4207
4286
  group,
@@ -4441,7 +4520,7 @@ var Indicator2 = (0, import_react16.forwardRef)(({ isOpen, isOverridable, ...pro
4441
4520
 
4442
4521
  // src/components/overridable-props/utils/get-overridable-prop.ts
4443
4522
  var import_store62 = require("@elementor/store");
4444
- function getOverridableProp({
4523
+ function getOverridableProp2({
4445
4524
  componentId,
4446
4525
  overrideKey
4447
4526
  }) {
@@ -4505,7 +4584,7 @@ function Content2({ componentId, overridableProps }) {
4505
4584
  }
4506
4585
  popupState.close();
4507
4586
  };
4508
- const overridableConfig = overridableValue ? getOverridableProp({ componentId, overrideKey: overridableValue.override_key }) : void 0;
4587
+ const overridableConfig = overridableValue ? getOverridableProp2({ componentId, overrideKey: overridableValue.override_key }) : void 0;
4509
4588
  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(
4510
4589
  import_ui24.Popover,
4511
4590
  {
@@ -5170,7 +5249,7 @@ async function publishDraftComponentsInPageBeforeSave({ status, elements }) {
5170
5249
  return;
5171
5250
  }
5172
5251
  await apiClient.updateStatuses(draftIds, "publish");
5173
- draftIds.forEach((id2) => invalidateComponentCache(id2));
5252
+ draftIds.forEach((id2) => invalidateComponentDocumentData(id2));
5174
5253
  }
5175
5254
 
5176
5255
  // src/sync/set-component-overridable-props-settings-before-save.ts