@xyo-network/react-typedoc 2.64.0 → 2.64.2

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 (58) hide show
  1. package/dist/browser/CommentViewer.js +3 -2
  2. package/dist/browser/CommentViewer.js.map +1 -1
  3. package/dist/browser/JsonViewerButton.js +4 -3
  4. package/dist/browser/JsonViewerButton.js.map +1 -1
  5. package/dist/browser/ProjectTwoPanelReflectionViewer.js +513 -5
  6. package/dist/browser/ProjectTwoPanelReflectionViewer.js.map +1 -1
  7. package/dist/browser/ReflectionViewer/Container.js +294 -7
  8. package/dist/browser/ReflectionViewer/Container.js.map +1 -1
  9. package/dist/browser/ReflectionViewer/Declaration.js +208 -7
  10. package/dist/browser/ReflectionViewer/Declaration.js.map +1 -1
  11. package/dist/browser/ReflectionViewer/DeclarationContainer.js +355 -6
  12. package/dist/browser/ReflectionViewer/DeclarationContainer.js.map +1 -1
  13. package/dist/browser/ReflectionViewer/NameViewer.js +157 -15
  14. package/dist/browser/ReflectionViewer/NameViewer.js.map +1 -1
  15. package/dist/browser/ReflectionViewer/Project.js +296 -7
  16. package/dist/browser/ReflectionViewer/Project.js.map +1 -1
  17. package/dist/browser/ReflectionViewer/ReflectionGroupViewer.js +237 -17
  18. package/dist/browser/ReflectionViewer/ReflectionGroupViewer.js.map +1 -1
  19. package/dist/browser/ReflectionViewer/ReflectionViewer.js +185 -9
  20. package/dist/browser/ReflectionViewer/ReflectionViewer.js.map +1 -1
  21. package/dist/browser/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.js +107 -5
  22. package/dist/browser/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.js.map +1 -1
  23. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildArrayString.js +2 -1
  24. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildArrayString.js.map +1 -1
  25. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildIntersectionString.js +2 -1
  26. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildIntersectionString.js.map +1 -1
  27. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReferenceString.js +2 -1
  28. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReferenceString.js.map +1 -1
  29. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReflectionString.js +2 -1
  30. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReflectionString.js.map +1 -1
  31. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildTypeString.js +63 -6
  32. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildTypeString.js.map +1 -1
  33. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildUnionString.js +2 -1
  34. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildUnionString.js.map +1 -1
  35. package/dist/browser/ReflectionViewer/SomeTypeViewer/index.js +115 -1
  36. package/dist/browser/ReflectionViewer/SomeTypeViewer/index.js.map +1 -1
  37. package/dist/browser/ReflectionViewer/index.js +412 -8
  38. package/dist/browser/ReflectionViewer/index.js.map +1 -1
  39. package/dist/browser/SourceViewer.js +3 -2
  40. package/dist/browser/SourceViewer.js.map +1 -1
  41. package/dist/browser/TreeViewer/Reflection.js +3 -2
  42. package/dist/browser/TreeViewer/Reflection.js.map +1 -1
  43. package/dist/browser/TreeViewer/ReflectionGroup.js +231 -11
  44. package/dist/browser/TreeViewer/ReflectionGroup.js.map +1 -1
  45. package/dist/browser/TreeViewer/index.js +299 -2
  46. package/dist/browser/TreeViewer/index.js.map +1 -1
  47. package/dist/browser/TwoPanelReflectionViewer.js +344 -18
  48. package/dist/browser/TwoPanelReflectionViewer.js.map +1 -1
  49. package/dist/browser/createLookup.js +2 -1
  50. package/dist/browser/createLookup.js.map +1 -1
  51. package/dist/browser/index.js +611 -9
  52. package/dist/browser/index.js.map +1 -1
  53. package/dist/browser/resolveChildren.js +2 -1
  54. package/dist/browser/resolveChildren.js.map +1 -1
  55. package/dist/browser/trimFlagLabel.js +2 -1
  56. package/dist/browser/trimFlagLabel.js.map +1 -1
  57. package/dist/docs.json +72 -72
  58. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ReflectionViewer/DeclarationContainer.tsx"],"sourcesContent":["import { useTheme } from '@mui/material'\nimport { useLocation } from 'react-router-dom'\nimport type { DeclarationReflection } from 'typedoc'\n\nimport { ContainerReflectionViewer, ContainerReflectionViewerProps } from './Container'\nimport { DeclarationReflectionViewer } from './Declaration'\n\nexport interface DeclarationContainerReflectionViewerProps extends ContainerReflectionViewerProps {\n reflection: DeclarationReflection\n}\n\nexport const DeclarationContainerReflectionViewer: React.FC<DeclarationContainerReflectionViewerProps> = ({\n reflection,\n lookup,\n itemRenderer = DeclarationReflectionViewer,\n ...props\n}) => {\n const { hash } = useLocation()\n const theme = useTheme()\n\n return (\n <ContainerReflectionViewer\n title=\"DeclarationContainerReflectionViewer\"\n paper={hash.substring(1) === reflection.name}\n bgcolor={hash.substring(1) === reflection.name ? theme.palette.background.default : undefined}\n lookup={lookup}\n itemRenderer={itemRenderer}\n reflection={reflection}\n {...props}\n />\n )\n}\n"],"mappings":"AAqBI;AArBJ,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAG5B,SAAS,iCAAiE;AAC1E,SAAS,mCAAmC;AAMrC,MAAM,uCAA4F,CAAC;AAAA,EACxG;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,GAAG;AACL,MAAM;AACJ,QAAM,EAAE,KAAK,IAAI,YAAY;AAC7B,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAO,KAAK,UAAU,CAAC,MAAM,WAAW;AAAA,MACxC,SAAS,KAAK,UAAU,CAAC,MAAM,WAAW,OAAO,MAAM,QAAQ,WAAW,UAAU;AAAA,MACpF;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/ReflectionViewer/DeclarationContainer.tsx","../../../src/createLookup.ts","../../../src/ReflectionViewer/ReflectionGroupViewer.tsx","../../../src/JsonViewerButton.tsx","../../../src/resolveChildren.ts","../../../src/ReflectionViewer/ReflectionViewer.tsx","../../../src/CommentViewer.tsx","../../../src/ReflectionViewer/NameViewer.tsx","../../../src/trimFlagLabel.ts","../../../src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildArrayString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildIntersectionString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildReferenceString.ts","../../../src/ReflectionViewer/SomeTypeViewer/buildReflectionString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildUnionString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildTypeString.tsx","../../../src/ReflectionViewer/Container.tsx","../../../src/ReflectionViewer/Declaration.tsx"],"sourcesContent":["import { useTheme } from '@mui/material'\nimport { useLocation } from 'react-router-dom'\nimport type { DeclarationReflection } from 'typedoc'\n\nimport { ContainerReflectionViewer, ContainerReflectionViewerProps } from './Container'\nimport { DeclarationReflectionViewer } from './Declaration'\n\nexport interface DeclarationContainerReflectionViewerProps extends ContainerReflectionViewerProps {\n reflection: DeclarationReflection\n}\n\nexport const DeclarationContainerReflectionViewer: React.FC<DeclarationContainerReflectionViewerProps> = ({\n reflection,\n lookup,\n itemRenderer = DeclarationReflectionViewer,\n ...props\n}) => {\n const { hash } = useLocation()\n const theme = useTheme()\n\n return (\n <ContainerReflectionViewer\n title=\"DeclarationContainerReflectionViewer\"\n paper={hash.substring(1) === reflection.name}\n bgcolor={hash.substring(1) === reflection.name ? theme.palette.background.default : undefined}\n lookup={lookup}\n itemRenderer={itemRenderer}\n reflection={reflection}\n {...props}\n />\n )\n}\n","import type { ContainerReflection, DeclarationReflection } from 'typedoc'\n\nexport const createLookup = <T extends DeclarationReflection>(reflection: ContainerReflection) => {\n const lookup: Record<number, T> = {}\n reflection.children?.forEach((item) => (lookup[item.id] = item as unknown as T))\n return lookup\n}\n","import { Typography } from '@mui/material'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport type { ContainerReflection, ReflectionFlags, ReflectionGroup } from 'typedoc'\n\nimport { JsonViewerButton } from '../JsonViewerButton'\nimport { resolveChildren } from '../resolveChildren'\nimport { ReflectionViewer } from './ReflectionViewer'\nimport { FlagFilter, ReflectionViewerProps } from './ReflectionViewerProps'\n\nexport interface ReflectionGroupViewerProps extends ReflectionViewerProps<ContainerReflection> {\n autoscroll?: boolean\n group: ReflectionGroup\n reflection: ContainerReflection\n renderer?: React.FC<ReflectionViewerProps>\n}\n\nexport const ReflectionGroupViewer: React.FC<ReflectionGroupViewerProps> = ({\n autoscroll = false,\n children,\n hiddenFlags,\n group,\n lookup,\n renderer = ReflectionViewer,\n variant,\n ...props\n}) => {\n const hide = (flags?: ReflectionFlags, hiddenFlags: FlagFilter[] = []) => {\n let hide = false\n hiddenFlags.map((hiddenFlag) => {\n if (flags?.[hiddenFlag]) {\n hide = true\n }\n })\n return hide\n }\n\n const resolvedChildern = resolveChildren(group, lookup) ?? []\n\n const visibleChildren = hiddenFlags\n ? resolvedChildern.reduce((acc, item) => {\n return acc + (hide(item.flags, hiddenFlags) ? 0 : 1)\n }, 0)\n : 1\n\n const { hash } = useLocation()\n useEffect(() => {\n if (hash && autoscroll) {\n document.querySelector(hash)?.scrollIntoView({ behavior: 'smooth' })\n }\n }, [hash, autoscroll])\n return visibleChildren > 0 ? (\n <FlexCol title=\"ReflectionGroupViewer\" {...props}>\n <FlexRow marginY={1} justifyContent=\"flex-start\">\n <Typography variant={variant}>{group.title}</Typography>\n <JsonViewerButton\n jsonViewProps={{ collapsed: 1 }}\n size=\"small\"\n variant=\"contained\"\n padding={0}\n marginX={1}\n src={resolveChildren(group, lookup)}\n />\n </FlexRow>\n {resolveChildren(group, lookup).map((reflection) => {\n return reflection ? (\n // I wrap this in a div since React does not understand that they have keys using the Renderer\n <div id={reflection.name} key={reflection.id}>\n {renderer({ hiddenFlags, lookup, margin: 1, padding: 1, reflection })}\n </div>\n ) : null\n })}\n {children}\n </FlexCol>\n ) : null\n}\n","import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { lazy, Suspense, useState } from 'react'\nimport { ReactJsonViewProps } from 'react-json-view'\n\nconst JsonView = lazy(() => import(/* webpackChunkName: \"jsonView\" */ 'react-json-view'))\n\nexport interface JsonViewerButtonProps extends ButtonExProps {\n jsonViewProps?: Partial<ReactJsonViewProps>\n src: object\n}\n\nexport const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({ jsonViewProps, src, title, ...props }) => {\n const [open, setOpen] = useState(false)\n return (\n <>\n <ButtonEx onClick={() => setOpen(!open)} {...props}>\n JSON\n </ButtonEx>\n <Dialog open={open} onClose={() => setOpen(false)}>\n {title ? <DialogTitle>{title}</DialogTitle> : null}\n <DialogContent>\n <Suspense fallback={<div />}>\n <JsonView src={src} {...jsonViewProps} />\n </Suspense>\n </DialogContent>\n <DialogActions>\n <ButtonEx onClick={() => setOpen(false)}>Close</ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import type { Reflection } from 'typedoc'\n\nimport { ReflectionLookup } from './ReflectionLookup'\nimport { SomeReflection } from './SomeReflection'\n\ntype ReflectionWithChildren = { children: Reflection[] }\n\nexport const resolveChildren = <T extends SomeReflection>(reflection: ReflectionWithChildren, lookup: ReflectionLookup = {}): T[] => {\n return (reflection.children?.map((child) => {\n switch (typeof child) {\n case 'object':\n return child\n case 'number': {\n const childObj = lookup[child]\n if (childObj === undefined) {\n throw Error(`Child Reference Not Found [${child}]`)\n }\n return childObj\n }\n default:\n throw Error(`Invalid Child Type [${typeof child}, ${child}]`)\n }\n }) ?? []) as T[]\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\nimport type { ReflectionFlags } from 'typedoc'\n\nimport { CommentViewer } from '../CommentViewer'\nimport { SomeReflection } from '../SomeReflection'\nimport { NameViewer } from './NameViewer'\nimport { FlagFilter, ReflectionViewerProps } from './ReflectionViewerProps'\n\nconst hide = (flags?: ReflectionFlags, hiddenFlags: FlagFilter[] = []) => {\n let hide = false\n hiddenFlags.map((hiddenFlag) => {\n if (flags?.[hiddenFlag]) {\n hide = true\n }\n })\n return hide\n}\n\nexport const ReflectionViewer: React.FC<ReflectionViewerProps> = ({ variant, nameViewer, children, reflection, hiddenFlags, ...props }) => {\n const someReflection = reflection as SomeReflection\n\n return hide(reflection?.flags, hiddenFlags) ? null : (\n <FlexCol title=\"ReflectionViewer\" alignItems=\"stretch\" {...props}>\n {nameViewer === undefined ? (\n <NameViewer marginY={0.25} variant={variant} reflection={someReflection} reflectionViewer={ReflectionViewer} />\n ) : (\n nameViewer\n )}\n {reflection.comment ? <CommentViewer comment={reflection.comment} /> : null}\n {/*sources && reflection.sources && children ? (\n <>\n {reflection.sources.map((source, index) => {\n return <SourceViewer key={index} source={source} />\n })}\n </>\n ) : null*/}\n {someReflection.parameters?.map((parameter) => {\n return <ReflectionViewer hiddenFlags={hiddenFlags} marginY={0.25} marginX={1} key={parameter.id} reflection={parameter} />\n }) ?? null}\n {children}\n </FlexCol>\n )\n}\n","import { Typography } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport type { Comment } from 'typedoc'\n\nexport interface CommentViewerProps extends FlexBoxProps {\n comment: Comment\n}\n\nexport const CommentViewer: React.FC<CommentViewerProps> = ({ comment, ...props }) => {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <Typography variant=\"body2\">{comment.summary[0]?.text}</Typography>\n </FlexCol>\n )\n}\n","import { Chip, Stack, Typography, TypographyVariant } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\n\nimport { JsonViewerButton } from '../JsonViewerButton'\nimport { SomeReflection } from '../SomeReflection'\nimport { trimFlagLabel } from '../trimFlagLabel'\nimport { ReflectionViewerProps } from './ReflectionViewerProps'\nimport { SomeTypeViewer } from './SomeTypeViewer'\n\nexport interface NameViewerProps extends FlexBoxProps {\n reflection: SomeReflection\n reflectionViewer: React.FC<ReflectionViewerProps>\n variant?: TypographyVariant\n}\n\nexport const NameViewer: React.FC<NameViewerProps> = ({ reflectionViewer, variant, reflection, ...props }) => {\n return (\n <FlexRow justifyContent=\"flex-start\" {...props}>\n <FlexRow marginRight={1}>\n <Typography variant={variant} noWrap>\n {reflection.name}\n {reflection.type ? <>:&nbsp;</> : null}\n </Typography>\n <SomeTypeViewer reflection={reflection} reflectionViewer={reflectionViewer} />\n </FlexRow>\n <Stack direction=\"row\" spacing={1}>\n <Chip size=\"small\" label={reflection.kind} />\n {reflection.flags\n ? Object.entries(reflection.flags).map(([flag, value]) => {\n return value ? <Chip size=\"small\" key={flag} label={trimFlagLabel(flag)} variant=\"outlined\" /> : null\n })\n : null}\n </Stack>\n {document && document?.location.hostname === 'localhost' && (\n <JsonViewerButton jsonViewProps={{ collapsed: 1 }} size=\"small\" variant=\"contained\" padding={0} marginX={1} src={reflection} />\n )}\n </FlexRow>\n )\n}\n","export const trimFlagLabel = (label: string) => {\n if (label.startsWith('is')) {\n return label.substring(2)\n }\n return label\n}\n","import { Typography, TypographyProps } from '@mui/material'\n\nimport { SomeReflection } from '../../SomeReflection'\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { buildTypeString } from './buildTypeString'\n\nexport interface SomeTypeViewerProps extends TypographyProps {\n opacity?: number\n reflection: SomeReflection\n reflectionViewer: React.FC<ReflectionViewerProps>\n}\n\nexport const SomeTypeViewer: React.FC<SomeTypeViewerProps> = ({ opacity = 0.5, reflection, reflectionViewer, ...props }) => {\n const typeReactNode = reflection.type ? buildTypeString(reflection.type, reflectionViewer) : ''\n if (typeof typeReactNode === 'string') {\n return (\n <Typography title=\"SomeTypeViewer\" style={{ opacity }} {...props}>\n {typeReactNode}\n </Typography>\n )\n }\n return <>{typeReactNode}</>\n}\n","import type { ArrayType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildArrayString = (typeObj: ArrayType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n const typeString = typeBuilder(typeObj.elementType, reflectionViewer)\n if (typeof typeString === 'string') {\n parts.push(typeString)\n }\n parts.push('[]')\n return parts\n}\n","import type { IntersectionType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildIntersectionString = (typeObj: IntersectionType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n if (typeObj.types) {\n parts.push(\n typeObj.types\n .map((arg) => {\n return typeBuilder(arg, reflectionViewer)\n })\n .join(' & '),\n )\n }\n return parts\n}\n","import type { ReferenceType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildReferenceString = (typeObj: ReferenceType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n parts.push(typeObj.name)\n if (typeObj.typeArguments) {\n parts.push('<')\n parts.push(\n typeObj.typeArguments\n .map((arg) => {\n return typeBuilder(arg, reflectionViewer)\n })\n .join(', '),\n )\n parts.push('>')\n }\n return parts\n}\n","import type { ReflectionType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\n\nexport const buildRelfectionString = (typeObj: ReflectionType, reflectionViewer: React.FC<ReflectionViewerProps>) => {\n if (typeObj.declaration) {\n return <>{reflectionViewer({ reflection: typeObj.declaration })}</>\n }\n}\n","import type { UnionType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildUnionString = (typeObj: UnionType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n if (typeObj.types) {\n parts.push(\n typeObj.types\n .map((arg) => {\n return typeBuilder(arg, reflectionViewer)\n })\n .join(' | '),\n )\n }\n return parts\n}\n","import { ReactNode } from 'react'\nimport type { SomeType, Type } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { buildArrayString } from './buildArrayString'\nimport { buildIntersectionString } from './buildIntersectionString'\nimport { buildReferenceString } from './buildReferenceString'\nimport { buildRelfectionString } from './buildReflectionString'\nimport { buildUnionString } from './buildUnionString'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildTypeString: TypeBuilder = (type: SomeType | Type, reflectionViewer: React.FC<ReflectionViewerProps>): ReactNode => {\n const someType = type as SomeType\n const parts: string[] = []\n\n switch (someType.type) {\n case 'intrinsic':\n parts.push(someType.name)\n break\n case 'intersection': {\n parts.push(...buildIntersectionString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'literal':\n parts.push(JSON.stringify(someType.value))\n break\n case 'array': {\n parts.push(...buildArrayString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'reference': {\n parts.push(...buildReferenceString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'union': {\n parts.push(...buildUnionString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'reflection': {\n return buildRelfectionString(someType, reflectionViewer)\n }\n default:\n parts.push('#')\n parts.push(someType.type)\n parts.push('#')\n break\n }\n return parts.join('')\n}\n","import type { ContainerReflection, ReflectionGroup } from 'typedoc'\n\nimport { createLookup } from '../createLookup'\nimport { ReflectionGroupViewer } from './ReflectionGroupViewer'\nimport { ReflectionViewer } from './ReflectionViewer'\nimport { ReflectionViewerProps } from './ReflectionViewerProps'\n\nexport interface ContainerReflectionViewerProps<T extends ContainerReflection = ContainerReflection> extends ReflectionViewerProps<T> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemRenderer?: React.FC<ReflectionViewerProps<any>>\n}\n\nexport const ContainerReflectionViewer: React.FC<ContainerReflectionViewerProps> = ({\n children,\n reflection,\n hiddenFlags,\n itemRenderer = ReflectionViewer,\n ...props\n}) => {\n const lookup = createLookup(reflection)\n\n return (\n <ReflectionViewer title=\"ContainerReflectionViewer\" sources reflection={reflection} lookup={lookup} {...props}>\n {reflection.groups?.map((group: ReflectionGroup) => {\n return (\n <ReflectionGroupViewer\n margin={1}\n lookup={lookup}\n renderer={itemRenderer}\n key={group.title}\n group={group}\n reflection={reflection}\n hiddenFlags={hiddenFlags}\n alignItems=\"stretch\"\n />\n )\n })}\n {children}\n </ReflectionViewer>\n )\n}\n","import type { DeclarationReflection, SignatureReflection } from 'typedoc'\n\nimport { ReflectionViewer } from './ReflectionViewer'\nimport { ReflectionViewerProps } from './ReflectionViewerProps'\n\nexport const DeclarationReflectionViewer: React.FC<ReflectionViewerProps<DeclarationReflection>> = ({ reflection, hiddenFlags, ...props }) => {\n const safeSignatures = (signatures?: SignatureReflection[] | SignatureReflection) => {\n return Array.isArray(signatures) ? signatures : signatures ? [signatures] : undefined\n }\n\n return (\n <ReflectionViewer\n nameViewer={reflection.signatures || reflection.getSignature || reflection.setSignature ? null : undefined}\n title=\"DeclarationReflectionViewer\"\n hiddenFlags={hiddenFlags}\n reflection={reflection}\n {...props}\n >\n {reflection.signatures?.map((signature) => {\n return <ReflectionViewer key={signature.id} hiddenFlags={hiddenFlags} reflection={signature} />\n })}\n {safeSignatures(reflection.getSignature)?.map((signature) => {\n return <ReflectionViewer marginX={1} key={signature.id} hiddenFlags={hiddenFlags} reflection={signature} />\n })}\n {safeSignatures(reflection.setSignature)?.map((signature) => {\n return <ReflectionViewer marginX={1} key={signature.id} hiddenFlags={hiddenFlags} reflection={signature} />\n })}\n </ReflectionViewer>\n )\n}\n"],"mappings":"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","names":["useLocation","Typography","FlexCol","FlexRow","FlexCol","jsx","Typography","Typography","Fragment","jsx","Fragment","jsx","Typography","Fragment","jsx","jsxs","Typography","jsx","jsxs","hide","FlexCol","jsx","jsxs","hide","hiddenFlags","FlexCol","FlexRow","Typography","jsx","jsxs","jsx","jsxs","jsx","useLocation"]}
