@strapi/admin 4.17.0 → 4.17.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/_chunks/{AdminSeatInfo-a10d232f.js → AdminSeatInfo-390d8989.js} +3 -3
- package/dist/_chunks/{AdminSeatInfo-a10d232f.js.map → AdminSeatInfo-390d8989.js.map} +1 -1
- package/dist/_chunks/{AdminSeatInfo-6e7bbb97.mjs → AdminSeatInfo-bb59ad1f.mjs} +3 -3
- package/dist/_chunks/{AdminSeatInfo-6e7bbb97.mjs.map → AdminSeatInfo-bb59ad1f.mjs.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-47219c52.js → AuthenticatedApp-b186733c.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-47219c52.js.map → AuthenticatedApp-b186733c.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-7d1fdf0c.mjs → AuthenticatedApp-b723bf94.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-7d1fdf0c.mjs.map → AuthenticatedApp-b723bf94.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-d2a061b5.js → CreatePage-16d53bda.js} +4 -4
- package/dist/_chunks/{CreatePage-d2a061b5.js.map → CreatePage-16d53bda.js.map} +1 -1
- package/dist/_chunks/{CreatePage-32977ee7.mjs → CreatePage-34ad9bdd.mjs} +4 -4
- package/dist/_chunks/{CreatePage-32977ee7.mjs.map → CreatePage-34ad9bdd.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-eeb81776.js → CreatePage-92f708fa.js} +4 -4
- package/dist/_chunks/{CreatePage-eeb81776.js.map → CreatePage-92f708fa.js.map} +1 -1
- package/dist/_chunks/{CreatePage-17c8a6e4.mjs → CreatePage-e5d16f0e.mjs} +4 -4
- package/dist/_chunks/{CreatePage-17c8a6e4.mjs.map → CreatePage-e5d16f0e.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-4ba4bd0d.mjs → CreatePage-f321dfbc.mjs} +4 -4
- package/dist/_chunks/{CreatePage-4ba4bd0d.mjs.map → CreatePage-f321dfbc.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-3c0b9dd5.js → CreatePage-f63362cf.js} +4 -4
- package/dist/_chunks/{CreatePage-3c0b9dd5.js.map → CreatePage-f63362cf.js.map} +1 -1
- package/dist/_chunks/{CreateView-5a0b0eca.js → CreateView-0da060c0.js} +4 -4
- package/dist/_chunks/{CreateView-5a0b0eca.js.map → CreateView-0da060c0.js.map} +1 -1
- package/dist/_chunks/{CreateView-fc328787.js → CreateView-69c834ba.js} +4 -4
- package/dist/_chunks/{CreateView-fc328787.js.map → CreateView-69c834ba.js.map} +1 -1
- package/dist/_chunks/{CreateView-8b6412c9.mjs → CreateView-a5345794.mjs} +4 -4
- package/dist/_chunks/{CreateView-8b6412c9.mjs.map → CreateView-a5345794.mjs.map} +1 -1
- package/dist/_chunks/{CreateView-2bc998f1.mjs → CreateView-df9f9bf0.mjs} +4 -4
- package/dist/_chunks/{CreateView-2bc998f1.mjs.map → CreateView-df9f9bf0.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-0b1a48f7.js → EditPage-39a7cd2d.js} +5 -5
- package/dist/_chunks/{EditPage-0b1a48f7.js.map → EditPage-39a7cd2d.js.map} +1 -1
- package/dist/_chunks/{EditPage-89052393.js → EditPage-48cdd744.js} +4 -4
- package/dist/_chunks/{EditPage-89052393.js.map → EditPage-48cdd744.js.map} +1 -1
- package/dist/_chunks/{EditPage-efc987d7.js → EditPage-493ac83a.js} +5 -5
- package/dist/_chunks/{EditPage-efc987d7.js.map → EditPage-493ac83a.js.map} +1 -1
- package/dist/_chunks/{EditPage-6d3fe437.mjs → EditPage-a5a18e61.mjs} +4 -4
- package/dist/_chunks/{EditPage-6d3fe437.mjs.map → EditPage-a5a18e61.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-2b051ea8.mjs → EditPage-a6578110.mjs} +5 -5
- package/dist/_chunks/{EditPage-2b051ea8.mjs.map → EditPage-a6578110.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-7b9355e4.mjs → EditPage-e710a231.mjs} +4 -4
- package/dist/_chunks/{EditPage-7b9355e4.mjs.map → EditPage-e710a231.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-faee9ac1.mjs → EditPage-f5caa375.mjs} +5 -5
- package/dist/_chunks/{EditPage-faee9ac1.mjs.map → EditPage-f5caa375.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-de127112.js → EditPage-f75f04b9.js} +4 -4
- package/dist/_chunks/{EditPage-de127112.js.map → EditPage-f75f04b9.js.map} +1 -1
- package/dist/_chunks/{EditView-e480d09f.js → EditView-0c216c35.js} +3 -3
- package/dist/_chunks/{EditView-e480d09f.js.map → EditView-0c216c35.js.map} +1 -1
- package/dist/_chunks/{EditView-0e4d7c80.mjs → EditView-d3ccb532.mjs} +3 -3
- package/dist/_chunks/{EditView-0e4d7c80.mjs.map → EditView-d3ccb532.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-ef0292a9.js → EditViewPage-57b6e71a.js} +3 -3
- package/dist/_chunks/{EditViewPage-ef0292a9.js.map → EditViewPage-57b6e71a.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-3e638ea4.mjs → EditViewPage-77e95780.mjs} +3 -3
- package/dist/_chunks/{EditViewPage-3e638ea4.mjs.map → EditViewPage-77e95780.mjs.map} +1 -1
- package/dist/_chunks/{EventsTable-c8ea750e.js → EventsTable-8e2b0bd9.js} +4 -4
- package/dist/_chunks/{EventsTable-c8ea750e.js.map → EventsTable-8e2b0bd9.js.map} +1 -1
- package/dist/_chunks/{EventsTable-21c9c326.mjs → EventsTable-d472e89d.mjs} +4 -4
- package/dist/_chunks/{EventsTable-21c9c326.mjs.map → EventsTable-d472e89d.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-28c2fc09.mjs → HomePage-22d90f51.mjs} +4 -4
- package/dist/_chunks/{HomePage-28c2fc09.mjs.map → HomePage-22d90f51.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-ef17de6c.js → HomePage-7bd6070c.js} +4 -4
- package/dist/_chunks/{HomePage-ef17de6c.js.map → HomePage-7bd6070c.js.map} +1 -1
- package/dist/_chunks/{HomePage-d9e5bcf6.js → HomePage-bb29ced3.js} +4 -4
- package/dist/_chunks/{HomePage-d9e5bcf6.js.map → HomePage-bb29ced3.js.map} +1 -1
- package/dist/_chunks/{HomePage-bfeba10a.mjs → HomePage-e94a37b9.mjs} +4 -4
- package/dist/_chunks/{HomePage-bfeba10a.mjs.map → HomePage-e94a37b9.mjs.map} +1 -1
- package/dist/_chunks/{InformationBoxEE-bd1d2894.mjs → InformationBoxEE-302228b9.mjs} +2 -2
- package/dist/_chunks/{InformationBoxEE-bd1d2894.mjs.map → InformationBoxEE-302228b9.mjs.map} +1 -1
- package/dist/_chunks/{InformationBoxEE-2d2b6c4a.js → InformationBoxEE-7d383cec.js} +2 -2
- package/dist/_chunks/{InformationBoxEE-2d2b6c4a.js.map → InformationBoxEE-7d383cec.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-39a094a5.js → InstalledPluginsPage-73eabc0b.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-39a094a5.js.map → InstalledPluginsPage-73eabc0b.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-8e9b0b64.mjs → InstalledPluginsPage-ff15831e.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-8e9b0b64.mjs.map → InstalledPluginsPage-ff15831e.mjs.map} +1 -1
- package/dist/_chunks/{Layout-caf718bb.mjs → Layout-1dd77bbb.mjs} +2 -2
- package/dist/_chunks/{Layout-caf718bb.mjs.map → Layout-1dd77bbb.mjs.map} +1 -1
- package/dist/_chunks/{Layout-cc5413b2.js → Layout-ef2fc31f.js} +2 -2
- package/dist/_chunks/{Layout-cc5413b2.js.map → Layout-ef2fc31f.js.map} +1 -1
- package/dist/_chunks/{ListPage-cc823a6a.js → ListPage-10bf0ce5.js} +3 -3
- package/dist/_chunks/{ListPage-cc823a6a.js.map → ListPage-10bf0ce5.js.map} +1 -1
- package/dist/_chunks/{ListPage-5ed3e9d2.mjs → ListPage-1de5fb9e.mjs} +5 -5
- package/dist/_chunks/{ListPage-5ed3e9d2.mjs.map → ListPage-1de5fb9e.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-db17e758.js → ListPage-354a539f.js} +5 -5
- package/dist/_chunks/{ListPage-db17e758.js.map → ListPage-354a539f.js.map} +1 -1
- package/dist/_chunks/{ListPage-800398cd.mjs → ListPage-57f5028e.mjs} +6 -6
- package/dist/_chunks/{ListPage-800398cd.mjs.map → ListPage-57f5028e.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-338d8ca5.js → ListPage-7304822d.js} +6 -6
- package/dist/_chunks/{ListPage-338d8ca5.js.map → ListPage-7304822d.js.map} +1 -1
- package/dist/_chunks/{ListPage-f43782c4.mjs → ListPage-887f0f02.mjs} +3 -3
- package/dist/_chunks/{ListPage-f43782c4.mjs.map → ListPage-887f0f02.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-05df9b86.mjs → ListPage-96026788.mjs} +3 -3
- package/dist/_chunks/{ListPage-05df9b86.mjs.map → ListPage-96026788.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-17fb477a.js → ListPage-ac287db9.js} +3 -3
- package/dist/_chunks/{ListPage-17fb477a.js.map → ListPage-ac287db9.js.map} +1 -1
- package/dist/_chunks/{ListPage-5e5ad2aa.js → ListPage-ba1aec01.js} +3 -3
- package/dist/_chunks/{ListPage-5e5ad2aa.js.map → ListPage-ba1aec01.js.map} +1 -1
- package/dist/_chunks/{ListPage-7d5baee5.mjs → ListPage-c878fda8.mjs} +4 -4
- package/dist/_chunks/{ListPage-7d5baee5.mjs.map → ListPage-c878fda8.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-de4b7131.mjs → ListPage-f256fcb7.mjs} +3 -3
- package/dist/_chunks/{ListPage-de4b7131.mjs.map → ListPage-f256fcb7.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-56d94335.js → ListPage-f582ff65.js} +4 -4
- package/dist/_chunks/{ListPage-56d94335.js.map → ListPage-f582ff65.js.map} +1 -1
- package/dist/_chunks/{ListView-b91a8da7.mjs → ListView-1b370206.mjs} +3 -3
- package/dist/_chunks/{ListView-b91a8da7.mjs.map → ListView-1b370206.mjs.map} +1 -1
- package/dist/_chunks/{ListView-80855396.js → ListView-1fb891a4.js} +3 -3
- package/dist/_chunks/{ListView-80855396.js.map → ListView-1fb891a4.js.map} +1 -1
- package/dist/_chunks/{ListView-a33ebe77.js → ListView-96fe1016.js} +3 -3
- package/dist/_chunks/{ListView-a33ebe77.js.map → ListView-96fe1016.js.map} +1 -1
- package/dist/_chunks/{ListView-521e309f.mjs → ListView-bf4ccdba.mjs} +3 -3
- package/dist/_chunks/{ListView-521e309f.mjs.map → ListView-bf4ccdba.mjs.map} +1 -1
- package/dist/_chunks/{Login-906ebde5.js → Login-09040dec.js} +2 -2
- package/dist/_chunks/{Login-906ebde5.js.map → Login-09040dec.js.map} +1 -1
- package/dist/_chunks/{Login-4eb1fb78.mjs → Login-6670c9b9.mjs} +2 -2
- package/dist/_chunks/{Login-4eb1fb78.mjs.map → Login-6670c9b9.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-03128309.mjs → MagicLinkEE-6d9ed1b1.mjs} +3 -3
- package/dist/_chunks/{MagicLinkEE-03128309.mjs.map → MagicLinkEE-6d9ed1b1.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-ab36ee0f.js → MagicLinkEE-79ab8b22.js} +3 -3
- package/dist/_chunks/{MagicLinkEE-ab36ee0f.js.map → MagicLinkEE-79ab8b22.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-62e70483.mjs → MarketplacePage-54a925f9.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-62e70483.mjs.map → MarketplacePage-54a925f9.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-fe1f2c6e.js → MarketplacePage-ec91b073.js} +3 -3
- package/dist/_chunks/{MarketplacePage-fe1f2c6e.js.map → MarketplacePage-ec91b073.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-5359ee40.mjs → ProfilePage-091a4db8.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-5359ee40.mjs.map → ProfilePage-091a4db8.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-5bf5e2ed.js → ProfilePage-a28fc7c8.js} +3 -3
- package/dist/_chunks/{ProfilePage-5bf5e2ed.js.map → ProfilePage-a28fc7c8.js.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-65518684.mjs → ReviewWorkflowsColumn-5a3ca279.mjs} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-65518684.mjs.map → ReviewWorkflowsColumn-5a3ca279.mjs.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-b36965fe.js → ReviewWorkflowsColumn-b2d53622.js} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-b36965fe.js.map → ReviewWorkflowsColumn-b2d53622.js.map} +1 -1
- package/dist/_chunks/{SelectRoles-e83f2dee.js → SelectRoles-b55e6376.js} +2 -2
- package/dist/_chunks/{SelectRoles-e83f2dee.js.map → SelectRoles-b55e6376.js.map} +1 -1
- package/dist/_chunks/{SelectRoles-3d810b00.mjs → SelectRoles-f0565968.mjs} +2 -2
- package/dist/_chunks/{SelectRoles-3d810b00.mjs.map → SelectRoles-f0565968.mjs.map} +1 -1
- package/dist/_chunks/{SettingsPage-571f777c.mjs → SettingsPage-7567e138.mjs} +20 -20
- package/dist/_chunks/{SettingsPage-571f777c.mjs.map → SettingsPage-7567e138.mjs.map} +1 -1
- package/dist/_chunks/{SettingsPage-a558ffda.js → SettingsPage-b5d5dd0b.js} +20 -20
- package/dist/_chunks/{SettingsPage-a558ffda.js.map → SettingsPage-b5d5dd0b.js.map} +1 -1
- package/dist/_chunks/{SingleSignOnPage-19f2e16f.mjs → SingleSignOnPage-4d1d2448.mjs} +3 -3
- package/dist/_chunks/{SingleSignOnPage-19f2e16f.mjs.map → SingleSignOnPage-4d1d2448.mjs.map} +1 -1
- package/dist/_chunks/{SingleSignOnPage-b63f4c0f.js → SingleSignOnPage-51dfde4b.js} +3 -3
- package/dist/_chunks/{SingleSignOnPage-b63f4c0f.js.map → SingleSignOnPage-51dfde4b.js.map} +1 -1
- package/dist/_chunks/{constants-b3c9cbbf.mjs → constants-2ccf2787.mjs} +2 -2
- package/dist/_chunks/{constants-b3c9cbbf.mjs.map → constants-2ccf2787.mjs.map} +1 -1
- package/dist/_chunks/{constants-5345058d.js → constants-54043280.js} +2 -2
- package/dist/_chunks/{constants-5345058d.js.map → constants-54043280.js.map} +1 -1
- package/dist/_chunks/{constants-73ebce66.js → constants-74ce2d53.js} +2 -2
- package/dist/_chunks/{constants-73ebce66.js.map → constants-74ce2d53.js.map} +1 -1
- package/dist/_chunks/{constants-71ebbb75.mjs → constants-81c376c5.mjs} +2 -2
- package/dist/_chunks/{constants-71ebbb75.mjs.map → constants-81c376c5.mjs.map} +1 -1
- package/dist/_chunks/{constants-d80f19f3.js → constants-a5b1e9d4.js} +6 -6
- package/dist/_chunks/{constants-d80f19f3.js.map → constants-a5b1e9d4.js.map} +1 -1
- package/dist/_chunks/{constants-7e57b453.mjs → constants-b156a1b6.mjs} +6 -6
- package/dist/_chunks/{constants-7e57b453.mjs.map → constants-b156a1b6.mjs.map} +1 -1
- package/dist/_chunks/{index-3f8cf4d5.js → index-3956d072.js} +36 -33
- package/dist/_chunks/index-3956d072.js.map +1 -0
- package/dist/_chunks/{index-95e8649d.mjs → index-3bbbb14c.mjs} +36 -33
- package/dist/_chunks/index-3bbbb14c.mjs.map +1 -0
- package/dist/_chunks/{useAdminRolePermissions-fccd0884.mjs → useAdminRolePermissions-9f9361e7.mjs} +2 -2
- package/dist/_chunks/{useAdminRolePermissions-fccd0884.mjs.map → useAdminRolePermissions-9f9361e7.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRolePermissions-122fa43a.js → useAdminRolePermissions-c97323e2.js} +2 -2
- package/dist/_chunks/{useAdminRolePermissions-122fa43a.js.map → useAdminRolePermissions-c97323e2.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-8a63abd6.mjs → validateWorkflow-5208ca73.mjs} +2 -2
- package/dist/_chunks/{validateWorkflow-8a63abd6.mjs.map → validateWorkflow-5208ca73.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-1f89db67.js → validateWorkflow-f6947b4c.js} +2 -2
- package/dist/_chunks/{validateWorkflow-1f89db67.js.map → validateWorkflow-f6947b4c.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +13 -13
- package/dist/_chunks/index-3f8cf4d5.js.map +0 -1
- package/dist/_chunks/index-95e8649d.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage-b63f4c0f.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport { Formik, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport * as yup from 'yup';\n\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../../admin/src/selectors';\nimport { formatAPIErrors } from '../../../../../../admin/src/utils/formatAPIErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { get, put } = useFetchClient();\n\n const { isLoading: isLoadingProviderOptions, data } = useQuery(\n ['providers', 'options'],\n async () => {\n const { data } = await get<ProvidersOptions.Response>('/admin/providers/options');\n\n return data.data;\n },\n {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n const submitMutation = useMutation<\n ProvidersOptions.Response['data'],\n AxiosError<ProvidersOptions.Response>,\n ProvidersOptions.Request['body']\n >(\n async (body) => {\n const { autoRegister, defaultRole, ssoLockedRoles } = body;\n const { data } = await put<ProvidersOptions.Response>('/admin/providers/options', {\n autoRegister,\n defaultRole,\n ssoLockedRoles,\n });\n\n return data.data;\n },\n {\n async onSettled() {\n // @ts-expect-error – we're going to implement a context assertion to avoid this\n unlockApp();\n },\n }\n );\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n enabled: canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n { resetForm, setErrors }: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n submitMutation.mutate(body, {\n onSuccess(data) {\n resetForm({ values: data });\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n },\n onError(err) {\n if (err instanceof AxiosError && err.response) {\n // @ts-expect-error formatApiErrors is waiting for a Record<string, string[]> while response.data contains different value types than string.\n const errors = formatAPIErrors(err.response.data);\n const fieldsErrors = Object.keys(errors).reduce<\n FormikErrors<ProvidersOptions.Request['body']>\n >((acc, current) => {\n acc[current as keyof ProvidersOptions.Request['body']] = errors[current].id;\n return acc;\n }, {});\n setErrors(fieldsErrors);\n toggleNotification({\n type: 'warning',\n // @ts-expect-error formatAPIError is waiting for \"err\" to be AxiosError<{ error: ApiError }> while few lines above we need error.data there's a conflict between these two functions\n message: formatAPIError(err),\n });\n }\n },\n });\n };\n\n const { isLoading: isSubmittingForm } = submitMutation;\n const initialValues = {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n };\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={data || initialValues}\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n data-testid=\"save-button\"\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n data-testid=\"autoRegister\"\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.sso?.main}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useSelector","selectAdminPermissions","useOverlayBlocker","useNotification","useAPIErrorHandler","useFetchClient","useQuery","data","useMutation","useRBAC","useAdminRoles","AxiosError","formatAPIErrors","Layout","jsx","SettingsPageTitle","Main","Formik","jsxs","Form","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage-51dfde4b.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport { Formik, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport * as yup from 'yup';\n\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../../admin/src/selectors';\nimport { formatAPIErrors } from '../../../../../../admin/src/utils/formatAPIErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { get, put } = useFetchClient();\n\n const { isLoading: isLoadingProviderOptions, data } = useQuery(\n ['providers', 'options'],\n async () => {\n const { data } = await get<ProvidersOptions.Response>('/admin/providers/options');\n\n return data.data;\n },\n {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n },\n }\n );\n\n const submitMutation = useMutation<\n ProvidersOptions.Response['data'],\n AxiosError<ProvidersOptions.Response>,\n ProvidersOptions.Request['body']\n >(\n async (body) => {\n const { autoRegister, defaultRole, ssoLockedRoles } = body;\n const { data } = await put<ProvidersOptions.Response>('/admin/providers/options', {\n autoRegister,\n defaultRole,\n ssoLockedRoles,\n });\n\n return data.data;\n },\n {\n async onSettled() {\n // @ts-expect-error – we're going to implement a context assertion to avoid this\n unlockApp();\n },\n }\n );\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n enabled: canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n { resetForm, setErrors }: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n submitMutation.mutate(body, {\n onSuccess(data) {\n resetForm({ values: data });\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n },\n onError(err) {\n if (err instanceof AxiosError && err.response) {\n // @ts-expect-error formatApiErrors is waiting for a Record<string, string[]> while response.data contains different value types than string.\n const errors = formatAPIErrors(err.response.data);\n const fieldsErrors = Object.keys(errors).reduce<\n FormikErrors<ProvidersOptions.Request['body']>\n >((acc, current) => {\n acc[current as keyof ProvidersOptions.Request['body']] = errors[current].id;\n return acc;\n }, {});\n setErrors(fieldsErrors);\n toggleNotification({\n type: 'warning',\n // @ts-expect-error formatAPIError is waiting for \"err\" to be AxiosError<{ error: ApiError }> while few lines above we need error.data there's a conflict between these two functions\n message: formatAPIError(err),\n });\n }\n },\n });\n };\n\n const { isLoading: isSubmittingForm } = submitMutation;\n const initialValues = {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n };\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={data || initialValues}\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n data-testid=\"save-button\"\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n data-testid=\"autoRegister\"\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.sso?.main}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useSelector","selectAdminPermissions","useOverlayBlocker","useNotification","useAPIErrorHandler","useFetchClient","useQuery","data","useMutation","useRBAC","useAdminRoles","AxiosError","formatAPIErrors","Layout","jsx","SettingsPageTitle","Main","Formik","jsxs","Form","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { useIntl } from "react-intl";
|
|
|
6
6
|
import { useQuery } from "react-query";
|
|
7
7
|
import { useHistory, Redirect, NavLink } from "react-router-dom";
|
|
8
8
|
import styled from "styled-components";
|
|
9
|
-
import { U as UnauthenticatedLayout, d as LayoutContent, C as Column, e as Logo } from "./index-
|
|
9
|
+
import { U as UnauthenticatedLayout, d as LayoutContent, C as Column, e as Logo } from "./index-3bbbb14c.mjs";
|
|
10
10
|
import { S as SSOProviders } from "./SSOProviders-62bfad92.mjs";
|
|
11
11
|
import "react-dom/client";
|
|
12
12
|
import "invariant";
|
|
@@ -116,4 +116,4 @@ const FORMS = {
|
|
|
116
116
|
export {
|
|
117
117
|
FORMS
|
|
118
118
|
};
|
|
119
|
-
//# sourceMappingURL=constants-
|
|
119
|
+
//# sourceMappingURL=constants-2ccf2787.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-2ccf2787.mjs","sources":["../../ee/admin/src/pages/AuthPage/components/Providers.tsx","../../ee/admin/src/pages/AuthPage/constants.ts"],"sourcesContent":["import { Box, Button, Divider, Flex, Loader, Main, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { useFetchClient } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport { NavLink, Redirect, useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Logo } from '../../../../../../admin/src/components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../../../../admin/src/layouts/UnauthenticatedLayout';\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst Providers = () => {\n const { push } = useHistory();\n const { formatMessage } = useIntl();\n const { get } = useFetchClient();\n const { isLoading, data: providers = [] } = useQuery(\n ['ee', 'providers'],\n async () => {\n const { data } = await get<GetProviders.Response>('/admin/providers');\n\n return data;\n },\n {\n enabled: window.strapi.features.isEnabled(window.strapi.features.SSO),\n }\n );\n\n const handleClick = () => {\n push('/auth/login');\n };\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Redirect to=\"/auth/login\" />;\n }\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={1}>\n <Typography as=\"h1\" variant=\"alpha\">\n {formatMessage({ id: 'Auth.form.welcome.title' })}\n </Typography>\n </Box>\n <Box paddingBottom={7}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.subtitle' })}\n </Typography>\n </Box>\n </Column>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>{formatMessage({ id: 'Auth.login.sso.loading' })}</Loader>\n </Flex>\n ) : (\n <SSOProviders providers={providers} />\n )}\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'or' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <Button fullWidth size=\"L\" onClick={handleClick}>\n {formatMessage({ id: 'Auth.form.button.login.strapi' })}\n </Button>\n </Flex>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n {/* @ts-expect-error – error with inferring the props from the as component */}\n <Link as={NavLink} to=\"/auth/forgot-password\">\n <Typography variant=\"pi\">\n {formatMessage({ id: 'Auth.link.forgot-password' })}\n </Typography>\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nexport { Providers };\n","import type { ComponentType } from 'react';\n\nimport { Providers } from './components/Providers';\n\ntype AuthType = 'providers';\n\ntype FormDictionary = Record<AuthType, ComponentType>;\n\nexport const FORMS = {\n providers: Providers,\n} satisfies FormDictionary;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAY,MAAM;AAChB,QAAA,EAAE,SAAS;AACX,QAAA,EAAE,kBAAkB;AACpB,QAAA,EAAE,QAAQ;AAChB,QAAM,EAAE,WAAW,MAAM,YAAY,CAAA,EAAO,IAAA;AAAA,IAC1C,CAAC,MAAM,WAAW;AAAA,IAClB,YAAY;AACV,YAAM,EAAE,KAAS,IAAA,MAAM,IAA2B,kBAAkB;AAE7D,aAAA;AAAA,IACT;AAAA,IACA;AAAA,MACE,SAAS,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG;AAAA,IACtE;AAAA,EAAA;AAGF,QAAM,cAAc,MAAM;AACxB,SAAK,aAAa;AAAA,EAAA;AAGpB,MACE,CAAC,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,KAC3D,CAAC,aAAa,UAAU,WAAW,GACpC;AACO,WAAA,oBAAC,UAAS,EAAA,IAAG,cAAc,CAAA;AAAA,EACpC;AAGE,SAAA,oBAAC,uBACC,EAAA,UAAA,qBAAC,MACC,EAAA,UAAA;AAAA,IAAA,qBAAC,eACC,EAAA,UAAA;AAAA,MAAA,qBAAC,QACC,EAAA,UAAA;AAAA,QAAA,oBAAC,MAAK,EAAA;AAAA,4BACL,KAAI,EAAA,YAAY,GAAG,eAAe,GACjC,8BAAC,YAAW,EAAA,IAAG,MAAK,SAAQ,SACzB,UAAc,cAAA,EAAE,IAAI,0BAA0B,CAAC,EAClD,CAAA,GACF;AAAA,4BACC,KAAI,EAAA,eAAe,GAClB,UAAA,oBAAC,cAAW,SAAQ,WAAU,WAAU,cACrC,wBAAc,EAAE,IAAI,0BAA0B,CAAC,EAClD,CAAA,GACF;AAAA,MAAA,GACF;AAAA,2BACC,MAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GAChD,UAAA;AAAA,QAAA,gCACE,MAAK,EAAA,gBAAe,UACnB,UAAA,oBAAC,UAAQ,UAAc,cAAA,EAAE,IAAI,yBAA0B,CAAA,GAAE,EAAA,CAC3D,IAEA,oBAAC,gBAAa,WAAsB;AAAA,6BAErC,MACC,EAAA,UAAA;AAAA,UAAA,oBAAC,aAAY,EAAA;AAAA,8BACZ,KAAI,EAAA,aAAa,GAAG,cAAc,GACjC,8BAAC,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA,EAAE,IAAI,KAAK,CAAC,EAC7B,CAAA,GACF;AAAA,8BACC,aAAY,EAAA;AAAA,QAAA,GACf;AAAA,QACC,oBAAA,QAAA,EAAO,WAAS,MAAC,MAAK,KAAI,SAAS,aACjC,UAAc,cAAA,EAAE,IAAI,gCAAA,CAAiC,EACxD,CAAA;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,IACA,oBAAC,MAAK,EAAA,gBAAe,UACnB,UAAA,oBAAC,KAAI,EAAA,YAAY,GAEf,UAAA,oBAAC,MAAK,EAAA,IAAI,SAAS,IAAG,yBACpB,UAAC,oBAAA,YAAA,EAAW,SAAQ,MACjB,UAAc,cAAA,EAAE,IAAI,4BAA6B,CAAA,EACpD,CAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,MAAM,cAAc,OAAO,OAAO;AAAA;AAAA;AC3F3B,MAAM,QAAQ;AAAA,EACnB,WAAW;AACb;"}
|
|
@@ -8,7 +8,7 @@ const reactIntl = require("react-intl");
|
|
|
8
8
|
const reactQuery = require("react-query");
|
|
9
9
|
const reactRouterDom = require("react-router-dom");
|
|
10
10
|
const styled = require("styled-components");
|
|
11
|
-
const index = require("./index-
|
|
11
|
+
const index = require("./index-3956d072.js");
|
|
12
12
|
const SSOProviders = require("./SSOProviders-b395a4e6.js");
|
|
13
13
|
require("react-dom/client");
|
|
14
14
|
require("invariant");
|
|
@@ -118,4 +118,4 @@ const FORMS = {
|
|
|
118
118
|
providers: Providers
|
|
119
119
|
};
|
|
120
120
|
exports.FORMS = FORMS;
|
|
121
|
-
//# sourceMappingURL=constants-
|
|
121
|
+
//# sourceMappingURL=constants-54043280.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-54043280.js","sources":["../../ee/admin/src/pages/AuthPage/components/Providers.tsx","../../ee/admin/src/pages/AuthPage/constants.ts"],"sourcesContent":["import { Box, Button, Divider, Flex, Loader, Main, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { useFetchClient } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport { NavLink, Redirect, useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Logo } from '../../../../../../admin/src/components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../../../../admin/src/layouts/UnauthenticatedLayout';\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\nimport { SSOProviders } from './SSOProviders';\n\nconst Providers = () => {\n const { push } = useHistory();\n const { formatMessage } = useIntl();\n const { get } = useFetchClient();\n const { isLoading, data: providers = [] } = useQuery(\n ['ee', 'providers'],\n async () => {\n const { data } = await get<GetProviders.Response>('/admin/providers');\n\n return data;\n },\n {\n enabled: window.strapi.features.isEnabled(window.strapi.features.SSO),\n }\n );\n\n const handleClick = () => {\n push('/auth/login');\n };\n\n if (\n !window.strapi.features.isEnabled(window.strapi.features.SSO) ||\n (!isLoading && providers.length === 0)\n ) {\n return <Redirect to=\"/auth/login\" />;\n }\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={1}>\n <Typography as=\"h1\" variant=\"alpha\">\n {formatMessage({ id: 'Auth.form.welcome.title' })}\n </Typography>\n </Box>\n <Box paddingBottom={7}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage({ id: 'Auth.login.sso.subtitle' })}\n </Typography>\n </Box>\n </Column>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>{formatMessage({ id: 'Auth.login.sso.loading' })}</Loader>\n </Flex>\n ) : (\n <SSOProviders providers={providers} />\n )}\n <Flex>\n <DividerFull />\n <Box paddingLeft={3} paddingRight={3}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'or' })}\n </Typography>\n </Box>\n <DividerFull />\n </Flex>\n <Button fullWidth size=\"L\" onClick={handleClick}>\n {formatMessage({ id: 'Auth.form.button.login.strapi' })}\n </Button>\n </Flex>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n {/* @ts-expect-error – error with inferring the props from the as component */}\n <Link as={NavLink} to=\"/auth/forgot-password\">\n <Typography variant=\"pi\">\n {formatMessage({ id: 'Auth.link.forgot-password' })}\n </Typography>\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst DividerFull = styled(Divider)`\n flex: 1;\n`;\n\nexport { Providers };\n","import type { ComponentType } from 'react';\n\nimport { Providers } from './components/Providers';\n\ntype AuthType = 'providers';\n\ntype FormDictionary = Record<AuthType, ComponentType>;\n\nexport const FORMS = {\n providers: Providers,\n} satisfies FormDictionary;\n"],"names":["useHistory","useIntl","useFetchClient","useQuery","jsx","Redirect","UnauthenticatedLayout","jsxs","Main","LayoutContent","Column","Logo","Box","Typography","Flex","Loader","SSOProviders","Button","Link","NavLink","styled","Divider"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const index = require("./index-
|
|
3
|
+
const index = require("./index-3956d072.js");
|
|
4
4
|
const constants = require("./constants-d5d67ca8.js");
|
|
5
5
|
const jsxRuntime = require("react/jsx-runtime");
|
|
6
6
|
const designSystem = require("@strapi/design-system");
|
|
@@ -239,4 +239,4 @@ const REVIEW_WORKFLOW_FILTERS = [
|
|
|
239
239
|
];
|
|
240
240
|
exports.REVIEW_WORKFLOW_COLUMNS_EE = REVIEW_WORKFLOW_COLUMNS_EE;
|
|
241
241
|
exports.REVIEW_WORKFLOW_FILTERS = REVIEW_WORKFLOW_FILTERS;
|
|
242
|
-
//# sourceMappingURL=constants-
|
|
242
|
+
//# sourceMappingURL=constants-74ce2d53.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-73ebce66.js","sources":["../../ee/admin/src/content-manager/pages/ListView/components/AssigneeFilter.tsx","../../ee/admin/src/content-manager/pages/ListView/components/StageFilter.tsx","../../ee/admin/src/content-manager/pages/ListView/constants.ts"],"sourcesContent":["import { Combobox, ComboboxOption, ComboboxProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../admin/src/content-manager/utils/users';\nimport { useAdminUsers } from '../../../../../../../admin/src/hooks/useAdminUsers';\n\ninterface AssigneeFilterProps extends Pick<ComboboxProps, 'value' | 'onChange'> {}\n\nconst AssigneeFilter = ({ value, onChange }: AssigneeFilterProps) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nexport { AssigneeFilter };\nexport type { AssigneeFilterProps };\n","import {\n Flex,\n Loader,\n SingleSelect,\n SingleSelectOption,\n SingleSelectProps,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\ninterface StageFilterProps extends Pick<SingleSelectProps, 'value' | 'onChange'> {\n uid?: string;\n}\n\nconst StageFilter = ({ value, onChange, uid }: StageFilterProps) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // @ts-expect-error – DS type error with SingleSelect['customizeContent']\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nexport { StageFilter };\nexport type { StageFilterProps };\n","import { getTranslation } from '../../../../../../admin/src/content-manager/utils/translations';\nimport { ASSIGNEE_ATTRIBUTE_NAME, STAGE_ATTRIBUTE_NAME } from '../EditView/components/constants';\n\nimport { AssigneeFilter } from './components/AssigneeFilter';\nimport { StageFilter } from './components/StageFilter';\n\nimport type { TableHeader } from '../../../../../../admin/src/content-manager/pages/ListView/ListViewPage';\nimport type { FilterData } from '@strapi/helper-plugin';\nimport type { MessageDescriptor } from 'react-intl';\n\ninterface NonTranslatedTableHeader extends Omit<TableHeader, 'metadatas'> {\n metadatas: Omit<TableHeader['metadatas'], 'label'> & {\n label: MessageDescriptor;\n };\n}\n\nexport const REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n key: `__${STAGE_ATTRIBUTE_NAME}_temp_key__`,\n name: STAGE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'admin::review-workflow-stage',\n },\n metadatas: {\n // formatMessage() will be applied when the column is rendered\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n type: 'string',\n },\n },\n },\n {\n key: `__${ASSIGNEE_ATTRIBUTE_NAME}_temp_key__`,\n name: ASSIGNEE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n target: 'admin::user',\n relation: 'oneToMany',\n },\n metadatas: {\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.assignee`),\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n type: 'string',\n },\n },\n },\n] satisfies NonTranslatedTableHeader[];\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'integer',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n] satisfies Array<\n Omit<FilterData, 'metadatas'> & {\n metadatas: Omit<FilterData['metadatas'], 'label'> & {\n label: MessageDescriptor;\n };\n }\n>;\n"],"names":["useIntl","useAdminUsers","jsx","Combobox","ComboboxOption","getDisplayName","useReviewWorkflows","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","STAGE_ATTRIBUTE_NAME","getTranslation","ASSIGNEE_ATTRIBUTE_NAME"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants-74ce2d53.js","sources":["../../ee/admin/src/content-manager/pages/ListView/components/AssigneeFilter.tsx","../../ee/admin/src/content-manager/pages/ListView/components/StageFilter.tsx","../../ee/admin/src/content-manager/pages/ListView/constants.ts"],"sourcesContent":["import { Combobox, ComboboxOption, ComboboxProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../admin/src/content-manager/utils/users';\nimport { useAdminUsers } from '../../../../../../../admin/src/hooks/useAdminUsers';\n\ninterface AssigneeFilterProps extends Pick<ComboboxProps, 'value' | 'onChange'> {}\n\nconst AssigneeFilter = ({ value, onChange }: AssigneeFilterProps) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nexport { AssigneeFilter };\nexport type { AssigneeFilterProps };\n","import {\n Flex,\n Loader,\n SingleSelect,\n SingleSelectOption,\n SingleSelectProps,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\ninterface StageFilterProps extends Pick<SingleSelectProps, 'value' | 'onChange'> {\n uid?: string;\n}\n\nconst StageFilter = ({ value, onChange, uid }: StageFilterProps) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // @ts-expect-error – DS type error with SingleSelect['customizeContent']\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nexport { StageFilter };\nexport type { StageFilterProps };\n","import { getTranslation } from '../../../../../../admin/src/content-manager/utils/translations';\nimport { ASSIGNEE_ATTRIBUTE_NAME, STAGE_ATTRIBUTE_NAME } from '../EditView/components/constants';\n\nimport { AssigneeFilter } from './components/AssigneeFilter';\nimport { StageFilter } from './components/StageFilter';\n\nimport type { TableHeader } from '../../../../../../admin/src/content-manager/pages/ListView/ListViewPage';\nimport type { FilterData } from '@strapi/helper-plugin';\nimport type { MessageDescriptor } from 'react-intl';\n\ninterface NonTranslatedTableHeader extends Omit<TableHeader, 'metadatas'> {\n metadatas: Omit<TableHeader['metadatas'], 'label'> & {\n label: MessageDescriptor;\n };\n}\n\nexport const REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n key: `__${STAGE_ATTRIBUTE_NAME}_temp_key__`,\n name: STAGE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'admin::review-workflow-stage',\n },\n metadatas: {\n // formatMessage() will be applied when the column is rendered\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n type: 'string',\n },\n },\n },\n {\n key: `__${ASSIGNEE_ATTRIBUTE_NAME}_temp_key__`,\n name: ASSIGNEE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n target: 'admin::user',\n relation: 'oneToMany',\n },\n metadatas: {\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.assignee`),\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n type: 'string',\n },\n },\n },\n] satisfies NonTranslatedTableHeader[];\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'integer',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n] satisfies Array<\n Omit<FilterData, 'metadatas'> & {\n metadatas: Omit<FilterData['metadatas'], 'label'> & {\n label: MessageDescriptor;\n };\n }\n>;\n"],"names":["useIntl","useAdminUsers","jsx","Combobox","ComboboxOption","getDisplayName","useReviewWorkflows","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","STAGE_ATTRIBUTE_NAME","getTranslation","ASSIGNEE_ATTRIBUTE_NAME"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as useAdminUsers, h as getDisplayName, i as getTranslation } from "./index-
|
|
1
|
+
import { g as useAdminUsers, h as getDisplayName, i as getTranslation } from "./index-3bbbb14c.mjs";
|
|
2
2
|
import { S as STAGE_ATTRIBUTE_NAME, A as ASSIGNEE_ATTRIBUTE_NAME } from "./constants-a92ce583.mjs";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from "@strapi/design-system";
|
|
@@ -239,4 +239,4 @@ export {
|
|
|
239
239
|
REVIEW_WORKFLOW_COLUMNS_EE,
|
|
240
240
|
REVIEW_WORKFLOW_FILTERS
|
|
241
241
|
};
|
|
242
|
-
//# sourceMappingURL=constants-
|
|
242
|
+
//# sourceMappingURL=constants-81c376c5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-81c376c5.mjs","sources":["../../ee/admin/src/content-manager/pages/ListView/components/AssigneeFilter.tsx","../../ee/admin/src/content-manager/pages/ListView/components/StageFilter.tsx","../../ee/admin/src/content-manager/pages/ListView/constants.ts"],"sourcesContent":["import { Combobox, ComboboxOption, ComboboxProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../admin/src/content-manager/utils/users';\nimport { useAdminUsers } from '../../../../../../../admin/src/hooks/useAdminUsers';\n\ninterface AssigneeFilterProps extends Pick<ComboboxProps, 'value' | 'onChange'> {}\n\nconst AssigneeFilter = ({ value, onChange }: AssigneeFilterProps) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nexport { AssigneeFilter };\nexport type { AssigneeFilterProps };\n","import {\n Flex,\n Loader,\n SingleSelect,\n SingleSelectOption,\n SingleSelectProps,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\ninterface StageFilterProps extends Pick<SingleSelectProps, 'value' | 'onChange'> {\n uid?: string;\n}\n\nconst StageFilter = ({ value, onChange, uid }: StageFilterProps) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // @ts-expect-error – DS type error with SingleSelect['customizeContent']\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nexport { StageFilter };\nexport type { StageFilterProps };\n","import { getTranslation } from '../../../../../../admin/src/content-manager/utils/translations';\nimport { ASSIGNEE_ATTRIBUTE_NAME, STAGE_ATTRIBUTE_NAME } from '../EditView/components/constants';\n\nimport { AssigneeFilter } from './components/AssigneeFilter';\nimport { StageFilter } from './components/StageFilter';\n\nimport type { TableHeader } from '../../../../../../admin/src/content-manager/pages/ListView/ListViewPage';\nimport type { FilterData } from '@strapi/helper-plugin';\nimport type { MessageDescriptor } from 'react-intl';\n\ninterface NonTranslatedTableHeader extends Omit<TableHeader, 'metadatas'> {\n metadatas: Omit<TableHeader['metadatas'], 'label'> & {\n label: MessageDescriptor;\n };\n}\n\nexport const REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n key: `__${STAGE_ATTRIBUTE_NAME}_temp_key__`,\n name: STAGE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'admin::review-workflow-stage',\n },\n metadatas: {\n // formatMessage() will be applied when the column is rendered\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n type: 'string',\n },\n },\n },\n {\n key: `__${ASSIGNEE_ATTRIBUTE_NAME}_temp_key__`,\n name: ASSIGNEE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n target: 'admin::user',\n relation: 'oneToMany',\n },\n metadatas: {\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.assignee`),\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n type: 'string',\n },\n },\n },\n] satisfies NonTranslatedTableHeader[];\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'integer',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTranslation(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n] satisfies Array<\n Omit<FilterData, 'metadatas'> & {\n metadatas: Omit<FilterData['metadatas'], 'label'> & {\n label: MessageDescriptor;\n };\n }\n>;\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ const ROUTES_EE = [
|
|
|
4
4
|
...window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) ? [
|
|
5
5
|
{
|
|
6
6
|
async Component() {
|
|
7
|
-
const { ProtectedAuditLogsListPage } = await Promise.resolve().then(() => require("./ListPage-
|
|
7
|
+
const { ProtectedAuditLogsListPage } = await Promise.resolve().then(() => require("./ListPage-10bf0ce5.js"));
|
|
8
8
|
return ProtectedAuditLogsListPage;
|
|
9
9
|
},
|
|
10
10
|
to: "/settings/audit-logs",
|
|
@@ -14,7 +14,7 @@ const ROUTES_EE = [
|
|
|
14
14
|
...window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS) ? [
|
|
15
15
|
{
|
|
16
16
|
async Component() {
|
|
17
|
-
const { ProtectedReviewWorkflowsPage } = await Promise.resolve().then(() => require("./ListPage-
|
|
17
|
+
const { ProtectedReviewWorkflowsPage } = await Promise.resolve().then(() => require("./ListPage-f582ff65.js"));
|
|
18
18
|
return ProtectedReviewWorkflowsPage;
|
|
19
19
|
},
|
|
20
20
|
to: "/settings/review-workflows",
|
|
@@ -22,7 +22,7 @@ const ROUTES_EE = [
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
async Component() {
|
|
25
|
-
const { ReviewWorkflowsCreatePage } = await Promise.resolve().then(() => require("./CreatePage-
|
|
25
|
+
const { ReviewWorkflowsCreatePage } = await Promise.resolve().then(() => require("./CreatePage-f63362cf.js"));
|
|
26
26
|
return ReviewWorkflowsCreatePage;
|
|
27
27
|
},
|
|
28
28
|
to: "/settings/review-workflows/create",
|
|
@@ -30,7 +30,7 @@ const ROUTES_EE = [
|
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
async Component() {
|
|
33
|
-
const { ReviewWorkflowsEditPage } = await Promise.resolve().then(() => require("./EditPage-
|
|
33
|
+
const { ReviewWorkflowsEditPage } = await Promise.resolve().then(() => require("./EditPage-493ac83a.js"));
|
|
34
34
|
return ReviewWorkflowsEditPage;
|
|
35
35
|
},
|
|
36
36
|
to: "/settings/review-workflows/:workflowId",
|
|
@@ -40,7 +40,7 @@ const ROUTES_EE = [
|
|
|
40
40
|
...window.strapi.features.isEnabled(window.strapi.features.SSO) ? [
|
|
41
41
|
{
|
|
42
42
|
async Component() {
|
|
43
|
-
const { ProtectedSSO } = await Promise.resolve().then(() => require("./SingleSignOnPage-
|
|
43
|
+
const { ProtectedSSO } = await Promise.resolve().then(() => require("./SingleSignOnPage-51dfde4b.js"));
|
|
44
44
|
return ProtectedSSO;
|
|
45
45
|
},
|
|
46
46
|
to: "/settings/single-sign-on",
|
|
@@ -49,4 +49,4 @@ const ROUTES_EE = [
|
|
|
49
49
|
] : []
|
|
50
50
|
];
|
|
51
51
|
exports.ROUTES_EE = ROUTES_EE;
|
|
52
|
-
//# sourceMappingURL=constants-
|
|
52
|
+
//# sourceMappingURL=constants-a5b1e9d4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-a5b1e9d4.js","sources":["../../ee/admin/src/pages/SettingsPage/constants.ts"],"sourcesContent":["import type { Route } from '../../../../../admin/src/pages/Settings/constants';\n\nexport const ROUTES_EE: Route[] = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const { ProtectedAuditLogsListPage } = await import('./pages/AuditLogs/ListPage');\n\n return ProtectedAuditLogsListPage;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const { ProtectedReviewWorkflowsPage } = await import(\n './pages/ReviewWorkflows/ListPage'\n );\n\n return ProtectedReviewWorkflowsPage;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsCreatePage } = await import(\n './pages/ReviewWorkflows/CreatePage'\n );\n\n return ReviewWorkflowsCreatePage;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsEditPage } = await import('./pages/ReviewWorkflows/EditPage');\n\n return ReviewWorkflowsEditPage;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return ProtectedSSO;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":";;AAEO,MAAM,YAAqB;AAAA,EAChC,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,2BAAA,IAA+B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAA4B,CAAA;AAEzE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,6BAAA,IAAiC,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAC7C,wBACF,CAAA;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,0BAAA,IAA8B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAC1C,0BACF,CAAA;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,wBAAA,IAA4B,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAAkC,CAAA;AAE5E,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,aAAA,IAAiB,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,gCAA0B,CAAA;AAEzD,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;;"}
|
|
@@ -2,7 +2,7 @@ const ROUTES_EE = [
|
|
|
2
2
|
...window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) ? [
|
|
3
3
|
{
|
|
4
4
|
async Component() {
|
|
5
|
-
const { ProtectedAuditLogsListPage } = await import("./ListPage-
|
|
5
|
+
const { ProtectedAuditLogsListPage } = await import("./ListPage-f256fcb7.mjs");
|
|
6
6
|
return ProtectedAuditLogsListPage;
|
|
7
7
|
},
|
|
8
8
|
to: "/settings/audit-logs",
|
|
@@ -12,7 +12,7 @@ const ROUTES_EE = [
|
|
|
12
12
|
...window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS) ? [
|
|
13
13
|
{
|
|
14
14
|
async Component() {
|
|
15
|
-
const { ProtectedReviewWorkflowsPage } = await import("./ListPage-
|
|
15
|
+
const { ProtectedReviewWorkflowsPage } = await import("./ListPage-c878fda8.mjs");
|
|
16
16
|
return ProtectedReviewWorkflowsPage;
|
|
17
17
|
},
|
|
18
18
|
to: "/settings/review-workflows",
|
|
@@ -20,7 +20,7 @@ const ROUTES_EE = [
|
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
async Component() {
|
|
23
|
-
const { ReviewWorkflowsCreatePage } = await import("./CreatePage-
|
|
23
|
+
const { ReviewWorkflowsCreatePage } = await import("./CreatePage-e5d16f0e.mjs");
|
|
24
24
|
return ReviewWorkflowsCreatePage;
|
|
25
25
|
},
|
|
26
26
|
to: "/settings/review-workflows/create",
|
|
@@ -28,7 +28,7 @@ const ROUTES_EE = [
|
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
async Component() {
|
|
31
|
-
const { ReviewWorkflowsEditPage } = await import("./EditPage-
|
|
31
|
+
const { ReviewWorkflowsEditPage } = await import("./EditPage-f5caa375.mjs");
|
|
32
32
|
return ReviewWorkflowsEditPage;
|
|
33
33
|
},
|
|
34
34
|
to: "/settings/review-workflows/:workflowId",
|
|
@@ -38,7 +38,7 @@ const ROUTES_EE = [
|
|
|
38
38
|
...window.strapi.features.isEnabled(window.strapi.features.SSO) ? [
|
|
39
39
|
{
|
|
40
40
|
async Component() {
|
|
41
|
-
const { ProtectedSSO } = await import("./SingleSignOnPage-
|
|
41
|
+
const { ProtectedSSO } = await import("./SingleSignOnPage-4d1d2448.mjs");
|
|
42
42
|
return ProtectedSSO;
|
|
43
43
|
},
|
|
44
44
|
to: "/settings/single-sign-on",
|
|
@@ -49,4 +49,4 @@ const ROUTES_EE = [
|
|
|
49
49
|
export {
|
|
50
50
|
ROUTES_EE
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=constants-
|
|
52
|
+
//# sourceMappingURL=constants-b156a1b6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-b156a1b6.mjs","sources":["../../ee/admin/src/pages/SettingsPage/constants.ts"],"sourcesContent":["import type { Route } from '../../../../../admin/src/pages/Settings/constants';\n\nexport const ROUTES_EE: Route[] = [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n async Component() {\n const { ProtectedAuditLogsListPage } = await import('./pages/AuditLogs/ListPage');\n\n return ProtectedAuditLogsListPage;\n },\n to: '/settings/audit-logs',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)\n ? [\n {\n async Component() {\n const { ProtectedReviewWorkflowsPage } = await import(\n './pages/ReviewWorkflows/ListPage'\n );\n\n return ProtectedReviewWorkflowsPage;\n },\n to: '/settings/review-workflows',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsCreatePage } = await import(\n './pages/ReviewWorkflows/CreatePage'\n );\n\n return ReviewWorkflowsCreatePage;\n },\n to: '/settings/review-workflows/create',\n exact: true,\n },\n\n {\n async Component() {\n const { ReviewWorkflowsEditPage } = await import('./pages/ReviewWorkflows/EditPage');\n\n return ReviewWorkflowsEditPage;\n },\n to: '/settings/review-workflows/:workflowId',\n exact: true,\n },\n ]\n : []),\n\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n async Component() {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return ProtectedSSO;\n },\n to: '/settings/single-sign-on',\n exact: true,\n },\n ]\n : []),\n];\n"],"names":[],"mappings":"AAEO,MAAM,YAAqB;AAAA,EAChC,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,UAAU,IAClE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,2BAAA,IAA+B,MAAM,OAAO,yBAA4B;AAEzE,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,gBAAgB,IACxE;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,6BAAA,IAAiC,MAAM,OAC7C,yBACF;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,0BAAA,IAA8B,MAAM,OAC1C,2BACF;AAEO,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAEA;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,wBAAA,IAA4B,MAAM,OAAO,yBAAkC;AAE5E,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AAAA,EAEL,GAAI,OAAO,OAAO,SAAS,UAAU,OAAO,OAAO,SAAS,GAAG,IAC3D;AAAA,IACE;AAAA,MACE,MAAM,YAAY;AAChB,cAAM,EAAE,aAAA,IAAiB,MAAM,OAAO,iCAA0B;AAEzD,eAAA;AAAA,MACT;AAAA,MACA,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,EAAA,IAEF,CAAC;AACP;"}
|