@tanstack/react-router-devtools 0.0.1-alpha.4 → 0.0.1-alpha.5

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.
@@ -109,7 +109,7 @@ function chunkArray(array, size) {
109
109
  }
110
110
  const DefaultRenderer = _ref2 => {
111
111
  let {
112
- HandleEntry,
112
+ handleEntry,
113
113
  label,
114
114
  value,
115
115
  subEntries = [],
@@ -131,19 +131,13 @@ const DefaultRenderer = _ref2 => {
131
131
  onClick: () => toggleExpanded()
132
132
  }, /*#__PURE__*/React__namespace.createElement(Expander, {
133
133
  expanded: expanded
134
- }), " ", label, ' ', /*#__PURE__*/React__namespace.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntries.map(entry => /*#__PURE__*/React__namespace.createElement(HandleEntry, {
135
- key: entry.label,
136
- entry: entry
137
- }))) : /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React__namespace.createElement("div", {
134
+ }), " ", label, ' ', /*#__PURE__*/React__namespace.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntries.map((entry, index) => handleEntry(entry))) : /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React__namespace.createElement("div", {
138
135
  key: index
139
136
  }, /*#__PURE__*/React__namespace.createElement(Entry, null, /*#__PURE__*/React__namespace.createElement(LabelButton, {
140
137
  onClick: () => setExpandedPages(old => old.includes(index) ? old.filter(d => d !== index) : [...old, index])
141
138
  }, /*#__PURE__*/React__namespace.createElement(Expander, {
142
139
  expanded: expanded
143
- }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, entries.map(entry => /*#__PURE__*/React__namespace.createElement(HandleEntry, {
144
- key: entry.label,
145
- entry: entry
146
- }))) : null)))) : null) : type === 'function' ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Explorer, {
140
+ }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, entries.map(entry => handleEntry(entry))) : null)))) : null) : type === 'function' ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Explorer, {
147
141
  renderer: renderer,
148
142
  label: /*#__PURE__*/React__namespace.createElement("button", {
149
143
  onClick: refreshValueSnapshot,
@@ -210,15 +204,11 @@ function Explorer(_ref3) {
210
204
 
211
205
  const subEntryPages = chunkArray(subEntries, pageSize);
212
206
  return renderer(_rollupPluginBabelHelpers["extends"]({
213
- HandleEntry: React__namespace.useCallback(_ref5 => {
214
- let {
215
- entry
216
- } = _ref5;
217
- return /*#__PURE__*/React__namespace.createElement(Explorer, _rollupPluginBabelHelpers["extends"]({
218
- value: value,
219
- renderer: renderer
220
- }, rest, entry));
221
- }, [value, renderer]),
207
+ handleEntry: entry => /*#__PURE__*/React__namespace.createElement(Explorer, _rollupPluginBabelHelpers["extends"]({
208
+ key: entry.label,
209
+ value: value,
210
+ renderer: renderer
211
+ }, rest, entry)),
222
212
  type,
223
213
  subEntries,
224
214
  subEntryPages,
@@ -1 +1 @@
1
- {"version":3,"file":"Explorer.js","sources":["../../../../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n HandleEntry: HandleEntryComponent\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n HandleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryComponent = (props: { entry: Entry }) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n HandleEntry: React.useCallback(\n ({ entry }) => (\n <Explorer value={value} renderer={renderer} {...rest} {...entry} />\n ),\n [value, renderer],\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","_extends","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","HandleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","useState","valueSnapshot","setValueSnapshot","undefined","refreshValueSnapshot","String","toLowerCase","map","entry","entries","index","old","includes","filter","d","appearance","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","rest","_objectWithoutPropertiesLoose","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key"],"mappings":"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"}
1
+ {"version":3,"file":"Explorer.js","sources":["../../../../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: HandleEntryFn\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n handleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry, index) => handleEntry(entry))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => handleEntry(entry))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryFn = (entry: Entry) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n handleEntry: (entry) => (\n <Explorer\n key={entry.label}\n value={value}\n renderer={renderer}\n {...rest}\n {...entry}\n />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","_extends","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","handleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","useState","valueSnapshot","setValueSnapshot","undefined","refreshValueSnapshot","String","toLowerCase","map","entry","index","entries","old","includes","filter","d","appearance","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","rest","_objectWithoutPropertiesLoose","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key"],"mappings":"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"}
@@ -278,17 +278,33 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
278
278
  panelProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(props, _excluded4);
279
279
 
280
280
  const router = useRouter();
281
+ const routerExplorerValue = React__default["default"].useMemo(() => {
282
+ const rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(router, _excluded5);
283
+
284
+ return rest;
285
+ }, [router.state]);
286
+ const rerender = React__default["default"].useReducer(() => ({}), {})[1];
281
287
  React__default["default"].useEffect(() => {
282
288
  let interval = setInterval(() => {
283
- router.cleanPreloadCache();
284
- router.notify();
285
- }, 1000);
289
+ router.cleanPreloadCache(); // router.notify()
290
+
291
+ rerender();
292
+ }, 250);
286
293
  return () => {
287
294
  clearInterval(interval);
288
295
  };
289
296
  }, []);
290
297
  const [activeRouteId, setActiveRouteId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveRouteId', '');
291
298
  const activeMatch = (_router$state$matches = router.state.matches) == null ? void 0 : _router$state$matches.find(d => d.routeId === activeRouteId);
299
+ const activeMatchExplorerValue = React__default["default"].useMemo(() => {
300
+ if (!activeMatch) {
301
+ return {};
302
+ }
303
+
304
+ const rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(activeMatch, _excluded6);
305
+
306
+ return rest;
307
+ }, [activeMatch]);
292
308
  return /*#__PURE__*/React__default["default"].createElement(theme.ThemeProvider, {
293
309
  theme: theme.defaultTheme
294
310
  }, /*#__PURE__*/React__default["default"].createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
@@ -354,11 +370,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
354
370
  }
355
371
  }, /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
356
372
  label: "Router",
357
- value: (() => {
358
- const rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(router, _excluded5);
359
-
360
- return rest;
361
- })(),
373
+ value: routerExplorerValue,
362
374
  defaultExpanded: {}
363
375
  })))), /*#__PURE__*/React__default["default"].createElement("div", {
364
376
  style: {
@@ -586,11 +598,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
586
598
  }
587
599
  }, /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
588
600
  label: "Match",
589
- value: (() => {
590
- const rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(activeMatch, _excluded6);
591
-
592
- return rest;
593
- })(),
601
+ value: activeMatchExplorerValue,
594
602
  defaultExpanded: {}
595
603
  }))) : null, /*#__PURE__*/React__default["default"].createElement("div", {
596
604
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sources":["../../../../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\nimport { Router, useRouter, last } from '@tanstack/react-router'\nimport { formatDistanceStrict } from 'date-fns'\n\nimport useLocalStorage from './useLocalStorage'\nimport { getStatusColor, useIsMounted, useSafeState } from './utils'\nimport { Panel, Button, Code, ActivePanel } from './styledComponents'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\n// import { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\nimport Logo from './Logo'\n\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\ninterface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * The position of the TanStack Router logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'footer'.\n */\n containerElement?: string | any\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n useRouter?: () => unknown\n}\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: 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: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n useRouter: () => unknown\n}\n\nconst isServer = typeof window === 'undefined'\n\nexport function TanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'footer',\n useRouter: useRouterImpl = useRouter,\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'tanstackRouterDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number | null>(\n 'tanstackRouterDevtoolsHeight',\n null,\n )\n const [isResolvedOpen, setIsResolvedOpen] = useSafeState(false)\n const [isResizing, setIsResizing] = useSafeState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo?.originalHeight + delta\n\n setDevtoolsHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (ref && isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (ref && !isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n\n return\n }, [isResolvedOpen])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n if (isResolvedOpen) {\n const previousValue = rootRef.current?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef.current?.getBoundingClientRect().height\n if (rootRef.current?.parentElement) {\n rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (\n rootRef.current?.parentElement &&\n typeof previousValue === 'string'\n ) {\n rootRef.current.parentElement.style.paddingBottom = previousValue\n }\n }\n }\n }\n return\n }, [isResolvedOpen])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container ref={rootRef} className=\"TanStackRouterDevtools\">\n <ThemeProvider theme={theme}>\n <TanStackRouterDevtoolsPanel\n ref={panelRef as any}\n {...otherPanelProps}\n useRouter={useRouterImpl}\n style={{\n position: 'fixed',\n bottom: '0',\n right: '0',\n zIndex: 99999,\n width: '100%',\n height: devtoolsHeight ?? 500,\n maxHeight: '90%',\n boxShadow: '0 0 20px rgba(0,0,0,.3)',\n borderTop: `1px solid ${theme.gray}`,\n transformOrigin: 'top',\n // visibility will be toggled after transitions, but set initial state here\n visibility: isOpen ? 'visible' : 'hidden',\n ...panelStyle,\n ...(isResizing\n ? {\n transition: `none`,\n }\n : { transition: `all .2s ease` }),\n ...(isResolvedOpen\n ? {\n opacity: 1,\n pointerEvents: 'all',\n transform: `translateY(0) scale(1)`,\n }\n : {\n opacity: 0,\n pointerEvents: 'none',\n transform: `translateY(15px) scale(1.02)`,\n }),\n }}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n handleDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n {isResolvedOpen ? (\n <Button\n type=\"button\"\n aria-label=\"Close TanStack Router Devtools\"\n {...(otherCloseButtonProps as any)}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick && onCloseClick(e)\n }}\n style={{\n position: 'fixed',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n ...(position === 'top-right'\n ? {\n right: '0',\n }\n : position === 'top-left'\n ? {\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n right: '0',\n }\n : {\n left: '0',\n }),\n ...closeButtonStyle,\n }}\n >\n Close\n </Button>\n ) : null}\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open TanStack Router Devtools\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick && onToggleClick(e)\n }}\n style={{\n appearance: 'none',\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n </button>\n ) : null}\n </Container>\n )\n}\n\nexport const TanStackRouterDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function TanStackRouterDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n useRouter,\n ...panelProps\n } = props\n\n const router = useRouter() as Router\n\n React.useEffect(() => {\n let interval = setInterval(() => {\n router.cleanPreloadCache()\n router.notify()\n }, 1000)\n\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = router.state.matches?.find(\n (d) => d.routeId === activeRouteId,\n )\n\n return (\n <ThemeProvider theme={theme}>\n <Panel ref={ref} className=\"TanStackRouterDevtoolsPanel\" {...panelProps}>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `,\n }}\n />\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n marginBottom: '-4px',\n cursor: 'row-resize',\n zIndex: 100000,\n }}\n onMouseDown={handleDragStart}\n ></div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Logo\n aria-hidden\n style={{\n marginRight: '.5em',\n }}\n />\n <div\n style={{\n marginRight: 'auto',\n fontSize: 'clamp(.8rem, 2vw, 1.3rem)',\n fontWeight: 'bold',\n }}\n >\n TanStack Router{' '}\n <span\n style={{\n fontWeight: 100,\n }}\n >\n Devtools\n </span>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Router\"\n value={(() => {\n const {\n listeners,\n buildLocation,\n mount,\n update,\n buildNext,\n navigate,\n cancelMatches,\n loadLocation,\n cleanPreloadCache,\n loadRoute,\n matchRoutes,\n loadMatches,\n invalidateRoute,\n resolvePath,\n matchRoute,\n buildLink,\n __experimental__createSnapshot,\n destroy,\n ...rest\n } = router\n return rest\n })()}\n defaultExpanded={{}}\n />\n </div>\n </div>\n </div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Current Matches\n </div>\n {router.state.matches.map((match, i) => {\n return (\n <div\n key={match.routeId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n alignItems: 'center',\n background:\n match === activeMatch ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Pending Matches\n </div>\n {router.state.pending?.matches.map((match, i) => {\n return (\n <div\n key={match.routeId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Preloading Matches\n </div>\n {Object.keys(router.preloadCache)\n .filter((key) => {\n const cacheEntry = router.preloadCache[key]!\n return (\n (cacheEntry.match.updatedAt ?? Date.now()) + cacheEntry.maxAge >\n Date.now()\n )\n })\n .map((key, i) => {\n const { match, maxAge } = router.preloadCache[key]!\n\n return (\n <div\n key={match.matchId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.matchId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '.5rem',\n gap: '.3rem',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n <Code>{`${match.matchId}`}</Code>\n </div>\n <span\n style={{\n opacity: '.5',\n }}\n >\n Expires{' '}\n {formatDistanceStrict(\n new Date(),\n new Date((match.updatedAt ?? Date.now()) + maxAge),\n {\n addSuffix: true,\n },\n )}\n </span>\n </div>\n </div>\n )\n })}\n </div>\n\n {activeMatch ? (\n <ActivePanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Match Details\n </div>\n <div>\n <table>\n <tbody>\n <tr>\n <td style={{ opacity: '.5' }}>ID</td>\n <td>\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n {JSON.stringify(activeMatch.matchId, null, 2)}\n </Code>\n </td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Status</td>\n <td>{activeMatch.status}</td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Pending</td>\n <td>{activeMatch.isPending.toString()}</td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Invalid</td>\n <td>{activeMatch.isInvalid.toString()}</td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Last Updated</td>\n <td>\n {activeMatch.updatedAt\n ? new Date(\n activeMatch.updatedAt as number,\n ).toLocaleTimeString()\n : 'N/A'}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Actions\n </div>\n <div\n style={{\n padding: '0.5em',\n }}\n >\n <Button\n type=\"button\"\n onClick={() => {\n router.invalidateRoute(activeMatch as any)\n router.notify()\n }}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => router.reload()}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Match\"\n value={(() => {\n const {\n cancel,\n load,\n router,\n Link,\n MatchRoute,\n buildLink,\n linkProps,\n matchRoute,\n navigate,\n ...rest\n } = activeMatch\n\n return rest\n })()}\n defaultExpanded={{}}\n />\n </div>\n </ActivePanel>\n ) : null}\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.matches)?.loaderData || {})\n .length ? (\n <Explorer\n value={last(router.state.matches)?.loaderData || {}}\n defaultExpanded={Object.keys(\n (last(router.state.matches)?.loaderData as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.matches)?.search || {}).length ? (\n <Explorer\n value={last(router.state.matches)?.search || {}}\n defaultExpanded={Object.keys(\n (last(router.state.matches)?.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n </div>\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["isServer","window","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","useRouter","useRouterImpl","rootRef","React","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","isResolvedOpen","setIsResolvedOpen","useSafeState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","height","pageY","run","moveEvent","delta","newHeight","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","style","visibility","handlePanelTransitionEnd","previousValue","parentElement","paddingBottom","containerHeight","panelStyle","otherPanelProps","closeButtonStyle","onClick","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","_objectWithoutPropertiesLoose","ThemeProvider","theme","_extends","bottom","right","zIndex","width","maxHeight","boxShadow","borderTop","gray","transformOrigin","transition","opacity","pointerEvents","transform","e","Button","margin","left","appearance","background","border","padding","display","fontSize","cursor","top","Logo","TanStackRouterDevtoolsPanel","forwardRef","props","router","interval","setInterval","cleanPreloadCache","notify","clearInterval","activeRouteId","setActiveRouteId","activeMatch","state","matches","find","d","routeId","Panel","__html","backgroundAlt","marginBottom","flex","minHeight","overflow","borderRight","grayAlt","flexDirection","justifyContent","alignItems","marginRight","fontWeight","overflowY","Explorer","rest","map","match","i","borderBottom","undefined","marginLeft","getStatusColor","borderRadius","Code","matchId","marginTop","pending","Object","keys","preloadCache","filter","key","cacheEntry","updatedAt","Date","now","maxAge","gap","formatDistanceStrict","addSuffix","ActivePanel","lineHeight","JSON","stringify","status","isPending","toString","isInvalid","toLocaleTimeString","invalidateRoute","warning","color","inputTextColor","reload","last","loaderData","length","reduce","obj","next","search"],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sources":["../../../../../src/devtools.tsx"],"sourcesContent":["import React from 'react'\nimport { Router, useRouter, last } from '@tanstack/react-router'\nimport { formatDistanceStrict } from 'date-fns'\n\nimport useLocalStorage from './useLocalStorage'\nimport { getStatusColor, useIsMounted, useSafeState } from './utils'\nimport { Panel, Button, Code, ActivePanel } from './styledComponents'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\n// import { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\nimport Logo from './Logo'\n\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\ninterface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n /**\n * The position of the TanStack Router logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'footer'.\n */\n containerElement?: string | any\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n useRouter?: () => unknown\n}\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: 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: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n useRouter: () => unknown\n}\n\nconst isServer = typeof window === 'undefined'\n\nexport function TanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'footer',\n useRouter: useRouterImpl = useRouter,\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'tanstackRouterDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number | null>(\n 'tanstackRouterDevtoolsHeight',\n null,\n )\n const [isResolvedOpen, setIsResolvedOpen] = useSafeState(false)\n const [isResizing, setIsResizing] = useSafeState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo?.originalHeight + delta\n\n setDevtoolsHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (ref && isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (ref && !isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n\n return\n }, [isResolvedOpen])\n\n React[isServer ? 'useEffect' : 'useLayoutEffect'](() => {\n if (isResolvedOpen) {\n const previousValue = rootRef.current?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef.current?.getBoundingClientRect().height\n if (rootRef.current?.parentElement) {\n rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (\n rootRef.current?.parentElement &&\n typeof previousValue === 'string'\n ) {\n rootRef.current.parentElement.style.paddingBottom = previousValue\n }\n }\n }\n }\n return\n }, [isResolvedOpen])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container ref={rootRef} className=\"TanStackRouterDevtools\">\n <ThemeProvider theme={theme}>\n <TanStackRouterDevtoolsPanel\n ref={panelRef as any}\n {...otherPanelProps}\n useRouter={useRouterImpl}\n style={{\n position: 'fixed',\n bottom: '0',\n right: '0',\n zIndex: 99999,\n width: '100%',\n height: devtoolsHeight ?? 500,\n maxHeight: '90%',\n boxShadow: '0 0 20px rgba(0,0,0,.3)',\n borderTop: `1px solid ${theme.gray}`,\n transformOrigin: 'top',\n // visibility will be toggled after transitions, but set initial state here\n visibility: isOpen ? 'visible' : 'hidden',\n ...panelStyle,\n ...(isResizing\n ? {\n transition: `none`,\n }\n : { transition: `all .2s ease` }),\n ...(isResolvedOpen\n ? {\n opacity: 1,\n pointerEvents: 'all',\n transform: `translateY(0) scale(1)`,\n }\n : {\n opacity: 0,\n pointerEvents: 'none',\n transform: `translateY(15px) scale(1.02)`,\n }),\n }}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n handleDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n {isResolvedOpen ? (\n <Button\n type=\"button\"\n aria-label=\"Close TanStack Router Devtools\"\n {...(otherCloseButtonProps as any)}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick && onCloseClick(e)\n }}\n style={{\n position: 'fixed',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n ...(position === 'top-right'\n ? {\n right: '0',\n }\n : position === 'top-left'\n ? {\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n right: '0',\n }\n : {\n left: '0',\n }),\n ...closeButtonStyle,\n }}\n >\n Close\n </Button>\n ) : null}\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open TanStack Router Devtools\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick && onToggleClick(e)\n }}\n style={{\n appearance: 'none',\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n </button>\n ) : null}\n </Container>\n )\n}\n\nexport const TanStackRouterDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function TanStackRouterDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n useRouter,\n ...panelProps\n } = props\n\n const router = useRouter() as Router\n const routerExplorerValue = React.useMemo(() => {\n const {\n listeners,\n buildLocation,\n mount,\n update,\n buildNext,\n navigate,\n cancelMatches,\n loadLocation,\n cleanPreloadCache,\n loadRoute,\n matchRoutes,\n loadMatches,\n invalidateRoute,\n resolvePath,\n matchRoute,\n buildLink,\n __experimental__createSnapshot,\n destroy,\n ...rest\n } = router\n\n return rest\n }, [router.state])\n\n const rerender = React.useReducer(() => ({}), {})[1]\n\n React.useEffect(() => {\n let interval = setInterval(() => {\n router.cleanPreloadCache()\n // router.notify()\n rerender()\n }, 250)\n\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n const [activeRouteId, setActiveRouteId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = router.state.matches?.find(\n (d) => d.routeId === activeRouteId,\n )\n\n const activeMatchExplorerValue = React.useMemo(() => {\n if (!activeMatch) {\n return {}\n }\n\n const {\n cancel,\n load,\n router,\n Link,\n MatchRoute,\n buildLink,\n linkProps,\n matchRoute,\n navigate,\n ...rest\n } = activeMatch\n\n return rest\n }, [activeMatch])\n\n return (\n <ThemeProvider theme={theme}>\n <Panel ref={ref} className=\"TanStackRouterDevtoolsPanel\" {...panelProps}>\n <style\n dangerouslySetInnerHTML={{\n __html: `\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n `,\n }}\n />\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '4px',\n marginBottom: '-4px',\n cursor: 'row-resize',\n zIndex: 100000,\n }}\n onMouseDown={handleDragStart}\n ></div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Logo\n aria-hidden\n style={{\n marginRight: '.5em',\n }}\n />\n <div\n style={{\n marginRight: 'auto',\n fontSize: 'clamp(.8rem, 2vw, 1.3rem)',\n fontWeight: 'bold',\n }}\n >\n TanStack Router{' '}\n <span\n style={{\n fontWeight: 100,\n }}\n >\n Devtools\n </span>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n </div>\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Current Matches\n </div>\n {router.state.matches.map((match, i) => {\n return (\n <div\n key={match.routeId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n alignItems: 'center',\n background:\n match === activeMatch ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Pending Matches\n </div>\n {router.state.pending?.matches.map((match, i) => {\n return (\n <div\n key={match.routeId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.routeId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n marginLeft: '.25rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${match.matchId}`}\n </Code>\n </div>\n )\n })}\n <div\n style={{\n marginTop: '2rem',\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Preloading Matches\n </div>\n {Object.keys(router.preloadCache)\n .filter((key) => {\n const cacheEntry = router.preloadCache[key]!\n return (\n (cacheEntry.match.updatedAt ?? Date.now()) + cacheEntry.maxAge >\n Date.now()\n )\n })\n .map((key, i) => {\n const { match, maxAge } = router.preloadCache[key]!\n\n return (\n <div\n key={match.matchId || i}\n role=\"button\"\n aria-label={`Open match details for ${match.matchId}`}\n onClick={() =>\n setActiveRouteId(\n activeRouteId === match.routeId ? '' : match.routeId,\n )\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n match === activeMatch\n ? 'rgba(255,255,255,.1)'\n : undefined,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n padding: '.5rem',\n gap: '.3rem',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '1.3rem',\n height: '1.3rem',\n background: getStatusColor(match, theme),\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n transition: 'all .2s ease-out',\n }}\n />\n <Code>{`${match.matchId}`}</Code>\n </div>\n <span\n style={{\n opacity: '.5',\n }}\n >\n Expires{' '}\n {formatDistanceStrict(\n new Date(),\n new Date((match.updatedAt ?? Date.now()) + maxAge),\n {\n addSuffix: true,\n },\n )}\n </span>\n </div>\n </div>\n )\n })}\n </div>\n\n {activeMatch ? (\n <ActivePanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Match Details\n </div>\n <div>\n <table>\n <tbody>\n <tr>\n <td style={{ opacity: '.5' }}>ID</td>\n <td>\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n {JSON.stringify(activeMatch.matchId, null, 2)}\n </Code>\n </td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Status</td>\n <td>{activeMatch.status}</td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Pending</td>\n <td>{activeMatch.isPending.toString()}</td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Invalid</td>\n <td>{activeMatch.isInvalid.toString()}</td>\n </tr>\n <tr>\n <td style={{ opacity: '.5' }}>Last Updated</td>\n <td>\n {activeMatch.updatedAt\n ? new Date(\n activeMatch.updatedAt as number,\n ).toLocaleTimeString()\n : 'N/A'}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Actions\n </div>\n <div\n style={{\n padding: '0.5em',\n }}\n >\n <Button\n type=\"button\"\n onClick={() => {\n router.invalidateRoute(activeMatch as any)\n router.notify()\n }}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => router.reload()}\n style={{\n background: theme.gray,\n }}\n >\n Reload\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Match\"\n value={activeMatchExplorerValue}\n defaultExpanded={{}}\n />\n </div>\n </ActivePanel>\n ) : null}\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Loader Data\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.matches)?.loaderData || {})\n .length ? (\n <Explorer\n value={last(router.state.matches)?.loaderData || {}}\n defaultExpanded={Object.keys(\n (last(router.state.matches)?.loaderData as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Search Params\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n {Object.keys(last(router.state.matches)?.search || {}).length ? (\n <Explorer\n value={last(router.state.matches)?.search || {}}\n defaultExpanded={Object.keys(\n (last(router.state.matches)?.search as {}) || {},\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n ) : (\n <em style={{ opacity: 0.5 }}>{'{ }'}</em>\n )}\n </div>\n </div>\n </Panel>\n </ThemeProvider>\n )\n})\n"],"names":["isServer","window","TanStackRouterDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","useRouter","useRouterImpl","rootRef","React","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","isResolvedOpen","setIsResolvedOpen","useSafeState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","height","pageY","run","moveEvent","delta","newHeight","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","style","visibility","handlePanelTransitionEnd","previousValue","parentElement","paddingBottom","containerHeight","panelStyle","otherPanelProps","closeButtonStyle","onClick","onCloseClick","otherCloseButtonProps","toggleButtonStyle","onToggleClick","otherToggleButtonProps","_objectWithoutPropertiesLoose","ThemeProvider","theme","_extends","bottom","right","zIndex","width","maxHeight","boxShadow","borderTop","gray","transformOrigin","transition","opacity","pointerEvents","transform","e","Button","margin","left","appearance","background","border","padding","display","fontSize","cursor","top","Logo","TanStackRouterDevtoolsPanel","forwardRef","props","router","routerExplorerValue","useMemo","rest","state","rerender","useReducer","interval","setInterval","cleanPreloadCache","clearInterval","activeRouteId","setActiveRouteId","activeMatch","matches","find","d","routeId","activeMatchExplorerValue","Panel","__html","backgroundAlt","marginBottom","flex","minHeight","overflow","borderRight","grayAlt","flexDirection","justifyContent","alignItems","marginRight","fontWeight","overflowY","Explorer","map","match","i","borderBottom","undefined","marginLeft","getStatusColor","borderRadius","Code","matchId","marginTop","pending","Object","keys","preloadCache","filter","key","cacheEntry","updatedAt","Date","now","maxAge","gap","formatDistanceStrict","addSuffix","ActivePanel","lineHeight","JSON","stringify","status","isPending","toString","isInvalid","toLocaleTimeString","invalidateRoute","notify","warning","color","inputTextColor","reload","last","loaderData","length","reduce","obj","next","search"],"mappings":"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"}
@@ -1235,7 +1235,7 @@ function chunkArray(array, size) {
1235
1235
  }
1236
1236
  const DefaultRenderer = _ref2 => {
1237
1237
  let {
1238
- HandleEntry,
1238
+ handleEntry,
1239
1239
  label,
1240
1240
  value,
1241
1241
  subEntries = [],
@@ -1257,19 +1257,13 @@ const DefaultRenderer = _ref2 => {
1257
1257
  onClick: () => toggleExpanded()
1258
1258
  }, /*#__PURE__*/React.createElement(Expander, {
1259
1259
  expanded: expanded
1260
- }), " ", label, ' ', /*#__PURE__*/React.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React.createElement(SubEntries, null, subEntries.map(entry => /*#__PURE__*/React.createElement(HandleEntry, {
1261
- key: entry.label,
1262
- entry: entry
1263
- }))) : /*#__PURE__*/React.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React.createElement("div", {
1260
+ }), " ", label, ' ', /*#__PURE__*/React.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React.createElement(SubEntries, null, subEntries.map((entry, index) => handleEntry(entry))) : /*#__PURE__*/React.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React.createElement("div", {
1264
1261
  key: index
1265
1262
  }, /*#__PURE__*/React.createElement(Entry, null, /*#__PURE__*/React.createElement(LabelButton, {
1266
1263
  onClick: () => setExpandedPages(old => old.includes(index) ? old.filter(d => d !== index) : [...old, index])
1267
1264
  }, /*#__PURE__*/React.createElement(Expander, {
1268
1265
  expanded: expanded
1269
- }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React.createElement(SubEntries, null, entries.map(entry => /*#__PURE__*/React.createElement(HandleEntry, {
1270
- key: entry.label,
1271
- entry: entry
1272
- }))) : null)))) : null) : type === 'function' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Explorer, {
1266
+ }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React.createElement(SubEntries, null, entries.map(entry => handleEntry(entry))) : null)))) : null) : type === 'function' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Explorer, {
1273
1267
  renderer: renderer,
1274
1268
  label: /*#__PURE__*/React.createElement("button", {
1275
1269
  onClick: refreshValueSnapshot,
@@ -1336,15 +1330,11 @@ function Explorer(_ref3) {
1336
1330
 
1337
1331
  const subEntryPages = chunkArray(subEntries, pageSize);
1338
1332
  return renderer(_extends({
1339
- HandleEntry: React.useCallback(_ref5 => {
1340
- let {
1341
- entry
1342
- } = _ref5;
1343
- return /*#__PURE__*/React.createElement(Explorer, _extends({
1344
- value: value,
1345
- renderer: renderer
1346
- }, rest, entry));
1347
- }, [value, renderer]),
1333
+ handleEntry: entry => /*#__PURE__*/React.createElement(Explorer, _extends({
1334
+ key: entry.label,
1335
+ value: value,
1336
+ renderer: renderer
1337
+ }, rest, entry)),
1348
1338
  type,
1349
1339
  subEntries,
1350
1340
  subEntryPages,
@@ -1640,17 +1630,33 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
1640
1630
  panelProps = _objectWithoutPropertiesLoose(props, _excluded4);
1641
1631
 
1642
1632
  const router = useRouter();
1633
+ const routerExplorerValue = React__default.useMemo(() => {
1634
+ const rest = _objectWithoutPropertiesLoose(router, _excluded5);
1635
+
1636
+ return rest;
1637
+ }, [router.state]);
1638
+ const rerender = React__default.useReducer(() => ({}), {})[1];
1643
1639
  React__default.useEffect(() => {
1644
1640
  let interval = setInterval(() => {
1645
- router.cleanPreloadCache();
1646
- router.notify();
1647
- }, 1000);
1641
+ router.cleanPreloadCache(); // router.notify()
1642
+
1643
+ rerender();
1644
+ }, 250);
1648
1645
  return () => {
1649
1646
  clearInterval(interval);
1650
1647
  };
1651
1648
  }, []);
1652
1649
  const [activeRouteId, setActiveRouteId] = useLocalStorage('tanstackRouterDevtoolsActiveRouteId', '');
1653
1650
  const activeMatch = (_router$state$matches = router.state.matches) == null ? void 0 : _router$state$matches.find(d => d.routeId === activeRouteId);
1651
+ const activeMatchExplorerValue = React__default.useMemo(() => {
1652
+ if (!activeMatch) {
1653
+ return {};
1654
+ }
1655
+
1656
+ const rest = _objectWithoutPropertiesLoose(activeMatch, _excluded6);
1657
+
1658
+ return rest;
1659
+ }, [activeMatch]);
1654
1660
  return /*#__PURE__*/React__default.createElement(ThemeProvider, {
1655
1661
  theme: defaultTheme
1656
1662
  }, /*#__PURE__*/React__default.createElement(Panel, _extends({
@@ -1716,11 +1722,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
1716
1722
  }
1717
1723
  }, /*#__PURE__*/React__default.createElement(Explorer, {
1718
1724
  label: "Router",
1719
- value: (() => {
1720
- const rest = _objectWithoutPropertiesLoose(router, _excluded5);
1721
-
1722
- return rest;
1723
- })(),
1725
+ value: routerExplorerValue,
1724
1726
  defaultExpanded: {}
1725
1727
  })))), /*#__PURE__*/React__default.createElement("div", {
1726
1728
  style: {
@@ -1948,11 +1950,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(funct
1948
1950
  }
1949
1951
  }, /*#__PURE__*/React__default.createElement(Explorer, {
1950
1952
  label: "Match",
1951
- value: (() => {
1952
- const rest = _objectWithoutPropertiesLoose(activeMatch, _excluded6);
1953
-
1954
- return rest;
1955
- })(),
1953
+ value: activeMatchExplorerValue,
1956
1954
  defaultExpanded: {}
1957
1955
  }))) : null, /*#__PURE__*/React__default.createElement("div", {
1958
1956
  style: {