@strapi/content-type-builder 5.57.0 → 5.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/admin/components/AIChat/FeedbackModal.js +13 -7
  2. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
  3. package/dist/admin/components/AIChat/FeedbackModal.mjs +14 -8
  4. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/UploadCodeModal.js +12 -6
  6. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -1
  7. package/dist/admin/components/AIChat/UploadCodeModal.mjs +13 -7
  8. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -1
  9. package/dist/admin/components/AIChat/UploadFigmaModal.js +12 -6
  10. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  11. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +13 -7
  12. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +6 -3
  14. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -1
  15. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +7 -4
  16. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/components/Collapsible.js +9 -4
  18. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -1
  19. package/dist/admin/components/AIChat/components/Collapsible.mjs +10 -5
  20. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -1
  21. package/dist/admin/components/AIChat/components/Dropzone.js +13 -6
  22. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -1
  23. package/dist/admin/components/AIChat/components/Dropzone.mjs +14 -7
  24. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -1
  25. package/dist/admin/components/AIChat/components/FloatingPanel.js +11 -4
  26. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -1
  27. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +12 -5
  28. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -1
  29. package/dist/admin/components/AIChat/components/FullScreenImage.js +16 -8
  30. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -1
  31. package/dist/admin/components/AIChat/components/FullScreenImage.mjs +17 -9
  32. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -1
  33. package/dist/admin/components/AIChat/components/Input.js +6 -3
  34. package/dist/admin/components/AIChat/components/Input.js.map +1 -1
  35. package/dist/admin/components/AIChat/components/Input.mjs +7 -4
  36. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -1
  37. package/dist/admin/components/AIChat/components/Messages/Message.js +88 -12
  38. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  39. package/dist/admin/components/AIChat/components/Messages/Message.mjs +87 -13
  40. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  41. package/dist/admin/components/AIChat/components/StepModal.js +44 -17
  42. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -1
  43. package/dist/admin/components/AIChat/components/StepModal.mjs +45 -18
  44. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -1
  45. package/dist/admin/components/AIChat/providers/ChatProvider.js +79 -27
  46. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
  47. package/dist/admin/components/AIChat/providers/ChatProvider.mjs +80 -28
  48. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
  49. package/dist/admin/components/AIChat/providers/SchemaProvider.js +6 -3
  50. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  51. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +7 -4
  52. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  53. package/dist/admin/components/AttributeOptions/AttributeOption.js +2 -2
  54. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  55. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +2 -2
  56. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  57. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.js.map +1 -1
  58. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.mjs.map +1 -1
  59. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.js.map +1 -1
  60. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.mjs.map +1 -1
  61. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +2 -1
  62. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
  63. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +2 -1
  64. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
  65. package/dist/admin/components/DataManager/DataManagerProvider.js +317 -275
  66. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  67. package/dist/admin/components/DataManager/DataManagerProvider.mjs +319 -277
  68. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  69. package/dist/admin/components/DataManager/RenameMigrationModal.js.map +1 -1
  70. package/dist/admin/components/DataManager/RenameMigrationModal.mjs.map +1 -1
  71. package/dist/admin/components/DataManager/reducer.js +53 -4
  72. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  73. package/dist/admin/components/DataManager/reducer.mjs +53 -4
  74. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  75. package/dist/admin/components/DynamicZoneList.js +2 -1
  76. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  77. package/dist/admin/components/DynamicZoneList.mjs +2 -1
  78. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  79. package/dist/admin/components/FormModal/FormModal.js +36 -62
  80. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  81. package/dist/admin/components/FormModal/FormModal.mjs +36 -62
  82. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  83. package/dist/admin/components/FormModal/attributes/ConditionForm.js +2 -1
  84. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  85. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +2 -1
  86. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  87. package/dist/admin/components/FormModal/attributes/types.js +2 -2
  88. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  89. package/dist/admin/components/FormModal/attributes/types.mjs +2 -2
  90. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  91. package/dist/admin/components/FormModal/forms/forms.js +1 -1
  92. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  93. package/dist/admin/components/FormModal/forms/forms.mjs +1 -1
  94. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  95. package/dist/admin/components/GenericInputs.js +2 -1
  96. package/dist/admin/components/GenericInputs.js.map +1 -1
  97. package/dist/admin/components/GenericInputs.mjs +2 -1
  98. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  99. package/dist/admin/components/TabForm.js.map +1 -1
  100. package/dist/admin/components/TabForm.mjs.map +1 -1
  101. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +8 -0
  102. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +20 -0
  103. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +8 -8
  104. package/dist/admin/translations/cs.json.js +0 -2
  105. package/dist/admin/translations/cs.json.js.map +1 -1
  106. package/dist/admin/translations/cs.json.mjs +0 -2
  107. package/dist/admin/translations/cs.json.mjs.map +1 -1
  108. package/dist/admin/translations/de.json.js +0 -2
  109. package/dist/admin/translations/de.json.js.map +1 -1
  110. package/dist/admin/translations/de.json.mjs +0 -2
  111. package/dist/admin/translations/de.json.mjs.map +1 -1
  112. package/dist/admin/translations/en.json.js +0 -2
  113. package/dist/admin/translations/en.json.js.map +1 -1
  114. package/dist/admin/translations/en.json.mjs +0 -2
  115. package/dist/admin/translations/en.json.mjs.map +1 -1
  116. package/dist/admin/translations/ja.json.js +0 -2
  117. package/dist/admin/translations/ja.json.js.map +1 -1
  118. package/dist/admin/translations/ja.json.mjs +0 -2
  119. package/dist/admin/translations/ja.json.mjs.map +1 -1
  120. package/dist/admin/translations/ko.json.js +0 -2
  121. package/dist/admin/translations/ko.json.js.map +1 -1
  122. package/dist/admin/translations/ko.json.mjs +0 -2
  123. package/dist/admin/translations/ko.json.mjs.map +1 -1
  124. package/dist/admin/translations/nl.json.js +0 -2
  125. package/dist/admin/translations/nl.json.js.map +1 -1
  126. package/dist/admin/translations/nl.json.mjs +0 -2
  127. package/dist/admin/translations/nl.json.mjs.map +1 -1
  128. package/dist/admin/translations/pl.json.js +0 -2
  129. package/dist/admin/translations/pl.json.js.map +1 -1
  130. package/dist/admin/translations/pl.json.mjs +0 -2
  131. package/dist/admin/translations/pl.json.mjs.map +1 -1
  132. package/dist/admin/translations/ru.json.js +0 -2
  133. package/dist/admin/translations/ru.json.js.map +1 -1
  134. package/dist/admin/translations/ru.json.mjs +0 -2
  135. package/dist/admin/translations/ru.json.mjs.map +1 -1
  136. package/dist/admin/translations/sk.json.js +0 -2
  137. package/dist/admin/translations/sk.json.js.map +1 -1
  138. package/dist/admin/translations/sk.json.mjs +0 -2
  139. package/dist/admin/translations/sk.json.mjs.map +1 -1
  140. package/dist/admin/utils/folderTelemetry.js.map +1 -1
  141. package/dist/admin/utils/folderTelemetry.mjs.map +1 -1
  142. package/dist/admin/utils/formAPI.js.map +1 -1
  143. package/dist/admin/utils/formAPI.mjs.map +1 -1
  144. package/dist/server/controllers/validation/schema.js +3 -2
  145. package/dist/server/controllers/validation/schema.js.map +1 -1
  146. package/dist/server/controllers/validation/schema.mjs +4 -3
  147. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  148. package/dist/server/register.js.map +1 -1
  149. package/dist/server/register.mjs.map +1 -1
  150. package/dist/server/services/migration-builder/index.js.map +1 -1
  151. package/dist/server/services/migration-builder/index.mjs.map +1 -1
  152. package/dist/server/services/schema.js +87 -1
  153. package/dist/server/services/schema.js.map +1 -1
  154. package/dist/server/services/schema.mjs +87 -1
  155. package/dist/server/services/schema.mjs.map +1 -1
  156. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  157. package/dist/server/src/register.d.ts.map +1 -1
  158. package/dist/server/src/services/migration-builder/index.d.ts.map +1 -1
  159. package/dist/server/src/services/schema-builder/types.d.ts.map +1 -1
  160. package/dist/server/src/services/schema.d.ts.map +1 -1
  161. package/dist/server/src/utils/uid-target.d.ts +18 -0
  162. package/dist/server/src/utils/uid-target.d.ts.map +1 -0
  163. package/dist/server/utils/uid-target.js +34 -0
  164. package/dist/server/utils/uid-target.js.map +1 -0
  165. package/dist/server/utils/uid-target.mjs +31 -0
  166. package/dist/server/utils/uid-target.mjs.map +1 -0
  167. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionForm.js","sources":["../../../../../admin/src/components/FormModal/attributes/ConditionForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport { createRulesEngine, ConfirmDialog, type Condition } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n Field,\n SingleSelect,\n SingleSelectOption,\n Dialog,\n} from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AttributeIcon } from '../../../components/AttributeIcon';\nimport { getFirstVisibleConditionEntry } from '../../../utils/conditions';\nimport { getTrad } from '../../../utils/getTrad';\nimport { ApplyConditionButton } from '../../ApplyConditionButton';\n\nimport type {\n AttributeConditions,\n AttributeConditionRule,\n AttributeConditionValue,\n} from '../../../types';\n\nconst SmallAttributeIcon = styled(AttributeIcon)`\n width: 16px !important;\n height: 16px !important;\n svg {\n width: 16px !important;\n height: 16px !important;\n }\n`;\n\ninterface ConditionFormProps {\n name: string;\n value?: AttributeConditions | null;\n onChange: (e: { target: { name: string; value?: AttributeConditions | null } }) => void;\n onDelete: () => void;\n attributeName?: string;\n conditionFields?: Array<{\n name: string;\n type: string;\n enum?: string[];\n }>;\n allAttributes?: Array<{\n name: string;\n type: string;\n }>;\n}\n\ninterface LocalValue {\n dependsOn: string;\n operator: 'is' | 'isNot';\n value: AttributeConditionValue;\n action: 'show' | 'hide';\n}\n\nconst convertFromJsonLogic = (jsonLogic?: AttributeConditions | null): LocalValue => {\n const conditionEntry = getFirstVisibleConditionEntry(jsonLogic);\n\n if (conditionEntry === null) {\n return {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n }\n\n const { operator, fieldVar, value } = conditionEntry;\n\n // Assume 'visible' implies 'show' for now; adjust if backend uses 'hidden' key\n return {\n dependsOn: fieldVar.var,\n operator: operator === '==' ? 'is' : 'isNot',\n value: value,\n action: 'show', // Default to 'show' for 'visible'; adjust based on backend logic\n };\n};\n\nconst convertToJsonLogic = (value: LocalValue): AttributeConditions | null => {\n if (value.dependsOn === '') {\n return null;\n }\n\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: value.dependsOn,\n operator: value.operator,\n value: value.value,\n };\n\n try {\n rulesEngine.validate(condition);\n // Determine JSON Logic operator based on operator and action\n const operator =\n (value.operator === 'is' && value.action === 'show') ||\n (value.operator === 'isNot' && value.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [{ var: value.dependsOn }, value.value];\n return {\n visible: {\n [operator]: conditionRule,\n },\n };\n } catch {\n return null;\n }\n};\n\nexport const ConditionForm = ({\n name,\n value,\n onChange,\n onDelete,\n attributeName,\n conditionFields = [],\n}: ConditionFormProps) => {\n const { formatMessage } = useIntl();\n const [localValue, setLocalValue] = React.useState<LocalValue>(convertFromJsonLogic(value));\n const [showConfirmDialog, setShowConfirmDialog] = useState(false);\n const hasCondition = getFirstVisibleConditionEntry(value) !== null;\n\n // Add safety check for conditionFields\n if (!Array.isArray(conditionFields)) {\n conditionFields = [];\n }\n\n const selectedField = conditionFields.find((field) => field.name === localValue.dependsOn);\n const isEnumField = selectedField?.type === 'enumeration';\n\n // Helper to update localValue and propagate JSON Logic\n const updateCondition = (updatedValue: LocalValue) => {\n setLocalValue(updatedValue);\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: updatedValue.dependsOn,\n operator: updatedValue.operator,\n value: updatedValue.value,\n };\n try {\n rulesEngine.validate(condition);\n const operator =\n (updatedValue.operator === 'is' && updatedValue.action === 'show') ||\n (updatedValue.operator === 'isNot' && updatedValue.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [\n { var: updatedValue.dependsOn },\n updatedValue.value,\n ];\n const jsonLogic: AttributeConditions | null = updatedValue.dependsOn\n ? {\n visible: {\n [operator]: conditionRule,\n },\n }\n : null;\n if (jsonLogic) {\n onChange({\n target: {\n name,\n value: jsonLogic,\n },\n });\n }\n } catch {\n // Optionally, show an error to the user\n }\n };\n\n const handleApplyCondition = () => {\n const initialValue: LocalValue = {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n setLocalValue(initialValue);\n onChange({\n target: {\n name,\n value: convertToJsonLogic(initialValue),\n },\n });\n };\n\n const handleDelete = () => {\n setLocalValue({\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n });\n onChange({\n target: {\n name,\n value: null,\n },\n });\n onDelete();\n setShowConfirmDialog(false);\n };\n\n const handleFieldChange = (fieldName: string | number) => {\n const newValue = fieldName?.toString() || '';\n const field = conditionFields.find((f) => f.name === newValue);\n const isNewFieldEnum = field?.type === 'enumeration';\n const updatedValue: LocalValue = {\n ...localValue,\n dependsOn: newValue,\n value: newValue ? (isNewFieldEnum ? '' : false) : localValue.value,\n };\n updateCondition(updatedValue);\n };\n\n const handleOperatorChange = (operator: string | number) => {\n const newValue = operator?.toString() || 'is';\n const updatedValue: LocalValue = {\n ...localValue,\n operator: newValue as 'is' | 'isNot',\n };\n updateCondition(updatedValue);\n };\n\n const handleValueChange = (newValue: string | number) => {\n const value = isEnumField ? newValue?.toString() : newValue?.toString() === 'true';\n const updatedValue: LocalValue = { ...localValue, value };\n updateCondition(updatedValue);\n };\n\n const handleActionChange = (action: string | number) => {\n const newValue = action?.toString() || 'show';\n const updatedValue: LocalValue = {\n ...localValue,\n action: newValue as 'show' | 'hide',\n };\n updateCondition(updatedValue);\n };\n\n if (!hasCondition) {\n return (\n <Box padding={4} margin={4} hasRadius background=\"neutral0\" borderColor=\"neutral200\">\n <ApplyConditionButton onClick={handleApplyCondition} />\n </Box>\n );\n }\n\n return (\n <Box marginTop={2}>\n <Box\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderWidth={0.5}\n borderStyle=\"solid\"\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Typography variant=\"sigma\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('form.attribute.condition.title'),\n defaultMessage: 'Condition for {name}',\n },\n {\n name: <strong>{attributeName}</strong>,\n }\n )}\n </Typography>\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <IconButton label=\"Delete\">\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleDelete}>\n {formatMessage({\n id: getTrad('popUpWarning.bodyMessage.delete-condition'),\n defaultMessage: 'Are you sure you want to delete this condition?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={2}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({ id: getTrad('form.attribute.condition.if'), defaultMessage: 'IF' })}\n </Typography>\n </Box>\n <Flex gap={4}>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.field`}>\n <SingleSelect\n value={localValue.dependsOn}\n onChange={handleFieldChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.field'),\n defaultMessage: 'field',\n })}\n >\n {conditionFields.map((field) => (\n <SingleSelectOption key={field.name} value={field.name}>\n <Flex gap={2} alignItems=\"center\">\n <SmallAttributeIcon type={field.type} />\n <span>{field.name}</span>\n </Flex>\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n </Box>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.operator`}>\n <SingleSelect\n value={localValue.operator}\n onChange={handleOperatorChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.operator'),\n defaultMessage: 'condition',\n })}\n >\n <SingleSelectOption value=\"is\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.is'),\n defaultMessage: 'is',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"isNot\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.isNot'),\n defaultMessage: 'is not',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.value`}>\n <SingleSelect\n value={localValue.value?.toString() || ''}\n onChange={handleValueChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.value'),\n defaultMessage: 'value',\n })}\n >\n {isEnumField && selectedField?.enum ? (\n selectedField.enum.map((enumValue) => (\n <SingleSelectOption key={enumValue} value={enumValue}>\n {enumValue}\n </SingleSelectOption>\n ))\n ) : (\n <>\n <SingleSelectOption value=\"true\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.true'),\n defaultMessage: 'true',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"false\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.false'),\n defaultMessage: 'false',\n })}\n </SingleSelectOption>\n </>\n )}\n </SingleSelect>\n </Field.Root>\n </Box>\n </Flex>\n </Box>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={4}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({\n id: getTrad('form.attribute.condition.then'),\n defaultMessage: 'THEN',\n })}\n </Typography>\n </Box>\n <Box paddingBottom={4}>\n <Field.Root name={`${name}.action`}>\n <SingleSelect\n value={localValue.action}\n onChange={handleActionChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.action'),\n defaultMessage: 'action',\n })}\n >\n <SingleSelectOption value=\"show\">\n Show <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n <SingleSelectOption value=\"hide\">\n Hide <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n"],"names":["SmallAttributeIcon","styled","AttributeIcon","convertFromJsonLogic","jsonLogic","conditionEntry","getFirstVisibleConditionEntry","dependsOn","operator","value","action","fieldVar","var","convertToJsonLogic","rulesEngine","createRulesEngine","condition","validate","conditionRule","visible","ConditionForm","name","onChange","onDelete","attributeName","conditionFields","formatMessage","useIntl","localValue","setLocalValue","React","useState","showConfirmDialog","setShowConfirmDialog","hasCondition","Array","isArray","selectedField","find","field","isEnumField","type","updateCondition","updatedValue","target","handleApplyCondition","initialValue","handleDelete","handleFieldChange","fieldName","newValue","toString","f","isNewFieldEnum","handleOperatorChange","handleValueChange","handleActionChange","_jsx","Box","padding","margin","hasRadius","background","borderColor","ApplyConditionButton","onClick","marginTop","_jsxs","borderWidth","borderStyle","Flex","justifyContent","alignItems","Typography","variant","textColor","id","getTrad","defaultMessage","strong","Dialog","Root","open","onOpenChange","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","paddingBottom","style","textTransform","letterSpacing","gap","minWidth","flex","Field","SingleSelect","placeholder","map","SingleSelectOption","span","disabled","enum","enumValue","_Fragment","fontWeight"],"mappings":"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"}
1
+ {"version":3,"file":"ConditionForm.js","sources":["../../../../../admin/src/components/FormModal/attributes/ConditionForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport { createRulesEngine, ConfirmDialog, type Condition } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n Field,\n SingleSelect,\n SingleSelectOption,\n Dialog,\n} from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AttributeIcon } from '../../../components/AttributeIcon';\nimport { getFirstVisibleConditionEntry } from '../../../utils/conditions';\nimport { getTrad } from '../../../utils/getTrad';\nimport { ApplyConditionButton } from '../../ApplyConditionButton';\n\nimport type {\n AttributeConditions,\n AttributeConditionRule,\n AttributeConditionValue,\n} from '../../../types';\n\nconst EMPTY_CONDITION_FIELDS: NonNullable<ConditionFormProps['conditionFields']> = [];\n\nconst SmallAttributeIcon = styled(AttributeIcon)`\n width: 16px !important;\n height: 16px !important;\n svg {\n width: 16px !important;\n height: 16px !important;\n }\n`;\n\ninterface ConditionFormProps {\n name: string;\n value?: AttributeConditions | null;\n onChange: (e: { target: { name: string; value?: AttributeConditions | null } }) => void;\n onDelete: () => void;\n attributeName?: string;\n conditionFields?: Array<{\n name: string;\n type: string;\n enum?: string[];\n }>;\n allAttributes?: Array<{\n name: string;\n type: string;\n }>;\n}\n\ninterface LocalValue {\n dependsOn: string;\n operator: 'is' | 'isNot';\n value: AttributeConditionValue;\n action: 'show' | 'hide';\n}\n\nconst convertFromJsonLogic = (jsonLogic?: AttributeConditions | null): LocalValue => {\n const conditionEntry = getFirstVisibleConditionEntry(jsonLogic);\n\n if (conditionEntry === null) {\n return {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n }\n\n const { operator, fieldVar, value } = conditionEntry;\n\n // Assume 'visible' implies 'show' for now; adjust if backend uses 'hidden' key\n return {\n dependsOn: fieldVar.var,\n operator: operator === '==' ? 'is' : 'isNot',\n value: value,\n action: 'show', // Default to 'show' for 'visible'; adjust based on backend logic\n };\n};\n\nconst convertToJsonLogic = (value: LocalValue): AttributeConditions | null => {\n if (value.dependsOn === '') {\n return null;\n }\n\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: value.dependsOn,\n operator: value.operator,\n value: value.value,\n };\n\n try {\n rulesEngine.validate(condition);\n // Determine JSON Logic operator based on operator and action\n const operator =\n (value.operator === 'is' && value.action === 'show') ||\n (value.operator === 'isNot' && value.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [{ var: value.dependsOn }, value.value];\n return {\n visible: {\n [operator]: conditionRule,\n },\n };\n } catch {\n return null;\n }\n};\n\nexport const ConditionForm = ({\n name,\n value,\n onChange,\n onDelete,\n attributeName,\n conditionFields = EMPTY_CONDITION_FIELDS,\n}: ConditionFormProps) => {\n const { formatMessage } = useIntl();\n const [localValue, setLocalValue] = React.useState<LocalValue>(convertFromJsonLogic(value));\n const [showConfirmDialog, setShowConfirmDialog] = useState(false);\n const hasCondition = getFirstVisibleConditionEntry(value) !== null;\n\n // Add safety check for conditionFields\n if (!Array.isArray(conditionFields)) {\n conditionFields = [];\n }\n\n const selectedField = conditionFields.find((field) => field.name === localValue.dependsOn);\n const isEnumField = selectedField?.type === 'enumeration';\n\n // Helper to update localValue and propagate JSON Logic\n const updateCondition = (updatedValue: LocalValue) => {\n setLocalValue(updatedValue);\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: updatedValue.dependsOn,\n operator: updatedValue.operator,\n value: updatedValue.value,\n };\n try {\n rulesEngine.validate(condition);\n const operator =\n (updatedValue.operator === 'is' && updatedValue.action === 'show') ||\n (updatedValue.operator === 'isNot' && updatedValue.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [\n { var: updatedValue.dependsOn },\n updatedValue.value,\n ];\n const jsonLogic: AttributeConditions | null = updatedValue.dependsOn\n ? {\n visible: {\n [operator]: conditionRule,\n },\n }\n : null;\n if (jsonLogic) {\n onChange({\n target: {\n name,\n value: jsonLogic,\n },\n });\n }\n } catch {\n // Optionally, show an error to the user\n }\n };\n\n const handleApplyCondition = () => {\n const initialValue: LocalValue = {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n setLocalValue(initialValue);\n onChange({\n target: {\n name,\n value: convertToJsonLogic(initialValue),\n },\n });\n };\n\n const handleDelete = () => {\n setLocalValue({\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n });\n onChange({\n target: {\n name,\n value: null,\n },\n });\n onDelete();\n setShowConfirmDialog(false);\n };\n\n const handleFieldChange = (fieldName: string | number) => {\n const newValue = fieldName?.toString() || '';\n const field = conditionFields.find((f) => f.name === newValue);\n const isNewFieldEnum = field?.type === 'enumeration';\n const updatedValue: LocalValue = {\n ...localValue,\n dependsOn: newValue,\n value: newValue ? (isNewFieldEnum ? '' : false) : localValue.value,\n };\n updateCondition(updatedValue);\n };\n\n const handleOperatorChange = (operator: string | number) => {\n const newValue = operator?.toString() || 'is';\n const updatedValue: LocalValue = {\n ...localValue,\n operator: newValue as 'is' | 'isNot',\n };\n updateCondition(updatedValue);\n };\n\n const handleValueChange = (newValue: string | number) => {\n const value = isEnumField ? newValue?.toString() : newValue?.toString() === 'true';\n const updatedValue: LocalValue = { ...localValue, value };\n updateCondition(updatedValue);\n };\n\n const handleActionChange = (action: string | number) => {\n const newValue = action?.toString() || 'show';\n const updatedValue: LocalValue = {\n ...localValue,\n action: newValue as 'show' | 'hide',\n };\n updateCondition(updatedValue);\n };\n\n if (!hasCondition) {\n return (\n <Box padding={4} margin={4} hasRadius background=\"neutral0\" borderColor=\"neutral200\">\n <ApplyConditionButton onClick={handleApplyCondition} />\n </Box>\n );\n }\n\n return (\n <Box marginTop={2}>\n <Box\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderWidth={0.5}\n borderStyle=\"solid\"\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Typography variant=\"sigma\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('form.attribute.condition.title'),\n defaultMessage: 'Condition for {name}',\n },\n {\n name: <strong>{attributeName}</strong>,\n }\n )}\n </Typography>\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <IconButton label=\"Delete\">\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleDelete}>\n {formatMessage({\n id: getTrad('popUpWarning.bodyMessage.delete-condition'),\n defaultMessage: 'Are you sure you want to delete this condition?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={2}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({ id: getTrad('form.attribute.condition.if'), defaultMessage: 'IF' })}\n </Typography>\n </Box>\n <Flex gap={4}>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.field`}>\n <SingleSelect\n value={localValue.dependsOn}\n onChange={handleFieldChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.field'),\n defaultMessage: 'field',\n })}\n >\n {conditionFields.map((field) => (\n <SingleSelectOption key={field.name} value={field.name}>\n <Flex gap={2} alignItems=\"center\">\n <SmallAttributeIcon type={field.type} />\n <span>{field.name}</span>\n </Flex>\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n </Box>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.operator`}>\n <SingleSelect\n value={localValue.operator}\n onChange={handleOperatorChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.operator'),\n defaultMessage: 'condition',\n })}\n >\n <SingleSelectOption value=\"is\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.is'),\n defaultMessage: 'is',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"isNot\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.isNot'),\n defaultMessage: 'is not',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.value`}>\n <SingleSelect\n value={localValue.value?.toString() || ''}\n onChange={handleValueChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.value'),\n defaultMessage: 'value',\n })}\n >\n {isEnumField && selectedField?.enum ? (\n selectedField.enum.map((enumValue) => (\n <SingleSelectOption key={enumValue} value={enumValue}>\n {enumValue}\n </SingleSelectOption>\n ))\n ) : (\n <>\n <SingleSelectOption value=\"true\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.true'),\n defaultMessage: 'true',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"false\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.false'),\n defaultMessage: 'false',\n })}\n </SingleSelectOption>\n </>\n )}\n </SingleSelect>\n </Field.Root>\n </Box>\n </Flex>\n </Box>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={4}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({\n id: getTrad('form.attribute.condition.then'),\n defaultMessage: 'THEN',\n })}\n </Typography>\n </Box>\n <Box paddingBottom={4}>\n <Field.Root name={`${name}.action`}>\n <SingleSelect\n value={localValue.action}\n onChange={handleActionChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.action'),\n defaultMessage: 'action',\n })}\n >\n <SingleSelectOption value=\"show\">\n Show <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n <SingleSelectOption value=\"hide\">\n Hide <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n"],"names":["EMPTY_CONDITION_FIELDS","SmallAttributeIcon","styled","AttributeIcon","convertFromJsonLogic","jsonLogic","conditionEntry","getFirstVisibleConditionEntry","dependsOn","operator","value","action","fieldVar","var","convertToJsonLogic","rulesEngine","createRulesEngine","condition","validate","conditionRule","visible","ConditionForm","name","onChange","onDelete","attributeName","conditionFields","formatMessage","useIntl","localValue","setLocalValue","React","useState","showConfirmDialog","setShowConfirmDialog","hasCondition","Array","isArray","selectedField","find","field","isEnumField","type","updateCondition","updatedValue","target","handleApplyCondition","initialValue","handleDelete","handleFieldChange","fieldName","newValue","toString","f","isNewFieldEnum","handleOperatorChange","handleValueChange","handleActionChange","_jsx","Box","padding","margin","hasRadius","background","borderColor","ApplyConditionButton","onClick","marginTop","_jsxs","borderWidth","borderStyle","Flex","justifyContent","alignItems","Typography","variant","textColor","id","getTrad","defaultMessage","strong","Dialog","Root","open","onOpenChange","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","paddingBottom","style","textTransform","letterSpacing","gap","minWidth","flex","Field","SingleSelect","placeholder","map","SingleSelectOption","span","disabled","enum","enumValue","_Fragment","fontWeight"],"mappings":"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"}
@@ -11,6 +11,7 @@ import { getFirstVisibleConditionEntry } from '../../../utils/conditions.mjs';
11
11
  import { getTrad } from '../../../utils/getTrad.mjs';
