@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 4.16 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/button/save.js"],
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\t__experimentalGetElementClassName,\n\tgetTypographyClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst {\n\t\ttagName,\n\t\ttype,\n\t\tfontSize,\n\t\tlinkTarget,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\ttitle,\n\t\turl,\n\t\twidth,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\tconst isButtonTag = 'button' === TagName;\n\tconst buttonType = type || 'button';\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst typographyProps = getTypographyClassesAndStyles( attributes );\n\tconst buttonClasses = clsx(\n\t\t'wp-block-button__link',\n\t\tcolorProps.className,\n\t\tborderProps.className,\n\t\ttypographyProps.className,\n\t\t{\n\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t// block support.\n\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t\t},\n\t\t__experimentalGetElementClassName( 'button' )\n\t);\n\tconst buttonStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t\t...spacingProps.style,\n\t\t...shadowProps.style,\n\t\t...typographyProps.style,\n\t\twritingMode: undefined,\n\t};\n\n\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t// if it had already been assigned, for the sake of backward-compatibility.\n\t// A title will no longer be assigned for new or updated button block links.\n\n\tconst wrapperClasses = clsx( className, {\n\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t} );\n\n\treturn (\n\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName={ TagName }\n\t\t\t\ttype={ isButtonTag ? buttonType : null }\n\t\t\t\tclassName={ buttonClasses }\n\t\t\t\thref={ isButtonTag ? null : url }\n\t\t\t\ttitle={ title }\n\t\t\t\tstyle={ buttonStyle }\n\t\t\t\tvalue={ text }\n\t\t\t\ttarget={ isButtonTag ? null : linkTarget }\n\t\t\t\trel={ isButtonTag ? null : rel }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BASO;AAwDJ;AAtDY,SAAR,KAAuB,EAAE,YAAY,UAAU,GAAI;AACzD,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,QAAM,UAAU,WAAW;AAC3B,QAAM,cAAc,aAAa;AACjC,QAAM,aAAa,QAAQ;AAC3B,QAAM,kBAAc,oBAAAA,yCAA2B,UAAW;AAC1D,QAAM,iBAAa,oBAAAC,wCAA0B,UAAW;AACxD,QAAM,mBAAe,oBAAAC,0CAA4B,UAAW;AAC5D,QAAM,kBAAc,oBAAAC,yCAA2B,UAAW;AAC1D,QAAM,sBAAkB,mDAA+B,UAAW;AAClE,QAAM,oBAAgB,YAAAC;AAAA,IACrB;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB;AAAA;AAAA;AAAA,MAGC,oBAAoB,OAAO,QAAQ,WAAW;AAAA,MAC9C,CAAE,sBAAuB,GAAG,YAAY,OAAO,YAAY;AAAA,IAC5D;AAAA,QACA,uDAAmC,QAAS;AAAA,EAC7C;AACA,QAAM,cAAc;AAAA,IACnB,GAAG,YAAY;AAAA,IACf,GAAG,WAAW;AAAA,IACd,GAAG,aAAa;AAAA,IAChB,GAAG,YAAY;AAAA,IACf,GAAG,gBAAgB;AAAA,IACnB,aAAa;AAAA,EACd;AAMA,QAAM,qBAAiB,YAAAA,SAAM,WAAW;AAAA,IACvC,CAAE,2CAA4C,KAAM,EAAG,GAAG;AAAA,EAC3D,CAAE;AAEF,SACC,4CAAC,SAAM,GAAG,kCAAc,KAAM,EAAE,WAAW,eAAe,CAAE,GAC3D;AAAA,IAAC,6BAAS;AAAA,IAAT;AAAA,MACA,SAAU;AAAA,MACV,MAAO,cAAc,aAAa;AAAA,MAClC,WAAY;AAAA,MACZ,MAAO,cAAc,OAAO;AAAA,MAC5B;AAAA,MACA,OAAQ;AAAA,MACR,OAAQ;AAAA,MACR,QAAS,cAAc,OAAO;AAAA,MAC9B,KAAM,cAAc,OAAO;AAAA;AAAA,EAC5B,GACD;AAEF;",
"names": ["getBorderClassesAndStyles", "getColorClassesAndStyles", "getSpacingClassesAndStyles", "getShadowClassesAndStyles", "clsx"]
}