UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

31 lines (24 loc) 1.08 kB
"use strict"; var domAdapter = require("../dom_adapter"); function getMarkup(element) { var temp = domAdapter.createElement('div'); temp.appendChild(element.cloneNode(true)); return temp.innerHTML; } function fixIENamespaces(markup) { var first = true; markup = markup.replace(/xmlns="[\s\S]*?"/gi, function (match) { if (!first) return ""; first = false; return match; }); return markup.replace(/xmlns:NS1="[\s\S]*?"/gi, "").replace(/NS1:xmlns:xlink="([\s\S]*?)"/gi, 'xmlns:xlink="$1"'); } // T428345 we decode only restricted HTML entities, looks like other entities do not cause problems // as they presented as symbols itself, not named entities function decodeHtmlEntities(markup) { return markup.replace(/"/gi, """).replace(/&/gi, "&").replace(/'/gi, "'").replace(/</gi, "<").replace(/>/gi, ">").replace(/ /gi, " ").replace(/­/gi, "­"); } exports.getSvgMarkup = function (element) { return fixIENamespaces(decodeHtmlEntities(getMarkup(element))); };