12
12
  import { ApplyConditionButton } from '../../ApplyConditionButton.mjs';
13
13
 
14
+ const EMPTY_CONDITION_FIELDS = [];
14
15
  const SmallAttributeIcon = styled(AttributeIcon)`
15
16
  width: 16px !important;
16
17
  height: 16px !important;
@@ -67,7 +68,7 @@ const convertToJsonLogic = (value)=>{
67
68
  return null;
68
69
  }
69
70
  };
70
- const ConditionForm = ({ name, value, onChange, onDelete, attributeName, conditionFields = [] })=>{
71
+ const ConditionForm = ({ name, value, onChange, onDelete, attributeName, conditionFields = EMPTY_CONDITION_FIELDS })=>{
71
72
  const { formatMessage } = useIntl();
72
73
  const [localValue, setLocalValue] = React.useState(convertFromJsonLogic(value));
73
74
  const [showConfirmDialog, setShowConfirmDialog] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionForm.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/ConditionForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport { createRulesEngine, ConfirmDialog, type Condition } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n Field,\n SingleSelect,\n SingleSelectOption,\n Dialog,\n} from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AttributeIcon } from '../../../components/AttributeIcon';\nimport { getFirstVisibleConditionEntry } from '../../../utils/conditions';\nimport { getTrad } from '../../../utils/getTrad';\nimport { ApplyConditionButton } from '../../ApplyConditionButton';\n\nimport type {\n AttributeConditions,\n AttributeConditionRule,\n AttributeConditionValue,\n} from '../../../types';\n\nconst SmallAttributeIcon = styled(AttributeIcon)`\n width: 16px !important;\n height: 16px !important;\n svg {\n width: 16px !important;\n height: 16px !important;\n }\n`;\n\ninterface ConditionFormProps {\n name: string;\n value?: AttributeConditions | null;\n onChange: (e: { target: { name: string; value?: AttributeConditions | null } }) => void;\n onDelete: () => void;\n attributeName?: string;\n conditionFields?: Array<{\n name: string;\n type: string;\n enum?: string[];\n }>;\n allAttributes?: Array<{\n name: string;\n type: string;\n }>;\n}\n\ninterface LocalValue {\n dependsOn: string;\n operator: 'is' | 'isNot';\n value: AttributeConditionValue;\n action: 'show' | 'hide';\n}\n\nconst convertFromJsonLogic = (jsonLogic?: AttributeConditions | null): LocalValue => {\n const conditionEntry = getFirstVisibleConditionEntry(jsonLogic);\n\n if (conditionEntry === null) {\n return {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n }\n\n const { operator, fieldVar, value } = conditionEntry;\n\n // Assume 'visible' implies 'show' for now; adjust if backend uses 'hidden' key\n return {\n dependsOn: fieldVar.var,\n operator: operator === '==' ? 'is' : 'isNot',\n value: value,\n action: 'show', // Default to 'show' for 'visible'; adjust based on backend logic\n };\n};\n\nconst convertToJsonLogic = (value: LocalValue): AttributeConditions | null => {\n if (value.dependsOn === '') {\n return null;\n }\n\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: value.dependsOn,\n operator: value.operator,\n value: value.value,\n };\n\n try {\n rulesEngine.validate(condition);\n // Determine JSON Logic operator based on operator and action\n const operator =\n (value.operator === 'is' && value.action === 'show') ||\n (value.operator === 'isNot' && value.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [{ var: value.dependsOn }, value.value];\n return {\n visible: {\n [operator]: conditionRule,\n },\n };\n } catch {\n return null;\n }\n};\n\nexport const ConditionForm = ({\n name,\n value,\n onChange,\n onDelete,\n attributeName,\n conditionFields = [],\n}: ConditionFormProps) => {\n const { formatMessage } = useIntl();\n const [localValue, setLocalValue] = React.useState<LocalValue>(convertFromJsonLogic(value));\n const [showConfirmDialog, setShowConfirmDialog] = useState(false);\n const hasCondition = getFirstVisibleConditionEntry(value) !== null;\n\n // Add safety check for conditionFields\n if (!Array.isArray(conditionFields)) {\n conditionFields = [];\n }\n\n const selectedField = conditionFields.find((field) => field.name === localValue.dependsOn);\n const isEnumField = selectedField?.type === 'enumeration';\n\n // Helper to update localValue and propagate JSON Logic\n const updateCondition = (updatedValue: LocalValue) => {\n setLocalValue(updatedValue);\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: updatedValue.dependsOn,\n operator: updatedValue.operator,\n value: updatedValue.value,\n };\n try {\n rulesEngine.validate(condition);\n const operator =\n (updatedValue.operator === 'is' && updatedValue.action === 'show') ||\n (updatedValue.operator === 'isNot' && updatedValue.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [\n { var: updatedValue.dependsOn },\n updatedValue.value,\n ];\n const jsonLogic: AttributeConditions | null = updatedValue.dependsOn\n ? {\n visible: {\n [operator]: conditionRule,\n },\n }\n : null;\n if (jsonLogic) {\n onChange({\n target: {\n name,\n value: jsonLogic,\n },\n });\n }\n } catch {\n // Optionally, show an error to the user\n }\n };\n\n const handleApplyCondition = () => {\n const initialValue: LocalValue = {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n setLocalValue(initialValue);\n onChange({\n target: {\n name,\n value: convertToJsonLogic(initialValue),\n },\n });\n };\n\n const handleDelete = () => {\n setLocalValue({\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n });\n onChange({\n target: {\n name,\n value: null,\n },\n });\n onDelete();\n setShowConfirmDialog(false);\n };\n\n const handleFieldChange = (fieldName: string | number) => {\n const newValue = fieldName?.toString() || '';\n const field = conditionFields.find((f) => f.name === newValue);\n const isNewFieldEnum = field?.type === 'enumeration';\n const updatedValue: LocalValue = {\n ...localValue,\n dependsOn: newValue,\n value: newValue ? (isNewFieldEnum ? '' : false) : localValue.value,\n };\n updateCondition(updatedValue);\n };\n\n const handleOperatorChange = (operator: string | number) => {\n const newValue = operator?.toString() || 'is';\n const updatedValue: LocalValue = {\n ...localValue,\n operator: newValue as 'is' | 'isNot',\n };\n updateCondition(updatedValue);\n };\n\n const handleValueChange = (newValue: string | number) => {\n const value = isEnumField ? newValue?.toString() : newValue?.toString() === 'true';\n const updatedValue: LocalValue = { ...localValue, value };\n updateCondition(updatedValue);\n };\n\n const handleActionChange = (action: string | number) => {\n const newValue = action?.toString() || 'show';\n const updatedValue: LocalValue = {\n ...localValue,\n action: newValue as 'show' | 'hide',\n };\n updateCondition(updatedValue);\n };\n\n if (!hasCondition) {\n return (\n <Box padding={4} margin={4} hasRadius background=\"neutral0\" borderColor=\"neutral200\">\n <ApplyConditionButton onClick={handleApplyCondition} />\n </Box>\n );\n }\n\n return (\n <Box marginTop={2}>\n <Box\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderWidth={0.5}\n borderStyle=\"solid\"\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Typography variant=\"sigma\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('form.attribute.condition.title'),\n defaultMessage: 'Condition for {name}',\n },\n {\n name: <strong>{attributeName}</strong>,\n }\n )}\n </Typography>\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <IconButton label=\"Delete\">\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleDelete}>\n {formatMessage({\n id: getTrad('popUpWarning.bodyMessage.delete-condition'),\n defaultMessage: 'Are you sure you want to delete this condition?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={2}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({ id: getTrad('form.attribute.condition.if'), defaultMessage: 'IF' })}\n </Typography>\n </Box>\n <Flex gap={4}>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.field`}>\n <SingleSelect\n value={localValue.dependsOn}\n onChange={handleFieldChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.field'),\n defaultMessage: 'field',\n })}\n >\n {conditionFields.map((field) => (\n <SingleSelectOption key={field.name} value={field.name}>\n <Flex gap={2} alignItems=\"center\">\n <SmallAttributeIcon type={field.type} />\n <span>{field.name}</span>\n </Flex>\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n </Box>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.operator`}>\n <SingleSelect\n value={localValue.operator}\n onChange={handleOperatorChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.operator'),\n defaultMessage: 'condition',\n })}\n >\n <SingleSelectOption value=\"is\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.is'),\n defaultMessage: 'is',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"isNot\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.isNot'),\n defaultMessage: 'is not',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.value`}>\n <SingleSelect\n value={localValue.value?.toString() || ''}\n onChange={handleValueChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.value'),\n defaultMessage: 'value',\n })}\n >\n {isEnumField && selectedField?.enum ? (\n selectedField.enum.map((enumValue) => (\n <SingleSelectOption key={enumValue} value={enumValue}>\n {enumValue}\n </SingleSelectOption>\n ))\n ) : (\n <>\n <SingleSelectOption value=\"true\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.true'),\n defaultMessage: 'true',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"false\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.false'),\n defaultMessage: 'false',\n })}\n </SingleSelectOption>\n </>\n )}\n </SingleSelect>\n </Field.Root>\n </Box>\n </Flex>\n </Box>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={4}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({\n id: getTrad('form.attribute.condition.then'),\n defaultMessage: 'THEN',\n })}\n </Typography>\n </Box>\n <Box paddingBottom={4}>\n <Field.Root name={`${name}.action`}>\n <SingleSelect\n value={localValue.action}\n onChange={handleActionChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.action'),\n defaultMessage: 'action',\n })}\n >\n <SingleSelectOption value=\"show\">\n Show <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n <SingleSelectOption value=\"hide\">\n Hide <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n"],"names":["SmallAttributeIcon","styled","AttributeIcon","convertFromJsonLogic","jsonLogic","conditionEntry","getFirstVisibleConditionEntry","dependsOn","operator","value","action","fieldVar","var","convertToJsonLogic","rulesEngine","createRulesEngine","condition","validate","conditionRule","visible","ConditionForm","name","onChange","onDelete","attributeName","conditionFields","formatMessage","useIntl","localValue","setLocalValue","React","useState","showConfirmDialog","setShowConfirmDialog","hasCondition","Array","isArray","selectedField","find","field","isEnumField","type","updateCondition","updatedValue","target","handleApplyCondition","initialValue","handleDelete","handleFieldChange","fieldName","newValue","toString","f","isNewFieldEnum","handleOperatorChange","handleValueChange","handleActionChange","_jsx","Box","padding","margin","hasRadius","background","borderColor","ApplyConditionButton","onClick","marginTop","_jsxs","borderWidth","borderStyle","Flex","justifyContent","alignItems","Typography","variant","textColor","id","getTrad","defaultMessage","strong","Dialog","Root","open","onOpenChange","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","paddingBottom","style","textTransform","letterSpacing","gap","minWidth","flex","Field","SingleSelect","placeholder","map","SingleSelectOption","span","disabled","enum","enumValue","_Fragment","fontWeight"],"mappings":"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"}
