@tanstack/react-query-devtools 5.0.0-alpha.6 → 5.0.0-alpha.61

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 (115) hide show
  1. package/build/lib/__tests__/devtools.test.d.ts +1 -1
  2. package/build/lib/__tests__/devtools.test.d.ts.map +1 -0
  3. package/build/lib/__tests__/utils.d.ts +2 -1
  4. package/build/lib/__tests__/utils.d.ts.map +1 -0
  5. package/build/lib/devtools.cjs +65 -0
  6. package/build/lib/devtools.cjs.map +1 -0
  7. package/build/lib/devtools.d.ts +11 -91
  8. package/build/lib/devtools.d.ts.map +1 -0
  9. package/build/lib/devtools.js +56 -913
  10. package/build/lib/devtools.js.map +1 -1
  11. package/build/lib/index.cjs +18 -0
  12. package/build/lib/index.cjs.map +1 -0
  13. package/build/lib/index.d.ts +1 -1
  14. package/build/lib/index.d.ts.map +1 -0
  15. package/build/lib/index.js +11 -9
  16. package/build/lib/index.js.map +1 -1
  17. package/build/lib/index.prod.cjs +70 -0
  18. package/build/lib/index.prod.cjs.map +1 -0
  19. package/build/lib/{index.prod.d.ts → index.prod.d.ts/index.d.ts} +1 -1
  20. package/build/lib/index.prod.js +59 -1571
  21. package/build/lib/index.prod.js.map +1 -1
  22. package/package.json +25 -26
  23. package/src/__tests__/devtools.test.tsx +1 -1009
  24. package/src/devtools.tsx +67 -1306
  25. package/src/index.ts +6 -6
  26. package/build/lib/Explorer.d.ts +0 -50
  27. package/build/lib/Explorer.esm.js +0 -253
  28. package/build/lib/Explorer.esm.js.map +0 -1
  29. package/build/lib/Explorer.js +0 -287
  30. package/build/lib/Explorer.js.map +0 -1
  31. package/build/lib/Explorer.mjs +0 -253
  32. package/build/lib/Explorer.mjs.map +0 -1
  33. package/build/lib/Logo.d.ts +0 -1
  34. package/build/lib/Logo.esm.js +0 -32
  35. package/build/lib/Logo.esm.js.map +0 -1
  36. package/build/lib/Logo.js +0 -55
  37. package/build/lib/Logo.js.map +0 -1
  38. package/build/lib/Logo.mjs +0 -32
  39. package/build/lib/Logo.mjs.map +0 -1
  40. package/build/lib/__tests__/Explorer.test.d.ts +0 -1
  41. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js +0 -17
  42. package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
  43. package/build/lib/_virtual/_rollupPluginBabelHelpers.js +0 -19
  44. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  45. package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs +0 -17
  46. package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -1
  47. package/build/lib/devtools.esm.js +0 -899
  48. package/build/lib/devtools.esm.js.map +0 -1
  49. package/build/lib/devtools.mjs +0 -868
  50. package/build/lib/devtools.mjs.map +0 -1
  51. package/build/lib/index.esm.js +0 -11
  52. package/build/lib/index.esm.js.map +0 -1
  53. package/build/lib/index.mjs +0 -11
  54. package/build/lib/index.mjs.map +0 -1
  55. package/build/lib/index.prod.esm.js +0 -1559
  56. package/build/lib/index.prod.esm.js.map +0 -1
  57. package/build/lib/index.prod.mjs +0 -1528
  58. package/build/lib/index.prod.mjs.map +0 -1
  59. package/build/lib/noop.d.ts +0 -2
  60. package/build/lib/screenreader.d.ts +0 -3
  61. package/build/lib/screenreader.esm.js +0 -17
  62. package/build/lib/screenreader.esm.js.map +0 -1
  63. package/build/lib/screenreader.js +0 -40
  64. package/build/lib/screenreader.js.map +0 -1
  65. package/build/lib/screenreader.mjs +0 -17
  66. package/build/lib/screenreader.mjs.map +0 -1
  67. package/build/lib/styledComponents.d.ts +0 -9
  68. package/build/lib/styledComponents.esm.js +0 -95
  69. package/build/lib/styledComponents.esm.js.map +0 -1
  70. package/build/lib/styledComponents.js +0 -104
  71. package/build/lib/styledComponents.js.map +0 -1
  72. package/build/lib/styledComponents.mjs +0 -95
  73. package/build/lib/styledComponents.mjs.map +0 -1
  74. package/build/lib/theme.d.ts +0 -36
  75. package/build/lib/theme.esm.js +0 -32
  76. package/build/lib/theme.esm.js.map +0 -1
  77. package/build/lib/theme.js +0 -55
  78. package/build/lib/theme.js.map +0 -1
  79. package/build/lib/theme.mjs +0 -32
  80. package/build/lib/theme.mjs.map +0 -1
  81. package/build/lib/useLocalStorage.d.ts +0 -1
  82. package/build/lib/useLocalStorage.esm.js +0 -40
  83. package/build/lib/useLocalStorage.esm.js.map +0 -1
  84. package/build/lib/useLocalStorage.js +0 -63
  85. package/build/lib/useLocalStorage.js.map +0 -1
  86. package/build/lib/useLocalStorage.mjs +0 -40
  87. package/build/lib/useLocalStorage.mjs.map +0 -1
  88. package/build/lib/useMediaQuery.d.ts +0 -1
  89. package/build/lib/useMediaQuery.esm.js +0 -36
  90. package/build/lib/useMediaQuery.esm.js.map +0 -1
  91. package/build/lib/useMediaQuery.js +0 -59
  92. package/build/lib/useMediaQuery.js.map +0 -1
  93. package/build/lib/useMediaQuery.mjs +0 -36
  94. package/build/lib/useMediaQuery.mjs.map +0 -1
  95. package/build/lib/utils.d.ts +0 -79
  96. package/build/lib/utils.esm.js +0 -184
  97. package/build/lib/utils.esm.js.map +0 -1
  98. package/build/lib/utils.js +0 -218
  99. package/build/lib/utils.js.map +0 -1
  100. package/build/lib/utils.mjs +0 -184
  101. package/build/lib/utils.mjs.map +0 -1
  102. package/build/umd/index.development.js +0 -3195
  103. package/build/umd/index.development.js.map +0 -1
  104. package/build/umd/index.production.js +0 -2
  105. package/build/umd/index.production.js.map +0 -1
  106. package/src/Explorer.tsx +0 -385
  107. package/src/Logo.tsx +0 -32
  108. package/src/__tests__/Explorer.test.tsx +0 -150
  109. package/src/noop.ts +0 -7
  110. package/src/screenreader.tsx +0 -16
  111. package/src/styledComponents.ts +0 -110
  112. package/src/theme.tsx +0 -33
  113. package/src/useLocalStorage.ts +0 -52
  114. package/src/useMediaQuery.ts +0 -34
  115. package/src/utils.ts +0 -319
