@tanstack/react-query-devtools 4.0.6 → 4.0.11-beta.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 (97) hide show
  1. package/build/{types/react-query-devtools/src → lib}/Explorer.d.ts +0 -0
  2. package/build/{types/react-query-devtools/src → lib}/Logo.d.ts +0 -0
  3. package/build/{types/react-query-devtools/src → lib}/devtools.d.ts +0 -0
  4. package/build/{types/react-query-devtools/src → lib}/index.d.ts +0 -0
  5. package/build/lib/index.js +2286 -0
  6. package/build/lib/index.js.map +1 -0
  7. package/build/{esm/index.js → lib/index.mjs} +282 -3
  8. package/build/lib/index.mjs.map +1 -0
  9. package/build/{types/react-query-devtools/src → lib}/noop.d.ts +0 -0
  10. package/build/{cjs/packages/react-query-devtools/src/index.js → lib/noop.js} +6 -8
  11. package/build/lib/noop.js.map +1 -0
  12. package/build/lib/noop.mjs +19 -0
  13. package/build/lib/noop.mjs.map +1 -0
  14. package/build/{types/react-query-devtools/src → lib}/styledComponents.d.ts +0 -0
  15. package/build/{types/react-query-devtools/src → lib}/theme.d.ts +0 -0
  16. package/build/{types/react-query-devtools/src → lib}/useLocalStorage.d.ts +0 -0
  17. package/build/{types/react-query-devtools/src → lib}/useMediaQuery.d.ts +0 -0
  18. package/build/lib/useSyncExternalStore.d.ts +1 -0
  19. package/build/lib/useSyncExternalStore.native.d.ts +1 -0
  20. package/build/{types/react-query-devtools/src → lib}/utils.d.ts +0 -0
  21. package/build/umd/index.development.js +263 -5
  22. package/build/umd/index.development.js.map +1 -1
  23. package/build/umd/index.production.js +1 -1
  24. package/build/umd/index.production.js.map +1 -1
  25. package/build/umd/noop.development.js +30 -0
  26. package/build/umd/noop.development.js.map +1 -0
  27. package/build/umd/noop.production.js +12 -0
  28. package/build/umd/noop.production.js.map +1 -0
  29. package/package.json +28 -12
  30. package/src/devtools.tsx +1 -1
  31. package/src/useSyncExternalStore.native.ts +3 -0
  32. package/src/useSyncExternalStore.ts +2 -0
  33. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -33
  34. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  35. package/build/cjs/node_modules/@tanstack/match-sorter-utils/build/esm/index.js +0 -757
  36. package/build/cjs/node_modules/@tanstack/match-sorter-utils/build/esm/index.js.map +0 -1
  37. package/build/cjs/packages/react-query-devtools/src/Explorer.js +0 -215
  38. package/build/cjs/packages/react-query-devtools/src/Explorer.js.map +0 -1
  39. package/build/cjs/packages/react-query-devtools/src/Logo.js +0 -66
  40. package/build/cjs/packages/react-query-devtools/src/Logo.js.map +0 -1
  41. package/build/cjs/packages/react-query-devtools/src/devtools.js +0 -805
  42. package/build/cjs/packages/react-query-devtools/src/devtools.js.map +0 -1
  43. package/build/cjs/packages/react-query-devtools/src/index.js.map +0 -1
  44. package/build/cjs/packages/react-query-devtools/src/styledComponents.js +0 -113
  45. package/build/cjs/packages/react-query-devtools/src/styledComponents.js.map +0 -1
  46. package/build/cjs/packages/react-query-devtools/src/theme.js +0 -68
  47. package/build/cjs/packages/react-query-devtools/src/theme.js.map +0 -1
  48. package/build/cjs/packages/react-query-devtools/src/useLocalStorage.js +0 -81
  49. package/build/cjs/packages/react-query-devtools/src/useLocalStorage.js.map +0 -1
  50. package/build/cjs/packages/react-query-devtools/src/useMediaQuery.js +0 -66
  51. package/build/cjs/packages/react-query-devtools/src/useMediaQuery.js.map +0 -1
  52. package/build/cjs/packages/react-query-devtools/src/utils.js +0 -113
  53. package/build/cjs/packages/react-query-devtools/src/utils.js.map +0 -1
  54. package/build/esm/index.js.map +0 -1
  55. package/build/esm/noop.js +0 -7
  56. package/build/stats-html.html +0 -2689
  57. package/build/stats.json +0 -298
  58. package/build/types/query-core/src/focusManager.d.ts +0 -16
  59. package/build/types/query-core/src/hydration.d.ts +0 -34
  60. package/build/types/query-core/src/index.d.ts +0 -20
  61. package/build/types/query-core/src/infiniteQueryBehavior.d.ts +0 -15
  62. package/build/types/query-core/src/infiniteQueryObserver.d.ts +0 -18
  63. package/build/types/query-core/src/logger.d.ts +0 -8
  64. package/build/types/query-core/src/mutation.d.ts +0 -70
  65. package/build/types/query-core/src/mutationCache.d.ts +0 -52
  66. package/build/types/query-core/src/mutationObserver.d.ts +0 -23
  67. package/build/types/query-core/src/notifyManager.d.ts +0 -18
  68. package/build/types/query-core/src/onlineManager.d.ts +0 -16
  69. package/build/types/query-core/src/queriesObserver.d.ts +0 -23
  70. package/build/types/query-core/src/query.d.ts +0 -119
  71. package/build/types/query-core/src/queryCache.d.ts +0 -59
  72. package/build/types/query-core/src/queryClient.d.ts +0 -65
  73. package/build/types/query-core/src/queryObserver.d.ts +0 -61
  74. package/build/types/query-core/src/removable.d.ts +0 -9
  75. package/build/types/query-core/src/retryer.d.ts +0 -33
  76. package/build/types/query-core/src/subscribable.d.ts +0 -10
  77. package/build/types/query-core/src/types.d.ts +0 -417
  78. package/build/types/query-core/src/utils.d.ts +0 -99
  79. package/build/types/react-query/src/Hydrate.d.ts +0 -10
  80. package/build/types/react-query/src/QueryClientProvider.d.ts +0 -24
  81. package/build/types/react-query/src/QueryErrorResetBoundary.d.ts +0 -12
  82. package/build/types/react-query/src/index.d.ts +0 -17
  83. package/build/types/react-query/src/isRestoring.d.ts +0 -3
  84. package/build/types/react-query/src/reactBatchedUpdates.d.ts +0 -2
  85. package/build/types/react-query/src/setBatchUpdatesFn.d.ts +0 -1
  86. package/build/types/react-query/src/types.d.ts +0 -35
  87. package/build/types/react-query/src/useBaseQuery.d.ts +0 -3
  88. package/build/types/react-query/src/useInfiniteQuery.d.ts +0 -5
  89. package/build/types/react-query/src/useIsFetching.d.ts +0 -7
  90. package/build/types/react-query/src/useIsMutating.d.ts +0 -7
  91. package/build/types/react-query/src/useMutation.d.ts +0 -6
  92. package/build/types/react-query/src/useQueries.d.ts +0 -49
  93. package/build/types/react-query/src/useQuery.d.ts +0 -20
  94. package/build/types/react-query/src/utils.d.ts +0 -1
  95. package/build/types/react-query-devtools/src/__tests__/Explorer.test.d.ts +0 -1
  96. package/build/types/react-query-devtools/src/__tests__/devtools.test.d.ts +0 -6
  97. package/build/types/react-query-devtools/src/__tests__/utils.d.ts +0 -22
