PluginProbe
Gutenberg / 23.7.2
Gutenberg v23.7.2
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 / modules / interactivity-router / index.js

index.js in Gutenberg 23.7.2, at build/modules/interactivity-router/index.js

1,025 lines 44.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // packages/interactivity-router/build-module/index.mjs
2 import { store, privateApis, getConfig } from "@wordpress/interactivity";
3
4 // packages/interactivity-router/build-module/assets/scs.mjs
5 function shortestCommonSupersequence(X, Y, isEqual = (a, b) => a === b) {
6 const m = X.length;
7 const n = Y.length;
8 const dp = Array.from(
9 { length: m + 1 },
10 () => Array(n + 1).fill(null)
11 );
12 for (let i = 0; i <= m; i++) {
13 dp[i][0] = X.slice(0, i);
14 }
15 for (let j = 0; j <= n; j++) {
16 dp[0][j] = Y.slice(0, j);
17 }
18 for (let i = 1; i <= m; i++) {
19 for (let j = 1; j <= n; j++) {
20 if (isEqual(X[i - 1], Y[j - 1])) {
21 dp[i][j] = dp[i - 1][j - 1].concat(X[i - 1]);
22 } else {
23 const option1 = dp[i - 1][j].concat(X[i - 1]);
24 const option2 = dp[i][j - 1].concat(Y[j - 1]);
25 dp[i][j] = option1.length <= option2.length ? option1 : option2;
26 }
27 }
28 }
29 return dp[m][n];
30 }
31
32 // packages/interactivity-router/build-module/assets/styles.mjs
33 var areNodesEqual = (a, b) => a.isEqualNode(b);
34 var normalizeMedia = (element) => {
35 element = element.cloneNode(true);
36 const media = element.media;
37 const { originalMedia } = element.dataset;
38 if (media === "preload") {
39 element.media = originalMedia || "all";
40 element.removeAttribute("data-original-media");
41 } else if (!element.media) {
42 element.media = "all";
43 }
44 return element;
45 };
46 function updateStylesWithSCS(X, Y, parent = window.document.head) {
47 if (X.length === 0) {
48 return Y.map((element) => {
49 const promise = prepareStylePromise(element);
50 parent.appendChild(element);
51 return promise;
52 });
53 }
54 const xNormalized = X.map(normalizeMedia);
55 const yNormalized = Y.map(normalizeMedia);
56 const scs = shortestCommonSupersequence(
57 xNormalized,
58 yNormalized,
59 areNodesEqual
60 );
61 const xLength = X.length;
62 const yLength = Y.length;
63 const promises = [];
64 let last = X[xLength - 1];
65 let xIndex = 0;
66 let yIndex = 0;
67 for (const scsElement of scs) {
68 const xElement = X[xIndex];
69 const yElement = Y[yIndex];
70 const xNormEl = xNormalized[xIndex];
71 const yNormEl = yNormalized[yIndex];
72 if (xIndex < xLength && areNodesEqual(xNormEl, scsElement)) {
73 if (yIndex < yLength && areNodesEqual(yNormEl, scsElement)) {
74 promises.push(prepareStylePromise(xElement));
75 yIndex++;
76 }
77 xIndex++;
78 } else {
79 promises.push(prepareStylePromise(yElement));
80 if (xIndex < xLength) {
81 xElement.before(yElement);
82 } else {
83 last.after(yElement);
84 last = yElement;
85 }
86 yIndex++;
87 }
88 }
89 return promises;
90 }
91 var stylePromiseCache = /* @__PURE__ */ new WeakMap();
92 var prepareStylePromise = (element) => {
93 if (stylePromiseCache.has(element)) {
94 return stylePromiseCache.get(element);
95 }
96 if (window.document.contains(element) && element.media !== "preload") {
97 const promise2 = Promise.resolve(element);
98 stylePromiseCache.set(element, promise2);
99 return promise2;
100 }
101 if (element.hasAttribute("media") && element.media !== "all") {
102 element.dataset.originalMedia = element.media;
103 }
104 element.media = "preload";
105 if (element instanceof HTMLStyleElement) {
106 const promise2 = Promise.resolve(element);
107 stylePromiseCache.set(element, promise2);
108 return promise2;
109 }
110 const promise = new Promise((resolve2, reject) => {
111 element.addEventListener("load", () => resolve2(element));
112 element.addEventListener("error", (event) => {
113 const { href } = event.target;
114 reject(
115 Error(
116 `The style sheet with the following URL failed to load: ${href}`
117 )
118 );
119 });
120 });
121 stylePromiseCache.set(element, promise);
122 return promise;
123 };
124 var preloadStyles = (doc) => {
125 const currentStyleElements = Array.from(
126 window.document.querySelectorAll(
127 "style,link[rel=stylesheet]"
128 )
129 );
130 const newStyleElements = Array.from(
131 doc.querySelectorAll("style,link[rel=stylesheet]")
132 );
133 return updateStylesWithSCS(currentStyleElements, newStyleElements);
134 };
135 var applyStyles = (styles) => {
136 window.document.querySelectorAll("style,link[rel=stylesheet]").forEach((el) => {
137 if (el.sheet) {
138 if (styles.includes(el)) {
139 if (el.sheet.media.mediaText === "preload") {
140 const { originalMedia = "all" } = el.dataset;
141 el.sheet.media.mediaText = originalMedia;
142 }
143 el.sheet.disabled = false;
144 } else {
145 el.sheet.disabled = true;
146 }
147 }
148 });
149 };
150
151 // packages/interactivity-router/build-module/assets/dynamic-importmap/resolver.mjs
152 var backslashRegEx = /\\/g;
153 function isURL(url) {
154 if (url.indexOf(":") === -1) {
155 return false;
156 }
157 try {
158 new URL(url);
159 return true;
160 } catch {
161 return false;
162 }
163 }
164 function resolveIfNotPlainOrUrl(relUrl, parentUrl) {
165 const hIdx = parentUrl.indexOf("#"), qIdx = parentUrl.indexOf("?");
166 if (hIdx + qIdx > -2) {
167 parentUrl = parentUrl.slice(
168 0,
169 // eslint-disable-next-line no-nested-ternary
170 hIdx === -1 ? qIdx : qIdx === -1 || qIdx > hIdx ? hIdx : qIdx
171 );
172 }
173 if (relUrl.indexOf("\\") !== -1) {
174 relUrl = relUrl.replace(backslashRegEx, "/");
175 }
176 if (relUrl[0] === "/" && relUrl[1] === "/") {
177 return parentUrl.slice(0, parentUrl.indexOf(":") + 1) + relUrl;
178 } else if (relUrl[0] === "." && (relUrl[1] === "/" || relUrl[1] === "." && (relUrl[2] === "/" || relUrl.length === 2 && (relUrl += "/")) || relUrl.length === 1 && (relUrl += "/")) || relUrl[0] === "/") {
179 const parentProtocol = parentUrl.slice(
180 0,
181 parentUrl.indexOf(":") + 1
182 );
183 let pathname;
184 if (parentUrl[parentProtocol.length + 1] === "/") {
185 if (parentProtocol !== "file:") {
186 pathname = parentUrl.slice(parentProtocol.length + 2);
187 pathname = pathname.slice(pathname.indexOf("/") + 1);
188 } else {
189 pathname = parentUrl.slice(8);
190 }
191 } else {
192 pathname = parentUrl.slice(
193 parentProtocol.length + (parentUrl[parentProtocol.length] === "/")
194 );
195 }
196 if (relUrl[0] === "/") {
197 return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;
198 }
199 const segmented = pathname.slice(0, pathname.lastIndexOf("/") + 1) + relUrl;
200 const output = [];
201 let segmentIndex = -1;
202 for (let i = 0; i < segmented.length; i++) {
203 if (segmentIndex !== -1) {
204 if (segmented[i] === "/") {
205 output.push(segmented.slice(segmentIndex, i + 1));
206 segmentIndex = -1;
207 }
208 continue;
209 } else if (segmented[i] === ".") {
210 if (segmented[i + 1] === "." && (segmented[i + 2] === "/" || i + 2 === segmented.length)) {
211 output.pop();
212 i += 2;
213 continue;
214 } else if (segmented[i + 1] === "/" || i + 1 === segmented.length) {
215 i += 1;
216 continue;
217 }
218 }
219 while (segmented[i] === "/") {
220 i++;
221 }
222 segmentIndex = i;
223 }
224 if (segmentIndex !== -1) {
225 output.push(segmented.slice(segmentIndex));
226 }
227 return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join("");
228 }
229 }
230 function resolveUrl(relUrl, parentUrl) {
231 return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (isURL(relUrl) ? relUrl : resolveIfNotPlainOrUrl("./" + relUrl, parentUrl));
232 }
233 function getMatch(path, matchObj) {
234 if (matchObj[path]) {
235 return path;
236 }
237 let sepIndex = path.length;
238 do {
239 const segment = path.slice(0, sepIndex + 1);
240 if (segment in matchObj) {
241 return segment;
242 }
243 } while ((sepIndex = path.lastIndexOf("/", sepIndex - 1)) !== -1);
244 }
245 function applyPackages(id, packages) {
246 const pkgName = getMatch(id, packages);
247 if (pkgName) {
248 const pkg = packages[pkgName];
249 if (pkg === null) {
250 return;
251 }
252 return pkg + id.slice(pkgName.length);
253 }
254 }
255 function resolveImportMap(importMap2, resolvedOrPlain, parentUrl) {
256 let scopeUrl = parentUrl && getMatch(parentUrl, importMap2.scopes);
257 while (scopeUrl) {
258 const packageResolution = applyPackages(
259 resolvedOrPlain,
260 importMap2.scopes[scopeUrl]
261 );
262 if (packageResolution) {
263 return packageResolution;
264 }
265 scopeUrl = getMatch(
266 scopeUrl.slice(0, scopeUrl.lastIndexOf("/")),
267 importMap2.scopes
268 );
269 }
270 return applyPackages(resolvedOrPlain, importMap2.imports) || resolvedOrPlain.indexOf(":") !== -1 && resolvedOrPlain;
271 }
272 function resolveAndComposePackages(packages, outPackages, baseUrl22, parentMap) {
273 for (const p in packages) {
274 const resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl22) || p;
275 const target = packages[p];
276 if (typeof target !== "string") {
277 continue;
278 }
279 const mapped = resolveImportMap(
280 parentMap,
281 resolveIfNotPlainOrUrl(target, baseUrl22) || target,
282 baseUrl22
283 );
284 if (mapped) {
285 outPackages[resolvedLhs] = mapped;
286 continue;
287 }
288 }
289 }
290 function resolveAndComposeImportMap(json, baseUrl22, parentMap) {
291 const outMap = {
292 imports: Object.assign({}, parentMap.imports),
293 scopes: Object.assign({}, parentMap.scopes)
294 };
295 if (json.imports) {
296 resolveAndComposePackages(
297 json.imports,
298 outMap.imports,
299 baseUrl22,
300 parentMap
301 );
302 }
303 if (json.scopes) {
304 for (const s in json.scopes) {
305 const resolvedScope = resolveUrl(s, baseUrl22);
306 resolveAndComposePackages(
307 json.scopes[s],
308 outMap.scopes[resolvedScope] || (outMap.scopes[resolvedScope] = {}),
309 baseUrl22,
310 parentMap
311 );
312 }
313 }
314 return outMap;
315 }
316 var importMap = { imports: {}, scopes: {} };
317 var baseUrl = document.baseURI;
318 var pageBaseUrl = baseUrl;
319 function addImportMap(importMapIn) {
320 importMap = resolveAndComposeImportMap(
321 importMapIn,
322 pageBaseUrl,
323 importMap
324 );
325 }
326 function resolve(id, parentUrl) {
327 const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl);
328 return resolveImportMap(importMap, urlResolved || id, parentUrl) || id;
329 }
330
331 // node_modules/es-module-lexer/dist/lexer.js
332 var ImportType;
333 !(function(A2) {
334 A2[A2.Static = 1] = "Static", A2[A2.Dynamic = 2] = "Dynamic", A2[A2.ImportMeta = 3] = "ImportMeta", A2[A2.StaticSourcePhase = 4] = "StaticSourcePhase", A2[A2.DynamicSourcePhase = 5] = "DynamicSourcePhase", A2[A2.StaticDeferPhase = 6] = "StaticDeferPhase", A2[A2.DynamicDeferPhase = 7] = "DynamicDeferPhase";
335 })(ImportType || (ImportType = {}));
336 var A = 1 === new Uint8Array(new Uint16Array([1]).buffer)[0];
337 function parse(E2, g = "@") {
338 if (!C) return init.then((() => parse(E2)));
339 const I = E2.length + 1, w = (C.__heap_base.value || C.__heap_base) + 4 * I - C.memory.buffer.byteLength;
340 w > 0 && C.memory.grow(Math.ceil(w / 65536));
341 const K = C.sa(I - 1);
342 if ((A ? B : Q)(E2, new Uint16Array(C.memory.buffer, K, I)), !C.parse()) throw Object.assign(new Error(`Parse error ${g}:${E2.slice(0, C.e()).split("\n").length}:${C.e() - E2.lastIndexOf("\n", C.e() - 1)}`), { idx: C.e() });
343 const o = [], D = [];
344 for (; C.ri(); ) {
345 const A2 = C.is(), Q2 = C.ie(), B2 = C.it(), g2 = C.ai(), I2 = C.id(), w2 = C.ss(), K2 = C.se();
346 let D2;
347 C.ip() && (D2 = k(E2.slice(-1 === I2 ? A2 - 1 : A2, -1 === I2 ? Q2 + 1 : Q2))), o.push({ n: D2, t: B2, s: A2, e: Q2, ss: w2, se: K2, d: I2, a: g2 });
348 }
349 for (; C.re(); ) {
350 const A2 = C.es(), Q2 = C.ee(), B2 = C.els(), g2 = C.ele(), I2 = E2.slice(A2, Q2), w2 = I2[0], K2 = B2 < 0 ? void 0 : E2.slice(B2, g2), o2 = K2 ? K2[0] : "";
351 D.push({ s: A2, e: Q2, ls: B2, le: g2, n: '"' === w2 || "'" === w2 ? k(I2) : I2, ln: '"' === o2 || "'" === o2 ? k(K2) : K2 });
352 }
353 function k(A2) {
354 try {
355 return (0, eval)(A2);
356 } catch (A3) {
357 }
358 }
359 return [o, D, !!C.f(), !!C.ms()];
360 }
361 function Q(A2, Q2) {
362 const B2 = A2.length;
363 let C2 = 0;
364 for (; C2 < B2; ) {
365 const B3 = A2.charCodeAt(C2);
366 Q2[C2++] = (255 & B3) << 8 | B3 >>> 8;
367 }
368 }
369 function B(A2, Q2) {
370 const B2 = A2.length;
371 let C2 = 0;
372 for (; C2 < B2; ) Q2[C2] = A2.charCodeAt(C2++);
373 }
374 var C;
375 var E = () => {
376 return A2 = "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GzYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQIMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhAiABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIAJBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiACECA0BBACACQQJqNgKwCgJAAkACQEEBECkiAkEiRg0AIAJBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQIMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSECDAELIAIQLCECCwJAIAJBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAkEiRg0AIAJBJ0YNAEEAIAE2ArAKDwsgAhAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAkEsRg0AIAJB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiECDAELC0EAKALwCSIBIAA2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=", "undefined" != typeof Buffer ? Buffer.from(A2, "base64") : Uint8Array.from(atob(A2), ((A3) => A3.charCodeAt(0)));
377 var A2;
378 };
379 var init = WebAssembly.compile(E()).then(WebAssembly.instantiate).then((({ exports: A2 }) => {
380 C = A2;
381 }));
382
383 // packages/interactivity-router/build-module/assets/dynamic-importmap/fetch.mjs
384 var fetching = (url, parent) => {
385 return ` fetching ${url}${parent ? ` from ${parent}` : ""}`;
386 };
387 var jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
388 async function fetchModule(url, fetchOpts, parent) {
389 let res;
390 try {
391 res = await fetch(url, fetchOpts);
392 } catch {
393 throw Error(`Network error${fetching(url, parent)}.`);
394 }
395 if (!res.ok) {
396 throw Error(`Error ${res.status}${fetching(url, parent)}.`);
397 }
398 const contentType = res.headers.get("content-type");
399 if (!jsContentType.test(contentType)) {
400 throw Error(
401 `Bad Content-Type "${contentType}"${fetching(url, parent)}.`
402 );
403 }
404 return { responseUrl: res.url, source: await res.text() };
405 }
406
407 // packages/interactivity-router/build-module/assets/dynamic-importmap/loader.mjs
408 var initPromise = init;
409 var initialImportMapElement = window.document.querySelector(
410 "script#wp-importmap[type=importmap]"
411 );
412 var initialImportMap = initialImportMapElement ? JSON.parse(initialImportMapElement.text) : { imports: {}, scopes: {} };
413 var skip = (id) => Object.keys(initialImportMap.imports).includes(id);
414 var fetchCache = {};
415 var registry = {};
416 Object.keys(initialImportMap.imports).forEach((id) => {
417 registry[id] = {
418 blobUrl: id
419 };
420 });
421 async function loadAll(load, seen) {
422 if (load.blobUrl || seen[load.url]) {
423 return;
424 }
425 seen[load.url] = 1;
426 await load.linkPromise;
427 await Promise.all(load.deps.map((dep) => loadAll(dep, seen)));
428 }
429 function urlJsString(url) {
430 return `'${url.replace(/'/g, "\\'")}'`;
431 }
432 var createBlob = (source, type = "text/javascript") => URL.createObjectURL(new Blob([source], { type }));
433 function resolveDeps(load, seen) {
434 if (load.blobUrl || !seen[load.url]) {
435 return;
436 }
437 seen[load.url] = 0;
438 for (const dep of load.deps) {
439 resolveDeps(dep, seen);
440 }
441 const [imports, exports] = load.analysis;
442 const source = load.source;
443 let resolvedSource = "";
444 if (!imports.length) {
445 resolvedSource += source;
446 } else {
447 let pushStringTo = function(originalIndex) {
448 while (dynamicImportEndStack.length && dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
449 const dynamicImportEnd = dynamicImportEndStack.pop();
450 resolvedSource += `${source.slice(
451 lastIndex,
452 dynamicImportEnd
453 )}, ${urlJsString(load.responseUrl)}`;
454 lastIndex = dynamicImportEnd;
455 }
456 resolvedSource += source.slice(lastIndex, originalIndex);
457 lastIndex = originalIndex;
458 };
459 let lastIndex = 0;
460 let depIndex = 0;
461 const dynamicImportEndStack = [];
462 for (const {
463 s: start,
464 ss: statementStart,
465 se: statementEnd,
466 d: dynamicImportIndex
467 } of imports) {
468 if (dynamicImportIndex === -1) {
469 const depLoad = load.deps[depIndex++];
470 let blobUrl = depLoad.blobUrl;
471 const cycleShell = !blobUrl;
472 if (cycleShell) {
473 if (!(blobUrl = depLoad.shellUrl)) {
474 blobUrl = depLoad.shellUrl = createBlob(
475 `export function u$_(m){${depLoad.analysis[1].map(({ s, e }, i) => {
476 const q = depLoad.source[s] === '"' || depLoad.source[s] === "'";
477 return `e$_${i}=m${q ? `[` : "."}${depLoad.source.slice(s, e)}${q ? `]` : ""}`;
478 }).join(",")}}${depLoad.analysis[1].length ? `let ${depLoad.analysis[1].map((_, i) => `e$_${i}`).join(",")};` : ""}export {${depLoad.analysis[1].map(
479 ({ s, e }, i) => `e$_${i} as ${depLoad.source.slice(
480 s,
481 e
482 )}`
483 ).join(",")}}
484 //# sourceURL=${depLoad.responseUrl}?cycle`
485 );
486 }
487 }
488 pushStringTo(start - 1);
489 resolvedSource += `/*${source.slice(
490 start - 1,
491 statementEnd
492 )}*/${urlJsString(blobUrl)}`;
493 if (!cycleShell && depLoad.shellUrl) {
494 resolvedSource += `;import*as m$_${depIndex} from'${depLoad.blobUrl}';import{u$_ as u$_${depIndex}}from'${depLoad.shellUrl}';u$_${depIndex}(m$_${depIndex})`;
495 depLoad.shellUrl = void 0;
496 }
497 lastIndex = statementEnd;
498 } else if (dynamicImportIndex === -2) {
499 throw Error("The import.meta property is not supported.");
500 } else {
501 pushStringTo(statementStart);
502 resolvedSource += `wpInteractivityRouterImport(`;
503 dynamicImportEndStack.push(statementEnd - 1);
504 lastIndex = start;
505 }
506 }
507 if (load.shellUrl) {
508 resolvedSource += `
509 ;import{u$_}from'${load.shellUrl}';try{u$_({${exports.filter((e) => e.ln).map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`).join(",")}})}catch(_){};
510 `;
511 }
512 pushStringTo(source.length);
513 }
514 let hasSourceURL = false;
515 resolvedSource = resolvedSource.replace(
516 sourceMapURLRegEx,
517 (match, isMapping, url) => {
518 hasSourceURL = !isMapping;
519 return match.replace(
520 url,
521 () => new URL(url, load.responseUrl).toString()
522 );
523 }
524 );
525 if (!hasSourceURL) {
526 resolvedSource += "\n//# sourceURL=" + load.responseUrl;
527 }
528 load.blobUrl = createBlob(resolvedSource);
529 load.source = void 0;
530 }
531 var sourceMapURLRegEx = /\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;
532 function getOrCreateLoad(url, fetchOpts, parent) {
533 let load = registry[url];
534 if (load) {
535 return load;
536 }
537 load = { url };
538 if (registry[url]) {
539 let i = 0;
540 while (registry[load.url + ++i]) {
541 }
542 load.url += i;
543 }
544 registry[load.url] = load;
545 load.fetchPromise = (async () => {
546 let source;
547 ({ responseUrl: load.responseUrl, source } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
548 try {
549 load.analysis = parse(source, load.url);
550 } catch (e) {
551 console.error(e);
552 load.analysis = [[], [], false, false];
553 }
554 load.source = source;
555 return load;
556 })();
557 load.linkPromise = load.fetchPromise.then(async () => {
558 let childFetchOpts = fetchOpts;
559 load.deps = (await Promise.all(
560 load.analysis[0].map(async ({ n, d }) => {
561 if (d !== -1 || !n) {
562 return void 0;
563 }
564 const responseUrl = resolve(
565 n,
566 load.responseUrl || load.url
567 );
568 if (skip && skip(responseUrl)) {
569 return { blobUrl: responseUrl };
570 }
571 if (childFetchOpts.integrity) {
572 childFetchOpts = {
573 ...childFetchOpts,
574 integrity: void 0
575 };
576 }
577 return getOrCreateLoad(
578 responseUrl,
579 childFetchOpts,
580 load.responseUrl
581 ).fetchPromise;
582 })
583 )).filter((l) => l);
584 });
585 return load;
586 }
587 var dynamicImport = (u) => import(
588 /* webpackIgnore: true */
589 u
590 );
591 async function preloadModule(url, fetchOpts) {
592 await initPromise;
593 const load = getOrCreateLoad(url, fetchOpts, null);
594 const seen = {};
595 await loadAll(load, seen);
596 resolveDeps(load, seen);
597 await Promise.resolve();
598 return load;
599 }
600 async function importPreloadedModule(load) {
601 const module = await dynamicImport(load.blobUrl);
602 if (load.shellUrl) {
603 (await dynamicImport(load.shellUrl)).u$_(module);
604 }
605 return module;
606 }
607 async function topLevelLoad(url, fetchOpts) {
608 const load = await preloadModule(url, fetchOpts);
609 return importPreloadedModule(load);
610 }
611
612 // packages/interactivity-router/build-module/assets/dynamic-importmap/index.mjs
613 var baseUrl2 = document.baseURI;
614 var pageBaseUrl2 = baseUrl2;
615 Object.defineProperty(self, "wpInteractivityRouterImport", {
616 value: importShim,
617 writable: false,
618 enumerable: false,
619 configurable: false
620 });
621 async function importShim(id) {
622 await initPromise;
623 return topLevelLoad(resolve(id, pageBaseUrl2), {
624 credentials: "same-origin"
625 });
626 }
627 async function preloadWithMap(id, importMapIn) {
628 addImportMap(importMapIn);
629 await initPromise;
630 return preloadModule(resolve(id, pageBaseUrl2), {
631 credentials: "same-origin"
632 });
633 }
634
635 // packages/interactivity-router/build-module/assets/script-modules.mjs
636 var resolvedScriptModules = /* @__PURE__ */ new Set();
637 var markScriptModuleAsResolved = (url) => {
638 resolvedScriptModules.add(url);
639 };
640 var preloadScriptModules = (doc) => {
641 const importMapElement = doc.querySelector(
642 "script#wp-importmap[type=importmap]"
643 );
644 const importMap2 = importMapElement ? JSON.parse(importMapElement.text) : { imports: {}, scopes: {} };
645 for (const key in initialImportMap.imports) {
646 delete importMap2.imports[key];
647 }
648 const moduleUrls = [
649 ...doc.querySelectorAll(
650 "script[type=module][src][data-wp-router-options]"
651 )
652 ].filter((script) => {
653 try {
654 const parsed = JSON.parse(
655 script.getAttribute("data-wp-router-options")
656 );
657 return parsed?.loadOnClientNavigation === true;
658 } catch {
659 return false;
660 }
661 }).map((script) => script.src);
662 return moduleUrls.filter((url) => !resolvedScriptModules.has(url)).map((url) => preloadWithMap(url, importMap2));
663 };
664 var importScriptModules = (modules) => Promise.all(modules.map((m) => importPreloadedModule(m)));
665
666 // packages/interactivity-router/build-module/index.mjs
667 var {
668 getRegionRootFragment,
669 initialVdomPromise,
670 toVdom,
671 render,
672 parseServerData,
673 populateServerData,
674 batch,
675 routerRegions,
676 h: createElement,
677 navigationSignal,
678 sessionId,
679 warn
680 } = privateApis(
681 "I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress."
682 );
683 var regionAttr = `data-wp-router-region`;
684 var interactiveAttr = `data-wp-interactive`;
685 var regionsSelector = `[${interactiveAttr}][${regionAttr}], [${interactiveAttr}] [${interactiveAttr}][${regionAttr}]`;
686 var pages = /* @__PURE__ */ new Map();
687 var getPagePath = (url) => {
688 const u = new URL(url, window.location.href);
689 return u.pathname + u.search;
690 };
691 var parseRegionAttribute = (region) => {
692 const value = region.getAttribute(regionAttr);
693 try {
694 const { id, attachTo } = JSON.parse(value);
695 return { id, attachTo };
696 } catch {
697 return { id: value };
698 }
699 };
700 var cloneRouterRegionContent = (vdom) => {
701 if (!vdom) {
702 return vdom;
703 }
704 const allPriorityLevels = vdom.props.priorityLevels;
705 const routerRegionLevel = allPriorityLevels.findIndex(
706 (level) => level.includes("router-region")
707 );
708 const priorityLevels = routerRegionLevel !== -1 ? allPriorityLevels.slice(routerRegionLevel + 1) : allPriorityLevels;
709 return priorityLevels.length > 0 ? createElement(vdom.type, {
710 ...vdom.props,
711 priorityLevels
712 }) : vdom.props.element;
713 };
714 var regionsToAttachByParent = /* @__PURE__ */ new WeakMap();
715 var rootFragmentsByParent = /* @__PURE__ */ new WeakMap();
716 var initialRegionsToAttach = /* @__PURE__ */ new Set();
717 var fetchPage = async (url, { html }) => {
718 try {
719 if (!html) {
720 const res = await window.fetch(url);
721 if (res.status !== 200) {
722 return false;
723 }
724 html = await res.text();
725 }
726 const dom = new window.DOMParser().parseFromString(html, "text/html");
727 return await preparePage(url, dom);
728 } catch {
729 return false;
730 }
731 };
732 var preparePage = async (url, dom, { vdom } = {}) => {
733 dom.querySelectorAll("noscript").forEach((el) => el.remove());
734 const regions = {};
735 const regionsToAttach = {};
736 dom.querySelectorAll(regionsSelector).forEach((region) => {
737 const { id, attachTo } = parseRegionAttribute(region);
738 if (region.parentElement.closest(`[${regionAttr}]`)) {
739 regions[id] = void 0;
740 } else {
741 regions[id] = vdom?.has(region) ? vdom.get(region) : toVdom(region);
742 }
743 if (attachTo && !initialRegionsToAttach.has(id)) {
744 regionsToAttach[id] = attachTo;
745 }
746 });
747 const title = dom.querySelector("title")?.innerText;
748 const initialData = parseServerData(dom);
749 const [styles, scriptModules] = await Promise.all([
750 Promise.all(preloadStyles(dom)),
751 Promise.all(preloadScriptModules(dom))
752 ]);
753 return {
754 regions,
755 regionsToAttach,
756 styles,
757 scriptModules,
758 title,
759 initialData,
760 url
761 };
762 };
763 var renderPage = (page) => {
764 applyStyles(page.styles);
765 const regionsToAttach = { ...page.regionsToAttach };
766 batch(() => {
767 populateServerData(page.initialData);
768 navigationSignal.value += 1;
769 routerRegions.forEach((signal) => {
770 signal.value = null;
771 });
772 const parentsToUpdate = /* @__PURE__ */ new Set();
773 for (const id in regionsToAttach) {
774 const parent = document.querySelector(regionsToAttach[id]);
775 if (!regionsToAttachByParent.has(parent)) {
776 regionsToAttachByParent.set(parent, []);
777 }
778 const regions = regionsToAttachByParent.get(parent);
779 if (!regions.includes(id)) {
780 regions.push(id);
781 parentsToUpdate.add(parent);
782 }
783 }
784 for (const id in page.regions) {
785 if (routerRegions.has(id)) {
786 routerRegions.get(id).value = cloneRouterRegionContent(
787 page.regions[id]
788 );
789 }
790 }
791 parentsToUpdate.forEach((parent) => {
792 const ids = regionsToAttachByParent.get(parent);
793 const vdoms = ids.map((id) => page.regions[id]);
794 if (!rootFragmentsByParent.has(parent)) {
795 const regions = vdoms.map(({ props, type }) => {
796 const elementType = typeof type === "function" ? props.type : type;
797 const region = document.createElement(elementType);
798 parent.appendChild(region);
799 return region;
800 });
801 rootFragmentsByParent.set(
802 parent,
803 getRegionRootFragment(regions)
804 );
805 }
806 const fragment = rootFragmentsByParent.get(parent);
807 render(vdoms, fragment);
808 });
809 });
810 if (page.title) {
811 document.title = page.title;
812 }
813 };
814 var forcePageReload = (href) => {
815 window.location.assign(href);
816 return new Promise(() => {
817 });
818 };
819 window.addEventListener("popstate", async () => {
820 const pagePath = getPagePath(window.location.href);
821 const page = pages.has(pagePath) && await pages.get(pagePath);
822 if (page) {
823 batch(() => {
824 state.url = window.location.href;
825 renderPage(page);
826 });
827 } else {
828 window.location.reload();
829 }
830 });
831 document.querySelectorAll(regionsSelector).forEach((region) => {
832 const { id, attachTo } = parseRegionAttribute(region);
833 if (attachTo) {
834 initialRegionsToAttach.add(id);
835 }
836 });
837 window.document.querySelectorAll("script[type=module][src]").forEach(({ src }) => markScriptModuleAsResolved(src));
838 (async () => {
839 const initialVdomMap = await initialVdomPromise;
840 pages.set(
841 getPagePath(window.location.href),
842 Promise.resolve(
843 preparePage(getPagePath(window.location.href), document, {
844 vdom: initialVdomMap
845 })
846 )
847 );
848 })();
849 var navigatingTo = "";
850 var hasLoadedNavigationTextsData = false;
851 var navigationTexts = {
852 loading: "Loading page, please wait.",
853 loaded: "Page Loaded."
854 };
855 var { state: privateState } = store(
856 "core/router/private",
857 {
858 state: {
859 navigation: {
860 hasStarted: false,
861 hasFinished: false
862 }
863 }
864 },
865 { lock: true }
866 );
867 var { state, actions } = store("core/router", {
868 state: {
869 get navigation() {
870 if (true) {
871 warn(
872 `The usage of state.navigation.{hasStarted|hasFinished} from core/router is deprecated and will stop working in WordPress 7.1.`
873 );
874 }
875 return privateState.navigation;
876 }
877 },
878 actions: {
879 /**
880 * Navigates to the specified page.
881 *
882 * This function normalizes the passed href, fetches the page HTML if
883 * needed, and updates any interactive regions whose contents have
884 * changed. It also creates a new entry in the browser session history.
885 *
886 * @param href The page href.
887 * @param [options] Options object.
888 * @param [options.force] If true, it forces re-fetching the URL.
889 * @param [options.html] HTML string to be used instead of fetching the requested URL.
890 * @param [options.replace] If true, it replaces the current entry in the browser session history.
891 * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000.
892 * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`.
893 * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`.
894 *
895 * @return Promise that resolves once the navigation is completed or aborted.
896 */
897 *navigate(href, options = {}) {
898 const { clientNavigationDisabled } = getConfig();
899 if (clientNavigationDisabled) {
900 yield forcePageReload(href);
901 }
902 const pagePath = getPagePath(href);
903 const { navigation } = privateState;
904 const {
905 loadingAnimation = true,
906 screenReaderAnnouncement = true,
907 timeout = 1e4
908 } = options;
909 navigatingTo = href;
910 actions.prefetch(pagePath, options);
911 const timeoutPromise = new Promise(
912 (resolve2) => setTimeout(resolve2, timeout)
913 );
914 const loadingTimeout = setTimeout(() => {
915 if (navigatingTo !== href) {
916 return;
917 }
918 if (loadingAnimation) {
919 navigation.hasStarted = true;
920 navigation.hasFinished = false;
921 }
922 if (screenReaderAnnouncement) {
923 a11ySpeak("loading");
924 }
925 }, 400);
926 const page = yield Promise.race([
927 pages.get(pagePath),
928 timeoutPromise
929 ]);
930 clearTimeout(loadingTimeout);
931 if (navigatingTo !== href) {
932 return;
933 }
934 if (page && !page.initialData?.config?.["core/router"]?.clientNavigationDisabled) {
935 yield importScriptModules(page.scriptModules);
936 batch(() => {
937 state.url = href;
938 if (loadingAnimation) {
939 navigation.hasStarted = false;
940 navigation.hasFinished = true;
941 }
942 renderPage(page);
943 });
944 window.history[options.replace ? "replaceState" : "pushState"]({ wpInteractivityId: sessionId }, "", href);
945 if (screenReaderAnnouncement) {
946 a11ySpeak("loaded");
947 }
948 const { hash } = new URL(href, window.location.href);
949 if (hash) {
950 document.querySelector(hash)?.scrollIntoView();
951 }
952 } else {
953 yield forcePageReload(href);
954 }
955 },
956 /**
957 * Prefetches the page with the passed URL.
958 *
959 * The function normalizes the URL and stores internally the fetch
960 * promise, to avoid triggering a second fetch for an ongoing request.
961 *
962 * @param url The page URL.
963 * @param [options] Options object.
964 * @param [options.force] Force fetching the URL again.
965 * @param [options.html] HTML string to be used instead of fetching the requested URL.
966 *
967 * @return Promise that resolves once the page has been fetched.
968 */
969 *prefetch(url, options = {}) {
970 const { clientNavigationDisabled } = getConfig();
971 if (clientNavigationDisabled) {
972 return;
973 }
974 const pagePath = getPagePath(url);
975 if (options.force || !pages.has(pagePath)) {
976 pages.set(
977 pagePath,
978 fetchPage(pagePath, { html: options.html })
979 );
980 }
981 yield pages.get(pagePath);
982 }
983 }
984 });
985 state.url = state.url || window.location.href;
986 function a11ySpeak(messageKey) {
987 if (!hasLoadedNavigationTextsData) {
988 hasLoadedNavigationTextsData = true;
989 const content = document.getElementById(
990 "wp-script-module-data-@wordpress/interactivity-router"
991 )?.textContent;
992 if (content) {
993 try {
994 const parsed = JSON.parse(content);
995 if (typeof parsed?.i18n?.loading === "string") {
996 navigationTexts.loading = parsed.i18n.loading;
997 }
998 if (typeof parsed?.i18n?.loaded === "string") {
999 navigationTexts.loaded = parsed.i18n.loaded;
1000 }
1001 } catch {
1002 }
1003 } else {
1004 if (state.navigation.texts?.loading) {
1005 navigationTexts.loading = state.navigation.texts.loading;
1006 }
1007 if (state.navigation.texts?.loaded) {
1008 navigationTexts.loaded = state.navigation.texts.loaded;
1009 }
1010 }
1011 }
1012 const message = navigationTexts[messageKey];
1013 import("@wordpress/a11y").then(
1014 ({ speak }) => speak(message),
1015 // Ignore failures to load the a11y module.
1016 () => {
1017 }
1018 );
1019 }
1020 export {
1021 actions,
1022 state
1023 };
1024 //# sourceMappingURL=index.js.map
1025