@tanstack/router-devtools-core 1.131.41 → 1.131.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs +48 -4
- package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs.map +1 -1
- package/dist/esm/BaseTanStackRouterDevtoolsPanel.js +49 -5
- package/dist/esm/BaseTanStackRouterDevtoolsPanel.js.map +1 -1
- package/package.json +1 -1
- package/src/BaseTanStackRouterDevtoolsPanel.tsx +53 -2
|
@@ -12,7 +12,7 @@ const Explorer = require("./Explorer.cjs");
|
|
|
12
12
|
const utils = require("./utils.cjs");
|
|
13
13
|
const AgeTicker = require("./AgeTicker.cjs");
|
|
14
14
|
const NavigateButton = require("./NavigateButton.cjs");
|
|
15
|
-
var _tmpl$ = /* @__PURE__ */ web.template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ web.template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ web.template(`<code> `), _tmpl$4 = /* @__PURE__ */ web.template(`<code>`), _tmpl$5 = /* @__PURE__ */ web.template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ web.template(`<div>`), _tmpl$7 = /* @__PURE__ */ web.template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox="0 0 10 6"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d="M1 1l4 4 4-4"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$8 = /* @__PURE__ */ web.template(`<div><span>masked`), _tmpl$9 = /* @__PURE__ */ web.template(`<div role=button><div>`), _tmpl$0 = /* @__PURE__ */ web.template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$1 = /* @__PURE__ */ web.template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$10 = /* @__PURE__ */ web.template(`<div>Loader Data`), _tmpl$11 = /* @__PURE__ */ web.template(`<div><div>Search Params</div><div>`);
|
|
15
|
+
var _tmpl$ = /* @__PURE__ */ web.template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ web.template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ web.template(`<code> `), _tmpl$4 = /* @__PURE__ */ web.template(`<code>`), _tmpl$5 = /* @__PURE__ */ web.template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ web.template(`<div>`), _tmpl$7 = /* @__PURE__ */ web.template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox="0 0 10 6"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d="M1 1l4 4 4-4"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$8 = /* @__PURE__ */ web.template(`<div><span>masked`), _tmpl$9 = /* @__PURE__ */ web.template(`<div role=button><div>`), _tmpl$0 = /* @__PURE__ */ web.template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$1 = /* @__PURE__ */ web.template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$10 = /* @__PURE__ */ web.template(`<div>Loader Data`), _tmpl$11 = /* @__PURE__ */ web.template(`<div><div><span>Search Params</span></div><div>`), _tmpl$12 = /* @__PURE__ */ web.template(`<span style=margin-left:0.5rem;>`), _tmpl$13 = /* @__PURE__ */ web.template(`<button type=button style=cursor:pointer; aria-label="Copy value to clipboard">`);
|
|
16
16
|
function Logo(props) {
|
|
17
17
|
const {
|
|
18
18
|
className,
|
|
@@ -528,8 +528,20 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
528
528
|
web.insert(_el$11, (() => {
|
|
529
529
|
var _c$7 = web.memo(() => !!hasSearch());
|
|
530
530
|
return () => _c$7() ? (() => {
|
|
531
|
-
var _el$66 = _tmpl$11(), _el$67 = _el$66.firstChild
|
|
532
|
-
|
|
531
|
+
var _el$66 = _tmpl$11(), _el$67 = _el$66.firstChild;
|
|
532
|
+
_el$67.firstChild;
|
|
533
|
+
var _el$69 = _el$67.nextSibling;
|
|
534
|
+
web.insert(_el$67, typeof navigator !== "undefined" ? (() => {
|
|
535
|
+
var _el$70 = _tmpl$12();
|
|
536
|
+
web.insert(_el$70, web.createComponent(CopyButton, {
|
|
537
|
+
getValue: () => {
|
|
538
|
+
const search = routerState().location.search;
|
|
539
|
+
return JSON.stringify(search);
|
|
540
|
+
}
|
|
541
|
+
}));
|
|
542
|
+
return _el$70;
|
|
543
|
+
})() : null, null);
|
|
544
|
+
web.insert(_el$69, web.createComponent(Explorer.Explorer, {
|
|
533
545
|
value: locationSearchValue,
|
|
534
546
|
get defaultExpanded() {
|
|
535
547
|
return Object.keys(routerState().location.search).reduce((obj, next) => {
|
|
@@ -542,7 +554,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
542
554
|
var _v$45 = styles().fourthContainer, _v$46 = styles().detailsHeader, _v$47 = styles().detailsContent;
|
|
543
555
|
_v$45 !== _p$.e && web.className(_el$66, _p$.e = _v$45);
|
|
544
556
|
_v$46 !== _p$.t && web.className(_el$67, _p$.t = _v$46);
|
|
545
|
-
_v$47 !== _p$.a && web.className(_el$
|
|
557
|
+
_v$47 !== _p$.a && web.className(_el$69, _p$.a = _v$47);
|
|
546
558
|
return _p$;
|
|
547
559
|
}, {
|
|
548
560
|
e: void 0,
|
|
@@ -596,6 +608,38 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
596
608
|
return _el$11;
|
|
597
609
|
})();
|
|
598
610
|
};
|
|
611
|
+
function CopyButton({
|
|
612
|
+
getValue
|
|
613
|
+
}) {
|
|
614
|
+
const [copied, setCopied] = solidJs.createSignal(false);
|
|
615
|
+
let timeoutId = null;
|
|
616
|
+
const handleCopy = async () => {
|
|
617
|
+
var _a;
|
|
618
|
+
if (typeof navigator === "undefined" || !((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
|
|
619
|
+
console.warn("TanStack Router Devtools: Clipboard API unavailable");
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
622
|
+
try {
|
|
623
|
+
const value = getValue();
|
|
624
|
+
await navigator.clipboard.writeText(value);
|
|
625
|
+
setCopied(true);
|
|
626
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
627
|
+
timeoutId = setTimeout(() => setCopied(false), 2500);
|
|
628
|
+
} catch (e) {
|
|
629
|
+
console.error("TanStack Router Devtools: Failed to copy", e);
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
solidJs.onCleanup(() => {
|
|
633
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
634
|
+
});
|
|
635
|
+
return (() => {
|
|
636
|
+
var _el$71 = _tmpl$13();
|
|
637
|
+
_el$71.$$click = handleCopy;
|
|
638
|
+
web.insert(_el$71, () => copied() ? "✅" : "📋");
|
|
639
|
+
web.effect(() => web.setAttribute(_el$71, "title", copied() ? "Copied!" : "Copy"));
|
|
640
|
+
return _el$71;
|
|
641
|
+
})();
|
|
642
|
+
}
|
|
599
643
|
web.delegateEvents(["click", "mousedown"]);
|
|
600
644
|
exports.BaseTanStackRouterDevtoolsPanel = BaseTanStackRouterDevtoolsPanel;
|
|
601
645
|
exports.default = BaseTanStackRouterDevtoolsPanel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTanStackRouterDevtoolsPanel.cjs","sources":["../../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport { Show, createMemo } from 'solid-js'\nimport { useDevtoolsOnClose } from './context'\nimport { useStyles } from './useStyles'\nimport useLocalStorage from './useLocalStorage'\nimport { Explorer } from './Explorer'\nimport { getRouteStatusColor, getStatusColor, multiSortBy } from './utils'\nimport { AgeTicker } from './AgeTicker'\n// import type { DevtoolsPanelOptions } from './TanStackRouterDevtoolsPanel'\n\nimport { NavigateButton } from './NavigateButton'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n FileRouteTypes,\n MakeRouteMatchUnion,\n Route,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor, JSX } from 'solid-js'\n\nexport interface BaseDevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: Accessor<JSX.CSSProperties>\n /**\n * The standard React class property used to style a component with classes\n */\n className?: Accessor<string>\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen?: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart?: (e: any) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router: Accessor<AnyRouter>\n routerState: Accessor<any>\n /**\n * Use this to attach the devtool's styles to specific element in the DOM.\n */\n shadowDOMTarget?: ShadowRoot\n}\n\nfunction Logo(props: any) {\n const { className, ...rest } = props\n const styles = useStyles()\n return (\n <button {...rest} class={cx(styles().logo, className ? className() : '')}>\n <div class={styles().tanstackLogo}>TANSTACK</div>\n <div class={styles().routerLogo}>TanStack Router v1</div>\n </button>\n )\n}\n\nfunction NavigateLink(props: {\n class?: string\n left?: JSX.Element\n children?: JSX.Element\n right?: JSX.Element\n}) {\n return (\n <div\n class={props.class}\n style={{\n display: 'flex',\n 'align-items': 'center',\n width: '100%',\n }}\n >\n {props.left}\n <div style={{ 'flex-grow': 1, 'min-width': 0 }}>{props.children}</div>\n {props.right}\n </div>\n )\n}\n\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId,\n}: {\n routerState: Accessor<\n RouterState<\n Route<\n any,\n '/',\n '/',\n string,\n '__root__',\n undefined,\n {},\n {},\n AnyContext,\n AnyContext,\n {},\n undefined,\n any,\n FileRouteTypes\n >,\n MakeRouteMatchUnion\n >\n >\n router: Accessor<AnyRouter>\n route: AnyRoute\n isRoot?: boolean\n activeId: Accessor<string | undefined>\n setActiveId: (id: string) => void\n}) {\n const styles = useStyles()\n const matches = createMemo(\n () => routerState().pendingMatches || routerState().matches,\n )\n const match = createMemo(() =>\n routerState().matches.find((d) => d.routeId === route.id),\n )\n\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params\n const r: string = route.path || trimPath(route.id)\n if (r.startsWith('$')) {\n const trimmed = r.slice(1)\n\n if (p[trimmed]) {\n return `(${p[trimmed]})`\n }\n }\n }\n return ''\n } catch (error) {\n return ''\n }\n })\n\n const navigationTarget = createMemo<string | undefined>(() => {\n if (isRoot) return undefined // rootRouteId has no path\n if (!route.path) return undefined // no path to navigate to\n\n // flatten all params in the router state, into a single object\n const allParams = Object.assign({}, ...matches().map((m) => m.params))\n\n // interpolatePath is used by router-core to generate the `to`\n // path for the navigate function in the router\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match()) {\n setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n // useStore(router.__store)\n\n const [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = createMemo(() => {\n const matches = [\n ...(routerState().pendingMatches ?? []),\n ...routerState().matches,\n ...routerState().cachedMatches,\n ]\n return matches.find(\n (d) => d.routeId === activeId() || d.id === activeId(),\n )\n })\n\n const hasSearch = createMemo(\n () => Object.keys(routerState().location.search).length,\n )\n\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState(),\n }\n })\n\n const routerExplorerValue = createMemo(() =>\n Object.fromEntries(\n multiSortBy(\n Object.keys(explorerState()),\n (\n [\n 'state',\n 'routesById',\n 'routesByPath',\n 'flatRoutes',\n 'options',\n 'manifest',\n ] as const\n ).map((d) => (dd) => dd !== d),\n )\n .map((key) => [key, (explorerState() as any)[key]])\n .filter(\n (d) =>\n typeof d[1] !== 'function' &&\n ![\n '__store',\n 'basepath',\n 'injectedHtml',\n 'subscribers',\n 'latestLoadPromise',\n 'navigateTimeout',\n 'resetNextScroll',\n 'tempLocationKey',\n 'latestLocation',\n 'routeTree',\n 'history',\n ].includes(d[0]),\n ),\n ),\n )\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData)\n const activeMatchValue = createMemo(() => activeMatch())\n const locationSearchValue = createMemo(() => routerState().location.search)\n\n return (\n <div\n class={cx(\n styles().devtoolsPanel,\n 'TanStackRouterDevtoolsPanel',\n className ? className() : '',\n )}\n style={style ? style() : ''}\n {...otherPanelProps}\n >\n {handleDragStart ? (\n <div class={styles().dragHandle} onMouseDown={handleDragStart}></div>\n ) : null}\n <button\n class={styles().panelCloseBtn}\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"6\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n class={styles().panelCloseBtnIcon}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.667\"\n d=\"M1 1l4 4 4-4\"\n ></path>\n </svg>\n </button>\n <div class={styles().firstContainer}>\n <div class={styles().row}>\n <Logo\n aria-hidden\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n />\n </div>\n <div class={styles().routerExplorerContainer}>\n <div class={styles().routerExplorer}>\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{\n state: {} as any,\n context: {} as any,\n options: {} as any,\n }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter(\n (d: any) => typeof d.value() !== 'function',\n )\n }}\n />\n </div>\n </div>\n </div>\n <div class={styles().secondContainer}>\n <div class={styles().matchesContainer}>\n <div class={styles().detailsHeader}>\n <span>Pathname</span>\n {routerState().location.maskedLocation ? (\n <div class={styles().maskedBadgeContainer}>\n <span class={styles().maskedBadge}>masked</span>\n </div>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <code>{routerState().location.pathname}</code>\n {routerState().location.maskedLocation ? (\n <code class={styles().maskedLocation}>\n {routerState().location.maskedLocation?.pathname}\n </code>\n ) : null}\n </div>\n <div class={styles().detailsHeader}>\n <div class={styles().routeMatchesToggle}>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!showMatches(), true),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!!showMatches(), false),\n )}\n >\n Matches\n </button>\n </div>\n <div class={styles().detailsHeaderInfo}>\n <div>age / staleTime / gcTime</div>\n </div>\n </div>\n <div class={cx(styles().routesContainer)}>\n {!showMatches() ? (\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ) : (\n <div>\n {(routerState().pendingMatches?.length\n ? routerState().pendingMatches\n : routerState().matches\n )?.map((match: any, _i: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>Search Params</div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["Logo","props","className","rest","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$mergeProps","cx","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","e","_$className","t","undefined","NavigateLink","_el$4","_tmpl$2","_el$5","style","setProperty","_$insert","left","children","right","class","RouteComp","routerState","router","route","isRoot","activeId","setActiveId","matches","createMemo","pendingMatches","match","find","d","routeId","id","param","params","p","r","path","trimPath","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","interpolatePath","fullPath","leaveWildcards","leaveParams","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","Show","when","navigate","NavigateButton","to","AgeTicker","_el$9","_tmpl$3","_el$0","rootRouteId","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","getRouteStatusColor","_$setAttribute","BaseTanStackRouterDevtoolsPanel","isOpen","setIsOpen","handleDragStart","shadowDOMTarget","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","showMatches","setShowMatches","useLocalStorage","activeMatch","cachedMatches","hasSearch","keys","location","search","explorerState","state","routerExplorerValue","fromEntries","multiSortBy","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$7","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_$spread","devtoolsPanel","_el$30","dragHandle","onClick","Explorer","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$31","_tmpl$8","_el$32","_v$22","maskedBadgeContainer","_v$23","maskedBadge","pathname","_c$3","_el$33","_c$4","routeTree","_el$34","_i","_el$35","_tmpl$9","_el$36","_el$37","matchID","_v$24","_v$25","matchRow","_v$26","getStatusColor","_c$5","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_v$30","_v$31","_v$32","_v$27","cachedMatchesContainer","_v$28","detailsHeader","_v$29","detailsHeaderInfo","_c$6","status","_el$46","_tmpl$1","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_c$8","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$64","_tmpl$10","_el$65","detailsContent","_v$33","thirdContainer","_v$34","_v$35","matchDetails","_v$36","matchStatus","_v$37","matchDetailsInfoLabel","_v$38","matchDetailsInfo","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","o","i","n","s","h","l","u","_c$7","_el$66","_tmpl$11","_el$67","_el$68","reduce","obj","next","_v$45","fourthContainer","_v$46","_v$47","_v$6","panelCloseBtn","_v$7","panelCloseBtnIcon","_v$8","firstContainer","_v$9","row","_v$0","routerExplorerContainer","_v$1","routerExplorer","_v$10","secondContainer","_v$11","matchesContainer","_v$12","_v$13","_v$14","_v$15","routeMatchesToggle","_v$16","_v$17","routeMatchesToggleBtn","_v$18","_v$19","_v$20","_v$21","routesContainer","c","disabled","w","f","y","g","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseTanStackRouterDevtoolsPanel.cjs","sources":["../../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport { Show, createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useDevtoolsOnClose } from './context'\nimport { useStyles } from './useStyles'\nimport useLocalStorage from './useLocalStorage'\nimport { Explorer } from './Explorer'\nimport { getRouteStatusColor, getStatusColor, multiSortBy } from './utils'\nimport { AgeTicker } from './AgeTicker'\n// import type { DevtoolsPanelOptions } from './TanStackRouterDevtoolsPanel'\n\nimport { NavigateButton } from './NavigateButton'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n FileRouteTypes,\n MakeRouteMatchUnion,\n Route,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor, JSX } from 'solid-js'\n\nexport interface BaseDevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: Accessor<JSX.CSSProperties>\n /**\n * The standard React class property used to style a component with classes\n */\n className?: Accessor<string>\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen?: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart?: (e: any) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router: Accessor<AnyRouter>\n routerState: Accessor<any>\n /**\n * Use this to attach the devtool's styles to specific element in the DOM.\n */\n shadowDOMTarget?: ShadowRoot\n}\n\nfunction Logo(props: any) {\n const { className, ...rest } = props\n const styles = useStyles()\n return (\n <button {...rest} class={cx(styles().logo, className ? className() : '')}>\n <div class={styles().tanstackLogo}>TANSTACK</div>\n <div class={styles().routerLogo}>TanStack Router v1</div>\n </button>\n )\n}\n\nfunction NavigateLink(props: {\n class?: string\n left?: JSX.Element\n children?: JSX.Element\n right?: JSX.Element\n}) {\n return (\n <div\n class={props.class}\n style={{\n display: 'flex',\n 'align-items': 'center',\n width: '100%',\n }}\n >\n {props.left}\n <div style={{ 'flex-grow': 1, 'min-width': 0 }}>{props.children}</div>\n {props.right}\n </div>\n )\n}\n\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId,\n}: {\n routerState: Accessor<\n RouterState<\n Route<\n any,\n '/',\n '/',\n string,\n '__root__',\n undefined,\n {},\n {},\n AnyContext,\n AnyContext,\n {},\n undefined,\n any,\n FileRouteTypes\n >,\n MakeRouteMatchUnion\n >\n >\n router: Accessor<AnyRouter>\n route: AnyRoute\n isRoot?: boolean\n activeId: Accessor<string | undefined>\n setActiveId: (id: string) => void\n}) {\n const styles = useStyles()\n const matches = createMemo(\n () => routerState().pendingMatches || routerState().matches,\n )\n const match = createMemo(() =>\n routerState().matches.find((d) => d.routeId === route.id),\n )\n\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params\n const r: string = route.path || trimPath(route.id)\n if (r.startsWith('$')) {\n const trimmed = r.slice(1)\n\n if (p[trimmed]) {\n return `(${p[trimmed]})`\n }\n }\n }\n return ''\n } catch (error) {\n return ''\n }\n })\n\n const navigationTarget = createMemo<string | undefined>(() => {\n if (isRoot) return undefined // rootRouteId has no path\n if (!route.path) return undefined // no path to navigate to\n\n // flatten all params in the router state, into a single object\n const allParams = Object.assign({}, ...matches().map((m) => m.params))\n\n // interpolatePath is used by router-core to generate the `to`\n // path for the navigate function in the router\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match()) {\n setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n // useStore(router.__store)\n\n const [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = createMemo(() => {\n const matches = [\n ...(routerState().pendingMatches ?? []),\n ...routerState().matches,\n ...routerState().cachedMatches,\n ]\n return matches.find(\n (d) => d.routeId === activeId() || d.id === activeId(),\n )\n })\n\n const hasSearch = createMemo(\n () => Object.keys(routerState().location.search).length,\n )\n\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState(),\n }\n })\n\n const routerExplorerValue = createMemo(() =>\n Object.fromEntries(\n multiSortBy(\n Object.keys(explorerState()),\n (\n [\n 'state',\n 'routesById',\n 'routesByPath',\n 'flatRoutes',\n 'options',\n 'manifest',\n ] as const\n ).map((d) => (dd) => dd !== d),\n )\n .map((key) => [key, (explorerState() as any)[key]])\n .filter(\n (d) =>\n typeof d[1] !== 'function' &&\n ![\n '__store',\n 'basepath',\n 'injectedHtml',\n 'subscribers',\n 'latestLoadPromise',\n 'navigateTimeout',\n 'resetNextScroll',\n 'tempLocationKey',\n 'latestLocation',\n 'routeTree',\n 'history',\n ].includes(d[0]),\n ),\n ),\n )\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData)\n const activeMatchValue = createMemo(() => activeMatch())\n const locationSearchValue = createMemo(() => routerState().location.search)\n\n return (\n <div\n class={cx(\n styles().devtoolsPanel,\n 'TanStackRouterDevtoolsPanel',\n className ? className() : '',\n )}\n style={style ? style() : ''}\n {...otherPanelProps}\n >\n {handleDragStart ? (\n <div class={styles().dragHandle} onMouseDown={handleDragStart}></div>\n ) : null}\n <button\n class={styles().panelCloseBtn}\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"6\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n class={styles().panelCloseBtnIcon}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.667\"\n d=\"M1 1l4 4 4-4\"\n ></path>\n </svg>\n </button>\n <div class={styles().firstContainer}>\n <div class={styles().row}>\n <Logo\n aria-hidden\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n />\n </div>\n <div class={styles().routerExplorerContainer}>\n <div class={styles().routerExplorer}>\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{\n state: {} as any,\n context: {} as any,\n options: {} as any,\n }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter(\n (d: any) => typeof d.value() !== 'function',\n )\n }}\n />\n </div>\n </div>\n </div>\n <div class={styles().secondContainer}>\n <div class={styles().matchesContainer}>\n <div class={styles().detailsHeader}>\n <span>Pathname</span>\n {routerState().location.maskedLocation ? (\n <div class={styles().maskedBadgeContainer}>\n <span class={styles().maskedBadge}>masked</span>\n </div>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <code>{routerState().location.pathname}</code>\n {routerState().location.maskedLocation ? (\n <code class={styles().maskedLocation}>\n {routerState().location.maskedLocation?.pathname}\n </code>\n ) : null}\n </div>\n <div class={styles().detailsHeader}>\n <div class={styles().routeMatchesToggle}>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!showMatches(), true),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!!showMatches(), false),\n )}\n >\n Matches\n </button>\n </div>\n <div class={styles().detailsHeaderInfo}>\n <div>age / staleTime / gcTime</div>\n </div>\n </div>\n <div class={cx(styles().routesContainer)}>\n {!showMatches() ? (\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ) : (\n <div>\n {(routerState().pendingMatches?.length\n ? routerState().pendingMatches\n : routerState().matches\n )?.map((match: any, _i: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>\n <span>Search Params</span>\n {typeof navigator !== 'undefined' ? (\n <span style=\"margin-left: 0.5rem;\">\n <CopyButton\n getValue={() => {\n const search = routerState().location.search\n return JSON.stringify(search)\n }}\n />\n </span>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nfunction CopyButton({ getValue }: { getValue: () => string }) {\n const [copied, setCopied] = createSignal(false)\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const handleCopy = async () => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n console.warn('TanStack Router Devtools: Clipboard API unavailable')\n return\n }\n try {\n const value = getValue()\n await navigator.clipboard.writeText(value)\n setCopied(true)\n if (timeoutId) clearTimeout(timeoutId)\n timeoutId = setTimeout(() => setCopied(false), 2500)\n } catch (e) {\n console.error('TanStack Router Devtools: Failed to copy', e)\n }\n }\n\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId)\n })\n\n return (\n <button\n type=\"button\"\n style=\"cursor: pointer;\"\n onClick={handleCopy}\n aria-label=\"Copy value to clipboard\"\n title={copied() ? 'Copied!' : 'Copy'}\n >\n {copied() ? '✅' : '📋'}\n </button>\n )\n}\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["Logo","props","className","rest","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$mergeProps","cx","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","e","_$className","t","undefined","NavigateLink","_el$4","_tmpl$2","_el$5","style","setProperty","_$insert","left","children","right","class","RouteComp","routerState","router","route","isRoot","activeId","setActiveId","matches","createMemo","pendingMatches","match","find","d","routeId","id","param","params","p","r","path","trimPath","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","interpolatePath","fullPath","leaveWildcards","leaveParams","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","Show","when","navigate","NavigateButton","to","AgeTicker","_el$9","_tmpl$3","_el$0","rootRouteId","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","getRouteStatusColor","_$setAttribute","BaseTanStackRouterDevtoolsPanel","isOpen","setIsOpen","handleDragStart","shadowDOMTarget","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","showMatches","setShowMatches","useLocalStorage","activeMatch","cachedMatches","hasSearch","keys","location","search","explorerState","state","routerExplorerValue","fromEntries","multiSortBy","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$7","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_$spread","devtoolsPanel","_el$30","dragHandle","onClick","Explorer","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$31","_tmpl$8","_el$32","_v$22","maskedBadgeContainer","_v$23","maskedBadge","pathname","_c$3","_el$33","_c$4","routeTree","_el$34","_i","_el$35","_tmpl$9","_el$36","_el$37","matchID","_v$24","_v$25","matchRow","_v$26","getStatusColor","_c$5","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_v$30","_v$31","_v$32","_v$27","cachedMatchesContainer","_v$28","detailsHeader","_v$29","detailsHeaderInfo","_c$6","status","_el$46","_tmpl$1","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_c$8","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$64","_tmpl$10","_el$65","detailsContent","_v$33","thirdContainer","_v$34","_v$35","matchDetails","_v$36","matchStatus","_v$37","matchDetailsInfoLabel","_v$38","matchDetailsInfo","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","o","i","n","s","h","l","u","_c$7","_el$66","_tmpl$11","_el$67","_el$69","navigator","_el$70","_tmpl$12","CopyButton","getValue","JSON","stringify","reduce","obj","next","_v$45","fourthContainer","_v$46","_v$47","_v$6","panelCloseBtn","_v$7","panelCloseBtnIcon","_v$8","firstContainer","_v$9","row","_v$0","routerExplorerContainer","_v$1","routerExplorer","_v$10","secondContainer","_v$11","matchesContainer","_v$12","_v$13","_v$14","_v$15","routeMatchesToggle","_v$16","_v$17","routeMatchesToggleBtn","_v$18","_v$19","_v$20","_v$21","routesContainer","c","disabled","w","f","y","g","copied","setCopied","createSignal","timeoutId","handleCopy","clipboard","writeText","console","warn","setTimeout","onCleanup","_el$71","_tmpl$13","_$delegateEvents"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { template, spread, mergeProps, insert, addEventListener, effect, classNa
|
|
|
2
2
|
import { clsx } from "clsx";
|
|
3
3
|
import invariant from "tiny-invariant";
|
|
4
4
|
import { rootRouteId, trimPath, interpolatePath } from "@tanstack/router-core";
|
|
5
|
-
import { createMemo, Show } from "solid-js";
|
|
5
|
+
import { createMemo, Show, createSignal, onCleanup } from "solid-js";
|
|
6
6
|
import { useDevtoolsOnClose } from "./context.js";
|
|
7
7
|
import { useStyles } from "./useStyles.js";
|
|
8
8
|
import useLocalStorage from "./useLocalStorage.js";
|
|
@@ -10,7 +10,7 @@ import { Explorer } from "./Explorer.js";
|
|
|
10
10
|
import { multiSortBy, getStatusColor, getRouteStatusColor } from "./utils.js";
|
|
11
11
|
import { AgeTicker } from "./AgeTicker.js";
|
|
12
12
|
import { NavigateButton } from "./NavigateButton.js";
|
|
13
|
-
var _tmpl$ = /* @__PURE__ */ template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ template(`<code> `), _tmpl$4 = /* @__PURE__ */ template(`<code>`), _tmpl$5 = /* @__PURE__ */ template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ template(`<div>`), _tmpl$7 = /* @__PURE__ */ template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox="0 0 10 6"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d="M1 1l4 4 4-4"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$8 = /* @__PURE__ */ template(`<div><span>masked`), _tmpl$9 = /* @__PURE__ */ template(`<div role=button><div>`), _tmpl$0 = /* @__PURE__ */ template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$1 = /* @__PURE__ */ template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$10 = /* @__PURE__ */ template(`<div>Loader Data`), _tmpl$11 = /* @__PURE__ */ template(`<div><div>Search Params</div><div>`);
|
|
13
|
+
var _tmpl$ = /* @__PURE__ */ template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ template(`<code> `), _tmpl$4 = /* @__PURE__ */ template(`<code>`), _tmpl$5 = /* @__PURE__ */ template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ template(`<div>`), _tmpl$7 = /* @__PURE__ */ template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox="0 0 10 6"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d="M1 1l4 4 4-4"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$8 = /* @__PURE__ */ template(`<div><span>masked`), _tmpl$9 = /* @__PURE__ */ template(`<div role=button><div>`), _tmpl$0 = /* @__PURE__ */ template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$1 = /* @__PURE__ */ template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$10 = /* @__PURE__ */ template(`<div>Loader Data`), _tmpl$11 = /* @__PURE__ */ template(`<div><div><span>Search Params</span></div><div>`), _tmpl$12 = /* @__PURE__ */ template(`<span style=margin-left:0.5rem;>`), _tmpl$13 = /* @__PURE__ */ template(`<button type=button style=cursor:pointer; aria-label="Copy value to clipboard">`);
|
|
14
14
|
function Logo(props) {
|
|
15
15
|
const {
|
|
16
16
|
className: className$1,
|
|
@@ -526,8 +526,20 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
526
526
|
insert(_el$11, (() => {
|
|
527
527
|
var _c$7 = memo(() => !!hasSearch());
|
|
528
528
|
return () => _c$7() ? (() => {
|
|
529
|
-
var _el$66 = _tmpl$11(), _el$67 = _el$66.firstChild
|
|
530
|
-
|
|
529
|
+
var _el$66 = _tmpl$11(), _el$67 = _el$66.firstChild;
|
|
530
|
+
_el$67.firstChild;
|
|
531
|
+
var _el$69 = _el$67.nextSibling;
|
|
532
|
+
insert(_el$67, typeof navigator !== "undefined" ? (() => {
|
|
533
|
+
var _el$70 = _tmpl$12();
|
|
534
|
+
insert(_el$70, createComponent(CopyButton, {
|
|
535
|
+
getValue: () => {
|
|
536
|
+
const search = routerState().location.search;
|
|
537
|
+
return JSON.stringify(search);
|
|
538
|
+
}
|
|
539
|
+
}));
|
|
540
|
+
return _el$70;
|
|
541
|
+
})() : null, null);
|
|
542
|
+
insert(_el$69, createComponent(Explorer, {
|
|
531
543
|
value: locationSearchValue,
|
|
532
544
|
get defaultExpanded() {
|
|
533
545
|
return Object.keys(routerState().location.search).reduce((obj, next) => {
|
|
@@ -540,7 +552,7 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
540
552
|
var _v$45 = styles().fourthContainer, _v$46 = styles().detailsHeader, _v$47 = styles().detailsContent;
|
|
541
553
|
_v$45 !== _p$.e && className(_el$66, _p$.e = _v$45);
|
|
542
554
|
_v$46 !== _p$.t && className(_el$67, _p$.t = _v$46);
|
|
543
|
-
_v$47 !== _p$.a && className(_el$
|
|
555
|
+
_v$47 !== _p$.a && className(_el$69, _p$.a = _v$47);
|
|
544
556
|
return _p$;
|
|
545
557
|
}, {
|
|
546
558
|
e: void 0,
|
|
@@ -594,6 +606,38 @@ const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel
|
|
|
594
606
|
return _el$11;
|
|
595
607
|
})();
|
|
596
608
|
};
|
|
609
|
+
function CopyButton({
|
|
610
|
+
getValue
|
|
611
|
+
}) {
|
|
612
|
+
const [copied, setCopied] = createSignal(false);
|
|
613
|
+
let timeoutId = null;
|
|
614
|
+
const handleCopy = async () => {
|
|
615
|
+
var _a;
|
|
616
|
+
if (typeof navigator === "undefined" || !((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
|
|
617
|
+
console.warn("TanStack Router Devtools: Clipboard API unavailable");
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
try {
|
|
621
|
+
const value = getValue();
|
|
622
|
+
await navigator.clipboard.writeText(value);
|
|
623
|
+
setCopied(true);
|
|
624
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
625
|
+
timeoutId = setTimeout(() => setCopied(false), 2500);
|
|
626
|
+
} catch (e) {
|
|
627
|
+
console.error("TanStack Router Devtools: Failed to copy", e);
|
|
628
|
+
}
|
|
629
|
+
};
|
|
630
|
+
onCleanup(() => {
|
|
631
|
+
if (timeoutId) clearTimeout(timeoutId);
|
|
632
|
+
});
|
|
633
|
+
return (() => {
|
|
634
|
+
var _el$71 = _tmpl$13();
|
|
635
|
+
_el$71.$$click = handleCopy;
|
|
636
|
+
insert(_el$71, () => copied() ? "✅" : "📋");
|
|
637
|
+
effect(() => setAttribute(_el$71, "title", copied() ? "Copied!" : "Copy"));
|
|
638
|
+
return _el$71;
|
|
639
|
+
})();
|
|
640
|
+
}
|
|
597
641
|
delegateEvents(["click", "mousedown"]);
|
|
598
642
|
export {
|
|
599
643
|
BaseTanStackRouterDevtoolsPanel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTanStackRouterDevtoolsPanel.js","sources":["../../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport { Show, createMemo } from 'solid-js'\nimport { useDevtoolsOnClose } from './context'\nimport { useStyles } from './useStyles'\nimport useLocalStorage from './useLocalStorage'\nimport { Explorer } from './Explorer'\nimport { getRouteStatusColor, getStatusColor, multiSortBy } from './utils'\nimport { AgeTicker } from './AgeTicker'\n// import type { DevtoolsPanelOptions } from './TanStackRouterDevtoolsPanel'\n\nimport { NavigateButton } from './NavigateButton'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n FileRouteTypes,\n MakeRouteMatchUnion,\n Route,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor, JSX } from 'solid-js'\n\nexport interface BaseDevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: Accessor<JSX.CSSProperties>\n /**\n * The standard React class property used to style a component with classes\n */\n className?: Accessor<string>\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen?: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart?: (e: any) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router: Accessor<AnyRouter>\n routerState: Accessor<any>\n /**\n * Use this to attach the devtool's styles to specific element in the DOM.\n */\n shadowDOMTarget?: ShadowRoot\n}\n\nfunction Logo(props: any) {\n const { className, ...rest } = props\n const styles = useStyles()\n return (\n <button {...rest} class={cx(styles().logo, className ? className() : '')}>\n <div class={styles().tanstackLogo}>TANSTACK</div>\n <div class={styles().routerLogo}>TanStack Router v1</div>\n </button>\n )\n}\n\nfunction NavigateLink(props: {\n class?: string\n left?: JSX.Element\n children?: JSX.Element\n right?: JSX.Element\n}) {\n return (\n <div\n class={props.class}\n style={{\n display: 'flex',\n 'align-items': 'center',\n width: '100%',\n }}\n >\n {props.left}\n <div style={{ 'flex-grow': 1, 'min-width': 0 }}>{props.children}</div>\n {props.right}\n </div>\n )\n}\n\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId,\n}: {\n routerState: Accessor<\n RouterState<\n Route<\n any,\n '/',\n '/',\n string,\n '__root__',\n undefined,\n {},\n {},\n AnyContext,\n AnyContext,\n {},\n undefined,\n any,\n FileRouteTypes\n >,\n MakeRouteMatchUnion\n >\n >\n router: Accessor<AnyRouter>\n route: AnyRoute\n isRoot?: boolean\n activeId: Accessor<string | undefined>\n setActiveId: (id: string) => void\n}) {\n const styles = useStyles()\n const matches = createMemo(\n () => routerState().pendingMatches || routerState().matches,\n )\n const match = createMemo(() =>\n routerState().matches.find((d) => d.routeId === route.id),\n )\n\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params\n const r: string = route.path || trimPath(route.id)\n if (r.startsWith('$')) {\n const trimmed = r.slice(1)\n\n if (p[trimmed]) {\n return `(${p[trimmed]})`\n }\n }\n }\n return ''\n } catch (error) {\n return ''\n }\n })\n\n const navigationTarget = createMemo<string | undefined>(() => {\n if (isRoot) return undefined // rootRouteId has no path\n if (!route.path) return undefined // no path to navigate to\n\n // flatten all params in the router state, into a single object\n const allParams = Object.assign({}, ...matches().map((m) => m.params))\n\n // interpolatePath is used by router-core to generate the `to`\n // path for the navigate function in the router\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match()) {\n setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n // useStore(router.__store)\n\n const [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = createMemo(() => {\n const matches = [\n ...(routerState().pendingMatches ?? []),\n ...routerState().matches,\n ...routerState().cachedMatches,\n ]\n return matches.find(\n (d) => d.routeId === activeId() || d.id === activeId(),\n )\n })\n\n const hasSearch = createMemo(\n () => Object.keys(routerState().location.search).length,\n )\n\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState(),\n }\n })\n\n const routerExplorerValue = createMemo(() =>\n Object.fromEntries(\n multiSortBy(\n Object.keys(explorerState()),\n (\n [\n 'state',\n 'routesById',\n 'routesByPath',\n 'flatRoutes',\n 'options',\n 'manifest',\n ] as const\n ).map((d) => (dd) => dd !== d),\n )\n .map((key) => [key, (explorerState() as any)[key]])\n .filter(\n (d) =>\n typeof d[1] !== 'function' &&\n ![\n '__store',\n 'basepath',\n 'injectedHtml',\n 'subscribers',\n 'latestLoadPromise',\n 'navigateTimeout',\n 'resetNextScroll',\n 'tempLocationKey',\n 'latestLocation',\n 'routeTree',\n 'history',\n ].includes(d[0]),\n ),\n ),\n )\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData)\n const activeMatchValue = createMemo(() => activeMatch())\n const locationSearchValue = createMemo(() => routerState().location.search)\n\n return (\n <div\n class={cx(\n styles().devtoolsPanel,\n 'TanStackRouterDevtoolsPanel',\n className ? className() : '',\n )}\n style={style ? style() : ''}\n {...otherPanelProps}\n >\n {handleDragStart ? (\n <div class={styles().dragHandle} onMouseDown={handleDragStart}></div>\n ) : null}\n <button\n class={styles().panelCloseBtn}\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"6\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n class={styles().panelCloseBtnIcon}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.667\"\n d=\"M1 1l4 4 4-4\"\n ></path>\n </svg>\n </button>\n <div class={styles().firstContainer}>\n <div class={styles().row}>\n <Logo\n aria-hidden\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n />\n </div>\n <div class={styles().routerExplorerContainer}>\n <div class={styles().routerExplorer}>\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{\n state: {} as any,\n context: {} as any,\n options: {} as any,\n }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter(\n (d: any) => typeof d.value() !== 'function',\n )\n }}\n />\n </div>\n </div>\n </div>\n <div class={styles().secondContainer}>\n <div class={styles().matchesContainer}>\n <div class={styles().detailsHeader}>\n <span>Pathname</span>\n {routerState().location.maskedLocation ? (\n <div class={styles().maskedBadgeContainer}>\n <span class={styles().maskedBadge}>masked</span>\n </div>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <code>{routerState().location.pathname}</code>\n {routerState().location.maskedLocation ? (\n <code class={styles().maskedLocation}>\n {routerState().location.maskedLocation?.pathname}\n </code>\n ) : null}\n </div>\n <div class={styles().detailsHeader}>\n <div class={styles().routeMatchesToggle}>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!showMatches(), true),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!!showMatches(), false),\n )}\n >\n Matches\n </button>\n </div>\n <div class={styles().detailsHeaderInfo}>\n <div>age / staleTime / gcTime</div>\n </div>\n </div>\n <div class={cx(styles().routesContainer)}>\n {!showMatches() ? (\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ) : (\n <div>\n {(routerState().pendingMatches?.length\n ? routerState().pendingMatches\n : routerState().matches\n )?.map((match: any, _i: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>Search Params</div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["Logo","props","className","rest","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$mergeProps","cx","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","e","_$className","t","undefined","NavigateLink","_el$4","_tmpl$2","_el$5","style","setProperty","_$insert","left","children","right","class","RouteComp","routerState","router","route","isRoot","activeId","setActiveId","matches","createMemo","pendingMatches","match","find","d","routeId","id","param","params","p","r","path","trimPath","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","interpolatePath","fullPath","leaveWildcards","leaveParams","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","Show","when","navigate","NavigateButton","to","AgeTicker","_el$9","_tmpl$3","_el$0","rootRouteId","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","getRouteStatusColor","_$setAttribute","BaseTanStackRouterDevtoolsPanel","isOpen","setIsOpen","handleDragStart","shadowDOMTarget","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","showMatches","setShowMatches","useLocalStorage","activeMatch","cachedMatches","hasSearch","keys","location","search","explorerState","state","routerExplorerValue","fromEntries","multiSortBy","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$7","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_$spread","devtoolsPanel","_el$30","dragHandle","onClick","Explorer","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$31","_tmpl$8","_el$32","_v$22","maskedBadgeContainer","_v$23","maskedBadge","pathname","_c$3","_el$33","_c$4","routeTree","_el$34","_i","_el$35","_tmpl$9","_el$36","_el$37","matchID","_v$24","_v$25","matchRow","_v$26","getStatusColor","_c$5","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_v$30","_v$31","_v$32","_v$27","cachedMatchesContainer","_v$28","detailsHeader","_v$29","detailsHeaderInfo","_c$6","status","_el$46","_tmpl$1","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_c$8","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$64","_tmpl$10","_el$65","detailsContent","_v$33","thirdContainer","_v$34","_v$35","matchDetails","_v$36","matchStatus","_v$37","matchDetailsInfoLabel","_v$38","matchDetailsInfo","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","o","i","n","s","h","l","u","_c$7","_el$66","_tmpl$11","_el$67","_el$68","reduce","obj","next","_v$45","fourthContainer","_v$46","_v$47","_v$6","panelCloseBtn","_v$7","panelCloseBtnIcon","_v$8","firstContainer","_v$9","row","_v$0","routerExplorerContainer","_v$1","routerExplorer","_v$10","secondContainer","_v$11","matchesContainer","_v$12","_v$13","_v$14","_v$15","routeMatchesToggle","_v$16","_v$17","routeMatchesToggleBtn","_v$18","_v$19","_v$20","_v$21","routesContainer","c","disabled","w","f","y","g","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseTanStackRouterDevtoolsPanel.js","sources":["../../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport { Show, createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useDevtoolsOnClose } from './context'\nimport { useStyles } from './useStyles'\nimport useLocalStorage from './useLocalStorage'\nimport { Explorer } from './Explorer'\nimport { getRouteStatusColor, getStatusColor, multiSortBy } from './utils'\nimport { AgeTicker } from './AgeTicker'\n// import type { DevtoolsPanelOptions } from './TanStackRouterDevtoolsPanel'\n\nimport { NavigateButton } from './NavigateButton'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n FileRouteTypes,\n MakeRouteMatchUnion,\n Route,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor, JSX } from 'solid-js'\n\nexport interface BaseDevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: Accessor<JSX.CSSProperties>\n /**\n * The standard React class property used to style a component with classes\n */\n className?: Accessor<string>\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen?: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart?: (e: any) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router: Accessor<AnyRouter>\n routerState: Accessor<any>\n /**\n * Use this to attach the devtool's styles to specific element in the DOM.\n */\n shadowDOMTarget?: ShadowRoot\n}\n\nfunction Logo(props: any) {\n const { className, ...rest } = props\n const styles = useStyles()\n return (\n <button {...rest} class={cx(styles().logo, className ? className() : '')}>\n <div class={styles().tanstackLogo}>TANSTACK</div>\n <div class={styles().routerLogo}>TanStack Router v1</div>\n </button>\n )\n}\n\nfunction NavigateLink(props: {\n class?: string\n left?: JSX.Element\n children?: JSX.Element\n right?: JSX.Element\n}) {\n return (\n <div\n class={props.class}\n style={{\n display: 'flex',\n 'align-items': 'center',\n width: '100%',\n }}\n >\n {props.left}\n <div style={{ 'flex-grow': 1, 'min-width': 0 }}>{props.children}</div>\n {props.right}\n </div>\n )\n}\n\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId,\n}: {\n routerState: Accessor<\n RouterState<\n Route<\n any,\n '/',\n '/',\n string,\n '__root__',\n undefined,\n {},\n {},\n AnyContext,\n AnyContext,\n {},\n undefined,\n any,\n FileRouteTypes\n >,\n MakeRouteMatchUnion\n >\n >\n router: Accessor<AnyRouter>\n route: AnyRoute\n isRoot?: boolean\n activeId: Accessor<string | undefined>\n setActiveId: (id: string) => void\n}) {\n const styles = useStyles()\n const matches = createMemo(\n () => routerState().pendingMatches || routerState().matches,\n )\n const match = createMemo(() =>\n routerState().matches.find((d) => d.routeId === route.id),\n )\n\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params\n const r: string = route.path || trimPath(route.id)\n if (r.startsWith('$')) {\n const trimmed = r.slice(1)\n\n if (p[trimmed]) {\n return `(${p[trimmed]})`\n }\n }\n }\n return ''\n } catch (error) {\n return ''\n }\n })\n\n const navigationTarget = createMemo<string | undefined>(() => {\n if (isRoot) return undefined // rootRouteId has no path\n if (!route.path) return undefined // no path to navigate to\n\n // flatten all params in the router state, into a single object\n const allParams = Object.assign({}, ...matches().map((m) => m.params))\n\n // interpolatePath is used by router-core to generate the `to`\n // path for the navigate function in the router\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match()) {\n setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\n\n invariant(\n router,\n 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.',\n )\n\n // useStore(router.__store)\n\n const [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = createMemo(() => {\n const matches = [\n ...(routerState().pendingMatches ?? []),\n ...routerState().matches,\n ...routerState().cachedMatches,\n ]\n return matches.find(\n (d) => d.routeId === activeId() || d.id === activeId(),\n )\n })\n\n const hasSearch = createMemo(\n () => Object.keys(routerState().location.search).length,\n )\n\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState(),\n }\n })\n\n const routerExplorerValue = createMemo(() =>\n Object.fromEntries(\n multiSortBy(\n Object.keys(explorerState()),\n (\n [\n 'state',\n 'routesById',\n 'routesByPath',\n 'flatRoutes',\n 'options',\n 'manifest',\n ] as const\n ).map((d) => (dd) => dd !== d),\n )\n .map((key) => [key, (explorerState() as any)[key]])\n .filter(\n (d) =>\n typeof d[1] !== 'function' &&\n ![\n '__store',\n 'basepath',\n 'injectedHtml',\n 'subscribers',\n 'latestLoadPromise',\n 'navigateTimeout',\n 'resetNextScroll',\n 'tempLocationKey',\n 'latestLocation',\n 'routeTree',\n 'history',\n ].includes(d[0]),\n ),\n ),\n )\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData)\n const activeMatchValue = createMemo(() => activeMatch())\n const locationSearchValue = createMemo(() => routerState().location.search)\n\n return (\n <div\n class={cx(\n styles().devtoolsPanel,\n 'TanStackRouterDevtoolsPanel',\n className ? className() : '',\n )}\n style={style ? style() : ''}\n {...otherPanelProps}\n >\n {handleDragStart ? (\n <div class={styles().dragHandle} onMouseDown={handleDragStart}></div>\n ) : null}\n <button\n class={styles().panelCloseBtn}\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"6\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n class={styles().panelCloseBtnIcon}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.667\"\n d=\"M1 1l4 4 4-4\"\n ></path>\n </svg>\n </button>\n <div class={styles().firstContainer}>\n <div class={styles().row}>\n <Logo\n aria-hidden\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n />\n </div>\n <div class={styles().routerExplorerContainer}>\n <div class={styles().routerExplorer}>\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{\n state: {} as any,\n context: {} as any,\n options: {} as any,\n }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter(\n (d: any) => typeof d.value() !== 'function',\n )\n }}\n />\n </div>\n </div>\n </div>\n <div class={styles().secondContainer}>\n <div class={styles().matchesContainer}>\n <div class={styles().detailsHeader}>\n <span>Pathname</span>\n {routerState().location.maskedLocation ? (\n <div class={styles().maskedBadgeContainer}>\n <span class={styles().maskedBadge}>masked</span>\n </div>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <code>{routerState().location.pathname}</code>\n {routerState().location.maskedLocation ? (\n <code class={styles().maskedLocation}>\n {routerState().location.maskedLocation?.pathname}\n </code>\n ) : null}\n </div>\n <div class={styles().detailsHeader}>\n <div class={styles().routeMatchesToggle}>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!showMatches(), true),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!!showMatches(), false),\n )}\n >\n Matches\n </button>\n </div>\n <div class={styles().detailsHeaderInfo}>\n <div>age / staleTime / gcTime</div>\n </div>\n </div>\n <div class={cx(styles().routesContainer)}>\n {!showMatches() ? (\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ) : (\n <div>\n {(routerState().pendingMatches?.length\n ? routerState().pendingMatches\n : routerState().matches\n )?.map((match: any, _i: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>\n <span>Search Params</span>\n {typeof navigator !== 'undefined' ? (\n <span style=\"margin-left: 0.5rem;\">\n <CopyButton\n getValue={() => {\n const search = routerState().location.search\n return JSON.stringify(search)\n }}\n />\n </span>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nfunction CopyButton({ getValue }: { getValue: () => string }) {\n const [copied, setCopied] = createSignal(false)\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const handleCopy = async () => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n console.warn('TanStack Router Devtools: Clipboard API unavailable')\n return\n }\n try {\n const value = getValue()\n await navigator.clipboard.writeText(value)\n setCopied(true)\n if (timeoutId) clearTimeout(timeoutId)\n timeoutId = setTimeout(() => setCopied(false), 2500)\n } catch (e) {\n console.error('TanStack Router Devtools: Failed to copy', e)\n }\n }\n\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId)\n })\n\n return (\n <button\n type=\"button\"\n style=\"cursor: pointer;\"\n onClick={handleCopy}\n aria-label=\"Copy value to clipboard\"\n title={copied() ? 'Copied!' : 'Copy'}\n >\n {copied() ? '✅' : '📋'}\n </button>\n )\n}\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["Logo","props","className","rest","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$mergeProps","cx","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","e","_$className","t","undefined","NavigateLink","_el$4","_tmpl$2","_el$5","style","setProperty","_$insert","left","children","right","class","RouteComp","routerState","router","route","isRoot","activeId","setActiveId","matches","createMemo","pendingMatches","match","find","d","routeId","id","param","params","p","r","path","trimPath","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","interpolatePath","fullPath","leaveWildcards","leaveParams","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","Show","when","navigate","NavigateButton","to","AgeTicker","_el$9","_tmpl$3","_el$0","rootRouteId","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","getRouteStatusColor","_$setAttribute","BaseTanStackRouterDevtoolsPanel","isOpen","setIsOpen","handleDragStart","shadowDOMTarget","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","showMatches","setShowMatches","useLocalStorage","activeMatch","cachedMatches","hasSearch","keys","location","search","explorerState","state","routerExplorerValue","fromEntries","multiSortBy","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$7","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_$spread","devtoolsPanel","_el$30","dragHandle","onClick","Explorer","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$31","_tmpl$8","_el$32","_v$22","maskedBadgeContainer","_v$23","maskedBadge","pathname","_c$3","_el$33","_c$4","routeTree","_el$34","_i","_el$35","_tmpl$9","_el$36","_el$37","matchID","_v$24","_v$25","matchRow","_v$26","getStatusColor","_c$5","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_v$30","_v$31","_v$32","_v$27","cachedMatchesContainer","_v$28","detailsHeader","_v$29","detailsHeaderInfo","_c$6","status","_el$46","_tmpl$1","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_c$8","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$64","_tmpl$10","_el$65","detailsContent","_v$33","thirdContainer","_v$34","_v$35","matchDetails","_v$36","matchStatus","_v$37","matchDetailsInfoLabel","_v$38","matchDetailsInfo","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","o","i","n","s","h","l","u","_c$7","_el$66","_tmpl$11","_el$67","_el$69","navigator","_el$70","_tmpl$12","CopyButton","getValue","JSON","stringify","reduce","obj","next","_v$45","fourthContainer","_v$46","_v$47","_v$6","panelCloseBtn","_v$7","panelCloseBtnIcon","_v$8","firstContainer","_v$9","row","_v$0","routerExplorerContainer","_v$1","routerExplorer","_v$10","secondContainer","_v$11","matchesContainer","_v$12","_v$13","_v$14","_v$15","routeMatchesToggle","_v$16","_v$17","routeMatchesToggleBtn","_v$18","_v$19","_v$20","_v$21","routesContainer","c","disabled","w","f","y","g","copied","setCopied","createSignal","timeoutId","handleCopy","clipboard","writeText","console","warn","setTimeout","onCleanup","_el$71","_tmpl$13","_$delegateEvents"],"mappings":";;;;;;;;;;;;;AAwDA,SAASA,KAAKC,OAAY;AAClB,QAAA;AAAA,IAAA,WAAEC;AAAAA,IAAW,GAAGC;AAAAA,EAAAA,IAASF;AAC/B,QAAMG,SAASC,UAAU;AACzB,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAA,GAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAG;AAAAL,WAAAA,MAAAM,WACcT,MAAI;AAAA,MAAA,KAAA,OAAA,IAAA;AAAA,eAASU,KAAGT,SAASU,MAAMZ,cAAYA,gBAAc,EAAE;AAAA,MAAA;AAAA,IAAC,CAAA,GAAA,OAAA,IAAA;AAAAa,WAAAC,CAAA,QAAA;AAAA,UAAAC,MAC1Db,OAAO,EAAEc,cAAYC,OACrBf,SAASgB;AAAUH,cAAAD,IAAAK,KAAAC,UAAAd,OAAAQ,IAAAK,IAAAJ,GAAA;AAAAE,eAAAH,IAAAO,KAAAD,UAAAZ,OAAAM,IAAAO,IAAAJ,IAAA;AAAAH,aAAAA;AAAAA,IAAAA,GAAA;AAAA,MAAAK,GAAAG;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA;AAAAlB,WAAAA;AAAAA,EAAAA,GAAA;AAGrC;AAEA,SAASmB,aAAaxB,OAKnB;AACD,UAAA,MAAA;AAAA,QAAAyB,QAAAC,QAAAA,GAAAC,QAAAF,MAAAjB;AAAAoB,UAAAA,MAAAC,YAAA,WAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,QAAA;AAAAD,UAAAA,MAAAC,YAAA,SAAA,MAAA;AAAAC,WAAAL,OAAA,MASKzB,MAAM+B,MAAIJ,KAAA;AAAAC,UAAAA,MAAAC,YAAA,aAAA,GAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,GAAA;AAAAF,WAAAA,OACsC3B,MAAAA,MAAMgC,QAAQ;AAAAF,WAAAL,OAC9DzB,MAAAA,MAAMiC,OAAK,IAAA;AAAAnB,iBAAAO,UAAAI,OATLzB,MAAMkC,KAAK,CAAA;AAAAT,WAAAA;AAAAA,EAAAA,GAAA;AAYxB;AAEA,SAASU,UAAU;AAAA,EACjBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AA4BF,GAAG;AACD,QAAMtC,SAASC,UAAU;AACnBsC,QAAAA,UAAUC,WACd,MAAMP,cAAcQ,kBAAkBR,cAAcM,OACtD;AACA,QAAMG,QAAQF,WAAW,MACvBP,YAAAA,EAAcM,QAAQI,KAAMC,CAAAA,MAAMA,EAAEC,YAAYV,MAAMW,EAAE,CAC1D;AAEMC,QAAAA,QAAQP,WAAW,MAAM;;AACzB,QAAA;AACEE,WAAAA,iBAAAA,mBAASM,QAAQ;AACbC,cAAAA,KAAIP,iBAAAA,mBAASM;AACnB,cAAME,IAAYf,MAAMgB,QAAQC,SAASjB,MAAMW,EAAE;AAC7CI,YAAAA,EAAEG,WAAW,GAAG,GAAG;AACfC,gBAAAA,UAAUJ,EAAEK,MAAM,CAAC;AAErBN,cAAAA,EAAEK,OAAO,GAAG;AACP,mBAAA,IAAIL,EAAEK,OAAO,CAAC;AAAA,UAAA;AAAA,QACvB;AAAA,MACF;AAEK,aAAA;AAAA,aACAE,OAAO;AACP,aAAA;AAAA,IAAA;AAAA,EACT,CACD;AAEKC,QAAAA,mBAAmBjB,WAA+B,MAAM;AAC5D,QAAIJ,OAAehB,QAAAA;AACf,QAAA,CAACe,MAAMgB,KAAa/B,QAAAA;AAGxB,UAAMsC,YAAYC,OAAOC,OAAO,CAAI,GAAA,GAAGrB,UAAUsB,IAAKC,CAAAA,MAAMA,EAAEd,MAAM,CAAC;AAIrE,UAAMe,eAAeC,gBAAgB;AAAA,MACnCb,MAAMhB,MAAM8B;AAAAA,MACZjB,QAAQU;AAAAA,MACRQ,gBAAgB;AAAA,MAChBC,aAAa;AAAA,MACbC,eAAelC,SAASmC;AAAAA,IAAAA,CACzB;AAID,WAAO,CAACN,aAAaO,kBACjBP,aAAaQ,mBACbnD;AAAAA,EAAAA,CACL;AAED,UAAA,MAAA;AAAA,QAAAoD,QAAAC,QAAA,GAAAC,QAAAF,MAAAnE,YAAAsE,QAAAD,MAAArE;AAAAqE,UAAAE,UAKe,MAAM;AACb,UAAIlC,SAAS;AACXJ,oBAAYD,eAAeF,MAAMW,KAAK,KAAKX,MAAMW,EAAE;AAAA,MAAA;AAAA,IAEvD;AAAC4B,WAAAA,OAAAG,gBAUAxD,cAAY;AAAA,MAAA,KAAA,OAAA,IAAA;AACJZ,eAAAA,KAAGT,OAAS8E,EAAAA,UAAU,CAAC,CAACpC,MAAAA,CAAO,CAAC;AAAA,MAAC;AAAA,MAAA,IACxCd,OAAI;AAAA,eAAAiD,gBACDE,MAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEvB,iBAAiB;AAAA,UAAC;AAAA,UAAA5B,UAC1BoD,CAAQJ,aAAAA,gBAAMK,gBAAc;AAAA,YAAA,IAACC,KAAE;AAAA,qBAAEF,SAAS;AAAA,YAAC;AAAA,YAAE/C;AAAAA,UAAc,CAAA;AAAA,QAAA,CAAI;AAAA,MAAA;AAAA,MAAA,IAGrEJ,QAAK;AAAA,eAAA+C,gBAAGO,WAAS;AAAA,UAAA,IAAC1C,QAAK;AAAA,mBAAEA,MAAM;AAAA,UAAC;AAAA,UAAER;AAAAA,QAAAA,CAAc;AAAA,MAAA;AAAA,MAAA,IAAAL,WAAA;AAAA,eAAA,EAAA,MAAA;AAAA,cAAAwD,QAAAC,QAAAA,GAAAC,QAAAF,MAAAhF;AAAAgF,iBAAAA,OAAA,MAG7CjD,SAASoD,cAAcrD,MAAMgB,QAAQC,SAASjB,MAAMW,EAAE,GAACyC,KAAA;AAAA5E,iBAAA,MAAAO,UAAAmE,OAD7CrF,OAAO,EAAEyF,IAAI,CAAA;AAAAJ,iBAAAA;AAAAA,QAAA,GAAA,IAAA,MAAA;AAAA,cAAAK,QAAAC,QAAA;AAAAhE,iBAAA+D,OAGa3C,KAAK;AAAApC,iBAAA,MAAAO,UAAAwE,OAA/B1F,OAAO,EAAE4F,cAAc,CAAA;AAAAF,iBAAAA;AAAAA,QAAAA,IAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA;AAAA/D,WAAA6C,QAAA,MAAA;AAAA,UAAAqB,MAAAC,KAAA,MAAA;;AAAA,gBAAA,GAGvC3D,WAAMN,aAANM,mBAAgB4D;AAAAA,OAAM;AAAA,aAAA,MAAtBF,IAAA,KAAA,MAAA;AAAA,YAAAG,SAAAC,QAAA;AAAAD,eAAAA,QAEI,MAAA,CAAC,GAAI7D,MAAMN,QAA4B,EACrCqE,KAAK,CAACC,GAAGC,MAAM;AACPD,iBAAAA,EAAEE,OAAOD,EAAEC;AAAAA,QACnB,CAAA,EACAxC,IAAKX,CAAAA,MAAC2B,gBACJ7C,WAAS;AAAA,UACRC;AAAAA,UACAC;AAAAA,UACAC,OAAOe;AAAAA,UACPb;AAAAA,UACAC;AAAAA,QAAwB,CAAA,CAE3B,CAAC;AAAApB,eAAAA,MAAAA,UAAA8E,QAbMhG,OAAO,EAAEsG,eAAe,CAAC,CAAClE,MAAM,CAAC,CAAA;AAAA4D,eAAAA;AAAAA,aAe3C;AAAA,IAAI,GAAA,GAAA,IAAA;AAAArF,WAAAC,CAAA,QAAA;AAAA,UAAA2F,OA9CM,0BAA0BpE,MAAMW,EAAE,IAAE0D,OAMzC/F,KACLT,OAASyG,EAAAA,mBAAmBtE,MAAMW,OAAOT,YAAY,CAAC,CAACK,MAAO,CAAA,CAChE,GAACgE,OAGQjG,KACLT,SAAS2G,eAAeC,oBAAoBrE,WAAWJ,KAAK,CAAC,CAC/D;AAACoE,eAAA3F,IAAAK,KAAA4F,aAAAnC,OAAA9D,cAAAA,IAAAK,IAAAsF,IAAA;AAAAC,eAAA5F,IAAAO,KAAAD,UAAAwD,OAAA9D,IAAAO,IAAAqF,IAAA;AAAAE,eAAA9F,IAAAuF,KAAAjF,UAAAyD,OAAA/D,IAAAuF,IAAAO,IAAA;AAAA9F,aAAAA;AAAAA,IAAAA,GAAA;AAAA,MAAAK,GAAAG;AAAAA,MAAAD,GAAAC;AAAAA,MAAA+E,GAAA/E;AAAAA,IAAAA,CAAA;AAAAoD,WAAAA;AAAAA,EAAAA,GAAA;AAoCX;AAEasC,MAAAA,kCACX,SAASA,iCAAgC;AAAA,EACvC,GAAGjH;AACqB,GAAgB;AAClC,QAAA;AAAA,IACJkH,SAAS;AAAA,IACTC;AAAAA,IACAC;AAAAA,IACA/E;AAAAA,IACAD;AAAAA,IACAiF;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDtH;AAEE,QAAA;AAAA,IAAEuH;AAAAA,MAAiBC,mBAAmB;AAC5C,QAAMrH,SAASC,UAAU;AACnB,QAAA;AAAA,IAAA,WAAEH;AAAAA,IAAW2B;AAAAA,IAAO,GAAG6F;AAAAA,EAAAA,IAAoBH;AAEjDI,YACErF,QACA,8KACF;AAIA,QAAM,CAACsF,aAAaC,cAAc,IAAIC,gBACpC,qCACA,IACF;AAEA,QAAM,CAACrF,UAAUC,WAAW,IAAIoF,gBAC9B,uCACA,EACF;AAEMC,QAAAA,cAAcnF,WAAW,MAAM;AACnC,UAAMD,UAAU,CACd,GAAIN,YAAAA,EAAcQ,kBAAkB,CAAA,GACpC,GAAGR,YAAcM,EAAAA,SACjB,GAAGN,YAAAA,EAAc2F,aAAa;AAEzBrF,WAAAA,QAAQI,KACZC,CAAAA,MAAMA,EAAEC,YAAYR,cAAcO,EAAEE,OAAOT,SAAAA,CAC9C;AAAA,EAAA,CACD;AAEKwF,QAAAA,YAAYrF,WAChB,MAAMmB,OAAOmE,KAAK7F,cAAc8F,SAASC,MAAM,EAAEjC,MACnD;AAEMkC,QAAAA,gBAAgBzF,WAAW,MAAM;AAC9B,WAAA;AAAA,MACL,GAAGN,OAAO;AAAA,MACVgG,OAAOjG,YAAY;AAAA,IACrB;AAAA,EAAA,CACD;AAED,QAAMkG,sBAAsB3F,WAAW,MACrCmB,OAAOyE,YACLC,YACE1E,OAAOmE,KAAKG,cAAe,CAAA,GAEzB,CACE,SACA,cACA,gBACA,cACA,WACA,UAAU,EAEZpE,IAAKjB,CAAO0F,MAAAA,CAAAA,OAAOA,OAAO1F,CAAC,CAC/B,EACGiB,IAAK0E,CAAAA,QAAQ,CAACA,KAAMN,cAAAA,EAAwBM,GAAG,CAAC,CAAC,EACjDC,OACE5F,CACC,MAAA,OAAOA,EAAE,CAAC,MAAM,cAChB,CAAC,CACC,WACA,YACA,gBACA,eACA,qBACA,mBACA,mBACA,mBACA,kBACA,aACA,SAAS,EACT6F,SAAS7F,EAAE,CAAC,CAAC,CACnB,CACJ,CACF;AACA,QAAM8F,wBAAwBlG,WAAW;;AAAMmF,6BAAAA,MAAAA,mBAAegB;AAAAA,GAAU;AACxE,QAAMC,mBAAmBpG,WAAW,MAAMmF,aAAa;AACvD,QAAMkB,sBAAsBrG,WAAW,MAAMP,YAAY,EAAE8F,SAASC,MAAM;AAE1E,UAAA,MAAA;AAAAc,QAAAA,SAAAC,QAAA,GAAAC,SAAAF,OAAAzI,YAAA4I,SAAAD,OAAA3I,YAAA6I,SAAAF,OAAAzI,aAAA4I,SAAAD,OAAA7I,YAAA+I,SAAAD,OAAA5I,aAAA8I,SAAAD,OAAA/I,YAAAiJ,SAAAJ,OAAA3I,aAAAgJ,SAAAD,OAAAjJ,YAAAmJ,SAAAD,OAAAlJ;AAAAmJ,WAAAnJ;AAAAoJ,QAAAA,SAAAD,OAAAjJ,aAAAmJ,SAAAD,OAAApJ,YAAAsJ,SAAAF,OAAAlJ,aAAAqJ,SAAAD,OAAAtJ,YAAAwJ,SAAAD,OAAAvJ,YAAAyJ,SAAAD,OAAAtJ,aAAAwJ,SAAAH,OAAArJ,aAAAyJ,SAAAL,OAAApJ;AAAA0J,WAAAnB,QAAAtI,WAAA;AAAA,MAAA,KAAA,OAAA,IAAA;AAEWC,eAAAA,KACLT,SAASkK,eACT,+BACApK,cAAYA,gBAAc,EAC5B;AAAA,MAAC;AAAA,MAAA,IACD2B,QAAK;AAAEA,eAAAA,QAAQA,UAAU;AAAA,MAAA;AAAA,IAAE,GACvB6F,eAAe,GAAA,OAAA,IAAA;AAAAwB,WAAAA,QAElB7B,mBAAe,MAAA;AAAA,UAAAkD,SAAAlE,QAAA;AAAAkE,uBAAAA,QAAA,aACgClD,iBAAe,IAAA;AAAAtG,aAAA,MAAAO,UAAAiJ,QAAjDnK,OAAO,EAAEoK,UAAU,CAAA;AAAAD,aAAAA;AAAAA,IAAAA,GAC7B,IAAA,MAAInB,MAAA;AAAApE,WAAAA,UAGG,CAAC3D,MAAW;AACnB,UAAI+F,WAAW;AACbA,kBAAU,KAAK;AAAA,MAAA;AAEjBI,mBAAanG,CAAC;AAAA,IAChB;AAACkI,WAAAA,QAAAtE,gBAqBEjF,MAAI;AAAA,MAAA,eAAA;AAAA,MAEHyK,SAASA,CAACpJ,MAAW;AACnB,YAAI+F,WAAW;AACbA,oBAAU,KAAK;AAAA,QAAA;AAEjBI,qBAAanG,CAAC;AAAA,MAAA;AAAA,IAChB,CAAC,CAAA;AAAAoI,WAAAA,QAAAxE,gBAKAyF,UAAQ;AAAA,MACPC,OAAK;AAAA,MACLC,OAAOrC;AAAAA,MACPsC,iBAAiB;AAAA,QACfvC,OAAO,CAAC;AAAA,QACRwC,SAAS,CAAC;AAAA,QACVC,SAAS,CAAA;AAAA,MACX;AAAA,MACAC,kBAAmBC,CAAe,eAAA;AACzBA,eAAAA,WAAWrC,OAChB,CAAC5F,MAAW,OAAOA,EAAE4H,YAAY,UACnC;AAAA,MAAA;AAAA,IACF,CAAC,CAAA;AAAA7I,WAAA6H,SAAA,MAAA;AAAAsB,UAAAA,OAAAhF,KASF7D,MAAAA,CAAAA,CAAAA,YAAY,EAAE8F,SAASgD,cAAc;AAAA,aAAA,MAArCD,KAAA,KAAA,MAAA;AAAA,YAAAE,SAAAC,QAAAA,GAAAC,SAAAF,OAAA3K;AAAAM,eAAAC,CAAA,QAAA;AAAA,cAAAuK,QACanL,OAAO,EAAEoL,sBAAoBC,QAC1BrL,SAASsL;AAAWH,oBAAAvK,IAAAK,KAAAC,UAAA8J,QAAApK,IAAAK,IAAAkK,KAAA;AAAAE,oBAAAzK,IAAAO,KAAAD,UAAAgK,QAAAtK,IAAAO,IAAAkK,KAAA;AAAAzK,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,UAAAK,GAAAG;AAAAA,UAAAD,GAAAC;AAAAA,QAAAA,CAAA;AAAA4J,eAAAA;AAAAA,aAEjC;AAAA,IAAI,GAAA,GAAA,IAAA;AAAArJ,WAAA+H,QAGDzH,MAAAA,YAAY,EAAE8F,SAASwD,QAAQ;AAAA5J,WAAA8H,SAAA,MAAA;AAAA+B,UAAAA,OAAA1F,KACrC7D,MAAAA,CAAAA,CAAAA,YAAY,EAAE8F,SAASgD,cAAc;AAAA,aAAA,MAArCS,KAAA,KAAA,MAAA;AAAA,YAAAC,SAAA9F,QAAA;AAAAhE,eAAA8J,QAAA,MAEIxJ;;AAAAA,mCAAc8F,EAAAA,SAASgD,mBAAvB9I,mBAAuCsJ;AAAAA,SAAQ;AAAA5K,eAAA,MAAAO,UAAAuK,QADrCzL,OAAO,EAAE+K,cAAc,CAAA;AAAAU,eAAAA;AAAAA,aAGlC;AAAA,IAAI,GAAA,GAAA,IAAA;AAAA5B,WAAAjF,UAMK,MAAM;AACb6C,qBAAe,KAAK;AAAA,IACtB;AAACqC,WAAAlF,UAUQ,MAAM;AACb6C,qBAAe,IAAI;AAAA,IACrB;AAAC9F,WAAAqI,SAAA,MAAA;AAAA,UAAA0B,OAAA5F,aAcJ,CAAC0B,aAAa;AAAA,aAAA,MAAdkE,KAAAA,IAAA7G,gBACE7C,WAAS;AAAA,QACRC;AAAAA,QACAC;AAAAA,QAAc,IACdC,QAAK;AAAA,iBAAED,OAASyJ,EAAAA;AAAAA,QAAS;AAAA,QACzBvJ,QAAM;AAAA,QACNC;AAAAA,QACAC;AAAAA,MAAwB,CAAA,KAAA,MAAA;AAAA,YAAAsJ,SAAA3F,QAAA;AAAAtE,eAAAiK,QAIvB,MAAA;;AAAC3J,0CAAY,EAAEQ,mBAAdR,mBAA8B8D,UAC5B9D,YAAcQ,EAAAA,iBACdR,cAAcM,YAFhBN,mBAGC4B,IAAI,CAACnB,OAAYmJ,OAAY;AAC9B,oBAAA,MAAA;AAAA,kBAAAC,SAAAC,QAAAA,GAAAC,SAAAF,OAAAzL;AAAAuE,qBAAAA,UAIa,MACPtC,YAAYD,SAAAA,MAAeK,MAAMI,KAAK,KAAKJ,MAAMI,EAAE;AAACgJ,qBAAAA,QAAAjH,gBASrDxD,cAAY;AAAA,gBAAA,IACXO,OAAI;AAAA,yBAAAiD,gBACDK,gBAAc;AAAA,oBAAA,IACbC,KAAE;AAAA,6BAAEzC,MAAM6I;AAAAA,oBAAQ;AAAA,oBAAA,IAClBvI,SAAM;AAAA,6BAAEN,MAAMM;AAAAA,oBAAM;AAAA,oBAAA,IACpBgF,SAAM;AAAA,6BAAEtF,MAAMsF;AAAAA,oBAAM;AAAA,oBACpB9F;AAAAA,kBAAAA,CAAc;AAAA,gBAAA;AAAA,gBAAA,IAGlBJ,QAAK;AAAA,yBAAA+C,gBAAGO,WAAS;AAAA,oBAAC1C;AAAAA,oBAAcR;AAAAA,kBAAAA,CAAc;AAAA,gBAAA;AAAA,gBAAA,IAAAL,WAAA;AAAA,sBAAAoK,SAAAtG,QAAA;AAAAsG,yBAAAA,QAG3C,MAAA,GAAGvJ,MAAMG,YAAY2C,cAAcA,cAAc9C,MAAM6I,QAAQ,EAAE;AAAA5K,yBAAA,MAAAO,UAAA+K,QADvDjM,OAAO,EAAEkM,OAAO,CAAA;AAAAD,yBAAAA;AAAAA,gBAAAA;AAAAA,cAAA,CAAA,GAAA,IAAA;AAAAtL,qBAAAC,CAAA,QAAA;AAAAuL,oBAAAA,QAtBnB,0BAA0BzJ,MAAMI,EAAE,IAAEsJ,QAIzC3L,KAAGT,OAAO,EAAEqM,SAAS3J,UAAUiF,YAAa,CAAA,CAAC,GAAC2E,QAG5C7L,KACLT,SAAS2G,eAAe4F,eAAe7J,KAAK,CAAC,CAC/C;AAACyJ,0BAAAvL,IAAAK,KAAA4F,aAAAiF,QAAAlL,cAAAA,IAAAK,IAAAkL,KAAA;AAAAC,0BAAAxL,IAAAO,KAAAD,UAAA4K,QAAAlL,IAAAO,IAAAiL,KAAA;AAAAE,0BAAA1L,IAAAuF,KAAAjF,UAAA8K,QAAApL,IAAAuF,IAAAmG,KAAA;AAAA1L,uBAAAA;AAAAA,cAAAA,GAAA;AAAA,gBAAAK,GAAAG;AAAAA,gBAAAD,GAAAC;AAAAA,gBAAA+E,GAAA/E;AAAAA,cAAAA,CAAA;AAAA0K,qBAAAA;AAAAA,YAAAA,GAAA;AAAA,UAAA;AAAA,SAmBP;AAAAF,eAAAA;AAAAA,MAAAA,GAEL;AAAA,IAAA,IAAA;AAAAjK,WAAA2H,SAAA,MAAA;AAAAkD,UAAAA,OAAA1G,KAGJ7D,MAAAA,CAAAA,CAAAA,YAAY,EAAE2F,cAAc7B,MAAM;AAAA,aAAA,MAAlCyG,KAAA,KAAA,MAAA;AAAA,YAAAC,SAAAC,QAAAC,GAAAA,SAAAF,OAAApM,YAAAuM,SAAAD,OAAAtM,YAAAwM,SAAAD,OAAArM,aAAAuM,SAAAH,OAAApM;AAAAoB,eAAAmL,QASM7K,MAAAA,YAAAA,EAAc2F,cAAc/D,IAAI,CAACnB,UAAe;AAC/C,kBAAA,MAAA;AAAA,gBAAAqK,SAAAhB,QAAAA,GAAAiB,SAAAD,OAAA1M;AAAAuE,mBAAAA,UAIa,MACPtC,YAAYD,SAAAA,MAAeK,MAAMI,KAAK,KAAKJ,MAAMI,EAAE;AAACiK,mBAAAA,QAAAlI,gBASrDxD,cAAY;AAAA,cAAA,IACXO,OAAI;AAAA,uBAAAiD,gBACDK,gBAAc;AAAA,kBAAA,IACbC,KAAE;AAAA,2BAAEzC,MAAM6I;AAAAA,kBAAQ;AAAA,kBAAA,IAClBvI,SAAM;AAAA,2BAAEN,MAAMM;AAAAA,kBAAM;AAAA,kBAAA,IACpBgF,SAAM;AAAA,2BAAEtF,MAAMsF;AAAAA,kBAAM;AAAA,kBACpB9F;AAAAA,gBAAAA,CAAc;AAAA,cAAA;AAAA,cAAA,IAGlBJ,QAAK;AAAA,uBAAA+C,gBAAGO,WAAS;AAAA,kBAAC1C;AAAAA,kBAAcR;AAAAA,gBAAAA,CAAc;AAAA,cAAA;AAAA,cAAA,IAAAL,WAAA;AAAA,oBAAAoL,SAAAtH,QAAA;AAAAhE,uBAAAsL,QAAA,MAEd,GAAGvK,MAAMI,EAAE,EAAE;AAAAnC,uBAAA,MAAAO,UAAA+L,QAAhCjN,OAAO,EAAEkM,OAAO,CAAA;AAAAe,uBAAAA;AAAAA,cAAAA;AAAAA,YAAA,CAAA,GAAA,IAAA;AAAAtM,mBAAAC,CAAA,QAAA;AAAAsM,kBAAAA,QAtBnB,0BAA0BxK,MAAMI,EAAE,IAAEqK,QAIzC1M,KAAGT,OAAO,EAAEqM,SAAS3J,UAAUiF,YAAa,CAAA,CAAC,GAACyF,QAG5C3M,KACLT,SAAS2G,eAAe4F,eAAe7J,KAAK,CAAC,CAC/C;AAACwK,wBAAAtM,IAAAK,KAAA4F,aAAAkG,QAAAnM,cAAAA,IAAAK,IAAAiM,KAAA;AAAAC,wBAAAvM,IAAAO,KAAAD,UAAA6L,QAAAnM,IAAAO,IAAAgM,KAAA;AAAAC,wBAAAxM,IAAAuF,KAAAjF,UAAA8L,QAAApM,IAAAuF,IAAAiH,KAAA;AAAAxM,qBAAAA;AAAAA,YAAAA,GAAA;AAAA,cAAAK,GAAAG;AAAAA,cAAAD,GAAAC;AAAAA,cAAA+E,GAAA/E;AAAAA,YAAAA,CAAA;AAAA2L,mBAAAA;AAAAA,UAAAA,GAAA;AAAA,QAAA,CAiBR,CAAC;AAAApM,eAAAC,CAAA,QAAA;AAAAyM,cAAAA,QAtCMrN,SAASsN,wBAAsBC,QAC7BvN,OAASwN,EAAAA,eAAaC,QAEpBzN,OAAAA,EAAS0N;AAAiBL,oBAAAzM,IAAAK,KAAAC,UAAAuL,QAAA7L,IAAAK,IAAAoM,KAAA;AAAAE,oBAAA3M,IAAAO,KAAAD,UAAAyL,QAAA/L,IAAAO,IAAAoM,KAAA;AAAAE,oBAAA7M,IAAAuF,KAAAjF,UAAA2L,QAAAjM,IAAAuF,IAAAsH,KAAA;AAAA7M,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,UAAAK,GAAAG;AAAAA,UAAAD,GAAAC;AAAAA,UAAA+E,GAAA/E;AAAAA,QAAAA,CAAA;AAAAqL,eAAAA;AAAAA,aAsCxC;AAAA,IAAI,GAAA,GAAA,IAAA;AAAA9K,WAAAmH,SAAA,MAAA;AAAA6E,UAAAA,OAAA7H,KAAA;;AAAA,gBAAA,EAET6B,YAAY,OAAKA,iBAAY,MAAZA,mBAAeiG;AAAAA,OAAM;AAAA,aAAA,MAAtCD,KAAA,KAAA,MAAA;AAAAE,YAAAA,SAAAC,WAAAC,SAAAF,OAAAxN,YAAA2N,SAAAD,OAAAxN,aAAA0N,SAAAD,OAAA3N,YAAA6N,SAAAD,OAAA5N,YAAA8N,SAAAD,OAAA7N,YAAA+N,SAAAF,OAAA3N,aAAA8N,SAAAD,OAAA/N,YAAAiO,SAAAD,OAAA9N,aAAAgO,SAAAD,OAAAjO,YAAAmO,SAAAJ,OAAA7N,aAAAkO,SAAAD,OAAAnO,YAAAqO,SAAAD,OAAAlO,aAAAoO,SAAAH,OAAAjO,aAAAqO,SAAAD,OAAAtO,YAAAwO,SAAAD,OAAArO,aAAAuO,SAAAd,OAAAzN,aAAAwO,SAAAD,OAAAvO;AAAAoB,eAAAwM,SAAA,MAAA;AAAAa,cAAAA,OAAAlJ,KAYY6B,MAAAA;;AAAAA,oBAAAA,IAAAA,iBAAY,MAAZA,mBAAeiG,YAAW,eAC3BjG,uBAAAA,mBAAesH;AAAAA,WAAU;AAAA,iBADxBD,MAAAA;;AAAAA,wBAEG,IAAA,cACArH,iBAAeiG,MAAfjG,mBAAeiG;AAAAA;AAAAA,QAAAA,IAAM;AAAAjM,eAAA4M,QAAA;;AAMlB5G,mCAAY,MAAZA,mBAAe7E;AAAAA,SAAE;AAAAnB,eAAA+M,SAAA,MAAA;AAAA,cAAAQ,OAAApJ,KAMvB7D,MAAAA;;AAAAA,oBAAAA,GAAAA,iBAAcQ,EAAAA,mBAAdR,mBAA8BU,KAC7B,CAACC,MAAWA;;AAAAA,uBAAEE,SAAO6E,MAAAA,YAAY,MAAZA,gBAAAA,IAAe7E;AAAAA;AAAAA,WACrC;AAAA,iBAAA,MAFAoM,KAAA,IAGG,YACAjN,cAAcM,QAAQI,KAClB,CAACC,MAAWA;;AAAAA,qBAAEE,SAAO6E,iBAAe7E,MAAf6E,mBAAe7E;AAAAA,WACtC,IACA,WACA;AAAA,QAAA,IAAQ;AAAAnB,eAAAkN,SAAA,MAAA;AAAA,cAAAM,OAAArJ,KAAA,MAAA;;AAAA,oBAAA,GAMb6B,iBAAAA,MAAAA,mBAAeyH;AAAAA,WAAS;AAAA,iBAAA,MAAxBD;;AAAAA,wBACG,IAAA,IAAIE,MAAK1H,uBAAAA,mBAAeyH,SAAS,EAAEE,mBAAAA,IACnC;AAAA;AAAA,QAAA,IAAK;AAAA3N,eAAAkM,SAAA,MAAA;AAAA,cAAA0B,OAAAzJ,KAKhB4C,MAAAA,CAAAA,CAAAA,uBAAuB;AAAA,iBAAA,MAAvB6G,SAAA,EAAA,MAAA;AAAA,gBAAAC,SAAAC,SAAA;AAAA9O,mBAAA,MAAAO,UAAAsO,QAEexP,OAAO,EAAEwN,aAAa,CAAA;AAAAgC,mBAAAA;AAAAA,UAAA,GAAA,IAAA,MAAA;AAAA,gBAAAE,SAAAzJ,QAAA;AAAAyJ,mBAAAA,QAAA7K,gBAE/ByF,UAAQ;AAAA,cACPC,OAAK;AAAA,cACLC,OAAO9B;AAAAA,cACP+B,iBAAiB,CAAA;AAAA,YAAC,CAAC,CAAA;AAAA9J,mBAAA,MAAAO,UAAAwO,QAJX1P,OAAO,EAAE2P,cAAc,CAAA;AAAAD,mBAAAA;AAAAA,UAAA,GAAA,CAAA,IAQnC;AAAA,QAAI,GAAA,GAAAZ,MAAA;AAAAC,eAAAA,QAAAlK,gBAGLyF,UAAQ;AAAA,UACPC,OAAK;AAAA,UACLC,OAAO5B;AAAAA,UACP6B,iBAAiB,CAAA;AAAA,QAAC,CAAC,CAAA;AAAA9J,eAAAC,CAAA,QAAA;;AAAAgP,cAAAA,QAhEb5P,SAAS6P,gBAAcC,QACrB9P,OAASwN,EAAAA,eAAauC,QAEpB/P,OAAAA,EAASgQ,cAAYC,QAEtBjQ,SAASkQ,aACdvI,iBAAAA,MAAAA,mBAAeiG,SACfjG,iBAAesH,MAAftH,mBAAesH,UACjB,GAACkB,QASSnQ,OAAO,EAAEoQ,uBAAqBC,QAE5BrQ,SAASsQ,kBAAgBC,QAI3BvQ,SAASoQ,uBAAqBI,QAE5BxQ,OAAO,EAAEsQ,kBAAgBG,QAY3BzQ,SAASoQ,uBAAqBM,QAE5B1Q,OAASsQ,EAAAA,kBAAgBK,QAoB/B3Q,OAAAA,EAASwN,eAAaoD,QACtB5Q,OAAS2P,EAAAA;AAAcC,oBAAAhP,IAAAK,KAAAC,UAAA2M,QAAAjN,IAAAK,IAAA2O,KAAA;AAAAE,oBAAAlP,IAAAO,KAAAD,UAAA6M,QAAAnN,IAAAO,IAAA2O,KAAA;AAAAC,oBAAAnP,IAAAuF,KAAAjF,UAAA+M,QAAArN,IAAAuF,IAAA4J,KAAA;AAAAE,oBAAArP,IAAAiQ,KAAA3P,UAAAgN,QAAAtN,IAAAiQ,IAAAZ,KAAA;AAAAE,oBAAAvP,IAAAkQ,KAAA5P,UAAAkN,QAAAxN,IAAAkQ,IAAAX,KAAA;AAAAE,oBAAAzP,IAAAmQ,KAAA7P,UAAAoN,QAAA1N,IAAAmQ,IAAAV,KAAA;AAAAE,oBAAA3P,IAAAoQ,KAAA9P,UAAAsN,QAAA5N,IAAAoQ,IAAAT,KAAA;AAAAC,oBAAA5P,IAAAqQ,KAAA/P,UAAAwN,QAAA9N,IAAAqQ,IAAAT,KAAA;AAAAC,oBAAA7P,IAAAsC,KAAAhC,UAAAyN,QAAA/N,IAAAsC,IAAAuN,KAAA;AAAAC,oBAAA9P,IAAAgC,KAAA1B,UAAA2N,QAAAjO,IAAAgC,IAAA8N,KAAA;AAAAC,oBAAA/P,IAAAsQ,KAAAhQ,UAAA4N,QAAAlO,IAAAsQ,IAAAP,KAAA;AAAAC,oBAAAhQ,IAAAuQ,KAAAjQ,UAAA6N,QAAAnO,IAAAuQ,IAAAP,KAAA;AAAAhQ,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,UAAAK,GAAAG;AAAAA,UAAAD,GAAAC;AAAAA,UAAA+E,GAAA/E;AAAAA,UAAAyP,GAAAzP;AAAAA,UAAA0P,GAAA1P;AAAAA,UAAA2P,GAAA3P;AAAAA,UAAA4P,GAAA5P;AAAAA,UAAA6P,GAAA7P;AAAAA,UAAA8B,GAAA9B;AAAAA,UAAAwB,GAAAxB;AAAAA,UAAA8P,GAAA9P;AAAAA,UAAA+P,GAAA/P;AAAAA,QAAAA,CAAA;AAAAyM,eAAAA;AAAAA,aAQnC;AAAA,IAAI,GAAA,GAAA,IAAA;AAAAlM,WAAAmH,SAAA,MAAA;AAAA,UAAAsI,OAAAtL,KACP+B,MAAAA,CAAAA,CAAAA,WAAW;AAAA,aAAA,MAAXuJ,KAAA,KAAA,MAAA;AAAAC,YAAAA,SAAAC,YAAAC,SAAAF,OAAAhR;AAAAkR,eAAAlR;AAAAmR,YAAAA,SAAAD,OAAAhR;AAAAoB,eAAA4P,QAIM,OAAOE,cAAc,eAAW,MAAA;AAAA,cAAAC,SAAAC,SAAA;AAAAD,iBAAAA,QAAA7M,gBAE5B+M,YAAU;AAAA,YACTC,UAAUA,MAAM;AACR7J,oBAAAA,SAAS/F,cAAc8F,SAASC;AAC/B8J,qBAAAA,KAAKC,UAAU/J,MAAM;AAAA,YAAA;AAAA,UAC9B,CAAC,CAAA;AAAA0J,iBAAAA;AAAAA,QAAAA,GAGH,IAAA,MAAI,IAAA;AAAAF,eAAAA,QAAA3M,gBAGPyF,UAAQ;AAAA,UACPE,OAAO3B;AAAAA,UAAmB,IAC1B4B,kBAAe;AAAE9G,mBAAAA,OAAOmE,KACtB7F,cAAc8F,SAASC,MACzB,EAAEgK,OAAO,CAACC,KAAUC,SAAS;AACvBA,kBAAAA,IAAI,IAAI,CAAC;AACND,qBAAAA;AAAAA,YACT,GAAG,EAAE;AAAA,UAAA;AAAA,QAAC,CAAA,CAAA;AAAAtR,eAAAC,CAAA,QAAA;AAAAuR,cAAAA,QAtBAnS,SAASoS,iBAAeC,QACtBrS,OAASwN,EAAAA,eAAa8E,QAatBtS,OAAAA,EAAS2P;AAAcwC,oBAAAvR,IAAAK,KAAAC,UAAAmQ,QAAAzQ,IAAAK,IAAAkR,KAAA;AAAAE,oBAAAzR,IAAAO,KAAAD,UAAAqQ,QAAA3Q,IAAAO,IAAAkR,KAAA;AAAAC,oBAAA1R,IAAAuF,KAAAjF,UAAAsQ,QAAA5Q,IAAAuF,IAAAmM,KAAA;AAAA1R,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,UAAAK,GAAAG;AAAAA,UAAAD,GAAAC;AAAAA,UAAA+E,GAAA/E;AAAAA,QAAAA,CAAA;AAAAiQ,eAAAA;AAAAA,aAYnC;AAAA,IAAI,GAAA,GAAA,IAAA;AAAA1Q,WAAAC,CAAA,QAAA;AAAA,UAAA2R,OA1SCvS,SAASwS,eAAaC,OAcpBzS,SAAS0S,mBAAiBC,OAWzB3S,OAAO,EAAE4S,gBAAcC,OACrB7S,SAAS8S,KAAGC,OAWZ/S,SAASgT,yBAAuBC,OAC9BjT,SAASkT,gBAAcC,QAkB3BnT,SAASoT,iBAAeC,QACtBrT,OAAO,EAAEsT,kBAAgBC,QACvBvT,SAASwN,eAAagG,QAQtBxT,SAAS2P,gBAAc8D,QAQvBzT,OAAO,EAAEwN,eAAakG,QACpB1T,SAAS2T,oBAAkBC,QAMzB,CAACpM,eAAaqM,QACjBpT,KACLT,OAAO,EAAE8T,sBAAsB,CAACtM,eAAe,IAAI,CACrD,GAACuM,QASSvM,YAAAA,GAAawM,QAChBvT,KACLT,OAAO,EAAE8T,sBAAsB,CAAC,CAACtM,eAAe,KAAK,CACvD,GAACyM,QAKOjU,SAAS0N,mBAAiBwG,QAI5BzT,KAAGT,SAASmU,eAAe;AAAC5B,eAAA3R,IAAAK,KAAAC,UAAA8H,QAAApI,IAAAK,IAAAsR,IAAA;AAAAE,eAAA7R,IAAAO,KAAA0F,aAAAoC,QAAArI,SAAAA,IAAAO,IAAAsR,IAAA;AAAAE,eAAA/R,IAAAuF,KAAAjF,UAAAgI,QAAAtI,IAAAuF,IAAAwM,IAAA;AAAAE,eAAAjS,IAAAiQ,KAAA3P,UAAAiI,QAAAvI,IAAAiQ,IAAAgC,IAAA;AAAAE,eAAAnS,IAAAkQ,KAAA5P,UAAAkI,QAAAxI,IAAAkQ,IAAAiC,IAAA;AAAAE,eAAArS,IAAAmQ,KAAA7P,UAAAmI,QAAAzI,IAAAmQ,IAAAkC,IAAA;AAAAE,gBAAAvS,IAAAoQ,KAAA9P,UAAAoI,QAAA1I,IAAAoQ,IAAAmC,KAAA;AAAAE,gBAAAzS,IAAAqQ,KAAA/P,UAAAqI,QAAA3I,IAAAqQ,IAAAoC,KAAA;AAAAE,gBAAA3S,IAAAsC,KAAAhC,UAAAsI,QAAA5I,IAAAsC,IAAAqQ,KAAA;AAAAC,gBAAA5S,IAAAgC,KAAA1B,UAAAuI,QAAA7I,IAAAgC,IAAA4Q,KAAA;AAAAC,gBAAA7S,IAAAsQ,KAAAhQ,UAAAyI,QAAA/I,IAAAsQ,IAAAuC,KAAA;AAAAC,gBAAA9S,IAAAuQ,KAAAjQ,UAAA0I,QAAAhJ,IAAAuQ,IAAAuC,KAAA;AAAAE,gBAAAhT,IAAAwT,MAAAvK,OAAAwK,WAAAzT,IAAAwT,IAAAR;AAAAC,gBAAAjT,IAAA0T,KAAApT,UAAA2I,QAAAjJ,IAAA0T,IAAAT,KAAA;AAAAE,gBAAAnT,IAAAkD,MAAAgG,OAAAuK,WAAAzT,IAAAkD,IAAAiQ;AAAAC,gBAAApT,IAAA2T,KAAArT,UAAA4I,QAAAlJ,IAAA2T,IAAAP,KAAA;AAAAC,gBAAArT,IAAA4T,KAAAtT,UAAA6I,QAAAnJ,IAAA4T,IAAAP,KAAA;AAAAC,gBAAAtT,IAAA6T,KAAAvT,UAAA8I,QAAApJ,IAAA6T,IAAAP,KAAA;AAAAtT,aAAAA;AAAAA,IAAAA,GAAA;AAAA,MAAAK,GAAAG;AAAAA,MAAAD,GAAAC;AAAAA,MAAA+E,GAAA/E;AAAAA,MAAAyP,GAAAzP;AAAAA,MAAA0P,GAAA1P;AAAAA,MAAA2P,GAAA3P;AAAAA,MAAA4P,GAAA5P;AAAAA,MAAA6P,GAAA7P;AAAAA,MAAA8B,GAAA9B;AAAAA,MAAAwB,GAAAxB;AAAAA,MAAA8P,GAAA9P;AAAAA,MAAA+P,GAAA/P;AAAAA,MAAAgT,GAAAhT;AAAAA,MAAAkT,GAAAlT;AAAAA,MAAA0C,GAAA1C;AAAAA,MAAAmT,GAAAnT;AAAAA,MAAAoT,GAAApT;AAAAA,MAAAqT,GAAArT;AAAAA,IAAAA,CAAA;AAAA0H,WAAAA;AAAAA,EAAAA,GAAA;AAoMlD;AAEF,SAAS8I,WAAW;AAAA,EAAEC;AAAqC,GAAG;AAC5D,QAAM,CAAC6C,QAAQC,SAAS,IAAIC,aAAa,KAAK;AAE9C,MAAIC,YAAkD;AAEtD,QAAMC,aAAa,YAAY;;AAE7B,QAAI,OAAOrD,cAAc,eAAe,GAACA,eAAUsD,cAAVtD,mBAAqBuD,YAAW;AACvEC,cAAQC,KAAK,qDAAqD;AAClE;AAAA,IAAA;AAEE,QAAA;AACF,YAAM1K,QAAQqH,SAAS;AACjBJ,YAAAA,UAAUsD,UAAUC,UAAUxK,KAAK;AACzCmK,gBAAU,IAAI;AACVE,UAAAA,wBAAwBA,SAAS;AACrCA,kBAAYM,WAAW,MAAMR,UAAU,KAAK,GAAG,IAAI;AAAA,aAC5C1T,GAAG;AACFuC,cAAAA,MAAM,4CAA4CvC,CAAC;AAAA,IAAA;AAAA,EAE/D;AAEAmU,YAAU,MAAM;AACVP,QAAAA,wBAAwBA,SAAS;AAAA,EAAA,CACtC;AAED,UAAA,MAAA;AAAA,QAAAQ,SAAAC,SAAA;AAAAD,WAAAzQ,UAIakQ;AAAUnT,WAAA0T,QAIlBX,MAAAA,OAAO,IAAI,MAAM,IAAI;AAAA/T,WAAA,MAAAkG,aAAAwO,QAAA,SAFfX,WAAW,YAAY,MAAM,CAAA;AAAAW,WAAAA;AAAAA,EAAAA,GAAA;AAK1C;AAE8CE,eAAA,CAAA,SAAA,WAAA,CAAA;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { clsx as cx } from 'clsx'
|
|
2
2
|
import { default as invariant } from 'tiny-invariant'
|
|
3
3
|
import { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'
|
|
4
|
-
import { Show, createMemo } from 'solid-js'
|
|
4
|
+
import { Show, createMemo, createSignal, onCleanup } from 'solid-js'
|
|
5
5
|
import { useDevtoolsOnClose } from './context'
|
|
6
6
|
import { useStyles } from './useStyles'
|
|
7
7
|
import useLocalStorage from './useLocalStorage'
|
|
@@ -611,7 +611,19 @@ export const BaseTanStackRouterDevtoolsPanel =
|
|
|
611
611
|
) : null}
|
|
612
612
|
{hasSearch() ? (
|
|
613
613
|
<div class={styles().fourthContainer}>
|
|
614
|
-
<div class={styles().detailsHeader}>
|
|
614
|
+
<div class={styles().detailsHeader}>
|
|
615
|
+
<span>Search Params</span>
|
|
616
|
+
{typeof navigator !== 'undefined' ? (
|
|
617
|
+
<span style="margin-left: 0.5rem;">
|
|
618
|
+
<CopyButton
|
|
619
|
+
getValue={() => {
|
|
620
|
+
const search = routerState().location.search
|
|
621
|
+
return JSON.stringify(search)
|
|
622
|
+
}}
|
|
623
|
+
/>
|
|
624
|
+
</span>
|
|
625
|
+
) : null}
|
|
626
|
+
</div>
|
|
615
627
|
<div class={styles().detailsContent}>
|
|
616
628
|
<Explorer
|
|
617
629
|
value={locationSearchValue}
|
|
@@ -629,4 +641,43 @@ export const BaseTanStackRouterDevtoolsPanel =
|
|
|
629
641
|
)
|
|
630
642
|
}
|
|
631
643
|
|
|
644
|
+
function CopyButton({ getValue }: { getValue: () => string }) {
|
|
645
|
+
const [copied, setCopied] = createSignal(false)
|
|
646
|
+
|
|
647
|
+
let timeoutId: ReturnType<typeof setTimeout> | null = null
|
|
648
|
+
|
|
649
|
+
const handleCopy = async () => {
|
|
650
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
651
|
+
if (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {
|
|
652
|
+
console.warn('TanStack Router Devtools: Clipboard API unavailable')
|
|
653
|
+
return
|
|
654
|
+
}
|
|
655
|
+
try {
|
|
656
|
+
const value = getValue()
|
|
657
|
+
await navigator.clipboard.writeText(value)
|
|
658
|
+
setCopied(true)
|
|
659
|
+
if (timeoutId) clearTimeout(timeoutId)
|
|
660
|
+
timeoutId = setTimeout(() => setCopied(false), 2500)
|
|
661
|
+
} catch (e) {
|
|
662
|
+
console.error('TanStack Router Devtools: Failed to copy', e)
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
onCleanup(() => {
|
|
667
|
+
if (timeoutId) clearTimeout(timeoutId)
|
|
668
|
+
})
|
|
669
|
+
|
|
670
|
+
return (
|
|
671
|
+
<button
|
|
672
|
+
type="button"
|
|
673
|
+
style="cursor: pointer;"
|
|
674
|
+
onClick={handleCopy}
|
|
675
|
+
aria-label="Copy value to clipboard"
|
|
676
|
+
title={copied() ? 'Copied!' : 'Copy'}
|
|
677
|
+
>
|
|
678
|
+
{copied() ? '✅' : '📋'}
|
|
679
|
+
</button>
|
|
680
|
+
)
|
|
681
|
+
}
|
|
682
|
+
|
|
632
683
|
export default BaseTanStackRouterDevtoolsPanel
|