PluginProbe
Gutenberg / 22.5.3
Gutenberg v22.5.3
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 12.6.0 All 403 releases
gutenberg / build / modules / interactivity-router / index.js

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

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