PageSourceSearch

https://www.penyesvalenciacf.com/wp-includes/js/dist/url.js?ver=d62dba05ffc50c672f4a

js penyesvalenciacf.com collected 2026-10-02 14:20:48 UTC 35,065 bytes, 1,476 lines download raw bytes

1/******/ (() => { // webpackBootstrap
2/******/ 	var __webpack_modules__ = ({
3
4/***/ 9681:
5/***/ ((module) => {
6
7var characterMap = {
8	"À": "A",
9	"Á": "A",
10	"Â": "A",
11	"Ã": "A",
12	"Ä": "A",
13	"Å": "A",
14	"Ấ": "A",
15	"Ắ": "A",
16	"Ẳ": "A",
17	"Ẵ": "A",
18	"Ặ": "A",
19	"Æ": "AE",
20	"Ầ": "A",
21	"Ằ": "A",
22	"Ȃ": "A",
23	"Ả": "A",
24	"Ạ": "A",
25	"Ẩ": "A",
26	"Ẫ": "A",
27	"Ậ": "A",
28	"Ç": "C",
29	"Ḉ": "C",
30	"È": "E",
31	"É": "E",
32	"Ê": "E",
33	"Ë": "E",
34	"Ế": "E",
35	"Ḗ": "E",
36	"Ề": "E",
37	"Ḕ": "E",
38	"Ḝ": "E",
39	"Ȇ": "E",
40	"Ẻ": "E",
41	"Ẽ": "E",
42	"Ẹ": "E",
43	"Ể": "E",
44	"Ễ": "E",
45	"Ệ": "E",
46	"Ì": "I",
47	"Í": "I",
48	"Î": "I",
49	"Ï": "I",
50	"Ḯ": "I",
51	"Ȋ": "I",
52	"Ỉ": "I",
53	"Ị": "I",
54	"Ð": "D",
55	"Ñ": "N",
56	"Ò": "O",
57	"Ó": "O",
58	"Ô": "O",
59	"Õ": "O",
60	"Ö": "O",
61	"Ø": "O",
62	"Ố": "O",
63	"Ṍ": "O",
64	"Ṓ": "O",
65	"Ȏ": "O",
66	"Ỏ": "O",
67	"Ọ": "O",
68	"Ổ": "O",
69	"Ỗ": "O",
70	"Ộ": "O",
71	"Ờ": "O",
72	"Ở": "O",
73	"á» ": "O",
74	"Ớ": "O",
75	"Ợ": "O",
76	"Ù": "U",
77	"Ú": "U",
78	"Û": "U",
79	"Ü": "U",
80	"Ủ": "U",
81	"Ụ": "U",
82	"Ử": "U",
83	"á»®": "U",
84	"á»°": "U",
85	"Ý": "Y",
86	"à": "a",
87	"á": "a",
88	"â": "a",
89	"ã": "a",
90	"ä": "a",
91	"Ã¥": "a",
92	"ấ": "a",
93	"ắ": "a",
94	"ẳ": "a",
95	"ẵ": "a",
96	"ặ": "a",
97	"æ": "ae",
98	"ầ": "a",
99	"ằ": "a",
100	"ȃ": "a",
101	"ả": "a",
102	"ạ": "a",
103	"ẩ": "a",
104	"ẫ": "a",
105	"ậ": "a",
106	"ç": "c",
107	"ḉ": "c",
108	"è": "e",
109	"é": "e",
110	"ê": "e",
111	"ë": "e",
112	"ế": "e",
113	"ḗ": "e",
114	"ề": "e",
115	"ḕ": "e",
116	"ḝ": "e",
117	"ȇ": "e",
118	"ẻ": "e",
119	"ẽ": "e",
120	"ẹ": "e",
121	"ể": "e",
122	"ễ": "e",
123	"ệ": "e",
124	"ì": "i",
125	"í": "i",
126	"î": "i",
127	"ï": "i",
128	"ḯ": "i",
129	"ȋ": "i",
130	"ỉ": "i",
131	"ị": "i",
132	"ð": "d",
133	"ñ": "n",
134	"ò": "o",
135	"ó": "o",
136	"ô": "o",
137	"õ": "o",
138	"ö": "o",
139	"ø": "o",
140	"ố": "o",
141	"ṍ": "o",
142	"ṓ": "o",
143	"ȏ": "o",
144	"ỏ": "o",
145	"ọ": "o",
146	"ổ": "o",
147	"ỗ": "o",
148	"ộ": "o",
149	"ờ": "o",
150	"ở": "o",
151	"ỡ": "o",
152	"ớ": "o",
153	"ợ": "o",
154	"ù": "u",
155	"ú": "u",
156	"û": "u",
157	"ü": "u",
158	"á»§": "u",
159	"ụ": "u",
160	"á»­": "u",
161	"ữ": "u",
162	"á»±": "u",
163	"ý": "y",
164	"ÿ": "y",
165	"Ā": "A",
166	"ā": "a",
167	"Ă": "A",
168	"ă": "a",
169	"Ą": "A",
170	"ą": "a",
171	"Ć": "C",
172	"ć": "c",
173	"Ĉ": "C",
174	"ĉ": "c",
175	"Ċ": "C",
176	"ċ": "c",
177	"Č": "C",
178	"č": "c",
179	"C̆": "C",
180	"c̆": "c",
181	"Ď": "D",
182	"ď": "d",
183	"Đ": "D",
184	"đ": "d",
185	"Ē": "E",
186	"ē": "e",
187	"Ĕ": "E",
188	"ĕ": "e",
189	"Ė": "E",
190	"ė": "e",
191	"Ę": "E",
192	"ę": "e",
193	"Ě": "E",
194	"ě": "e",
195	"Ĝ": "G",
196	"Ç´": "G",
197	"ĝ": "g",
198	"ǵ": "g",
199	"Ğ": "G",
200	"ğ": "g",
201	"Ä ": "G",
202	"Ä¡": "g",
203	"Ä¢": "G",
204	"Ä£": "g",
205	"Ĥ": "H",
206	"Ä¥": "h",
207	"Ħ": "H",
208	"ħ": "h",
209	"Ḫ": "H",
210	"ḫ": "h",
211	"Ĩ": "I",
212	"Ä©": "i",
213	"Ī": "I",
214	"Ä«": "i",
215	"Ĭ": "I",
216	"Ä­": "i",
217	"Ä®": "I",
218	"į": "i",
219	"İ": "I",
220	"ı": "i",
221	"IJ": "IJ",
222	"ij": "ij",
223	"Ä´": "J",
224	"ĵ": "j",
225	"Ķ": "K",
226	"Ä·": "k",
227	"Ḱ": "K",
228	"ḱ": "k",
229	"K̆": "K",
230	"k̆": "k",
231	"Ĺ": "L",
232	"ĺ": "l",
233	"Ä»": "L",
234	"ļ": "l",
235	"Ľ": "L",
236	"ľ": "l",
237	"Ä¿": "L",
238	"ŀ": "l",
239	"Ł": "l",
240	"ł": "l",
241	"Ḿ": "M",
242	"ḿ": "m",
243	"M̆": "M",
244	"m̆": "m",
245	"Ń": "N",
246	"ń": "n",
247	"Ņ": "N",
248	"ņ": "n",
249	"Ň": "N",
250	"ň": "n",
251	"ʼn": "n",
252	"N̆": "N",
253	"n̆": "n",
254	"Ō": "O",
255	"ō": "o",
256	"Ŏ": "O",
257	"ŏ": "o",
258	"Ő": "O",
259	"ő": "o",
260	"Œ": "OE",
261	"œ": "oe",
262	"P̆": "P",
263	"p̆": "p",
264	"Ŕ": "R",
265	"ŕ": "r",
266	"Ŗ": "R",
267	"ŗ": "r",
268	"Ř": "R",
269	"ř": "r",
270	"R̆": "R",
271	"r̆": "r",
272	"Ȓ": "R",
273	"ȓ": "r",
274	"Ś": "S",
275	"ś": "s",
276	"Ŝ": "S",
277	"ŝ": "s",
278	"Ş": "S",
279	"Ș": "S",
280	"ș": "s",
281	"ş": "s",
282	"Å ": "S",
283	"Å¡": "s",
284	"Å¢": "T",
285	"Å£": "t",
286	"ț": "t",
287	"Ț": "T",
288	"Ť": "T",
289	"Å¥": "t",
290	"Ŧ": "T",
291	"ŧ": "t",
292	"T̆": "T",
293	"t̆": "t",
294	"Ũ": "U",
295	"Å©": "u",
296	"Ū": "U",
297	"Å«": "u",
298	"Ŭ": "U",
299	"Å­": "u",
300	"Å®": "U",
301	"ů": "u",
302	"Ű": "U",
303	"ű": "u",
304	"Ų": "U",
305	"ų": "u",
306	"Ȗ": "U",
307	"ȗ": "u",
308	"V̆": "V",
309	"v̆": "v",
310	"Å´": "W",
311	"ŵ": "w",
312	"Ẃ": "W",
313	"ẃ": "w",
314	"X̆": "X",
315	"x̆": "x",
316	"Ŷ": "Y",
317	"Å·": "y",
318	"Ÿ": "Y",
319	"Y̆": "Y",
320	"y̆": "y",
321	"Ź": "Z",
322	"ź": "z",
323	"Å»": "Z",
324	"ż": "z",
325	"Ž": "Z",
326	"ž": "z",
327	"Å¿": "s",
328	"ƒ": "f",
329	"Æ ": "O",
330	"Æ¡": "o",
331	"Ư": "U",
332	"ư": "u",
333	"Ǎ": "A",
334	"ǎ": "a",
335	"Ǐ": "I",
336	"ǐ": "i",
337	"Ǒ": "O",
338	"ǒ": "o",
339	"Ǔ": "U",
340	"ǔ": "u",
341	"Ǖ": "U",
342	"ǖ": "u",
343	"Ǘ": "U",
344	"ǘ": "u",
345	"Ǚ": "U",
346	"ǚ": "u",
347	"Ǜ": "U",
348	"ǜ": "u",
349	"Ứ": "U",
350	"ứ": "u",
351	"Ṹ": "U",
352	"á¹¹": "u",
353	"Ǻ": "A",
354	"Ç»": "a",
355	"Ǽ": "AE",
356	"ǽ": "ae",
357	"Ǿ": "O",
358	"Ç¿": "o",
359	"Þ": "TH",
360	"þ": "th",
361	"Ṕ": "P",
362	"ṕ": "p",
363	"Ṥ": "S",
364	"á¹¥": "s",
365	"X́": "X",
366	"x́": "x",
367	"Ѓ": "Г",
368	"ѓ": "г",
369	"Ќ": "К",
370	"ќ": "к",
371	"A̋": "A",
372	"a̋": "a",
373	"E̋": "E",
374	"e̋": "e",
375	"I̋": "I",
376	"i̋": "i",
377	"Ǹ": "N",
378	"ǹ": "n",
379	"Ồ": "O",
380	"ồ": "o",
381	"Ṑ": "O",
382	"ṑ": "o",
383	"Ừ": "U",
384	"ừ": "u",
385	"Ẁ": "W",
386	"ẁ": "w",
387	"Ỳ": "Y",
388	"ỳ": "y",
389	"Ȁ": "A",
390	"ȁ": "a",
391	"Ȅ": "E",
392	"ȅ": "e",
393	"Ȉ": "I",
394	"ȉ": "i",
395	"Ȍ": "O",
396	"ȍ": "o",
397	"Ȑ": "R",
398	"ȑ": "r",
399	"Ȕ": "U",
400	"ȕ": "u",
401	"B̌": "B",
402	"b̌": "b",
403	"Č̣": "C",
404	"č̣": "c",
405	"Ê̌": "E",
406	"ê̌": "e",
407	"F̌": "F",
408	"f̌": "f",
409	"Ǧ": "G",
410	"ǧ": "g",
411	"Ȟ": "H",
412	"ȟ": "h",
413	"J̌": "J",
414	"ǰ": "j",
415	"Ǩ": "K",
416	"Ç©": "k",
417	"M̌": "M",
418	"m̌": "m",
419	"P̌": "P",
420	"p̌": "p",
421	"Q̌": "Q",
422	"q̌": "q",
423	"Ř̩": "R",
424	"ř̩": "r",
425	"Ṧ": "S",
426	"á¹§": "s",
427	"V̌": "V",
428	"v̌": "v",
429	"W̌": "W",
430	"w̌": "w",
431	"X̌": "X",
432	"x̌": "x",
433	"Y̌": "Y",
434	"y̌": "y",
435	"A̧": "A",
436	"a̧": "a",
437	"B̧": "B",
438	"b̧": "b",
439	"Ḑ": "D",
440	"ḑ": "d",
441	"Ȩ": "E",
442	"È©": "e",
443	"Ɛ̧": "E",
444	"ɛ̧": "e",
445	"Ḩ": "H",
446	"ḩ": "h",
447	"I̧": "I",
448	"i̧": "i",
449	"Ɨ̧": "I",
450	"ɨ̧": "i",
451	"M̧": "M",
452	"m̧": "m",
453	"O̧": "O",
454	"o̧": "o",
455	"Q̧": "Q",
456	"q̧": "q",
457	"U̧": "U",
458	"u̧": "u",
459	"X̧": "X",
460	"x̧": "x",
461	"Z̧": "Z",
462	"z̧": "z",
463	"й":"и",
464	"Й":"И",
465	"ё":"е",
466	"Ё":"Е",
467};
468
469var chars = Object.keys(characterMap).join('|');
470var allAccents = new RegExp(chars, 'g');
471var firstAccent = new RegExp(chars, '');
472
473function matcher(match) {
474	return characterMap[match];
475}
476
477var removeAccents = function(string) {
478	return string.replace(allAccents, matcher);
479};
480
481var hasAccents = function(string) {
482	return !!string.match(firstAccent);
483};
484
485module.exports = removeAccents;
486module.exports.has = hasAccents;
487module.exports.remove = removeAccents;
488
489
490/***/ })
491
492/******/ 	});
493/************************************************************************/
494/******/ 	// The module cache
495/******/ 	var __webpack_module_cache__ = {};
496/******/ 	
497/******/ 	// The require function
498/******/ 	function __webpack_require__(moduleId) {
499/******/ 		// Check if module is in cache
500/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
501/******/ 		if (cachedModule !== undefined) {
502/******/ 			return cachedModule.exports;
503/******/ 		}
504/******/ 		// Create a new module (and put it into the cache)
505/******/ 		var module = __webpack_module_cache__[moduleId] = {
506/******/ 			// no module.id needed
507/******/ 			// no module.loaded needed
508/******/ 			exports: {}
509/******/ 		};
510/******/ 	
511/******/ 		// Execute the module function
512/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
513/******/ 	
514/******/ 		// Return the exports of the module
515/******/ 		return module.exports;
516/******/ 	}
517/******/ 	
518/************************************************************************/
519/******/ 	/* webpack/runtime/compat get default export */
520/******/ 	(() => {
521/******/ 		// getDefaultExport function for compatibility with non-harmony modules
522/******/ 		__webpack_require__.n = (module) => {
vendor: 1,615 bytes, lines 523-563
523/******/ 			var getter = module && module.__esModule ?
524/******/ 				() => (module['default']) :
525/******/ 				() => (module);
526/******/ 			__webpack_require__.d(getter, { a: getter });
527/******/ 			return getter;
528/******/ 		};
529/******/ 	})();
530/******/ 	
531/******/ 	/* webpack/runtime/define property getters */
532/******/ 	(() => {
533/******/ 		// define getter functions for harmony exports
534/******/ 		__webpack_require__.d = (exports, definition) => {
535/******/ 			for(var key in definition) {
536/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
537/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
538/******/ 				}
539/******/ 			}
540/******/ 		};
541/******/ 	})();
542/******/ 	
543/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
544/******/ 	(() => {
545/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
546/******/ 	})();
547/******/ 	
548/******/ 	/* webpack/runtime/make namespace object */
549/******/ 	(() => {
550/******/ 		// define __esModule on exports
551/******/ 		__webpack_require__.r = (exports) => {
552/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
553/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
554/******/ 			}
555/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
556/******/ 		};
557/******/ 	})();
558/******/ 	
559/************************************************************************/
560var __webpack_exports__ = {};
561// This entry need to be wrapped in an IIFE because it need to be in strict mode.
562(() => {
563"use strict";
564// ESM COMPAT FLAG
565__webpack_require__.r(__webpack_exports__);
566
567// EXPORTS
568__webpack_require__.d(__webpack_exports__, {
569  addQueryArgs: () => (/* reexport */ addQueryArgs),
570  buildQueryString: () => (/* reexport */ buildQueryString),
571  cleanForSlug: () => (/* reexport */ cleanForSlug),
572  filterURLForDisplay: () => (/* reexport */ filterURLForDisplay),
573  getAuthority: () => (/* reexport */ getAuthority),
574  getFilename: () => (/* reexport */ getFilename),
575  getFragment: () => (/* reexport */ getFragment),
576  getPath: () => (/* reexport */ getPath),
577  getPathAndQueryString: () => (/* reexport */ getPathAndQueryString),
578  getProtocol: () => (/* reexport */ getProtocol),
579  getQueryArg: () => (/* reexport */ getQueryArg),
580  getQueryArgs: () => (/* reexport */ getQueryArgs),
581  getQueryString: () => (/* reexport */ getQueryString),
582  hasQueryArg: () => (/* reexport */ hasQueryArg),
583  isEmail: () => (/* reexport */ isEmail),
584  isPhoneNumber: () => (/* reexport */ isPhoneNumber),
585  isURL: () => (/* reexport */ isURL),
586  isValidAuthority: () => (/* reexport */ isValidAuthority),
587  isValidFragment: () => (/* reexport */ isValidFragment),
588  isValidPath: () => (/* reexport */ isValidPath),
589  isValidProtocol: () => (/* reexport */ isValidProtocol),
590  isValidQueryString: () => (/* reexport */ isValidQueryString),
591  normalizePath: () => (/* reexport */ normalizePath),
592  prependHTTP: () => (/* reexport */ prependHTTP),
593  prependHTTPS: () => (/* reexport */ prependHTTPS),
594  removeQueryArgs: () => (/* reexport */ removeQueryArgs),
595  safeDecodeURI: () => (/* reexport */ safeDecodeURI),
596  safeDecodeURIComponent: () => (/* reexport */ safeDecodeURIComponent)
597});
598
599;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-url.js
600/* wp:polyfill */
601/**
602 * Determines whether the given string looks like a URL.
603 *
604 * @param {string} url The string to scrutinise.
605 *
606 * @example
607 * ```js
608 * const isURL = isURL( 'https://wordpress.org' ); // true
609 * ```
610 *
611 * @see https://url.spec.whatwg.org/
612 * @see https://url.spec.whatwg.org/#valid-url-string
613 *
614 * @return {boolean} Whether or not it looks like a URL.
615 */
616function isURL(url) {
617  // A URL can be considered value if the `URL` constructor is able to parse
618  // it. The constructor throws an error for an invalid URL.
619  try {
620    new URL(url);
621    return true;
622  } catch {
623    return false;
624  }
625}
626
627;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-email.js
628const EMAIL_REGEXP = /^(mailto:)?[a-z0-9._%+-]+@[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$/i;
629
630/**
631 * Determines whether the given string looks like an email.
632 *
633 * @param {string} email The string to scrutinise.
634 *
635 * @example
636 * ```js
637 * const isEmail = isEmail( '[email protected]' ); // true
638 * ```
639 *
640 * @return {boolean} Whether or not it looks like an email.
641 */
642function isEmail(email) {
643  return EMAIL_REGEXP.test(email);
644}
645
646;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-phone-number.js
647const PHONE_REGEXP = /^(tel:)?(\+)?\d{6,15}$/;
648
649/**
650 * Determines whether the given string looks like a phone number.
651 *
652 * @param {string} phoneNumber The string to scrutinize.
653 *
654 * @example
655 * ```js
656 * const isPhoneNumber = isPhoneNumber('+1 (555) 123-4567'); // true
657 * ```
658 *
659 * @return {boolean} Whether or not it looks like a phone number.
660 */
661function isPhoneNumber(phoneNumber) {
662  // Remove any seperator from phone number.
663  phoneNumber = phoneNumber.replace(/[-.() ]/g, '');
664  return PHONE_REGEXP.test(phoneNumber);
665}
666
667;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-protocol.js
668/**
669 * Returns the protocol part of the URL.
670 *
671 * @param {string} url The full URL.
672 *
673 * @example
674 * ```js
675 * const protocol1 = getProtocol( 'tel:012345678' ); // 'tel:'
676 * const protocol2 = getProtocol( 'https://wordpress.org' ); // 'https:'
677 * ```
678 *
679 * @return {string|void} The protocol part of the URL.
680 */
681function getProtocol(url) {
682  const matches = /^([^\s:]+:)/.exec(url);
683  if (matches) {
684    return matches[1];
685  }
686}
687
688;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-protocol.js
689/**
690 * Tests if a url protocol is valid.
691 *
692 * @param {string} protocol The url protocol.
693 *
694 * @example
695 * ```js
696 * const isValid = isValidProtocol( 'https:' ); // true
697 * const isNotValid = isValidProtocol( 'https :' ); // false
698 * ```
699 *
700 * @return {boolean} True if the argument is a valid protocol (e.g. http:, tel:).
701 */
702function isValidProtocol(protocol) {
703  if (!protocol) {
704    return false;
705  }
706  return /^[a-z\-.\+]+[0-9]*:$/i.test(protocol);
707}
708
709;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-authority.js
710/**
711 * Returns the authority part of the URL.
712 *
713 * @param {string} url The full URL.
714 *
715 * @example
716 * ```js
717 * const authority1 = getAuthority( 'https://wordpress.org/help/' ); // 'wordpress.org'
718 * const authority2 = getAuthority( 'https://localhost:8080/test/' ); // 'localhost:8080'
719 * ```
720 *
721 * @return {string|void} The authority part of the URL.
722 */
723function getAuthority(url) {
724  const matches = /^[^\/\s:]+:(?:\/\/)?\/?([^\/\s#?]+)[\/#?]{0,1}\S*$/.exec(url);
725  if (matches) {
726    return matches[1];
727  }
728}
729
730;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-authority.js
731/**
732 * Checks for invalid characters within the provided authority.
733 *
734 * @param {string} authority A string containing the URL authority.
735 *
736 * @example
737 * ```js
738 * const isValid = isValidAuthority( 'wordpress.org' ); // true
739 * const isNotValid = isValidAuthority( 'wordpress#org' ); // false
740 * ```
741 *
742 * @return {boolean} True if the argument contains a valid authority.
743 */
744function isValidAuthority(authority) {
745  if (!authority) {
746    return false;
747  }
748  return /^[^\s#?]+$/.test(authority);
749}
750
751;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-path.js
752/**
753 * Returns the path part of the URL.
754 *
755 * @param {string} url The full URL.
756 *
757 * @example
758 * ```js
759 * const path1 = getPath( 'http://localhost:8080/this/is/a/test?query=true' ); // 'this/is/a/test'
760 * const path2 = getPath( 'https://wordpress.org/help/faq/' ); // 'help/faq'
761 * ```
762 *
763 * @return {string|void} The path part of the URL.
764 */
765function getPath(url) {
766  const matches = /^[^\/\s:]+:(?:\/\/)?[^\/\s#?]+[\/]([^\s#?]+)[#?]{0,1}\S*$/.exec(url);
767  if (matches) {
768    return matches[1];
769  }
770}
771
772;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-path.js
773/**
774 * Checks for invalid characters within the provided path.
775 *
776 * @param {string} path The URL path.
777 *
778 * @example
779 * ```js
780 * const isValid = isValidPath( 'test/path/' ); // true
781 * const isNotValid = isValidPath( '/invalid?test/path/' ); // false
782 * ```
783 *
784 * @return {boolean} True if the argument contains a valid path
785 */
786function isValidPath(path) {
787  if (!path) {
788    return false;
789  }
790  return /^[^\s#?]+$/.test(path);
791}
792
793;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-query-string.js
794/* wp:polyfill */
795/**
796 * Returns the query string part of the URL.
797 *
798 * @param {string} url The full URL.
799 *
800 * @example
801 * ```js
802 * const queryString = getQueryString( 'http://localhost:8080/this/is/a/test?query=true#fragment' ); // 'query=true'
803 * ```
804 *
805 * @return {string|void} The query string part of the URL.
806 */
807function getQueryString(url) {
808  let query;
809  try {
810    query = new URL(url, 'http://example.com').search.substring(1);
811  } catch (error) {}
812  if (query) {
813    return query;
814  }
815}
816
817;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/build-query-string.js
818/**
819 * Generates URL-encoded query string using input query data.
820 *
821 * It is intended to behave equivalent as PHP's `http_build_query`, configured
822 * with encoding type PHP_QUERY_RFC3986 (spaces as `%20`).
823 *
824 * @example
825 * ```js
826 * const queryString = buildQueryString( {
827 *    simple: 'is ok',
828 *    arrays: [ 'are', 'fine', 'too' ],
829 *    objects: {
830 *       evenNested: {
831 *          ok: 'yes',
832 *       },
833 *    },
834 * } );
835 * // "simple=is%20ok&arrays%5B0%5D=are&arrays%5B1%5D=fine&arrays%5B2%5D=too&objects%5BevenNested%5D%5Bok%5D=yes"
836 * ```
837 *
838 * @param {Record<string,*>} data Data to encode.
839 *
840 * @return {string} Query string.
841 */
842function buildQueryString(data) {
843  let string = '';
844  const stack = Object.entries(data);
845  let pair;
846  while (pair = stack.shift()) {
847    let [key, value] = pair;
848
849    // Support building deeply nested data, from array or object values.
850    const hasNestedData = Array.isArray(value) || value && value.constructor === Object;
851    if (hasNestedData) {
852      // Push array or object values onto the stack as composed of their
853      // original key and nested index or key, retaining order by a
854      // combination of Array#reverse and Array#unshift onto the stack.
855      const valuePairs = Object.entries(value).reverse();
856      for (const [member, memberValue] of valuePairs) {
857        stack.unshift([`${key}[${member}]`, memberValue]);
858      }
859    } else if (value !== undefined) {
860      // Null is treated as special case, equivalent to empty string.
861      if (value === null) {
862        value = '';
863      }
864      string += '&' + [key, value].map(encodeURIComponent).join('=');
865    }
866  }
867
868  // Loop will concatenate with leading `&`, but it's only expected for all
869  // but the first query parameter. This strips the leading `&`, while still
870  // accounting for the case that the string may in-fact be empty.
871  return string.substr(1);
872}
873
874;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-query-string.js
875/**
876 * Checks for invalid characters within the provided query string.
877 *
878 * @param {string} queryString The query string.
879 *
880 * @example
881 * ```js
882 * const isValid = isValidQueryString( 'query=true&another=false' ); // true
883 * const isNotValid = isValidQueryString( 'query=true?another=false' ); // false
884 * ```
885 *
886 * @return {boolean} True if the argument contains a valid query string.
887 */
888function isValidQueryString(queryString) {
889  if (!queryString) {
890    return false;
891  }
892  return /^[^\s#?\/]+$/.test(queryString);
893}
894
895;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-path-and-query-string.js
896/**
897 * Internal dependencies
898 */
899
900
901/**
902 * Returns the path part and query string part of the URL.
903 *
904 * @param {string} url The full URL.
905 *
906 * @example
907 * ```js
908 * const pathAndQueryString1 = getPathAndQueryString( 'http://localhost:8080/this/is/a/test?query=true' ); // '/this/is/a/test?query=true'
909 * const pathAndQueryString2 = getPathAndQueryString( 'https://wordpress.org/help/faq/' ); // '/help/faq'
910 * ```
911 *
912 * @return {string} The path part and query string part of the URL.
913 */
914function getPathAndQueryString(url) {
915  const path = getPath(url);
916  const queryString = getQueryString(url);
917  let value = '/';
918  if (path) {
919    value += path;
920  }
921  if (queryString) {
922    value += `?${queryString}`;
923  }
924  return value;
925}
926
927;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-fragment.js
928/**
929 * Returns the fragment part of the URL.
930 *
931 * @param {string} url The full URL
932 *
933 * @example
934 * ```js
935 * const fragment1 = getFragment( 'http://localhost:8080/this/is/a/test?query=true#fragment' ); // '#fragment'
936 * const fragment2 = getFragment( 'https://wordpress.org#another-fragment?query=true' ); // '#another-fragment'
937 * ```
938 *
939 * @return {string|void} The fragment part of the URL.
940 */
941function getFragment(url) {
942  const matches = /^\S+?(#[^\s\?]*)/.exec(url);
943  if (matches) {
944    return matches[1];
945  }
946}
947
948;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-fragment.js
949/**
950 * Checks for invalid characters within the provided fragment.
951 *
952 * @param {string} fragment The url fragment.
953 *
954 * @example
955 * ```js
956 * const isValid = isValidFragment( '#valid-fragment' ); // true
957 * const isNotValid = isValidFragment( '#invalid-#fragment' ); // false
958 * ```
959 *
960 * @return {boolean} True if the argument contains a valid fragment.
961 */
962function isValidFragment(fragment) {
963  if (!fragment) {
964    return false;
965  }
966  return /^#[^\s#?\/]*$/.test(fragment);
967}
968
969;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/safe-decode-uri-component.js
970/**
971 * Safely decodes a URI component with `decodeURIComponent`. Returns the URI component unmodified if
972 * `decodeURIComponent` throws an error.
973 *
974 * @param {string} uriComponent URI component to decode.
975 *
976 * @return {string} Decoded URI component if possible.
977 */
978function safeDecodeURIComponent(uriComponent) {
979  try {
980    return decodeURIComponent(uriComponent);
981  } catch (uriComponentError) {
982    return uriComponent;
983  }
984}
985
986;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-query-args.js
987/**
988 * Internal dependencies
989 */
990
991
992
993/** @typedef {import('./get-query-arg').QueryArgParsed} QueryArgParsed */
994
995/**
996 * @typedef {Record<string,QueryArgParsed>} QueryArgs
997 */
998
999/**
1000 * Sets a value in object deeply by a given array of path segments. Mutates the
1001 * object reference.
1002 *
1003 * @param {Record<string,*>} object Object in which to assign.
1004 * @param {string[]}         path   Path segment at which to set value.
1005 * @param {*}                value  Value to set.
1006 */
1007function setPath(object, path, value) {
1008  const length = path.length;
1009  const lastIndex = length - 1;
1010  for (let i = 0; i < length; i++) {
1011    let key = path[i];
1012    if (!key && Array.isArray(object)) {
1013      // If key is empty string and next value is array, derive key from
1014      // the current length of the array.
1015      key = object.length.toString();
1016    }
1017    key = ['__proto__', 'constructor', 'prototype'].includes(key) ? key.toUpperCase() : key;
1018
1019    // If the next key in the path is numeric (or empty string), it will be
1020    // created as an array. Otherwise, it will be created as an object.
1021    const isNextKeyArrayIndex = !isNaN(Number(path[i + 1]));
1022    object[key] = i === lastIndex ?
1023    // If at end of path, assign the intended value.
1024    value :
1025    // Otherwise, advance to the next object in the path, creating
1026    // it if it does not yet exist.
1027    object[key] || (isNextKeyArrayIndex ? [] : {});
1028    if (Array.isArray(object[key]) && !isNextKeyArrayIndex) {
1029      // If we current key is non-numeric, but the next value is an
1030      // array, coerce the value to an object.
1031      object[key] = {
1032        ...object[key]
1033      };
1034    }
1035
1036    // Update working reference object to the next in the path.
1037    object = object[key];
1038  }
1039}
1040
1041/**
1042 * Returns an object of query arguments of the given URL. If the given URL is
1043 * invalid or has no querystring, an empty object is returned.
1044 *
1045 * @param {string} url URL.
1046 *
1047 * @example
1048 * ```js
1049 * const foo = getQueryArgs( 'https://wordpress.org?foo=bar&bar=baz' );
1050 * // { "foo": "bar", "bar": "baz" }
1051 * ```
1052 *
1053 * @return {QueryArgs} Query args object.
1054 */
1055function getQueryArgs(url) {
1056  return (getQueryString(url) || ''
1057  // Normalize space encoding, accounting for PHP URL encoding
1058  // corresponding to `application/x-www-form-urlencoded`.
1059  //
1060  // See: https://tools.ietf.org/html/rfc1866#section-8.2.1
1061  ).replace(/\+/g, '%20').split('&').reduce((accumulator, keyValue) => {
1062    const [key, value = ''] = keyValue.split('=')
1063    // Filtering avoids decoding as `undefined` for value, where
1064    // default is restored in destructuring assignment.
1065    .filter(Boolean).map(safeDecodeURIComponent);
1066    if (key) {
1067      const segments = key.replace(/\]/g, '').split('[');
1068      setPath(accumulator, segments, value);
1069    }
1070    return accumulator;
1071  }, Object.create(null));
1072}
1073
1074;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/add-query-args.js
1075/**
1076 * Internal dependencies
1077 */
1078
1079
1080
1081/**
1082 * Appends arguments as querystring to the provided URL. If the URL already
1083 * includes query arguments, the arguments are merged with (and take precedent
1084 * over) the existing set.
1085 *
1086 * @param {string} [url=''] URL to which arguments should be appended. If omitted,
1087 *                          only the resulting querystring is returned.
1088 * @param {Object} [args]   Query arguments to apply to URL.
1089 *
1090 * @example
1091 * ```js
1092 * const newURL = addQueryArgs( 'https://google.com', { q: 'test' } ); // https://google.com/?q=test
1093 * ```
1094 *
1095 * @return {string} URL with arguments applied.
1096 */
1097function addQueryArgs(url = '', args) {
1098  // If no arguments are to be appended, return original URL.
1099  if (!args || !Object.keys(args).length) {
1100    return url;
1101  }
1102  let baseUrl = url;
1103
1104  // Determine whether URL already had query arguments.
1105  const queryStringIndex = url.indexOf('?');
1106  if (queryStringIndex !== -1) {
1107    // Merge into existing query arguments.
1108    args = Object.assign(getQueryArgs(url), args);
1109
1110    // Change working base URL to omit previous query arguments.
1111    baseUrl = baseUrl.substr(0, queryStringIndex);
1112  }
1113  return baseUrl + '?' + buildQueryString(args);
1114}
1115
1116;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-query-arg.js
1117/**
1118 * Internal dependencies
1119 */
1120
1121
1122/**
1123 * @typedef {{[key: string]: QueryArgParsed}} QueryArgObject
1124 */
1125
1126/**
1127 * @typedef {string|string[]|QueryArgObject} QueryArgParsed
1128 */
1129
1130/**
1131 * Returns a single query argument of the url
1132 *
1133 * @param {string} url URL.
1134 * @param {string} arg Query arg name.
1135 *
1136 * @example
1137 * ```js
1138 * const foo = getQueryArg( 'https://wordpress.org?foo=bar&bar=baz', 'foo' ); // bar
1139 * ```
1140 *
1141 * @return {QueryArgParsed|void} Query arg value.
1142 */
1143function getQueryArg(url, arg) {
1144  return getQueryArgs(url)[arg];
1145}
1146
1147;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/has-query-arg.js
1148/**
1149 * Internal dependencies
1150 */
1151
1152
1153/**
1154 * Determines whether the URL contains a given query arg.
1155 *
1156 * @param {string} url URL.
1157 * @param {string} arg Query arg name.
1158 *
1159 * @example
1160 * ```js
1161 * const hasBar = hasQueryArg( 'https://wordpress.org?foo=bar&bar=baz', 'bar' ); // true
1162 * ```
1163 *
1164 * @return {boolean} Whether or not the URL contains the query arg.
1165 */
1166function hasQueryArg(url, arg) {
1167  return getQueryArg(url, arg) !== undefined;
1168}
1169
1170;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/remove-query-args.js
1171/**
1172 * Internal dependencies
1173 */
1174
1175
1176
1177/**
1178 * Removes arguments from the query string of the url
1179 *
1180 * @param {string}    url  URL.
1181 * @param {...string} args Query Args.
1182 *
1183 * @example
1184 * ```js
1185 * const newUrl = removeQueryArgs( 'https://wordpress.org?foo=bar&bar=baz&baz=foobar', 'foo', 'bar' ); // https://wordpress.org?baz=foobar
1186 * ```
1187 *
1188 * @return {string} Updated URL.
1189 */
1190function removeQueryArgs(url, ...args) {
1191  const queryStringIndex = url.indexOf('?');
1192  if (queryStringIndex === -1) {
1193    return url;
1194  }
1195  const query = getQueryArgs(url);
1196  const baseURL = url.substr(0, queryStringIndex);
1197  args.forEach(arg => delete query[arg]);
1198  const queryString = buildQueryString(query);
1199  return queryString ? baseURL + '?' + queryString : baseURL;
1200}
1201
1202;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/prepend-http.js
1203/**
1204 * Internal dependencies
1205 */
1206
1207const USABLE_HREF_REGEXP = /^(?:[a-z]+:|#|\?|\.|\/)/i;
1208
1209/**
1210 * Prepends "http://" to a url, if it looks like something that is meant to be a TLD.
1211 *
1212 * @param {string} url The URL to test.
1213 *
1214 * @example
1215 * ```js
1216 * const actualURL = prependHTTP( 'wordpress.org' ); // http://wordpress.org
1217 * ```
1218 *
1219 * @return {string} The updated URL.
1220 */
1221function prependHTTP(url) {
1222  if (!url) {
1223    return url;
1224  }
1225  url = url.trim();
1226  if (!USABLE_HREF_REGEXP.test(url) && !isEmail(url)) {
1227    return 'http://' + url;
1228  }
1229  return url;
1230}
1231
1232;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/safe-decode-uri.js
1233/**
1234 * Safely decodes a URI with `decodeURI`. Returns the URI unmodified if
1235 * `decodeURI` throws an error.
1236 *
1237 * @param {string} uri URI to decode.
1238 *
1239 * @example
1240 * ```js
1241 * const badUri = safeDecodeURI( '%z' ); // does not throw an Error, simply returns '%z'
1242 * ```
1243 *
1244 * @return {string} Decoded URI if possible.
1245 */
1246function safeDecodeURI(uri) {
1247  try {
1248    return decodeURI(uri);
1249  } catch (uriError) {
1250    return uri;
1251  }
1252}
1253
1254;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/filter-url-for-display.js
1255/**
1256 * Returns a URL for display.
1257 *
1258 * @param {string}      url       Original URL.
1259 * @param {number|null} maxLength URL length.
1260 *
1261 * @example
1262 * ```js
1263 * const displayUrl = filterURLForDisplay( 'https://www.wordpress.org/gutenberg/' ); // wordpress.org/gutenberg
1264 * const imageUrl = filterURLForDisplay( 'https://www.wordpress.org/wp-content/uploads/img.png', 20 ); // …ent/uploads/img.png
1265 * ```
1266 *
1267 * @return {string} Displayed URL.
1268 */
1269function filterURLForDisplay(url, maxLength = null) {
1270  if (!url) {
1271    return '';
1272  }
1273
1274  // Remove protocol and www prefixes.
1275  let filteredURL = url.replace(/^[a-z\-.\+]+[0-9]*:(\/\/)?/i, '').replace(/^www\./i, '');
1276
1277  // Ends with / and only has that single slash, strip it.
1278  if (filteredURL.match(/^[^\/]+\/$/)) {
1279    filteredURL = filteredURL.replace('/', '');
1280  }
1281
1282  // capture file name from URL
1283  const fileRegexp = /\/([^\/?]+)\.(?:[\w]+)(?=\?|$)/;
1284  if (!maxLength || filteredURL.length <= maxLength || !filteredURL.match(fileRegexp)) {
1285    return filteredURL;
1286  }
1287
1288  // If the file is not greater than max length, return last portion of URL.
1289  filteredURL = filteredURL.split('?')[0];
1290  const urlPieces = filteredURL.split('/');
1291  const file = urlPieces[urlPieces.length - 1];
1292  if (file.length <= maxLength) {
1293    return '…' + filteredURL.slice(-maxLength);
1294  }
1295
1296  // If the file is greater than max length, truncate the file.
1297  const index = file.lastIndexOf('.');
1298  const [fileName, extension] = [file.slice(0, index), file.slice(index + 1)];
1299  const truncatedFile = fileName.slice(-3) + '.' + extension;
1300  return file.slice(0, maxLength - truncatedFile.length - 1) + '…' + truncatedFile;
1301}
1302
1303// EXTERNAL MODULE: ./node_modules/remove-accents/index.js
1304var remove_accents = __webpack_require__(9681);
1305var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents);
1306;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/clean-for-slug.js
1307/**
1308 * External dependencies
1309 */
1310
1311
1312/**
1313 * Performs some basic cleanup of a string for use as a post slug.
1314 *
1315 * This replicates some of what `sanitize_title()` does in WordPress core, but
1316 * is only designed to approximate what the slug will be.
1317 *
1318 * Converts Latin-1 Supplement and Latin Extended-A letters to basic Latin
1319 * letters. Removes combining diacritical marks. Converts whitespace, periods,
1320 * and forward slashes to hyphens. Removes any remaining non-word characters
1321 * except hyphens. Converts remaining string to lowercase. It does not account
1322 * for octets, HTML entities, or other encoded characters.
1323 *
1324 * @param {string} string Title or slug to be processed.
1325 *
1326 * @return {string} Processed string.
1327 */
1328function cleanForSlug(string) {
1329  if (!string) {
1330    return '';
1331  }
1332  return remove_accents_default()(string)
1333  // Convert each group of whitespace, periods, and forward slashes to a hyphen.
1334  .replace(/[\s\./]+/g, '-')
1335  // Remove anything that's not a letter, number, underscore or hyphen.
1336  .replace(/[^\p{L}\p{N}_-]+/gu, '')
1337  // Convert to lowercase
1338  .toLowerCase()
1339  // Replace multiple hyphens with a single one.
1340  .replace(/-+/g, '-')
1341  // Remove any remaining leading or trailing hyphens.
1342  .replace(/(^-+)|(-+$)/g, '');
1343}
1344
1345;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-filename.js
1346/* wp:polyfill */
1347/**
1348 * Returns the filename part of the URL.
1349 *
1350 * @param {string} url The full URL.
1351 *
1352 * @example
1353 * ```js
1354 * const filename1 = getFilename( 'http://localhost:8080/this/is/a/test.jpg' ); // 'test.jpg'
1355 * const filename2 = getFilename( '/this/is/a/test.png' ); // 'test.png'
1356 * ```
1357 *
1358 * @return {string|void} The filename part of the URL.
1359 */
1360function getFilename(url) {
1361  let filename;
1362  if (!url) {
1363    return;
1364  }
1365  try {
1366    filename = new URL(url, 'http://example.com').pathname.split('/').pop();
1367  } catch (error) {}
1368  if (filename) {
1369    return filename;
1370  }
1371}
1372
1373;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/normalize-path.js
1374/**
1375 * Given a path, returns a normalized path where equal query parameter values
1376 * will be treated as identical, regardless of order they appear in the original
1377 * text.
1378 *
1379 * @param {string} path Original path.
1380 *
1381 * @return {string} Normalized path.
1382 */
1383function normalizePath(path) {
1384  const splitted = path.split('?');
1385  const query = splitted[1];
1386  const base = splitted[0];
1387  if (!query) {
1388    return base;
1389  }
1390
1391  // 'b=1%2C2&c=2&a=5'
1392  return base + '?' + query
1393  // [ 'b=1%2C2', 'c=2', 'a=5' ]
1394  .split('&')
1395  // [ [ 'b, '1%2C2' ], [ 'c', '2' ], [ 'a', '5' ] ]
1396  .map(entry => entry.split('='))
1397  // [ [ 'b', '1,2' ], [ 'c', '2' ], [ 'a', '5' ] ]
1398  .map(pair => pair.map(decodeURIComponent))
1399  // [ [ 'a', '5' ], [ 'b, '1,2' ], [ 'c', '2' ] ]
1400  .sort((a, b) => a[0].localeCompare(b[0]))
1401  // [ [ 'a', '5' ], [ 'b, '1%2C2' ], [ 'c', '2' ] ]
1402  .map(pair => pair.map(encodeURIComponent))
1403  // [ 'a=5', 'b=1%2C2', 'c=2' ]
1404  .map(pair => pair.join('='))
1405  // 'a=5&b=1%2C2&c=2'
1406  .join('&');
1407}
1408
1409;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/prepend-https.js
1410/**
1411 * Internal dependencies
1412 */
1413
1414
1415/**
1416 * Prepends "https://" to a url, if it looks like something that is meant to be a TLD.
1417 *
1418 * Note: this will not replace "http://" with "https://".
1419 *
1420 * @param {string} url The URL to test.
1421 *
1422 * @example
1423 * ```js
1424 * const actualURL = prependHTTPS( 'wordpress.org' ); // https://wordpress.org
1425 * ```
1426 *
1427 * @return {string} The updated URL.
1428 */
1429function prependHTTPS(url) {
1430  if (!url) {
1431    return url;
1432  }
1433
1434  // If url starts with http://, return it as is.
1435  if (url.startsWith('http://')) {
1436    return url;
1437  }
1438  url = prependHTTP(url);
1439  return url.replace(/^http:/, 'https:');
1440}
1441
1442;// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/index.js
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472})();
1473
1474(window.wp = window.wp || {}).url = __webpack_exports__;
1475/******/ })()
1476;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.