UNPKG

react-email-builder

Version:
66 lines (65 loc) 2.78 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.buttonBlock = void 0; const react_1 = __importDefault(require("react")); const Icon_1 = require("../../components/Icon"); const ButtonBlock_1 = require("./ButtonBlock"); const ButtonBlockEditor_1 = require("./ButtonBlockEditor"); const utils_1 = require("../../utils"); const mjml_1 = require("../../utils/mjml"); function buttonBlock() { return { type: 'button', name: 'Button', icon: react_1.default.createElement(Icon_1.Icon, { name: 'button' }), createBlock: (base, config) => { const block = base; const fonts = config.fonts || (0, utils_1.getDefaultFonts)(); block.attrs = { text: 'Button', padding: [10, 25, 10, 25], bgColor: '#117CEE', color: '#FFFFFF', align: 'center', block: 'no', borderRadius: 3, fontSize: 14, fontWeight: 'normal', letterSpacing: 0, lineHeight: 120, target: '_blank', textDecoration: 'none', fontFamily: fonts?.[0].value }; return block; }, blockComponent: ButtonBlock_1.ButtonBlock, editorComponent: ButtonBlockEditor_1.ButtonBlockEditor, renderMJML: (block) => { const attrs = block.attrs; return (0, mjml_1.renderTag)('mj-button', { children: block.attrs.text, attrs: (0, mjml_1.createBlockAttrs)(block, { href: attrs.url ? (0, utils_1.normalizeUrl)(attrs.url) : null, target: attrs.target, width: attrs.block === 'yes' ? '100%' : null, color: (0, mjml_1.color)(attrs.color), 'background-color': (0, mjml_1.color)(attrs.bgColor), 'font-family': attrs.fontFamily, 'font-size': (0, mjml_1.px)(attrs.fontSize), 'line-height': (attrs.lineHeight || 100) + '%', 'letter-spacing': (0, mjml_1.px)(attrs.letterSpacing), 'font-weight': attrs.fontWeight === 'bold' ? '700' : null, 'text-decoration': attrs.textDecoration, align: attrs.align || 'center', 'inner-padding': (0, mjml_1.padding)(attrs.padding), 'border-radius': (0, mjml_1.px)(attrs.borderRadius) }) }); } }; } exports.buttonBlock = buttonBlock;