UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 4.3 kB
{ "version": 3, "sources": ["../../src/image/save.js"], "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { mediaPosition } from './utils';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\turl,\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tfocalPoint,\n\t\tid,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\ttitle,\n\t\tmetadata: { bindings = {} } = {},\n\t} = attributes;\n\n\tconst newRel = ! rel ? undefined : rel;\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( {\n\t\t// All other align classes are handled by block supports.\n\t\t// `{ align: 'none' }` is unique to transforms for the image block.\n\t\talignnone: 'none' === align,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'is-resized': width || height,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst imageClasses = clsx( borderProps.className, {\n\t\t[ `wp-image-${ id }` ]: !! id,\n\t} );\n\n\tconst image = (\n\t\t<img\n\t\t\tsrc={ url }\n\t\t\talt={ alt }\n\t\t\tclassName={ imageClasses || undefined }\n\t\t\tstyle={ {\n\t\t\t\t...borderProps.style,\n\t\t\t\t...shadowProps.style,\n\t\t\t\taspectRatio,\n\t\t\t\tobjectFit: scale,\n\t\t\t\tobjectPosition:\n\t\t\t\t\tfocalPoint && scale\n\t\t\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t\t\t: undefined,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\ttitle={ title }\n\t\t/>\n\t);\n\n\tconst displayCaption =\n\t\t! RichText.isEmpty( caption ) ||\n\t\tbindings.caption ||\n\t\tbindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst figure = (\n\t\t<>\n\t\t\t{ href ? (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\timage\n\t\t\t) }\n\t\t\t{ displayCaption && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t{ figure }\n\t\t</figure>\n\t);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BAMO;AAKP,mBAA8B;AA4C5B;AA1Ca,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,IACA;AAAA,IACA;AAAA,IACA,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC;AAAA,EAChC,IAAI;AAEJ,QAAM,SAAS,CAAE,MAAM,SAAY;AACnC,QAAM,kBAAc,oBAAAA,yCAA2B,UAAW;AAC1D,QAAM,kBAAc,oBAAAC,yCAA2B,UAAW;AAE1D,QAAM,cAAU,YAAAC,SAAM;AAAA;AAAA;AAAA,IAGrB,WAAW,WAAW;AAAA,IACtB,CAAE,QAAS,QAAS,EAAG,GAAG;AAAA,IAC1B,cAAc,SAAS;AAAA,IACvB,qBACC,CAAC,CAAE,YAAY,aACb,YAAY,SACb,OAAO,KAAM,YAAY,KAAM,EAAE,SAAS;AAAA,EAC7C,CAAE;AAEF,QAAM,mBAAe,YAAAA,SAAM,YAAY,WAAW;AAAA,IACjD,CAAE,YAAa,EAAG,EAAG,GAAG,CAAC,CAAE;AAAA,EAC5B,CAAE;AAEF,QAAM,QACL;AAAA,IAAC;AAAA;AAAA,MACA,KAAM;AAAA,MACN;AAAA,MACA,WAAY,gBAAgB;AAAA,MAC5B,OAAQ;AAAA,QACP,GAAG,YAAY;AAAA,QACf,GAAG,YAAY;AAAA,QACf;AAAA,QACA,WAAW;AAAA,QACX,gBACC,cAAc,YACX,4BAAe,UAAW,IAC1B;AAAA,QACJ;AAAA,QACA;AAAA,MACD;AAAA,MACA;AAAA;AAAA,EACD;AAGD,QAAM,iBACL,CAAE,6BAAS,QAAS,OAAQ,KAC5B,SAAS,WACT,UAAU,WAAW,WAAW;AAEjC,QAAM,SACL,4EACG;AAAA,WACD;AAAA,MAAC;AAAA;AAAA,QACA,WAAY;AAAA,QACZ;AAAA,QACA,QAAS;AAAA,QACT,KAAM;AAAA,QAEJ;AAAA;AAAA,IACH,IAEA;AAAA,IAEC,kBACD;AAAA,MAAC,6BAAS;AAAA,MAAT;AAAA,QACA,eAAY,uDAAmC,SAAU;AAAA,QACzD,SAAQ;AAAA,QACR,OAAQ;AAAA;AAAA,IACT;AAAA,KAEF;AAGD,SACC,4CAAC,YAAS,GAAG,kCAAc,KAAM,EAAE,WAAW,QAAQ,CAAE,GACrD,kBACH;AAEF;", "names": ["getBorderClassesAndStyles", "getShadowClassesAndStyles", "clsx"] }