UNPKG

@wordpress/blocks

Version:
69 lines (67 loc) 2.57 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/blocks/src/api/raw-handling/phrasing-content-reducer.js var phrasing_content_reducer_exports = {}; __export(phrasing_content_reducer_exports, { default: () => phrasingContentReducer }); module.exports = __toCommonJS(phrasing_content_reducer_exports); var import_dom = require("@wordpress/dom"); function phrasingContentReducer(node, doc) { if (node.nodeName === "SPAN" && node.style) { const { fontWeight, fontStyle, textDecorationLine, textDecoration, verticalAlign } = node.style; if (fontWeight === "bold" || fontWeight === "700") { (0, import_dom.wrap)(doc.createElement("strong"), node); } if (fontStyle === "italic") { (0, import_dom.wrap)(doc.createElement("em"), node); } if (textDecorationLine === "line-through" || textDecoration.includes("line-through")) { (0, import_dom.wrap)(doc.createElement("s"), node); } if (verticalAlign === "super") { (0, import_dom.wrap)(doc.createElement("sup"), node); } else if (verticalAlign === "sub") { (0, import_dom.wrap)(doc.createElement("sub"), node); } } else if (node.nodeName === "B") { node = (0, import_dom.replaceTag)(node, "strong"); } else if (node.nodeName === "I") { node = (0, import_dom.replaceTag)(node, "em"); } else if (node.nodeName === "A") { if (node.target && node.target.toLowerCase() === "_blank") { node.rel = "noreferrer noopener"; } else { node.removeAttribute("target"); node.removeAttribute("rel"); } if (node.name && !node.id) { node.id = node.name; } if (node.id && !node.ownerDocument.querySelector(`[href="#${node.id}"]`)) { node.removeAttribute("id"); } } } //# sourceMappingURL=phrasing-content-reducer.js.map