@tanstack/router-devtools 0.0.1-alpha.1 → 0.0.1-beta.86

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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/build/cjs/{packages/react-router-devtools/src/Explorer.js → Explorer.js} +52 -81
  4. package/build/cjs/Explorer.js.map +1 -0
  5. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +1 -19
  6. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  7. package/build/cjs/devtools.js +583 -0
  8. package/build/cjs/devtools.js.map +1 -0
  9. package/build/cjs/{packages/react-router-devtools/src/index.js → index.js} +1 -1
  10. package/build/cjs/{packages/react-router-devtools/src/styledComponents.js → styledComponents.js} +10 -38
  11. package/build/cjs/styledComponents.js.map +1 -0
  12. package/build/cjs/{packages/react-router-devtools/src/theme.js → theme.js} +6 -9
  13. package/build/cjs/theme.js.map +1 -0
  14. package/build/cjs/{packages/react-router-devtools/src/useLocalStorage.js → useLocalStorage.js} +3 -10
  15. package/build/cjs/useLocalStorage.js.map +1 -0
  16. package/build/cjs/{packages/react-router-devtools/src/useMediaQuery.js → useMediaQuery.js} +13 -12
  17. package/build/cjs/useMediaQuery.js.map +1 -0
  18. package/build/cjs/{packages/react-router-devtools/src/utils.js → utils.js} +25 -35
  19. package/build/cjs/utils.js.map +1 -0
  20. package/build/esm/index.js +308 -1337
  21. package/build/esm/index.js.map +1 -1
  22. package/build/stats-html.html +59 -49
  23. package/build/stats-react.json +223 -9444
  24. package/build/types/index.d.ts +6 -5
  25. package/build/umd/index.development.js +347 -1316
  26. package/build/umd/index.development.js.map +1 -1
  27. package/build/umd/index.production.js +22 -2
  28. package/build/umd/index.production.js.map +1 -1
  29. package/package.json +11 -10
  30. package/src/Explorer.tsx +14 -12
  31. package/src/devtools.tsx +263 -240
  32. package/src/useLocalStorage.ts +5 -5
  33. package/src/useMediaQuery.ts +3 -0
  34. package/src/utils.ts +35 -17
  35. package/build/cjs/packages/react-router-devtools/src/Explorer.js.map +0 -1
  36. package/build/cjs/packages/react-router-devtools/src/Logo.js +0 -73
  37. package/build/cjs/packages/react-router-devtools/src/Logo.js.map +0 -1
  38. package/build/cjs/packages/react-router-devtools/src/devtools.js +0 -654
  39. package/build/cjs/packages/react-router-devtools/src/devtools.js.map +0 -1
  40. package/build/cjs/packages/react-router-devtools/src/styledComponents.js.map +0 -1
  41. package/build/cjs/packages/react-router-devtools/src/theme.js.map +0 -1
  42. package/build/cjs/packages/react-router-devtools/src/useLocalStorage.js.map +0 -1
  43. package/build/cjs/packages/react-router-devtools/src/useMediaQuery.js.map +0 -1
  44. package/build/cjs/packages/react-router-devtools/src/utils.js.map +0 -1
  45. package/src/Logo.tsx +0 -37
  46. /package/build/cjs/{packages/react-router-devtools/src/index.js.map → index.js.map} +0 -0
