{"version":3,"file":"linkingConfig.js","names":["createLinkingConfig"],"sources":["esm/router/linkingConfig.js"],"sourcesContent":["import { isWebClient } from \"../constants\";\nimport { evictOldest } from \"../utils/evictOldest\";\nimport {\n  clearStateCache,\n  getLinkingConfig as createLinkingConfig\n} from \"./getLinkingConfig\";\nlet linkingConfig;\nlet cachedBaseLinkingConfig;\nlet cachedRouteNodeForLinking = null;\nlet cachedLinkingConfigKey = \"\";\nconst ssrStateCache = /* @__PURE__ */ new Map();\nfunction getResolvedLinking() {\n  return linkingConfig;\n}\nfunction setLinking(_) {\n  linkingConfig = _;\n}\nfunction resetLinking() {\n  linkingConfig = void 0;\n}\nfunction ensureBaseLinkingConfig(routeNode, linking) {\n  const linkingConfigKey = getLinkingConfigKey(linking);\n  if (routeNode && (routeNode !== cachedRouteNodeForLinking || linkingConfigKey !== cachedLinkingConfigKey || !cachedBaseLinkingConfig)) {\n    clearStateCache();\n    ssrStateCache.clear();\n    cachedBaseLinkingConfig = createLinkingConfig(routeNode, true, linking);\n    cachedRouteNodeForLinking = routeNode;\n    cachedLinkingConfigKey = linkingConfigKey;\n  }\n}\nfunction getSSRInitialState(routeNode, initialLocation, linking) {\n  if (!routeNode) return void 0;\n  ensureBaseLinkingConfig(routeNode, linking);\n  if (!cachedBaseLinkingConfig) return void 0;\n  const path = initialLocation.pathname + (initialLocation.search || \"\");\n  if (ssrStateCache.has(path)) return ssrStateCache.get(path);\n  const state = cachedBaseLinkingConfig.getStateFromPath?.(\n    path,\n    cachedBaseLinkingConfig.config\n  );\n  evictOldest(ssrStateCache, 5e3, 1e3);\n  ssrStateCache.set(path, state);\n  return state;\n}\nfunction setupLinking(routeNode, initialLocation, linking) {\n  let initialState;\n  if (routeNode) {\n    ensureBaseLinkingConfig(routeNode, linking);\n    linkingConfig = { ...cachedBaseLinkingConfig };\n    if (initialLocation) {\n      linkingConfig.getInitialURL = () => initialLocation.toString();\n      let path = initialLocation.pathname + (initialLocation.search || \"\");\n      if (isWebClient) {\n        const historyState = window.history.state;\n        if (historyState?.__tempLocation?.pathname && !historyState.__tempKey) {\n          path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || \"\");\n        }\n      }\n      initialState = linkingConfig.getStateFromPath?.(path, linkingConfig.config);\n    }\n  }\n  return initialState;\n}\nconst filterIds = /* @__PURE__ */ new WeakMap();\nlet filterIdCounter = 0;\nfunction getFilterId(filter) {\n  if (!filter) return 0;\n  let id = filterIds.get(filter);\n  if (id === void 0) {\n    id = ++filterIdCounter;\n    filterIds.set(filter, id);\n  }\n  return id;\n}\nfunction getLinkingConfigKey(linking) {\n  const schemes = Array.isArray(linking?.scheme) ? [...linking.scheme].sort() : linking?.scheme ?? null;\n  const prefixes = linking?.prefixes ? [...linking.prefixes].sort() : null;\n  return JSON.stringify({\n    scheme: schemes,\n    prefixes,\n    filterId: getFilterId(linking?.filter)\n  });\n}\nexport {\n  ensureBaseLinkingConfig,\n  getResolvedLinking,\n  getSSRInitialState,\n  resetLinking,\n  setLinking,\n  setupLinking\n};\n//# sourceMappingURL=linkingConfig.js.map\n"],"mappings":";;;;;AAMA,IAAI;AACJ,IAAI;AACJ,IAAI,4BAA4B;AAChC,IAAI,yBAAyB;AAC7B,MAAM,gCAAgC,IAAI,IAAI;AAC9C,SAAS,qBAAqB;CAC5B,OAAO;AACT;AACA,SAAS,WAAW,GAAG;CACrB,gBAAgB;AAClB;AACA,SAAS,eAAe;CACtB,gBAAgB,KAAK;AACvB;AACA,SAAS,wBAAwB,WAAW,SAAS;CACnD,MAAM,mBAAmB,oBAAoB,OAAO;CACpD,IAAI,cAAc,cAAc,6BAA6B,qBAAqB,0BAA0B,CAAC,0BAA0B;EACrI,gBAAgB;EAChB,cAAc,MAAM;EACpB,0BAA0BA,iBAAoB,WAAW,MAAM,OAAO;EACtE,4BAA4B;EAC5B,yBAAyB;CAC3B;AACF;AACA,SAAS,mBAAmB,WAAW,iBAAiB,SAAS;CAC/D,IAAI,CAAC,WAAW,OAAO,KAAK;CAC5B,wBAAwB,WAAW,OAAO;CAC1C,IAAI,CAAC,yBAAyB,OAAO,KAAK;CAC1C,MAAM,OAAO,gBAAgB,YAAY,gBAAgB,UAAU;CACnE,IAAI,cAAc,IAAI,IAAI,GAAG,OAAO,cAAc,IAAI,IAAI;CAC1D,MAAM,QAAQ,wBAAwB,mBACpC,MACA,wBAAwB,MAC1B;CACA,YAAY,eAAe,KAAK,GAAG;CACnC,cAAc,IAAI,MAAM,KAAK;CAC7B,OAAO;AACT;AACA,SAAS,aAAa,WAAW,iBAAiB,SAAS;CACzD,IAAI;CACJ,IAAI,WAAW;EACb,wBAAwB,WAAW,OAAO;EAC1C,gBAAgB,EAAE,GAAG,wBAAwB;EAC7C,IAAI,iBAAiB;GACnB,cAAc,sBAAsB,gBAAgB,SAAS;GAC7D,IAAI,OAAO,gBAAgB,YAAY,gBAAgB,UAAU;GACjE,IAAI,aAAa;IACf,MAAM,eAAe,OAAO,QAAQ;IACpC,IAAI,cAAc,gBAAgB,YAAY,CAAC,aAAa,WAAW;KACrE,OAAO,aAAa,eAAe,YAAY,aAAa,eAAe,UAAU;IACvF;GACF;GACA,eAAe,cAAc,mBAAmB,MAAM,cAAc,MAAM;EAC5E;CACF;CACA,OAAO;AACT;AACA,MAAM,4BAA4B,IAAI,QAAQ;AAC9C,IAAI,kBAAkB;AACtB,SAAS,YAAY,QAAQ;CAC3B,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,KAAK,UAAU,IAAI,MAAM;CAC7B,IAAI,OAAO,KAAK,GAAG;EACjB,KAAK,EAAE;EACP,UAAU,IAAI,QAAQ,EAAE;CAC1B;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,SAAS;CACpC,MAAM,UAAU,MAAM,QAAQ,SAAS,MAAM,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC,KAAK,IAAI,SAAS,UAAU;CACjG,MAAM,WAAW,SAAS,WAAW,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,KAAK,IAAI;CACpE,OAAO,KAAK,UAAU;EACpB,QAAQ;EACR;EACA,UAAU,YAAY,SAAS,MAAM;CACvC,CAAC;AACH"}