@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 4.06 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": ";AAGA,OAAO,UAAU;AAKjB;AAAA,EACC;AAAA,EACA;AAAA,EACA,2CAA2C;AAAA,EAC3C,0CAA0C;AAAA,EAC1C,4CAA4C;AAAA,EAC5C,2CAA2C;AAAA,EAC3C;AAAA,EACA;AAAA,OACM;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,cAAc,0BAA2B,UAAW;AAC1D,QAAM,aAAa,yBAA0B,UAAW;AACxD,QAAM,eAAe,2BAA4B,UAAW;AAC5D,QAAM,cAAc,0BAA2B,UAAW;AAC1D,QAAM,kBAAkB,8BAA+B,UAAW;AAClE,QAAM,gBAAgB;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,IACA,kCAAmC,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,iBAAiB,KAAM,WAAW;AAAA,IACvC,CAAE,2CAA4C,KAAM,EAAG,GAAG;AAAA,EAC3D,CAAE;AAEF,SACC,oBAAC,SAAM,GAAG,cAAc,KAAM,EAAE,WAAW,eAAe,CAAE,GAC3D;AAAA,IAAC,SAAS;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": []
}