@strapi/admin 5.31.3 → 5.33.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.
Files changed (30) hide show
  1. package/dist/admin/admin/src/components/FormInputs/Boolean.js +22 -3
  2. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  3. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +23 -4
  4. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/GuidedTour/Overview.js +1 -1
  6. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  7. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +1 -1
  8. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
  10. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  11. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
  12. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +5 -0
  14. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  15. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +5 -0
  16. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  17. package/dist/admin/admin/src/features/Notifications.js +35 -75
  18. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  19. package/dist/admin/admin/src/features/Notifications.mjs +37 -77
  20. package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
  21. package/dist/admin/admin/src/pages/ProfilePage.js +1 -1
  22. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  23. package/dist/admin/admin/src/pages/ProfilePage.mjs +1 -1
  24. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  25. package/dist/admin/admin/src/translations/ru.json.js +67 -2
  26. package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
  27. package/dist/admin/admin/src/translations/ru.json.mjs +67 -2
  28. package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
  29. package/dist/admin/src/features/Notifications.d.ts +4 -5
  30. package/package.json +11 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ProfilePage.js","sources":["../../../../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, useNotifyAT, Grid, Typography, FlexProps } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../components/GuidedTour/Context';\nimport { Layouts } from '../components/Layouts/Layout';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable()\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panel = ({ children, ...flexProps }: FlexProps) => {\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} {...flexProps}>\n {children}\n </Flex>\n </Box>\n );\n};\n\nconst ProfilePage = () => {\n const isDesktop = useIsDesktop();\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <>\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={6}>\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </Layouts.Content>\n </Box>\n </>\n )}\n </Form>\n {isDesktop && (\n <Box>\n <Layouts.Content>\n <GuidedTourSection />\n </Layouts.Content>\n </Box>\n )}\n </Page.Main>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid.Root key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Panel>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n tag=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid.Root gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourSection = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const dispatch = useGuidedTour('ProfilePage', (s) => s.dispatch);\n\n const onClickReset = () => {\n dispatch({ type: 'reset_all_tours' });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'tours.profile.notification.success.reset',\n defaultMessage: 'Guided tour reset',\n }),\n });\n };\n\n return (\n <Panel alignItems=\"start\">\n <Flex direction=\"column\" alignItems=\"start\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'tours.profile.title',\n defaultMessage: 'Guided tour',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage({\n id: 'tours.profile.description',\n defaultMessage: 'You can reset the guided tour at any time.',\n })}\n </Typography>\n </Flex>\n <Button variant=\"tertiary\" onClick={onClickReset}>\n {formatMessage({\n id: 'tours.profile.reset',\n defaultMessage: 'Reset guided tour',\n })}\n </Button>\n </Panel>\n );\n};\n\nexport { ProfilePage };\n"],"names":["PROFILE_VALIDTION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","currentPassword","string","when","password","confirmPassword","passSchema","required","id","translatedErrors","defaultMessage","nullable","preferedLanguage","Panel","children","flexProps","_jsx","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","ProfilePage","isDesktop","useIsDesktop","localeNames","useTypedSelector","state","admin_app","language","formatMessage","useIntl","trackUsage","useTracking","toggleNotification","useNotification","notifyStatus","useNotifyAT","currentTheme","theme","dispatch","useTypedDispatch","_unstableFormatValidationErrors","formatValidationErrors","_unstableFormatAPIError","formatApiError","useAPIErrorHandler","user","useAuth","React","useEffect","type","message","updateMe","isLoading","isSubmittingForm","useUpdateMeMutation","data","dataSSO","error","useIsSSOLockedQuery","undefined","skip","window","strapi","isEE","features","isEnabled","handleSubmit","body","setErrors","_confirmPassword","bodyRest","dataToSend","_password","_currentPassword","passwordRequestBodyRest","res","setAppTheme","newMode","isBaseQueryError","name","Page","Loading","hasLockedRole","isSSOLocked","email","firstname","lastname","username","initialData","_Fragment","_jsxs","Main","aria-busy","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","Layouts","Header","title","getDisplayName","primaryAction","Button","startIcon","Check","loading","disabled","Content","UserInfoSection","PasswordSection","PreferencesSection","GuidedTourSection","Typography","variant","tag","label","size","autoComplete","map","row","index","Grid","Root","field","Item","xs","m","col","InputRenderer","themesToDisplay","availableThemes","here","color","target","rel","href","hint","options","Object","entries","value","placeholder","upperFirst","useGuidedTour","s","onClickReset","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"ProfilePage.js","sources":["../../../../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, useNotifyAT, Grid, Typography, FlexProps } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../components/GuidedTour/Context';\nimport { Layouts } from '../components/Layouts/Layout';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable()\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panel = ({ children, ...flexProps }: FlexProps) => {\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} {...flexProps}>\n {children}\n </Flex>\n </Box>\n );\n};\n\nconst ProfilePage = () => {\n const isDesktop = useIsDesktop();\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <>\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={6}>\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </Layouts.Content>\n </Box>\n </>\n )}\n </Form>\n {isDesktop && process.env.NODE_ENV === 'development' && (\n <Box>\n <Layouts.Content>\n <GuidedTourSection />\n </Layouts.Content>\n </Box>\n )}\n </Page.Main>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid.Root key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Panel>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n tag=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid.Root gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourSection = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const dispatch = useGuidedTour('ProfilePage', (s) => s.dispatch);\n\n const onClickReset = () => {\n dispatch({ type: 'reset_all_tours' });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'tours.profile.notification.success.reset',\n defaultMessage: 'Guided tour reset',\n }),\n });\n };\n\n return (\n <Panel alignItems=\"start\">\n <Flex direction=\"column\" alignItems=\"start\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'tours.profile.title',\n defaultMessage: 'Guided tour',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage({\n id: 'tours.profile.description',\n defaultMessage: 'You can reset the guided tour at any time.',\n })}\n </Typography>\n </Flex>\n <Button variant=\"tertiary\" onClick={onClickReset}>\n {formatMessage({\n id: 'tours.profile.reset',\n defaultMessage: 'Reset guided tour',\n })}\n </Button>\n </Panel>\n );\n};\n\nexport { ProfilePage };\n"],"names":["PROFILE_VALIDTION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","currentPassword","string","when","password","confirmPassword","passSchema","required","id","translatedErrors","defaultMessage","nullable","preferedLanguage","Panel","children","flexProps","_jsx","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","ProfilePage","isDesktop","useIsDesktop","localeNames","useTypedSelector","state","admin_app","language","formatMessage","useIntl","trackUsage","useTracking","toggleNotification","useNotification","notifyStatus","useNotifyAT","currentTheme","theme","dispatch","useTypedDispatch","_unstableFormatValidationErrors","formatValidationErrors","_unstableFormatAPIError","formatApiError","useAPIErrorHandler","user","useAuth","React","useEffect","type","message","updateMe","isLoading","isSubmittingForm","useUpdateMeMutation","data","dataSSO","error","useIsSSOLockedQuery","undefined","skip","window","strapi","isEE","features","isEnabled","handleSubmit","body","setErrors","_confirmPassword","bodyRest","dataToSend","_password","_currentPassword","passwordRequestBodyRest","res","setAppTheme","newMode","isBaseQueryError","name","Page","Loading","hasLockedRole","isSSOLocked","email","firstname","lastname","username","initialData","_Fragment","_jsxs","Main","aria-busy","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","Layouts","Header","title","getDisplayName","primaryAction","Button","startIcon","Check","loading","disabled","Content","UserInfoSection","PasswordSection","PreferencesSection","process","env","NODE_ENV","GuidedTourSection","Typography","variant","tag","label","size","autoComplete","map","row","index","Grid","Root","field","Item","xs","m","col","InputRenderer","themesToDisplay","availableThemes","here","color","target","rel","href","hint","options","Object","entries","value","placeholder","upperFirst","useGuidedTour","s","onClickReset","onClick"],"mappings":"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"}
