@strapi/content-type-builder 5.50.0 → 5.50.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/admin/components/AIChat/Chat.js +2 -4
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -1
  3. package/dist/admin/components/AIChat/Chat.mjs +2 -4
  4. package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/UploadFigmaModal.js +1 -1
  6. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  7. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
  8. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  9. package/dist/admin/components/AIChat/components/Messages/Message.js +8 -3
  10. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  11. package/dist/admin/components/AIChat/components/Messages/Message.mjs +8 -3
  12. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/lib/aiClient.js +8 -2
  14. package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
  15. package/dist/admin/components/AIChat/lib/aiClient.mjs +8 -2
  16. package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +0 -3
  18. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
  19. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +0 -3
  20. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
  21. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +9 -7
  22. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
  23. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +9 -7
  24. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
  25. package/dist/admin/components/AIChat/providers/SchemaProvider.js +1 -1
  26. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  27. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +1 -1
  28. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  29. package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
  30. package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
  31. package/dist/admin/components/AttributeIcon.js +1 -1
  32. package/dist/admin/components/AttributeIcon.js.map +1 -1
  33. package/dist/admin/components/AttributeIcon.mjs +1 -1
  34. package/dist/admin/components/AttributeIcon.mjs.map +1 -1
  35. package/dist/admin/components/BooleanDefaultValueSelect.js +3 -2
  36. package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
  37. package/dist/admin/components/BooleanDefaultValueSelect.mjs +3 -2
  38. package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
  39. package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
  40. package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
  41. package/dist/admin/components/CTBSession/useCTBTracking.js +3 -3
  42. package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
  43. package/dist/admin/components/CTBSession/useCTBTracking.mjs +3 -3
  44. package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
  45. package/dist/admin/components/CheckboxWithNumberField.js +3 -2
  46. package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
  47. package/dist/admin/components/CheckboxWithNumberField.mjs +3 -2
  48. package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
  49. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  50. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
  51. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +160 -162
  52. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  53. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +160 -162
  54. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  55. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +1 -1
  56. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  57. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +1 -1
  58. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
  59. package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
  60. package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
  61. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +6 -5
  62. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
  63. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +6 -5
  64. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
  65. package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
  66. package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
  67. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  68. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  69. package/dist/admin/components/DataManager/DataManagerProvider.js +16 -4
  70. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  71. package/dist/admin/components/DataManager/DataManagerProvider.mjs +16 -4
  72. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  73. package/dist/admin/components/DataManager/reducer.js +2 -2
  74. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  75. package/dist/admin/components/DataManager/reducer.mjs +2 -2
  76. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  77. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
  78. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
  79. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
  80. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
  81. package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
  82. package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
  83. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  84. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  85. package/dist/admin/components/FormModal/FormModal.js +91 -71
  86. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  87. package/dist/admin/components/FormModal/FormModal.mjs +91 -70
  88. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  89. package/dist/admin/components/FormModal/attributes/ConditionForm.js +20 -17
  90. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  91. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +20 -17
  92. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  93. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  94. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  95. package/dist/admin/components/FormModal/forms/forms.js +4 -6
  96. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  97. package/dist/admin/components/FormModal/forms/forms.mjs +4 -6
  98. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  99. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
  100. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
  101. package/dist/admin/components/FormModal/reducer.js +9 -6
  102. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  103. package/dist/admin/components/FormModal/reducer.mjs +9 -6
  104. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  105. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +3 -3
  106. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
  107. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +3 -3
  108. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
  109. package/dist/admin/components/FormModal/utils/getFormInputNames.js +1 -1
  110. package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
  111. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +1 -1
  112. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
  113. package/dist/admin/components/FormModal/utils/relations.js +2 -2
  114. package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
  115. package/dist/admin/components/FormModal/utils/relations.mjs +2 -2
  116. package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
  117. package/dist/admin/components/FormModalHeader.js.map +1 -1
  118. package/dist/admin/components/FormModalHeader.mjs.map +1 -1
  119. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
  120. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
  121. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +13 -13
  122. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
  123. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +13 -13
  124. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
  125. package/dist/admin/components/GenericInputs.js +24 -12
  126. package/dist/admin/components/GenericInputs.js.map +1 -1
  127. package/dist/admin/components/GenericInputs.mjs +24 -12
  128. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  129. package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
  130. package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
  131. package/dist/admin/components/PluralName.js.map +1 -1
  132. package/dist/admin/components/PluralName.mjs.map +1 -1
  133. package/dist/admin/components/Relation/Relation.js +3 -3
  134. package/dist/admin/components/Relation/Relation.js.map +1 -1
  135. package/dist/admin/components/Relation/Relation.mjs +3 -3
  136. package/dist/admin/components/Relation/Relation.mjs.map +1 -1
  137. package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
  138. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
  139. package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
  140. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
  141. package/dist/admin/components/SelectCategory.js +6 -0
  142. package/dist/admin/components/SelectCategory.js.map +1 -1
  143. package/dist/admin/components/SelectCategory.mjs +6 -0
  144. package/dist/admin/components/SelectCategory.mjs.map +1 -1
  145. package/dist/admin/components/SelectComponent.js +1 -1
  146. package/dist/admin/components/SelectComponent.js.map +1 -1
  147. package/dist/admin/components/SelectComponent.mjs +1 -1
  148. package/dist/admin/components/SelectComponent.mjs.map +1 -1
  149. package/dist/admin/components/SingularName.js.map +1 -1
  150. package/dist/admin/components/SingularName.mjs.map +1 -1
  151. package/dist/admin/components/TabForm.js +50 -51
  152. package/dist/admin/components/TabForm.js.map +1 -1
  153. package/dist/admin/components/TabForm.mjs +51 -52
  154. package/dist/admin/components/TabForm.mjs.map +1 -1
  155. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +1 -2
  156. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +1 -1
  157. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +6 -2
  158. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +1 -1
  159. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +5 -5
  160. package/dist/admin/src/components/AllowedTypesSelect.d.ts +3 -3
  161. package/dist/admin/src/components/BooleanDefaultValueSelect.d.ts +3 -3
  162. package/dist/admin/src/components/BooleanRadioGroup.d.ts +2 -2
  163. package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +1 -1
  164. package/dist/admin/src/components/CheckboxWithNumberField.d.ts +6 -4
  165. package/dist/admin/src/components/ContentTypeRadioGroup.d.ts +3 -2
  166. package/dist/admin/src/components/CustomRadioGroup/CustomRadioGroup.d.ts +3 -2
  167. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +13 -11
  168. package/dist/admin/src/components/DataManager/reducer.d.ts +14 -10
  169. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +8 -8
  170. package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +9 -3
  171. package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +2 -1
  172. package/dist/admin/src/components/DraftAndPublishToggle.d.ts +1 -6
  173. package/dist/admin/src/components/DynamicZoneList.d.ts +2 -2
  174. package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +3 -2
  175. package/dist/admin/src/components/FormModal/attributes/validation/common.d.ts +3 -1
  176. package/dist/admin/src/components/FormModal/forms/forms.d.ts +59 -26
  177. package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +12 -2
  178. package/dist/admin/src/components/FormModal/reducer.d.ts +104 -32
  179. package/dist/admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.d.ts +11 -1
  180. package/dist/admin/src/components/FormModal/utils/getFormInputNames.d.ts +8 -1
  181. package/dist/admin/src/components/FormModal/utils/relations.d.ts +2 -2
  182. package/dist/admin/src/components/FormModalHeader.d.ts +5 -8
  183. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +2 -2
  184. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +17 -1
  185. package/dist/admin/src/components/GenericInputs.d.ts +12 -7
  186. package/dist/admin/src/components/IconPicker/IconPicker.d.ts +2 -7
  187. package/dist/admin/src/components/PluralName.d.ts +6 -14
  188. package/dist/admin/src/components/Relation/Relation.d.ts +12 -3
  189. package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +3 -2
  190. package/dist/admin/src/components/SelectCategory.d.ts +3 -12
  191. package/dist/admin/src/components/SelectComponent.d.ts +8 -7
  192. package/dist/admin/src/components/SingularName.d.ts +5 -8
  193. package/dist/admin/src/components/TabForm.d.ts +38 -7
  194. package/dist/admin/src/types.d.ts +20 -12
  195. package/dist/admin/src/utils/conditions.d.ts +13 -4
  196. package/dist/admin/src/utils/formAPI.d.ts +38 -33
  197. package/dist/admin/src/utils/getRelationType.d.ts +1 -1
  198. package/dist/admin/src/utils/parseNumberInputValue.d.ts +1 -0
  199. package/dist/admin/utils/conditions.js +38 -28
  200. package/dist/admin/utils/conditions.js.map +1 -1
  201. package/dist/admin/utils/conditions.mjs +37 -28
  202. package/dist/admin/utils/conditions.mjs.map +1 -1
  203. package/dist/admin/utils/formAPI.js +9 -6
  204. package/dist/admin/utils/formAPI.js.map +1 -1
  205. package/dist/admin/utils/formAPI.mjs +9 -6
  206. package/dist/admin/utils/formAPI.mjs.map +1 -1
  207. package/dist/admin/utils/getRelationType.js +3 -0
  208. package/dist/admin/utils/getRelationType.js.map +1 -1
  209. package/dist/admin/utils/getRelationType.mjs +3 -0
  210. package/dist/admin/utils/getRelationType.mjs.map +1 -1
  211. package/dist/admin/utils/getYupInnerErrors.js +6 -4
  212. package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
  213. package/dist/admin/utils/getYupInnerErrors.mjs +6 -4
  214. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
  215. package/dist/admin/utils/parseNumberInputValue.js +15 -0
  216. package/dist/admin/utils/parseNumberInputValue.js.map +1 -0
  217. package/dist/admin/utils/parseNumberInputValue.mjs +13 -0
  218. package/dist/admin/utils/parseNumberInputValue.mjs.map +1 -0
  219. package/dist/server/controllers/validation/relations.js +1 -1
  220. package/dist/server/controllers/validation/relations.js.map +1 -1
  221. package/dist/server/controllers/validation/relations.mjs +1 -1
  222. package/dist/server/controllers/validation/relations.mjs.map +1 -1
  223. package/dist/server/controllers/validation/types.js +4 -3
  224. package/dist/server/controllers/validation/types.js.map +1 -1
  225. package/dist/server/controllers/validation/types.mjs +4 -3
  226. package/dist/server/controllers/validation/types.mjs.map +1 -1
  227. package/package.json +7 -7
