@tanstack/react-router-devtools 0.0.1-alpha.3 → 0.0.1-alpha.4

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.
@@ -127,9 +127,7 @@ const DefaultRenderer = _ref2 => {
127
127
  setValueSnapshot(value());
128
128
  };
129
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, {
130
+ return /*#__PURE__*/React__namespace.createElement(Entry, null, subEntryPages.length ? /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ExpandButton, {
133
131
  onClick: () => toggleExpanded()
134
132
  }, /*#__PURE__*/React__namespace.createElement(Expander, {
135
133
  expanded: expanded
@@ -212,7 +210,7 @@ function Explorer(_ref3) {
212
210
 
213
211
  const subEntryPages = chunkArray(subEntries, pageSize);
214
212
  return renderer(_rollupPluginBabelHelpers["extends"]({
215
- HandleEntry: _ref5 => {
213
+ HandleEntry: React__namespace.useCallback(_ref5 => {
216
214
  let {
217
215
  entry
218
216
  } = _ref5;
@@ -220,7 +218,7 @@ function Explorer(_ref3) {
220
218
  value: value,
221
219
  renderer: renderer
222
220
  }, rest, entry));
223
- },
221
+ }, [value, renderer]),
224
222
  type,
225
223
  subEntries,
226
224
  subEntryPages,
@@ -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 as string}>\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\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 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","appearance","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: 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>\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\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 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: React.useCallback(\n ({ entry }) => (\n <Explorer value={value} renderer={renderer} {...rest} {...entry} />\n ),\n [value, renderer],\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","appearance","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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"}
@@ -1253,9 +1253,7 @@ const DefaultRenderer = _ref2 => {
1253
1253
  setValueSnapshot(value());
1254
1254
  };
1255
1255
 
1256
- return /*#__PURE__*/React.createElement(Entry, {
1257
- key: label
1258
- }, subEntryPages.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ExpandButton, {
1256
+ return /*#__PURE__*/React.createElement(Entry, null, subEntryPages.length ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ExpandButton, {
1259
1257
  onClick: () => toggleExpanded()
1260
1258
  }, /*#__PURE__*/React.createElement(Expander, {
1261
1259
  expanded: expanded
@@ -1338,7 +1336,7 @@ function Explorer(_ref3) {
1338
1336
 
1339
1337
  const subEntryPages = chunkArray(subEntries, pageSize);
1340
1338
  return renderer(_extends({
1341
- HandleEntry: _ref5 => {
1339
+ HandleEntry: React.useCallback(_ref5 => {
1342
1340
  let {
1343
1341
  entry
1344
1342
  } = _ref5;
@@ -1346,7 +1344,7 @@ function Explorer(_ref3) {
1346
1344
  value: value,
1347
1345
  renderer: renderer
1348
1346
  }, rest, entry));
1349
- },
1347
+ }, [value, renderer]),
1350
1348
  type,
1351
1349
  subEntries,
1352
1350
  subEntryPages,