construct-hub-webapp 0.1.252 → 0.1.256

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 (66) hide show
  1. package/build/asset-manifest.json +40 -41
  2. package/build/index.html +1 -1
  3. package/build/service-worker.js +1 -1
  4. package/build/service-worker.js.map +1 -1
  5. package/build/static/js/{0.eac96593.chunk.js → 0.73ed7e0d.chunk.js} +2 -2
  6. package/build/static/js/{0.eac96593.chunk.js.map → 0.73ed7e0d.chunk.js.map} +1 -1
  7. package/build/static/js/1.c05f6d0e.chunk.js +2 -0
  8. package/build/static/js/1.c05f6d0e.chunk.js.map +1 -0
  9. package/build/static/js/10.85c70ef7.chunk.js +2 -0
  10. package/build/static/js/10.85c70ef7.chunk.js.map +1 -0
  11. package/build/static/js/11.cc98cce3.chunk.js +2 -0
  12. package/build/static/js/11.cc98cce3.chunk.js.map +1 -0
  13. package/build/static/js/12.161d7784.chunk.js +2 -0
  14. package/build/static/js/12.161d7784.chunk.js.map +1 -0
  15. package/build/static/js/{13.6a8b9e20.chunk.js → 13.c1230b1f.chunk.js} +2 -2
  16. package/build/static/js/{13.6a8b9e20.chunk.js.map → 13.c1230b1f.chunk.js.map} +1 -1
  17. package/build/static/js/{14.024c1a38.chunk.js → 14.a7027258.chunk.js} +2 -2
  18. package/build/static/js/{14.024c1a38.chunk.js.map → 14.a7027258.chunk.js.map} +1 -1
  19. package/build/static/js/{15.ed72dbe0.chunk.js → 15.9f39224a.chunk.js} +3 -3
  20. package/build/static/js/{15.ed72dbe0.chunk.js.LICENSE.txt → 15.9f39224a.chunk.js.LICENSE.txt} +0 -0
  21. package/build/static/js/{15.ed72dbe0.chunk.js.map → 15.9f39224a.chunk.js.map} +1 -1
  22. package/build/static/js/{16.5f5aad89.chunk.js → 16.a02dd650.chunk.js} +2 -2
  23. package/build/static/js/{16.5f5aad89.chunk.js.map → 16.a02dd650.chunk.js.map} +1 -1
  24. package/build/static/js/2.4cb37f37.chunk.js +2 -0
  25. package/build/static/js/2.4cb37f37.chunk.js.map +1 -0
  26. package/build/static/js/5.2f773d84.chunk.js +3 -0
  27. package/build/static/js/{4.33ed4462.chunk.js.LICENSE.txt → 5.2f773d84.chunk.js.LICENSE.txt} +0 -0
  28. package/build/static/js/{4.33ed4462.chunk.js.map → 5.2f773d84.chunk.js.map} +1 -1
  29. package/build/static/js/6.e528e116.chunk.js +3 -0
  30. package/build/static/js/{5.31f776a0.chunk.js.LICENSE.txt → 6.e528e116.chunk.js.LICENSE.txt} +62 -0
  31. package/build/static/js/6.e528e116.chunk.js.map +1 -0
  32. package/build/static/js/7.5cdcd2ea.chunk.js +2 -0
  33. package/build/static/js/7.5cdcd2ea.chunk.js.map +1 -0
  34. package/build/static/js/8.b8f9b0c8.chunk.js +2 -0
  35. package/build/static/js/8.b8f9b0c8.chunk.js.map +1 -0
  36. package/build/static/js/9.340b7752.chunk.js +2 -0
  37. package/build/static/js/9.340b7752.chunk.js.map +1 -0
  38. package/build/static/js/main.792688eb.chunk.js +2 -0
  39. package/build/static/js/main.792688eb.chunk.js.map +1 -0
  40. package/build/static/js/runtime-main.fd23188e.js +2 -0
  41. package/build/static/js/{runtime-main.0ec50908.js.map → runtime-main.fd23188e.js.map} +1 -1
  42. package/cypress/integration/search.spec.ts +0 -20
  43. package/package.json +4 -4
  44. package/build/static/js/1.f1cf5c72.chunk.js +0 -2
  45. package/build/static/js/1.f1cf5c72.chunk.js.map +0 -1
  46. package/build/static/js/10.67470f34.chunk.js +0 -2
  47. package/build/static/js/10.67470f34.chunk.js.map +0 -1
  48. package/build/static/js/11.7a407d94.chunk.js +0 -3
  49. package/build/static/js/11.7a407d94.chunk.js.LICENSE.txt +0 -61
  50. package/build/static/js/11.7a407d94.chunk.js.map +0 -1
  51. package/build/static/js/12.6ec7141c.chunk.js +0 -2
  52. package/build/static/js/12.6ec7141c.chunk.js.map +0 -1
  53. package/build/static/js/4.33ed4462.chunk.js +0 -3
  54. package/build/static/js/5.31f776a0.chunk.js +0 -3
  55. package/build/static/js/5.31f776a0.chunk.js.map +0 -1
  56. package/build/static/js/6.cb540adf.chunk.js +0 -2
  57. package/build/static/js/6.cb540adf.chunk.js.map +0 -1
  58. package/build/static/js/7.415d3d06.chunk.js +0 -2
  59. package/build/static/js/7.415d3d06.chunk.js.map +0 -1
  60. package/build/static/js/8.24ecd2ff.chunk.js +0 -2
  61. package/build/static/js/8.24ecd2ff.chunk.js.map +0 -1
  62. package/build/static/js/9.214e3382.chunk.js +0 -2
  63. package/build/static/js/9.214e3382.chunk.js.map +0 -1
  64. package/build/static/js/main.e071d0b6.chunk.js +0 -2
  65. package/build/static/js/main.e071d0b6.chunk.js.map +0 -1
  66. package/build/static/js/runtime-main.0ec50908.js +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"sources":["constants/pageInfo.ts","components/Page/Page.tsx","constants/keywords.ts","components/PackageTag/PackageTag.tsx","../../../src/ChevronRight.tsx","components/CatalogCard/testIds.ts","components/CatalogCard/CatalogCardContainer.tsx","components/CatalogCard/CatalogCardSkeleton.tsx","components/CatalogCard/CatalogCard.tsx","components/Results/ResultsGrid.tsx","components/Results/ResultsSkeleton.tsx","components/Results/Results.tsx","../../../src/tag.tsx","../../../src/ArrowForward.tsx","../../../src/ChevronLeft.tsx","../../../src/skeleton.tsx","../../../src/use-previous.ts"],"names":["pageInfo","home","event","name","faq","packageProfile","search","siteTerms","notFound","page","pageType","Page","children","meta","pageName","trackPageView","usePageView","useEffect","suffix","title","description","formattedTitle","Helmet","process","content","charSet","property","KEYWORD_IGNORE_LIST","Set","PackageTag","language","value","label","zIndex","tagProps","NavLink","to","getSearchPath","query","_hover","textDecoration","ChevronRightIcon","createIcon","d","displayName","testIds","createTestIds","CardContainer","Card","h","p","w","as","overflow","templateColumns","templateRows","CatalogCardContainer","isLink","bg","container","CatalogCardSkeleton","spacing","align","direction","px","py","CatalogCard","currentLanguage","pkg","publishDate","metadata","date","Time","Date","fontSize","format","author","languages","targets","Object","keys","getUrl","params","getPackagePath","version","authorName","maxH","maxW","Link","color","fontWeight","isTruncated","ml","Flex","tags","flexWrap","startsWith","mr","variant","keywords","filter","v","Boolean","has","slice","map","tag","noOfLines","Stack","entries","LANGUAGE_RENDER_MAP","sort","left","right","LANGUAGES","indexOf","lang","info","isSupportedByLibrary","Language","TypeScript","includes","isSupportedByConstructHub","TEMP_SUPPORTED_LANGUAGES","Icon","icon","opacity","LanguageSupportTooltip","ResultsGrid","columns","base","sm","md","lg","xl","ResultsSkeletonComponent","noOfItems","skeletons","i","push","ResultsSkeleton","memo","ResultsComponent","results","skeleton","loading","idx","Results","Tag","forwardRef","styles","useMultiStyleConfig","ownProps","omitThemingProps","containerStyles","display","verticalAlign","alignItems","maxWidth","ref","__css","TagLabel","useStyles","TagLeftIcon","marginEnd","TagRightIcon","marginStart","TagCloseIcon","props","viewBox","fill","ArrowForwardIcon","ChevronLeftIcon","StyledSkeleton","chakra","baseStyle","boxShadow","backgroundClip","cursor","pointerEvents","userSelect","visibility","fade","keyframes","from","Skeleton","useStyleConfig","isFirstRender","React","useIsFirstRender","className","wasPreviouslyLoaded","useRef","usePrevious","_className","cx","animation","fadeDuration","speed"],"mappings":"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","file":"static/js/1.f1cf5c72.chunk.js","sourcesContent":["export const pageInfo = {\n home: {\n event: {\n name: \"Home Load\",\n },\n },\n faq: {\n event: {\n name: \"Frequently Asked Questions Load\",\n },\n },\n packageProfile: {\n event: {\n name: \"Package Profile Load\",\n },\n },\n search: {\n event: {\n name: \"Search Load\",\n },\n },\n siteTerms: {\n event: {\n name: \"Site Terms Load\",\n },\n },\n notFound: {\n page: {\n pageType: \"errorPage\",\n },\n event: {\n name: \"404 Page Load\",\n },\n },\n} as const;\n","import { FunctionComponent, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { pageInfo } from \"../../constants/pageInfo\";\nimport { usePageView } from \"../../contexts/Analytics\";\n\nexport interface PageProps {\n pageName: keyof typeof pageInfo;\n meta: {\n suffix?: boolean;\n title: string;\n description: string;\n };\n}\n\nexport const Page: FunctionComponent<PageProps> = ({\n children,\n meta,\n pageName,\n}) => {\n const trackPageView = usePageView(pageInfo[pageName]);\n\n useEffect(() => {\n trackPageView();\n }, [trackPageView]);\n\n const { suffix = true, title, description } = meta;\n const formattedTitle = suffix ? `${title} - Construct Hub` : title;\n\n return (\n <>\n <Helmet>\n {process.env.NODE_ENV === \"development\" && (\n <meta\n content=\"default-src 'self' 'unsafe-inline' https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; connect-src 'self' https://*.shortbread.aws.dev ws://localhost:3000 https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; frame-src 'none'; img-src 'self' https://* http://*.omtrdc.net; object-src 'none'; style-src 'self' 'unsafe-inline';\"\n httpEquiv=\"Content-Security-Policy\"\n />\n )}\n\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n <meta charSet=\"utf-8\" />\n\n <title>{formattedTitle}</title>\n <meta content={formattedTitle} property=\"og:title\" />\n <meta content={formattedTitle} name=\"twitter:title\" />\n <meta content=\"summary\" name=\"twitter:card\" />\n\n <meta content={description} name=\"description\" />\n <meta content={description} property=\"og:description\" />\n <meta content={description} name=\"twitter:description\" />\n </Helmet>\n {children}\n </>\n );\n};\n","export const KEYWORD_IGNORE_LIST = new Set([\"aws\", \"aws-cdk\", \"awscdk\", \"cdk\"]);\n","import { Tag, TagLabel, TagProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Language } from \"../../constants/languages\";\nimport { getSearchPath } from \"../../util/url\";\nimport { NavLink } from \"../NavLink\";\n\nexport interface PackageTagProps extends TagProps {\n language?: Language;\n value: string;\n label?: string;\n zIndex?: string | number;\n}\n\nexport const PackageTag: FunctionComponent<PackageTagProps> = ({\n children,\n language,\n value,\n label = value,\n zIndex,\n ...tagProps\n}) => {\n return (\n <NavLink\n aria-label={`Tag: ${label}`}\n to={getSearchPath({ query: `${value}`, language })}\n zIndex={zIndex}\n >\n <Tag\n _hover={{\n textDecoration: \"underline\",\n }}\n {...tagProps}\n >\n <TagLabel>{children}</TagLabel>\n </Tag>\n </NavLink>\n );\n};\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ChevronRightIcon = createIcon({\n d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\",\n displayName: \"ChevronRightIcon\",\n})\n","import { createTestIds } from \"../../util/createTestIds\";\n\nconst testIds = createTestIds(\"catalogCard\", [\n \"container\",\n \"name\",\n \"version\",\n \"tags\",\n \"description\",\n \"date\",\n \"author\",\n \"languages\",\n] as const);\n\nexport default testIds;\n","import { Grid, LinkBox } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Card } from \"../Card\";\nimport testIds from \"./testIds\";\n\nconst CardContainer: FunctionComponent = ({ children }) => (\n <Card h={64} p={0} w=\"100%\">\n <Grid\n as=\"article\"\n h=\"100%\"\n overflow=\"hidden\"\n templateColumns=\"1fr\"\n templateRows=\"2fr 1fr\"\n >\n {children}\n </Grid>\n </Card>\n);\n\nexport const CatalogCardContainer: FunctionComponent<{ isLink?: boolean }> = ({\n children,\n isLink,\n}) => {\n return isLink ? (\n <LinkBox\n _hover={{\n \"> :first-child\": {\n bg: \"gray.50\",\n },\n }}\n data-testid={testIds.container}\n >\n <CardContainer>{children}</CardContainer>\n </LinkBox>\n ) : (\n <CardContainer>{children}</CardContainer>\n );\n};\n","import { Box, Divider, Skeleton, Stack } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const CatalogCardSkeleton: FunctionComponent = () => (\n <>\n <Stack p={4} spacing={4}>\n <Skeleton h={5} w=\"50%\" />\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n </Stack>\n <Skeleton h={3} w=\"75%\" />\n <Skeleton h={3} w=\"50%\" />\n </Stack>\n <Box>\n <Divider />\n <Stack px={4} py={2} spacing={2}>\n <Skeleton h={5} w=\"25%\" />\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n </Stack>\n </Stack>\n </Box>\n </>\n);\n","import {\n Box,\n Divider,\n Flex,\n LinkBox,\n Link as UILink,\n LinkOverlay,\n Stack,\n Text,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CatalogPackage } from \"../../api/package/packages\";\nimport { KEYWORD_IGNORE_LIST } from \"../../constants/keywords\";\nimport {\n Language,\n LANGUAGES,\n LANGUAGE_RENDER_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\nimport { getPackagePath, getSearchPath } from \"../../util/url\";\nimport { LanguageSupportTooltip } from \"../LanguageSupportTooltip\";\nimport { PackageTag } from \"../PackageTag\";\nimport { Time } from \"../Time\";\nimport { CatalogCardContainer } from \"./CatalogCardContainer\";\nimport { CatalogCardSkeleton } from \"./CatalogCardSkeleton\";\nimport testIds from \"./testIds\";\n\nexport interface CatalogCardProps {\n /**\n * Specifies the language to link to by default\n */\n language?: Language;\n /**\n * If undefined, will render a skeleton\n */\n pkg?: CatalogPackage;\n}\n\nexport const CatalogCard: FunctionComponent<CatalogCardProps> = ({\n language: currentLanguage,\n pkg,\n}) => {\n if (!pkg) {\n return (\n <CatalogCardContainer>\n <CatalogCardSkeleton />\n </CatalogCardContainer>\n );\n }\n\n const publishDate = pkg.metadata?.date ? (\n <Time\n date={new Date(pkg.metadata.date)}\n fontSize=\"sm\"\n format=\"MMMM dd, yyyy\"\n />\n ) : null;\n\n const author = pkg.author ?? {};\n const languages = pkg.languages ?? {};\n const targets = Object.keys(languages) as Language[];\n\n const getUrl = (params?: Partial<Parameters<typeof getPackagePath>[0]>) =>\n getPackagePath({\n name: pkg.name,\n version: pkg.version,\n language: currentLanguage,\n ...params,\n });\n\n const authorName = typeof author === \"string\" ? author : author.name;\n\n return (\n <CatalogCardContainer isLink>\n <Stack maxH=\"100%\" maxW=\"100%\" overflow=\"hidden\" p={4} spacing={0}>\n {/* Name & Version */}\n <LinkOverlay as={Link} to={getUrl()}>\n <Text\n color=\"blue.800\"\n data-testid={testIds.name}\n fontWeight=\"semibold\"\n isTruncated\n >\n {pkg.name}\n\n <Text\n as=\"span\"\n color=\"blue.500\"\n data-testid={testIds.version}\n fontSize=\"xs\"\n ml={2}\n >\n {pkg.version}\n </Text>\n </Text>\n </LinkOverlay>\n\n {/* Tags */}\n <LinkBox\n as={Flex}\n data-testid={testIds.tags}\n flexWrap=\"wrap\"\n maxH={6}\n overflow=\"hidden\"\n >\n {[\n pkg.name.startsWith(\"@aws-cdk/\") ? (\n <PackageTag\n key=\"official\"\n label=\"official\"\n language={currentLanguage}\n mr={1}\n value=\"@aws-cdk\"\n variant=\"official\"\n >\n Official\n </PackageTag>\n ) : null,\n ...pkg.keywords\n .filter((v) => Boolean(v) && !KEYWORD_IGNORE_LIST.has(v))\n .slice(0, 3)\n .map((tag) => {\n return (\n <PackageTag\n key={tag}\n language={currentLanguage}\n mr={1}\n value={`\"${tag}\"`}\n zIndex=\"0 !important\"\n >\n {tag}\n </PackageTag>\n );\n }),\n ]}\n </LinkBox>\n <Text data-testid={testIds.description} fontSize=\"sm\" noOfLines={2}>\n {pkg.description}\n </Text>\n </Stack>\n\n {/* Bottom Details */}\n <Box>\n <Divider />\n <Stack maxW=\"100%\" overflow=\"hidden\" px={4} py={2} spacing={2}>\n <Text data-testid={testIds.date} fontSize=\"sm\" isTruncated>\n {publishDate}\n </Text>\n\n <UILink\n as={Link}\n color=\"blue.500\"\n data-testid={testIds.author}\n fontSize=\"sm\"\n to={getSearchPath({ query: authorName })}\n >\n {authorName}\n </UILink>\n\n {/* Language Support Icons */}\n <LinkBox\n align=\"center\"\n as={Stack}\n data-testid={testIds.languages}\n direction=\"row\"\n >\n {Object.entries(LANGUAGE_RENDER_MAP)\n // Ensure entries are always sorted in a stable way\n .sort(\n ([left], [right]) =>\n LANGUAGES.indexOf(left as Language) -\n LANGUAGES.indexOf(right as Language)\n )\n .map(([lang, info]) => {\n const language = lang as Language;\n\n const isSupportedByLibrary =\n language === Language.TypeScript ||\n targets.includes(language);\n\n const isSupportedByConstructHub =\n language === Language.TypeScript || // TypeScript is always supported\n // Otherwise, the language must be supported by ConstructHub\n TEMP_SUPPORTED_LANGUAGES.has(language);\n\n if (!isSupportedByLibrary) return null;\n\n const { name, icon: Icon } = info;\n\n const icon = (\n <Icon\n aria-label={`Supports ${name}`}\n h={6}\n opacity={isSupportedByConstructHub ? 1 : 0.2}\n w={6}\n />\n );\n\n return (\n <LanguageSupportTooltip key={language} language={language}>\n {isSupportedByConstructHub ? (\n <Link\n aria-label={`View package docs for ${language}`}\n to={getUrl({ language })}\n >\n {icon}\n </Link>\n ) : (\n icon\n )}\n </LanguageSupportTooltip>\n );\n })}\n </LinkBox>\n </Stack>\n </Box>\n </CatalogCardContainer>\n );\n};\n","import { SimpleGrid } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const ResultsGrid: FunctionComponent = ({ children }) => (\n <SimpleGrid\n columns={{\n base: 1,\n sm: 2,\n md: 3,\n lg: 4,\n xl: 5,\n \"2xl\": 6,\n }}\n spacing={6}\n >\n {children}\n </SimpleGrid>\n);\n","import { FunctionComponent, memo } from \"react\";\nimport { CatalogCard } from \"../CatalogCard\";\nimport { ResultsGrid } from \"./ResultsGrid\";\n\nexport interface ResultsSkeletonProps {\n noOfItems: number;\n}\n\nconst ResultsSkeletonComponent: FunctionComponent<ResultsSkeletonProps> = ({\n noOfItems,\n}) => {\n const skeletons = [];\n\n for (let i = 0; i < noOfItems; i += 1) {\n skeletons.push(<CatalogCard key={i} />);\n }\n\n return <ResultsGrid>{skeletons}</ResultsGrid>;\n};\n\nexport const ResultsSkeleton = memo(\n ResultsSkeletonComponent\n) as typeof ResultsSkeletonComponent;\n","import { FunctionComponent, memo } from \"react\";\nimport { Packages } from \"../../api/package/packages\";\nimport { Language } from \"../../constants/languages\";\nimport { CatalogCard } from \"../CatalogCard\";\nimport { ResultsGrid } from \"./ResultsGrid\";\nimport { ResultsSkeleton } from \"./ResultsSkeleton\";\n\nexport interface ResultsProps {\n language?: Language;\n results: Packages[\"packages\"];\n skeleton?: {\n loading: boolean;\n noOfItems: number;\n };\n}\n\nconst ResultsComponent: FunctionComponent<ResultsProps> = ({\n language,\n results,\n skeleton,\n}) => {\n if (skeleton?.loading) {\n return <ResultsSkeleton noOfItems={skeleton.noOfItems} />;\n }\n\n return (\n <ResultsGrid>\n {results.map((pkg, idx) => (\n <CatalogCard key={`${pkg.name}-${idx}`} language={language} pkg={pkg} />\n ))}\n </ResultsGrid>\n );\n};\n\nexport const Results = memo(ResultsComponent) as typeof ResultsComponent;\n","import { Icon, IconProps } from \"@chakra-ui/icon\"\nimport {\n chakra,\n forwardRef,\n omitThemingProps,\n StylesProvider,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n useStyles,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface TagProps\n extends HTMLChakraProps<\"span\">,\n ThemingProps<\"Tag\"> {}\n\n/**\n * The tag component is used to label or categorize UI elements.\n * To style the tag globally, change the styles in `theme.components.Tag`\n * @see Docs https://chakra-ui.com/tag\n */\nexport const Tag = forwardRef<TagProps, \"span\">((props, ref) => {\n const styles = useMultiStyleConfig(\"Tag\", props)\n const ownProps = omitThemingProps(props)\n\n const containerStyles: SystemStyleObject = {\n display: \"inline-flex\",\n verticalAlign: \"top\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n ...styles.container,\n }\n\n return (\n <StylesProvider value={styles}>\n <chakra.span ref={ref} {...ownProps} __css={containerStyles} />\n </StylesProvider>\n )\n})\n\nif (__DEV__) {\n Tag.displayName = \"Tag\"\n}\n\nexport interface TagLabelProps extends HTMLChakraProps<\"span\"> {}\n\nexport const TagLabel = forwardRef<TagLabelProps, \"span\">((props, ref) => {\n const styles = useStyles()\n return <chakra.span ref={ref} isTruncated {...props} __css={styles.label} />\n})\n\nif (__DEV__) {\n TagLabel.displayName = \"TagLabel\"\n}\n\nexport const TagLeftIcon = forwardRef<IconProps, \"svg\">((props, ref) => (\n <Icon ref={ref} verticalAlign=\"top\" marginEnd=\"0.5rem\" {...props} />\n))\n\nif (__DEV__) {\n TagLeftIcon.displayName = \"TagLeftIcon\"\n}\n\nexport const TagRightIcon = forwardRef<IconProps, \"svg\">((props, ref) => (\n <Icon ref={ref} verticalAlign=\"top\" marginStart=\"0.5rem\" {...props} />\n))\n\nif (__DEV__) {\n TagRightIcon.displayName = \"TagRightIcon\"\n}\n\nconst TagCloseIcon: React.FC<IconProps> = (props) => (\n <Icon verticalAlign=\"inherit\" viewBox=\"0 0 512 512\" {...props}>\n <path\n fill=\"currentColor\"\n d=\"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z\"\n />\n </Icon>\n)\n\nif (__DEV__) {\n TagCloseIcon.displayName = \"TagCloseIcon\"\n}\n\nexport interface TagCloseButtonProps\n extends Omit<HTMLChakraProps<\"button\">, \"disabled\"> {\n isDisabled?: boolean\n}\n\n/**\n * TagCloseButton is used to close \"remove\" the tag\n * @see Docs https://chakra-ui.com/tag\n */\nexport const TagCloseButton: React.FC<TagCloseButtonProps> = (props) => {\n const { isDisabled, children, ...rest } = props\n\n const styles = useStyles()\n\n const btnStyles: SystemStyleObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n outline: \"0\",\n ...styles.closeButton,\n }\n\n return (\n <chakra.button\n {...rest}\n type=\"button\"\n aria-label=\"close\"\n disabled={isDisabled}\n __css={btnStyles}\n >\n {children || <TagCloseIcon />}\n </chakra.button>\n )\n}\n\nif (__DEV__) {\n TagCloseButton.displayName = \"TagCloseButton\"\n}\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ArrowForwardIcon = createIcon({\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\n displayName: \"ArrowForwardIcon\",\n})\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ChevronLeftIcon = createIcon({\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\",\n displayName: \"ChevronLeftIcon\",\n})\n","import { useBreakpointValue } from \"@chakra-ui/media-query\"\nimport {\n chakra,\n forwardRef,\n keyframes,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { usePrevious } from \"@chakra-ui/hooks\"\nimport { cx, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface SkeletonOptions {\n /**\n * The color at the animation start\n */\n startColor?: string\n /**\n * The color at the animation end\n */\n endColor?: string\n /**\n * If `true`, it'll render its children with a nice fade transition\n */\n isLoaded?: boolean\n /**\n * The animation speed in seconds\n * @default\n * 0.8\n */\n speed?: number\n /**\n * The fadeIn duration in seconds\n *\n * @default\n * 0.4\n */\n fadeDuration?: number\n}\n\nconst StyledSkeleton = chakra(\"div\", {\n baseStyle: {\n boxShadow: \"none\",\n backgroundClip: \"padding-box\",\n cursor: \"default\",\n color: \"transparent\",\n pointerEvents: \"none\",\n userSelect: \"none\",\n \"&::before, &::after, *\": {\n visibility: \"hidden\",\n },\n },\n})\n\nexport type ISkeleton = SkeletonOptions\n\nexport interface SkeletonProps\n extends HTMLChakraProps<\"div\">,\n SkeletonOptions,\n ThemingProps<\"Skeleton\"> {}\n\nconst fade = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n})\n\nconst useIsFirstRender = () => {\n const isFirstRender = React.useRef(true)\n\n React.useEffect(() => {\n isFirstRender.current = false\n }, [])\n\n return isFirstRender.current\n}\n\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n const styles = useStyleConfig(\"Skeleton\", props)\n const isFirstRender = useIsFirstRender()\n\n const {\n startColor,\n endColor,\n isLoaded,\n fadeDuration,\n speed,\n className,\n ...rest\n } = omitThemingProps(props)\n\n const wasPreviouslyLoaded = usePrevious(isLoaded)\n\n const _className = cx(\"chakra-skeleton\", className)\n\n if (isLoaded) {\n const animation =\n isFirstRender || wasPreviouslyLoaded ? \"none\" : `${fade} ${fadeDuration}s`\n\n return (\n <chakra.div\n ref={ref}\n className={_className}\n __css={{ animation }}\n {...rest}\n />\n )\n }\n\n return (\n <StyledSkeleton ref={ref} className={_className} {...rest} __css={styles} />\n )\n})\n\nSkeleton.defaultProps = {\n fadeDuration: 0.4,\n speed: 0.8,\n}\n\nif (__DEV__) {\n Skeleton.displayName = \"Skeleton\"\n}\n\nfunction range(count: number) {\n return Array(count)\n .fill(1)\n .map((_, index) => index + 1)\n}\n\nexport interface SkeletonTextProps extends SkeletonProps {\n spacing?: SkeletonProps[\"margin\"]\n skeletonHeight?: SkeletonProps[\"height\"]\n startColor?: SkeletonProps[\"startColor\"]\n endColor?: SkeletonProps[\"endColor\"]\n isLoaded?: SkeletonProps[\"isLoaded\"]\n}\n\nconst defaultNoOfLines = 3\n\nexport const SkeletonText: React.FC<SkeletonTextProps> = (props) => {\n const {\n noOfLines = defaultNoOfLines,\n spacing = \"0.5rem\",\n skeletonHeight = \"0.5rem\",\n className,\n startColor,\n endColor,\n isLoaded,\n fadeDuration,\n speed,\n children,\n ...rest\n } = props\n\n const noOfLinesValue =\n useBreakpointValue(\n typeof noOfLines === \"number\" ? [noOfLines] : noOfLines,\n ) || defaultNoOfLines\n const numbers = range(noOfLinesValue)\n\n const getWidth = (index: number) => {\n if (noOfLinesValue > 1) {\n return index === numbers.length ? \"80%\" : \"100%\"\n }\n return \"100%\"\n }\n\n const _className = cx(\"chakra-skeleton__group\", className)\n\n return (\n <chakra.div className={_className} {...rest}>\n {numbers.map((number, index) => {\n if (isLoaded && index > 0) {\n // skip other lines\n return null\n }\n\n const sizeProps = isLoaded\n ? null\n : {\n mb: number === numbers.length ? \"0\" : spacing,\n width: getWidth(number),\n height: skeletonHeight,\n }\n\n return (\n <Skeleton\n key={numbers.length.toString() + number}\n startColor={startColor}\n endColor={endColor}\n isLoaded={isLoaded}\n fadeDuration={fadeDuration}\n speed={speed}\n {...sizeProps}\n >\n {\n // allows animating the children\n index === 0 ? children : undefined\n }\n </Skeleton>\n )\n })}\n </chakra.div>\n )\n}\n\nif (__DEV__) {\n SkeletonText.displayName = \"SkeletonText\"\n}\n\nexport const SkeletonCircle: React.FC<SkeletonProps> = ({\n size = \"2rem\",\n ...rest\n}) => <Skeleton borderRadius=\"full\" boxSize={size} {...rest} />\n\nif (__DEV__) {\n SkeletonCircle.displayName = \"SkeletonCircle\"\n}\n","import { useRef, useEffect } from \"react\"\n\nexport function usePrevious<T>(value: T) {\n const ref = useRef<T | undefined>()\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current as T\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[10],{292:function(e,t,c){"use strict";c.d(t,"a",(function(){return o}));var n=c(195),a=c(1),r=function(e){var t=e.children;return Object(a.jsx)(n.a,{as:"em",color:"blue.500",fontWeight:"bold",children:t})},o=function(e){var t=e.limit,c=e.offset,o=e.count,s=e.filtered,i=t*c,l=i+t;return Object(a.jsxs)(n.a,{children:["Displaying"," ",Object(a.jsxs)(r,{children:[o?i+1:o," - ",l>o?o:l]})," ","of ",Object(a.jsx)(r,{children:o})," ",s?"search results":"constructs","."]})}},293:function(e,t,c){"use strict";c.d(t,"a",(function(){return n}));var n=25},295:function(e,t,c){"use strict";c.d(t,"a",(function(){return S}));var n=c(352),a=c(298),r=c(145),o=c(205),s=c(6),i=c(203),l=c(24),u=c(1),j=function(e){var t=e.icon,c=e.offset,n=e.getPageUrl,a={"aria-label":"Page ".concat(c," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue",icon:Object(u.jsx)(t,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==c?Object(u.jsx)(i.a,Object(s.a)(Object(s.a)({},a),{},{as:l.b,to:n({offset:c})})):Object(u.jsx)(i.a,Object(s.a)(Object(s.a)({},a),{},{disabled:!0}))},f=c(4),b=c(224),d=c(195),g=c(0),O=c(20),h=function(e){var t=e.pageLimit,c=e.offset,n=e.getPageUrl,a=Object(g.useState)((c+1).toString()),r=Object(f.a)(a,2),s=r[0],i=r[1],l=Object(O.g)().push;Object(g.useEffect)((function(){i((c+1).toString())}),[c]);return Object(u.jsxs)(o.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),l(n({offset:parseInt(s)-1}))},children:[Object(u.jsx)(b.a,{colorScheme:"blue",h:10,max:t+1,min:1,name:"page",onChange:function(e){e.preventDefault(),i(e.target.value)},p:0,textAlign:"center",type:"number",value:s,w:10}),Object(u.jsxs)(d.a,{ml:2,w:"max-content",children:["of ",t+1]})]})},p=c(351),x=c(149),m={children:"Next Page",colorScheme:"blue",rightIcon:Object(u.jsx)(p.a,{color:"white"})},v=function(e){var t=e.nextPageUrl;return t?Object(u.jsx)(x.a,Object(s.a)(Object(s.a)({},m),{},{as:l.b,to:t})):Object(u.jsx)(x.a,Object(s.a)(Object(s.a)({},m),{},{disabled:!0}))},S=function(e){var t=e.offset,c=e.pageLimit,s=e.getPageUrl,i=t<c?t+1:void 0,l=t>0?t-1:void 0;return Object(u.jsxs)(r.a,{alignItems:"center",pt:4,templateColumns:"repeat(3, 1fr)",templateRows:"1fr",children:[Object(u.jsx)(r.b,{colStart:2,justifySelf:"center",children:Object(u.jsx)(v,{nextPageUrl:i?s({offset:i}):void 0})}),Object(u.jsx)(r.b,{colStart:3,justifySelf:"end",children:Object(u.jsxs)(o.a,{align:"center",justify:"center",py:4,children:[Object(u.jsx)(h,{getPageUrl:s,offset:t,pageLimit:c}),Object(u.jsx)(j,{getPageUrl:s,icon:n.a,offset:l}),Object(u.jsx)(j,{getPageUrl:s,icon:a.a,offset:i})]})})]})}},598:function(e,t,c){"use strict";c.r(t),c.d(t,"SearchResults",(function(){return v})),c.d(t,"default",(function(){return v}));var n=c(6),a=c(205),r=c(190),o=c(207),s=c(0),i=c(20),l=c(116),u=c(232),j=c(348),f=c(13),b=c(117),d=c(118),g=c(115),O=c(56),h=c(295),p=c(292),x=c(293),m=c(1),v=function(){var e,t,c=Object(g.a)(),v=decodeURIComponent(null!==(e=c.get(f.b.SEARCH_QUERY))&&void 0!==e?e:""),S=c.get(f.b.LANGUAGE),w=Object(d.a)({defaultQuery:v,defaultLanguage:S}),y=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t}(null!==(t=c.get(f.b.OFFSET))&&void 0!==t?t:"0"),U=Object(i.g)().push,P=Object(b.a)({query:v,offset:y,limit:x.a,language:S}),E=P.results,L=P.displayable,C=P.loading,I=P.pageLimit,R=function(e){var t,c;return Object(O.c)({query:null!==(t=e.q)&&void 0!==t?t:v,language:S,offset:null!==(c=e.offset)&&void 0!==c?c:y})};return Object(s.useEffect)((function(){!C&&E.length&&(y<0||y>I)&&U(R(y<0?{offset:0}:{offset:I}))}),[C,E,I,y]),Object(s.useEffect)((function(){v!==w.query&&w.setQuery(v)}),[v]),Object(m.jsx)(u.a,{meta:{title:v||"Search",description:v?"".concat(E.length," results for ").concat(v," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(m.jsxs)(a.a,{direction:"column",maxW:"100vw",children:[Object(m.jsx)(r.a,{p:4,children:Object(m.jsx)(l.a,Object(n.a)({},w))}),Object(m.jsx)(o.a,{}),Object(m.jsxs)(r.a,{p:4,children:[Object(m.jsx)(a.a,{align:"center",justify:"space-between",pb:4,wrap:"wrap",children:Object(m.jsx)(p.a,{count:E.length,filtered:!!v,limit:x.a,offset:y})}),Object(m.jsx)(j.a,{language:null!==S&&void 0!==S?S:void 0,results:L,skeleton:{loading:C,noOfItems:x.a}}),Object(m.jsx)(h.a,{getPageUrl:R,limit:x.a,offset:y,pageLimit:I})]})]})})}}}]);
