codeforlife 2.10.1 → 2.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Countdown-ZA68a09m.js → Countdown-BTyB1rrK.js} +3 -3
- package/dist/{Countdown-ZA68a09m.js.map → Countdown-BTyB1rrK.js.map} +1 -1
- package/dist/{Countdown-7-Mzftzr.cjs → Countdown-CyJ-01oU.cjs} +2 -2
- package/dist/{Countdown-7-Mzftzr.cjs.map → Countdown-CyJ-01oU.cjs.map} +1 -1
- package/dist/{Image-KHEjEELP.js → Image-C-f2ChBh.js} +2 -2
- package/dist/{Image-KHEjEELP.js.map → Image-C-f2ChBh.js.map} +1 -1
- package/dist/{Image-mgT45r_B.cjs → Image-CgYjq-tA.cjs} +2 -2
- package/dist/{Image-mgT45r_B.cjs.map → Image-CgYjq-tA.cjs.map} +1 -1
- package/dist/{LinkButton-cfljqSBx.cjs → LinkButton-BOPjG7_2.cjs} +2 -2
- package/dist/{LinkButton-cfljqSBx.cjs.map → LinkButton-BOPjG7_2.cjs.map} +1 -1
- package/dist/{LinkButton-Do07PnhU.js → LinkButton-Bk50AHHg.js} +3 -3
- package/dist/{LinkButton-Do07PnhU.js.map → LinkButton-Bk50AHHg.js.map} +1 -1
- package/dist/{Navigate-Cu8Ge031.cjs → Navigate-C_sgy8Xs.cjs} +2 -2
- package/dist/{Navigate-Cu8Ge031.cjs.map → Navigate-C_sgy8Xs.cjs.map} +1 -1
- package/dist/{Navigate-DC6ag0th.js → Navigate-SL_oMjPc.js} +3 -3
- package/dist/{Navigate-DC6ag0th.js.map → Navigate-SL_oMjPc.js.map} +1 -1
- package/dist/api/endpoints/index.cjs.js +1 -1
- package/dist/api/endpoints/index.es.js +2 -2
- package/dist/api/index.cjs.js +1 -1
- package/dist/api/index.es.js +3 -3
- package/dist/{api-CYqNqtN9.js → api-BvUiTeR7.js} +2 -2
- package/dist/{api-CYqNqtN9.js.map → api-BvUiTeR7.js.map} +1 -1
- package/dist/{api-CnMfjRk3.cjs → api-CaeeoZaI.cjs} +2 -2
- package/dist/{api-CnMfjRk3.cjs.map → api-CaeeoZaI.cjs.map} +1 -1
- package/dist/{auth-C_aSIrwD.cjs → auth-B7Vdot4N.cjs} +2 -2
- package/dist/{auth-C_aSIrwD.cjs.map → auth-B7Vdot4N.cjs.map} +1 -1
- package/dist/{auth-CvJ5Mh6y.js → auth-CQ1InCxP.js} +4 -4
- package/dist/{auth-CvJ5Mh6y.js.map → auth-CQ1InCxP.js.map} +1 -1
- package/dist/components/form/index.cjs.js +1 -1
- package/dist/components/form/index.es.js +1 -1
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.es.js +11 -11
- package/dist/components/page/index.cjs.js +1 -1
- package/dist/components/page/index.es.js +1 -1
- package/dist/components/router/index.cjs.js +1 -1
- package/dist/components/router/index.es.js +2 -2
- package/dist/components/table/index.cjs.js +1 -1
- package/dist/components/table/index.es.js +1 -1
- package/dist/features/index.cjs.js +1 -1
- package/dist/features/index.es.js +6 -6
- package/dist/hooks/index.cjs.js +1 -1
- package/dist/hooks/index.es.js +1 -1
- package/dist/{index-CA-ugBSa.cjs → index-B6aNVvMr.cjs} +2 -2
- package/dist/{index-CA-ugBSa.cjs.map → index-B6aNVvMr.cjs.map} +1 -1
- package/dist/{index-DuVBQMst.js → index-C-3iPCa4.js} +5 -5
- package/dist/{index-DuVBQMst.js.map → index-C-3iPCa4.js.map} +1 -1
- package/dist/{index-DsVpb45W.cjs → index-CBPn0wyX.cjs} +2 -2
- package/dist/{index-DsVpb45W.cjs.map → index-CBPn0wyX.cjs.map} +1 -1
- package/dist/{index-BUMdUVBH.cjs → index-CIj5ef8a.cjs} +2 -2
- package/dist/{index-BUMdUVBH.cjs.map → index-CIj5ef8a.cjs.map} +1 -1
- package/dist/{index-DlQc68Q4.js → index-DcmDxIXA.js} +5 -5
- package/dist/{index-DlQc68Q4.js.map → index-DcmDxIXA.js.map} +1 -1
- package/dist/{index-B3cd2A-G.js → index-Dfo744Sb.js} +2 -2
- package/dist/{index-B3cd2A-G.js.map → index-Dfo744Sb.js.map} +1 -1
- package/dist/{index-Brh3Kbv6.js → index-VverRavP.js} +2 -2
- package/dist/{index-Brh3Kbv6.js.map → index-VverRavP.js.map} +1 -1
- package/dist/{index-DZ7ETsOg.cjs → index-ifedknoZ.cjs} +2 -2
- package/dist/{index-DZ7ETsOg.cjs.map → index-ifedknoZ.cjs.map} +1 -1
- package/dist/jsx-runtime-C7wFtzyj.js +285 -0
- package/dist/jsx-runtime-C7wFtzyj.js.map +1 -0
- package/dist/jsx-runtime-Dszzpdy0.cjs +23 -0
- package/dist/jsx-runtime-Dszzpdy0.cjs.map +1 -0
- package/dist/{schemas-BZbJpkD5.cjs → schemas-CpAWhNsP.cjs} +2 -2
- package/dist/{schemas-BZbJpkD5.cjs.map → schemas-CpAWhNsP.cjs.map} +1 -1
- package/dist/{schemas-CDXuSjyI.js → schemas-D3tO0rys.js} +2 -2
- package/dist/{schemas-CDXuSjyI.js.map → schemas-D3tO0rys.js.map} +1 -1
- package/dist/theme/components/index.cjs.js +1 -1
- package/dist/theme/components/index.es.js +1 -1
- package/dist/theme/index.cjs.js +1 -1
- package/dist/theme/index.es.js +2 -2
- package/dist/{urls-BY-za1bX.js → urls-5m9PgoEX.js} +2 -2
- package/dist/{urls-BY-za1bX.js.map → urls-5m9PgoEX.js.map} +1 -1
- package/dist/{urls-MaVXL_C2.cjs → urls-RtSTEZfW.cjs} +2 -2
- package/dist/{urls-MaVXL_C2.cjs.map → urls-RtSTEZfW.cjs.map} +1 -1
- package/dist/utils/api.cjs.js +1 -1
- package/dist/utils/api.es.js +2 -2
- package/dist/utils/router.cjs.js +1 -1
- package/dist/utils/router.es.js +2 -2
- package/dist/utils/test.cjs.js +250 -1
- package/dist/utils/test.cjs.js.map +1 -1
- package/dist/utils/test.es.js +25214 -39
- package/dist/utils/test.es.js.map +1 -1
- package/dist/utils/theme.cjs.js +1 -1
- package/dist/utils/theme.es.js +2 -2
- package/package.json +8 -8
- package/dist/jsx-runtime-CeSfJrVB.cjs +0 -31
- package/dist/jsx-runtime-CeSfJrVB.cjs.map +0 -1
- package/dist/jsx-runtime-XvoU0p7t.js +0 -634
- package/dist/jsx-runtime-XvoU0p7t.js.map +0 -1
- package/dist/setupTests.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-DsVpb45W.cjs","sources":["../src/components/page/Section.tsx","../src/components/page/Notification.tsx","../src/components/page/Page.tsx","../src/components/page/Banner.tsx","../src/components/page/TabBar.tsx"],"sourcesContent":["import {\n Box,\n type BoxProps,\n Container,\n type ContainerProps,\n} from \"@mui/material\"\nimport type { FC } from \"react\"\n\nexport interface SectionProps extends ContainerProps {\n boxProps?: Omit<BoxProps, \"children\">\n}\n\nconst Section: FC<SectionProps> = ({ boxProps, ...containerProps }) => {\n return (\n <Box {...boxProps}>\n <Container {...containerProps} />\n </Box>\n )\n}\n\nexport default Section\n","import {\n CloseOutlined as CloseOutlinedIcon,\n ErrorOutline as ErrorOutlineIcon,\n InfoOutlined as InfoOutlinedIcon,\n} from \"@mui/icons-material\"\nimport { type FC, type ReactNode, useEffect, useState } from \"react\"\nimport { IconButton, Stack, Typography } from \"@mui/material\"\n\nimport Section from \"./Section\"\nimport palette from \"../../theme/palette\"\n\nexport interface NotificationProps {\n open?: boolean\n error?: boolean\n onClose?: () => void\n children: ReactNode\n bgcolor?: \"secondary\" | \"tertiary\"\n}\n\nconst Notification: FC<NotificationProps> = ({\n open = true,\n error = false,\n onClose,\n children,\n bgcolor = \"secondary\",\n}) => {\n const [_open, _setOpen] = useState(open)\n\n useEffect(() => {\n _setOpen(open)\n }, [open])\n\n if (!_open) return <></>\n\n // @ts-expect-error guaranteed to be in palette\n const contrastText = palette[bgcolor].contrastText as string\n\n return (\n <Section\n boxProps={{\n bgcolor: {\n secondary: \"#ffd23b\",\n tertiary: \"#08bafc\",\n }[bgcolor],\n }}\n sx={{ paddingY: \"5px\" }}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={2}>\n {error ? (\n <ErrorOutlineIcon htmlColor={contrastText} />\n ) : (\n <InfoOutlinedIcon htmlColor={contrastText} />\n )}\n <Typography variant=\"body2\" color={contrastText} mb={0}>\n {children}\n </Typography>\n <IconButton\n style={{ marginLeft: \"auto\" }}\n onClick={() => {\n _setOpen(false)\n if (onClose !== undefined) onClose()\n }}\n >\n <CloseOutlinedIcon htmlColor={contrastText} />\n </IconButton>\n </Stack>\n </Section>\n )\n}\n\nexport default Notification\n","import { Children, type JSX, useEffect } from \"react\"\nimport { type Location, useLocation } from \"react-router\"\n\nimport Notification, { type NotificationProps } from \"./Notification\"\nimport {\n type SessionMetadata,\n type UseSessionChildren,\n type UseSessionChildrenFunction,\n type UseSessionOptions,\n useSession,\n} from \"../../hooks/auth\"\n\nexport type PageState = {\n notifications: Array<{\n index?: number\n props: NotificationProps\n }>\n scroll: { x: number; y: number }\n}\n\nexport interface PageProps<\n SessionUserType extends SessionMetadata[\"user_type\"] | undefined,\n> {\n children: UseSessionChildren<SessionUserType>\n session?: UseSessionOptions<SessionUserType>\n}\n\nconst Page = <\n SessionUserType extends SessionMetadata[\"user_type\"] | undefined = undefined,\n>({\n children,\n session,\n}: PageProps<SessionUserType>): JSX.Element => {\n const { state } = useLocation() as Location<null | Partial<PageState>>\n\n let { scroll, notifications } = state || {}\n scroll = scroll || { x: 0, y: 0 }\n notifications = notifications || []\n\n useEffect(() => {\n window.scroll(scroll.x, scroll.y)\n }, [scroll.x, scroll.y])\n\n return (\n <>\n {useSession((metadata?: SessionMetadata) => {\n if (typeof children === \"function\") {\n children = metadata\n ? (children as UseSessionChildrenFunction<true>)(metadata)\n : (children as UseSessionChildrenFunction<false>)(metadata)\n }\n\n if (notifications.length) {\n const childrenArray = Children.toArray(children)\n\n notifications.forEach((notification, index) => {\n void childrenArray.splice(\n notification.index ?? index,\n 0,\n <Notification {...notification.props} />,\n )\n })\n\n return childrenArray\n }\n\n return children\n }, session)}\n </>\n )\n}\n\nexport default Page\n","import { Stack, Typography } from \"@mui/material\"\n\nimport Image, { type ImageProps } from \"../Image\"\nimport { LinkButton, type LinkButtonProps } from \"../router\"\nimport { primary, secondary, tertiary } from \"../../theme/colors\"\nimport Section from \"./Section\"\nimport palette from \"../../theme/palette\"\n\nexport interface BannerProps<\n Button1State extends Record<string, any> = Record<string, any>,\n Button2State extends Record<string, any> = Record<string, any>,\n> {\n header: string\n subheader?: string\n textAlign?: \"start\" | \"center\"\n imageProps?: ImageProps\n button1Props?: LinkButtonProps<\"to\", Button1State>\n button2Props?: LinkButtonProps<\"to\", Button2State>\n bgcolor?: \"primary\" | \"secondary\" | \"tertiary\"\n}\n\nconst Banner = <\n Button1State extends Record<string, any> = Record<string, any>,\n Button2State extends Record<string, any> = Record<string, any>,\n>({\n header,\n subheader,\n textAlign = \"start\",\n imageProps,\n button1Props,\n button2Props,\n bgcolor = \"primary\",\n}: BannerProps<Button1State, Button2State>) => {\n // @ts-expect-error guaranteed to be in palette\n const contrastText = palette[bgcolor].contrastText as string\n\n return (\n <Section\n boxProps={{\n bgcolor: {\n primary: primary[500],\n secondary: secondary[500],\n tertiary: tertiary[500],\n }[bgcolor],\n }}\n sx={{ paddingY: 0 }}\n >\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent={textAlign}\n gap={2}\n >\n <Stack\n py={{\n xs: \"80px\",\n md: imageProps !== undefined ? 0 : \"100px\",\n }}\n textAlign={textAlign}\n >\n <Typography\n variant=\"h2\"\n color={contrastText}\n mb={subheader !== undefined ? undefined : 0}\n >\n {header}\n </Typography>\n {subheader !== undefined && (\n <Typography\n color={contrastText}\n variant=\"h4\"\n mb={button1Props !== undefined ? undefined : 0}\n >\n {subheader}\n </Typography>\n )}\n <Stack direction=\"row\" gap={2}>\n {button1Props !== undefined && <LinkButton {...button1Props} />}\n {button2Props !== undefined && <LinkButton {...button2Props} />}\n </Stack>\n </Stack>\n {imageProps !== undefined && (\n <Image\n {...imageProps}\n display={{ xs: \"none\", md: \"block\" }}\n maxWidth=\"320px\"\n marginLeft=\"auto\"\n />\n )}\n </Stack>\n </Section>\n )\n}\n\nexport default Banner\n","import {\n ChevronLeft as ChevronLeftIcon,\n ChevronRight as ChevronRightIcon,\n} from \"@mui/icons-material\"\nimport { type FC, type ReactNode, useEffect, useState } from \"react\"\nimport {\n IconButton,\n Tab,\n type TabScrollButtonProps,\n Tabs,\n Typography,\n} from \"@mui/material\"\nimport { object as YupObject, string as YupString } from \"yup\"\nimport { generatePath, useNavigate, useParams } from \"react-router\"\n\nimport Section from \"./Section\"\nimport { primary } from \"../../theme/colors\"\nimport { tryValidateSync } from \"../../utils/schema\"\n\nexport interface TabBarProps {\n header: string\n tabs: Array<{\n label: string\n children: ReactNode\n path: string\n }>\n originalPath: string\n value?: number\n}\n\nconst TabBar: FC<TabBarProps> = ({ header, tabs, originalPath, value = 0 }) => {\n const params = useParams()\n const navigate = useNavigate()\n const [_value, _setValue] = useState(\n value < 0 ? 0 : value >= tabs.length ? tabs.length - 1 : value,\n )\n\n const labels = tabs.map(tab => tab.label)\n const children = tabs.map(tab => tab.children)\n const paths = tabs.map(tab => tab.path)\n\n useEffect(() => {\n _setValue(value)\n }, [value])\n\n useEffect(() => {\n const tab = tryValidateSync(\n params,\n YupObject({\n tab: YupString().oneOf(paths).required(),\n }),\n )?.tab\n\n if (tab !== undefined) {\n _setValue(paths.indexOf(tab))\n }\n }, [params, paths])\n\n return (\n <>\n <Section\n boxProps={{ bgcolor: primary[500] }}\n sx={{ paddingY: \"100px\" }}\n className=\"flex-center\"\n >\n <Typography\n textAlign=\"center\"\n variant=\"h2\"\n style={{ color: \"white\" }}\n mb={0}\n >\n {header}\n </Typography>\n </Section>\n <Section\n boxProps={{ bgcolor: primary[300] }}\n sx={{ paddingY: \"6px\" }}\n className=\"flex-center\"\n >\n <Tabs\n value={_value}\n onChange={(_, value: number) => {\n void navigate(\n generatePath(originalPath, {\n tab: paths[value],\n }),\n )\n }}\n ScrollButtonComponent={({\n disabled,\n onClick,\n direction,\n }: TabScrollButtonProps) => {\n return (\n <>\n {disabled === false && (\n <IconButton\n onClick={onClick}\n style={{\n padding: 0,\n [direction === \"left\" ? \"marginRight\" : \"marginLeft\"]:\n \"15px\",\n color: \"white\",\n }}\n >\n {direction === \"left\" ? (\n <>\n <ChevronLeftIcon />\n </>\n ) : (\n <>\n <ChevronRightIcon />\n </>\n )}\n </IconButton>\n )}\n </>\n )\n }}\n >\n {labels.map(label => (\n <Tab disableRipple key={label} label={label} />\n ))}\n </Tabs>\n </Section>\n {children[_value]}\n </>\n )\n}\n\nexport default TabBar\n"],"names":["Section","boxProps","containerProps","jsx","Box","Container","Notification","open","error","onClose","children","bgcolor","_open","_setOpen","useState","useEffect","Fragment","contrastText","palette","Stack","ErrorOutlineIcon","InfoOutlinedIcon","Typography","IconButton","CloseOutlinedIcon","Page","session","state","useLocation","scroll","notifications","useSession","metadata","childrenArray","Children","notification","index","Banner","header","subheader","textAlign","imageProps","button1Props","button2Props","primary","secondary","tertiary","jsxs","LinkButton","Image","TabBar","tabs","originalPath","value","params","useParams","navigate","useNavigate","_value","_setValue","labels","tab","paths","tryValidateSync","YupObject","YupString","Tabs","_","generatePath","disabled","onClick","direction","ChevronLeftIcon","ChevronRightIcon","label","Tab"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-CBPn0wyX.cjs","sources":["../src/components/page/Section.tsx","../src/components/page/Notification.tsx","../src/components/page/Page.tsx","../src/components/page/Banner.tsx","../src/components/page/TabBar.tsx"],"sourcesContent":["import {\n Box,\n type BoxProps,\n Container,\n type ContainerProps,\n} from \"@mui/material\"\nimport type { FC } from \"react\"\n\nexport interface SectionProps extends ContainerProps {\n boxProps?: Omit<BoxProps, \"children\">\n}\n\nconst Section: FC<SectionProps> = ({ boxProps, ...containerProps }) => {\n return (\n <Box {...boxProps}>\n <Container {...containerProps} />\n </Box>\n )\n}\n\nexport default Section\n","import {\n CloseOutlined as CloseOutlinedIcon,\n ErrorOutline as ErrorOutlineIcon,\n InfoOutlined as InfoOutlinedIcon,\n} from \"@mui/icons-material\"\nimport { type FC, type ReactNode, useEffect, useState } from \"react\"\nimport { IconButton, Stack, Typography } from \"@mui/material\"\n\nimport Section from \"./Section\"\nimport palette from \"../../theme/palette\"\n\nexport interface NotificationProps {\n open?: boolean\n error?: boolean\n onClose?: () => void\n children: ReactNode\n bgcolor?: \"secondary\" | \"tertiary\"\n}\n\nconst Notification: FC<NotificationProps> = ({\n open = true,\n error = false,\n onClose,\n children,\n bgcolor = \"secondary\",\n}) => {\n const [_open, _setOpen] = useState(open)\n\n useEffect(() => {\n _setOpen(open)\n }, [open])\n\n if (!_open) return <></>\n\n // @ts-expect-error guaranteed to be in palette\n const contrastText = palette[bgcolor].contrastText as string\n\n return (\n <Section\n boxProps={{\n bgcolor: {\n secondary: \"#ffd23b\",\n tertiary: \"#08bafc\",\n }[bgcolor],\n }}\n sx={{ paddingY: \"5px\" }}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={2}>\n {error ? (\n <ErrorOutlineIcon htmlColor={contrastText} />\n ) : (\n <InfoOutlinedIcon htmlColor={contrastText} />\n )}\n <Typography variant=\"body2\" color={contrastText} mb={0}>\n {children}\n </Typography>\n <IconButton\n style={{ marginLeft: \"auto\" }}\n onClick={() => {\n _setOpen(false)\n if (onClose !== undefined) onClose()\n }}\n >\n <CloseOutlinedIcon htmlColor={contrastText} />\n </IconButton>\n </Stack>\n </Section>\n )\n}\n\nexport default Notification\n","import { Children, type JSX, useEffect } from \"react\"\nimport { type Location, useLocation } from \"react-router\"\n\nimport Notification, { type NotificationProps } from \"./Notification\"\nimport {\n type SessionMetadata,\n type UseSessionChildren,\n type UseSessionChildrenFunction,\n type UseSessionOptions,\n useSession,\n} from \"../../hooks/auth\"\n\nexport type PageState = {\n notifications: Array<{\n index?: number\n props: NotificationProps\n }>\n scroll: { x: number; y: number }\n}\n\nexport interface PageProps<\n SessionUserType extends SessionMetadata[\"user_type\"] | undefined,\n> {\n children: UseSessionChildren<SessionUserType>\n session?: UseSessionOptions<SessionUserType>\n}\n\nconst Page = <\n SessionUserType extends SessionMetadata[\"user_type\"] | undefined = undefined,\n>({\n children,\n session,\n}: PageProps<SessionUserType>): JSX.Element => {\n const { state } = useLocation() as Location<null | Partial<PageState>>\n\n let { scroll, notifications } = state || {}\n scroll = scroll || { x: 0, y: 0 }\n notifications = notifications || []\n\n useEffect(() => {\n window.scroll(scroll.x, scroll.y)\n }, [scroll.x, scroll.y])\n\n return (\n <>\n {useSession((metadata?: SessionMetadata) => {\n if (typeof children === \"function\") {\n children = metadata\n ? (children as UseSessionChildrenFunction<true>)(metadata)\n : (children as UseSessionChildrenFunction<false>)(metadata)\n }\n\n if (notifications.length) {\n const childrenArray = Children.toArray(children)\n\n notifications.forEach((notification, index) => {\n void childrenArray.splice(\n notification.index ?? index,\n 0,\n <Notification {...notification.props} />,\n )\n })\n\n return childrenArray\n }\n\n return children\n }, session)}\n </>\n )\n}\n\nexport default Page\n","import { Stack, Typography } from \"@mui/material\"\n\nimport Image, { type ImageProps } from \"../Image\"\nimport { LinkButton, type LinkButtonProps } from \"../router\"\nimport { primary, secondary, tertiary } from \"../../theme/colors\"\nimport Section from \"./Section\"\nimport palette from \"../../theme/palette\"\n\nexport interface BannerProps<\n Button1State extends Record<string, any> = Record<string, any>,\n Button2State extends Record<string, any> = Record<string, any>,\n> {\n header: string\n subheader?: string\n textAlign?: \"start\" | \"center\"\n imageProps?: ImageProps\n button1Props?: LinkButtonProps<\"to\", Button1State>\n button2Props?: LinkButtonProps<\"to\", Button2State>\n bgcolor?: \"primary\" | \"secondary\" | \"tertiary\"\n}\n\nconst Banner = <\n Button1State extends Record<string, any> = Record<string, any>,\n Button2State extends Record<string, any> = Record<string, any>,\n>({\n header,\n subheader,\n textAlign = \"start\",\n imageProps,\n button1Props,\n button2Props,\n bgcolor = \"primary\",\n}: BannerProps<Button1State, Button2State>) => {\n // @ts-expect-error guaranteed to be in palette\n const contrastText = palette[bgcolor].contrastText as string\n\n return (\n <Section\n boxProps={{\n bgcolor: {\n primary: primary[500],\n secondary: secondary[500],\n tertiary: tertiary[500],\n }[bgcolor],\n }}\n sx={{ paddingY: 0 }}\n >\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent={textAlign}\n gap={2}\n >\n <Stack\n py={{\n xs: \"80px\",\n md: imageProps !== undefined ? 0 : \"100px\",\n }}\n textAlign={textAlign}\n >\n <Typography\n variant=\"h2\"\n color={contrastText}\n mb={subheader !== undefined ? undefined : 0}\n >\n {header}\n </Typography>\n {subheader !== undefined && (\n <Typography\n color={contrastText}\n variant=\"h4\"\n mb={button1Props !== undefined ? undefined : 0}\n >\n {subheader}\n </Typography>\n )}\n <Stack direction=\"row\" gap={2}>\n {button1Props !== undefined && <LinkButton {...button1Props} />}\n {button2Props !== undefined && <LinkButton {...button2Props} />}\n </Stack>\n </Stack>\n {imageProps !== undefined && (\n <Image\n {...imageProps}\n display={{ xs: \"none\", md: \"block\" }}\n maxWidth=\"320px\"\n marginLeft=\"auto\"\n />\n )}\n </Stack>\n </Section>\n )\n}\n\nexport default Banner\n","import {\n ChevronLeft as ChevronLeftIcon,\n ChevronRight as ChevronRightIcon,\n} from \"@mui/icons-material\"\nimport { type FC, type ReactNode, useEffect, useState } from \"react\"\nimport {\n IconButton,\n Tab,\n type TabScrollButtonProps,\n Tabs,\n Typography,\n} from \"@mui/material\"\nimport { object as YupObject, string as YupString } from \"yup\"\nimport { generatePath, useNavigate, useParams } from \"react-router\"\n\nimport Section from \"./Section\"\nimport { primary } from \"../../theme/colors\"\nimport { tryValidateSync } from \"../../utils/schema\"\n\nexport interface TabBarProps {\n header: string\n tabs: Array<{\n label: string\n children: ReactNode\n path: string\n }>\n originalPath: string\n value?: number\n}\n\nconst TabBar: FC<TabBarProps> = ({ header, tabs, originalPath, value = 0 }) => {\n const params = useParams()\n const navigate = useNavigate()\n const [_value, _setValue] = useState(\n value < 0 ? 0 : value >= tabs.length ? tabs.length - 1 : value,\n )\n\n const labels = tabs.map(tab => tab.label)\n const children = tabs.map(tab => tab.children)\n const paths = tabs.map(tab => tab.path)\n\n useEffect(() => {\n _setValue(value)\n }, [value])\n\n useEffect(() => {\n const tab = tryValidateSync(\n params,\n YupObject({\n tab: YupString().oneOf(paths).required(),\n }),\n )?.tab\n\n if (tab !== undefined) {\n _setValue(paths.indexOf(tab))\n }\n }, [params, paths])\n\n return (\n <>\n <Section\n boxProps={{ bgcolor: primary[500] }}\n sx={{ paddingY: \"100px\" }}\n className=\"flex-center\"\n >\n <Typography\n textAlign=\"center\"\n variant=\"h2\"\n style={{ color: \"white\" }}\n mb={0}\n >\n {header}\n </Typography>\n </Section>\n <Section\n boxProps={{ bgcolor: primary[300] }}\n sx={{ paddingY: \"6px\" }}\n className=\"flex-center\"\n >\n <Tabs\n value={_value}\n onChange={(_, value: number) => {\n void navigate(\n generatePath(originalPath, {\n tab: paths[value],\n }),\n )\n }}\n ScrollButtonComponent={({\n disabled,\n onClick,\n direction,\n }: TabScrollButtonProps) => {\n return (\n <>\n {disabled === false && (\n <IconButton\n onClick={onClick}\n style={{\n padding: 0,\n [direction === \"left\" ? \"marginRight\" : \"marginLeft\"]:\n \"15px\",\n color: \"white\",\n }}\n >\n {direction === \"left\" ? (\n <>\n <ChevronLeftIcon />\n </>\n ) : (\n <>\n <ChevronRightIcon />\n </>\n )}\n </IconButton>\n )}\n </>\n )\n }}\n >\n {labels.map(label => (\n <Tab disableRipple key={label} label={label} />\n ))}\n </Tabs>\n </Section>\n {children[_value]}\n </>\n )\n}\n\nexport default TabBar\n"],"names":["Section","boxProps","containerProps","jsx","Box","Container","Notification","open","error","onClose","children","bgcolor","_open","_setOpen","useState","useEffect","Fragment","contrastText","palette","Stack","ErrorOutlineIcon","InfoOutlinedIcon","Typography","IconButton","CloseOutlinedIcon","Page","session","state","useLocation","scroll","notifications","useSession","metadata","childrenArray","Children","notification","index","Banner","header","subheader","textAlign","imageProps","button1Props","button2Props","primary","secondary","tertiary","jsxs","LinkButton","Image","TabBar","tabs","originalPath","value","params","useParams","navigate","useNavigate","_value","_setValue","labels","tab","paths","tryValidateSync","YupObject","YupString","Tabs","_","generatePath","disabled","onClick","direction","ChevronLeftIcon","ChevronRightIcon","label","Tab"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";const l=require("./jsx-runtime-CeSfJrVB.cjs"),E=require("@mui/material"),b=require("react"),Ve=require("./api-CnMfjRk3.cjs"),qe=require("./api-DIgp_6Vr.cjs"),B=require("formik"),z=require("yup"),V=require("./utils/form.cjs.js"),O=require("./utils/general.cjs.js");require("./en-gb-CpyEkKq3.cjs");const ge=require("@mui/x-date-pickers"),D=require("dayjs"),se=require("@mui/icons-material");require("./settings/index.cjs.js");require("./session-CE2U7oL1.cjs");require("js-cookie");const $e=require("./schemas-BZbJpkD5.cjs");require("./urls-MaVXL_C2.cjs");function $(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function fe(){return fe=Object.assign?Object.assign.bind():function(n){for(var o=1;o<arguments.length;o++){var i=arguments[o];for(var e in i)({}).hasOwnProperty.call(i,e)&&(n[e]=i[e])}return n},fe.apply(null,arguments)}const Ee=({useLazyListQuery:n,filterOptions:o,getOptionLabel:i,getOptionKey:e=a=>a.id,searchKey:t,...r})=>{const[a,u]=b.useState(""),[s,{isLoading:h,isError:c}]=n(),[{limit:x,offset:g},y]=qe.usePagination(),[{options:Y,hasMore:M},f]=b.useState({options:{},hasMore:!0});b.useEffect(()=>{const j={limit:x,offset:g,...o};a&&(j[t]=a),s(j,!0).unwrap().then(({data:T,offset:k,limit:F,count:w})=>{f(({options:C})=>{const R={...C};return T.forEach(L=>{R[e(L)]=L}),{options:R,hasMore:k+F<w}})}).catch(T=>{T&&console.error(T)})},[s,x,g,t,a,...Object.values(o||{})]);let d=Object.keys(Y);if(!d.length)return l.jsxRuntimeExports.jsx(l.jsxRuntimeExports.Fragment,{});typeof e(Object.values(Y)[0])=="number"&&(d=d.map(Number));function m(){y(({page:j,limit:T})=>({page:j+1,limit:T}))}const p=({children:j,...T},k)=>{const F=b.Children.toArray(j);return h?F.push(l.jsxRuntimeExports.jsx(E.CircularProgress,{},"is-loading")):(c&&F.push(l.jsxRuntimeExports.jsx(Ve.SyncError,{},"is-error")),M&&F.push(l.jsxRuntimeExports.jsx(E.Button,{onClick:m,children:"Load more"},"load-more"))),l.jsxRuntimeExports.jsx("ul",{...T,ref:k,onScroll:w=>{!h&&w.currentTarget.clientHeight+w.currentTarget.scrollTop>=w.currentTarget.scrollHeight&&m()},children:F})};return l.jsxRuntimeExports.jsx(H,{options:d,getOptionLabel:j=>i(Y[j]),onInputChange:(j,T,k)=>{u(k==="input"?T:"")},ListboxComponent:b.forwardRef(p),...r})},H=({textFieldProps:n,options:o,validateOptions:i,...e})=>{const{id:t,name:r,required:a,...u}=n,s=r.split("."),h="not a valid option";let c=typeof o[0]=="string"?z.string().oneOf(o,h):z.number().oneOf(o,h);a&&(c=c.required());const x={name:r,type:typeof o[0]=="string"?"text":"number",validate:V.schemaToFieldValidator(c,i)};return l.jsxRuntimeExports.jsx(B.Field,{...x,children:({form:g,meta:y})=>{const Y=O.getNestedProperty(g.values,s),M=O.getNestedProperty(g.touched,s),f=O.getNestedProperty(g.errors,s);return l.jsxRuntimeExports.jsx(E.Autocomplete,{options:o,defaultValue:y.initialValue===""?void 0:y.initialValue,renderInput:({id:d,...m})=>l.jsxRuntimeExports.jsx(E.TextField,{id:t??r,name:r,required:a,type:"text",value:Y,error:M&&!!f,helperText:M&&f,...u,...m}),onChange:(d,m)=>{g.setFieldValue(r,m??void 0,!0)},onBlur:g.handleBlur,...e})}})},we=({id:n,name:o,formControlLabelProps:i,required:e=!1,errorMessage:t="this is a required field",validateOptions:r,...a})=>{const u=o.split(".");let s=z.bool();e&&(s=s.oneOf([!0],t));const h={name:o,type:"checkbox",validate:V.schemaToFieldValidator(s,r)};return l.jsxRuntimeExports.jsx(B.Field,{...h,children:({form:c,meta:x})=>{const g=O.getNestedProperty(c.touched,u),y=O.getNestedProperty(c.errors,u),Y=O.getNestedProperty(c.values,u),M=g&&!!y;return l.jsxRuntimeExports.jsxs(E.FormControl,{error:M,required:e,children:[l.jsxRuntimeExports.jsx(E.FormControlLabel,{control:l.jsxRuntimeExports.jsx(E.Checkbox,{defaultChecked:x.initialValue,id:n??o,name:o,value:Y,onChange:c.handleChange,onBlur:c.handleBlur,...a}),...i}),M&&l.jsxRuntimeExports.jsx(E.FormHelperText,{children:y})]})}})},Fe=({textFieldProps:n,...o})=>{const{name:i="country",label:e="Country",placeholder:t="Select your country",...r}=n||{};return l.jsxRuntimeExports.jsx(H,{options:O.COUNTRY_ISO_CODES,getOptionLabel:a=>O.COUNTRY_ISO_CODE_MAPPING[a],textFieldProps:{name:i,label:e,placeholder:t,...r},...o})};var K={exports:{}},He=K.exports,ye;function We(){return ye||(ye=1,(function(n,o){(function(i,e){n.exports=e()})(He,(function(){var i="week",e="year";return function(t,r,a){var u=r.prototype;u.week=function(s){if(s===void 0&&(s=null),s!==null)return this.add(7*(s-this.week()),"day");var h=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=a(this).startOf(e).add(1,e).date(h),x=a(this).endOf(i);if(c.isBefore(x))return 1}var g=a(this).startOf(e).date(h).startOf(i).subtract(1,"millisecond"),y=this.diff(g,i,!0);return y<0?a(this).startOf("week").week():Math.ceil(y)},u.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}}))})(K)),K.exports}var Ge=We();const Ze=$(Ge);var J={exports:{}},Xe=J.exports,je;function Qe(){return je||(je=1,(function(n,o){(function(i,e){n.exports=e()})(Xe,(function(){var i={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,t=/\d/,r=/\d\d/,a=/\d\d?/,u=/\d*[^-_:/,()\s\d]+/,s={},h=function(f){return(f=+f)+(f>68?1900:2e3)},c=function(f){return function(d){this[f]=+d}},x=[/[+-]\d\d:?(\d\d)?|Z/,function(f){(this.zone||(this.zone={})).offset=(function(d){if(!d||d==="Z")return 0;var m=d.match(/([+-]|\d\d)/g),p=60*m[1]+(+m[2]||0);return p===0?0:m[0]==="+"?-p:p})(f)}],g=function(f){var d=s[f];return d&&(d.indexOf?d:d.s.concat(d.f))},y=function(f,d){var m,p=s.meridiem;if(p){for(var j=1;j<=24;j+=1)if(f.indexOf(p(j,0,d))>-1){m=j>12;break}}else m=f===(d?"pm":"PM");return m},Y={A:[u,function(f){this.afternoon=y(f,!1)}],a:[u,function(f){this.afternoon=y(f,!0)}],Q:[t,function(f){this.month=3*(f-1)+1}],S:[t,function(f){this.milliseconds=100*+f}],SS:[r,function(f){this.milliseconds=10*+f}],SSS:[/\d{3}/,function(f){this.milliseconds=+f}],s:[a,c("seconds")],ss:[a,c("seconds")],m:[a,c("minutes")],mm:[a,c("minutes")],H:[a,c("hours")],h:[a,c("hours")],HH:[a,c("hours")],hh:[a,c("hours")],D:[a,c("day")],DD:[r,c("day")],Do:[u,function(f){var d=s.ordinal,m=f.match(/\d+/);if(this.day=m[0],d)for(var p=1;p<=31;p+=1)d(p).replace(/\[|\]/g,"")===f&&(this.day=p)}],w:[a,c("week")],ww:[r,c("week")],M:[a,c("month")],MM:[r,c("month")],MMM:[u,function(f){var d=g("months"),m=(g("monthsShort")||d.map((function(p){return p.slice(0,3)}))).indexOf(f)+1;if(m<1)throw new Error;this.month=m%12||m}],MMMM:[u,function(f){var d=g("months").indexOf(f)+1;if(d<1)throw new Error;this.month=d%12||d}],Y:[/[+-]?\d+/,c("year")],YY:[r,function(f){this.year=h(f)}],YYYY:[/\d{4}/,c("year")],Z:x,ZZ:x};function M(f){var d,m;d=f,m=s&&s.formats;for(var p=(f=d.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(R,L,v){var S=v&&v.toUpperCase();return L||m[v]||i[v]||m[S].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(A,_,N){return _||N.slice(1)}))}))).match(e),j=p.length,T=0;T<j;T+=1){var k=p[T],F=Y[k],w=F&&F[0],C=F&&F[1];p[T]=C?{regex:w,parser:C}:k.replace(/^\[|\]$/g,"")}return function(R){for(var L={},v=0,S=0;v<j;v+=1){var A=p[v];if(typeof A=="string")S+=A.length;else{var _=A.regex,N=A.parser,W=R.slice(S),U=_.exec(W)[0];N.call(L,U),R=R.replace(U,"")}}return(function(I){var G=I.afternoon;if(G!==void 0){var P=I.hours;G?P<12&&(I.hours+=12):P===12&&(I.hours=0),delete I.afternoon}})(L),L}}return function(f,d,m){m.p.customParseFormat=!0,f&&f.parseTwoDigitYear&&(h=f.parseTwoDigitYear);var p=d.prototype,j=p.parse;p.parse=function(T){var k=T.date,F=T.utc,w=T.args;this.$u=F;var C=w[1];if(typeof C=="string"){var R=w[2]===!0,L=w[3]===!0,v=R||L,S=w[2];L&&(S=w[2]),s=this.$locale(),!R&&S&&(s=m.Ls[S]),this.$d=(function(W,U,I,G){try{if(["x","X"].indexOf(U)>-1)return new Date((U==="X"?1e3:1)*W);var P=M(U)(W),ne=P.year,Z=P.month,_e=P.day,Be=P.hours,Ne=P.minutes,Ie=P.seconds,Ue=P.milliseconds,pe=P.zone,xe=P.week,ie=new Date,oe=_e||(ne||Z?1:ie.getDate()),ae=ne||ie.getFullYear(),X=0;ne&&!Z||(X=Z>0?Z-1:ie.getMonth());var Q,ue=Be||0,ce=Ne||0,de=Ie||0,le=Ue||0;return pe?new Date(Date.UTC(ae,X,oe,ue,ce,de,le+60*pe.offset*1e3)):I?new Date(Date.UTC(ae,X,oe,ue,ce,de,le)):(Q=new Date(ae,X,oe,ue,ce,de,le),xe&&(Q=G(Q).week(xe).toDate()),Q)}catch{return new Date("")}})(k,C,F,m),this.init(),S&&S!==!0&&(this.$L=this.locale(S).$L),v&&k!=this.format(C)&&(this.$d=new Date("")),s={}}else if(C instanceof Array)for(var A=C.length,_=1;_<=A;_+=1){w[1]=C[_-1];var N=m.apply(this,w);if(N.isValid()){this.$d=N.$d,this.$L=N.$L,this.init();break}_===A&&(this.$d=new Date(""))}else j.call(this,T)}}}))})(J)),J.exports}var Ke=Qe();const Je=$(Ke);var ee={exports:{}},et=ee.exports,Me;function tt(){return Me||(Me=1,(function(n,o){(function(i,e){n.exports=e()})(et,(function(){var i={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(e,t,r){var a=t.prototype,u=a.format;r.en.formats=i,a.format=function(s){s===void 0&&(s="YYYY-MM-DDTHH:mm:ssZ");var h=this.$locale().formats,c=(function(x,g){return x.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(y,Y,M){var f=M&&M.toUpperCase();return Y||g[M]||i[M]||g[f].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(d,m,p){return m||p.slice(1)}))}))})(s,h===void 0?{}:h);return u.call(this,c)}}}))})(ee)),ee.exports}var rt=tt();const st=$(rt);var te={exports:{}},nt=te.exports,Te;function it(){return Te||(Te=1,(function(n,o){(function(i,e){n.exports=e()})(nt,(function(){return function(i,e,t){e.prototype.isBetween=function(r,a,u,s){var h=t(r),c=t(a),x=(s=s||"()")[0]==="(",g=s[1]===")";return(x?this.isAfter(h,u):!this.isBefore(h,u))&&(g?this.isBefore(c,u):!this.isAfter(c,u))||(x?this.isBefore(h,u):!this.isAfter(h,u))&&(g?this.isAfter(c,u):!this.isBefore(c,u))}}}))})(te)),te.exports}var ot=it();const at=$(ot);var re={exports:{}},ut=re.exports,Oe;function ct(){return Oe||(Oe=1,(function(n,o){(function(i,e){n.exports=e()})(ut,(function(){return function(i,e){var t=e.prototype,r=t.format;t.format=function(a){var u=this,s=this.$locale();if(!this.isValid())return r.bind(this)(a);var h=this.$utils(),c=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(x){switch(x){case"Q":return Math.ceil((u.$M+1)/3);case"Do":return s.ordinal(u.$D);case"gggg":return u.weekYear();case"GGGG":return u.isoWeekYear();case"wo":return s.ordinal(u.week(),"W");case"w":case"ww":return h.s(u.week(),x==="w"?1:2,"0");case"W":case"WW":return h.s(u.isoWeek(),x==="W"?1:2,"0");case"k":case"kk":return h.s(String(u.$H===0?24:u.$H),x==="k"?1:2,"0");case"X":return Math.floor(u.$d.getTime()/1e3);case"x":return u.$d.getTime();case"z":return"["+u.offsetName()+"]";case"zzz":return"["+u.offsetName("long")+"]";default:return x}}));return r.bind(this)(c)}}}))})(re)),re.exports}var dt=ct();const lt=$(dt),Ye=new Set;function ht(n,o="warning"){if(process.env.NODE_ENV==="production")return;const i=Array.isArray(n)?n.join(`
|
|
1
|
+
"use strict";const l=require("./jsx-runtime-Dszzpdy0.cjs"),E=require("@mui/material"),b=require("react"),Ve=require("./api-CaeeoZaI.cjs"),qe=require("./api-DIgp_6Vr.cjs"),B=require("formik"),z=require("yup"),V=require("./utils/form.cjs.js"),O=require("./utils/general.cjs.js");require("./en-gb-CpyEkKq3.cjs");const ge=require("@mui/x-date-pickers"),D=require("dayjs"),se=require("@mui/icons-material");require("./settings/index.cjs.js");require("./session-CE2U7oL1.cjs");require("js-cookie");const $e=require("./schemas-CpAWhNsP.cjs");require("./urls-RtSTEZfW.cjs");function $(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function fe(){return fe=Object.assign?Object.assign.bind():function(n){for(var o=1;o<arguments.length;o++){var i=arguments[o];for(var e in i)({}).hasOwnProperty.call(i,e)&&(n[e]=i[e])}return n},fe.apply(null,arguments)}const Ee=({useLazyListQuery:n,filterOptions:o,getOptionLabel:i,getOptionKey:e=a=>a.id,searchKey:t,...r})=>{const[a,u]=b.useState(""),[s,{isLoading:h,isError:c}]=n(),[{limit:x,offset:g},y]=qe.usePagination(),[{options:Y,hasMore:M},f]=b.useState({options:{},hasMore:!0});b.useEffect(()=>{const j={limit:x,offset:g,...o};a&&(j[t]=a),s(j,!0).unwrap().then(({data:T,offset:k,limit:F,count:w})=>{f(({options:C})=>{const R={...C};return T.forEach(L=>{R[e(L)]=L}),{options:R,hasMore:k+F<w}})}).catch(T=>{T&&console.error(T)})},[s,x,g,t,a,...Object.values(o||{})]);let d=Object.keys(Y);if(!d.length)return l.jsxRuntimeExports.jsx(l.jsxRuntimeExports.Fragment,{});typeof e(Object.values(Y)[0])=="number"&&(d=d.map(Number));function m(){y(({page:j,limit:T})=>({page:j+1,limit:T}))}const p=({children:j,...T},k)=>{const F=b.Children.toArray(j);return h?F.push(l.jsxRuntimeExports.jsx(E.CircularProgress,{},"is-loading")):(c&&F.push(l.jsxRuntimeExports.jsx(Ve.SyncError,{},"is-error")),M&&F.push(l.jsxRuntimeExports.jsx(E.Button,{onClick:m,children:"Load more"},"load-more"))),l.jsxRuntimeExports.jsx("ul",{...T,ref:k,onScroll:w=>{!h&&w.currentTarget.clientHeight+w.currentTarget.scrollTop>=w.currentTarget.scrollHeight&&m()},children:F})};return l.jsxRuntimeExports.jsx(H,{options:d,getOptionLabel:j=>i(Y[j]),onInputChange:(j,T,k)=>{u(k==="input"?T:"")},ListboxComponent:b.forwardRef(p),...r})},H=({textFieldProps:n,options:o,validateOptions:i,...e})=>{const{id:t,name:r,required:a,...u}=n,s=r.split("."),h="not a valid option";let c=typeof o[0]=="string"?z.string().oneOf(o,h):z.number().oneOf(o,h);a&&(c=c.required());const x={name:r,type:typeof o[0]=="string"?"text":"number",validate:V.schemaToFieldValidator(c,i)};return l.jsxRuntimeExports.jsx(B.Field,{...x,children:({form:g,meta:y})=>{const Y=O.getNestedProperty(g.values,s),M=O.getNestedProperty(g.touched,s),f=O.getNestedProperty(g.errors,s);return l.jsxRuntimeExports.jsx(E.Autocomplete,{options:o,defaultValue:y.initialValue===""?void 0:y.initialValue,renderInput:({id:d,...m})=>l.jsxRuntimeExports.jsx(E.TextField,{id:t??r,name:r,required:a,type:"text",value:Y,error:M&&!!f,helperText:M&&f,...u,...m}),onChange:(d,m)=>{g.setFieldValue(r,m??void 0,!0)},onBlur:g.handleBlur,...e})}})},we=({id:n,name:o,formControlLabelProps:i,required:e=!1,errorMessage:t="this is a required field",validateOptions:r,...a})=>{const u=o.split(".");let s=z.bool();e&&(s=s.oneOf([!0],t));const h={name:o,type:"checkbox",validate:V.schemaToFieldValidator(s,r)};return l.jsxRuntimeExports.jsx(B.Field,{...h,children:({form:c,meta:x})=>{const g=O.getNestedProperty(c.touched,u),y=O.getNestedProperty(c.errors,u),Y=O.getNestedProperty(c.values,u),M=g&&!!y;return l.jsxRuntimeExports.jsxs(E.FormControl,{error:M,required:e,children:[l.jsxRuntimeExports.jsx(E.FormControlLabel,{control:l.jsxRuntimeExports.jsx(E.Checkbox,{defaultChecked:x.initialValue,id:n??o,name:o,value:Y,onChange:c.handleChange,onBlur:c.handleBlur,...a}),...i}),M&&l.jsxRuntimeExports.jsx(E.FormHelperText,{children:y})]})}})},Fe=({textFieldProps:n,...o})=>{const{name:i="country",label:e="Country",placeholder:t="Select your country",...r}=n||{};return l.jsxRuntimeExports.jsx(H,{options:O.COUNTRY_ISO_CODES,getOptionLabel:a=>O.COUNTRY_ISO_CODE_MAPPING[a],textFieldProps:{name:i,label:e,placeholder:t,...r},...o})};var K={exports:{}},He=K.exports,ye;function We(){return ye||(ye=1,(function(n,o){(function(i,e){n.exports=e()})(He,(function(){var i="week",e="year";return function(t,r,a){var u=r.prototype;u.week=function(s){if(s===void 0&&(s=null),s!==null)return this.add(7*(s-this.week()),"day");var h=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=a(this).startOf(e).add(1,e).date(h),x=a(this).endOf(i);if(c.isBefore(x))return 1}var g=a(this).startOf(e).date(h).startOf(i).subtract(1,"millisecond"),y=this.diff(g,i,!0);return y<0?a(this).startOf("week").week():Math.ceil(y)},u.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}}))})(K)),K.exports}var Ge=We();const Ze=$(Ge);var J={exports:{}},Xe=J.exports,je;function Qe(){return je||(je=1,(function(n,o){(function(i,e){n.exports=e()})(Xe,(function(){var i={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,t=/\d/,r=/\d\d/,a=/\d\d?/,u=/\d*[^-_:/,()\s\d]+/,s={},h=function(f){return(f=+f)+(f>68?1900:2e3)},c=function(f){return function(d){this[f]=+d}},x=[/[+-]\d\d:?(\d\d)?|Z/,function(f){(this.zone||(this.zone={})).offset=(function(d){if(!d||d==="Z")return 0;var m=d.match(/([+-]|\d\d)/g),p=60*m[1]+(+m[2]||0);return p===0?0:m[0]==="+"?-p:p})(f)}],g=function(f){var d=s[f];return d&&(d.indexOf?d:d.s.concat(d.f))},y=function(f,d){var m,p=s.meridiem;if(p){for(var j=1;j<=24;j+=1)if(f.indexOf(p(j,0,d))>-1){m=j>12;break}}else m=f===(d?"pm":"PM");return m},Y={A:[u,function(f){this.afternoon=y(f,!1)}],a:[u,function(f){this.afternoon=y(f,!0)}],Q:[t,function(f){this.month=3*(f-1)+1}],S:[t,function(f){this.milliseconds=100*+f}],SS:[r,function(f){this.milliseconds=10*+f}],SSS:[/\d{3}/,function(f){this.milliseconds=+f}],s:[a,c("seconds")],ss:[a,c("seconds")],m:[a,c("minutes")],mm:[a,c("minutes")],H:[a,c("hours")],h:[a,c("hours")],HH:[a,c("hours")],hh:[a,c("hours")],D:[a,c("day")],DD:[r,c("day")],Do:[u,function(f){var d=s.ordinal,m=f.match(/\d+/);if(this.day=m[0],d)for(var p=1;p<=31;p+=1)d(p).replace(/\[|\]/g,"")===f&&(this.day=p)}],w:[a,c("week")],ww:[r,c("week")],M:[a,c("month")],MM:[r,c("month")],MMM:[u,function(f){var d=g("months"),m=(g("monthsShort")||d.map((function(p){return p.slice(0,3)}))).indexOf(f)+1;if(m<1)throw new Error;this.month=m%12||m}],MMMM:[u,function(f){var d=g("months").indexOf(f)+1;if(d<1)throw new Error;this.month=d%12||d}],Y:[/[+-]?\d+/,c("year")],YY:[r,function(f){this.year=h(f)}],YYYY:[/\d{4}/,c("year")],Z:x,ZZ:x};function M(f){var d,m;d=f,m=s&&s.formats;for(var p=(f=d.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(R,L,v){var S=v&&v.toUpperCase();return L||m[v]||i[v]||m[S].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(A,_,N){return _||N.slice(1)}))}))).match(e),j=p.length,T=0;T<j;T+=1){var k=p[T],F=Y[k],w=F&&F[0],C=F&&F[1];p[T]=C?{regex:w,parser:C}:k.replace(/^\[|\]$/g,"")}return function(R){for(var L={},v=0,S=0;v<j;v+=1){var A=p[v];if(typeof A=="string")S+=A.length;else{var _=A.regex,N=A.parser,W=R.slice(S),U=_.exec(W)[0];N.call(L,U),R=R.replace(U,"")}}return(function(I){var G=I.afternoon;if(G!==void 0){var P=I.hours;G?P<12&&(I.hours+=12):P===12&&(I.hours=0),delete I.afternoon}})(L),L}}return function(f,d,m){m.p.customParseFormat=!0,f&&f.parseTwoDigitYear&&(h=f.parseTwoDigitYear);var p=d.prototype,j=p.parse;p.parse=function(T){var k=T.date,F=T.utc,w=T.args;this.$u=F;var C=w[1];if(typeof C=="string"){var R=w[2]===!0,L=w[3]===!0,v=R||L,S=w[2];L&&(S=w[2]),s=this.$locale(),!R&&S&&(s=m.Ls[S]),this.$d=(function(W,U,I,G){try{if(["x","X"].indexOf(U)>-1)return new Date((U==="X"?1e3:1)*W);var P=M(U)(W),ne=P.year,Z=P.month,_e=P.day,Be=P.hours,Ne=P.minutes,Ie=P.seconds,Ue=P.milliseconds,pe=P.zone,xe=P.week,ie=new Date,oe=_e||(ne||Z?1:ie.getDate()),ae=ne||ie.getFullYear(),X=0;ne&&!Z||(X=Z>0?Z-1:ie.getMonth());var Q,ue=Be||0,ce=Ne||0,de=Ie||0,le=Ue||0;return pe?new Date(Date.UTC(ae,X,oe,ue,ce,de,le+60*pe.offset*1e3)):I?new Date(Date.UTC(ae,X,oe,ue,ce,de,le)):(Q=new Date(ae,X,oe,ue,ce,de,le),xe&&(Q=G(Q).week(xe).toDate()),Q)}catch{return new Date("")}})(k,C,F,m),this.init(),S&&S!==!0&&(this.$L=this.locale(S).$L),v&&k!=this.format(C)&&(this.$d=new Date("")),s={}}else if(C instanceof Array)for(var A=C.length,_=1;_<=A;_+=1){w[1]=C[_-1];var N=m.apply(this,w);if(N.isValid()){this.$d=N.$d,this.$L=N.$L,this.init();break}_===A&&(this.$d=new Date(""))}else j.call(this,T)}}}))})(J)),J.exports}var Ke=Qe();const Je=$(Ke);var ee={exports:{}},et=ee.exports,Me;function tt(){return Me||(Me=1,(function(n,o){(function(i,e){n.exports=e()})(et,(function(){var i={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(e,t,r){var a=t.prototype,u=a.format;r.en.formats=i,a.format=function(s){s===void 0&&(s="YYYY-MM-DDTHH:mm:ssZ");var h=this.$locale().formats,c=(function(x,g){return x.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(y,Y,M){var f=M&&M.toUpperCase();return Y||g[M]||i[M]||g[f].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(d,m,p){return m||p.slice(1)}))}))})(s,h===void 0?{}:h);return u.call(this,c)}}}))})(ee)),ee.exports}var rt=tt();const st=$(rt);var te={exports:{}},nt=te.exports,Te;function it(){return Te||(Te=1,(function(n,o){(function(i,e){n.exports=e()})(nt,(function(){return function(i,e,t){e.prototype.isBetween=function(r,a,u,s){var h=t(r),c=t(a),x=(s=s||"()")[0]==="(",g=s[1]===")";return(x?this.isAfter(h,u):!this.isBefore(h,u))&&(g?this.isBefore(c,u):!this.isAfter(c,u))||(x?this.isBefore(h,u):!this.isAfter(h,u))&&(g?this.isAfter(c,u):!this.isBefore(c,u))}}}))})(te)),te.exports}var ot=it();const at=$(ot);var re={exports:{}},ut=re.exports,Oe;function ct(){return Oe||(Oe=1,(function(n,o){(function(i,e){n.exports=e()})(ut,(function(){return function(i,e){var t=e.prototype,r=t.format;t.format=function(a){var u=this,s=this.$locale();if(!this.isValid())return r.bind(this)(a);var h=this.$utils(),c=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(x){switch(x){case"Q":return Math.ceil((u.$M+1)/3);case"Do":return s.ordinal(u.$D);case"gggg":return u.weekYear();case"GGGG":return u.isoWeekYear();case"wo":return s.ordinal(u.week(),"W");case"w":case"ww":return h.s(u.week(),x==="w"?1:2,"0");case"W":case"WW":return h.s(u.isoWeek(),x==="W"?1:2,"0");case"k":case"kk":return h.s(String(u.$H===0?24:u.$H),x==="k"?1:2,"0");case"X":return Math.floor(u.$d.getTime()/1e3);case"x":return u.$d.getTime();case"z":return"["+u.offsetName()+"]";case"zzz":return"["+u.offsetName("long")+"]";default:return x}}));return r.bind(this)(c)}}}))})(re)),re.exports}var dt=ct();const lt=$(dt),Ye=new Set;function ht(n,o="warning"){if(process.env.NODE_ENV==="production")return;const i=Array.isArray(n)?n.join(`
|
|
2
2
|
`):n;Ye.has(i)||(Ye.add(i),o==="error"?console.error(i):console.warn(i))}D.extend(st);D.extend(Ze);D.extend(at);D.extend(lt);const ft={YY:"year",YYYY:{sectionType:"year",contentType:"digit",maxLength:4},M:{sectionType:"month",contentType:"digit",maxLength:2},MM:"month",MMM:{sectionType:"month",contentType:"letter"},MMMM:{sectionType:"month",contentType:"letter"},D:{sectionType:"day",contentType:"digit",maxLength:2},DD:"day",Do:{sectionType:"day",contentType:"digit-with-letter"},d:{sectionType:"weekDay",contentType:"digit",maxLength:2},dd:{sectionType:"weekDay",contentType:"letter"},ddd:{sectionType:"weekDay",contentType:"letter"},dddd:{sectionType:"weekDay",contentType:"letter"},A:"meridiem",a:"meridiem",H:{sectionType:"hours",contentType:"digit",maxLength:2},HH:"hours",h:{sectionType:"hours",contentType:"digit",maxLength:2},hh:"hours",m:{sectionType:"minutes",contentType:"digit",maxLength:2},mm:"minutes",s:{sectionType:"seconds",contentType:"digit",maxLength:2},ss:"seconds"},mt={year:"YYYY",month:"MMMM",monthShort:"MMM",dayOfMonth:"D",dayOfMonthFull:"Do",weekday:"dddd",weekdayShort:"dd",hours24h:"HH",hours12h:"hh",meridiem:"A",minutes:"mm",seconds:"ss",fullDate:"ll",keyboardDate:"L",shortDate:"MMM D",normalDate:"D MMMM",normalDateWithWeekday:"ddd, MMM D",fullTime:"LT",fullTime12h:"hh:mm A",fullTime24h:"HH:mm",keyboardDateTime:"L LT",keyboardDateTime12h:"L hh:mm A",keyboardDateTime24h:"L HH:mm"},he=["Missing UTC plugin","To be able to use UTC or timezones, you have to enable the `utc` plugin","Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc"].join(`
|
|
3
3
|
`),De=["Missing timezone plugin","To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin","Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone"].join(`
|
|
4
4
|
`),pt=(n,o)=>o?(...i)=>n(...i).locale(o):n;class xt{constructor({locale:o,formats:i}={}){this.isMUIAdapter=!0,this.isTimezoneCompatible=!0,this.lib="dayjs",this.dayjs=void 0,this.locale=void 0,this.formats=void 0,this.escapedCharacters={start:"[",end:"]"},this.formatTokenMap=ft,this.setLocaleToValue=e=>{const t=this.getCurrentLocaleCode();return t===e.locale()?e:e.locale(t)},this.hasUTCPlugin=()=>typeof D.utc<"u",this.hasTimezonePlugin=()=>typeof D.tz<"u",this.isSame=(e,t,r)=>{const a=this.setTimezone(t,this.getTimezone(e));return e.format(r)===a.format(r)},this.cleanTimezone=e=>{switch(e){case"default":return;case"system":return D.tz.guess();default:return e}},this.createSystemDate=e=>{if(this.hasUTCPlugin()&&this.hasTimezonePlugin()){const t=D.tz.guess();return t!=="UTC"?D.tz(e,t):D(e)}return D(e)},this.createUTCDate=e=>{if(!this.hasUTCPlugin())throw new Error(he);return D.utc(e)},this.createTZDate=(e,t)=>{if(!this.hasUTCPlugin())throw new Error(he);if(!this.hasTimezonePlugin())throw new Error(De);const r=e!==void 0&&!e.endsWith("Z");return D(e).tz(this.cleanTimezone(t),r)},this.getLocaleFormats=()=>{const e=D.Ls,t=this.locale||"en";let r=e[t];return r===void 0&&(process.env.NODE_ENV!=="production"&&ht(["MUI X: Your locale has not been found.","Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale.","Or you forget to import the locale from 'dayjs/locale/{localeUsed}'","fallback on English locale."]),r=e.en),r.formats},this.adjustOffset=e=>{if(!this.hasTimezonePlugin())return e;const t=this.getTimezone(e);if(t!=="UTC"){const r=e.tz(this.cleanTimezone(t),!0);if(r.$offset===(e.$offset??0))return e;e.$offset=r.$offset}return e},this.date=(e,t="default")=>{if(e===null)return null;let r;return t==="UTC"?r=this.createUTCDate(e):t==="system"||t==="default"&&!this.hasTimezonePlugin()?r=this.createSystemDate(e):r=this.createTZDate(e,t),this.locale===void 0?r:r.locale(this.locale)},this.getInvalidDate=()=>D(new Date("Invalid date")),this.getTimezone=e=>{if(this.hasTimezonePlugin()){const t=e.$x?.$timezone;if(t)return t}return this.hasUTCPlugin()&&e.isUTC()?"UTC":"system"},this.setTimezone=(e,t)=>{if(this.getTimezone(e)===t)return e;if(t==="UTC"){if(!this.hasUTCPlugin())throw new Error(he);return e.utc()}if(t==="system")return e.local();if(!this.hasTimezonePlugin()){if(t==="default")return e;throw new Error(De)}return D.tz(e,this.cleanTimezone(t))},this.toJsDate=e=>e.toDate(),this.parse=(e,t)=>e===""?null:this.dayjs(e,t,this.locale,!0),this.getCurrentLocaleCode=()=>this.locale||"en",this.is12HourCycleInCurrentLocale=()=>/A|a/.test(this.getLocaleFormats().LT||""),this.expandFormat=e=>{const t=this.getLocaleFormats(),r=a=>a.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(u,s,h)=>s||h.slice(1));return e.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(a,u,s)=>{const h=s&&s.toUpperCase();return u||t[s]||r(t[h])})},this.isValid=e=>e==null?!1:e.isValid(),this.format=(e,t)=>this.formatByString(e,this.formats[t]),this.formatByString=(e,t)=>this.dayjs(e).format(t),this.formatNumber=e=>e,this.isEqual=(e,t)=>e===null&&t===null?!0:e===null||t===null?!1:e.toDate().getTime()===t.toDate().getTime(),this.isSameYear=(e,t)=>this.isSame(e,t,"YYYY"),this.isSameMonth=(e,t)=>this.isSame(e,t,"YYYY-MM"),this.isSameDay=(e,t)=>this.isSame(e,t,"YYYY-MM-DD"),this.isSameHour=(e,t)=>e.isSame(t,"hour"),this.isAfter=(e,t)=>e>t,this.isAfterYear=(e,t)=>this.hasUTCPlugin()?!this.isSameYear(e,t)&&e.utc()>t.utc():e.isAfter(t,"year"),this.isAfterDay=(e,t)=>this.hasUTCPlugin()?!this.isSameDay(e,t)&&e.utc()>t.utc():e.isAfter(t,"day"),this.isBefore=(e,t)=>e<t,this.isBeforeYear=(e,t)=>this.hasUTCPlugin()?!this.isSameYear(e,t)&&e.utc()<t.utc():e.isBefore(t,"year"),this.isBeforeDay=(e,t)=>this.hasUTCPlugin()?!this.isSameDay(e,t)&&e.utc()<t.utc():e.isBefore(t,"day"),this.isWithinRange=(e,[t,r])=>e>=t&&e<=r,this.startOfYear=e=>this.adjustOffset(e.startOf("year")),this.startOfMonth=e=>this.adjustOffset(e.startOf("month")),this.startOfWeek=e=>this.adjustOffset(this.setLocaleToValue(e).startOf("week")),this.startOfDay=e=>this.adjustOffset(e.startOf("day")),this.endOfYear=e=>this.adjustOffset(e.endOf("year")),this.endOfMonth=e=>this.adjustOffset(e.endOf("month")),this.endOfWeek=e=>this.adjustOffset(this.setLocaleToValue(e).endOf("week")),this.endOfDay=e=>this.adjustOffset(e.endOf("day")),this.addYears=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"year"):e.add(t,"year")),this.addMonths=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"month"):e.add(t,"month")),this.addWeeks=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"week"):e.add(t,"week")),this.addDays=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"day"):e.add(t,"day")),this.addHours=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"hour"):e.add(t,"hour")),this.addMinutes=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"minute"):e.add(t,"minute")),this.addSeconds=(e,t)=>this.adjustOffset(t<0?e.subtract(Math.abs(t),"second"):e.add(t,"second")),this.getYear=e=>e.year(),this.getMonth=e=>e.month(),this.getDate=e=>e.date(),this.getHours=e=>e.hour(),this.getMinutes=e=>e.minute(),this.getSeconds=e=>e.second(),this.getMilliseconds=e=>e.millisecond(),this.setYear=(e,t)=>this.adjustOffset(e.set("year",t)),this.setMonth=(e,t)=>this.adjustOffset(e.set("month",t)),this.setDate=(e,t)=>this.adjustOffset(e.set("date",t)),this.setHours=(e,t)=>this.adjustOffset(e.set("hour",t)),this.setMinutes=(e,t)=>this.adjustOffset(e.set("minute",t)),this.setSeconds=(e,t)=>this.adjustOffset(e.set("second",t)),this.setMilliseconds=(e,t)=>this.adjustOffset(e.set("millisecond",t)),this.getDaysInMonth=e=>e.daysInMonth(),this.getWeekArray=e=>{const t=this.startOfWeek(this.startOfMonth(e)),r=this.endOfWeek(this.endOfMonth(e));let a=0,u=t;const s=[];for(;u<r;){const h=Math.floor(a/7);s[h]=s[h]||[],s[h].push(u),u=this.addDays(u,1),a+=1}return s},this.getWeekNumber=e=>e.week(),this.getYearRange=([e,t])=>{const r=this.startOfYear(e),a=this.endOfYear(t),u=[];let s=r;for(;this.isBefore(s,a);)u.push(s),s=this.addYears(s,1);return u},this.dayjs=pt(D,o),this.locale=o,this.formats=fe({},mt,i),D.extend(Je)}getDayOfWeek(o){return o.day()+1}}const be=({name:n,required:o,minDate:i,maxDate:e,validateOptions:t,...r})=>{const a=n.split(".");function u(c){return c.locale("en-gb").format("L")}let s=z.date();o&&(s=s.required()),i&&(s=s.min(i,`this field must be after or equal to ${u(i)}`)),e&&(s=s.max(e,`this field must be before or equal to ${u(e)}`));const h={name:n,type:"date",validate:V.schemaToFieldValidator(s,t)};return l.jsxRuntimeExports.jsx(B.Field,{...h,children:({form:c})=>{const x=O.getNestedProperty(c.errors,a),g=O.getNestedProperty(c.touched,a);let y=O.getNestedProperty(c.values,a);y=y?D(y):null;function Y(M){c.setFieldValue(n,M&&M.isValid()?M.format("YYYY-MM-DD"):null,!0)}return l.jsxRuntimeExports.jsx(ge.LocalizationProvider,{dateAdapter:xt,adapterLocale:"en-gb",children:l.jsxRuntimeExports.jsx(ge.DatePicker,{name:n,value:y,minDate:i,maxDate:e,onChange:Y,slotProps:{textField:{id:n,onChange:M=>{Y(M)},onBlur:c.handleBlur,required:o,error:g&&!!x,helperText:g&&x}},...r})})}})},q=({id:n,name:o,schema:i,type:e="text",required:t=!1,dirty:r=!1,unique:a=!1,uniqueCaseInsensitive:u=!1,split:s,validateOptions:h,...c})=>{const[x,g]=b.useState(""),y=o.split(".");function Y(){let d=i;if(d=t?d.required():d.optional(),r&&!s&&(d=d.notOneOf([x],"cannot be initial value")),!s)return d;let m=z.array().of(d);return m=t?m.required().min(1):m.optional(),(a||u)&&(m=m.test({message:"cannot have duplicates",test:p=>Array.isArray(p)&&p.length>=2&&p.every(j=>typeof j=="string")?new Set(u?p.map(j=>j.toLowerCase()):p).size===p.length:!0})),r&&(m=m.notOneOf([x],"cannot be initial value")),m}const M={name:o,type:e,validate:V.schemaToFieldValidator(Y(),h)},f=({form:d})=>{const m=O.getNestedProperty(d.initialValues,y),p=O.getNestedProperty(d.values,y),j=O.getNestedProperty(d.errors,y),T=O.getNestedProperty(d.touched,y);return b.useEffect(()=>{g(m)},[m]),b.useEffect(()=>{d.setFieldValue(o,s&&typeof p=="string"?p.split(s):p,!0)},[p]),l.jsxRuntimeExports.jsx(E.TextField,{id:n??o,name:o,type:e,required:t,value:p,onChange:d.handleChange,onBlur:d.handleBlur,error:T&&!!j,helperText:T&&j,...c})};return l.jsxRuntimeExports.jsx(B.Field,{...M,children:f})},Pe=({name:n="email",label:o="Email address",placeholder:i="Enter your email address",InputProps:e={},...t})=>l.jsxRuntimeExports.jsx(q,{type:"email",schema:z.string().email(),name:n,label:o,placeholder:i,InputProps:{endAdornment:l.jsxRuntimeExports.jsx(E.InputAdornment,{position:"end",children:l.jsxRuntimeExports.jsx(se.EmailOutlined,{})}),...e},...t}),ke=({name:n="first_name",label:o="First name",placeholder:i="Enter your first name",InputProps:e={},...t})=>l.jsxRuntimeExports.jsx(q,{schema:$e.user.first_name,name:n,label:o,placeholder:i,InputProps:{endAdornment:l.jsxRuntimeExports.jsx(E.InputAdornment,{position:"end",children:l.jsxRuntimeExports.jsx(se.PersonOutlined,{})}),...e},...t}),Ce={behavior:"smooth",block:"start"},gt=({scrollIntoViewOptions:n=Ce,...o})=>{const i=b.useRef(null);return b.useEffect(()=>{i.current&&i.current.scrollIntoView(n)},[n]),l.jsxRuntimeExports.jsx(E.FormHelperText,{ref:i,error:!0,...o})},Le=({children:n,scrollIntoViewOptions:o=Ce,nonFieldErrorsProps:i,fieldRefs:e=[],...t})=>l.jsxRuntimeExports.jsx(B.Formik,{...t,children:r=>{const a=!!Object.keys(r.errors).length,u=a&&typeof r.errors.__all__=="string";if(a&&!u&&r.isSubmitting&&e.length){const s=O.getKeyPaths(r.errors),h=e.find(({name:c})=>s.includes(c))?.inputRef.current;h&&h.scrollIntoView(o)}return l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[u&&l.jsxRuntimeExports.jsx(gt,{...i,children:r.errors.__all__}),l.jsxRuntimeExports.jsx(B.Form,{children:typeof n=="function"?n(r):n})]})}}),yt=({useMutation:n,submitOptions:o,...i})=>{const[e]=n();return l.jsxRuntimeExports.jsx(Le,{...i,onSubmit:V.submitForm(e,i.initialValues,o)})},Se=n=>"onSubmit"in n?l.jsxRuntimeExports.jsx(Le,{...n}):yt(n),Re=({name:n="otp",label:o="OTP",placeholder:i="Enter your OTP",...e})=>l.jsxRuntimeExports.jsx(q,{name:n,label:o,schema:z.string().matches(/^[0-9]{6}$/,"Must be exactly 6 digits."),placeholder:i,required:!0,...e}),jt=({id:n,repeatName:o,setValue:i,fieldProps:e,name:t,label:r,placeholder:a,type:u,...s})=>{const{form:h}=e,c=t.split("."),x=O.getNestedProperty(h.values,c),g=o.split("."),y=O.getNestedProperty(h.values,g),Y=O.getNestedProperty(h.touched,g),M=O.getNestedProperty(h.errors,g);return b.useEffect(()=>{i(x)},[i,x]),l.jsxRuntimeExports.jsx(E.TextField,{required:!0,type:u,label:r??`Repeat ${t.replace("_"," ")}`,placeholder:a??`Enter your ${t.replace("_"," ")} again`,id:n??o,name:o,value:y,onChange:h.handleChange,onBlur:h.handleBlur,error:Y&&!!M,helperText:Y&&M,...s})},me=({name:n,type:o="text",validateOptions:i,...e})=>{const[t,r]=b.useState(""),a=`${n}_repeat`,u={name:a,type:o,validate:V.schemaToFieldValidator(z.string().required().equals([t],"does not match"),i)};return l.jsxRuntimeExports.jsx(B.Field,{...u,children:s=>l.jsxRuntimeExports.jsx(jt,{name:n,type:o,repeatName:a,setValue:r,fieldProps:s,...e})})},ve=({name:n="password",label:o="Password",placeholder:i="Enter your password",schema:e=z.string(),InputProps:t={},withRepeatField:r=!1,repeatFieldProps:a={},...u})=>{const[s,h]=b.useState(!1),c=s?"text":"password",x=l.jsxRuntimeExports.jsx(E.InputAdornment,{position:"end",children:l.jsxRuntimeExports.jsx(E.IconButton,{onClick:()=>{h(g=>!g)},edge:"end",children:s?l.jsxRuntimeExports.jsx(se.Visibility,{}):l.jsxRuntimeExports.jsx(se.VisibilityOff,{})})});return l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[l.jsxRuntimeExports.jsx(q,{autoComplete:"off",type:c,name:n,label:o,schema:e,placeholder:i,InputProps:{endAdornment:x,...t},...u}),r&&l.jsxRuntimeExports.jsx(me,{name:n,type:c,...a,InputProps:{endAdornment:x,...a.InputProps}})]})},ze=({children:n="Submit",...o})=>{function i(e,t){t=t||{};for(const r in e){const a=e[r];t[r]=a instanceof Object&&a.constructor===Object?i(a,t):!0}return t}return l.jsxRuntimeExports.jsx(B.Field,{name:"submit",type:"submit",children:({form:e})=>l.jsxRuntimeExports.jsx(E.Button,{type:"button",onClick:()=>{e.setTouched(i(e.values),!0).then(t=>{const r=!!(t&&Object.keys(t).length);e.setSubmitting(r),r||e.submitForm()})},...o,children:n})})},Ae=({textFieldProps:n,...o})=>{const{name:i="uk_county",label:e="UK county",placeholder:t="Select your UK county",...r}=n||{};return l.jsxRuntimeExports.jsx(H,{options:O.UK_COUNTIES,textFieldProps:{name:i,label:e,placeholder:t,...r},...o})},Mt=Object.freeze(Object.defineProperty({__proto__:null,ApiAutocompleteField:Ee,AutocompleteField:H,CheckboxField:we,CountryField:Fe,DatePickerField:be,EmailField:Pe,FirstNameField:ke,Form:Se,OtpField:Re,PasswordField:ve,RepeatField:me,SubmitButton:ze,TextField:q,UkCountyField:Ae},Symbol.toStringTag,{value:"Module"}));exports.ApiAutocompleteField=Ee;exports.AutocompleteField=H;exports.CheckboxField=we;exports.CountryField=Fe;exports.DatePickerField=be;exports.EmailField=Pe;exports.FirstNameField=ke;exports.Form=Se;exports.OtpField=Re;exports.PasswordField=ve;exports.RepeatField=me;exports.SubmitButton=ze;exports.TextField=q;exports.UkCountyField=Ae;exports.index=Mt;
|
|
5
|
-
//# sourceMappingURL=index-
|
|
5
|
+
//# sourceMappingURL=index-CIj5ef8a.cjs.map
|