@elementor/editor-controls 3.33.0-96 → 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 +67 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +67 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +14 -14
- package/src/components/unstable-repeater/context/repeater-context.tsx +16 -1
- package/src/controls/transition-control/trainsition-events.ts +28 -0
- package/src/controls/transition-control/transition-repeater-control.tsx +3 -0
- package/src/services/event-bus.ts +38 -0
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,
|