@@ -5,18 +5,18 @@ import { useCTBSession } from '../CTBSession/useCTBSession.mjs';
5
5
  import { FormModalNavigationContext } from './FormModalNavigationContext.mjs';
6
6
 
7
7
  const INITIAL_STATE_DATA = {
8
- actionType: null,
9
- attributeName: null,
10
- attributeType: null,
11
- dynamicZoneTarget: null,
12
- forTarget: null,
8
+ actionType: 'create',
9
+ attributeName: '',
10
+ attributeType: '',
11
+ dynamicZoneTarget: '',
12
+ forTarget: 'contentType',
13
13
  modalType: null,
14
14
  isOpen: true,
15
15
  showBackLink: false,
16
- kind: null,
16
+ kind: 'collectionType',
17
17
  step: null,
18
- targetUid: null,
19
- customFieldUid: null,
18
+ targetUid: '',
19
+ customFieldUid: '',
20
20
  activeTab: 'basic'
21
21
  };
22
22
  const FormModalNavigationProvider = ({ children })=>{
@@ -66,7 +66,7 @@ const FormModalNavigationProvider = ({ children })=>{
66
66
  const onOpenModalAddComponentsToDZ = useCallback(({ dynamicZoneTarget, targetUid })=>{
67
67
  setFormModalNavigationState((prevState)=>({
68
68
  ...prevState,
69
- dynamicZoneTarget,
69
+ dynamicZoneTarget: dynamicZoneTarget ?? '',
70
70
  targetUid,
71
71
  modalType: 'addComponentToDynamicZone',
72
72
  forTarget: 'contentType',
@@ -80,7 +80,7 @@ const FormModalNavigationProvider = ({ children })=>{
80
80
  ...prevState,
81
81
  actionType: 'create',
82
82
  forTarget,
83
- targetUid,
83
+ targetUid: targetUid ?? '',
84
84
  modalType: 'chooseAttribute',
85
85
  isOpen: true,
86
86
  showBackLink: false,
@@ -129,7 +129,7 @@ const FormModalNavigationProvider = ({ children })=>{
129
129
  actionType: 'edit',
130
130
  forTarget,
131
131
  targetUid,
132
- kind,
132
+ kind: kind === 'singleType' ? 'singleType' : 'collectionType',
133
133
  isOpen: true,
134
134
  activeTab: 'basic'
135
135
  }));
@@ -162,8 +162,8 @@ const FormModalNavigationProvider = ({ children })=>{
162
162
  modalType: 'addComponentToDynamicZone',
163
163
  actionType: 'create',
164
164
  step: '1',
165
- attributeType: null,
166
- attributeName: null,
165
+ attributeType: '',
166
+ attributeName: '',
167
167
  activeTab: 'basic'
168
168
  }));
169
169
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"FormModalNavigationProvider.mjs","sources":["../../../../admin/src/components/FormModalNavigation/FormModalNavigationProvider.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\n\nimport { useCTBSession } from '../CTBSession/useCTBSession';\n\nimport { FormModalNavigationContext } from './FormModalNavigationContext';\n\nimport type { TrackingEvent } from '@strapi/admin/strapi-admin';\nimport type { Internal, Struct } from '@strapi/types';\n\ntype FormModalNavigationProviderProps = {\n children: React.ReactNode;\n};\n\nexport type Tab = 'basic' | 'advanced';\n\nexport type ModalType =\n | 'chooseAttribute'\n | 'edit'\n | 'attribute'\n | 'customField'\n | 'addComponentToDynamicZone'\n | 'contentType'\n | 'component';\n\nexport type State = Record<string, any>;\n\nexport const INITIAL_STATE_DATA: State = {\n actionType: null,\n attributeName: null,\n attributeType: null,\n dynamicZoneTarget: null,\n forTarget: null,\n modalType: null,\n isOpen: true,\n showBackLink: false,\n kind: null,\n step: null,\n targetUid: null,\n customFieldUid: null,\n activeTab: 'basic',\n};\n\nexport type SelectCustomFieldPayload = {\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type SelectFieldPayload = {\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalAddComponentsToDZPayload = {\n dynamicZoneTarget?: string;\n targetUid: Internal.UID.Schema;\n};\n\nexport type OpenModalAddFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid?: Internal.UID.Schema;\n};\n\nexport type OpenModalEditCustomFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type OpenModalEditFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalEditSchemaPayload = {\n modalType: ModalType;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n kind?: string;\n};\n\nexport type NavigateToChooseAttributeModalPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n};\n\nexport type NavigateToAddCompoToDZModalPayload = {\n dynamicZoneTarget: string;\n};\n\nexport const FormModalNavigationProvider = ({ children }: FormModalNavigationProviderProps) => {\n const [state, setFormModalNavigationState] = useState(INITIAL_STATE_DATA);\n const { trackUsage: originalTrackUsage } = useTracking();\n const { sessionId } = useCTBSession();\n\n // Create a trackUsage that includes session ID from CTBSessionContext\n const trackUsage = useCallback(\n <TEvent extends TrackingEvent>(event: TEvent['name'], properties?: TEvent['properties']) => {\n const propertiesWithSessionId = {\n ...(properties as Record<string, unknown>),\n ctbSessionId: sessionId,\n };\n return originalTrackUsage(event, propertiesWithSessionId as TEvent['properties']);\n },\n [originalTrackUsage, sessionId]\n );\n\n const onClickSelectCustomField = useCallback(\n ({ attributeType, customFieldUid }: SelectCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'customField',\n attributeType,\n customFieldUid,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onClickSelectField = useCallback(\n ({ attributeType, step }: SelectFieldPayload) => {\n if (state.forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldType', { type: attributeType });\n }\n\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'attribute',\n step,\n attributeType,\n showBackLink: true,\n activeTab: 'basic',\n }));\n },\n [state.forTarget, trackUsage]\n );\n\n const onOpenModalAddComponentsToDZ = useCallback(\n ({ dynamicZoneTarget, targetUid }: OpenModalAddComponentsToDZPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n dynamicZoneTarget,\n targetUid,\n modalType: 'addComponentToDynamicZone',\n forTarget: 'contentType',\n step: '1',\n actionType: 'edit',\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalAddField = useCallback(({ forTarget, targetUid }: OpenModalAddFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n isOpen: true,\n showBackLink: false,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalCreateSchema = useCallback((nextState: State) => {\n setFormModalNavigationState((prevState) => ({\n ...prevState,\n ...nextState,\n isOpen: true,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalEditCustomField = useCallback(\n ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n customFieldUid,\n }: OpenModalEditCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'customField',\n customFieldUid,\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onOpenModalEditField = useCallback(\n ({ forTarget, targetUid, attributeName, attributeType, step }: OpenModalEditFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'attribute',\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalEditSchema = useCallback(\n ({ modalType, forTarget, targetUid, kind }: OpenModalEditSchemaPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType,\n actionType: 'edit',\n forTarget,\n targetUid,\n kind,\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onCloseModal = useCallback(() => {\n setFormModalNavigationState(INITIAL_STATE_DATA);\n }, []);\n\n const onNavigateToChooseAttributeModal = useCallback(\n ({ forTarget, targetUid }: NavigateToChooseAttributeModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onNavigateToCreateComponentStep2 = useCallback(() => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n attributeType: 'component',\n modalType: 'attribute',\n step: '2',\n activeTab: 'basic',\n }));\n }, []);\n\n const onNavigateToAddCompoToDZModal = useCallback(\n ({ dynamicZoneTarget }: NavigateToAddCompoToDZModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n dynamicZoneTarget,\n modalType: 'addComponentToDynamicZone',\n actionType: 'create',\n step: '1',\n attributeType: null,\n attributeName: null,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const setActiveTab = useCallback((value: Tab) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n activeTab: value,\n }));\n }, []);\n\n const contextValue = useMemo(\n () => ({\n ...state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setFormModalNavigationState,\n setActiveTab,\n }),\n [\n state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setActiveTab,\n ]\n );\n\n return (\n <FormModalNavigationContext.Provider value={contextValue}>\n {children}\n </FormModalNavigationContext.Provider>\n );\n};\n"],"names":["INITIAL_STATE_DATA","actionType","attributeName","attributeType","dynamicZoneTarget","forTarget","modalType","isOpen","showBackLink","kind","step","targetUid","customFieldUid","activeTab","FormModalNavigationProvider","children","state","setFormModalNavigationState","useState","trackUsage","originalTrackUsage","useTracking","sessionId","useCTBSession","useCallback","event","properties","propertiesWithSessionId","ctbSessionId","onClickSelectCustomField","prevState","onClickSelectField","type","onOpenModalAddComponentsToDZ","onOpenModalAddField","onOpenModalCreateSchema","nextState","onOpenModalEditCustomField","onOpenModalEditField","onOpenModalEditSchema","onCloseModal","onNavigateToChooseAttributeModal","prev","onNavigateToCreateComponentStep2","onNavigateToAddCompoToDZModal","setActiveTab","value","contextValue","useMemo","_jsx","FormModalNavigationContext","Provider"],"mappings":";;;;;;MA4BaA,kBAAAA,GAA4B;IACvCC,UAAAA,EAAY,IAAA;IACZC,aAAAA,EAAe,IAAA;IACfC,aAAAA,EAAe,IAAA;IACfC,iBAAAA,EAAmB,IAAA;IACnBC,SAAAA,EAAW,IAAA;IACXC,SAAAA,EAAW,IAAA;IACXC,MAAAA,EAAQ,IAAA;IACRC,YAAAA,EAAc,KAAA;IACdC,IAAAA,EAAM,IAAA;IACNC,IAAAA,EAAM,IAAA;IACNC,SAAAA,EAAW,IAAA;IACXC,cAAAA,EAAgB,IAAA;IAChBC,SAAAA,EAAW;AACb;AAsDO,MAAMC,2BAAAA,GAA8B,CAAC,EAAEC,QAAQ,EAAoC,GAAA;AACxF,IAAA,MAAM,CAACC,KAAAA,EAAOC,2BAAAA,CAA4B,GAAGC,QAAAA,CAASlB,kBAAAA,CAAAA;AACtD,IAAA,MAAM,EAAEmB,UAAAA,EAAYC,kBAAkB,EAAE,GAAGC,WAAAA,EAAAA;IAC3C,MAAM,EAAEC,SAAS,EAAE,GAAGC,aAAAA,EAAAA;;IAGtB,MAAMJ,UAAAA,GAAaK,WAAAA,CACjB,CAA+BC,KAAAA,EAAuBC,UAAAA,GAAAA;AACpD,QAAA,MAAMC,uBAAAA,GAA0B;AAC9B,YAAA,GAAID,UAAU;YACdE,YAAAA,EAAcN;AAChB,SAAA;AACA,QAAA,OAAOF,mBAAmBK,KAAAA,EAAOE,uBAAAA,CAAAA;IACnC,CAAA,EACA;AAACP,QAAAA,kBAAAA;AAAoBE,QAAAA;AAAU,KAAA,CAAA;AAGjC,IAAA,MAAMO,2BAA2BL,WAAAA,CAC/B,CAAC,EAAErB,aAAa,EAAES,cAAc,EAA4B,GAAA;QAC1DK,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;gBACZ7B,UAAAA,EAAY,QAAA;gBACZK,SAAAA,EAAW,aAAA;AACXH,gBAAAA,aAAAA;AACAS,gBAAAA,cAAAA;gBACAC,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;AAGJ,IAAA,MAAMkB,qBAAqBP,WAAAA,CACzB,CAAC,EAAErB,aAAa,EAAEO,IAAI,EAAsB,GAAA;QAC1C,IAAIM,KAAAA,CAAMX,SAAS,KAAK,aAAA,EAAe;AACrCc,YAAAA,UAAAA,CAAW,+BAAA,EAAiC;gBAAEa,IAAAA,EAAM7B;AAAc,aAAA,CAAA;AACpE,QAAA;QAEAc,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;gBACZ7B,UAAAA,EAAY,QAAA;gBACZK,SAAAA,EAAW,WAAA;AACXI,gBAAAA,IAAAA;AACAP,gBAAAA,aAAAA;gBACAK,YAAAA,EAAc,IAAA;gBACdK,SAAAA,EAAW;aACb,CAAA,CAAA;IACF,CAAA,EACA;AAACG,QAAAA,KAAAA,CAAMX,SAAS;AAAEc,QAAAA;AAAW,KAAA,CAAA;AAG/B,IAAA,MAAMc,+BAA+BT,WAAAA,CACnC,CAAC,EAAEpB,iBAAiB,EAAEO,SAAS,EAAqC,GAAA;QAClEM,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;AACZ1B,gBAAAA,iBAAAA;AACAO,gBAAAA,SAAAA;gBACAL,SAAAA,EAAW,2BAAA;gBACXD,SAAAA,EAAW,aAAA;gBACXK,IAAAA,EAAM,GAAA;gBACNT,UAAAA,EAAY,MAAA;gBACZM,MAAAA,EAAQ;aACV,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;AAGJ,IAAA,MAAM2B,sBAAsBV,WAAAA,CAAY,CAAC,EAAEnB,SAAS,EAAEM,SAAS,EAA4B,GAAA;QACzFM,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;gBACZ7B,UAAAA,EAAY,QAAA;AACZI,gBAAAA,SAAAA;AACAM,gBAAAA,SAAAA;gBACAL,SAAAA,EAAW,iBAAA;gBACXC,MAAAA,EAAQ,IAAA;gBACRC,YAAAA,EAAc,KAAA;gBACdK,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,MAAMsB,uBAAAA,GAA0BX,YAAY,CAACY,SAAAA,GAAAA;QAC3CnB,2BAAAA,CAA4B,CAACa,aAAe;AAC1C,gBAAA,GAAGA,SAAS;AACZ,gBAAA,GAAGM,SAAS;gBACZ7B,MAAAA,EAAQ,IAAA;gBACRM,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAMwB,0BAAAA,GAA6Bb,WAAAA,CACjC,CAAC,EACCnB,SAAS,EACTM,SAAS,EACTT,aAAa,EACbC,aAAa,EACbS,cAAc,EACkB,GAAA;QAChCK,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;gBACZxB,SAAAA,EAAW,aAAA;AACXM,gBAAAA,cAAAA;gBACAX,UAAAA,EAAY,MAAA;AACZI,gBAAAA,SAAAA;AACAM,gBAAAA,SAAAA;AACAT,gBAAAA,aAAAA;AACAC,gBAAAA,aAAAA;gBACAI,MAAAA,EAAQ,IAAA;gBACRM,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;AAGJ,IAAA,MAAMyB,oBAAAA,GAAuBd,WAAAA,CAC3B,CAAC,EAAEnB,SAAS,EAAEM,SAAS,EAAET,aAAa,EAAEC,aAAa,EAAEO,IAAI,EAA6B,GAAA;QACtFO,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;gBACZxB,SAAAA,EAAW,WAAA;gBACXL,UAAAA,EAAY,MAAA;AACZI,gBAAAA,SAAAA;AACAM,gBAAAA,SAAAA;AACAT,gBAAAA,aAAAA;AACAC,gBAAAA,aAAAA;AACAO,gBAAAA,IAAAA;gBACAH,MAAAA,EAAQ;aACV,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;IAGJ,MAAMgC,qBAAAA,GAAwBf,WAAAA,CAC5B,CAAC,EAAElB,SAAS,EAAED,SAAS,EAAEM,SAAS,EAAEF,IAAI,EAA8B,GAAA;QACpEQ,2BAAAA,CAA4B,CAACa,aAAsB;AACjD,gBAAA,GAAGA,SAAS;AACZxB,gBAAAA,SAAAA;gBACAL,UAAAA,EAAY,MAAA;AACZI,gBAAAA,SAAAA;AACAM,gBAAAA,SAAAA;AACAF,gBAAAA,IAAAA;gBACAF,MAAAA,EAAQ,IAAA;gBACRM,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;AAGJ,IAAA,MAAM2B,eAAehB,WAAAA,CAAY,IAAA;QAC/BP,2BAAAA,CAA4BjB,kBAAAA,CAAAA;AAC9B,IAAA,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAMyC,mCAAmCjB,WAAAA,CACvC,CAAC,EAAEnB,SAAS,EAAEM,SAAS,EAAyC,GAAA;QAC9DM,2BAAAA,CAA4B,CAACyB,QAAiB;AAC5C,gBAAA,GAAGA,IAAI;AACPrC,gBAAAA,SAAAA;AACAM,gBAAAA,SAAAA;gBACAL,SAAAA,EAAW,iBAAA;gBACXO,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;AAGJ,IAAA,MAAM8B,mCAAmCnB,WAAAA,CAAY,IAAA;QACnDP,2BAAAA,CAA4B,CAACyB,QAAiB;AAC5C,gBAAA,GAAGA,IAAI;gBACPvC,aAAAA,EAAe,WAAA;gBACfG,SAAAA,EAAW,WAAA;gBACXI,IAAAA,EAAM,GAAA;gBACNG,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM+B,6BAAAA,GAAgCpB,WAAAA,CACpC,CAAC,EAAEpB,iBAAiB,EAAsC,GAAA;QACxDa,2BAAAA,CAA4B,CAACyB,QAAiB;AAC5C,gBAAA,GAAGA,IAAI;AACPtC,gBAAAA,iBAAAA;gBACAE,SAAAA,EAAW,2BAAA;gBACXL,UAAAA,EAAY,QAAA;gBACZS,IAAAA,EAAM,GAAA;gBACNP,aAAAA,EAAe,IAAA;gBACfD,aAAAA,EAAe,IAAA;gBACfW,SAAAA,EAAW;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EACA,EAAE,CAAA;IAGJ,MAAMgC,YAAAA,GAAerB,YAAY,CAACsB,KAAAA,GAAAA;QAChC7B,2BAAAA,CAA4B,CAACyB,QAAiB;AAC5C,gBAAA,GAAGA,IAAI;gBACP7B,SAAAA,EAAWiC;aACb,CAAA,CAAA;AACF,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,MAAMC,YAAAA,GAAeC,OAAAA,CACnB,KAAO;AACL,YAAA,GAAGhC,KAAK;AACRe,YAAAA,kBAAAA;AACAF,YAAAA,wBAAAA;AACAW,YAAAA,YAAAA;AACAC,YAAAA,gCAAAA;AACAG,YAAAA,6BAAAA;AACAX,YAAAA,4BAAAA;AACAU,YAAAA,gCAAAA;AACAT,YAAAA,mBAAAA;AACAC,YAAAA,uBAAAA;AACAG,YAAAA,oBAAAA;AACAD,YAAAA,0BAAAA;AACAE,YAAAA,qBAAAA;AACAtB,YAAAA,2BAAAA;AACA4B,YAAAA;AACF,SAAA,CAAA,EACA;AACE7B,QAAAA,KAAAA;AACAe,QAAAA,kBAAAA;AACAF,QAAAA,wBAAAA;AACAW,QAAAA,YAAAA;AACAC,QAAAA,gCAAAA;AACAG,QAAAA,6BAAAA;AACAX,QAAAA,4BAAAA;AACAU,QAAAA,gCAAAA;AACAT,QAAAA,mBAAAA;AACAC,QAAAA,uBAAAA;AACAG,QAAAA,oBAAAA;AACAD,QAAAA,0BAAAA;AACAE,QAAAA,qBAAAA;AACAM,QAAAA;AACD,KAAA,CAAA;IAGH,qBACEI,GAAA,CAACC,2BAA2BC,QAAQ,EAAA;QAACL,KAAAA,EAAOC,YAAAA;AACzChC,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}
1
+ {"version":3,"file":"FormModalNavigationProvider.mjs","sources":["../../../../admin/src/components/FormModalNavigation/FormModalNavigationProvider.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\n\nimport { useCTBSession } from '../CTBSession/useCTBSession';\n\nimport { FormModalNavigationContext } from './FormModalNavigationContext';\n\nimport type { TrackingEvent } from '@strapi/admin/strapi-admin';\nimport type { Internal, Struct } from '@strapi/types';\n\ntype FormModalNavigationProviderProps = {\n children: React.ReactNode;\n};\n\nexport type Tab = 'basic' | 'advanced';\n\nexport type ModalType =\n | 'chooseAttribute'\n | 'edit'\n | 'attribute'\n | 'customField'\n | 'addComponentToDynamicZone'\n | 'contentType'\n | 'component';\n\nexport type ActionType = 'create' | 'edit' | null;\n\nexport type State = {\n actionType: Exclude<ActionType, null>;\n attributeName: string;\n attributeType: string;\n dynamicZoneTarget: string;\n forTarget: Struct.ModelType;\n modalType: ModalType | null;\n isOpen: boolean;\n showBackLink: boolean;\n kind: Struct.ContentTypeKind;\n step: string | null;\n targetUid: Internal.UID.Schema;\n customFieldUid: string;\n activeTab: Tab;\n};\n\nexport const INITIAL_STATE_DATA: State = {\n actionType: 'create',\n attributeName: '',\n attributeType: '',\n dynamicZoneTarget: '',\n forTarget: 'contentType',\n modalType: null,\n isOpen: true,\n showBackLink: false,\n kind: 'collectionType',\n step: null,\n targetUid: '' as Internal.UID.Schema,\n customFieldUid: '',\n activeTab: 'basic',\n};\n\nexport type SelectCustomFieldPayload = {\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type SelectFieldPayload = {\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalAddComponentsToDZPayload = {\n dynamicZoneTarget?: string;\n targetUid: Internal.UID.Schema;\n};\n\nexport type OpenModalAddFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid?: Internal.UID.Schema;\n};\n\nexport type OpenModalEditCustomFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n customFieldUid: string;\n};\n\nexport type OpenModalEditFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeName: string;\n attributeType: string;\n step: string | null;\n};\n\nexport type OpenModalEditSchemaPayload = {\n modalType: ModalType;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n kind?: string;\n};\n\nexport type NavigateToChooseAttributeModalPayload = {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n};\n\nexport type NavigateToAddCompoToDZModalPayload = {\n dynamicZoneTarget: string;\n};\n\nexport type OpenModalCreateSchemaPayload = Pick<\n State,\n 'actionType' | 'forTarget' | 'kind' | 'modalType'\n>;\n\nexport const FormModalNavigationProvider = ({ children }: FormModalNavigationProviderProps) => {\n const [state, setFormModalNavigationState] = useState(INITIAL_STATE_DATA);\n const { trackUsage: originalTrackUsage } = useTracking();\n const { sessionId } = useCTBSession();\n\n // Create a trackUsage that includes session ID from CTBSessionContext\n const trackUsage = useCallback(\n <TEvent extends TrackingEvent>(event: TEvent['name'], properties?: TEvent['properties']) => {\n const propertiesWithSessionId = {\n ...(properties as Record<string, unknown>),\n ctbSessionId: sessionId,\n };\n return originalTrackUsage(event, propertiesWithSessionId as TEvent['properties']);\n },\n [originalTrackUsage, sessionId]\n );\n\n const onClickSelectCustomField = useCallback(\n ({ attributeType, customFieldUid }: SelectCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'customField',\n attributeType,\n customFieldUid,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onClickSelectField = useCallback(\n ({ attributeType, step }: SelectFieldPayload) => {\n if (state.forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldType', { type: attributeType });\n }\n\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n modalType: 'attribute',\n step,\n attributeType,\n showBackLink: true,\n activeTab: 'basic',\n }));\n },\n [state.forTarget, trackUsage]\n );\n\n const onOpenModalAddComponentsToDZ = useCallback(\n ({ dynamicZoneTarget, targetUid }: OpenModalAddComponentsToDZPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n dynamicZoneTarget: dynamicZoneTarget ?? '',\n targetUid,\n modalType: 'addComponentToDynamicZone',\n forTarget: 'contentType',\n step: '1',\n actionType: 'edit',\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalAddField = useCallback(({ forTarget, targetUid }: OpenModalAddFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n actionType: 'create',\n forTarget,\n targetUid: targetUid ?? ('' as Internal.UID.Schema),\n modalType: 'chooseAttribute',\n isOpen: true,\n showBackLink: false,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalCreateSchema = useCallback((nextState: OpenModalCreateSchemaPayload) => {\n setFormModalNavigationState((prevState) => ({\n ...prevState,\n ...nextState,\n isOpen: true,\n activeTab: 'basic',\n }));\n }, []);\n\n const onOpenModalEditCustomField = useCallback(\n ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n customFieldUid,\n }: OpenModalEditCustomFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'customField',\n customFieldUid,\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onOpenModalEditField = useCallback(\n ({ forTarget, targetUid, attributeName, attributeType, step }: OpenModalEditFieldPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType: 'attribute',\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n isOpen: true,\n }));\n },\n []\n );\n\n const onOpenModalEditSchema = useCallback(\n ({ modalType, forTarget, targetUid, kind }: OpenModalEditSchemaPayload) => {\n setFormModalNavigationState((prevState: State) => ({\n ...prevState,\n modalType,\n actionType: 'edit',\n forTarget,\n targetUid,\n kind: kind === 'singleType' ? 'singleType' : 'collectionType',\n isOpen: true,\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onCloseModal = useCallback(() => {\n setFormModalNavigationState(INITIAL_STATE_DATA);\n }, []);\n\n const onNavigateToChooseAttributeModal = useCallback(\n ({ forTarget, targetUid }: NavigateToChooseAttributeModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const onNavigateToCreateComponentStep2 = useCallback(() => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n attributeType: 'component',\n modalType: 'attribute',\n step: '2',\n activeTab: 'basic',\n }));\n }, []);\n\n const onNavigateToAddCompoToDZModal = useCallback(\n ({ dynamicZoneTarget }: NavigateToAddCompoToDZModalPayload) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n dynamicZoneTarget,\n modalType: 'addComponentToDynamicZone',\n actionType: 'create',\n step: '1',\n attributeType: '',\n attributeName: '',\n activeTab: 'basic',\n }));\n },\n []\n );\n\n const setActiveTab = useCallback((value: Tab) => {\n setFormModalNavigationState((prev: State) => ({\n ...prev,\n activeTab: value,\n }));\n }, []);\n\n const contextValue = useMemo(\n () => ({\n ...state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setFormModalNavigationState,\n setActiveTab,\n }),\n [\n state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setActiveTab,\n ]\n );\n\n return (\n <FormModalNavigationContext.Provider value={contextValue}>\n {children}\n </FormModalNavigationContext.Provider>\n );\n};\n"],"names":["INITIAL_STATE_DATA","actionType","attributeName","attributeType","dynamicZoneTarget","forTarget","modalType","isOpen","showBackLink","kind","step","targetUid","customFieldUid","activeTab","FormModalNavigationProvider","children","state","setFormModalNavigationState","useState","trackUsage","originalTrackUsage","useTracking","sessionId","useCTBSession","useCallback","event","properties","propertiesWithSessionId","ctbSessionId","onClickSelectCustomField","prevState","onClickSelectField","type","onOpenModalAddComponentsToDZ","onOpenModalAddField","onOpenModalCreateSchema","nextState","onOpenModalEditCustomField","onOpenModalEditField","onOpenModalEditSchema","onCloseModal","onNavigateToChooseAttributeModal","prev","onNavigateToCreateComponentStep2","onNavigateToAddCompoToDZModal","setActiveTab","value","contextValue","useMemo","_jsx","FormModalNavigationContext","Provider"],"mappings":"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"}
@@ -34,7 +34,7 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
34
  var formatISO__default = /*#__PURE__*/_interopDefault(formatISO);
35
35
  var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
36
36
 
37
- const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
37
+ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable: _isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
38
38
  const { formatMessage } = reactIntl.useIntl();
39
39
  // TODO: Workaround to get the field hint values if they exist on the type
40
40
  const getFieldHintValue = (attribute, key)=>{
@@ -67,14 +67,26 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
67
67
  // the API always returns null, which throws an error in React,
68
68
  // therefore we cast this case to undefined
69
69
  const value = defaultValue ?? undefined;
70
+ const stringValue = typeof value === 'string' || typeof value === 'number' ? value.toString() : '';
71
+ const numberValue = (()=>{
72
+ if (typeof value === 'number') {
73
+ return Number.isFinite(value) ? value : undefined;
74
+ }
75
+ if (typeof value === 'string' && value.trim() !== '') {
76
+ const parsedValue = Number(value);
77
+ return Number.isFinite(parsedValue) ? parsedValue : undefined;
78
+ }
79
+ return undefined;
80
+ })();
81
+ const selectValue = typeof value === 'string' || typeof value === 'number' || value === null ? value : undefined;
82
+ const jsonValue = value !== undefined && (typeof value === 'object' || typeof value === 'boolean' || typeof value === 'number') ? JSON.stringify(value, null, 2) : typeof value === 'string' ? value : undefined;
70
83
  /*
71
84
  TODO: ideally we should pass in `defaultValue` and `value` for
72
85
  inputs, in order to make them controlled components. This variable
73
86
  acts as a fallback for now, to prevent React errors in devopment mode
74
87
 
75
88
  See: https://github.com/strapi/strapi/pull/12861
76
- */ const valueWithEmptyStringFallback = value ?? '';
77
- function getErrorMessage(error) {
89
+ */ function getErrorMessage(error) {
78
90
  if (!error) {
79
91
  return null;
80
92
  }
@@ -133,7 +145,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
133
145
  case 'json':
134
146
  {
135
147
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.JSONInput, {
136
- value: value,
148
+ value: jsonValue,
137
149
  disabled: disabled,
138
150
  onChange: (json)=>{
139
151
  // Default to null when the field is not required and there is no input value
@@ -152,7 +164,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
152
164
  case 'bool':
153
165
  {
154
166
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
155
- checked: defaultValue === null ? null : defaultValue || false,
167
+ checked: defaultValue === null ? null : Boolean(defaultValue),
156
168
  disabled: disabled,
157
169
  offLabel: formatMessage({
158
170
  id: 'app.components.ToggleCheckbox.off-label',
@@ -265,7 +277,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
265
277
  },
266
278
  placeholder: formattedPlaceholder,
267
279
  step: step,
268
- value: value,
280
+ value: numberValue,
269
281
  autoFocus: autoFocus
270
282
  });
271
283
  }
@@ -285,7 +297,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
285
297
  },
286
298
  placeholder: formattedPlaceholder,
287
299
  type: "email",
288
- value: valueWithEmptyStringFallback,
300
+ value: stringValue,
289
301
  autoFocus: autoFocus
290
302
  });
291
303
  }
@@ -307,7 +319,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
307
319
  },
308
320
  placeholder: formattedPlaceholder,
309
321
  type: "text",
310
- value: valueWithEmptyStringFallback,
322
+ value: stringValue,
311
323
  autoFocus: autoFocus
312
324
  });
313
325
  }
@@ -347,7 +359,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
347
359
  },
