"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Utility for encoding. */ class XMLEncodeUtility { /** * Encodes attribute value. * * @param value Value. * @returns Escaped value. */ static encodeXMLAttributeValue(value) { if (value === null) { return ''; } return value .replace(/&/gu, '&') .replace(/"/gu, '"') .replace(//gu, '>') .replace(/\t/gu, ' ') .replace(/\n/gu, ' ') .replace(/\r/gu, ' '); } /** * Decodes attribute value. * * @param value Value. * @returns Decoded value. */ static decodeXMLAttributeValue(value) { if (value === null) { return ''; } return value .replace(/"/gu, '"') .replace(/</gu, '<') .replace(/>/gu, '>') .replace(/ /gu, '\t') .replace(/ /gu, '\n') .replace(/ /gu, '\r') .replace(/&/gu, '&'); } /** * Encodes attribute value. * * @param value Value. * @returns Escaped value. */ static encodeHTMLAttributeValue(value) { if (value === null) { return ''; } return value.replace(/&/gu, '&').replace(/"/gu, '"'); } /** * Decodes attribute value. * * @param value Value. * @returns Decoded value. */ static decodeHTMLAttributeValue(value) { if (value === null) { return ''; } return value.replace(/"/gu, '"').replace(/&/gu, '&'); } /** * Encodes text content. * * @param text Value. * @returns Escaped value. */ static encodeTextContent(text) { if (text === null) { return ''; } return text .replace(/&/gu, '&') .replace(/\xA0/gu, ' ') .replace(//gu, '>'); } /** * Decodes text content. * * @param text Value. * @returns Decoded value. */ static decodeTextContent(text) { if (text === null) { return ''; } return text .replace(/ /gu, String.fromCharCode(160)) .replace(/</gu, '<') .replace(/>/gu, '>') .replace(/&/gu, '&'); } /** * Decodes HTML entities. * * @param value Value. * @returns Decoded value. */ static decodeHTMLEntities(value) { if (value === null) { return ''; } return value .replace(/</gu, '<') .replace(/>/gu, '>') .replace(/ /gu, String.fromCharCode(160)) .replace(/"/gu, '"') .replace(/'/gu, "'") .replace(/&#(\d+);/gu, (_match, dec) => String.fromCharCode(parseInt(dec, 10))) .replace(/&#x([A-Fa-f\d]+);/gu, (_match, hex) => String.fromCharCode(parseInt(hex, 16))) .replace(/&/gu, '&'); } /** * Decodes XML entities. * * @param value Value. * @returns Decoded value. */ static decodeXMLEntities(value) { if (value === null) { return ''; } return (value .replace(/</gu, '<') .replace(/>/gu, '>') // " " Should not be supported in XML. .replace(/"/gu, '"') .replace(/'/gu, "'") .replace(/&#(\d+);/gu, (_match, dec) => String.fromCharCode(parseInt(dec, 10))) .replace(/&#x([A-Fa-f\d]+);/gu, (_match, hex) => String.fromCharCode(parseInt(hex, 16))) .replace(/&/gu, '&')); } } exports.default = XMLEncodeUtility; //# sourceMappingURL=XMLEncodeUtility.cjs.map