diff options
Diffstat (limited to '')
-rw-r--r-- | wp-includes/js/dist/html-entities.js | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/wp-includes/js/dist/html-entities.js b/wp-includes/js/dist/html-entities.js new file mode 100644 index 0000000..40435fa --- /dev/null +++ b/wp-includes/js/dist/html-entities.js @@ -0,0 +1,98 @@ +/******/ (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__ = {}; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ decodeEntities: function() { return /* binding */ decodeEntities; } +/* harmony export */ }); +/** @type {HTMLTextAreaElement} */ +let _decodeTextArea; + +/** + * Decodes the HTML entities from a given string. + * + * @param {string} html String that contain HTML entities. + * + * @example + * ```js + * const result = decodeEntities( 'á' ); + * console.log( result ); // result will be "รก" + * ``` + * + * @return {string} The decoded string. + */ +function decodeEntities(html) { + // Not a string, or no entities to decode. + if ('string' !== typeof html || -1 === html.indexOf('&')) { + return html; + } + + // Create a textarea for decoding entities, that we can reuse. + if (undefined === _decodeTextArea) { + if (document.implementation && document.implementation.createHTMLDocument) { + _decodeTextArea = document.implementation.createHTMLDocument('').createElement('textarea'); + } else { + _decodeTextArea = document.createElement('textarea'); + } + } + _decodeTextArea.innerHTML = html; + const decoded = _decodeTextArea.textContent; + _decodeTextArea.innerHTML = ''; + + /** + * Cast to string, HTMLTextAreaElement should always have `string` textContent. + * + * > The `textContent` property of the `Node` interface represents the text content of the + * > node and its descendants. + * > + * > Value: A string or `null` + * > + * > * If the node is a `document` or a Doctype, `textContent` returns `null`. + * > * If the node is a CDATA section, comment, processing instruction, or text node, + * > textContent returns the text inside the node, i.e., the `Node.nodeValue`. + * > * For other node types, `textContent returns the concatenation of the textContent of + * > every child node, excluding comments and processing instructions. (This is an empty + * > string if the node has no children.) + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent + */ + return (/** @type {string} */decoded + ); +} + +(window.wp = window.wp || {}).htmlEntities = __webpack_exports__; +/******/ })() +;
\ No newline at end of file |