@strapi/i18n 5.30.1 → 5.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/BulkLocaleActionModal.js +2 -2
- package/dist/admin/components/BulkLocaleActionModal.js.map +1 -1
- package/dist/admin/components/BulkLocaleActionModal.mjs +2 -2
- package/dist/admin/components/BulkLocaleActionModal.mjs.map +1 -1
- package/dist/admin/components/CMHeaderActions.js +42 -15
- package/dist/admin/components/CMHeaderActions.js.map +1 -1
- package/dist/admin/components/CMHeaderActions.mjs +42 -15
- package/dist/admin/components/CMHeaderActions.mjs.map +1 -1
- package/dist/admin/components/CreateLocale.js +5 -0
- package/dist/admin/components/CreateLocale.js.map +1 -1
- package/dist/admin/components/CreateLocale.mjs +5 -0
- package/dist/admin/components/CreateLocale.mjs.map +1 -1
- package/dist/server/bootstrap.js +22 -8
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +22 -8
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateLocale.mjs","sources":["../../../admin/src/components/CreateLocale.tsx"],"sourcesContent":["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 Combobox,\n ComboboxOption,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\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: 'Locale successfully added',\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 <Combobox disabled={disabled} onChange={handleChange} placeholder={placeholder} value={value}>\n {options.map((option) => (\n <ComboboxOption value={option.value} key={option.value}>\n {option.label}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n"],"names":["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","name","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","isBaseQueryError","error","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","undefined","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","Combobox","option","ComboboxOption","Error","Hint"],"mappings":";;;;;;;;;;;AA2CA,MAAMA,eAAe,CAAC,EAAEC,QAAQ,EAAEC,OAAAA,GAAU,SAAS,EAAqB,GAAA;IACxE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,qBACEC,IAAA,CAACC,MAAMC,IAAI,EAAA;QAACC,IAAMP,EAAAA,OAAAA;QAASQ,YAAcP,EAAAA,UAAAA;;AACvC,0BAAAQ,GAAA,CAACJ,MAAMK,OAAO,EAAA;AACZ,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,MAAAA,EAAAA;oBACCd,OAASA,EAAAA,OAAAA;oBACTD,QAAUA,EAAAA,QAAAA;AACVgB,oBAAAA,SAAAA,gBAAWH,GAACI,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;AACZC,oBAAAA,OAAAA,EAAS,IAAMb,UAAW,CAAA,IAAA,CAAA;oBAC1Bc,IAAK,EAAA,GAAA;8BAEJjB,aAAc,CAAA;AACbkB,wBAAAA,EAAAA,EAAIC,cAAe,CAAA,2BAAA,CAAA;wBACnBC,cAAgB,EAAA;AAClB,qBAAA;;;0BAGJT,GAACU,CAAAA,WAAAA,EAAAA;AAAYC,gBAAAA,OAAAA,EAAS,IAAMnB,UAAW,CAAA,KAAA;;;;AAG7C;AAEA;;AAEkG,2GAE5FoB,aAAgBC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvCC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAGC,QAAQ,CAAC;QACrCZ,EAAI,EAAA,0CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACAW,IAAAA,IAAAA,EAAMP,IACHI,MAAM,EAAA,CACNC,QAAQ,EACRG,CAAAA,GAAG,CAAC,EAAI,EAAA;QACPd,EAAI,EAAA,8CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCU,QAAQ,CAAC;QACRZ,EAAI,EAAA,mDAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACFa,IAAAA,SAAAA,EAAWT,IAAIU,OAAO;AACxB,CAAA;AAIA,MAAMC,iBAAoB,GAAA;IACxBR,IAAM,EAAA,EAAA;IACNI,IAAM,EAAA,EAAA;IACNE,SAAW,EAAA;AACb,CAAA;AAMA,MAAMZ,WAAc,GAAA,CAAC,EAAEC,OAAO,EAAoB,GAAA;AAChD,IAAA,MAAMc,OAAUC,GAAAA,KAAAA,EAAAA;IAChB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,kBAAAA,EAAAA;IACJ,MAAM,CAACC,aAAa,GAAGC,uBAAAA,EAAAA;IACvB,MAAM,EAAE9C,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM8C,qBAAqBC,OAAQ,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,IAAIC,gBAAAA,CAAiBD,IAAIE,KAAK,CAAA,IAAKF,IAAIE,KAAK,CAACxB,IAAI,KAAK,iBAAmB,EAAA;AACvEqB,oBAAAA,OAAAA,CAAQI,SAAS,CAACb,sBAAuBU,CAAAA,GAAAA,CAAIE,KAAK,CAAA,CAAA;iBAC7C,MAAA;oBACLjB,kBAAmB,CAAA;wBAAEmB,IAAM,EAAA,QAAA;wBAAUC,OAASjB,EAAAA,cAAAA,CAAeY,IAAIE,KAAK;AAAE,qBAAA,CAAA;AAC1E;AAEA,gBAAA;AACF;YAEAjB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS1D,aAAc,CAAA;AACrBkB,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,uCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA2B,YAAAA,kBAAAA,EAAAA;AACAzB,YAAAA,OAAAA,EAAAA;AACF,SAAA,CAAE,OAAOqC,GAAK,EAAA;YACZrB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAS1D,aAAc,CAAA;oBACrBkB,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACET,GAAA,CAACJ,MAAMqD,OAAO,EAAA;AACZ,QAAA,QAAA,gBAAAtD,IAACuD,CAAAA,IAAAA,EAAAA;YACCC,MAAO,EAAA,MAAA;YACPC,aAAe5B,EAAAA,iBAAAA;YACf6B,gBAAkBzC,EAAAA,aAAAA;YAClB0C,QAAUf,EAAAA,YAAAA;;AAEV,8BAAAvC,GAAA,CAACJ,MAAM2D,MAAM,EAAA;4CACXvD,GAAA,CAACJ,MAAM4D,KAAK,EAAA;kCACTnE,aAAc,CAAA;AACbkB,4BAAAA,EAAAA,EAAIC,cAAe,CAAA,2BAAA,CAAA;4BACnBC,cAAgB,EAAA;AAClB,yBAAA;;;AAGJ,8BAAAT,GAAA,CAACJ,MAAM6D,IAAI,EAAA;4CACT9D,IAAA,CAAC+D,KAAK7D,IAAI,EAAA;wBAACT,OAAQ,EAAA,QAAA;wBAASuE,YAAa,EAAA,OAAA;;0CACvChE,IAACiE,CAAAA,IAAAA,EAAAA;gCAAKC,cAAe,EAAA,eAAA;;kDACnB7D,GAAC8D,CAAAA,UAAAA,EAAAA;wCAAWC,GAAI,EAAA,IAAA;wCAAK3E,OAAQ,EAAA,MAAA;wCAAOmB,EAAIkB,EAAAA,OAAAA;kDACrCpC,aAAc,CAAA;AACbkB,4CAAAA,EAAAA,EAAIC,cAAe,CAAA,8BAAA,CAAA;4CACnBC,cAAgB,EAAA;AAClB,yCAAA;;AAEF,kDAAAd,IAAA,CAAC+D,KAAKM,IAAI,EAAA;wCAACC,iBAAiBxC,EAAAA,OAAAA;;AAC1B,0DAAAzB,GAAA,CAAC0D,KAAKzD,OAAO,EAAA;gDAACiE,KAAM,EAAA,OAAA;0DACjB7E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,cAAe,CAAA,6BAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;AAEF,0DAAAT,GAAA,CAAC0D,KAAKzD,OAAO,EAAA;gDAACiE,KAAM,EAAA,UAAA;0DACjB7E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,cAAe,CAAA,iCAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;;;;;0CAKNT,GAACmE,CAAAA,OAAAA,EAAAA,EAAAA,CAAAA;0CAEDxE,IAACyE,CAAAA,GAAAA,EAAAA;gCAAIC,UAAY,EAAA,CAAA;gCAAGC,aAAe,EAAA,CAAA;;AACjC,kDAAAtE,GAAA,CAAC0D,KAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,OAAA;AAClB,wCAAA,QAAA,gBAAAlE,GAACuE,CAAAA,QAAAA,EAAAA,EAAAA;;AAEH,kDAAAvE,GAAA,CAAC0D,KAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,UAAA;AAClB,wCAAA,QAAA,gBAAAlE,GAACwE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;;AAKT,8BAAA7E,IAAA,CAACC,MAAM6E,MAAM,EAAA;;AACX,sCAAAzE,GAAA,CAACJ,MAAM8E,KAAK,EAAA;AACV,4BAAA,QAAA,gBAAA1E,GAACE,CAAAA,MAAAA,EAAAA;gCAAOd,OAAQ,EAAA,UAAA;0CACbC,aAAc,CAAA;oCAAEkB,EAAI,EAAA,8BAAA;oCAAgCE,cAAgB,EAAA;AAAS,iCAAA;;;sCAGlFT,GAAC2E,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;AAKX,CAAA;AAEA;;AAEkG,2GAE5FA,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEtF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMsF,eAAeC,OAAQ,CAAA,cAAA,EAAgB,CAACvC,KAAAA,GAAUA,MAAMsC,YAAY,CAAA;AAC1E,IAAA,MAAME,WAAWD,OAAQ,CAAA,cAAA,EAAgB,CAACvC,KAAAA,GAAUA,MAAMwC,QAAQ,CAAA;AAElE,IAAA,qBACE9E,GAACE,CAAAA,MAAAA,EAAAA;QAAO4C,IAAK,EAAA,QAAA;AAAS3C,QAAAA,SAAAA,gBAAWH,GAAC+E,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;AAAU5F,QAAAA,QAAAA,EAAUyF,gBAAgB,CAACE,QAAAA;kBACpEzF,aAAc,CAAA;YAAEkB,EAAI,EAAA,aAAA;YAAeE,cAAgB,EAAA;AAAO,SAAA;;AAGjE;AAUA,MAAM8D,QAAW,GAAA,CAAC,EAAES,IAAAA,GAAO,QAAQ,EAAiB,GAAA;IAClD,MAAM,EAAE3F,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEqC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,kBAAAA,EAAAA;AAEpD,IAAA,MAAM,EAAEgD,IAAMC,EAAAA,cAAc,EAAEtC,KAAK,EAAE,GAAGuC,yBAAAA,EAAAA;AAExC1F,IAAAA,KAAAA,CAAM2F,SAAS,CAAC,IAAA;AACd,QAAA,IAAIxC,KAAO,EAAA;YACTjB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjB,cAAec,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOd,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,IAAI,CAAC0D,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,OAAOrE,IAAI;AAClB8C,YAAAA,KAAAA,EAAOuB,OAAOzE;SAChB,CAAA,CAAA;AAEA,IAAA,MAAM2E,cAAiB,GAAA;AACrB,QAAA;AACExG,YAAAA,QAAAA,EAAU6F,IAAS,KAAA,QAAA;YACnBU,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,MAAA;AACNmE,YAAAA,OAAAA;YACAK,WAAa,EAAA;gBACXrF,EAAI,EAAA,+BAAA;gBACJE,cAAgB,EAAA;AAClB,aAAA;YACAU,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR,SAAA;AACA,QAAA;YACE+C,IAAM,EAAA;AACJtF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,sDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAiF,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,MAAA;YACND,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGxG,aAAcyG,CAAAA,KAAAA,CAAMD,IAAI,CAAIE,GAAAA,SAAAA;YAC/CL,KAAOrG,EAAAA,aAAAA,CAAcyG,MAAMJ,KAAK,CAAA;AAChCE,YAAAA,WAAAA,EAAaE,MAAMF,WAAW,GAAGvG,aAAcyG,CAAAA,KAAAA,CAAMF,WAAW,CAAIG,GAAAA;SACtE,CAAA,CAAA;IAEA,qBACE/F,GAAA,CAACgG,KAAKnG,IAAI,EAAA;QAACoG,GAAK,EAAA,CAAA;kBACbN,cAAeH,CAAAA,GAAG,CAAC,CAAC,EAAElF,IAAI,EAAE,GAAGwF,KAAO,EAAA,iBACrC9F,GAACgG,CAAAA,IAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAK7F,EAAAA,IAAAA;gBAAM8F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAArG,GAACsG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGR;;AADJA,aAAAA,EAAAA,KAAAA,CAAM1E,IAAI,CAAA;;AAMlC;AAUA,MAAMoD,YAAe,GAAA,CAAC,EAAE+B,eAAe,EAAqB,GAAA;IAC1D,MAAM,EAAElH,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMkH,IAAO,GAAA;AACX,QAAA;YACErH,QAAUoH,EAAAA,eAAAA;YACVV,IAAM,EAAA;AACJtF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,mDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAiF,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,8CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,WAAA;YACNd,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGxG,aAAcyG,CAAAA,KAAAA,CAAMD,IAAI,CAAIE,GAAAA,SAAAA;YAC/CL,KAAOrG,EAAAA,aAAAA,CAAcyG,MAAMJ,KAAK;SAClC,CAAA,CAAA;IAEA,qBACE1F,GAAA,CAACgG,KAAKnG,IAAI,EAAA;QAACoG,GAAK,EAAA,CAAA;kBACbO,IAAKhB,CAAAA,GAAG,CAAC,CAAC,EAAElF,IAAI,EAAE,GAAGwF,KAAO,EAAA,iBAC3B9F,GAACgG,CAAAA,IAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAK7F,EAAAA,IAAAA;gBAAM8F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAArG,GAACsG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGR;;AADJA,aAAAA,EAAAA,KAAAA,CAAM1E,IAAI,CAAA;;AAMlC;AAEA;;qGAIA,MAAMkF,eAAe,CAACR,KAAAA,GAAAA;AACpB,IAAA,OAAQA,MAAMhD,IAAI;AAChB;;;AAGC,QACD,KAAK,aAAA;AACH,YAAA,qBAAO9C,GAACyG,CAAAA,gBAAAA,EAAAA;AAAkB,gBAAA,GAAGX;;AAC/B,QAAA;AACE,YAAA,qBAAO9F,GAAC0G,CAAAA,aAAAA,EAAAA;AAAe,gBAAA,GAAGZ;;AAC9B;AACF,CAAA;AAEA,MAAMW,mBAAmB,CAAC,EACxBtH,QAAQ,EACR0G,IAAI,EACJH,KAAK,EACLtE,IAAI,EACJmE,OAAO,EACPK,WAAW,EACXzE,QAAQ,EACqC,GAAA;IAC7C,MAAM,EAAE+C,KAAK,EAAEtB,KAAK,EAAE+D,QAAQ,EAAE,GAAGC,QAASxF,CAAAA,IAAAA,CAAAA;AAC5C,IAAA,MAAM,EAAE6D,IAAAA,EAAMC,cAAiB,GAAA,EAAE,EAAE,GAAGC,yBAAAA,EAAAA;AAEtC,IAAA,MAAM0B,eAAe,CAAC3C,KAAAA,GAAAA;QACpB,IAAImB,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;;YAEjC,MAAMO,MAAAA,GAASP,eAAe4B,IAAI,CAAC,CAACrB,MAAWA,GAAAA,MAAAA,CAAOzE,IAAI,KAAKkD,KAAAA,CAAAA;AAE/DyC,YAAAA,QAAAA,CAASvF,IAAM8C,EAAAA,KAAAA,CAAAA;;YAEfyC,QAAS,CAAA,MAAA,EAAQlB,OAAOrE,IAAI,CAAA;SACvB,MAAA;AACLuF,YAAAA,QAAAA,CAASvF,IAAM8C,EAAAA,KAAAA,CAAAA;AACjB;AACF,KAAA;IAEA,qBACEvE,IAAA,CAACoH,MAAMlH,IAAI,EAAA;QAAC+C,KAAOA,EAAAA,KAAAA;QAAOiD,IAAMA,EAAAA,IAAAA;QAAMzE,IAAMA,EAAAA,IAAAA;QAAMD,QAAUA,EAAAA,QAAAA;;AAC1D,0BAAAnB,GAAA,CAAC+G,MAAMC,KAAK,EAAA;AAAEtB,gBAAAA,QAAAA,EAAAA;;0BACd1F,GAACiH,CAAAA,QAAAA,EAAAA;gBAAS9H,QAAUA,EAAAA,QAAAA;gBAAUwH,QAAUE,EAAAA,YAAAA;gBAAcjB,WAAaA,EAAAA,WAAAA;gBAAa1B,KAAOA,EAAAA,KAAAA;AACpFqB,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQC,GAAG,CAAC,CAAC0B,MAAAA,iBACZlH,GAACmH,CAAAA,cAAAA,EAAAA;AAAejD,wBAAAA,KAAAA,EAAOgD,OAAOhD,KAAK;AAChCgD,wBAAAA,QAAAA,EAAAA,MAAAA,CAAOxB;AADgCwB,qBAAAA,EAAAA,MAAAA,CAAOhD,KAAK,CAAA;;AAK1D,0BAAAlE,GAAA,CAAC+G,MAAMK,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAApH,GAAA,CAAC+G,MAAMM,IAAI,EAAA,EAAA;;;AAGjB,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"CreateLocale.mjs","sources":["../../../admin/src/components/CreateLocale.tsx"],"sourcesContent":["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 Combobox,\n ComboboxOption,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\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: 'Locale successfully added',\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 <Combobox\n disabled={disabled}\n onChange={handleChange}\n onClear={() => handleChange('')}\n placeholder={placeholder}\n value={value}\n autocomplete={{ type: 'list', filter: 'contains' }}\n >\n {options.map((option) => (\n <ComboboxOption value={option.value} key={option.value}>\n {option.label}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n"],"names":["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","name","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","isBaseQueryError","error","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","undefined","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","Combobox","onClear","autocomplete","filter","option","ComboboxOption","Error","Hint"],"mappings":"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"}
|
package/dist/server/bootstrap.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var fp = require('lodash/fp');
|
|
3
4
|
var index = require('./utils/index.js');
|
|
4
5
|
|
|
5
6
|
const registerModelsHooks = ()=>{
|
|
@@ -28,8 +29,15 @@ const registerModelsHooks = ()=>{
|
|
|
28
29
|
return next();
|
|
29
30
|
}
|
|
30
31
|
// Build a populate array for all non localized fields within the schema
|
|
31
|
-
const { getNestedPopulateOfNonLocalizedAttributes } = index.getService('content-types');
|
|
32
|
+
const { getNestedPopulateOfNonLocalizedAttributes, copyNonLocalizedAttributes } = index.getService('content-types');
|
|
32
33
|
const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);
|
|
34
|
+
// Get original data before the update to compare what actually changed
|
|
35
|
+
const originalData = 'documentId' in context.params && context.params.documentId ? await strapi.db.query(schema.uid).findOne({
|
|
36
|
+
where: {
|
|
37
|
+
documentId: context.params.documentId
|
|
38
|
+
},
|
|
39
|
+
populate: attributesToPopulate
|
|
40
|
+
}) : null;
|
|
33
41
|
// Get the result of the document service action
|
|
34
42
|
const result = await next();
|
|
35
43
|
// We may not have received a result with everything populated that we need
|
|
@@ -44,13 +52,19 @@ const registerModelsHooks = ()=>{
|
|
|
44
52
|
} else {
|
|
45
53
|
return result;
|
|
46
54
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
const populatedResult = await strapi.db.query(schema.uid).findOne({
|
|
56
|
+
where: {
|
|
57
|
+
id: resultID
|
|
58
|
+
},
|
|
59
|
+
populate: attributesToPopulate
|
|
60
|
+
});
|
|
61
|
+
const originalFields = copyNonLocalizedAttributes(schema, originalData);
|
|
62
|
+
const currentFields = copyNonLocalizedAttributes(schema, populatedResult);
|
|
63
|
+
// Only sync if there are actual changes to non-localized fields
|
|
64
|
+
const shouldSync = !originalData || Object.keys(currentFields).some((key)=>{
|
|
65
|
+
return !fp.isEqual(currentFields[key], originalFields[key]);
|
|
66
|
+
});
|
|
67
|
+
if (shouldSync) {
|
|
54
68
|
await index.getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);
|
|
55
69
|
}
|
|
56
70
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\nimport { getService } from './utils';\n\nconst registerModelsHooks = () => {\n strapi.db.lifecycles.subscribe({\n models: ['plugin::i18n.locale'],\n\n async afterCreate() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n\n async afterDelete() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n });\n\n strapi.documents.use(async (context, next) => {\n const schema: Schema.ContentType = context.contentType;\n\n if (!['create', 'update', 'discardDraft', 'publish'].includes(context.action)) {\n return next();\n }\n\n if (!getService('content-types').isLocalizedContentType(schema)) {\n return next();\n }\n\n // Build a populate array for all non localized fields within the schema\n const { getNestedPopulateOfNonLocalizedAttributes }
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\nimport { isEqual } from 'lodash/fp';\nimport { getService } from './utils';\n\nconst registerModelsHooks = () => {\n strapi.db.lifecycles.subscribe({\n models: ['plugin::i18n.locale'],\n\n async afterCreate() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n\n async afterDelete() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n });\n\n strapi.documents.use(async (context, next) => {\n const schema: Schema.ContentType = context.contentType;\n\n if (!['create', 'update', 'discardDraft', 'publish'].includes(context.action)) {\n return next();\n }\n\n if (!getService('content-types').isLocalizedContentType(schema)) {\n return next();\n }\n\n // Build a populate array for all non localized fields within the schema\n const { getNestedPopulateOfNonLocalizedAttributes, copyNonLocalizedAttributes } =\n getService('content-types');\n const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);\n\n // Get original data before the update to compare what actually changed\n const originalData =\n 'documentId' in context.params && context.params.documentId\n ? await strapi.db.query(schema.uid).findOne({\n where: { documentId: context.params.documentId },\n populate: attributesToPopulate,\n })\n : null;\n\n // Get the result of the document service action\n const result = (await next()) as any;\n\n // We may not have received a result with everything populated that we need\n // Use the id and populate built from non localized fields to get the full\n // result\n let resultID;\n // TODO: fix bug where an empty array can be returned\n if (Array.isArray(result?.entries) && result.entries[0]?.id) {\n resultID = result.entries[0].id;\n } else if (result?.id) {\n resultID = result.id;\n } else {\n return result;\n }\n\n const populatedResult = await strapi.db.query(schema.uid).findOne({\n where: { id: resultID },\n populate: attributesToPopulate,\n });\n\n const originalFields = copyNonLocalizedAttributes(schema, originalData);\n const currentFields = copyNonLocalizedAttributes(schema, populatedResult);\n\n // Only sync if there are actual changes to non-localized fields\n const shouldSync =\n !originalData ||\n Object.keys(currentFields).some((key) => {\n return !isEqual(currentFields[key], originalFields[key]);\n });\n\n if (shouldSync) {\n await getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);\n }\n\n return result;\n });\n};\n\nexport default async () => {\n const { sendDidInitializeEvent } = getService('metrics');\n const { initDefaultLocale } = getService('locales');\n const { sectionsBuilder, actions, engine } = getService('permissions');\n\n // Data\n await initDefaultLocale();\n\n // Sections Builder\n sectionsBuilder.registerLocalesPropertyHandler();\n\n // Actions\n await actions.registerI18nActions();\n actions.registerI18nActionsHooks();\n actions.updateActionsProperties();\n\n // Engine/Permissions\n engine.registerI18nPermissionsHandlers();\n\n // Hooks & Models\n registerModelsHooks();\n\n // AI Localizations\n getService('ai-localizations').setupMiddleware();\n\n sendDidInitializeEvent();\n};\n"],"names":["registerModelsHooks","strapi","db","lifecycles","subscribe","models","afterCreate","getService","actions","syncSuperAdminPermissionsWithLocales","afterDelete","documents","use","context","next","schema","contentType","includes","action","isLocalizedContentType","getNestedPopulateOfNonLocalizedAttributes","copyNonLocalizedAttributes","attributesToPopulate","uid","originalData","params","documentId","query","findOne","where","populate","result","resultID","Array","isArray","entries","id","populatedResult","originalFields","currentFields","shouldSync","Object","keys","some","key","isEqual","syncNonLocalizedAttributes","sendDidInitializeEvent","initDefaultLocale","sectionsBuilder","engine","registerLocalesPropertyHandler","registerI18nActions","registerI18nActionsHooks","updateActionsProperties","registerI18nPermissionsHandlers","setupMiddleware"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isEqual } from 'lodash/fp';
|
|
1
2
|
import { getService } from './utils/index.mjs';
|
|
2
3
|
|
|
3
4
|
const registerModelsHooks = ()=>{
|
|
@@ -26,8 +27,15 @@ const registerModelsHooks = ()=>{
|
|
|
26
27
|
return next();
|
|
27
28
|
}
|
|
28
29
|
// Build a populate array for all non localized fields within the schema
|
|
29
|
-
const { getNestedPopulateOfNonLocalizedAttributes } = getService('content-types');
|
|
30
|
+
const { getNestedPopulateOfNonLocalizedAttributes, copyNonLocalizedAttributes } = getService('content-types');
|
|
30
31
|
const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);
|
|
32
|
+
// Get original data before the update to compare what actually changed
|
|
33
|
+
const originalData = 'documentId' in context.params && context.params.documentId ? await strapi.db.query(schema.uid).findOne({
|
|
34
|
+
where: {
|
|
35
|
+
documentId: context.params.documentId
|
|
36
|
+
},
|
|
37
|
+
populate: attributesToPopulate
|
|
38
|
+
}) : null;
|
|
31
39
|
// Get the result of the document service action
|
|
32
40
|
const result = await next();
|
|
33
41
|
// We may not have received a result with everything populated that we need
|
|
@@ -42,13 +50,19 @@ const registerModelsHooks = ()=>{
|
|
|
42
50
|
} else {
|
|
43
51
|
return result;
|
|
44
52
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
const populatedResult = await strapi.db.query(schema.uid).findOne({
|
|
54
|
+
where: {
|
|
55
|
+
id: resultID
|
|
56
|
+
},
|
|
57
|
+
populate: attributesToPopulate
|
|
58
|
+
});
|
|
59
|
+
const originalFields = copyNonLocalizedAttributes(schema, originalData);
|
|
60
|
+
const currentFields = copyNonLocalizedAttributes(schema, populatedResult);
|
|
61
|
+
// Only sync if there are actual changes to non-localized fields
|
|
62
|
+
const shouldSync = !originalData || Object.keys(currentFields).some((key)=>{
|
|
63
|
+
return !isEqual(currentFields[key], originalFields[key]);
|
|
64
|
+
});
|
|
65
|
+
if (shouldSync) {
|
|
52
66
|
await getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);
|
|
53
67
|
}
|
|
54
68
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\nimport { getService } from './utils';\n\nconst registerModelsHooks = () => {\n strapi.db.lifecycles.subscribe({\n models: ['plugin::i18n.locale'],\n\n async afterCreate() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n\n async afterDelete() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n });\n\n strapi.documents.use(async (context, next) => {\n const schema: Schema.ContentType = context.contentType;\n\n if (!['create', 'update', 'discardDraft', 'publish'].includes(context.action)) {\n return next();\n }\n\n if (!getService('content-types').isLocalizedContentType(schema)) {\n return next();\n }\n\n // Build a populate array for all non localized fields within the schema\n const { getNestedPopulateOfNonLocalizedAttributes }
|
|
1
|
+
{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Schema } from '@strapi/types';\nimport { isEqual } from 'lodash/fp';\nimport { getService } from './utils';\n\nconst registerModelsHooks = () => {\n strapi.db.lifecycles.subscribe({\n models: ['plugin::i18n.locale'],\n\n async afterCreate() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n\n async afterDelete() {\n await getService('permissions').actions.syncSuperAdminPermissionsWithLocales();\n },\n });\n\n strapi.documents.use(async (context, next) => {\n const schema: Schema.ContentType = context.contentType;\n\n if (!['create', 'update', 'discardDraft', 'publish'].includes(context.action)) {\n return next();\n }\n\n if (!getService('content-types').isLocalizedContentType(schema)) {\n return next();\n }\n\n // Build a populate array for all non localized fields within the schema\n const { getNestedPopulateOfNonLocalizedAttributes, copyNonLocalizedAttributes } =\n getService('content-types');\n const attributesToPopulate = getNestedPopulateOfNonLocalizedAttributes(schema.uid);\n\n // Get original data before the update to compare what actually changed\n const originalData =\n 'documentId' in context.params && context.params.documentId\n ? await strapi.db.query(schema.uid).findOne({\n where: { documentId: context.params.documentId },\n populate: attributesToPopulate,\n })\n : null;\n\n // Get the result of the document service action\n const result = (await next()) as any;\n\n // We may not have received a result with everything populated that we need\n // Use the id and populate built from non localized fields to get the full\n // result\n let resultID;\n // TODO: fix bug where an empty array can be returned\n if (Array.isArray(result?.entries) && result.entries[0]?.id) {\n resultID = result.entries[0].id;\n } else if (result?.id) {\n resultID = result.id;\n } else {\n return result;\n }\n\n const populatedResult = await strapi.db.query(schema.uid).findOne({\n where: { id: resultID },\n populate: attributesToPopulate,\n });\n\n const originalFields = copyNonLocalizedAttributes(schema, originalData);\n const currentFields = copyNonLocalizedAttributes(schema, populatedResult);\n\n // Only sync if there are actual changes to non-localized fields\n const shouldSync =\n !originalData ||\n Object.keys(currentFields).some((key) => {\n return !isEqual(currentFields[key], originalFields[key]);\n });\n\n if (shouldSync) {\n await getService('localizations').syncNonLocalizedAttributes(populatedResult, schema);\n }\n\n return result;\n });\n};\n\nexport default async () => {\n const { sendDidInitializeEvent } = getService('metrics');\n const { initDefaultLocale } = getService('locales');\n const { sectionsBuilder, actions, engine } = getService('permissions');\n\n // Data\n await initDefaultLocale();\n\n // Sections Builder\n sectionsBuilder.registerLocalesPropertyHandler();\n\n // Actions\n await actions.registerI18nActions();\n actions.registerI18nActionsHooks();\n actions.updateActionsProperties();\n\n // Engine/Permissions\n engine.registerI18nPermissionsHandlers();\n\n // Hooks & Models\n registerModelsHooks();\n\n // AI Localizations\n getService('ai-localizations').setupMiddleware();\n\n sendDidInitializeEvent();\n};\n"],"names":["registerModelsHooks","strapi","db","lifecycles","subscribe","models","afterCreate","getService","actions","syncSuperAdminPermissionsWithLocales","afterDelete","documents","use","context","next","schema","contentType","includes","action","isLocalizedContentType","getNestedPopulateOfNonLocalizedAttributes","copyNonLocalizedAttributes","attributesToPopulate","uid","originalData","params","documentId","query","findOne","where","populate","result","resultID","Array","isArray","entries","id","populatedResult","originalFields","currentFields","shouldSync","Object","keys","some","key","isEqual","syncNonLocalizedAttributes","sendDidInitializeEvent","initDefaultLocale","sectionsBuilder","engine","registerLocalesPropertyHandler","registerI18nActions","registerI18nActionsHooks","updateActionsProperties","registerI18nPermissionsHandlers","setupMiddleware"],"mappings":";;;AAIA,MAAMA,mBAAsB,GAAA,IAAA;AAC1BC,IAAAA,MAAAA,CAAOC,EAAE,CAACC,UAAU,CAACC,SAAS,CAAC;QAC7BC,MAAQ,EAAA;AAAC,YAAA;AAAsB,SAAA;QAE/B,MAAMC,WAAAA,CAAAA,GAAAA;AACJ,YAAA,MAAMC,UAAW,CAAA,aAAA,CAAA,CAAeC,OAAO,CAACC,oCAAoC,EAAA;AAC9E,SAAA;QAEA,MAAMC,WAAAA,CAAAA,GAAAA;AACJ,YAAA,MAAMH,UAAW,CAAA,aAAA,CAAA,CAAeC,OAAO,CAACC,oCAAoC,EAAA;AAC9E;AACF,KAAA,CAAA;AAEAR,IAAAA,MAAAA,CAAOU,SAAS,CAACC,GAAG,CAAC,OAAOC,OAASC,EAAAA,IAAAA,GAAAA;QACnC,MAAMC,MAAAA,GAA6BF,QAAQG,WAAW;AAEtD,QAAA,IAAI,CAAC;AAAC,YAAA,QAAA;AAAU,YAAA,QAAA;AAAU,YAAA,cAAA;AAAgB,YAAA;AAAU,SAAA,CAACC,QAAQ,CAACJ,OAAQK,CAAAA,MAAM,CAAG,EAAA;YAC7E,OAAOJ,IAAAA,EAAAA;AACT;AAEA,QAAA,IAAI,CAACP,UAAAA,CAAW,eAAiBY,CAAAA,CAAAA,sBAAsB,CAACJ,MAAS,CAAA,EAAA;YAC/D,OAAOD,IAAAA,EAAAA;AACT;;AAGA,QAAA,MAAM,EAAEM,yCAAyC,EAAEC,0BAA0B,EAAE,GAC7Ed,UAAW,CAAA,eAAA,CAAA;QACb,MAAMe,oBAAAA,GAAuBF,yCAA0CL,CAAAA,MAAAA,CAAOQ,GAAG,CAAA;;QAGjF,MAAMC,YAAAA,GACJ,gBAAgBX,OAAQY,CAAAA,MAAM,IAAIZ,OAAQY,CAAAA,MAAM,CAACC,UAAU,GACvD,MAAMzB,MAAOC,CAAAA,EAAE,CAACyB,KAAK,CAACZ,OAAOQ,GAAG,CAAA,CAAEK,OAAO,CAAC;YACxCC,KAAO,EAAA;gBAAEH,UAAYb,EAAAA,OAAAA,CAAQY,MAAM,CAACC;AAAW,aAAA;YAC/CI,QAAUR,EAAAA;SAEZ,CAAA,GAAA,IAAA;;AAGN,QAAA,MAAMS,SAAU,MAAMjB,IAAAA,EAAAA;;;;QAKtB,IAAIkB,QAAAA;;QAEJ,IAAIC,KAAAA,CAAMC,OAAO,CAACH,MAAQI,EAAAA,OAAAA,CAAAA,IAAYJ,OAAOI,OAAO,CAAC,CAAE,CAAA,EAAEC,EAAI,EAAA;AAC3DJ,YAAAA,QAAAA,GAAWD,MAAOI,CAAAA,OAAO,CAAC,CAAA,CAAE,CAACC,EAAE;SAC1B,MAAA,IAAIL,QAAQK,EAAI,EAAA;AACrBJ,YAAAA,QAAAA,GAAWD,OAAOK,EAAE;SACf,MAAA;YACL,OAAOL,MAAAA;AACT;QAEA,MAAMM,eAAAA,GAAkB,MAAMpC,MAAAA,CAAOC,EAAE,CAACyB,KAAK,CAACZ,MAAOQ,CAAAA,GAAG,CAAEK,CAAAA,OAAO,CAAC;YAChEC,KAAO,EAAA;gBAAEO,EAAIJ,EAAAA;AAAS,aAAA;YACtBF,QAAUR,EAAAA;AACZ,SAAA,CAAA;QAEA,MAAMgB,cAAAA,GAAiBjB,2BAA2BN,MAAQS,EAAAA,YAAAA,CAAAA;QAC1D,MAAMe,aAAAA,GAAgBlB,2BAA2BN,MAAQsB,EAAAA,eAAAA,CAAAA;;QAGzD,MAAMG,UAAAA,GACJ,CAAChB,YACDiB,IAAAA,MAAAA,CAAOC,IAAI,CAACH,aAAAA,CAAAA,CAAeI,IAAI,CAAC,CAACC,GAAAA,GAAAA;YAC/B,OAAO,CAACC,QAAQN,aAAa,CAACK,IAAI,EAAEN,cAAc,CAACM,GAAI,CAAA,CAAA;AACzD,SAAA,CAAA;AAEF,QAAA,IAAIJ,UAAY,EAAA;AACd,YAAA,MAAMjC,UAAW,CAAA,eAAA,CAAA,CAAiBuC,0BAA0B,CAACT,eAAiBtB,EAAAA,MAAAA,CAAAA;AAChF;QAEA,OAAOgB,MAAAA;AACT,KAAA,CAAA;AACF,CAAA;AAEA,gBAAe,CAAA,UAAA;AACb,IAAA,MAAM,EAAEgB,sBAAsB,EAAE,GAAGxC,UAAW,CAAA,SAAA,CAAA;AAC9C,IAAA,MAAM,EAAEyC,iBAAiB,EAAE,GAAGzC,UAAW,CAAA,SAAA,CAAA;IACzC,MAAM,EAAE0C,eAAe,EAAEzC,OAAO,EAAE0C,MAAM,EAAE,GAAG3C,UAAW,CAAA,aAAA,CAAA;;IAGxD,MAAMyC,iBAAAA,EAAAA;;AAGNC,IAAAA,eAAAA,CAAgBE,8BAA8B,EAAA;;AAG9C,IAAA,MAAM3C,QAAQ4C,mBAAmB,EAAA;AACjC5C,IAAAA,OAAAA,CAAQ6C,wBAAwB,EAAA;AAChC7C,IAAAA,OAAAA,CAAQ8C,uBAAuB,EAAA;;AAG/BJ,IAAAA,MAAAA,CAAOK,+BAA+B,EAAA;;AAGtCvD,IAAAA,mBAAAA,EAAAA;;AAGAO,IAAAA,UAAAA,CAAW,oBAAoBiD,eAAe,EAAA;AAE9CT,IAAAA,sBAAAA,EAAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":";AAiFA,wBA0BE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/i18n",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.31.1",
|
|
4
4
|
"description": "Create read and update content in different languages, both from the Admin Panel and from the API",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@reduxjs/toolkit": "1.9.7",
|
|
60
60
|
"@strapi/design-system": "2.0.0-rc.30",
|
|
61
61
|
"@strapi/icons": "2.0.0-rc.30",
|
|
62
|
-
"@strapi/utils": "5.
|
|
62
|
+
"@strapi/utils": "5.31.1",
|
|
63
63
|
"lodash": "4.17.21",
|
|
64
64
|
"qs": "6.11.1",
|
|
65
65
|
"react-intl": "6.6.2",
|
|
@@ -68,11 +68,11 @@
|
|
|
68
68
|
"zod": "3.25.67"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@strapi/admin": "5.
|
|
72
|
-
"@strapi/admin-test-utils": "5.
|
|
73
|
-
"@strapi/content-manager": "5.
|
|
74
|
-
"@strapi/database": "5.
|
|
75
|
-
"@strapi/types": "5.
|
|
71
|
+
"@strapi/admin": "5.31.1",
|
|
72
|
+
"@strapi/admin-test-utils": "5.31.1",
|
|
73
|
+
"@strapi/content-manager": "5.31.1",
|
|
74
|
+
"@strapi/database": "5.31.1",
|
|
75
|
+
"@strapi/types": "5.31.1",
|
|
76
76
|
"@testing-library/react": "15.0.7",
|
|
77
77
|
"@testing-library/user-event": "14.5.2",
|
|
78
78
|
"koa": "2.16.1",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"styled-components": "^6.0.0"
|
|
93
93
|
},
|
|
94
94
|
"engines": {
|
|
95
|
-
"node": ">=
|
|
95
|
+
"node": ">=20.0.0 <=24.x.x",
|
|
96
96
|
"npm": ">=6.0.0"
|
|
97
97
|
},
|
|
98
98
|
"strapi": {
|