@wordpress/block-editor
Version:
8 lines (7 loc) • 6.28 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { sprintf, _x } from '@wordpress/i18n';\nimport { __experimentalUseCustomUnits as useCustomUnits } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport PresetInputControl from '../../preset-input-control';\nimport { useSettings } from '../../use-settings';\nimport { store as blockEditorStore } from '../../../store';\nimport { ALL_SIDES, LABELS } from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n\t...restProps\n} ) {\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\t// Convert spacing preset format to generic preset format for PresetInputControl\n\tconst presets = useMemo( () => {\n\t\treturn (\n\t\t\tspacingSizes?.map( ( preset ) => ( {\n\t\t\t\tname: preset.name,\n\t\t\t\tslug: preset.slug,\n\t\t\t\tsize: preset.size,\n\t\t\t} ) ) || []\n\t\t);\n\t}, [ spacingSizes ] );\n\n\t// Generate aria label\n\tconst sideLabel =\n\t\t( ALL_SIDES.includes( side ) ||\n\t\t\t[ 'vertical', 'horizontal' ].includes( side ) ) &&\n\t\tshowSideInLabel\n\t\t\t? LABELS[ side ]\n\t\t\t: '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left etc.). 2. Type of spacing being modified (padding, margin, etc).\n\t\t_x( '%1$s %2$s', 'spacing' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\t// Get the first unit as default selected unit\n\tconst selectedUnit = units[ 0 ]?.value || 'px';\n\n\treturn (\n\t\t<PresetInputControl\n\t\t\tallowNegativeOnDrag={ minimumCustomValue < 0 }\n\t\t\tariaLabel={ ariaLabel }\n\t\t\tclassName=\"spacing-sizes-control\"\n\t\t\tcustomValueSettings={ CUSTOM_VALUE_SETTINGS }\n\t\t\tdisableCustomValues={ disableCustomSpacingSizes }\n\t\t\ticon={ icon }\n\t\t\tisMixed={ isMixed }\n\t\t\tminimumCustomValue={ minimumCustomValue }\n\t\t\tonChange={ onChange }\n\t\t\tonMouseOut={ onMouseOut }\n\t\t\tonMouseOver={ onMouseOver }\n\t\t\tpresets={ presets }\n\t\t\tpresetType=\"spacing\"\n\t\t\tselectedUnit={ selectedUnit }\n\t\t\tunits={ units }\n\t\t\tvalue={ value }\n\t\t\t{ ...restProps }\n\t\t/>\n\t);\n}\n"],
"mappings": ";AAGA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,SAAS,UAAU;AAC5B,SAAS,gCAAgC,sBAAsB;AAK/D,OAAO,wBAAwB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,SAAS,wBAAwB;AAC1C,SAAS,WAAW,cAAc;AAwFhC;AAtFF,IAAM,wBAAwB;AAAA,EAC7B,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EACzB,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EACzB,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EACzB,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI;AAAA,EAC1B,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EACzB,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,IAAI,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EACzB,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC1B,MAAM,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC3B,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B,MAAM,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC3B,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B,OAAO,EAAE,KAAK,KAAK,OAAO,EAAE;AAC7B;AAEe,SAAR,oBAAsC;AAAA,EAC5C;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAI;AACH,QAAM,4BAA4B,UAAW,CAAE,WAAY;AAC1D,UAAM,iBAAiB,OAAQ,gBAAiB,EAAE,YAAY;AAC9D,WAAO,gBAAgB;AAAA,EACxB,CAAE;AAEF,QAAM,CAAE,cAAe,IAAI,YAAa,eAAgB;AACxD,QAAM,QAAQ,eAAgB;AAAA,IAC7B,gBAAgB,kBAAkB,CAAE,MAAM,MAAM,KAAM;AAAA,EACvD,CAAE;AAGF,QAAM,UAAU,QAAS,MAAM;AAC9B,WACC,cAAc,IAAK,CAAE,YAAc;AAAA,MAClC,MAAM,OAAO;AAAA,MACb,MAAM,OAAO;AAAA,MACb,MAAM,OAAO;AAAA,IACd,EAAI,KAAK,CAAC;AAAA,EAEZ,GAAG,CAAE,YAAa,CAAE;AAGpB,QAAM,aACH,UAAU,SAAU,IAAK,KAC1B,CAAE,YAAY,YAAa,EAAE,SAAU,IAAK,MAC7C,kBACG,OAAQ,IAAK,IACb;AACJ,QAAM,YAAY,kBAAkB,MAAM,YAAY,IAAI;AAE1D,QAAM,YAAY;AAAA;AAAA,IAEjB,GAAI,aAAa,SAAU;AAAA,IAC3B;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAGP,QAAM,eAAe,MAAO,CAAE,GAAG,SAAS;AAE1C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,qBAAsB,qBAAqB;AAAA,MAC3C;AAAA,MACA,WAAU;AAAA,MACV,qBAAsB;AAAA,MACtB,qBAAsB;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACE,GAAG;AAAA;AAAA,EACN;AAEF;",
"names": []
}