@elementor/editor-canvas 3.33.0-102 → 3.33.0-104
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
|
@@ -688,25 +688,25 @@ var attributesTransformer = createTransformer((values) => {
|
|
|
688
688
|
|
|
689
689
|
// src/transformers/settings/classes-transformer.ts
|
|
690
690
|
var import_editor_styles_repository3 = require("@elementor/editor-styles-repository");
|
|
691
|
+
function transformClassId(id, cache) {
|
|
692
|
+
if (!cache.has(id)) {
|
|
693
|
+
const provider2 = import_editor_styles_repository3.stylesRepository.getProviders().find((p) => {
|
|
694
|
+
return p.actions.all().find((style) => style.id === id);
|
|
695
|
+
});
|
|
696
|
+
if (!provider2) {
|
|
697
|
+
return id;
|
|
698
|
+
}
|
|
699
|
+
cache.set(id, provider2.getKey());
|
|
700
|
+
}
|
|
701
|
+
const providerKey = cache.get(id);
|
|
702
|
+
const provider = import_editor_styles_repository3.stylesRepository.getProviderByKey(providerKey);
|
|
703
|
+
return provider?.actions.resolveCssName(id) ?? id;
|
|
704
|
+
}
|
|
691
705
|
function createClassesTransformer() {
|
|
692
706
|
const cache = /* @__PURE__ */ new Map();
|
|
693
707
|
return createTransformer((value) => {
|
|
694
|
-
return value.map((id) =>
|
|
695
|
-
if (!cache.has(id)) {
|
|
696
|
-
cache.set(id, getCssName(id));
|
|
697
|
-
}
|
|
698
|
-
return cache.get(id);
|
|
699
|
-
}).filter(Boolean);
|
|
700
|
-
});
|
|
701
|
-
}
|
|
702
|
-
function getCssName(id) {
|
|
703
|
-
const provider = import_editor_styles_repository3.stylesRepository.getProviders().find((p) => {
|
|
704
|
-
return p.actions.all().find((style) => style.id === id);
|
|
708
|
+
return value.map((id) => transformClassId(id, cache)).filter(Boolean);
|
|
705
709
|
});
|
|
706
|
-
if (!provider) {
|
|
707
|
-
return id;
|
|
708
|
-
}
|
|
709
|
-
return provider.actions.resolveCssName(id);
|
|
710
710
|
}
|
|
711
711
|
|
|
712
712
|
// src/transformers/settings/link-transformer.ts
|
package/dist/index.mjs
CHANGED
|
@@ -654,25 +654,25 @@ var attributesTransformer = createTransformer((values) => {
|
|
|
654
654
|
|
|
655
655
|
// src/transformers/settings/classes-transformer.ts
|
|
656
656
|
import { stylesRepository as stylesRepository3 } from "@elementor/editor-styles-repository";
|
|
657
|
+
function transformClassId(id, cache) {
|
|
658
|
+
if (!cache.has(id)) {
|
|
659
|
+
const provider2 = stylesRepository3.getProviders().find((p) => {
|
|
660
|
+
return p.actions.all().find((style) => style.id === id);
|
|
661
|
+
});
|
|
662
|
+
if (!provider2) {
|
|
663
|
+
return id;
|
|
664
|
+
}
|
|
665
|
+
cache.set(id, provider2.getKey());
|
|
666
|
+
}
|
|
667
|
+
const providerKey = cache.get(id);
|
|
668
|
+
const provider = stylesRepository3.getProviderByKey(providerKey);
|
|
669
|
+
return provider?.actions.resolveCssName(id) ?? id;
|
|
670
|
+
}
|
|
657
671
|
function createClassesTransformer() {
|
|
658
672
|
const cache = /* @__PURE__ */ new Map();
|
|
659
673
|
return createTransformer((value) => {
|
|
660
|
-
return value.map((id) =>
|
|
661
|
-
if (!cache.has(id)) {
|
|
662
|
-
cache.set(id, getCssName(id));
|
|
663
|
-
}
|
|
664
|
-
return cache.get(id);
|
|
665
|
-
}).filter(Boolean);
|
|
666
|
-
});
|
|
667
|
-
}
|
|
668
|
-
function getCssName(id) {
|
|
669
|
-
const provider = stylesRepository3.getProviders().find((p) => {
|
|
670
|
-
return p.actions.all().find((style) => style.id === id);
|
|
674
|
+
return value.map((id) => transformClassId(id, cache)).filter(Boolean);
|
|
671
675
|
});
|
|
672
|
-
if (!provider) {
|
|
673
|
-
return id;
|
|
674
|
-
}
|
|
675
|
-
return provider.actions.resolveCssName(id);
|
|
676
676
|
}
|
|
677
677
|
|
|
678
678
|
// src/transformers/settings/link-transformer.ts
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/editor-canvas",
|
|
3
3
|
"description": "Elementor Editor Canvas",
|
|
4
|
-
"version": "3.33.0-
|
|
4
|
+
"version": "3.33.0-104",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Elementor Team",
|
|
7
7
|
"homepage": "https://elementor.com/",
|
|
@@ -37,19 +37,19 @@
|
|
|
37
37
|
"react-dom": "^18.3.1"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@elementor/editor": "3.33.0-
|
|
41
|
-
"@elementor/editor-notifications": "3.33.0-
|
|
42
|
-
"@elementor/editor-documents": "3.33.0-
|
|
43
|
-
"@elementor/editor-elements": "3.33.0-
|
|
44
|
-
"@elementor/editor-props": "3.33.0-
|
|
45
|
-
"@elementor/editor-responsive": "3.33.0-
|
|
46
|
-
"@elementor/editor-styles": "3.33.0-
|
|
47
|
-
"@elementor/editor-styles-repository": "3.33.0-
|
|
48
|
-
"@elementor/editor-v1-adapters": "3.33.0-
|
|
49
|
-
"@elementor/twing": "3.33.0-
|
|
40
|
+
"@elementor/editor": "3.33.0-104",
|
|
41
|
+
"@elementor/editor-notifications": "3.33.0-104",
|
|
42
|
+
"@elementor/editor-documents": "3.33.0-104",
|
|
43
|
+
"@elementor/editor-elements": "3.33.0-104",
|
|
44
|
+
"@elementor/editor-props": "3.33.0-104",
|
|
45
|
+
"@elementor/editor-responsive": "3.33.0-104",
|
|
46
|
+
"@elementor/editor-styles": "3.33.0-104",
|
|
47
|
+
"@elementor/editor-styles-repository": "3.33.0-104",
|
|
48
|
+
"@elementor/editor-v1-adapters": "3.33.0-104",
|
|
49
|
+
"@elementor/twing": "3.33.0-104",
|
|
50
50
|
"@elementor/ui": "1.36.12",
|
|
51
|
-
"@elementor/utils": "3.33.0-
|
|
52
|
-
"@elementor/wp-media": "3.33.0-
|
|
51
|
+
"@elementor/utils": "3.33.0-104",
|
|
52
|
+
"@elementor/wp-media": "3.33.0-104",
|
|
53
53
|
"@floating-ui/react": "^0.27.5",
|
|
54
54
|
"@wordpress/i18n": "^5.13.0"
|
|
55
55
|
},
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { createMockStyleDefinition, createMockStylesProvider } from 'test-utils';
|
|
2
1
|
import {
|
|
3
2
|
booleanPropTypeUtil,
|
|
4
|
-
classesPropTypeUtil,
|
|
5
3
|
imageAttachmentIdPropType,
|
|
6
4
|
imagePropTypeUtil,
|
|
7
5
|
imageSrcPropTypeUtil,
|
|
@@ -12,7 +10,6 @@ import {
|
|
|
12
10
|
stringPropTypeUtil,
|
|
13
11
|
urlPropTypeUtil,
|
|
14
12
|
} from '@elementor/editor-props';
|
|
15
|
-
import { stylesRepository } from '@elementor/editor-styles-repository';
|
|
16
13
|
import { getMediaAttachment } from '@elementor/wp-media';
|
|
17
14
|
|
|
18
15
|
import { initSettingsTransformers } from '../init-settings-transformers';
|
|
@@ -21,7 +18,6 @@ import { settingsTransformersRegistry } from '../settings-transformers-registry'
|
|
|
21
18
|
import { mockAttachmentData } from './mock-attachment-data';
|
|
22
19
|
import {
|
|
23
20
|
booleanPropType,
|
|
24
|
-
classesPropType,
|
|
25
21
|
imagePropType,
|
|
26
22
|
linkPropType,
|
|
27
23
|
numberPropType,
|
|
@@ -69,42 +65,6 @@ describe( 'settings props resolver', () => {
|
|
|
69
65
|
boolean: true,
|
|
70
66
|
},
|
|
71
67
|
},
|
|
72
|
-
{
|
|
73
|
-
name: 'classes',
|
|
74
|
-
props: {
|
|
75
|
-
classes: classesPropTypeUtil.create( [
|
|
76
|
-
'test-1',
|
|
77
|
-
'test-2-suffix',
|
|
78
|
-
'without-provider',
|
|
79
|
-
'',
|
|
80
|
-
null as unknown as string,
|
|
81
|
-
undefined as unknown as string,
|
|
82
|
-
] ),
|
|
83
|
-
},
|
|
84
|
-
prepare: () => {
|
|
85
|
-
jest.mocked( stylesRepository.getProviders ).mockReturnValue( [
|
|
86
|
-
createMockStylesProvider( {
|
|
87
|
-
key: 'test-1-provider',
|
|
88
|
-
actions: {
|
|
89
|
-
all: () => [ createMockStyleDefinition( { id: 'test-1' } ) ],
|
|
90
|
-
},
|
|
91
|
-
} ),
|
|
92
|
-
createMockStylesProvider( {
|
|
93
|
-
key: 'test-2-provider',
|
|
94
|
-
actions: {
|
|
95
|
-
resolveCssName: ( id ) => `${ id }-suffix`,
|
|
96
|
-
all: () => [ createMockStyleDefinition( { id: 'test-2' } ) ],
|
|
97
|
-
},
|
|
98
|
-
} ),
|
|
99
|
-
] );
|
|
100
|
-
},
|
|
101
|
-
schema: {
|
|
102
|
-
classes: classesPropType(),
|
|
103
|
-
},
|
|
104
|
-
expected: {
|
|
105
|
-
classes: [ 'test-1', 'test-2-suffix', 'without-provider' ],
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
68
|
{
|
|
109
69
|
name: 'link',
|
|
110
70
|
props: {
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createClassesTransformer } from '../classes-transformer';
|
|
2
|
+
|
|
3
|
+
jest.mock( '@elementor/editor-styles-repository', () => ( {
|
|
4
|
+
stylesRepository: {
|
|
5
|
+
getProviders: jest.fn(),
|
|
6
|
+
getProviderByKey: jest.fn(),
|
|
7
|
+
},
|
|
8
|
+
} ) );
|
|
9
|
+
|
|
10
|
+
const mockStylesRepository = require( '@elementor/editor-styles-repository' ).stylesRepository;
|
|
11
|
+
|
|
12
|
+
describe( 'createClassesTransformer', () => {
|
|
13
|
+
const createMockProvider = ( key: string, styles: Array< { id: string } > = [] ) => ( {
|
|
14
|
+
getKey: () => key,
|
|
15
|
+
actions: {
|
|
16
|
+
all: () => styles,
|
|
17
|
+
resolveCssName: jest.fn( ( id: string ): string | null => `resolved-${ id }` ),
|
|
18
|
+
},
|
|
19
|
+
} );
|
|
20
|
+
|
|
21
|
+
const createMockStyle = ( id: string ) => ( { id } );
|
|
22
|
+
|
|
23
|
+
beforeEach( () => {
|
|
24
|
+
jest.clearAllMocks();
|
|
25
|
+
} );
|
|
26
|
+
|
|
27
|
+
it( 'should transform class IDs using provider CSS names', () => {
|
|
28
|
+
const provider = createMockProvider( 'test-provider', [ createMockStyle( 'class-1' ) ] );
|
|
29
|
+
const provider2 = createMockProvider( 'test-provider-2', [ createMockStyle( 'class-2' ) ] );
|
|
30
|
+
mockStylesRepository.getProviders.mockReturnValue( [ provider, provider2 ] );
|
|
31
|
+
mockStylesRepository.getProviderByKey.mockReturnValueOnce( provider ).mockReturnValueOnce( provider2 );
|
|
32
|
+
const transformer = createClassesTransformer();
|
|
33
|
+
|
|
34
|
+
const result = transformer( [ 'class-1', 'class-2' ], { key: 'test-key' } );
|
|
35
|
+
|
|
36
|
+
expect( result ).toEqual( [ 'resolved-class-1', 'resolved-class-2' ] );
|
|
37
|
+
expect( provider.actions.resolveCssName ).toHaveBeenCalledWith( 'class-1' );
|
|
38
|
+
} );
|
|
39
|
+
|
|
40
|
+
it( 'should return original ID when no provider is found', () => {
|
|
41
|
+
mockStylesRepository.getProviders.mockReturnValue( [] );
|
|
42
|
+
const transformer = createClassesTransformer();
|
|
43
|
+
|
|
44
|
+
const result = transformer( [ 'unknown-class' ], { key: 'test-key' } );
|
|
45
|
+
|
|
46
|
+
expect( result ).toEqual( [ 'unknown-class' ] );
|
|
47
|
+
} );
|
|
48
|
+
|
|
49
|
+
it( 'should return original ID when provider has no matching style', () => {
|
|
50
|
+
const provider = createMockProvider( 'test-provider', [ createMockStyle( 'other-class' ) ] );
|
|
51
|
+
mockStylesRepository.getProviders.mockReturnValue( [ provider ] );
|
|
52
|
+
const transformer = createClassesTransformer();
|
|
53
|
+
|
|
54
|
+
const result = transformer( [ 'unknown-class' ], { key: 'test-key' } );
|
|
55
|
+
|
|
56
|
+
expect( result ).toEqual( [ 'unknown-class' ] );
|
|
57
|
+
} );
|
|
58
|
+
|
|
59
|
+
it( 'should cache provider keys to avoid repeated lookups', () => {
|
|
60
|
+
const provider = createMockProvider( 'test-provider', [ createMockStyle( 'class-1' ) ] );
|
|
61
|
+
mockStylesRepository.getProviders.mockReturnValue( [ provider ] );
|
|
62
|
+
mockStylesRepository.getProviderByKey.mockReturnValue( provider );
|
|
63
|
+
const transformer = createClassesTransformer();
|
|
64
|
+
|
|
65
|
+
transformer( [ 'class-1' ], { key: 'test-key' } );
|
|
66
|
+
transformer( [ 'class-1' ], { key: 'test-key' } );
|
|
67
|
+
|
|
68
|
+
expect( mockStylesRepository.getProviders ).toHaveBeenCalledTimes( 1 );
|
|
69
|
+
expect( provider.actions.resolveCssName ).toHaveBeenCalledTimes( 2 );
|
|
70
|
+
} );
|
|
71
|
+
|
|
72
|
+
it( 'should handle multiple class IDs', () => {
|
|
73
|
+
const provider1 = createMockProvider( 'provider-1', [ createMockStyle( 'class-1' ) ] );
|
|
74
|
+
const provider2 = createMockProvider( 'provider-2', [ createMockStyle( 'class-2' ) ] );
|
|
75
|
+
mockStylesRepository.getProviders.mockReturnValue( [ provider1, provider2 ] );
|
|
76
|
+
mockStylesRepository.getProviderByKey.mockReturnValueOnce( provider1 ).mockReturnValueOnce( provider2 );
|
|
77
|
+
const transformer = createClassesTransformer();
|
|
78
|
+
|
|
79
|
+
const result = transformer( [ 'class-1', 'class-2' ], { key: 'test-key' } );
|
|
80
|
+
|
|
81
|
+
expect( result ).toEqual( [ 'resolved-class-1', 'resolved-class-2' ] );
|
|
82
|
+
} );
|
|
83
|
+
} );
|
|
@@ -2,30 +2,30 @@ import { stylesRepository } from '@elementor/editor-styles-repository';
|
|
|
2
2
|
|
|
3
3
|
import { createTransformer } from '../create-transformer';
|
|
4
4
|
|
|
5
|
+
function transformClassId( id: string, cache: Map< string, string > ): string {
|
|
6
|
+
if ( ! cache.has( id ) ) {
|
|
7
|
+
const provider = stylesRepository.getProviders().find( ( p ) => {
|
|
8
|
+
return p.actions.all().find( ( style ) => style.id === id );
|
|
9
|
+
} );
|
|
10
|
+
|
|
11
|
+
if ( ! provider ) {
|
|
12
|
+
return id;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
cache.set( id, provider.getKey() );
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const providerKey = cache.get( id ) as string;
|
|
19
|
+
|
|
20
|
+
const provider = stylesRepository.getProviderByKey( providerKey );
|
|
21
|
+
|
|
22
|
+
return provider?.actions.resolveCssName( id ) ?? id;
|
|
23
|
+
}
|
|
24
|
+
|
|
5
25
|
export function createClassesTransformer() {
|
|
6
26
|
const cache = new Map< string, string >();
|
|
7
27
|
|
|
8
28
|
return createTransformer( ( value: string[] ) => {
|
|
9
|
-
return value
|
|
10
|
-
.map( ( id ) => {
|
|
11
|
-
if ( ! cache.has( id ) ) {
|
|
12
|
-
cache.set( id, getCssName( id ) );
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return cache.get( id );
|
|
16
|
-
} )
|
|
17
|
-
.filter( Boolean );
|
|
18
|
-
} );
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function getCssName( id: string ) {
|
|
22
|
-
const provider = stylesRepository.getProviders().find( ( p ) => {
|
|
23
|
-
return p.actions.all().find( ( style ) => style.id === id );
|
|
29
|
+
return value.map( ( id ) => transformClassId( id, cache ) ).filter( Boolean );
|
|
24
30
|
} );
|
|
25
|
-
|
|
26
|
-
if ( ! provider ) {
|
|
27
|
-
return id;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return provider.actions.resolveCssName( id );
|
|
31
31
|
}
|