1
+ {"version":3,"file":"ConditionForm.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/ConditionForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport { createRulesEngine, ConfirmDialog, type Condition } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n Field,\n SingleSelect,\n SingleSelectOption,\n Dialog,\n} from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AttributeIcon } from '../../../components/AttributeIcon';\nimport { getFirstVisibleConditionEntry } from '../../../utils/conditions';\nimport { getTrad } from '../../../utils/getTrad';\nimport { ApplyConditionButton } from '../../ApplyConditionButton';\n\nimport type {\n AttributeConditions,\n AttributeConditionRule,\n AttributeConditionValue,\n} from '../../../types';\n\nconst EMPTY_CONDITION_FIELDS: NonNullable<ConditionFormProps['conditionFields']> = [];\n\nconst SmallAttributeIcon = styled(AttributeIcon)`\n width: 16px !important;\n height: 16px !important;\n svg {\n width: 16px !important;\n height: 16px !important;\n }\n`;\n\ninterface ConditionFormProps {\n name: string;\n value?: AttributeConditions | null;\n onChange: (e: { target: { name: string; value?: AttributeConditions | null } }) => void;\n onDelete: () => void;\n attributeName?: string;\n conditionFields?: Array<{\n name: string;\n type: string;\n enum?: string[];\n }>;\n allAttributes?: Array<{\n name: string;\n type: string;\n }>;\n}\n\ninterface LocalValue {\n dependsOn: string;\n operator: 'is' | 'isNot';\n value: AttributeConditionValue;\n action: 'show' | 'hide';\n}\n\nconst convertFromJsonLogic = (jsonLogic?: AttributeConditions | null): LocalValue => {\n const conditionEntry = getFirstVisibleConditionEntry(jsonLogic);\n\n if (conditionEntry === null) {\n return {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n }\n\n const { operator, fieldVar, value } = conditionEntry;\n\n // Assume 'visible' implies 'show' for now; adjust if backend uses 'hidden' key\n return {\n dependsOn: fieldVar.var,\n operator: operator === '==' ? 'is' : 'isNot',\n value: value,\n action: 'show', // Default to 'show' for 'visible'; adjust based on backend logic\n };\n};\n\nconst convertToJsonLogic = (value: LocalValue): AttributeConditions | null => {\n if (value.dependsOn === '') {\n return null;\n }\n\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: value.dependsOn,\n operator: value.operator,\n value: value.value,\n };\n\n try {\n rulesEngine.validate(condition);\n // Determine JSON Logic operator based on operator and action\n const operator =\n (value.operator === 'is' && value.action === 'show') ||\n (value.operator === 'isNot' && value.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [{ var: value.dependsOn }, value.value];\n return {\n visible: {\n [operator]: conditionRule,\n },\n };\n } catch {\n return null;\n }\n};\n\nexport const ConditionForm = ({\n name,\n value,\n onChange,\n onDelete,\n attributeName,\n conditionFields = EMPTY_CONDITION_FIELDS,\n}: ConditionFormProps) => {\n const { formatMessage } = useIntl();\n const [localValue, setLocalValue] = React.useState<LocalValue>(convertFromJsonLogic(value));\n const [showConfirmDialog, setShowConfirmDialog] = useState(false);\n const hasCondition = getFirstVisibleConditionEntry(value) !== null;\n\n // Add safety check for conditionFields\n if (!Array.isArray(conditionFields)) {\n conditionFields = [];\n }\n\n const selectedField = conditionFields.find((field) => field.name === localValue.dependsOn);\n const isEnumField = selectedField?.type === 'enumeration';\n\n // Helper to update localValue and propagate JSON Logic\n const updateCondition = (updatedValue: LocalValue) => {\n setLocalValue(updatedValue);\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: updatedValue.dependsOn,\n operator: updatedValue.operator,\n value: updatedValue.value,\n };\n try {\n rulesEngine.validate(condition);\n const operator =\n (updatedValue.operator === 'is' && updatedValue.action === 'show') ||\n (updatedValue.operator === 'isNot' && updatedValue.action === 'hide')\n ? '=='\n : '!=';\n const conditionRule: AttributeConditionRule = [\n { var: updatedValue.dependsOn },\n updatedValue.value,\n ];\n const jsonLogic: AttributeConditions | null = updatedValue.dependsOn\n ? {\n visible: {\n [operator]: conditionRule,\n },\n }\n : null;\n if (jsonLogic) {\n onChange({\n target: {\n name,\n value: jsonLogic,\n },\n });\n }\n } catch {\n // Optionally, show an error to the user\n }\n };\n\n const handleApplyCondition = () => {\n const initialValue: LocalValue = {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n setLocalValue(initialValue);\n onChange({\n target: {\n name,\n value: convertToJsonLogic(initialValue),\n },\n });\n };\n\n const handleDelete = () => {\n setLocalValue({\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n });\n onChange({\n target: {\n name,\n value: null,\n },\n });\n onDelete();\n setShowConfirmDialog(false);\n };\n\n const handleFieldChange = (fieldName: string | number) => {\n const newValue = fieldName?.toString() || '';\n const field = conditionFields.find((f) => f.name === newValue);\n const isNewFieldEnum = field?.type === 'enumeration';\n const updatedValue: LocalValue = {\n ...localValue,\n dependsOn: newValue,\n value: newValue ? (isNewFieldEnum ? '' : false) : localValue.value,\n };\n updateCondition(updatedValue);\n };\n\n const handleOperatorChange = (operator: string | number) => {\n const newValue = operator?.toString() || 'is';\n const updatedValue: LocalValue = {\n ...localValue,\n operator: newValue as 'is' | 'isNot',\n };\n updateCondition(updatedValue);\n };\n\n const handleValueChange = (newValue: string | number) => {\n const value = isEnumField ? newValue?.toString() : newValue?.toString() === 'true';\n const updatedValue: LocalValue = { ...localValue, value };\n updateCondition(updatedValue);\n };\n\n const handleActionChange = (action: string | number) => {\n const newValue = action?.toString() || 'show';\n const updatedValue: LocalValue = {\n ...localValue,\n action: newValue as 'show' | 'hide',\n };\n updateCondition(updatedValue);\n };\n\n if (!hasCondition) {\n return (\n <Box padding={4} margin={4} hasRadius background=\"neutral0\" borderColor=\"neutral200\">\n <ApplyConditionButton onClick={handleApplyCondition} />\n </Box>\n );\n }\n\n return (\n <Box marginTop={2}>\n <Box\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderWidth={0.5}\n borderStyle=\"solid\"\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Typography variant=\"sigma\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('form.attribute.condition.title'),\n defaultMessage: 'Condition for {name}',\n },\n {\n name: <strong>{attributeName}</strong>,\n }\n )}\n </Typography>\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <IconButton label=\"Delete\">\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleDelete}>\n {formatMessage({\n id: getTrad('popUpWarning.bodyMessage.delete-condition'),\n defaultMessage: 'Are you sure you want to delete this condition?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={2}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({ id: getTrad('form.attribute.condition.if'), defaultMessage: 'IF' })}\n </Typography>\n </Box>\n <Flex gap={4}>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.field`}>\n <SingleSelect\n value={localValue.dependsOn}\n onChange={handleFieldChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.field'),\n defaultMessage: 'field',\n })}\n >\n {conditionFields.map((field) => (\n <SingleSelectOption key={field.name} value={field.name}>\n <Flex gap={2} alignItems=\"center\">\n <SmallAttributeIcon type={field.type} />\n <span>{field.name}</span>\n </Flex>\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n </Box>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.operator`}>\n <SingleSelect\n value={localValue.operator}\n onChange={handleOperatorChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.operator'),\n defaultMessage: 'condition',\n })}\n >\n <SingleSelectOption value=\"is\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.is'),\n defaultMessage: 'is',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"isNot\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.isNot'),\n defaultMessage: 'is not',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.value`}>\n <SingleSelect\n value={localValue.value?.toString() || ''}\n onChange={handleValueChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.value'),\n defaultMessage: 'value',\n })}\n >\n {isEnumField && selectedField?.enum ? (\n selectedField.enum.map((enumValue) => (\n <SingleSelectOption key={enumValue} value={enumValue}>\n {enumValue}\n </SingleSelectOption>\n ))\n ) : (\n <>\n <SingleSelectOption value=\"true\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.true'),\n defaultMessage: 'true',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"false\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.false'),\n defaultMessage: 'false',\n })}\n </SingleSelectOption>\n </>\n )}\n </SingleSelect>\n </Field.Root>\n </Box>\n </Flex>\n </Box>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={4}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({\n id: getTrad('form.attribute.condition.then'),\n defaultMessage: 'THEN',\n })}\n </Typography>\n </Box>\n <Box paddingBottom={4}>\n <Field.Root name={`${name}.action`}>\n <SingleSelect\n value={localValue.action}\n onChange={handleActionChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.action'),\n defaultMessage: 'action',\n })}\n >\n <SingleSelectOption value=\"show\">\n Show <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n <SingleSelectOption value=\"hide\">\n Hide <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n"],"names":["EMPTY_CONDITION_FIELDS","SmallAttributeIcon","styled","AttributeIcon","convertFromJsonLogic","jsonLogic","conditionEntry","getFirstVisibleConditionEntry","dependsOn","operator","value","action","fieldVar","var","convertToJsonLogic","rulesEngine","createRulesEngine","condition","validate","conditionRule","visible","ConditionForm","name","onChange","onDelete","attributeName","conditionFields","formatMessage","useIntl","localValue","setLocalValue","React","useState","showConfirmDialog","setShowConfirmDialog","hasCondition","Array","isArray","selectedField","find","field","isEnumField","type","updateCondition","updatedValue","target","handleApplyCondition","initialValue","handleDelete","handleFieldChange","fieldName","newValue","toString","f","isNewFieldEnum","handleOperatorChange","handleValueChange","handleActionChange","_jsx","Box","padding","margin","hasRadius","background","borderColor","ApplyConditionButton","onClick","marginTop","_jsxs","borderWidth","borderStyle","Flex","justifyContent","alignItems","Typography","variant","textColor","id","getTrad","defaultMessage","strong","Dialog","Root","open","onOpenChange","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","paddingBottom","style","textTransform","letterSpacing","gap","minWidth","flex","Field","SingleSelect","placeholder","map","SingleSelectOption","span","disabled","enum","enumValue","_Fragment","fontWeight"],"mappings":"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"}
@@ -257,7 +257,7 @@ const attributeTypes = {
257
257
  ...alreadyTakenTargetAttributes.map(({ name })=>name),
258
258
  modifiedData.name
259
259
  ];
