UNPKG

html-to-image

Version:

Generates an image from a DOM node using HTML5 canvas and SVG.

54 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.clonePseudoElements = void 0; var util_1 = require("./util"); function clonePseudoElements(nativeNode, clonedNode) { var pseudos = [':before', ':after']; pseudos.forEach(function (pseudo) { return Pseudo.clonePseudoElement(nativeNode, clonedNode, pseudo); }); } exports.clonePseudoElements = clonePseudoElements; var Pseudo; (function (Pseudo) { function clonePseudoElement(nativeNode, clonedNode, pseudo) { var style = window.getComputedStyle(nativeNode, pseudo); var content = style.getPropertyValue('content'); if (content === '' || content === 'none') { return; } var className = util_1.uuid(); // fix: Cannot assign to read only property 'className' of object '#<… try { clonedNode.className = clonedNode.className + " " + className; } catch (err) { return; } var styleElement = document.createElement('style'); styleElement.appendChild(getPseudoElementStyle(className, pseudo, style)); clonedNode.appendChild(styleElement); } Pseudo.clonePseudoElement = clonePseudoElement; function getPseudoElementStyle(className, pseudo, style) { var selector = "." + className + ":" + pseudo; var cssText = style.cssText ? formatCssText(style) : formatCssProperties(style); return document.createTextNode(selector + "{" + cssText + "}"); } function formatCssText(style) { var content = style.getPropertyValue('content'); return style.cssText + " content: " + content + ";"; } function formatCssProperties(style) { return util_1.toArray(style) .map(function (name) { var value = style.getPropertyValue(name); var priority = style.getPropertyPriority(name); return name + ": " + value + (priority ? ' !important' : '') + ";"; }) .join(' '); } })(Pseudo || (Pseudo = {})); //# sourceMappingURL=clonePseudoElements.js.map