| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 // packages/interactivity-router/build-module/index.js 2 import { store, privateApis, getConfig } from "@wordpress/interactivity"; 3 4 // packages/interactivity-router/build-module/assets/scs.js 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.js 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.js 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 = "AGFzbQEAAAABKwhgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gA39/fwADMTAAAQECAgICAgICAgICAgICAgICAgIAAwMDBAQAAAUAAAAAAAMDAwAGAAAABwAGAgUEBQFwAQEBBQMBAAEGDwJ/AUHA8gALfwBBwPIACwd6FQZtZW1vcnkCAAJzYQAAAWUAAwJpcwAEAmllAAUCc3MABgJzZQAHAml0AAgCYWkACQJpZAAKAmlwAAsCZXMADAJlZQANA2VscwAOA2VsZQAPAnJpABACcmUAEQFmABICbXMAEwVwYXJzZQAUC19faGVhcF9iYXNlAwEKm0EwaAEBf0EAIAA2AoAKQQAoAtwJIgEgAEEBdGoiAEEAOwEAQQAgAEECaiIANgKECkEAIAA2AogKQQBBADYC4AlBAEEANgLwCUEAQQA2AugJQQBBADYC5AlBAEEANgL4CUEAQQA2AuwJIAEL0wEBA39BACgC8AkhBEEAQQAoAogKIgU2AvAJQQAgBDYC9AlBACAFQSRqNgKICiAEQSBqQeAJIAQbIAU2AgBBACgC1AkhBEEAKALQCSEGIAUgATYCACAFIAA2AgggBSACIAJBAmpBACAGIANGIgAbIAQgA0YiBBs2AgwgBSADNgIUIAVBADYCECAFIAI2AgQgBUEANgIgIAVBA0EBQQIgABsgBBs2AhwgBUEAKALQCSADRiICOgAYAkACQCACDQBBACgC1AkgA0cNAQtBAEEBOgCMCgsLXgEBf0EAKAL4CSIEQRBqQeQJIAQbQQAoAogKIgQ2AgBBACAENgL4CUEAIARBFGo2AogKQQBBAToAjAogBEEANgIQIAQgAzYCDCAEIAI2AgggBCABNgIEIAQgADYCAAsIAEEAKAKQCgsVAEEAKALoCSgCAEEAKALcCWtBAXULHgEBf0EAKALoCSgCBCIAQQAoAtwJa0EBdUF/IAAbCxUAQQAoAugJKAIIQQAoAtwJa0EBdQseAQF/QQAoAugJKAIMIgBBACgC3AlrQQF1QX8gABsLCwBBACgC6AkoAhwLHgEBf0EAKALoCSgCECIAQQAoAtwJa0EBdUF/IAAbCzsBAX8CQEEAKALoCSgCFCIAQQAoAtAJRw0AQX8PCwJAIABBACgC1AlHDQBBfg8LIABBACgC3AlrQQF1CwsAQQAoAugJLQAYCxUAQQAoAuwJKAIAQQAoAtwJa0EBdQsVAEEAKALsCSgCBEEAKALcCWtBAXULHgEBf0EAKALsCSgCCCIAQQAoAtwJa0EBdUF/IAAbCx4BAX9BACgC7AkoAgwiAEEAKALcCWtBAXVBfyAAGwslAQF/QQBBACgC6AkiAEEgakHgCSAAGygCACIANgLoCSAAQQBHCyUBAX9BAEEAKALsCSIAQRBqQeQJIAAbKAIAIgA2AuwJIABBAEcLCABBAC0AlAoLCABBAC0AjAoL3Q0BBX8jAEGA0ABrIgAkAEEAQQE6AJQKQQBBACgC2Ak2ApwKQQBBACgC3AlBfmoiATYCsApBACABQQAoAoAKQQF0aiICNgK0CkEAQQA6AIwKQQBBADsBlgpBAEEAOwGYCkEAQQA6AKAKQQBBADYCkApBAEEAOgD8CUEAIABBgBBqNgKkCkEAIAA2AqgKQQBBADoArAoCQAJAAkACQANAQQAgAUECaiIDNgKwCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BmAoNASADEBVFDQEgAUEEakGCCEEKEC8NARAWQQAtAJQKDQFBAEEAKAKwCiIBNgKcCgwHCyADEBVFDQAgAUEEakGMCEEKEC8NABAXC0EAQQAoArAKNgKcCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAYDAELQQEQGQtBACgCtAohAkEAKAKwCiEBDAALC0EAIQIgAyEBQQAtAPwJDQIMAQtBACABNgKwCkEAQQA6AJQKCwNAQQAgAUECaiIDNgKwCgJAAkACQAJAAkACQAJAIAFBACgCtApPDQAgAy8BACICQXdqQQVJDQYCQAJAAkACQAJAAkACQAJAAkACQCACQWBqDgoQDwYPDw8PBQECAAsCQAJAAkACQCACQaB/ag4KCxISAxIBEhISAgALIAJBhX9qDgMFEQYJC0EALwGYCg0QIAMQFUUNECABQQRqQYIIQQoQLw0QEBYMEAsgAxAVRQ0PIAFBBGpBjAhBChAvDQ8QFwwPCyADEBVFDQ4gASkABELsgISDsI7AOVINDiABLwEMIgNBd2oiAUEXSw0MQQEgAXRBn4CABHFFDQwMDQtBAEEALwGYCiIBQQFqOwGYCkEAKAKkCiABQQN0aiIBQQE2AgAgAUEAKAKcCjYCBAwNC0EALwGYCiIDRQ0JQQAgA0F/aiIDOwGYCkEALwGWCiICRQ0MQQAoAqQKIANB//8DcUEDdGooAgBBBUcNDAJAIAJBAnRBACgCqApqQXxqKAIAIgMoAgQNACADQQAoApwKQQJqNgIEC0EAIAJBf2o7AZYKIAMgAUEEajYCDAwMCwJAQQAoApwKIgEvAQBBKUcNAEEAKALwCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAvQJIgM2AvAJAkAgA0UNACADQQA2AiAMAQtBAEEANgLgCQtBAEEALwGYCiIDQQFqOwGYCkEAKAKkCiADQQN0aiIDQQZBAkEALQCsChs2AgAgAyABNgIEQQBBADoArAoMCwtBAC8BmAoiAUUNB0EAIAFBf2oiATsBmApBACgCpAogAUH//wNxQQN0aigCAEEERg0EDAoLQScQGgwJC0EiEBoMCAsgAkEvRw0HAkACQCABLwEEIgFBKkYNACABQS9HDQEQGAwKC0EBEBkMCQsCQAJAAkACQEEAKAKcCiIBLwEAIgMQG0UNAAJAAkAgA0FVag4EAAkBAwkLIAFBfmovAQBBK0YNAwwICyABQX5qLwEAQS1GDQIMBwsgA0EpRw0BQQAoAqQKQQAvAZgKIgJBA3RqKAIEEBxFDQIMBgsgAUF+ai8BAEFQakH//wNxQQpPDQULQQAvAZgKIQILAkACQCACQf//A3EiAkUNACADQeYARw0AQQAoAqQKIAJBf2pBA3RqIgQoAgBBAUcNACABQX5qLwEAQe8ARw0BIAQoAgRBlghBAxAdRQ0BDAULIANB/QBHDQBBACgCpAogAkEDdGoiAigCBBAeDQQgAigCAEEGRg0ECyABEB8NAyADRQ0DIANBL0ZBAC0AoApBAEdxDQMCQEEAKAL4CSICRQ0AIAEgAigCAEkNACABIAIoAgRNDQQLIAFBfmohAUEAKALcCSECAkADQCABQQJqIgQgAk0NAUEAIAE2ApwKIAEvAQAhAyABQX5qIgQhASADECBFDQALIARBAmohBAsCQCADQf//A3EQIUUNACAEQX5qIQECQANAIAFBAmoiAyACTQ0BQQAgATYCnAogAS8BACEDIAFBfmoiBCEBIAMQIQ0ACyAEQQJqIQMLIAMQIg0EC0EAQQE6AKAKDAcLQQAoAqQKQQAvAZgKIgFBA3QiA2pBACgCnAo2AgRBACABQQFqOwGYCkEAKAKkCiADakEDNgIACxAjDAULQQAtAPwJQQAvAZYKQQAvAZgKcnJFIQIMBwsQJEEAQQA6AKAKDAMLECVBACECDAULIANBoAFHDQELQQBBAToArAoLQQBBACgCsAo2ApwKC0EAKAKwCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC3AkgAEcNAEEBDwsgAEF+ahAmC/4KAQZ/QQBBACgCsAoiAEEMaiIBNgKwCkEAKAL4CSECQQEQKSEDAkACQAJAAkACQAJAAkACQAJAQQAoArAKIgQgAUcNACADEChFDQELAkACQAJAAkACQAJAAkAgA0EqRg0AIANB+wBHDQFBACAEQQJqNgKwCkEBECkhA0EAKAKwCiEEA0ACQAJAIANB//8DcSIDQSJGDQAgA0EnRg0AIAMQLBpBACgCsAohAwwBCyADEBpBAEEAKAKwCkECaiIDNgKwCgtBARApGgJAIAQgAxAtIgNBLEcNAEEAQQAoArAKQQJqNgKwCkEBECkhAwsgA0H9AEYNA0EAKAKwCiIFIARGDQ8gBSEEIAVBACgCtApNDQAMDwsLQQAgBEECajYCsApBARApGkEAKAKwCiIDIAMQLRoMAgtBAEEAOgCUCgJAAkACQAJAAkACQCADQZ9/ag4MAgsEAQsDCwsLCwsFAAsgA0H2AEYNBAwKC0EAIARBDmoiAzYCsAoCQAJAAkBBARApQZ9/ag4GABICEhIBEgtBACgCsAoiBSkAAkLzgOSD4I3AMVINESAFLwEKECFFDRFBACAFQQpqNgKwCkEAECkaC0EAKAKwCiIFQQJqQbIIQQ4QLw0QIAUvARAiAkF3aiIBQRdLDQ1BASABdEGfgIAEcUUNDQwOC0EAKAKwCiIFKQACQuyAhIOwjsA5Ug0PIAUvAQoiAkF3aiIBQRdNDQYMCgtBACAEQQpqNgKwCkEAECkaQQAoArAKIQQLQQAgBEEQajYCsAoCQEEBECkiBEEqRw0AQQBBACgCsApBAmo2ArAKQQEQKSEEC0EAKAKwCiEDIAQQLBogA0EAKAKwCiIEIAMgBBACQQBBACgCsApBfmo2ArAKDwsCQCAEKQACQuyAhIOwjsA5Ug0AIAQvAQoQIEUNAEEAIARBCmo2ArAKQQEQKSEEQQAoArAKIQMgBBAsGiADQQAoArAKIgQgAyAEEAJBAEEAKAKwCkF+ajYCsAoPC0EAIARBBGoiBDYCsAoLQQAgBEEGajYCsApBAEEAOgCUCkEBECkhBEEAKAKwCiEDIAQQLCEEQQAoArAKIQIgBEHf/wNxIgFB2wBHDQNBACACQQJqNgKwCkEBECkhBUEAKAKwCiEDQQAhBAwEC0EAQQE6AIwKQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0AQQAgA0EIajYCsAogAEEBEClBABArIAJBEGpB5AkgAhshAwNAIAMoAgAiA0UNBSADQgA3AgggA0EQaiEDDAALC0EAIANBfmo2ArAKDAMLQQEgAXRBn4CABHFFDQMMBAtBASEECwNAAkACQCAEDgIAAQELIAVB//8DcRAsGkEBIQQMAQsCQAJAQQAoArAKIgQgA0YNACADIAQgAyAEEAJBARApIQQCQCABQdsARw0AIARBIHJB/QBGDQQLQQAoArAKIQMCQCAEQSxHDQBBACADQQJqNgKwCkEBECkhBUEAKAKwCiEDIAVBIHJB+wBHDQILQQAgA0F+ajYCsAoLIAFB2wBHDQJBACACQX5qNgKwCg8LQQAhBAwACwsPCyACQaABRg0AIAJB+wBHDQQLQQAgBUEKajYCsApBARApIgVB+wBGDQMMAgsCQCACQVhqDgMBAwEACyACQaABRw0CC0EAIAVBEGo2ArAKAkBBARApIgVBKkcNAEEAQQAoArAKQQJqNgKwCkEBECkhBQsgBUEoRg0BC0EAKAKwCiEBIAUQLBpBACgCsAoiBSABTQ0AIAQgAyABIAUQAkEAQQAoArAKQX5qNgKwCg8LIAQgA0EAQQAQAkEAIARBDGo2ArAKDwsQJQvcCAEGf0EAIQBBAEEAKAKwCiIBQQxqIgI2ArAKQQEQKSEDQQAoArAKIQQCQAJAAkACQAJAAkACQAJAIANBLkcNAEEAIARBAmo2ArAKAkBBARApIgNB8wBGDQAgA0HtAEcNB0EAKAKwCiIDQQJqQZwIQQYQLw0HAkBBACgCnAoiBBAqDQAgBC8BAEEuRg0ICyABIAEgA0EIakEAKALUCRABDwtBACgCsAoiA0ECakGiCEEKEC8NBgJAQQAoApwKIgQQKg0AIAQvAQBBLkYNBwsgA0EMaiEDDAELIANB8wBHDQEgBCACTQ0BQQYhAEEAIQIgBEECakGiCEEKEC8NAiAEQQxqIQMCQCAELwEMIgVBd2oiBEEXSw0AQQEgBHRBn4CABHENAQsgBUGgAUcNAgtBACADNgKwCkEBIQBBARApIQMLAkACQAJAAkAgA0H7AEYNACADQShHDQFBACgCpApBAC8BmAoiA0EDdGoiBEEAKAKwCjYCBEEAIANBAWo7AZgKIARBBTYCAEEAKAKcCi8BAEEuRg0HQQBBACgCsAoiBEECajYCsApBARApIQMgAUEAKAKwCkEAIAQQAQJAAkAgAA0AQQAoAvAJIQQMAQtBACgC8AkiBEEFNgIcC0EAQQAvAZYKIgBBAWo7AZYKQQAoAqgKIABBAnRqIAQ2AgACQCADQSJGDQAgA0EnRg0AQQBBACgCsApBfmo2ArAKDwsgAxAaQQBBACgCsApBAmoiAzYCsAoCQAJAAkBBARApQVdqDgQBAgIAAgtBAEEAKAKwCkECajYCsApBARApGkEAKALwCSIEIAM2AgQgBEEBOgAYIARBACgCsAoiAzYCEEEAIANBfmo2ArAKDwtBACgC8AkiBCADNgIEIARBAToAGEEAQQAvAZgKQX9qOwGYCiAEQQAoArAKQQJqNgIMQQBBAC8BlgpBf2o7AZYKDwtBAEEAKAKwCkF+ajYCsAoPCyAADQJBACgCsAohA0EALwGYCg0BA0ACQAJAAkAgA0EAKAK0Ck8NAEEBECkiA0EiRg0BIANBJ0YNASADQf0ARw0CQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0JC0EAIANBCGo2ArAKAkBBARApIgNBIkYNACADQSdHDQkLIAEgA0EAECsPCyADEBoLQQBBACgCsApBAmoiAzYCsAoMAAsLIAANAUEGIQBBACECAkAgA0FZag4EBAMDBAALIANBIkYNAwwCC0EAIANBfmo2ArAKDwtBDCEAQQEhAgtBACgCsAoiAyABIABBAXRqRw0AQQAgA0F+ajYCsAoPC0EALwGYCg0CQQAoArAKIQNBACgCtAohAANAIAMgAE8NAQJAAkAgAy8BACIEQSdGDQAgBEEiRw0BCyABIAQgAhArDwtBACADQQJqIgM2ArAKDAALCxAlCw8LQQBBACgCsApBfmo2ArAKC0cBA39BACgCsApBAmohAEEAKAK0CiEBAkADQCAAIgJBfmogAU8NASACQQJqIQAgAi8BAEF2ag4EAQAAAQALC0EAIAI2ArAKC5gBAQN/QQBBACgCsAoiAUECajYCsAogAUEGaiEBQQAoArQKIQIDQAJAAkACQCABQXxqIAJPDQAgAUF+ai8BACEDAkACQCAADQAgA0EqRg0BIANBdmoOBAIEBAIECyADQSpHDQMLIAEvAQBBL0cNAkEAIAFBfmo2ArAKDAELIAFBfmohAQtBACABNgKwCg8LIAFBAmohAQwACwuIAQEEf0EAKAKwCiEBQQAoArQKIQICQAJAA0AgASIDQQJqIQEgAyACTw0BIAEvAQAiBCAARg0CAkAgBEHcAEYNACAEQXZqDgQCAQECAQsgA0EEaiEBIAMvAQRBDUcNACADQQZqIAEgAy8BBkEKRhshAQwACwtBACABNgKwChAlDwtBACABNgKwCgtsAQF/AkACQCAAQV9qIgFBBUsNAEEBIAF0QTFxDQELIABBRmpB//8DcUEGSQ0AIABBKUcgAEFYakH//wNxQQdJcQ0AAkAgAEGlf2oOBAEAAAEACyAAQf0ARyAAQYV/akH//wNxQQRJcQ8LQQELLgEBf0EBIQECQCAAQaYJQQUQHQ0AIABBlghBAxAdDQAgAEGwCUECEB0hAQsgAQtGAQN/QQAhAwJAIAAgAkEBdCICayIEQQJqIgBBACgC3AkiBUkNACAAIAEgAhAvDQACQCAAIAVHDQBBAQ8LIAQQJiEDCyADC4MBAQJ/QQEhAQJAAkACQAJAAkACQCAALwEAIgJBRWoOBAUEBAEACwJAIAJBm39qDgQDBAQCAAsgAkEpRg0EIAJB+QBHDQMgAEF+akG8CUEGEB0PCyAAQX5qLwEAQT1GDwsgAEF+akG0CUEEEB0PCyAAQX5qQcgJQQMQHQ8LQQAhAQsgAQu0AwECf0EAIQECQAJAAkACQAJAAkACQAJAAkACQCAALwEAQZx/ag4UAAECCQkJCQMJCQQFCQkGCQcJCQgJCwJAAkAgAEF+ai8BAEGXf2oOBAAKCgEKCyAAQXxqQcoIQQIQHQ8LIABBfGpBzghBAxAdDwsCQAJAAkAgAEF+ai8BAEGNf2oOAwABAgoLAkAgAEF8ai8BACICQeEARg0AIAJB7ABHDQogAEF6akHlABAnDwsgAEF6akHjABAnDwsgAEF8akHUCEEEEB0PCyAAQXxqQdwIQQYQHQ8LIABBfmovAQBB7wBHDQYgAEF8ai8BAEHlAEcNBgJAIABBemovAQAiAkHwAEYNACACQeMARw0HIABBeGpB6AhBBhAdDwsgAEF4akH0CEECEB0PCyAAQX5qQfgIQQQQHQ8LQQEhASAAQX5qIgBB6QAQJw0EIABBgAlBBRAdDwsgAEF+akHkABAnDwsgAEF+akGKCUEHEB0PCyAAQX5qQZgJQQQQHQ8LAkAgAEF+ai8BACICQe8ARg0AIAJB5QBHDQEgAEF8akHuABAnDwsgAEF8akGgCUEDEB0hAQsgAQs0AQF/QQEhAQJAIABBd2pB//8DcUEFSQ0AIABBgAFyQaABRg0AIABBLkcgABAocSEBCyABCzABAX8CQAJAIABBd2oiAUEXSw0AQQEgAXRBjYCABHENAQsgAEGgAUYNAEEADwtBAQtOAQJ/QQAhAQJAAkAgAC8BACICQeUARg0AIAJB6wBHDQEgAEF+akH4CEEEEB0PCyAAQX5qLwEAQfUARw0AIABBfGpB3AhBBhAdIQELIAEL3gEBBH9BACgCsAohAEEAKAK0CiEBAkACQAJAA0AgACICQQJqIQAgAiABTw0BAkACQAJAIAAvAQAiA0Gkf2oOBQIDAwMBAAsgA0EkRw0CIAIvAQRB+wBHDQJBACACQQRqIgA2ArAKQQBBAC8BmAoiAkEBajsBmApBACgCpAogAkEDdGoiAkEENgIAIAIgADYCBA8LQQAgADYCsApBAEEALwGYCkF/aiIAOwGYCkEAKAKkCiAAQf//A3FBA3RqKAIAQQNHDQMMBAsgAkEEaiEADAALC0EAIAA2ArAKCxAlCwtwAQJ/AkACQANAQQBBACgCsAoiAEECaiIBNgKwCiAAQQAoArQKTw0BAkACQAJAIAEvAQAiAUGlf2oOAgECAAsCQCABQXZqDgQEAwMEAAsgAUEvRw0CDAQLEC4aDAELQQAgAEEEajYCsAoMAAsLECULCzUBAX9BAEEBOgD8CUEAKAKwCiEAQQBBACgCtApBAmo2ArAKQQAgAEEAKALcCWtBAXU2ApAKC0MBAn9BASEBAkAgAC8BACICQXdqQf//A3FBBUkNACACQYABckGgAUYNAEEAIQEgAhAoRQ0AIAJBLkcgABAqcg8LIAELPQECf0EAIQICQEEAKALcCSIDIABLDQAgAC8BACABRw0AAkAgAyAARw0AQQEPCyAAQX5qLwEAECAhAgsgAgtoAQJ/QQEhAQJAAkAgAEFfaiICQQVLDQBBASACdEExcQ0BCyAAQfj/A3FBKEYNACAAQUZqQf//A3FBBkkNAAJAIABBpX9qIgJBA0sNACACQQFHDQELIABBhX9qQf//A3FBBEkhAQsgAQucAQEDf0EAKAKwCiEBAkADQAJAAkAgAS8BACICQS9HDQACQCABLwECIgFBKkYNACABQS9HDQQQGAwCCyAAEBkMAQsCQAJAIABFDQAgAkF3aiIBQRdLDQFBASABdEGfgIAEcUUNAQwCCyACECFFDQMMAQsgAkGgAUcNAgtBAEEAKAKwCiIDQQJqIgE2ArAKIANBACgCtApJDQALCyACCzEBAX9BACEBAkAgAC8BAEEuRw0AIABBfmovAQBBLkcNACAAQXxqLwEAQS5GIQELIAELnAQBAX8CQCABQSJGDQAgAUEnRg0AECUPC0EAKAKwCiEDIAEQGiAAIANBAmpBACgCsApBACgC0AkQAQJAIAJFDQBBACgC8AlBBDYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQAMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhACABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIABBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiAiEAA0BBACAAQQJqNgKwCgJAAkACQEEBECkiAEEiRg0AIABBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQAMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSEADAELIAAQLCEACwJAIABBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAEEiRg0AIABBJ0YNAEEAIAE2ArAKDwsgABAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAEEsRg0AIABB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiEADAELC0EAKALwCSIBIAI2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=", "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.js 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.js 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.js 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.js 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.js 672 var { 673 getRegionRootFragment, 674 initialVdom, 675 toVdom, 676 render, 677 parseServerData, 678 populateServerData, 679 batch, 680 routerRegions, 681 cloneElement, 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 ? cloneElement(vdom, { 713 ...vdom.props, 714 priorityLevels 715 }) : vdom.props.element; 716 }; 717 var regionsToAttachByParent = /* @__PURE__ */ new WeakMap(); 718 var rootFragmentsByParent = /* @__PURE__ */ new WeakMap(); 719 var fetchPage = async (url, { html }) => { 720 try { 721 if (!html) { 722 const res = await window.fetch(url); 723 if (res.status !== 200) { 724 return false; 725 } 726 html = await res.text(); 727 } 728 const dom = new window.DOMParser().parseFromString(html, "text/html"); 729 return await preparePage(url, dom); 730 } catch (e) { 731 return false; 732 } 733 }; 734 var preparePage = async (url, dom, { vdom } = {}) => { 735 dom.querySelectorAll("noscript").forEach((el) => el.remove()); 736 const regions = {}; 737 const regionsToAttach = {}; 738 dom.querySelectorAll(regionsSelector).forEach((region) => { 739 const { id, attachTo } = parseRegionAttribute(region); 740 if (region.parentElement.closest(`[$regionAttr}]`)) { 741 regions[id] = void 0; 742 } else { 743 regions[id] = vdom?.has(region) ? vdom.get(region) : toVdom(region); 744 } 745 if (attachTo) { 746 regionsToAttach[id] = attachTo; 747 } 748 }); 749 const title = dom.querySelector("title")?.innerText; 750 const initialData = parseServerData(dom); 751 const [styles, scriptModules] = await Promise.all([ 752 Promise.all(preloadStyles(dom, url)), 753 Promise.all(preloadScriptModules(dom)) 754 ]); 755 return { 756 regions, 757 regionsToAttach, 758 styles, 759 scriptModules, 760 title, 761 initialData, 762 url 763 }; 764 }; 765 var renderPage = (page) => { 766 applyStyles(page.styles); 767 const regionsToAttach = { ...page.regionsToAttach }; 768 batch(() => { 769 populateServerData(page.initialData); 770 navigationSignal.value += 1; 771 routerRegions.forEach((signal) => { 772 signal.value = null; 773 }); 774 const parentsToUpdate = /* @__PURE__ */ new Set(); 775 for (const id in regionsToAttach) { 776 const parent = document.querySelector(regionsToAttach[id]); 777 if (!regionsToAttachByParent.has(parent)) { 778 regionsToAttachByParent.set(parent, []); 779 } 780 const regions = regionsToAttachByParent.get(parent); 781 if (!regions.includes(id)) { 782 regions.push(id); 783 parentsToUpdate.add(parent); 784 } 785 } 786 for (const id in page.regions) { 787 if (routerRegions.has(id)) { 788 routerRegions.get(id).value = cloneRouterRegionContent( 789 page.regions[id] 790 ); 791 } 792 } 793 parentsToUpdate.forEach((parent) => { 794 const ids = regionsToAttachByParent.get(parent); 795 const vdoms = ids.map((id) => page.regions[id]); 796 if (!rootFragmentsByParent.has(parent)) { 797 const regions = vdoms.map(({ props, type }) => { 798 const elementType = typeof type === "function" ? props.type : type; 799 const region = document.createElement(elementType); 800 parent.appendChild(region); 801 return region; 802 }); 803 rootFragmentsByParent.set( 804 parent, 805 getRegionRootFragment(regions) 806 ); 807 } 808 const fragment = rootFragmentsByParent.get(parent); 809 render(vdoms, fragment); 810 }); 811 }); 812 if (page.title) { 813 document.title = page.title; 814 } 815 }; 816 var forcePageReload = (href) => { 817 window.location.assign(href); 818 return new Promise(() => { 819 }); 820 }; 821 window.addEventListener("popstate", async () => { 822 const pagePath = getPagePath(window.location.href); 823 const page = pages.has(pagePath) && await pages.get(pagePath); 824 if (page) { 825 batch(() => { 826 state.url = window.location.href; 827 renderPage(page); 828 }); 829 } else { 830 window.location.reload(); 831 } 832 }); 833 window.document.querySelectorAll("script[type=module][src]").forEach(({ src }) => markScriptModuleAsResolved(src)); 834 pages.set( 835 getPagePath(window.location.href), 836 Promise.resolve( 837 preparePage(getPagePath(window.location.href), document, { 838 vdom: initialVdom 839 }) 840 ) 841 ); 842 var navigatingTo = ""; 843 var hasLoadedNavigationTextsData = false; 844 var navigationTexts = { 845 loading: "Loading page, please wait.", 846 loaded: "Page Loaded." 847 }; 848 var { state, actions } = store("core/router", { 849 state: { 850 url: window.location.href, 851 navigation: { 852 hasStarted: false, 853 hasFinished: false 854 } 855 }, 856 actions: { 857 /** 858 * Navigates to the specified page. 859 * 860 * This function normalizes the passed href, fetches the page HTML if 861 * needed, and updates any interactive regions whose contents have 862 * changed. It also creates a new entry in the browser session history. 863 * 864 * @param href The page href. 865 * @param [options] Options object. 866 * @param [options.force] If true, it forces re-fetching the URL. 867 * @param [options.html] HTML string to be used instead of fetching the requested URL. 868 * @param [options.replace] If true, it replaces the current entry in the browser session history. 869 * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000. 870 * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`. 871 * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`. 872 * 873 * @return Promise that resolves once the navigation is completed or aborted. 874 */ 875 *navigate(href, options = {}) { 876 const { clientNavigationDisabled } = getConfig(); 877 if (clientNavigationDisabled) { 878 yield forcePageReload(href); 879 } 880 const pagePath = getPagePath(href); 881 const { navigation } = state; 882 const { 883 loadingAnimation = true, 884 screenReaderAnnouncement = true, 885 timeout = 1e4 886 } = options; 887 navigatingTo = href; 888 actions.prefetch(pagePath, options); 889 const timeoutPromise = new Promise( 890 (resolve2) => setTimeout(resolve2, timeout) 891 ); 892 const loadingTimeout = setTimeout(() => { 893 if (navigatingTo !== href) { 894 return; 895 } 896 if (loadingAnimation) { 897 navigation.hasStarted = true; 898 navigation.hasFinished = false; 899 } 900 if (screenReaderAnnouncement) { 901 a11ySpeak("loading"); 902 } 903 }, 400); 904 const page = yield Promise.race([ 905 pages.get(pagePath), 906 timeoutPromise 907 ]); 908 clearTimeout(loadingTimeout); 909 if (navigatingTo !== href) { 910 return; 911 } 912 if (page && !page.initialData?.config?.["core/router"]?.clientNavigationDisabled) { 913 yield importScriptModules(page.scriptModules); 914 batch(() => { 915 state.url = href; 916 if (loadingAnimation) { 917 navigation.hasStarted = false; 918 navigation.hasFinished = true; 919 } 920 renderPage(page); 921 }); 922 window.history[options.replace ? "replaceState" : "pushState"]({}, "", href); 923 if (screenReaderAnnouncement) { 924 a11ySpeak("loaded"); 925 } 926 const { hash } = new URL(href, window.location.href); 927 if (hash) { 928 document.querySelector(hash)?.scrollIntoView(); 929 } 930 } else { 931 yield forcePageReload(href); 932 } 933 }, 934 /** 935 * Prefetches the page with the passed URL. 936 * 937 * The function normalizes the URL and stores internally the fetch 938 * promise, to avoid triggering a second fetch for an ongoing request. 939 * 940 * @param url The page URL. 941 * @param [options] Options object. 942 * @param [options.force] Force fetching the URL again. 943 * @param [options.html] HTML string to be used instead of fetching the requested URL. 944 * 945 * @return Promise that resolves once the page has been fetched. 946 */ 947 *prefetch(url, options = {}) { 948 const { clientNavigationDisabled } = getConfig(); 949 if (clientNavigationDisabled) { 950 return; 951 } 952 const pagePath = getPagePath(url); 953 if (options.force || !pages.has(pagePath)) { 954 pages.set( 955 pagePath, 956 fetchPage(pagePath, { html: options.html }) 957 ); 958 } 959 yield pages.get(pagePath); 960 } 961 } 962 }); 963 function a11ySpeak(messageKey) { 964 if (!hasLoadedNavigationTextsData) { 965 hasLoadedNavigationTextsData = true; 966 const content = document.getElementById( 967 "wp-script-module-data-@wordpress/interactivity-router" 968 )?.textContent; 969 if (content) { 970 try { 971 const parsed = JSON.parse(content); 972 if (typeof parsed?.i18n?.loading === "string") { 973 navigationTexts.loading = parsed.i18n.loading; 974 } 975 if (typeof parsed?.i18n?.loaded === "string") { 976 navigationTexts.loaded = parsed.i18n.loaded; 977 } 978 } catch { 979 } 980 } else { 981 if (state.navigation.texts?.loading) { 982 navigationTexts.loading = state.navigation.texts.loading; 983 } 984 if (state.navigation.texts?.loaded) { 985 navigationTexts.loaded = state.navigation.texts.loaded; 986 } 987 } 988 } 989 const message = navigationTexts[messageKey]; 990 import("@wordpress/a11y").then( 991 ({ speak }) => speak(message), 992 // Ignore failures to load the a11y module. 993 () => { 994 } 995 ); 996 } 997 export { 998 actions, 999 state 1000 };
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Wed Apr 22 08:20:11 2026 | Cross-referenced by PHPXref |