wp/wp-includes/js/dist/escape-html.js
changeset 9 177826044cd9
child 16 a86126ab1dd4
equal deleted inserted replaced
8:c7c34916027a 9:177826044cd9
       
     1 this["wp"] = this["wp"] || {}; this["wp"]["escapeHtml"] =
       
     2 /******/ (function(modules) { // webpackBootstrap
       
     3 /******/ 	// The module cache
       
     4 /******/ 	var installedModules = {};
       
     5 /******/
       
     6 /******/ 	// The require function
       
     7 /******/ 	function __webpack_require__(moduleId) {
       
     8 /******/
       
     9 /******/ 		// Check if module is in cache
       
    10 /******/ 		if(installedModules[moduleId]) {
       
    11 /******/ 			return installedModules[moduleId].exports;
       
    12 /******/ 		}
       
    13 /******/ 		// Create a new module (and put it into the cache)
       
    14 /******/ 		var module = installedModules[moduleId] = {
       
    15 /******/ 			i: moduleId,
       
    16 /******/ 			l: false,
       
    17 /******/ 			exports: {}
       
    18 /******/ 		};
       
    19 /******/
       
    20 /******/ 		// Execute the module function
       
    21 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
       
    22 /******/
       
    23 /******/ 		// Flag the module as loaded
       
    24 /******/ 		module.l = true;
       
    25 /******/
       
    26 /******/ 		// Return the exports of the module
       
    27 /******/ 		return module.exports;
       
    28 /******/ 	}
       
    29 /******/
       
    30 /******/
       
    31 /******/ 	// expose the modules object (__webpack_modules__)
       
    32 /******/ 	__webpack_require__.m = modules;
       
    33 /******/
       
    34 /******/ 	// expose the module cache
       
    35 /******/ 	__webpack_require__.c = installedModules;
       
    36 /******/
       
    37 /******/ 	// define getter function for harmony exports
       
    38 /******/ 	__webpack_require__.d = function(exports, name, getter) {
       
    39 /******/ 		if(!__webpack_require__.o(exports, name)) {
       
    40 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
       
    41 /******/ 		}
       
    42 /******/ 	};
       
    43 /******/
       
    44 /******/ 	// define __esModule on exports
       
    45 /******/ 	__webpack_require__.r = function(exports) {
       
    46 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
       
    47 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
       
    48 /******/ 		}
       
    49 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
       
    50 /******/ 	};
       
    51 /******/
       
    52 /******/ 	// create a fake namespace object
       
    53 /******/ 	// mode & 1: value is a module id, require it
       
    54 /******/ 	// mode & 2: merge all properties of value into the ns
       
    55 /******/ 	// mode & 4: return value when already ns object
       
    56 /******/ 	// mode & 8|1: behave like require
       
    57 /******/ 	__webpack_require__.t = function(value, mode) {
       
    58 /******/ 		if(mode & 1) value = __webpack_require__(value);
       
    59 /******/ 		if(mode & 8) return value;
       
    60 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
       
    61 /******/ 		var ns = Object.create(null);
       
    62 /******/ 		__webpack_require__.r(ns);
       
    63 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
       
    64 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
       
    65 /******/ 		return ns;
       
    66 /******/ 	};
       
    67 /******/
       
    68 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
       
    69 /******/ 	__webpack_require__.n = function(module) {
       
    70 /******/ 		var getter = module && module.__esModule ?
       
    71 /******/ 			function getDefault() { return module['default']; } :
       
    72 /******/ 			function getModuleExports() { return module; };
       
    73 /******/ 		__webpack_require__.d(getter, 'a', getter);
       
    74 /******/ 		return getter;
       
    75 /******/ 	};
       
    76 /******/
       
    77 /******/ 	// Object.prototype.hasOwnProperty.call
       
    78 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
       
    79 /******/
       
    80 /******/ 	// __webpack_public_path__
       
    81 /******/ 	__webpack_require__.p = "";
       
    82 /******/
       
    83 /******/
       
    84 /******/ 	// Load entry module and return exports
       
    85 /******/ 	return __webpack_require__(__webpack_require__.s = 381);
       
    86 /******/ })
       
    87 /************************************************************************/
       
    88 /******/ ({
       
    89 
       
    90 /***/ 381:
       
    91 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
    92 
       
    93 "use strict";
       
    94 __webpack_require__.r(__webpack_exports__);
       
    95 
       
    96 // CONCATENATED MODULE: ./node_modules/@wordpress/escape-html/build-module/escape-greater.js
       
    97 /**
       
    98  * Returns a string with greater-than sign replaced.
       
    99  *
       
   100  * Note that if a resolution for Trac#45387 comes to fruition, it is no longer
       
   101  * necessary for `__unstableEscapeGreaterThan` to exist.
       
   102  *
       
   103  * See: https://core.trac.wordpress.org/ticket/45387
       
   104  *
       
   105  * @param {string} value Original string.
       
   106  *
       
   107  * @return {string} Escaped string.
       
   108  */
       
   109 function __unstableEscapeGreaterThan(value) {
       
   110   return value.replace(/>/g, '>');
       
   111 }
       
   112 
       
   113 // CONCATENATED MODULE: ./node_modules/@wordpress/escape-html/build-module/index.js
       
   114 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeAmpersand", function() { return escapeAmpersand; });
       
   115 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeQuotationMark", function() { return escapeQuotationMark; });
       
   116 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeLessThan", function() { return escapeLessThan; });
       
   117 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeAttribute", function() { return escapeAttribute; });
       
   118 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeHTML", function() { return escapeHTML; });
       
   119 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidAttributeName", function() { return isValidAttributeName; });
       
   120 /**
       
   121  * Internal dependencies
       
   122  */
       
   123 
       
   124 /**
       
   125  * Regular expression matching invalid attribute names.
       
   126  *
       
   127  * "Attribute names must consist of one or more characters other than controls,
       
   128  * U+0020 SPACE, U+0022 ("), U+0027 ('), U+003E (>), U+002F (/), U+003D (=),
       
   129  * and noncharacters."
       
   130  *
       
   131  * @link https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
       
   132  *
       
   133  * @type {RegExp}
       
   134  */
       
   135 
       
   136 var REGEXP_INVALID_ATTRIBUTE_NAME = /[\u007F-\u009F "'>/="\uFDD0-\uFDEF]/;
       
   137 /**
       
   138  * Returns a string with ampersands escaped. Note that this is an imperfect
       
   139  * implementation, where only ampersands which do not appear as a pattern of
       
   140  * named, decimal, or hexadecimal character references are escaped. Invalid
       
   141  * named references (i.e. ambiguous ampersand) are are still permitted.
       
   142  *
       
   143  * @link https://w3c.github.io/html/syntax.html#character-references
       
   144  * @link https://w3c.github.io/html/syntax.html#ambiguous-ampersand
       
   145  * @link https://w3c.github.io/html/syntax.html#named-character-references
       
   146  *
       
   147  * @param {string} value Original string.
       
   148  *
       
   149  * @return {string} Escaped string.
       
   150  */
       
   151 
       
   152 function escapeAmpersand(value) {
       
   153   return value.replace(/&(?!([a-z0-9]+|#[0-9]+|#x[a-f0-9]+);)/gi, '&');
       
   154 }
       
   155 /**
       
   156  * Returns a string with quotation marks replaced.
       
   157  *
       
   158  * @param {string} value Original string.
       
   159  *
       
   160  * @return {string} Escaped string.
       
   161  */
       
   162 
       
   163 function escapeQuotationMark(value) {
       
   164   return value.replace(/"/g, '"');
       
   165 }
       
   166 /**
       
   167  * Returns a string with less-than sign replaced.
       
   168  *
       
   169  * @param {string} value Original string.
       
   170  *
       
   171  * @return {string} Escaped string.
       
   172  */
       
   173 
       
   174 function escapeLessThan(value) {
       
   175   return value.replace(/</g, '&lt;');
       
   176 }
       
   177 /**
       
   178  * Returns an escaped attribute value.
       
   179  *
       
   180  * @link https://w3c.github.io/html/syntax.html#elements-attributes
       
   181  *
       
   182  * "[...] the text cannot contain an ambiguous ampersand [...] must not contain
       
   183  * any literal U+0022 QUOTATION MARK characters (")"
       
   184  *
       
   185  * Note we also escape the greater than symbol, as this is used by wptexturize to
       
   186  * split HTML strings. This is a WordPress specific fix
       
   187  *
       
   188  * Note that if a resolution for Trac#45387 comes to fruition, it is no longer
       
   189  * necessary for `__unstableEscapeGreaterThan` to be used.
       
   190  *
       
   191  * See: https://core.trac.wordpress.org/ticket/45387
       
   192  *
       
   193  * @param {string} value Attribute value.
       
   194  *
       
   195  * @return {string} Escaped attribute value.
       
   196  */
       
   197 
       
   198 function escapeAttribute(value) {
       
   199   return __unstableEscapeGreaterThan(escapeQuotationMark(escapeAmpersand(value)));
       
   200 }
       
   201 /**
       
   202  * Returns an escaped HTML element value.
       
   203  *
       
   204  * @link https://w3c.github.io/html/syntax.html#writing-html-documents-elements
       
   205  *
       
   206  * "the text must not contain the character U+003C LESS-THAN SIGN (<) or an
       
   207  * ambiguous ampersand."
       
   208  *
       
   209  * @param {string} value Element value.
       
   210  *
       
   211  * @return {string} Escaped HTML element value.
       
   212  */
       
   213 
       
   214 function escapeHTML(value) {
       
   215   return escapeLessThan(escapeAmpersand(value));
       
   216 }
       
   217 /**
       
   218  * Returns true if the given attribute name is valid, or false otherwise.
       
   219  *
       
   220  * @param {string} name Attribute name to test.
       
   221  *
       
   222  * @return {boolean} Whether attribute is valid.
       
   223  */
       
   224 
       
   225 function isValidAttributeName(name) {
       
   226   return !REGEXP_INVALID_ATTRIBUTE_NAME.test(name);
       
   227 }
       
   228 
       
   229 
       
   230 /***/ })
       
   231 
       
   232 /******/ });