UNPKG

@wordpress/blocks

Version:
72 lines (70 loc) 2.65 kB
"use strict"; 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.ts 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; const element = node; if (fontWeight === "bold" || fontWeight === "700") { (0, import_dom.wrap)(doc.createElement("strong"), element); } if (fontStyle === "italic") { (0, import_dom.wrap)(doc.createElement("em"), element); } if (textDecorationLine === "line-through" || textDecoration.includes("line-through")) { (0, import_dom.wrap)(doc.createElement("s"), element); } if (verticalAlign === "super") { (0, import_dom.wrap)(doc.createElement("sup"), element); } else if (verticalAlign === "sub") { (0, import_dom.wrap)(doc.createElement("sub"), element); } } else if (node.nodeName === "B") { (0, import_dom.replaceTag)(node, "strong"); } else if (node.nodeName === "I") { (0, import_dom.replaceTag)(node, "em"); } else if (node.nodeName === "A") { const anchor = node; if (anchor.target && anchor.target.toLowerCase() === "_blank") { anchor.rel = "noopener"; } else { anchor.removeAttribute("target"); anchor.removeAttribute("rel"); } if (anchor.name && !anchor.id) { anchor.id = anchor.name; } if (anchor.id && !anchor.ownerDocument.querySelector(`[href="#${anchor.id}"]`)) { anchor.removeAttribute("id"); } } } //# sourceMappingURL=phrasing-content-reducer.cjs.map