PluginProbe
Gutenberg / 12.1.0
Gutenberg v12.1.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / token-list / index.js

index.js in Gutenberg 12.1.0, at build/token-list/index.js

290 lines 7.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (function() { // webpackBootstrap
2 /******/ "use strict";
3 /******/ // The require scope
4 /******/ var __webpack_require__ = {};
5 /******/
6 /************************************************************************/
7 /******/ /* webpack/runtime/define property getters */
8 /******/ !function() {
9 /******/ // define getter functions for harmony exports
10 /******/ __webpack_require__.d = function(exports, definition) {
11 /******/ for(var key in definition) {
12 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14 /******/ }
15 /******/ }
16 /******/ };
17 /******/ }();
18 /******/
19 /******/ /* webpack/runtime/hasOwnProperty shorthand */
20 /******/ !function() {
21 /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
22 /******/ }();
23 /******/
24 /************************************************************************/
25 var __webpack_exports__ = {};
26
27 // EXPORTS
28 __webpack_require__.d(__webpack_exports__, {
29 "default": function() { return /* binding */ TokenList; }
30 });
31
32 ;// CONCATENATED MODULE: external "lodash"
33 var external_lodash_namespaceObject = window["lodash"];
34 ;// CONCATENATED MODULE: ./packages/token-list/build-module/index.js
35 /**
36 * External dependencies
37 */
38
39 /**
40 * A set of tokens.
41 *
42 * @see https://dom.spec.whatwg.org/#domtokenlist
43 */
44
45 class TokenList {
46 /**
47 * Constructs a new instance of TokenList.
48 *
49 * @param {string} initialValue Initial value to assign.
50 */
51 constructor() {
52 let initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
53 this.value = initialValue; // Disable reason: These are type hints on the class.
54
55 /* eslint-disable no-unused-expressions */
56
57 /** @type {string} */
58
59 this._currentValue;
60 /** @type {string[]} */
61
62 this._valueAsArray;
63 /* eslint-enable no-unused-expressions */
64 }
65 /**
66 * @param {Parameters<Array<string>['entries']>} args
67 */
68
69
70 entries() {
71 return this._valueAsArray.entries(...arguments);
72 }
73 /**
74 * @param {Parameters<Array<string>['forEach']>} args
75 */
76
77
78 forEach() {
79 return this._valueAsArray.forEach(...arguments);
80 }
81 /**
82 * @param {Parameters<Array<string>['keys']>} args
83 */
84
85
86 keys() {
87 return this._valueAsArray.keys(...arguments);
88 }
89 /**
90 * @param {Parameters<Array<string>['values']>} args
91 */
92
93
94 values() {
95 return this._valueAsArray.values(...arguments);
96 }
97 /**
98 * Returns the associated set as string.
99 *
100 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-value
101 *
102 * @return {string} Token set as string.
103 */
104
105
106 get value() {
107 return this._currentValue;
108 }
109 /**
110 * Replaces the associated set with a new string value.
111 *
112 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-value
113 *
114 * @param {string} value New token set as string.
115 */
116
117
118 set value(value) {
119 value = String(value);
120 this._valueAsArray = (0,external_lodash_namespaceObject.uniq)((0,external_lodash_namespaceObject.compact)(value.split(/\s+/g)));
121 this._currentValue = this._valueAsArray.join(' ');
122 }
123 /**
124 * Returns the number of tokens.
125 *
126 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-length
127 *
128 * @return {number} Number of tokens.
129 */
130
131
132 get length() {
133 return this._valueAsArray.length;
134 }
135 /**
136 * Returns the stringified form of the TokenList.
137 *
138 * @see https://dom.spec.whatwg.org/#DOMTokenList-stringification-behavior
139 * @see https://www.ecma-international.org/ecma-262/9.0/index.html#sec-tostring
140 *
141 * @return {string} Token set as string.
142 */
143
144
145 toString() {
146 return this.value;
147 }
148 /**
149 * Returns an iterator for the TokenList, iterating items of the set.
150 *
151 * @see https://dom.spec.whatwg.org/#domtokenlist
152 *
153 * @return {IterableIterator<string>} TokenList iterator.
154 */
155
156
157 *[Symbol.iterator]() {
158 return yield* this._valueAsArray;
159 }
160 /**
161 * Returns the token with index `index`.
162 *
163 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-item
164 *
165 * @param {number} index Index at which to return token.
166 *
167 * @return {string|undefined} Token at index.
168 */
169
170
171 item(index) {
172 return this._valueAsArray[index];
173 }
174 /**
175 * Returns true if `token` is present, and false otherwise.
176 *
177 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-contains
178 *
179 * @param {string} item Token to test.
180 *
181 * @return {boolean} Whether token is present.
182 */
183
184
185 contains(item) {
186 return this._valueAsArray.indexOf(item) !== -1;
187 }
188 /**
189 * Adds all arguments passed, except those already present.
190 *
191 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-add
192 *
193 * @param {...string} items Items to add.
194 */
195
196
197 add() {
198 for (var _len = arguments.length, items = new Array(_len), _key = 0; _key < _len; _key++) {
199 items[_key] = arguments[_key];
200 }
201
202 this.value += ' ' + items.join(' ');
203 }
204 /**
205 * Removes arguments passed, if they are present.
206 *
207 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-remove
208 *
209 * @param {...string} items Items to remove.
210 */
211
212
213 remove() {
214 for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
215 items[_key2] = arguments[_key2];
216 }
217
218 this.value = (0,external_lodash_namespaceObject.without)(this._valueAsArray, ...items).join(' ');
219 }
220 /**
221 * If `force` is not given, "toggles" `token`, removing it if it’s present
222 * and adding it if it’s not present. If `force` is true, adds token (same
223 * as add()). If force is false, removes token (same as remove()). Returns
224 * true if `token` is now present, and false otherwise.
225 *
226 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-toggle
227 *
228 * @param {string} token Token to toggle.
229 * @param {boolean} [force] Presence to force.
230 *
231 * @return {boolean} Whether token is present after toggle.
232 */
233
234
235 toggle(token, force) {
236 if (undefined === force) {
237 force = !this.contains(token);
238 }
239
240 if (force) {
241 this.add(token);
242 } else {
243 this.remove(token);
244 }
245
246 return force;
247 }
248 /**
249 * Replaces `token` with `newToken`. Returns true if `token` was replaced
250 * with `newToken`, and false otherwise.
251 *
252 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-replace
253 *
254 * @param {string} token Token to replace with `newToken`.
255 * @param {string} newToken Token to use in place of `token`.
256 *
257 * @return {boolean} Whether replacement occurred.
258 */
259
260
261 replace(token, newToken) {
262 if (!this.contains(token)) {
263 return false;
264 }
265
266 this.remove(token);
267 this.add(newToken);
268 return true;
269 }
270 /**
271 * Returns true if `token` is in the associated attribute’s supported
272 * tokens. Returns false otherwise.
273 *
274 * Always returns `true` in this implementation.
275 *
276 * @see https://dom.spec.whatwg.org/#dom-domtokenlist-supports
277 *
278 * @return {boolean} Whether token is supported.
279 */
280
281
282 supports() {
283 return true;
284 }
285
286 }
287 //# sourceMappingURL=index.js.map
288 (window.wp = window.wp || {}).tokenList = __webpack_exports__.default;
289 /******/ })()
290 ;