@tanstack/react-query-devtools 4.24.9 → 5.0.0-alpha.0

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.
Files changed (86) hide show
  1. package/build/lib/Explorer.d.ts +4 -4
  2. package/build/lib/Explorer.esm.js +5 -15
  3. package/build/lib/Explorer.esm.js.map +1 -1
  4. package/build/lib/Explorer.js +11 -25
  5. package/build/lib/Explorer.js.map +1 -1
  6. package/build/lib/Explorer.mjs +5 -15
  7. package/build/lib/Explorer.mjs.map +1 -1
  8. package/build/lib/Logo.d.ts +0 -1
  9. package/build/lib/Logo.esm.js.map +1 -1
  10. package/build/lib/Logo.js +5 -6
  11. package/build/lib/Logo.js.map +1 -1
  12. package/build/lib/Logo.mjs.map +1 -1
  13. package/build/lib/__tests__/devtools.test.d.ts +0 -5
  14. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js +0 -2
  15. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +1 -1
  16. package/build/lib/_virtual/_rollupPluginBabelHelpers.js +1 -5
  17. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  18. package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs +0 -2
  19. package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -1
  20. package/build/lib/devtools.d.ts +12 -4
  21. package/build/lib/devtools.esm.js +73 -108
  22. package/build/lib/devtools.esm.js.map +1 -1
  23. package/build/lib/devtools.js +95 -133
  24. package/build/lib/devtools.js.map +1 -1
  25. package/build/lib/devtools.mjs +73 -108
  26. package/build/lib/devtools.mjs.map +1 -1
  27. package/build/lib/index.d.ts +2 -2
  28. package/build/lib/index.esm.js.map +1 -1
  29. package/build/lib/index.js +0 -2
  30. package/build/lib/index.js.map +1 -1
  31. package/build/lib/index.mjs.map +1 -1
  32. package/build/lib/index.prod.d.ts +2 -2
  33. package/build/lib/index.prod.esm.js +121 -176
  34. package/build/lib/index.prod.esm.js.map +1 -1
  35. package/build/lib/index.prod.js +126 -187
  36. package/build/lib/index.prod.js.map +1 -1
  37. package/build/lib/index.prod.mjs +121 -176
  38. package/build/lib/index.prod.mjs.map +1 -1
  39. package/build/lib/screenreader.d.ts +0 -1
  40. package/build/lib/screenreader.esm.js.map +1 -1
  41. package/build/lib/screenreader.js +4 -5
  42. package/build/lib/screenreader.js.map +1 -1
  43. package/build/lib/screenreader.mjs.map +1 -1
  44. package/build/lib/styledComponents.esm.js +17 -16
  45. package/build/lib/styledComponents.esm.js.map +1 -1
  46. package/build/lib/styledComponents.js +17 -18
  47. package/build/lib/styledComponents.js.map +1 -1
  48. package/build/lib/styledComponents.mjs +17 -16
  49. package/build/lib/styledComponents.mjs.map +1 -1
  50. package/build/lib/theme.esm.js.map +1 -1
  51. package/build/lib/theme.js +4 -7
  52. package/build/lib/theme.js.map +1 -1
  53. package/build/lib/theme.mjs.map +1 -1
  54. package/build/lib/useLocalStorage.esm.js +0 -7
  55. package/build/lib/useLocalStorage.esm.js.map +1 -1
  56. package/build/lib/useLocalStorage.js +4 -12
  57. package/build/lib/useLocalStorage.js.map +1 -1
  58. package/build/lib/useLocalStorage.mjs +0 -7
  59. package/build/lib/useLocalStorage.mjs.map +1 -1
  60. package/build/lib/useMediaQuery.esm.js +6 -6
  61. package/build/lib/useMediaQuery.esm.js.map +1 -1
  62. package/build/lib/useMediaQuery.js +10 -11
  63. package/build/lib/useMediaQuery.js.map +1 -1
  64. package/build/lib/useMediaQuery.mjs +6 -6
  65. package/build/lib/useMediaQuery.mjs.map +1 -1
  66. package/build/lib/utils.esm.js +20 -22
  67. package/build/lib/utils.esm.js.map +1 -1
  68. package/build/lib/utils.js +24 -32
  69. package/build/lib/utils.js.map +1 -1
  70. package/build/lib/utils.mjs +20 -22
  71. package/build/lib/utils.mjs.map +1 -1
  72. package/build/umd/index.development.js +124 -439
  73. package/build/umd/index.development.js.map +1 -1
  74. package/build/umd/index.production.js +1 -1
  75. package/build/umd/index.production.js.map +1 -1
  76. package/package.json +6 -10
  77. package/src/Explorer.tsx +4 -4
  78. package/src/__tests__/Explorer.test.tsx +5 -0
  79. package/src/__tests__/devtools.test.tsx +121 -175
  80. package/src/__tests__/utils.tsx +2 -2
  81. package/src/devtools.tsx +110 -116
  82. package/src/index.ts +2 -2
  83. package/build/lib/useSyncExternalStore.d.ts +0 -1
  84. package/build/lib/useSyncExternalStore.native.d.ts +0 -1
  85. package/src/useSyncExternalStore.native.ts +0 -3
  86. package/src/useSyncExternalStore.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sources":["../../src/devtools.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport { useSyncExternalStore } from './useSyncExternalStore'\nimport type {\n QueryCache,\n QueryClient,\n QueryKey as QueryKeyType,\n ContextOptions,\n} from '@tanstack/react-query'\nimport {\n useQueryClient,\n onlineManager,\n notifyManager,\n} from '@tanstack/react-query'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport useLocalStorage from './useLocalStorage'\nimport {\n isVerticalSide,\n sortFns,\n useIsMounted,\n getSidePanelStyle,\n minPanelSize,\n getResizeHandleStyle,\n getSidedProp,\n defaultPanelSize,\n displayValue,\n} from './utils'\nimport type { Corner, Side } from './utils'\nimport {\n Panel,\n QueryKeys,\n QueryKey,\n Button,\n Code,\n Input,\n Select,\n ActiveQueryPanel,\n} from './styledComponents'\nimport ScreenReader from './screenreader'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\nimport { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\nimport Logo from './Logo'\n\nexport interface DevtoolsOptions extends ContextOptions {\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.ComponentPropsWithoutRef<'div'>\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.ComponentPropsWithoutRef<'button'>\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.ComponentPropsWithoutRef<'button'>\n /**\n * The position of the React Query logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: Corner\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n panelPosition?: Side\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 'aside'.\n */\n containerElement?: string | any\n /**\n * nonce for style element for CSP\n */\n styleNonce?: string\n}\n\ninterface DevtoolsPanelOptions extends ContextOptions {\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 * nonce for style element for CSP\n */\n styleNonce?: string\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 onDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n position?: Side\n /**\n * Handles the panel position select change\n */\n onPositionChange?: (side: Side) => void\n /**\n * Show a close button inside the panel\n */\n showCloseButton?: boolean\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.ComponentPropsWithoutRef<'button'>\n}\n\nexport function ReactQueryDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'aside',\n context,\n styleNonce,\n panelPosition: initialPanelPosition = 'bottom',\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 'reactQueryDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number>(\n 'reactQueryDevtoolsHeight',\n defaultPanelSize,\n )\n const [devtoolsWidth, setDevtoolsWidth] = useLocalStorage<number>(\n 'reactQueryDevtoolsWidth',\n defaultPanelSize,\n )\n\n const [panelPosition = 'bottom', setPanelPosition] = useLocalStorage<Side>(\n 'reactQueryDevtoolsPanelPosition',\n initialPanelPosition,\n )\n\n const [isResolvedOpen, setIsResolvedOpen] = React.useState(false)\n const [isResizing, setIsResizing] = React.useState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (!panelElement) return\n if (startEvent.button !== 0) return // Only allow left click for drag\n const isVertical = isVerticalSide(panelPosition)\n setIsResizing(true)\n\n const { height, width } = panelElement.getBoundingClientRect()\n const startX = startEvent.clientX\n const startY = startEvent.clientY\n let newSize = 0\n\n const run = (moveEvent: MouseEvent) => {\n // prevent mouse selecting stuff with mouse drag\n moveEvent.preventDefault()\n\n // calculate the correct size based on mouse position and current panel position\n // hint: it is different formula for the opposite sides\n if (isVertical) {\n newSize =\n width +\n (panelPosition === 'right'\n ? startX - moveEvent.clientX\n : moveEvent.clientX - startX)\n setDevtoolsWidth(newSize)\n } else {\n newSize =\n height +\n (panelPosition === 'bottom'\n ? startY - moveEvent.clientY\n : moveEvent.clientY - startY)\n setDevtoolsHeight(newSize)\n }\n\n if (newSize < minPanelSize) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n if (isResizing) {\n setIsResizing(false)\n }\n\n document.removeEventListener('mousemove', run, false)\n document.removeEventListener('mouseUp', unsub, false)\n }\n\n document.addEventListener('mousemove', run, false)\n document.addEventListener('mouseup', unsub, false)\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 if (ref) {\n const handlePanelTransitionStart = () => {\n if (isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (!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 return\n }, [isResolvedOpen])\n\n React.useEffect(() => {\n if (isResolvedOpen && rootRef.current?.parentElement) {\n const { parentElement } = rootRef.current\n const styleProp = getSidedProp('padding', panelPosition)\n const isVertical = isVerticalSide(panelPosition)\n\n const previousPaddings = (({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }) => ({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }))(parentElement.style)\n\n const run = () => {\n // reset the padding\n parentElement.style.padding = '0px'\n parentElement.style.paddingTop = '0px'\n parentElement.style.paddingBottom = '0px'\n parentElement.style.paddingLeft = '0px'\n parentElement.style.paddingRight = '0px'\n // set the new padding based on the new panel position\n\n parentElement.style[styleProp] = `${\n isVertical ? devtoolsWidth : devtoolsHeight\n }px`\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n Object.entries(previousPaddings).forEach(\n ([property, previousValue]) => {\n parentElement.style[property as keyof typeof previousPaddings] =\n previousValue\n },\n )\n }\n }\n }\n return\n }, [isResolvedOpen, panelPosition, devtoolsHeight, devtoolsWidth])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // get computed style based on panel position\n const style = getSidePanelStyle({\n position: panelPosition,\n devtoolsTheme: theme,\n isOpen: isResolvedOpen,\n height: devtoolsHeight,\n width: devtoolsWidth,\n isResizing,\n panelStyle,\n })\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container\n ref={rootRef}\n className=\"ReactQueryDevtools\"\n aria-label=\"React Query Devtools\"\n >\n <ThemeProvider theme={theme}>\n <ReactQueryDevtoolsPanel\n ref={panelRef as any}\n context={context}\n styleNonce={styleNonce}\n position={panelPosition}\n onPositionChange={setPanelPosition}\n showCloseButton\n closeButtonProps={closeButtonProps}\n {...otherPanelProps}\n style={style}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n onDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick?.(e)\n }}\n style={{\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 <ScreenReader text=\"Open React Query Devtools\" />\n </button>\n ) : null}\n </Container>\n )\n}\n\nconst useSubscribeToQueryCache = <T,>(\n queryCache: QueryCache,\n getSnapshot: () => T,\n skip: boolean = false,\n): T => {\n return useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n if (!skip)\n return queryCache.subscribe(notifyManager.batchCalls(onStoreChange))\n return () => {\n return\n }\n },\n [queryCache, skip],\n ),\n getSnapshot,\n getSnapshot,\n )\n}\n\nexport const ReactQueryDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function ReactQueryDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n styleNonce,\n setIsOpen,\n context,\n onDragStart,\n onPositionChange,\n showCloseButton,\n position,\n closeButtonProps = {},\n ...panelProps\n } = props\n\n const { onClick: onCloseClick, ...otherCloseButtonProps } = closeButtonProps\n\n const queryClient = useQueryClient({ context })\n const queryCache = queryClient.getQueryCache()\n\n const [sort, setSort] = useLocalStorage(\n 'reactQueryDevtoolsSortFn',\n Object.keys(sortFns)[0],\n )\n\n const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '')\n\n const [baseSort, setBaseSort] = useLocalStorage(\n 'reactQueryDevtoolsBaseSort',\n 1,\n )\n\n const sortFn = React.useMemo(() => sortFns[sort as string], [sort])\n\n const queriesCount = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.getAll().length,\n !isOpen,\n )\n\n const [activeQueryHash, setActiveQueryHash] = useLocalStorage(\n 'reactQueryDevtoolsActiveQueryHash',\n '',\n )\n\n const queries = React.useMemo(() => {\n const unsortedQueries = queryCache.getAll()\n\n if (queriesCount === 0) {\n return []\n }\n\n const filtered = filter\n ? unsortedQueries.filter(\n (item) => rankItem(item.queryHash, filter).passed,\n )\n : [...unsortedQueries]\n\n const sorted = sortFn\n ? filtered.sort((a, b) => sortFn(a, b) * (baseSort as number))\n : filtered\n\n return sorted\n }, [baseSort, sortFn, filter, queriesCount, queryCache])\n\n const [isMockOffline, setMockOffline] = React.useState(false)\n\n return (\n <ThemeProvider theme={theme}>\n <Panel\n ref={ref}\n className=\"ReactQueryDevtoolsPanel\"\n aria-label=\"React Query Devtools Panel\"\n id=\"ReactQueryDevtoolsPanel\"\n {...panelProps}\n style={{\n height: defaultPanelSize,\n position: 'relative',\n ...panelProps.style,\n }}\n >\n <style\n nonce={styleNonce}\n dangerouslySetInnerHTML={{\n __html: `\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n `,\n }}\n />\n <div\n style={getResizeHandleStyle(position)}\n onMouseDown={onDragStart}\n ></div>\n\n {isOpen && (\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 <button\n type=\"button\"\n aria-label=\"Close React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n onClick={() => setIsOpen(false)}\n style={{\n display: 'inline-flex',\n background: 'none',\n border: 0,\n padding: 0,\n marginRight: '.5em',\n cursor: 'pointer',\n }}\n >\n <Logo aria-hidden />\n <ScreenReader text=\"Close React Query Devtools\" />\n </button>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '.5em',\n }}\n >\n <QueryStatusCount queryCache={queryCache} />\n {position && onPositionChange ? (\n <Select\n aria-label=\"Panel position\"\n value={position}\n style={{ marginInlineStart: '.5em' }}\n onChange={(e) => onPositionChange(e.target.value as Side)}\n >\n <option value=\"left\">Left</option>\n <option value=\"right\">Right</option>\n <option value=\"top\">Top</option>\n <option value=\"bottom\">Bottom</option>\n </Select>\n ) : null}\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Input\n placeholder=\"Filter\"\n aria-label=\"Filter by queryhash\"\n value={filter ?? ''}\n onChange={(e) => setFilter(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') setFilter('')\n }}\n style={{\n flex: '1',\n marginRight: '.5em',\n width: '100%',\n }}\n />\n {!filter ? (\n <>\n <Select\n aria-label=\"Sort queries\"\n value={sort}\n onChange={(e) => setSort(e.target.value)}\n style={{\n flex: '1',\n minWidth: 75,\n marginRight: '.5em',\n }}\n >\n {Object.keys(sortFns).map((key) => (\n <option key={key} value={key}>\n Sort by {key}\n </option>\n ))}\n </Select>\n <Button\n type=\"button\"\n onClick={() => setBaseSort((old) => old * -1)}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n {baseSort === 1 ? '⬆ Asc' : '⬇ Desc'}\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n if (isMockOffline) {\n onlineManager.setOnline(undefined)\n setMockOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager.setOnline(false)\n setMockOffline(true)\n }\n }}\n aria-label={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n title={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n style={{\n padding: '0',\n height: '2em',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"2em\"\n height=\"2em\"\n viewBox=\"0 0 24 24\"\n stroke={isMockOffline ? theme.danger : 'currentColor'}\n fill=\"none\"\n >\n {isMockOffline ? (\n <>\n <path\n stroke=\"none\"\n d=\"M0 0h24v24H0z\"\n fill=\"none\"\n />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a7.963 7.963 0 0 1 3.864 -2.14m4.163 .155a7.965 7.965 0 0 1 3.287 2\" />\n <path d=\"M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374\" />\n <line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"21\" />\n </>\n ) : (\n <>\n <path\n stroke=\"none\"\n d=\"M0 0h24v24H0z\"\n fill=\"none\"\n />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a8 8 0 0 1 11.314 0\" />\n <path d=\"M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0\" />\n </>\n )}\n </svg>\n <ScreenReader\n text={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n />\n </Button>\n </>\n ) : null}\n </div>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n {queries.map((query) => {\n return (\n <QueryRow\n queryKey={query.queryKey}\n activeQueryHash={activeQueryHash}\n setActiveQueryHash={setActiveQueryHash}\n key={query.queryHash}\n queryCache={queryCache}\n />\n )\n })}\n </div>\n </div>\n )}\n\n {activeQueryHash && isOpen ? (\n <ActiveQuery\n activeQueryHash={activeQueryHash}\n queryCache={queryCache}\n queryClient={queryClient}\n />\n ) : null}\n\n {showCloseButton ? (\n <Button\n type=\"button\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n {...(otherCloseButtonProps as Record<string, unknown>)}\n style={{\n position: 'absolute',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n left: 0,\n ...otherCloseButtonProps.style,\n }}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick?.(e)\n }}\n >\n Close\n </Button>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n\nconst ActiveQuery = ({\n queryCache,\n activeQueryHash,\n queryClient,\n}: {\n queryCache: QueryCache\n activeQueryHash: string\n queryClient: QueryClient\n}) => {\n const activeQuery = useSubscribeToQueryCache(queryCache, () =>\n queryCache.getAll().find((query) => query.queryHash === activeQueryHash),\n )\n\n const activeQueryState = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().find((query) => query.queryHash === activeQueryHash)\n ?.state,\n )\n\n const isStale =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache\n .getAll()\n .find((query) => query.queryHash === activeQueryHash)\n ?.isStale(),\n ) ?? false\n\n const observerCount =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache\n .getAll()\n .find((query) => query.queryHash === activeQueryHash)\n ?.getObserversCount(),\n ) ?? 0\n\n const handleRefetch = () => {\n const promise = activeQuery?.fetch()\n promise?.catch(noop)\n }\n\n if (!activeQuery || !activeQueryState) {\n return null\n }\n\n return (\n <ActiveQueryPanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Query Details\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <div\n style={{\n marginBottom: '.5em',\n display: 'flex',\n alignItems: 'stretch',\n justifyContent: 'space-between',\n }}\n >\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n <pre\n style={{\n margin: 0,\n padding: 0,\n overflow: 'auto',\n }}\n >\n {displayValue(activeQuery.queryKey, true)}\n </pre>\n </Code>\n <span\n style={{\n padding: '0.3em .6em',\n borderRadius: '0.4em',\n fontWeight: 'bold',\n textShadow: '0 2px 10px black',\n background: getQueryStatusColor({\n queryState: activeQueryState,\n isStale: isStale,\n observerCount: observerCount,\n theme,\n }),\n flexShrink: 0,\n }}\n >\n {getQueryStatusLabel(activeQuery)}\n </span>\n </div>\n <div\n style={{\n marginBottom: '.5em',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n Observers: <Code>{observerCount}</Code>\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n Last Updated:{' '}\n <Code>\n {new Date(activeQueryState.dataUpdatedAt).toLocaleTimeString()}\n </Code>\n </div>\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={handleRefetch}\n disabled={activeQueryState.fetchStatus === 'fetching'}\n style={{\n background: theme.active,\n }}\n >\n Refetch\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.invalidateQueries(activeQuery)}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.resetQueries(activeQuery)}\n style={{\n background: theme.gray,\n }}\n >\n Reset\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.removeQueries(activeQuery)}\n style={{\n background: theme.danger,\n }}\n >\n Remove\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 Data Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Data\"\n value={activeQueryState.data}\n defaultExpanded={{}}\n copyable\n />\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 Query Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Query\"\n value={activeQuery}\n defaultExpanded={{\n queryKey: true,\n }}\n />\n </div>\n </ActiveQueryPanel>\n )\n}\n\nconst QueryStatusCount = ({ queryCache }: { queryCache: QueryCache }) => {\n const hasFresh = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fresh')\n .length,\n )\n const hasFetching = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fetching')\n .length,\n )\n const hasPaused = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'paused')\n .length,\n )\n const hasStale = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'stale')\n .length,\n )\n const hasInactive = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'inactive')\n .length,\n )\n return (\n <QueryKeys>\n <QueryKey\n style={{\n background: theme.success,\n opacity: hasFresh ? 1 : 0.3,\n }}\n >\n fresh <Code>({hasFresh})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.active,\n opacity: hasFetching ? 1 : 0.3,\n }}\n >\n fetching <Code>({hasFetching})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.paused,\n opacity: hasPaused ? 1 : 0.3,\n }}\n >\n paused <Code>({hasPaused})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.warning,\n color: 'black',\n textShadow: '0',\n opacity: hasStale ? 1 : 0.3,\n }}\n >\n stale <Code>({hasStale})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.gray,\n opacity: hasInactive ? 1 : 0.3,\n }}\n >\n inactive <Code>({hasInactive})</Code>\n </QueryKey>\n </QueryKeys>\n )\n}\n\ninterface QueryRowProps {\n queryKey: QueryKeyType\n setActiveQueryHash: (hash: string) => void\n activeQueryHash?: string\n queryCache: QueryCache\n}\n\nconst QueryRow = React.memo(\n ({\n queryKey,\n setActiveQueryHash,\n activeQueryHash,\n queryCache,\n }: QueryRowProps) => {\n const queryHash =\n useSubscribeToQueryCache(\n queryCache,\n () => queryCache.find(queryKey)?.queryHash,\n ) ?? ''\n\n const queryState = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.find(queryKey)?.state,\n )\n\n const isStale =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find(queryKey)?.isStale(),\n ) ?? false\n\n const isDisabled =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find(queryKey)?.isDisabled(),\n ) ?? false\n\n const observerCount =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find(queryKey)?.getObserversCount(),\n ) ?? 0\n\n if (!queryState) {\n return null\n }\n\n return (\n <div\n role=\"button\"\n aria-label={`Open query details for ${queryHash}`}\n onClick={() =>\n setActiveQueryHash(activeQueryHash === queryHash ? '' : queryHash)\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n queryHash === activeQueryHash ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '2em',\n height: '2em',\n background: getQueryStatusColor({\n queryState,\n isStale,\n observerCount,\n theme,\n }),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n textShadow: isStale ? '0' : '0 0 10px black',\n color: isStale ? 'black' : 'white',\n }}\n >\n {observerCount}\n </div>\n {isDisabled ? (\n <div\n style={{\n flex: '0 0 auto',\n height: '2em',\n background: theme.gray,\n display: 'flex',\n alignItems: 'center',\n fontWeight: 'bold',\n padding: '0 0.5em',\n }}\n >\n disabled\n </div>\n ) : null}\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${queryHash}`}\n </Code>\n </div>\n )\n },\n)\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["ReactQueryDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","context","styleNonce","panelPosition","initialPanelPosition","rootRef","React","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","defaultPanelSize","devtoolsWidth","setDevtoolsWidth","setPanelPosition","isResolvedOpen","setIsResolvedOpen","useState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","isVertical","isVerticalSide","height","width","getBoundingClientRect","startX","clientX","startY","clientY","newSize","run","moveEvent","preventDefault","minPanelSize","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","style","visibility","handlePanelTransitionEnd","parentElement","styleProp","getSidedProp","previousPaddings","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","window","Object","entries","forEach","property","previousValue","panelStyle","otherPanelProps","toggleButtonStyle","onClick","onToggleClick","otherToggleButtonProps","getSidePanelStyle","devtoolsTheme","theme","ThemeProvider","_extends","e","background","border","zIndex","display","fontSize","margin","cursor","top","right","left","bottom","Logo","ScreenReader","useSubscribeToQueryCache","queryCache","getSnapshot","skip","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","ReactQueryDevtoolsPanel","forwardRef","props","onDragStart","onPositionChange","showCloseButton","onCloseClick","otherCloseButtonProps","queryClient","useQueryClient","getQueryCache","sort","setSort","keys","sortFns","filter","setFilter","baseSort","setBaseSort","sortFn","useMemo","queriesCount","getAll","length","activeQueryHash","setActiveQueryHash","queries","unsortedQueries","filtered","item","rankItem","queryHash","passed","sorted","a","b","isMockOffline","setMockOffline","Panel","__html","backgroundAlt","gray","getResizeHandleStyle","flex","minHeight","maxHeight","overflow","borderRight","grayAlt","flexDirection","justifyContent","alignItems","marginRight","marginBottom","Select","marginInlineStart","target","value","Input","key","minWidth","map","Button","old","onlineManager","setOnline","undefined","dispatchEvent","Event","danger","overflowY","query","queryKey","ActiveQuery","activeQuery","find","activeQueryState","state","isStale","observerCount","getObserversCount","handleRefetch","promise","fetch","catch","noop","ActiveQueryPanel","Code","lineHeight","displayValue","borderRadius","fontWeight","textShadow","getQueryStatusColor","queryState","flexShrink","getQueryStatusLabel","Date","dataUpdatedAt","toLocaleTimeString","fetchStatus","active","invalidateQueries","warning","color","inputTextColor","resetQueries","removeQueries","Explorer","data","QueryStatusCount","hasFresh","q","hasFetching","hasPaused","hasStale","hasInactive","QueryKeys","QueryKey","success","opacity","paused","QueryRow","memo","isDisabled","borderBottom"],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sources":["../../src/devtools.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type {\n QueryCache,\n QueryClient,\n QueryKey as QueryKeyType,\n} from '@tanstack/react-query'\nimport {\n useQueryClient,\n onlineManager,\n notifyManager,\n} from '@tanstack/react-query'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport useLocalStorage from './useLocalStorage'\nimport {\n isVerticalSide,\n sortFns,\n useIsMounted,\n getSidePanelStyle,\n minPanelSize,\n getResizeHandleStyle,\n getSidedProp,\n defaultPanelSize,\n displayValue,\n} from './utils'\nimport type { Corner, Side } from './utils'\nimport {\n Panel,\n QueryKeys,\n QueryKey,\n Button,\n Code,\n Input,\n Select,\n ActiveQueryPanel,\n} from './styledComponents'\nimport ScreenReader from './screenreader'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\nimport { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\nimport Logo from './Logo'\n\nexport interface 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.ComponentPropsWithoutRef<'div'>\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.ComponentPropsWithoutRef<'button'>\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.ComponentPropsWithoutRef<'button'>\n /**\n * The position of the React Query logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: Corner\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n panelPosition?: Side\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 'aside'.\n */\n containerElement?: string | any\n /**\n * nonce for style element for CSP\n */\n styleNonce?: string\n /**\n * Custom instance of QueryClient\n */\n queryClient?: QueryClient\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 * nonce for style element for CSP\n */\n styleNonce?: string\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 onDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n position?: Side\n /**\n * Handles the panel position select change\n */\n onPositionChange?: (side: Side) => void\n /**\n * Show a close button inside the panel\n */\n showCloseButton?: boolean\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.ComponentPropsWithoutRef<'button'>\n /**\n * Custom instance of QueryClient\n */\n queryClient?: QueryClient\n}\n\nexport function ReactQueryDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'aside',\n queryClient,\n styleNonce,\n panelPosition: initialPanelPosition = 'bottom',\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 'reactQueryDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number>(\n 'reactQueryDevtoolsHeight',\n defaultPanelSize,\n )\n const [devtoolsWidth, setDevtoolsWidth] = useLocalStorage<number>(\n 'reactQueryDevtoolsWidth',\n defaultPanelSize,\n )\n\n const [panelPosition = 'bottom', setPanelPosition] = useLocalStorage<Side>(\n 'reactQueryDevtoolsPanelPosition',\n initialPanelPosition,\n )\n\n const [isResolvedOpen, setIsResolvedOpen] = React.useState(false)\n const [isResizing, setIsResizing] = React.useState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (!panelElement) return\n if (startEvent.button !== 0) return // Only allow left click for drag\n const isVertical = isVerticalSide(panelPosition)\n setIsResizing(true)\n\n const { height, width } = panelElement.getBoundingClientRect()\n const startX = startEvent.clientX\n const startY = startEvent.clientY\n let newSize = 0\n\n const run = (moveEvent: MouseEvent) => {\n // prevent mouse selecting stuff with mouse drag\n moveEvent.preventDefault()\n\n // calculate the correct size based on mouse position and current panel position\n // hint: it is different formula for the opposite sides\n if (isVertical) {\n newSize =\n width +\n (panelPosition === 'right'\n ? startX - moveEvent.clientX\n : moveEvent.clientX - startX)\n setDevtoolsWidth(newSize)\n } else {\n newSize =\n height +\n (panelPosition === 'bottom'\n ? startY - moveEvent.clientY\n : moveEvent.clientY - startY)\n setDevtoolsHeight(newSize)\n }\n\n if (newSize < minPanelSize) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n if (isResizing) {\n setIsResizing(false)\n }\n\n document.removeEventListener('mousemove', run, false)\n document.removeEventListener('mouseUp', unsub, false)\n }\n\n document.addEventListener('mousemove', run, false)\n document.addEventListener('mouseup', unsub, false)\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 if (ref) {\n const handlePanelTransitionStart = () => {\n if (isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (!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 return\n }, [isResolvedOpen])\n\n React.useEffect(() => {\n if (isResolvedOpen && rootRef.current?.parentElement) {\n const { parentElement } = rootRef.current\n const styleProp = getSidedProp('padding', panelPosition)\n const isVertical = isVerticalSide(panelPosition)\n\n const previousPaddings = (({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }) => ({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }))(parentElement.style)\n\n const run = () => {\n // reset the padding\n parentElement.style.padding = '0px'\n parentElement.style.paddingTop = '0px'\n parentElement.style.paddingBottom = '0px'\n parentElement.style.paddingLeft = '0px'\n parentElement.style.paddingRight = '0px'\n // set the new padding based on the new panel position\n\n parentElement.style[styleProp] = `${\n isVertical ? devtoolsWidth : devtoolsHeight\n }px`\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n Object.entries(previousPaddings).forEach(\n ([property, previousValue]) => {\n parentElement.style[property as keyof typeof previousPaddings] =\n previousValue\n },\n )\n }\n }\n }\n return\n }, [isResolvedOpen, panelPosition, devtoolsHeight, devtoolsWidth])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // get computed style based on panel position\n const style = getSidePanelStyle({\n position: panelPosition,\n devtoolsTheme: theme,\n isOpen: isResolvedOpen,\n height: devtoolsHeight,\n width: devtoolsWidth,\n isResizing,\n panelStyle,\n })\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container\n ref={rootRef}\n className=\"ReactQueryDevtools\"\n aria-label=\"React Query Devtools\"\n >\n <ThemeProvider theme={theme}>\n <ReactQueryDevtoolsPanel\n ref={panelRef as any}\n queryClient={queryClient}\n styleNonce={styleNonce}\n position={panelPosition}\n onPositionChange={setPanelPosition}\n showCloseButton\n closeButtonProps={closeButtonProps}\n {...otherPanelProps}\n style={style}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n onDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick?.(e)\n }}\n style={{\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 <ScreenReader text=\"Open React Query Devtools\" />\n </button>\n ) : null}\n </Container>\n )\n}\n\nconst useSubscribeToQueryCache = <T,>(\n queryCache: QueryCache,\n getSnapshot: () => T,\n skip: boolean = false,\n): T => {\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n if (!skip)\n return queryCache.subscribe(notifyManager.batchCalls(onStoreChange))\n return () => {\n return\n }\n },\n [queryCache, skip],\n ),\n getSnapshot,\n getSnapshot,\n )\n}\n\nexport const ReactQueryDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function ReactQueryDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n styleNonce,\n setIsOpen,\n queryClient,\n onDragStart,\n onPositionChange,\n showCloseButton,\n position,\n closeButtonProps = {},\n ...panelProps\n } = props\n\n const { onClick: onCloseClick, ...otherCloseButtonProps } = closeButtonProps\n\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n const [sort, setSort] = useLocalStorage(\n 'reactQueryDevtoolsSortFn',\n Object.keys(sortFns)[0],\n )\n\n const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '')\n\n const [baseSort, setBaseSort] = useLocalStorage(\n 'reactQueryDevtoolsBaseSort',\n 1,\n )\n\n const sortFn = React.useMemo(() => sortFns[sort as string], [sort])\n\n const queriesCount = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.getAll().length,\n !isOpen,\n )\n\n const [activeQueryHash, setActiveQueryHash] = useLocalStorage(\n 'reactQueryDevtoolsActiveQueryHash',\n '',\n )\n\n const queries = React.useMemo(() => {\n const unsortedQueries = queryCache.getAll()\n\n if (queriesCount === 0) {\n return []\n }\n\n const filtered = filter\n ? unsortedQueries.filter(\n (item) => rankItem(item.queryHash, filter).passed,\n )\n : [...unsortedQueries]\n\n const sorted = sortFn\n ? filtered.sort((a, b) => sortFn(a, b) * (baseSort as number))\n : filtered\n\n return sorted\n }, [baseSort, sortFn, filter, queriesCount, queryCache])\n\n const [isMockOffline, setMockOffline] = React.useState(false)\n\n return (\n <ThemeProvider theme={theme}>\n <Panel\n ref={ref}\n className=\"ReactQueryDevtoolsPanel\"\n aria-label=\"React Query Devtools Panel\"\n id=\"ReactQueryDevtoolsPanel\"\n {...panelProps}\n style={{\n height: defaultPanelSize,\n position: 'relative',\n ...panelProps.style,\n }}\n >\n <style\n nonce={styleNonce}\n dangerouslySetInnerHTML={{\n __html: `\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n `,\n }}\n />\n <div\n style={getResizeHandleStyle(position)}\n onMouseDown={onDragStart}\n ></div>\n\n {isOpen && (\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 <button\n type=\"button\"\n aria-label=\"Close React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n onClick={() => setIsOpen(false)}\n style={{\n display: 'inline-flex',\n background: 'none',\n border: 0,\n padding: 0,\n marginRight: '.5em',\n cursor: 'pointer',\n }}\n >\n <Logo aria-hidden />\n <ScreenReader text=\"Close React Query Devtools\" />\n </button>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '.5em',\n }}\n >\n <QueryStatusCount queryCache={queryCache} />\n {position && onPositionChange ? (\n <Select\n aria-label=\"Panel position\"\n value={position}\n style={{ marginInlineStart: '.5em' }}\n onChange={(e) => onPositionChange(e.target.value as Side)}\n >\n <option value=\"left\">Left</option>\n <option value=\"right\">Right</option>\n <option value=\"top\">Top</option>\n <option value=\"bottom\">Bottom</option>\n </Select>\n ) : null}\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Input\n placeholder=\"Filter\"\n aria-label=\"Filter by queryhash\"\n value={filter ?? ''}\n onChange={(e) => setFilter(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') setFilter('')\n }}\n style={{\n flex: '1',\n marginRight: '.5em',\n width: '100%',\n }}\n />\n <Select\n aria-label=\"Sort queries\"\n value={sort}\n onChange={(e) => setSort(e.target.value)}\n style={{\n flex: '1',\n minWidth: 75,\n marginRight: '.5em',\n }}\n >\n {Object.keys(sortFns).map((key) => (\n <option key={key} value={key}>\n Sort by {key}\n </option>\n ))}\n </Select>\n <Button\n type=\"button\"\n onClick={() => setBaseSort((old) => old * -1)}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n {baseSort === 1 ? '⬆ Asc' : '⬇ Desc'}\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n if (isMockOffline) {\n onlineManager.setOnline(undefined)\n setMockOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager.setOnline(false)\n setMockOffline(true)\n }\n }}\n aria-label={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n title={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n style={{\n padding: '0',\n height: '2em',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"2em\"\n height=\"2em\"\n viewBox=\"0 0 24 24\"\n stroke={isMockOffline ? theme.danger : 'currentColor'}\n fill=\"none\"\n >\n {isMockOffline ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a7.963 7.963 0 0 1 3.864 -2.14m4.163 .155a7.965 7.965 0 0 1 3.287 2\" />\n <path d=\"M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374\" />\n <line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"21\" />\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a8 8 0 0 1 11.314 0\" />\n <path d=\"M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0\" />\n </>\n )}\n </svg>\n <ScreenReader\n text={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n />\n </Button>\n </div>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n {queries.map((query) => {\n return (\n <QueryRow\n queryKey={query.queryKey}\n activeQueryHash={activeQueryHash}\n setActiveQueryHash={setActiveQueryHash}\n key={query.queryHash}\n queryCache={queryCache}\n />\n )\n })}\n </div>\n </div>\n )}\n\n {activeQueryHash && isOpen ? (\n <ActiveQuery\n activeQueryHash={activeQueryHash}\n queryCache={queryCache}\n queryClient={client}\n />\n ) : null}\n\n {showCloseButton ? (\n <Button\n type=\"button\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n {...(otherCloseButtonProps as Record<string, unknown>)}\n style={{\n position: 'absolute',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n left: 0,\n ...otherCloseButtonProps.style,\n }}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick?.(e)\n }}\n >\n Close\n </Button>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n\nconst ActiveQuery = ({\n queryCache,\n activeQueryHash,\n queryClient,\n}: {\n queryCache: QueryCache\n activeQueryHash: string\n queryClient: QueryClient\n}) => {\n const activeQuery = useSubscribeToQueryCache(queryCache, () =>\n queryCache.getAll().find((query) => query.queryHash === activeQueryHash),\n )\n\n const activeQueryState = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().find((query) => query.queryHash === activeQueryHash)\n ?.state,\n )\n\n const isStale =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache\n .getAll()\n .find((query) => query.queryHash === activeQueryHash)\n ?.isStale(),\n ) ?? false\n\n const observerCount =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache\n .getAll()\n .find((query) => query.queryHash === activeQueryHash)\n ?.getObserversCount(),\n ) ?? 0\n\n const handleRefetch = () => {\n const promise = activeQuery?.fetch()\n promise?.catch(noop)\n }\n\n if (!activeQuery || !activeQueryState) {\n return null\n }\n\n return (\n <ActiveQueryPanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Query Details\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <div\n style={{\n marginBottom: '.5em',\n display: 'flex',\n alignItems: 'stretch',\n justifyContent: 'space-between',\n }}\n >\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n <pre\n style={{\n margin: 0,\n padding: 0,\n overflow: 'auto',\n }}\n >\n {displayValue(activeQuery.queryKey, true)}\n </pre>\n </Code>\n <span\n style={{\n padding: '0.3em .6em',\n borderRadius: '0.4em',\n fontWeight: 'bold',\n textShadow: '0 2px 10px black',\n background: getQueryStatusColor({\n queryState: activeQueryState,\n isStale: isStale,\n observerCount: observerCount,\n theme,\n }),\n flexShrink: 0,\n }}\n >\n {getQueryStatusLabel(activeQuery)}\n </span>\n </div>\n <div\n style={{\n marginBottom: '.5em',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n Observers: <Code>{observerCount}</Code>\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n Last Updated:{' '}\n <Code>\n {new Date(activeQueryState.dataUpdatedAt).toLocaleTimeString()}\n </Code>\n </div>\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={handleRefetch}\n disabled={activeQueryState.fetchStatus === 'fetching'}\n style={{\n background: theme.active,\n }}\n >\n Refetch\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.invalidateQueries(activeQuery)}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.resetQueries(activeQuery)}\n style={{\n background: theme.gray,\n }}\n >\n Reset\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.removeQueries(activeQuery)}\n style={{\n background: theme.danger,\n }}\n >\n Remove\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 Data Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Data\"\n value={activeQueryState.data}\n defaultExpanded={{}}\n copyable\n />\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 Query Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Query\"\n value={activeQuery}\n defaultExpanded={{\n queryKey: true,\n }}\n />\n </div>\n </ActiveQueryPanel>\n )\n}\n\nconst QueryStatusCount = ({ queryCache }: { queryCache: QueryCache }) => {\n const hasFresh = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fresh')\n .length,\n )\n const hasFetching = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fetching')\n .length,\n )\n const hasPaused = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'paused')\n .length,\n )\n const hasStale = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'stale')\n .length,\n )\n const hasInactive = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'inactive')\n .length,\n )\n return (\n <QueryKeys>\n <QueryKey\n style={{\n background: theme.success,\n opacity: hasFresh ? 1 : 0.3,\n }}\n >\n fresh <Code>({hasFresh})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.active,\n opacity: hasFetching ? 1 : 0.3,\n }}\n >\n fetching <Code>({hasFetching})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.paused,\n opacity: hasPaused ? 1 : 0.3,\n }}\n >\n paused <Code>({hasPaused})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.warning,\n color: 'black',\n textShadow: '0',\n opacity: hasStale ? 1 : 0.3,\n }}\n >\n stale <Code>({hasStale})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.gray,\n opacity: hasInactive ? 1 : 0.3,\n }}\n >\n inactive <Code>({hasInactive})</Code>\n </QueryKey>\n </QueryKeys>\n )\n}\n\ninterface QueryRowProps {\n queryKey: QueryKeyType\n setActiveQueryHash: (hash: string) => void\n activeQueryHash?: string\n queryCache: QueryCache\n}\n\nconst QueryRow = React.memo(\n ({\n queryKey,\n setActiveQueryHash,\n activeQueryHash,\n queryCache,\n }: QueryRowProps) => {\n const queryHash =\n useSubscribeToQueryCache(\n queryCache,\n () => queryCache.find({ queryKey })?.queryHash,\n ) ?? ''\n\n const queryState = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.find({ queryKey })?.state,\n )\n\n const isStale =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find({ queryKey })?.isStale(),\n ) ?? false\n\n const isDisabled =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find({ queryKey })?.isDisabled(),\n ) ?? false\n\n const observerCount =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find({ queryKey })?.getObserversCount(),\n ) ?? 0\n\n if (!queryState) {\n return null\n }\n\n return (\n <div\n role=\"button\"\n aria-label={`Open query details for ${queryHash}`}\n onClick={() =>\n setActiveQueryHash(activeQueryHash === queryHash ? '' : queryHash)\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n queryHash === activeQueryHash ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '2em',\n height: '2em',\n background: getQueryStatusColor({\n queryState,\n isStale,\n observerCount,\n theme,\n }),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n textShadow: isStale ? '0' : '0 0 10px black',\n color: isStale ? 'black' : 'white',\n }}\n >\n {observerCount}\n </div>\n {isDisabled ? (\n <div\n style={{\n flex: '0 0 auto',\n height: '2em',\n background: theme.gray,\n display: 'flex',\n alignItems: 'center',\n fontWeight: 'bold',\n padding: '0 0.5em',\n }}\n >\n disabled\n </div>\n ) : null}\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${queryHash}`}\n </Code>\n </div>\n )\n },\n)\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["ReactQueryDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","queryClient","styleNonce","panelPosition","initialPanelPosition","rootRef","React","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","defaultPanelSize","devtoolsWidth","setDevtoolsWidth","setPanelPosition","isResolvedOpen","setIsResolvedOpen","useState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","isVertical","isVerticalSide","height","width","getBoundingClientRect","startX","clientX","startY","clientY","newSize","run","moveEvent","preventDefault","minPanelSize","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","style","visibility","handlePanelTransitionEnd","parentElement","styleProp","getSidedProp","previousPaddings","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","window","Object","entries","forEach","property","previousValue","panelStyle","otherPanelProps","toggleButtonStyle","onClick","onToggleClick","otherToggleButtonProps","getSidePanelStyle","devtoolsTheme","theme","ThemeProvider","_extends","e","background","border","zIndex","display","fontSize","margin","cursor","top","right","left","bottom","Logo","ScreenReader","useSubscribeToQueryCache","queryCache","getSnapshot","skip","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","ReactQueryDevtoolsPanel","forwardRef","props","onDragStart","onPositionChange","showCloseButton","onCloseClick","otherCloseButtonProps","client","useQueryClient","getQueryCache","sort","setSort","keys","sortFns","filter","setFilter","baseSort","setBaseSort","sortFn","useMemo","queriesCount","getAll","length","activeQueryHash","setActiveQueryHash","queries","unsortedQueries","filtered","item","rankItem","queryHash","passed","sorted","a","b","isMockOffline","setMockOffline","Panel","__html","backgroundAlt","gray","getResizeHandleStyle","flex","minHeight","maxHeight","overflow","borderRight","grayAlt","flexDirection","justifyContent","alignItems","marginRight","marginBottom","Select","marginInlineStart","target","value","Input","key","minWidth","map","Button","old","onlineManager","setOnline","undefined","dispatchEvent","Event","danger","overflowY","query","queryKey","ActiveQuery","activeQuery","find","activeQueryState","state","isStale","observerCount","getObserversCount","handleRefetch","promise","fetch","catch","noop","ActiveQueryPanel","Code","lineHeight","displayValue","borderRadius","fontWeight","textShadow","getQueryStatusColor","queryState","flexShrink","getQueryStatusLabel","Date","dataUpdatedAt","toLocaleTimeString","fetchStatus","active","invalidateQueries","warning","color","inputTextColor","resetQueries","removeQueries","Explorer","data","QueryStatusCount","hasFresh","q","hasFetching","hasPaused","hasStale","hasInactive","QueryKeys","QueryKey","success","opacity","paused","QueryRow","memo","isDisabled","borderBottom"],"mappings":"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"}