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