@wordpress/block-editor
Version:
8 lines (7 loc) • 4.75 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/inspector-controls-tabs/position-controls-panel.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseSlotFills as useSlotFills,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { useToolsPanelDropdownMenuProps } from '../global-styles/utils';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nconst PositionControlsPanel = () => {\n\tconst { selectedClientIds, selectedBlocks, hasPositionAttribute } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getBlocksByClientId, getSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlocks = getBlocksByClientId(\n\t\t\t\tselectedBlockClientIds\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tselectedClientIds: selectedBlockClientIds,\n\t\t\t\tselectedBlocks: _selectedBlocks,\n\t\t\t\thasPositionAttribute: _selectedBlocks?.some(\n\t\t\t\t\t( { attributes } ) => !! attributes?.style?.position?.type\n\t\t\t\t),\n\t\t\t};\n\t\t}, [] );\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tfunction resetPosition() {\n\t\tif ( ! selectedClientIds?.length || ! selectedBlocks?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tselectedBlocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tposition: {\n\t\t\t\t\t\t\t...attributes?.style?.position,\n\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t\ttop: undefined,\n\t\t\t\t\t\t\tright: undefined,\n\t\t\t\t\t\t\tbottom: undefined,\n\t\t\t\t\t\t\tleft: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\n\t\tupdateBlockAttributes( selectedClientIds, attributesByClientId, true );\n\t}\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName=\"block-editor-block-inspector__position\"\n\t\t\tlabel={ __( 'Position' ) }\n\t\t\tresetAll={ resetPosition }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tisShownByDefault={ hasPositionAttribute }\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\thasValue={ () => hasPositionAttribute }\n\t\t\t\tonDeselect={ resetPosition }\n\t\t\t>\n\t\t\t\t<InspectorControls.Slot group=\"position\" />\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n};\n\nconst PositionControls = () => {\n\tconst fills = useSlotFills( InspectorControlsGroups.position.name );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn <PositionControlsPanel />;\n};\n\nexport default PositionControls;\n"],
"mappings": ";AAGA;AAAA,EACC,8BAA8B;AAAA,EAC9B,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,OAC1B;AACP,SAAS,aAAa,iBAAiB;AACvC,SAAS,UAAU;AAKnB,OAAO,6BAA6B;AACpC,SAAS,WAAW,yBAAyB;AAC7C,SAAS,SAAS,wBAAwB;AAC1C,SAAS,sCAAsC;AAC/C,SAAS,wBAAwB;AAiE7B;AA/DJ,IAAM,wBAAwB,MAAM;AACnC,QAAM,EAAE,mBAAmB,gBAAgB,qBAAqB,IAC/D,UAAW,CAAE,WAAY;AACxB,UAAM,EAAE,qBAAqB,0BAA0B,IACtD,OAAQ,gBAAiB;AAE1B,UAAM,yBAAyB,0BAA0B;AACzD,UAAM,kBAAkB;AAAA,MACvB;AAAA,IACD;AAEA,WAAO;AAAA,MACN,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,sBAAsB,iBAAiB;AAAA,QACtC,CAAE,EAAE,WAAW,MAAO,CAAC,CAAE,YAAY,OAAO,UAAU;AAAA,MACvD;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEP,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAChE,QAAM,oBAAoB,+BAA+B;AAEzD,WAAS,gBAAgB;AACxB,QAAK,CAAE,mBAAmB,UAAU,CAAE,gBAAgB,QAAS;AAC9D;AAAA,IACD;AAEA,UAAM,uBAAuB,OAAO;AAAA,MACnC,gBAAgB,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QACpD;AAAA,QACA;AAAA,UACC,OAAO,iBAAkB;AAAA,YACxB,GAAG,YAAY;AAAA,YACf,UAAU;AAAA,cACT,GAAG,YAAY,OAAO;AAAA,cACtB,MAAM;AAAA,cACN,KAAK;AAAA,cACL,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,MAAM;AAAA,YACP;AAAA,UACD,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AAEA,0BAAuB,mBAAmB,sBAAsB,IAAK;AAAA,EACtE;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ,GAAI,UAAW;AAAA,MACvB,UAAW;AAAA,MACX;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,kBAAmB;AAAA,UACnB,OAAQ,GAAI,UAAW;AAAA,UACvB,UAAW,MAAM;AAAA,UACjB,YAAa;AAAA,UAEb,8BAAC,kBAAkB,MAAlB,EAAuB,OAAM,YAAW;AAAA;AAAA,MAC1C;AAAA;AAAA,EACD;AAEF;AAEA,IAAM,mBAAmB,MAAM;AAC9B,QAAM,QAAQ,aAAc,wBAAwB,SAAS,IAAK;AAClE,QAAM,WAAW,QAAS,SAAS,MAAM,MAAO;AAEhD,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAEA,SAAO,oBAAC,yBAAsB;AAC/B;AAEA,IAAO,kCAAQ;",
"names": []
}