codeforlife 2.8.3 → 2.9.1
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-DFI1RljW.js +28 -0
- package/dist/Countdown-DFI1RljW.js.map +1 -0
- package/dist/Countdown-zY3nMzmi.cjs +2 -0
- package/dist/Countdown-zY3nMzmi.cjs.map +1 -0
- package/dist/Image-D5jC9UoX.js +21 -0
- package/dist/Image-D5jC9UoX.js.map +1 -0
- package/dist/Image-mgT45r_B.cjs +2 -0
- package/dist/Image-mgT45r_B.cjs.map +1 -0
- package/dist/LinkButton-BYFkvL_O.cjs +2 -0
- package/dist/LinkButton-BYFkvL_O.cjs.map +1 -0
- package/dist/LinkButton-oK0RThqn.js +12 -0
- package/dist/LinkButton-oK0RThqn.js.map +1 -0
- package/dist/Navigate-Dq47aqC8.js +25 -0
- package/dist/Navigate-Dq47aqC8.js.map +1 -0
- package/dist/Navigate-dQocLhzN.cjs +2 -0
- package/dist/Navigate-dQocLhzN.cjs.map +1 -0
- package/dist/api/createApi.d.ts +7 -0
- package/dist/api/endpoints/authFactor.d.ts +11 -0
- package/dist/api/endpoints/index.cjs.js +2 -0
- package/dist/api/endpoints/index.cjs.js.map +1 -0
- package/dist/api/endpoints/index.d.ts +9 -0
- package/dist/api/endpoints/index.es.js +78 -0
- package/dist/api/endpoints/index.es.js.map +1 -0
- package/dist/api/endpoints/klass.d.ts +26 -0
- package/dist/api/endpoints/school.d.ts +11 -0
- package/dist/api/endpoints/session.d.ts +9 -0
- package/dist/api/endpoints/user.d.ts +19 -0
- package/dist/api/index.cjs.js +4 -0
- package/dist/api/index.cjs.js.map +1 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.es.js +541 -0
- package/dist/api/index.es.js.map +1 -0
- package/dist/api/models.d.ts +92 -0
- package/dist/api/schemas.d.ts +20 -0
- package/dist/api/tagTypes.d.ts +3 -0
- package/dist/api/urls.d.ts +31 -0
- package/dist/api-Cbyt3rw0.js +92 -0
- package/dist/api-Cbyt3rw0.js.map +1 -0
- package/dist/api-CnMfjRk3.cjs +2 -0
- package/dist/api-CnMfjRk3.cjs.map +1 -0
- package/dist/api-Cs4Y-WeI.js +20 -0
- package/dist/api-Cs4Y-WeI.js.map +1 -0
- package/dist/api-DIgp_6Vr.cjs +2 -0
- package/dist/api-DIgp_6Vr.cjs.map +1 -0
- package/dist/auth-BPfUPjmM.js +237 -0
- package/dist/auth-BPfUPjmM.js.map +1 -0
- package/dist/auth-Vf1MgMci.cjs +2 -0
- package/dist/auth-Vf1MgMci.cjs.map +1 -0
- package/dist/components/App.d.ts +18 -0
- package/dist/components/ClickableTooltip.d.ts +6 -0
- package/dist/components/CopyIconButton.d.ts +7 -0
- package/dist/components/CopyIconButton.test.d.ts +1 -0
- package/dist/components/Countdown.d.ts +9 -0
- package/dist/components/DownloadFileButton.d.ts +13 -0
- package/dist/components/ElevatedAppBar.d.ts +8 -0
- package/dist/components/Image.d.ts +10 -0
- package/dist/components/InputFileButton.d.ts +7 -0
- package/dist/components/ItemizedList.d.ts +11 -0
- package/dist/components/OrderedGrid.d.ts +21 -0
- package/dist/components/ScrollIntoViewLink.d.ts +8 -0
- package/dist/components/SyncError.d.ts +5 -0
- package/dist/components/TablePagination.d.ts +20 -0
- package/dist/components/YouTubeVideo.d.ts +7 -0
- package/dist/components/form/ApiAutocompleteField.d.ts +14 -0
- package/dist/components/form/AutocompleteField.d.ts +11 -0
- package/dist/components/form/CheckboxField.d.ts +11 -0
- package/dist/components/form/CountryField.d.ts +10 -0
- package/dist/components/form/DatePickerField.d.ts +10 -0
- package/dist/components/form/EmailField.d.ts +5 -0
- package/dist/components/form/FirstNameField.d.ts +5 -0
- package/dist/components/form/Form.d.ts +36 -0
- package/dist/components/form/OtpField.d.ts +5 -0
- package/dist/components/form/PasswordField.d.ts +9 -0
- package/dist/components/form/RepeatField.d.ts +9 -0
- package/dist/components/form/SubmitButton.d.ts +6 -0
- package/dist/components/form/TextField.d.ts +14 -0
- package/dist/components/form/UkCountyField.d.ts +10 -0
- package/dist/components/form/index.cjs.js +2 -0
- package/dist/components/form/index.cjs.js.map +1 -0
- package/dist/components/form/index.d.ts +14 -0
- package/dist/components/form/index.es.js +18 -0
- package/dist/components/form/index.es.js.map +1 -0
- package/dist/components/index.cjs.js +11 -0
- package/dist/components/index.cjs.js.map +1 -0
- package/dist/components/index.d.ts +18 -0
- package/dist/components/index.es.js +383 -0
- package/dist/components/index.es.js.map +1 -0
- package/dist/components/page/Banner.d.ts +13 -0
- package/dist/components/page/Notification.d.ts +10 -0
- package/dist/components/page/Page.d.ts +19 -0
- package/dist/components/page/Section.d.ts +7 -0
- package/dist/components/page/TabBar.d.ts +13 -0
- package/dist/components/page/index.cjs.js +2 -0
- package/dist/components/page/index.cjs.js.map +1 -0
- package/dist/components/page/index.d.ts +5 -0
- package/dist/components/page/index.es.js +9 -0
- package/dist/components/page/index.es.js.map +1 -0
- package/dist/components/router/Link.d.ts +9 -0
- package/dist/components/router/LinkButton.d.ts +9 -0
- package/dist/components/router/LinkIconButton.d.ts +9 -0
- package/dist/components/router/LinkListItem.d.ts +9 -0
- package/dist/components/router/LinkTab.d.ts +9 -0
- package/dist/components/router/Navigate.d.ts +15 -0
- package/dist/components/router/index.cjs.js +2 -0
- package/dist/components/router/index.cjs.js.map +1 -0
- package/dist/components/router/index.d.ts +6 -0
- package/dist/components/router/index.es.js +11 -0
- package/dist/components/router/index.es.js.map +1 -0
- package/dist/components/table/CellStack.d.ts +7 -0
- package/dist/components/table/Table.d.ts +12 -0
- package/dist/components/table/index.cjs.js +2 -0
- package/dist/components/table/index.cjs.js.map +1 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.es.js +9 -0
- package/dist/components/table/index.es.js.map +1 -0
- package/dist/en-gb-B_rK7Jx1.js +20 -0
- package/dist/en-gb-B_rK7Jx1.js.map +1 -0
- package/dist/en-gb-CpyEkKq3.cjs +2 -0
- package/dist/en-gb-CpyEkKq3.cjs.map +1 -0
- package/dist/features/InactiveDialog.d.ts +7 -0
- package/dist/features/ScreenTimeDialog.d.ts +7 -0
- package/dist/features/index.cjs.js +2 -0
- package/dist/features/index.cjs.js.map +1 -0
- package/dist/features/index.d.ts +4 -0
- package/dist/features/index.es.js +47 -0
- package/dist/features/index.es.js.map +1 -0
- package/dist/general-BPbbmkeX.cjs +2 -0
- package/dist/general-BPbbmkeX.cjs.map +1 -0
- package/dist/general-CtTJPCJn.js +58 -0
- package/dist/general-CtTJPCJn.js.map +1 -0
- package/dist/hooks/api.d.ts +15 -0
- package/dist/hooks/auth.d.ts +46 -0
- package/{src/hooks/form.tsx → dist/hooks/form.d.ts} +2 -5
- package/dist/hooks/general.d.ts +13 -0
- package/dist/hooks/index.cjs.js +2 -0
- package/dist/hooks/index.cjs.js.map +1 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.es.js +25 -0
- package/dist/hooks/index.es.js.map +1 -0
- package/dist/hooks/router.d.ts +29 -0
- package/dist/index-2W--_sNE.js +30 -0
- package/dist/index-2W--_sNE.js.map +1 -0
- package/dist/index-BUMdUVBH.cjs +5 -0
- package/dist/index-BUMdUVBH.cjs.map +1 -0
- package/dist/index-B_Zy_zwA.cjs +2 -0
- package/dist/index-B_Zy_zwA.cjs.map +1 -0
- package/dist/index-BgsynEGX.cjs +2 -0
- package/dist/index-BgsynEGX.cjs.map +1 -0
- package/dist/index-CA-ugBSa.cjs +2 -0
- package/dist/index-CA-ugBSa.cjs.map +1 -0
- package/dist/index-CNtOlJ49.js +572 -0
- package/dist/index-CNtOlJ49.js.map +1 -0
- package/dist/index-DkM_cG3a.js +237 -0
- package/dist/index-DkM_cG3a.js.map +1 -0
- package/dist/index-Dqp7dpn3.js +1111 -0
- package/dist/index-Dqp7dpn3.js.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.es.js +7 -0
- package/dist/index.es.js.map +1 -0
- package/dist/jsx-runtime-CeSfJrVB.cjs +31 -0
- package/dist/jsx-runtime-CeSfJrVB.cjs.map +1 -0
- package/dist/jsx-runtime-Dpn_P65e.js +634 -0
- package/dist/jsx-runtime-Dpn_P65e.js.map +1 -0
- package/dist/middlewares/index.cjs.js +2 -0
- package/dist/middlewares/index.cjs.js.map +1 -0
- package/dist/middlewares/index.d.ts +1 -0
- package/dist/middlewares/index.es.js +10 -0
- package/dist/middlewares/index.es.js.map +1 -0
- package/dist/middlewares/session.d.ts +2 -0
- package/dist/palette-CE2mKYse.cjs +2 -0
- package/dist/palette-CE2mKYse.cjs.map +1 -0
- package/dist/palette-C_L0akN_.js +43 -0
- package/dist/palette-C_L0akN_.js.map +1 -0
- package/dist/rtk-query.modern-CjetfYPg.js +3038 -0
- package/dist/rtk-query.modern-CjetfYPg.js.map +1 -0
- package/dist/rtk-query.modern-PBCErCqb.cjs +15 -0
- package/dist/rtk-query.modern-PBCErCqb.cjs.map +1 -0
- package/dist/schemas-BZbJpkD5.cjs +2 -0
- package/dist/schemas-BZbJpkD5.cjs.map +1 -0
- package/dist/schemas-DlOtf2vf.js +162 -0
- package/dist/schemas-DlOtf2vf.js.map +1 -0
- package/dist/scripts/index.d.ts +0 -0
- package/dist/server.cjs.js +6 -0
- package/dist/server.cjs.js.map +1 -0
- package/dist/server.d.ts +44 -0
- package/dist/server.es.js +127 -0
- package/dist/server.es.js.map +1 -0
- package/dist/session-CE2U7oL1.cjs +2 -0
- package/dist/session-CE2U7oL1.cjs.map +1 -0
- package/dist/session-CacrgFSv.cjs +2 -0
- package/dist/session-CacrgFSv.cjs.map +1 -0
- package/dist/session-D312kYKk.js +32 -0
- package/dist/session-D312kYKk.js.map +1 -0
- package/dist/session-oI-Ht2C8.js +30 -0
- package/dist/session-oI-Ht2C8.js.map +1 -0
- package/dist/settings/custom.d.ts +11 -0
- package/dist/settings/index.cjs.js +2 -0
- package/dist/settings/index.cjs.js.map +1 -0
- package/dist/settings/index.d.ts +4 -0
- package/dist/settings/index.es.js +17 -0
- package/dist/settings/index.es.js.map +1 -0
- package/dist/settings/vite.d.ts +10 -0
- package/dist/setupTests.d.ts +0 -0
- package/dist/slices/createSlice.d.ts +3 -0
- package/dist/slices/index.cjs.js +2 -0
- package/dist/slices/index.cjs.js.map +1 -0
- package/dist/slices/index.d.ts +2 -0
- package/dist/slices/index.es.js +6 -0
- package/dist/slices/index.es.js.map +1 -0
- package/dist/slices/session.d.ts +28 -0
- package/dist/style.css +1 -0
- package/dist/theme/ThemedBox.d.ts +10 -0
- package/dist/theme/colors.d.ts +18 -0
- package/dist/theme/components/MuiAccordion.d.ts +3 -0
- package/dist/theme/components/MuiAutocomplete.d.ts +3 -0
- package/dist/theme/components/MuiButton.d.ts +3 -0
- package/dist/theme/components/MuiCardActions.d.ts +3 -0
- package/dist/theme/components/MuiCheckbox.d.ts +3 -0
- package/dist/theme/components/MuiContainer.d.ts +3 -0
- package/dist/theme/components/MuiDialog.d.ts +3 -0
- package/dist/theme/components/MuiFormControlLabel.d.ts +3 -0
- package/dist/theme/components/MuiFormHelperText.d.ts +3 -0
- package/dist/theme/components/MuiGrid2.d.ts +3 -0
- package/dist/theme/components/MuiInputBase.d.ts +3 -0
- package/dist/theme/components/MuiLink.d.ts +3 -0
- package/dist/theme/components/MuiList.d.ts +3 -0
- package/dist/theme/components/MuiListItemText.d.ts +3 -0
- package/dist/theme/components/MuiMenu.d.ts +3 -0
- package/dist/theme/components/MuiMenuItem.d.ts +3 -0
- package/dist/theme/components/MuiSelect.d.ts +3 -0
- package/dist/theme/components/MuiTab.d.ts +3 -0
- package/dist/theme/components/MuiTable.d.ts +3 -0
- package/dist/theme/components/MuiTableBody.d.ts +3 -0
- package/dist/theme/components/MuiTableHead.d.ts +3 -0
- package/dist/theme/components/MuiTabs.d.ts +3 -0
- package/dist/theme/components/MuiTextField.d.ts +3 -0
- package/dist/theme/components/MuiToolbar.d.ts +3 -0
- package/dist/theme/components/MuiTypography.d.ts +3 -0
- package/dist/theme/components/_components.d.ts +11 -0
- package/dist/theme/components/index.cjs.js +2 -0
- package/dist/theme/components/index.cjs.js.map +1 -0
- package/dist/theme/components/index.d.ts +3 -0
- package/dist/theme/components/index.es.js +6 -0
- package/dist/theme/components/index.es.js.map +1 -0
- package/dist/theme/index.cjs.js +2 -0
- package/dist/theme/index.cjs.js.map +1 -0
- package/dist/theme/index.d.ts +7 -0
- package/dist/theme/index.es.js +222 -0
- package/dist/theme/index.es.js.map +1 -0
- package/dist/theme/palette.d.ts +79 -0
- package/dist/theme/spacing.d.ts +1 -0
- package/dist/theme/typography.d.ts +4 -0
- package/dist/urls-DtHr1d3H.js +14 -0
- package/dist/urls-DtHr1d3H.js.map +1 -0
- package/dist/urls-MaVXL_C2.cjs +2 -0
- package/dist/urls-MaVXL_C2.cjs.map +1 -0
- package/dist/utils/api.cjs.js +2 -0
- package/dist/utils/api.cjs.js.map +1 -0
- package/dist/utils/api.d.ts +72 -0
- package/dist/utils/api.es.js +16 -0
- package/dist/utils/api.es.js.map +1 -0
- package/dist/utils/api.test.d.ts +1 -0
- package/dist/utils/auth.cjs.js +2 -0
- package/dist/utils/auth.cjs.js.map +1 -0
- package/dist/utils/auth.d.ts +28 -0
- package/dist/utils/auth.es.js +117 -0
- package/dist/utils/auth.es.js.map +1 -0
- package/dist/utils/form.cjs.js +2 -0
- package/dist/utils/form.cjs.js.map +1 -0
- package/dist/utils/form.d.ts +25 -0
- package/dist/utils/form.es.js +76 -0
- package/dist/utils/form.es.js.map +1 -0
- package/dist/utils/form.test.d.ts +1 -0
- package/dist/utils/general.cjs.js +2 -0
- package/dist/utils/general.cjs.js.map +1 -0
- package/dist/utils/general.d.ts +30 -0
- package/{src/utils/general.ts → dist/utils/general.es.js} +87 -165
- package/dist/utils/general.es.js.map +1 -0
- package/dist/utils/general.test.d.ts +1 -0
- package/dist/utils/router.cjs.js +2 -0
- package/dist/utils/router.cjs.js.map +1 -0
- package/dist/utils/router.d.ts +19 -0
- package/dist/utils/router.es.js +33 -0
- package/dist/utils/router.es.js.map +1 -0
- package/dist/utils/router.test.d.ts +1 -0
- package/dist/utils/schema.cjs.js +2 -0
- package/dist/utils/schema.cjs.js.map +1 -0
- package/dist/utils/schema.d.ts +43 -0
- package/dist/utils/schema.es.js +123 -0
- package/dist/utils/schema.es.js.map +1 -0
- package/dist/utils/store.cjs.js +2 -0
- package/dist/utils/store.cjs.js.map +1 -0
- package/dist/utils/store.d.ts +10 -0
- package/dist/utils/store.es.js +20 -0
- package/dist/utils/store.es.js.map +1 -0
- package/dist/utils/test.cjs.js +2 -0
- package/dist/utils/test.cjs.js.map +1 -0
- package/dist/utils/test.d.ts +53 -0
- package/dist/utils/test.es.js +60 -0
- package/dist/utils/test.es.js.map +1 -0
- package/dist/utils/theme.cjs.js +2 -0
- package/dist/utils/theme.cjs.js.map +1 -0
- package/dist/utils/theme.d.ts +11 -0
- package/dist/utils/theme.es.js +12 -0
- package/dist/utils/theme.es.js.map +1 -0
- package/dist/utils/window.cjs.js +2 -0
- package/dist/utils/window.cjs.js.map +1 -0
- package/dist/utils/window.d.ts +2 -0
- package/dist/utils/window.es.js +11 -0
- package/dist/utils/window.es.js.map +1 -0
- package/package.json +142 -37
- package/.github/workflows/main.yml +0 -55
- package/.prettierignore +0 -1
- package/CHANGELOG.md +0 -2027
- package/CONTRIBUTING.md +0 -3
- package/eslint.config.js +0 -17
- package/src/api/createApi.ts +0 -91
- package/src/api/endpoints/authFactor.ts +0 -31
- package/src/api/endpoints/index.ts +0 -9
- package/src/api/endpoints/klass.ts +0 -87
- package/src/api/endpoints/school.ts +0 -34
- package/src/api/endpoints/session.ts +0 -47
- package/src/api/endpoints/user.ts +0 -70
- package/src/api/index.ts +0 -5
- package/src/api/models.ts +0 -145
- package/src/api/schemas.ts +0 -243
- package/src/api/tagTypes.ts +0 -12
- package/src/api/urls.ts +0 -13
- package/src/components/App.css +0 -38
- package/src/components/App.tsx +0 -152
- package/src/components/ClickableTooltip.tsx +0 -43
- package/src/components/CopyIconButton.test.tsx +0 -16
- package/src/components/CopyIconButton.tsx +0 -27
- package/src/components/Countdown.tsx +0 -42
- package/src/components/DownloadFileButton.tsx +0 -55
- package/src/components/ElevatedAppBar.tsx +0 -41
- package/src/components/Image.tsx +0 -41
- package/src/components/InputFileButton.tsx +0 -27
- package/src/components/ItemizedList.tsx +0 -63
- package/src/components/OrderedGrid.tsx +0 -92
- package/src/components/ScrollIntoViewLink.tsx +0 -22
- package/src/components/SyncError.tsx +0 -14
- package/src/components/TablePagination.tsx +0 -142
- package/src/components/YouTubeVideo.tsx +0 -26
- package/src/components/form/ApiAutocompleteField.tsx +0 -187
- package/src/components/form/AutocompleteField.tsx +0 -135
- package/src/components/form/CheckboxField.tsx +0 -86
- package/src/components/form/CountryField.tsx +0 -75
- package/src/components/form/DatePickerField.tsx +0 -126
- package/src/components/form/EmailField.tsx +0 -38
- package/src/components/form/FirstNameField.tsx +0 -40
- package/src/components/form/Form.tsx +0 -165
- package/src/components/form/OtpField.tsx +0 -28
- package/src/components/form/PasswordField.tsx +0 -71
- package/src/components/form/RepeatField.tsx +0 -123
- package/src/components/form/SubmitButton.tsx +0 -57
- package/src/components/form/TextField.tsx +0 -150
- package/src/components/form/UkCountyField.tsx +0 -68
- package/src/components/form/index.tsx +0 -35
- package/src/components/index.ts +0 -28
- package/src/components/page/Banner.tsx +0 -95
- package/src/components/page/Notification.tsx +0 -71
- package/src/components/page/Page.tsx +0 -73
- package/src/components/page/Section.tsx +0 -21
- package/src/components/page/TabBar.tsx +0 -131
- package/src/components/page/index.ts +0 -10
- package/src/components/router/Link.tsx +0 -23
- package/src/components/router/LinkButton.tsx +0 -22
- package/src/components/router/LinkIconButton.tsx +0 -22
- package/src/components/router/LinkListItem.tsx +0 -22
- package/src/components/router/LinkTab.tsx +0 -22
- package/src/components/router/Navigate.tsx +0 -33
- package/src/components/router/index.tsx +0 -9
- package/src/components/table/CellStack.tsx +0 -19
- package/src/components/table/Table.tsx +0 -55
- package/src/components/table/index.tsx +0 -8
- package/src/features/InactiveDialog.tsx +0 -40
- package/src/features/ScreenTimeDialog.tsx +0 -30
- package/src/features/index.ts +0 -4
- package/src/fonts/ttf/Inter-VariableFont_slnt,wght.ttf +0 -0
- package/src/fonts/ttf/SpaceGrotesk-VariableFont_wght.ttf +0 -0
- package/src/hooks/api.tsx +0 -39
- package/src/hooks/auth.tsx +0 -397
- package/src/hooks/general.tsx +0 -110
- package/src/hooks/index.ts +0 -5
- package/src/hooks/router.tsx +0 -168
- package/src/images/svg/brain.svg +0 -1
- package/src/index.ts +0 -2
- package/src/middlewares/index.ts +0 -1
- package/src/middlewares/session.ts +0 -21
- package/src/scripts/freshDesk.js +0 -473
- package/src/scripts/index.ts +0 -1
- package/src/server.js +0 -187
- package/src/settings/custom.ts +0 -22
- package/src/settings/index.ts +0 -7
- package/src/settings/vite.ts +0 -26
- package/src/setupTests.ts +0 -2
- package/src/slices/createSlice.ts +0 -8
- package/src/slices/index.ts +0 -2
- package/src/slices/session.ts +0 -32
- package/src/theme/ThemedBox.tsx +0 -265
- package/src/theme/colors.ts +0 -57
- package/src/theme/components/MuiAccordion.tsx +0 -13
- package/src/theme/components/MuiAutocomplete.tsx +0 -11
- package/src/theme/components/MuiButton.ts +0 -70
- package/src/theme/components/MuiCardActions.tsx +0 -12
- package/src/theme/components/MuiCheckbox.ts +0 -12
- package/src/theme/components/MuiContainer.ts +0 -19
- package/src/theme/components/MuiDialog.tsx +0 -16
- package/src/theme/components/MuiFormControlLabel.ts +0 -18
- package/src/theme/components/MuiFormHelperText.ts +0 -12
- package/src/theme/components/MuiGrid2.ts +0 -16
- package/src/theme/components/MuiInputBase.ts +0 -14
- package/src/theme/components/MuiLink.ts +0 -41
- package/src/theme/components/MuiList.ts +0 -12
- package/src/theme/components/MuiListItemText.ts +0 -18
- package/src/theme/components/MuiMenu.ts +0 -14
- package/src/theme/components/MuiMenuItem.ts +0 -15
- package/src/theme/components/MuiSelect.ts +0 -16
- package/src/theme/components/MuiTab.ts +0 -29
- package/src/theme/components/MuiTable.ts +0 -29
- package/src/theme/components/MuiTableBody.ts +0 -15
- package/src/theme/components/MuiTableHead.ts +0 -26
- package/src/theme/components/MuiTabs.ts +0 -26
- package/src/theme/components/MuiTextField.ts +0 -86
- package/src/theme/components/MuiToolbar.ts +0 -11
- package/src/theme/components/MuiTypography.ts +0 -12
- package/src/theme/components/_components.ts +0 -95
- package/src/theme/components/index.ts +0 -57
- package/src/theme/index.ts +0 -25
- package/src/theme/palette.ts +0 -98
- package/src/theme/spacing.ts +0 -8
- package/src/theme/typography.ts +0 -101
- package/src/utils/api.test.ts +0 -19
- package/src/utils/api.tsx +0 -339
- package/src/utils/auth.ts +0 -78
- package/src/utils/form.test.ts +0 -50
- package/src/utils/form.ts +0 -193
- package/src/utils/general.test.ts +0 -55
- package/src/utils/router.test.ts +0 -156
- package/src/utils/router.ts +0 -67
- package/src/utils/schema.ts +0 -290
- package/src/utils/store.ts +0 -31
- package/src/utils/test.tsx +0 -82
- package/src/utils/theme.tsx +0 -83
- package/src/utils/window.ts +0 -11
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.app.json +0 -4
- package/tsconfig.json +0 -7
- package/tsconfig.node.json +0 -4
- package/types/fixes.d.ts +0 -18
- package/vite.config.ts +0 -23
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { FetchBaseQueryError, TypedUseMutationResult, TypedUseQueryHookResult, TypedUseQueryStateResult } from '@reduxjs/toolkit/query/react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { Optional, Required } from './general';
|
|
4
|
+
import { SchemaMap } from './schema';
|
|
5
|
+
export type Fields = Record<string, unknown>;
|
|
6
|
+
export interface Tag<Type extends string> {
|
|
7
|
+
type: Type;
|
|
8
|
+
id: string;
|
|
9
|
+
}
|
|
10
|
+
export type ModelId = string | number;
|
|
11
|
+
/**
|
|
12
|
+
* A data model.
|
|
13
|
+
* Id: The type of Id.
|
|
14
|
+
* Data: The data fields.
|
|
15
|
+
*/
|
|
16
|
+
export type Model<Id extends ModelId, MFields extends Fields = Fields> = {
|
|
17
|
+
id: Id;
|
|
18
|
+
} & Omit<MFields, "id">;
|
|
19
|
+
export type Schemas<M extends Model<any>> = {
|
|
20
|
+
[K in keyof M]-?: SchemaMap<M[K]>;
|
|
21
|
+
};
|
|
22
|
+
export type Result<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never> = Pick<M, "id" | MFields>;
|
|
23
|
+
export type Arg<M extends Model<any>, RequiredFields extends keyof Omit<M, "id">, OptionalFields extends keyof Omit<M, "id" | RequiredFields> = never> = Required<M, RequiredFields> & Optional<M, OptionalFields>;
|
|
24
|
+
export type CreateResult<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never> = Result<M, MFields>;
|
|
25
|
+
export type CreateArg<M extends Model<any>, RequiredFields extends keyof Omit<M, "id">, OptionalFields extends keyof Omit<M, "id" | RequiredFields> = never> = Arg<M, RequiredFields, OptionalFields>;
|
|
26
|
+
export type BulkCreateResult<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never, ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
|
|
27
|
+
export type BulkCreateArg<M extends Model<any>, RequiredFields extends keyof Omit<M, "id">, OptionalFields extends keyof Omit<M, "id" | RequiredFields> = never, ExtraFields extends Fields = Fields> = Array<Arg<M, RequiredFields, OptionalFields> & ExtraFields>;
|
|
28
|
+
export type RetrieveResult<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never> = Result<M, MFields>;
|
|
29
|
+
export type RetrieveArg<M extends Model<any>> = M["id"];
|
|
30
|
+
export interface ListResult<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never, ExtraFields extends Fields = Fields> {
|
|
31
|
+
count: number;
|
|
32
|
+
offset: number;
|
|
33
|
+
limit: number;
|
|
34
|
+
max_limit: number;
|
|
35
|
+
data: Array<Result<M, MFields> & ExtraFields>;
|
|
36
|
+
}
|
|
37
|
+
export type ListArg<Filters extends Fields = Fields> = {
|
|
38
|
+
limit: number;
|
|
39
|
+
offset: number;
|
|
40
|
+
} & Partial<Omit<Filters, "limit" | "offset">>;
|
|
41
|
+
export type UpdateResult<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never> = Result<M, MFields>;
|
|
42
|
+
type UpdateWithBody<M extends Model<any>, RequiredFields extends keyof Omit<M, "id">, OptionalFields extends keyof Omit<M, "id" | RequiredFields>> = Pick<M, "id"> & Arg<M, RequiredFields, OptionalFields>;
|
|
43
|
+
export type UpdateArg<M extends Model<any>, RequiredFields extends keyof Omit<M, "id"> = never, OptionalFields extends keyof Omit<M, "id" | RequiredFields> = never> = [RequiredFields] extends [never] ? [OptionalFields] extends [never] ? M["id"] : UpdateWithBody<M, RequiredFields, OptionalFields> : UpdateWithBody<M, RequiredFields, OptionalFields>;
|
|
44
|
+
export type BulkUpdateResult<M extends Model<any>, MFields extends keyof Omit<M, "id"> = never, ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
|
|
45
|
+
export type BulkUpdateArg<M extends Model<any>, RequiredFields extends keyof Omit<M, "id">, OptionalFields extends keyof Omit<M, "id" | RequiredFields> = never, ExtraFields extends Fields = Fields> = Record<M["id"], Arg<M, RequiredFields, OptionalFields> & ExtraFields>;
|
|
46
|
+
export type DestroyResult = null;
|
|
47
|
+
export type DestroyArg<M extends Model<any>> = M["id"];
|
|
48
|
+
export type BulkDestroyResult = null;
|
|
49
|
+
export type BulkDestroyArg<M extends Model<any>> = Array<M["id"]>;
|
|
50
|
+
export declare function buildUrl(url: string, params: {
|
|
51
|
+
search?: Fields;
|
|
52
|
+
url?: Fields;
|
|
53
|
+
}): string;
|
|
54
|
+
export declare function isModelId(value: unknown): boolean;
|
|
55
|
+
export declare function listTag<Type extends string>(type: Type): Tag<Type>;
|
|
56
|
+
export type TagDataOptions = Partial<{
|
|
57
|
+
includeListTag: boolean;
|
|
58
|
+
argKeysAreIds: boolean;
|
|
59
|
+
id: string;
|
|
60
|
+
}>;
|
|
61
|
+
export declare function tagData<Type extends string, M extends Model<any>>(type: Type, options?: TagDataOptions): (result: Result<M, any> | Array<Result<M, any>> | ListResult<M, any> | null | undefined, error: FetchBaseQueryError | undefined, arg: Arg<M, any> | Array<Arg<M, any>> | Record<M["id"], Arg<M, any>> | ListArg<any> | Array<M["id"]> | string | number | undefined) => Array<Tag<Type>>;
|
|
62
|
+
export declare function modelUrls(list: string, detail: string): {
|
|
63
|
+
list: string;
|
|
64
|
+
detail: string;
|
|
65
|
+
};
|
|
66
|
+
export type HandleQueryStateOptions = Partial<{
|
|
67
|
+
loading: ReactNode;
|
|
68
|
+
error: ReactNode;
|
|
69
|
+
}>;
|
|
70
|
+
export declare function handleResultState<QueryArg, ResultType>(result: TypedUseQueryHookResult<ResultType, QueryArg, any> | TypedUseQueryStateResult<ResultType, QueryArg, any> | TypedUseMutationResult<ResultType, QueryArg, any>, children: (data: NonNullable<ResultType>) => ReactNode, options?: HandleQueryStateOptions): ReactNode;
|
|
71
|
+
export declare function isSafeHttpMethod(method: string): boolean;
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import "../jsx-runtime-Dpn_P65e.js";
|
|
2
|
+
import "@mui/material";
|
|
3
|
+
import "react";
|
|
4
|
+
import "./general.es.js";
|
|
5
|
+
import "yup";
|
|
6
|
+
import { b as e, h as m, a as p, i as d, l as h, m as b, t as f } from "../api-Cbyt3rw0.js";
|
|
7
|
+
export {
|
|
8
|
+
e as buildUrl,
|
|
9
|
+
m as handleResultState,
|
|
10
|
+
p as isModelId,
|
|
11
|
+
d as isSafeHttpMethod,
|
|
12
|
+
h as listTag,
|
|
13
|
+
b as modelUrls,
|
|
14
|
+
f as tagData
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=api.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("js-cookie"),n=require("../settings/index.cjs.js"),E=require("./general.cjs.js");function i(){o.remove(n.SESSION_COOKIE_NAME),o.remove(n.SESSION_METADATA_COOKIE_NAME)}function c(){return o.get(n.CSRF_COOKIE_NAME)}function g(t,e){return`oauth2.${t}.${e}`}const u=["S256"],C=[43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128];async function O(t){const e=E.generateSecureRandomString(t),r=new TextEncoder().encode(e),a=await window.crypto.subtle.digest("SHA-256",r);return{verifier:e,challenge:btoa(String.fromCharCode(...new Uint8Array(a))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),method:"S256"}}exports.OAUTH2_CODE_CHALLENGE_LENGTHS=C;exports.OAUTH2_CODE_CHALLENGE_METHODS=u;exports.generateOAuth2CodeChallenge=O;exports.getCsrfCookie=c;exports.logout=i;exports.makeOAuth2StorageKey=g;
|
|
2
|
+
//# sourceMappingURL=auth.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.cjs.js","sources":["../../src/utils/auth.ts"],"sourcesContent":["import Cookies from \"js-cookie\"\n\nimport {\n CSRF_COOKIE_NAME,\n SESSION_COOKIE_NAME,\n SESSION_METADATA_COOKIE_NAME,\n} from \"../settings\"\nimport { generateSecureRandomString } from \"./general\"\n\nexport function logout() {\n Cookies.remove(SESSION_COOKIE_NAME)\n Cookies.remove(SESSION_METADATA_COOKIE_NAME)\n}\n\n// https://docs.djangoproject.com/en/3.2/ref/csrf/\nexport function getCsrfCookie() {\n return Cookies.get(CSRF_COOKIE_NAME)\n}\n\nexport function makeOAuth2StorageKey(provider: string, key: string) {\n return `oauth2.${provider}.${key}`\n}\n\nexport const OAUTH2_CODE_CHALLENGE_METHODS = [\"S256\"] as const\n\nexport type OAuth2CodeChallengeMethods =\n (typeof OAUTH2_CODE_CHALLENGE_METHODS)[number]\n\nexport const OAUTH2_CODE_CHALLENGE_LENGTHS = [\n 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,\n 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,\n] as const\n\nexport type OAuth2CodeChallengeLengths =\n (typeof OAUTH2_CODE_CHALLENGE_LENGTHS)[number]\n\nexport type OAuth2RequestCodeUrlSearchParams = {\n client_id: string\n redirect_uri: string\n scope: string\n response_type: string\n access_type: string\n prompt?: string\n state: string\n code_challenge: string\n code_challenge_method: string\n}\n\nexport type OAuth2ReceiveCodeUrlSearchParams = {\n code: string\n state: string\n}\n\nexport type OAuth2CodeChallenge = {\n verifier: string\n challenge: string\n method: OAuth2CodeChallengeMethods\n}\n\nexport async function generateOAuth2CodeChallenge(\n length: OAuth2CodeChallengeLengths,\n): Promise<OAuth2CodeChallenge> {\n const verifier = generateSecureRandomString(length)\n const data = new TextEncoder().encode(verifier)\n const digest = await window.crypto.subtle.digest(\"SHA-256\", data)\n\n return {\n verifier,\n challenge: btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\"),\n method: \"S256\",\n }\n}\n"],"names":["logout","Cookies","SESSION_COOKIE_NAME","SESSION_METADATA_COOKIE_NAME","getCsrfCookie","CSRF_COOKIE_NAME","makeOAuth2StorageKey","provider","key","OAUTH2_CODE_CHALLENGE_METHODS","OAUTH2_CODE_CHALLENGE_LENGTHS","generateOAuth2CodeChallenge","length","verifier","generateSecureRandomString","data","digest"],"mappings":"iLASO,SAASA,GAAS,CACvBC,EAAQ,OAAOC,qBAAmB,EAClCD,EAAQ,OAAOE,8BAA4B,CAC7C,CAGO,SAASC,GAAgB,CAC9B,OAAOH,EAAQ,IAAII,kBAAgB,CACrC,CAEO,SAASC,EAAqBC,EAAkBC,EAAa,CAClE,MAAO,UAAUD,CAAQ,IAAIC,CAAG,EAClC,CAEO,MAAMC,EAAgC,CAAC,MAAM,EAKvCC,EAAgC,CAC3C,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACnE,EA4BA,eAAsBC,EACpBC,EAC8B,CAC9B,MAAMC,EAAWC,EAAAA,2BAA2BF,CAAM,EAC5CG,EAAO,IAAI,cAAc,OAAOF,CAAQ,EACxCG,EAAS,MAAM,OAAO,OAAO,OAAO,OAAO,UAAWD,CAAI,EAEhE,MAAO,CACL,SAAAF,EACA,UAAW,KAAK,OAAO,aAAa,GAAG,IAAI,WAAWG,CAAM,CAAC,CAAC,EAC3D,QAAQ,MAAO,GAAG,EAClB,QAAQ,MAAO,GAAG,EAClB,QAAQ,MAAO,EAAE,EACpB,OAAQ,MAAA,CAEZ"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare function logout(): void;
|
|
2
|
+
export declare function getCsrfCookie(): string | undefined;
|
|
3
|
+
export declare function makeOAuth2StorageKey(provider: string, key: string): string;
|
|
4
|
+
export declare const OAUTH2_CODE_CHALLENGE_METHODS: readonly ["S256"];
|
|
5
|
+
export type OAuth2CodeChallengeMethods = (typeof OAUTH2_CODE_CHALLENGE_METHODS)[number];
|
|
6
|
+
export declare const OAUTH2_CODE_CHALLENGE_LENGTHS: readonly [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128];
|
|
7
|
+
export type OAuth2CodeChallengeLengths = (typeof OAUTH2_CODE_CHALLENGE_LENGTHS)[number];
|
|
8
|
+
export type OAuth2RequestCodeUrlSearchParams = {
|
|
9
|
+
client_id: string;
|
|
10
|
+
redirect_uri: string;
|
|
11
|
+
scope: string;
|
|
12
|
+
response_type: string;
|
|
13
|
+
access_type: string;
|
|
14
|
+
prompt?: string;
|
|
15
|
+
state: string;
|
|
16
|
+
code_challenge: string;
|
|
17
|
+
code_challenge_method: string;
|
|
18
|
+
};
|
|
19
|
+
export type OAuth2ReceiveCodeUrlSearchParams = {
|
|
20
|
+
code: string;
|
|
21
|
+
state: string;
|
|
22
|
+
};
|
|
23
|
+
export type OAuth2CodeChallenge = {
|
|
24
|
+
verifier: string;
|
|
25
|
+
challenge: string;
|
|
26
|
+
method: OAuth2CodeChallengeMethods;
|
|
27
|
+
};
|
|
28
|
+
export declare function generateOAuth2CodeChallenge(length: OAuth2CodeChallengeLengths): Promise<OAuth2CodeChallenge>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import o from "js-cookie";
|
|
2
|
+
import { CSRF_COOKIE_NAME as a, SESSION_COOKIE_NAME as c, SESSION_METADATA_COOKIE_NAME as i } from "../settings/index.es.js";
|
|
3
|
+
import { generateSecureRandomString as E } from "./general.es.js";
|
|
4
|
+
function g() {
|
|
5
|
+
o.remove(c), o.remove(i);
|
|
6
|
+
}
|
|
7
|
+
function A() {
|
|
8
|
+
return o.get(a);
|
|
9
|
+
}
|
|
10
|
+
function _(t, e) {
|
|
11
|
+
return `oauth2.${t}.${e}`;
|
|
12
|
+
}
|
|
13
|
+
const u = ["S256"], m = [
|
|
14
|
+
43,
|
|
15
|
+
44,
|
|
16
|
+
45,
|
|
17
|
+
46,
|
|
18
|
+
47,
|
|
19
|
+
48,
|
|
20
|
+
49,
|
|
21
|
+
50,
|
|
22
|
+
51,
|
|
23
|
+
52,
|
|
24
|
+
53,
|
|
25
|
+
54,
|
|
26
|
+
55,
|
|
27
|
+
56,
|
|
28
|
+
57,
|
|
29
|
+
58,
|
|
30
|
+
59,
|
|
31
|
+
60,
|
|
32
|
+
61,
|
|
33
|
+
62,
|
|
34
|
+
63,
|
|
35
|
+
64,
|
|
36
|
+
65,
|
|
37
|
+
66,
|
|
38
|
+
67,
|
|
39
|
+
68,
|
|
40
|
+
69,
|
|
41
|
+
70,
|
|
42
|
+
71,
|
|
43
|
+
72,
|
|
44
|
+
73,
|
|
45
|
+
74,
|
|
46
|
+
75,
|
|
47
|
+
76,
|
|
48
|
+
77,
|
|
49
|
+
78,
|
|
50
|
+
79,
|
|
51
|
+
80,
|
|
52
|
+
81,
|
|
53
|
+
82,
|
|
54
|
+
83,
|
|
55
|
+
84,
|
|
56
|
+
85,
|
|
57
|
+
86,
|
|
58
|
+
87,
|
|
59
|
+
88,
|
|
60
|
+
89,
|
|
61
|
+
90,
|
|
62
|
+
91,
|
|
63
|
+
92,
|
|
64
|
+
93,
|
|
65
|
+
94,
|
|
66
|
+
95,
|
|
67
|
+
96,
|
|
68
|
+
97,
|
|
69
|
+
98,
|
|
70
|
+
99,
|
|
71
|
+
100,
|
|
72
|
+
101,
|
|
73
|
+
102,
|
|
74
|
+
103,
|
|
75
|
+
104,
|
|
76
|
+
105,
|
|
77
|
+
106,
|
|
78
|
+
107,
|
|
79
|
+
108,
|
|
80
|
+
109,
|
|
81
|
+
110,
|
|
82
|
+
111,
|
|
83
|
+
112,
|
|
84
|
+
113,
|
|
85
|
+
114,
|
|
86
|
+
115,
|
|
87
|
+
116,
|
|
88
|
+
117,
|
|
89
|
+
118,
|
|
90
|
+
119,
|
|
91
|
+
120,
|
|
92
|
+
121,
|
|
93
|
+
122,
|
|
94
|
+
123,
|
|
95
|
+
124,
|
|
96
|
+
125,
|
|
97
|
+
126,
|
|
98
|
+
127,
|
|
99
|
+
128
|
|
100
|
+
];
|
|
101
|
+
async function s(t) {
|
|
102
|
+
const e = E(t), r = new TextEncoder().encode(e), n = await window.crypto.subtle.digest("SHA-256", r);
|
|
103
|
+
return {
|
|
104
|
+
verifier: e,
|
|
105
|
+
challenge: btoa(String.fromCharCode(...new Uint8Array(n))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, ""),
|
|
106
|
+
method: "S256"
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export {
|
|
110
|
+
m as OAUTH2_CODE_CHALLENGE_LENGTHS,
|
|
111
|
+
u as OAUTH2_CODE_CHALLENGE_METHODS,
|
|
112
|
+
s as generateOAuth2CodeChallenge,
|
|
113
|
+
A as getCsrfCookie,
|
|
114
|
+
g as logout,
|
|
115
|
+
_ as makeOAuth2StorageKey
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=auth.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.es.js","sources":["../../src/utils/auth.ts"],"sourcesContent":["import Cookies from \"js-cookie\"\n\nimport {\n CSRF_COOKIE_NAME,\n SESSION_COOKIE_NAME,\n SESSION_METADATA_COOKIE_NAME,\n} from \"../settings\"\nimport { generateSecureRandomString } from \"./general\"\n\nexport function logout() {\n Cookies.remove(SESSION_COOKIE_NAME)\n Cookies.remove(SESSION_METADATA_COOKIE_NAME)\n}\n\n// https://docs.djangoproject.com/en/3.2/ref/csrf/\nexport function getCsrfCookie() {\n return Cookies.get(CSRF_COOKIE_NAME)\n}\n\nexport function makeOAuth2StorageKey(provider: string, key: string) {\n return `oauth2.${provider}.${key}`\n}\n\nexport const OAUTH2_CODE_CHALLENGE_METHODS = [\"S256\"] as const\n\nexport type OAuth2CodeChallengeMethods =\n (typeof OAUTH2_CODE_CHALLENGE_METHODS)[number]\n\nexport const OAUTH2_CODE_CHALLENGE_LENGTHS = [\n 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,\n 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,\n] as const\n\nexport type OAuth2CodeChallengeLengths =\n (typeof OAUTH2_CODE_CHALLENGE_LENGTHS)[number]\n\nexport type OAuth2RequestCodeUrlSearchParams = {\n client_id: string\n redirect_uri: string\n scope: string\n response_type: string\n access_type: string\n prompt?: string\n state: string\n code_challenge: string\n code_challenge_method: string\n}\n\nexport type OAuth2ReceiveCodeUrlSearchParams = {\n code: string\n state: string\n}\n\nexport type OAuth2CodeChallenge = {\n verifier: string\n challenge: string\n method: OAuth2CodeChallengeMethods\n}\n\nexport async function generateOAuth2CodeChallenge(\n length: OAuth2CodeChallengeLengths,\n): Promise<OAuth2CodeChallenge> {\n const verifier = generateSecureRandomString(length)\n const data = new TextEncoder().encode(verifier)\n const digest = await window.crypto.subtle.digest(\"SHA-256\", data)\n\n return {\n verifier,\n challenge: btoa(String.fromCharCode(...new Uint8Array(digest)))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\"),\n method: \"S256\",\n }\n}\n"],"names":["logout","Cookies","SESSION_COOKIE_NAME","SESSION_METADATA_COOKIE_NAME","getCsrfCookie","CSRF_COOKIE_NAME","makeOAuth2StorageKey","provider","key","OAUTH2_CODE_CHALLENGE_METHODS","OAUTH2_CODE_CHALLENGE_LENGTHS","generateOAuth2CodeChallenge","length","verifier","generateSecureRandomString","data","digest"],"mappings":";;;AASO,SAASA,IAAS;AACvB,EAAAC,EAAQ,OAAOC,CAAmB,GAClCD,EAAQ,OAAOE,CAA4B;AAC7C;AAGO,SAASC,IAAgB;AAC9B,SAAOH,EAAQ,IAAII,CAAgB;AACrC;AAEO,SAASC,EAAqBC,GAAkBC,GAAa;AAClE,SAAO,UAAUD,CAAQ,IAAIC,CAAG;AAClC;AAEO,MAAMC,IAAgC,CAAC,MAAM,GAKvCC,IAAgC;AAAA,EAC3C;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACxE;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACxE;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACxE;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACtE;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AACnE;AA4BA,eAAsBC,EACpBC,GAC8B;AAC9B,QAAMC,IAAWC,EAA2BF,CAAM,GAC5CG,IAAO,IAAI,cAAc,OAAOF,CAAQ,GACxCG,IAAS,MAAM,OAAO,OAAO,OAAO,OAAO,WAAWD,CAAI;AAEhE,SAAO;AAAA,IACL,UAAAF;AAAA,IACA,WAAW,KAAK,OAAO,aAAa,GAAG,IAAI,WAAWG,CAAM,CAAC,CAAC,EAC3D,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,GAAG,EAClB,QAAQ,OAAO,EAAE;AAAA,IACpB,QAAQ;AAAA,EAAA;AAEZ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("yup"),f=require("./general.cjs.js");function m(t){return typeof t=="object"&&t!==null&&"status"in t&&t.status===400&&"data"in t&&typeof t.data=="object"&&t.data!==null}function g(t,n){if(!m(t))throw t;const i=Object.fromEntries(Object.entries(t.data).map(([e,a])=>(Array.isArray(a)&&(a=a.join(". ")),[e,a])));n(i)}function F(t,n,i){const{include:e,onlyDirtyValues:a=!1,then:s,catch:y,finally:d}=i||{};let{exclude:c=[]}=i||{};return(l,u)=>{let o=i&&i.clean?i.clean(l):l;a&&(c=[...c,...j(l,n).filter(r=>!c.includes(r))]),e&&(c=c.filter(r=>!e.includes(r))),c.length&&(o=f.excludeKeyPaths(o,c)),t(o).unwrap().then(r=>{s&&s(r,l,u)}).catch(r=>{y&&y(r,l,u),g(r,u.setErrors)}).finally(()=>{d&&d(l,u)})}}function D(t,n){return async i=>{try{await t.validate(i,n)}catch(e){if(e instanceof E.ValidationError)return e.errors.join(". ");throw e}}}function b(t,n,i){return i||(i=f.getKeyPaths(t)),Object.fromEntries(i.map(e=>[e,h(t,n,e)]))}function h(t,n,i){const e=f.getNestedProperty(t,i),a=f.getNestedProperty(n,i);return e!==a}function j(t,n,i){return Object.entries(b(t,n,i)).filter(([e,a])=>!a).map(([e])=>e)}exports.getCleanNames=j;exports.getDirty=b;exports.isDirty=h;exports.isFormError=m;exports.schemaToFieldValidator=D;exports.setFormErrors=g;exports.submitForm=F;
|
|
2
|
+
//# sourceMappingURL=form.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.cjs.js","sources":["../../src/utils/form.ts"],"sourcesContent":["import type { FieldValidator, FormikHelpers } from \"formik\"\nimport { type Schema, type ValidateOptions, ValidationError } from \"yup\"\nimport type { TypedMutationTrigger } from \"@reduxjs/toolkit/query/react\"\n\nimport { excludeKeyPaths, getKeyPaths, getNestedProperty } from \"./general\"\n\nexport type FormValues = Record<string, any>\n\nexport function isFormError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n error.status === 400 &&\n \"data\" in error &&\n typeof error.data === \"object\" &&\n error.data !== null\n )\n}\n\nexport function setFormErrors(\n error: unknown,\n setErrors: (errors: object) => void,\n): void {\n if (!isFormError(error)) throw error\n\n const data = Object.fromEntries(\n Object.entries((error as { data: object }).data).map(([field, errors]) => {\n if (Array.isArray(errors)) errors = errors.join(\". \")\n return [field, errors]\n }),\n )\n\n setErrors(data)\n}\n\nexport type SubmitFormOptions<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n> = Partial<{\n exclude: string[]\n include: string[]\n onlyDirtyValues: boolean\n then: (\n result: ResultType,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n catch: (\n error: unknown,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n finally: (values: Values, helpers: FormikHelpers<Values>) => void\n}> &\n (Values extends QueryArg\n ? { clean?: (values: Values) => QueryArg }\n : { clean: (values: Values) => QueryArg })\n\nexport type SubmitFormHandler<Values extends FormValues> = (\n values: Values,\n helpers: FormikHelpers<Values>,\n) => void | Promise<any>\n\nexport function submitForm<\n Values extends QueryArg,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values> {\n const {\n include,\n onlyDirtyValues = false,\n then,\n catch: _catch,\n finally: _finally,\n } = options || {}\n let { exclude = [] } = options || {}\n\n return (values, helpers) => {\n let arg =\n options && options.clean\n ? options.clean(values as QueryArg & FormValues)\n : (values as unknown as QueryArg)\n\n if (onlyDirtyValues) {\n exclude = [\n ...exclude,\n ...getCleanNames(values, initialValues).filter(\n cleanName => !exclude.includes(cleanName),\n ),\n ]\n }\n\n if (include) exclude = exclude.filter(name => !include.includes(name))\n\n if (exclude.length) arg = excludeKeyPaths(arg, exclude) as QueryArg\n\n trigger(arg)\n .unwrap()\n .then(result => {\n if (then) then(result, values, helpers)\n })\n .catch(error => {\n if (_catch) _catch(error, values, helpers)\n setFormErrors(error, helpers.setErrors)\n })\n .finally(() => {\n if (_finally) _finally(values, helpers)\n })\n }\n}\n\nexport function schemaToFieldValidator(\n schema: Schema,\n options?: ValidateOptions,\n): FieldValidator {\n return async value => {\n try {\n await schema.validate(value, options)\n } catch (error) {\n if (error instanceof ValidationError) {\n return error.errors.join(\". \")\n }\n\n throw error\n }\n }\n}\n\n// Checking if individual fields are dirty is not currently supported.\n// https://github.com/jaredpalmer/formik/issues/1421\nexport function getDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): Record<string, boolean> {\n if (!names) names = getKeyPaths(values)\n\n return Object.fromEntries(\n names.map(name => [name, isDirty(values, initialValues, name)]),\n )\n}\n\nexport function isDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n name: string,\n): boolean {\n const value: unknown = getNestedProperty(values, name)\n const initialValue: unknown = getNestedProperty(initialValues, name)\n\n return value !== initialValue\n}\n\nexport function getCleanNames<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): string[] {\n return Object.entries(getDirty(values, initialValues, names))\n .filter(\n ([\n _, // eslint-disable-line @typescript-eslint/no-unused-vars\n isDirty,\n ]) => !isDirty,\n )\n .map(([name]) => name)\n}\n"],"names":["isFormError","error","setFormErrors","setErrors","data","field","errors","submitForm","trigger","initialValues","options","include","onlyDirtyValues","then","_catch","_finally","exclude","values","helpers","arg","getCleanNames","cleanName","name","excludeKeyPaths","result","schemaToFieldValidator","schema","value","ValidationError","getDirty","names","getKeyPaths","isDirty","getNestedProperty","initialValue","_"],"mappings":"qIAQO,SAASA,EAAYC,EAAyB,CACnD,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,WAAYA,GACZA,EAAM,SAAW,KACjB,SAAUA,GACV,OAAOA,EAAM,MAAS,UACtBA,EAAM,OAAS,IAEnB,CAEO,SAASC,EACdD,EACAE,EACM,CACN,GAAI,CAACH,EAAYC,CAAK,EAAG,MAAMA,EAE/B,MAAMG,EAAO,OAAO,YAClB,OAAO,QAASH,EAA2B,IAAI,EAAE,IAAI,CAAC,CAACI,EAAOC,CAAM,KAC9D,MAAM,QAAQA,CAAM,IAAGA,EAASA,EAAO,KAAK,IAAI,GAC7C,CAACD,EAAOC,CAAM,EACtB,CAAA,EAGHH,EAAUC,CAAI,CAChB,CAmDO,SAASG,EAKdC,EACAC,EACAC,EAC2B,CAC3B,KAAM,CACJ,QAAAC,EACA,gBAAAC,EAAkB,GAClB,KAAAC,EACA,MAAOC,EACP,QAASC,CAAA,EACPL,GAAW,CAAA,EACf,GAAI,CAAE,QAAAM,EAAU,EAAC,EAAMN,GAAW,CAAA,EAElC,MAAO,CAACO,EAAQC,IAAY,CAC1B,IAAIC,EACFT,GAAWA,EAAQ,MACfA,EAAQ,MAAMO,CAA+B,EAC5CA,EAEHL,IACFI,EAAU,CACR,GAAGA,EACH,GAAGI,EAAcH,EAAQR,CAAa,EAAE,OACtCY,GAAa,CAACL,EAAQ,SAASK,CAAS,CAAA,CAC1C,GAIAV,MAAmBK,EAAQ,UAAe,CAACL,EAAQ,SAASW,CAAI,CAAC,GAEjEN,EAAQ,SAAQG,EAAMI,EAAAA,gBAAgBJ,EAAKH,CAAO,GAEtDR,EAAQW,CAAG,EACR,OAAA,EACA,KAAKK,GAAU,CACVX,GAAMA,EAAKW,EAAQP,EAAQC,CAAO,CACxC,CAAC,EACA,MAAMjB,GAAS,CACVa,GAAQA,EAAOb,EAAOgB,EAAQC,CAAO,EACzChB,EAAcD,EAAOiB,EAAQ,SAAS,CACxC,CAAC,EACA,QAAQ,IAAM,CACTH,GAAUA,EAASE,EAAQC,CAAO,CACxC,CAAC,CACL,CACF,CAEO,SAASO,EACdC,EACAhB,EACgB,CAChB,MAAO,OAAMiB,GAAS,CACpB,GAAI,CACF,MAAMD,EAAO,SAASC,EAAOjB,CAAO,CACtC,OAAST,EAAO,CACd,GAAIA,aAAiB2B,EAAAA,gBACnB,OAAO3B,EAAM,OAAO,KAAK,IAAI,EAG/B,MAAMA,CACR,CACF,CACF,CAIO,SAAS4B,EACdZ,EACAR,EACAqB,EACyB,CACzB,OAAKA,IAAOA,EAAQC,EAAAA,YAAYd,CAAM,GAE/B,OAAO,YACZa,EAAM,IAAIR,GAAQ,CAACA,EAAMU,EAAQf,EAAQR,EAAea,CAAI,CAAC,CAAC,CAAA,CAElE,CAEO,SAASU,EACdf,EACAR,EACAa,EACS,CACT,MAAMK,EAAiBM,EAAAA,kBAAkBhB,EAAQK,CAAI,EAC/CY,EAAwBD,EAAAA,kBAAkBxB,EAAea,CAAI,EAEnE,OAAOK,IAAUO,CACnB,CAEO,SAASd,EACdH,EACAR,EACAqB,EACU,CACV,OAAO,OAAO,QAAQD,EAASZ,EAAQR,EAAeqB,CAAK,CAAC,EACzD,OACC,CAAC,CACCK,EACAH,CAAA,IACI,CAACA,CAAA,EAER,IAAI,CAAC,CAACV,CAAI,IAAMA,CAAI,CACzB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FieldValidator, FormikHelpers } from 'formik';
|
|
2
|
+
import { Schema, ValidateOptions } from 'yup';
|
|
3
|
+
import { TypedMutationTrigger } from '@reduxjs/toolkit/query/react';
|
|
4
|
+
export type FormValues = Record<string, any>;
|
|
5
|
+
export declare function isFormError(error: unknown): boolean;
|
|
6
|
+
export declare function setFormErrors(error: unknown, setErrors: (errors: object) => void): void;
|
|
7
|
+
export type SubmitFormOptions<Values extends FormValues, QueryArg extends FormValues, ResultType> = Partial<{
|
|
8
|
+
exclude: string[];
|
|
9
|
+
include: string[];
|
|
10
|
+
onlyDirtyValues: boolean;
|
|
11
|
+
then: (result: ResultType, values: Values, helpers: FormikHelpers<Values>) => void;
|
|
12
|
+
catch: (error: unknown, values: Values, helpers: FormikHelpers<Values>) => void;
|
|
13
|
+
finally: (values: Values, helpers: FormikHelpers<Values>) => void;
|
|
14
|
+
}> & (Values extends QueryArg ? {
|
|
15
|
+
clean?: (values: Values) => QueryArg;
|
|
16
|
+
} : {
|
|
17
|
+
clean: (values: Values) => QueryArg;
|
|
18
|
+
});
|
|
19
|
+
export type SubmitFormHandler<Values extends FormValues> = (values: Values, helpers: FormikHelpers<Values>) => void | Promise<any>;
|
|
20
|
+
export declare function submitForm<Values extends QueryArg, QueryArg extends FormValues, ResultType>(trigger: TypedMutationTrigger<ResultType, QueryArg, any>, initialValues: Values, options?: SubmitFormOptions<Values, QueryArg, ResultType>): SubmitFormHandler<Values>;
|
|
21
|
+
export declare function submitForm<Values extends FormValues, QueryArg extends FormValues, ResultType>(trigger: TypedMutationTrigger<ResultType, QueryArg, any>, initialValues: Values, options: SubmitFormOptions<Values, QueryArg, ResultType>): SubmitFormHandler<Values>;
|
|
22
|
+
export declare function schemaToFieldValidator(schema: Schema, options?: ValidateOptions): FieldValidator;
|
|
23
|
+
export declare function getDirty<Values extends FormValues>(values: Values, initialValues: Values, names?: string[]): Record<string, boolean>;
|
|
24
|
+
export declare function isDirty<Values extends FormValues>(values: Values, initialValues: Values, name: string): boolean;
|
|
25
|
+
export declare function getCleanNames<Values extends FormValues>(values: Values, initialValues: Values, names?: string[]): string[];
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ValidationError as m } from "yup";
|
|
2
|
+
import { excludeKeyPaths as h, getKeyPaths as j, getNestedProperty as s } from "./general.es.js";
|
|
3
|
+
function b(t) {
|
|
4
|
+
return typeof t == "object" && t !== null && "status" in t && t.status === 400 && "data" in t && typeof t.data == "object" && t.data !== null;
|
|
5
|
+
}
|
|
6
|
+
function g(t, a) {
|
|
7
|
+
if (!b(t)) throw t;
|
|
8
|
+
const i = Object.fromEntries(
|
|
9
|
+
Object.entries(t.data).map(([n, c]) => (Array.isArray(c) && (c = c.join(". ")), [n, c]))
|
|
10
|
+
);
|
|
11
|
+
a(i);
|
|
12
|
+
}
|
|
13
|
+
function p(t, a, i) {
|
|
14
|
+
const {
|
|
15
|
+
include: n,
|
|
16
|
+
onlyDirtyValues: c = !1,
|
|
17
|
+
then: o,
|
|
18
|
+
catch: y,
|
|
19
|
+
finally: d
|
|
20
|
+
} = i || {};
|
|
21
|
+
let { exclude: f = [] } = i || {};
|
|
22
|
+
return (r, l) => {
|
|
23
|
+
let u = i && i.clean ? i.clean(r) : r;
|
|
24
|
+
c && (f = [
|
|
25
|
+
...f,
|
|
26
|
+
...F(r, a).filter(
|
|
27
|
+
(e) => !f.includes(e)
|
|
28
|
+
)
|
|
29
|
+
]), n && (f = f.filter((e) => !n.includes(e))), f.length && (u = h(u, f)), t(u).unwrap().then((e) => {
|
|
30
|
+
o && o(e, r, l);
|
|
31
|
+
}).catch((e) => {
|
|
32
|
+
y && y(e, r, l), g(e, l.setErrors);
|
|
33
|
+
}).finally(() => {
|
|
34
|
+
d && d(r, l);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function x(t, a) {
|
|
39
|
+
return async (i) => {
|
|
40
|
+
try {
|
|
41
|
+
await t.validate(i, a);
|
|
42
|
+
} catch (n) {
|
|
43
|
+
if (n instanceof m)
|
|
44
|
+
return n.errors.join(". ");
|
|
45
|
+
throw n;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function E(t, a, i) {
|
|
50
|
+
return i || (i = j(t)), Object.fromEntries(
|
|
51
|
+
i.map((n) => [n, w(t, a, n)])
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
function w(t, a, i) {
|
|
55
|
+
const n = s(t, i), c = s(a, i);
|
|
56
|
+
return n !== c;
|
|
57
|
+
}
|
|
58
|
+
function F(t, a, i) {
|
|
59
|
+
return Object.entries(E(t, a, i)).filter(
|
|
60
|
+
([
|
|
61
|
+
n,
|
|
62
|
+
// eslint-disable-line @typescript-eslint/no-unused-vars
|
|
63
|
+
c
|
|
64
|
+
]) => !c
|
|
65
|
+
).map(([n]) => n);
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
F as getCleanNames,
|
|
69
|
+
E as getDirty,
|
|
70
|
+
w as isDirty,
|
|
71
|
+
b as isFormError,
|
|
72
|
+
x as schemaToFieldValidator,
|
|
73
|
+
g as setFormErrors,
|
|
74
|
+
p as submitForm
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=form.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.es.js","sources":["../../src/utils/form.ts"],"sourcesContent":["import type { FieldValidator, FormikHelpers } from \"formik\"\nimport { type Schema, type ValidateOptions, ValidationError } from \"yup\"\nimport type { TypedMutationTrigger } from \"@reduxjs/toolkit/query/react\"\n\nimport { excludeKeyPaths, getKeyPaths, getNestedProperty } from \"./general\"\n\nexport type FormValues = Record<string, any>\n\nexport function isFormError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n error.status === 400 &&\n \"data\" in error &&\n typeof error.data === \"object\" &&\n error.data !== null\n )\n}\n\nexport function setFormErrors(\n error: unknown,\n setErrors: (errors: object) => void,\n): void {\n if (!isFormError(error)) throw error\n\n const data = Object.fromEntries(\n Object.entries((error as { data: object }).data).map(([field, errors]) => {\n if (Array.isArray(errors)) errors = errors.join(\". \")\n return [field, errors]\n }),\n )\n\n setErrors(data)\n}\n\nexport type SubmitFormOptions<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n> = Partial<{\n exclude: string[]\n include: string[]\n onlyDirtyValues: boolean\n then: (\n result: ResultType,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n catch: (\n error: unknown,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n finally: (values: Values, helpers: FormikHelpers<Values>) => void\n}> &\n (Values extends QueryArg\n ? { clean?: (values: Values) => QueryArg }\n : { clean: (values: Values) => QueryArg })\n\nexport type SubmitFormHandler<Values extends FormValues> = (\n values: Values,\n helpers: FormikHelpers<Values>,\n) => void | Promise<any>\n\nexport function submitForm<\n Values extends QueryArg,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values> {\n const {\n include,\n onlyDirtyValues = false,\n then,\n catch: _catch,\n finally: _finally,\n } = options || {}\n let { exclude = [] } = options || {}\n\n return (values, helpers) => {\n let arg =\n options && options.clean\n ? options.clean(values as QueryArg & FormValues)\n : (values as unknown as QueryArg)\n\n if (onlyDirtyValues) {\n exclude = [\n ...exclude,\n ...getCleanNames(values, initialValues).filter(\n cleanName => !exclude.includes(cleanName),\n ),\n ]\n }\n\n if (include) exclude = exclude.filter(name => !include.includes(name))\n\n if (exclude.length) arg = excludeKeyPaths(arg, exclude) as QueryArg\n\n trigger(arg)\n .unwrap()\n .then(result => {\n if (then) then(result, values, helpers)\n })\n .catch(error => {\n if (_catch) _catch(error, values, helpers)\n setFormErrors(error, helpers.setErrors)\n })\n .finally(() => {\n if (_finally) _finally(values, helpers)\n })\n }\n}\n\nexport function schemaToFieldValidator(\n schema: Schema,\n options?: ValidateOptions,\n): FieldValidator {\n return async value => {\n try {\n await schema.validate(value, options)\n } catch (error) {\n if (error instanceof ValidationError) {\n return error.errors.join(\". \")\n }\n\n throw error\n }\n }\n}\n\n// Checking if individual fields are dirty is not currently supported.\n// https://github.com/jaredpalmer/formik/issues/1421\nexport function getDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): Record<string, boolean> {\n if (!names) names = getKeyPaths(values)\n\n return Object.fromEntries(\n names.map(name => [name, isDirty(values, initialValues, name)]),\n )\n}\n\nexport function isDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n name: string,\n): boolean {\n const value: unknown = getNestedProperty(values, name)\n const initialValue: unknown = getNestedProperty(initialValues, name)\n\n return value !== initialValue\n}\n\nexport function getCleanNames<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): string[] {\n return Object.entries(getDirty(values, initialValues, names))\n .filter(\n ([\n _, // eslint-disable-line @typescript-eslint/no-unused-vars\n isDirty,\n ]) => !isDirty,\n )\n .map(([name]) => name)\n}\n"],"names":["isFormError","error","setFormErrors","setErrors","data","field","errors","submitForm","trigger","initialValues","options","include","onlyDirtyValues","then","_catch","_finally","exclude","values","helpers","arg","getCleanNames","cleanName","name","excludeKeyPaths","result","schemaToFieldValidator","schema","value","ValidationError","getDirty","names","getKeyPaths","isDirty","getNestedProperty","initialValue","_"],"mappings":";;AAQO,SAASA,EAAYC,GAAyB;AACnD,SACE,OAAOA,KAAU,YACjBA,MAAU,QACV,YAAYA,KACZA,EAAM,WAAW,OACjB,UAAUA,KACV,OAAOA,EAAM,QAAS,YACtBA,EAAM,SAAS;AAEnB;AAEO,SAASC,EACdD,GACAE,GACM;AACN,MAAI,CAACH,EAAYC,CAAK,EAAG,OAAMA;AAE/B,QAAMG,IAAO,OAAO;AAAA,IAClB,OAAO,QAASH,EAA2B,IAAI,EAAE,IAAI,CAAC,CAACI,GAAOC,CAAM,OAC9D,MAAM,QAAQA,CAAM,MAAGA,IAASA,EAAO,KAAK,IAAI,IAC7C,CAACD,GAAOC,CAAM,EACtB;AAAA,EAAA;AAGH,EAAAH,EAAUC,CAAI;AAChB;AAmDO,SAASG,EAKdC,GACAC,GACAC,GAC2B;AAC3B,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,MAAAC;AAAA,IACA,OAAOC;AAAA,IACP,SAASC;AAAA,EAAA,IACPL,KAAW,CAAA;AACf,MAAI,EAAE,SAAAM,IAAU,GAAC,IAAMN,KAAW,CAAA;AAElC,SAAO,CAACO,GAAQC,MAAY;AAC1B,QAAIC,IACFT,KAAWA,EAAQ,QACfA,EAAQ,MAAMO,CAA+B,IAC5CA;AAEP,IAAIL,MACFI,IAAU;AAAA,MACR,GAAGA;AAAA,MACH,GAAGI,EAAcH,GAAQR,CAAa,EAAE;AAAA,QACtC,CAAAY,MAAa,CAACL,EAAQ,SAASK,CAAS;AAAA,MAAA;AAAA,IAC1C,IAIAV,UAAmBK,EAAQ,OAAO,OAAQ,CAACL,EAAQ,SAASW,CAAI,CAAC,IAEjEN,EAAQ,WAAQG,IAAMI,EAAgBJ,GAAKH,CAAO,IAEtDR,EAAQW,CAAG,EACR,OAAA,EACA,KAAK,CAAAK,MAAU;AACd,MAAIX,KAAMA,EAAKW,GAAQP,GAAQC,CAAO;AAAA,IACxC,CAAC,EACA,MAAM,CAAAjB,MAAS;AACd,MAAIa,KAAQA,EAAOb,GAAOgB,GAAQC,CAAO,GACzChB,EAAcD,GAAOiB,EAAQ,SAAS;AAAA,IACxC,CAAC,EACA,QAAQ,MAAM;AACb,MAAIH,KAAUA,EAASE,GAAQC,CAAO;AAAA,IACxC,CAAC;AAAA,EACL;AACF;AAEO,SAASO,EACdC,GACAhB,GACgB;AAChB,SAAO,OAAMiB,MAAS;AACpB,QAAI;AACF,YAAMD,EAAO,SAASC,GAAOjB,CAAO;AAAA,IACtC,SAAST,GAAO;AACd,UAAIA,aAAiB2B;AACnB,eAAO3B,EAAM,OAAO,KAAK,IAAI;AAG/B,YAAMA;AAAA,IACR;AAAA,EACF;AACF;AAIO,SAAS4B,EACdZ,GACAR,GACAqB,GACyB;AACzB,SAAKA,MAAOA,IAAQC,EAAYd,CAAM,IAE/B,OAAO;AAAA,IACZa,EAAM,IAAI,CAAAR,MAAQ,CAACA,GAAMU,EAAQf,GAAQR,GAAea,CAAI,CAAC,CAAC;AAAA,EAAA;AAElE;AAEO,SAASU,EACdf,GACAR,GACAa,GACS;AACT,QAAMK,IAAiBM,EAAkBhB,GAAQK,CAAI,GAC/CY,IAAwBD,EAAkBxB,GAAea,CAAI;AAEnE,SAAOK,MAAUO;AACnB;AAEO,SAASd,EACdH,GACAR,GACAqB,GACU;AACV,SAAO,OAAO,QAAQD,EAASZ,GAAQR,GAAeqB,CAAK,CAAC,EACzD;AAAA,IACC,CAAC;AAAA,MACCK;AAAA;AAAA,MACAH;AAAAA,IAAA,MACI,CAACA;AAAAA,EAAA,EAER,IAAI,CAAC,CAACV,CAAI,MAAMA,CAAI;AACzB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function h(n,a="_blank"){window.open(n,a)}function S(n,a){return(...e)=>{n.before!==void 0&&n.before(...e);let i;return a!==void 0&&(i=a(...e)),n.after!==void 0&&n.after(...e),i}}function u(n){Object.entries(n).forEach(([a,e])=>{typeof e=="object"&&u(e);const i=a.replace(/_+[a-z]/g,r=>r[r.length-1].toUpperCase());delete n[a],n[i]=e})}function d(n){Object.entries(n).forEach(([a,e])=>{typeof e=="object"&&d(e);const i=a.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`);delete n[a],n[i]=e})}const c=new Date(0,0,0),M=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],C=["Andorra","United Arab Emirates (the)","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Åland Islands","Azerbaijan","Bosnia and Herzegovina","Barbados","Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Saint Barthélemy","Bermuda","Brunei Darussalam","Bolivia (Plurinational State of)","Bonaire, Sint Eustatius and Saba","Brazil","Bahamas (the)","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands (the)","Congo (the Democratic Republic of the)","Central African Republic (the)","Congo (the)","Switzerland","Côte d'Ivoire","Cook Islands (the)","Chile","Cameroon","China","Colombia","Costa Rica","Cuba","Cabo Verde","Curaçao","Christmas Island","Cyprus","Czechia","Germany","Djibouti","Denmark","Dominica","Dominican Republic (the","Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji","Falkland Islands (the) [Malvinas]","Micronesia (Federated States of)","Faroe Islands (the)","France","Gabon","United Kingdom of Great Britain and Northern Ireland (the)","Grenada","Georgia","French Guiana","Guernsey","Ghana","Gibraltar","Greenland","Gambia (the)","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala","Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia","Ireland","Israel","Isle of Man","India","British Indian Ocean Territory (the)","Iraq","Iran (Islamic Republic of)","Iceland","Italy","Jersey","Jamaica","Jordan","Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros (the)","Saint Kitts and Nevis","Korea (the Democratic People's Republic of)","Korea (the Republic of)","Kuwait","Cayman Islands (the)","Kazakhstan","Lao People's Democratic Republic (the)","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania","Luxembourg","Latvia","Libya","Morocco","Monaco","Moldova (the Republic of)","Montenegro","Saint Martin (French part)","Madagascar","Marshall Islands (the)","Republic of North Macedonia","Mali","Myanmar","Mongolia","Macao","Northern Mariana Islands (the)","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives","Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger (the)","Norfolk Island","Nigeria","Nicaragua","Netherlands (the)","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia","Papua New Guinea","Philippines (the)","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn","Puerto Rico","Palestine, State of","Portugal","Palau","Paraguay","Qatar","Réunion","Romania","Serbia","Russian Federation (the)","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan (the)","Sweden","Singapore","Saint Helena, Ascension and Tristan da Cunha","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname","South Sudan","Sao Tome and Principe","El Salvador","Sint Maarten (Dutch part)","Syrian Arab Republic","Eswatini","Turks and Caicos Islands (the)","Chad","French Southern Territories (the)","Togo","Thailand","Tajikistan","Tokelau","Timor-Leste","Turkmenistan","Tunisia","Tonga","Turkey","Trinidad and Tobago","Tuvalu","Taiwan (Province of China)","Tanzania, United Republic of","Ukraine","Uganda","United States Minor Outlying Islands (the)","United States of America (the)","Uruguay","Uzbekistan","Holy See (the)","Saint Vincent and the Grenadines","Venezuela (Bolivarian Republic of)","Virgin Islands (British)","Virgin Islands (U.S.)","Viet Nam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","South Africa","Zambia","Zimbabwe"],I={AD:"Andorra",AE:"United Arab Emirates (the)",AF:"Afghanistan",AG:"Antigua and Barbuda",AI:"Anguilla",AL:"Albania",AM:"Armenia",AO:"Angola",AQ:"Antarctica",AR:"Argentina",AS:"American Samoa",AT:"Austria",AU:"Australia",AW:"Aruba",AX:"Åland Islands",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BB:"Barbados",BD:"Bangladesh",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BL:"Saint Barthélemy",BM:"Bermuda",BN:"Brunei Darussalam",BO:"Bolivia (Plurinational State of)",BQ:"Bonaire, Sint Eustatius and Saba",BR:"Brazil",BS:"Bahamas (the)",BT:"Bhutan",BV:"Bouvet Island",BW:"Botswana",BY:"Belarus",BZ:"Belize",CA:"Canada",CC:"Cocos (Keeling) Islands (the)",CD:"Congo (the Democratic Republic of the)",CF:"Central African Republic (the)",CG:"Congo (the)",CH:"Switzerland",CI:"Côte d'Ivoire",CK:"Cook Islands (the)",CL:"Chile",CM:"Cameroon",CN:"China",CO:"Colombia",CR:"Costa Rica",CU:"Cuba",CV:"Cabo Verde",CW:"Curaçao",CX:"Christmas Island",CY:"Cyprus",CZ:"Czechia",DE:"Germany",DJ:"Djibouti",DK:"Denmark",DM:"Dominica",DO:"Dominican Republic (the",DZ:"Algeria",EC:"Ecuador",EE:"Estonia",EG:"Egypt",EH:"Western Sahara",ER:"Eritrea",ES:"Spain",ET:"Ethiopia",FI:"Finland",FJ:"Fiji",FK:"Falkland Islands (the) [Malvinas]",FM:"Micronesia (Federated States of)",FO:"Faroe Islands (the)",FR:"France",GA:"Gabon",GB:"United Kingdom of Great Britain and Northern Ireland (the)",GD:"Grenada",GE:"Georgia",GF:"French Guiana",GG:"Guernsey",GH:"Ghana",GI:"Gibraltar",GL:"Greenland",GM:"Gambia (the)",GN:"Guinea",GP:"Guadeloupe",GQ:"Equatorial Guinea",GR:"Greece",GS:"South Georgia and the South Sandwich Islands",GT:"Guatemala",GU:"Guam",GW:"Guinea-Bissau",GY:"Guyana",HK:"Hong Kong",HM:"Heard Island and McDonald Islands",HN:"Honduras",HR:"Croatia",HT:"Haiti",HU:"Hungary",ID:"Indonesia",IE:"Ireland",IL:"Israel",IM:"Isle of Man",IN:"India",IO:"British Indian Ocean Territory (the)",IQ:"Iraq",IR:"Iran (Islamic Republic of)",IS:"Iceland",IT:"Italy",JE:"Jersey",JM:"Jamaica",JO:"Jordan",JP:"Japan",KE:"Kenya",KG:"Kyrgyzstan",KH:"Cambodia",KI:"Kiribati",KM:"Comoros (the)",KN:"Saint Kitts and Nevis",KP:"Korea (the Democratic People's Republic of)",KR:"Korea (the Republic of)",KW:"Kuwait",KY:"Cayman Islands (the)",KZ:"Kazakhstan",LA:"Lao People's Democratic Republic (the)",LB:"Lebanon",LC:"Saint Lucia",LI:"Liechtenstein",LK:"Sri Lanka",LR:"Liberia",LS:"Lesotho",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",LY:"Libya",MA:"Morocco",MC:"Monaco",MD:"Moldova (the Republic of)",ME:"Montenegro",MF:"Saint Martin (French part)",MG:"Madagascar",MH:"Marshall Islands (the)",MK:"Republic of North Macedonia",ML:"Mali",MM:"Myanmar",MN:"Mongolia",MO:"Macao",MP:"Northern Mariana Islands (the)",MQ:"Martinique",MR:"Mauritania",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MV:"Maldives",MW:"Malawi",MX:"Mexico",MY:"Malaysia",MZ:"Mozambique",NA:"Namibia",NC:"New Caledonia",NE:"Niger (the)",NF:"Norfolk Island",NG:"Nigeria",NI:"Nicaragua",NL:"Netherlands (the)",NO:"Norway",NP:"Nepal",NR:"Nauru",NU:"Niue",NZ:"New Zealand",OM:"Oman",PA:"Panama",PE:"Peru",PF:"French Polynesia",PG:"Papua New Guinea",PH:"Philippines (the)",PK:"Pakistan",PL:"Poland",PM:"Saint Pierre and Miquelon",PN:"Pitcairn",PR:"Puerto Rico",PS:"Palestine, State of",PT:"Portugal",PW:"Palau",PY:"Paraguay",QA:"Qatar",RE:"Réunion",RO:"Romania",RS:"Serbia",RU:"Russian Federation (the)",RW:"Rwanda",SA:"Saudi Arabia",SB:"Solomon Islands",SC:"Seychelles",SD:"Sudan (the)",SE:"Sweden",SG:"Singapore",SH:"Saint Helena, Ascension and Tristan da Cunha",SI:"Slovenia",SJ:"Svalbard and Jan Mayen",SK:"Slovakia",SL:"Sierra Leone",SM:"San Marino",SN:"Senegal",SO:"Somalia",SR:"Suriname",SS:"South Sudan",ST:"Sao Tome and Principe",SV:"El Salvador",SX:"Sint Maarten (Dutch part)",SY:"Syrian Arab Republic",SZ:"Eswatini",TC:"Turks and Caicos Islands (the)",TD:"Chad",TF:"French Southern Territories (the)",TG:"Togo",TH:"Thailand",TJ:"Tajikistan",TK:"Tokelau",TL:"Timor-Leste",TM:"Turkmenistan",TN:"Tunisia",TO:"Tonga",TR:"Turkey",TT:"Trinidad and Tobago",TV:"Tuvalu",TW:"Taiwan (Province of China)",TZ:"Tanzania, United Republic of",UA:"Ukraine",UG:"Uganda",UM:"United States Minor Outlying Islands (the)",US:"United States of America (the)",UY:"Uruguay",UZ:"Uzbekistan",VA:"Holy See (the)",VC:"Saint Vincent and the Grenadines",VE:"Venezuela (Bolivarian Republic of)",VG:"Virgin Islands (British)",VI:"Virgin Islands (U.S.)",VN:"Viet Nam",VU:"Vanuatu",WF:"Wallis and Futuna",WS:"Samoa",YE:"Yemen",YT:"Mayotte",ZA:"South Africa",ZM:"Zambia",ZW:"Zimbabwe"},m=["Aberdeen City","Aberdeenshire","Angus","Argyll and Bute","Bedfordshire","Belfast","Belfast Greater","Berkshire","Blaenau Gwent","Bridgend","Buckinghamshire","Caerphilly","Cambridgeshire","Cardiff","Carmarthenshire","Ceredigion","Channel Islands","Cheshire","City of Edinburgh","Clackmannanshire","Conwy","Cornwall","County Antrim","County Armagh","County Down","County Fermanagh","County Londonderry","County Tyrone","County of Bristol","Cumbria","Denbighshire","Derbyshire","Devon","Dorset","Dumfries and Galloway","Dunbartonshire","Dundee City","Durham","East Ayrshire","East Dunbartonshire","East Lothian","East Renfrewshire","East Riding of Yorkshire","East Sussex","Essex","Falkirk","Fife","Flintshire","Glasgow City","Gloucestershire","Greater London","Greater Manchester","Guernsey Channel Islands","Gwynedd","Hampshire","Hereford and Worcester","Herefordshire","Hertfordshire","Highland","Inverclyde","Inverness","Isle of Anglesey","Isle of Barra","Isle of Man","Isle of Wight","Jersey Channel Islands","Kent","Lancashire","Leicestershire","Lincolnshire","Merseyside","Merthyr Tydfil","Midlothian","Monmouthshire","Moray","Neath Port Talbot","Newport","Norfolk","North Ayrshire","North Lanarkshire","North Yorkshire","Northamptonshire","Northumberland","Nottinghamshire","Orkney","Orkney Islands","Oxfordshire","Pembrokeshire","Perth and Kinross","Powys","Renfrewshire","Rhondda Cynon Taff","Rutland","Scottish Borders","Shetland Islands","Shropshire","Somerset","South Ayrshire","South Lanarkshire","South Yorkshire","Staffordshire","Stirling","Suffolk","Surrey","Swansea","Torfaen","Tyne and Wear","Vale of Glamorgan","Warwickshire","West Dunbart","West Lothian","West Midlands","West Sussex","West Yorkshire","Western Isles","Wiltshire","Worcestershire","Wrexham"];function G(n,a){typeof a=="string"&&(a=a.split("."));let e=n;for(let i=0;i<a.length;i++)if(e=e[a[i]],i!==a.length-1&&(typeof e!="object"||e===null))return;return e}function A(n,a="."){function e(i,r){return Object.fromEntries(Object.entries(i).map(([s,t])=>{const o=[...r,s];return typeof t=="object"&&t!==null&&(t=e(t,o)),[o.join(a),t]}))}return e(n,[])}function T(n,a="."){function e(i,r){return Object.entries(i).map(([s,t])=>{const o=[...r,s],l=o.join(a);return typeof t=="object"&&t!==null?[l,...e(t,o)]:[l]}).flat()}return e(n,[])}function g(n,a,e="."){function i(r,s){return Object.fromEntries(Object.entries(r).map(([t,o])=>{const l=[...s,t];return typeof o=="object"&&o!==null&&!(o instanceof Date)&&(o=i(o,l)),a.includes(l.join(e))?[]:[t,o]}).filter(t=>t.length))}return a.length?i(n,[]):n}function B(n,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){const e=window.crypto.getRandomValues(new Uint8Array(n));let i="";for(let r=0;r<n;r++)i+=a.charAt(e[r]%a.length);return i}exports.COUNTRIES=C;exports.COUNTRY_ISO_CODES=M;exports.COUNTRY_ISO_CODE_MAPPING=I;exports.MIN_DATE=c;exports.UK_COUNTIES=m;exports.camelCaseToSnakeCase=d;exports.excludeKeyPaths=g;exports.generateSecureRandomString=B;exports.getKeyPaths=T;exports.getNestedProperty=G;exports.openInNewTab=h;exports.snakeCaseToCamelCase=u;exports.withKeyPaths=A;exports.wrap=S;
|
|
2
|
+
//# sourceMappingURL=general.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general.cjs.js","sources":["../../src/utils/general.ts"],"sourcesContent":["export type Required<T, K extends keyof T> = { [P in K]-?: T[P] }\nexport type Optional<T, K extends keyof T> = Partial<Pick<T, K>>\nexport type OptionalPropertyNames<T> = {\n [K in keyof T]-?: {} extends { [P in K]: T[K] } ? K : never\n}[keyof T]\nexport type IsOptional<T, K extends keyof T> =\n K extends OptionalPropertyNames<T> ? true : false\n\nexport function openInNewTab(url: string, target = \"_blank\"): void {\n window.open(url, target)\n}\n\nexport function wrap(\n newFn: {\n before?: (...args: any[]) => void\n after?: (...args: any[]) => void\n },\n fn?: (...args: any[]) => any,\n): (...args: any[]) => any {\n return (...args) => {\n if (newFn.before !== undefined) {\n newFn.before(...(args as unknown[]))\n }\n let value\n if (fn !== undefined) {\n value = fn(...(args as unknown[])) as unknown\n }\n if (newFn.after !== undefined) {\n newFn.after(...(args as unknown[]))\n }\n return value\n }\n}\n\nexport function snakeCaseToCamelCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([snakeKey, value]) => {\n if (typeof value === \"object\") snakeCaseToCamelCase(value as object)\n\n const camelKey = snakeKey.replace(/_+[a-z]/g, _char =>\n _char[_char.length - 1].toUpperCase(),\n )\n\n delete obj[snakeKey]\n obj[camelKey] = value as unknown\n })\n}\n\nexport function camelCaseToSnakeCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([camelKey, value]) => {\n if (typeof value === \"object\") camelCaseToSnakeCase(value as object)\n\n const snakeKey = camelKey.replace(\n /[A-Z]/g,\n char => `_${char.toLowerCase()}`,\n )\n\n delete obj[camelKey]\n obj[snakeKey] = value as unknown\n })\n}\n\nexport const MIN_DATE = new Date(0, 0, 0)\n\nexport const COUNTRY_ISO_CODES = [\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AI\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AQ\",\n \"AR\",\n \"AS\",\n \"AT\",\n \"AU\",\n \"AW\",\n \"AX\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BL\",\n \"BM\",\n \"BN\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BV\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CC\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CK\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CW\",\n \"CX\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"FI\",\n \"FJ\",\n \"FK\",\n \"FM\",\n \"FO\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GF\",\n \"GG\",\n \"GH\",\n \"GI\",\n \"GL\",\n \"GM\",\n \"GN\",\n \"GP\",\n \"GQ\",\n \"GR\",\n \"GS\",\n \"GT\",\n \"GU\",\n \"GW\",\n \"GY\",\n \"HK\",\n \"HM\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IM\",\n \"IN\",\n \"IO\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KY\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MF\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MP\",\n \"MQ\",\n \"MR\",\n \"MS\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NC\",\n \"NE\",\n \"NF\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PF\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PM\",\n \"PN\",\n \"PR\",\n \"PS\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"RE\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SH\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SX\",\n \"SY\",\n \"SZ\",\n \"TC\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TK\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TW\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UM\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VA\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\",\n \"VN\",\n \"VU\",\n \"WF\",\n \"WS\",\n \"YE\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\",\n] as const\n\nexport type CountryIsoCodes = (typeof COUNTRY_ISO_CODES)[number]\n\nexport const COUNTRIES = [\n \"Andorra\",\n \"United Arab Emirates (the)\",\n \"Afghanistan\",\n \"Antigua and Barbuda\",\n \"Anguilla\",\n \"Albania\",\n \"Armenia\",\n \"Angola\",\n \"Antarctica\",\n \"Argentina\",\n \"American Samoa\",\n \"Austria\",\n \"Australia\",\n \"Aruba\",\n \"Åland Islands\",\n \"Azerbaijan\",\n \"Bosnia and Herzegovina\",\n \"Barbados\",\n \"Bangladesh\",\n \"Belgium\",\n \"Burkina Faso\",\n \"Bulgaria\",\n \"Bahrain\",\n \"Burundi\",\n \"Benin\",\n \"Saint Barthélemy\",\n \"Bermuda\",\n \"Brunei Darussalam\",\n \"Bolivia (Plurinational State of)\",\n \"Bonaire, Sint Eustatius and Saba\",\n \"Brazil\",\n \"Bahamas (the)\",\n \"Bhutan\",\n \"Bouvet Island\",\n \"Botswana\",\n \"Belarus\",\n \"Belize\",\n \"Canada\",\n \"Cocos (Keeling) Islands (the)\",\n \"Congo (the Democratic Republic of the)\",\n \"Central African Republic (the)\",\n \"Congo (the)\",\n \"Switzerland\",\n \"Côte d'Ivoire\",\n \"Cook Islands (the)\",\n \"Chile\",\n \"Cameroon\",\n \"China\",\n \"Colombia\",\n \"Costa Rica\",\n \"Cuba\",\n \"Cabo Verde\",\n \"Curaçao\",\n \"Christmas Island\",\n \"Cyprus\",\n \"Czechia\",\n \"Germany\",\n \"Djibouti\",\n \"Denmark\",\n \"Dominica\",\n \"Dominican Republic (the\",\n \"Algeria\",\n \"Ecuador\",\n \"Estonia\",\n \"Egypt\",\n \"Western Sahara\",\n \"Eritrea\",\n \"Spain\",\n \"Ethiopia\",\n \"Finland\",\n \"Fiji\",\n \"Falkland Islands (the) [Malvinas]\",\n \"Micronesia (Federated States of)\",\n \"Faroe Islands (the)\",\n \"France\",\n \"Gabon\",\n \"United Kingdom of Great Britain and Northern Ireland (the)\",\n \"Grenada\",\n \"Georgia\",\n \"French Guiana\",\n \"Guernsey\",\n \"Ghana\",\n \"Gibraltar\",\n \"Greenland\",\n \"Gambia (the)\",\n \"Guinea\",\n \"Guadeloupe\",\n \"Equatorial Guinea\",\n \"Greece\",\n \"South Georgia and the South Sandwich Islands\",\n \"Guatemala\",\n \"Guam\",\n \"Guinea-Bissau\",\n \"Guyana\",\n \"Hong Kong\",\n \"Heard Island and McDonald Islands\",\n \"Honduras\",\n \"Croatia\",\n \"Haiti\",\n \"Hungary\",\n \"Indonesia\",\n \"Ireland\",\n \"Israel\",\n \"Isle of Man\",\n \"India\",\n \"British Indian Ocean Territory (the)\",\n \"Iraq\",\n \"Iran (Islamic Republic of)\",\n \"Iceland\",\n \"Italy\",\n \"Jersey\",\n \"Jamaica\",\n \"Jordan\",\n \"Japan\",\n \"Kenya\",\n \"Kyrgyzstan\",\n \"Cambodia\",\n \"Kiribati\",\n \"Comoros (the)\",\n \"Saint Kitts and Nevis\",\n \"Korea (the Democratic People's Republic of)\",\n \"Korea (the Republic of)\",\n \"Kuwait\",\n \"Cayman Islands (the)\",\n \"Kazakhstan\",\n \"Lao People's Democratic Republic (the)\",\n \"Lebanon\",\n \"Saint Lucia\",\n \"Liechtenstein\",\n \"Sri Lanka\",\n \"Liberia\",\n \"Lesotho\",\n \"Lithuania\",\n \"Luxembourg\",\n \"Latvia\",\n \"Libya\",\n \"Morocco\",\n \"Monaco\",\n \"Moldova (the Republic of)\",\n \"Montenegro\",\n \"Saint Martin (French part)\",\n \"Madagascar\",\n \"Marshall Islands (the)\",\n \"Republic of North Macedonia\",\n \"Mali\",\n \"Myanmar\",\n \"Mongolia\",\n \"Macao\",\n \"Northern Mariana Islands (the)\",\n \"Martinique\",\n \"Mauritania\",\n \"Montserrat\",\n \"Malta\",\n \"Mauritius\",\n \"Maldives\",\n \"Malawi\",\n \"Mexico\",\n \"Malaysia\",\n \"Mozambique\",\n \"Namibia\",\n \"New Caledonia\",\n \"Niger (the)\",\n \"Norfolk Island\",\n \"Nigeria\",\n \"Nicaragua\",\n \"Netherlands (the)\",\n \"Norway\",\n \"Nepal\",\n \"Nauru\",\n \"Niue\",\n \"New Zealand\",\n \"Oman\",\n \"Panama\",\n \"Peru\",\n \"French Polynesia\",\n \"Papua New Guinea\",\n \"Philippines (the)\",\n \"Pakistan\",\n \"Poland\",\n \"Saint Pierre and Miquelon\",\n \"Pitcairn\",\n \"Puerto Rico\",\n \"Palestine, State of\",\n \"Portugal\",\n \"Palau\",\n \"Paraguay\",\n \"Qatar\",\n \"Réunion\",\n \"Romania\",\n \"Serbia\",\n \"Russian Federation (the)\",\n \"Rwanda\",\n \"Saudi Arabia\",\n \"Solomon Islands\",\n \"Seychelles\",\n \"Sudan (the)\",\n \"Sweden\",\n \"Singapore\",\n \"Saint Helena, Ascension and Tristan da Cunha\",\n \"Slovenia\",\n \"Svalbard and Jan Mayen\",\n \"Slovakia\",\n \"Sierra Leone\",\n \"San Marino\",\n \"Senegal\",\n \"Somalia\",\n \"Suriname\",\n \"South Sudan\",\n \"Sao Tome and Principe\",\n \"El Salvador\",\n \"Sint Maarten (Dutch part)\",\n \"Syrian Arab Republic\",\n \"Eswatini\",\n \"Turks and Caicos Islands (the)\",\n \"Chad\",\n \"French Southern Territories (the)\",\n \"Togo\",\n \"Thailand\",\n \"Tajikistan\",\n \"Tokelau\",\n \"Timor-Leste\",\n \"Turkmenistan\",\n \"Tunisia\",\n \"Tonga\",\n \"Turkey\",\n \"Trinidad and Tobago\",\n \"Tuvalu\",\n \"Taiwan (Province of China)\",\n \"Tanzania, United Republic of\",\n \"Ukraine\",\n \"Uganda\",\n \"United States Minor Outlying Islands (the)\",\n \"United States of America (the)\",\n \"Uruguay\",\n \"Uzbekistan\",\n \"Holy See (the)\",\n \"Saint Vincent and the Grenadines\",\n \"Venezuela (Bolivarian Republic of)\",\n \"Virgin Islands (British)\",\n \"Virgin Islands (U.S.)\",\n \"Viet Nam\",\n \"Vanuatu\",\n \"Wallis and Futuna\",\n \"Samoa\",\n \"Yemen\",\n \"Mayotte\",\n \"South Africa\",\n \"Zambia\",\n \"Zimbabwe\",\n] as const\n\nexport type Countries = (typeof COUNTRIES)[number]\n\nexport const COUNTRY_ISO_CODE_MAPPING: Record<CountryIsoCodes, Countries> = {\n AD: \"Andorra\",\n AE: \"United Arab Emirates (the)\",\n AF: \"Afghanistan\",\n AG: \"Antigua and Barbuda\",\n AI: \"Anguilla\",\n AL: \"Albania\",\n AM: \"Armenia\",\n AO: \"Angola\",\n AQ: \"Antarctica\",\n AR: \"Argentina\",\n AS: \"American Samoa\",\n AT: \"Austria\",\n AU: \"Australia\",\n AW: \"Aruba\",\n AX: \"Åland Islands\",\n AZ: \"Azerbaijan\",\n BA: \"Bosnia and Herzegovina\",\n BB: \"Barbados\",\n BD: \"Bangladesh\",\n BE: \"Belgium\",\n BF: \"Burkina Faso\",\n BG: \"Bulgaria\",\n BH: \"Bahrain\",\n BI: \"Burundi\",\n BJ: \"Benin\",\n BL: \"Saint Barthélemy\",\n BM: \"Bermuda\",\n BN: \"Brunei Darussalam\",\n BO: \"Bolivia (Plurinational State of)\",\n BQ: \"Bonaire, Sint Eustatius and Saba\",\n BR: \"Brazil\",\n BS: \"Bahamas (the)\",\n BT: \"Bhutan\",\n BV: \"Bouvet Island\",\n BW: \"Botswana\",\n BY: \"Belarus\",\n BZ: \"Belize\",\n CA: \"Canada\",\n CC: \"Cocos (Keeling) Islands (the)\",\n CD: \"Congo (the Democratic Republic of the)\",\n CF: \"Central African Republic (the)\",\n CG: \"Congo (the)\",\n CH: \"Switzerland\",\n CI: \"Côte d'Ivoire\",\n CK: \"Cook Islands (the)\",\n CL: \"Chile\",\n CM: \"Cameroon\",\n CN: \"China\",\n CO: \"Colombia\",\n CR: \"Costa Rica\",\n CU: \"Cuba\",\n CV: \"Cabo Verde\",\n CW: \"Curaçao\",\n CX: \"Christmas Island\",\n CY: \"Cyprus\",\n CZ: \"Czechia\",\n DE: \"Germany\",\n DJ: \"Djibouti\",\n DK: \"Denmark\",\n DM: \"Dominica\",\n DO: \"Dominican Republic (the\",\n DZ: \"Algeria\",\n EC: \"Ecuador\",\n EE: \"Estonia\",\n EG: \"Egypt\",\n EH: \"Western Sahara\",\n ER: \"Eritrea\",\n ES: \"Spain\",\n ET: \"Ethiopia\",\n FI: \"Finland\",\n FJ: \"Fiji\",\n FK: \"Falkland Islands (the) [Malvinas]\",\n FM: \"Micronesia (Federated States of)\",\n FO: \"Faroe Islands (the)\",\n FR: \"France\",\n GA: \"Gabon\",\n GB: \"United Kingdom of Great Britain and Northern Ireland (the)\",\n GD: \"Grenada\",\n GE: \"Georgia\",\n GF: \"French Guiana\",\n GG: \"Guernsey\",\n GH: \"Ghana\",\n GI: \"Gibraltar\",\n GL: \"Greenland\",\n GM: \"Gambia (the)\",\n GN: \"Guinea\",\n GP: \"Guadeloupe\",\n GQ: \"Equatorial Guinea\",\n GR: \"Greece\",\n GS: \"South Georgia and the South Sandwich Islands\",\n GT: \"Guatemala\",\n GU: \"Guam\",\n GW: \"Guinea-Bissau\",\n GY: \"Guyana\",\n HK: \"Hong Kong\",\n HM: \"Heard Island and McDonald Islands\",\n HN: \"Honduras\",\n HR: \"Croatia\",\n HT: \"Haiti\",\n HU: \"Hungary\",\n ID: \"Indonesia\",\n IE: \"Ireland\",\n IL: \"Israel\",\n IM: \"Isle of Man\",\n IN: \"India\",\n IO: \"British Indian Ocean Territory (the)\",\n IQ: \"Iraq\",\n IR: \"Iran (Islamic Republic of)\",\n IS: \"Iceland\",\n IT: \"Italy\",\n JE: \"Jersey\",\n JM: \"Jamaica\",\n JO: \"Jordan\",\n JP: \"Japan\",\n KE: \"Kenya\",\n KG: \"Kyrgyzstan\",\n KH: \"Cambodia\",\n KI: \"Kiribati\",\n KM: \"Comoros (the)\",\n KN: \"Saint Kitts and Nevis\",\n KP: \"Korea (the Democratic People's Republic of)\",\n KR: \"Korea (the Republic of)\",\n KW: \"Kuwait\",\n KY: \"Cayman Islands (the)\",\n KZ: \"Kazakhstan\",\n LA: \"Lao People's Democratic Republic (the)\",\n LB: \"Lebanon\",\n LC: \"Saint Lucia\",\n LI: \"Liechtenstein\",\n LK: \"Sri Lanka\",\n LR: \"Liberia\",\n LS: \"Lesotho\",\n LT: \"Lithuania\",\n LU: \"Luxembourg\",\n LV: \"Latvia\",\n LY: \"Libya\",\n MA: \"Morocco\",\n MC: \"Monaco\",\n MD: \"Moldova (the Republic of)\",\n ME: \"Montenegro\",\n MF: \"Saint Martin (French part)\",\n MG: \"Madagascar\",\n MH: \"Marshall Islands (the)\",\n MK: \"Republic of North Macedonia\",\n ML: \"Mali\",\n MM: \"Myanmar\",\n MN: \"Mongolia\",\n MO: \"Macao\",\n MP: \"Northern Mariana Islands (the)\",\n MQ: \"Martinique\",\n MR: \"Mauritania\",\n MS: \"Montserrat\",\n MT: \"Malta\",\n MU: \"Mauritius\",\n MV: \"Maldives\",\n MW: \"Malawi\",\n MX: \"Mexico\",\n MY: \"Malaysia\",\n MZ: \"Mozambique\",\n NA: \"Namibia\",\n NC: \"New Caledonia\",\n NE: \"Niger (the)\",\n NF: \"Norfolk Island\",\n NG: \"Nigeria\",\n NI: \"Nicaragua\",\n NL: \"Netherlands (the)\",\n NO: \"Norway\",\n NP: \"Nepal\",\n NR: \"Nauru\",\n NU: \"Niue\",\n NZ: \"New Zealand\",\n OM: \"Oman\",\n PA: \"Panama\",\n PE: \"Peru\",\n PF: \"French Polynesia\",\n PG: \"Papua New Guinea\",\n PH: \"Philippines (the)\",\n PK: \"Pakistan\",\n PL: \"Poland\",\n PM: \"Saint Pierre and Miquelon\",\n PN: \"Pitcairn\",\n PR: \"Puerto Rico\",\n PS: \"Palestine, State of\",\n PT: \"Portugal\",\n PW: \"Palau\",\n PY: \"Paraguay\",\n QA: \"Qatar\",\n RE: \"Réunion\",\n RO: \"Romania\",\n RS: \"Serbia\",\n RU: \"Russian Federation (the)\",\n RW: \"Rwanda\",\n SA: \"Saudi Arabia\",\n SB: \"Solomon Islands\",\n SC: \"Seychelles\",\n SD: \"Sudan (the)\",\n SE: \"Sweden\",\n SG: \"Singapore\",\n SH: \"Saint Helena, Ascension and Tristan da Cunha\",\n SI: \"Slovenia\",\n SJ: \"Svalbard and Jan Mayen\",\n SK: \"Slovakia\",\n SL: \"Sierra Leone\",\n SM: \"San Marino\",\n SN: \"Senegal\",\n SO: \"Somalia\",\n SR: \"Suriname\",\n SS: \"South Sudan\",\n ST: \"Sao Tome and Principe\",\n SV: \"El Salvador\",\n SX: \"Sint Maarten (Dutch part)\",\n SY: \"Syrian Arab Republic\",\n SZ: \"Eswatini\",\n TC: \"Turks and Caicos Islands (the)\",\n TD: \"Chad\",\n TF: \"French Southern Territories (the)\",\n TG: \"Togo\",\n TH: \"Thailand\",\n TJ: \"Tajikistan\",\n TK: \"Tokelau\",\n TL: \"Timor-Leste\",\n TM: \"Turkmenistan\",\n TN: \"Tunisia\",\n TO: \"Tonga\",\n TR: \"Turkey\",\n TT: \"Trinidad and Tobago\",\n TV: \"Tuvalu\",\n TW: \"Taiwan (Province of China)\",\n TZ: \"Tanzania, United Republic of\",\n UA: \"Ukraine\",\n UG: \"Uganda\",\n UM: \"United States Minor Outlying Islands (the)\",\n US: \"United States of America (the)\",\n UY: \"Uruguay\",\n UZ: \"Uzbekistan\",\n VA: \"Holy See (the)\",\n VC: \"Saint Vincent and the Grenadines\",\n VE: \"Venezuela (Bolivarian Republic of)\",\n VG: \"Virgin Islands (British)\",\n VI: \"Virgin Islands (U.S.)\",\n VN: \"Viet Nam\",\n VU: \"Vanuatu\",\n WF: \"Wallis and Futuna\",\n WS: \"Samoa\",\n YE: \"Yemen\",\n YT: \"Mayotte\",\n ZA: \"South Africa\",\n ZM: \"Zambia\",\n ZW: \"Zimbabwe\",\n}\n\nexport const UK_COUNTIES = [\n \"Aberdeen City\",\n \"Aberdeenshire\",\n \"Angus\",\n \"Argyll and Bute\",\n \"Bedfordshire\",\n \"Belfast\",\n \"Belfast Greater\",\n \"Berkshire\",\n \"Blaenau Gwent\",\n \"Bridgend\",\n \"Buckinghamshire\",\n \"Caerphilly\",\n \"Cambridgeshire\",\n \"Cardiff\",\n \"Carmarthenshire\",\n \"Ceredigion\",\n \"Channel Islands\",\n \"Cheshire\",\n \"City of Edinburgh\",\n \"Clackmannanshire\",\n \"Conwy\",\n \"Cornwall\",\n \"County Antrim\",\n \"County Armagh\",\n \"County Down\",\n \"County Fermanagh\",\n \"County Londonderry\",\n \"County Tyrone\",\n \"County of Bristol\",\n \"Cumbria\",\n \"Denbighshire\",\n \"Derbyshire\",\n \"Devon\",\n \"Dorset\",\n \"Dumfries and Galloway\",\n \"Dunbartonshire\",\n \"Dundee City\",\n \"Durham\",\n \"East Ayrshire\",\n \"East Dunbartonshire\",\n \"East Lothian\",\n \"East Renfrewshire\",\n \"East Riding of Yorkshire\",\n \"East Sussex\",\n \"Essex\",\n \"Falkirk\",\n \"Fife\",\n \"Flintshire\",\n \"Glasgow City\",\n \"Gloucestershire\",\n \"Greater London\",\n \"Greater Manchester\",\n \"Guernsey Channel Islands\",\n \"Gwynedd\",\n \"Hampshire\",\n \"Hereford and Worcester\",\n \"Herefordshire\",\n \"Hertfordshire\",\n \"Highland\",\n \"Inverclyde\",\n \"Inverness\",\n \"Isle of Anglesey\",\n \"Isle of Barra\",\n \"Isle of Man\",\n \"Isle of Wight\",\n \"Jersey Channel Islands\",\n \"Kent\",\n \"Lancashire\",\n \"Leicestershire\",\n \"Lincolnshire\",\n \"Merseyside\",\n \"Merthyr Tydfil\",\n \"Midlothian\",\n \"Monmouthshire\",\n \"Moray\",\n \"Neath Port Talbot\",\n \"Newport\",\n \"Norfolk\",\n \"North Ayrshire\",\n \"North Lanarkshire\",\n \"North Yorkshire\",\n \"Northamptonshire\",\n \"Northumberland\",\n \"Nottinghamshire\",\n \"Orkney\",\n \"Orkney Islands\",\n \"Oxfordshire\",\n \"Pembrokeshire\",\n \"Perth and Kinross\",\n \"Powys\",\n \"Renfrewshire\",\n \"Rhondda Cynon Taff\",\n \"Rutland\",\n \"Scottish Borders\",\n \"Shetland Islands\",\n \"Shropshire\",\n \"Somerset\",\n \"South Ayrshire\",\n \"South Lanarkshire\",\n \"South Yorkshire\",\n \"Staffordshire\",\n \"Stirling\",\n \"Suffolk\",\n \"Surrey\",\n \"Swansea\",\n \"Torfaen\",\n \"Tyne and Wear\",\n \"Vale of Glamorgan\",\n \"Warwickshire\",\n \"West Dunbart\",\n \"West Lothian\",\n \"West Midlands\",\n \"West Sussex\",\n \"West Yorkshire\",\n \"Western Isles\",\n \"Wiltshire\",\n \"Worcestershire\",\n \"Wrexham\",\n] as const\n\nexport type UkCounties = (typeof UK_COUNTIES)[number]\n\nexport function getNestedProperty(\n obj: Record<string, any>,\n dotPath: string | string[],\n): any {\n if (typeof dotPath === \"string\") dotPath = dotPath.split(\".\")\n\n let value: unknown = obj\n for (let i = 0; i < dotPath.length; i++) {\n value = (value as Record<string, any>)[dotPath[i]]\n if (\n i !== dotPath.length - 1 &&\n (typeof value !== \"object\" || value === null)\n )\n return\n }\n\n return value\n}\n\nexport function withKeyPaths(obj: object, delimiter: string = \".\"): object {\n function _withKeyPaths(obj: object, path: string[]) {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => {\n const _path = [...path, key]\n\n if (typeof value === \"object\" && value !== null)\n value = _withKeyPaths(value as object, _path)\n\n return [_path.join(delimiter), value]\n }),\n )\n }\n\n return _withKeyPaths(obj, [])\n}\n\nexport function getKeyPaths(obj: object, delimiter: string = \".\"): string[] {\n function _getKeyPaths(obj: object, path: string[]): string[] {\n return Object.entries(obj)\n .map(([key, value]) => {\n const _path = [...path, key]\n const keyPath = _path.join(delimiter)\n\n return typeof value === \"object\" && value !== null\n ? [keyPath, ..._getKeyPaths(value as object, _path)]\n : [keyPath]\n })\n .flat()\n }\n\n return _getKeyPaths(obj, [])\n}\n\nexport function excludeKeyPaths(\n obj: object,\n exclude: string[],\n delimiter: string = \".\",\n): any {\n function _excludeKeyPaths(obj: object, path: string[]) {\n return Object.fromEntries(\n Object.entries(obj)\n .map(([key, value]: [string, unknown]) => {\n const _path = [...path, key]\n\n if (\n typeof value === \"object\" &&\n value !== null &&\n !(value instanceof Date)\n )\n value = _excludeKeyPaths(value, _path)\n\n return exclude.includes(_path.join(delimiter)) ? [] : [key, value]\n })\n .filter(entry => entry.length),\n ) as object\n }\n\n return exclude.length ? _excludeKeyPaths(obj, []) : obj\n}\n\nexport function generateSecureRandomString(\n length: number,\n charSet: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",\n) {\n // Create an array of 32-bit unsigned integers\n const randomValues = window.crypto.getRandomValues(new Uint8Array(length))\n\n // Map the random values to characters from our string\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += charSet.charAt(randomValues[i] % charSet.length)\n }\n\n return result\n}\n"],"names":["openInNewTab","url","target","wrap","newFn","fn","args","value","snakeCaseToCamelCase","obj","snakeKey","camelKey","_char","camelCaseToSnakeCase","char","MIN_DATE","COUNTRY_ISO_CODES","COUNTRIES","COUNTRY_ISO_CODE_MAPPING","UK_COUNTIES","getNestedProperty","dotPath","withKeyPaths","delimiter","_withKeyPaths","path","key","_path","getKeyPaths","_getKeyPaths","keyPath","excludeKeyPaths","exclude","_excludeKeyPaths","entry","generateSecureRandomString","length","charSet","randomValues","result","i"],"mappings":"gFAQO,SAASA,EAAaC,EAAaC,EAAS,SAAgB,CACjE,OAAO,KAAKD,EAAKC,CAAM,CACzB,CAEO,SAASC,EACdC,EAIAC,EACyB,CACzB,MAAO,IAAIC,IAAS,CACdF,EAAM,SAAW,QACnBA,EAAM,OAAO,GAAIE,CAAkB,EAErC,IAAIC,EACJ,OAAIF,IAAO,SACTE,EAAQF,EAAG,GAAIC,CAAkB,GAE/BF,EAAM,QAAU,QAClBA,EAAM,MAAM,GAAIE,CAAkB,EAE7BC,CACT,CACF,CAEO,SAASC,EAAqBC,EAAgC,CACnE,OAAO,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACC,EAAUH,CAAK,IAAM,CAC7C,OAAOA,GAAU,UAAUC,EAAqBD,CAAe,EAEnE,MAAMI,EAAWD,EAAS,QAAQ,cAChCE,EAAMA,EAAM,OAAS,CAAC,EAAE,YAAA,CAAY,EAGtC,OAAOH,EAAIC,CAAQ,EACnBD,EAAIE,CAAQ,EAAIJ,CAClB,CAAC,CACH,CAEO,SAASM,EAAqBJ,EAAgC,CACnE,OAAO,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACE,EAAUJ,CAAK,IAAM,CAC7C,OAAOA,GAAU,UAAUM,EAAqBN,CAAe,EAEnE,MAAMG,EAAWC,EAAS,QACxB,SACAG,GAAQ,IAAIA,EAAK,YAAA,CAAa,EAAA,EAGhC,OAAOL,EAAIE,CAAQ,EACnBF,EAAIC,CAAQ,EAAIH,CAClB,CAAC,CACH,CAEO,MAAMQ,EAAW,IAAI,KAAK,EAAG,EAAG,CAAC,EAE3BC,EAAoB,CAC/B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EAIaC,EAAY,CACvB,UACA,6BACA,cACA,sBACA,WACA,UACA,UACA,SACA,aACA,YACA,iBACA,UACA,YACA,QACA,gBACA,aACA,yBACA,WACA,aACA,UACA,eACA,WACA,UACA,UACA,QACA,mBACA,UACA,oBACA,mCACA,mCACA,SACA,gBACA,SACA,gBACA,WACA,UACA,SACA,SACA,gCACA,yCACA,iCACA,cACA,cACA,gBACA,qBACA,QACA,WACA,QACA,WACA,aACA,OACA,aACA,UACA,mBACA,SACA,UACA,UACA,WACA,UACA,WACA,0BACA,UACA,UACA,UACA,QACA,iBACA,UACA,QACA,WACA,UACA,OACA,oCACA,mCACA,sBACA,SACA,QACA,6DACA,UACA,UACA,gBACA,WACA,QACA,YACA,YACA,eACA,SACA,aACA,oBACA,SACA,+CACA,YACA,OACA,gBACA,SACA,YACA,oCACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,cACA,QACA,uCACA,OACA,6BACA,UACA,QACA,SACA,UACA,SACA,QACA,QACA,aACA,WACA,WACA,gBACA,wBACA,8CACA,0BACA,SACA,uBACA,aACA,yCACA,UACA,cACA,gBACA,YACA,UACA,UACA,YACA,aACA,SACA,QACA,UACA,SACA,4BACA,aACA,6BACA,aACA,yBACA,8BACA,OACA,UACA,WACA,QACA,iCACA,aACA,aACA,aACA,QACA,YACA,WACA,SACA,SACA,WACA,aACA,UACA,gBACA,cACA,iBACA,UACA,YACA,oBACA,SACA,QACA,QACA,OACA,cACA,OACA,SACA,OACA,mBACA,mBACA,oBACA,WACA,SACA,4BACA,WACA,cACA,sBACA,WACA,QACA,WACA,QACA,UACA,UACA,SACA,2BACA,SACA,eACA,kBACA,aACA,cACA,SACA,YACA,+CACA,WACA,yBACA,WACA,eACA,aACA,UACA,UACA,WACA,cACA,wBACA,cACA,4BACA,uBACA,WACA,iCACA,OACA,oCACA,OACA,WACA,aACA,UACA,cACA,eACA,UACA,QACA,SACA,sBACA,SACA,6BACA,+BACA,UACA,SACA,6CACA,iCACA,UACA,aACA,iBACA,mCACA,qCACA,2BACA,wBACA,WACA,UACA,oBACA,QACA,QACA,UACA,eACA,SACA,UACF,EAIaC,EAA+D,CAC1E,GAAI,UACJ,GAAI,6BACJ,GAAI,cACJ,GAAI,sBACJ,GAAI,WACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACJ,GAAI,aACJ,GAAI,YACJ,GAAI,iBACJ,GAAI,UACJ,GAAI,YACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,aACJ,GAAI,yBACJ,GAAI,WACJ,GAAI,aACJ,GAAI,UACJ,GAAI,eACJ,GAAI,WACJ,GAAI,UACJ,GAAI,UACJ,GAAI,QACJ,GAAI,mBACJ,GAAI,UACJ,GAAI,oBACJ,GAAI,mCACJ,GAAI,mCACJ,GAAI,SACJ,GAAI,gBACJ,GAAI,SACJ,GAAI,gBACJ,GAAI,WACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,gCACJ,GAAI,yCACJ,GAAI,iCACJ,GAAI,cACJ,GAAI,cACJ,GAAI,gBACJ,GAAI,qBACJ,GAAI,QACJ,GAAI,WACJ,GAAI,QACJ,GAAI,WACJ,GAAI,aACJ,GAAI,OACJ,GAAI,aACJ,GAAI,UACJ,GAAI,mBACJ,GAAI,SACJ,GAAI,UACJ,GAAI,UACJ,GAAI,WACJ,GAAI,UACJ,GAAI,WACJ,GAAI,0BACJ,GAAI,UACJ,GAAI,UACJ,GAAI,UACJ,GAAI,QACJ,GAAI,iBACJ,GAAI,UACJ,GAAI,QACJ,GAAI,WACJ,GAAI,UACJ,GAAI,OACJ,GAAI,oCACJ,GAAI,mCACJ,GAAI,sBACJ,GAAI,SACJ,GAAI,QACJ,GAAI,6DACJ,GAAI,UACJ,GAAI,UACJ,GAAI,gBACJ,GAAI,WACJ,GAAI,QACJ,GAAI,YACJ,GAAI,YACJ,GAAI,eACJ,GAAI,SACJ,GAAI,aACJ,GAAI,oBACJ,GAAI,SACJ,GAAI,+CACJ,GAAI,YACJ,GAAI,OACJ,GAAI,gBACJ,GAAI,SACJ,GAAI,YACJ,GAAI,oCACJ,GAAI,WACJ,GAAI,UACJ,GAAI,QACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,GAAI,SACJ,GAAI,cACJ,GAAI,QACJ,GAAI,uCACJ,GAAI,OACJ,GAAI,6BACJ,GAAI,UACJ,GAAI,QACJ,GAAI,SACJ,GAAI,UACJ,GAAI,SACJ,GAAI,QACJ,GAAI,QACJ,GAAI,aACJ,GAAI,WACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,wBACJ,GAAI,8CACJ,GAAI,0BACJ,GAAI,SACJ,GAAI,uBACJ,GAAI,aACJ,GAAI,yCACJ,GAAI,UACJ,GAAI,cACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,aACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,4BACJ,GAAI,aACJ,GAAI,6BACJ,GAAI,aACJ,GAAI,yBACJ,GAAI,8BACJ,GAAI,OACJ,GAAI,UACJ,GAAI,WACJ,GAAI,QACJ,GAAI,iCACJ,GAAI,aACJ,GAAI,aACJ,GAAI,aACJ,GAAI,QACJ,GAAI,YACJ,GAAI,WACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,aACJ,GAAI,UACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,iBACJ,GAAI,UACJ,GAAI,YACJ,GAAI,oBACJ,GAAI,SACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACJ,GAAI,cACJ,GAAI,OACJ,GAAI,SACJ,GAAI,OACJ,GAAI,mBACJ,GAAI,mBACJ,GAAI,oBACJ,GAAI,WACJ,GAAI,SACJ,GAAI,4BACJ,GAAI,WACJ,GAAI,cACJ,GAAI,sBACJ,GAAI,WACJ,GAAI,QACJ,GAAI,WACJ,GAAI,QACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACJ,GAAI,2BACJ,GAAI,SACJ,GAAI,eACJ,GAAI,kBACJ,GAAI,aACJ,GAAI,cACJ,GAAI,SACJ,GAAI,YACJ,GAAI,+CACJ,GAAI,WACJ,GAAI,yBACJ,GAAI,WACJ,GAAI,eACJ,GAAI,aACJ,GAAI,UACJ,GAAI,UACJ,GAAI,WACJ,GAAI,cACJ,GAAI,wBACJ,GAAI,cACJ,GAAI,4BACJ,GAAI,uBACJ,GAAI,WACJ,GAAI,iCACJ,GAAI,OACJ,GAAI,oCACJ,GAAI,OACJ,GAAI,WACJ,GAAI,aACJ,GAAI,UACJ,GAAI,cACJ,GAAI,eACJ,GAAI,UACJ,GAAI,QACJ,GAAI,SACJ,GAAI,sBACJ,GAAI,SACJ,GAAI,6BACJ,GAAI,+BACJ,GAAI,UACJ,GAAI,SACJ,GAAI,6CACJ,GAAI,iCACJ,GAAI,UACJ,GAAI,aACJ,GAAI,iBACJ,GAAI,mCACJ,GAAI,qCACJ,GAAI,2BACJ,GAAI,wBACJ,GAAI,WACJ,GAAI,UACJ,GAAI,oBACJ,GAAI,QACJ,GAAI,QACJ,GAAI,UACJ,GAAI,eACJ,GAAI,SACJ,GAAI,UACN,EAEaC,EAAc,CACzB,gBACA,gBACA,QACA,kBACA,eACA,UACA,kBACA,YACA,gBACA,WACA,kBACA,aACA,iBACA,UACA,kBACA,aACA,kBACA,WACA,oBACA,mBACA,QACA,WACA,gBACA,gBACA,cACA,mBACA,qBACA,gBACA,oBACA,UACA,eACA,aACA,QACA,SACA,wBACA,iBACA,cACA,SACA,gBACA,sBACA,eACA,oBACA,2BACA,cACA,QACA,UACA,OACA,aACA,eACA,kBACA,iBACA,qBACA,2BACA,UACA,YACA,yBACA,gBACA,gBACA,WACA,aACA,YACA,mBACA,gBACA,cACA,gBACA,yBACA,OACA,aACA,iBACA,eACA,aACA,iBACA,aACA,gBACA,QACA,oBACA,UACA,UACA,iBACA,oBACA,kBACA,mBACA,iBACA,kBACA,SACA,iBACA,cACA,gBACA,oBACA,QACA,eACA,qBACA,UACA,mBACA,mBACA,aACA,WACA,iBACA,oBACA,kBACA,gBACA,WACA,UACA,SACA,UACA,UACA,gBACA,oBACA,eACA,eACA,eACA,gBACA,cACA,iBACA,gBACA,YACA,iBACA,SACF,EAIO,SAASC,EACdX,EACAY,EACK,CACD,OAAOA,GAAY,WAAUA,EAAUA,EAAQ,MAAM,GAAG,GAE5D,IAAId,EAAiBE,EACrB,QAAS,EAAI,EAAG,EAAIY,EAAQ,OAAQ,IAElC,GADAd,EAASA,EAA8Bc,EAAQ,CAAC,CAAC,EAE/C,IAAMA,EAAQ,OAAS,IACtB,OAAOd,GAAU,UAAYA,IAAU,MAExC,OAGJ,OAAOA,CACT,CAEO,SAASe,EAAab,EAAac,EAAoB,IAAa,CACzE,SAASC,EAAcf,EAAagB,EAAgB,CAClD,OAAO,OAAO,YACZ,OAAO,QAAQhB,CAAG,EAAE,IAAI,CAAC,CAACiB,EAAKnB,CAAK,IAAM,CACxC,MAAMoB,EAAQ,CAAC,GAAGF,EAAMC,CAAG,EAE3B,OAAI,OAAOnB,GAAU,UAAYA,IAAU,OACzCA,EAAQiB,EAAcjB,EAAiBoB,CAAK,GAEvC,CAACA,EAAM,KAAKJ,CAAS,EAAGhB,CAAK,CACtC,CAAC,CAAA,CAEL,CAEA,OAAOiB,EAAcf,EAAK,EAAE,CAC9B,CAEO,SAASmB,EAAYnB,EAAac,EAAoB,IAAe,CAC1E,SAASM,EAAapB,EAAagB,EAA0B,CAC3D,OAAO,OAAO,QAAQhB,CAAG,EACtB,IAAI,CAAC,CAACiB,EAAKnB,CAAK,IAAM,CACrB,MAAMoB,EAAQ,CAAC,GAAGF,EAAMC,CAAG,EACrBI,EAAUH,EAAM,KAAKJ,CAAS,EAEpC,OAAO,OAAOhB,GAAU,UAAYA,IAAU,KAC1C,CAACuB,EAAS,GAAGD,EAAatB,EAAiBoB,CAAK,CAAC,EACjD,CAACG,CAAO,CACd,CAAC,EACA,KAAA,CACL,CAEA,OAAOD,EAAapB,EAAK,EAAE,CAC7B,CAEO,SAASsB,EACdtB,EACAuB,EACAT,EAAoB,IACf,CACL,SAASU,EAAiBxB,EAAagB,EAAgB,CACrD,OAAO,OAAO,YACZ,OAAO,QAAQhB,CAAG,EACf,IAAI,CAAC,CAACiB,EAAKnB,CAAK,IAAyB,CACxC,MAAMoB,EAAQ,CAAC,GAAGF,EAAMC,CAAG,EAE3B,OACE,OAAOnB,GAAU,UACjBA,IAAU,MACV,EAAEA,aAAiB,QAEnBA,EAAQ0B,EAAiB1B,EAAOoB,CAAK,GAEhCK,EAAQ,SAASL,EAAM,KAAKJ,CAAS,CAAC,EAAI,CAAA,EAAK,CAACG,EAAKnB,CAAK,CACnE,CAAC,EACA,OAAO2B,GAASA,EAAM,MAAM,CAAA,CAEnC,CAEA,OAAOF,EAAQ,OAASC,EAAiBxB,EAAK,CAAA,CAAE,EAAIA,CACtD,CAEO,SAAS0B,EACdC,EACAC,EAAkB,iEAClB,CAEA,MAAMC,EAAe,OAAO,OAAO,gBAAgB,IAAI,WAAWF,CAAM,CAAC,EAGzE,IAAIG,EAAS,GACb,QAASC,EAAI,EAAGA,EAAIJ,EAAQI,IAC1BD,GAAUF,EAAQ,OAAOC,EAAaE,CAAC,EAAIH,EAAQ,MAAM,EAG3D,OAAOE,CACT"}
|