[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/js/dist/script-modules/interactivity-router/ -> index.js (source)

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


Generated : Wed Oct 28 08:20:35 2026 Cross-referenced by PHPXref