@wordpress/block-editor
Version:
8 lines (7 loc) • 3.04 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/block-popover/cover.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport { PrivateBlockPopover } from '.';\n\nfunction BlockPopoverCover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\tshift = false,\n\t\tadditionalStyles,\n\t\t...props\n\t},\n\tref\n) {\n\tbottomClientId ??= clientId;\n\n\tconst selectedElement = useBlockElement( clientId );\n\n\treturn (\n\t\t<PrivateBlockPopover\n\t\t\tref={ ref }\n\t\t\tclientId={ clientId }\n\t\t\tbottomClientId={ bottomClientId }\n\t\t\tshift={ shift }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ selectedElement && clientId === bottomClientId ? (\n\t\t\t\t<CoverContainer\n\t\t\t\t\tselectedElement={ selectedElement }\n\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</CoverContainer>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t) }\n\t\t</PrivateBlockPopover>\n\t);\n}\n\nfunction CoverContainer( {\n\tselectedElement,\n\tadditionalStyles = {},\n\tchildren,\n} ) {\n\tconst [ width, setWidth ] = useState( selectedElement.offsetWidth );\n\tconst [ height, setHeight ] = useState( selectedElement.offsetHeight );\n\n\tuseEffect( () => {\n\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\tsetWidth( selectedElement.offsetWidth );\n\t\t\tsetHeight( selectedElement.offsetHeight );\n\t\t} );\n\t\tobserver.observe( selectedElement, { box: 'border-box' } );\n\t\treturn () => observer.disconnect();\n\t}, [ selectedElement ] );\n\n\tconst style = useMemo( () => {\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth,\n\t\t\theight,\n\t\t\t...additionalStyles,\n\t\t};\n\t}, [ width, height, additionalStyles ] );\n\n\treturn <div style={ style }>{ children }</div>;\n}\n\nexport default forwardRef( BlockPopoverCover );\n"],
"mappings": ";AAGA,SAAS,WAAW,UAAU,SAAS,kBAAkB;AAKzD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AA0BhC;AAxBJ,SAAS,kBACR;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACJ,GACA,KACC;AACD,qBAAmB;AAEnB,QAAM,kBAAkB,gBAAiB,QAAS;AAElD,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACE,GAAG;AAAA,MAEH,6BAAmB,aAAa,iBACjC;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UAEE;AAAA;AAAA,MACH,IAEA;AAAA;AAAA,EAEF;AAEF;AAEA,SAAS,eAAgB;AAAA,EACxB;AAAA,EACA,mBAAmB,CAAC;AAAA,EACpB;AACD,GAAI;AACH,QAAM,CAAE,OAAO,QAAS,IAAI,SAAU,gBAAgB,WAAY;AAClE,QAAM,CAAE,QAAQ,SAAU,IAAI,SAAU,gBAAgB,YAAa;AAErE,YAAW,MAAM;AAChB,UAAM,WAAW,IAAI,OAAO,eAAgB,MAAM;AACjD,eAAU,gBAAgB,WAAY;AACtC,gBAAW,gBAAgB,YAAa;AAAA,IACzC,CAAE;AACF,aAAS,QAAS,iBAAiB,EAAE,KAAK,aAAa,CAAE;AACzD,WAAO,MAAM,SAAS,WAAW;AAAA,EAClC,GAAG,CAAE,eAAgB,CAAE;AAEvB,QAAM,QAAQ,QAAS,MAAM;AAC5B,WAAO;AAAA,MACN,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACJ;AAAA,EACD,GAAG,CAAE,OAAO,QAAQ,gBAAiB,CAAE;AAEvC,SAAO,oBAAC,SAAI,OAAkB,UAAU;AACzC;AAEA,IAAO,gBAAQ,WAAY,iBAAkB;",
"names": []
}