@@ -1,805 +0,0 @@
1
- /**
2
- * react-query-devtools
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
16
- var React = require('react');
17
- var shim = require('use-sync-external-store/shim');
18
- var reactQuery = require('@tanstack/react-query');
19
- var index = require('../../../node_modules/@tanstack/match-sorter-utils/build/esm/index.js');
20
- var useLocalStorage = require('./useLocalStorage.js');
21
- var utils = require('./utils.js');
22
- var styledComponents = require('./styledComponents.js');
23
- var theme = require('./theme.js');
24
- var Explorer = require('./Explorer.js');
25
- var Logo = require('./Logo.js');
26
-
27
- function _interopNamespace(e) {
28
- if (e && e.__esModule) return e;
29
- var n = Object.create(null);
30
- if (e) {
31
- Object.keys(e).forEach(function (k) {
32
- if (k !== 'default') {
33
- var d = Object.getOwnPropertyDescriptor(e, k);
34
- Object.defineProperty(n, k, d.get ? d : {
35
- enumerable: true,
36
- get: function () { return e[k]; }
37
- });
38
- }
39
- });
40
- }
41
- n["default"] = e;
42
- return Object.freeze(n);
43
- }
44
-
45
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
46
-
47
- const isServer = typeof window === 'undefined';
48
- function ReactQueryDevtools({
49
- initialIsOpen,
50
- panelProps = {},
51
- closeButtonProps = {},
52
- toggleButtonProps = {},
53
- position = 'bottom-left',
54
- containerElement: Container = 'aside',
55
- context,
56
- styleNonce
57
- }) {
58
- const rootRef = React__namespace.useRef(null);
59
- const panelRef = React__namespace.useRef(null);
60
- const [isOpen, setIsOpen] = useLocalStorage["default"]('reactQueryDevtoolsOpen', initialIsOpen);
61
- const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage["default"]('reactQueryDevtoolsHeight', null);
62
- const [isResolvedOpen, setIsResolvedOpen] = React__namespace.useState(false);
63
- const [isResizing, setIsResizing] = React__namespace.useState(false);
64
- const isMounted = utils.useIsMounted();
65
-
66
- const handleDragStart = (panelElement, startEvent) => {
67
- var _panelElement$getBoun;
68
-
69
- if (startEvent.button !== 0) return; // Only allow left click for drag
70
-
71
- setIsResizing(true);
72
- const dragInfo = {
73
- originalHeight: (_panelElement$getBoun = panelElement == null ? void 0 : panelElement.getBoundingClientRect().height) != null ? _panelElement$getBoun : 0,
74
- pageY: startEvent.pageY
75
- };
76
-
77
- const run = moveEvent => {
78
- const delta = dragInfo.pageY - moveEvent.pageY;
79
- const newHeight = dragInfo.originalHeight + delta;
80
- setDevtoolsHeight(newHeight);
81
-
82
- if (newHeight < 70) {
83
- setIsOpen(false);
84
- } else {
85
- setIsOpen(true);
86
- }
87
- };
88
-
89
- const unsub = () => {
90
- setIsResizing(false);
91
- document.removeEventListener('mousemove', run);
92
- document.removeEventListener('mouseUp', unsub);
93
- };
94
-
95
- document.addEventListener('mousemove', run);
96
- document.addEventListener('mouseup', unsub);
97
- };
98
-
99
- React__namespace.useEffect(() => {
100
- setIsResolvedOpen(isOpen != null ? isOpen : false);
101
- }, [isOpen, isResolvedOpen, setIsResolvedOpen]); // Toggle panel visibility before/after transition (depending on direction).
102
- // Prevents focusing in a closed panel.
103
-
104
- React__namespace.useEffect(() => {
105
- const ref = panelRef.current;
106
-
107
- if (ref) {
108
- const handlePanelTransitionStart = () => {
109
- if (isResolvedOpen) {
110
- ref.style.visibility = 'visible';
111
- }
112
- };
113
-
114
- const handlePanelTransitionEnd = () => {
115
- if (!isResolvedOpen) {
116
- ref.style.visibility = 'hidden';
117
- }
118
- };
119
-
120
- ref.addEventListener('transitionstart', handlePanelTransitionStart);
121
- ref.addEventListener('transitionend', handlePanelTransitionEnd);
122
- return () => {
123
- ref.removeEventListener('transitionstart', handlePanelTransitionStart);
124
- ref.removeEventListener('transitionend', handlePanelTransitionEnd);
125
- };
126
- }
127
- }, [isResolvedOpen]);
128
- React__namespace[isServer ? 'useEffect' : 'useLayoutEffect'](() => {
129
- if (isResolvedOpen) {
130
- var _rootRef$current, _rootRef$current$pare;
131
-
132
- const previousValue = (_rootRef$current = rootRef.current) == null ? void 0 : (_rootRef$current$pare = _rootRef$current.parentElement) == null ? void 0 : _rootRef$current$pare.style.paddingBottom;
133
-
134
- const run = () => {
135
- var _panelRef$current, _rootRef$current2;
136
-
137
- const containerHeight = (_panelRef$current = panelRef.current) == null ? void 0 : _panelRef$current.getBoundingClientRect().height;
138
-
139
- if ((_rootRef$current2 = rootRef.current) != null && _rootRef$current2.parentElement) {
140
- rootRef.current.parentElement.style.paddingBottom = containerHeight + "px";
141
- }
142
- };
143
-
144
- run();
145
-
146
- if (typeof window !== 'undefined') {
147
- window.addEventListener('resize', run);
148
- return () => {
149
- var _rootRef$current3;
150
-
151
- window.removeEventListener('resize', run);
152
-
153
- if ((_rootRef$current3 = rootRef.current) != null && _rootRef$current3.parentElement && typeof previousValue === 'string') {
154
- rootRef.current.parentElement.style.paddingBottom = previousValue;
155
- }
156
- };
157
- }
158
- }
159
- }, [isResolvedOpen]);
160
- const {
161
- style: panelStyle = {},
162
- ...otherPanelProps
163
- } = panelProps;
164
- const {
165
- style: closeButtonStyle = {},
166
- onClick: onCloseClick,
167
- ...otherCloseButtonProps
168
- } = closeButtonProps;
169
- const {
170
- style: toggleButtonStyle = {},
171
- onClick: onToggleClick,
172
- ...otherToggleButtonProps
173
- } = toggleButtonProps; // Do not render on the server
174
-
175
- if (!isMounted()) return null;
176
- return /*#__PURE__*/React__namespace.createElement(Container, {
177
- ref: rootRef,
178
- className: "ReactQueryDevtools",
179
- "aria-label": "React Query Devtools"
180
- }, /*#__PURE__*/React__namespace.createElement(theme.ThemeProvider, {
181
- theme: theme.defaultTheme
182
- }, /*#__PURE__*/React__namespace.createElement(ReactQueryDevtoolsPanel, _rollupPluginBabelHelpers["extends"]({
183
- ref: panelRef,
184
- context: context,
185
- styleNonce: styleNonce
186
- }, otherPanelProps, {
187
- style: {
188
- position: 'fixed',
189
- bottom: '0',
190
- right: '0',
191
- zIndex: 99999,
192
- width: '100%',
193
- height: devtoolsHeight != null ? devtoolsHeight : 500,
194
- maxHeight: '90%',
195
- boxShadow: '0 0 20px rgba(0,0,0,.3)',
196
- borderTop: "1px solid " + theme.defaultTheme.gray,
197
- transformOrigin: 'top',
198
- // visibility will be toggled after transitions, but set initial state here
199
- visibility: isOpen ? 'visible' : 'hidden',
200
- ...panelStyle,
201
- ...(isResizing ? {
202
- transition: "none"
203
- } : {
204
- transition: "all .2s ease"
205
- }),
206
- ...(isResolvedOpen ? {
207
- opacity: 1,
208
- pointerEvents: 'all',
209
- transform: "translateY(0) scale(1)"
210
- } : {
211
- opacity: 0,
212
- pointerEvents: 'none',
213
- transform: "translateY(15px) scale(1.02)"
214
- })
215
- },
216
- isOpen: isResolvedOpen,
217
- setIsOpen: setIsOpen,
218
- handleDragStart: e => handleDragStart(panelRef.current, e)
219
- })), isResolvedOpen ? /*#__PURE__*/React__namespace.createElement(styledComponents.Button, _rollupPluginBabelHelpers["extends"]({
220
- type: "button",
221
- "aria-controls": "ReactQueryDevtoolsPanel",
222
- "aria-haspopup": "true",
223
- "aria-expanded": "true"
224
- }, otherCloseButtonProps, {
225
- onClick: e => {
226
- setIsOpen(false);
227
- onCloseClick == null ? void 0 : onCloseClick(e);
228
- },
229
- style: {
230
- position: 'fixed',
231
- zIndex: 99999,
232
- margin: '.5em',
233
- bottom: 0,
234
- ...(position === 'top-right' ? {
235
- right: '0'
236
- } : position === 'top-left' ? {
237
- left: '0'
238
- } : position === 'bottom-right' ? {
239
- right: '0'
240
- } : {
241
- left: '0'
242
- }),
243
- ...closeButtonStyle
244
- }
245
- }), "Close") : null), !isResolvedOpen ? /*#__PURE__*/React__namespace.createElement("button", _rollupPluginBabelHelpers["extends"]({
246
- type: "button"
247
- }, otherToggleButtonProps, {
248
- "aria-label": "Open React Query Devtools",
249
- "aria-controls": "ReactQueryDevtoolsPanel",
250
- "aria-haspopup": "true",
251
- "aria-expanded": "false",
252
- onClick: e => {
253
- setIsOpen(true);
254
- onToggleClick == null ? void 0 : onToggleClick(e);
255
- },
256
- style: {
257
- background: 'none',
258
- border: 0,
259
- padding: 0,
260
- position: 'fixed',
261
- zIndex: 99999,
262
- display: 'inline-flex',
263
- fontSize: '1.5em',
264
- margin: '.5em',
265
- cursor: 'pointer',
266
- width: 'fit-content',
267
- ...(position === 'top-right' ? {
268
- top: '0',
269
- right: '0'
270
- } : position === 'top-left' ? {
271
- top: '0',
272
- left: '0'
273
- } : position === 'bottom-right' ? {
274
- bottom: '0',
275
- right: '0'
276
- } : {
277
- bottom: '0',
278
- left: '0'
279
- }),
280
- ...toggleButtonStyle
281
- }
282
- }), /*#__PURE__*/React__namespace.createElement(Logo["default"], {
283
- "aria-hidden": true
284
- })) : null);
285
- }
286
-
287
- const useSubscribeToQueryCache = (queryCache, getSnapshot) => {
288
- return shim.useSyncExternalStore(React__namespace.useCallback(onStoreChange => queryCache.subscribe(reactQuery.notifyManager.batchCalls(onStoreChange)), [queryCache]), getSnapshot, getSnapshot);
289
- };
290
-
291
- const ReactQueryDevtoolsPanel = /*#__PURE__*/React__namespace.forwardRef(function ReactQueryDevtoolsPanel(props, ref) {
292
- const {
293
- isOpen = true,
294
- styleNonce,
295
- setIsOpen,
296
- handleDragStart,
297
- context,
298
- ...panelProps
299
- } = props;
300
- const queryClient = reactQuery.useQueryClient({
301
- context
302
- });
303
- const queryCache = queryClient.getQueryCache();
304
- const [sort, setSort] = useLocalStorage["default"]('reactQueryDevtoolsSortFn', Object.keys(utils.sortFns)[0]);
305
- const [filter, setFilter] = useLocalStorage["default"]('reactQueryDevtoolsFilter', '');
306
- const [sortDesc, setSortDesc] = useLocalStorage["default"]('reactQueryDevtoolsSortDesc', false);
307
- const sortFn = React__namespace.useMemo(() => utils.sortFns[sort], [sort]);
308
- const queriesCount = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().length);
309
- const [activeQueryHash, setActiveQueryHash] = useLocalStorage["default"]('reactQueryDevtoolsActiveQueryHash', '');
310
- const queries = React__namespace.useMemo(() => {
311
- const unsortedQueries = queryCache.getAll();
312
- const sorted = queriesCount > 0 ? [...unsortedQueries].sort(sortFn) : [];
313
-
314
- if (sortDesc) {
315
- sorted.reverse();
316
- }
317
-
318
- if (!filter) {
319
- return sorted;
320
- }
321
-
322
- let ranked = sorted.map(item => [item, index.rankItem(item.queryHash, filter)]);
323
- ranked = ranked.filter(d => d[1].passed);
324
- ranked = ranked.sort((a, b) => index.compareItems(a[1], b[1]));
325
- return ranked.map(d => d[0]);
326
- }, [sortDesc, sortFn, filter, queriesCount, queryCache]);
327
- const [isMockOffline, setMockOffline] = React__namespace.useState(false);
328
- return /*#__PURE__*/React__namespace.createElement(theme.ThemeProvider, {
329
- theme: theme.defaultTheme
330
- }, /*#__PURE__*/React__namespace.createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
331
- ref: ref,
332
- className: "ReactQueryDevtoolsPanel",
333
- "aria-label": "React Query Devtools Panel",
334
- id: "ReactQueryDevtoolsPanel"
335
- }, panelProps), /*#__PURE__*/React__namespace.createElement("style", {
336
- nonce: styleNonce,
337
- dangerouslySetInnerHTML: {
338
- __html: "\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: " + theme.defaultTheme.backgroundAlt + " " + theme.defaultTheme.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.defaultTheme.backgroundAlt + ";\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: " + theme.defaultTheme.gray + ";\n border-radius: .5em;\n border: 3px solid " + theme.defaultTheme.backgroundAlt + ";\n }\n "
339
- }
340
- }), /*#__PURE__*/React__namespace.createElement("div", {
341
- style: {
342
- position: 'absolute',
343
- left: 0,
344
- top: 0,
345
- width: '100%',
346
- height: '4px',
347
- marginBottom: '-4px',
348
- cursor: 'row-resize',
349
- zIndex: 100000
350
- },
351
- onMouseDown: handleDragStart
352
- }), /*#__PURE__*/React__namespace.createElement("div", {
353
- style: {
354
- flex: '1 1 500px',
355
- minHeight: '40%',
356
- maxHeight: '100%',
357
- overflow: 'auto',
358
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
359
- display: isOpen ? 'flex' : 'none',
360
- flexDirection: 'column'
361
- }
362
- }, /*#__PURE__*/React__namespace.createElement("div", {
363
- style: {
364
- padding: '.5em',
365
- background: theme.defaultTheme.backgroundAlt,
366
- display: 'flex',
367
- justifyContent: 'space-between',
368
- alignItems: 'center'
369
- }
370
- }, /*#__PURE__*/React__namespace.createElement("button", {
371
- type: "button",
372
- "aria-label": "Close React Query Devtools",
373
- "aria-controls": "ReactQueryDevtoolsPanel",
374
- "aria-haspopup": "true",
375
- "aria-expanded": "true",
376
- onClick: () => setIsOpen(false),
377
- style: {
378
- display: 'inline-flex',
379
- background: 'none',
380
- border: 0,
381
- padding: 0,
382
- marginRight: '.5em',
383
- cursor: 'pointer'
384
- }
385
- }, /*#__PURE__*/React__namespace.createElement(Logo["default"], {
386
- "aria-hidden": true
387
- })), /*#__PURE__*/React__namespace.createElement("div", {
388
- style: {
389
- display: 'flex',
390
- flexDirection: 'column'
391
- }
392
- }, /*#__PURE__*/React__namespace.createElement(QueryStatusCount, {
393
- queryCache: queryCache
394
- }), /*#__PURE__*/React__namespace.createElement("div", {
395
- style: {
396
- display: 'flex',
397
- alignItems: 'center'
398
- }
399
- }, /*#__PURE__*/React__namespace.createElement(styledComponents.Input, {
400
- placeholder: "Filter",
401
- "aria-label": "Filter by queryhash",
402
- value: filter != null ? filter : '',
403
- onChange: e => setFilter(e.target.value),
404
- onKeyDown: e => {
405
- if (e.key === 'Escape') setFilter('');
406
- },
407
- style: {
408
- flex: '1',
409
- marginRight: '.5em',
410
- width: '100%'
411
- }
412
- }), !filter ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(styledComponents.Select, {
413
- "aria-label": "Sort queries",
414
- value: sort,
415
- onChange: e => setSort(e.target.value),
416
- style: {
417
- flex: '1',
418
- minWidth: 75,
419
- marginRight: '.5em'
420
- }
421
- }, Object.keys(utils.sortFns).map(key => /*#__PURE__*/React__namespace.createElement("option", {
422
- key: key,
423
- value: key
424
- }, "Sort by ", key))), /*#__PURE__*/React__namespace.createElement(styledComponents.Button, {
425
- type: "button",
426
- onClick: () => setSortDesc(old => !old),
427
- style: {
428
- padding: '.3em .4em',
429
- marginRight: '.5em'
430
- }
431
- }, sortDesc ? '⬇ Desc' : '⬆ Asc'), /*#__PURE__*/React__namespace.createElement(styledComponents.Button, {
432
- type: "button",
433
- onClick: () => {
434
- if (isMockOffline) {
435
- reactQuery.onlineManager.setOnline(undefined);
436
- setMockOffline(false);
437
- window.dispatchEvent(new Event('online'));
438
- } else {
439
- reactQuery.onlineManager.setOnline(false);
440
- setMockOffline(true);
441
- }
442
- },
443
- "aria-label": isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
444
- title: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
445
- style: {
446
- padding: '0',
447
- height: '2em'
448
- }
449
- }, /*#__PURE__*/React__namespace.createElement("svg", {
450
- xmlns: "http://www.w3.org/2000/svg",
451
- width: "2em",
452
- height: "2em",
453
- viewBox: "0 0 24 24",
454
- stroke: isMockOffline ? theme.defaultTheme.danger : 'currentColor',
455
- fill: "none"
456
- }, isMockOffline ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("path", {
457
- stroke: "none",
458
- d: "M0 0h24v24H0z",
459
- fill: "none"
460
- }), /*#__PURE__*/React__namespace.createElement("line", {
461
- x1: "12",
462
- y1: "18",
463
- x2: "12.01",
464
- y2: "18"
465
- }), /*#__PURE__*/React__namespace.createElement("path", {
466
- d: "M9.172 15.172a4 4 0 0 1 5.656 0"
467
- }), /*#__PURE__*/React__namespace.createElement("path", {
468
- 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"
469
- }), /*#__PURE__*/React__namespace.createElement("path", {
470
- d: "M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374"
471
- }), /*#__PURE__*/React__namespace.createElement("line", {
472
- x1: "3",
473
- y1: "3",
474
- x2: "21",
475
- y2: "21"
476
- })) : /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("path", {
477
- stroke: "none",
478
- d: "M0 0h24v24H0z",
479
- fill: "none"
480
- }), /*#__PURE__*/React__namespace.createElement("line", {
481
- x1: "12",
482
- y1: "18",
483
- x2: "12.01",
484
- y2: "18"
485
- }), /*#__PURE__*/React__namespace.createElement("path", {
486
- d: "M9.172 15.172a4 4 0 0 1 5.656 0"
487
- }), /*#__PURE__*/React__namespace.createElement("path", {
488
- d: "M6.343 12.343a8 8 0 0 1 11.314 0"
489
- }), /*#__PURE__*/React__namespace.createElement("path", {
490
- d: "M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0"
491
- }))))) : null))), /*#__PURE__*/React__namespace.createElement("div", {
492
- style: {
493
- overflowY: 'auto',
494
- flex: '1'
495
- }
496
- }, queries.map(query => {
497
- return /*#__PURE__*/React__namespace.createElement(QueryRow, {
498
- queryKey: query.queryKey,
499
- activeQueryHash: activeQueryHash,
500
- setActiveQueryHash: setActiveQueryHash,
501
- key: query.queryHash,
502
- queryCache: queryCache
503
- });
504
- }))), activeQueryHash ? /*#__PURE__*/React__namespace.createElement(ActiveQuery, {
505
- activeQueryHash: activeQueryHash,
506
- queryCache: queryCache,
507
- queryClient: queryClient
508
- }) : null));
509
- });
510
-
511
- const ActiveQuery = ({
512
- queryCache,
513
- activeQueryHash,
514
- queryClient
515
- }) => {
516
- var _useSubscribeToQueryC, _useSubscribeToQueryC2;
517
-
518
- const activeQuery = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().find(query => query.queryHash === activeQueryHash));
519
- const activeQueryState = useSubscribeToQueryCache(queryCache, () => {
520
- var _queryCache$getAll$fi;
521
-
522
- return (_queryCache$getAll$fi = queryCache.getAll().find(query => query.queryHash === activeQueryHash)) == null ? void 0 : _queryCache$getAll$fi.state;
523
- });
524
- const isStale = (_useSubscribeToQueryC = useSubscribeToQueryCache(queryCache, () => {
525
- var _queryCache$getAll$fi2;
526
-
527
- return (_queryCache$getAll$fi2 = queryCache.getAll().find(query => query.queryHash === activeQueryHash)) == null ? void 0 : _queryCache$getAll$fi2.isStale();
528
- })) != null ? _useSubscribeToQueryC : false;
529
- const observerCount = (_useSubscribeToQueryC2 = useSubscribeToQueryCache(queryCache, () => {
530
- var _queryCache$getAll$fi3;
531
-
532
- return (_queryCache$getAll$fi3 = queryCache.getAll().find(query => query.queryHash === activeQueryHash)) == null ? void 0 : _queryCache$getAll$fi3.getObserversCount();
533
- })) != null ? _useSubscribeToQueryC2 : 0;
534
-
535
- const handleRefetch = () => {
536
- const promise = activeQuery == null ? void 0 : activeQuery.fetch();
537
- promise == null ? void 0 : promise.catch(noop);
538
- };
539
-
540
- if (!activeQuery || !activeQueryState) {
541
- return null;
542
- }
543
-
544
- return /*#__PURE__*/React__namespace.createElement(styledComponents.ActiveQueryPanel, null, /*#__PURE__*/React__namespace.createElement("div", {
545
- style: {
546
- padding: '.5em',
547
- background: theme.defaultTheme.backgroundAlt,
548
- position: 'sticky',
549
- top: 0,
550
- zIndex: 1
551
- }
552
- }, "Query Details"), /*#__PURE__*/React__namespace.createElement("div", {
553
- style: {
554
- padding: '.5em'
555
- }
556
- }, /*#__PURE__*/React__namespace.createElement("div", {
557
- style: {
558
- marginBottom: '.5em',
559
- display: 'flex',
560
- alignItems: 'stretch',
561
- justifyContent: 'space-between'
562
- }
563
- }, /*#__PURE__*/React__namespace.createElement(styledComponents.Code, {
564
- style: {
565
- lineHeight: '1.8em'
566
- }
567
- }, /*#__PURE__*/React__namespace.createElement("pre", {
568
- style: {
569
- margin: 0,
570
- padding: 0,
571
- overflow: 'auto'
572
- }
573
- }, JSON.stringify(activeQuery.queryKey, null, 2))), /*#__PURE__*/React__namespace.createElement("span", {
574
- style: {
575
- padding: '0.3em .6em',
576
- borderRadius: '0.4em',
577
- fontWeight: 'bold',
578
- textShadow: '0 2px 10px black',
579
- background: utils.getQueryStatusColor({
580
- queryState: activeQueryState,
581
- isStale: isStale,
582
- observerCount: observerCount,
583
- theme: theme.defaultTheme
584
- }),
585
- flexShrink: 0
586
- }
587
- }, utils.getQueryStatusLabel(activeQuery))), /*#__PURE__*/React__namespace.createElement("div", {
588
- style: {
589
- marginBottom: '.5em',
590
- display: 'flex',
591
- alignItems: 'center',
592
- justifyContent: 'space-between'
593
- }
594
- }, "Observers: ", /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, observerCount)), /*#__PURE__*/React__namespace.createElement("div", {
595
- style: {
596
- display: 'flex',
597
- alignItems: 'center',
598
- justifyContent: 'space-between'
599
- }
600
- }, "Last Updated:", ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, new Date(activeQueryState.dataUpdatedAt).toLocaleTimeString()))), /*#__PURE__*/React__namespace.createElement("div", {
601
- style: {
602
- background: theme.defaultTheme.backgroundAlt,
603
- padding: '.5em',
604
- position: 'sticky',
605
- top: 0,
606
- zIndex: 1
607
- }
608
- }, "Actions"), /*#__PURE__*/React__namespace.createElement("div", {
609
- style: {
610
- padding: '0.5em'
611
- }
612
- }, /*#__PURE__*/React__namespace.createElement(styledComponents.Button, {
613
- type: "button",
614
- onClick: handleRefetch,
615
- disabled: activeQueryState.fetchStatus === 'fetching',
616
- style: {
617
- background: theme.defaultTheme.active
618
- }
619
- }, "Refetch"), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.Button, {
620
- type: "button",
621
- onClick: () => queryClient.invalidateQueries(activeQuery),
622
- style: {
623
- background: theme.defaultTheme.warning,
624
- color: theme.defaultTheme.inputTextColor
625
- }
626
- }, "Invalidate"), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.Button, {
627
- type: "button",
628
- onClick: () => queryClient.resetQueries(activeQuery),
629
- style: {
630
- background: theme.defaultTheme.gray
631
- }
632
- }, "Reset"), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.Button, {
633
- type: "button",
634
- onClick: () => queryClient.removeQueries(activeQuery),
635
- style: {
636
- background: theme.defaultTheme.danger
637
- }
638
- }, "Remove")), /*#__PURE__*/React__namespace.createElement("div", {
639
- style: {
640
- background: theme.defaultTheme.backgroundAlt,
641
- padding: '.5em',
642
- position: 'sticky',
643
- top: 0,
644
- zIndex: 1
645
- }
646
- }, "Data Explorer"), /*#__PURE__*/React__namespace.createElement("div", {
647
- style: {
648
- padding: '.5em'
649
- }
650
- }, /*#__PURE__*/React__namespace.createElement(Explorer["default"], {
651
- label: "Data",
652
- value: activeQueryState.data,
653
- defaultExpanded: {}
654
- })), /*#__PURE__*/React__namespace.createElement("div", {
655
- style: {
656
- background: theme.defaultTheme.backgroundAlt,
657
- padding: '.5em',
658
- position: 'sticky',
659
- top: 0,
660
- zIndex: 1
661
- }
662
- }, "Query Explorer"), /*#__PURE__*/React__namespace.createElement("div", {
663
- style: {
664
- padding: '.5em'
665
- }
666
- }, /*#__PURE__*/React__namespace.createElement(Explorer["default"], {
667
- label: "Query",
668
- value: activeQuery,
669
- defaultExpanded: {
670
- queryKey: true
671
- }
672
- })));
673
- };
674
-
675
- const QueryStatusCount = ({
676
- queryCache
677
- }) => {
678
- const hasFresh = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'fresh').length);
679
- const hasFetching = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'fetching').length);
680
- const hasPaused = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'paused').length);
681
- const hasStale = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'stale').length);
682
- const hasInactive = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'inactive').length);
683
- return /*#__PURE__*/React__namespace.createElement(styledComponents.QueryKeys, {
684
- style: {
685
- marginBottom: '.5em'
686
- }
687
- }, /*#__PURE__*/React__namespace.createElement(styledComponents.QueryKey, {
688
- style: {
689
- background: theme.defaultTheme.success,
690
- opacity: hasFresh ? 1 : 0.3
691
- }
692
- }, "fresh ", /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, "(", hasFresh, ")")), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.QueryKey, {
693
- style: {
694
- background: theme.defaultTheme.active,
695
- opacity: hasFetching ? 1 : 0.3
696
- }
697
- }, "fetching ", /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, "(", hasFetching, ")")), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.QueryKey, {
698
- style: {
699
- background: theme.defaultTheme.paused,
700
- opacity: hasPaused ? 1 : 0.3
701
- }
702
- }, "paused ", /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, "(", hasPaused, ")")), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.QueryKey, {
703
- style: {
704
- background: theme.defaultTheme.warning,
705
- color: 'black',
706
- textShadow: '0',
707
- opacity: hasStale ? 1 : 0.3
708
- }
709
- }, "stale ", /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, "(", hasStale, ")")), ' ', /*#__PURE__*/React__namespace.createElement(styledComponents.QueryKey, {
710
- style: {
711
- background: theme.defaultTheme.gray,
712
- opacity: hasInactive ? 1 : 0.3
713
- }
714
- }, "inactive ", /*#__PURE__*/React__namespace.createElement(styledComponents.Code, null, "(", hasInactive, ")")));
715
- };
716
-
717
- const QueryRow = ({
718
- queryKey,
719
- setActiveQueryHash,
720
- activeQueryHash,
721
- queryCache
722
- }) => {
723
- var _useSubscribeToQueryC3, _useSubscribeToQueryC4, _useSubscribeToQueryC5, _useSubscribeToQueryC6;
724
-
725
- const queryHash = (_useSubscribeToQueryC3 = useSubscribeToQueryCache(queryCache, () => {
726
- var _queryCache$find;
727
-
728
- return (_queryCache$find = queryCache.find(queryKey)) == null ? void 0 : _queryCache$find.queryHash;
729
- })) != null ? _useSubscribeToQueryC3 : '';
730
- const queryState = useSubscribeToQueryCache(queryCache, () => {
731
- var _queryCache$find2;
732
-
733
- return (_queryCache$find2 = queryCache.find(queryKey)) == null ? void 0 : _queryCache$find2.state;
734
- });
735
- const isStale = (_useSubscribeToQueryC4 = useSubscribeToQueryCache(queryCache, () => {
736
- var _queryCache$find3;
737
-
738
- return (_queryCache$find3 = queryCache.find(queryKey)) == null ? void 0 : _queryCache$find3.isStale();
739
- })) != null ? _useSubscribeToQueryC4 : false;
740
- const isDisabled = (_useSubscribeToQueryC5 = useSubscribeToQueryCache(queryCache, () => {
741
- var _queryCache$find4;
742
-
743
- return (_queryCache$find4 = queryCache.find(queryKey)) == null ? void 0 : _queryCache$find4.isDisabled();
744
- })) != null ? _useSubscribeToQueryC5 : false;
745
- const observerCount = (_useSubscribeToQueryC6 = useSubscribeToQueryCache(queryCache, () => {
746
- var _queryCache$find5;
747
-
748
- return (_queryCache$find5 = queryCache.find(queryKey)) == null ? void 0 : _queryCache$find5.getObserversCount();
749
- })) != null ? _useSubscribeToQueryC6 : 0;
750
-
751
- if (!queryState) {
752
- return null;
753
- }
754
-
755
- return /*#__PURE__*/React__namespace.createElement("div", {
756
- role: "button",
757
- "aria-label": "Open query details for " + queryHash,
758
- onClick: () => setActiveQueryHash(activeQueryHash === queryHash ? '' : queryHash),
759
- style: {
760
- display: 'flex',
761
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
762
- cursor: 'pointer',
763
- background: queryHash === activeQueryHash ? 'rgba(255,255,255,.1)' : undefined
764
- }
765
- }, /*#__PURE__*/React__namespace.createElement("div", {
766
- style: {
767
- flex: '0 0 auto',
768
- width: '2em',
769
- height: '2em',
770
- background: utils.getQueryStatusColor({
771
- queryState,
772
- isStale,
773
- observerCount,
774
- theme: theme.defaultTheme
775
- }),
776
- display: 'flex',
777
- alignItems: 'center',
778
- justifyContent: 'center',
779
- fontWeight: 'bold',
780
- textShadow: isStale ? '0' : '0 0 10px black',
781
- color: isStale ? 'black' : 'white'
782
- }
783
- }, observerCount), isDisabled ? /*#__PURE__*/React__namespace.createElement("div", {
784
- style: {
785
- flex: '0 0 auto',
786
- height: '2em',
787
- background: theme.defaultTheme.gray,
788
- display: 'flex',
789
- alignItems: 'center',
790
- fontWeight: 'bold',
791
- padding: '0 0.5em'
792
- }
793
- }, "disabled") : null, /*#__PURE__*/React__namespace.createElement(styledComponents.Code, {
794
- style: {
795
- padding: '.5em'
796
- }
797
- }, "" + queryHash));
798
- }; // eslint-disable-next-line @typescript-eslint/no-empty-function
799
-
800
-
801
- function noop() {}
802
-
803
- exports.ReactQueryDevtools = ReactQueryDevtools;
804
- exports.ReactQueryDevtoolsPanel = ReactQueryDevtoolsPanel;
805
- //# sourceMappingURL=devtools.js.map