@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 5.8 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/utils/style-state.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { cleanEmptyObject, getStyleForState, setStyleForState } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getStateStyle( style, selectedState ) {\n\treturn getStyleForState( style, selectedState ) || {};\n}\n\nfunction getMappedDimensions( dimensions, dimensionKeyMap = {} ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( dimensions ).map( ( [ key, value ] ) => [\n\t\t\tdimensionKeyMap[ key ] || key,\n\t\t\tvalue,\n\t\t] )\n\t);\n}\n\nfunction getControlledDimensions( dimensions, dimensionKeys ) {\n\tif ( ! dimensionKeys ) {\n\t\treturn dimensions;\n\t}\n\n\treturn Object.fromEntries(\n\t\tdimensionKeys.map( ( key ) => [ key, dimensions[ key ] ] )\n\t);\n}\n\nexport function getStyleStateKey( selectedState ) {\n\treturn [\n\t\tselectedState?.viewport || 'default',\n\t\tselectedState?.pseudo || 'default',\n\t].join( ':' );\n}\n\nexport function getStateDimensions( style, selectedState ) {\n\treturn getStateStyle( style, selectedState )?.dimensions || {};\n}\n\nexport function getActiveDimensionValue( options = {} ) {\n\tconst {\n\t\tattributes = {},\n\t\tstyle = attributes?.style,\n\t\tselectedState,\n\t\thasSelectedStyleState,\n\t\tattributeKey,\n\t\tstyleKey = attributeKey,\n\t\trootValue,\n\t} = options;\n\n\tif ( hasSelectedStyleState ) {\n\t\treturn getStateDimensions( style, selectedState )?.[ styleKey ];\n\t}\n\n\tif ( Object.hasOwn( options, 'rootValue' ) ) {\n\t\treturn rootValue;\n\t}\n\n\treturn attributes?.[ attributeKey ];\n}\n\nexport function setStateDimensions( style, selectedState, nextDimensions ) {\n\tconst stateStyle = getStateStyle( style, selectedState );\n\n\treturn setStyleForState(\n\t\tstyle,\n\t\tselectedState,\n\t\tcleanEmptyObject( {\n\t\t\t...stateStyle,\n\t\t\tdimensions: cleanEmptyObject( {\n\t\t\t\t...stateStyle?.dimensions,\n\t\t\t\t...nextDimensions,\n\t\t\t} ),\n\t\t} )\n\t);\n}\n\nexport function getDimensionUpdateAttributes( {\n\tstyle,\n\tselectedState,\n\thasSelectedStyleState,\n\tnextDimensions,\n\tdimensionKeyMap,\n\tdimensionKeys,\n} ) {\n\tconst controlledDimensions = getControlledDimensions(\n\t\tnextDimensions,\n\t\tdimensionKeys\n\t);\n\n\tif ( ! hasSelectedStyleState ) {\n\t\treturn controlledDimensions;\n\t}\n\n\treturn {\n\t\tstyle: setStateDimensions(\n\t\t\tstyle,\n\t\t\tselectedState,\n\t\t\tgetMappedDimensions( controlledDimensions, dimensionKeyMap )\n\t\t),\n\t};\n}\n\nexport function resetDimensions( style, keys ) {\n\tconst dimensionsReset = Object.fromEntries(\n\t\tkeys.map( ( key ) => [ key, undefined ] )\n\t);\n\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tdimensions: cleanEmptyObject( {\n\t\t\t...style?.dimensions,\n\t\t\t...dimensionsReset,\n\t\t} ),\n\t} );\n}\n\nexport function resetStateDimensions( style, selectedState, keys ) {\n\treturn setStyleForState(\n\t\tstyle,\n\t\tselectedState,\n\t\tresetDimensions( getStateStyle( style, selectedState ), keys )\n\t);\n}\n\nexport function getDimensionResetAttributes( {\n\tattributes = {},\n\tstyle = attributes?.style,\n\tselectedState,\n\thasSelectedStyleState,\n\tkeys,\n\tdefaultAttributes = {},\n} ) {\n\treturn {\n\t\t...( hasSelectedStyleState\n\t\t\t? {}\n\t\t\t: { ...attributes, ...defaultAttributes } ),\n\t\tstyle: hasSelectedStyleState\n\t\t\t? resetStateDimensions( style, selectedState, keys )\n\t\t\t: resetDimensions( style, keys ),\n\t};\n}\n"],
"mappings": "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",
"names": []
}