@tanstack/react-query-devtools 5.0.0-alpha.26 → 5.0.0-alpha.27

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 (159) hide show
  1. package/build/lib/__tests__/devtools.test.d.ts +0 -1
  2. package/build/lib/__tests__/devtools.test.d.ts.map +1 -1
  3. package/build/lib/devtools.d.ts +8 -30
  4. package/build/lib/devtools.d.ts.map +1 -1
  5. package/build/lib/devtools.esm.js +47 -226
  6. package/build/lib/devtools.esm.js.map +1 -1
  7. package/build/lib/devtools.js +45 -244
  8. package/build/lib/devtools.js.map +1 -1
  9. package/build/lib/devtools.mjs +47 -225
  10. package/build/lib/devtools.mjs.map +1 -1
  11. package/build/lib/index.d.ts +0 -1
  12. package/build/lib/index.d.ts.map +1 -1
  13. package/build/lib/index.esm.js +8 -5
  14. package/build/lib/index.esm.js.map +1 -1
  15. package/build/lib/index.js +7 -5
  16. package/build/lib/index.js.map +1 -1
  17. package/build/lib/index.mjs +8 -5
  18. package/build/lib/index.mjs.map +1 -1
  19. package/build/lib/index.prod.d.ts +0 -1
  20. package/build/lib/index.prod.esm.js +7901 -1501
  21. package/build/lib/index.prod.esm.js.map +1 -1
  22. package/build/lib/index.prod.js +7909 -1528
  23. package/build/lib/index.prod.js.map +1 -1
  24. package/build/lib/index.prod.mjs +7922 -1489
  25. package/build/lib/index.prod.mjs.map +1 -1
  26. package/build/umd/index.development.js +7146 -2375
  27. package/build/umd/index.development.js.map +1 -1
  28. package/build/umd/index.production.js +1 -1
  29. package/build/umd/index.production.js.map +1 -1
  30. package/package.json +2 -3
  31. package/src/__tests__/devtools.test.tsx +1 -1135
  32. package/src/devtools.tsx +52 -306
  33. package/src/index.ts +6 -6
  34. package/build/lib/CachePanel/ActiveQuery.d.ts +0 -19
  35. package/build/lib/CachePanel/ActiveQuery.d.ts.map +0 -1
  36. package/build/lib/CachePanel/ActiveQuery.esm.js +0 -277
  37. package/build/lib/CachePanel/ActiveQuery.esm.js.map +0 -1
  38. package/build/lib/CachePanel/ActiveQuery.js +0 -281
  39. package/build/lib/CachePanel/ActiveQuery.js.map +0 -1
  40. package/build/lib/CachePanel/ActiveQuery.mjs +0 -261
  41. package/build/lib/CachePanel/ActiveQuery.mjs.map +0 -1
  42. package/build/lib/CachePanel/CachePanel.d.ts +0 -58
  43. package/build/lib/CachePanel/CachePanel.d.ts.map +0 -1
  44. package/build/lib/CachePanel/CachePanel.esm.js +0 -310
  45. package/build/lib/CachePanel/CachePanel.esm.js.map +0 -1
  46. package/build/lib/CachePanel/CachePanel.js +0 -315
  47. package/build/lib/CachePanel/CachePanel.js.map +0 -1
  48. package/build/lib/CachePanel/CachePanel.mjs +0 -310
  49. package/build/lib/CachePanel/CachePanel.mjs.map +0 -1
  50. package/build/lib/CachePanel/Header/QueryStatusCount.d.ts +0 -8
  51. package/build/lib/CachePanel/Header/QueryStatusCount.d.ts.map +0 -1
  52. package/build/lib/CachePanel/Header/QueryStatusCount.esm.js +0 -49
  53. package/build/lib/CachePanel/Header/QueryStatusCount.esm.js.map +0 -1
  54. package/build/lib/CachePanel/Header/QueryStatusCount.js +0 -53
  55. package/build/lib/CachePanel/Header/QueryStatusCount.js.map +0 -1
  56. package/build/lib/CachePanel/Header/QueryStatusCount.mjs +0 -49
  57. package/build/lib/CachePanel/Header/QueryStatusCount.mjs.map +0 -1
  58. package/build/lib/CachePanel/QueryRow.d.ts +0 -14
  59. package/build/lib/CachePanel/QueryRow.d.ts.map +0 -1
  60. package/build/lib/CachePanel/QueryRow.esm.js +0 -98
  61. package/build/lib/CachePanel/QueryRow.esm.js.map +0 -1
  62. package/build/lib/CachePanel/QueryRow.js +0 -102
  63. package/build/lib/CachePanel/QueryRow.js.map +0 -1
  64. package/build/lib/CachePanel/QueryRow.mjs +0 -82
  65. package/build/lib/CachePanel/QueryRow.mjs.map +0 -1
  66. package/build/lib/Explorer.d.ts +0 -51
  67. package/build/lib/Explorer.d.ts.map +0 -1
  68. package/build/lib/Explorer.esm.js +0 -254
  69. package/build/lib/Explorer.esm.js.map +0 -1
  70. package/build/lib/Explorer.js +0 -288
  71. package/build/lib/Explorer.js.map +0 -1
  72. package/build/lib/Explorer.mjs +0 -254
  73. package/build/lib/Explorer.mjs.map +0 -1
  74. package/build/lib/Logo.d.ts +0 -2
  75. package/build/lib/Logo.esm.js +0 -32
  76. package/build/lib/Logo.esm.js.map +0 -1
  77. package/build/lib/Logo.js +0 -55
  78. package/build/lib/Logo.js.map +0 -1
  79. package/build/lib/Logo.mjs +0 -32
  80. package/build/lib/Logo.mjs.map +0 -1
  81. package/build/lib/__tests__/Explorer.test.d.ts +0 -2
  82. package/build/lib/__tests__/Explorer.test.d.ts.map +0 -1
  83. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js +0 -17
  84. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
  85. package/build/lib/_virtual/_rollupPluginBabelHelpers.js +0 -19
  86. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  87. package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs +0 -17
  88. package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -1
  89. package/build/lib/noop.d.ts +0 -3
  90. package/build/lib/screenreader.d.ts +0 -4
  91. package/build/lib/screenreader.esm.js +0 -17
  92. package/build/lib/screenreader.esm.js.map +0 -1
  93. package/build/lib/screenreader.js +0 -40
  94. package/build/lib/screenreader.js.map +0 -1
  95. package/build/lib/screenreader.mjs +0 -17
  96. package/build/lib/screenreader.mjs.map +0 -1
  97. package/build/lib/styledComponents.d.ts +0 -9
  98. package/build/lib/styledComponents.d.ts.map +0 -1
  99. package/build/lib/styledComponents.esm.js +0 -103
  100. package/build/lib/styledComponents.esm.js.map +0 -1
  101. package/build/lib/styledComponents.js +0 -112
  102. package/build/lib/styledComponents.js.map +0 -1
  103. package/build/lib/styledComponents.mjs +0 -103
  104. package/build/lib/styledComponents.mjs.map +0 -1
  105. package/build/lib/theme.d.ts +0 -37
  106. package/build/lib/theme.esm.js +0 -33
  107. package/build/lib/theme.esm.js.map +0 -1
  108. package/build/lib/theme.js +0 -56
  109. package/build/lib/theme.js.map +0 -1
  110. package/build/lib/theme.mjs +0 -33
  111. package/build/lib/theme.mjs.map +0 -1
  112. package/build/lib/types.d.ts +0 -12
  113. package/build/lib/types.d.ts.map +0 -1
  114. package/build/lib/useLocalStorage.d.ts +0 -2
  115. package/build/lib/useLocalStorage.esm.js +0 -40
  116. package/build/lib/useLocalStorage.esm.js.map +0 -1
  117. package/build/lib/useLocalStorage.js +0 -63
  118. package/build/lib/useLocalStorage.js.map +0 -1
  119. package/build/lib/useLocalStorage.mjs +0 -40
  120. package/build/lib/useLocalStorage.mjs.map +0 -1
  121. package/build/lib/useMediaQuery.d.ts +0 -2
  122. package/build/lib/useMediaQuery.esm.js +0 -36
  123. package/build/lib/useMediaQuery.esm.js.map +0 -1
  124. package/build/lib/useMediaQuery.js +0 -59
  125. package/build/lib/useMediaQuery.js.map +0 -1
  126. package/build/lib/useMediaQuery.mjs +0 -36
  127. package/build/lib/useMediaQuery.mjs.map +0 -1
  128. package/build/lib/useSubscribeToQueryCache.d.ts +0 -4
  129. package/build/lib/useSubscribeToQueryCache.d.ts.map +0 -1
  130. package/build/lib/useSubscribeToQueryCache.esm.js +0 -15
  131. package/build/lib/useSubscribeToQueryCache.esm.js.map +0 -1
  132. package/build/lib/useSubscribeToQueryCache.js +0 -19
  133. package/build/lib/useSubscribeToQueryCache.js.map +0 -1
  134. package/build/lib/useSubscribeToQueryCache.mjs +0 -15
  135. package/build/lib/useSubscribeToQueryCache.mjs.map +0 -1
  136. package/build/lib/utils.d.ts +0 -80
  137. package/build/lib/utils.d.ts.map +0 -1
  138. package/build/lib/utils.esm.js +0 -184
  139. package/build/lib/utils.esm.js.map +0 -1
  140. package/build/lib/utils.js +0 -218
  141. package/build/lib/utils.js.map +0 -1
  142. package/build/lib/utils.mjs +0 -184
  143. package/build/lib/utils.mjs.map +0 -1
  144. package/src/CachePanel/ActiveQuery.tsx +0 -388
  145. package/src/CachePanel/CachePanel.tsx +0 -439
  146. package/src/CachePanel/Header/QueryStatusCount.tsx +0 -93
  147. package/src/CachePanel/QueryRow.tsx +0 -125
  148. package/src/Explorer.tsx +0 -385
  149. package/src/Logo.tsx +0 -32
  150. package/src/__tests__/Explorer.test.tsx +0 -150
  151. package/src/noop.ts +0 -7
  152. package/src/screenreader.tsx +0 -16
  153. package/src/styledComponents.ts +0 -126
  154. package/src/theme.tsx +0 -33
  155. package/src/types.ts +0 -12
  156. package/src/useLocalStorage.ts +0 -52
  157. package/src/useMediaQuery.ts +0 -34
  158. package/src/useSubscribeToQueryCache.ts +0 -26
  159. package/src/utils.ts +0 -319