package/src/index.ts CHANGED
@@ -9,9 +9,9 @@ export const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =
9
9
  }
10
10
  : devtools.ReactQueryDevtools
11
11
 
12
- export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =
13
- process.env.NODE_ENV !== 'development'
14
- ? (function () {
15
- return null
16
- } as any)
17
- : devtools.ReactQueryDevtoolsPanel
12
+ // export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =
13
+ // process.env.NODE_ENV !== 'development'
14
+ // ? (function () {
15
+ // return null
16
+ // } as any)
17
+ // : devtools.ReactQueryDevtoolsPanel
@@ -1,50 +0,0 @@
1
- import * as React from 'react';
2
- export declare const Entry: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
- export declare const Label: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
4
- export declare const LabelButton: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & React.RefAttributes<HTMLButtonElement>>;
5
- export declare const ExpandButton: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & React.RefAttributes<HTMLButtonElement>>;
6
- export declare const CopyButton: ({ value }: {
7
- value: unknown;
8
- }) => JSX.Element;
9
- export declare const Value: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
10
- export declare const SubEntries: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
11
- export declare const Info: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
12
- declare type ExpanderProps = {
13
- expanded: boolean;
14
- style?: React.CSSProperties;
15
- };
16
- export declare const Expander: ({ expanded, style }: ExpanderProps) => JSX.Element;
17
- declare type EntryType = {
18
- label: string;
19
- };
20
- declare type RendererProps = {
21
- handleEntry: (entry: EntryType) => JSX.Element;
22
- label?: string;
23
- value: unknown;
24
- subEntries: EntryType[];
25
- subEntryPages: EntryType[][];
26
- type: string;
27
- expanded: boolean;
28
- copyable: boolean;
29
- toggleExpanded: () => void;
30
- pageSize: number;
31
- };
32
- /**
33
- * Chunk elements in the array by size
34
- *
35
- * when the array cannot be chunked evenly by size, the last chunk will be
36
- * filled with the remaining elements
37
- *
38
- * @example
39
- * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]
40
- */
41
- export declare function chunkArray<T>(array: T[], size: number): T[][];
42
- declare type Renderer = (props: RendererProps) => JSX.Element;
43
- export declare const DefaultRenderer: Renderer;
44
- declare type ExplorerProps = Partial<RendererProps> & {
45
- renderer?: Renderer;
46
- defaultExpanded?: true | Record<string, boolean>;
47
- copyable?: boolean;
48
- };
49
- export default function Explorer({ value, defaultExpanded, renderer, pageSize, copyable, ...rest }: ExplorerProps): JSX.Element;
50
- export {};
@@ -1,253 +0,0 @@
1
- import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.esm.js';
2
- import * as React from 'react';
3
- import { displayValue, styled } from './utils.esm.js';
4
- import SuperJSON from 'superjson';
5
-
6
- const Entry = styled('div', {
7
- fontFamily: 'Menlo, monospace',
8
- fontSize: '1em',
9
- lineHeight: '1.7',
10
- outline: 'none',
11
- wordBreak: 'break-word'
12
- });
13
- const Label = styled('span', {
14
- color: 'white'
15
- });
16
- const LabelButton = styled('button', {
17
- cursor: 'pointer',
18
- color: 'white'
19
- });
20
- const ExpandButton = styled('button', {
21
- cursor: 'pointer',
22
- color: 'inherit',
23
- font: 'inherit',
24
- outline: 'inherit',
25
- background: 'transparent',
26
- border: 'none',
27
- padding: 0
28
- });
29
- const CopyButton = ({
30
- value
31
- }) => {
32
- const [copyState, setCopyState] = React.useState('NoCopy');
33
- return /*#__PURE__*/React.createElement("button", {
34
- onClick: copyState === 'NoCopy' ? () => {
35
- navigator.clipboard.writeText(SuperJSON.stringify(value)).then(() => {
36
- setCopyState('SuccessCopy');
37
- setTimeout(() => {
38
- setCopyState('NoCopy');
39
- }, 1500);
40
- }, err => {
41
- console.error('Failed to copy: ', err);
42
- setCopyState('ErrorCopy');
43
- setTimeout(() => {
44
- setCopyState('NoCopy');
45
- }, 1500);
46
- });
47
- } : undefined,
48
- style: {
49
- cursor: 'pointer',
50
- color: 'inherit',
51
- font: 'inherit',
52
- outline: 'inherit',
53
- background: 'transparent',
54
- border: 'none',
55
- padding: 0
56
- }
57
- }, copyState === 'NoCopy' ? /*#__PURE__*/React.createElement(Copier, null) : copyState === 'SuccessCopy' ? /*#__PURE__*/React.createElement(CopiedCopier, null) : /*#__PURE__*/React.createElement(ErrorCopier, null));
58
- };
59
- const Value = styled('span', (_props, theme) => ({
60
- color: theme.danger
61
- }));
62
- const SubEntries = styled('div', {
63
- marginLeft: '.1em',
64
- paddingLeft: '1em',
65
- borderLeft: '2px solid rgba(0,0,0,.15)'
66
- });
67
- const Info = styled('span', {
68
- color: 'grey',
69
- fontSize: '.7em'
70
- });
71
- const Expander = ({
72
- expanded,
73
- style = {}
74
- }) => /*#__PURE__*/React.createElement("span", {
75
- style: {
76
- display: 'inline-block',
77
- transition: 'all .1s ease',
78
- transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,
79
- ...style
80
- }
81
- }, "\u25B6");
82
- const Copier = () => /*#__PURE__*/React.createElement("span", {
83
- "aria-label": "Copy object to clipboard",
84
- title: "Copy object to clipboard",
85
- style: {
86
- paddingLeft: '1em'
87
- }
88
- }, /*#__PURE__*/React.createElement("svg", {
89
- height: "12",
90
- viewBox: "0 0 16 12",
91
- width: "10"
92
- }, /*#__PURE__*/React.createElement("path", {
93
- fill: "currentColor",
94
- d: "M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"
95
- }), /*#__PURE__*/React.createElement("path", {
96
- fill: "currentColor",
97
- d: "M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"
98
- })));
99
- const ErrorCopier = () => /*#__PURE__*/React.createElement("span", {
100
- "aria-label": "Failed copying to clipboard",
101
- title: "Failed copying to clipboard",
102
- style: {
103
- paddingLeft: '1em',
104
- display: 'flex',
105
- alignItems: 'center'
106
- }
107
- }, /*#__PURE__*/React.createElement("svg", {
108
- height: "12",
109
- viewBox: "0 0 16 12",
110
- width: "10",
111
- display: "block"
112
- }, /*#__PURE__*/React.createElement("path", {
113
- fill: "red",
114
- d: "M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"
115
- })), /*#__PURE__*/React.createElement("span", {
116
- style: {
117
- color: 'red',
118
- fontSize: '12px',
119
- paddingLeft: '4px',
120
- position: 'relative',
121
- top: '2px'
122
- }
123
- }, "See console"));
124
- const CopiedCopier = () => /*#__PURE__*/React.createElement("span", {
125
- "aria-label": "Object copied to clipboard",
126
- title: "Object copied to clipboard",
127
- style: {
128
- paddingLeft: '1em',
129
- display: 'inline-block',
130
- verticalAlign: 'middle'
131
- }
132
- }, /*#__PURE__*/React.createElement("svg", {
133
- height: "16",
134
- viewBox: "0 0 16 16",
135
- width: "16",
136
- display: "block"
137
- }, /*#__PURE__*/React.createElement("path", {
138
- fill: "green",
139
- d: "M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"
140
- })));
141
- /**
142
- * Chunk elements in the array by size
143
- *
144
- * when the array cannot be chunked evenly by size, the last chunk will be
145
- * filled with the remaining elements
146
- *
147
- * @example
148
- * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]
149
- */
150
- function chunkArray(array, size) {
151
- if (size < 1) return [];
152
- let i = 0;
153
- const result = [];
154
- while (i < array.length) {
155
- result.push(array.slice(i, i + size));
156
- i = i + size;
157
- }
158
- return result;
159
- }
160
- const DefaultRenderer = ({
161
- handleEntry,
162
- label,
163
- value,
164
- subEntries = [],
165
- subEntryPages = [],
166
- type,
167
- expanded = false,
168
- copyable = false,
169
- toggleExpanded,
170
- pageSize
171
- }) => {
172
- const [expandedPages, setExpandedPages] = React.useState([]);
173
- return /*#__PURE__*/React.createElement(Entry, {
174
- key: label
175
- }, subEntryPages.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ExpandButton, {
176
- onClick: () => toggleExpanded()
177
- }, /*#__PURE__*/React.createElement(Expander, {
178
- expanded: expanded
179
- }), " ", label, ' ', /*#__PURE__*/React.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? `items` : `item`)), copyable ? /*#__PURE__*/React.createElement(CopyButton, {
180
- value: value
181
- }) : null, expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React.createElement(SubEntries, null, subEntries.map(handleEntry)) : /*#__PURE__*/React.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React.createElement("div", {
182
- key: index
183
- }, /*#__PURE__*/React.createElement(Entry, null, /*#__PURE__*/React.createElement(LabelButton, {
184
- onClick: () => setExpandedPages(old => old.includes(index) ? old.filter(d => d !== index) : [...old, index])
185
- }, /*#__PURE__*/React.createElement(Expander, {
186
- expanded: expanded
187
- }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React.createElement(SubEntries, null, entries.map(handleEntry)) : null)))) : null) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Label, null, label, ":"), " ", /*#__PURE__*/React.createElement(Value, null, displayValue(value))));
188
- };
189
- function isIterable(x) {
190
- return Symbol.iterator in x;
191
- }
192
- function Explorer({
193
- value,
194
- defaultExpanded,
195
- renderer = DefaultRenderer,
196
- pageSize = 100,
197
- copyable = false,
198
- ...rest
199
- }) {
200
- const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded));
201
- const toggleExpanded = React.useCallback(() => setExpanded(old => !old), []);
202
- let type = typeof value;
203
- let subEntries = [];
204
- const makeProperty = sub => {
205
- const subDefaultExpanded = defaultExpanded === true ? {
206
- [sub.label]: true
207
- } : defaultExpanded == null ? void 0 : defaultExpanded[sub.label];
208
- return {
209
- ...sub,
210
- defaultExpanded: subDefaultExpanded
211
- };
212
- };
213
- if (Array.isArray(value)) {
214
- type = 'array';
215
- subEntries = value.map((d, i) => makeProperty({
216
- label: i.toString(),
217
- value: d
218
- }));
219
- } else if (value !== null && typeof value === 'object' && isIterable(value) && typeof value[Symbol.iterator] === 'function') {
220
- type = 'Iterable';
221
- subEntries = Array.from(value, (val, i) => makeProperty({
222
- label: i.toString(),
223
- value: val
224
- }));
225
- } else if (typeof value === 'object' && value !== null) {
226
- type = 'object';
227
- subEntries = Object.entries(value).map(([key, val]) => makeProperty({
228
- label: key,
229
- value: val
230
- }));
231
- }
232
- const subEntryPages = chunkArray(subEntries, pageSize);
233
- return renderer({
234
- handleEntry: entry => /*#__PURE__*/React.createElement(Explorer, _extends({
235
- key: entry.label,
236
- value: value,
237
- renderer: renderer,
238
- copyable: copyable
239
- }, rest, entry)),
240
- type,
241
- subEntries,
242
- subEntryPages,
243
- value,
244
- expanded,
245
- copyable,
246
- toggleExpanded,
247
- pageSize,
248
- ...rest
249
- });
250
- }
251
-
252
- export { CopyButton, DefaultRenderer, Entry, ExpandButton, Expander, Info, Label, LabelButton, SubEntries, Value, chunkArray, Explorer as default };
253
- //# sourceMappingURL=Explorer.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Explorer.esm.js","sources":["../../src/Explorer.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { displayValue, styled } from './utils'\nimport superjson from 'superjson'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '1em',\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\ntype CopyState = 'NoCopy' | 'SuccessCopy' | 'ErrorCopy'\n\nexport const CopyButton = ({ value }: { value: unknown }) => {\n const [copyState, setCopyState] = React.useState<CopyState>('NoCopy')\n\n return (\n <button\n onClick={\n copyState === 'NoCopy'\n ? () => {\n navigator.clipboard.writeText(superjson.stringify(value)).then(\n () => {\n setCopyState('SuccessCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n (err) => {\n console.error('Failed to copy: ', err)\n setCopyState('ErrorCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n )\n }\n : undefined\n }\n style={{\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n }}\n >\n {copyState === 'NoCopy' ? (\n <Copier />\n ) : copyState === 'SuccessCopy' ? (\n <CopiedCopier />\n ) : (\n <ErrorCopier />\n )}\n </button>\n )\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\nconst Copier = () => (\n <span\n aria-label=\"Copy object to clipboard\"\n title=\"Copy object to clipboard\"\n style={{\n paddingLeft: '1em',\n }}\n >\n <svg height=\"12\" viewBox=\"0 0 16 12\" width=\"10\">\n <path\n fill=\"currentColor\"\n d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z\"\n ></path>\n <path\n fill=\"currentColor\"\n d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z\"\n ></path>\n </svg>\n </span>\n)\n\nconst ErrorCopier = () => (\n <span\n aria-label=\"Failed copying to clipboard\"\n title=\"Failed copying to clipboard\"\n style={{\n paddingLeft: '1em',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <svg height=\"12\" viewBox=\"0 0 16 12\" width=\"10\" display=\"block\">\n <path\n fill=\"red\"\n d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"\n ></path>\n </svg>\n <span\n style={{\n color: 'red',\n fontSize: '12px',\n paddingLeft: '4px',\n position: 'relative',\n top: '2px',\n }}\n >\n See console\n </span>\n </span>\n)\n\nconst CopiedCopier = () => (\n <span\n aria-label=\"Object copied to clipboard\"\n title=\"Object copied to clipboard\"\n style={{\n paddingLeft: '1em',\n display: 'inline-block',\n verticalAlign: 'middle',\n }}\n >\n <svg height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" display=\"block\">\n <path\n fill=\"green\"\n d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"\n ></path>\n </svg>\n </span>\n)\n\ntype EntryType = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: (entry: EntryType) => JSX.Element\n label?: string\n value: unknown\n subEntries: EntryType[]\n subEntryPages: EntryType[][]\n type: string\n expanded: boolean\n copyable: boolean\n toggleExpanded: () => void\n pageSize: number\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 copyable = false,\n toggleExpanded,\n pageSize,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\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 {copyable ? <CopyButton value={value} /> : null}\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>{subEntries.map(handleEntry)}</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>{entries.map(handleEntry)}</SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n copyable?: 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 copyable = false,\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 copyable={copyable}\n {...rest}\n {...entry}\n />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n copyable,\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","CopyButton","value","copyState","setCopyState","React","useState","navigator","clipboard","writeText","superjson","stringify","then","setTimeout","err","console","error","undefined","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","display","transition","transform","Copier","ErrorCopier","alignItems","position","top","CopiedCopier","verticalAlign","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","handleEntry","label","subEntries","subEntryPages","type","copyable","toggleExpanded","pageSize","expandedPages","setExpandedPages","String","toLowerCase","map","entries","index","old","includes","filter","d","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","renderer","rest","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key","entry"],"mappings":"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"}
@@ -1,287 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
6
- var React = require('react');
7
- var utils = require('./utils.js');
8
- var SuperJSON = require('superjson');
9
-
10
- function _interopNamespaceDefault(e) {
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
-
29
- const Entry = utils.styled('div', {
30
- fontFamily: 'Menlo, monospace',
31
- fontSize: '1em',
32
- lineHeight: '1.7',
33
- outline: 'none',
34
- wordBreak: 'break-word'
35
- });
36
- const Label = utils.styled('span', {
37
- color: 'white'
38
- });
39
- const LabelButton = utils.styled('button', {
40
- cursor: 'pointer',
41
- color: 'white'
42
- });
43
- const ExpandButton = utils.styled('button', {
44
- cursor: 'pointer',
45
- color: 'inherit',
46
- font: 'inherit',
47
- outline: 'inherit',
48
- background: 'transparent',
49
- border: 'none',
50
- padding: 0
51
- });
52
- const CopyButton = ({
53
- value
54
- }) => {
55
- const [copyState, setCopyState] = React__namespace.useState('NoCopy');
56
- return /*#__PURE__*/React__namespace.createElement("button", {
57
- onClick: copyState === 'NoCopy' ? () => {
58
- navigator.clipboard.writeText(SuperJSON.stringify(value)).then(() => {
59
- setCopyState('SuccessCopy');
60
- setTimeout(() => {
61
- setCopyState('NoCopy');
62
- }, 1500);
63
- }, err => {
64
- console.error('Failed to copy: ', err);
65
- setCopyState('ErrorCopy');
66
- setTimeout(() => {
67
- setCopyState('NoCopy');
68
- }, 1500);
69
- });
70
- } : undefined,
71
- style: {
72
- cursor: 'pointer',
73
- color: 'inherit',
74
- font: 'inherit',
75
- outline: 'inherit',
76
- background: 'transparent',
77
- border: 'none',
78
- padding: 0
79
- }
80
- }, copyState === 'NoCopy' ? /*#__PURE__*/React__namespace.createElement(Copier, null) : copyState === 'SuccessCopy' ? /*#__PURE__*/React__namespace.createElement(CopiedCopier, null) : /*#__PURE__*/React__namespace.createElement(ErrorCopier, null));
81
- };
82
- const Value = utils.styled('span', (_props, theme) => ({
83
- color: theme.danger
84
- }));
85
- const SubEntries = utils.styled('div', {
86
- marginLeft: '.1em',
87
- paddingLeft: '1em',
88
- borderLeft: '2px solid rgba(0,0,0,.15)'
89
- });
90
- const Info = utils.styled('span', {
91
- color: 'grey',
92
- fontSize: '.7em'
93
- });
94
- const Expander = ({
95
- expanded,
96
- style = {}
97
- }) => /*#__PURE__*/React__namespace.createElement("span", {
98
- style: {
99
- display: 'inline-block',
100
- transition: 'all .1s ease',
101
- transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,
102
- ...style
103
- }
104
- }, "\u25B6");
105
- const Copier = () => /*#__PURE__*/React__namespace.createElement("span", {
106
- "aria-label": "Copy object to clipboard",
107
- title: "Copy object to clipboard",
108
- style: {
109
- paddingLeft: '1em'
110
- }
111
- }, /*#__PURE__*/React__namespace.createElement("svg", {
112
- height: "12",
113
- viewBox: "0 0 16 12",
114
- width: "10"
115
- }, /*#__PURE__*/React__namespace.createElement("path", {
116
- fill: "currentColor",
117
- d: "M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"
118
- }), /*#__PURE__*/React__namespace.createElement("path", {
119
- fill: "currentColor",
120
- d: "M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"
121
- })));
122
- const ErrorCopier = () => /*#__PURE__*/React__namespace.createElement("span", {
123
- "aria-label": "Failed copying to clipboard",
124
- title: "Failed copying to clipboard",
125
- style: {
126
- paddingLeft: '1em',
127
- display: 'flex',
128
- alignItems: 'center'
129
- }
130
- }, /*#__PURE__*/React__namespace.createElement("svg", {
131
- height: "12",
132
- viewBox: "0 0 16 12",
133
- width: "10",
134
- display: "block"
135
- }, /*#__PURE__*/React__namespace.createElement("path", {
136
- fill: "red",
137
- d: "M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"
138
- })), /*#__PURE__*/React__namespace.createElement("span", {
139
- style: {
140
- color: 'red',
141
- fontSize: '12px',
142
- paddingLeft: '4px',
143
- position: 'relative',
144
- top: '2px'
145
- }
146
- }, "See console"));
147
- const CopiedCopier = () => /*#__PURE__*/React__namespace.createElement("span", {
148
- "aria-label": "Object copied to clipboard",
149
- title: "Object copied to clipboard",
150
- style: {
151
- paddingLeft: '1em',
152
- display: 'inline-block',
153
- verticalAlign: 'middle'
154
- }
155
- }, /*#__PURE__*/React__namespace.createElement("svg", {
156
- height: "16",
157
- viewBox: "0 0 16 16",
158
- width: "16",
159
- display: "block"
160
- }, /*#__PURE__*/React__namespace.createElement("path", {
161
- fill: "green",
162
- d: "M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"
163
- })));
164
- /**
165
- * Chunk elements in the array by size
166
- *
167
- * when the array cannot be chunked evenly by size, the last chunk will be
168
- * filled with the remaining elements
169
- *
170
- * @example
171
- * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]
172
- */
173
- function chunkArray(array, size) {
174
- if (size < 1) return [];
175
- let i = 0;
176
- const result = [];
177
- while (i < array.length) {
178
- result.push(array.slice(i, i + size));
179
- i = i + size;
180
- }
181
- return result;
182
- }
183
- const DefaultRenderer = ({
184
- handleEntry,
185
- label,
186
- value,
187
- subEntries = [],
188
- subEntryPages = [],
189
- type,
190
- expanded = false,
191
- copyable = false,
192
- toggleExpanded,
193
- pageSize
194
- }) => {
195
- const [expandedPages, setExpandedPages] = React__namespace.useState([]);
196
- return /*#__PURE__*/React__namespace.createElement(Entry, {
197
- key: label
198
- }, subEntryPages.length ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ExpandButton, {
199
- onClick: () => toggleExpanded()
200
- }, /*#__PURE__*/React__namespace.createElement(Expander, {
201
- expanded: expanded
202
- }), " ", label, ' ', /*#__PURE__*/React__namespace.createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? `items` : `item`)), copyable ? /*#__PURE__*/React__namespace.createElement(CopyButton, {
203
- value: value
204
- }) : null, expanded ? subEntryPages.length === 1 ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntries.map(handleEntry)) : /*#__PURE__*/React__namespace.createElement(SubEntries, null, subEntryPages.map((entries, index) => /*#__PURE__*/React__namespace.createElement("div", {
205
- key: index
206
- }, /*#__PURE__*/React__namespace.createElement(Entry, null, /*#__PURE__*/React__namespace.createElement(LabelButton, {
207
- onClick: () => setExpandedPages(old => old.includes(index) ? old.filter(d => d !== index) : [...old, index])
208
- }, /*#__PURE__*/React__namespace.createElement(Expander, {
209
- expanded: expanded
210
- }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/React__namespace.createElement(SubEntries, null, entries.map(handleEntry)) : null)))) : null) : /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Label, null, label, ":"), " ", /*#__PURE__*/React__namespace.createElement(Value, null, utils.displayValue(value))));
211
- };
212
- function isIterable(x) {
213
- return Symbol.iterator in x;
214
- }
215
- function Explorer({
216
- value,
217
- defaultExpanded,
218
- renderer = DefaultRenderer,
219
- pageSize = 100,
220
- copyable = false,
221
- ...rest
222
- }) {
223
- const [expanded, setExpanded] = React__namespace.useState(Boolean(defaultExpanded));
224
- const toggleExpanded = React__namespace.useCallback(() => setExpanded(old => !old), []);
225
- let type = typeof value;
226
- let subEntries = [];
227
- const makeProperty = sub => {
228
- const subDefaultExpanded = defaultExpanded === true ? {
229
- [sub.label]: true
230
- } : defaultExpanded == null ? void 0 : defaultExpanded[sub.label];
231
- return {
232
- ...sub,
233
- defaultExpanded: subDefaultExpanded
234
- };
235
- };
236
- if (Array.isArray(value)) {
237
- type = 'array';
238
- subEntries = value.map((d, i) => makeProperty({
239
- label: i.toString(),
240
- value: d
241
- }));
242
- } else if (value !== null && typeof value === 'object' && isIterable(value) && typeof value[Symbol.iterator] === 'function') {
243
- type = 'Iterable';
244
- subEntries = Array.from(value, (val, i) => makeProperty({
245
- label: i.toString(),
246
- value: val
247
- }));
248
- } else if (typeof value === 'object' && value !== null) {
249
- type = 'object';
250
- subEntries = Object.entries(value).map(([key, val]) => makeProperty({
251
- label: key,
252
- value: val
253
- }));
254
- }
255
- const subEntryPages = chunkArray(subEntries, pageSize);
256
- return renderer({
257
- handleEntry: entry => /*#__PURE__*/React__namespace.createElement(Explorer, _rollupPluginBabelHelpers.extends({
258
- key: entry.label,
259
- value: value,
260
- renderer: renderer,
261
- copyable: copyable
262
- }, rest, entry)),
263
- type,
264
- subEntries,
265
- subEntryPages,
266
- value,
267
- expanded,
268
- copyable,
269
- toggleExpanded,
270
- pageSize,
271
- ...rest
272
- });
273
- }
274
-
275
- exports.CopyButton = CopyButton;
276
- exports.DefaultRenderer = DefaultRenderer;
277
- exports.Entry = Entry;
278
- exports.ExpandButton = ExpandButton;
279
- exports.Expander = Expander;
280
- exports.Info = Info;
281
- exports.Label = Label;
282
- exports.LabelButton = LabelButton;
283
- exports.SubEntries = SubEntries;
284
- exports.Value = Value;
285
- exports.chunkArray = chunkArray;
286
- exports.default = Explorer;
287
- //# sourceMappingURL=Explorer.js.map