@strapi/admin 5.31.2 → 5.32.0
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/admin/admin/src/components/FormInputs/Boolean.js +22 -3
- package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +23 -4
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +2 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +7 -1
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +7 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +5 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +5 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +4 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +2 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +1 -12
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +2 -11
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/vi.json.js +772 -129
- package/dist/admin/admin/src/translations/vi.json.js.map +1 -1
- package/dist/admin/admin/src/translations/vi.json.mjs +764 -130
- package/dist/admin/admin/src/translations/vi.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +7 -0
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs +7 -0
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/index.js +0 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +0 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/index.d.ts +0 -2
- package/dist/admin/src/services/auth.d.ts +2 -11
- package/dist/ee/server/src/ai/containers/ai.d.ts +4 -0
- package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.js +143 -1
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.mjs +143 -1
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.js +7 -106
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +7 -106
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js +0 -3
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs +0 -3
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.js +0 -15
- package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.mjs +0 -15
- package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +0 -10
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +0 -10
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +1 -143
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +1 -143
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts +0 -1
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +0 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +0 -5
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +0 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +0 -4
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +1 -1
- package/dist/shared/contracts/users.d.ts +0 -32
- package/dist/shared/contracts/users.d.ts.map +1 -1
- package/package.json +12 -12
- package/dist/admin/admin/src/hooks/useAIAvailability.js +0 -13
- package/dist/admin/admin/src/hooks/useAIAvailability.js.map +0 -1
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs +0 -11
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +0 -1
- package/dist/admin/src/hooks/useAIAvailability.d.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vi.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vi.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -13,6 +13,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
|
|
|
13
13
|
gap: 4,
|
|
14
14
|
children: providers.map((provider)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
15
15
|
col: 4,
|
|
16
|
+
xs: 12,
|
|
16
17
|
direction: "column",
|
|
17
18
|
alignItems: "stretch",
|
|
18
19
|
children: /*#__PURE__*/ jsxRuntime.jsx(SSOProviderButton, {
|
|
@@ -27,6 +28,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
|
|
|
27
28
|
children: [
|
|
28
29
|
providers.slice(0, 2).map((provider)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
29
30
|
col: 4,
|
|
31
|
+
xs: 12,
|
|
30
32
|
direction: "column",
|
|
31
33
|
alignItems: "stretch",
|
|
32
34
|
children: /*#__PURE__*/ jsxRuntime.jsx(SSOProviderButton, {
|
|
@@ -35,6 +37,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
|
|
|
35
37
|
}, provider.uid)),
|
|
36
38
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
37
39
|
col: 4,
|
|
40
|
+
xs: 12,
|
|
38
41
|
direction: "column",
|
|
39
42
|
alignItems: "stretch",
|
|
40
43
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tooltip, {
|
|
@@ -101,6 +104,10 @@ const SSOButton = styled.styled.a`
|
|
|
101
104
|
text-decoration: none;
|
|
102
105
|
}
|
|
103
106
|
color: ${({ theme })=>theme.colors.neutral600};
|
|
107
|
+
|
|
108
|
+
${({ theme })=>theme.breakpoints.initial} {
|
|
109
|
+
width: 100%;
|
|
110
|
+
}
|
|
104
111
|
`;
|
|
105
112
|
|
|
106
113
|
exports.SSOProviders = SSOProviders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSOProviders.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600"],"mappings":";;;;;;;;AAgBA,MAAMA,eAAe,CAAC,EAAEC,SAAS,EAAEC,mBAAmB,EAAqB,GAAA;IACzE,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAIF,mBAAqB,EAAA;QACvB,qBACEG,cAAA,CAACC,kBAAKC,IAAI,EAAA;YAACC,GAAK,EAAA,CAAA;AACbP,YAAAA,QAAAA,EAAAA,SAAAA,CAAUQ,GAAG,CAAC,CAACC,QACd,iBAAAL,cAAA,CAACC,kBAAKK,IAAI,EAAA;oBAAoBC,GAAK,EAAA,CAAA;oBAAGC,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;
|
|
1
|
+
{"version":3,"file":"SSOProviders.js","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n\n ${({ theme }) => theme.breakpoints.initial} {\n width: 100%;\n }\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","xs","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600","breakpoints","initial"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
|
|
|
11
11
|
gap: 4,
|
|
12
12
|
children: providers.map((provider)=>/*#__PURE__*/ jsx(Grid.Item, {
|
|
13
13
|
col: 4,
|
|
14
|
+
xs: 12,
|
|
14
15
|
direction: "column",
|
|
15
16
|
alignItems: "stretch",
|
|
16
17
|
children: /*#__PURE__*/ jsx(SSOProviderButton, {
|
|
@@ -25,6 +26,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
|
|
|
25
26
|
children: [
|
|
26
27
|
providers.slice(0, 2).map((provider)=>/*#__PURE__*/ jsx(Grid.Item, {
|
|
27
28
|
col: 4,
|
|
29
|
+
xs: 12,
|
|
28
30
|
direction: "column",
|
|
29
31
|
alignItems: "stretch",
|
|
30
32
|
children: /*#__PURE__*/ jsx(SSOProviderButton, {
|
|
@@ -33,6 +35,7 @@ const SSOProviders = ({ providers, displayAllProviders })=>{
|
|
|
33
35
|
}, provider.uid)),
|
|
34
36
|
/*#__PURE__*/ jsx(Grid.Item, {
|
|
35
37
|
col: 4,
|
|
38
|
+
xs: 12,
|
|
36
39
|
direction: "column",
|
|
37
40
|
alignItems: "stretch",
|
|
38
41
|
children: /*#__PURE__*/ jsx(Tooltip, {
|
|
@@ -99,6 +102,10 @@ const SSOButton = styled.a`
|
|
|
99
102
|
text-decoration: none;
|
|
100
103
|
}
|
|
101
104
|
color: ${({ theme })=>theme.colors.neutral600};
|
|
105
|
+
|
|
106
|
+
${({ theme })=>theme.breakpoints.initial} {
|
|
107
|
+
width: 100%;
|
|
108
|
+
}
|
|
102
109
|
`;
|
|
103
110
|
|
|
104
111
|
export { SSOProviders };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSOProviders.mjs","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600"],"mappings":";;;;;;AAgBA,MAAMA,eAAe,CAAC,EAAEC,SAAS,EAAEC,mBAAmB,EAAqB,GAAA;IACzE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,IAAIF,mBAAqB,EAAA;QACvB,qBACEG,GAAA,CAACC,KAAKC,IAAI,EAAA;YAACC,GAAK,EAAA,CAAA;AACbP,YAAAA,QAAAA,EAAAA,SAAAA,CAAUQ,GAAG,CAAC,CAACC,QACd,iBAAAL,GAAA,CAACC,KAAKK,IAAI,EAAA;oBAAoBC,GAAK,EAAA,CAAA;oBAAGC,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;
|
|
1
|
+
{"version":3,"file":"SSOProviders.mjs","sources":["../../../../../../../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n\n ${({ theme }) => theme.breakpoints.initial} {\n width: 100%;\n }\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":["SSOProviders","providers","displayAllProviders","formatMessage","useIntl","_jsx","Grid","Root","gap","map","provider","Item","col","xs","direction","alignItems","SSOProviderButton","uid","length","_jsxs","slice","Tooltip","label","id","SSOButton","as","Link","to","span","aria-hidden","SSOProvidersWrapper","justifyContent","styled","Flex","theme","spaces","displayName","href","window","strapi","backendURL","icon","img","src","alt","height","Typography","a","colors","neutral150","borderRadius","neutral600","breakpoints","initial"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminSeatInfo.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6}
|
|
1
|
+
{"version":3,"file":"AdminSeatInfo.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks) =>\n (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ) as any,\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SEATS_URL} isExternal endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage seats',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],"names":["BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","licenseLimitStatus","enforcementUserCount","permittedSeats","type","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","gap","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill","Link","href","endIcon","ExternalLink","isExternal"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminSeatInfo.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6}
|
|
1
|
+
{"version":3,"file":"AdminSeatInfo.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.tsx"],"sourcesContent":["import { Flex, Tooltip, Typography, Link, Grid } from '@strapi/design-system';\nimport { ExternalLink, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useRBAC } from '../../../../../../../../admin/src/hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\nconst MANAGE_SEATS_URL = 'https://strapi.io/billing/manage-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const { settings } = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(settings?.users ?? {});\n const {\n license,\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !license) {\n return null;\n }\n\n const { licenseLimitStatus, enforcementUserCount, permittedSeats, type } = license;\n\n if (!permittedSeats) {\n return null;\n }\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography tag=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n text: (chunks) =>\n (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : undefined}\n >\n {chunks}\n </Typography>\n ) as any,\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n label={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <WarningCircle width=\"1.4rem\" height=\"1.4rem\" fill=\"danger500\" />\n </Tooltip>\n )}\n </Flex>\n {type === 'gold' ? (\n <Link href={BILLING_SELF_HOSTED_URL} endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.support',\n defaultMessage: 'Contact sales',\n })}\n </Link>\n ) : (\n <Link href={MANAGE_SEATS_URL} isExternal endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage: 'Manage seats',\n })}\n </Link>\n )}\n </Grid.Item>\n );\n};\n"],"names":["BILLING_SELF_HOSTED_URL","MANAGE_SEATS_URL","AdminSeatInfoEE","formatMessage","useIntl","settings","useSelector","selectAdminPermissions","isLoading","isRBACLoading","allowedActions","canRead","canCreate","canUpdate","canDelete","useRBAC","users","license","isError","isLicenseLoading","useLicenseLimits","enabled","licenseLimitStatus","enforcementUserCount","permittedSeats","type","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","id","defaultMessage","Flex","gap","tag","text","chunks","fontWeight","undefined","Tooltip","label","WarningCircle","width","height","fill","Link","href","endIcon","ExternalLink","isExternal"],"mappings":"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"}
|
|
@@ -221,6 +221,7 @@ const SingleSignOnPage = ()=>{
|
|
|
221
221
|
}
|
|
222
222
|
].map(({ size, ...field })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
|
|
223
223
|
col: size,
|
|
224
|
+
xs: 12,
|
|
224
225
|
direction: "column",
|
|
225
226
|
alignItems: "stretch",
|
|
226
227
|
children: /*#__PURE__*/ jsxRuntime.jsx(FormInputRenderer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage.js","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { GradientBadge } from '../../../../../../admin/src/components/GradientBadge';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\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 const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\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 secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\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\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\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 size: 6,\n type: 'boolean' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","_Fragment","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","secondaryAction","GradientBadge","label","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Root","hint","size","options","map","toString","placeholder","field","Item","col","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage.js","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { GradientBadge } from '../../../../../../admin/src/components/GradientBadge';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\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 const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\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 secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\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\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\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 size: 6,\n type: 'boolean' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","_Fragment","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","secondaryAction","GradientBadge","label","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Root","hint","size","options","map","toString","placeholder","field","Item","col","xs","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage.mjs","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { GradientBadge } from '../../../../../../admin/src/components/GradientBadge';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\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 const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\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 secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\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\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\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 size: 6,\n type: 'boolean' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","_Fragment","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","secondaryAction","GradientBadge","label","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Root","hint","size","options","map","toString","placeholder","field","Item","col","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage.mjs","sources":["../../../../../../../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { GradientBadge } from '../../../../../../admin/src/components/GradientBadge';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\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 const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\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 secondaryAction={\n <GradientBadge\n label={formatMessage({\n id: 'components.premiumFeature.title',\n defaultMessage: 'Premium feature',\n })}\n />\n }\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\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\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\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 size: 6,\n type: 'boolean' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\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 label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["SCHEMA","yup","object","shape","autoRegister","bool","required","translatedErrors","defaultRole","mixed","when","value","initSchema","nullable","ssoLockedRoles","array","of","SingleSignOnPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingProviderOptions","data","useGetProviderOptionsQuery","updateProviderOptions","isSubmittingForm","useUpdateProviderOptionsMutation","isLoadingPermissions","allowedActions","canUpdate","canRead","canReadRoles","useRBAC","settings","sso","readRoles","roles","read","isLoadingRoles","useAdminRoles","undefined","skip","handleSubmit","body","helpers","res","isBaseQueryError","error","name","setErrors","type","message","id","err","defaultMessage","isLoadingData","_jsxs","_Fragment","_jsx","Page","Title","Main","aria-busy","tabIndex","Form","method","onSubmit","validationSchema","disabled","initialValues","modified","isSubmitting","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","secondaryAction","GradientBadge","label","Content","Loading","Flex","direction","alignItems","gap","background","padding","shadow","hasRadius","Typography","variant","tag","Grid","Root","hint","size","options","map","toString","placeholder","field","Item","col","xs","FormInputRenderer","props","MultiSelectInput","InputRenderer","useField","Field","Label","MultiSelect","onChange","onClear","withTags","MultiSelectOption","Hint","Error","ProtectedSSO","main","Protect"],"mappings":"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"}
|
package/dist/admin/index.js
CHANGED
|
@@ -38,7 +38,6 @@ var useMediaQuery = require('./admin/src/hooks/useMediaQuery.js');
|
|
|
38
38
|
var useDeviceType = require('./admin/src/hooks/useDeviceType.js');
|
|
39
39
|
var users = require('./admin/src/services/users.js');
|
|
40
40
|
var homepage = require('./admin/src/services/homepage.js');
|
|
41
|
-
var useAIAvailability = require('./admin/src/hooks/useAIAvailability.js');
|
|
42
41
|
var translatedErrors = require('./admin/src/utils/translatedErrors.js');
|
|
43
42
|
var getFetchClient = require('./admin/src/utils/getFetchClient.js');
|
|
44
43
|
var baseQuery = require('./admin/src/utils/baseQuery.js');
|
|
@@ -96,7 +95,6 @@ exports.useMediaQuery = useMediaQuery.useMediaQuery;
|
|
|
96
95
|
exports.useDeviceType = useDeviceType.useDeviceType;
|
|
97
96
|
exports.useAdminUsers = users.useAdminUsers;
|
|
98
97
|
exports.useGetCountDocumentsQuery = homepage.useGetCountDocumentsQuery;
|
|
99
|
-
exports.useAIAvailability = useAIAvailability.useAIAvailability;
|
|
100
98
|
exports.translatedErrors = translatedErrors.translatedErrors;
|
|
101
99
|
exports.FetchError = getFetchClient.FetchError;
|
|
102
100
|
exports.getFetchClient = getFetchClient.getFetchClient;
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -36,7 +36,6 @@ export { useIsDesktop, useIsMobile, useIsTablet, useMediaQuery } from './admin/s
|
|
|
36
36
|
export { useDeviceType } from './admin/src/hooks/useDeviceType.mjs';
|
|
37
37
|
export { useAdminUsers } from './admin/src/services/users.mjs';
|
|
38
38
|
export { useGetCountDocumentsQuery } from './admin/src/services/homepage.mjs';
|
|
39
|
-
export { useAIAvailability } from './admin/src/hooks/useAIAvailability.mjs';
|
|
40
39
|
export { translatedErrors } from './admin/src/utils/translatedErrors.mjs';
|
|
41
40
|
export { FetchError, getFetchClient, isFetchError } from './admin/src/utils/getFetchClient.mjs';
|
|
42
41
|
export { fetchBaseQuery, isBaseQueryError } from './admin/src/utils/baseQuery.mjs';
|
package/dist/admin/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -54,8 +54,6 @@ export { useMediaQuery, useIsDesktop, useIsTablet, useIsMobile } from './hooks/u
|
|
|
54
54
|
export { useDeviceType } from './hooks/useDeviceType';
|
|
55
55
|
export { useAdminUsers } from './services/users';
|
|
56
56
|
export { useGetCountDocumentsQuery } from './services/homepage';
|
|
57
|
-
/** @internal */
|
|
58
|
-
export { useAIAvailability } from './hooks/useAIAvailability';
|
|
59
57
|
/**
|
|
60
58
|
* Types
|
|
61
59
|
*/
|