diff options
Diffstat (limited to 'wp-includes/js/dist/escape-html.js')
-rw-r--r-- | wp-includes/js/dist/escape-html.js | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/wp-includes/js/dist/escape-html.js b/wp-includes/js/dist/escape-html.js new file mode 100644 index 0000000..3963747 --- /dev/null +++ b/wp-includes/js/dist/escape-html.js @@ -0,0 +1,193 @@ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + escapeAmpersand: function() { return /* binding */ escapeAmpersand; }, + escapeAttribute: function() { return /* binding */ escapeAttribute; }, + escapeEditableHTML: function() { return /* binding */ escapeEditableHTML; }, + escapeHTML: function() { return /* binding */ escapeHTML; }, + escapeLessThan: function() { return /* binding */ escapeLessThan; }, + escapeQuotationMark: function() { return /* binding */ escapeQuotationMark; }, + isValidAttributeName: function() { return /* binding */ isValidAttributeName; } +}); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/escape-html/build-module/escape-greater.js +/** + * Returns a string with greater-than sign replaced. + * + * Note that if a resolution for Trac#45387 comes to fruition, it is no longer + * necessary for `__unstableEscapeGreaterThan` to exist. + * + * See: https://core.trac.wordpress.org/ticket/45387 + * + * @param {string} value Original string. + * + * @return {string} Escaped string. + */ +function __unstableEscapeGreaterThan(value) { + return value.replace(/>/g, '>'); +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/escape-html/build-module/index.js +/** + * Internal dependencies + */ + + +/** + * Regular expression matching invalid attribute names. + * + * "Attribute names must consist of one or more characters other than controls, + * U+0020 SPACE, U+0022 ("), U+0027 ('), U+003E (>), U+002F (/), U+003D (=), + * and noncharacters." + * + * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + * + * @type {RegExp} + */ +const REGEXP_INVALID_ATTRIBUTE_NAME = /[\u007F-\u009F "'>/="\uFDD0-\uFDEF]/; + +/** + * Returns a string with ampersands escaped. Note that this is an imperfect + * implementation, where only ampersands which do not appear as a pattern of + * named, decimal, or hexadecimal character references are escaped. Invalid + * named references (i.e. ambiguous ampersand) are still permitted. + * + * @see https://w3c.github.io/html/syntax.html#character-references + * @see https://w3c.github.io/html/syntax.html#ambiguous-ampersand + * @see https://w3c.github.io/html/syntax.html#named-character-references + * + * @param {string} value Original string. + * + * @return {string} Escaped string. + */ +function escapeAmpersand(value) { + return value.replace(/&(?!([a-z0-9]+|#[0-9]+|#x[a-f0-9]+);)/gi, '&'); +} + +/** + * Returns a string with quotation marks replaced. + * + * @param {string} value Original string. + * + * @return {string} Escaped string. + */ +function escapeQuotationMark(value) { + return value.replace(/"/g, '"'); +} + +/** + * Returns a string with less-than sign replaced. + * + * @param {string} value Original string. + * + * @return {string} Escaped string. + */ +function escapeLessThan(value) { + return value.replace(/</g, '<'); +} + +/** + * Returns an escaped attribute value. + * + * @see https://w3c.github.io/html/syntax.html#elements-attributes + * + * "[...] the text cannot contain an ambiguous ampersand [...] must not contain + * any literal U+0022 QUOTATION MARK characters (")" + * + * Note we also escape the greater than symbol, as this is used by wptexturize to + * split HTML strings. This is a WordPress specific fix + * + * Note that if a resolution for Trac#45387 comes to fruition, it is no longer + * necessary for `__unstableEscapeGreaterThan` to be used. + * + * See: https://core.trac.wordpress.org/ticket/45387 + * + * @param {string} value Attribute value. + * + * @return {string} Escaped attribute value. + */ +function escapeAttribute(value) { + return __unstableEscapeGreaterThan(escapeQuotationMark(escapeAmpersand(value))); +} + +/** + * Returns an escaped HTML element value. + * + * @see https://w3c.github.io/html/syntax.html#writing-html-documents-elements + * + * "the text must not contain the character U+003C LESS-THAN SIGN (<) or an + * ambiguous ampersand." + * + * @param {string} value Element value. + * + * @return {string} Escaped HTML element value. + */ +function escapeHTML(value) { + return escapeLessThan(escapeAmpersand(value)); +} + +/** + * Returns an escaped Editable HTML element value. This is different from + * `escapeHTML`, because for editable HTML, ALL ampersands must be escaped in + * order to render the content correctly on the page. + * + * @param {string} value Element value. + * + * @return {string} Escaped HTML element value. + */ +function escapeEditableHTML(value) { + return escapeLessThan(value.replace(/&/g, '&')); +} + +/** + * Returns true if the given attribute name is valid, or false otherwise. + * + * @param {string} name Attribute name to test. + * + * @return {boolean} Whether attribute is valid. + */ +function isValidAttributeName(name) { + return !REGEXP_INVALID_ATTRIBUTE_NAME.test(name); +} + +(window.wp = window.wp || {}).escapeHtml = __webpack_exports__; +/******/ })() +;
\ No newline at end of file |