PluginProbe
Gutenberg / 22.9.0
Gutenberg v22.9.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / modules / interactivity-router / index.js

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

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