"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.inlineSVG = exports.default = void 0; var _split = require("../helpers/split"); var _wrap_tokens = require("../helpers/wrap_tokens"); var _plugin = _interopRequireDefault(require("../plugin")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** @module */ /** * Marpit Inline SVG plugin. * * @function inlineSVG * @param {MarkdownIt} md markdown-it instance. */ function _inlineSVG(md) { const { marpit } = md; md.core.ruler.after('marpit_directives_parse', 'marpit_inline_svg', state => { if (!(marpit.inlineSVGOptions && marpit.inlineSVGOptions.enabled) || state.inlineMode) return; const { themeSet, lastGlobalDirectives } = marpit; const w = themeSet.getThemeProp(lastGlobalDirectives.theme, 'widthPixel'); const h = themeSet.getThemeProp(lastGlobalDirectives.theme, 'heightPixel'); const newTokens = []; for (const tokens of (0, _split.split)(state.tokens, t => t.meta && t.meta.marpitSlideElement === 1, true)) { if (tokens.length > 0) { for (const t of tokens) if (t.meta && t.meta.marpitSlideElement) delete t.meta.marpitSlideElement; newTokens.push(...(0, _wrap_tokens.wrapTokens)(state.Token, 'marpit_inline_svg', { tag: 'svg', 'data-marpit-svg': '', viewBox: `0 0 ${w} ${h}`, open: { meta: { marpitSlideElement: 1 } }, close: { meta: { marpitSlideElement: -1 } } }, (0, _wrap_tokens.wrapTokens)(state.Token, 'marpit_inline_svg_content', { tag: 'foreignObject', width: w, height: h }, tokens))); } } state.tokens = newTokens; }); } const inlineSVG = exports.inlineSVG = (0, _plugin.default)(_inlineSVG); var _default = exports.default = inlineSVG;