angelovcom.net

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

token-list.js (9785B)


      1 this["wp"] = this["wp"] || {}; this["wp"]["tokenList"] =
      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 = "hwXU");
     86 /******/ })
     87 /************************************************************************/
     88 /******/ ({
     89 
     90 /***/ "YLtl":
     91 /***/ (function(module, exports) {
     92 
     93 (function() { module.exports = window["lodash"]; }());
     94 
     95 /***/ }),
     96 
     97 /***/ "hwXU":
     98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
     99 
    100 "use strict";
    101 __webpack_require__.r(__webpack_exports__);
    102 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return TokenList; });
    103 /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YLtl");
    104 /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
    105 /**
    106  * External dependencies
    107  */
    108 
    109 /**
    110  * A set of tokens.
    111  *
    112  * @see https://dom.spec.whatwg.org/#domtokenlist
    113  */
    114 
    115 class TokenList {
    116   /**
    117    * Constructs a new instance of TokenList.
    118    *
    119    * @param {string} initialValue Initial value to assign.
    120    */
    121   constructor(initialValue = '') {
    122     this.value = initialValue; // Disable reason: These are type hints on the class.
    123 
    124     /* eslint-disable no-unused-expressions */
    125 
    126     /** @type {string} */
    127 
    128     this._currentValue;
    129     /** @type {string[]} */
    130 
    131     this._valueAsArray;
    132     /* eslint-enable no-unused-expressions */
    133   }
    134   /**
    135    * @param {Parameters<Array<string>['entries']>} args
    136    */
    137 
    138 
    139   entries(...args) {
    140     return this._valueAsArray.entries(...args);
    141   }
    142   /**
    143    * @param {Parameters<Array<string>['forEach']>} args
    144    */
    145 
    146 
    147   forEach(...args) {
    148     return this._valueAsArray.forEach(...args);
    149   }
    150   /**
    151    * @param {Parameters<Array<string>['keys']>} args
    152    */
    153 
    154 
    155   keys(...args) {
    156     return this._valueAsArray.keys(...args);
    157   }
    158   /**
    159    * @param {Parameters<Array<string>['values']>} args
    160    */
    161 
    162 
    163   values(...args) {
    164     return this._valueAsArray.values(...args);
    165   }
    166   /**
    167    * Returns the associated set as string.
    168    *
    169    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-value
    170    *
    171    * @return {string} Token set as string.
    172    */
    173 
    174 
    175   get value() {
    176     return this._currentValue;
    177   }
    178   /**
    179    * Replaces the associated set with a new string value.
    180    *
    181    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-value
    182    *
    183    * @param {string} value New token set as string.
    184    */
    185 
    186 
    187   set value(value) {
    188     value = String(value);
    189     this._valueAsArray = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["uniq"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["compact"])(value.split(/\s+/g)));
    190     this._currentValue = this._valueAsArray.join(' ');
    191   }
    192   /**
    193    * Returns the number of tokens.
    194    *
    195    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-length
    196    *
    197    * @return {number} Number of tokens.
    198    */
    199 
    200 
    201   get length() {
    202     return this._valueAsArray.length;
    203   }
    204   /**
    205    * Returns the stringified form of the TokenList.
    206    *
    207    * @see https://dom.spec.whatwg.org/#DOMTokenList-stringification-behavior
    208    * @see https://www.ecma-international.org/ecma-262/9.0/index.html#sec-tostring
    209    *
    210    * @return {string} Token set as string.
    211    */
    212 
    213 
    214   toString() {
    215     return this.value;
    216   }
    217   /**
    218    * Returns an iterator for the TokenList, iterating items of the set.
    219    *
    220    * @see https://dom.spec.whatwg.org/#domtokenlist
    221    *
    222    * @return {IterableIterator<string>} TokenList iterator.
    223    */
    224 
    225 
    226   *[Symbol.iterator]() {
    227     return yield* this._valueAsArray;
    228   }
    229   /**
    230    * Returns the token with index `index`.
    231    *
    232    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-item
    233    *
    234    * @param {number} index Index at which to return token.
    235    *
    236    * @return {string|undefined} Token at index.
    237    */
    238 
    239 
    240   item(index) {
    241     return this._valueAsArray[index];
    242   }
    243   /**
    244    * Returns true if `token` is present, and false otherwise.
    245    *
    246    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-contains
    247    *
    248    * @param {string} item Token to test.
    249    *
    250    * @return {boolean} Whether token is present.
    251    */
    252 
    253 
    254   contains(item) {
    255     return this._valueAsArray.indexOf(item) !== -1;
    256   }
    257   /**
    258    * Adds all arguments passed, except those already present.
    259    *
    260    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-add
    261    *
    262    * @param {...string} items Items to add.
    263    */
    264 
    265 
    266   add(...items) {
    267     this.value += ' ' + items.join(' ');
    268   }
    269   /**
    270    * Removes arguments passed, if they are present.
    271    *
    272    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-remove
    273    *
    274    * @param {...string} items Items to remove.
    275    */
    276 
    277 
    278   remove(...items) {
    279     this.value = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["without"])(this._valueAsArray, ...items).join(' ');
    280   }
    281   /**
    282    * If `force` is not given, "toggles" `token`, removing it if it’s present
    283    * and adding it if it’s not present. If `force` is true, adds token (same
    284    * as add()). If force is false, removes token (same as remove()). Returns
    285    * true if `token` is now present, and false otherwise.
    286    *
    287    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-toggle
    288    *
    289    * @param {string}  token   Token to toggle.
    290    * @param {boolean} [force] Presence to force.
    291    *
    292    * @return {boolean} Whether token is present after toggle.
    293    */
    294 
    295 
    296   toggle(token, force) {
    297     if (undefined === force) {
    298       force = !this.contains(token);
    299     }
    300 
    301     if (force) {
    302       this.add(token);
    303     } else {
    304       this.remove(token);
    305     }
    306 
    307     return force;
    308   }
    309   /**
    310    * Replaces `token` with `newToken`. Returns true if `token` was replaced
    311    * with `newToken`, and false otherwise.
    312    *
    313    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-replace
    314    *
    315    * @param {string} token    Token to replace with `newToken`.
    316    * @param {string} newToken Token to use in place of `token`.
    317    *
    318    * @return {boolean} Whether replacement occurred.
    319    */
    320 
    321 
    322   replace(token, newToken) {
    323     if (!this.contains(token)) {
    324       return false;
    325     }
    326 
    327     this.remove(token);
    328     this.add(newToken);
    329     return true;
    330   }
    331   /**
    332    * Returns true if `token` is in the associated attribute’s supported
    333    * tokens. Returns false otherwise.
    334    *
    335    * Always returns `true` in this implementation.
    336    *
    337    * @see https://dom.spec.whatwg.org/#dom-domtokenlist-supports
    338    *
    339    * @return {boolean} Whether token is supported.
    340    */
    341 
    342 
    343   supports() {
    344     return true;
    345   }
    346 
    347 }
    348 
    349 
    350 /***/ })
    351 
    352 /******/ })["default"];