260
- const forbiddenTargetAttributeName = initialForbiddenName.filter((val)=>val !== initialData.targetAttribute);
260
+ const forbiddenTargetAttributeName = new Set(initialForbiddenName.filter((val)=>val !== initialData.targetAttribute));
261
261
  return schema.matches(common.NAME_REGEX, strapiAdmin.translatedErrors.regex.id).test({
262
262
  name: 'forbiddenTargetAttributeName',
263
263
  message: getTrad.getTrad('error.validation.relation.targetAttribute-taken'),
@@ -265,7 +265,7 @@ const attributeTypes = {
265
265
  if (!value) {
266
266
  return false;
267
267
  }
268
- return !forbiddenTargetAttributeName.includes(value);
268
+ return !forbiddenTargetAttributeName.has(value);
269
269
  }
270
270
  }).required(strapiAdmin.translatedErrors.required.id);
271
271
  })
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n /**\n * CTB renders field errors as `formatMessage({ id: error })` with no values, so the\n * message must not interpolate anything — the generic `errorsTrads.min` id would leak\n * its `{min}` placeholder. See strapi/strapi#19030.\n */\n .min(1, getTrad('error.validation.enum-empty'))\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n required: validators.required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","getTrad","message","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","NAME_REGEX","includes","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n /**\n * CTB renders field errors as `formatMessage({ id: error })` with no values, so the\n * message must not interpolate anything — the generic `errorsTrads.min` id would leak\n * its `{min}` placeholder. See strapi/strapi#19030.\n */\n .min(1, getTrad('error.validation.enum-empty'))\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n required: validators.required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = new Set(\n initialForbiddenName.filter((val) => val !== initialData.targetAttribute)\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.has(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","getTrad","message","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","Set","NAME_REGEX","has","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
@@ -232,7 +232,7 @@ const attributeTypes = {
232
232
  ...alreadyTakenTargetAttributes.map(({ name })=>name),
233
233
  modifiedData.name
234
234
  ];
235
- const forbiddenTargetAttributeName = initialForbiddenName.filter((val)=>val !== initialData.targetAttribute);
235
+ const forbiddenTargetAttributeName = new Set(initialForbiddenName.filter((val)=>val !== initialData.targetAttribute));
236
236
  return schema.matches(NAME_REGEX, translatedErrors.regex.id).test({
237
237
  name: 'forbiddenTargetAttributeName',
238
238
  message: getTrad('error.validation.relation.targetAttribute-taken'),
@@ -240,7 +240,7 @@ const attributeTypes = {
240
240
  if (!value) {
241
241
  return false;
242
242
  }
243
- return !forbiddenTargetAttributeName.includes(value);
243
+ return !forbiddenTargetAttributeName.has(value);
244
244
  }
245
245
  }).required(translatedErrors.required.id);
246
246
  })
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n /**\n * CTB renders field errors as `formatMessage({ id: error })` with no values, so the\n * message must not interpolate anything — the generic `errorsTrads.min` id would leak\n * its `{min}` placeholder. See strapi/strapi#19030.\n */\n .min(1, getTrad('error.validation.enum-empty'))\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n required: validators.required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","getTrad","message","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","NAME_REGEX","includes","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":";;;;;;;;MAoBaA,cAAAA,GAAiB;IAC5BC,IAAAA,CAAAA,CAAKC,kBAAiC,EAAEC,aAA4B,EAAA;AAClE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI;AACvB,SAAA;QAEA,OAAOC,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAM,QAAAA,CAAAA,CAASR,kBAAiC,EAAEC,aAA4B,EAAA;AACtE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI;AACvB,SAAA;QAEA,OAAOC,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAO,IAAAA,CAAAA,CAAKT,kBAAiC,EAAEC,aAA4B,EAAA;AAClE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI;AACvB,SAAA;QAEA,OAAOC,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAQ,OAAAA,CAAAA,CAAQV,kBAAiC,EAAEC,aAA4B,EAAA;AACrE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI;AACvB,SAAA;QAEA,OAAOC,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAS,UAAAA,CAAAA,CAAWX,kBAAiC,EAAEC,aAA4B,EAAA;AACxE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASJ,IACNM,MAAM,EAAA,CACNC,QAAQ,EAAA,CACRC,OAAO,CAAC,SAAA,CAAA;AACXC,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;YAC7BC,GAAAA,EAAKX,GAAAA,CACFM,MAAM,EAAA,CACNC,QAAQ,EAAA,CACRC,OAAO,CAAC,SAAA,EAAWI,gBAAAA,CAAYC,KAAK,CAACC,EAAE,CAAA;AAC1CC,YAAAA,GAAAA,EAAKf,GAAAA,CACFM,MAAM,EAAA,CACNC,QAAQ,GACRS,IAAI,CAACC,oBAAAA,EAAAA,CAAAA,CACLT,OAAO,CAAC,SAAA,EAAWI,gBAAAA,CAAYC,KAAK,CAACC,EAAE;AAC5C,SAAA;QAEA,OAAOd,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAsB,OAAAA,CAAAA,CAAQxB,kBAAiC,EAAEC,aAA4B,EAAA;AACrE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;YAC1CS,OAAAA,EAASJ,GAAAA,CAAIkB,OAAO,EAAA,CAAGX,QAAQ,EAAA;AAC/BG,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BD,YAAAA,MAAAA,EAAQX,WAAWW,MAAM;AAC3B,SAAA;QAEA,OAAOT,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAuB,SAAAA,CAAAA,CAAUzB,kBAAiC,EAAEC,aAA4B,EAAA;AACvE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBW,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BC,YAAAA,GAAAA,EAAKb,WAAWa,GAAG,EAAA;AACnBI,YAAAA,GAAAA,EAAKjB,WAAWiB,GAAG,EAAA;YACnBI,SAAAA,EAAWnB,GAAAA,CAAIM,MAAM,EAAA,CAAGI,QAAQ,CAACE,gBAAAA,CAAYF,QAAQ,CAACI,EAAE;AAC1D,SAAA;QAEA,OAAOd,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAwB,OAAAA,CAAAA,CAAQ1B,kBAAiC,EAAEC,aAA4B,EAAA;AACrE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASJ,IAAIqB,MAAM,EAAA;AACnBX,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BC,YAAAA,GAAAA,EAAKX,IAAIqB,MAAM,EAAA;AACfN,YAAAA,GAAAA,EAAKf,GAAAA,CAAIqB,MAAM,EAAA,CAAGL,IAAI,CAACC,oBAAAA,EAAAA;AACzB,SAAA;QAEA,OAAOjB,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA0B,WAAAA,CAAAA,CAAY5B,kBAAiC,EAAEC,aAA4B,EAAA;AACzE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBW,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BC,YAAAA,GAAAA,EAAKb,WAAWa,GAAG,EAAA;AACnBI,YAAAA,GAAAA,EAAKjB,WAAWiB,GAAG;AACrB,SAAA;QAEA,OAAOf,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA2B,KAAAA,CAAAA,CAAM7B,kBAAiC,EAAEC,aAA4B,EAAA;AACnE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASJ,GAAAA,CAAIM,MAAM,EAAA,CAAGiB,KAAK,GAAGhB,QAAQ,EAAA;AACtCE,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7Bc,YAAAA,SAAAA,EAAW1B,WAAW0B,SAAS,EAAA;AAC/BC,YAAAA,SAAAA,EAAW3B,WAAW2B,SAAS;AACjC,SAAA;QAEA,OAAOzB,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA8B,WAAAA,CAAAA,CAAYhC,kBAAiC,EAAEC,aAA4B,EAAA;AACzE;;;;;;;;;;;AAWC,QACD,MAAMgC,kBAAAA,GAAqB,0BAAA;AAE3B,QAAA,MAAM/B,KAAAA,GAAQ;YACZC,IAAAA,EAAMG,GAAAA,CACHM,MAAM,EAAA,CACNU,IAAI,CAACY,0BAA0BlC,kBAAAA,CAAAA,CAAAA,CAC/BsB,IAAI,CAACa,aAAAA,CAAclC,aAAAA,CAAAA,CAAAA,CACnBa,OAAO,CAACmB,kBAAAA,EAAoBf,gBAAAA,CAAYC,KAAK,CAACC,EAAE,CAAA,CAChDJ,QAAQ,CAACE,gBAAAA,CAAYF,QAAQ,CAACI,EAAE,CAAA;AACnCf,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASN,WAAWM,OAAO,EAAA;AAC3BK,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BoB,YAAAA,IAAAA,EAAM9B,IACH+B,KAAK,EAAA,CACLC,EAAE,CAAChC,GAAAA,CAAIM,MAAM,EAAA,CACd;;;;AAIC,aACAS,GAAG,CAAC,CAAA,EAAGkB,OAAAA,CAAQ,6BAAA,CAAA,CAAA,CACfjB,IAAI,CAAC;gBACJnB,IAAAA,EAAM,qBAAA;AACNqC,gBAAAA,OAAAA,EAASD,OAAAA,CAAQ,iCAAA,CAAA;AACjBjB,gBAAAA,IAAAA,CAAAA,CAAKmB,MAAM,EAAA;AACT,oBAAA,IAAI,CAACA,MAAAA,EAAQ;wBACX,OAAO,KAAA;AACT,oBAAA;AACA,oBAAA,MAAMC,UAAAA,GAAaC,IAAAA,CACjBF,MAAAA,CACGG,GAAG,CAACC,oBAAAA,CAAAA,CACJC,MAAM,CAAC,CAACC,OAAOC,KAAAA,EAAOP,MAAAA,GAAWA,MAAAA,CAAOQ,OAAO,CAACF,KAAAA,CAAAA,KAAWC,KAAAA,CAAAA,CAAAA;oBAGhE,OAAO,CAACN,WAAWQ,MAAM;AAC3B,gBAAA;AACF,aAAA,CAAA,CACC5B,IAAI,CAAC;gBACJnB,IAAAA,EAAM,wBAAA;AACNqC,gBAAAA,OAAAA,EAASD,OAAAA,CAAQ,oCAAA,CAAA;AACjBjB,gBAAAA,IAAAA,EAAM,CAACmB,MAAAA,GAAAA;AACL,oBAAA,IAAI,CAACA,MAAAA,EAAQ;wBACX,OAAO,KAAA;AACT,oBAAA;oBACA,OAAO,CAACA,OAAOG,GAAG,CAACC,sBAAsBM,IAAI,CAAC,CAACC,GAAAA,GAAQA,GAAAA,KAAQ,EAAA,CAAA;AACjE,gBAAA;AACF,aAAA,CAAA,CACC9B,IAAI,CAAC;gBACJnB,IAAAA,EAAM,gBAAA;AACNqC,gBAAAA,OAAAA,EAASD,OAAAA,CAAQ,6BAAA,CAAA;AACjBjB,gBAAAA,IAAAA,EAAM,CAACmB,MAAAA,GAAAA;AACL,oBAAA,IAAI,CAACA,MAAAA,EAAQ;wBACX,OAAO,KAAA;AACT,oBAAA;oBACA,OAAOA,MAAAA,CACJG,GAAG,CAACC,oBAAAA,CAAAA,CACJQ,KAAK,CAAC,CAACN,KAAAA,GAAUd,kBAAAA,CAAmBX,IAAI,CAACyB,KAAAA,CAAAA,CAAAA;AAC9C,gBAAA;AACF,aAAA,CAAA;YACFO,QAAAA,EAAUhD,GAAAA,CAAIM,MAAM,EAAA,CAAGC,QAAQ;AACjC,SAAA;QAEA,OAAOP,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAqD,KAAAA,CAAAA,CAAMvD,kBAAiC,EAAEC,aAA4B,EAAA;AACnE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBW,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BN,YAAAA,OAAAA,EAASJ,IAAIqB,MAAM,EAAA;AACnBV,YAAAA,GAAAA,EAAKX,IAAIqB,MAAM,EAAA;AACfN,YAAAA,GAAAA,EAAKf,GAAAA,CAAIqB,MAAM,EAAA,CAAGL,IAAI,CAACC,oBAAAA,EAAAA;AACzB,SAAA;QAEA,OAAOjB,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAsD,OAAAA,CAAAA,CAAQxD,kBAAiC,EAAEC,aAA4B,EAAA;AACrE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;YACrBK,OAAAA,EAASJ,GAAAA,CAAIqB,MAAM,EAAA,CAAG6B,OAAO,EAAA;AAC7BzC,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BC,YAAAA,GAAAA,EAAKb,WAAWa,GAAG,EAAA;AACnBI,YAAAA,GAAAA,EAAKjB,WAAWiB,GAAG;AACrB,SAAA;QAEA,OAAOf,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAuD,IAAAA,CAAAA,CAAKzD,kBAAiC,EAAEC,aAA4B,EAAA;AAClE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBW,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7BD,YAAAA,MAAAA,EAAQX,WAAWW,MAAM;AAC3B,SAAA;QAEA,OAAOT,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAwD,KAAAA,CAAAA,CAAM1D,kBAAiC,EAAEC,aAA4B,EAAA;AACnE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBsD,YAAAA,QAAAA,EAAUrD,IAAIkB,OAAO,EAAA;AACrBR,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;YAC7B4C,YAAAA,EAActD,GAAAA,CACX+B,KAAK,EAAA,CACLC,EAAE,CAAChC,GAAAA,CAAIM,MAAM,EAAA,CAAGiD,KAAK,CAAC;AAAC,gBAAA,QAAA;AAAU,gBAAA,QAAA;AAAU,gBAAA,OAAA;AAAS,gBAAA;aAAS,CAAA,CAAA,CAC7DxC,GAAG,CAAC,CAAA,CAAA,CACJR,QAAQ;AACb,SAAA;QAEA,OAAOP,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA4D,QAAAA,CAAAA,CAAS9D,kBAAiC,EAAEC,aAA4B,EAAA;AACtE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASN,WAAWM,OAAO,EAAA;AAC3BK,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7Bc,YAAAA,SAAAA,EAAW1B,WAAW0B,SAAS,EAAA;AAC/BC,YAAAA,SAAAA,EAAW3B,WAAW2B,SAAS;AACjC,SAAA;QAEA,OAAOzB,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA6D,QAAAA,CAAAA,CACE/D,kBAAiC,EACjCC,aAA4B,EAC5B+D,4BAAqD,EACrD,EACEC,WAAW,EACXC,YAAY,EAQb,EAAA;AAED,QAAA,MAAMhE,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;YAC1CkE,MAAAA,EAAQ7D,GAAAA,CAAIM,MAAM,EAAA,CAAGI,QAAQ,CAACE,gBAAAA,CAAYF,QAAQ,CAACI,EAAE,CAAA;YACrD2C,QAAAA,EAAUzD,GAAAA,CAAIM,MAAM,EAAA,CAAGI,QAAQ,EAAA;YAC/BX,IAAAA,EAAMC,GAAAA,CAAIM,MAAM,EAAA,CAAGI,QAAQ,EAAA;AAC3BA,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;YAC7BoD,eAAAA,EAAiB9D,GAAAA,CAAI+D,IAAI,CAAC,IAAA;AACxB,gBAAA,MAAMC,eAAeC,eAAAA,CAAgBL,YAAAA,CAAaH,QAAQ,EAAGG,aAAaE,eAAe,CAAA;gBAEzF,IAAIE,YAAAA,KAAiB,QAAA,IAAYA,YAAAA,KAAiB,SAAA,EAAW;oBAC3D,OAAOhE,GAAAA,CAAIM,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC9B,gBAAA;AAEA,gBAAA,MAAM2D,SAASlE,GAAAA,CAAIM,MAAM,EAAA,CAAGU,IAAI,CAACa,aAAAA,CAAclC,aAAAA,CAAAA,CAAAA;AAC/C,gBAAA,MAAMwE,oBAAAA,GAAuB;AACxBT,oBAAAA,GAAAA,4BAAAA,CAA6BpB,GAAG,CAAC,CAAC,EAAEzC,IAAI,EAAE,GAAKA,IAAAA,CAAAA;AAClD+D,oBAAAA,YAAAA,CAAa/D;AACd,iBAAA;gBAED,MAAMuE,4BAAAA,GAA+BD,qBAAqB3B,MAAM,CAC9D,CAACM,GAAAA,GAAQA,GAAAA,KAAQa,YAAYG,eAAe,CAAA;gBAG9C,OAAOI,MAAAA,CACJ1D,OAAO,CAAC6D,UAAAA,EAAYzD,gBAAAA,CAAYC,KAAK,CAACC,EAAE,CAAA,CACxCE,IAAI,CAAC;oBACJnB,IAAAA,EAAM,8BAAA;AACNqC,oBAAAA,OAAAA,EAASD,OAAAA,CAAQ,iDAAA,CAAA;AACjBjB,oBAAAA,IAAAA,CAAAA,CAAKyB,KAAK,EAAA;AACR,wBAAA,IAAI,CAACA,KAAAA,EAAO;4BACV,OAAO,KAAA;AACT,wBAAA;wBAEA,OAAO,CAAC2B,4BAAAA,CAA6BE,QAAQ,CAAC7B,KAAAA,CAAAA;AAChD,oBAAA;AACF,iBAAA,CAAA,CACC/B,QAAQ,CAACE,gBAAAA,CAAYF,QAAQ,CAACI,EAAE,CAAA;AACrC,YAAA,CAAA;AACF,SAAA;QAEA,OAAOd,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA2E,QAAAA,CAAAA,CAAS7E,kBAAiC,EAAEC,aAA4B,EAAA;AACtE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASN,WAAWM,OAAO,EAAA;AAC3BK,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7Bc,YAAAA,SAAAA,EAAW1B,WAAW0B,SAAS,EAAA;AAC/BC,YAAAA,SAAAA,EAAW3B,WAAW2B,SAAS;AACjC,SAAA;QAEA,OAAOzB,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA4E,MAAAA,CAAAA,CAAO9E,kBAAiC,EAAEC,aAA4B,EAAA;AACpE,QAAA,MAAMC,KAAAA,GAAQ;YACZC,IAAAA,EAAMC,UAAAA,CAAWD,IAAI,CAACH,kBAAAA,EAAoBC,aAAAA,CAAAA;AAC1CI,YAAAA,IAAAA,EAAMD,WAAWC,IAAI,EAAA;AACrBK,YAAAA,OAAAA,EAASN,WAAWM,OAAO,EAAA;AAC3BK,YAAAA,MAAAA,EAAQX,WAAWW,MAAM,EAAA;AACzBC,YAAAA,QAAAA,EAAUZ,WAAWY,QAAQ,EAAA;AAC7Bc,YAAAA,SAAAA,EAAW1B,WAAW0B,SAAS,EAAA;AAC/BC,YAAAA,SAAAA,EAAW3B,WAAW2B,SAAS;AACjC,SAAA;QAEA,OAAOzB,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAU,MAAAA,CAAAA,CAAOZ,kBAAiC,EAAEC,aAA4B,EAAA;QACpE,MAAMC,KAAAA,GAAQ6E,kBAAkB/E,kBAAAA,EAAoBC,aAAAA,CAAAA;QAEpD,OAAOK,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACA8E,IAAAA,CAAAA,CAAKhF,kBAAiC,EAAEC,aAA4B,EAAA;QAClE,MAAMC,KAAAA,GAAQ+E,gBAAgBjF,kBAAAA,EAAoBC,aAAAA,CAAAA;QAElD,OAAOK,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA,CAAA;IACAgF,GAAAA,CAAAA,CAAIlF,kBAAiC,EAAEC,aAA4B,EAAA;QACjE,MAAMC,KAAAA,GAAQ+E,gBAAgBjF,kBAAAA,EAAoBC,aAAAA,CAAAA;QAElD,OAAOK,GAAAA,CAAIC,MAAM,CAACL,KAAAA,CAAAA;AACpB,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/types.ts"],"sourcesContent":["import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createStringShape,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n /**\n * CTB renders field errors as `formatMessage({ id: error })` with no values, so the\n * message must not interpolate anything — the generic `errorsTrads.min` id would leak\n * its `{min}` placeholder. See strapi/strapi#19030.\n */\n .min(1, getTrad('error.validation.enum-empty'))\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n required: validators.required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation!, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = new Set(\n initialForbiddenName.filter((val) => val !== initialData.targetAttribute)\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.has(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createStringShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n"],"names":["attributeTypes","date","usedAttributeNames","reservedNames","shape","name","validators","type","yup","object","datetime","time","default","biginteger","string","nullable","matches","unique","required","max","errorsTrads","regex","id","min","test","isMinSuperiorThanMax","boolean","component","decimal","number","dynamiczone","email","maxLength","minLength","enumeration","GRAPHQL_ENUM_REGEX","alreadyUsedAttributeNames","isNameAllowed","enum","array","of","getTrad","message","values","duplicates","uniq","map","toRegressedEnumValue","filter","value","index","indexOf","length","some","val","every","enumName","float","integer","json","media","multiple","allowedTypes","oneOf","password","relation","alreadyTakenTargetAttributes","initialData","modifiedData","target","targetAttribute","lazy","relationType","getRelationType","schema","initialForbiddenName","forbiddenTargetAttributeName","Set","NAME_REGEX","has","richtext","blocks","createStringShape","text","createTextShape","uid"],"mappings":"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"}
@@ -222,7 +222,7 @@ const forms = {
222
222
  return contentTypeForm.contentTypeForm.base.edit();
223
223
  },
224
224
  advanced ({ extensions }) {
225
- const baseForm = contentTypeForm.contentTypeForm.advanced.default().sections.map((section)=>section.items).flat();
225
+ const baseForm = contentTypeForm.contentTypeForm.advanced.default().sections.flatMap((section)=>section.items);
226
226
  const itemsToAdd = extensions.getAdvancedForm([
227
227
  'contentType'
228
228
  ]);