{"version":3,"file":"editView.mjs","sources":["../../../admin/src/contentManagerHooks/editView.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport { Flex, Tooltip, VisuallyHidden } from '@strapi/design-system';\nimport { Earth } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { EditFieldLayout, EditLayout } from '@strapi/content-manager/strapi-admin';\ninterface MutateEditViewArgs {\n layout: EditLayout;\n}\n\ntype I18nLayoutOptions = EditLayout['options'] & {\n i18n?: {\n localized?: boolean;\n };\n};\n\nconst hasI18nLayoutOptions = (options: EditLayout['options']): options is I18nLayoutOptions =>\n 'i18n' in options && typeof options.i18n === 'object' && options.i18n !== null;\n\nconst mutateEditViewHook = ({ layout }: MutateEditViewArgs): MutateEditViewArgs => {\n // If i18n isn't explicitly enabled on the content type, then no field can be localized\n if (\n !('i18n' in layout.options) ||\n (typeof layout.options.i18n === 'object' &&\n layout.options.i18n !== null &&\n 'localized' in layout.options.i18n &&\n !layout.options.i18n.localized)\n ) {\n return { layout };\n }\n\n const decorateField = (field: EditFieldLayout) => addLabelActionToField(field, layout);\n\n const components = Object.entries(layout.components).reduce(\n (acc, [key, componentLayout]) => {\n return {\n ...acc,\n [key]: {\n ...componentLayout,\n layout: componentLayout.layout.map((row) => row.map(decorateField)),\n },\n };\n },\n {}\n );\n\n return {\n layout: {\n ...layout,\n components,\n layout: layout.layout.map((panel) => panel.map((row) => row.map(decorateField))),\n },\n } satisfies Pick;\n};\n\nconst isFieldLocalized = (attribute: EditFieldLayout['attribute'], layout: EditLayout) => {\n const contentTypeLocalized =\n hasI18nLayoutOptions(layout.options) && layout.options.i18n?.localized === true;\n\n if (!contentTypeLocalized) {\n return false;\n }\n\n const pluginOptions =\n attribute && typeof attribute === 'object' && 'pluginOptions' in (attribute as object)\n ? (attribute as { pluginOptions?: { i18n?: { localized?: boolean } } }).pluginOptions\n : undefined;\n\n return pluginOptions?.i18n?.localized === true;\n};\n\nconst addLabelActionToField = (field: EditFieldLayout, layout: EditLayout) => {\n const localized = isFieldLocalized(field.attribute, layout);\n\n if (!localized) {\n return field;\n }\n\n const title: MessageDescriptor = {\n id: getTranslation('Field.localized'),\n defaultMessage: 'This value is unique for the selected locale',\n };\n\n return {\n ...field,\n labelAction: ,\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LabelAction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LabelActionProps {\n title: MessageDescriptor;\n}\n\nconst LabelAction = ({ title }: LabelActionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n \n {formatMessage(title)}\n \n \n \n \n );\n};\n\nconst Span = styled(Flex)`\n svg {\n width: 12px;\n height: 12px;\n\n fill: ${({ theme }) => theme.colors.neutral500};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n`;\n\nexport { mutateEditViewHook };\n"],"names":["hasI18nLayoutOptions","options","i18n","mutateEditViewHook","layout","localized","decorateField","field","addLabelActionToField","components","Object","entries","reduce","acc","key","componentLayout","map","row","panel","isFieldLocalized","attribute","contentTypeLocalized","pluginOptions","undefined","title","id","getTranslation","defaultMessage","labelAction","_jsx","LabelAction","formatMessage","useIntl","_jsxs","Span","tag","VisuallyHidden","Tooltip","label","Earth","aria-hidden","focusable","styled","Flex","theme","colors","neutral500"],"mappings":"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"}