@@ -1,25 +1,167 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { Chip, Stack, Typography } from "@mui/material";
1
+ // src/ReflectionViewer/NameViewer.tsx
2
+ import { Chip, Stack, Typography as Typography2 } from "@mui/material";
3
3
  import { FlexRow } from "@xylabs/react-flexbox";
4
- import { JsonViewerButton } from "../JsonViewerButton";
5
- import { trimFlagLabel } from "../trimFlagLabel";
6
- import { SomeTypeViewer } from "./SomeTypeViewer";
7
- const NameViewer = ({ reflectionViewer, variant, reflection, ...props }) => {
8
- return /* @__PURE__ */ jsxs(FlexRow, { justifyContent: "flex-start", ...props, children: [
9
- /* @__PURE__ */ jsxs(FlexRow, { marginRight: 1, children: [
10
- /* @__PURE__ */ jsxs(Typography, { variant, noWrap: true, children: [
4
+
5
+ // src/JsonViewerButton.tsx
6
+ import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
7
+ import { ButtonEx } from "@xylabs/react-button";
8
+ import { lazy, Suspense, useState } from "react";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ var JsonView = lazy(() => import(
11
+ /* webpackChunkName: "jsonView" */
12
+ "react-json-view"
13
+ ));
14
+ var JsonViewerButton = ({ jsonViewProps, src, title, ...props }) => {
15
+ const [open, setOpen] = useState(false);
16
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
17
+ /* @__PURE__ */ jsx(ButtonEx, { onClick: () => setOpen(!open), ...props, children: "JSON" }),
18
+ /* @__PURE__ */ jsxs(Dialog, { open, onClose: () => setOpen(false), children: [
19
+ title ? /* @__PURE__ */ jsx(DialogTitle, { children: title }) : null,
20
+ /* @__PURE__ */ jsx(DialogContent, { children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx("div", {}), children: /* @__PURE__ */ jsx(JsonView, { src, ...jsonViewProps }) }) }),
21
+ /* @__PURE__ */ jsx(DialogActions, { children: /* @__PURE__ */ jsx(ButtonEx, { onClick: () => setOpen(false), children: "Close" }) })
22
+ ] })
23
+ ] });
24
+ };
25
+
26
+ // src/trimFlagLabel.ts
27
+ var trimFlagLabel = (label) => {
28
+ if (label.startsWith("is")) {
29
+ return label.substring(2);
30
+ }
31
+ return label;
32
+ };
33
+
34
+ // src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx
35
+ import { Typography } from "@mui/material";
36
+
37
+ // src/ReflectionViewer/SomeTypeViewer/buildArrayString.tsx
38
+ var buildArrayString = (typeObj, reflectionViewer, typeBuilder) => {
39
+ const parts = [];
40
+ const typeString = typeBuilder(typeObj.elementType, reflectionViewer);
41
+ if (typeof typeString === "string") {
42
+ parts.push(typeString);
43
+ }
44
+ parts.push("[]");
45
+ return parts;
46
+ };
47
+
48
+ // src/ReflectionViewer/SomeTypeViewer/buildIntersectionString.tsx
49
+ var buildIntersectionString = (typeObj, reflectionViewer, typeBuilder) => {
50
+ const parts = [];
51
+ if (typeObj.types) {
52
+ parts.push(
53
+ typeObj.types.map((arg) => {
54
+ return typeBuilder(arg, reflectionViewer);
55
+ }).join(" & ")
56
+ );
57
+ }
58
+ return parts;
59
+ };
60
+
61
+ // src/ReflectionViewer/SomeTypeViewer/buildReferenceString.ts
62
+ var buildReferenceString = (typeObj, reflectionViewer, typeBuilder) => {
63
+ const parts = [];
64
+ parts.push(typeObj.name);
65
+ if (typeObj.typeArguments) {
66
+ parts.push("<");
67
+ parts.push(
68
+ typeObj.typeArguments.map((arg) => {
69
+ return typeBuilder(arg, reflectionViewer);
70
+ }).join(", ")
71
+ );
72
+ parts.push(">");
73
+ }
74
+ return parts;
75
+ };
76
+
77
+ // src/ReflectionViewer/SomeTypeViewer/buildReflectionString.tsx
78
+ import { Fragment as Fragment2, jsx as jsx2 } from "react/jsx-runtime";
79
+ var buildRelfectionString = (typeObj, reflectionViewer) => {
80
+ if (typeObj.declaration) {
81
+ return /* @__PURE__ */ jsx2(Fragment2, { children: reflectionViewer({ reflection: typeObj.declaration }) });
82
+ }
83
+ };
84
+
85
+ // src/ReflectionViewer/SomeTypeViewer/buildUnionString.tsx
86
+ var buildUnionString = (typeObj, reflectionViewer, typeBuilder) => {
87
+ const parts = [];
88
+ if (typeObj.types) {
89
+ parts.push(
90
+ typeObj.types.map((arg) => {
91
+ return typeBuilder(arg, reflectionViewer);
92
+ }).join(" | ")
93
+ );
94
+ }
95
+ return parts;
96
+ };
97
+
98
+ // src/ReflectionViewer/SomeTypeViewer/buildTypeString.tsx
99
+ var buildTypeString = (type, reflectionViewer) => {
100
+ const someType = type;
101
+ const parts = [];
102
+ switch (someType.type) {
103
+ case "intrinsic":
104
+ parts.push(someType.name);
105
+ break;
106
+ case "intersection": {
107
+ parts.push(...buildIntersectionString(someType, reflectionViewer, buildTypeString));
108
+ break;
109
+ }
110
+ case "literal":
111
+ parts.push(JSON.stringify(someType.value));
112
+ break;
113
+ case "array": {
114
+ parts.push(...buildArrayString(someType, reflectionViewer, buildTypeString));
115
+ break;
116
+ }
117
+ case "reference": {
118
+ parts.push(...buildReferenceString(someType, reflectionViewer, buildTypeString));
119
+ break;
120
+ }
121
+ case "union": {
122
+ parts.push(...buildUnionString(someType, reflectionViewer, buildTypeString));
123
+ break;
124
+ }
125
+ case "reflection": {
126
+ return buildRelfectionString(someType, reflectionViewer);
127
+ }
128
+ default:
129
+ parts.push("#");
130
+ parts.push(someType.type);
131
+ parts.push("#");
132
+ break;
133
+ }
134
+ return parts.join("");
135
+ };
136
+
137
+ // src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx
138
+ import { Fragment as Fragment3, jsx as jsx3 } from "react/jsx-runtime";
139
+ var SomeTypeViewer = ({ opacity = 0.5, reflection, reflectionViewer, ...props }) => {
140
+ const typeReactNode = reflection.type ? buildTypeString(reflection.type, reflectionViewer) : "";
141
+ if (typeof typeReactNode === "string") {
142
+ return /* @__PURE__ */ jsx3(Typography, { title: "SomeTypeViewer", style: { opacity }, ...props, children: typeReactNode });
143
+ }
144
+ return /* @__PURE__ */ jsx3(Fragment3, { children: typeReactNode });
145
+ };
146
+
147
+ // src/ReflectionViewer/NameViewer.tsx
148
+ import { Fragment as Fragment4, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
149
+ var NameViewer = ({ reflectionViewer, variant, reflection, ...props }) => {
150
+ return /* @__PURE__ */ jsxs2(FlexRow, { justifyContent: "flex-start", ...props, children: [
151
+ /* @__PURE__ */ jsxs2(FlexRow, { marginRight: 1, children: [
152
+ /* @__PURE__ */ jsxs2(Typography2, { variant, noWrap: true, children: [
11
153
  reflection.name,
12
- reflection.type ? /* @__PURE__ */ jsx(Fragment, { children: ":\xA0" }) : null
154
+ reflection.type ? /* @__PURE__ */ jsx4(Fragment4, { children: ":\xA0" }) : null
13
155
  ] }),
14
- /* @__PURE__ */ jsx(SomeTypeViewer, { reflection, reflectionViewer })
156
+ /* @__PURE__ */ jsx4(SomeTypeViewer, { reflection, reflectionViewer })
15
157
  ] }),
16
- /* @__PURE__ */ jsxs(Stack, { direction: "row", spacing: 1, children: [
17
- /* @__PURE__ */ jsx(Chip, { size: "small", label: reflection.kind }),
158
+ /* @__PURE__ */ jsxs2(Stack, { direction: "row", spacing: 1, children: [
159
+ /* @__PURE__ */ jsx4(Chip, { size: "small", label: reflection.kind }),
18
160
  reflection.flags ? Object.entries(reflection.flags).map(([flag, value]) => {
19
- return value ? /* @__PURE__ */ jsx(Chip, { size: "small", label: trimFlagLabel(flag), variant: "outlined" }, flag) : null;
161
+ return value ? /* @__PURE__ */ jsx4(Chip, { size: "small", label: trimFlagLabel(flag), variant: "outlined" }, flag) : null;
20
162
  }) : null
21
163
  ] }),
22
- document && document?.location.hostname === "localhost" && /* @__PURE__ */ jsx(JsonViewerButton, { jsonViewProps: { collapsed: 1 }, size: "small", variant: "contained", padding: 0, marginX: 1, src: reflection })
164
+ document && document?.location.hostname === "localhost" && /* @__PURE__ */ jsx4(JsonViewerButton, { jsonViewProps: { collapsed: 1 }, size: "small", variant: "contained", padding: 0, marginX: 1, src: reflection })
23
165
  ] });
24
166
  };
25
167
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ReflectionViewer/NameViewer.tsx"],"sourcesContent":["import { Chip, Stack, Typography, TypographyVariant } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\n\nimport { JsonViewerButton } from '../JsonViewerButton'\nimport { SomeReflection } from '../SomeReflection'\nimport { trimFlagLabel } from '../trimFlagLabel'\nimport { ReflectionViewerProps } from './ReflectionViewerProps'\nimport { SomeTypeViewer } from './SomeTypeViewer'\n\nexport interface NameViewerProps extends FlexBoxProps {\n reflection: SomeReflection\n reflectionViewer: React.FC<ReflectionViewerProps>\n variant?: TypographyVariant\n}\n\nexport const NameViewer: React.FC<NameViewerProps> = ({ reflectionViewer, variant, reflection, ...props }) => {\n return (\n <FlexRow justifyContent=\"flex-start\" {...props}>\n <FlexRow marginRight={1}>\n <Typography variant={variant} noWrap>\n {reflection.name}\n {reflection.type ? <>:&nbsp;</> : null}\n </Typography>\n <SomeTypeViewer reflection={reflection} reflectionViewer={reflectionViewer} />\n </FlexRow>\n <Stack direction=\"row\" spacing={1}>\n <Chip size=\"small\" label={reflection.kind} />\n {reflection.flags\n ? Object.entries(reflection.flags).map(([flag, value]) => {\n return value ? <Chip size=\"small\" key={flag} label={trimFlagLabel(flag)} variant=\"outlined\" /> : null\n })\n : null}\n </Stack>\n {document && document?.location.hostname === 'localhost' && (\n <JsonViewerButton jsonViewProps={{ collapsed: 1 }} size=\"small\" variant=\"contained\" padding={0} marginX={1} src={reflection} />\n )}\n </FlexRow>\n )\n}\n"],"mappings":"AAmBQ,SAEqB,eAFrB;AAnBR,SAAS,MAAM,OAAO,kBAAqC;AAC3D,SAAuB,eAAe;AAEtC,SAAS,wBAAwB;AAEjC,SAAS,qBAAqB;AAE9B,SAAS,sBAAsB;AAQxB,MAAM,aAAwC,CAAC,EAAE,kBAAkB,SAAS,YAAY,GAAG,MAAM,MAAM;AAC5G,SACE,qBAAC,WAAQ,gBAAe,cAAc,GAAG,OACvC;AAAA,yBAAC,WAAQ,aAAa,GACpB;AAAA,2BAAC,cAAW,SAAkB,QAAM,MACjC;AAAA,mBAAW;AAAA,QACX,WAAW,OAAO,gCAAE,mBAAO,IAAM;AAAA,SACpC;AAAA,MACA,oBAAC,kBAAe,YAAwB,kBAAoC;AAAA,OAC9E;AAAA,IACA,qBAAC,SAAM,WAAU,OAAM,SAAS,GAC9B;AAAA,0BAAC,QAAK,MAAK,SAAQ,OAAO,WAAW,MAAM;AAAA,MAC1C,WAAW,QACR,OAAO,QAAQ,WAAW,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;AACtD,eAAO,QAAQ,oBAAC,QAAK,MAAK,SAAmB,OAAO,cAAc,IAAI,GAAG,SAAQ,cAA1C,IAAqD,IAAK;AAAA,MACnG,CAAC,IACD;AAAA,OACN;AAAA,IACC,YAAY,UAAU,SAAS,aAAa,eAC3C,oBAAC,oBAAiB,eAAe,EAAE,WAAW,EAAE,GAAG,MAAK,SAAQ,SAAQ,aAAY,SAAS,GAAG,SAAS,GAAG,KAAK,YAAY;AAAA,KAEjI;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/ReflectionViewer/NameViewer.tsx","../../../src/JsonViewerButton.tsx","../../../src/trimFlagLabel.ts","../../../src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildArrayString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildIntersectionString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildReferenceString.ts","../../../src/ReflectionViewer/SomeTypeViewer/buildReflectionString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildUnionString.tsx","../../../src/ReflectionViewer/SomeTypeViewer/buildTypeString.tsx"],"sourcesContent":["import { Chip, Stack, Typography, TypographyVariant } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\n\nimport { JsonViewerButton } from '../JsonViewerButton'\nimport { SomeReflection } from '../SomeReflection'\nimport { trimFlagLabel } from '../trimFlagLabel'\nimport { ReflectionViewerProps } from './ReflectionViewerProps'\nimport { SomeTypeViewer } from './SomeTypeViewer'\n\nexport interface NameViewerProps extends FlexBoxProps {\n reflection: SomeReflection\n reflectionViewer: React.FC<ReflectionViewerProps>\n variant?: TypographyVariant\n}\n\nexport const NameViewer: React.FC<NameViewerProps> = ({ reflectionViewer, variant, reflection, ...props }) => {\n return (\n <FlexRow justifyContent=\"flex-start\" {...props}>\n <FlexRow marginRight={1}>\n <Typography variant={variant} noWrap>\n {reflection.name}\n {reflection.type ? <>:&nbsp;</> : null}\n </Typography>\n <SomeTypeViewer reflection={reflection} reflectionViewer={reflectionViewer} />\n </FlexRow>\n <Stack direction=\"row\" spacing={1}>\n <Chip size=\"small\" label={reflection.kind} />\n {reflection.flags\n ? Object.entries(reflection.flags).map(([flag, value]) => {\n return value ? <Chip size=\"small\" key={flag} label={trimFlagLabel(flag)} variant=\"outlined\" /> : null\n })\n : null}\n </Stack>\n {document && document?.location.hostname === 'localhost' && (\n <JsonViewerButton jsonViewProps={{ collapsed: 1 }} size=\"small\" variant=\"contained\" padding={0} marginX={1} src={reflection} />\n )}\n </FlexRow>\n )\n}\n","import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { lazy, Suspense, useState } from 'react'\nimport { ReactJsonViewProps } from 'react-json-view'\n\nconst JsonView = lazy(() => import(/* webpackChunkName: \"jsonView\" */ 'react-json-view'))\n\nexport interface JsonViewerButtonProps extends ButtonExProps {\n jsonViewProps?: Partial<ReactJsonViewProps>\n src: object\n}\n\nexport const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({ jsonViewProps, src, title, ...props }) => {\n const [open, setOpen] = useState(false)\n return (\n <>\n <ButtonEx onClick={() => setOpen(!open)} {...props}>\n JSON\n </ButtonEx>\n <Dialog open={open} onClose={() => setOpen(false)}>\n {title ? <DialogTitle>{title}</DialogTitle> : null}\n <DialogContent>\n <Suspense fallback={<div />}>\n <JsonView src={src} {...jsonViewProps} />\n </Suspense>\n </DialogContent>\n <DialogActions>\n <ButtonEx onClick={() => setOpen(false)}>Close</ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","export const trimFlagLabel = (label: string) => {\n if (label.startsWith('is')) {\n return label.substring(2)\n }\n return label\n}\n","import { Typography, TypographyProps } from '@mui/material'\n\nimport { SomeReflection } from '../../SomeReflection'\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { buildTypeString } from './buildTypeString'\n\nexport interface SomeTypeViewerProps extends TypographyProps {\n opacity?: number\n reflection: SomeReflection\n reflectionViewer: React.FC<ReflectionViewerProps>\n}\n\nexport const SomeTypeViewer: React.FC<SomeTypeViewerProps> = ({ opacity = 0.5, reflection, reflectionViewer, ...props }) => {\n const typeReactNode = reflection.type ? buildTypeString(reflection.type, reflectionViewer) : ''\n if (typeof typeReactNode === 'string') {\n return (\n <Typography title=\"SomeTypeViewer\" style={{ opacity }} {...props}>\n {typeReactNode}\n </Typography>\n )\n }\n return <>{typeReactNode}</>\n}\n","import type { ArrayType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildArrayString = (typeObj: ArrayType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n const typeString = typeBuilder(typeObj.elementType, reflectionViewer)\n if (typeof typeString === 'string') {\n parts.push(typeString)\n }\n parts.push('[]')\n return parts\n}\n","import type { IntersectionType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildIntersectionString = (typeObj: IntersectionType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n if (typeObj.types) {\n parts.push(\n typeObj.types\n .map((arg) => {\n return typeBuilder(arg, reflectionViewer)\n })\n .join(' & '),\n )\n }\n return parts\n}\n","import type { ReferenceType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildReferenceString = (typeObj: ReferenceType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n parts.push(typeObj.name)\n if (typeObj.typeArguments) {\n parts.push('<')\n parts.push(\n typeObj.typeArguments\n .map((arg) => {\n return typeBuilder(arg, reflectionViewer)\n })\n .join(', '),\n )\n parts.push('>')\n }\n return parts\n}\n","import type { ReflectionType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\n\nexport const buildRelfectionString = (typeObj: ReflectionType, reflectionViewer: React.FC<ReflectionViewerProps>) => {\n if (typeObj.declaration) {\n return <>{reflectionViewer({ reflection: typeObj.declaration })}</>\n }\n}\n","import type { UnionType } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildUnionString = (typeObj: UnionType, reflectionViewer: React.FC<ReflectionViewerProps>, typeBuilder: TypeBuilder) => {\n const parts: string[] = []\n if (typeObj.types) {\n parts.push(\n typeObj.types\n .map((arg) => {\n return typeBuilder(arg, reflectionViewer)\n })\n .join(' | '),\n )\n }\n return parts\n}\n","import { ReactNode } from 'react'\nimport type { SomeType, Type } from 'typedoc'\n\nimport { ReflectionViewerProps } from '../ReflectionViewerProps'\nimport { buildArrayString } from './buildArrayString'\nimport { buildIntersectionString } from './buildIntersectionString'\nimport { buildReferenceString } from './buildReferenceString'\nimport { buildRelfectionString } from './buildReflectionString'\nimport { buildUnionString } from './buildUnionString'\nimport { TypeBuilder } from './TypeBuilder'\n\nexport const buildTypeString: TypeBuilder = (type: SomeType | Type, reflectionViewer: React.FC<ReflectionViewerProps>): ReactNode => {\n const someType = type as SomeType\n const parts: string[] = []\n\n switch (someType.type) {\n case 'intrinsic':\n parts.push(someType.name)\n break\n case 'intersection': {\n parts.push(...buildIntersectionString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'literal':\n parts.push(JSON.stringify(someType.value))\n break\n case 'array': {\n parts.push(...buildArrayString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'reference': {\n parts.push(...buildReferenceString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'union': {\n parts.push(...buildUnionString(someType, reflectionViewer, buildTypeString))\n break\n }\n case 'reflection': {\n return buildRelfectionString(someType, reflectionViewer)\n }\n default:\n parts.push('#')\n parts.push(someType.type)\n parts.push('#')\n break\n }\n return parts.join('')\n}\n"],"mappings":"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","names":["Typography","Fragment","jsx","Fragment","jsx","Fragment","jsx","jsxs","Typography"]}
@@ -1,18 +1,307 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/ReflectionViewer/Project.tsx
2
2
  import { useMemo } from "react";
3
- import { createLookup } from "../createLookup";
4
- import { ReflectionGroupViewer } from "./ReflectionGroupViewer";
5
- import { ReflectionViewer } from "./ReflectionViewer";
6
- const ProjectReflectionViewer = ({
3
+
4
+ // src/createLookup.ts
5
+ var createLookup = (reflection) => {
6
+ const lookup = {};
7
+ reflection.children?.forEach((item) => lookup[item.id] = item);
8
+ return lookup;
9
+ };
10
+
11
+ // src/ReflectionViewer/ReflectionGroupViewer.tsx
12
+ import { Typography as Typography4 } from "@mui/material";
13
+ import { FlexCol as FlexCol3, FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
14
+ import { useEffect } from "react";
15
+ import { useLocation } from "react-router-dom";
16
+
17
+ // src/JsonViewerButton.tsx
18
+ import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
19
+ import { ButtonEx } from "@xylabs/react-button";
20
+ import { lazy, Suspense, useState } from "react";
21
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
+ var JsonView = lazy(() => import(
23
+ /* webpackChunkName: "jsonView" */
24
+ "react-json-view"
25
+ ));
26
+ var JsonViewerButton = ({ jsonViewProps, src, title, ...props }) => {
27
+ const [open, setOpen] = useState(false);
28
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
29
+ /* @__PURE__ */ jsx(ButtonEx, { onClick: () => setOpen(!open), ...props, children: "JSON" }),
30
+ /* @__PURE__ */ jsxs(Dialog, { open, onClose: () => setOpen(false), children: [
31
+ title ? /* @__PURE__ */ jsx(DialogTitle, { children: title }) : null,
32
+ /* @__PURE__ */ jsx(DialogContent, { children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx("div", {}), children: /* @__PURE__ */ jsx(JsonView, { src, ...jsonViewProps }) }) }),
33
+ /* @__PURE__ */ jsx(DialogActions, { children: /* @__PURE__ */ jsx(ButtonEx, { onClick: () => setOpen(false), children: "Close" }) })
34
+ ] })
35
+ ] });
36
+ };
37
+
38
+ // src/resolveChildren.ts
39
+ var resolveChildren = (reflection, lookup = {}) => {
40
+ return reflection.children?.map((child) => {
41
+ switch (typeof child) {
42
+ case "object":
43
+ return child;
44
+ case "number": {
45
+ const childObj = lookup[child];
46
+ if (childObj === void 0) {
47
+ throw Error(`Child Reference Not Found [${child}]`);
48
+ }
49
+ return childObj;
50
+ }
51
+ default:
52
+ throw Error(`Invalid Child Type [${typeof child}, ${child}]`);
53
+ }
54
+ }) ?? [];
55
+ };
56
+
57
+ // src/ReflectionViewer/ReflectionViewer.tsx
58
+ import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
59
+
60
+ // src/CommentViewer.tsx
61
+ import { Typography } from "@mui/material";
62
+ import { FlexCol } from "@xylabs/react-flexbox";
63
+ import { jsx as jsx2 } from "react/jsx-runtime";
64
+ var CommentViewer = ({ comment, ...props }) => {
65
+ return /* @__PURE__ */ jsx2(FlexCol, { alignItems: "stretch", ...props, children: /* @__PURE__ */ jsx2(Typography, { variant: "body2", children: comment.summary[0]?.text }) });
66
+ };
67
+
68
+ // src/ReflectionViewer/NameViewer.tsx
69
+ import { Chip, Stack, Typography as Typography3 } from "@mui/material";
70
+ import { FlexRow } from "@xylabs/react-flexbox";
71
+
72
+ // src/trimFlagLabel.ts
73
+ var trimFlagLabel = (label) => {
74
+ if (label.startsWith("is")) {
75
+ return label.substring(2);
76
+ }
77
+ return label;
78
+ };
79
+
80
+ // src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx
81
+ import { Typography as Typography2 } from "@mui/material";
82
+
83
+ // src/ReflectionViewer/SomeTypeViewer/buildArrayString.tsx
84
+ var buildArrayString = (typeObj, reflectionViewer, typeBuilder) => {
85
+ const parts = [];
86
+ const typeString = typeBuilder(typeObj.elementType, reflectionViewer);
87
+ if (typeof typeString === "string") {
88
+ parts.push(typeString);
89
+ }
90
+ parts.push("[]");
91
+ return parts;
92
+ };
93
+
94
+ // src/ReflectionViewer/SomeTypeViewer/buildIntersectionString.tsx
95
+ var buildIntersectionString = (typeObj, reflectionViewer, typeBuilder) => {
96
+ const parts = [];
97
+ if (typeObj.types) {
98
+ parts.push(
99
+ typeObj.types.map((arg) => {
100
+ return typeBuilder(arg, reflectionViewer);
101
+ }).join(" & ")
102
+ );
103
+ }
104
+ return parts;
105
+ };
106
+
107
+ // src/ReflectionViewer/SomeTypeViewer/buildReferenceString.ts
108
+ var buildReferenceString = (typeObj, reflectionViewer, typeBuilder) => {
109
+ const parts = [];
110
+ parts.push(typeObj.name);
111
+ if (typeObj.typeArguments) {
112
+ parts.push("<");
113
+ parts.push(
114
+ typeObj.typeArguments.map((arg) => {
115
+ return typeBuilder(arg, reflectionViewer);
116
+ }).join(", ")
117
+ );
118
+ parts.push(">");
119
+ }
120
+ return parts;
121
+ };
122
+
123
+ // src/ReflectionViewer/SomeTypeViewer/buildReflectionString.tsx
124
+ import { Fragment as Fragment2, jsx as jsx3 } from "react/jsx-runtime";
125
+ var buildRelfectionString = (typeObj, reflectionViewer) => {
126
+ if (typeObj.declaration) {
127
+ return /* @__PURE__ */ jsx3(Fragment2, { children: reflectionViewer({ reflection: typeObj.declaration }) });
128
+ }
129
+ };
130
+
131
+ // src/ReflectionViewer/SomeTypeViewer/buildUnionString.tsx
132
+ var buildUnionString = (typeObj, reflectionViewer, typeBuilder) => {
133
+ const parts = [];
134
+ if (typeObj.types) {
135
+ parts.push(
136
+ typeObj.types.map((arg) => {
137
+ return typeBuilder(arg, reflectionViewer);
138
+ }).join(" | ")
139
+ );
140
+ }
141
+ return parts;
142
+ };
143
+
144
+ // src/ReflectionViewer/SomeTypeViewer/buildTypeString.tsx
145
+ var buildTypeString = (type, reflectionViewer) => {
146
+ const someType = type;
147
+ const parts = [];
148
+ switch (someType.type) {
149
+ case "intrinsic":
150
+ parts.push(someType.name);
151
+ break;
152
+ case "intersection": {
153
+ parts.push(...buildIntersectionString(someType, reflectionViewer, buildTypeString));
154
+ break;
155
+ }
156
+ case "literal":
157
+ parts.push(JSON.stringify(someType.value));
158
+ break;
159
+ case "array": {
160
+ parts.push(...buildArrayString(someType, reflectionViewer, buildTypeString));
161
+ break;
162
+ }
163
+ case "reference": {
164
+ parts.push(...buildReferenceString(someType, reflectionViewer, buildTypeString));
165
+ break;
166
+ }
167
+ case "union": {
168
+ parts.push(...buildUnionString(someType, reflectionViewer, buildTypeString));
169
+ break;
170
+ }
171
+ case "reflection": {
172
+ return buildRelfectionString(someType, reflectionViewer);
173
+ }
174
+ default:
175
+ parts.push("#");
176
+ parts.push(someType.type);
177
+ parts.push("#");
178
+ break;
179
+ }
180
+ return parts.join("");
181
+ };
182
+
183
+ // src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx
184
+ import { Fragment as Fragment3, jsx as jsx4 } from "react/jsx-runtime";
185
+ var SomeTypeViewer = ({ opacity = 0.5, reflection, reflectionViewer, ...props }) => {
186
+ const typeReactNode = reflection.type ? buildTypeString(reflection.type, reflectionViewer) : "";
187
+ if (typeof typeReactNode === "string") {
188
+ return /* @__PURE__ */ jsx4(Typography2, { title: "SomeTypeViewer", style: { opacity }, ...props, children: typeReactNode });
189
+ }
190
+ return /* @__PURE__ */ jsx4(Fragment3, { children: typeReactNode });
191
+ };
192
+
193
+ // src/ReflectionViewer/NameViewer.tsx
194
+ import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
195
+ var NameViewer = ({ reflectionViewer, variant, reflection, ...props }) => {
196
+ return /* @__PURE__ */ jsxs2(FlexRow, { justifyContent: "flex-start", ...props, children: [
197
+ /* @__PURE__ */ jsxs2(FlexRow, { marginRight: 1, children: [
198
+ /* @__PURE__ */ jsxs2(Typography3, { variant, noWrap: true, children: [
199
+ reflection.name,
200
+ reflection.type ? /* @__PURE__ */ jsx5(Fragment4, { children: ":\xA0" }) : null
201
+ ] }),
202
+ /* @__PURE__ */ jsx5(SomeTypeViewer, { reflection, reflectionViewer })
203
+ ] }),
204
+ /* @__PURE__ */ jsxs2(Stack, { direction: "row", spacing: 1, children: [
205
+ /* @__PURE__ */ jsx5(Chip, { size: "small", label: reflection.kind }),
206
+ reflection.flags ? Object.entries(reflection.flags).map(([flag, value]) => {
207
+ return value ? /* @__PURE__ */ jsx5(Chip, { size: "small", label: trimFlagLabel(flag), variant: "outlined" }, flag) : null;
208
+ }) : null
209
+ ] }),
210
+ document && document?.location.hostname === "localhost" && /* @__PURE__ */ jsx5(JsonViewerButton, { jsonViewProps: { collapsed: 1 }, size: "small", variant: "contained", padding: 0, marginX: 1, src: reflection })
211
+ ] });
212
+ };
213
+
214
+ // src/ReflectionViewer/ReflectionViewer.tsx
215
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
216
+ var hide = (flags, hiddenFlags = []) => {
217
+ let hide2 = false;
218
+ hiddenFlags.map((hiddenFlag) => {
219
+ if (flags?.[hiddenFlag]) {
220
+ hide2 = true;
221
+ }
222
+ });
223
+ return hide2;
224
+ };
225
+ var ReflectionViewer = ({ variant, nameViewer, children, reflection, hiddenFlags, ...props }) => {
226
+ const someReflection = reflection;
227
+ return hide(reflection?.flags, hiddenFlags) ? null : /* @__PURE__ */ jsxs3(FlexCol2, { title: "ReflectionViewer", alignItems: "stretch", ...props, children: [
228
+ nameViewer === void 0 ? /* @__PURE__ */ jsx6(NameViewer, { marginY: 0.25, variant, reflection: someReflection, reflectionViewer: ReflectionViewer }) : nameViewer,
229
+ reflection.comment ? /* @__PURE__ */ jsx6(CommentViewer, { comment: reflection.comment }) : null,
230
+ someReflection.parameters?.map((parameter) => {
231
+ return /* @__PURE__ */ jsx6(ReflectionViewer, { hiddenFlags, marginY: 0.25, marginX: 1, reflection: parameter }, parameter.id);
232
+ }) ?? null,
233
+ children
234
+ ] });
235
+ };
236
+
237
+ // src/ReflectionViewer/ReflectionGroupViewer.tsx
238
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
239
+ var ReflectionGroupViewer = ({
240
+ autoscroll = false,
241
+ children,
242
+ hiddenFlags,
243
+ group,
244
+ lookup,
245
+ renderer = ReflectionViewer,
246
+ variant,
247
+ ...props
248
+ }) => {
249
+ const hide2 = (flags, hiddenFlags2 = []) => {
250
+ let hide3 = false;
251
+ hiddenFlags2.map((hiddenFlag) => {
252
+ if (flags?.[hiddenFlag]) {
253
+ hide3 = true;
254
+ }
255
+ });
256
+ return hide3;
257
+ };
258
+ const resolvedChildern = resolveChildren(group, lookup) ?? [];
259
+ const visibleChildren = hiddenFlags ? resolvedChildern.reduce((acc, item) => {
260
+ return acc + (hide2(item.flags, hiddenFlags) ? 0 : 1);
261
+ }, 0) : 1;
262
+ const { hash } = useLocation();
263
+ useEffect(() => {
264
+ if (hash && autoscroll) {
265
+ document.querySelector(hash)?.scrollIntoView({ behavior: "smooth" });
266
+ }
267
+ }, [hash, autoscroll]);
268
+ return visibleChildren > 0 ? /* @__PURE__ */ jsxs4(FlexCol3, { title: "ReflectionGroupViewer", ...props, children: [
269
+ /* @__PURE__ */ jsxs4(FlexRow2, { marginY: 1, justifyContent: "flex-start", children: [
270
+ /* @__PURE__ */ jsx7(Typography4, { variant, children: group.title }),
271
+ /* @__PURE__ */ jsx7(
272
+ JsonViewerButton,
273
+ {
274
+ jsonViewProps: { collapsed: 1 },
275
+ size: "small",
276
+ variant: "contained",
277
+ padding: 0,
278
+ marginX: 1,
279
+ src: resolveChildren(group, lookup)
280
+ }
281
+ )
282
+ ] }),
283
+ resolveChildren(group, lookup).map((reflection) => {
284
+ return reflection ? (
285
+ // I wrap this in a div since React does not understand that they have keys using the Renderer
286
+ /* @__PURE__ */ jsx7("div", { id: reflection.name, children: renderer({ hiddenFlags, lookup, margin: 1, padding: 1, reflection }) }, reflection.id)
287
+ ) : null;
288
+ }),
289
+ children
290
+ ] }) : null;
291
+ };
292
+
293
+ // src/ReflectionViewer/Project.tsx
294
+ import { jsx as jsx8 } from "react/jsx-runtime";
295
+ var ProjectReflectionViewer = ({
7
296
  reflection,
8
297
  hiddenFlags,
9
298
  itemRenderer = ReflectionViewer,
10
299
  ...props
11
300
  }) => {
12
301
  const lookup = useMemo(() => createLookup(reflection), [reflection]);
13
- return /* @__PURE__ */ jsx(ReflectionViewer, { title: "ProjectReflectionViewer", hiddenFlags, reflection, ...props, children: useMemo(() => {
302
+ return /* @__PURE__ */ jsx8(ReflectionViewer, { title: "ProjectReflectionViewer", hiddenFlags, reflection, ...props, children: useMemo(() => {
14
303
  return reflection.groups?.map((group) => {
15
- return /* @__PURE__ */ jsx(
304
+ return /* @__PURE__ */ jsx8(
16
305
  ReflectionGroupViewer,
17
306
  {
18
307
  autoscroll: true,