@elementor/editor-editing-panel 4.1.0-747 → 4.1.0-749

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/editor-editing-panel",
3
- "version": "4.1.0-747",
3
+ "version": "4.1.0-749",
4
4
  "private": false,
5
5
  "author": "Elementor Team",
6
6
  "homepage": "https://elementor.com/",
@@ -39,28 +39,28 @@
39
39
  "dev": "tsup --config=../../tsup.dev.ts"
40
40
  },
41
41
  "dependencies": {
42
- "@elementor/editor": "4.1.0-747",
43
- "@elementor/editor-canvas": "4.1.0-747",
44
- "@elementor/editor-controls": "4.1.0-747",
45
- "@elementor/editor-documents": "4.1.0-747",
46
- "@elementor/editor-elements": "4.1.0-747",
47
- "@elementor/editor-interactions": "4.1.0-747",
48
- "@elementor/editor-panels": "4.1.0-747",
49
- "@elementor/editor-props": "4.1.0-747",
50
- "@elementor/editor-responsive": "4.1.0-747",
51
- "@elementor/editor-styles": "4.1.0-747",
52
- "@elementor/editor-styles-repository": "4.1.0-747",
53
- "@elementor/editor-ui": "4.1.0-747",
54
- "@elementor/editor-v1-adapters": "4.1.0-747",
42
+ "@elementor/editor": "4.1.0-749",
43
+ "@elementor/editor-canvas": "4.1.0-749",
44
+ "@elementor/editor-controls": "4.1.0-749",
45
+ "@elementor/editor-documents": "4.1.0-749",
46
+ "@elementor/editor-elements": "4.1.0-749",
47
+ "@elementor/editor-interactions": "4.1.0-749",
48
+ "@elementor/editor-panels": "4.1.0-749",
49
+ "@elementor/editor-props": "4.1.0-749",
50
+ "@elementor/editor-responsive": "4.1.0-749",
51
+ "@elementor/editor-styles": "4.1.0-749",
52
+ "@elementor/editor-styles-repository": "4.1.0-749",
53
+ "@elementor/editor-ui": "4.1.0-749",
54
+ "@elementor/editor-v1-adapters": "4.1.0-749",
55
55
  "@elementor/icons": "^1.68.0",
56
- "@elementor/editor-variables": "4.1.0-747",
57
- "@elementor/locations": "4.1.0-747",
58
- "@elementor/menus": "4.1.0-747",
59
- "@elementor/schema": "4.1.0-747",
60
- "@elementor/session": "4.1.0-747",
56
+ "@elementor/editor-variables": "4.1.0-749",
57
+ "@elementor/locations": "4.1.0-749",
58
+ "@elementor/menus": "4.1.0-749",
59
+ "@elementor/schema": "4.1.0-749",
60
+ "@elementor/session": "4.1.0-749",
61
61
  "@elementor/ui": "1.36.17",
62
- "@elementor/utils": "4.1.0-747",
63
- "@elementor/wp-media": "4.1.0-747",
62
+ "@elementor/utils": "4.1.0-749",
63
+ "@elementor/wp-media": "4.1.0-749",
64
64
  "@wordpress/i18n": "^5.13.0"
65
65
  },
