@tanstack/router-devtools-core 1.132.50 → 1.132.51
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/dist/BaseTanStackRouterDevtoolsPanel-CaAQWNvS.js +1817 -0
- package/dist/BaseTanStackRouterDevtoolsPanel-CaAQWNvS.js.map +1 -0
- package/dist/BaseTanStackRouterDevtoolsPanel-CbH9Ihs_.cjs +1833 -0
- package/dist/BaseTanStackRouterDevtoolsPanel-CbH9Ihs_.cjs.map +1 -0
- package/dist/FloatingTanStackRouterDevtools-0xtXUOcx.cjs +283 -0
- package/dist/FloatingTanStackRouterDevtools-0xtXUOcx.cjs.map +1 -0
- package/dist/FloatingTanStackRouterDevtools-DdHNTjWg.js +283 -0
- package/dist/FloatingTanStackRouterDevtools-DdHNTjWg.js.map +1 -0
- package/dist/cjs/index.cjs +3 -4
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +3 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/index-BiZF0hsR.js +222 -0
- package/dist/index-BiZF0hsR.js.map +1 -0
- package/dist/index-CHaaetqh.cjs +221 -0
- package/dist/index-CHaaetqh.cjs.map +1 -0
- package/package.json +2 -2
- package/dist/cjs/AgeTicker.cjs +0 -47
- package/dist/cjs/AgeTicker.cjs.map +0 -1
- package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs +0 -604
- package/dist/cjs/BaseTanStackRouterDevtoolsPanel.cjs.map +0 -1
- package/dist/cjs/Explorer.cjs +0 -307
- package/dist/cjs/Explorer.cjs.map +0 -1
- package/dist/cjs/FloatingTanStackRouterDevtools.cjs +0 -201
- package/dist/cjs/FloatingTanStackRouterDevtools.cjs.map +0 -1
- package/dist/cjs/NavigateButton.cjs +0 -30
- package/dist/cjs/NavigateButton.cjs.map +0 -1
- package/dist/cjs/TanStackRouterDevtoolsCore.cjs +0 -100
- package/dist/cjs/TanStackRouterDevtoolsCore.cjs.map +0 -1
- package/dist/cjs/TanStackRouterDevtoolsPanelCore.cjs +0 -113
- package/dist/cjs/TanStackRouterDevtoolsPanelCore.cjs.map +0 -1
- package/dist/cjs/context.cjs +0 -20
- package/dist/cjs/context.cjs.map +0 -1
- package/dist/cjs/logo.cjs +0 -92
- package/dist/cjs/logo.cjs.map +0 -1
- package/dist/cjs/tokens.cjs +0 -201
- package/dist/cjs/tokens.cjs.map +0 -1
- package/dist/cjs/useLocalStorage.cjs +0 -42
- package/dist/cjs/useLocalStorage.cjs.map +0 -1
- package/dist/cjs/useStyles.cjs +0 -607
- package/dist/cjs/useStyles.cjs.map +0 -1
- package/dist/cjs/utils.cjs +0 -63
- package/dist/cjs/utils.cjs.map +0 -1
- package/dist/esm/AgeTicker.js +0 -47
- package/dist/esm/AgeTicker.js.map +0 -1
- package/dist/esm/BaseTanStackRouterDevtoolsPanel.js +0 -604
- package/dist/esm/BaseTanStackRouterDevtoolsPanel.js.map +0 -1
- package/dist/esm/Explorer.js +0 -290
- package/dist/esm/Explorer.js.map +0 -1
- package/dist/esm/FloatingTanStackRouterDevtools.js +0 -201
- package/dist/esm/FloatingTanStackRouterDevtools.js.map +0 -1
- package/dist/esm/NavigateButton.js +0 -30
- package/dist/esm/NavigateButton.js.map +0 -1
- package/dist/esm/TanStackRouterDevtoolsCore.js +0 -100
- package/dist/esm/TanStackRouterDevtoolsCore.js.map +0 -1
- package/dist/esm/TanStackRouterDevtoolsPanelCore.js +0 -113
- package/dist/esm/TanStackRouterDevtoolsPanelCore.js.map +0 -1
- package/dist/esm/context.js +0 -20
- package/dist/esm/context.js.map +0 -1
- package/dist/esm/logo.js +0 -92
- package/dist/esm/logo.js.map +0 -1
- package/dist/esm/tokens.js +0 -201
- package/dist/esm/tokens.js.map +0 -1
- package/dist/esm/useLocalStorage.js +0 -43
- package/dist/esm/useLocalStorage.js.map +0 -1
- package/dist/esm/useStyles.js +0 -590
- package/dist/esm/useStyles.js.map +0 -1
- package/dist/esm/utils.js +0 -63
- package/dist/esm/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTanStackRouterDevtoolsPanel.cjs","sources":["../../src/BaseTanStackRouterDevtoolsPanel.tsx"],"sourcesContent":["import { clsx as cx } from 'clsx'\nimport { default as invariant } from 'tiny-invariant'\nimport { interpolatePath, rootRouteId, trimPath } from '@tanstack/router-core'\nimport { Show, createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useDevtoolsOnClose } from './context'\nimport { useStyles } from './useStyles'\nimport useLocalStorage from './useLocalStorage'\nimport { Explorer } from './Explorer'\nimport { getRouteStatusColor, getStatusColor, multiSortBy } from './utils'\nimport { AgeTicker } from './AgeTicker'\n// import type { DevtoolsPanelOptions } from './TanStackRouterDevtoolsPanel'\n\nimport { NavigateButton } from './NavigateButton'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n FileRouteTypes,\n MakeRouteMatchUnion,\n Route,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor, JSX } from 'solid-js'\n\nexport interface BaseDevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: Accessor<JSX.CSSProperties>\n /**\n * The standard React class property used to style a component with classes\n */\n className?: Accessor<string>\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen?: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n handleDragStart?: (e: any) => void\n /**\n * A boolean variable indicating if the \"lite\" version of the library is being used\n */\n router: Accessor<AnyRouter>\n routerState: Accessor<any>\n /**\n * Use this to attach the devtool's styles to specific element in the DOM.\n */\n shadowDOMTarget?: ShadowRoot\n}\n\nfunction Logo(props: any) {\n const { className, ...rest } = props\n const styles = useStyles()\n return (\n <button {...rest} class={cx(styles().logo, className ? className() : '')}>\n <div class={styles().tanstackLogo}>TANSTACK</div>\n <div class={styles().routerLogo}>TanStack Router v1</div>\n </button>\n )\n}\n\nfunction NavigateLink(props: {\n class?: string\n left?: JSX.Element\n children?: JSX.Element\n right?: JSX.Element\n}) {\n return (\n <div\n class={props.class}\n style={{\n display: 'flex',\n 'align-items': 'center',\n width: '100%',\n }}\n >\n {props.left}\n <div style={{ 'flex-grow': 1, 'min-width': 0 }}>{props.children}</div>\n {props.right}\n </div>\n )\n}\n\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId,\n}: {\n routerState: Accessor<\n RouterState<\n Route<\n any,\n any,\n any,\n '/',\n '/',\n string,\n '__root__',\n undefined,\n {},\n {},\n AnyContext,\n AnyContext,\n {},\n undefined,\n any,\n FileRouteTypes,\n unknown,\n undefined\n >,\n MakeRouteMatchUnion\n >\n >\n router: Accessor<AnyRouter>\n route: AnyRoute\n isRoot?: boolean\n activeId: Accessor<string | undefined>\n setActiveId: (id: string) => void\n}) {\n const styles = useStyles()\n const matches = createMemo(\n () => routerState().pendingMatches || routerState().matches,\n )\n const match = createMemo(() =>\n routerState().matches.find((d) => d.routeId === route.id),\n )\n\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params\n const r: string = route.path || trimPath(route.id)\n if (r.startsWith('$')) {\n const trimmed = r.slice(1)\n\n if (p[trimmed]) {\n return `(${p[trimmed]})`\n }\n }\n }\n return ''\n } catch (error) {\n return ''\n }\n })\n\n const navigationTarget = createMemo<string | undefined>(() => {\n if (isRoot) return undefined // rootRouteId has no path\n if (!route.path) return undefined // no path to navigate to\n\n // flatten all params in the router state, into a single object\n const allParams = Object.assign({}, ...matches().map((m) => m.params))\n\n // interpolatePath is used by router-core to generate the `to`\n // path for the navigate function in the router\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap,\n })\n\n // only if `interpolated` is not missing params, return the path since this\n // means that all the params are present for a successful navigation\n return !interpolated.isMissingParams\n ? interpolated.interpolatedPath\n : undefined\n })\n\n return (\n <div>\n <div\n role=\"button\"\n aria-label={`Open match details for ${route.id}`}\n onClick={() => {\n if (match()) {\n setActiveId(activeId() === route.id ? '' : route.id)\n }\n }}\n class={cx(\n styles().routesRowContainer(route.id === activeId(), !!match()),\n )}\n >\n <div\n class={cx(\n styles().matchIndicator(getRouteStatusColor(matches(), route)),\n )}\n />\n <NavigateLink\n class={cx(styles().routesRow(!!match()))}\n left={\n <Show when={navigationTarget()}>\n {(navigate) => <NavigateButton to={navigate()} router={router} />}\n </Show>\n }\n right={<AgeTicker match={match()} router={router} />}\n >\n <code class={styles().code}>\n {isRoot ? rootRouteId : route.path || trimPath(route.id)}{' '}\n </code>\n <code class={styles().routeParamInfo}>{param()}</code>\n </NavigateLink>\n </div>\n {route.children?.length ? (\n <div class={styles().nestedRouteRow(!!isRoot)}>\n {[...(route.children as Array<AnyRoute>)]\n .sort((a, b) => {\n return a.rank - b.rank\n })\n .map((r) => (\n <RouteComp\n routerState={routerState}\n router={router}\n route={r}\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ))}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport const BaseTanStackRouterDevtoolsPanel =\n function BaseTanStackRouterDevtoolsPanel({\n ...props\n }: BaseDevtoolsPanelOptions): JSX.Element {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props\n\n const { onCloseClick } = useDevtoolsOnClose()\n const styles = useStyles()\n const { className, style, ...otherPanelProps } = panelProps\n\n invariant(\n router,\n '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.',\n )\n\n // useStore(router.__store)\n\n const [showMatches, setShowMatches] = useLocalStorage(\n 'tanstackRouterDevtoolsShowMatches',\n true,\n )\n\n const [activeId, setActiveId] = useLocalStorage(\n 'tanstackRouterDevtoolsActiveRouteId',\n '',\n )\n\n const activeMatch = createMemo(() => {\n const matches = [\n ...(routerState().pendingMatches ?? []),\n ...routerState().matches,\n ...routerState().cachedMatches,\n ]\n return matches.find(\n (d) => d.routeId === activeId() || d.id === activeId(),\n )\n })\n\n const hasSearch = createMemo(\n () => Object.keys(routerState().location.search).length,\n )\n\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState(),\n }\n })\n\n const routerExplorerValue = createMemo(() =>\n Object.fromEntries(\n multiSortBy(\n Object.keys(explorerState()),\n (\n [\n 'state',\n 'routesById',\n 'routesByPath',\n 'flatRoutes',\n 'options',\n 'manifest',\n ] as const\n ).map((d) => (dd) => dd !== d),\n )\n .map((key) => [key, (explorerState() as any)[key]])\n .filter(\n (d) =>\n typeof d[1] !== 'function' &&\n ![\n '__store',\n 'basepath',\n 'injectedHtml',\n 'subscribers',\n 'latestLoadPromise',\n 'navigateTimeout',\n 'resetNextScroll',\n 'tempLocationKey',\n 'latestLocation',\n 'routeTree',\n 'history',\n ].includes(d[0]),\n ),\n ),\n )\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData)\n const activeMatchValue = createMemo(() => activeMatch())\n const locationSearchValue = createMemo(() => routerState().location.search)\n\n return (\n <div\n class={cx(\n styles().devtoolsPanel,\n 'TanStackRouterDevtoolsPanel',\n className ? className() : '',\n )}\n style={style ? style() : ''}\n {...otherPanelProps}\n >\n {handleDragStart ? (\n <div class={styles().dragHandle} onMouseDown={handleDragStart}></div>\n ) : null}\n <button\n class={styles().panelCloseBtn}\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"6\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n class={styles().panelCloseBtnIcon}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"1.667\"\n d=\"M1 1l4 4 4-4\"\n ></path>\n </svg>\n </button>\n <div class={styles().firstContainer}>\n <div class={styles().row}>\n <Logo\n aria-hidden\n onClick={(e: any) => {\n if (setIsOpen) {\n setIsOpen(false)\n }\n onCloseClick(e)\n }}\n />\n </div>\n <div class={styles().routerExplorerContainer}>\n <div class={styles().routerExplorer}>\n <Explorer\n label=\"Router\"\n value={routerExplorerValue}\n defaultExpanded={{\n state: {} as any,\n context: {} as any,\n options: {} as any,\n }}\n filterSubEntries={(subEntries) => {\n return subEntries.filter(\n (d: any) => typeof d.value() !== 'function',\n )\n }}\n />\n </div>\n </div>\n </div>\n <div class={styles().secondContainer}>\n <div class={styles().matchesContainer}>\n <div class={styles().detailsHeader}>\n <span>Pathname</span>\n {routerState().location.maskedLocation ? (\n <div class={styles().maskedBadgeContainer}>\n <span class={styles().maskedBadge}>masked</span>\n </div>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <code>{routerState().location.pathname}</code>\n {routerState().location.maskedLocation ? (\n <code class={styles().maskedLocation}>\n {routerState().location.maskedLocation?.pathname}\n </code>\n ) : null}\n </div>\n <div class={styles().detailsHeader}>\n <div class={styles().routeMatchesToggle}>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(false)\n }}\n disabled={!showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!showMatches(), true),\n )}\n >\n Routes\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setShowMatches(true)\n }}\n disabled={showMatches()}\n class={cx(\n styles().routeMatchesToggleBtn(!!showMatches(), false),\n )}\n >\n Matches\n </button>\n </div>\n <div class={styles().detailsHeaderInfo}>\n <div>age / staleTime / gcTime</div>\n </div>\n </div>\n <div class={cx(styles().routesContainer)}>\n {!showMatches() ? (\n <RouteComp\n routerState={routerState}\n router={router}\n route={router().routeTree}\n isRoot\n activeId={activeId}\n setActiveId={setActiveId}\n />\n ) : (\n <div>\n {(routerState().pendingMatches?.length\n ? routerState().pendingMatches\n : routerState().matches\n )?.map((match: any, _i: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>\n {`${match.routeId === rootRouteId ? rootRouteId : match.pathname}`}\n </code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n {routerState().cachedMatches.length ? (\n <div class={styles().cachedMatchesContainer}>\n <div class={styles().detailsHeader}>\n <div>Cached Matches</div>\n <div class={styles().detailsHeaderInfo}>\n age / staleTime / gcTime\n </div>\n </div>\n <div>\n {routerState().cachedMatches.map((match: any) => {\n return (\n <div\n role=\"button\"\n aria-label={`Open match details for ${match.id}`}\n onClick={() =>\n setActiveId(activeId() === match.id ? '' : match.id)\n }\n class={cx(styles().matchRow(match === activeMatch()))}\n >\n <div\n class={cx(\n styles().matchIndicator(getStatusColor(match)),\n )}\n />\n <NavigateLink\n left={\n <NavigateButton\n to={match.pathname}\n params={match.params}\n search={match.search}\n router={router}\n />\n }\n right={<AgeTicker match={match} router={router} />}\n >\n <code class={styles().matchID}>{`${match.id}`}</code>\n </NavigateLink>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n {activeMatch() && activeMatch()?.status ? (\n <div class={styles().thirdContainer}>\n <div class={styles().detailsHeader}>Match Details</div>\n <div>\n <div class={styles().matchDetails}>\n <div\n class={styles().matchStatus(\n activeMatch()?.status,\n activeMatch()?.isFetching,\n )}\n >\n <div>\n {activeMatch()?.status === 'success' &&\n activeMatch()?.isFetching\n ? 'fetching'\n : activeMatch()?.status}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>ID:</div>\n <div class={styles().matchDetailsInfo}>\n <code>{activeMatch()?.id}</code>\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>State:</div>\n <div class={styles().matchDetailsInfo}>\n {routerState().pendingMatches?.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Pending'\n : routerState().matches.find(\n (d: any) => d.id === activeMatch()?.id,\n )\n ? 'Active'\n : 'Cached'}\n </div>\n </div>\n <div class={styles().matchDetailsInfoLabel}>\n <div>Last Updated:</div>\n <div class={styles().matchDetailsInfo}>\n {activeMatch()?.updatedAt\n ? new Date(activeMatch()?.updatedAt).toLocaleTimeString()\n : 'N/A'}\n </div>\n </div>\n </div>\n </div>\n {activeMatchLoaderData() ? (\n <>\n <div class={styles().detailsHeader}>Loader Data</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"loaderData\"\n value={activeMatchLoaderData}\n defaultExpanded={{}}\n />\n </div>\n </>\n ) : null}\n <div class={styles().detailsHeader}>Explorer</div>\n <div class={styles().detailsContent}>\n <Explorer\n label=\"Match\"\n value={activeMatchValue}\n defaultExpanded={{}}\n />\n </div>\n </div>\n ) : null}\n {hasSearch() ? (\n <div class={styles().fourthContainer}>\n <div class={styles().detailsHeader}>\n <span>Search Params</span>\n {typeof navigator !== 'undefined' ? (\n <span style=\"margin-left: 0.5rem;\">\n <CopyButton\n getValue={() => {\n const search = routerState().location.search\n return JSON.stringify(search)\n }}\n />\n </span>\n ) : null}\n </div>\n <div class={styles().detailsContent}>\n <Explorer\n value={locationSearchValue}\n defaultExpanded={Object.keys(\n routerState().location.search,\n ).reduce((obj: any, next) => {\n obj[next] = {}\n return obj\n }, {})}\n />\n </div>\n </div>\n ) : null}\n </div>\n )\n }\n\nfunction CopyButton({ getValue }: { getValue: () => string }) {\n const [copied, setCopied] = createSignal(false)\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const handleCopy = async () => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n console.warn('TanStack Router Devtools: Clipboard API unavailable')\n return\n }\n try {\n const value = getValue()\n await navigator.clipboard.writeText(value)\n setCopied(true)\n if (timeoutId) clearTimeout(timeoutId)\n timeoutId = setTimeout(() => setCopied(false), 2500)\n } catch (e) {\n console.error('TanStack Router Devtools: Failed to copy', e)\n }\n }\n\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId)\n })\n\n return (\n <button\n type=\"button\"\n style=\"cursor: pointer;\"\n onClick={handleCopy}\n aria-label=\"Copy value to clipboard\"\n title={copied() ? 'Copied!' : 'Copy'}\n >\n {copied() ? '✅' : '📋'}\n </button>\n )\n}\n\nexport default BaseTanStackRouterDevtoolsPanel\n"],"names":["Logo","props","className","rest","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$spread","_$mergeProps","cx","logo","_$effect","_p$","_v$","tanstackLogo","_v$2","routerLogo","e","_$className","t","undefined","NavigateLink","_el$4","_tmpl$2","_el$5","style","setProperty","_$insert","left","children","right","class","RouteComp","routerState","router","route","isRoot","activeId","setActiveId","matches","createMemo","pendingMatches","match","find","d","routeId","id","param","params","p","r","path","trimPath","startsWith","trimmed","slice","error","navigationTarget","allParams","Object","assign","map","m","interpolated","interpolatePath","fullPath","leaveWildcards","leaveParams","decodeCharMap","pathParamsDecodeCharMap","isMissingParams","interpolatedPath","_el$6","_tmpl$5","_el$7","_el$8","$$click","_$createComponent","routesRow","Show","when","navigate","NavigateButton","to","AgeTicker","_el$9","_tmpl$3","_el$0","rootRouteId","code","_el$1","_tmpl$4","routeParamInfo","_c$","_$memo","length","_el$10","_tmpl$6","sort","a","b","rank","nestedRouteRow","_v$3","_v$4","routesRowContainer","_v$5","matchIndicator","getRouteStatusColor","_$setAttribute","BaseTanStackRouterDevtoolsPanel","isOpen","setIsOpen","handleDragStart","shadowDOMTarget","panelProps","onCloseClick","useDevtoolsOnClose","otherPanelProps","invariant","showMatches","setShowMatches","useLocalStorage","activeMatch","cachedMatches","hasSearch","keys","location","search","explorerState","state","routerExplorerValue","fromEntries","multiSortBy","dd","key","filter","includes","activeMatchLoaderData","loaderData","activeMatchValue","locationSearchValue","_el$11","_tmpl$7","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","devtoolsPanel","_el$30","_$addEventListener","dragHandle","onClick","Explorer","label","value","defaultExpanded","context","options","filterSubEntries","subEntries","_c$2","maskedLocation","_el$31","_tmpl$8","_el$32","_v$22","maskedBadgeContainer","_v$23","maskedBadge","pathname","_c$3","_el$33","_c$4","routeTree","_el$34","_i","_el$35","_tmpl$9","_el$36","_el$37","matchID","_v$24","_v$25","matchRow","_v$26","getStatusColor","_c$5","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_v$30","_v$31","_v$32","_v$27","cachedMatchesContainer","_v$28","detailsHeader","_v$29","detailsHeaderInfo","_c$6","status","_el$46","_tmpl$1","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_c$8","isFetching","_c$9","_c$0","updatedAt","Date","toLocaleTimeString","_c$1","_el$64","_tmpl$10","_el$65","detailsContent","_v$33","thirdContainer","_v$34","_v$35","matchDetails","_v$36","matchStatus","_v$37","matchDetailsInfoLabel","_v$38","matchDetailsInfo","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","o","i","n","s","h","l","u","_c$7","_el$66","_tmpl$11","_el$67","_el$69","navigator","_el$70","_tmpl$12","CopyButton","getValue","JSON","stringify","reduce","obj","next","_v$45","fourthContainer","_v$46","_v$47","_v$6","panelCloseBtn","_v$7","panelCloseBtnIcon","_v$8","firstContainer","_v$9","row","_v$0","routerExplorerContainer","_v$1","routerExplorer","_v$10","secondContainer","_v$11","matchesContainer","_v$12","_v$13","_v$14","_v$15","routeMatchesToggle","_v$16","_v$17","routeMatchesToggleBtn","_v$18","_v$19","_v$20","_v$21","routesContainer","c","disabled","w","f","y","g","copied","setCopied","createSignal","timeoutId","handleCopy","clipboard","writeText","console","warn","setTimeout","onCleanup","_el$71","_tmpl$13","_$delegateEvents"],"mappings":"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"}
|
package/dist/cjs/Explorer.cjs
DELETED
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const web = require("solid-js/web");
|
|
4
|
-
const clsx = require("clsx");
|
|
5
|
-
const goober = require("goober");
|
|
6
|
-
const solidJs = require("solid-js");
|
|
7
|
-
const tokens = require("./tokens.cjs");
|
|
8
|
-
const utils = require("./utils.cjs");
|
|
9
|
-
const context = require("./context.cjs");
|
|
10
|
-
function _interopNamespaceDefault(e) {
|
|
11
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
12
|
-
if (e) {
|
|
13
|
-
for (const k in e) {
|
|
14
|
-
if (k !== "default") {
|
|
15
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: () => e[k]
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
n.default = e;
|
|
24
|
-
return Object.freeze(n);
|
|
25
|
-
}
|
|
26
|
-
const goober__namespace = /* @__PURE__ */ _interopNamespaceDefault(goober);
|
|
27
|
-
var _tmpl$ = /* @__PURE__ */ web.template(`<span><svg xmlns=http://www.w3.org/2000/svg width=12 height=12 fill=none viewBox="0 0 24 24"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M9 18l6-6-6-6">`), _tmpl$2 = /* @__PURE__ */ web.template(`<div>`), _tmpl$3 = /* @__PURE__ */ web.template(`<button><span> `), _tmpl$4 = /* @__PURE__ */ web.template(`<div><div><button> [<!> ... <!>]`), _tmpl$5 = /* @__PURE__ */ web.template(`<button><span></span> 🔄 `), _tmpl$6 = /* @__PURE__ */ web.template(`<span>:`), _tmpl$7 = /* @__PURE__ */ web.template(`<span>`);
|
|
28
|
-
const Expander = ({
|
|
29
|
-
expanded,
|
|
30
|
-
style = {}
|
|
31
|
-
}) => {
|
|
32
|
-
const styles = useStyles();
|
|
33
|
-
return (() => {
|
|
34
|
-
var _el$ = _tmpl$(), _el$2 = _el$.firstChild;
|
|
35
|
-
web.effect((_p$) => {
|
|
36
|
-
var _v$ = styles().expander, _v$2 = clsx.clsx(styles().expanderIcon(expanded));
|
|
37
|
-
_v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
|
|
38
|
-
_v$2 !== _p$.t && web.setAttribute(_el$2, "class", _p$.t = _v$2);
|
|
39
|
-
return _p$;
|
|
40
|
-
}, {
|
|
41
|
-
e: void 0,
|
|
42
|
-
t: void 0
|
|
43
|
-
});
|
|
44
|
-
return _el$;
|
|
45
|
-
})();
|
|
46
|
-
};
|
|
47
|
-
function chunkArray(array, size) {
|
|
48
|
-
if (size < 1) return [];
|
|
49
|
-
let i = 0;
|
|
50
|
-
const result = [];
|
|
51
|
-
while (i < array.length) {
|
|
52
|
-
result.push(array.slice(i, i + size));
|
|
53
|
-
i = i + size;
|
|
54
|
-
}
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
|
-
function isIterable(x) {
|
|
58
|
-
return Symbol.iterator in x;
|
|
59
|
-
}
|
|
60
|
-
function Explorer({
|
|
61
|
-
value,
|
|
62
|
-
defaultExpanded,
|
|
63
|
-
pageSize = 100,
|
|
64
|
-
filterSubEntries,
|
|
65
|
-
...rest
|
|
66
|
-
}) {
|
|
67
|
-
const [expanded, setExpanded] = solidJs.createSignal(Boolean(defaultExpanded));
|
|
68
|
-
const toggleExpanded = () => setExpanded((old) => !old);
|
|
69
|
-
const type = solidJs.createMemo(() => typeof value());
|
|
70
|
-
const subEntries = solidJs.createMemo(() => {
|
|
71
|
-
let entries = [];
|
|
72
|
-
const makeProperty = (sub) => {
|
|
73
|
-
const subDefaultExpanded = defaultExpanded === true ? {
|
|
74
|
-
[sub.label]: true
|
|
75
|
-
} : defaultExpanded?.[sub.label];
|
|
76
|
-
return {
|
|
77
|
-
...sub,
|
|
78
|
-
value: () => sub.value,
|
|
79
|
-
defaultExpanded: subDefaultExpanded
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
if (Array.isArray(value())) {
|
|
83
|
-
entries = value().map((d, i) => makeProperty({
|
|
84
|
-
label: i.toString(),
|
|
85
|
-
value: d
|
|
86
|
-
}));
|
|
87
|
-
} else if (value() !== null && typeof value() === "object" && isIterable(value()) && typeof value()[Symbol.iterator] === "function") {
|
|
88
|
-
entries = Array.from(value(), (val, i) => makeProperty({
|
|
89
|
-
label: i.toString(),
|
|
90
|
-
value: val
|
|
91
|
-
}));
|
|
92
|
-
} else if (typeof value() === "object" && value() !== null) {
|
|
93
|
-
entries = Object.entries(value()).map(([key, val]) => makeProperty({
|
|
94
|
-
label: key,
|
|
95
|
-
value: val
|
|
96
|
-
}));
|
|
97
|
-
}
|
|
98
|
-
return filterSubEntries ? filterSubEntries(entries) : entries;
|
|
99
|
-
});
|
|
100
|
-
const subEntryPages = solidJs.createMemo(() => chunkArray(subEntries(), pageSize));
|
|
101
|
-
const [expandedPages, setExpandedPages] = solidJs.createSignal([]);
|
|
102
|
-
const [valueSnapshot, setValueSnapshot] = solidJs.createSignal(void 0);
|
|
103
|
-
const styles = useStyles();
|
|
104
|
-
const refreshValueSnapshot = () => {
|
|
105
|
-
setValueSnapshot(value()());
|
|
106
|
-
};
|
|
107
|
-
const handleEntry = (entry) => web.createComponent(Explorer, web.mergeProps({
|
|
108
|
-
value,
|
|
109
|
-
filterSubEntries
|
|
110
|
-
}, rest, entry));
|
|
111
|
-
return (() => {
|
|
112
|
-
var _el$3 = _tmpl$2();
|
|
113
|
-
web.insert(_el$3, (() => {
|
|
114
|
-
var _c$ = web.memo(() => !!subEntryPages().length);
|
|
115
|
-
return () => _c$() ? [(() => {
|
|
116
|
-
var _el$4 = _tmpl$3(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;
|
|
117
|
-
_el$4.$$click = () => toggleExpanded();
|
|
118
|
-
web.insert(_el$4, web.createComponent(Expander, {
|
|
119
|
-
get expanded() {
|
|
120
|
-
return expanded() ?? false;
|
|
121
|
-
}
|
|
122
|
-
}), _el$5);
|
|
123
|
-
web.insert(_el$4, () => rest.label, _el$5);
|
|
124
|
-
web.insert(_el$5, () => String(type).toLowerCase() === "iterable" ? "(Iterable) " : "", _el$6);
|
|
125
|
-
web.insert(_el$5, () => subEntries().length, _el$6);
|
|
126
|
-
web.insert(_el$5, () => subEntries().length > 1 ? `items` : `item`, null);
|
|
127
|
-
web.effect((_p$) => {
|
|
128
|
-
var _v$3 = styles().expandButton, _v$4 = styles().info;
|
|
129
|
-
_v$3 !== _p$.e && web.className(_el$4, _p$.e = _v$3);
|
|
130
|
-
_v$4 !== _p$.t && web.className(_el$5, _p$.t = _v$4);
|
|
131
|
-
return _p$;
|
|
132
|
-
}, {
|
|
133
|
-
e: void 0,
|
|
134
|
-
t: void 0
|
|
135
|
-
});
|
|
136
|
-
return _el$4;
|
|
137
|
-
})(), web.memo(() => web.memo(() => !!(expanded() ?? false))() ? web.memo(() => subEntryPages().length === 1)() ? (() => {
|
|
138
|
-
var _el$7 = _tmpl$2();
|
|
139
|
-
web.insert(_el$7, () => subEntries().map((entry, index) => handleEntry(entry)));
|
|
140
|
-
web.effect(() => web.className(_el$7, styles().subEntries));
|
|
141
|
-
return _el$7;
|
|
142
|
-
})() : (() => {
|
|
143
|
-
var _el$8 = _tmpl$2();
|
|
144
|
-
web.insert(_el$8, () => subEntryPages().map((entries, index) => {
|
|
145
|
-
return (() => {
|
|
146
|
-
var _el$9 = _tmpl$4(), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$15 = _el$10.nextSibling, _el$12 = _el$15.nextSibling, _el$16 = _el$12.nextSibling;
|
|
147
|
-
_el$16.nextSibling;
|
|
148
|
-
_el$1.$$click = () => setExpandedPages((old) => old.includes(index) ? old.filter((d) => d !== index) : [...old, index]);
|
|
149
|
-
web.insert(_el$1, web.createComponent(Expander, {
|
|
150
|
-
get expanded() {
|
|
151
|
-
return expandedPages().includes(index);
|
|
152
|
-
}
|
|
153
|
-
}), _el$10);
|
|
154
|
-
web.insert(_el$1, index * pageSize, _el$15);
|
|
155
|
-
web.insert(_el$1, index * pageSize + pageSize - 1, _el$16);
|
|
156
|
-
web.insert(_el$0, (() => {
|
|
157
|
-
var _c$3 = web.memo(() => !!expandedPages().includes(index));
|
|
158
|
-
return () => _c$3() ? (() => {
|
|
159
|
-
var _el$17 = _tmpl$2();
|
|
160
|
-
web.insert(_el$17, () => entries.map((entry) => handleEntry(entry)));
|
|
161
|
-
web.effect(() => web.className(_el$17, styles().subEntries));
|
|
162
|
-
return _el$17;
|
|
163
|
-
})() : null;
|
|
164
|
-
})(), null);
|
|
165
|
-
web.effect((_p$) => {
|
|
166
|
-
var _v$5 = styles().entry, _v$6 = clsx.clsx(styles().labelButton, "labelButton");
|
|
167
|
-
_v$5 !== _p$.e && web.className(_el$0, _p$.e = _v$5);
|
|
168
|
-
_v$6 !== _p$.t && web.className(_el$1, _p$.t = _v$6);
|
|
169
|
-
return _p$;
|
|
170
|
-
}, {
|
|
171
|
-
e: void 0,
|
|
172
|
-
t: void 0
|
|
173
|
-
});
|
|
174
|
-
return _el$9;
|
|
175
|
-
})();
|
|
176
|
-
}));
|
|
177
|
-
web.effect(() => web.className(_el$8, styles().subEntries));
|
|
178
|
-
return _el$8;
|
|
179
|
-
})() : null)] : (() => {
|
|
180
|
-
var _c$2 = web.memo(() => type() === "function");
|
|
181
|
-
return () => _c$2() ? web.createComponent(Explorer, {
|
|
182
|
-
get label() {
|
|
183
|
-
return (() => {
|
|
184
|
-
var _el$18 = _tmpl$5(), _el$19 = _el$18.firstChild;
|
|
185
|
-
_el$18.$$click = refreshValueSnapshot;
|
|
186
|
-
web.insert(_el$19, () => rest.label);
|
|
187
|
-
web.effect(() => web.className(_el$18, styles().refreshValueBtn));
|
|
188
|
-
return _el$18;
|
|
189
|
-
})();
|
|
190
|
-
},
|
|
191
|
-
value: valueSnapshot,
|
|
192
|
-
defaultExpanded: {}
|
|
193
|
-
}) : [(() => {
|
|
194
|
-
var _el$20 = _tmpl$6(), _el$21 = _el$20.firstChild;
|
|
195
|
-
web.insert(_el$20, () => rest.label, _el$21);
|
|
196
|
-
return _el$20;
|
|
197
|
-
})(), " ", (() => {
|
|
198
|
-
var _el$22 = _tmpl$7();
|
|
199
|
-
web.insert(_el$22, () => utils.displayValue(value()));
|
|
200
|
-
web.effect(() => web.className(_el$22, styles().value));
|
|
201
|
-
return _el$22;
|
|
202
|
-
})()];
|
|
203
|
-
})();
|
|
204
|
-
})());
|
|
205
|
-
web.effect(() => web.className(_el$3, styles().entry));
|
|
206
|
-
return _el$3;
|
|
207
|
-
})();
|
|
208
|
-
}
|
|
209
|
-
const stylesFactory = (shadowDOMTarget) => {
|
|
210
|
-
const {
|
|
211
|
-
colors,
|
|
212
|
-
font,
|
|
213
|
-
size
|
|
214
|
-
} = tokens.tokens;
|
|
215
|
-
const {
|
|
216
|
-
fontFamily,
|
|
217
|
-
lineHeight,
|
|
218
|
-
size: fontSize
|
|
219
|
-
} = font;
|
|
220
|
-
const css = shadowDOMTarget ? goober__namespace.css.bind({
|
|
221
|
-
target: shadowDOMTarget
|
|
222
|
-
}) : goober__namespace.css;
|
|
223
|
-
return {
|
|
224
|
-
entry: css`
|
|
225
|
-
font-family: ${fontFamily.mono};
|
|
226
|
-
font-size: ${fontSize.xs};
|
|
227
|
-
line-height: ${lineHeight.sm};
|
|
228
|
-
outline: none;
|
|
229
|
-
word-break: break-word;
|
|
230
|
-
`,
|
|
231
|
-
labelButton: css`
|
|
232
|
-
cursor: pointer;
|
|
233
|
-
color: inherit;
|
|
234
|
-
font: inherit;
|
|
235
|
-
outline: inherit;
|
|
236
|
-
background: transparent;
|
|
237
|
-
border: none;
|
|
238
|
-
padding: 0;
|
|
239
|
-
`,
|
|
240
|
-
expander: css`
|
|
241
|
-
display: inline-flex;
|
|
242
|
-
align-items: center;
|
|
243
|
-
justify-content: center;
|
|
244
|
-
width: ${size[3]};
|
|
245
|
-
height: ${size[3]};
|
|
246
|
-
padding-left: 3px;
|
|
247
|
-
box-sizing: content-box;
|
|
248
|
-
`,
|
|
249
|
-
expanderIcon: (expanded) => {
|
|
250
|
-
if (expanded) {
|
|
251
|
-
return css`
|
|
252
|
-
transform: rotate(90deg);
|
|
253
|
-
transition: transform 0.1s ease;
|
|
254
|
-
`;
|
|
255
|
-
}
|
|
256
|
-
return css`
|
|
257
|
-
transform: rotate(0deg);
|
|
258
|
-
transition: transform 0.1s ease;
|
|
259
|
-
`;
|
|
260
|
-
},
|
|
261
|
-
expandButton: css`
|
|
262
|
-
display: flex;
|
|
263
|
-
gap: ${size[1]};
|
|
264
|
-
align-items: center;
|
|
265
|
-
cursor: pointer;
|
|
266
|
-
color: inherit;
|
|
267
|
-
font: inherit;
|
|
268
|
-
outline: inherit;
|
|
269
|
-
background: transparent;
|
|
270
|
-
border: none;
|
|
271
|
-
padding: 0;
|
|
272
|
-
`,
|
|
273
|
-
value: css`
|
|
274
|
-
color: ${colors.purple[400]};
|
|
275
|
-
`,
|
|
276
|
-
subEntries: css`
|
|
277
|
-
margin-left: ${size[2]};
|
|
278
|
-
padding-left: ${size[2]};
|
|
279
|
-
border-left: 2px solid ${colors.darkGray[400]};
|
|
280
|
-
`,
|
|
281
|
-
info: css`
|
|
282
|
-
color: ${colors.gray[500]};
|
|
283
|
-
font-size: ${fontSize["2xs"]};
|
|
284
|
-
padding-left: ${size[1]};
|
|
285
|
-
`,
|
|
286
|
-
refreshValueBtn: css`
|
|
287
|
-
appearance: none;
|
|
288
|
-
border: 0;
|
|
289
|
-
cursor: pointer;
|
|
290
|
-
background: transparent;
|
|
291
|
-
color: inherit;
|
|
292
|
-
padding: 0;
|
|
293
|
-
font-family: ${fontFamily.mono};
|
|
294
|
-
font-size: ${fontSize.xs};
|
|
295
|
-
`
|
|
296
|
-
};
|
|
297
|
-
};
|
|
298
|
-
function useStyles() {
|
|
299
|
-
const shadowDomTarget = solidJs.useContext(context.ShadowDomTargetContext);
|
|
300
|
-
const [_styles] = solidJs.createSignal(stylesFactory(shadowDomTarget));
|
|
301
|
-
return _styles;
|
|
302
|
-
}
|
|
303
|
-
web.delegateEvents(["click"]);
|
|
304
|
-
exports.Expander = Expander;
|
|
305
|
-
exports.Explorer = Explorer;
|
|
306
|
-
exports.chunkArray = chunkArray;
|
|
307
|
-
//# sourceMappingURL=Explorer.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Explorer.cjs","sources":["../../src/Explorer.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { clsx as cx } from 'clsx'\nimport * as goober from 'goober'\nimport { createMemo, createSignal, useContext } from 'solid-js'\nimport { tokens } from './tokens'\nimport { displayValue } from './utils'\nimport { ShadowDomTargetContext } from './context'\nimport type { Accessor, JSX } from 'solid-js'\n\ntype ExpanderProps = {\n expanded: boolean\n style?: JSX.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => {\n const styles = useStyles()\n return (\n <span class={styles().expander}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n class={cx(styles().expanderIcon(expanded))}\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 18l6-6-6-6\"\n ></path>\n </svg>\n </span>\n )\n}\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n handleEntry: HandleEntryFn\n label?: JSX.Element\n value: Accessor<unknown>\n subEntries: Array<Entry>\n subEntryPages: Array<Array<Entry>>\n type: string\n expanded: Accessor<boolean>\n toggleExpanded: () => void\n pageSize: number\n filterSubEntries?: (subEntries: Array<Property>) => Array<Property>\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: Array<T>, size: number): Array<Array<T>> {\n if (size < 1) return []\n let i = 0\n const result: Array<Array<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 HandleEntryFn = (entry: Entry) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n defaultExpanded?: true | Record<string, boolean>\n value: Accessor<unknown>\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 function Explorer({\n value,\n defaultExpanded,\n pageSize = 100,\n filterSubEntries,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = createSignal(Boolean(defaultExpanded))\n const toggleExpanded = () => setExpanded((old) => !old)\n\n const type = createMemo(() => typeof value())\n const subEntries = createMemo(() => {\n let entries: Array<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 value: () => sub.value,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value())) {\n // any[]\n entries = (value() as Array<any>).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() as Iterable<unknown>)[Symbol.iterator] === 'function'\n ) {\n // Iterable<unknown>\n entries = Array.from(value() as Iterable<unknown>, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value() === 'object' && value() !== null) {\n // object\n entries = Object.entries(value() as object).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n return filterSubEntries ? filterSubEntries(entries) : entries\n })\n\n const subEntryPages = createMemo(() => chunkArray(subEntries(), pageSize))\n\n const [expandedPages, setExpandedPages] = createSignal<Array<number>>([])\n const [valueSnapshot, setValueSnapshot] = createSignal(undefined)\n const styles = useStyles()\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value() as () => any)())\n }\n\n const handleEntry = (entry: Entry) => (\n <Explorer\n value={value}\n filterSubEntries={filterSubEntries}\n {...rest}\n {...entry}\n />\n )\n\n return (\n <div class={styles().entry}>\n {subEntryPages().length ? (\n <>\n <button\n class={styles().expandButton}\n onClick={() => toggleExpanded()}\n >\n <Expander expanded={expanded() ?? false} />\n {rest.label}\n <span class={styles().info}>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries().length} {subEntries().length > 1 ? `items` : `item`}\n </span>\n </button>\n {(expanded() ?? false) ? (\n subEntryPages().length === 1 ? (\n <div class={styles().subEntries}>\n {subEntries().map((entry, index) => handleEntry(entry))}\n </div>\n ) : (\n <div class={styles().subEntries}>\n {subEntryPages().map((entries, index) => {\n return (\n <div>\n <div class={styles().entry}>\n <button\n class={cx(styles().labelButton, 'labelButton')}\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander\n expanded={expandedPages().includes(index)}\n />{' '}\n [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </button>\n {expandedPages().includes(index) ? (\n <div class={styles().subEntries}>\n {entries.map((entry) => handleEntry(entry))}\n </div>\n ) : null}\n </div>\n </div>\n )\n })}\n </div>\n )\n ) : null}\n </>\n ) : type() === 'function' ? (\n <>\n <Explorer\n label={\n <button\n onClick={refreshValueSnapshot}\n class={styles().refreshValueBtn}\n >\n <span>{rest.label}</span> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <span>{rest.label}:</span>{' '}\n <span class={styles().value}>{displayValue(value())}</span>\n </>\n )}\n </div>\n )\n}\n\nconst stylesFactory = (shadowDOMTarget?: ShadowRoot) => {\n const { colors, font, size, alpha, shadow, border } = tokens\n const { fontFamily, lineHeight, size: fontSize } = font\n const css = shadowDOMTarget\n ? goober.css.bind({ target: shadowDOMTarget })\n : goober.css\n\n return {\n entry: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight.sm};\n outline: none;\n word-break: break-word;\n `,\n labelButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n expander: css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${size[3]};\n height: ${size[3]};\n padding-left: 3px;\n box-sizing: content-box;\n `,\n expanderIcon: (expanded: boolean) => {\n if (expanded) {\n return css`\n transform: rotate(90deg);\n transition: transform 0.1s ease;\n `\n }\n return css`\n transform: rotate(0deg);\n transition: transform 0.1s ease;\n `\n },\n expandButton: css`\n display: flex;\n gap: ${size[1]};\n align-items: center;\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n value: css`\n color: ${colors.purple[400]};\n `,\n subEntries: css`\n margin-left: ${size[2]};\n padding-left: ${size[2]};\n border-left: 2px solid ${colors.darkGray[400]};\n `,\n info: css`\n color: ${colors.gray[500]};\n font-size: ${fontSize['2xs']};\n padding-left: ${size[1]};\n `,\n refreshValueBtn: css`\n appearance: none;\n border: 0;\n cursor: pointer;\n background: transparent;\n color: inherit;\n padding: 0;\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n `,\n }\n}\n\nfunction useStyles() {\n const shadowDomTarget = useContext(ShadowDomTargetContext)\n const [_styles] = createSignal(stylesFactory(shadowDomTarget))\n return _styles\n}\n"],"names":["Expander","expanded","style","styles","useStyles","_el$","_tmpl$","_el$2","firstChild","_$effect","_p$","_v$","expander","_v$2","cx","expanderIcon","e","_$className","t","_$setAttribute","undefined","chunkArray","array","size","i","result","length","push","slice","isIterable","x","Symbol","iterator","Explorer","value","defaultExpanded","pageSize","filterSubEntries","rest","setExpanded","createSignal","Boolean","toggleExpanded","old","type","createMemo","subEntries","entries","makeProperty","sub","subDefaultExpanded","label","Array","isArray","map","d","toString","from","val","Object","key","subEntryPages","expandedPages","setExpandedPages","valueSnapshot","setValueSnapshot","refreshValueSnapshot","handleEntry","entry","_$createComponent","_$mergeProps","_el$3","_tmpl$2","_$insert","_c$","_$memo","_el$4","_tmpl$3","_el$5","_el$6","$$click","String","toLowerCase","_v$3","expandButton","_v$4","info","_el$7","index","_el$8","_el$9","_tmpl$4","_el$0","_el$1","_el$10","_el$15","nextSibling","_el$12","_el$16","includes","filter","_c$3","_el$17","_v$5","_v$6","labelButton","_c$2","_el$18","_tmpl$5","_el$19","refreshValueBtn","_el$20","_tmpl$6","_el$21","_el$22","_tmpl$7","displayValue","stylesFactory","shadowDOMTarget","colors","font","tokens","fontFamily","lineHeight","fontSize","css","goober","bind","target","mono","xs","sm","purple","darkGray","gray","shadowDomTarget","useContext","ShadowDomTargetContext","_styles","_$delegateEvents"],"mappings":"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"}
|