@tanstack/react-router-devtools 0.0.1-beta.8 → 0.0.1-beta.80
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.
- package/LICENSE +21 -0
- package/build/cjs/{packages/react-router-devtools/src/Explorer.js → Explorer.js} +44 -61
- package/build/cjs/Explorer.js.map +1 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -18
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/build/cjs/{packages/react-router-devtools/src/devtools.js → devtools.js} +176 -275
- package/build/cjs/devtools.js.map +1 -0
- package/build/cjs/{packages/react-router-devtools/src/index.js → index.js} +0 -0
- package/build/cjs/{packages/react-router-devtools/src/index.js.map → index.js.map} +0 -0
- package/build/cjs/{packages/react-router-devtools/src/styledComponents.js → styledComponents.js} +9 -37
- package/build/cjs/styledComponents.js.map +1 -0
- package/build/cjs/{packages/react-router-devtools/src/theme.js → theme.js} +5 -8
- package/build/cjs/theme.js.map +1 -0
- package/build/cjs/{packages/react-router-devtools/src/useLocalStorage.js → useLocalStorage.js} +2 -9
- package/build/cjs/useLocalStorage.js.map +1 -0
- package/build/cjs/{packages/react-router-devtools/src/useMediaQuery.js → useMediaQuery.js} +10 -13
- package/build/cjs/useMediaQuery.js.map +1 -0
- package/build/cjs/{packages/react-router-devtools/src/utils.js → utils.js} +24 -70
- package/build/cjs/utils.js.map +1 -0
- package/build/esm/index.js +268 -1319
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +59 -49
- package/build/stats-react.json +312 -9469
- package/build/types/index.d.ts +4 -4
- package/build/umd/index.development.js +335 -1292
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +32 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +6 -8
- package/src/devtools.tsx +86 -87
- package/src/utils.ts +5 -17
- package/build/cjs/node_modules/date-fns/esm/_lib/assign/index.js +0 -30
- package/build/cjs/node_modules/date-fns/esm/_lib/assign/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/_lib/cloneObject/index.js +0 -22
- package/build/cjs/node_modules/date-fns/esm/_lib/cloneObject/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/_lib/defaultLocale/index.js +0 -20
- package/build/cjs/node_modules/date-fns/esm/_lib/defaultLocale/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/_lib/defaultOptions/index.js +0 -21
- package/build/cjs/node_modules/date-fns/esm/_lib/defaultOptions/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js +0 -33
- package/build/cjs/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/_lib/requiredArgs/index.js +0 -22
- package/build/cjs/node_modules/date-fns/esm/_lib/requiredArgs/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/compareAsc/index.js +0 -67
- package/build/cjs/node_modules/date-fns/esm/compareAsc/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/formatDistanceStrict/index.js +0 -207
- package/build/cjs/node_modules/date-fns/esm/formatDistanceStrict/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js +0 -26
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js +0 -39
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js +0 -65
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js +0 -34
- package/build/cjs/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js +0 -105
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js +0 -52
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js +0 -31
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js +0 -164
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js +0 -116
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/index.js +0 -47
- package/build/cjs/node_modules/date-fns/esm/locale/en-US/index.js.map +0 -1
- package/build/cjs/node_modules/date-fns/esm/toDate/index.js +0 -70
- package/build/cjs/node_modules/date-fns/esm/toDate/index.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/Explorer.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/devtools.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/styledComponents.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/theme.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/useLocalStorage.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/useMediaQuery.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/utils.js.map +0 -1
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var _rollupPluginBabelHelpers = require('
|
|
15
|
+
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
16
16
|
var React = require('react');
|
|
17
17
|
var reactRouter = require('@tanstack/react-router');
|
|
18
18
|
var useLocalStorage = require('./useLocalStorage.js');
|
|
@@ -20,53 +20,50 @@ var utils = require('./utils.js');
|
|
|
20
20
|
var styledComponents = require('./styledComponents.js');
|
|
21
21
|
var theme = require('./theme.js');
|
|
22
22
|
var Explorer = require('./Explorer.js');
|
|
23
|
-
var index = require('../../../node_modules/date-fns/esm/formatDistanceStrict/index.js');
|
|
24
23
|
|
|
25
24
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
26
25
|
|
|
27
26
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
28
27
|
|
|
29
|
-
const _excluded = ["style"],
|
|
30
|
-
_excluded2 = ["style", "onClick"],
|
|
31
|
-
_excluded3 = ["style", "onClick"],
|
|
32
|
-
_excluded4 = ["isOpen", "setIsOpen", "handleDragStart", "router"];
|
|
33
28
|
const isServer = typeof window === 'undefined';
|
|
34
|
-
|
|
35
29
|
function Logo(props) {
|
|
36
|
-
var _props$style;
|
|
37
|
-
|
|
38
30
|
return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({}, props, {
|
|
39
|
-
style:
|
|
31
|
+
style: {
|
|
32
|
+
...(props.style ?? {}),
|
|
40
33
|
display: 'flex',
|
|
41
34
|
alignItems: 'center',
|
|
42
35
|
flexDirection: 'column',
|
|
43
|
-
fontSize: '0.
|
|
44
|
-
fontWeight: '
|
|
36
|
+
fontSize: '0.8rem',
|
|
37
|
+
fontWeight: 'bolder',
|
|
45
38
|
lineHeight: '1'
|
|
46
|
-
}
|
|
39
|
+
}
|
|
47
40
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
48
41
|
style: {
|
|
49
42
|
letterSpacing: '-0.05rem'
|
|
50
43
|
}
|
|
51
44
|
}, "TANSTACK"), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
52
|
-
className: "text-transparent bg-clip-text bg-gradient-to-r from-lime-500 to-emerald-500",
|
|
53
45
|
style: {
|
|
46
|
+
backgroundImage: 'linear-gradient(to right, var(--tw-gradient-stops))',
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
'--tw-gradient-from': '#84cc16',
|
|
49
|
+
'--tw-gradient-stops': 'var(--tw-gradient-from), var(--tw-gradient-to)',
|
|
50
|
+
'--tw-gradient-to': '#10b981',
|
|
51
|
+
WebkitBackgroundClip: 'text',
|
|
52
|
+
color: 'transparent',
|
|
54
53
|
letterSpacing: '0.1rem',
|
|
55
54
|
marginRight: '-0.2rem'
|
|
56
55
|
}
|
|
57
56
|
}, "ROUTER"));
|
|
58
57
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
router
|
|
69
|
-
} = _ref;
|
|
58
|
+
function TanStackRouterDevtools({
|
|
59
|
+
initialIsOpen,
|
|
60
|
+
panelProps = {},
|
|
61
|
+
closeButtonProps = {},
|
|
62
|
+
toggleButtonProps = {},
|
|
63
|
+
position = 'bottom-left',
|
|
64
|
+
containerElement: Container = 'footer',
|
|
65
|
+
router
|
|
66
|
+
}) {
|
|
70
67
|
const rootRef = React__default["default"].useRef(null);
|
|
71
68
|
const panelRef = React__default["default"].useRef(null);
|
|
72
69
|
const [isOpen, setIsOpen] = useLocalStorage["default"]('tanstackRouterDevtoolsOpen', initialIsOpen);
|
|
@@ -74,61 +71,51 @@ function TanStackRouterDevtools(_ref) {
|
|
|
74
71
|
const [isResolvedOpen, setIsResolvedOpen] = utils.useSafeState(false);
|
|
75
72
|
const [isResizing, setIsResizing] = utils.useSafeState(false);
|
|
76
73
|
const isMounted = utils.useIsMounted();
|
|
77
|
-
|
|
78
|
-
const _handleDragStart = (panelElement, startEvent) => {
|
|
79
|
-
var _panelElement$getBoun;
|
|
80
|
-
|
|
74
|
+
const handleDragStart = (panelElement, startEvent) => {
|
|
81
75
|
if (startEvent.button !== 0) return; // Only allow left click for drag
|
|
82
76
|
|
|
83
77
|
setIsResizing(true);
|
|
84
78
|
const dragInfo = {
|
|
85
|
-
originalHeight:
|
|
79
|
+
originalHeight: panelElement?.getBoundingClientRect().height ?? 0,
|
|
86
80
|
pageY: startEvent.pageY
|
|
87
81
|
};
|
|
88
|
-
|
|
89
82
|
const run = moveEvent => {
|
|
90
83
|
const delta = dragInfo.pageY - moveEvent.pageY;
|
|
91
|
-
const newHeight =
|
|
84
|
+
const newHeight = dragInfo?.originalHeight + delta;
|
|
92
85
|
setDevtoolsHeight(newHeight);
|
|
93
|
-
|
|
94
86
|
if (newHeight < 70) {
|
|
95
87
|
setIsOpen(false);
|
|
96
88
|
} else {
|
|
97
89
|
setIsOpen(true);
|
|
98
90
|
}
|
|
99
91
|
};
|
|
100
|
-
|
|
101
92
|
const unsub = () => {
|
|
102
93
|
setIsResizing(false);
|
|
103
94
|
document.removeEventListener('mousemove', run);
|
|
104
95
|
document.removeEventListener('mouseUp', unsub);
|
|
105
96
|
};
|
|
106
|
-
|
|
107
97
|
document.addEventListener('mousemove', run);
|
|
108
98
|
document.addEventListener('mouseup', unsub);
|
|
109
99
|
};
|
|
110
|
-
|
|
111
100
|
React__default["default"].useEffect(() => {
|
|
112
|
-
setIsResolvedOpen(isOpen
|
|
113
|
-
}, [isOpen, isResolvedOpen, setIsResolvedOpen]);
|
|
114
|
-
// Prevents focusing in a closed panel.
|
|
101
|
+
setIsResolvedOpen(isOpen ?? false);
|
|
102
|
+
}, [isOpen, isResolvedOpen, setIsResolvedOpen]);
|
|
115
103
|
|
|
104
|
+
// Toggle panel visibility before/after transition (depending on direction).
|
|
105
|
+
// Prevents focusing in a closed panel.
|
|
116
106
|
React__default["default"].useEffect(() => {
|
|
117
107
|
const ref = panelRef.current;
|
|
118
|
-
|
|
119
108
|
if (ref) {
|
|
120
109
|
const handlePanelTransitionStart = () => {
|
|
121
110
|
if (ref && isResolvedOpen) {
|
|
122
111
|
ref.style.visibility = 'visible';
|
|
123
112
|
}
|
|
124
113
|
};
|
|
125
|
-
|
|
126
114
|
const handlePanelTransitionEnd = () => {
|
|
127
115
|
if (ref && !isResolvedOpen) {
|
|
128
116
|
ref.style.visibility = 'hidden';
|
|
129
117
|
}
|
|
130
118
|
};
|
|
131
|
-
|
|
132
119
|
ref.addEventListener('transitionstart', handlePanelTransitionStart);
|
|
133
120
|
ref.addEventListener('transitionend', handlePanelTransitionEnd);
|
|
134
121
|
return () => {
|
|
@@ -136,62 +123,46 @@ function TanStackRouterDevtools(_ref) {
|
|
|
136
123
|
ref.removeEventListener('transitionend', handlePanelTransitionEnd);
|
|
137
124
|
};
|
|
138
125
|
}
|
|
139
|
-
|
|
140
126
|
return;
|
|
141
127
|
}, [isResolvedOpen]);
|
|
142
128
|
React__default["default"][isServer ? 'useEffect' : 'useLayoutEffect'](() => {
|
|
143
129
|
if (isResolvedOpen) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const previousValue = (_rootRef$current = rootRef.current) == null ? void 0 : (_rootRef$current$pare = _rootRef$current.parentElement) == null ? void 0 : _rootRef$current$pare.style.paddingBottom;
|
|
147
|
-
|
|
130
|
+
const previousValue = rootRef.current?.parentElement?.style.paddingBottom;
|
|
148
131
|
const run = () => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
if ((_rootRef$current2 = rootRef.current) != null && _rootRef$current2.parentElement) {
|
|
154
|
-
rootRef.current.parentElement.style.paddingBottom = containerHeight + "px";
|
|
132
|
+
const containerHeight = panelRef.current?.getBoundingClientRect().height;
|
|
133
|
+
if (rootRef.current?.parentElement) {
|
|
134
|
+
rootRef.current.parentElement.style.paddingBottom = `${containerHeight}px`;
|
|
155
135
|
}
|
|
156
136
|
};
|
|
157
|
-
|
|
158
137
|
run();
|
|
159
|
-
|
|
160
138
|
if (typeof window !== 'undefined') {
|
|
161
139
|
window.addEventListener('resize', run);
|
|
162
140
|
return () => {
|
|
163
|
-
var _rootRef$current3;
|
|
164
|
-
|
|
165
141
|
window.removeEventListener('resize', run);
|
|
166
|
-
|
|
167
|
-
if ((_rootRef$current3 = rootRef.current) != null && _rootRef$current3.parentElement && typeof previousValue === 'string') {
|
|
142
|
+
if (rootRef.current?.parentElement && typeof previousValue === 'string') {
|
|
168
143
|
rootRef.current.parentElement.style.paddingBottom = previousValue;
|
|
169
144
|
}
|
|
170
145
|
};
|
|
171
146
|
}
|
|
172
147
|
}
|
|
173
|
-
|
|
174
148
|
return;
|
|
175
149
|
}, [isResolvedOpen]);
|
|
176
|
-
|
|
177
150
|
const {
|
|
178
|
-
style: panelStyle = {}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
151
|
+
style: panelStyle = {},
|
|
152
|
+
...otherPanelProps
|
|
153
|
+
} = panelProps;
|
|
182
154
|
const {
|
|
183
155
|
style: closeButtonStyle = {},
|
|
184
|
-
onClick: onCloseClick
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
156
|
+
onClick: onCloseClick,
|
|
157
|
+
...otherCloseButtonProps
|
|
158
|
+
} = closeButtonProps;
|
|
188
159
|
const {
|
|
189
160
|
style: toggleButtonStyle = {},
|
|
190
|
-
onClick: onToggleClick
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
161
|
+
onClick: onToggleClick,
|
|
162
|
+
...otherToggleButtonProps
|
|
163
|
+
} = toggleButtonProps;
|
|
194
164
|
|
|
165
|
+
// Do not render on the server
|
|
195
166
|
if (!isMounted()) return null;
|
|
196
167
|
return /*#__PURE__*/React__default["default"].createElement(Container, {
|
|
197
168
|
ref: rootRef,
|
|
@@ -202,35 +173,38 @@ function TanStackRouterDevtools(_ref) {
|
|
|
202
173
|
ref: panelRef
|
|
203
174
|
}, otherPanelProps, {
|
|
204
175
|
router: router,
|
|
205
|
-
style:
|
|
176
|
+
style: {
|
|
206
177
|
position: 'fixed',
|
|
207
178
|
bottom: '0',
|
|
208
179
|
right: '0',
|
|
209
180
|
zIndex: 99999,
|
|
210
181
|
width: '100%',
|
|
211
|
-
height: devtoolsHeight
|
|
182
|
+
height: devtoolsHeight ?? 500,
|
|
212
183
|
maxHeight: '90%',
|
|
213
184
|
boxShadow: '0 0 20px rgba(0,0,0,.3)',
|
|
214
|
-
borderTop:
|
|
185
|
+
borderTop: `1px solid ${theme.defaultTheme.gray}`,
|
|
215
186
|
transformOrigin: 'top',
|
|
216
187
|
// visibility will be toggled after transitions, but set initial state here
|
|
217
|
-
visibility: isOpen ? 'visible' : 'hidden'
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
188
|
+
visibility: isOpen ? 'visible' : 'hidden',
|
|
189
|
+
...panelStyle,
|
|
190
|
+
...(isResizing ? {
|
|
191
|
+
transition: `none`
|
|
192
|
+
} : {
|
|
193
|
+
transition: `all .2s ease`
|
|
194
|
+
}),
|
|
195
|
+
...(isResolvedOpen ? {
|
|
196
|
+
opacity: 1,
|
|
197
|
+
pointerEvents: 'all',
|
|
198
|
+
transform: `translateY(0) scale(1)`
|
|
199
|
+
} : {
|
|
200
|
+
opacity: 0,
|
|
201
|
+
pointerEvents: 'none',
|
|
202
|
+
transform: `translateY(15px) scale(1.02)`
|
|
203
|
+
})
|
|
204
|
+
},
|
|
231
205
|
isOpen: isResolvedOpen,
|
|
232
206
|
setIsOpen: setIsOpen,
|
|
233
|
-
handleDragStart: e =>
|
|
207
|
+
handleDragStart: e => handleDragStart(panelRef.current, e)
|
|
234
208
|
})), isResolvedOpen ? /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, _rollupPluginBabelHelpers["extends"]({
|
|
235
209
|
type: "button",
|
|
236
210
|
"aria-label": "Close TanStack Router Devtools"
|
|
@@ -239,20 +213,22 @@ function TanStackRouterDevtools(_ref) {
|
|
|
239
213
|
setIsOpen(false);
|
|
240
214
|
onCloseClick && onCloseClick(e);
|
|
241
215
|
},
|
|
242
|
-
style:
|
|
216
|
+
style: {
|
|
243
217
|
position: 'fixed',
|
|
244
218
|
zIndex: 99999,
|
|
245
219
|
margin: '.5em',
|
|
246
|
-
bottom: 0
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
220
|
+
bottom: 0,
|
|
221
|
+
...(position === 'top-right' ? {
|
|
222
|
+
right: '0'
|
|
223
|
+
} : position === 'top-left' ? {
|
|
224
|
+
left: '0'
|
|
225
|
+
} : position === 'bottom-right' ? {
|
|
226
|
+
right: '0'
|
|
227
|
+
} : {
|
|
228
|
+
left: '0'
|
|
229
|
+
}),
|
|
230
|
+
...closeButtonStyle
|
|
231
|
+
}
|
|
256
232
|
}), "Close") : null), !isResolvedOpen ? /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
|
|
257
233
|
type: "button"
|
|
258
234
|
}, otherToggleButtonProps, {
|
|
@@ -261,7 +237,7 @@ function TanStackRouterDevtools(_ref) {
|
|
|
261
237
|
setIsOpen(true);
|
|
262
238
|
onToggleClick && onToggleClick(e);
|
|
263
239
|
},
|
|
264
|
-
style:
|
|
240
|
+
style: {
|
|
265
241
|
appearance: 'none',
|
|
266
242
|
background: 'none',
|
|
267
243
|
border: 0,
|
|
@@ -272,65 +248,95 @@ function TanStackRouterDevtools(_ref) {
|
|
|
272
248
|
fontSize: '1.5em',
|
|
273
249
|
margin: '.5em',
|
|
274
250
|
cursor: 'pointer',
|
|
275
|
-
width: 'fit-content'
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
251
|
+
width: 'fit-content',
|
|
252
|
+
...(position === 'top-right' ? {
|
|
253
|
+
top: '0',
|
|
254
|
+
right: '0'
|
|
255
|
+
} : position === 'top-left' ? {
|
|
256
|
+
top: '0',
|
|
257
|
+
left: '0'
|
|
258
|
+
} : position === 'bottom-right' ? {
|
|
259
|
+
bottom: '0',
|
|
260
|
+
right: '0'
|
|
261
|
+
} : {
|
|
262
|
+
bottom: '0',
|
|
263
|
+
left: '0'
|
|
264
|
+
}),
|
|
265
|
+
...toggleButtonStyle
|
|
266
|
+
}
|
|
289
267
|
}), /*#__PURE__*/React__default["default"].createElement(Logo, {
|
|
290
268
|
"aria-hidden": true
|
|
291
269
|
})) : null);
|
|
292
270
|
}
|
|
293
271
|
const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwardRef(function TanStackRouterDevtoolsPanel(props, ref) {
|
|
294
|
-
var _Object$values$find$m, _Object$values, _Object$values$find, _router$state$matches, _router$state$pending, _router$state$pending2, _last, _last2, _last3, _last4, _last5, _last6;
|
|
295
|
-
|
|
296
272
|
const {
|
|
297
273
|
isOpen = true,
|
|
274
|
+
setIsOpen,
|
|
298
275
|
handleDragStart,
|
|
299
|
-
router
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
router.cleanMatchCache(); // router.notify()
|
|
307
|
-
|
|
308
|
-
rerender();
|
|
309
|
-
}, 250);
|
|
310
|
-
return () => {
|
|
311
|
-
clearInterval(interval);
|
|
312
|
-
};
|
|
313
|
-
}, []);
|
|
276
|
+
router: userRouter,
|
|
277
|
+
...panelProps
|
|
278
|
+
} = props;
|
|
279
|
+
const routerContextValue = React__default["default"].useContext(reactRouter.routerContext);
|
|
280
|
+
const router = userRouter ?? routerContextValue?.router;
|
|
281
|
+
reactRouter.invariant(router, 'No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.');
|
|
282
|
+
reactRouter.useStore(router.__store);
|
|
314
283
|
const [activeRouteId, setActiveRouteId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveRouteId', '');
|
|
315
284
|
const [activeMatchId, setActiveMatchId] = useLocalStorage["default"]('tanstackRouterDevtoolsActiveMatchId', '');
|
|
316
285
|
React__default["default"].useEffect(() => {
|
|
317
286
|
setActiveMatchId('');
|
|
318
287
|
}, [activeRouteId]);
|
|
319
|
-
const
|
|
320
|
-
const
|
|
321
|
-
const cacheEntry = router.matchCache[key];
|
|
322
|
-
return cacheEntry.gc > Date.now();
|
|
323
|
-
}).map(key => router.matchCache[key]), [d => d.match.isFetching ? -1 : 1, d => -d.match.updatedAt]);
|
|
288
|
+
const allMatches = React__default["default"].useMemo(() => [...Object.values(router.state.currentMatches), ...Object.values(router.state.pendingMatches ?? [])], [router.state.currentMatches, router.state.pendingMatches]);
|
|
289
|
+
const activeMatch = allMatches?.find(d => d.id === activeMatchId) || allMatches?.find(d => d.route.id === activeRouteId);
|
|
324
290
|
return /*#__PURE__*/React__default["default"].createElement(theme.ThemeProvider, {
|
|
325
291
|
theme: theme.defaultTheme
|
|
326
|
-
}, /*#__PURE__*/React__default["default"].createElement("
|
|
327
|
-
src: "https://cdn.tailwindcss.com"
|
|
328
|
-
}), /*#__PURE__*/React__default["default"].createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
|
|
292
|
+
}, /*#__PURE__*/React__default["default"].createElement(styledComponents.Panel, _rollupPluginBabelHelpers["extends"]({
|
|
329
293
|
ref: ref,
|
|
330
294
|
className: "TanStackRouterDevtoolsPanel"
|
|
331
295
|
}, panelProps), /*#__PURE__*/React__default["default"].createElement("style", {
|
|
332
296
|
dangerouslySetInnerHTML: {
|
|
333
|
-
__html:
|
|
297
|
+
__html: `
|
|
298
|
+
|
|
299
|
+
.TanStackRouterDevtoolsPanel * {
|
|
300
|
+
scrollbar-color: ${theme.defaultTheme.backgroundAlt} ${theme.defaultTheme.gray};
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.TanStackRouterDevtoolsPanel *::-webkit-scrollbar, .TanStackRouterDevtoolsPanel scrollbar {
|
|
304
|
+
width: 1em;
|
|
305
|
+
height: 1em;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.TanStackRouterDevtoolsPanel *::-webkit-scrollbar-track, .TanStackRouterDevtoolsPanel scrollbar-track {
|
|
309
|
+
background: ${theme.defaultTheme.backgroundAlt};
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.TanStackRouterDevtoolsPanel *::-webkit-scrollbar-thumb, .TanStackRouterDevtoolsPanel scrollbar-thumb {
|
|
313
|
+
background: ${theme.defaultTheme.gray};
|
|
314
|
+
border-radius: .5em;
|
|
315
|
+
border: 3px solid ${theme.defaultTheme.backgroundAlt};
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.TanStackRouterDevtoolsPanel table {
|
|
319
|
+
width: 100%;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.TanStackRouterDevtoolsPanel table tr {
|
|
323
|
+
border-bottom: 2px dotted rgba(255, 255, 255, .2);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.TanStackRouterDevtoolsPanel table tr:last-child {
|
|
327
|
+
border-bottom: none
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.TanStackRouterDevtoolsPanel table td {
|
|
331
|
+
padding: .25rem .5rem;
|
|
332
|
+
border-right: 2px dotted rgba(255, 255, 255, .05);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.TanStackRouterDevtoolsPanel table td:last-child {
|
|
336
|
+
border-right: none
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
`
|
|
334
340
|
}
|
|
335
341
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
336
342
|
style: {
|
|
@@ -350,13 +356,17 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
350
356
|
minHeight: '40%',
|
|
351
357
|
maxHeight: '100%',
|
|
352
358
|
overflow: 'auto',
|
|
353
|
-
borderRight:
|
|
359
|
+
borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
|
|
354
360
|
display: 'flex',
|
|
355
361
|
flexDirection: 'column'
|
|
356
362
|
}
|
|
357
363
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
358
|
-
className: "flex justify-start gap-2 p-2 items-center",
|
|
359
364
|
style: {
|
|
365
|
+
display: 'flex',
|
|
366
|
+
justifyContent: 'start',
|
|
367
|
+
gap: '1rem',
|
|
368
|
+
padding: '1rem',
|
|
369
|
+
alignItems: 'center',
|
|
360
370
|
background: theme.defaultTheme.backgroundAlt
|
|
361
371
|
}
|
|
362
372
|
}, /*#__PURE__*/React__default["default"].createElement(Logo, {
|
|
@@ -389,7 +399,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
389
399
|
minHeight: '40%',
|
|
390
400
|
maxHeight: '100%',
|
|
391
401
|
overflow: 'auto',
|
|
392
|
-
borderRight:
|
|
402
|
+
borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
|
|
393
403
|
display: 'flex',
|
|
394
404
|
flexDirection: 'column'
|
|
395
405
|
}
|
|
@@ -401,15 +411,15 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
401
411
|
top: 0,
|
|
402
412
|
zIndex: 1
|
|
403
413
|
}
|
|
404
|
-
}, "Active Matches"), router.state.
|
|
414
|
+
}, "Active Matches"), router.state.currentMatches.map((match, i) => {
|
|
405
415
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
406
|
-
key: match.
|
|
416
|
+
key: match.route.id || i,
|
|
407
417
|
role: "button",
|
|
408
|
-
"aria-label":
|
|
409
|
-
onClick: () => setActiveRouteId(activeRouteId === match.
|
|
418
|
+
"aria-label": `Open match details for ${match.route.id}`,
|
|
419
|
+
onClick: () => setActiveRouteId(activeRouteId === match.route.id ? '' : match.route.id),
|
|
410
420
|
style: {
|
|
411
421
|
display: 'flex',
|
|
412
|
-
borderBottom:
|
|
422
|
+
borderBottom: `solid 1px ${theme.defaultTheme.grayAlt}`,
|
|
413
423
|
cursor: 'pointer',
|
|
414
424
|
alignItems: 'center',
|
|
415
425
|
background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
|
|
@@ -431,8 +441,8 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
431
441
|
style: {
|
|
432
442
|
padding: '.5em'
|
|
433
443
|
}
|
|
434
|
-
},
|
|
435
|
-
}),
|
|
444
|
+
}, `${match.id}`));
|
|
445
|
+
}), router.state.pendingMatches?.length ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
436
446
|
style: {
|
|
437
447
|
marginTop: '2rem',
|
|
438
448
|
padding: '.5em',
|
|
@@ -441,15 +451,15 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
441
451
|
top: 0,
|
|
442
452
|
zIndex: 1
|
|
443
453
|
}
|
|
444
|
-
}, "Pending Matches"),
|
|
454
|
+
}, "Pending Matches"), router.state.pendingMatches?.map((match, i) => {
|
|
445
455
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
446
|
-
key: match.
|
|
456
|
+
key: match.route.id || i,
|
|
447
457
|
role: "button",
|
|
448
|
-
"aria-label":
|
|
449
|
-
onClick: () => setActiveRouteId(activeRouteId === match.
|
|
458
|
+
"aria-label": `Open match details for ${match.route.id}`,
|
|
459
|
+
onClick: () => setActiveRouteId(activeRouteId === match.route.id ? '' : match.route.id),
|
|
450
460
|
style: {
|
|
451
461
|
display: 'flex',
|
|
452
|
-
borderBottom:
|
|
462
|
+
borderBottom: `solid 1px ${theme.defaultTheme.grayAlt}`,
|
|
453
463
|
cursor: 'pointer',
|
|
454
464
|
background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
|
|
455
465
|
}
|
|
@@ -470,75 +480,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
470
480
|
style: {
|
|
471
481
|
padding: '.5em'
|
|
472
482
|
}
|
|
473
|
-
},
|
|
474
|
-
})) : null, matchCacheValues.length ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
475
|
-
style: {
|
|
476
|
-
marginTop: '2rem',
|
|
477
|
-
padding: '.5em',
|
|
478
|
-
background: theme.defaultTheme.backgroundAlt,
|
|
479
|
-
position: 'sticky',
|
|
480
|
-
top: 0,
|
|
481
|
-
bottom: 0,
|
|
482
|
-
zIndex: 1,
|
|
483
|
-
display: 'flex',
|
|
484
|
-
alignItems: 'center',
|
|
485
|
-
justifyContent: 'space-between'
|
|
486
|
-
}
|
|
487
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", null, "Match Cache"), /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
|
|
488
|
-
onClick: () => {
|
|
489
|
-
router.matchCache = {};
|
|
490
|
-
router.notify();
|
|
491
|
-
}
|
|
492
|
-
}, "Clear")), matchCacheValues.map((d, i) => {
|
|
493
|
-
const {
|
|
494
|
-
match,
|
|
495
|
-
gc
|
|
496
|
-
} = d;
|
|
497
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
498
|
-
key: match.matchId || i,
|
|
499
|
-
role: "button",
|
|
500
|
-
"aria-label": "Open match details for " + match.matchId,
|
|
501
|
-
onClick: () => setActiveMatchId(activeMatchId === match.matchId ? '' : match.matchId),
|
|
502
|
-
style: {
|
|
503
|
-
display: 'flex',
|
|
504
|
-
borderBottom: "solid 1px " + theme.defaultTheme.grayAlt,
|
|
505
|
-
cursor: 'pointer',
|
|
506
|
-
background: match === activeMatch ? 'rgba(255,255,255,.1)' : undefined
|
|
507
|
-
}
|
|
508
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
509
|
-
style: {
|
|
510
|
-
display: 'flex',
|
|
511
|
-
flexDirection: 'column',
|
|
512
|
-
padding: '.5rem',
|
|
513
|
-
gap: '.3rem'
|
|
514
|
-
}
|
|
515
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
516
|
-
style: {
|
|
517
|
-
display: 'flex',
|
|
518
|
-
alignItems: 'center',
|
|
519
|
-
gap: '.5rem'
|
|
520
|
-
}
|
|
521
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
522
|
-
style: {
|
|
523
|
-
flex: '0 0 auto',
|
|
524
|
-
width: '1.3rem',
|
|
525
|
-
height: '1.3rem',
|
|
526
|
-
background: utils.getStatusColor(match, theme.defaultTheme),
|
|
527
|
-
alignItems: 'center',
|
|
528
|
-
justifyContent: 'center',
|
|
529
|
-
fontWeight: 'bold',
|
|
530
|
-
borderRadius: '.25rem',
|
|
531
|
-
transition: 'all .2s ease-out'
|
|
532
|
-
}
|
|
533
|
-
}), /*#__PURE__*/React__default["default"].createElement(styledComponents.Code, null, "" + match.matchId)), /*#__PURE__*/React__default["default"].createElement("span", {
|
|
534
|
-
style: {
|
|
535
|
-
fontSize: '.7rem',
|
|
536
|
-
opacity: '.5',
|
|
537
|
-
lineHeight: 1
|
|
538
|
-
}
|
|
539
|
-
}, "Expires", ' ', index["default"](new Date(gc), new Date(), {
|
|
540
|
-
addSuffix: true
|
|
541
|
-
}))));
|
|
483
|
+
}, `${match.id}`));
|
|
542
484
|
})) : null), activeMatch ? /*#__PURE__*/React__default["default"].createElement(styledComponents.ActivePanel, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
543
485
|
style: {
|
|
544
486
|
padding: '.5em',
|
|
@@ -556,23 +498,15 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
556
498
|
style: {
|
|
557
499
|
lineHeight: '1.8em'
|
|
558
500
|
}
|
|
559
|
-
}, JSON.stringify(activeMatch.
|
|
560
|
-
style: {
|
|
561
|
-
opacity: '.5'
|
|
562
|
-
}
|
|
563
|
-
}, "Status"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.status)), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
|
|
564
|
-
style: {
|
|
565
|
-
opacity: '.5'
|
|
566
|
-
}
|
|
567
|
-
}, "Pending"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.isPending.toString())), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
|
|
501
|
+
}, JSON.stringify(activeMatch.id, null, 2)))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
|
|
568
502
|
style: {
|
|
569
503
|
opacity: '.5'
|
|
570
504
|
}
|
|
571
|
-
}, "
|
|
505
|
+
}, "Status"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.state.status)), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", {
|
|
572
506
|
style: {
|
|
573
507
|
opacity: '.5'
|
|
574
508
|
}
|
|
575
|
-
}, "Last Updated"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.updatedAt ? new Date(activeMatch.updatedAt).toLocaleTimeString() : 'N/A'))))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
509
|
+
}, "Last Updated"), /*#__PURE__*/React__default["default"].createElement("td", null, activeMatch.state.updatedAt ? new Date(activeMatch.state.updatedAt).toLocaleTimeString() : 'N/A'))))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
576
510
|
style: {
|
|
577
511
|
background: theme.defaultTheme.backgroundAlt,
|
|
578
512
|
padding: '.5em',
|
|
@@ -586,16 +520,6 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
586
520
|
padding: '0.5em'
|
|
587
521
|
}
|
|
588
522
|
}, /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
|
|
589
|
-
type: "button",
|
|
590
|
-
onClick: () => {
|
|
591
|
-
activeMatch.invalidate();
|
|
592
|
-
router.notify();
|
|
593
|
-
},
|
|
594
|
-
style: {
|
|
595
|
-
background: theme.defaultTheme.warning,
|
|
596
|
-
color: theme.defaultTheme.inputTextColor
|
|
597
|
-
}
|
|
598
|
-
}, "Invalidate"), ' ', /*#__PURE__*/React__default["default"].createElement(styledComponents.Button, {
|
|
599
523
|
type: "button",
|
|
600
524
|
onClick: () => activeMatch.load(),
|
|
601
525
|
style: {
|
|
@@ -624,7 +548,7 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
624
548
|
minHeight: '40%',
|
|
625
549
|
maxHeight: '100%',
|
|
626
550
|
overflow: 'auto',
|
|
627
|
-
borderRight:
|
|
551
|
+
borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
|
|
628
552
|
display: 'flex',
|
|
629
553
|
flexDirection: 'column'
|
|
630
554
|
}
|
|
@@ -637,36 +561,13 @@ const TanStackRouterDevtoolsPanel = /*#__PURE__*/React__default["default"].forwa
|
|
|
637
561
|
bottom: 0,
|
|
638
562
|
zIndex: 1
|
|
639
563
|
}
|
|
640
|
-
}, "All Loader Data"), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
641
|
-
style: {
|
|
642
|
-
padding: '.5em'
|
|
643
|
-
}
|
|
644
|
-
}, Object.keys(((_last = reactRouter.last(router.state.matches)) == null ? void 0 : _last.loaderData) || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
|
|
645
|
-
value: ((_last2 = reactRouter.last(router.state.matches)) == null ? void 0 : _last2.loaderData) || {},
|
|
646
|
-
defaultExpanded: Object.keys(((_last3 = reactRouter.last(router.state.matches)) == null ? void 0 : _last3.loaderData) || {}).reduce((obj, next) => {
|
|
647
|
-
obj[next] = {};
|
|
648
|
-
return obj;
|
|
649
|
-
}, {})
|
|
650
|
-
}) : /*#__PURE__*/React__default["default"].createElement("em", {
|
|
651
|
-
style: {
|
|
652
|
-
opacity: 0.5
|
|
653
|
-
}
|
|
654
|
-
}, '{ }')), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
655
|
-
style: {
|
|
656
|
-
padding: '.5em',
|
|
657
|
-
background: theme.defaultTheme.backgroundAlt,
|
|
658
|
-
position: 'sticky',
|
|
659
|
-
top: 0,
|
|
660
|
-
bottom: 0,
|
|
661
|
-
zIndex: 1
|
|
662
|
-
}
|
|
663
564
|
}, "Search Params"), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
664
565
|
style: {
|
|
665
566
|
padding: '.5em'
|
|
666
567
|
}
|
|
667
|
-
}, Object.keys(
|
|
668
|
-
value:
|
|
669
|
-
defaultExpanded: Object.keys(
|
|
568
|
+
}, Object.keys(reactRouter.last(router.state.currentMatches)?.state.search || {}).length ? /*#__PURE__*/React__default["default"].createElement(Explorer["default"], {
|
|
569
|
+
value: reactRouter.last(router.state.currentMatches)?.state.search || {},
|
|
570
|
+
defaultExpanded: Object.keys(reactRouter.last(router.state.currentMatches)?.state.search || {}).reduce((obj, next) => {
|
|
670
571
|
obj[next] = {};
|
|
671
572
|
return obj;
|
|
672
573
|
}, {})
|