@tanstack/router-devtools 0.0.1-alpha.0 → 0.0.1-beta.84
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/README.md +1 -1
- package/build/cjs/Explorer.js +57 -81
- package/build/cjs/Explorer.js.map +1 -1
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +1 -19
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/build/cjs/devtools.js +256 -266
- package/build/cjs/devtools.js.map +1 -1
- package/build/cjs/index.js +3 -3
- package/build/cjs/styledComponents.js +10 -38
- package/build/cjs/styledComponents.js.map +1 -1
- package/build/cjs/theme.js +5 -8
- package/build/cjs/theme.js.map +1 -1
- package/build/cjs/useLocalStorage.js +3 -10
- package/build/cjs/useLocalStorage.js.map +1 -1
- package/build/cjs/useMediaQuery.js +13 -12
- package/build/cjs/useMediaQuery.js.map +1 -1
- package/build/cjs/utils.js +25 -35
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +308 -1337
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +59 -49
- package/build/stats-react.json +223 -9444
- package/build/types/index.d.ts +6 -5
- package/build/umd/index.development.js +347 -1316
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +22 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +9 -11
- package/src/Explorer.tsx +14 -12
- package/src/devtools.tsx +263 -240
- package/src/useLocalStorage.ts +5 -5
- package/src/useMediaQuery.ts +3 -0
- package/src/utils.ts +35 -17
- package/build/cjs/Logo.js +0 -73
- package/build/cjs/Logo.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/Explorer.js +0 -240
- package/build/cjs/packages/react-location-devtools/src/Explorer.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/Logo.js +0 -73
- package/build/cjs/packages/react-location-devtools/src/Logo.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/devtools.js +0 -614
- package/build/cjs/packages/react-location-devtools/src/devtools.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/index.js +0 -21
- package/build/cjs/packages/react-location-devtools/src/index.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/styledComponents.js +0 -107
- package/build/cjs/packages/react-location-devtools/src/styledComponents.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/theme.js +0 -54
- package/build/cjs/packages/react-location-devtools/src/theme.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/useLocalStorage.js +0 -65
- package/build/cjs/packages/react-location-devtools/src/useLocalStorage.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/useMediaQuery.js +0 -57
- package/build/cjs/packages/react-location-devtools/src/useMediaQuery.js.map +0 -1
- package/build/cjs/packages/react-location-devtools/src/utils.js +0 -117
- package/build/cjs/packages/react-location-devtools/src/utils.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/Explorer.js +0 -245
- package/build/cjs/packages/react-router-devtools/src/Explorer.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/Logo.js +0 -73
- package/build/cjs/packages/react-router-devtools/src/Logo.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/devtools.js +0 -654
- package/build/cjs/packages/react-router-devtools/src/devtools.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/index.js +0 -21
- package/build/cjs/packages/react-router-devtools/src/index.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/styledComponents.js +0 -107
- package/build/cjs/packages/react-router-devtools/src/styledComponents.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/theme.js +0 -54
- package/build/cjs/packages/react-router-devtools/src/theme.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/useLocalStorage.js +0 -65
- package/build/cjs/packages/react-router-devtools/src/useLocalStorage.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/useMediaQuery.js +0 -57
- package/build/cjs/packages/react-router-devtools/src/useMediaQuery.js.map +0 -1
- package/build/cjs/packages/react-router-devtools/src/utils.js +0 -117
- package/build/cjs/packages/react-router-devtools/src/utils.js.map +0 -1
- package/src/Logo.tsx +0 -37
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Tanner Linsley
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
package/build/cjs/Explorer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* router-devtools
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) TanStack
|
|
5
5
|
*
|
|
@@ -36,7 +36,6 @@ function _interopNamespace(e) {
|
|
|
36
36
|
|
|
37
37
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
38
38
|
|
|
39
|
-
const _excluded = ["value", "defaultExpanded", "renderer", "pageSize"];
|
|
40
39
|
const Entry = utils.styled('div', {
|
|
41
40
|
fontFamily: 'Menlo, monospace',
|
|
42
41
|
fontSize: '.7rem',
|
|
@@ -72,20 +71,17 @@ const Info = utils.styled('span', {
|
|
|
72
71
|
color: 'grey',
|
|
73
72
|
fontSize: '.7em'
|
|
74
73
|
});
|
|
75
|
-
const Expander =
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}, "\u25B6");
|
|
87
|
-
};
|
|
88
|
-
|
|
74
|
+
const Expander = ({
|
|
75
|
+
expanded,
|
|
76
|
+
style = {}
|
|
77
|
+
}) => /*#__PURE__*/React__namespace.createElement("span", {
|
|
78
|
+
style: {
|
|
79
|
+
display: 'inline-block',
|
|
80
|
+
transition: 'all .1s ease',
|
|
81
|
+
transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,
|
|
82
|
+
...style
|
|
83
|
+
}
|
|
84
|
+
}, "\u25B6");
|
|
89
85
|
/**
|
|
90
86
|
* Chunk elements in the array by size
|
|
91
87
|
*
|
|
@@ -99,89 +95,76 @@ function chunkArray(array, size) {
|
|
|
99
95
|
if (size < 1) return [];
|
|
100
96
|
let i = 0;
|
|
101
97
|
const result = [];
|
|
102
|
-
|
|
103
98
|
while (i < array.length) {
|
|
104
99
|
result.push(array.slice(i, i + size));
|
|
105
100
|
i = i + size;
|
|
106
101
|
}
|
|
107
|
-
|
|
108
102
|
return result;
|
|
109
103
|
}
|
|
110
|
-
const DefaultRenderer =
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
} = _ref2;
|
|
104
|
+
const DefaultRenderer = ({
|
|
105
|
+
handleEntry,
|
|
106
|
+
label,
|
|
107
|
+
value,
|
|
108
|
+
subEntries = [],
|
|
109
|
+
subEntryPages = [],
|
|
110
|
+
type,
|
|
111
|
+
expanded = false,
|
|
112
|
+
toggleExpanded,
|
|
113
|
+
pageSize,
|
|
114
|
+
renderer
|
|
115
|
+
}) => {
|
|
123
116
|
const [expandedPages, setExpandedPages] = React__namespace.useState([]);
|
|
124
117
|
const [valueSnapshot, setValueSnapshot] = React__namespace.useState(undefined);
|
|
125
|
-
|
|
126
118
|
const refreshValueSnapshot = () => {
|
|
127
119
|
setValueSnapshot(value());
|
|
128
120
|
};
|
|
129
|
-
|
|
130
|
-
return /*#__PURE__*/React__namespace.createElement(Entry, {
|
|
131
|
-
key: label
|
|
132
|
-
}, subEntryPages.length ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ExpandButton, {
|
|
121
|
+
return /*#__PURE__*/React__namespace.createElement(Entry, null, subEntryPages.length ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ExpandButton, {
|
|
133
122
|
onClick: () => toggleExpanded()
|
|
134
123
|
}, /*#__PURE__*/React__namespace.createElement(Expander, {
|
|
135
124
|
expanded: expanded
|
|
136
|
-
}), " ", label, ' ', /*#__PURE__*/React__namespace.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ?
|
|
137
|
-
key: entry.label,
|
|
138
|
-
entry: entry
|
|
139
|
-
}))) : /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React__namespace.createElement("div", {
|
|
125
|
+
}), " ", label, ' ', /*#__PURE__*/React__namespace.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? `items` : `item`)), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntries.map((entry, index) => handleEntry(entry))) : /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React__namespace.createElement("div", {
|
|
140
126
|
key: index
|
|
141
127
|
}, /*#__PURE__*/React__namespace.createElement(Entry, null, /*#__PURE__*/React__namespace.createElement(LabelButton, {
|
|
142
128
|
onClick: () => setExpandedPages(old => old.includes(index) ? old.filter(d => d !== index) : [...old, index])
|
|
143
129
|
}, /*#__PURE__*/React__namespace.createElement(Expander, {
|
|
144
130
|
expanded: expanded
|
|
145
|
-
}), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, entries.map(entry => /*#__PURE__*/React__namespace.createElement(
|
|
146
|
-
key: entry.label,
|
|
147
|
-
entry: entry
|
|
148
|
-
}))) : null)))) : null) : type === 'function' ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Explorer, {
|
|
131
|
+
}), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, entries.map(entry => handleEntry(entry))) : null)))) : null) : type === 'function' ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Explorer, {
|
|
149
132
|
renderer: renderer,
|
|
150
133
|
label: /*#__PURE__*/React__namespace.createElement("button", {
|
|
151
|
-
onClick: refreshValueSnapshot
|
|
134
|
+
onClick: refreshValueSnapshot,
|
|
135
|
+
style: {
|
|
136
|
+
appearance: 'none',
|
|
137
|
+
border: '0',
|
|
138
|
+
background: 'transparent'
|
|
139
|
+
}
|
|
152
140
|
}, /*#__PURE__*/React__namespace.createElement(Label, null, label), " \uD83D\uDD04", ' '),
|
|
153
141
|
value: valueSnapshot,
|
|
154
142
|
defaultExpanded: {}
|
|
155
143
|
})) : /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Label, null, label, ":"), " ", /*#__PURE__*/React__namespace.createElement(Value, null, utils.displayValue(value))));
|
|
156
144
|
};
|
|
157
|
-
|
|
158
145
|
function isIterable(x) {
|
|
159
146
|
return Symbol.iterator in x;
|
|
160
147
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
} = _ref3,
|
|
169
|
-
rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref3, _excluded);
|
|
170
|
-
|
|
148
|
+
function Explorer({
|
|
149
|
+
value,
|
|
150
|
+
defaultExpanded,
|
|
151
|
+
renderer = DefaultRenderer,
|
|
152
|
+
pageSize = 100,
|
|
153
|
+
...rest
|
|
154
|
+
}) {
|
|
171
155
|
const [expanded, setExpanded] = React__namespace.useState(Boolean(defaultExpanded));
|
|
172
156
|
const toggleExpanded = React__namespace.useCallback(() => setExpanded(old => !old), []);
|
|
173
157
|
let type = typeof value;
|
|
174
158
|
let subEntries = [];
|
|
175
|
-
|
|
176
159
|
const makeProperty = sub => {
|
|
177
160
|
const subDefaultExpanded = defaultExpanded === true ? {
|
|
178
161
|
[sub.label]: true
|
|
179
|
-
} : defaultExpanded
|
|
180
|
-
return
|
|
162
|
+
} : defaultExpanded?.[sub.label];
|
|
163
|
+
return {
|
|
164
|
+
...sub,
|
|
181
165
|
defaultExpanded: subDefaultExpanded
|
|
182
|
-
}
|
|
166
|
+
};
|
|
183
167
|
};
|
|
184
|
-
|
|
185
168
|
if (Array.isArray(value)) {
|
|
186
169
|
type = 'array';
|
|
187
170
|
subEntries = value.map((d, i) => makeProperty({
|
|
@@ -196,34 +179,27 @@ function Explorer(_ref3) {
|
|
|
196
179
|
}));
|
|
197
180
|
} else if (typeof value === 'object' && value !== null) {
|
|
198
181
|
type = 'object';
|
|
199
|
-
subEntries = Object.entries(value).map(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
value: val
|
|
204
|
-
});
|
|
205
|
-
});
|
|
182
|
+
subEntries = Object.entries(value).map(([key, val]) => makeProperty({
|
|
183
|
+
label: key,
|
|
184
|
+
value: val
|
|
185
|
+
}));
|
|
206
186
|
}
|
|
207
|
-
|
|
208
187
|
const subEntryPages = chunkArray(subEntries, pageSize);
|
|
209
|
-
return renderer(
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
value: value,
|
|
216
|
-
renderer: renderer
|
|
217
|
-
}, rest, entry));
|
|
218
|
-
},
|
|
188
|
+
return renderer({
|
|
189
|
+
handleEntry: entry => /*#__PURE__*/React__namespace.createElement(Explorer, _rollupPluginBabelHelpers["extends"]({
|
|
190
|
+
key: entry.label,
|
|
191
|
+
value: value,
|
|
192
|
+
renderer: renderer
|
|
193
|
+
}, rest, entry)),
|
|
219
194
|
type,
|
|
220
195
|
subEntries,
|
|
221
196
|
subEntryPages,
|
|
222
197
|
value,
|
|
223
198
|
expanded,
|
|
224
199
|
toggleExpanded,
|
|
225
|
-
pageSize
|
|
226
|
-
|
|
200
|
+
pageSize,
|
|
201
|
+
...rest
|
|
202
|
+
});
|
|
227
203
|
}
|
|
228
204
|
|
|
229
205
|
exports.DefaultRenderer = DefaultRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Explorer.js","sources":["../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n HandleEntry: HandleEntryComponent\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n HandleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry key={label}>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button onClick={refreshValueSnapshot}>\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryComponent = (props: { entry: Entry }) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n HandleEntry: ({ entry }) => (\n <Explorer value={value} renderer={renderer} {...rest} {...entry} />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","_extends","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","HandleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","useState","valueSnapshot","setValueSnapshot","undefined","refreshValueSnapshot","String","toLowerCase","map","entry","entries","index","old","includes","filter","d","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","rest","_objectWithoutPropertiesLoose","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Explorer.js","sources":["../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: HandleEntryFn\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n handleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry, index) => handleEntry(entry))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => handleEntry(entry))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryFn = (entry: Entry) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n handleEntry: (entry) => (\n <Explorer\n key={entry.label}\n value={value}\n renderer={renderer}\n {...rest}\n {...entry}\n />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","handleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","useState","valueSnapshot","setValueSnapshot","undefined","refreshValueSnapshot","String","toLowerCase","map","entry","index","entries","old","includes","filter","d","appearance","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","rest","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key","_extends"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* router-devtools
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) TanStack
|
|
5
5
|
*
|
|
@@ -16,34 +16,16 @@ function _extends() {
|
|
|
16
16
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
17
17
|
for (var i = 1; i < arguments.length; i++) {
|
|
18
18
|
var source = arguments[i];
|
|
19
|
-
|
|
20
19
|
for (var key in source) {
|
|
21
20
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
22
21
|
target[key] = source[key];
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
|
|
27
25
|
return target;
|
|
28
26
|
};
|
|
29
27
|
return _extends.apply(this, arguments);
|
|
30
28
|
}
|
|
31
29
|
|
|
32
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
33
|
-
if (source == null) return {};
|
|
34
|
-
var target = {};
|
|
35
|
-
var sourceKeys = Object.keys(source);
|
|
36
|
-
var key, i;
|
|
37
|
-
|
|
38
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
39
|
-
key = sourceKeys[i];
|
|
40
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
41
|
-
target[key] = source[key];
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return target;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
30
|
exports["extends"] = _extends;
|
|
48
|
-
exports.objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose;
|
|
49
31
|
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|