@@ -214,7 +214,7 @@ const ProfilePage = ()=>{
214
214
  ]
215
215
  })
216
216
  }),
217
- isDesktop && /*#__PURE__*/ jsx(Box, {
217
+ isDesktop && process.env.NODE_ENV === 'development' && /*#__PURE__*/ jsx(Box, {
218
218
  children: /*#__PURE__*/ jsx(Layouts.Content, {
219
219
  children: /*#__PURE__*/ jsx(GuidedTourSection, {})
220
220
  })
@@ -1 +1 @@
1
- {"version":3,"file":"ProfilePage.mjs","sources":["../../../../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, useNotifyAT, Grid, Typography, FlexProps } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../components/GuidedTour/Context';\nimport { Layouts } from '../components/Layouts/Layout';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable()\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panel = ({ children, ...flexProps }: FlexProps) => {\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} {...flexProps}>\n {children}\n </Flex>\n </Box>\n );\n};\n\nconst ProfilePage = () => {\n const isDesktop = useIsDesktop();\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <>\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={6}>\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </Layouts.Content>\n </Box>\n </>\n )}\n </Form>\n {isDesktop && (\n <Box>\n <Layouts.Content>\n <GuidedTourSection />\n </Layouts.Content>\n </Box>\n )}\n </Page.Main>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid.Root key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Panel>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n tag=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid.Root gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourSection = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const dispatch = useGuidedTour('ProfilePage', (s) => s.dispatch);\n\n const onClickReset = () => {\n dispatch({ type: 'reset_all_tours' });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'tours.profile.notification.success.reset',\n defaultMessage: 'Guided tour reset',\n }),\n });\n };\n\n return (\n <Panel alignItems=\"start\">\n <Flex direction=\"column\" alignItems=\"start\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'tours.profile.title',\n defaultMessage: 'Guided tour',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage({\n id: 'tours.profile.description',\n defaultMessage: 'You can reset the guided tour at any time.',\n })}\n </Typography>\n </Flex>\n <Button variant=\"tertiary\" onClick={onClickReset}>\n {formatMessage({\n id: 'tours.profile.reset',\n defaultMessage: 'Reset guided tour',\n })}\n </Button>\n </Panel>\n );\n};\n\nexport { ProfilePage };\n"],"names":["PROFILE_VALIDTION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","currentPassword","string","when","password","confirmPassword","passSchema","required","id","translatedErrors","defaultMessage","nullable","preferedLanguage","Panel","children","flexProps","_jsx","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","ProfilePage","isDesktop","useIsDesktop","localeNames","useTypedSelector","state","admin_app","language","formatMessage","useIntl","trackUsage","useTracking","toggleNotification","useNotification","notifyStatus","useNotifyAT","currentTheme","theme","dispatch","useTypedDispatch","_unstableFormatValidationErrors","formatValidationErrors","_unstableFormatAPIError","formatApiError","useAPIErrorHandler","user","useAuth","React","useEffect","type","message","updateMe","isLoading","isSubmittingForm","useUpdateMeMutation","data","dataSSO","error","useIsSSOLockedQuery","undefined","skip","window","strapi","isEE","features","isEnabled","handleSubmit","body","setErrors","_confirmPassword","bodyRest","dataToSend","_password","_currentPassword","passwordRequestBodyRest","res","setAppTheme","newMode","isBaseQueryError","name","Page","Loading","hasLockedRole","isSSOLocked","email","firstname","lastname","username","initialData","_Fragment","_jsxs","Main","aria-busy","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","Layouts","Header","title","getDisplayName","primaryAction","Button","startIcon","Check","loading","disabled","Content","UserInfoSection","PasswordSection","PreferencesSection","GuidedTourSection","Typography","variant","tag","label","size","autoComplete","map","row","index","Grid","Root","field","Item","xs","m","col","InputRenderer","themesToDisplay","availableThemes","here","color","target","rel","href","hint","options","Object","entries","value","placeholder","upperFirst","useGuidedTour","s","onClickReset","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,wBAA2BC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AAClD,IAAA,GAAGC,kBAAkB;IACrBC,eAAiBJ,EAAAA,GAAAA,CACdK,MAAM,EACP;AACCC,KAAAA,IAAI,CAAC;AAAC,QAAA,UAAA;AAAY,QAAA;KAAkB,EAAE,CAACC,UAAUC,eAAiBC,EAAAA,UAAAA,GAAAA;AACjE,QAAA,OAAOF,QAAYC,IAAAA,eAAAA,GACfC,UACGC,CAAAA,QAAQ,CAAC;YACRC,EAAIC,EAAAA,WAAAA,CAAiBF,QAAQ,CAACC,EAAE;YAChCE,cAAgB,EAAA;AAClB,SAAA,CAAA,CACCC,QAAQ,EACXL,GAAAA,UAAAA;AACN,KAAA,CAAA;IACFM,gBAAkBf,EAAAA,GAAAA,CAAIK,MAAM,EAAA,CAAGS,QAAQ;AACzC,CAAA,CAAA;AAEA;;AAEkG,qGAElG,MAAME,KAAQ,GAAA,CAAC,EAAEC,QAAQ,EAAE,GAAGC,SAAsB,EAAA,GAAA;AAClD,IAAA,qBACEC,GAACC,CAAAA,GAAAA,EAAAA;QACCC,UAAW,EAAA,UAAA;QACXC,SAAS,EAAA,IAAA;QACTC,MAAO,EAAA,cAAA;QACPC,UAAY,EAAA,CAAA;QACZC,aAAe,EAAA,CAAA;QACfC,WAAa,EAAA,CAAA;QACbC,YAAc,EAAA,CAAA;AAEd,QAAA,QAAA,gBAAAR,GAACS,CAAAA,IAAAA,EAAAA;YAAKC,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUC,GAAK,EAAA,CAAA;AAAI,YAAA,GAAGb,SAAS;AAChED,YAAAA,QAAAA,EAAAA;;;AAIT,CAAA;AAEA,MAAMe,WAAc,GAAA,IAAA;AAClB,IAAA,MAAMC,SAAYC,GAAAA,YAAAA,EAAAA;IAClB,MAAMC,WAAAA,GAAcC,iBAAiB,CAACC,KAAAA,GAAUA,MAAMC,SAAS,CAACC,QAAQ,CAACJ,WAAW,CAAA;IACpF,MAAM,EAAEK,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;IACvB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,YAAY,EAAE,GAAGC,WAAAA,EAAAA;IACzB,MAAMC,YAAAA,GAAeZ,iBAAiB,CAACC,KAAAA,GAAUA,MAAMC,SAAS,CAACW,KAAK,CAACD,YAAY,CAAA;AACnF,IAAA,MAAME,QAAWC,GAAAA,gBAAAA,EAAAA;AACjB,IAAA,MAAM,EACJC,+BAAiCC,EAAAA,sBAAsB,EACvDC,uBAAyBC,EAAAA,cAAc,EACxC,GAAGC,kBAAAA,EAAAA;AAEJ,IAAA,MAAMC,OAAOC,OAAQ,CAAA,aAAA,EAAe,CAACrB,KAAAA,GAAUA,MAAMoB,IAAI,CAAA;AAEzDE,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIH,IAAM,EAAA;AACRX,YAAAA,YAAAA,CACEN,aAAc,CAAA;gBACZ7B,EAAI,EAAA,0CAAA;gBACJE,cAAgB,EAAA;AAClB,aAAA,CAAA,CAAA;SAEG,MAAA;YACL+B,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAc,CAAA;oBAAE7B,EAAI,EAAA,oBAAA;oBAAsBE,cAAgB,EAAA;AAAmB,iBAAA;AACxF,aAAA,CAAA;AACF;KACC,EAAA;AAAC2B,QAAAA,aAAAA;AAAeM,QAAAA,YAAAA;AAAcF,QAAAA,kBAAAA;AAAoBa,QAAAA;AAAK,KAAA,CAAA;AAE1D,IAAA,MAAM,CAACM,QAAU,EAAA,EAAEC,WAAWC,gBAAgB,EAAE,CAAC,GAAGC,mBAAAA,EAAAA;IAEpD,MAAM,EACJF,SAAS,EACTG,IAAMC,EAAAA,OAAO,EACbC,KAAK,EACN,GAAGC,mBAAAA,CAAoBC,SAAW,EAAA;AACjCC,QAAAA,IAAAA,EAAM,EAAEC,MAAOC,CAAAA,MAAM,CAACC,IAAI,IAAIF,MAAOC,CAAAA,MAAM,CAACE,QAAQ,CAACC,SAAS,CAAC,KAAK,CAAA;AACtE,KAAA,CAAA;AAEAlB,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIS,KAAO,EAAA;YACTzB,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAc,CAAA;oBAAE7B,EAAI,EAAA;AAAgD,iBAAA;AAC/E,aAAA,CAAA;AACF;KACC,EAAA;AAAC0D,QAAAA,KAAAA;AAAO7B,QAAAA,aAAAA;AAAeI,QAAAA;AAAmB,KAAA,CAAA;AAO7C,IAAA,MAAMkC,YAAe,GAAA,OACnBC,IACA,EAAA,EAAEC,SAAS,EAAkC,GAAA;QAE7C,MAAM,EAAExE,iBAAiByE,gBAAgB,EAAEjC,YAAY,EAAE,GAAGkC,UAAU,GAAGH,IAAAA;AACzE,QAAA,IAAII,UAAaD,GAAAA,QAAAA;;;QAIjB,IAAIC,UAAAA,CAAW5E,QAAQ,KAAK,EAAI,EAAA;YAC9B,MAAM,EACJA,UAAU6E,SAAS,EACnBhF,iBAAiBiF,gBAAgB,EACjC,GAAGC,uBAAAA,EACJ,GAAGH,UAAAA;YACJA,UAAaG,GAAAA,uBAAAA;AACf;QAEA,MAAMC,GAAAA,GAAM,MAAMxB,QAASoB,CAAAA,UAAAA,CAAAA;AAE3B,QAAA,IAAI,UAAUI,GAAK,EAAA;AACjBrC,YAAAA,QAAAA,CAASsC,WAAYxC,CAAAA,YAAAA,CAAAA,CAAAA;AAErBN,YAAAA,UAAAA,CAAW,eAAiB,EAAA;gBAAE+C,OAASzC,EAAAA;AAAa,aAAA,CAAA;YAEpDJ,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAStB,aAAc,CAAA;oBAAE7B,EAAI,EAAA,4BAAA;oBAA8BE,cAAgB,EAAA;AAAQ,iBAAA;AACrF,aAAA,CAAA;AACF;AAEA,QAAA,IAAI,WAAW0E,GAAK,EAAA;YAClB,IAAIG,gBAAAA,CAAiBH,IAAIlB,KAAK,CAAA,IAAKkB,IAAIlB,KAAK,CAACsB,IAAI,KAAK,iBAAmB,EAAA;gBACvEX,SAAU3B,CAAAA,sBAAAA,CAAuBkC,IAAIlB,KAAK,CAAA,CAAA;AAC5C,aAAA,MAAO,IAAIqB,gBAAAA,CAAiBH,GAAIlB,CAAAA,KAAK,CAAG,EAAA;gBACtCzB,kBAAmB,CAAA;oBACjBiB,IAAM,EAAA,QAAA;oBACNC,OAASP,EAAAA,cAAAA,CAAegC,IAAIlB,KAAK;AACnC,iBAAA,CAAA;aACK,MAAA;gBACLzB,kBAAmB,CAAA;oBACjBiB,IAAM,EAAA,QAAA;AACNC,oBAAAA,OAAAA,EAAStB,aAAc,CAAA;wBAAE7B,EAAI,EAAA,oBAAA;wBAAsBE,cAAgB,EAAA;AAAmB,qBAAA;AACxF,iBAAA,CAAA;AACF;AACF;AACF,KAAA;AAEA,IAAA,IAAImD,SAAW,EAAA;QACb,qBAAO7C,GAAA,CAACyE,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,MAAMC,aAAAA,GAAgB1B,SAAS2B,WAAe,IAAA,KAAA;AAC9C,IAAA,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEpF,gBAAgB,EAAE,GAAG0C,QAAQ,EAAC;AAC5E,IAAA,MAAM2C,WAAc,GAAA;AAClBJ,QAAAA,KAAAA,EAAOA,KAAS,IAAA,EAAA;AAChBC,QAAAA,SAAAA,EAAWA,SAAa,IAAA,EAAA;AACxBC,QAAAA,QAAAA,EAAUA,QAAY,IAAA,EAAA;AACtBC,QAAAA,QAAAA,EAAUA,QAAY,IAAA,EAAA;AACtBpF,QAAAA,gBAAAA;AACAiC,QAAAA,YAAAA;QACAxC,eAAiB,EAAA,EAAA;QACjBD,QAAU,EAAA;AACZ,KAAA;IAEA,qBACEY,GAAA,CAAAkF,QAAA,EAAA;gCACEC,IAAA,CAACV,KAAKW,IAAI,EAAA;YAACC,WAAWvC,EAAAA,gBAAAA;;AACpB,8BAAA9C,GAAA,CAACyE,KAAKa,KAAK,EAAA;8BACRjE,aAAc,CAAA;wBACb7B,EAAI,EAAA,0CAAA;wBACJE,cAAgB,EAAA;AAClB,qBAAA;;8BAEFM,GAACuF,CAAAA,IAAAA,EAAAA;oBACCC,MAAO,EAAA,KAAA;oBACPC,QAAU9B,EAAAA,YAAAA;oBACV+B,aAAeT,EAAAA,WAAAA;oBACfU,gBAAkB/G,EAAAA,wBAAAA;AAEjB,oBAAA,QAAA,EAAA,CAAC,EAAEgH,YAAY,EAAEC,QAAQ,EAAE,iBAC1BV,IAAA,CAAAD,QAAA,EAAA;;AACE,8CAAAlF,GAAA,CAAC8F,QAAQC,MAAM,EAAA;AACbC,oCAAAA,KAAAA,EAAOC,cAAe3D,CAAAA,IAAAA,CAAAA;AACtB4D,oCAAAA,aAAAA,gBACElG,GAACmG,CAAAA,MAAAA,EAAAA;AACCC,wCAAAA,SAAAA,gBAAWpG,GAACqG,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;wCACZC,OAASV,EAAAA,YAAAA;wCACTlD,IAAK,EAAA,QAAA;AACL6D,wCAAAA,QAAAA,EAAU,CAACV,QAAAA;kDAEVxE,aAAc,CAAA;4CAAE7B,EAAI,EAAA,aAAA;4CAAeE,cAAgB,EAAA;AAAO,yCAAA;;;8CAIjEM,GAACC,CAAAA,GAAAA,EAAAA;oCAAIK,aAAe,EAAA,CAAA;4DAClBN,GAAA,CAAC8F,QAAQU,OAAO,EAAA;AACd,wCAAA,QAAA,gBAAArB,IAAC1E,CAAAA,IAAAA,EAAAA;4CAAKC,SAAU,EAAA,QAAA;4CAASC,UAAW,EAAA,SAAA;4CAAUC,GAAK,EAAA,CAAA;;8DACjDZ,GAACyG,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACA,gDAAA,CAAC9B,+BAAiB3E,GAAC0G,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;8DACpB1G,GAAC2G,CAAAA,kBAAAA,EAAAA;oDAAmB3F,WAAaA,EAAAA;;;;;;;;;AAO5CF,gBAAAA,SAAAA,kBACCd,GAACC,CAAAA,GAAAA,EAAAA;4CACCD,GAAA,CAAC8F,QAAQU,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAAxG,GAAC4G,CAAAA,iBAAAA,EAAAA,EAAAA;;;;;;AAOf;AAEA;;AAEkG,qGAElG,MAAMF,eAAkB,GAAA,IAAA;IACtB,MAAM,EAAErF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACE6D,IAACtF,CAAAA,KAAAA,EAAAA;;0BACCG,GAAC6G,CAAAA,UAAAA,EAAAA;gBAAWC,OAAQ,EAAA,OAAA;gBAAQC,GAAI,EAAA,IAAA;0BAC7B1F,aAAc,CAAA;oBACb7B,EAAI,EAAA,wBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;;AAED,YAAA;AACC,gBAAA;AACE,oBAAA;AACEsH,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,iCAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,iBAAA;wBACNyC,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR;AACD,iBAAA;AACD,gBAAA;AACE,oBAAA;wBACEwE,YAAc,EAAA,cAAA;AACdF,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,iBAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,UAAA;wBACNyC,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA;wBACEwE,YAAc,EAAA,cAAA;AACdF,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,iCAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,iBAAA;wBACNyC,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR;AACD;AACF,aAAA,CAACyE,GAAG,CAAC,CAACC,KAAKC,KACV,iBAAArH,GAAA,CAACsH,KAAKC,IAAI,EAAA;oBAAa3G,GAAK,EAAA,CAAA;8BACzBwG,GAAID,CAAAA,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAGO,KAAO,EAAA,iBAC1BxH,GAACsH,CAAAA,IAAAA,CAAKG,IAAI,EAAA;4BAERC,EAAI,EAAA,EAAA;4BACJC,CAAG,EAAA,CAAA;4BACHC,GAAKX,EAAAA,IAAAA;4BACLvG,SAAU,EAAA,QAAA;4BACVC,UAAW,EAAA,SAAA;AAEX,4BAAA,QAAA,gBAAAX,GAAC6H,CAAAA,qBAAAA,EAAAA;AAAe,gCAAA,GAAGL;;AAPdA,yBAAAA,EAAAA,KAAAA,CAAMhD,IAAI,CAAA;AAHL6C,iBAAAA,EAAAA,KAAAA,CAAAA;;;AAiBxB,CAAA;AAUA,MAAMV,kBAAqB,GAAA,CAAC,EAAE3F,WAAW,EAA2B,GAAA;IAClE,MAAM,EAAEK,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMwG,eAAAA,GAAkB7G,iBAAiB,CAACC,KAAAA,GAAUA,MAAMC,SAAS,CAACW,KAAK,CAACiG,eAAe,CAAA;AAEzF,IAAA,qBACE5C,IAACtF,CAAAA,KAAAA,EAAAA;;0BACCsF,IAAC1E,CAAAA,IAAAA,EAAAA;gBAAKC,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;gBAAUC,GAAK,EAAA,CAAA;;kCACjDZ,GAAC6G,CAAAA,UAAAA,EAAAA;wBAAWC,OAAQ,EAAA,OAAA;wBAAQC,GAAI,EAAA,IAAA;kCAC7B1F,aAAc,CAAA;4BACb7B,EAAI,EAAA,gDAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA;;kCAEFM,GAAC6G,CAAAA,UAAAA,EAAAA;kCACExF,aACC,CAAA;4BACE7B,EAAI,EAAA,gEAAA;4BACJE,cACE,EAAA;yBAEJ,EAAA;AACEsI,4BAAAA,IAAAA,gBACEhI,GAACC,CAAAA,GAAAA,EAAAA;gCACC8G,GAAI,EAAA,GAAA;gCACJkB,KAAM,EAAA,YAAA;gCACNC,MAAO,EAAA,QAAA;gCACPC,GAAI,EAAA,qBAAA;gCACJC,IAAK,EAAA,2FAAA;0CAEJ/G,aAAc,CAAA;oCACb7B,EAAI,EAAA,+CAAA;oCACJE,cAAgB,EAAA;AAClB,iCAAA;;AAGN,yBAAA;;;;AAIN,0BAAAM,GAAA,CAACsH,KAAKC,IAAI,EAAA;gBAAC3G,GAAK,EAAA,CAAA;AACb,gBAAA,QAAA,EAAA;AACC,oBAAA;AACEyH,wBAAAA,IAAAA,EAAMhH,aAAc,CAAA;4BAClB7B,EAAI,EAAA,iEAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;AACAsH,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,4DAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,kBAAA;wBACN8D,OAASC,EAAAA,MAAAA,CAAOC,OAAO,CAACxH,WAAamG,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACsB,KAAAA,EAAOzB,KAAM,CAAA,IAAM;AAC5DA,gCAAAA,KAAAA;AACAyB,gCAAAA;6BACF,CAAA,CAAA;AACAC,wBAAAA,WAAAA,EAAarH,aAAc,CAAA;4BACzB7B,EAAI,EAAA,eAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAuH,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA;AACE2F,wBAAAA,IAAAA,EAAMhH,aAAc,CAAA;4BAClB7B,EAAI,EAAA,oDAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;AACAsH,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,qDAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,cAAA;wBACN8D,OAAS,EAAA;AACP,4BAAA;AACEtB,gCAAAA,KAAAA,EAAO3F,aAAc,CAAA;oCACnB7B,EAAI,EAAA,mEAAA;oCACJE,cAAgB,EAAA;AAClB,iCAAA,CAAA;gCACA+I,KAAO,EAAA;AACT,6BAAA;AACGX,4BAAAA,GAAAA,eAAAA,CAAgBX,GAAG,CAAC,CAACrF,KAAAA,IAAW;AACjCkF,oCAAAA,KAAAA,EAAO3F,aACL,CAAA;wCACE7B,EAAI,EAAA,4DAAA;wCACJE,cAAgB,EAAA;qCAElB,EAAA;AACE8E,wCAAAA,IAAAA,EAAMnD,aAAc,CAAA;4CAClB7B,EAAIsC,EAAAA,KAAAA;AACJpC,4CAAAA,cAAAA,EAAgBiJ,UAAW7G,CAAAA,KAAAA;AAC7B,yCAAA;AACF,qCAAA,CAAA;oCAEF2G,KAAO3G,EAAAA;iCACT,CAAA;AACD,yBAAA;AACD4G,wBAAAA,WAAAA,EAAarH,aAAc,CAAA;4BACzB7B,EAAI,EAAA,+BAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAuH,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR;iBACD,CAACyE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAGO,KAAO,EAAA,iBACvBxH,GAACsH,CAAAA,IAAAA,CAAKG,IAAI,EAAA;wBAERC,EAAI,EAAA,EAAA;wBACJC,CAAG,EAAA,CAAA;wBACHC,GAAKX,EAAAA,IAAAA;wBACLvG,SAAU,EAAA,QAAA;wBACVC,UAAW,EAAA,SAAA;AAEX,wBAAA,QAAA,gBAAAX,GAAC6H,CAAAA,qBAAAA,EAAAA;AAAe,4BAAA,GAAGL;;AAPdA,qBAAAA,EAAAA,KAAAA,CAAMhD,IAAI,CAAA;;;;AAa3B,CAAA;AAEA;;AAEkG,qGAElG,MAAMiC,eAAkB,GAAA,IAAA;IACtB,MAAM,EAAEpF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACE6D,IAACtF,CAAAA,KAAAA,EAAAA;;0BACCG,GAAC6G,CAAAA,UAAAA,EAAAA;gBAAWC,OAAQ,EAAA,OAAA;gBAAQC,GAAI,EAAA,IAAA;0BAC7B1F,aAAc,CAAA;oBACb7B,EAAI,EAAA,gBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAM,GAAA,CAACsH,KAAKC,IAAI,EAAA;gBAAC3G,GAAK,EAAA,CAAA;AACb,gBAAA,QAAA,EAAA;AACC,oBAAA;AACEoG,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,2BAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,WAAA;wBACNjF,QAAU,EAAA,IAAA;wBACV0H,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA;AACEsE,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,0BAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,UAAA;wBACNyC,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA;AACEsE,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,uBAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,OAAA;wBACNjF,QAAU,EAAA,IAAA;wBACV0H,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR,qBAAA;AACA,oBAAA;AACEsE,wBAAAA,KAAAA,EAAO3F,aAAc,CAAA;4BACnB7B,EAAI,EAAA,0BAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACA8E,IAAM,EAAA,UAAA;wBACNyC,IAAM,EAAA,CAAA;wBACNvE,IAAM,EAAA;AACR;iBACD,CAACyE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAGO,KAAO,EAAA,iBACvBxH,GAACsH,CAAAA,IAAAA,CAAKG,IAAI,EAAA;wBAERC,EAAI,EAAA,EAAA;wBACJC,CAAG,EAAA,CAAA;wBACHC,GAAKX,EAAAA,IAAAA;wBACLvG,SAAU,EAAA,QAAA;wBACVC,UAAW,EAAA,SAAA;AAEX,wBAAA,QAAA,gBAAAX,GAAC6H,CAAAA,qBAAAA,EAAAA;AAAe,4BAAA,GAAGL;;AAPdA,qBAAAA,EAAAA,KAAAA,CAAMhD,IAAI,CAAA;;;;AAa3B,CAAA;AAEA;;AAEkG,qGAElG,MAAMoC,iBAAoB,GAAA,IAAA;IACxB,MAAM,EAAEvF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMK,WAAW6G,aAAc,CAAA,aAAA,EAAe,CAACC,CAAAA,GAAMA,EAAE9G,QAAQ,CAAA;AAE/D,IAAA,MAAM+G,YAAe,GAAA,IAAA;QACnB/G,QAAS,CAAA;YAAEW,IAAM,EAAA;AAAkB,SAAA,CAAA;QACnCjB,kBAAmB,CAAA;YACjBiB,IAAM,EAAA,SAAA;AACNC,YAAAA,OAAAA,EAAStB,aAAc,CAAA;gBACrB7B,EAAI,EAAA,0CAAA;gBACJE,cAAgB,EAAA;AAClB,aAAA;AACF,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,qBACEyF,IAACtF,CAAAA,KAAAA,EAAAA;QAAMc,UAAW,EAAA,OAAA;;0BAChBwE,IAAC1E,CAAAA,IAAAA,EAAAA;gBAAKC,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,OAAA;gBAAQC,GAAK,EAAA,CAAA;;kCAC/CZ,GAAC6G,CAAAA,UAAAA,EAAAA;wBAAWC,OAAQ,EAAA,OAAA;wBAAQC,GAAI,EAAA,IAAA;kCAC7B1F,aAAc,CAAA;4BACb7B,EAAI,EAAA,qBAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA;;kCAEFM,GAAC6G,CAAAA,UAAAA,EAAAA;wBAAWC,OAAQ,EAAA,IAAA;kCACjBzF,aAAc,CAAA;4BACb7B,EAAI,EAAA,2BAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA;;;;0BAGJM,GAACmG,CAAAA,MAAAA,EAAAA;gBAAOW,OAAQ,EAAA,UAAA;gBAAWiC,OAASD,EAAAA,YAAAA;0BACjCzH,aAAc,CAAA;oBACb7B,EAAI,EAAA,qBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;;;;AAIR,CAAA;;;;"}
1
+ {"version":3,"file":"ProfilePage.mjs","sources":["../../../../../admin/src/pages/ProfilePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, useNotifyAT, Grid, Typography, FlexProps } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, FormHelpers } from '../components/Form';\nimport { InputRenderer } from '../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../components/GuidedTour/Context';\nimport { Layouts } from '../components/Layouts/Layout';\nimport { Page } from '../components/PageHelpers';\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useTracking } from '../features/Tracking';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { AppState, setAppTheme } from '../reducer';\nimport { useIsSSOLockedQuery, useUpdateMeMutation } from '../services/auth';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { translatedErrors } from '../utils/translatedErrors';\nimport { getDisplayName } from '../utils/users';\n\nimport { COMMON_USER_SCHEMA } from './Settings/pages/Users/utils/validation';\n\nimport type { UpdateMe } from '../../../shared/contracts/users';\n\nconst PROFILE_VALIDTION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n currentPassword: yup\n .string()\n // @ts-expect-error – no idea why this is failing.\n .when(['password', 'confirmPassword'], (password, confirmPassword, passSchema) => {\n return password || confirmPassword\n ? passSchema\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable()\n : passSchema;\n }),\n preferedLanguage: yup.string().nullable(),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ProfilePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panel = ({ children, ...flexProps }: FlexProps) => {\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} {...flexProps}>\n {children}\n </Flex>\n </Box>\n );\n};\n\nconst ProfilePage = () => {\n const isDesktop = useIsDesktop();\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const currentTheme = useTypedSelector((state) => state.admin_app.theme.currentTheme);\n const dispatch = useTypedDispatch();\n const {\n _unstableFormatValidationErrors: formatValidationErrors,\n _unstableFormatAPIError: formatApiError,\n } = useAPIErrorHandler();\n\n const user = useAuth('ProfilePage', (state) => state.user);\n\n React.useEffect(() => {\n if (user) {\n notifyStatus(\n formatMessage({\n id: 'Settings.profile.form.notify.data.loaded',\n defaultMessage: 'Your profile data has been loaded',\n })\n );\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }, [formatMessage, notifyStatus, toggleNotification, user]);\n\n const [updateMe, { isLoading: isSubmittingForm }] = useUpdateMeMutation();\n\n const {\n isLoading,\n data: dataSSO,\n error,\n } = useIsSSOLockedQuery(undefined, {\n skip: !(window.strapi.isEE && window.strapi.features.isEnabled('sso')),\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'Settings.permissions.users.sso.provider.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n type UpdateUsersMeBody = UpdateMe.Request['body'] & {\n confirmPassword: string;\n currentTheme: AppState['theme']['currentTheme'];\n };\n\n const handleSubmit = async (\n body: UpdateUsersMeBody,\n { setErrors }: FormHelpers<UpdateUsersMeBody>\n ) => {\n const { confirmPassword: _confirmPassword, currentTheme, ...bodyRest } = body;\n let dataToSend = bodyRest;\n\n // The password fields are optional. If the user didn't touch them, don't send any password\n // to the API, because an empty string would throw a validation error\n if (dataToSend.password === '') {\n const {\n password: _password,\n currentPassword: _currentPassword,\n ...passwordRequestBodyRest\n } = dataToSend;\n dataToSend = passwordRequestBodyRest;\n }\n\n const res = await updateMe(dataToSend);\n\n if ('data' in res) {\n dispatch(setAppTheme(currentTheme));\n\n trackUsage('didChangeMode', { newMode: currentTheme });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n }\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n } else if (isBaseQueryError(res.error)) {\n toggleNotification({\n type: 'danger',\n message: formatApiError(res.error),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const hasLockedRole = dataSSO?.isSSOLocked ?? false;\n const { email, firstname, lastname, username, preferedLanguage } = user ?? {};\n const initialData = {\n email: email ?? '',\n firstname: firstname ?? '',\n lastname: lastname ?? '',\n username: username ?? '',\n preferedLanguage,\n currentTheme,\n confirmPassword: '',\n password: '',\n };\n\n return (\n <>\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage({\n id: 'Settings.profile.form.section.head.title',\n defaultMessage: 'User profile',\n })}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={PROFILE_VALIDTION_SCHEMA}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n title={getDisplayName(user)}\n primaryAction={\n <Button\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified}\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Box paddingBottom={6}>\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <UserInfoSection />\n {!hasLockedRole && <PasswordSection />}\n <PreferencesSection localeNames={localeNames} />\n </Flex>\n </Layouts.Content>\n </Box>\n </>\n )}\n </Form>\n {isDesktop && process.env.NODE_ENV === 'development' && (\n <Box>\n <Layouts.Content>\n <GuidedTourSection />\n </Layouts.Content>\n </Box>\n )}\n </Page.Main>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst PasswordSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Typography>\n {[\n [\n {\n label: formatMessage({\n id: 'Auth.form.currentPassword.label',\n defaultMessage: 'Current Password',\n }),\n name: 'currentPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n size: 6,\n type: 'password' as const,\n },\n {\n autoComplete: 'new-password',\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n size: 6,\n type: 'password' as const,\n },\n ],\n ].map((row, index) => (\n <Grid.Root key={index} gap={5}>\n {row.map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n ))}\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreferencesSection\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreferencesSectionProps {\n localeNames: Record<string, string>;\n}\n\nconst PreferencesSection = ({ localeNames }: PreferencesSectionProps) => {\n const { formatMessage } = useIntl();\n const themesToDisplay = useTypedSelector((state) => state.admin_app.theme.availableThemes);\n\n return (\n <Panel>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'Settings.profile.form.section.experience.title',\n defaultMessage: 'Experience',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'Settings.profile.form.section.experience.interfaceLanguageHelp',\n defaultMessage:\n 'Preference changes will apply only to you. More information is available {here}.',\n },\n {\n here: (\n <Box\n tag=\"a\"\n color=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales\"\n >\n {formatMessage({\n id: 'Settings.profile.form.section.experience.here',\n defaultMessage: 'here',\n })}\n </Box>\n ),\n }\n )}\n </Typography>\n </Flex>\n <Grid.Root gap={5}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage.hint',\n defaultMessage: 'This will only display your own interface in the chosen language.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.interfaceLanguage',\n defaultMessage: 'Interface language',\n }),\n name: 'preferedLanguage',\n options: Object.entries(localeNames).map(([value, label]) => ({\n label,\n value,\n })),\n placeholder: formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.hint',\n defaultMessage: 'Displays your interface in the chosen mode.',\n }),\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.label',\n defaultMessage: 'Interface mode',\n }),\n name: 'currentTheme',\n options: [\n {\n label: formatMessage({\n id: 'Settings.profile.form.section.experience.mode.option-system-label',\n defaultMessage: 'Use system settings',\n }),\n value: 'system',\n },\n ...themesToDisplay.map((theme) => ({\n label: formatMessage(\n {\n id: 'Settings.profile.form.section.experience.mode.option-label',\n defaultMessage: '{name} mode',\n },\n {\n name: formatMessage({\n id: theme,\n defaultMessage: upperFirst(theme),\n }),\n }\n ),\n value: theme,\n })),\n ],\n placeholder: formatMessage({\n id: 'components.Select.placeholder',\n defaultMessage: 'Select',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UserInfoSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst UserInfoSection = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Panel>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 6,\n type: 'email' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n }),\n name: 'username',\n size: 6,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n xs={12}\n m={6}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Panel>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourSection\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourSection = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const dispatch = useGuidedTour('ProfilePage', (s) => s.dispatch);\n\n const onClickReset = () => {\n dispatch({ type: 'reset_all_tours' });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'tours.profile.notification.success.reset',\n defaultMessage: 'Guided tour reset',\n }),\n });\n };\n\n return (\n <Panel alignItems=\"start\">\n <Flex direction=\"column\" alignItems=\"start\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'tours.profile.title',\n defaultMessage: 'Guided tour',\n })}\n </Typography>\n <Typography variant=\"pi\">\n {formatMessage({\n id: 'tours.profile.description',\n defaultMessage: 'You can reset the guided tour at any time.',\n })}\n </Typography>\n </Flex>\n <Button variant=\"tertiary\" onClick={onClickReset}>\n {formatMessage({\n id: 'tours.profile.reset',\n defaultMessage: 'Reset guided tour',\n })}\n </Button>\n </Panel>\n );\n};\n\nexport { ProfilePage };\n"],"names":["PROFILE_VALIDTION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","currentPassword","string","when","password","confirmPassword","passSchema","required","id","translatedErrors","defaultMessage","nullable","preferedLanguage","Panel","children","flexProps","_jsx","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","ProfilePage","isDesktop","useIsDesktop","localeNames","useTypedSelector","state","admin_app","language","formatMessage","useIntl","trackUsage","useTracking","toggleNotification","useNotification","notifyStatus","useNotifyAT","currentTheme","theme","dispatch","useTypedDispatch","_unstableFormatValidationErrors","formatValidationErrors","_unstableFormatAPIError","formatApiError","useAPIErrorHandler","user","useAuth","React","useEffect","type","message","updateMe","isLoading","isSubmittingForm","useUpdateMeMutation","data","dataSSO","error","useIsSSOLockedQuery","undefined","skip","window","strapi","isEE","features","isEnabled","handleSubmit","body","setErrors","_confirmPassword","bodyRest","dataToSend","_password","_currentPassword","passwordRequestBodyRest","res","setAppTheme","newMode","isBaseQueryError","name","Page","Loading","hasLockedRole","isSSOLocked","email","firstname","lastname","username","initialData","_Fragment","_jsxs","Main","aria-busy","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","Layouts","Header","title","getDisplayName","primaryAction","Button","startIcon","Check","loading","disabled","Content","UserInfoSection","PasswordSection","PreferencesSection","process","env","NODE_ENV","GuidedTourSection","Typography","variant","tag","label","size","autoComplete","map","row","index","Grid","Root","field","Item","xs","m","col","InputRenderer","themesToDisplay","availableThemes","here","color","target","rel","href","hint","options","Object","entries","value","placeholder","upperFirst","useGuidedTour","s","onClickReset","onClick"],"mappings":"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"}
@@ -83,6 +83,12 @@ var ru = {
83
83
  Email: Email,
84
84
  "Files Upload": "Загрузка файлов",
85
85
  "HomePage.head.title": "Домашняя страница",
86
+ "HomePage.header.title": "Привет {name}",
87
+ "HomePage.header.subtitle": "Добро пожаловать в панель администратора",
88
+ "HomePage.widget.loading": "Загрузка содержимого виджета",
89
+ "HomePage.widget.error": "Не удалось загрузить содержимое виджета.",
90
+ "HomePage.widget.no-data": "Контент не найден.",
91
+ "HomePage.widget.no-permissions": "У вас нет разрешения на просмотр этого виджета",
86
92
  "HomePage.roadmap": "Смотрите нашу дорожную карту",
87
93
  "HomePage.welcome.congrats": "Поздравляем!",
88
94
  "HomePage.welcome.congrats.content": "Вы вошли как первый администратор. Чтобы открыть для себя мощные функции, предоставляемые Strapi,",
@@ -184,6 +190,7 @@ var ru = {
184
190
  "Settings.permissions.auditLogs.entry.update": "Обновить {model, select, undefined {} other { ({model})}}",
185
191
  "Settings.permissions.auditLogs.filters.combobox.aria-label": "Выполните поиск и выберите вариант для фильтрации",
186
192
  "Settings.permissions.auditLogs.listview.header.subtitle": "Журналы всех действий, которые произошли в вашей среде",
193
+ "Settings.permissions.auditLogs.not-available": "Журналы аудита доступны только как часть платного плана. Обновитесь, чтобы получить поисковое и фильтруемое отображение всех действий.",
187
194
  "Settings.permissions.auditLogs.media.create": "Создать медиафайл",
188
195
  "Settings.permissions.auditLogs.media.delete": "Удалить медиафайл",
189
196
  "Settings.permissions.auditLogs.media.update": "Обновить медиафайл",
@@ -215,7 +222,7 @@ var ru = {
215
222
  "Settings.permissions.select-all-by-permission": "Выбрать все разрешения {label}",
216
223
  "Settings.permissions.select-by-permission": "Выберите разрешения {label}",
217
224
  "Settings.permissions.users.active": "Активен",
218
- "Settings.permissions.users.create": "Создать нового пользователя",
225
+ "Settings.permissions.users.create": "Пригласить нового пользователя",
219
226
  "Settings.permissions.users.email": "Email",
220
227
  "Settings.permissions.users.firstname": "Имя",
221
228
  "Settings.permissions.users.form.sso": "Соединить с SSO",
@@ -730,6 +737,8 @@ var ru = {
730
737
  "global.settings": "Настройки",
731
738
  "global.type": "Тип",
732
739
  "global.users": "Пользователи",
740
+ "global.profile.settings": "Настройки профиля",
741
+ "global.learn-more": "Узнать больше",
733
742
  light: light,
734
743
  "notification.contentType.relations.conflict": "Тип контента имеет конфликтующие отношения",
735
744
  "notification.default.title": "Информация:",
@@ -757,7 +766,63 @@ var ru = {
757
766
  "request.error.model.unknown": "Модель данных не существует",
758
767
  selectButtonTitle: selectButtonTitle,
759
768
  skipToContent: skipToContent,
760
- submit: submit
769
+ submit: submit,
770
+ "tours.contentTypeBuilder.Introduction.title": "Конструктор типов контента",
771
+ "tours.contentTypeBuilder.Introduction.content": "Создавайте и управляйте структурой вашего контента с помощью типов коллекций, одиночных типов и компонентов.",
772
+ "tours.contentTypeBuilder.CollectionTypes.title": "Типы коллекций",
773
+ "tours.contentTypeBuilder.CollectionTypes.content": "Структура контента, которая может управлять несколькими записями, такими как статьи или продукты.",
774
+ "tours.contentTypeBuilder.SingleTypes.title": "Одиночные типы",
775
+ "tours.contentTypeBuilder.SingleTypes.content": "Структура контента, которая может управлять только одной записью, такой как домашняя страница или страница контактов.",
776
+ "tours.contentTypeBuilder.Components.title": "Компоненты",
777
+ "tours.contentTypeBuilder.Components.content": "Структура контента, которая может использоваться в нескольких типах коллекций или одиночных типах.",
778
+ "tours.contentTypeBuilder.Finish.title": "Время создавать контент!",
779
+ "tours.contentTypeBuilder.Finish.content": "Теперь, когда вы создали типы контента, вы сможете создавать контент в редакторе контента.",
780
+ "tours.contentManager.Introduction.title": "Редактор контента",
781
+ "tours.contentManager.Introduction.content": "Создавайте и управляйте контентом из ваших типов коллекций и одиночных типов.",
782
+ "tours.apiTokens.Introduction.title": "API токены",
783
+ "tours.apiTokens.Introduction.content": "Создавайте и управляйте API токенами с высоко настраиваемыми разрешениями.",
784
+ "tours.apiTokens.CreateAnAPIToken.title": "Создать API токен",
785
+ "tours.apiTokens.CreateAnAPIToken.content": "Создайте новый API токен. Выберите имя, продолжительность и тип.",
786
+ "tours.apiTokens.CopyAPIToken.title": "Скопируйте ваш новый API токен",
787
+ "tours.apiTokens.CopyAPIToken.content": "Обязательно сделайте это сейчас, вы больше не сможете его увидеть. Вам нужно будет сгенерировать новый, если вы его потеряете.",
788
+ "tours.apiTokens.FinalStep.title": "Время развернуть ваше приложение!",
789
+ "tours.apiTokens.FinalStep.content": "Ваше приложение готово к развертыванию, и его контент готов к обмену с миром!",
790
+ "tours.contentManager.Fields.title": "Поля",
791
+ "tours.contentManager.Fields.content": "Добавляйте контент в поля, созданные в Конструкторе типов контента.",
792
+ "tours.contentManager.Publish.title": "Опубликовать",
793
+ "tours.contentManager.Publish.content": "Опубликуйте записи, чтобы сделать их контент доступным через API контента.",
794
+ "tours.contentManager.FinalStep.title": "Время создавать API токены!",
795
+ "tours.contentManager.FinalStep.content": "Теперь, когда вы создали и опубликовали контент, время создавать API токены и настраивать разрешения.",
796
+ "tours.stepCount": "Шаг {currentStep} из {tourLength}",
797
+ "tours.skip": "Пропустить",
798
+ "tours.next": "Далее",
799
+ "tours.gotIt": "Понятно",
800
+ "tours.overview.title": "Откройте для себя ваше приложение!",
801
+ "tours.overview.subtitle": "Следуйте руководству, чтобы получить максимум от Strapi.",
802
+ "tours.overview.close": "Закрыть руководство",
803
+ "tours.overview.tasks": "Ваши задачи",
804
+ "tours.overview.contentTypeBuilder.label": "Создайте вашу схему",
805
+ "tours.overview.contentManager.label": "Создавайте и публикуйте контент",
806
+ "tours.overview.apiTokens.label": "Создайте и скопируйте API токен",
807
+ "tours.overview.strapiCloud.label": "Разверните ваше приложение в Strapi Cloud",
808
+ "tours.overview.strapiCloud.link": "Читать документацию",
809
+ "tours.overview.tour.link": "Начать",
810
+ "tours.overview.tour.done": "Готово",
811
+ "tours.overview.close.description": "Вы уверены, что хотите закрыть руководство?",
812
+ "tours.profile.title": "Руководство",
813
+ "tours.profile.description": "Вы можете сбросить руководство в любое время.",
814
+ "tours.profile.reset": "Сбросить руководство",
815
+ "tours.profile.notification.success.reset": "Руководство сброшено",
816
+ "widget.key-statistics.title": "Статистика проекта",
817
+ "widget.key-statistics.list.admins": "Администраторы",
818
+ "widget.key-statistics.list.apiTokens": "API токены",
819
+ "widget.key-statistics.list.assets": "Ассеты",
820
+ "widget.key-statistics.list.components": "Компоненты",
821
+ "widget.key-statistics.list.contentTypes": "Типы контента",
822
+ "widget.key-statistics.list.entries": "Записи",
823
+ "widget.key-statistics.list.locales": "Локали",
824
+ "widget.key-statistics.list.webhooks": "Вебхуки",
825
+ "widget.profile.title": "Профиль"
761
826
  };
762
827
 
763
828
  exports.Analytics = Analytics;
@@ -1 +1 @@
1
- {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -79,6 +79,12 @@ var ru = {
79
79
  Email: Email,
80
80
  "Files Upload": "Загрузка файлов",
81
81
  "HomePage.head.title": "Домашняя страница",
82
+ "HomePage.header.title": "Привет {name}",
83
+ "HomePage.header.subtitle": "Добро пожаловать в панель администратора",
84
+ "HomePage.widget.loading": "Загрузка содержимого виджета",
85
+ "HomePage.widget.error": "Не удалось загрузить содержимое виджета.",
86
+ "HomePage.widget.no-data": "Контент не найден.",
87
+ "HomePage.widget.no-permissions": "У вас нет разрешения на просмотр этого виджета",
82
88
  "HomePage.roadmap": "Смотрите нашу дорожную карту",
83
89
  "HomePage.welcome.congrats": "Поздравляем!",
84
90
  "HomePage.welcome.congrats.content": "Вы вошли как первый администратор. Чтобы открыть для себя мощные функции, предоставляемые Strapi,",
@@ -180,6 +186,7 @@ var ru = {
180
186
  "Settings.permissions.auditLogs.entry.update": "Обновить {model, select, undefined {} other { ({model})}}",
181
187
  "Settings.permissions.auditLogs.filters.combobox.aria-label": "Выполните поиск и выберите вариант для фильтрации",
182
188
  "Settings.permissions.auditLogs.listview.header.subtitle": "Журналы всех действий, которые произошли в вашей среде",
189
+ "Settings.permissions.auditLogs.not-available": "Журналы аудита доступны только как часть платного плана. Обновитесь, чтобы получить поисковое и фильтруемое отображение всех действий.",
183
190
  "Settings.permissions.auditLogs.media.create": "Создать медиафайл",
184
191
  "Settings.permissions.auditLogs.media.delete": "Удалить медиафайл",
185
192
  "Settings.permissions.auditLogs.media.update": "Обновить медиафайл",
@@ -211,7 +218,7 @@ var ru = {
211
218
  "Settings.permissions.select-all-by-permission": "Выбрать все разрешения {label}",
212
219
  "Settings.permissions.select-by-permission": "Выберите разрешения {label}",
213
220
  "Settings.permissions.users.active": "Активен",
214
- "Settings.permissions.users.create": "Создать нового пользователя",
221
+ "Settings.permissions.users.create": "Пригласить нового пользователя",
215
222
  "Settings.permissions.users.email": "Email",
216
223
  "Settings.permissions.users.firstname": "Имя",
217
224
  "Settings.permissions.users.form.sso": "Соединить с SSO",
@@ -726,6 +733,8 @@ var ru = {
726
733
  "global.settings": "Настройки",
727
734
  "global.type": "Тип",
728
735
  "global.users": "Пользователи",
736
+ "global.profile.settings": "Настройки профиля",
737
+ "global.learn-more": "Узнать больше",
729
738
  light: light,
730
739
  "notification.contentType.relations.conflict": "Тип контента имеет конфликтующие отношения",
731
740
  "notification.default.title": "Информация:",
@@ -753,7 +762,63 @@ var ru = {
753
762
  "request.error.model.unknown": "Модель данных не существует",
754
763
  selectButtonTitle: selectButtonTitle,
755
764
  skipToContent: skipToContent,
756
- submit: submit
765
+ submit: submit,
766
+ "tours.contentTypeBuilder.Introduction.title": "Конструктор типов контента",
767
+ "tours.contentTypeBuilder.Introduction.content": "Создавайте и управляйте структурой вашего контента с помощью типов коллекций, одиночных типов и компонентов.",
768
+ "tours.contentTypeBuilder.CollectionTypes.title": "Типы коллекций",
769
+ "tours.contentTypeBuilder.CollectionTypes.content": "Структура контента, которая может управлять несколькими записями, такими как статьи или продукты.",
770
+ "tours.contentTypeBuilder.SingleTypes.title": "Одиночные типы",
771
+ "tours.contentTypeBuilder.SingleTypes.content": "Структура контента, которая может управлять только одной записью, такой как домашняя страница или страница контактов.",
772
+ "tours.contentTypeBuilder.Components.title": "Компоненты",
773
+ "tours.contentTypeBuilder.Components.content": "Структура контента, которая может использоваться в нескольких типах коллекций или одиночных типах.",
774
+ "tours.contentTypeBuilder.Finish.title": "Время создавать контент!",
775
+ "tours.contentTypeBuilder.Finish.content": "Теперь, когда вы создали типы контента, вы сможете создавать контент в редакторе контента.",
776
+ "tours.contentManager.Introduction.title": "Редактор контента",
777
+ "tours.contentManager.Introduction.content": "Создавайте и управляйте контентом из ваших типов коллекций и одиночных типов.",
778
+ "tours.apiTokens.Introduction.title": "API токены",
779
+ "tours.apiTokens.Introduction.content": "Создавайте и управляйте API токенами с высоко настраиваемыми разрешениями.",
780
+ "tours.apiTokens.CreateAnAPIToken.title": "Создать API токен",
781
+ "tours.apiTokens.CreateAnAPIToken.content": "Создайте новый API токен. Выберите имя, продолжительность и тип.",
782
+ "tours.apiTokens.CopyAPIToken.title": "Скопируйте ваш новый API токен",
783
+ "tours.apiTokens.CopyAPIToken.content": "Обязательно сделайте это сейчас, вы больше не сможете его увидеть. Вам нужно будет сгенерировать новый, если вы его потеряете.",
784
+ "tours.apiTokens.FinalStep.title": "Время развернуть ваше приложение!",
785
+ "tours.apiTokens.FinalStep.content": "Ваше приложение готово к развертыванию, и его контент готов к обмену с миром!",
786
+ "tours.contentManager.Fields.title": "Поля",
787
+ "tours.contentManager.Fields.content": "Добавляйте контент в поля, созданные в Конструкторе типов контента.",
788
+ "tours.contentManager.Publish.title": "Опубликовать",
789
+ "tours.contentManager.Publish.content": "Опубликуйте записи, чтобы сделать их контент доступным через API контента.",
790
+ "tours.contentManager.FinalStep.title": "Время создавать API токены!",
791
+ "tours.contentManager.FinalStep.content": "Теперь, когда вы создали и опубликовали контент, время создавать API токены и настраивать разрешения.",
792
+ "tours.stepCount": "Шаг {currentStep} из {tourLength}",
793
+ "tours.skip": "Пропустить",
794
+ "tours.next": "Далее",
795
+ "tours.gotIt": "Понятно",
796
+ "tours.overview.title": "Откройте для себя ваше приложение!",
797
+ "tours.overview.subtitle": "Следуйте руководству, чтобы получить максимум от Strapi.",
798
+ "tours.overview.close": "Закрыть руководство",
799
+ "tours.overview.tasks": "Ваши задачи",
800
+ "tours.overview.contentTypeBuilder.label": "Создайте вашу схему",
801
+ "tours.overview.contentManager.label": "Создавайте и публикуйте контент",
802
+ "tours.overview.apiTokens.label": "Создайте и скопируйте API токен",
803
+ "tours.overview.strapiCloud.label": "Разверните ваше приложение в Strapi Cloud",
804
+ "tours.overview.strapiCloud.link": "Читать документацию",
805
+ "tours.overview.tour.link": "Начать",
806
+ "tours.overview.tour.done": "Готово",
807
+ "tours.overview.close.description": "Вы уверены, что хотите закрыть руководство?",
808
+ "tours.profile.title": "Руководство",
809
+ "tours.profile.description": "Вы можете сбросить руководство в любое время.",
810
+ "tours.profile.reset": "Сбросить руководство",
811
+ "tours.profile.notification.success.reset": "Руководство сброшено",
812
+ "widget.key-statistics.title": "Статистика проекта",
813
+ "widget.key-statistics.list.admins": "Администраторы",
814
+ "widget.key-statistics.list.apiTokens": "API токены",
815
+ "widget.key-statistics.list.assets": "Ассеты",
816
+ "widget.key-statistics.list.components": "Компоненты",
817
+ "widget.key-statistics.list.contentTypes": "Типы контента",
818
+ "widget.key-statistics.list.entries": "Записи",
819
+ "widget.key-statistics.list.locales": "Локали",
820
+ "widget.key-statistics.list.webhooks": "Вебхуки",
821
+ "widget.profile.title": "Профиль"
757
822
  };
758
823
 
759
824
  export { Analytics, Documentation, Email, Password, Provider, ResetPasswordToken, Role, Username, Users, anErrorOccurred, clearLabel, dark, ru as default, light, or, selectButtonTitle, skipToContent, submit };
@@ -1 +1 @@
1
- {"version":3,"file":"ru.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ru.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}