66
66
  "peerDependencies": {
@@ -3,20 +3,13 @@ import { useMemo } from 'react';
3
3
  import { PropKeyProvider, PropProvider, type SetValueMeta } from '@elementor/editor-controls';
4
4
  import { setDocumentModifiedStatus } from '@elementor/editor-documents';
5
5
  import { type ElementID, getElementLabel, getElementSettings, updateElementSettings } from '@elementor/editor-elements';
6
- import {
7
- type CreateOptions,
8
- isDependency,
9
- isDependencyMet,
10
- type PropKey,
11
- type Props,
12
- type PropsSchema,
13
- type PropType,
14
- } from '@elementor/editor-props';
6
+ import { type CreateOptions, type PropKey, type Props } from '@elementor/editor-props';
15
7
  import { undoable } from '@elementor/editor-v1-adapters';
16
8
  import { __ } from '@wordpress/i18n';
17
9
 
18
10
  import { useElement } from '../contexts/element-context';
19
11
  import {
12
+ extractDependencyEffect,
20
13
  extractOrderedDependencies,
21
14
  getElementSettingsWithDefaults,
22
15
  getUpdatedValues,
@@ -32,24 +25,6 @@ type SettingsFieldProps = {
32
25
 
33
26
  const HISTORY_DEBOUNCE_WAIT = 800;
34
27
 
35
- const extractDependencyEffect = ( bind: string, propsSchema: PropsSchema, currentElementSettings: Props ) => {
36
- const elementSettingsForDepCheck = getElementSettingsWithDefaults( propsSchema, currentElementSettings );
37
- const propType = propsSchema[ bind ];
38
- const depCheck = isDependencyMet( propType?.dependencies, elementSettingsForDepCheck );
39
- const isHidden =
40
- ! depCheck.isMet &&
41
- ! isDependency( depCheck.failingDependencies[ 0 ] ) &&
42
- depCheck.failingDependencies[ 0 ]?.effect === 'hide';
43
- return {
44
- isDisabled: ( prop: PropType ) => {
45
- const result = ! isDependencyMet( prop?.dependencies, elementSettingsForDepCheck ).isMet;
46
- return result;
47
- },
48
- isHidden,
49
- settingsWithDefaults: elementSettingsForDepCheck as Values,
50
- };
51
- };
52
-
53
28
  export const SettingsField = ( { bind, children, propDisplayName }: SettingsFieldProps ) => {
54
29
  const {
55
30
  element: { id: elementId },
@@ -58,18 +33,15 @@ export const SettingsField = ( { bind, children, propDisplayName }: SettingsFiel
58
33
  } = useElement();
59
34
 
60
35
  const value = { [ bind ]: currentElementSettings?.[ bind ] ?? null };
61
-
62
36
  const propType = createTopLevelObjectType( { schema: propsSchema } );
63
37
 
64
38
  const undoableUpdateElementProp = useUndoableUpdateElementProp( {
65
39
  elementId,
66
40
  propDisplayName,
67
41
  } );
68
- const { isDisabled, isHidden, settingsWithDefaults } = extractDependencyEffect(
69
- bind,
70
- propsSchema,
71
- currentElementSettings
72
- );
42
+
43
+ const { isDisabled, isHidden } = extractDependencyEffect( bind, propsSchema, currentElementSettings );
44
+
73
45
  if ( isHidden ) {
74
46
  return null;
75
47
  }
@@ -79,6 +51,7 @@ export const SettingsField = ( { bind, children, propDisplayName }: SettingsFiel
79
51
  const { withHistory = true } = meta ?? {};
80
52
  const dependents = extractOrderedDependencies( dependenciesPerTargetMapping );
81
53
 
54
+ const settingsWithDefaults = getElementSettingsWithDefaults( propsSchema, currentElementSettings );
82
55
  const settings = getUpdatedValues( newValue, dependents, propsSchema, settingsWithDefaults, elementId );
83
56
  if ( withHistory ) {
84
57
  undoableUpdateElementProp( settings );
package/src/index.ts CHANGED
@@ -31,3 +31,10 @@ export { doApplyClasses, doGetAppliedClasses, doUnapplyClass } from './apply-una
31
31
  export { setLicenseConfig } from './hooks/use-license-config';
32
32
  export { type DynamicTag, type DynamicTags, type DynamicTagsManager } from './dynamics/types';
33
33
  export { isDynamicPropValue } from './dynamics/utils';
34
+ export {
35
+ extractDependencyEffect,
36
+ type DependencyEffect,
37
+ getElementSettingsWithDefaults,
38
+ getUpdatedValues,
39
+ extractOrderedDependencies,
40
+ } from './utils/prop-dependency-utils';
@@ -2,6 +2,7 @@ import {
2
2
  type Dependency,
3
3
  type DependencyTerm,
4
4
  extractValue,
5
+ isDependency,
5
6
  isDependencyMet,
6
7
  type Props,
7
8
  type PropsSchema,
@@ -14,6 +15,11 @@ type Value = TransformablePropValue< string > | null;
14
15
 
15
16
  export type Values = Record< string, Value >;
16
17
 
18
+ export type DependencyEffect = {
19
+ isHidden: boolean;
20
+ isDisabled: ( propType: PropType ) => boolean;
21
+ };
22
+
17
23
  export function getElementSettingsWithDefaults( propsSchema: PropsSchema, elementSettings?: Props ): Values {
18
24
  const elementSettingsWithDefaults = { ...elementSettings };
19
25
  Object.keys( propsSchema ).forEach( ( key ) => {
@@ -25,6 +31,20 @@ export function getElementSettingsWithDefaults( propsSchema: PropsSchema, elemen
25
31
  return elementSettingsWithDefaults as Values;
26
32
  }
27
33
 
34
+ export function extractDependencyEffect( bind: string, propsSchema: PropsSchema, settings: Props ): DependencyEffect {
35
+ const settingsWithDefaults = getElementSettingsWithDefaults( propsSchema, settings );
36
+ const propType = propsSchema[ bind ];
37
+ const depCheck = isDependencyMet( propType?.dependencies, settingsWithDefaults );
38
+
39
+ const failingTerm = ! depCheck.isMet ? depCheck.failingDependencies[ 0 ] : undefined;
40
+ const isHidden = !! failingTerm && ! isDependency( failingTerm ) && failingTerm?.effect === 'hide';
41
+
42
+ return {
43
+ isHidden,
44
+ isDisabled: ( prop: PropType ) => ! isDependencyMet( prop?.dependencies, settingsWithDefaults ).isMet,
45
+ };
46
+ }
47
+
28
48
  export function extractOrderedDependencies( dependenciesPerTargetMapping: Record< string, string[] > ): string[] {
29
49
  return Object.values( dependenciesPerTargetMapping )
30
50
  .flat()