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,541 @@
|
|
|
1
|
+
import { b as ae, c as fe, a as de, d as U, Q as pe, e as le, f as be } from "../rtk-query.modern-CjetfYPg.js";
|
|
2
|
+
import { formatProdErrorMessage as oe } from "@reduxjs/toolkit";
|
|
3
|
+
import { useStore as ye, useSelector as he, useDispatch as ge, batch as me, shallowEqual as $ } from "react-redux";
|
|
4
|
+
import { useCallback as N, useDebugValue as x, useMemo as k, useState as re, useEffect as A, useRef as q, useLayoutEffect as Se } from "react";
|
|
5
|
+
import { SERVICE_API_URL as ve } from "../settings/index.es.js";
|
|
6
|
+
import { b as Ee } from "../session-D312kYKk.js";
|
|
7
|
+
import { getCsrfCookie as J } from "../utils/auth.es.js";
|
|
8
|
+
import { i as Qe } from "../api-Cbyt3rw0.js";
|
|
9
|
+
import { s as Be } from "../schemas-DlOtf2vf.js";
|
|
10
|
+
import { u as Ze } from "../urls-DtHr1d3H.js";
|
|
11
|
+
function F(e) {
|
|
12
|
+
return e.replace(e[0], e[0].toUpperCase());
|
|
13
|
+
}
|
|
14
|
+
function ke(e) {
|
|
15
|
+
let f = 0;
|
|
16
|
+
for (const y in e)
|
|
17
|
+
f++;
|
|
18
|
+
return f;
|
|
19
|
+
}
|
|
20
|
+
function Pe(e) {
|
|
21
|
+
return e.type === "query";
|
|
22
|
+
}
|
|
23
|
+
function Oe(e) {
|
|
24
|
+
return e.type === "mutation";
|
|
25
|
+
}
|
|
26
|
+
function se(e) {
|
|
27
|
+
return e.type === "infinitequery";
|
|
28
|
+
}
|
|
29
|
+
function C(e, ...f) {
|
|
30
|
+
return Object.assign(e, ...f);
|
|
31
|
+
}
|
|
32
|
+
var X = Symbol();
|
|
33
|
+
function ee(e) {
|
|
34
|
+
const f = q(e), y = k(() => le(f.current, e), [e]);
|
|
35
|
+
return A(() => {
|
|
36
|
+
f.current !== y && (f.current = y);
|
|
37
|
+
}, [y]), y;
|
|
38
|
+
}
|
|
39
|
+
function G(e) {
|
|
40
|
+
const f = q(e);
|
|
41
|
+
return A(() => {
|
|
42
|
+
$(f.current, e) || (f.current = e);
|
|
43
|
+
}, [e]), $(f.current, e) ? f.current : e;
|
|
44
|
+
}
|
|
45
|
+
var Ie = () => typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u", De = /* @__PURE__ */ Ie(), we = () => typeof navigator < "u" && navigator.product === "ReactNative", Le = /* @__PURE__ */ we(), Me = () => De || Le ? Se : A, Ue = /* @__PURE__ */ Me(), ie = (e) => e.isUninitialized ? {
|
|
46
|
+
...e,
|
|
47
|
+
isUninitialized: !1,
|
|
48
|
+
isFetching: !0,
|
|
49
|
+
isLoading: e.data === void 0,
|
|
50
|
+
status: pe.pending
|
|
51
|
+
} : e;
|
|
52
|
+
function te(e, ...f) {
|
|
53
|
+
const y = {};
|
|
54
|
+
return f.forEach((m) => {
|
|
55
|
+
y[m] = e[m];
|
|
56
|
+
}), y;
|
|
57
|
+
}
|
|
58
|
+
var ne = ["data", "status", "isLoading", "isSuccess", "isError", "error"];
|
|
59
|
+
function qe({
|
|
60
|
+
api: e,
|
|
61
|
+
moduleOptions: {
|
|
62
|
+
batch: f,
|
|
63
|
+
hooks: {
|
|
64
|
+
useDispatch: y,
|
|
65
|
+
useSelector: m,
|
|
66
|
+
useStore: I
|
|
67
|
+
},
|
|
68
|
+
unstable__sideEffectsInRender: h,
|
|
69
|
+
createSelector: S
|
|
70
|
+
},
|
|
71
|
+
serializeQueryArgs: g,
|
|
72
|
+
context: D
|
|
73
|
+
}) {
|
|
74
|
+
const V = h ? (t) => t() : A;
|
|
75
|
+
return {
|
|
76
|
+
buildQueryHooks: R,
|
|
77
|
+
buildInfiniteQueryHooks: Y,
|
|
78
|
+
buildMutationHook: Z,
|
|
79
|
+
usePrefetch: B
|
|
80
|
+
};
|
|
81
|
+
function K(t, r, d) {
|
|
82
|
+
if (r?.endpointName && t.isUninitialized) {
|
|
83
|
+
const {
|
|
84
|
+
endpointName: s
|
|
85
|
+
} = r, c = D.endpointDefinitions[s];
|
|
86
|
+
d !== U && g({
|
|
87
|
+
queryArgs: r.originalArgs,
|
|
88
|
+
endpointDefinition: c,
|
|
89
|
+
endpointName: s
|
|
90
|
+
}) === g({
|
|
91
|
+
queryArgs: d,
|
|
92
|
+
endpointDefinition: c,
|
|
93
|
+
endpointName: s
|
|
94
|
+
}) && (r = void 0);
|
|
95
|
+
}
|
|
96
|
+
let u = t.isSuccess ? t.data : r?.data;
|
|
97
|
+
u === void 0 && (u = t.data);
|
|
98
|
+
const i = u !== void 0, n = t.isLoading, o = (!r || r.isLoading || r.isUninitialized) && !i && n, a = t.isSuccess || i && (n && !r?.isError || t.isUninitialized);
|
|
99
|
+
return {
|
|
100
|
+
...t,
|
|
101
|
+
data: u,
|
|
102
|
+
currentData: t.data,
|
|
103
|
+
isFetching: n,
|
|
104
|
+
isLoading: o,
|
|
105
|
+
isSuccess: a
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function W(t, r, d) {
|
|
109
|
+
if (r?.endpointName && t.isUninitialized) {
|
|
110
|
+
const {
|
|
111
|
+
endpointName: s
|
|
112
|
+
} = r, c = D.endpointDefinitions[s];
|
|
113
|
+
d !== U && g({
|
|
114
|
+
queryArgs: r.originalArgs,
|
|
115
|
+
endpointDefinition: c,
|
|
116
|
+
endpointName: s
|
|
117
|
+
}) === g({
|
|
118
|
+
queryArgs: d,
|
|
119
|
+
endpointDefinition: c,
|
|
120
|
+
endpointName: s
|
|
121
|
+
}) && (r = void 0);
|
|
122
|
+
}
|
|
123
|
+
let u = t.isSuccess ? t.data : r?.data;
|
|
124
|
+
u === void 0 && (u = t.data);
|
|
125
|
+
const i = u !== void 0, n = t.isLoading, o = (!r || r.isLoading || r.isUninitialized) && !i && n, a = t.isSuccess || n && i;
|
|
126
|
+
return {
|
|
127
|
+
...t,
|
|
128
|
+
data: u,
|
|
129
|
+
currentData: t.data,
|
|
130
|
+
isFetching: n,
|
|
131
|
+
isLoading: o,
|
|
132
|
+
isSuccess: a
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function B(t, r) {
|
|
136
|
+
const d = y(), u = G(r);
|
|
137
|
+
return N((i, n) => d(e.util.prefetch(t, i, {
|
|
138
|
+
...u,
|
|
139
|
+
...n
|
|
140
|
+
})), [t, d, u]);
|
|
141
|
+
}
|
|
142
|
+
function P(t, r, {
|
|
143
|
+
refetchOnReconnect: d,
|
|
144
|
+
refetchOnFocus: u,
|
|
145
|
+
refetchOnMountOrArgChange: i,
|
|
146
|
+
skip: n = !1,
|
|
147
|
+
pollingInterval: o = 0,
|
|
148
|
+
skipPollingIfUnfocused: a = !1,
|
|
149
|
+
...s
|
|
150
|
+
} = {}) {
|
|
151
|
+
const {
|
|
152
|
+
initiate: c
|
|
153
|
+
} = e.endpoints[t], l = y(), O = q(void 0);
|
|
154
|
+
if (!O.current) {
|
|
155
|
+
const M = l(e.internalActions.internal_getRTKQSubscriptions());
|
|
156
|
+
if (process.env.NODE_ENV !== "production" && (typeof M != "object" || typeof M?.type == "string"))
|
|
157
|
+
throw new Error(process.env.NODE_ENV === "production" ? oe(37) : `Warning: Middleware for RTK-Query API at reducerPath "${e.reducerPath}" has not been added to the store.
|
|
158
|
+
You must add the middleware for RTK-Query to function correctly!`);
|
|
159
|
+
O.current = M;
|
|
160
|
+
}
|
|
161
|
+
const p = ee(n ? U : r), b = G({
|
|
162
|
+
refetchOnReconnect: d,
|
|
163
|
+
refetchOnFocus: u,
|
|
164
|
+
pollingInterval: o,
|
|
165
|
+
skipPollingIfUnfocused: a
|
|
166
|
+
}), v = s.initialPageParam, E = G(v), Q = q(void 0);
|
|
167
|
+
let {
|
|
168
|
+
queryCacheKey: L,
|
|
169
|
+
requestId: H
|
|
170
|
+
} = Q.current || {}, z = !1;
|
|
171
|
+
L && H && (z = O.current.isRequestSubscribed(L, H));
|
|
172
|
+
const j = !z && Q.current !== void 0;
|
|
173
|
+
return V(() => {
|
|
174
|
+
j && (Q.current = void 0);
|
|
175
|
+
}, [j]), V(() => {
|
|
176
|
+
const M = Q.current;
|
|
177
|
+
if (typeof process < "u" && process.env.NODE_ENV === "removeMeOnCompilation" && console.log(j), p === U) {
|
|
178
|
+
M?.unsubscribe(), Q.current = void 0;
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const ue = Q.current?.subscriptionOptions;
|
|
182
|
+
if (!M || M.arg !== p) {
|
|
183
|
+
M?.unsubscribe();
|
|
184
|
+
const ce = l(c(p, {
|
|
185
|
+
subscriptionOptions: b,
|
|
186
|
+
forceRefetch: i,
|
|
187
|
+
...se(D.endpointDefinitions[t]) ? {
|
|
188
|
+
initialPageParam: E
|
|
189
|
+
} : {}
|
|
190
|
+
}));
|
|
191
|
+
Q.current = ce;
|
|
192
|
+
} else b !== ue && M.updateSubscriptionOptions(b);
|
|
193
|
+
}, [l, c, i, p, b, j, E, t]), [Q, l, c, b];
|
|
194
|
+
}
|
|
195
|
+
function T(t, r) {
|
|
196
|
+
return (u, {
|
|
197
|
+
skip: i = !1,
|
|
198
|
+
selectFromResult: n
|
|
199
|
+
} = {}) => {
|
|
200
|
+
const {
|
|
201
|
+
select: o
|
|
202
|
+
} = e.endpoints[t], a = ee(i ? U : u), s = q(void 0), c = k(() => (
|
|
203
|
+
// Normally ts-ignores are bad and should be avoided, but we're
|
|
204
|
+
// already casting this selector to be `Selector<any>` anyway,
|
|
205
|
+
// so the inconsistencies don't matter here
|
|
206
|
+
// @ts-ignore
|
|
207
|
+
S([
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
o(a),
|
|
210
|
+
(v, E) => E,
|
|
211
|
+
(v) => a
|
|
212
|
+
], r, {
|
|
213
|
+
memoizeOptions: {
|
|
214
|
+
resultEqualityCheck: $
|
|
215
|
+
}
|
|
216
|
+
})
|
|
217
|
+
), [o, a]), l = k(() => n ? S([c], n, {
|
|
218
|
+
devModeChecks: {
|
|
219
|
+
identityFunctionCheck: "never"
|
|
220
|
+
}
|
|
221
|
+
}) : c, [c, n]), O = m((v) => l(v, s.current), $), p = I(), b = c(p.getState(), s.current);
|
|
222
|
+
return Ue(() => {
|
|
223
|
+
s.current = b;
|
|
224
|
+
}, [b]), O;
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function w(t) {
|
|
228
|
+
A(() => () => {
|
|
229
|
+
t.current?.unsubscribe?.(), t.current = void 0;
|
|
230
|
+
}, [t]);
|
|
231
|
+
}
|
|
232
|
+
function _(t) {
|
|
233
|
+
if (!t.current) throw new Error(process.env.NODE_ENV === "production" ? oe(38) : "Cannot refetch a query that has not been started yet.");
|
|
234
|
+
return t.current.refetch();
|
|
235
|
+
}
|
|
236
|
+
function R(t) {
|
|
237
|
+
const r = (i, n = {}) => {
|
|
238
|
+
const [o] = P(t, i, n);
|
|
239
|
+
return w(o), k(() => ({
|
|
240
|
+
/**
|
|
241
|
+
* A method to manually refetch data for the query
|
|
242
|
+
*/
|
|
243
|
+
refetch: () => _(o)
|
|
244
|
+
}), [o]);
|
|
245
|
+
}, d = ({
|
|
246
|
+
refetchOnReconnect: i,
|
|
247
|
+
refetchOnFocus: n,
|
|
248
|
+
pollingInterval: o = 0,
|
|
249
|
+
skipPollingIfUnfocused: a = !1
|
|
250
|
+
} = {}) => {
|
|
251
|
+
const {
|
|
252
|
+
initiate: s
|
|
253
|
+
} = e.endpoints[t], c = y(), [l, O] = re(X), p = q(void 0), b = G({
|
|
254
|
+
refetchOnReconnect: i,
|
|
255
|
+
refetchOnFocus: n,
|
|
256
|
+
pollingInterval: o,
|
|
257
|
+
skipPollingIfUnfocused: a
|
|
258
|
+
});
|
|
259
|
+
V(() => {
|
|
260
|
+
const L = p.current?.subscriptionOptions;
|
|
261
|
+
b !== L && p.current?.updateSubscriptionOptions(b);
|
|
262
|
+
}, [b]);
|
|
263
|
+
const v = q(b);
|
|
264
|
+
V(() => {
|
|
265
|
+
v.current = b;
|
|
266
|
+
}, [b]);
|
|
267
|
+
const E = N(function(L, H = !1) {
|
|
268
|
+
let z;
|
|
269
|
+
return f(() => {
|
|
270
|
+
p.current?.unsubscribe(), p.current = z = c(s(L, {
|
|
271
|
+
subscriptionOptions: v.current,
|
|
272
|
+
forceRefetch: !H
|
|
273
|
+
})), O(L);
|
|
274
|
+
}), z;
|
|
275
|
+
}, [c, s]), Q = N(() => {
|
|
276
|
+
p.current?.queryCacheKey && c(e.internalActions.removeQueryResult({
|
|
277
|
+
queryCacheKey: p.current?.queryCacheKey
|
|
278
|
+
}));
|
|
279
|
+
}, [c]);
|
|
280
|
+
return A(() => () => {
|
|
281
|
+
p?.current?.unsubscribe();
|
|
282
|
+
}, []), A(() => {
|
|
283
|
+
l !== X && !p.current && E(l, !0);
|
|
284
|
+
}, [l, E]), k(() => [E, l, {
|
|
285
|
+
reset: Q
|
|
286
|
+
}], [E, l, Q]);
|
|
287
|
+
}, u = T(t, K);
|
|
288
|
+
return {
|
|
289
|
+
useQueryState: u,
|
|
290
|
+
useQuerySubscription: r,
|
|
291
|
+
useLazyQuerySubscription: d,
|
|
292
|
+
useLazyQuery(i) {
|
|
293
|
+
const [n, o, {
|
|
294
|
+
reset: a
|
|
295
|
+
}] = d(i), s = u(o, {
|
|
296
|
+
...i,
|
|
297
|
+
skip: o === X
|
|
298
|
+
}), c = k(() => ({
|
|
299
|
+
lastArg: o
|
|
300
|
+
}), [o]);
|
|
301
|
+
return k(() => [n, {
|
|
302
|
+
...s,
|
|
303
|
+
reset: a
|
|
304
|
+
}, c], [n, s, a, c]);
|
|
305
|
+
},
|
|
306
|
+
useQuery(i, n) {
|
|
307
|
+
const o = r(i, n), a = u(i, {
|
|
308
|
+
selectFromResult: i === U || n?.skip ? void 0 : ie,
|
|
309
|
+
...n
|
|
310
|
+
}), s = te(a, ...ne);
|
|
311
|
+
return x(s), k(() => ({
|
|
312
|
+
...a,
|
|
313
|
+
...o
|
|
314
|
+
}), [a, o]);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
function Y(t) {
|
|
319
|
+
const r = (u, i = {}) => {
|
|
320
|
+
const [n, o, a, s] = P(t, u, i), c = q(s);
|
|
321
|
+
V(() => {
|
|
322
|
+
c.current = s;
|
|
323
|
+
}, [s]);
|
|
324
|
+
const l = N(function(b, v) {
|
|
325
|
+
let E;
|
|
326
|
+
return f(() => {
|
|
327
|
+
n.current?.unsubscribe(), n.current = E = o(a(b, {
|
|
328
|
+
subscriptionOptions: c.current,
|
|
329
|
+
direction: v
|
|
330
|
+
}));
|
|
331
|
+
}), E;
|
|
332
|
+
}, [n, o, a]);
|
|
333
|
+
w(n);
|
|
334
|
+
const O = ee(i.skip ? U : u), p = N(() => _(n), [n]);
|
|
335
|
+
return k(() => ({
|
|
336
|
+
trigger: l,
|
|
337
|
+
/**
|
|
338
|
+
* A method to manually refetch data for the query
|
|
339
|
+
*/
|
|
340
|
+
refetch: p,
|
|
341
|
+
fetchNextPage: () => l(O, "forward"),
|
|
342
|
+
fetchPreviousPage: () => l(O, "backward")
|
|
343
|
+
}), [p, l, O]);
|
|
344
|
+
}, d = T(t, W);
|
|
345
|
+
return {
|
|
346
|
+
useInfiniteQueryState: d,
|
|
347
|
+
useInfiniteQuerySubscription: r,
|
|
348
|
+
useInfiniteQuery(u, i) {
|
|
349
|
+
const {
|
|
350
|
+
refetch: n,
|
|
351
|
+
fetchNextPage: o,
|
|
352
|
+
fetchPreviousPage: a
|
|
353
|
+
} = r(u, i), s = d(u, {
|
|
354
|
+
selectFromResult: u === U || i?.skip ? void 0 : ie,
|
|
355
|
+
...i
|
|
356
|
+
}), c = te(s, ...ne, "hasNextPage", "hasPreviousPage");
|
|
357
|
+
return x(c), k(() => ({
|
|
358
|
+
...s,
|
|
359
|
+
fetchNextPage: o,
|
|
360
|
+
fetchPreviousPage: a,
|
|
361
|
+
refetch: n
|
|
362
|
+
}), [s, o, a, n]);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
function Z(t) {
|
|
367
|
+
return ({
|
|
368
|
+
selectFromResult: r,
|
|
369
|
+
fixedCacheKey: d
|
|
370
|
+
} = {}) => {
|
|
371
|
+
const {
|
|
372
|
+
select: u,
|
|
373
|
+
initiate: i
|
|
374
|
+
} = e.endpoints[t], n = y(), [o, a] = re();
|
|
375
|
+
A(() => () => {
|
|
376
|
+
o?.arg.fixedCacheKey || o?.reset();
|
|
377
|
+
}, [o]);
|
|
378
|
+
const s = N(function(L) {
|
|
379
|
+
const H = n(i(L, {
|
|
380
|
+
fixedCacheKey: d
|
|
381
|
+
}));
|
|
382
|
+
return a(H), H;
|
|
383
|
+
}, [n, i, d]), {
|
|
384
|
+
requestId: c
|
|
385
|
+
} = o || {}, l = k(() => u({
|
|
386
|
+
fixedCacheKey: d,
|
|
387
|
+
requestId: o?.requestId
|
|
388
|
+
}), [d, o, u]), O = k(() => r ? S([l], r) : l, [r, l]), p = m(O, $), b = d == null ? o?.arg.originalArgs : void 0, v = N(() => {
|
|
389
|
+
f(() => {
|
|
390
|
+
o && a(void 0), d && n(e.internalActions.removeMutationResult({
|
|
391
|
+
requestId: c,
|
|
392
|
+
fixedCacheKey: d
|
|
393
|
+
}));
|
|
394
|
+
});
|
|
395
|
+
}, [n, d, o, c]), E = te(p, ...ne, "endpointName");
|
|
396
|
+
x(E);
|
|
397
|
+
const Q = k(() => ({
|
|
398
|
+
...p,
|
|
399
|
+
originalArgs: b,
|
|
400
|
+
reset: v
|
|
401
|
+
}), [p, b, v]);
|
|
402
|
+
return k(() => [s, Q], [s, Q]);
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
var Ae = /* @__PURE__ */ Symbol(), Ve = ({
|
|
407
|
+
batch: e = me,
|
|
408
|
+
hooks: f = {
|
|
409
|
+
useDispatch: ge,
|
|
410
|
+
useSelector: he,
|
|
411
|
+
useStore: ye
|
|
412
|
+
},
|
|
413
|
+
createSelector: y = de,
|
|
414
|
+
unstable__sideEffectsInRender: m = !1,
|
|
415
|
+
...I
|
|
416
|
+
} = {}) => {
|
|
417
|
+
if (process.env.NODE_ENV !== "production") {
|
|
418
|
+
const h = ["useDispatch", "useSelector", "useStore"];
|
|
419
|
+
let S = !1;
|
|
420
|
+
for (const g of h)
|
|
421
|
+
if (ke(I) > 0 && (I[g] && (S || (console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`"), S = !0)), f[g] = I[g]), typeof f[g] != "function")
|
|
422
|
+
throw new Error(process.env.NODE_ENV === "production" ? oe(36) : `When using custom hooks for context, all ${h.length} hooks need to be provided: ${h.join(", ")}.
|
|
423
|
+
Hook ${g} was either not provided or not a function.`);
|
|
424
|
+
}
|
|
425
|
+
return {
|
|
426
|
+
name: Ae,
|
|
427
|
+
init(h, {
|
|
428
|
+
serializeQueryArgs: S
|
|
429
|
+
}, g) {
|
|
430
|
+
const D = h, {
|
|
431
|
+
buildQueryHooks: V,
|
|
432
|
+
buildInfiniteQueryHooks: K,
|
|
433
|
+
buildMutationHook: W,
|
|
434
|
+
usePrefetch: B
|
|
435
|
+
} = qe({
|
|
436
|
+
api: h,
|
|
437
|
+
moduleOptions: {
|
|
438
|
+
batch: e,
|
|
439
|
+
hooks: f,
|
|
440
|
+
unstable__sideEffectsInRender: m,
|
|
441
|
+
createSelector: y
|
|
442
|
+
},
|
|
443
|
+
serializeQueryArgs: S,
|
|
444
|
+
context: g
|
|
445
|
+
});
|
|
446
|
+
return C(D, {
|
|
447
|
+
usePrefetch: B
|
|
448
|
+
}), C(g, {
|
|
449
|
+
batch: e
|
|
450
|
+
}), {
|
|
451
|
+
injectEndpoint(P, T) {
|
|
452
|
+
if (Pe(T)) {
|
|
453
|
+
const {
|
|
454
|
+
useQuery: w,
|
|
455
|
+
useLazyQuery: _,
|
|
456
|
+
useLazyQuerySubscription: R,
|
|
457
|
+
useQueryState: Y,
|
|
458
|
+
useQuerySubscription: Z
|
|
459
|
+
} = V(P);
|
|
460
|
+
C(D.endpoints[P], {
|
|
461
|
+
useQuery: w,
|
|
462
|
+
useLazyQuery: _,
|
|
463
|
+
useLazyQuerySubscription: R,
|
|
464
|
+
useQueryState: Y,
|
|
465
|
+
useQuerySubscription: Z
|
|
466
|
+
}), h[`use${F(P)}Query`] = w, h[`useLazy${F(P)}Query`] = _;
|
|
467
|
+
}
|
|
468
|
+
if (Oe(T)) {
|
|
469
|
+
const w = W(P);
|
|
470
|
+
C(D.endpoints[P], {
|
|
471
|
+
useMutation: w
|
|
472
|
+
}), h[`use${F(P)}Mutation`] = w;
|
|
473
|
+
} else if (se(T)) {
|
|
474
|
+
const {
|
|
475
|
+
useInfiniteQuery: w,
|
|
476
|
+
useInfiniteQuerySubscription: _,
|
|
477
|
+
useInfiniteQueryState: R
|
|
478
|
+
} = K(P);
|
|
479
|
+
C(D.endpoints[P], {
|
|
480
|
+
useInfiniteQuery: w,
|
|
481
|
+
useInfiniteQuerySubscription: _,
|
|
482
|
+
useInfiniteQueryState: R
|
|
483
|
+
}), h[`use${F(P)}InfiniteQuery`] = w;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
}, _e = /* @__PURE__ */ ae(fe(), Ve());
|
|
490
|
+
const He = [
|
|
491
|
+
// These are the tags for the common models used throughout our system.
|
|
492
|
+
// https://github.com/ocadotechnology/codeforlife-package-python/tree/main/codeforlife/user/models
|
|
493
|
+
// NOTE: Don't use the "Teacher" and "Student" tags. Use "User" instead.
|
|
494
|
+
"User",
|
|
495
|
+
"School",
|
|
496
|
+
"Class",
|
|
497
|
+
"AuthFactor"
|
|
498
|
+
];
|
|
499
|
+
function Ge({
|
|
500
|
+
tagTypes: e = []
|
|
501
|
+
} = {}) {
|
|
502
|
+
const f = be({
|
|
503
|
+
baseUrl: `${ve}/`,
|
|
504
|
+
credentials: "include",
|
|
505
|
+
prepareHeaders: (m, I) => {
|
|
506
|
+
const { type: h, arg: S } = I, g = typeof S == "string" ? "GET" : S.method || "GET";
|
|
507
|
+
if (h === "mutation" || !Qe(g)) {
|
|
508
|
+
const D = J();
|
|
509
|
+
D && m.set("x-csrftoken", D);
|
|
510
|
+
}
|
|
511
|
+
return m;
|
|
512
|
+
}
|
|
513
|
+
}), y = _e({
|
|
514
|
+
// https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#implementing-a-custom-basequery
|
|
515
|
+
baseQuery: async (m, I, h) => {
|
|
516
|
+
if (I.type === "mutation" && J() === void 0) {
|
|
517
|
+
const { error: S } = await f(
|
|
518
|
+
{ url: "/csrf/cookie/", method: "GET" },
|
|
519
|
+
I,
|
|
520
|
+
{}
|
|
521
|
+
);
|
|
522
|
+
S !== void 0 && console.error(S), J();
|
|
523
|
+
}
|
|
524
|
+
return await f(m, I, h);
|
|
525
|
+
},
|
|
526
|
+
tagTypes: [...He, ...e],
|
|
527
|
+
endpoints: () => ({})
|
|
528
|
+
});
|
|
529
|
+
return y.injectEndpoints({
|
|
530
|
+
endpoints: (m) => ({
|
|
531
|
+
logout: Ee(y, m)
|
|
532
|
+
})
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
export {
|
|
536
|
+
Ge as createApi,
|
|
537
|
+
Be as schemas,
|
|
538
|
+
He as tagTypes,
|
|
539
|
+
Ze as urls
|
|
540
|
+
};
|
|
541
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs","../../src/api/tagTypes.ts","../../src/api/createApi.ts"],"sourcesContent":["// src/query/react/index.ts\nimport { buildCreateApi, coreModule } from \"@reduxjs/toolkit/query\";\n\n// src/query/react/module.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from \"react-redux\";\nimport { createSelector as _createSelector } from \"reselect\";\n\n// src/query/utils/capitalize.ts\nfunction capitalize(str) {\n return str.replace(str[0], str[0].toUpperCase());\n}\n\n// src/query/utils/countObjectKeys.ts\nfunction countObjectKeys(obj) {\n let count = 0;\n for (const _key in obj) {\n count++;\n }\n return count;\n}\n\n// src/query/endpointDefinitions.ts\nfunction isQueryDefinition(e) {\n return e.type === \"query\" /* query */;\n}\nfunction isMutationDefinition(e) {\n return e.type === \"mutation\" /* mutation */;\n}\nfunction isInfiniteQueryDefinition(e) {\n return e.type === \"infinitequery\" /* infinitequery */;\n}\n\n// src/query/tsHelpers.ts\nfunction safeAssign(target, ...args) {\n return Object.assign(target, ...args);\n}\n\n// src/query/react/buildHooks.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { QueryStatus, skipToken } from \"@reduxjs/toolkit/query\";\nimport { useCallback, useDebugValue, useEffect as useEffect3, useLayoutEffect, useMemo as useMemo2, useRef as useRef3, useState } from \"react\";\nimport { shallowEqual as shallowEqual2 } from \"react-redux\";\n\n// src/query/react/constants.ts\nvar UNINITIALIZED_VALUE = Symbol();\n\n// src/query/react/useSerializedStableValue.ts\nimport { useEffect, useRef, useMemo } from \"react\";\nimport { copyWithStructuralSharing } from \"@reduxjs/toolkit/query\";\nfunction useStableQueryArgs(queryArgs) {\n const cache = useRef(queryArgs);\n const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n useEffect(() => {\n if (cache.current !== copy) {\n cache.current = copy;\n }\n }, [copy]);\n return copy;\n}\n\n// src/query/react/useShallowStableValue.ts\nimport { useEffect as useEffect2, useRef as useRef2 } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nfunction useShallowStableValue(value) {\n const cache = useRef2(value);\n useEffect2(() => {\n if (!shallowEqual(cache.current, value)) {\n cache.current = value;\n }\n }, [value]);\n return shallowEqual(cache.current, value) ? cache.current : value;\n}\n\n// src/query/react/buildHooks.ts\nvar canUseDOM = () => !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar isDOM = /* @__PURE__ */ canUseDOM();\nvar isRunningInReactNative = () => typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\nvar isReactNative = /* @__PURE__ */ isRunningInReactNative();\nvar getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect3;\nvar useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();\nvar noPendingQueryStateSelector = (selected) => {\n if (selected.isUninitialized) {\n return {\n ...selected,\n isUninitialized: false,\n isFetching: true,\n isLoading: selected.data !== void 0 ? false : true,\n status: QueryStatus.pending\n };\n }\n return selected;\n};\nfunction pick(obj, ...keys) {\n const ret = {};\n keys.forEach((key) => {\n ret[key] = obj[key];\n });\n return ret;\n}\nvar COMMON_HOOK_DEBUG_FIELDS = [\"data\", \"status\", \"isLoading\", \"isSuccess\", \"isError\", \"error\"];\nfunction buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks: {\n useDispatch,\n useSelector,\n useStore\n },\n unstable__sideEffectsInRender,\n createSelector\n },\n serializeQueryArgs,\n context\n}) {\n const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : useEffect3;\n return {\n buildQueryHooks,\n buildInfiniteQueryHooks,\n buildMutationHook,\n usePrefetch\n };\n function queryStatePreSelector(currentState, lastResult, queryArgs) {\n if (lastResult?.endpointName && currentState.isUninitialized) {\n const {\n endpointName\n } = lastResult;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n if (queryArgs !== skipToken && serializeQueryArgs({\n queryArgs: lastResult.originalArgs,\n endpointDefinition,\n endpointName\n }) === serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n })) lastResult = void 0;\n }\n let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n if (data === void 0) data = currentState.data;\n const hasData = data !== void 0;\n const isFetching = currentState.isLoading;\n const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n return {\n ...currentState,\n data,\n currentData: currentState.data,\n isFetching,\n isLoading,\n isSuccess\n };\n }\n function infiniteQueryStatePreSelector(currentState, lastResult, queryArgs) {\n if (lastResult?.endpointName && currentState.isUninitialized) {\n const {\n endpointName\n } = lastResult;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n if (queryArgs !== skipToken && serializeQueryArgs({\n queryArgs: lastResult.originalArgs,\n endpointDefinition,\n endpointName\n }) === serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n })) lastResult = void 0;\n }\n let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n if (data === void 0) data = currentState.data;\n const hasData = data !== void 0;\n const isFetching = currentState.isLoading;\n const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n const isSuccess = currentState.isSuccess || isFetching && hasData;\n return {\n ...currentState,\n data,\n currentData: currentState.data,\n isFetching,\n isLoading,\n isSuccess\n };\n }\n function usePrefetch(endpointName, defaultOptions) {\n const dispatch = useDispatch();\n const stableDefaultOptions = useShallowStableValue(defaultOptions);\n return useCallback((arg, options) => dispatch(api.util.prefetch(endpointName, arg, {\n ...stableDefaultOptions,\n ...options\n })), [endpointName, dispatch, stableDefaultOptions]);\n }\n function useQuerySubscriptionCommonImpl(endpointName, arg, {\n refetchOnReconnect,\n refetchOnFocus,\n refetchOnMountOrArgChange,\n skip = false,\n pollingInterval = 0,\n skipPollingIfUnfocused = false,\n ...rest\n } = {}) {\n const {\n initiate\n } = api.endpoints[endpointName];\n const dispatch = useDispatch();\n const subscriptionSelectorsRef = useRef3(void 0);\n if (!subscriptionSelectorsRef.current) {\n const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof returnedValue !== \"object\" || typeof returnedValue?.type === \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!`);\n }\n }\n subscriptionSelectorsRef.current = returnedValue;\n }\n const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n const initialPageParam = rest.initialPageParam;\n const stableInitialPageParam = useShallowStableValue(initialPageParam);\n const promiseRef = useRef3(void 0);\n let {\n queryCacheKey,\n requestId\n } = promiseRef.current || {};\n let currentRenderHasSubscription = false;\n if (queryCacheKey && requestId) {\n currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n }\n const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== void 0;\n usePossiblyImmediateEffect(() => {\n if (subscriptionRemoved) {\n promiseRef.current = void 0;\n }\n }, [subscriptionRemoved]);\n usePossiblyImmediateEffect(() => {\n const lastPromise = promiseRef.current;\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"removeMeOnCompilation\") {\n console.log(subscriptionRemoved);\n }\n if (stableArg === skipToken) {\n lastPromise?.unsubscribe();\n promiseRef.current = void 0;\n return;\n }\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (!lastPromise || lastPromise.arg !== stableArg) {\n lastPromise?.unsubscribe();\n const promise = dispatch(initiate(stableArg, {\n subscriptionOptions: stableSubscriptionOptions,\n forceRefetch: refetchOnMountOrArgChange,\n ...isInfiniteQueryDefinition(context.endpointDefinitions[endpointName]) ? {\n initialPageParam: stableInitialPageParam\n } : {}\n }));\n promiseRef.current = promise;\n } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, endpointName]);\n return [promiseRef, dispatch, initiate, stableSubscriptionOptions];\n }\n function buildUseQueryState(endpointName, preSelector) {\n const useQueryState = (arg, {\n skip = false,\n selectFromResult\n } = {}) => {\n const {\n select\n } = api.endpoints[endpointName];\n const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n const lastValue = useRef3(void 0);\n const selectDefaultResult = useMemo2(() => (\n // Normally ts-ignores are bad and should be avoided, but we're\n // already casting this selector to be `Selector<any>` anyway,\n // so the inconsistencies don't matter here\n // @ts-ignore\n createSelector([\n // @ts-ignore\n select(stableArg),\n (_, lastResult) => lastResult,\n (_) => stableArg\n ], preSelector, {\n memoizeOptions: {\n resultEqualityCheck: shallowEqual2\n }\n })\n ), [select, stableArg]);\n const querySelector = useMemo2(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n devModeChecks: {\n identityFunctionCheck: \"never\"\n }\n }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n const currentState = useSelector((state) => querySelector(state, lastValue.current), shallowEqual2);\n const store = useStore();\n const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n useIsomorphicLayoutEffect(() => {\n lastValue.current = newLastValue;\n }, [newLastValue]);\n return currentState;\n };\n return useQueryState;\n }\n function usePromiseRefUnsubscribeOnUnmount(promiseRef) {\n useEffect3(() => {\n return () => {\n promiseRef.current?.unsubscribe?.();\n promiseRef.current = void 0;\n };\n }, [promiseRef]);\n }\n function refetchOrErrorIfUnmounted(promiseRef) {\n if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : \"Cannot refetch a query that has not been started yet.\");\n return promiseRef.current.refetch();\n }\n function buildQueryHooks(endpointName) {\n const useQuerySubscription = (arg, options = {}) => {\n const [promiseRef] = useQuerySubscriptionCommonImpl(endpointName, arg, options);\n usePromiseRefUnsubscribeOnUnmount(promiseRef);\n return useMemo2(() => ({\n /**\n * A method to manually refetch data for the query\n */\n refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n }), [promiseRef]);\n };\n const useLazyQuerySubscription = ({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval = 0,\n skipPollingIfUnfocused = false\n } = {}) => {\n const {\n initiate\n } = api.endpoints[endpointName];\n const dispatch = useDispatch();\n const [arg, setArg] = useState(UNINITIALIZED_VALUE);\n const promiseRef = useRef3(void 0);\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n usePossiblyImmediateEffect(() => {\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [stableSubscriptionOptions]);\n const subscriptionOptionsRef = useRef3(stableSubscriptionOptions);\n usePossiblyImmediateEffect(() => {\n subscriptionOptionsRef.current = stableSubscriptionOptions;\n }, [stableSubscriptionOptions]);\n const trigger = useCallback(function(arg2, preferCacheValue = false) {\n let promise;\n batch(() => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = promise = dispatch(initiate(arg2, {\n subscriptionOptions: subscriptionOptionsRef.current,\n forceRefetch: !preferCacheValue\n }));\n setArg(arg2);\n });\n return promise;\n }, [dispatch, initiate]);\n const reset = useCallback(() => {\n if (promiseRef.current?.queryCacheKey) {\n dispatch(api.internalActions.removeQueryResult({\n queryCacheKey: promiseRef.current?.queryCacheKey\n }));\n }\n }, [dispatch]);\n useEffect3(() => {\n return () => {\n promiseRef?.current?.unsubscribe();\n };\n }, []);\n useEffect3(() => {\n if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n trigger(arg, true);\n }\n }, [arg, trigger]);\n return useMemo2(() => [trigger, arg, {\n reset\n }], [trigger, arg, reset]);\n };\n const useQueryState = buildUseQueryState(endpointName, queryStatePreSelector);\n return {\n useQueryState,\n useQuerySubscription,\n useLazyQuerySubscription,\n useLazyQuery(options) {\n const [trigger, arg, {\n reset\n }] = useLazyQuerySubscription(options);\n const queryStateResults = useQueryState(arg, {\n ...options,\n skip: arg === UNINITIALIZED_VALUE\n });\n const info = useMemo2(() => ({\n lastArg: arg\n }), [arg]);\n return useMemo2(() => [trigger, {\n ...queryStateResults,\n reset\n }, info], [trigger, queryStateResults, reset, info]);\n },\n useQuery(arg, options) {\n const querySubscriptionResults = useQuerySubscription(arg, options);\n const queryStateResults = useQueryState(arg, {\n selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,\n ...options\n });\n const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n useDebugValue(debugValue);\n return useMemo2(() => ({\n ...queryStateResults,\n ...querySubscriptionResults\n }), [queryStateResults, querySubscriptionResults]);\n }\n };\n }\n function buildInfiniteQueryHooks(endpointName) {\n const useInfiniteQuerySubscription = (arg, options = {}) => {\n const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl(endpointName, arg, options);\n const subscriptionOptionsRef = useRef3(stableSubscriptionOptions);\n usePossiblyImmediateEffect(() => {\n subscriptionOptionsRef.current = stableSubscriptionOptions;\n }, [stableSubscriptionOptions]);\n const trigger = useCallback(function(arg2, direction) {\n let promise;\n batch(() => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = promise = dispatch(initiate(arg2, {\n subscriptionOptions: subscriptionOptionsRef.current,\n direction\n }));\n });\n return promise;\n }, [promiseRef, dispatch, initiate]);\n usePromiseRefUnsubscribeOnUnmount(promiseRef);\n const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n const refetch = useCallback(() => refetchOrErrorIfUnmounted(promiseRef), [promiseRef]);\n return useMemo2(() => {\n const fetchNextPage = () => {\n return trigger(stableArg, \"forward\");\n };\n const fetchPreviousPage = () => {\n return trigger(stableArg, \"backward\");\n };\n return {\n trigger,\n /**\n * A method to manually refetch data for the query\n */\n refetch,\n fetchNextPage,\n fetchPreviousPage\n };\n }, [refetch, trigger, stableArg]);\n };\n const useInfiniteQueryState = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n return {\n useInfiniteQueryState,\n useInfiniteQuerySubscription,\n useInfiniteQuery(arg, options) {\n const {\n refetch,\n fetchNextPage,\n fetchPreviousPage\n } = useInfiniteQuerySubscription(arg, options);\n const queryStateResults = useInfiniteQueryState(arg, {\n selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,\n ...options\n });\n const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, \"hasNextPage\", \"hasPreviousPage\");\n useDebugValue(debugValue);\n return useMemo2(() => ({\n ...queryStateResults,\n fetchNextPage,\n fetchPreviousPage,\n refetch\n }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n }\n };\n }\n function buildMutationHook(name) {\n return ({\n selectFromResult,\n fixedCacheKey\n } = {}) => {\n const {\n select,\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const [promise, setPromise] = useState();\n useEffect3(() => () => {\n if (!promise?.arg.fixedCacheKey) {\n promise?.reset();\n }\n }, [promise]);\n const triggerMutation = useCallback(function(arg) {\n const promise2 = dispatch(initiate(arg, {\n fixedCacheKey\n }));\n setPromise(promise2);\n return promise2;\n }, [dispatch, initiate, fixedCacheKey]);\n const {\n requestId\n } = promise || {};\n const selectDefaultResult = useMemo2(() => select({\n fixedCacheKey,\n requestId: promise?.requestId\n }), [fixedCacheKey, promise, select]);\n const mutationSelector = useMemo2(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n const currentState = useSelector(mutationSelector, shallowEqual2);\n const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : void 0;\n const reset = useCallback(() => {\n batch(() => {\n if (promise) {\n setPromise(void 0);\n }\n if (fixedCacheKey) {\n dispatch(api.internalActions.removeMutationResult({\n requestId,\n fixedCacheKey\n }));\n }\n });\n }, [dispatch, fixedCacheKey, promise, requestId]);\n const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, \"endpointName\");\n useDebugValue(debugValue);\n const finalState = useMemo2(() => ({\n ...currentState,\n originalArgs,\n reset\n }), [currentState, originalArgs, reset]);\n return useMemo2(() => [triggerMutation, finalState], [triggerMutation, finalState]);\n };\n }\n}\n\n// src/query/react/module.ts\nvar reactHooksModuleName = /* @__PURE__ */ Symbol();\nvar reactHooksModule = ({\n batch = rrBatch,\n hooks = {\n useDispatch: rrUseDispatch,\n useSelector: rrUseSelector,\n useStore: rrUseStore\n },\n createSelector = _createSelector,\n unstable__sideEffectsInRender = false,\n ...rest\n} = {}) => {\n if (process.env.NODE_ENV !== \"production\") {\n const hookNames = [\"useDispatch\", \"useSelector\", \"useStore\"];\n let warned = false;\n for (const hookName of hookNames) {\n if (countObjectKeys(rest) > 0) {\n if (rest[hookName]) {\n if (!warned) {\n console.warn(\"As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`\");\n warned = true;\n }\n }\n hooks[hookName] = rest[hookName];\n }\n if (typeof hooks[hookName] !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(\", \")}.\nHook ${hookName} was either not provided or not a function.`);\n }\n }\n }\n return {\n name: reactHooksModuleName,\n init(api, {\n serializeQueryArgs\n }, context) {\n const anyApi = api;\n const {\n buildQueryHooks,\n buildInfiniteQueryHooks,\n buildMutationHook,\n usePrefetch\n } = buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks,\n unstable__sideEffectsInRender,\n createSelector\n },\n serializeQueryArgs,\n context\n });\n safeAssign(anyApi, {\n usePrefetch\n });\n safeAssign(context, {\n batch\n });\n return {\n injectEndpoint(endpointName, definition) {\n if (isQueryDefinition(definition)) {\n const {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n } = buildQueryHooks(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n });\n api[`use${capitalize(endpointName)}Query`] = useQuery;\n api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n }\n if (isMutationDefinition(definition)) {\n const useMutation = buildMutationHook(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useMutation\n });\n api[`use${capitalize(endpointName)}Mutation`] = useMutation;\n } else if (isInfiniteQueryDefinition(definition)) {\n const {\n useInfiniteQuery,\n useInfiniteQuerySubscription,\n useInfiniteQueryState\n } = buildInfiniteQueryHooks(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useInfiniteQuery,\n useInfiniteQuerySubscription,\n useInfiniteQueryState\n });\n api[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n }\n }\n };\n }\n };\n};\n\n// src/query/react/index.ts\nexport * from \"@reduxjs/toolkit/query\";\n\n// src/query/react/ApiProvider.tsx\nimport { configureStore, formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { useContext } from \"react\";\nimport { useEffect as useEffect4 } from \"react\";\nimport * as React from \"react\";\nimport { Provider, ReactReduxContext } from \"react-redux\";\nimport { setupListeners } from \"@reduxjs/toolkit/query\";\nfunction ApiProvider(props) {\n const context = props.context || ReactReduxContext;\n const existingContext = useContext(context);\n if (existingContext) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(35) : \"Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.\");\n }\n const [store] = React.useState(() => configureStore({\n reducer: {\n [props.api.reducerPath]: props.api.reducer\n },\n middleware: (gDM) => gDM().concat(props.api.middleware)\n }));\n useEffect4(() => props.setupListeners === false ? void 0 : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n return /* @__PURE__ */ React.createElement(Provider, { store, context }, props.children);\n}\n\n// src/query/react/index.ts\nvar createApi = /* @__PURE__ */ buildCreateApi(coreModule(), reactHooksModule());\nexport {\n ApiProvider,\n UNINITIALIZED_VALUE,\n createApi,\n reactHooksModule,\n reactHooksModuleName\n};\n//# sourceMappingURL=rtk-query-react.modern.mjs.map","const tagTypes = [\n // These are the tags for the common models used throughout our system.\n // https://github.com/ocadotechnology/codeforlife-package-python/tree/main/codeforlife/user/models\n // NOTE: Don't use the \"Teacher\" and \"Student\" tags. Use \"User\" instead.\n \"User\",\n \"School\",\n \"Class\",\n \"AuthFactor\",\n] as const\n\nexport default tagTypes\nexport type TagTypes = (typeof tagTypes)[number]\n","import {\n type Api,\n type BaseQueryApi,\n type FetchArgs,\n type FetchBaseQueryError,\n type FetchBaseQueryMeta,\n type MutationDefinition,\n type QueryReturnValue,\n createApi as _createApi,\n type coreModuleName,\n fetchBaseQuery,\n type reactHooksModuleName,\n} from \"@reduxjs/toolkit/query/react\"\n\nimport defaultTagTypes, { type TagTypes as DefaultTagTypes } from \"./tagTypes\"\nimport { SERVICE_API_URL } from \"../settings\"\nimport { buildLogoutEndpoint } from \"./endpoints/session\"\nimport { getCsrfCookie } from \"../utils/auth\"\nimport { isSafeHttpMethod } from \"../utils/api\"\n\n// TODO: decide if we want to keep any of this.\n// export function handleResponseError(error: FetchBaseQueryError): void {\n// if (\n// error.status === 400 &&\n// typeof error.data === \"object\" &&\n// error.data !== null\n// ) {\n// // Parse the error's data from snake_case to camelCase.\n// snakeCaseToCamelCase(error.data)\n// } else if (error.status === 401) {\n// // TODO: redirect to appropriate login page based on user type.\n// window.location.href = `${PORTAL_BASE_URL}/login/teacher`\n// } else {\n// // Catch-all error pages by status-code.\n// window.location.href = `${PORTAL_BASE_URL}/error/${\n// [403, 404].includes(error.status as number) ? error.status : 500\n// }`\n// }\n// }\n\nexport default function createApi<TagTypes extends string = never>({\n tagTypes = [],\n}: {\n tagTypes?: readonly TagTypes[]\n} = {}): Api<\n (\n args: string | FetchArgs,\n api: BaseQueryApi,\n extraOptions: {},\n ) => Promise<\n QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>\n >,\n { logout: MutationDefinition<null, any, any, null, any, any> },\n \"api\",\n TagTypes | DefaultTagTypes,\n typeof coreModuleName | typeof reactHooksModuleName\n> {\n const fetch = fetchBaseQuery({\n baseUrl: `${SERVICE_API_URL}/`,\n credentials: \"include\",\n prepareHeaders: (headers, endpoint) => {\n const { type, arg } = endpoint as typeof endpoint & {\n arg: string | FetchArgs\n }\n const method = typeof arg === \"string\" ? \"GET\" : arg.method || \"GET\"\n\n if (type === \"mutation\" || !isSafeHttpMethod(method)) {\n const csrfToken = getCsrfCookie()\n if (csrfToken) headers.set(\"x-csrftoken\", csrfToken)\n }\n\n return headers\n },\n })\n\n const api = _createApi({\n // https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#implementing-a-custom-basequery\n baseQuery: async (args: string | FetchArgs, api, extraOptions) => {\n if (api.type === \"mutation\" && getCsrfCookie() === undefined) {\n // Get the CSRF token.\n const { error } = await fetch(\n { url: \"/csrf/cookie/\", method: \"GET\" },\n api,\n {},\n )\n\n // Validate we got the CSRF token.\n if (error !== undefined) {\n console.error(error)\n // TODO\n // window.location.href = `${PORTAL_BASE_URL}/error/500`\n }\n if (getCsrfCookie() === undefined) {\n // TODO\n // window.location.href = `${PORTAL_BASE_URL}/error/500`\n }\n }\n\n // Send the HTTP request and fetch the response.\n return await fetch(args, api, extraOptions)\n },\n tagTypes: [...defaultTagTypes, ...tagTypes],\n endpoints: () => ({}),\n })\n\n return api.injectEndpoints({\n endpoints: build => ({\n logout: buildLogoutEndpoint<null, null>(api, build),\n }),\n })\n}\n"],"names":["capitalize","str","countObjectKeys","obj","count","_key","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","safeAssign","target","args","UNINITIALIZED_VALUE","useStableQueryArgs","queryArgs","cache","useRef","copy","useMemo","copyWithStructuralSharing","useEffect","useShallowStableValue","value","useRef2","useEffect2","shallowEqual","canUseDOM","isDOM","isRunningInReactNative","isReactNative","getUseIsomorphicLayoutEffect","useLayoutEffect","useEffect3","useIsomorphicLayoutEffect","noPendingQueryStateSelector","selected","QueryStatus","pick","keys","ret","key","COMMON_HOOK_DEBUG_FIELDS","buildHooks","api","batch","useDispatch","useSelector","useStore","unstable__sideEffectsInRender","createSelector","serializeQueryArgs","context","usePossiblyImmediateEffect","cb","buildQueryHooks","buildInfiniteQueryHooks","buildMutationHook","usePrefetch","queryStatePreSelector","currentState","lastResult","endpointName","endpointDefinition","skipToken","data","hasData","isFetching","isLoading","isSuccess","infiniteQueryStatePreSelector","defaultOptions","dispatch","stableDefaultOptions","useCallback","arg","options","useQuerySubscriptionCommonImpl","refetchOnReconnect","refetchOnFocus","refetchOnMountOrArgChange","skip","pollingInterval","skipPollingIfUnfocused","rest","initiate","subscriptionSelectorsRef","useRef3","returnedValue","_formatProdErrorMessage","stableArg","stableSubscriptionOptions","initialPageParam","stableInitialPageParam","promiseRef","queryCacheKey","requestId","currentRenderHasSubscription","subscriptionRemoved","lastPromise","lastSubscriptionOptions","promise","buildUseQueryState","preSelector","selectFromResult","select","lastValue","selectDefaultResult","useMemo2","_","shallowEqual2","querySelector","state","store","newLastValue","usePromiseRefUnsubscribeOnUnmount","refetchOrErrorIfUnmounted","_formatProdErrorMessage2","useQuerySubscription","useLazyQuerySubscription","setArg","useState","subscriptionOptionsRef","trigger","arg2","preferCacheValue","reset","useQueryState","queryStateResults","info","querySubscriptionResults","debugValue","useDebugValue","useInfiniteQuerySubscription","direction","refetch","useInfiniteQueryState","fetchNextPage","fetchPreviousPage","name","fixedCacheKey","setPromise","triggerMutation","promise2","mutationSelector","originalArgs","finalState","reactHooksModuleName","reactHooksModule","rrBatch","hooks","rrUseDispatch","rrUseSelector","rrUseStore","_createSelector","hookNames","warned","hookName","_formatProdErrorMessage3","anyApi","definition","useQuery","useLazyQuery","useMutation","useInfiniteQuery","createApi","buildCreateApi","coreModule","tagTypes","fetch","fetchBaseQuery","SERVICE_API_URL","headers","endpoint","type","method","isSafeHttpMethod","csrfToken","getCsrfCookie","_createApi","extraOptions","error","defaultTagTypes","build","buildLogoutEndpoint"],"mappings":"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","x_google_ignoreList":[0]}
|