348
360
  placeholder: formattedPlaceholder,
349
361
  type: showPassword ? 'text' : 'password',
350
- value: valueWithEmptyStringFallback
362
+ value: stringValue
351
363
  });
352
364
  }
353
365
  case 'select':
@@ -364,7 +376,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
364
376
  });
365
377
  },
366
378
  placeholder: formattedPlaceholder,
367
- value: value,
379
+ value: selectValue,
368
380
  children: options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value })=>{
369
381
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
370
382
  value: value,
@@ -387,13 +399,13 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
387
399
  }
388
400
  }),
389
401
  placeholder: formattedPlaceholder,
390
- value: valueWithEmptyStringFallback
402
+ value: stringValue
391
403
  });
392
404
  }
393
405
  case 'time':
394
406
  {
395
407
  const formattedValue = timeFormat.handleTimeChange({
396
- value});
408
+ value: stringValue});
397
409
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.TimePicker, {
398
410
  clearLabel: formatMessage({
399
411
  id: 'clearLabel',
@@ -1 +1 @@
1
- {"version":3,"file":"GenericInputs.js","sources":["../../../admin/src/components/GenericInputs.tsx"],"sourcesContent":["/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ninterface CustomInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n value?: Schema.Attribute.Value<TAttribute>;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: Schema.Attribute.Value<TAttribute>;\n isNullable?: boolean;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n onDelete,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable,\n autoFocus,\n attribute,\n attributeName,\n conditionFields,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs ? customInputs[type] : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n const valueWithEmptyStringFallback = value ?? '';\n\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n onDelete={onDelete}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n autoFocus={autoFocus}\n attributeName={attributeName}\n conditionFields={conditionFields}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={value}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : defaultValue || false}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={value}\n autoFocus={autoFocus}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={value}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && !['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n"],"names":["GenericInput","autoComplete","customInputs","description","disabled","intlLabel","labelAction","error","name","onChange","onDelete","options","placeholder","required","step","type","value","defaultValue","isNullable","autoFocus","attribute","attributeName","conditionFields","rest","formatMessage","useIntl","getFieldHintValue","key","hint","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","React","useState","CustomInput","undefined","valueWithEmptyStringFallback","getErrorMessage","id","defaultMessage","values","errorMessage","_jsx","label","formattedPlaceholder","getComponent","JSONInput","json","length","target","minHeight","maxHeight","Toggle","checked","offLabel","onLabel","e","Checkbox","onCheckedChange","Boolean","dateValue","parseDateValue","DateTimePicker","clearLabel","date","formattedDate","toISOString","onClear","DatePicker","formatISO","representation","NumberInput","onValueChange","TextInput","endAction","button","aria-label","onClick","prev","style","border","padding","background","Eye","fill","EyeStriked","SingleSelect","map","metadatas","hidden","SingleSelectOption","Textarea","event","formattedValue","handleTimeChange","TimePicker","time","handleTimeChangeEvent","_jsxs","Field","Root","Label","action","Error","Hint","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","message","divider","br","includes","maxValue","Math","parsedMin","Number","parsedMinLength","isNaN","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","isEqual"],"mappings":"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"}
1
+ {"version":3,"file":"GenericInputs.js","sources":["../../../admin/src/components/GenericInputs.tsx"],"sourcesContent":["/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ntype ConditionField = {\n name: string;\n type: string;\n enum?: string[];\n};\n\ninterface CustomInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value?: unknown;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n value?: unknown;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: ConditionField[];\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value?: unknown;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: unknown;\n isNullable?: boolean;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: ConditionField[];\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n onDelete,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable: _isNullable,\n autoFocus,\n attribute,\n attributeName,\n conditionFields,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs\n ? (customInputs[type] as React.ComponentType<CustomInputProps> | undefined)\n : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n const stringValue =\n typeof value === 'string' || typeof value === 'number' ? value.toString() : '';\n const numberValue = (() => {\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n\n if (typeof value === 'string' && value.trim() !== '') {\n const parsedValue = Number(value);\n\n return Number.isFinite(parsedValue) ? parsedValue : undefined;\n }\n\n return undefined;\n })();\n const selectValue =\n typeof value === 'string' || typeof value === 'number' || value === null ? value : undefined;\n const jsonValue =\n value !== undefined &&\n (typeof value === 'object' || typeof value === 'boolean' || typeof value === 'number')\n ? JSON.stringify(value, null, 2)\n : typeof value === 'string'\n ? value\n : undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n onDelete={onDelete}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n autoFocus={autoFocus}\n attributeName={attributeName}\n conditionFields={conditionFields}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={jsonValue}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : Boolean(defaultValue)}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={numberValue}\n autoFocus={autoFocus}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={stringValue}\n autoFocus={autoFocus}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={stringValue}\n autoFocus={autoFocus}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={stringValue}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={selectValue}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={stringValue}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value: stringValue, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && !['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n"],"names":["GenericInput","autoComplete","customInputs","description","disabled","intlLabel","labelAction","error","name","onChange","onDelete","options","placeholder","required","step","type","value","defaultValue","isNullable","_isNullable","autoFocus","attribute","attributeName","conditionFields","rest","formatMessage","useIntl","getFieldHintValue","key","hint","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","React","useState","CustomInput","undefined","stringValue","toString","numberValue","Number","isFinite","trim","parsedValue","selectValue","jsonValue","JSON","stringify","getErrorMessage","id","defaultMessage","values","errorMessage","_jsx","label","formattedPlaceholder","getComponent","JSONInput","json","length","target","minHeight","maxHeight","Toggle","checked","Boolean","offLabel","onLabel","e","Checkbox","onCheckedChange","dateValue","parseDateValue","DateTimePicker","clearLabel","date","formattedDate","toISOString","onClear","DatePicker","formatISO","representation","NumberInput","onValueChange","TextInput","endAction","button","aria-label","onClick","prev","style","border","padding","background","Eye","fill","EyeStriked","SingleSelect","map","metadatas","hidden","SingleSelectOption","Textarea","event","formattedValue","handleTimeChange","TimePicker","time","handleTimeChangeEvent","_jsxs","Field","Root","Label","action","Error","Hint","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","message","divider","br","includes","maxValue","Math","parsedMin","parsedMinLength","isNaN","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","isEqual"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { useIntl } from 'react-intl';
8
8
  import { parseDateValue } from '../utils/parseDateValue.mjs';
9
9
  import { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat.mjs';
10
10
 
11
- const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
11
+ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable: _isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
12
12
  const { formatMessage } = useIntl();
13
13
  // TODO: Workaround to get the field hint values if they exist on the type
14
14
  const getFieldHintValue = (attribute, key)=>{
@@ -41,14 +41,26 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
41
41
  // the API always returns null, which throws an error in React,
42
42
  // therefore we cast this case to undefined
43
43
  const value = defaultValue ?? undefined;
44
+ const stringValue = typeof value === 'string' || typeof value === 'number' ? value.toString() : '';
45
+ const numberValue = (()=>{
46
+ if (typeof value === 'number') {
47
+ return Number.isFinite(value) ? value : undefined;
48
+ }
49
+ if (typeof value === 'string' && value.trim() !== '') {
50
+ const parsedValue = Number(value);
51
+ return Number.isFinite(parsedValue) ? parsedValue : undefined;
52
+ }
53
+ return undefined;
54
+ })();
55
+ const selectValue = typeof value === 'string' || typeof value === 'number' || value === null ? value : undefined;
56
+ const jsonValue = value !== undefined && (typeof value === 'object' || typeof value === 'boolean' || typeof value === 'number') ? JSON.stringify(value, null, 2) : typeof value === 'string' ? value : undefined;
44
57
  /*
45
58
  TODO: ideally we should pass in `defaultValue` and `value` for
46
59
  inputs, in order to make them controlled components. This variable
47
60
  acts as a fallback for now, to prevent React errors in devopment mode
48
61
 
49
62
  See: https://github.com/strapi/strapi/pull/12861
50
- */ const valueWithEmptyStringFallback = value ?? '';
51
- function getErrorMessage(error) {
63
+ */ function getErrorMessage(error) {
52
64
  if (!error) {
53
65
  return null;
54
66
  }
@@ -107,7 +119,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
107
119
  case 'json':
108
120
  {
109
121
  return /*#__PURE__*/ jsx(JSONInput, {
110
- value: value,
122
+ value: jsonValue,
111
123
  disabled: disabled,
112
124
  onChange: (json)=>{
113
125
  // Default to null when the field is not required and there is no input value
@@ -126,7 +138,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
126
138
  case 'bool':
127
139
  {
128
140
  return /*#__PURE__*/ jsx(Toggle, {
129
- checked: defaultValue === null ? null : defaultValue || false,
141
+ checked: defaultValue === null ? null : Boolean(defaultValue),
130
142
  disabled: disabled,
131
143
  offLabel: formatMessage({
132
144
  id: 'app.components.ToggleCheckbox.off-label',
@@ -239,7 +251,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
239
251
  },
240
252
  placeholder: formattedPlaceholder,
241
253
  step: step,
242
- value: value,
254
+ value: numberValue,
243
255
  autoFocus: autoFocus
244
256
  });
245
257
  }
@@ -259,7 +271,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
259
271
  },
260
272
  placeholder: formattedPlaceholder,
261
273
  type: "email",
262
- value: valueWithEmptyStringFallback,
274
+ value: stringValue,
263
275
  autoFocus: autoFocus
264
276
  });
265
277
  }
@@ -281,7 +293,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
281
293
  },
282
294
  placeholder: formattedPlaceholder,
283
295
  type: "text",
284
- value: valueWithEmptyStringFallback,
296
+ value: stringValue,
285
297
  autoFocus: autoFocus
286
298
  });
287
299
  }
@@ -321,7 +333,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
321
333
  },
322
334
  placeholder: formattedPlaceholder,
323
335
  type: showPassword ? 'text' : 'password',
324
- value: valueWithEmptyStringFallback
336
+ value: stringValue
325
337
  });
326
338
  }
327
339
  case 'select':
@@ -338,7 +350,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
338
350
  });
339
351
  },
340
352
  placeholder: formattedPlaceholder,
341
- value: value,
353
+ value: selectValue,
342
354
  children: options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value })=>{
343
355
  return /*#__PURE__*/ jsx(SingleSelectOption, {
344
356
  value: value,
@@ -361,13 +373,13 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
361
373
  }
362
374
  }),
363
375
  placeholder: formattedPlaceholder,
364
- value: valueWithEmptyStringFallback
376
+ value: stringValue
365
377
  });
366
378
  }
367
379
  case 'time':
368
380
  {
369
381
  const formattedValue = handleTimeChange({
370
- value});
382
+ value: stringValue});
371
383
  return /*#__PURE__*/ jsx(TimePicker, {
372
384
  clearLabel: formatMessage({
373
385
  id: 'clearLabel',