UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 4.71 kB
{ "version": 3, "sources": ["../../src/media-text/save.js"], "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { imageFillStyles } from './image-fill';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\nconst DEFAULT_MEDIA_WIDTH = 50;\nconst noop = () => {};\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tmediaId,\n\t\tverticalAlignment,\n\t\timageFill,\n\t\tfocalPoint,\n\t\tlinkClass,\n\t\thref,\n\t\tlinkTarget,\n\t\trel,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\tconst newRel = ! rel ? undefined : rel;\n\n\tconst imageClasses = clsx( {\n\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t} );\n\n\tconst positionStyles = imageFill\n\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t: {};\n\n\tlet image = mediaUrl ? (\n\t\t<img\n\t\t\tsrc={ mediaUrl }\n\t\t\talt={ mediaAlt }\n\t\t\tclassName={ imageClasses || null }\n\t\t\tstyle={ positionStyles }\n\t\t/>\n\t) : null;\n\n\tif ( href ) {\n\t\timage = (\n\t\t\t<a\n\t\t\t\tclassName={ linkClass }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ linkTarget }\n\t\t\t\trel={ newRel }\n\t\t\t>\n\t\t\t\t{ image }\n\t\t\t</a>\n\t\t);\n\t}\n\n\tconst mediaTypeRenders = {\n\t\timage: () => image,\n\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t};\n\tconst className = clsx( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill-element': imageFill,\n\t} );\n\n\tlet gridTemplateColumns;\n\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\tgridTemplateColumns =\n\t\t\t'right' === mediaPosition\n\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t: `${ mediaWidth }% auto`;\n\t}\n\tconst style = {\n\t\tgridTemplateColumns,\n\t};\n\n\tif ( 'right' === mediaPosition ) {\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t<figure className=\"wp-block-media-text__media\">\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t<figure className=\"wp-block-media-text__media\">\n\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t</figure>\n\t\t\t<div\n\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"], "mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,qBAAqB,qBAAqB;AAKnD,SAAS,uBAAuB;AAChC,SAAS,+BAA+B;AAmCtC,cA6CC,YA7CD;AAjCF,IAAM,sBAAsB;AAC5B,IAAM,OAAO,MAAM;AAAC;AAEL,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AACJ,QAAM,gBAAgB,WAAW,iBAAiB;AAClD,QAAM,SAAS,CAAE,MAAM,SAAY;AAEnC,QAAM,eAAe,KAAM;AAAA,IAC1B,CAAE,YAAa,OAAQ,EAAG,GAAG,WAAW,cAAc;AAAA,IACtD,CAAE,QAAS,aAAc,EAAG,GAAG,WAAW,cAAc;AAAA,EACzD,CAAE;AAEF,QAAM,iBAAiB,YACpB,gBAAiB,UAAU,UAAW,IACtC,CAAC;AAEJ,MAAI,QAAQ,WACX;AAAA,IAAC;AAAA;AAAA,MACA,KAAM;AAAA,MACN,KAAM;AAAA,MACN,WAAY,gBAAgB;AAAA,MAC5B,OAAQ;AAAA;AAAA,EACT,IACG;AAEJ,MAAK,MAAO;AACX,YACC;AAAA,MAAC;AAAA;AAAA,QACA,WAAY;AAAA,QACZ;AAAA,QACA,QAAS;AAAA,QACT,KAAM;AAAA,QAEJ;AAAA;AAAA,IACH;AAAA,EAEF;AAEA,QAAM,mBAAmB;AAAA,IACxB,OAAO,MAAM;AAAA,IACb,OAAO,MAAM,oBAAC,WAAM,UAAQ,MAAC,KAAM,UAAW;AAAA,EAC/C;AACA,QAAM,YAAY,KAAM;AAAA,IACvB,0BAA0B,YAAY;AAAA,IACtC,wBAAwB;AAAA,IACxB,CAAE,yBAA0B,iBAAkB,EAAG,GAAG;AAAA,IACpD,yBAAyB;AAAA,EAC1B,CAAE;AAEF,MAAI;AACJ,MAAK,eAAe,qBAAsB;AACzC,0BACC,YAAY,gBACT,QAAS,UAAW,MACpB,GAAI,UAAW;AAAA,EACpB;AACA,QAAM,QAAQ;AAAA,IACb;AAAA,EACD;AAEA,MAAK,YAAY,eAAgB;AAChC,WACC,qBAAC,SAAM,GAAG,cAAc,KAAM,EAAE,WAAW,MAAM,CAAE,GAClD;AAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG,oBAAoB,KAAM;AAAA,YAC9B,WAAW;AAAA,UACZ,CAAE;AAAA;AAAA,MACH;AAAA,MACA,oBAAC,YAAO,WAAU,8BACb,4BAAkB,SAAU,KAAK,MAAO,GAC7C;AAAA,OACD;AAAA,EAEF;AACA,SACC,qBAAC,SAAM,GAAG,cAAc,KAAM,EAAE,WAAW,MAAM,CAAE,GAClD;AAAA,wBAAC,YAAO,WAAU,8BACb,4BAAkB,SAAU,KAAK,MAAO,GAC7C;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,oBAAoB,KAAM;AAAA,UAC9B,WAAW;AAAA,QACZ,CAAE;AAAA;AAAA,IACH;AAAA,KACD;AAEF;", "names": [] }