@strapi/i18n 5.10.3 → 5.10.4

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.
@@ -8,7 +8,7 @@ var symbols = require('@strapi/icons/symbols');
8
8
  var reactIntl = require('react-intl');
9
9
  var icons = require('@strapi/icons');
10
10
  var yup = require('yup');
11
- var index = require('./index-BJ8w94vU.js');
11
+ var index = require('./index-Cek49tl0.js');
12
12
  require('lodash/get');
13
13
  require('styled-components');
14
14
  require('@reduxjs/toolkit/query');
@@ -817,4 +817,4 @@ const ProtectedSettingsPage = ()=>{
817
817
 
818
818
  exports.ProtectedSettingsPage = ProtectedSettingsPage;
819
819
  exports.SettingsPage = SettingsPage;
820
- //# sourceMappingURL=SettingsPage-C6nUo4WG.js.map
820
+ //# sourceMappingURL=SettingsPage-CcMc5fyu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPage-C6nUo4WG.js","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/CreateLocale.tsx","../../../admin/src/components/DeleteLocale.tsx","../../../admin/src/components/EditLocale.tsx","../../../admin/src/components/LocaleTable.tsx","../../../admin/src/pages/SettingsPage.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type ApiError, type UnknownApiError } from '@strapi/admin/strapi-admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n","import * as React from 'react';\n\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { Dialog, IconButton } from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDeleteLocaleMutation } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DeleteLocaleProps extends Locale {}\n\nconst DeleteLocale = ({ id, name }: DeleteLocaleProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [visible, setVisible] = React.useState(false);\n\n const [deleteLocale] = useDeleteLocaleMutation();\n const handleConfirm = async () => {\n try {\n const res = await deleteLocale(id);\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.delete.success'),\n defaultMessage: 'Deleted locale',\n }),\n });\n\n setVisible(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Dialog.Root open={visible} onOpenChange={setVisible}>\n <Dialog.Trigger>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.delete'),\n defaultMessage: 'Delete {name} locale',\n },\n {\n name,\n }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirm} />\n </Dialog.Root>\n );\n};\n\nexport { DeleteLocale };\n","import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n","import * as React from 'react';\n\nimport {\n Flex,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { DeleteLocale } from './DeleteLocale';\nimport { EditLocale, EditModal } from './EditLocale';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * LocaleTable\n * -----------------------------------------------------------------------------------------------*/\n\ntype LocaleTableProps = {\n locales?: Locale[];\n canDelete?: boolean;\n canUpdate?: boolean;\n onDeleteLocale?: (locale: Locale) => void;\n onEditLocale?: (locale: Locale) => void;\n};\n\nconst LocaleTable = ({ locales = [], canDelete, canUpdate }: LocaleTableProps) => {\n const [editLocaleId, setEditLocaleId] = React.useState<Locale['id']>();\n const { formatMessage } = useIntl();\n\n const handleClick = (localeId: Locale['id']) => () => {\n if (canUpdate) {\n setEditLocaleId(localeId);\n }\n };\n\n return (\n <Table colCount={4} rowCount={locales.length + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.id'),\n defaultMessage: 'ID',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.displayName'),\n defaultMessage: 'Display name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.default-locale'),\n defaultMessage: 'Default locale',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>Actions</VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {locales.map((locale) => (\n <React.Fragment key={locale.id}>\n <Tr\n onClick={handleClick(locale.id)}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td>\n <Typography textColor=\"neutral800\">{locale.id}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{locale.name}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {locale.isDefault\n ? formatMessage({\n id: getTranslation('Settings.locales.default'),\n defaultMessage: 'Default',\n })\n : null}\n </Typography>\n </Td>\n <Td>\n <Flex gap={1} justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate && <EditLocale {...locale} />}\n {canDelete && !locale.isDefault && <DeleteLocale {...locale} />}\n </Flex>\n </Td>\n </Tr>\n <EditModal\n {...locale}\n onOpenChange={() => setEditLocaleId(undefined)}\n open={editLocaleId === locale.id}\n />\n </React.Fragment>\n ))}\n </Tbody>\n </Table>\n );\n};\n\nexport { LocaleTable };\nexport type { LocaleTableProps };\n","import * as React from 'react';\n\nimport {\n Page,\n useAPIErrorHandler,\n useNotification,\n useRBAC,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout } from '@strapi/design-system';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { CreateLocale } from '../components/CreateLocale';\nimport { LocaleTable } from '../components/LocaleTable';\nimport { PERMISSIONS } from '../constants';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nconst SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { data: locales, isLoading: isLoadingLocales, error } = useGetLocalesQuery();\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate, canCreate, canDelete },\n } = useRBAC(PERMISSIONS);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const isLoading = isLoadingLocales || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !Array.isArray(locales)) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Layouts.Header\n primaryAction={<CreateLocale disabled={!canCreate} />}\n title={formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n })}\n subtitle={formatMessage({\n id: getTranslation('Settings.list.description'),\n defaultMessage: 'Configure the settings',\n })}\n />\n <Layouts.Content>\n {locales.length > 0 ? (\n <LocaleTable locales={locales} canDelete={canDelete} canUpdate={canUpdate} />\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width={undefined} height={undefined} />}\n content={formatMessage({\n id: getTranslation('Settings.list.empty.title'),\n defaultMessage: 'There are no locales',\n })}\n action={<CreateLocale disabled={!canCreate} variant=\"secondary\" />}\n />\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ProtectedSettingsPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.read}>\n <SettingsPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedSettingsPage, SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint","DeleteLocale","deleteLocale","useDeleteLocaleMutation","handleConfirm","Dialog","IconButton","Trash","ConfirmDialog","onConfirm","EditLocale","props","_Fragment","Pencil","EditModal","updateLocale","useUpdateLocaleMutation","_code","LocaleTable","locales","canDelete","canUpdate","editLocaleId","setEditLocaleId","handleClick","localeId","Table","colCount","rowCount","length","Thead","Tr","Th","textColor","VisuallyHidden","Tbody","Fragment","style","cursor","Td","e","stopPropagation","SettingsPage","isLoading","isLoadingLocales","useGetLocalesQuery","isLoadingRBAC","allowedActions","canCreate","useRBAC","PERMISSIONS","Page","Loading","Main","tabIndex","Layouts","primaryAction","title","subtitle","EmptyStateLayout","icon","EmptyDocuments","width","height","content","action","ProtectedSettingsPage","Protect","permissions","read"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,mBAAmB,CAACC,KAAAA,GAAAA;IACxB,OAAOA,KAAAA,CAAMC,IAAI,KAAKC,SAAAA;AACxB,CAAA;;ACoCA,MAAMC,eAAe,CAAC,EAAEC,QAAQ,EAAEC,OAAAA,GAAU,SAAS,EAAqB,GAAA;IACxE,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,qBACEC,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAACC,IAAMP,EAAAA,OAAAA;QAASQ,YAAcP,EAAAA,UAAAA;;AACvC,0BAAAQ,cAAA,CAACJ,mBAAMK,OAAO,EAAA;AACZ,gBAAA,QAAA,gBAAAD,cAACE,CAAAA,mBAAAA,EAAAA;oBACCd,OAASA,EAAAA,OAAAA;oBACTD,QAAUA,EAAAA,QAAAA;AACVgB,oBAAAA,SAAAA,gBAAWH,cAACI,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACZC,oBAAAA,OAAAA,EAAS,IAAMb,UAAW,CAAA,IAAA,CAAA;oBAC1Bc,IAAK,EAAA,GAAA;8BAEJjB,aAAc,CAAA;AACbkB,wBAAAA,EAAAA,EAAIC,oBAAe,CAAA,2BAAA,CAAA;wBACnBC,cAAgB,EAAA;AAClB,qBAAA;;;0BAGJT,cAACU,CAAAA,WAAAA,EAAAA;AAAYC,gBAAAA,OAAAA,EAAS,IAAMnB,UAAW,CAAA,KAAA;;;;AAG7C,CAAA;AAEA;;AAEkG,qGAElG,MAAMoB,aAAgBC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvCC,IAAAA,IAAAA,EAAMH,eAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAGC,QAAQ,CAAC;QACrCZ,EAAI,EAAA,0CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACAzB,IAAAA,IAAAA,EAAM6B,eACHI,MAAM,EAAA,CACNC,QAAQ,EACRE,CAAAA,GAAG,CAAC,EAAI,EAAA;QACPb,EAAI,EAAA,8CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCU,QAAQ,CAAC;QACRZ,EAAI,EAAA,mDAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACFY,IAAAA,SAAAA,EAAWR,eAAIS,OAAO;AACxB,CAAA,CAAA;AAIA,MAAMC,iBAAoB,GAAA;IACxBP,IAAM,EAAA,EAAA;IACNhC,IAAM,EAAA,EAAA;IACNqC,SAAW,EAAA;AACb,CAAA;AAMA,MAAMX,WAAc,GAAA,CAAC,EAAEC,OAAO,EAAoB,GAAA;AAChD,IAAA,MAAMa,OAAUC,GAAAA,kBAAAA,EAAAA;IAChB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,8BAAAA,EAAAA;IACJ,MAAM,CAACC,aAAa,GAAGC,6BAAAA,EAAAA;IACvB,MAAM,EAAE7C,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM6C,qBAAqBC,mBAAQ,CAAA,aAAA,EAAe,CAACC,KAAAA,GAAUA,MAAMF,kBAAkB,CAAA;IAErF,MAAMG,YAAAA,GAAe,OAAOC,MAAoBC,EAAAA,OAAAA,GAAAA;QAC9C,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMR,YAAaM,CAAAA,MAAAA,CAAAA;AAE/B,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClB,IAAI3D,gBAAAA,CAAiB2D,IAAI1D,KAAK,CAAA,IAAK0D,IAAI1D,KAAK,CAACC,IAAI,KAAK,iBAAmB,EAAA;AACvEwD,oBAAAA,OAAAA,CAAQE,SAAS,CAACX,sBAAuBU,CAAAA,GAAAA,CAAI1D,KAAK,CAAA,CAAA;iBAC7C,MAAA;oBACL2C,kBAAmB,CAAA;wBAAEiB,IAAM,EAAA,QAAA;wBAAUC,OAASf,EAAAA,cAAAA,CAAeY,IAAI1D,KAAK;AAAE,qBAAA,CAAA;AAC1E;AAEA,gBAAA;AACF;YAEA2C,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASvD,aAAc,CAAA;AACrBkB,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,uCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA0B,YAAAA,kBAAAA,EAAAA;AACAxB,YAAAA,OAAAA,EAAAA;AACF,SAAA,CAAE,OAAOkC,GAAK,EAAA;YACZnB,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASvD,aAAc,CAAA;oBACrBkB,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACET,cAAA,CAACJ,mBAAMkD,OAAO,EAAA;AACZ,QAAA,QAAA,gBAAAnD,eAACoD,CAAAA,gBAAAA,EAAAA;YACCC,MAAO,EAAA,MAAA;YACPC,aAAe1B,EAAAA,iBAAAA;YACf2B,gBAAkBtC,EAAAA,aAAAA;YAClBuC,QAAUb,EAAAA,YAAAA;;AAEV,8BAAAtC,cAAA,CAACJ,mBAAMwD,MAAM,EAAA;4CACXpD,cAAA,CAACJ,mBAAMyD,KAAK,EAAA;kCACThE,aAAc,CAAA;AACbkB,4BAAAA,EAAAA,EAAIC,oBAAe,CAAA,2BAAA,CAAA;4BACnBC,cAAgB,EAAA;AAClB,yBAAA;;;AAGJ,8BAAAT,cAAA,CAACJ,mBAAM0D,IAAI,EAAA;4CACT3D,eAAA,CAAC4D,kBAAK1D,IAAI,EAAA;wBAACT,OAAQ,EAAA,QAAA;wBAASoE,YAAa,EAAA,OAAA;;0CACvC7D,eAAC8D,CAAAA,iBAAAA,EAAAA;gCAAKC,cAAe,EAAA,eAAA;;kDACnB1D,cAAC2D,CAAAA,uBAAAA,EAAAA;wCAAWC,GAAI,EAAA,IAAA;wCAAKxE,OAAQ,EAAA,MAAA;wCAAOmB,EAAIiB,EAAAA,OAAAA;kDACrCnC,aAAc,CAAA;AACbkB,4CAAAA,EAAAA,EAAIC,oBAAe,CAAA,8BAAA,CAAA;4CACnBC,cAAgB,EAAA;AAClB,yCAAA;;AAEF,kDAAAd,eAAA,CAAC4D,kBAAKM,IAAI,EAAA;wCAACC,iBAAiBtC,EAAAA,OAAAA;;AAC1B,0DAAAxB,cAAA,CAACuD,kBAAKtD,OAAO,EAAA;gDAAC8D,KAAM,EAAA,OAAA;0DACjB1E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,oBAAe,CAAA,6BAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;AAEF,0DAAAT,cAAA,CAACuD,kBAAKtD,OAAO,EAAA;gDAAC8D,KAAM,EAAA,UAAA;0DACjB1E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,oBAAe,CAAA,iCAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;;;;;0CAKNT,cAACgE,CAAAA,oBAAAA,EAAAA,EAAAA,CAAAA;0CAEDrE,eAACsE,CAAAA,gBAAAA,EAAAA;gCAAIC,UAAY,EAAA,CAAA;gCAAGC,aAAe,EAAA,CAAA;;AACjC,kDAAAnE,cAAA,CAACuD,kBAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,OAAA;AAClB,wCAAA,QAAA,gBAAA/D,cAACoE,CAAAA,QAAAA,EAAAA,EAAAA;;AAEH,kDAAApE,cAAA,CAACuD,kBAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,UAAA;AAClB,wCAAA,QAAA,gBAAA/D,cAACqE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;;AAKT,8BAAA1E,eAAA,CAACC,mBAAM0E,MAAM,EAAA;;AACX,sCAAAtE,cAAA,CAACJ,mBAAM2E,KAAK,EAAA;AACV,4BAAA,QAAA,gBAAAvE,cAACE,CAAAA,mBAAAA,EAAAA;gCAAOd,OAAQ,EAAA,UAAA;0CACbC,aAAc,CAAA;oCAAEkB,EAAI,EAAA,8BAAA;oCAAgCE,cAAgB,EAAA;AAAS,iCAAA;;;sCAGlFT,cAACwE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;AAKX,CAAA;AAEA;;AAEkG,qGAElG,MAAMA,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEnF,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMmF,eAAeC,mBAAQ,CAAA,cAAA,EAAgB,CAACrC,KAAAA,GAAUA,MAAMoC,YAAY,CAAA;AAC1E,IAAA,MAAME,WAAWD,mBAAQ,CAAA,cAAA,EAAgB,CAACrC,KAAAA,GAAUA,MAAMsC,QAAQ,CAAA;AAElE,IAAA,qBACE3E,cAACE,CAAAA,mBAAAA,EAAAA;QAAOyC,IAAK,EAAA,QAAA;AAASxC,QAAAA,SAAAA,gBAAWH,cAAC4E,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;AAAUzF,QAAAA,QAAAA,EAAUsF,gBAAgB,CAACE,QAAAA;kBACpEtF,aAAc,CAAA;YAAEkB,EAAI,EAAA,aAAA;YAAeE,cAAgB,EAAA;AAAO,SAAA;;AAGjE,CAAA;AAUA,MAAM2D,QAAW,GAAA,CAAC,EAAES,IAAAA,GAAO,QAAQ,EAAiB,GAAA;IAClD,MAAM,EAAExF,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEoC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,8BAAAA,EAAAA;AAEpD,IAAA,MAAM,EAAE8C,IAAMC,EAAAA,cAAc,EAAEhG,KAAK,EAAE,GAAGiG,+BAAAA,EAAAA;AAExCvF,IAAAA,gBAAAA,CAAMwF,SAAS,CAAC,IAAA;AACd,QAAA,IAAIlG,KAAO,EAAA;YACT2C,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASf,cAAe9C,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAO8C,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,IAAI,CAACwD,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;QAClC,OAAO,IAAA;AACT;AAEA,IAAA,MAAMK,UAAUL,cAAeM,CAAAA,GAAG,CAAC,CAACC,UAAY;AAC9CC,YAAAA,KAAAA,EAAOD,OAAOtG,IAAI;AAClB+E,YAAAA,KAAAA,EAAOuB,OAAOtE;SAChB,CAAA,CAAA;AAEA,IAAA,MAAMwE,cAAiB,GAAA;AACrB,QAAA;AACErG,YAAAA,QAAAA,EAAU0F,IAAS,KAAA,QAAA;YACnBU,KAAO,EAAA;AACLhF,gBAAAA,EAAAA,EAAIC,oBAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAzB,IAAM,EAAA,MAAA;AACNoG,YAAAA,OAAAA;YACAK,WAAa,EAAA;gBACXlF,EAAI,EAAA,+BAAA;gBACJE,cAAgB,EAAA;AAClB,aAAA;YACAU,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNqC,IAAM,EAAA;AACR,SAAA;AACA,QAAA;YACE+C,IAAM,EAAA;AACJnF,gBAAAA,EAAAA,EAAIC,oBAAe,CAAA,sDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACA8E,KAAO,EAAA;AACLhF,gBAAAA,EAAAA,EAAIC,oBAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAzB,IAAM,EAAA,MAAA;YACNmC,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNqC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGrG,aAAcsG,CAAAA,KAAAA,CAAMD,IAAI,CAAIzG,GAAAA,SAAAA;YAC/CsG,KAAOlG,EAAAA,aAAAA,CAAcsG,MAAMJ,KAAK,CAAA;AAChCE,YAAAA,WAAAA,EAAaE,MAAMF,WAAW,GAAGpG,aAAcsG,CAAAA,KAAAA,CAAMF,WAAW,CAAIxG,GAAAA;SACtE,CAAA,CAAA;IAEA,qBACEe,cAAA,CAAC4F,kBAAK/F,IAAI,EAAA;QAACgG,GAAK,EAAA,CAAA;kBACbL,cAAeH,CAAAA,GAAG,CAAC,CAAC,EAAE/E,IAAI,EAAE,GAAGqF,KAAO,EAAA,iBACrC3F,cAAC4F,CAAAA,iBAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAKzF,EAAAA,IAAAA;gBAAM0F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAAjG,cAACkG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGP;;AADJA,aAAAA,EAAAA,KAAAA,CAAM3G,IAAI,CAAA;;AAMlC,CAAA;AAUA,MAAMqF,YAAe,GAAA,CAAC,EAAE8B,eAAe,EAAqB,GAAA;IAC1D,MAAM,EAAE9G,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAM8G,IAAO,GAAA;AACX,QAAA;YACEjH,QAAUgH,EAAAA,eAAAA;YACVT,IAAM,EAAA;AACJnF,gBAAAA,EAAAA,EAAIC,oBAAe,CAAA,mDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACA8E,KAAO,EAAA;AACLhF,gBAAAA,EAAAA,EAAIC,oBAAe,CAAA,8CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAzB,IAAM,EAAA,WAAA;YACNsB,IAAM,EAAA,CAAA;YACNqC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGrG,aAAcsG,CAAAA,KAAAA,CAAMD,IAAI,CAAIzG,GAAAA,SAAAA;YAC/CsG,KAAOlG,EAAAA,aAAAA,CAAcsG,MAAMJ,KAAK;SAClC,CAAA,CAAA;IAEA,qBACEvF,cAAA,CAAC4F,kBAAK/F,IAAI,EAAA;QAACgG,GAAK,EAAA,CAAA;kBACbO,IAAKf,CAAAA,GAAG,CAAC,CAAC,EAAE/E,IAAI,EAAE,GAAGqF,KAAO,EAAA,iBAC3B3F,cAAC4F,CAAAA,iBAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAKzF,EAAAA,IAAAA;gBAAM0F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAAjG,cAACkG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGP;;AADJA,aAAAA,EAAAA,KAAAA,CAAM3G,IAAI,CAAA;;AAMlC,CAAA;AAEA;;qGAIA,MAAMkH,eAAe,CAACP,KAAAA,GAAAA;AACpB,IAAA,OAAQA,MAAMhD,IAAI;AAChB;;;AAGC,QACD,KAAK,aAAA;AACH,YAAA,qBAAO3C,cAACqG,CAAAA,gBAAAA,EAAAA;AAAkB,gBAAA,GAAGV;;AAC/B,QAAA;AACE,YAAA,qBAAO3F,cAACsG,CAAAA,yBAAAA,EAAAA;AAAe,gBAAA,GAAGX;;AAC9B;AACF,CAAA;AAEA,MAAMU,mBAAmB,CAAC,EACxBlH,QAAQ,EACRuG,IAAI,EACJH,KAAK,EACLvG,IAAI,EACJoG,OAAO,EACPK,WAAW,EACXtE,QAAQ,EACqC,GAAA;IAC7C,MAAM,EAAE4C,KAAK,EAAEhF,KAAK,EAAEwH,QAAQ,EAAE,GAAGC,oBAASxH,CAAAA,IAAAA,CAAAA;AAC5C,IAAA,MAAM,EAAE8F,IAAAA,EAAMC,cAAiB,GAAA,EAAE,EAAE,GAAGC,+BAAAA,EAAAA;AAEtC,IAAA,MAAMyB,eAAe,CAAC1C,KAAAA,GAAAA;QACpB,IAAImB,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;;YAEjC,MAAMO,MAAAA,GAASP,eAAe2B,IAAI,CAAC,CAACpB,MAAWA,GAAAA,MAAAA,CAAOtE,IAAI,KAAK+C,KAAAA,CAAAA;AAE/DwC,YAAAA,QAAAA,CAASvH,IAAM+E,EAAAA,KAAAA,CAAAA;;YAEfwC,QAAS,CAAA,MAAA,EAAQjB,OAAOtG,IAAI,CAAA;SACvB,MAAA;AACLuH,YAAAA,QAAAA,CAASvH,IAAM+E,EAAAA,KAAAA,CAAAA;AACjB;AACF,KAAA;IAEA,qBACEpE,eAAA,CAACgH,mBAAM9G,IAAI,EAAA;QAACd,KAAOA,EAAAA,KAAAA;QAAO2G,IAAMA,EAAAA,IAAAA;QAAM1G,IAAMA,EAAAA,IAAAA;QAAMmC,QAAUA,EAAAA,QAAAA;;AAC1D,0BAAAnB,cAAA,CAAC2G,mBAAMC,KAAK,EAAA;AAAErB,gBAAAA,QAAAA,EAAAA;;0BACdvF,cAAC6G,CAAAA,yBAAAA,EAAAA;gBACC1H,QAAUA,EAAAA,QAAAA;;gBAEVoH,QAAUE,EAAAA,YAAAA;gBACVhB,WAAaA,EAAAA,WAAAA;gBACb1B,KAAOA,EAAAA,KAAAA;AAENqB,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQC,GAAG,CAAC,CAACyB,MAAAA,iBACZ9G,cAAC+G,CAAAA,+BAAAA,EAAAA;AAAmBhD,wBAAAA,KAAAA,EAAO+C,OAAO/C,KAAK;AACpC+C,wBAAAA,QAAAA,EAAAA,MAAAA,CAAOvB;AADoCuB,qBAAAA,EAAAA,MAAAA,CAAO/C,KAAK,CAAA;;AAK9D,0BAAA/D,cAAA,CAAC2G,mBAAMK,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAAhH,cAAA,CAAC2G,mBAAMM,IAAI,EAAA,EAAA;;;AAGjB,CAAA;;AChZA,MAAMC,eAAe,CAAC,EAAE3G,EAAE,EAAEvB,IAAI,EAAqB,GAAA;IACnD,MAAM,EAAEK,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEoC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,8BAAAA,EAAAA;AAEpD,IAAA,MAAM,CAACzC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,MAAM,CAACyH,aAAa,GAAGC,6BAAAA,EAAAA;AACvB,IAAA,MAAMC,aAAgB,GAAA,UAAA;QACpB,IAAI;YACF,MAAM5E,GAAAA,GAAM,MAAM0E,YAAa5G,CAAAA,EAAAA,CAAAA;AAE/B,YAAA,IAAI,WAAWkC,GAAK,EAAA;gBAClBf,kBAAmB,CAAA;oBAAEiB,IAAM,EAAA,QAAA;oBAAUC,OAASf,EAAAA,cAAAA,CAAeY,IAAI1D,KAAK;AAAE,iBAAA,CAAA;AAExE,gBAAA;AACF;YAEA2C,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASvD,aAAc,CAAA;AACrBkB,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,uCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;YAEAjB,UAAW,CAAA,KAAA,CAAA;AACb,SAAA,CAAE,OAAOqD,GAAK,EAAA;YACZnB,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASvD,aAAc,CAAA;oBACrBkB,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACEd,eAAA,CAAC2H,oBAAOzH,IAAI,EAAA;QAACC,IAAMP,EAAAA,OAAAA;QAASQ,YAAcP,EAAAA,UAAAA;;AACxC,0BAAAQ,cAAA,CAACsH,oBAAOrH,OAAO,EAAA;AACb,gBAAA,QAAA,gBAAAD,cAACuH,CAAAA,uBAAAA,EAAAA;AACClH,oBAAAA,OAAAA,EAAS,IAAMb,UAAW,CAAA,IAAA,CAAA;AAC1B+F,oBAAAA,KAAAA,EAAOlG,aACL,CAAA;AACEkB,wBAAAA,EAAAA,EAAIC,oBAAe,CAAA,8BAAA,CAAA;wBACnBC,cAAgB,EAAA;qBAElB,EAAA;AACEzB,wBAAAA;AACF,qBAAA,CAAA;oBAEFI,OAAQ,EAAA,OAAA;AAER,oBAAA,QAAA,gBAAAY,cAACwH,CAAAA,WAAAA,EAAAA,EAAAA;;;0BAGLxH,cAACyH,CAAAA,yBAAAA,EAAAA;gBAAcC,SAAWL,EAAAA;;;;AAGhC,CAAA;;AC1CA,MAAMM,aAAa,CAACC,KAAAA,GAAAA;IAClB,MAAM,EAAEvI,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,qBACEC,eAAA,CAAAkI,mBAAA,EAAA;;0BACE7H,cAACuH,CAAAA,uBAAAA,EAAAA;AACClH,gBAAAA,OAAAA,EAAS,IAAMb,UAAW,CAAA,IAAA,CAAA;AAC1B+F,gBAAAA,KAAAA,EAAOlG,aACL,CAAA;AACEkB,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,4BAAA,CAAA;oBACnBC,cAAgB,EAAA;iBAElB,EAAA;AACEzB,oBAAAA,IAAAA,EAAM4I,MAAM5I;AACd,iBAAA,CAAA;gBAEFI,OAAQ,EAAA,OAAA;AAER,gBAAA,QAAA,gBAAAY,cAAC8H,CAAAA,YAAAA,EAAAA,EAAAA;;0BAEH9H,cAAC+H,CAAAA,SAAAA,EAAAA;AAAW,gBAAA,GAAGH,KAAK;gBAAE9H,IAAMP,EAAAA,OAAAA;gBAASQ,YAAcP,EAAAA;;;;AAGzD,CAAA;AAaA;;;AAGC,IACD,MAAMuI,SAAAA,GAAY,CAAC,EAAExH,EAAE,EAAES,IAAI,EAAEK,SAAS,EAAErC,IAAI,EAAEc,IAAI,EAAEC,YAAY,EAAkB,GAAA;IAClF,MAAM,EAAE2B,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,8BAAAA,EAAAA;AACJ,IAAA,MAAMG,qBAAqBC,mBAAQ,CAAA,WAAA,EAAa,CAACC,KAAAA,GAAUA,MAAMF,kBAAkB,CAAA;IACnF,MAAM,EAAE9C,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMkC,OAAUC,GAAAA,kBAAAA,EAAAA;IAEhB,MAAM,CAACuG,aAAa,GAAGC,6BAAAA,EAAAA;IACvB,MAAM3F,YAAAA,GAAe,OACnB,EAAEtB,IAAAA,EAAMkH,KAAK,EAAE,GAAGpD,MAAkB,EACpCtC,OAAAA,GAAAA;QAEA,IAAI;AACF;;;UAIA,MAAMC,GAAM,GAAA,MAAMuF,YAAa,CAAA;AAC7BzH,gBAAAA,EAAAA;AACA,gBAAA,GAAGuE;AACL,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWrC,GAAK,EAAA;gBAClB,IAAI3D,gBAAAA,CAAiB2D,IAAI1D,KAAK,CAAA,IAAK0D,IAAI1D,KAAK,CAACC,IAAI,KAAK,iBAAmB,EAAA;AACvEwD,oBAAAA,OAAAA,CAAQE,SAAS,CAACX,sBAAuBU,CAAAA,GAAAA,CAAI1D,KAAK,CAAA,CAAA;iBAC7C,MAAA;oBACL2C,kBAAmB,CAAA;wBAAEiB,IAAM,EAAA,QAAA;wBAAUC,OAASf,EAAAA,cAAAA,CAAeY,IAAI1D,KAAK;AAAE,qBAAA,CAAA;AAC1E;AAEA,gBAAA;AACF;YAEA2C,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASvD,aAAc,CAAA;AACrBkB,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,qCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA0B,YAAAA,kBAAAA,EAAAA;YACApC,YAAa,CAAA,KAAA,CAAA;AACf,SAAA,CAAE,OAAO8C,GAAK,EAAA;YACZnB,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASvD,aAAc,CAAA;oBACrBkB,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACET,cAAA,CAACJ,mBAAMC,IAAI,EAAA;QAACC,IAAMA,EAAAA,IAAAA;QAAMC,YAAcA,EAAAA,YAAAA;gCACpCC,cAAA,CAACJ,mBAAMkD,OAAO,EAAA;AACZ,YAAA,QAAA,gBAAAnD,eAACoD,CAAAA,gBAAAA,EAAAA;gBACCC,MAAO,EAAA,KAAA;gBACPG,QAAUb,EAAAA,YAAAA;gBACVW,aAAe,EAAA;AACbjC,oBAAAA,IAAAA;AACAhC,oBAAAA,IAAAA;AACAqC,oBAAAA;AACF,iBAAA;gBACA6B,gBAAkBtC,EAAAA,aAAAA;;AAElB,kCAAAZ,cAAA,CAACJ,mBAAMwD,MAAM,EAAA;gDACXpD,cAAA,CAACJ,mBAAMyD,KAAK,EAAA;sCACThE,aACC,CAAA;AACEkB,gCAAAA,EAAAA,EAAIC,oBAAe,CAAA,4BAAA,CAAA;gCACnBC,cAAgB,EAAA;6BAElB,EAAA;AACEzB,gCAAAA;AACF,6BAAA;;;AAIN,kCAAAgB,cAAA,CAACJ,mBAAM0D,IAAI,EAAA;gDACT3D,eAAA,CAAC4D,kBAAK1D,IAAI,EAAA;4BAACT,OAAQ,EAAA,QAAA;4BAASoE,YAAa,EAAA,OAAA;;8CACvC7D,eAAC8D,CAAAA,iBAAAA,EAAAA;oCAAKC,cAAe,EAAA,eAAA;;sDACnB1D,cAAC2D,CAAAA,uBAAAA,EAAAA;4CAAWC,GAAI,EAAA,IAAA;4CAAKxE,OAAQ,EAAA,MAAA;4CAAOmB,EAAIiB,EAAAA,OAAAA;sDACrCnC,aAAc,CAAA;AACbkB,gDAAAA,EAAAA,EAAIC,oBAAe,CAAA,8BAAA,CAAA;gDACnBC,cAAgB,EAAA;AAClB,6CAAA;;AAEF,sDAAAd,eAAA,CAAC4D,kBAAKM,IAAI,EAAA;4CAACC,iBAAiBtC,EAAAA,OAAAA;;AAC1B,8DAAAxB,cAAA,CAACuD,kBAAKtD,OAAO,EAAA;oDAAC8D,KAAM,EAAA,OAAA;8DACjB1E,aAAc,CAAA;AACbkB,wDAAAA,EAAAA,EAAIC,oBAAe,CAAA,6BAAA,CAAA;wDACnBC,cAAgB,EAAA;AAClB,qDAAA;;AAEF,8DAAAT,cAAA,CAACuD,kBAAKtD,OAAO,EAAA;oDAAC8D,KAAM,EAAA,UAAA;8DACjB1E,aAAc,CAAA;AACbkB,wDAAAA,EAAAA,EAAIC,oBAAe,CAAA,iCAAA,CAAA;wDACnBC,cAAgB,EAAA;AAClB,qDAAA;;;;;;8CAINT,cAACgE,CAAAA,oBAAAA,EAAAA,EAAAA,CAAAA;8CACDrE,eAACsE,CAAAA,gBAAAA,EAAAA;oCAAIC,UAAY,EAAA,CAAA;oCAAGC,aAAe,EAAA,CAAA;;AACjC,sDAAAnE,cAAA,CAACuD,kBAAKT,OAAO,EAAA;4CAACiB,KAAM,EAAA,OAAA;AAClB,4CAAA,QAAA,gBAAA/D,cAACoE,CAAAA,QAAAA,EAAAA;gDAASS,IAAK,EAAA;;;AAEjB,sDAAA7E,cAAA,CAACuD,kBAAKT,OAAO,EAAA;4CAACiB,KAAM,EAAA,UAAA;AAClB,4CAAA,QAAA,gBAAA/D,cAACqE,CAAAA,YAAAA,EAAAA;gDAAa8B,eAAiB9E,EAAAA;;;;;;;;AAKvC,kCAAA1B,eAAA,CAACC,mBAAM0E,MAAM,EAAA;;AACX,0CAAAtE,cAAA,CAACJ,mBAAM2E,KAAK,EAAA;AACV,gCAAA,QAAA,gBAAAvE,cAACE,CAAAA,mBAAAA,EAAAA;oCAAOd,OAAQ,EAAA,UAAA;8CACbC,aAAc,CAAA;wCAAEkB,EAAI,EAAA,8BAAA;wCAAgCE,cAAgB,EAAA;AAAS,qCAAA;;;0CAGlFT,cAACwE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;;AAMb,CAAA;;AC5KA,MAAM2D,WAAAA,GAAc,CAAC,EAAEC,OAAAA,GAAU,EAAE,EAAEC,SAAS,EAAEC,SAAS,EAAoB,GAAA;AAC3E,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAgB,CAAA,GAAG/I,iBAAMC,QAAQ,EAAA;IACtD,MAAM,EAAEL,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,MAAMmJ,WAAAA,GAAc,CAACC,QAA2B,GAAA,IAAA;AAC9C,YAAA,IAAIJ,SAAW,EAAA;gBACbE,eAAgBE,CAAAA,QAAAA,CAAAA;AAClB;AACF,SAAA;AAEA,IAAA,qBACE/I,eAACgJ,CAAAA,kBAAAA,EAAAA;QAAMC,QAAU,EAAA,CAAA;QAAGC,QAAUT,EAAAA,OAAAA,CAAQU,MAAM,GAAG,CAAA;;0BAC7C9I,cAAC+I,CAAAA,kBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAApJ,eAACqJ,CAAAA,eAAAA,EAAAA;;sCACChJ,cAACiJ,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAjJ,cAAC2D,CAAAA,uBAAAA,EAAAA;gCAAWvE,OAAQ,EAAA,OAAA;gCAAQ8J,SAAU,EAAA,YAAA;0CACnC7J,aAAc,CAAA;AACbkB,oCAAAA,EAAAA,EAAIC,oBAAe,CAAA,yBAAA,CAAA;oCACnBC,cAAgB,EAAA;AAClB,iCAAA;;;sCAGJT,cAACiJ,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAjJ,cAAC2D,CAAAA,uBAAAA,EAAAA;gCAAWvE,OAAQ,EAAA,OAAA;gCAAQ8J,SAAU,EAAA,YAAA;0CACnC7J,aAAc,CAAA;AACbkB,oCAAAA,EAAAA,EAAIC,oBAAe,CAAA,kCAAA,CAAA;oCACnBC,cAAgB,EAAA;AAClB,iCAAA;;;sCAGJT,cAACiJ,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAjJ,cAAC2D,CAAAA,uBAAAA,EAAAA;gCAAWvE,OAAQ,EAAA,OAAA;gCAAQ8J,SAAU,EAAA,YAAA;0CACnC7J,aAAc,CAAA;AACbkB,oCAAAA,EAAAA,EAAIC,oBAAe,CAAA,qCAAA,CAAA;oCACnBC,cAAgB,EAAA;AAClB,iCAAA;;;sCAGJT,cAACiJ,CAAAA,eAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAjJ,cAACmJ,CAAAA,2BAAAA,EAAAA;AAAe,gCAAA,QAAA,EAAA;;;;;;0BAItBnJ,cAACoJ,CAAAA,kBAAAA,EAAAA;AACEhB,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQ/C,GAAG,CAAC,CAACC,MACZ,iBAAA3F,eAAA,CAACF,iBAAM4J,QAAQ,EAAA;;0CACb1J,eAACqJ,CAAAA,eAAAA,EAAAA;gCACC3I,OAASoI,EAAAA,WAAAA,CAAYnD,OAAO/E,EAAE,CAAA;gCAC9B+I,KAAO,EAAA;AAAEC,oCAAAA,MAAAA,EAAQjB,YAAY,SAAY,GAAA;AAAU,iCAAA;;kDAEnDtI,cAACwJ,CAAAA,eAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAxJ,cAAC2D,CAAAA,uBAAAA,EAAAA;4CAAWuF,SAAU,EAAA,YAAA;AAAc5D,4CAAAA,QAAAA,EAAAA,MAAAA,CAAO/E;;;kDAE7CP,cAACwJ,CAAAA,eAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAxJ,cAAC2D,CAAAA,uBAAAA,EAAAA;4CAAWuF,SAAU,EAAA,YAAA;AAAc5D,4CAAAA,QAAAA,EAAAA,MAAAA,CAAOtG;;;kDAE7CgB,cAACwJ,CAAAA,eAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAxJ,cAAC2D,CAAAA,uBAAAA,EAAAA;4CAAWuF,SAAU,EAAA,YAAA;sDACnB5D,MAAOjE,CAAAA,SAAS,GACbhC,aAAc,CAAA;AACZkB,gDAAAA,EAAAA,EAAIC,oBAAe,CAAA,0BAAA,CAAA;gDACnBC,cAAgB,EAAA;6CAElB,CAAA,GAAA;;;kDAGRT,cAACwJ,CAAAA,eAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA7J,eAAC8D,CAAAA,iBAAAA,EAAAA;4CAAKoC,GAAK,EAAA,CAAA;4CAAGnC,cAAe,EAAA,UAAA;4CAAWrD,OAAS,EAAA,CAACoJ,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;;AACtEpB,gDAAAA,SAAAA,kBAAatI,cAAC2H,CAAAA,UAAAA,EAAAA;AAAY,oDAAA,GAAGrC;;AAC7B+C,gDAAAA,SAAAA,IAAa,CAAC/C,MAAAA,CAAOjE,SAAS,kBAAIrB,cAACkH,CAAAA,YAAAA,EAAAA;AAAc,oDAAA,GAAG5B;;;;;;;0CAI3DtF,cAAC+H,CAAAA,SAAAA,EAAAA;AACE,gCAAA,GAAGzC,MAAM;AACVvF,gCAAAA,YAAAA,EAAc,IAAMyI,eAAgBvJ,CAAAA,SAAAA,CAAAA;gCACpCa,IAAMyI,EAAAA,YAAAA,KAAiBjD,OAAO/E;;;AA/Bb+E,qBAAAA,EAAAA,MAAAA,CAAO/E,EAAE,CAAA;;;;AAsCxC,CAAA;;AClGA,MAAMoJ,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEtK,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEoC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,8BAAAA,EAAAA;IACpD,MAAM,EAAE8C,MAAMsD,OAAO,EAAEwB,WAAWC,gBAAgB,EAAE9K,KAAK,EAAE,GAAG+K,wBAAAA,EAAAA;AAC9D,IAAA,MAAM,EACJF,SAAAA,EAAWG,aAAa,EACxBC,gBAAgB,EAAE1B,SAAS,EAAE2B,SAAS,EAAE5B,SAAS,EAAE,EACpD,GAAG6B,mBAAQC,CAAAA,iBAAAA,CAAAA;AAEZ1K,IAAAA,gBAAAA,CAAMwF,SAAS,CAAC,IAAA;AACd,QAAA,IAAIlG,KAAO,EAAA;YACT2C,kBAAmB,CAAA;gBACjBiB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASf,cAAe9C,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAO8C,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,MAAMkI,YAAYC,gBAAoBE,IAAAA,aAAAA;AAEtC,IAAA,IAAIH,SAAW,EAAA;QACb,qBAAO5J,cAAA,CAACoK,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,IAAItL,KAAS,IAAA,CAACmG,KAAMC,CAAAA,OAAO,CAACiD,OAAU,CAAA,EAAA;QACpC,qBAAOpI,cAAA,CAACoK,iBAAKpD,KAAK,EAAA,EAAA,CAAA;AACpB;IAEA,qBACErH,eAAA,CAACyK,iBAAKE,IAAI,EAAA;AAACC,QAAAA,QAAAA,EAAU,CAAC,CAAA;;AACpB,0BAAAvK,cAAA,CAACwK,oBAAQpH,MAAM,EAAA;AACbqH,gBAAAA,aAAAA,gBAAezK,cAACd,CAAAA,YAAAA,EAAAA;AAAaC,oBAAAA,QAAAA,EAAU,CAAC8K;;AACxCS,gBAAAA,KAAAA,EAAOrL,aAAc,CAAA;AACnBkB,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,aAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACAkK,gBAAAA,QAAAA,EAAUtL,aAAc,CAAA;AACtBkB,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,2BAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAT,cAAA,CAACwK,oBAAQ1H,OAAO,EAAA;0BACbsF,OAAQU,CAAAA,MAAM,GAAG,CAAA,iBAChB9I,cAACmI,CAAAA,WAAAA,EAAAA;oBAAYC,OAASA,EAAAA,OAAAA;oBAASC,SAAWA,EAAAA,SAAAA;oBAAWC,SAAWA,EAAAA;mCAEhEtI,cAAC4K,CAAAA,6BAAAA,EAAAA;AACCC,oBAAAA,IAAAA,gBAAM7K,cAAC8K,CAAAA,sBAAAA,EAAAA;wBAAeC,KAAO9L,EAAAA,SAAAA;wBAAW+L,MAAQ/L,EAAAA;;AAChDgM,oBAAAA,OAAAA,EAAS5L,aAAc,CAAA;AACrBkB,wBAAAA,EAAAA,EAAIC,oBAAe,CAAA,2BAAA,CAAA;wBACnBC,cAAgB,EAAA;AAClB,qBAAA,CAAA;AACAyK,oBAAAA,MAAAA,gBAAQlL,cAACd,CAAAA,YAAAA,EAAAA;AAAaC,wBAAAA,QAAAA,EAAU,CAAC8K,SAAAA;wBAAW7K,OAAQ,EAAA;;;;;;AAMhE;AAEA,MAAM+L,qBAAwB,GAAA,IAAA;IAC5B,qBACEnL,cAAA,CAACoK,iBAAKgB,OAAO,EAAA;AAACC,QAAAA,WAAAA,EAAalB,kBAAYmB,IAAI;AACzC,QAAA,QAAA,gBAAAtL,cAAC2J,CAAAA,YAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
1
+ {"version":3,"file":"SettingsPage-CcMc5fyu.js","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/CreateLocale.tsx","../../../admin/src/components/DeleteLocale.tsx","../../../admin/src/components/EditLocale.tsx","../../../admin/src/components/LocaleTable.tsx","../../../admin/src/pages/SettingsPage.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type ApiError, type UnknownApiError } from '@strapi/admin/strapi-admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n","import * as React from 'react';\n\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { Dialog, IconButton } from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDeleteLocaleMutation } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DeleteLocaleProps extends Locale {}\n\nconst DeleteLocale = ({ id, name }: DeleteLocaleProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [visible, setVisible] = React.useState(false);\n\n const [deleteLocale] = useDeleteLocaleMutation();\n const handleConfirm = async () => {\n try {\n const res = await deleteLocale(id);\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.delete.success'),\n defaultMessage: 'Deleted locale',\n }),\n });\n\n setVisible(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Dialog.Root open={visible} onOpenChange={setVisible}>\n <Dialog.Trigger>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.delete'),\n defaultMessage: 'Delete {name} locale',\n },\n {\n name,\n }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirm} />\n </Dialog.Root>\n );\n};\n\nexport { DeleteLocale };\n","import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n","import * as React from 'react';\n\nimport {\n Flex,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { DeleteLocale } from './DeleteLocale';\nimport { EditLocale, EditModal } from './EditLocale';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * LocaleTable\n * -----------------------------------------------------------------------------------------------*/\n\ntype LocaleTableProps = {\n locales?: Locale[];\n canDelete?: boolean;\n canUpdate?: boolean;\n onDeleteLocale?: (locale: Locale) => void;\n onEditLocale?: (locale: Locale) => void;\n};\n\nconst LocaleTable = ({ locales = [], canDelete, canUpdate }: LocaleTableProps) => {\n const [editLocaleId, setEditLocaleId] = React.useState<Locale['id']>();\n const { formatMessage } = useIntl();\n\n const handleClick = (localeId: Locale['id']) => () => {\n if (canUpdate) {\n setEditLocaleId(localeId);\n }\n };\n\n return (\n <Table colCount={4} rowCount={locales.length + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.id'),\n defaultMessage: 'ID',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.displayName'),\n defaultMessage: 'Display name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.default-locale'),\n defaultMessage: 'Default locale',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>Actions</VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {locales.map((locale) => (\n <React.Fragment key={locale.id}>\n <Tr\n onClick={handleClick(locale.id)}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td>\n <Typography textColor=\"neutral800\">{locale.id}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{locale.name}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {locale.isDefault\n ? formatMessage({\n id: getTranslation('Settings.locales.default'),\n defaultMessage: 'Default',\n })\n : null}\n </Typography>\n </Td>\n <Td>\n <Flex gap={1} justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate && <EditLocale {...locale} />}\n {canDelete && !locale.isDefault && <DeleteLocale {...locale} />}\n </Flex>\n </Td>\n </Tr>\n <EditModal\n {...locale}\n onOpenChange={() => setEditLocaleId(undefined)}\n open={editLocaleId === locale.id}\n />\n </React.Fragment>\n ))}\n </Tbody>\n </Table>\n );\n};\n\nexport { LocaleTable };\nexport type { LocaleTableProps };\n","import * as React from 'react';\n\nimport {\n Page,\n useAPIErrorHandler,\n useNotification,\n useRBAC,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout } from '@strapi/design-system';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { CreateLocale } from '../components/CreateLocale';\nimport { LocaleTable } from '../components/LocaleTable';\nimport { PERMISSIONS } from '../constants';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nconst SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { data: locales, isLoading: isLoadingLocales, error } = useGetLocalesQuery();\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate, canCreate, canDelete },\n } = useRBAC(PERMISSIONS);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const isLoading = isLoadingLocales || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !Array.isArray(locales)) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Layouts.Header\n primaryAction={<CreateLocale disabled={!canCreate} />}\n title={formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n })}\n subtitle={formatMessage({\n id: getTranslation('Settings.list.description'),\n defaultMessage: 'Configure the settings',\n })}\n />\n <Layouts.Content>\n {locales.length > 0 ? (\n <LocaleTable locales={locales} canDelete={canDelete} canUpdate={canUpdate} />\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width={undefined} height={undefined} />}\n content={formatMessage({\n id: getTranslation('Settings.list.empty.title'),\n defaultMessage: 'There are no locales',\n })}\n action={<CreateLocale disabled={!canCreate} variant=\"secondary\" />}\n />\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ProtectedSettingsPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.read}>\n <SettingsPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedSettingsPage, SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint","DeleteLocale","deleteLocale","useDeleteLocaleMutation","handleConfirm","Dialog","IconButton","Trash","ConfirmDialog","onConfirm","EditLocale","props","_Fragment","Pencil","EditModal","updateLocale","useUpdateLocaleMutation","_code","LocaleTable","locales","canDelete","canUpdate","editLocaleId","setEditLocaleId","handleClick","localeId","Table","colCount","rowCount","length","Thead","Tr","Th","textColor","VisuallyHidden","Tbody","Fragment","style","cursor","Td","e","stopPropagation","SettingsPage","isLoading","isLoadingLocales","useGetLocalesQuery","isLoadingRBAC","allowedActions","canCreate","useRBAC","PERMISSIONS","Page","Loading","Main","tabIndex","Layouts","primaryAction","title","subtitle","EmptyStateLayout","icon","EmptyDocuments","width","height","content","action","ProtectedSettingsPage","Protect","permissions","read"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { EmptyDocuments } from '@strapi/icons/symbols';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { Plus, Check, Trash, Pencil } from '@strapi/icons';
8
8
  import * as yup from 'yup';
9
- import { g as getTranslation, u as useCreateLocaleMutation, a as useGetDefaultLocalesQuery, b as useDeleteLocaleMutation, c as useUpdateLocaleMutation, d as useGetLocalesQuery, P as PERMISSIONS } from './index-DFBP8lRf.mjs';
9
+ import { g as getTranslation, u as useCreateLocaleMutation, a as useGetDefaultLocalesQuery, b as useDeleteLocaleMutation, c as useUpdateLocaleMutation, d as useGetLocalesQuery, P as PERMISSIONS } from './index-BWv_l535.mjs';
10
10
  import 'lodash/get';
11
11
  import 'styled-components';
12
12
  import '@reduxjs/toolkit/query';
@@ -794,4 +794,4 @@ const ProtectedSettingsPage = ()=>{
794
794
  };
795
795
 
796
796
  export { ProtectedSettingsPage, SettingsPage };
797
- //# sourceMappingURL=SettingsPage-po71SeiR.mjs.map
797
+ //# sourceMappingURL=SettingsPage-g9SsggAu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPage-po71SeiR.mjs","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/CreateLocale.tsx","../../../admin/src/components/DeleteLocale.tsx","../../../admin/src/components/EditLocale.tsx","../../../admin/src/components/LocaleTable.tsx","../../../admin/src/pages/SettingsPage.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type ApiError, type UnknownApiError } from '@strapi/admin/strapi-admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n","import * as React from 'react';\n\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { Dialog, IconButton } from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDeleteLocaleMutation } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DeleteLocaleProps extends Locale {}\n\nconst DeleteLocale = ({ id, name }: DeleteLocaleProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [visible, setVisible] = React.useState(false);\n\n const [deleteLocale] = useDeleteLocaleMutation();\n const handleConfirm = async () => {\n try {\n const res = await deleteLocale(id);\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.delete.success'),\n defaultMessage: 'Deleted locale',\n }),\n });\n\n setVisible(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Dialog.Root open={visible} onOpenChange={setVisible}>\n <Dialog.Trigger>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.delete'),\n defaultMessage: 'Delete {name} locale',\n },\n {\n name,\n }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirm} />\n </Dialog.Root>\n );\n};\n\nexport { DeleteLocale };\n","import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n","import * as React from 'react';\n\nimport {\n Flex,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { DeleteLocale } from './DeleteLocale';\nimport { EditLocale, EditModal } from './EditLocale';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * LocaleTable\n * -----------------------------------------------------------------------------------------------*/\n\ntype LocaleTableProps = {\n locales?: Locale[];\n canDelete?: boolean;\n canUpdate?: boolean;\n onDeleteLocale?: (locale: Locale) => void;\n onEditLocale?: (locale: Locale) => void;\n};\n\nconst LocaleTable = ({ locales = [], canDelete, canUpdate }: LocaleTableProps) => {\n const [editLocaleId, setEditLocaleId] = React.useState<Locale['id']>();\n const { formatMessage } = useIntl();\n\n const handleClick = (localeId: Locale['id']) => () => {\n if (canUpdate) {\n setEditLocaleId(localeId);\n }\n };\n\n return (\n <Table colCount={4} rowCount={locales.length + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.id'),\n defaultMessage: 'ID',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.displayName'),\n defaultMessage: 'Display name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.default-locale'),\n defaultMessage: 'Default locale',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>Actions</VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {locales.map((locale) => (\n <React.Fragment key={locale.id}>\n <Tr\n onClick={handleClick(locale.id)}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td>\n <Typography textColor=\"neutral800\">{locale.id}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{locale.name}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {locale.isDefault\n ? formatMessage({\n id: getTranslation('Settings.locales.default'),\n defaultMessage: 'Default',\n })\n : null}\n </Typography>\n </Td>\n <Td>\n <Flex gap={1} justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate && <EditLocale {...locale} />}\n {canDelete && !locale.isDefault && <DeleteLocale {...locale} />}\n </Flex>\n </Td>\n </Tr>\n <EditModal\n {...locale}\n onOpenChange={() => setEditLocaleId(undefined)}\n open={editLocaleId === locale.id}\n />\n </React.Fragment>\n ))}\n </Tbody>\n </Table>\n );\n};\n\nexport { LocaleTable };\nexport type { LocaleTableProps };\n","import * as React from 'react';\n\nimport {\n Page,\n useAPIErrorHandler,\n useNotification,\n useRBAC,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout } from '@strapi/design-system';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { CreateLocale } from '../components/CreateLocale';\nimport { LocaleTable } from '../components/LocaleTable';\nimport { PERMISSIONS } from '../constants';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nconst SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { data: locales, isLoading: isLoadingLocales, error } = useGetLocalesQuery();\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate, canCreate, canDelete },\n } = useRBAC(PERMISSIONS);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const isLoading = isLoadingLocales || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !Array.isArray(locales)) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Layouts.Header\n primaryAction={<CreateLocale disabled={!canCreate} />}\n title={formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n })}\n subtitle={formatMessage({\n id: getTranslation('Settings.list.description'),\n defaultMessage: 'Configure the settings',\n })}\n />\n <Layouts.Content>\n {locales.length > 0 ? (\n <LocaleTable locales={locales} canDelete={canDelete} canUpdate={canUpdate} />\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width={undefined} height={undefined} />}\n content={formatMessage({\n id: getTranslation('Settings.list.empty.title'),\n defaultMessage: 'There are no locales',\n })}\n action={<CreateLocale disabled={!canCreate} variant=\"secondary\" />}\n />\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ProtectedSettingsPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.read}>\n <SettingsPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedSettingsPage, SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint","DeleteLocale","deleteLocale","useDeleteLocaleMutation","handleConfirm","Dialog","IconButton","Trash","ConfirmDialog","onConfirm","EditLocale","props","_Fragment","Pencil","EditModal","updateLocale","useUpdateLocaleMutation","_code","LocaleTable","locales","canDelete","canUpdate","editLocaleId","setEditLocaleId","handleClick","localeId","Table","colCount","rowCount","length","Thead","Tr","Th","textColor","VisuallyHidden","Tbody","Fragment","style","cursor","Td","e","stopPropagation","SettingsPage","isLoading","isLoadingLocales","useGetLocalesQuery","isLoadingRBAC","allowedActions","canCreate","useRBAC","PERMISSIONS","Page","Loading","Main","tabIndex","Layouts","primaryAction","title","subtitle","EmptyStateLayout","icon","EmptyDocuments","width","height","content","action","ProtectedSettingsPage","Protect","permissions","read"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsPage-g9SsggAu.mjs","sources":["../../../admin/src/utils/baseQuery.ts","../../../admin/src/components/CreateLocale.tsx","../../../admin/src/components/DeleteLocale.tsx","../../../admin/src/components/EditLocale.tsx","../../../admin/src/components/LocaleTable.tsx","../../../admin/src/pages/SettingsPage.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type ApiError, type UnknownApiError } from '@strapi/admin/strapi-admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n","import * as React from 'react';\n\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { Dialog, IconButton } from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDeleteLocaleMutation } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DeleteLocaleProps extends Locale {}\n\nconst DeleteLocale = ({ id, name }: DeleteLocaleProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [visible, setVisible] = React.useState(false);\n\n const [deleteLocale] = useDeleteLocaleMutation();\n const handleConfirm = async () => {\n try {\n const res = await deleteLocale(id);\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.delete.success'),\n defaultMessage: 'Deleted locale',\n }),\n });\n\n setVisible(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Dialog.Root open={visible} onOpenChange={setVisible}>\n <Dialog.Trigger>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.delete'),\n defaultMessage: 'Delete {name} locale',\n },\n {\n name,\n }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirm} />\n </Dialog.Root>\n );\n};\n\nexport { DeleteLocale };\n","import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n","import * as React from 'react';\n\nimport {\n Flex,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { DeleteLocale } from './DeleteLocale';\nimport { EditLocale, EditModal } from './EditLocale';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * LocaleTable\n * -----------------------------------------------------------------------------------------------*/\n\ntype LocaleTableProps = {\n locales?: Locale[];\n canDelete?: boolean;\n canUpdate?: boolean;\n onDeleteLocale?: (locale: Locale) => void;\n onEditLocale?: (locale: Locale) => void;\n};\n\nconst LocaleTable = ({ locales = [], canDelete, canUpdate }: LocaleTableProps) => {\n const [editLocaleId, setEditLocaleId] = React.useState<Locale['id']>();\n const { formatMessage } = useIntl();\n\n const handleClick = (localeId: Locale['id']) => () => {\n if (canUpdate) {\n setEditLocaleId(localeId);\n }\n };\n\n return (\n <Table colCount={4} rowCount={locales.length + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.id'),\n defaultMessage: 'ID',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.displayName'),\n defaultMessage: 'Display name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.default-locale'),\n defaultMessage: 'Default locale',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>Actions</VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {locales.map((locale) => (\n <React.Fragment key={locale.id}>\n <Tr\n onClick={handleClick(locale.id)}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td>\n <Typography textColor=\"neutral800\">{locale.id}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{locale.name}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {locale.isDefault\n ? formatMessage({\n id: getTranslation('Settings.locales.default'),\n defaultMessage: 'Default',\n })\n : null}\n </Typography>\n </Td>\n <Td>\n <Flex gap={1} justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate && <EditLocale {...locale} />}\n {canDelete && !locale.isDefault && <DeleteLocale {...locale} />}\n </Flex>\n </Td>\n </Tr>\n <EditModal\n {...locale}\n onOpenChange={() => setEditLocaleId(undefined)}\n open={editLocaleId === locale.id}\n />\n </React.Fragment>\n ))}\n </Tbody>\n </Table>\n );\n};\n\nexport { LocaleTable };\nexport type { LocaleTableProps };\n","import * as React from 'react';\n\nimport {\n Page,\n useAPIErrorHandler,\n useNotification,\n useRBAC,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout } from '@strapi/design-system';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { CreateLocale } from '../components/CreateLocale';\nimport { LocaleTable } from '../components/LocaleTable';\nimport { PERMISSIONS } from '../constants';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nconst SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { data: locales, isLoading: isLoadingLocales, error } = useGetLocalesQuery();\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate, canCreate, canDelete },\n } = useRBAC(PERMISSIONS);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const isLoading = isLoadingLocales || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !Array.isArray(locales)) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Layouts.Header\n primaryAction={<CreateLocale disabled={!canCreate} />}\n title={formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n })}\n subtitle={formatMessage({\n id: getTranslation('Settings.list.description'),\n defaultMessage: 'Configure the settings',\n })}\n />\n <Layouts.Content>\n {locales.length > 0 ? (\n <LocaleTable locales={locales} canDelete={canDelete} canUpdate={canUpdate} />\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width={undefined} height={undefined} />}\n content={formatMessage({\n id: getTranslation('Settings.list.empty.title'),\n defaultMessage: 'There are no locales',\n })}\n action={<CreateLocale disabled={!canCreate} variant=\"secondary\" />}\n />\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ProtectedSettingsPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.read}>\n <SettingsPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedSettingsPage, SettingsPage };\n"],"names":["isBaseQueryError","error","name","undefined","CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint","DeleteLocale","deleteLocale","useDeleteLocaleMutation","handleConfirm","Dialog","IconButton","Trash","ConfirmDialog","onConfirm","EditLocale","props","_Fragment","Pencil","EditModal","updateLocale","useUpdateLocaleMutation","_code","LocaleTable","locales","canDelete","canUpdate","editLocaleId","setEditLocaleId","handleClick","localeId","Table","colCount","rowCount","length","Thead","Tr","Th","textColor","VisuallyHidden","Tbody","Fragment","style","cursor","Td","e","stopPropagation","SettingsPage","isLoading","isLoadingLocales","useGetLocalesQuery","isLoadingRBAC","allowedActions","canCreate","useRBAC","PERMISSIONS","Page","Loading","Main","tabIndex","Layouts","primaryAction","title","subtitle","EmptyStateLayout","icon","EmptyDocuments","width","height","content","action","ProtectedSettingsPage","Protect","permissions","read"],"mappings":"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"}