@@ -1,315 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
6
- var React = require('react');
7
- var reactQuery = require('@tanstack/react-query');
8
- var matchSorterUtils = require('@tanstack/match-sorter-utils');
9
- var styledComponents = require('../styledComponents.js');
10
- var useSubscribeToQueryCache = require('../useSubscribeToQueryCache.js');
11
- var QueryStatusCount = require('./Header/QueryStatusCount.js');
12
- var QueryRow = require('./QueryRow.js');
13
- var ActiveQuery = require('./ActiveQuery.js');
14
- var utils = require('../utils.js');
15
- var theme = require('../theme.js');
16
- var useLocalStorage = require('../useLocalStorage.js');
17
- var Logo = require('../Logo.js');
18
- var screenreader = require('../screenreader.js');
19
-
20
- const ReactQueryDevtoolsPanel = /*#__PURE__*/React.forwardRef(function ReactQueryDevtoolsPanel(props, ref) {
21
- const {
22
- isOpen = true,
23
- styleNonce,
24
- setIsOpen,
25
- queryClient,
26
- onDragStart,
27
- onPositionChange,
28
- showCloseButton,
29
- position,
30
- closeButtonProps = {},
31
- errorTypes = [],
32
- ...panelProps
33
- } = props;
34
- const {
35
- onClick: onCloseClick,
36
- ...otherCloseButtonProps
37
- } = closeButtonProps;
38
- const client = reactQuery.useQueryClient(queryClient);
39
- const queryCache = client.getQueryCache();
40
- const [sort, setSort] = useLocalStorage.default('reactQueryDevtoolsSortFn', Object.keys(utils.sortFns)[0]);
41
- const [filter, setFilter] = useLocalStorage.default('reactQueryDevtoolsFilter', '');
42
- const [baseSort, setBaseSort] = useLocalStorage.default('reactQueryDevtoolsBaseSort', 1);
43
- const sortFn = React.useMemo(() => utils.sortFns[sort], [sort]);
44
- const queriesCount = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().length, !isOpen);
45
- const [activeQueryHash, setActiveQueryHash] = useLocalStorage.default('reactQueryDevtoolsActiveQueryHash', '');
46
- const queries = React.useMemo(() => {
47
- const unsortedQueries = queryCache.getAll();
48
- if (queriesCount === 0) {
49
- return [];
50
- }
51
- const filtered = filter ? unsortedQueries.filter(item => matchSorterUtils.rankItem(item.queryHash, filter).passed) : [...unsortedQueries];
52
- const sorted = sortFn ? filtered.sort((a, b) => sortFn(a, b) * baseSort) : filtered;
53
- return sorted;
54
- }, [baseSort, sortFn, filter, queriesCount, queryCache]);
55
- const [isMockOffline, setMockOffline] = React.useState(false);
56
- return /*#__PURE__*/React.createElement(theme.ThemeProvider, {
57
- theme: theme.defaultTheme
58
- }, /*#__PURE__*/React.createElement(styledComponents.Panel, _rollupPluginBabelHelpers.extends({
59
- ref: ref,
60
- className: "ReactQueryDevtoolsPanel",
61
- "aria-label": "React Query Devtools Panel",
62
- id: "ReactQueryDevtoolsPanel"
63
- }, panelProps, {
64
- style: {
65
- height: utils.defaultPanelSize,
66
- position: 'relative',
67
- ...panelProps.style
68
- }
69
- }), /*#__PURE__*/React.createElement("style", {
70
- nonce: styleNonce,
71
- dangerouslySetInnerHTML: {
72
- __html: `
73
- .ReactQueryDevtoolsPanel * {
74
- scrollbar-color: ${theme.defaultTheme.backgroundAlt} ${theme.defaultTheme.gray};
75
- }
76
-
77
- .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {
78
- width: 1em;
79
- height: 1em;
80
- }
81
-
82
- .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {
83
- background: ${theme.defaultTheme.backgroundAlt};
84
- }
85
-
86
- .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {
87
- background: ${theme.defaultTheme.gray};
88
- border-radius: .5em;
89
- border: 3px solid ${theme.defaultTheme.backgroundAlt};
90
- }
91
- `
92
- }
93
- }), /*#__PURE__*/React.createElement("div", {
94
- style: utils.getResizeHandleStyle(position),
95
- onMouseDown: onDragStart
96
- }), isOpen && /*#__PURE__*/React.createElement("div", {
97
- style: {
98
- flex: '1 1 500px',
99
- minHeight: '40%',
100
- maxHeight: '100%',
101
- overflow: 'auto',
102
- borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
103
- display: 'flex',
104
- flexDirection: 'column'
105
- }
106
- }, /*#__PURE__*/React.createElement("div", {
107
- style: {
108
- padding: '.5em',
109
- background: theme.defaultTheme.backgroundAlt,
110
- display: 'flex',
111
- justifyContent: 'space-between',
112
- alignItems: 'center'
113
- }
114
- }, /*#__PURE__*/React.createElement("button", {
115
- type: "button",
116
- "aria-label": "Close React Query Devtools",
117
- "aria-controls": "ReactQueryDevtoolsPanel",
118
- "aria-haspopup": "true",
119
- "aria-expanded": "true",
120
- onClick: () => setIsOpen(false),
121
- style: {
122
- display: 'inline-flex',
123
- background: 'none',
124
- border: 0,
125
- padding: 0,
126
- marginRight: '.5em',
127
- cursor: 'pointer'
128
- }
129
- }, /*#__PURE__*/React.createElement(Logo.default, {
130
- "aria-hidden": true
131
- }), /*#__PURE__*/React.createElement(screenreader.default, {
132
- text: "Close React Query Devtools"
133
- })), /*#__PURE__*/React.createElement("div", {
134
- style: {
135
- display: 'flex',
136
- flexDirection: 'column'
137
- }
138
- }, /*#__PURE__*/React.createElement("div", {
139
- style: {
140
- display: 'flex',
141
- justifyContent: 'space-between',
142
- alignItems: 'center',
143
- marginBottom: '.5em'
144
- }
145
- }, /*#__PURE__*/React.createElement(QueryStatusCount.default, {
146
- queryCache: queryCache
147
- }), position && onPositionChange ? /*#__PURE__*/React.createElement(styledComponents.Select, {
148
- "aria-label": "Panel position",
149
- value: position,
150
- style: {
151
- marginInlineStart: '.5em'
152
- },
153
- onChange: e => onPositionChange(e.target.value)
154
- }, /*#__PURE__*/React.createElement("option", {
155
- value: "left"
156
- }, "Left"), /*#__PURE__*/React.createElement("option", {
157
- value: "right"
158
- }, "Right"), /*#__PURE__*/React.createElement("option", {
159
- value: "top"
160
- }, "Top"), /*#__PURE__*/React.createElement("option", {
161
- value: "bottom"
162
- }, "Bottom")) : null), /*#__PURE__*/React.createElement("div", {
163
- style: {
164
- display: 'flex',
165
- alignItems: 'center',
166
- flexWrap: 'wrap',
167
- gap: '0.5em'
168
- }
169
- }, /*#__PURE__*/React.createElement(styledComponents.Input, {
170
- placeholder: "Filter",
171
- "aria-label": "Filter by queryhash",
172
- value: filter != null ? filter : '',
173
- onChange: e => setFilter(e.target.value),
174
- onKeyDown: e => {
175
- if (e.key === 'Escape') setFilter('');
176
- },
177
- style: {
178
- flex: '1',
179
- width: '100%'
180
- }
181
- }), /*#__PURE__*/React.createElement(styledComponents.Select, {
182
- "aria-label": "Sort queries",
183
- value: sort,
184
- onChange: e => setSort(e.target.value),
185
- style: {
186
- flex: '1',
187
- minWidth: 75,
188
- marginRight: '.5em'
189
- }
190
- }, Object.keys(utils.sortFns).map(key => /*#__PURE__*/React.createElement("option", {
191
- key: key,
192
- value: key
193
- }, "Sort by ", key))), /*#__PURE__*/React.createElement(styledComponents.Button, {
194
- type: "button",
195
- onClick: () => setBaseSort(old => old * -1),
196
- style: {
197
- padding: '.3em .4em',
198
- marginRight: '.5em'
199
- }
200
- }, baseSort === 1 ? '⬆ Asc' : '⬇ Desc'), /*#__PURE__*/React.createElement(styledComponents.Button, {
201
- title: "Clear cache",
202
- "aria-label": "Clear cache",
203
- type: "button",
204
- onClick: () => queryCache.clear(),
205
- style: {
206
- padding: '.3em .4em',
207
- marginRight: '.5em'
208
- }
209
- }, "Clear"), /*#__PURE__*/React.createElement(styledComponents.Button, {
210
- type: "button",
211
- onClick: () => {
212
- if (isMockOffline) {
213
- reactQuery.onlineManager.setOnline(undefined);
214
- setMockOffline(false);
215
- window.dispatchEvent(new Event('online'));
216
- } else {
217
- reactQuery.onlineManager.setOnline(false);
218
- setMockOffline(true);
219
- window.dispatchEvent(new Event('offline'));
220
- }
221
- },
222
- "aria-label": isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
223
- title: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
224
- style: {
225
- padding: '0',
226
- height: '2em'
227
- }
228
- }, /*#__PURE__*/React.createElement("svg", {
229
- xmlns: "http://www.w3.org/2000/svg",
230
- width: "2em",
231
- height: "2em",
232
- viewBox: "0 0 24 24",
233
- stroke: isMockOffline ? theme.defaultTheme.danger : 'currentColor',
234
- fill: "none"
235
- }, isMockOffline ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
236
- stroke: "none",
237
- d: "M0 0h24v24H0z",
238
- fill: "none"
239
- }), /*#__PURE__*/React.createElement("line", {
240
- x1: "12",
241
- y1: "18",
242
- x2: "12.01",
243
- y2: "18"
244
- }), /*#__PURE__*/React.createElement("path", {
245
- d: "M9.172 15.172a4 4 0 0 1 5.656 0"
246
- }), /*#__PURE__*/React.createElement("path", {
247
- 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"
248
- }), /*#__PURE__*/React.createElement("path", {
249
- d: "M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374"
250
- }), /*#__PURE__*/React.createElement("line", {
251
- x1: "3",
252
- y1: "3",
253
- x2: "21",
254
- y2: "21"
255
- })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
256
- stroke: "none",
257
- d: "M0 0h24v24H0z",
258
- fill: "none"
259
- }), /*#__PURE__*/React.createElement("line", {
260
- x1: "12",
261
- y1: "18",
262
- x2: "12.01",
263
- y2: "18"
264
- }), /*#__PURE__*/React.createElement("path", {
265
- d: "M9.172 15.172a4 4 0 0 1 5.656 0"
266
- }), /*#__PURE__*/React.createElement("path", {
267
- d: "M6.343 12.343a8 8 0 0 1 11.314 0"
268
- }), /*#__PURE__*/React.createElement("path", {
269
- d: "M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0"
270
- }))), /*#__PURE__*/React.createElement(screenreader.default, {
271
- text: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior'
272
- }))))), /*#__PURE__*/React.createElement("div", {
273
- style: {
274
- overflowY: 'auto',
275
- flex: '1'
276
- }
277
- }, queries.map(query => {
278
- return /*#__PURE__*/React.createElement(QueryRow.default, {
279
- queryKey: query.queryKey,
280
- activeQueryHash: activeQueryHash,
281
- setActiveQueryHash: setActiveQueryHash,
282
- key: query.queryHash,
283
- queryCache: queryCache
284
- });
285
- }))), activeQueryHash && isOpen ? /*#__PURE__*/React.createElement(ActiveQuery.default, {
286
- activeQueryHash: activeQueryHash,
287
- queryCache: queryCache,
288
- queryClient: client,
289
- errorTypes: errorTypes
290
- }) : null, showCloseButton ? /*#__PURE__*/React.createElement(styledComponents.Button, _rollupPluginBabelHelpers.extends({
291
- type: "button",
292
- "aria-controls": "ReactQueryDevtoolsPanel",
293
- "aria-haspopup": "true",
294
- "aria-expanded": "true"
295
- }, otherCloseButtonProps, {
296
- style: {
297
- position: 'absolute',
298
- zIndex: 99999,
299
- margin: '.5em',
300
- bottom: 0,
301
- left: 0,
302
- ...otherCloseButtonProps.style
303
- },
304
- onClick: e => {
305
- setIsOpen(false);
306
- onCloseClick == null ? void 0 : onCloseClick(e);
307
- }
308
- }), "Close") : null));
309
- });
310
- ReactQueryDevtoolsPanel.displayName = 'ReactQueryDevtoolsPanel';
311
- var ReactQueryDevtoolsPanel$1 = ReactQueryDevtoolsPanel;
312
-
313
- exports.ReactQueryDevtoolsPanel = ReactQueryDevtoolsPanel;
314
- exports.default = ReactQueryDevtoolsPanel$1;
315
- //# sourceMappingURL=CachePanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CachePanel.js","sources":["../../../src/CachePanel/CachePanel.tsx"],"sourcesContent":["import React from 'react'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useQueryClient, onlineManager } from '@tanstack/react-query'\nimport { rankItem } from '@tanstack/match-sorter-utils'\n\nimport { Panel, Button, Input, Select } from '../styledComponents'\nimport useSubscribeToQueryCache from '../useSubscribeToQueryCache'\nimport QueryStatusCount from './Header/QueryStatusCount'\nimport QueryRow from './QueryRow'\nimport ActiveQuery from './ActiveQuery'\nimport type { Side } from '../utils'\nimport { sortFns, getResizeHandleStyle, defaultPanelSize } from '../utils'\nimport { ThemeProvider, defaultTheme as theme } from '../theme'\nimport type { DevToolsErrorType } from '../types'\nimport useLocalStorage from '../useLocalStorage'\nimport Logo from '../Logo'\nimport ScreenReader from '../screenreader'\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 * Use this so you can define custom errors that can be shown in the devtools.\n */\n errorTypes?: DevToolsErrorType[]\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 errorTypes = [],\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 flexWrap: 'wrap',\n gap: '0.5em',\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 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 title=\"Clear cache\"\n aria-label=\"Clear cache\"\n type=\"button\"\n onClick={() => queryCache.clear()}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n Clear\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 window.dispatchEvent(new Event('offline'))\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 errorTypes={errorTypes}\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\nReactQueryDevtoolsPanel.displayName = 'ReactQueryDevtoolsPanel'\n\nexport default ReactQueryDevtoolsPanel\n"],"names":["ReactQueryDevtoolsPanel","React","forwardRef","props","ref","isOpen","styleNonce","setIsOpen","queryClient","onDragStart","onPositionChange","showCloseButton","position","closeButtonProps","errorTypes","panelProps","onClick","onCloseClick","otherCloseButtonProps","client","useQueryClient","queryCache","getQueryCache","sort","setSort","useLocalStorage","Object","keys","sortFns","filter","setFilter","baseSort","setBaseSort","sortFn","useMemo","queriesCount","useSubscribeToQueryCache","getAll","length","activeQueryHash","setActiveQueryHash","queries","unsortedQueries","filtered","item","rankItem","queryHash","passed","sorted","a","b","isMockOffline","setMockOffline","useState","ThemeProvider","theme","Panel","_extends","height","defaultPanelSize","style","__html","backgroundAlt","gray","getResizeHandleStyle","flex","minHeight","maxHeight","overflow","borderRight","grayAlt","display","flexDirection","padding","background","justifyContent","alignItems","border","marginRight","cursor","Logo","ScreenReader","marginBottom","QueryStatusCount","Select","marginInlineStart","e","target","value","flexWrap","gap","Input","key","width","minWidth","map","Button","old","clear","onlineManager","setOnline","undefined","window","dispatchEvent","Event","danger","overflowY","query","QueryRow","queryKey","ActiveQuery","zIndex","margin","bottom","left","displayName"],"mappings":"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"}