2
- //# sourceMappingURL=10.67470f34.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["views/SearchResults/components/ShowingDetails.tsx","views/SearchResults/constants.ts","views/SearchResults/components/ArrowButton.tsx","views/SearchResults/components/GoToPage.tsx","views/SearchResults/components/NextPage.tsx","views/SearchResults/components/PageControls.tsx","views/SearchResults/SearchResults.tsx"],"names":["Em","children","as","color","fontWeight","ShowingDetails","limit","offset","count","filtered","first","last","LIMIT","ArrowButton","Icon","icon","getPageUrl","props","borderRadius","borderColor","colorScheme","h","w","mx","variant","undefined","Link","to","disabled","GoToPage","pageLimit","useState","toString","inputValue","setInputValue","push","useHistory","useEffect","align","onSubmit","e","preventDefault","parseInt","max","min","name","onChange","target","value","p","textAlign","type","ml","btnProps","rightIcon","ArrowForward","NextPage","nextPageUrl","PageControls","nextOffset","prevOffset","alignItems","pt","templateColumns","templateRows","colStart","justifySelf","justify","py","ChevronLeftIcon","ChevronRightIcon","SearchResults","queryParams","useQueryParams","searchQuery","decodeURIComponent","get","QUERY_PARAMS","SEARCH_QUERY","languageQuery","LANGUAGE","searchAPI","useCatalogSearch","defaultQuery","defaultLanguage","val","result","toNum","OFFSET","useCatalogResults","query","language","results","displayable","loading","getUrl","params","getSearchPath","q","length","setQuery","Page","meta","title","description","pageName","direction","maxW","CatalogSearch","pb","wrap","Results","skeleton","noOfItems"],"mappings":"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","file":"static/js/10.67470f34.chunk.js","sourcesContent":["import { Text } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\n\nexport interface ShowingDetailsProps {\n limit: number;\n offset: number;\n count: number;\n filtered: boolean;\n}\n\nconst Em: FunctionComponent = ({ children }) => (\n <Text as=\"em\" color=\"blue.500\" fontWeight=\"bold\">\n {children}\n </Text>\n);\n\nexport const ShowingDetails: FunctionComponent<ShowingDetailsProps> = ({\n limit,\n offset,\n count,\n filtered,\n}) => {\n const first = limit * offset;\n const last = first + limit;\n return (\n <Text>\n Displaying{\" \"}\n <Em>\n {count ? first + 1 : count} - {last > count ? count : last}\n </Em>{\" \"}\n of <Em>{count}</Em> {filtered ? \"search results\" : \"constructs\"}.\n </Text>\n );\n};\n","import type { QueryParamKey } from \"../../constants/url\";\n\nexport const LIMITS = [25, 50, 75, 100];\nexport const LIMIT = LIMITS[0];\n\nexport type SearchQueryParam = Extract<QueryParamKey, \"offset\" | \"q\">;\n","import { IconButton, IconProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface ArrowButtonProps {\n icon: FunctionComponent<IconProps>;\n offset?: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const ArrowButton: FunctionComponent<ArrowButtonProps> = ({\n icon: Icon,\n offset,\n getPageUrl,\n}) => {\n const label = `Page ${offset} link`;\n\n const props = {\n \"aria-label\": label,\n borderRadius: \"md\",\n borderColor: \"blue.500\",\n colorScheme: \"blue\",\n icon: <Icon color=\"blue.500\" h={5} w={5} />,\n mx: 2,\n h: 10,\n w: 10,\n variant: \"outline\",\n };\n\n if (offset !== undefined) {\n return <IconButton {...props} as={Link} to={getPageUrl({ offset })} />;\n }\n\n return <IconButton {...props} disabled />;\n};\n","import { Flex, Input, Text } from \"@chakra-ui/react\";\nimport {\n FormEventHandler,\n FunctionComponent,\n SyntheticEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nexport interface GoToPageProps {\n pageLimit: number;\n offset: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const GoToPage: FunctionComponent<GoToPageProps> = ({\n pageLimit,\n offset,\n getPageUrl,\n}) => {\n const [inputValue, setInputValue] = useState((offset + 1).toString());\n const { push } = useHistory();\n\n useEffect(() => {\n setInputValue((offset + 1).toString());\n }, [offset]);\n\n const onInputChange = (e: SyntheticEvent<HTMLInputElement>) => {\n e.preventDefault();\n setInputValue((e.target as HTMLInputElement).value);\n };\n\n const onSubmit: FormEventHandler<HTMLInputElement> = (e) => {\n e.preventDefault();\n push(getPageUrl({ offset: parseInt(inputValue) - 1 }));\n };\n\n return (\n <Flex align=\"center\" as=\"form\" mx={2} onSubmit={onSubmit}>\n <Input\n colorScheme=\"blue\"\n h={10}\n max={pageLimit + 1}\n min={1}\n name=\"page\"\n onChange={onInputChange}\n p={0}\n textAlign=\"center\"\n type=\"number\"\n value={inputValue}\n w={10}\n />\n <Text ml={2} w=\"max-content\">\n of {pageLimit + 1}\n </Text>\n </Flex>\n );\n};\n","import { ArrowForwardIcon } from \"@chakra-ui/icons\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface NextPageProps {\n nextPageUrl?: string;\n}\n\nconst btnProps = {\n children: \"Next Page\",\n colorScheme: \"blue\",\n rightIcon: <ArrowForwardIcon color=\"white\" />,\n};\n\nexport const NextPage: FunctionComponent<NextPageProps> = ({ nextPageUrl }) => {\n if (!nextPageUrl) {\n return <Button {...btnProps} disabled />;\n }\n\n return <Button {...btnProps} as={Link} to={nextPageUrl} />;\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"@chakra-ui/icons\";\nimport { Flex, Grid, GridItem } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { ArrowButton } from \"./ArrowButton\";\nimport { GoToPage } from \"./GoToPage\";\nimport { NextPage } from \"./NextPage\";\n\nexport interface PageControlsProps {\n limit: number;\n offset: number;\n pageLimit: number;\n getPageUrl: (params: { offset?: number }) => string;\n}\n\nexport const PageControls: FunctionComponent<PageControlsProps> = ({\n offset,\n pageLimit,\n getPageUrl,\n}) => {\n const nextOffset = offset < pageLimit ? offset + 1 : undefined;\n const prevOffset = offset > 0 ? offset - 1 : undefined;\n\n return (\n <Grid\n alignItems=\"center\"\n pt={4}\n templateColumns=\"repeat(3, 1fr)\"\n templateRows=\"1fr\"\n >\n <GridItem colStart={2} justifySelf=\"center\">\n <NextPage\n nextPageUrl={\n nextOffset ? getPageUrl({ offset: nextOffset }) : undefined\n }\n />\n </GridItem>\n <GridItem colStart={3} justifySelf=\"end\">\n <Flex align=\"center\" justify=\"center\" py={4}>\n <GoToPage\n getPageUrl={getPageUrl}\n offset={offset}\n pageLimit={pageLimit}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronLeftIcon}\n offset={prevOffset}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronRightIcon}\n offset={nextOffset}\n />\n </Flex>\n </GridItem>\n </Grid>\n );\n};\n","import { Box, Divider, Flex } from \"@chakra-ui/react\";\nimport { FunctionComponent, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { CatalogSearch } from \"../../components/CatalogSearch\";\nimport { Page } from \"../../components/Page\";\nimport { Results } from \"../../components/Results\";\nimport { Language } from \"../../constants/languages\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport { useCatalogResults } from \"../../hooks/useCatalogResults\";\nimport { useCatalogSearch } from \"../../hooks/useCatalogSearch\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\nimport { getSearchPath } from \"../../util/url\";\nimport { PageControls } from \"./components/PageControls\";\nimport { ShowingDetails } from \"./components/ShowingDetails\";\nimport { LIMIT, SearchQueryParam } from \"./constants\";\n\nconst toNum = (val: string) => {\n const result = parseInt(val);\n\n if (`${result}` === \"NaN\") {\n return 0;\n }\n\n return result;\n};\n\nexport const SearchResults: FunctionComponent = () => {\n const queryParams = useQueryParams();\n\n const searchQuery = decodeURIComponent(\n queryParams.get(QUERY_PARAMS.SEARCH_QUERY) ?? \"\"\n );\n\n const languageQuery = queryParams.get(\n QUERY_PARAMS.LANGUAGE\n ) as Language | null;\n\n const searchAPI = useCatalogSearch({\n defaultQuery: searchQuery,\n defaultLanguage: languageQuery,\n });\n\n const offset = toNum(queryParams.get(QUERY_PARAMS.OFFSET) ?? \"0\");\n\n const { push } = useHistory();\n\n const { results, displayable, loading, pageLimit } = useCatalogResults({\n query: searchQuery,\n offset,\n limit: LIMIT,\n language: languageQuery,\n });\n\n const getUrl = (\n params: Partial<{ [key in SearchQueryParam]: number | string }>\n ) => {\n return getSearchPath({\n query: (params.q ?? searchQuery) as string,\n language: languageQuery,\n offset: params.offset ?? offset,\n });\n };\n\n useEffect(() => {\n // If the query has results but the page has nothing to show...\n if (!loading && results.length && (offset < 0 || offset > pageLimit)) {\n // Handle an out of bounds offset\n if (offset < 0) {\n push(getUrl({ offset: 0 }));\n } else {\n // Offset is too large, just take last page\n push(getUrl({ offset: pageLimit }));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, results, pageLimit, offset]);\n\n useEffect(() => {\n // Reflect changes to queryParam to search input (specifically for tag clicks)\n if (searchQuery !== searchAPI.query) {\n searchAPI.setQuery(searchQuery);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery]);\n\n return (\n <Page\n meta={{\n title: searchQuery || \"Search\",\n description: searchQuery\n ? `${results.length} results for ${searchQuery} at Construct Hub`\n : \"Search reusable components for your cloud application\",\n }}\n pageName=\"search\"\n >\n <Flex direction=\"column\" maxW=\"100vw\">\n <Box p={4}>\n <CatalogSearch {...searchAPI} />\n </Box>\n <Divider />\n <Box p={4}>\n <Flex align=\"center\" justify=\"space-between\" pb={4} wrap=\"wrap\">\n <ShowingDetails\n count={results.length}\n filtered={!!searchQuery}\n limit={LIMIT}\n offset={offset}\n />\n </Flex>\n <Results\n language={languageQuery ?? undefined}\n results={displayable}\n skeleton={{ loading, noOfItems: LIMIT }}\n />\n <PageControls\n getPageUrl={getUrl}\n limit={LIMIT}\n offset={offset}\n pageLimit={pageLimit}\n />\n </Box>\n </Flex>\n </Page>\n );\n};\n"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- /*! For license information please see 11.7a407d94.chunk.js.LICENSE.txt */
2
- (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[11],{298:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var i=r(76),n=Object(i.a)({d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z",displayName:"ChevronRightIcon"})},351:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var i=r(76),n=Object(i.a)({d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z",displayName:"ArrowForwardIcon"})},352:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var i=r(76),n=Object(i.a)({d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z",displayName:"ChevronLeftIcon"})},576:function(e,t,r){var i,n;!function(){var s,o=function e(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};o.version="2.3.9",(o.utils={}).warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),o.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},o.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var n=r[i],s=e[n];if(Array.isArray(s))t[n]=s.slice();else{if("string"!==typeof s&&"number"!==typeof s&&"boolean"!==typeof s)throw new TypeError("clone is not deep and does not support nested objects");t[n]=s}}return t},(o.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r}).joiner="/",o.FieldRef.fromString=function(e){var t=e.indexOf(o.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var r=e.slice(0,t),i=e.slice(t+1);return new o.FieldRef(i,r,e)},o.FieldRef.prototype.toString=function(){return void 0==this._stringValue&&(this._stringValue=this.fieldName+o.FieldRef.joiner+this.docRef),this._stringValue},(o.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0}).complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},o.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},o.Set.prototype.contains=function(e){return!!this.elements[e]},o.Set.prototype.intersect=function(e){var t,r,i,n=[];if(e===o.Set.complete)return this;if(e===o.Set.empty)return e;this.length<e.length?(t=this,r=e):(t=e,r=this),i=Object.keys(t.elements);for(var s=0;s<i.length;s++){var a=i[s];a in r.elements&&n.push(a)}return new o.Set(n)},o.Set.prototype.union=function(e){return e===o.Set.complete?o.Set.complete:e===o.Set.empty?this:new o.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},o.idf=function(e,t){var r=0;for(var i in e)"_index"!=i&&(r+=Object.keys(e[i]).length);var n=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(n))},(o.Token=function(e,t){this.str=e||"",this.metadata=t||{}}).prototype.toString=function(){return this.str},o.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},o.Token.prototype.clone=function(e){return new o.Token((e=e||function(e){return e})(this.str,this.metadata),this.metadata)},(o.tokenizer=function(e,t){if(null==e||void 0==e)return[];if(Array.isArray(e))return e.map((function(e){return new o.Token(o.utils.asString(e).toLowerCase(),o.utils.clone(t))}));for(var r=e.toString().toLowerCase(),i=r.length,n=[],s=0,a=0;s<=i;s++){var u=s-a;if(r.charAt(s).match(o.tokenizer.separator)||s==i){if(u>0){var l=o.utils.clone(t)||{};l.position=[a,u],l.index=n.length,n.push(new o.Token(r.slice(a,s),l))}a=s+1}}return n}).separator=/[\s\-]+/,(o.Pipeline=function(){this._stack=[]}).registeredFunctions=Object.create(null),o.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&o.utils.warn("Overwriting existing registered function: "+t),e.label=t,o.Pipeline.registeredFunctions[e.label]=e},o.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||o.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},o.Pipeline.load=function(e){var t=new o.Pipeline;return e.forEach((function(e){var r=o.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},o.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){o.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},o.Pipeline.prototype.after=function(e,t){o.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},o.Pipeline.prototype.before=function(e,t){o.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},o.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},o.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r<t;r++){for(var i=this._stack[r],n=[],s=0;s<e.length;s++){var o=i(e[s],s,e);if(null!==o&&void 0!==o&&""!==o)if(Array.isArray(o))for(var a=0;a<o.length;a++)n.push(o[a]);else n.push(o)}e=n}return e},o.Pipeline.prototype.runString=function(e,t){var r=new o.Token(e,t);return this.run([r]).map((function(e){return e.toString()}))},o.Pipeline.prototype.reset=function(){this._stack=[]},o.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return o.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},(o.Vector=function(e){this._magnitude=0,this.elements=e||[]}).prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements[2*n];i>1&&(s<e&&(t=n),s>e&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e||s>e?2*n:s<e?2*(n+1):void 0},o.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},o.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],t):this.elements.splice(i,0,e,t)},o.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;r<t;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},o.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,l=0;u<n&&l<s;)(o=r[u])<(a=i[l])?u+=2:o>a?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},o.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},o.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t<this.elements.length;t+=2,r++)e[r]=this.elements[t];return e},o.Vector.prototype.toJSON=function(){return this.elements},o.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[aeiouy]",i="[^aeiou][^aeiouy]*",n=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),s=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),o=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),a=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),u=/^(.+?)(ss|i)es$/,l=/^(.+?)([^s])s$/,c=/^(.+?)eed$/,h=/^(.+?)(ed|ing)$/,d=/.$/,f=/(at|bl|iz)$/,p=new RegExp("([^aeiouylsz])\\1$"),y=new RegExp("^"+i+r+"[^aeiouwxy]$"),m=/^(.+?[^aeiou])y$/,g=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,v=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,x=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,w=/^(.+?)(s|t)(ion)$/,Q=/^(.+?)e$/,k=/ll$/,S=new RegExp("^"+i+r+"[^aeiouwxy]$"),L=function(r){var i,L,E,b,P,T,O;if(r.length<3)return r;if("y"==(E=r.substr(0,1))&&(r=E.toUpperCase()+r.substr(1)),P=l,(b=u).test(r)?r=r.replace(b,"$1$2"):P.test(r)&&(r=r.replace(P,"$1$2")),P=h,(b=c).test(r)){var I=b.exec(r);(b=n).test(I[1])&&(b=d,r=r.replace(b,""))}else if(P.test(r)){i=(I=P.exec(r))[1],(P=a).test(i)&&(T=p,O=y,(P=f).test(r=i)?r+="e":T.test(r)?(b=d,r=r.replace(b,"")):O.test(r)&&(r+="e"))}(b=m).test(r)&&(r=(i=(I=b.exec(r))[1])+"i");(b=g).test(r)&&(i=(I=b.exec(r))[1],L=I[2],(b=n).test(i)&&(r=i+e[L]));(b=v).test(r)&&(i=(I=b.exec(r))[1],L=I[2],(b=n).test(i)&&(r=i+t[L]));if(P=w,(b=x).test(r))i=(I=b.exec(r))[1],(b=s).test(i)&&(r=i);else if(P.test(r)){i=(I=P.exec(r))[1]+I[2],(P=s).test(i)&&(r=i)}(b=Q).test(r)&&(i=(I=b.exec(r))[1],P=o,T=S,((b=s).test(i)||P.test(i)&&!T.test(i))&&(r=i));return P=s,(b=k).test(r)&&P.test(r)&&(b=d,r=r.replace(b,"")),"y"==E&&(r=E.toLowerCase()+r.substr(1)),r};return function(e){return e.update(L)}}(),o.Pipeline.registerFunction(o.stemmer,"stemmer"),o.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},o.stopWordFilter=o.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),o.Pipeline.registerFunction(o.stopWordFilter,"stopWordFilter"),o.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},o.Pipeline.registerFunction(o.trimmer,"trimmer"),(o.TokenSet=function(){this.final=!1,this.edges={},this.id=o.TokenSet._nextId,o.TokenSet._nextId+=1})._nextId=1,o.TokenSet.fromArray=function(e){for(var t=new o.TokenSet.Builder,r=0,i=e.length;r<i;r++)t.insert(e[r]);return t.finish(),t.root},o.TokenSet.fromClause=function(e){return"editDistance"in e?o.TokenSet.fromFuzzyString(e.term,e.editDistance):o.TokenSet.fromString(e.term)},o.TokenSet.fromFuzzyString=function(e,t){for(var r=new o.TokenSet,i=[{node:r,editsRemaining:t,str:e}];i.length;){var n=i.pop();if(n.str.length>0){var s,a=n.str.charAt(0);a in n.node.edges?s=n.node.edges[a]:(s=new o.TokenSet,n.node.edges[a]=s),1==n.str.length&&(s.final=!0),i.push({node:s,editsRemaining:n.editsRemaining,str:n.str.slice(1)})}if(0!=n.editsRemaining){if("*"in n.node.edges)var u=n.node.edges["*"];else{u=new o.TokenSet;n.node.edges["*"]=u}if(0==n.str.length&&(u.final=!0),i.push({node:u,editsRemaining:n.editsRemaining-1,str:n.str}),n.str.length>1&&i.push({node:n.node,editsRemaining:n.editsRemaining-1,str:n.str.slice(1)}),1==n.str.length&&(n.node.final=!0),n.str.length>=1){if("*"in n.node.edges)var l=n.node.edges["*"];else{l=new o.TokenSet;n.node.edges["*"]=l}1==n.str.length&&(l.final=!0),i.push({node:l,editsRemaining:n.editsRemaining-1,str:n.str.slice(1)})}if(n.str.length>1){var c,h=n.str.charAt(0),d=n.str.charAt(1);d in n.node.edges?c=n.node.edges[d]:(c=new o.TokenSet,n.node.edges[d]=c),1==n.str.length&&(c.final=!0),i.push({node:c,editsRemaining:n.editsRemaining-1,str:h+n.str.slice(2)})}}}return r},o.TokenSet.fromString=function(e){for(var t=new o.TokenSet,r=t,i=0,n=e.length;i<n;i++){var s=e[i],a=i==n-1;if("*"==s)t.edges[s]=t,t.final=a;else{var u=new o.TokenSet;u.final=a,t.edges[s]=u,t=u}}return r},o.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var s=0;s<n;s++){var o=i[s];t.push({prefix:r.prefix.concat(o),node:r.node.edges[o]})}}return e},o.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),r=t.length,i=0;i<r;i++){var n=t[i];e=e+n+this.edges[n].id}return e},o.TokenSet.prototype.intersect=function(e){for(var t=new o.TokenSet,r=void 0,i=[{qNode:e,output:t,node:this}];i.length;){r=i.pop();for(var n=Object.keys(r.qNode.edges),s=n.length,a=Object.keys(r.node.edges),u=a.length,l=0;l<s;l++)for(var c=n[l],h=0;h<u;h++){var d=a[h];if(d==c||"*"==c){var f=r.node.edges[d],p=r.qNode.edges[c],y=f.final&&p.final,m=void 0;d in r.output.edges?(m=r.output.edges[d]).final=m.final||y:((m=new o.TokenSet).final=y,r.output.edges[d]=m),i.push({qNode:p,output:m,node:f})}}}return t},o.TokenSet.Builder=function(){this.previousWord="",this.root=new o.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},o.TokenSet.Builder.prototype.insert=function(e){var t,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(i=r;i<e.length;i++){var n=new o.TokenSet,s=e[i];t.edges[s]=n,this.uncheckedNodes.push({parent:t,char:s,child:n}),t=n}t.final=!0,this.previousWord=e},o.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},o.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},(o.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline}).prototype.search=function(e){return this.query((function(t){new o.QueryParser(e,t).parse()}))},o.Index.prototype.query=function(e){for(var t=new o.Query(this.fields),r=Object.create(null),i=Object.create(null),n=Object.create(null),s=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)i[this.fields[u]]=new o.Vector;e.call(t,t);for(u=0;u<t.clauses.length;u++){var l=t.clauses[u],c=null,h=o.Set.empty;c=l.usePipeline?this.pipeline.runString(l.term,{fields:l.fields}):[l.term];for(var d=0;d<c.length;d++){var f=c[d];l.term=f;var p=o.TokenSet.fromClause(l),y=this.tokenSet.intersect(p).toArray();if(0===y.length&&l.presence===o.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){s[F=l.fields[m]]=o.Set.empty}break}for(var g=0;g<y.length;g++){var v=y[g],x=this.invertedIndex[v],w=x._index;for(m=0;m<l.fields.length;m++){var Q=x[F=l.fields[m]],k=Object.keys(Q),S=v+"/"+F,L=new o.Set(k);if(l.presence==o.Query.presence.REQUIRED&&(h=h.union(L),void 0===s[F]&&(s[F]=o.Set.complete)),l.presence!=o.Query.presence.PROHIBITED){if(i[F].upsert(w,l.boost,(function(e,t){return e+t})),!n[S]){for(var E=0;E<k.length;E++){var b,P=k[E],T=new o.FieldRef(P,F),O=Q[P];void 0===(b=r[T])?r[T]=new o.MatchData(v,F,O):b.add(v,F,O)}n[S]=!0}}else void 0===a[F]&&(a[F]=o.Set.empty),a[F]=a[F].union(L)}}}if(l.presence===o.Query.presence.REQUIRED)for(m=0;m<l.fields.length;m++){s[F=l.fields[m]]=s[F].intersect(h)}}var I=o.Set.complete,R=o.Set.empty;for(u=0;u<this.fields.length;u++){var F;s[F=this.fields[u]]&&(I=I.intersect(s[F])),a[F]&&(R=R.union(a[F]))}var C=Object.keys(r),N=[],j=Object.create(null);if(t.isNegated()){C=Object.keys(this.fieldVectors);for(u=0;u<C.length;u++){T=C[u];var _=o.FieldRef.fromString(T);r[T]=new o.MatchData}}for(u=0;u<C.length;u++){var D=(_=o.FieldRef.fromString(C[u])).docRef;if(I.contains(D)&&!R.contains(D)){var A,B=this.fieldVectors[_],z=i[_.fieldName].similarity(B);if(void 0!==(A=j[D]))A.score+=z,A.matchData.combine(r[_]);else{var V={ref:D,score:z,matchData:r[_]};j[D]=V,N.push(V)}}}return N.sort((function(e,t){return t.score-e.score}))},o.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:o.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},o.Index.load=function(e){var t={},r={},i=e.fieldVectors,n=Object.create(null),s=e.invertedIndex,a=new o.TokenSet.Builder,u=o.Pipeline.load(e.pipeline);e.version!=o.version&&o.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+o.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var c=(d=i[l])[0],h=d[1];r[c]=new o.Vector(h)}for(l=0;l<s.length;l++){var d,f=(d=s[l])[0],p=d[1];a.insert(f),n[f]=p}return a.finish(),t.fields=e.fields,t.fieldVectors=r,t.invertedIndex=n,t.tokenSet=a.root,t.pipeline=u,new o.Index(t)},(o.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=o.tokenizer,this.pipeline=new o.Pipeline,this.searchPipeline=new o.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]}).prototype.ref=function(e){this._ref=e},o.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},o.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},o.Builder.prototype.k1=function(e){this._k1=e},o.Builder.prototype.add=function(e,t){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var n=0;n<i.length;n++){var s=i[n],a=this._fields[s].extractor,u=a?a(e):e[s],l=this.tokenizer(u,{fields:[s]}),c=this.pipeline.run(l),h=new o.FieldRef(r,s),d=Object.create(null);this.fieldTermFrequencies[h]=d,this.fieldLengths[h]=0,this.fieldLengths[h]+=c.length;for(var f=0;f<c.length;f++){var p=c[f];if(void 0==d[p]&&(d[p]=0),d[p]+=1,void 0==this.invertedIndex[p]){var y=Object.create(null);y._index=this.termIndex,this.termIndex+=1;for(var m=0;m<i.length;m++)y[i[m]]=Object.create(null);this.invertedIndex[p]=y}void 0==this.invertedIndex[p][s][r]&&(this.invertedIndex[p][s][r]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var v=this.metadataWhitelist[g],x=p.metadata[v];void 0==this.invertedIndex[p][s][r][v]&&(this.invertedIndex[p][s][r][v]=[]),this.invertedIndex[p][s][r][v].push(x)}}}},o.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,r={},i={},n=0;n<t;n++){var s=o.FieldRef.fromString(e[n]),a=s.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[s]}var u=Object.keys(this._fields);for(n=0;n<u.length;n++){var l=u[n];r[l]=r[l]/i[l]}this.averageFieldLength=r},o.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),r=t.length,i=Object.create(null),n=0;n<r;n++){for(var s=o.FieldRef.fromString(t[n]),a=s.fieldName,u=this.fieldLengths[s],l=new o.Vector,c=this.fieldTermFrequencies[s],h=Object.keys(c),d=h.length,f=this._fields[a].boost||1,p=this._documents[s.docRef].boost||1,y=0;y<d;y++){var m,g,v,x=h[y],w=c[x],Q=this.invertedIndex[x]._index;void 0===i[x]?(m=o.idf(this.invertedIndex[x],this.documentCount),i[x]=m):m=i[x],g=m*((this._k1+1)*w)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+w),g*=f,g*=p,v=Math.round(1e3*g)/1e3,l.insert(Q,v)}e[s]=l}this.fieldVectors=e},o.Builder.prototype.createTokenSet=function(){this.tokenSet=o.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},o.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new o.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},o.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},(o.MatchData=function(e,t,r){for(var i=Object.create(null),n=Object.keys(r||{}),s=0;s<n.length;s++){var o=n[s];i[o]=r[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=i)}).prototype.combine=function(e){for(var t=Object.keys(e.metadata),r=0;r<t.length;r++){var i=t[r],n=Object.keys(e.metadata[i]);void 0==this.metadata[i]&&(this.metadata[i]=Object.create(null));for(var s=0;s<n.length;s++){var o=n[s],a=Object.keys(e.metadata[i][o]);void 0==this.metadata[i][o]&&(this.metadata[i][o]=Object.create(null));for(var u=0;u<a.length;u++){var l=a[u];void 0==this.metadata[i][o][l]?this.metadata[i][o][l]=e.metadata[i][o][l]:this.metadata[i][o][l]=this.metadata[i][o][l].concat(e.metadata[i][o][l])}}}},o.MatchData.prototype.add=function(e,t,r){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=r);if(t in this.metadata[e])for(var i=Object.keys(r),n=0;n<i.length;n++){var s=i[n];s in this.metadata[e][t]?this.metadata[e][t][s]=this.metadata[e][t][s].concat(r[s]):this.metadata[e][t][s]=r[s]}else this.metadata[e][t]=r},(o.Query=function(e){this.clauses=[],this.allFields=e}).wildcard=new String("*"),o.Query.wildcard.NONE=0,o.Query.wildcard.LEADING=1,o.Query.wildcard.TRAILING=2,o.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},o.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=o.Query.wildcard.NONE),e.wildcard&o.Query.wildcard.LEADING&&e.term.charAt(0)!=o.Query.wildcard&&(e.term="*"+e.term),e.wildcard&o.Query.wildcard.TRAILING&&e.term.slice(-1)!=o.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=o.Query.presence.OPTIONAL),this.clauses.push(e),this},o.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=o.Query.presence.PROHIBITED)return!1;return!0},o.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,o.utils.clone(t))}),this),this;var r=t||{};return r.term=e.toString(),this.clause(r),this},(o.QueryParseError=function(e,t,r){this.name="QueryParseError",this.message=e,this.start=t,this.end=r}).prototype=new Error,(o.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]}).prototype.run=function(){for(var e=o.QueryLexer.lexText;e;)e=e(this)},o.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(t,r)),t=r+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},o.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},o.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},o.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return o.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},o.QueryLexer.prototype.width=function(){return this.pos-this.start},o.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},o.QueryLexer.prototype.backup=function(){this.pos-=1},o.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=o.QueryLexer.EOS&&this.backup()},o.QueryLexer.prototype.more=function(){return this.pos<this.length},o.QueryLexer.EOS="EOS",o.QueryLexer.FIELD="FIELD",o.QueryLexer.TERM="TERM",o.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",o.QueryLexer.BOOST="BOOST",o.QueryLexer.PRESENCE="PRESENCE",o.QueryLexer.lexField=function(e){return e.backup(),e.emit(o.QueryLexer.FIELD),e.ignore(),o.QueryLexer.lexText},o.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(o.QueryLexer.TERM)),e.ignore(),e.more())return o.QueryLexer.lexText},o.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(o.QueryLexer.EDIT_DISTANCE),o.QueryLexer.lexText},o.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(o.QueryLexer.BOOST),o.QueryLexer.lexText},o.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(o.QueryLexer.TERM)},o.QueryLexer.termSeparator=o.tokenizer.separator,o.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==o.QueryLexer.EOS)return o.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return o.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(o.QueryLexer.TERM),o.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(o.QueryLexer.TERM),o.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(o.QueryLexer.PRESENCE),o.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(o.QueryLexer.PRESENCE),o.QueryLexer.lexText;if(t.match(o.QueryLexer.termSeparator))return o.QueryLexer.lexTerm}else e.escapeCharacter()}},(o.QueryParser=function(e,t){this.lexer=new o.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0}).prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=o.QueryParser.parseClause;e;)e=e(this);return this.query},o.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},o.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},o.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},o.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(void 0!=t)switch(t.type){case o.QueryLexer.PRESENCE:return o.QueryParser.parsePresence;case o.QueryLexer.FIELD:return o.QueryParser.parseField;case o.QueryLexer.TERM:return o.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new o.QueryParseError(r,t.start,t.end)}},o.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(void 0!=t){switch(t.str){case"-":e.currentClause.presence=o.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=o.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new o.QueryParseError(r,t.start,t.end)}var i=e.peekLexeme();if(void 0==i)throw new o.QueryParseError(r="expecting term or field, found nothing",t.start,t.end);switch(i.type){case o.QueryLexer.FIELD:return o.QueryParser.parseField;case o.QueryLexer.TERM:return o.QueryParser.parseTerm;default:r="expecting term or field, found '"+i.type+"'";throw new o.QueryParseError(r,i.start,i.end)}}},o.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(void 0!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+r;throw new o.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var n=e.peekLexeme();if(void 0==n)throw new o.QueryParseError(i="expecting term, found nothing",t.start,t.end);if(n.type===o.QueryLexer.TERM)return o.QueryParser.parseTerm;i="expecting term, found '"+n.type+"'";throw new o.QueryParseError(i,n.start,n.end)}},o.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(void 0!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(void 0!=r)switch(r.type){case o.QueryLexer.TERM:return e.nextClause(),o.QueryParser.parseTerm;case o.QueryLexer.FIELD:return e.nextClause(),o.QueryParser.parseField;case o.QueryLexer.EDIT_DISTANCE:return o.QueryParser.parseEditDistance;case o.QueryLexer.BOOST:return o.QueryParser.parseBoost;case o.QueryLexer.PRESENCE:return e.nextClause(),o.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new o.QueryParseError(i,r.start,r.end)}else e.nextClause()}},o.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(void 0!=t){var r=parseInt(t.str,10);if(isNaN(r))throw new o.QueryParseError(n="edit distance must be numeric",t.start,t.end);e.currentClause.editDistance=r;var i=e.peekLexeme();if(void 0!=i)switch(i.type){case o.QueryLexer.TERM:return e.nextClause(),o.QueryParser.parseTerm;case o.QueryLexer.FIELD:return e.nextClause(),o.QueryParser.parseField;case o.QueryLexer.EDIT_DISTANCE:return o.QueryParser.parseEditDistance;case o.QueryLexer.BOOST:return o.QueryParser.parseBoost;case o.QueryLexer.PRESENCE:return e.nextClause(),o.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new o.QueryParseError(n,i.start,i.end)}else e.nextClause()}},o.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(void 0!=t){var r=parseInt(t.str,10);if(isNaN(r))throw new o.QueryParseError(n="boost must be numeric",t.start,t.end);e.currentClause.boost=r;var i=e.peekLexeme();if(void 0!=i)switch(i.type){case o.QueryLexer.TERM:return e.nextClause(),o.QueryParser.parseTerm;case o.QueryLexer.FIELD:return e.nextClause(),o.QueryParser.parseField;case o.QueryLexer.EDIT_DISTANCE:return o.QueryParser.parseEditDistance;case o.QueryLexer.BOOST:return o.QueryParser.parseBoost;case o.QueryLexer.PRESENCE:return e.nextClause(),o.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new o.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(n="function"===typeof(i=function(){return o})?i.call(t,r,t,e):i)||(e.exports=n)}()}}]);
3
- //# sourceMappingURL=11.7a407d94.chunk.js.map
@@ -1,61 +0,0 @@
1
- /*!
2
- * lunr.Builder
3
- * Copyright (C) 2020 Oliver Nightingale
4
- */
5
-
6
- /*!
7
- * lunr.Index
8
- * Copyright (C) 2020 Oliver Nightingale
9
- */
10
-
11
- /*!
12
- * lunr.Pipeline
13
- * Copyright (C) 2020 Oliver Nightingale
14
- */
15
-
16
- /*!
17
- * lunr.Set
18
- * Copyright (C) 2020 Oliver Nightingale
19
- */
20
-
21
- /*!
22
- * lunr.TokenSet
23
- * Copyright (C) 2020 Oliver Nightingale
24
- */
25
-
26
- /*!
27
- * lunr.Vector
28
- * Copyright (C) 2020 Oliver Nightingale
29
- */
30
-
31
- /*!
32
- * lunr.stemmer
33
- * Copyright (C) 2020 Oliver Nightingale
34
- * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
35
- */
36
-
37
- /*!
38
- * lunr.stopWordFilter
39
- * Copyright (C) 2020 Oliver Nightingale
40
- */
41
-
42
- /*!
43
- * lunr.tokenizer
44
- * Copyright (C) 2020 Oliver Nightingale
45
- */
46
-
47
- /*!
48
- * lunr.trimmer
49
- * Copyright (C) 2020 Oliver Nightingale
50
- */
51
-
52
- /*!
53
- * lunr.utils
54
- * Copyright (C) 2020 Oliver Nightingale
55
- */
56
-
57
- /**
58
- * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
59
- * Copyright (C) 2020 Oliver Nightingale
60
- * @license MIT
61
- */