@elementor/editor-global-classes 4.2.0-870 → 4.2.0-872
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.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +61 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +20 -20
- package/src/components/class-manager/global-classes-list.tsx +3 -2
- package/src/components/global-styles-import-listener.tsx +23 -3
- package/src/components/open-panel-from-event.tsx +19 -0
- package/src/global-classes-styles-provider.ts +1 -1
- package/src/init.ts +6 -0
- package/src/store.ts +29 -0
- package/src/utils/create-labels-for-classes.ts +4 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { StyleDefinitionID } from '@elementor/editor-styles';
|
|
2
|
+
import { StyleDefinitionID, StyleDefinition } from '@elementor/editor-styles';
|
|
3
3
|
|
|
4
4
|
type ClassManagerPanelEmbeddedProps = {
|
|
5
5
|
onRequestClose: () => void | Promise<void>;
|
|
@@ -20,6 +20,6 @@ type GlobalClassIndexEntry = {
|
|
|
20
20
|
|
|
21
21
|
declare function addDocumentClasses(documentId: number): Promise<void>;
|
|
22
22
|
|
|
23
|
-
declare function createLabelsForClasses(entries: GlobalClassIndexEntry
|
|
23
|
+
declare function createLabelsForClasses(entries: Array<GlobalClassIndexEntry | StyleDefinition>): Record<StyleDefinitionID, string>;
|
|
24
24
|
|
|
25
25
|
export { ClassManagerPanelEmbedded, type ClassManagerPanelEmbeddedProps, GLOBAL_CLASSES_URI, type GlobalClassIndexEntry, addDocumentClasses, createLabelsForClasses, init, loadExistingClasses };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { StyleDefinitionID } from '@elementor/editor-styles';
|
|
2
|
+
import { StyleDefinitionID, StyleDefinition } from '@elementor/editor-styles';
|
|
3
3
|
|
|
4
4
|
type ClassManagerPanelEmbeddedProps = {
|
|
5
5
|
onRequestClose: () => void | Promise<void>;
|
|
@@ -20,6 +20,6 @@ type GlobalClassIndexEntry = {
|
|
|
20
20
|
|
|
21
21
|
declare function addDocumentClasses(documentId: number): Promise<void>;
|
|
22
22
|
|
|
23
|
-
declare function createLabelsForClasses(entries: GlobalClassIndexEntry
|
|
23
|
+
declare function createLabelsForClasses(entries: Array<GlobalClassIndexEntry | StyleDefinition>): Record<StyleDefinitionID, string>;
|
|
24
24
|
|
|
25
25
|
export { ClassManagerPanelEmbedded, type ClassManagerPanelEmbeddedProps, GLOBAL_CLASSES_URI, type GlobalClassIndexEntry, addDocumentClasses, createLabelsForClasses, init, loadExistingClasses };
|
package/dist/index.js
CHANGED
|
@@ -282,6 +282,20 @@ var slice = (0, import_store.__createSlice)({
|
|
|
282
282
|
state.classLabels[id2] = previewClassData.label;
|
|
283
283
|
}
|
|
284
284
|
});
|
|
285
|
+
},
|
|
286
|
+
setOrderWithoutHistory(state, { payload }) {
|
|
287
|
+
state.data.order = payload;
|
|
288
|
+
},
|
|
289
|
+
updateAfterTemplateImport(state, {
|
|
290
|
+
payload
|
|
291
|
+
}) {
|
|
292
|
+
state.initialData.frontend.items = { ...state.initialData.frontend.items, ...payload.addedItems };
|
|
293
|
+
state.initialData.frontend.order = [...state.initialData.frontend.order, ...payload.addedIdsOrder];
|
|
294
|
+
state.initialData.preview.items = { ...state.initialData.preview.items, ...payload.addedItems };
|
|
295
|
+
state.initialData.preview.order = [...state.initialData.preview.order, ...payload.addedIdsOrder];
|
|
296
|
+
state.data.items = { ...state.data.items, ...payload.addedItems };
|
|
297
|
+
state.data.order = [...state.data.order, ...payload.addedIdsOrder];
|
|
298
|
+
state.classLabels = { ...state.classLabels, ...payload.addedClassLabels };
|
|
285
299
|
}
|
|
286
300
|
}
|
|
287
301
|
});
|
|
@@ -2030,8 +2044,9 @@ var useFilteredCssClasses = () => {
|
|
|
2030
2044
|
[cssClasses]
|
|
2031
2045
|
);
|
|
2032
2046
|
const filteredClasses = (0, import_react8.useMemo)(() => {
|
|
2033
|
-
|
|
2034
|
-
|
|
2047
|
+
const normalizedSearch = searchValue.replace(/[^a-zA-Z0-9_-]/g, "").toLowerCase();
|
|
2048
|
+
if (normalizedSearch.length > 1) {
|
|
2049
|
+
return lowercaseLabels.filter((cssClass) => cssClass.lowerLabel.includes(normalizedSearch));
|
|
2035
2050
|
}
|
|
2036
2051
|
return cssClasses;
|
|
2037
2052
|
}, [searchValue, cssClasses, lowercaseLabels]);
|
|
@@ -2529,7 +2544,7 @@ async function fetchAndMergeClasses() {
|
|
|
2529
2544
|
}
|
|
2530
2545
|
|
|
2531
2546
|
// src/global-classes-styles-provider.ts
|
|
2532
|
-
var MAX_CLASSES =
|
|
2547
|
+
var MAX_CLASSES = 1e3;
|
|
2533
2548
|
var GLOBAL_CLASSES_PROVIDER_KEY = "global-classes";
|
|
2534
2549
|
var PREGENERATED_LINK_PATTERN = /^global-([0-9]+-)?(preview|frontend)-[a-zA-Z_-]+-css$/;
|
|
2535
2550
|
var globalClassesStylesProvider = (0, import_editor_styles_repository2.createStylesProvider)({
|
|
@@ -2672,7 +2687,7 @@ var import_editor_mcp2 = require("@elementor/editor-mcp");
|
|
|
2672
2687
|
var import_editor_panels2 = require("@elementor/editor-panels");
|
|
2673
2688
|
var import_editor_styles_repository5 = require("@elementor/editor-styles-repository");
|
|
2674
2689
|
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
2675
|
-
var
|
|
2690
|
+
var import_store32 = require("@elementor/store");
|
|
2676
2691
|
|
|
2677
2692
|
// src/components/class-manager/class-manager-button.tsx
|
|
2678
2693
|
var React20 = __toESM(require("react"));
|
|
@@ -2820,8 +2835,20 @@ var import_store28 = require("@elementor/store");
|
|
|
2820
2835
|
function GlobalStylesImportListener() {
|
|
2821
2836
|
const dispatch7 = (0, import_store28.__useDispatch)();
|
|
2822
2837
|
(0, import_react11.useEffect)(() => {
|
|
2823
|
-
const handleGlobalStylesImported = () => {
|
|
2824
|
-
|
|
2838
|
+
const handleGlobalStylesImported = async (event) => {
|
|
2839
|
+
const customEvent = event;
|
|
2840
|
+
const globalClasses = customEvent.detail?.global_classes;
|
|
2841
|
+
if (!globalClasses?.added_items_order || !globalClasses?.added_items || globalClasses?.added_items_order?.length === 0) {
|
|
2842
|
+
loadCurrentDocumentClasses();
|
|
2843
|
+
return;
|
|
2844
|
+
}
|
|
2845
|
+
dispatch7(
|
|
2846
|
+
slice.actions.updateAfterTemplateImport({
|
|
2847
|
+
addedItems: globalClasses.added_items,
|
|
2848
|
+
addedIdsOrder: globalClasses.added_items_order,
|
|
2849
|
+
addedClassLabels: createLabelsForClasses(Object.values(globalClasses.added_items))
|
|
2850
|
+
})
|
|
2851
|
+
);
|
|
2825
2852
|
};
|
|
2826
2853
|
window.addEventListener(import_editor_canvas.GLOBAL_STYLES_IMPORTED_EVENT, handleGlobalStylesImported);
|
|
2827
2854
|
return () => {
|
|
@@ -2831,16 +2858,29 @@ function GlobalStylesImportListener() {
|
|
|
2831
2858
|
return null;
|
|
2832
2859
|
}
|
|
2833
2860
|
|
|
2834
|
-
// src/components/open-panel-from-
|
|
2861
|
+
// src/components/open-panel-from-event.tsx
|
|
2835
2862
|
var import_react12 = require("react");
|
|
2863
|
+
var EVENT_OPEN_GLOBAL_CLASSES_MANAGER = "elementor/open-global-classes-manager";
|
|
2864
|
+
function OpenPanelFromEvent() {
|
|
2865
|
+
const { open } = usePanelActions();
|
|
2866
|
+
(0, import_react12.useEffect)(() => {
|
|
2867
|
+
const handler2 = () => open();
|
|
2868
|
+
window.addEventListener(EVENT_OPEN_GLOBAL_CLASSES_MANAGER, handler2);
|
|
2869
|
+
return () => window.removeEventListener(EVENT_OPEN_GLOBAL_CLASSES_MANAGER, handler2);
|
|
2870
|
+
}, [open]);
|
|
2871
|
+
return null;
|
|
2872
|
+
}
|
|
2873
|
+
|
|
2874
|
+
// src/components/open-panel-from-url.tsx
|
|
2875
|
+
var import_react13 = require("react");
|
|
2836
2876
|
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
2837
2877
|
var ACTIVE_PANEL_PARAM = "active-panel";
|
|
2838
2878
|
var PANEL_ID = "global-classes-manager";
|
|
2839
2879
|
var DEFAULT_PANEL_ROUTE = "panel/elements";
|
|
2840
2880
|
function OpenPanelFromUrl() {
|
|
2841
2881
|
const { open } = usePanelActions();
|
|
2842
|
-
const hasOpened = (0,
|
|
2843
|
-
(0,
|
|
2882
|
+
const hasOpened = (0, import_react13.useRef)(false);
|
|
2883
|
+
(0, import_react13.useEffect)(() => {
|
|
2844
2884
|
const urlParams = new URLSearchParams(window.location.search);
|
|
2845
2885
|
const activePanel = urlParams.get(ACTIVE_PANEL_PARAM);
|
|
2846
2886
|
if (activePanel !== PANEL_ID) {
|
|
@@ -2861,10 +2901,10 @@ function OpenPanelFromUrl() {
|
|
|
2861
2901
|
}
|
|
2862
2902
|
|
|
2863
2903
|
// src/components/populate-store.tsx
|
|
2864
|
-
var
|
|
2904
|
+
var import_react14 = require("react");
|
|
2865
2905
|
var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
|
|
2866
2906
|
function PopulateStore() {
|
|
2867
|
-
(0,
|
|
2907
|
+
(0, import_react14.useEffect)(() => {
|
|
2868
2908
|
loadCurrentDocumentClasses();
|
|
2869
2909
|
(0, import_editor_v1_adapters5.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
2870
2910
|
await loadCurrentDocumentClasses();
|
|
@@ -3300,14 +3340,14 @@ var initMcpIntegration = (reg, canvasMcpEntry) => {
|
|
|
3300
3340
|
};
|
|
3301
3341
|
|
|
3302
3342
|
// src/sync-with-document.tsx
|
|
3303
|
-
var
|
|
3343
|
+
var import_react15 = require("react");
|
|
3304
3344
|
var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
|
|
3305
3345
|
|
|
3306
3346
|
// src/sync-with-document-save.ts
|
|
3307
3347
|
var import_editor_current_user3 = require("@elementor/editor-current-user");
|
|
3308
3348
|
var import_editor_documents6 = require("@elementor/editor-documents");
|
|
3309
3349
|
var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
|
|
3310
|
-
var
|
|
3350
|
+
var import_store30 = require("@elementor/store");
|
|
3311
3351
|
var pendingSave = null;
|
|
3312
3352
|
function syncWithDocumentSave(panelActions) {
|
|
3313
3353
|
const unsubscribe = syncDirtyState();
|
|
@@ -3316,7 +3356,7 @@ function syncWithDocumentSave(panelActions) {
|
|
|
3316
3356
|
return unsubscribe;
|
|
3317
3357
|
}
|
|
3318
3358
|
function syncDirtyState() {
|
|
3319
|
-
return (0,
|
|
3359
|
+
return (0, import_store30.__subscribeWithSelector)(selectIsDirty, () => {
|
|
3320
3360
|
if (!isDirty()) {
|
|
3321
3361
|
return;
|
|
3322
3362
|
}
|
|
@@ -3359,13 +3399,13 @@ function bindBeforeSaveTemplateAction() {
|
|
|
3359
3399
|
}));
|
|
3360
3400
|
}
|
|
3361
3401
|
function isDirty() {
|
|
3362
|
-
return selectIsDirty((0,
|
|
3402
|
+
return selectIsDirty((0, import_store30.__getState)());
|
|
3363
3403
|
}
|
|
3364
3404
|
|
|
3365
3405
|
// src/sync-with-document.tsx
|
|
3366
3406
|
function SyncWithDocumentSave() {
|
|
3367
3407
|
const { open: openClassPanel } = usePanelActions();
|
|
3368
|
-
(0,
|
|
3408
|
+
(0, import_react15.useEffect)(() => {
|
|
3369
3409
|
const unsubscribe = (0, import_editor_v1_adapters7.__privateListenTo)((0, import_editor_v1_adapters7.v1ReadyEvent)(), () => {
|
|
3370
3410
|
const open = (0, import_editor_v1_adapters7.isExperimentActive)("e_editor_design_system_panel") ? () => {
|
|
3371
3411
|
window.dispatchEvent(new CustomEvent("elementor/open-global-classes-manager"));
|
|
@@ -3379,7 +3419,7 @@ function SyncWithDocumentSave() {
|
|
|
3379
3419
|
|
|
3380
3420
|
// src/init.ts
|
|
3381
3421
|
function init() {
|
|
3382
|
-
(0,
|
|
3422
|
+
(0, import_store32.__registerSlice)(slice);
|
|
3383
3423
|
if (!(0, import_editor_v1_adapters8.isExperimentActive)("e_editor_design_system_panel")) {
|
|
3384
3424
|
(0, import_editor_panels2.__registerPanel)(panel);
|
|
3385
3425
|
}
|
|
@@ -3405,6 +3445,10 @@ function init() {
|
|
|
3405
3445
|
id: "global-classes-open-panel-from-url",
|
|
3406
3446
|
component: OpenPanelFromUrl
|
|
3407
3447
|
});
|
|
3448
|
+
(0, import_editor.injectIntoLogic)({
|
|
3449
|
+
id: "global-classes-open-panel-from-event",
|
|
3450
|
+
component: OpenPanelFromEvent
|
|
3451
|
+
});
|
|
3408
3452
|
}
|
|
3409
3453
|
(0, import_editor_editing_panel2.injectIntoCssClassConvert)({
|
|
3410
3454
|
id: "global-classes-convert-from-local-class",
|