@elementor/editor-controls 3.32.0-95 → 3.33.0-97

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
@@ -1264,6 +1264,42 @@ var import_i18n5 = require("@wordpress/i18n");
1264
1264
  var React24 = __toESM(require("react"));
1265
1265
  var import_react16 = require("react");
1266
1266
  var import_ui19 = require("@elementor/ui");
1267
+
1268
+ // src/services/event-bus.ts
1269
+ var EventBus = class {
1270
+ listeners = /* @__PURE__ */ new Map();
1271
+ subscribe(eventName, callback) {
1272
+ if (!this.listeners.has(eventName)) {
1273
+ this.listeners.set(eventName, /* @__PURE__ */ new Set());
1274
+ }
1275
+ const eventListeners = this.listeners.get(eventName);
1276
+ if (eventListeners) {
1277
+ eventListeners.add(callback);
1278
+ }
1279
+ }
1280
+ unsubscribe(eventName, callback) {
1281
+ const eventListeners = this.listeners.get(eventName);
1282
+ if (!eventListeners) {
1283
+ return;
1284
+ }
1285
+ eventListeners.delete(callback);
1286
+ if (eventListeners.size === 0) {
1287
+ this.listeners.delete(eventName);
1288
+ }
1289
+ }
1290
+ emit(eventName, data) {
1291
+ const eventListeners = this.listeners.get(eventName);
1292
+ if (eventListeners) {
1293
+ eventListeners.forEach((callback) => callback(data));
1294
+ }
1295
+ }
1296
+ clearAll() {
1297
+ this.listeners.clear();
1298
+ }
1299
+ };
1300
+ var eventBus = new EventBus();
1301
+
1302
+ // src/components/unstable-repeater/context/repeater-context.tsx
1267
1303
  var RepeaterContext = (0, import_react16.createContext)(null);
1268
1304
  var EMPTY_OPEN_ITEM = -1;
1269
1305
  var useRepeaterContext = () => {
@@ -1312,9 +1348,16 @@ var RepeaterContextProvider = ({
1312
1348
  setItems(newItems);
1313
1349
  setOpenItemIndex(newIndex);
1314
1350
  popoverState.open(rowRef ?? ev);
1351
+ eventBus.emit(`${propTypeUtil.key}-item-added`, {
1352
+ itemValue: initial.value
1353
+ });
1315
1354
  };
1316
1355
  const removeItem = (index) => {
1356
+ const itemToRemove = items2[index];
1317
1357
  setItems(items2.filter((_, pos) => pos !== index));
1358
+ eventBus.emit(`${propTypeUtil.key}-item-removed`, {
1359
+ itemValue: itemToRemove?.value
1360
+ });
1318
1361
  };
1319
1362
  const updateItem = (updatedItem, index) => {
1320
1363
  const newItems = [...items2.slice(0, index), updatedItem, ...items2.slice(index + 1)];
@@ -5062,6 +5105,29 @@ var transitionsItemsList = transitionProperties.map((category) => ({
5062
5105
  items: category.properties.map((property) => property.label)
5063
5106
  }));
5064
5107
 
5108
+ // src/controls/transition-control/trainsition-events.ts
5109
+ var import_editor_elements3 = require("@elementor/editor-elements");
5110
+ var import_utils5 = require("@elementor/utils");
5111
+ var transitionRepeaterMixpanelEvent = {
5112
+ eventName: "click_added_transition",
5113
+ location: "V4 Style Tab",
5114
+ secondaryLocation: "Transition control",
5115
+ trigger: "click"
5116
+ };
5117
+ function subscribeToTransitionEvent() {
5118
+ eventBus.subscribe("transition-item-added", (data) => {
5119
+ const payload = data;
5120
+ const value = payload?.itemValue?.selection?.value?.value?.value;
5121
+ const selectedElements = (0, import_editor_elements3.getSelectedElements)();
5122
+ const widgetType = selectedElements[0]?.type ?? null;
5123
+ (0, import_utils5.sendMixpanelEvent)({
5124
+ transition_type: value ?? "unknown",
5125
+ ...transitionRepeaterMixpanelEvent,
5126
+ widget_type: widgetType
5127
+ });
5128
+ });
5129
+ }
5130
+
5065
5131
  // src/controls/transition-control/transition-selector.tsx
5066
5132
  var React89 = __toESM(require("react"));
5067
5133
  var import_react45 = require("react");
@@ -5219,6 +5285,7 @@ var disableAddItemTooltipContent = /* @__PURE__ */ React90.createElement(
5219
5285
  /* @__PURE__ */ React90.createElement(import_ui78.AlertTitle, null, (0, import_i18n47.__)("Transitions", "elementor")),
5220
5286
  /* @__PURE__ */ React90.createElement(import_ui78.Box, { component: "span" }, /* @__PURE__ */ React90.createElement(import_ui78.Typography, { variant: "body2" }, (0, import_i18n47.__)("Switch to 'Normal' state to add a transition.", "elementor")))
5221
5287
  );
5288
+ subscribeToTransitionEvent();
5222
5289
  var TransitionRepeaterControl = createControl(
5223
5290
  ({
5224
5291
  recentlyUsedListGetter,