Newer
Older
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloneAnchorFromPane = exports.pruneElement = exports.amendNodes = exports.ATTRIBUTES_TO_KEEP = exports.ELEMENT_TYPES_TO_REMOVE = void 0;
// this is a Node module. require is a must to work across different envs
const URL = require("url-parse");
exports.ELEMENT_TYPES_TO_REMOVE = {
br: true,
hr: true,
use: true,
svg: true,
};
exports.ATTRIBUTES_TO_KEEP = {
alt: true,
src: true,
cite: true,
data: true,
datetime: true,
href: true,
value: true,
};
const amendNodes = (document) => {
/**
* Unwind Outlook safelink wrappers
*/
const anchors = document.getElementsByTagName("a");
for (const anchor of anchors) {
/**
* Removes dummy QR code from HTML
* @param element
*/
const isDummyQrCode = (element) => {
if (element.id === DUMMY_QR_CODE_ID) {
return true;
}
};
/**
* Decides whether node should be removed
* @param element
*/
const pruneElement = (element) => {
if (isDummyQrCode(element)) {
return true;
}
return !!exports.ELEMENT_TYPES_TO_REMOVE[element.nodeName.toLowerCase()];
};
exports.pruneElement = pruneElement;
const cloneAnchorFromPane = (a, pane) => {
try {
// If this is external url
if (url.host && url.protocol) {
pane.parentNode.insertBefore(a.cloneNode(false), pane);
}
}