@@ -1,654 +0,0 @@
1
- /**
2
- * react-router-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 reactRouter = require('@tanstack/react-router');
18
- var useLocalStorage = require('./useLocalStorage.js');
19
- var utils = require('./utils.js');
20
- var styledComponents = require('./styledComponents.js');
21
- var theme = require('./theme.js');
22
- var Explorer = require('./Explorer.js');
23
- var Logo = require('./Logo.js');
24
- var index = require('../../../node_modules/date-fns/esm/formatDistanceStrict/index.js');
25
-
26
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
-
28
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
-
30
- const _excluded = ["style"],
31
- _excluded2 = ["style", "onClick"],
32
- _excluded3 = ["style", "onClick"],
33
- _excluded4 = ["isOpen", "setIsOpen", "handleDragStart", "useRouter"],
34
- _excluded5 = ["listeners", "buildLocation", "mount", "update", "buildNext", "navigate", "cancelMatches", "loadLocation", "cleanPreloadCache", "loadRoute", "matchRoutes", "loadMatches", "invalidateRoute", "resolvePath", "matchRoute", "buildLink", "__experimental__createSnapshot", "destroy"],
35
- _excluded6 = ["cancel", "load", "router", "Link", "MatchRoute", "buildLink", "linkProps", "matchRoute", "navigate"];
36
- const isServer = typeof window === 'undefined';
37
- function TanStackRouterDevtools(_ref) {
38
- let {
39
- initialIsOpen,
40
- panelProps = {},
41
- closeButtonProps = {},
42
- toggleButtonProps = {},
43
- position = 'bottom-left',
44
- containerElement: Container = 'footer',
45
- useRouter: useRouterImpl = reactRouter.useRouter
46
- } = _ref;
47
- const rootRef = React__default["default"].useRef(null);
48
- const panelRef = React__default["default"].useRef(null);
49
- const [isOpen, setIsOpen] = useLocalStorage["default"]('tanstackRouterDevtoolsOpen', initialIsOpen);
50
- const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage["default"]('tanstackRouterDevtoolsHeight', null);
51
- const [isResolvedOpen, setIsResolvedOpen] = utils.useSafeState(false);
52
- const [isResizing, setIsResizing] = utils.useSafeState(false);
53
- const isMounted = utils.useIsMounted();
54
-
55
- const _handleDragStart = (panelElement, startEvent) => {
56
- var _panelElement$getBoun;
57
-
58
- if (startEvent.button !== 0) return; // Only allow left click for drag
59
-
60
- setIsResizing(true);
61
- const dragInfo = {
62
- originalHeight: (_panelElement$getBoun = panelElement == null ? void 0 : panelElement.getBoundingClientRect().height) != null ? _panelElement$getBoun : 0,
63
- pageY: startEvent.pageY
64
- };
65
-
66
- const run = moveEvent => {
67
- const delta = dragInfo.pageY - moveEvent.pageY;
68
- const newHeight = (dragInfo == null ? void 0 : dragInfo.originalHeight) + delta;
69
- setDevtoolsHeight(newHeight);
70
-
71
- if (newHeight < 70) {
72
- setIsOpen(false);
73
- } else {
74
- setIsOpen(true);
75
- }
76
- };
77
-
78
- const unsub = () => {
79
- setIsResizing(false);
80
- document.removeEventListener('mousemove', run);
81
- document.removeEventListener('mouseUp', unsub);
82
- };
83
-
84
- document.addEventListener('mousemove', run);
85
- document.addEventListener('mouseup', unsub);
86
- };
87
-
88
- React__default["default"].useEffect(() => {
89
- setIsResolvedOpen(isOpen != null ? isOpen : false);
90
- }, [isOpen, isResolvedOpen, setIsResolvedOpen]); // Toggle panel visibility before/after transition (depending on direction).
91
- // Prevents focusing in a closed panel.
92
-
93
- React__default["default"].useEffect(() => {
94
- const ref = panelRef.current;
95
-
96
- if (ref) {
97
- const handlePanelTransitionStart = () => {
98
- if (ref && isResolvedOpen) {
99
- ref.style.visibility = 'visible';
100
- }
101
- };
102
-
103
- const handlePanelTransitionEnd = () => {
104
- if (ref && !isResolvedOpen) {
105
- ref.style.visibility = 'hidden';
106
- }
107
- };
108
-
109
- ref.addEventListener('transitionstart', handlePanelTransitionStart);
110
- ref.addEventListener('transitionend', handlePanelTransitionEnd);
111
- return () => {
112
- ref.removeEventListener('transitionstart', handlePanelTransitionStart);
113
- ref.removeEventListener('transitionend', handlePanelTransitionEnd);
114
- };
115
- }
116
-
117
- return;
118
- }, [isResolvedOpen]);
119
- React__default["default"][isServer ? 'useEffect' : 'useLayoutEffect'](() => {
120
- if (isResolvedOpen) {
121
- var _rootRef$current, _rootRef$current$pare;
122
-
123
- const previousValue = (_rootRef$current = rootRef.current) == null ? void 0 : (_rootRef$current$pare = _rootRef$current.parentElement) == null ? void 0 : _rootRef$current$pare.style.paddingBottom;
124
-
125
- const run = () => {
126
- var _panelRef$current, _rootRef$current2;
127
-
128
- const containerHeight = (_panelRef$current = panelRef.current) == null ? void 0 : _panelRef$current.getBoundingClientRect().height;
129
-
130
- if ((_rootRef$current2 = rootRef.current) != null && _rootRef$current2.parentElement) {
131
- rootRef.current.parentElement.style.paddingBottom = containerHeight + "px";
132
- }
133
- };
134
-
135
- run();
136
-
137
- if (typeof window !== 'undefined') {
138
- window.addEventListener('resize', run);
139
- return () => {
140
- var _rootRef$current3;
141
-
142
- window.removeEventListener('resize', run);
143
-
144
- if ((_rootRef$current3 = rootRef.current) != null && _rootRef$current3.parentElement && typeof previousValue === 'string') {
145
- rootRef.current.parentElement.style.paddingBottom = previousValue;
146
- }
147
- };
148
- }
149
- }
150
-
151
- return;
152
- }, [isResolvedOpen]);
153
-
154
- const {
155
- style: panelStyle = {}
156
- } = panelProps,
157
- otherPanelProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(panelProps, _excluded);
158
-
159
- const {
160
- style: closeButtonStyle = {},
161
- onClick: onCloseClick
162
- } = closeButtonProps,
163
- otherCloseButtonProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(closeButtonProps, _excluded2);
164
-
165
- const {
166
- style: toggleButtonStyle = {},
167
- onClick: onToggleClick
168
- } = toggleButtonProps,
169
- otherToggleButtonProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(toggleButtonProps, _excluded3); // Do not render on the server
170
-
171
-
172
- if (!isMounted()) return null;
173
- return /*#__PURE__*/React__default["default"].createElement(Container, {
174
- ref: rootRef,
175
- className: "TanStackRouterDevtools"
176
- }, /*#__PURE__*/React__default["default"].createElement(theme.ThemeProvider, {
177
- theme: theme.defaultTheme
178
- }, /*#__PURE__*/React__default["default"].createElement(TanStackRouterDevtoolsPanel, _rollupPluginBabelHelpers["extends"]({
179
- ref: panelRef
180
- }, otherPanelProps, {
181
- useRouter: useRouterImpl,
182
- style: _rollupPluginBabelHelpers["extends"]({
183
- position: 'fixed',
184
- bottom: '0',
185
- right: '0',
186
- zIndex: 99999,
187
- width: '100%',
188
- height: devtoolsHeight != null ? devtoolsHeight : 500,
189
- maxHeight: '90%',
190
- boxShadow: '0 0 20px rgba(0,0,0,.3)',
191
- borderTop: "1px solid " + theme.defaultTheme.gray,
192
- transformOrigin: 'top',
193
- // visibility will be toggled after transitions, but set initial state here
194
- visibility: isOpen ? 'visible' : 'hidden'
195
- }, panelStyle, isResizing ? {
196
- transition: "none"
197
- } : {
198
- transition: "all .2s ease"
199
- }, isResolvedOpen ? {
200
- opacity: 1,
201
- pointerEvents: 'all',
202
- transform: "translateY(0) scale(1)"
203
- } : {
204
- opacity: 0,
205
- pointerEvents: 'none',
206
- transform: "translateY(15px) scale(1.02)"
207
- }),
208
- isOpen: isResolvedOpen,
209
- setIsOpen: setIsOpen,
210
- handleDragStart: e => _handleDragStart(panelRef.current, e)
211
- })), isResolvedOpen ? /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, _rollupPluginBabelHelpers["extends"]({
212
- type: "button",
213
- "aria-label": "Close TanStack Router Devtools"
214
- }, otherCloseButtonProps, {
215
- onClick: e => {
216
- setIsOpen(false);
217
- onCloseClick && onCloseClick(e);
218
- },
219
- style: _rollupPluginBabelHelpers["extends"]({
220
- position: 'fixed',
221
- zIndex: 99999,
222
- margin: '.5em',
223
- bottom: 0
224
- }, position === 'top-right' ? {
225
- right: '0'
226
- } : position === 'top-left' ? {
227
- left: '0'
228
- } : position === 'bottom-right' ? {
229
- right: '0'
230
- } : {
231
- left: '0'
232
- }, closeButtonStyle)
233
- }), "Close") : null), !isResolvedOpen ? /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
234
- type: "button"
235
- }, otherToggleButtonProps, {
236
- "aria-label": "Open TanStack Router Devtools",
237
- onClick: e => {
238
- setIsOpen(true);
239
- onToggleClick && onToggleClick(e);
240
- },
241
- style: _rollupPluginBabelHelpers["extends"]({
242
- appearance: 'none',
243
- background: 'none',
244
- border: 0,
245
- padding: 0,
246
- position: 'fixed',
247
- zIndex: 99999,
248
- display: 'inline-flex',
249
- fontSize: '1.5em',
250
- margin: '.5em',
251
- cursor: 'pointer',
252
- width: 'fit-content'
253
- }, position === 'top-right' ? {
254
- top: '0',
255
- right: '0'
256
- } : position === 'top-left' ? {
257
- top: '0',
258
- left: '0'
259
- } : position === 'bottom-right' ? {
260
- bottom: '0',
261
- right: '0'
262
- } : {
263
- bottom: '0',
264
- left: '0'
265
- }, toggleButtonStyle)
266
- }), /*#__PURE__*/React__default["default"].createElement(Logo["default"], {
267
- "aria-hidden": true
268
- })) : null);
269
- }
270
- const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwardRef(function TanStackRouterDevtoolsPanel(props, ref) {
271
- var _router$state$matches, _router$state$pending, _last, _last2, _last3, _last4, _last5, _last6;
272
-
273
- const {
274
- isOpen = true,
275
- handleDragStart,
276
- useRouter
277
- } = props,
278
- panelProps = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(props, _excluded4);
279
-
280
- const router = useRouter();
281
- React__default["default"].useEffect(() => {
282
- let interval = setInterval(() => {
283
- router.cleanPreloadCache();
284
- router.notify();
285
- }, 1000);
286
- return () => {
287
- clearInterval(interval);
288
- };
289
- }, []);
290
- const [activeRouteId, setActiveRouteId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveRouteId', '');
291
- const activeMatch = (_router$state$matches = router.state.matches) == null ? void 0 : _router$state$matches.find(d => d.routeId === activeRouteId);
292
- return /*#__PURE__*/React__default["default"].createElement(theme.ThemeProvider, {
293
- theme: theme.defaultTheme
294
- }, /*#__PURE__*/React__default["default"].createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
295
- ref: ref,
296
- className: "TanStackRouterDevtoolsPanel"
297
- }, panelProps), /*#__PURE__*/React__default["default"].createElement("style", {
298
- dangerouslySetInnerHTML: {
299
- __html: "\n\n .TanStackRouterDevtoolsPanel * {\n scrollbar-color: " + theme.defaultTheme.backgroundAlt + " " + theme.defaultTheme.gray + ";\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {\n background: " + theme.defaultTheme.backgroundAlt + ";\n }\n\n .TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {\n background: " + theme.defaultTheme.gray + ";\n border-radius: .5em;\n border: 3px solid " + theme.defaultTheme.backgroundAlt + ";\n }\n\n .TanStackRouterDevtoolsPanel table {\n width: 100%;\n }\n\n .TanStackRouterDevtoolsPanel table tr {\n border-bottom: 2px dotted rgba(255, 255, 255, .2);\n }\n\n .TanStackRouterDevtoolsPanel table tr:last-child {\n border-bottom: none\n }\n\n .TanStackRouterDevtoolsPanel table td {\n padding: .25rem .5rem;\n border-right: 2px dotted rgba(255, 255, 255, .05);\n }\n\n .TanStackRouterDevtoolsPanel table td:last-child {\n border-right: none\n }\n\n "
300
- }
301
- }), /*#__PURE__*/React__default["default"].createElement("div", {
302
- style: {
303
- position: 'absolute',
304
- left: 0,
305
- top: 0,
306
- width: '100%',
307
- height: '4px',
308
- marginBottom: '-4px',
309
- cursor: 'row-resize',
310
- zIndex: 100000
311
- },
312
- onMouseDown: handleDragStart
313
- }), /*#__PURE__*/React__default["default"].createElement("div", {
314
- style: {
315
- flex: '1 1 500px',
316
- minHeight: '40%',
317
- maxHeight: '100%',
318
- overflow: 'auto',
319
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
320
- display: 'flex',
321
- flexDirection: 'column'
322
- }
323
- }, /*#__PURE__*/React__default["default"].createElement("div", {
324
- style: {
325
- padding: '.5em',
326
- background: theme.defaultTheme.backgroundAlt,
327
- display: 'flex',
328
- justifyContent: 'space-between',
329
- alignItems: 'center'
330
- }
331
- }, /*#__PURE__*/React__default["default"].createElement(Logo["default"], {
332
- "aria-hidden": true,
333
- style: {
334
- marginRight: '.5em'
335
- }
336
- }), /*#__PURE__*/React__default["default"].createElement("div", {
337
- style: {
338
- marginRight: 'auto',
339
- fontSize: 'clamp(.8rem, 2vw, 1.3rem)',
340
- fontWeight: 'bold'
341
- }
342
- }, "TanStack Router", ' ', /*#__PURE__*/React__default["default"].createElement("span", {
343
- style: {
344
- fontWeight: 100
345
- }
346
- }, "Devtools"))), /*#__PURE__*/React__default["default"].createElement("div", {
347
- style: {
348
- overflowY: 'auto',
349
- flex: '1'
350
- }
351
- }, /*#__PURE__*/React__default["default"].createElement("div", {
352
- style: {
353
- padding: '.5em'
354
- }
355
- }, /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
356
- label: "Router",
357
- value: (() => {
358
- const rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(router, _excluded5);
359
-
360
- return rest;
361
- })(),
362
- defaultExpanded: {}
363
- })))), /*#__PURE__*/React__default["default"].createElement("div", {
364
- style: {
365
- flex: '1 1 500px',
366
- minHeight: '40%',
367
- maxHeight: '100%',
368
- overflow: 'auto',
369
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
370
- display: 'flex',
371
- flexDirection: 'column'
372
- }
373
- }, /*#__PURE__*/React__default["default"].createElement("div", {
374
- style: {
375
- padding: '.5em',
376
- background: theme.defaultTheme.backgroundAlt,
377
- position: 'sticky',
378
- top: 0,
379
- zIndex: 1
380
- }
381
- }, "Current Matches"), router.state.matches.map((match, i) => {
382
- return /*#__PURE__*/React__default["default"].createElement("div", {
383
- key: match.routeId || i,
384
- role: "button",
385
- "aria-label": "Open match details for " + match.routeId,
386
- onClick: () => setActiveRouteId(activeRouteId === match.routeId ? '' : match.routeId),
387
- style: {
388
- display: 'flex',
389
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
390
- cursor: 'pointer',
391
- alignItems: 'center',
392
- background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
393
- }
394
- }, /*#__PURE__*/React__default["default"].createElement("div", {
395
- style: {
396
- flex: '0 0 auto',
397
- width: '1.3rem',
398
- height: '1.3rem',
399
- marginLeft: '.25rem',
400
- background: utils.getStatusColor(match, theme.defaultTheme),
401
- alignItems: 'center',
402
- justifyContent: 'center',
403
- fontWeight: 'bold',
404
- borderRadius: '.25rem',
405
- transition: 'all .2s ease-out'
406
- }
407
- }), /*#__PURE__*/React__default["default"].createElement(styledComponents.Code, {
408
- style: {
409
- padding: '.5em'
410
- }
411
- }, "" + match.matchId));
412
- }), /*#__PURE__*/React__default["default"].createElement("div", {
413
- style: {
414
- marginTop: '2rem',
415
- padding: '.5em',
416
- background: theme.defaultTheme.backgroundAlt,
417
- position: 'sticky',
418
- top: 0,
419
- zIndex: 1
420
- }
421
- }, "Pending Matches"), (_router$state$pending = router.state.pending) == null ? void 0 : _router$state$pending.matches.map((match, i) => {
422
- return /*#__PURE__*/React__default["default"].createElement("div", {
423
- key: match.routeId || i,
424
- role: "button",
425
- "aria-label": "Open match details for " + match.routeId,
426
- onClick: () => setActiveRouteId(activeRouteId === match.routeId ? '' : match.routeId),
427
- style: {
428
- display: 'flex',
429
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
430
- cursor: 'pointer',
431
- background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
432
- }
433
- }, /*#__PURE__*/React__default["default"].createElement("div", {
434
- style: {
435
- flex: '0 0 auto',
436
- width: '1.3rem',
437
- height: '1.3rem',
438
- marginLeft: '.25rem',
439
- background: utils.getStatusColor(match, theme.defaultTheme),
440
- alignItems: 'center',
441
- justifyContent: 'center',
442
- fontWeight: 'bold',
443
- borderRadius: '.25rem',
444
- transition: 'all .2s ease-out'
445
- }
446
- }), /*#__PURE__*/React__default["default"].createElement(styledComponents.Code, {
447
- style: {
448
- padding: '.5em'
449
- }
450
- }, "" + match.matchId));
451
- }), /*#__PURE__*/React__default["default"].createElement("div", {
452
- style: {
453
- marginTop: '2rem',
454
- padding: '.5em',
455
- background: theme.defaultTheme.backgroundAlt,
456
- position: 'sticky',
457
- top: 0,
458
- zIndex: 1
459
- }
460
- }, "Preloading Matches"), Object.keys(router.preloadCache).filter(key => {
461
- var _cacheEntry$match$upd;
462
-
463
- const cacheEntry = router.preloadCache[key];
464
- return ((_cacheEntry$match$upd = cacheEntry.match.updatedAt) != null ? _cacheEntry$match$upd : Date.now()) + cacheEntry.maxAge > Date.now();
465
- }).map((key, i) => {
466
- var _match$updatedAt;
467
-
468
- const {
469
- match,
470
- maxAge
471
- } = router.preloadCache[key];
472
- return /*#__PURE__*/React__default["default"].createElement("div", {
473
- key: match.matchId || i,
474
- role: "button",
475
- "aria-label": "Open match details for " + match.matchId,
476
- onClick: () => setActiveRouteId(activeRouteId === match.routeId ? '' : match.routeId),
477
- style: {
478
- display: 'flex',
479
- borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
480
- cursor: 'pointer',
481
- background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
482
- }
483
- }, /*#__PURE__*/React__default["default"].createElement("div", {
484
- style: {
485
- display: 'flex',
486
- flexDirection: 'column',
487
- padding: '.5rem',
488
- gap: '.3rem'
489
- }
490
- }, /*#__PURE__*/React__default["default"].createElement("div", {
491
- style: {
492
- display: 'flex',
493
- alignItems: 'center',
494
- gap: '.5rem'
495
- }
496
- }, /*#__PURE__*/React__default["default"].createElement("div", {
497
- style: {
498
- flex: '0 0 auto',
499
- width: '1.3rem',
500
- height: '1.3rem',
501
- background: utils.getStatusColor(match, theme.defaultTheme),
502
- alignItems: 'center',
503
- justifyContent: 'center',
504
- fontWeight: 'bold',
505
- borderRadius: '.25rem',
506
- transition: 'all .2s ease-out'
507
- }
508
- }), /*#__PURE__*/React__default["default"].createElement(styledComponents.Code, null, "" + match.matchId)), /*#__PURE__*/React__default["default"].createElement("span", {
509
- style: {
510
- opacity: '.5'
511
- }
512
- }, "Expires", ' ', index["default"](new Date(), new Date(((_match$updatedAt = match.updatedAt) != null ? _match$updatedAt : Date.now()) + maxAge), {
513
- addSuffix: true
514
- }))));
515
- })), activeMatch ? /*#__PURE__*/React__default["default"].createElement(styledComponents.ActivePanel, null, /*#__PURE__*/React__default["default"].createElement("div", {
516
- style: {
517
- padding: '.5em',
518
- background: theme.defaultTheme.backgroundAlt,
519
- position: 'sticky',
520
- top: 0,
521
- zIndex: 1
522
- }
523
- }, "Match Details"), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("table", null, /*#__PURE__*/React__default["default"].createElement("tbody", null, /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
524
- style: {
525
- opacity: '.5'
526
- }
527
- }, "ID"), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement(styledComponents.Code, {
528
- style: {
529
- lineHeight: '1.8em'
530
- }
531
- }, JSON.stringify(activeMatch.matchId, null, 2)))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
532
- style: {
533
- opacity: '.5'
534
- }
535
- }, "Status"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.status)), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
536
- style: {
537
- opacity: '.5'
538
- }
539
- }, "Pending"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.isPending.toString())), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
540
- style: {
541
- opacity: '.5'
542
- }
543
- }, "Invalid"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.isInvalid.toString())), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
544
- style: {
545
- opacity: '.5'
546
- }
547
- }, "Last Updated"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.updatedAt ? new Date(activeMatch.updatedAt).toLocaleTimeString() : 'N/A'))))), /*#__PURE__*/React__default["default"].createElement("div", {
548
- style: {
549
- background: theme.defaultTheme.backgroundAlt,
550
- padding: '.5em',
551
- position: 'sticky',
552
- top: 0,
553
- zIndex: 1
554
- }
555
- }, "Actions"), /*#__PURE__*/React__default["default"].createElement("div", {
556
- style: {
557
- padding: '0.5em'
558
- }
559
- }, /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
560
- type: "button",
561
- onClick: () => {
562
- router.invalidateRoute(activeMatch);
563
- router.notify();
564
- },
565
- style: {
566
- background: theme.defaultTheme.warning,
567
- color: theme.defaultTheme.inputTextColor
568
- }
569
- }, "Invalidate"), ' ', /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
570
- type: "button",
571
- onClick: () => router.reload(),
572
- style: {
573
- background: theme.defaultTheme.gray
574
- }
575
- }, "Reload")), /*#__PURE__*/React__default["default"].createElement("div", {
576
- style: {
577
- background: theme.defaultTheme.backgroundAlt,
578
- padding: '.5em',
579
- position: 'sticky',
580
- top: 0,
581
- zIndex: 1
582
- }
583
- }, "Explorer"), /*#__PURE__*/React__default["default"].createElement("div", {
584
- style: {
585
- padding: '.5em'
586
- }
587
- }, /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
588
- label: "Match",
589
- value: (() => {
590
- const rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(activeMatch, _excluded6);
591
-
592
- return rest;
593
- })(),
594
- defaultExpanded: {}
595
- }))) : null, /*#__PURE__*/React__default["default"].createElement("div", {
596
- style: {
597
- flex: '1 1 500px',
598
- minHeight: '40%',
599
- maxHeight: '100%',
600
- overflow: 'auto',
601
- borderRight: "1px solid " + theme.defaultTheme.grayAlt,
602
- display: 'flex',
603
- flexDirection: 'column'
604
- }
605
- }, /*#__PURE__*/React__default["default"].createElement("div", {
606
- style: {
607
- padding: '.5em',
608
- background: theme.defaultTheme.backgroundAlt,
609
- position: 'sticky',
610
- top: 0,
611
- zIndex: 1
612
- }
613
- }, "Loader Data"), /*#__PURE__*/React__default["default"].createElement("div", {
614
- style: {
615
- padding: '.5em'
616
- }
617
- }, Object.keys(((_last = reactRouter.last(router.state.matches)) == null ? void 0 : _last.loaderData) || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
618
- value: ((_last2 = reactRouter.last(router.state.matches)) == null ? void 0 : _last2.loaderData) || {},
619
- defaultExpanded: Object.keys(((_last3 = reactRouter.last(router.state.matches)) == null ? void 0 : _last3.loaderData) || {}).reduce((obj, next) => {
620
- obj[next] = {};
621
- return obj;
622
- }, {})
623
- }) : /*#__PURE__*/React__default["default"].createElement("em", {
624
- style: {
625
- opacity: 0.5
626
- }
627
- }, '{ }')), /*#__PURE__*/React__default["default"].createElement("div", {
628
- style: {
629
- padding: '.5em',
630
- background: theme.defaultTheme.backgroundAlt,
631
- position: 'sticky',
632
- top: 0,
633
- zIndex: 1
634
- }
635
- }, "Search Params"), /*#__PURE__*/React__default["default"].createElement("div", {
636
- style: {
637
- padding: '.5em'
638
- }
639
- }, Object.keys(((_last4 = reactRouter.last(router.state.matches)) == null ? void 0 : _last4.search) || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
640
- value: ((_last5 = reactRouter.last(router.state.matches)) == null ? void 0 : _last5.search) || {},
641
- defaultExpanded: Object.keys(((_last6 = reactRouter.last(router.state.matches)) == null ? void 0 : _last6.search) || {}).reduce((obj, next) => {
642
- obj[next] = {};
643
- return obj;
644
- }, {})
645
- }) : /*#__PURE__*/React__default["default"].createElement("em", {
646
- style: {
647
- opacity: 0.5
648
- }
649
- }, '{ }')))));
650
- });
651
-
652
- exports.TanStackRouterDevtools = TanStackRouterDevtools;
653
- exports.TanStackRouterDevtoolsPanel = TanStackRouterDevtoolsPanel;
654
- //# sourceMappingURL=devtools.js.map