PluginProbe
Gutenberg / trunk
Gutenberg vtrunk
24.1.0 24.0.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 All 404 releases
gutenberg / build / modules / interactivity-router / index.js

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

1,026 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 pushStringTo2 = 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 var pushStringTo = pushStringTo2;
460 let lastIndex = 0;
461 let depIndex = 0;
462 const dynamicImportEndStack = [];
463 for (const {
464 s: start,
465 ss: statementStart,
466 se: statementEnd,
467 d: dynamicImportIndex
468 } of imports) {
469 if (dynamicImportIndex === -1) {
470 const depLoad = load.deps[depIndex++];
471 let blobUrl = depLoad.blobUrl;
472 const cycleShell = !blobUrl;
473 if (cycleShell) {
474 if (!(blobUrl = depLoad.shellUrl)) {
475 blobUrl = depLoad.shellUrl = createBlob(
476 `export function u$_(m){${depLoad.analysis[1].map(({ s, e }, i) => {
477 const q = depLoad.source[s] === '"' || depLoad.source[s] === "'";
478 return `e$_${i}=m${q ? `[` : "."}${depLoad.source.slice(s, e)}${q ? `]` : ""}`;
479 }).join(",")}}${depLoad.analysis[1].length ? `let ${depLoad.analysis[1].map((_, i) => `e$_${i}`).join(",")};` : ""}export {${depLoad.analysis[1].map(
480 ({ s, e }, i) => `e$_${i} as ${depLoad.source.slice(
481 s,
482 e
483 )}`
484 ).join(",")}}
485 //# sourceURL=${depLoad.responseUrl}?cycle`
486 );
487 }
488 }
489 pushStringTo2(start - 1);
490 resolvedSource += `/*${source.slice(
491 start - 1,
492 statementEnd
493 )}*/${urlJsString(blobUrl)}`;
494 if (!cycleShell && depLoad.shellUrl) {
495 resolvedSource += `;import*as m$_${depIndex} from'${depLoad.blobUrl}';import{u$_ as u$_${depIndex}}from'${depLoad.shellUrl}';u$_${depIndex}(m$_${depIndex})`;
496 depLoad.shellUrl = void 0;
497 }
498 lastIndex = statementEnd;
499 } else if (dynamicImportIndex === -2) {
500 throw Error("The import.meta property is not supported.");
501 } else {
502 pushStringTo2(statementStart);
503 resolvedSource += `wpInteractivityRouterImport(`;
504 dynamicImportEndStack.push(statementEnd - 1);
505 lastIndex = start;
506 }
507 }
508 if (load.shellUrl) {
509 resolvedSource += `
510 ;import{u$_}from'${load.shellUrl}';try{u$_({${exports.filter((e) => e.ln).map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`).join(",")}})}catch(_){};
511 `;
512 }
513 pushStringTo2(source.length);
514 }
515 let hasSourceURL = false;
516 resolvedSource = resolvedSource.replace(
517 sourceMapURLRegEx,
518 (match, isMapping, url) => {
519 hasSourceURL = !isMapping;
520 return match.replace(
521 url,
522 () => new URL(url, load.responseUrl).toString()
523 );
524 }
525 );
526 if (!hasSourceURL) {
527 resolvedSource += "\n//# sourceURL=" + load.responseUrl;
528 }
529 load.blobUrl = createBlob(resolvedSource);
530 load.source = void 0;
531 }
532 var sourceMapURLRegEx = /\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;
533 function getOrCreateLoad(url, fetchOpts, parent) {
534 let load = registry[url];
535 if (load) {
536 return load;
537 }
538 load = { url };
539 if (registry[url]) {
540 let i = 0;
541 while (registry[load.url + ++i]) {
542 }
543 load.url += i;
544 }
545 registry[load.url] = load;
546 load.fetchPromise = (async () => {
547 let source;
548 ({ responseUrl: load.responseUrl, source } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
549 try {
550 load.analysis = parse(source, load.url);
551 } catch (e) {
552 console.error(e);
553 load.analysis = [[], [], false, false];
554 }
555 load.source = source;
556 return load;
557 })();
558 load.linkPromise = load.fetchPromise.then(async () => {
559 let childFetchOpts = fetchOpts;
560 load.deps = (await Promise.all(
561 load.analysis[0].map(async ({ n, d }) => {
562 if (d !== -1 || !n) {
563 return void 0;
564 }
565 const responseUrl = resolve(
566 n,
567 load.responseUrl || load.url
568 );
569 if (skip && skip(responseUrl)) {
570 return { blobUrl: responseUrl };
571 }
572 if (childFetchOpts.integrity) {
573 childFetchOpts = {
574 ...childFetchOpts,
575 integrity: void 0
576 };
577 }
578 return getOrCreateLoad(
579 responseUrl,
580 childFetchOpts,
581 load.responseUrl
582 ).fetchPromise;
583 })
584 )).filter((l) => l);
585 });
586 return load;
587 }
588 var dynamicImport = (u) => import(
589 /* webpackIgnore: true */
590 u
591 );
592 async function preloadModule(url, fetchOpts) {
593 await initPromise;
594 const load = getOrCreateLoad(url, fetchOpts, null);
595 const seen = {};
596 await loadAll(load, seen);
597 resolveDeps(load, seen);
598 await Promise.resolve();
599 return load;
600 }
601 async function importPreloadedModule(load) {
602 const module = await dynamicImport(load.blobUrl);
603 if (load.shellUrl) {
604 (await dynamicImport(load.shellUrl)).u$_(module);
605 }
606 return module;
607 }
608 async function topLevelLoad(url, fetchOpts) {
609 const load = await preloadModule(url, fetchOpts);
610 return importPreloadedModule(load);
611 }
612
613 // packages/interactivity-router/build-module/assets/dynamic-importmap/index.mjs
614 var baseUrl2 = document.baseURI;
615 var pageBaseUrl2 = baseUrl2;
616 Object.defineProperty(self, "wpInteractivityRouterImport", {
617 value: importShim,
618 writable: false,
619 enumerable: false,
620 configurable: false
621 });
622 async function importShim(id) {
623 await initPromise;
624 return topLevelLoad(resolve(id, pageBaseUrl2), {
625 credentials: "same-origin"
626 });
627 }
628 async function preloadWithMap(id, importMapIn) {
629 addImportMap(importMapIn);
630 await initPromise;
631 return preloadModule(resolve(id, pageBaseUrl2), {
632 credentials: "same-origin"
633 });
634 }
635
636 // packages/interactivity-router/build-module/assets/script-modules.mjs
637 var resolvedScriptModules = /* @__PURE__ */ new Set();
638 var markScriptModuleAsResolved = (url) => {
639 resolvedScriptModules.add(url);
640 };
641 var preloadScriptModules = (doc) => {
642 const importMapElement = doc.querySelector(
643 "script#wp-importmap[type=importmap]"
644 );
645 const importMap2 = importMapElement ? JSON.parse(importMapElement.text) : { imports: {}, scopes: {} };
646 for (const key in initialImportMap.imports) {
647 delete importMap2.imports[key];
648 }
649 const moduleUrls = [
650 ...doc.querySelectorAll(
651 "script[type=module][src][data-wp-router-options]"
652 )
653 ].filter((script) => {
654 try {
655 const parsed = JSON.parse(
656 script.getAttribute("data-wp-router-options")
657 );
658 return parsed?.loadOnClientNavigation === true;
659 } catch {
660 return false;
661 }
662 }).map((script) => script.src);
663 return moduleUrls.filter((url) => !resolvedScriptModules.has(url)).map((url) => preloadWithMap(url, importMap2));
664 };
665 var importScriptModules = (modules) => Promise.all(modules.map((m) => importPreloadedModule(m)));
666
667 // packages/interactivity-router/build-module/index.mjs
668 var {
669 getRegionRootFragment,
670 initialVdomPromise,
671 toVdom,
672 render,
673 parseServerData,
674 populateServerData,
675 batch,
676 routerRegions,
677 h: createElement,
678 navigationSignal,
679 sessionId,
680 warn
681 } = privateApis(
682 "I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress."
683 );
684 var regionAttr = `data-wp-router-region`;
685 var interactiveAttr = `data-wp-interactive`;
686 var regionsSelector = `[${interactiveAttr}][${regionAttr}], [${interactiveAttr}] [${interactiveAttr}][${regionAttr}]`;
687 var pages = /* @__PURE__ */ new Map();
688 var getPagePath = (url) => {
689 const u = new URL(url, window.location.href);
690 return u.pathname + u.search;
691 };
692 var parseRegionAttribute = (region) => {
693 const value = region.getAttribute(regionAttr);
694 try {
695 const { id, attachTo } = JSON.parse(value);
696 return { id, attachTo };
697 } catch {
698 return { id: value };
699 }
700 };
701 var cloneRouterRegionContent = (vdom) => {
702 if (!vdom) {
703 return vdom;
704 }
705 const allPriorityLevels = vdom.props.priorityLevels;
706 const routerRegionLevel = allPriorityLevels.findIndex(
707 (level) => level.includes("router-region")
708 );
709 const priorityLevels = routerRegionLevel !== -1 ? allPriorityLevels.slice(routerRegionLevel + 1) : allPriorityLevels;
710 return priorityLevels.length > 0 ? createElement(vdom.type, {
711 ...vdom.props,
712 priorityLevels
713 }) : vdom.props.element;
714 };
715 var regionsToAttachByParent = /* @__PURE__ */ new WeakMap();
716 var rootFragmentsByParent = /* @__PURE__ */ new WeakMap();
717 var initialRegionsToAttach = /* @__PURE__ */ new Set();
718 var fetchPage = async (url, { html }) => {
719 try {
720 if (!html) {
721 const res = await window.fetch(url);
722 if (res.status !== 200) {
723 return false;
724 }
725 html = await res.text();
726 }
727 const dom = new window.DOMParser().parseFromString(html, "text/html");
728 return await preparePage(url, dom);
729 } catch {
730 return false;
731 }
732 };
733 var preparePage = async (url, dom, { vdom } = {}) => {
734 dom.querySelectorAll("noscript").forEach((el) => el.remove());
735 const regions = {};
736 const regionsToAttach = {};
737 dom.querySelectorAll(regionsSelector).forEach((region) => {
738 const { id, attachTo } = parseRegionAttribute(region);
739 if (region.parentElement.closest(`[${regionAttr}]`)) {
740 regions[id] = void 0;
741 } else {
742 regions[id] = vdom?.has(region) ? vdom.get(region) : toVdom(region);
743 }
744 if (attachTo && !initialRegionsToAttach.has(id)) {
745 regionsToAttach[id] = attachTo;
746 }
747 });
748 const title = dom.querySelector("title")?.innerText;
749 const initialData = parseServerData(dom);
750 const [styles, scriptModules] = await Promise.all([
751 Promise.all(preloadStyles(dom)),
752 Promise.all(preloadScriptModules(dom))
753 ]);
754 return {
755 regions,
756 regionsToAttach,
757 styles,
758 scriptModules,
759 title,
760 initialData,
761 url
762 };
763 };
764 var renderPage = (page) => {
765 applyStyles(page.styles);
766 const regionsToAttach = { ...page.regionsToAttach };
767 batch(() => {
768 populateServerData(page.initialData);
769 navigationSignal.value += 1;
770 routerRegions.forEach((signal) => {
771 signal.value = null;
772 });
773 const parentsToUpdate = /* @__PURE__ */ new Set();
774 for (const id in regionsToAttach) {
775 const parent = document.querySelector(regionsToAttach[id]);
776 if (!regionsToAttachByParent.has(parent)) {
777 regionsToAttachByParent.set(parent, []);
778 }
779 const regions = regionsToAttachByParent.get(parent);
780 if (!regions.includes(id)) {
781 regions.push(id);
782 parentsToUpdate.add(parent);
783 }
784 }
785 for (const id in page.regions) {
786 if (routerRegions.has(id)) {
787 routerRegions.get(id).value = cloneRouterRegionContent(
788 page.regions[id]
789 );
790 }
791 }
792 parentsToUpdate.forEach((parent) => {
793 const ids = regionsToAttachByParent.get(parent);
794 const vdoms = ids.map((id) => page.regions[id]);
795 if (!rootFragmentsByParent.has(parent)) {
796 const regions = vdoms.map(({ props, type }) => {
797 const elementType = typeof type === "function" ? props.type : type;
798 const region = document.createElement(elementType);
799 parent.appendChild(region);
800 return region;
801 });
802 rootFragmentsByParent.set(
803 parent,
804 getRegionRootFragment(regions)
805 );
806 }
807 const fragment = rootFragmentsByParent.get(parent);
808 render(vdoms, fragment);
809 });
810 });
811 if (page.title) {
812 document.title = page.title;
813 }
814 };
815 var forcePageReload = (href) => {
816 window.location.assign(href);
817 return new Promise(() => {
818 });
819 };
820 window.addEventListener("popstate", async () => {
821 const pagePath = getPagePath(window.location.href);
822 const page = pages.has(pagePath) && await pages.get(pagePath);
823 if (page) {
824 batch(() => {
825 state.url = window.location.href;
826 renderPage(page);
827 });
828 } else {
829 window.location.reload();
830 }
831 });
832 document.querySelectorAll(regionsSelector).forEach((region) => {
833 const { id, attachTo } = parseRegionAttribute(region);
834 if (attachTo) {
835 initialRegionsToAttach.add(id);
836 }
837 });
838 window.document.querySelectorAll("script[type=module][src]").forEach(({ src }) => markScriptModuleAsResolved(src));
839 (async () => {
840 const initialVdomMap = await initialVdomPromise;
841 pages.set(
842 getPagePath(window.location.href),
843 Promise.resolve(
844 preparePage(getPagePath(window.location.href), document, {
845 vdom: initialVdomMap
846 })
847 )
848 );
849 })();
850 var navigatingTo = "";
851 var hasLoadedNavigationTextsData = false;
852 var navigationTexts = {
853 loading: "Loading page, please wait.",
854 loaded: "Page Loaded."
855 };
856 var { state: privateState } = store(
857 "core/router/private",
858 {
859 state: {
860 navigation: {
861 hasStarted: false,
862 hasFinished: false
863 }
864 }
865 },
866 { lock: true }
867 );
868 var { state, actions } = store("core/router", {
869 state: {
870 get navigation() {
871 if (true) {
872 warn(
873 `The usage of state.navigation.{hasStarted|hasFinished} from core/router is deprecated and will stop working in WordPress 7.1.`
874 );
875 }
876 return privateState.navigation;
877 }
878 },
879 actions: {
880 /**
881 * Navigates to the specified page.
882 *
883 * This function normalizes the passed href, fetches the page HTML if
884 * needed, and updates any interactive regions whose contents have
885 * changed. It also creates a new entry in the browser session history.
886 *
887 * @param href The page href.
888 * @param [options] Options object.
889 * @param [options.force] If true, it forces re-fetching the URL.
890 * @param [options.html] HTML string to be used instead of fetching the requested URL.
891 * @param [options.replace] If true, it replaces the current entry in the browser session history.
892 * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000.
893 * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`.
894 * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`.
895 *
896 * @return Promise that resolves once the navigation is completed or aborted.
897 */
898 *navigate(href, options = {}) {
899 const { clientNavigationDisabled } = getConfig();
900 if (clientNavigationDisabled) {
901 yield forcePageReload(href);
902 }
903 const pagePath = getPagePath(href);
904 const { navigation } = privateState;
905 const {
906 loadingAnimation = true,
907 screenReaderAnnouncement = true,
908 timeout = 1e4
909 } = options;
910 navigatingTo = href;
911 actions.prefetch(pagePath, options);
912 const timeoutPromise = new Promise(
913 (resolve2) => setTimeout(resolve2, timeout)
914 );
915 const loadingTimeout = setTimeout(() => {
916 if (navigatingTo !== href) {
917 return;
918 }
919 if (loadingAnimation) {
920 navigation.hasStarted = true;
921 navigation.hasFinished = false;
922 }
923 if (screenReaderAnnouncement) {
924 a11ySpeak("loading");
925 }
926 }, 400);
927 const page = yield Promise.race([
928 pages.get(pagePath),
929 timeoutPromise
930 ]);
931 clearTimeout(loadingTimeout);
932 if (navigatingTo !== href) {
933 return;
934 }
935 if (page && !page.initialData?.config?.["core/router"]?.clientNavigationDisabled) {
936 yield importScriptModules(page.scriptModules);
937 batch(() => {
938 state.url = href;
939 if (loadingAnimation) {
940 navigation.hasStarted = false;
941 navigation.hasFinished = true;
942 }
943 renderPage(page);
944 });
945 window.history[options.replace ? "replaceState" : "pushState"]({ wpInteractivityId: sessionId }, "", href);
946 if (screenReaderAnnouncement) {
947 a11ySpeak("loaded");
948 }
949 const { hash } = new URL(href, window.location.href);
950 if (hash) {
951 document.querySelector(hash)?.scrollIntoView();
952 }
953 } else {
954 yield forcePageReload(href);
955 }
956 },
957 /**
958 * Prefetches the page with the passed URL.
959 *
960 * The function normalizes the URL and stores internally the fetch
961 * promise, to avoid triggering a second fetch for an ongoing request.
962 *
963 * @param url The page URL.
964 * @param [options] Options object.
965 * @param [options.force] Force fetching the URL again.
966 * @param [options.html] HTML string to be used instead of fetching the requested URL.
967 *
968 * @return Promise that resolves once the page has been fetched.
969 */
970 *prefetch(url, options = {}) {
971 const { clientNavigationDisabled } = getConfig();
972 if (clientNavigationDisabled) {
973 return;
974 }
975 const pagePath = getPagePath(url);
976 if (options.force || !pages.has(pagePath)) {
977 pages.set(
978 pagePath,
979 fetchPage(pagePath, { html: options.html })
980 );
981 }
982 yield pages.get(pagePath);
983 }
984 }
985 });
986 state.url = state.url || window.location.href;
987 function a11ySpeak(messageKey) {
988 if (!hasLoadedNavigationTextsData) {
989 hasLoadedNavigationTextsData = true;
990 const content = document.getElementById(
991 "wp-script-module-data-@wordpress/interactivity-router"
992 )?.textContent;
993 if (content) {
994 try {
995 const parsed = JSON.parse(content);
996 if (typeof parsed?.i18n?.loading === "string") {
997 navigationTexts.loading = parsed.i18n.loading;
998 }
999 if (typeof parsed?.i18n?.loaded === "string") {
1000 navigationTexts.loaded = parsed.i18n.loaded;
1001 }
1002 } catch {
1003 }
1004 } else {
1005 if (state.navigation.texts?.loading) {
1006 navigationTexts.loading = state.navigation.texts.loading;
1007 }
1008 if (state.navigation.texts?.loaded) {
1009 navigationTexts.loaded = state.navigation.texts.loaded;
1010 }
1011 }
1012 }
1013 const message = navigationTexts[messageKey];
1014 import("@wordpress/a11y").then(
1015 ({ speak }) => speak(message),
1016 // Ignore failures to load the a11y module.
1017 () => {
1018 }
1019 );
1020 }
1021 export {
1022 actions,
1023 state
1024 };
1025 //# sourceMappingURL=index.js.map
1026