@strapi/content-type-builder 5.8.1 → 5.10.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 (210) hide show
  1. package/dist/admin/chunks/ListView-CDnrvVrV.mjs +1184 -0
  2. package/dist/admin/chunks/ListView-CDnrvVrV.mjs.map +1 -0
  3. package/dist/admin/chunks/ListView-CQwvSbZH.js +1186 -0
  4. package/dist/admin/chunks/ListView-CQwvSbZH.js.map +1 -0
  5. package/dist/admin/chunks/ar-Df0f0-PT.js +52 -0
  6. package/dist/admin/chunks/ar-Df0f0-PT.js.map +1 -0
  7. package/dist/admin/chunks/ar-sRW9VFC-.mjs +49 -0
  8. package/dist/admin/chunks/ar-sRW9VFC-.mjs.map +1 -0
  9. package/dist/admin/chunks/cs-BpQ26jiq.mjs +136 -0
  10. package/dist/{_chunks/cs-ChL4LaFY.mjs.map → admin/chunks/cs-BpQ26jiq.mjs.map} +1 -1
  11. package/dist/admin/chunks/cs-DeTwqc7p.js +140 -0
  12. package/dist/{_chunks/cs-Ci3js5EC.js.map → admin/chunks/cs-DeTwqc7p.js.map} +1 -1
  13. package/dist/admin/chunks/de-BJkS06jF.js +194 -0
  14. package/dist/{_chunks/de-DnlblIOh.js.map → admin/chunks/de-BJkS06jF.js.map} +1 -1
  15. package/dist/admin/chunks/de-DSxx5_x-.mjs +190 -0
  16. package/dist/{_chunks/de-DsHQNzp2.mjs.map → admin/chunks/de-DSxx5_x-.mjs.map} +1 -1
  17. package/dist/admin/chunks/dk-BnjVZ7A_.mjs +180 -0
  18. package/dist/{_chunks/es-BE_zx2_w.mjs.map → admin/chunks/dk-BnjVZ7A_.mjs.map} +1 -1
  19. package/dist/admin/chunks/dk-CGm-qVH7.js +184 -0
  20. package/dist/{_chunks/dk-D3XnOjYz.js.map → admin/chunks/dk-CGm-qVH7.js.map} +1 -1
  21. package/dist/admin/chunks/en-BJUu34b0.js +217 -0
  22. package/dist/{_chunks/en-CXG5y_vo.js.map → admin/chunks/en-BJUu34b0.js.map} +1 -1
  23. package/dist/admin/chunks/en-Bhut8Yay.mjs +213 -0
  24. package/dist/{_chunks/en-jBwb53yg.mjs.map → admin/chunks/en-Bhut8Yay.mjs.map} +1 -1
  25. package/dist/admin/chunks/es-DG8g9igJ.mjs +180 -0
  26. package/dist/admin/chunks/es-DG8g9igJ.mjs.map +1 -0
  27. package/dist/admin/chunks/es-J8kvHlNy.js +184 -0
  28. package/dist/{_chunks/es-DL8lez9W.js.map → admin/chunks/es-J8kvHlNy.js.map} +1 -1
  29. package/dist/admin/chunks/fr-C6y35iY7.js +76 -0
  30. package/dist/admin/chunks/fr-C6y35iY7.js.map +1 -0
  31. package/dist/admin/chunks/fr-UpV34MHY.mjs +73 -0
  32. package/dist/admin/chunks/fr-UpV34MHY.mjs.map +1 -0
  33. package/dist/admin/chunks/id-BWM18ljw.mjs +163 -0
  34. package/dist/{_chunks/ru-DGSjru5m.mjs.map → admin/chunks/id-BWM18ljw.mjs.map} +1 -1
  35. package/dist/admin/chunks/id-BvxV6wLP.js +167 -0
  36. package/dist/{_chunks/ru-C8A_4j0w.js.map → admin/chunks/id-BvxV6wLP.js.map} +1 -1
  37. package/dist/admin/chunks/index-BQ2VO38W.js +7781 -0
  38. package/dist/admin/chunks/index-BQ2VO38W.js.map +1 -0
  39. package/dist/admin/chunks/index-BZeN5KRn.js +1421 -0
  40. package/dist/admin/chunks/index-BZeN5KRn.js.map +1 -0
  41. package/dist/admin/chunks/index-BhX2euW0.mjs +1384 -0
  42. package/dist/admin/chunks/index-BhX2euW0.mjs.map +1 -0
  43. package/dist/admin/chunks/index-Cr5tfW7U.mjs +7754 -0
  44. package/dist/admin/chunks/index-Cr5tfW7U.mjs.map +1 -0
  45. package/dist/admin/chunks/it-1_vd9gV4.mjs +164 -0
  46. package/dist/{_chunks/tr-DsUerr-c.mjs.map → admin/chunks/it-1_vd9gV4.mjs.map} +1 -1
  47. package/dist/admin/chunks/it-C_IgFU-G.js +168 -0
  48. package/dist/{_chunks/sk-raWRcmPT.js.map → admin/chunks/it-C_IgFU-G.js.map} +1 -1
  49. package/dist/admin/chunks/ja-CWo4Qqq6.js +51 -0
  50. package/dist/admin/chunks/ja-CWo4Qqq6.js.map +1 -0
  51. package/dist/admin/chunks/ja-Cx23a2Ui.mjs +48 -0
  52. package/dist/admin/chunks/ja-Cx23a2Ui.mjs.map +1 -0
  53. package/dist/admin/chunks/ko-BsByJNEl.js +184 -0
  54. package/dist/admin/chunks/ko-BsByJNEl.js.map +1 -0
  55. package/dist/admin/chunks/ko-DC7paEx5.mjs +180 -0
  56. package/dist/admin/chunks/ko-DC7paEx5.mjs.map +1 -0
  57. package/dist/admin/chunks/ms-C3s4kxq6.mjs +160 -0
  58. package/dist/{_chunks/id-W1sKBFEw.mjs.map → admin/chunks/ms-C3s4kxq6.mjs.map} +1 -1
  59. package/dist/admin/chunks/ms-DPTzS7SH.js +164 -0
  60. package/dist/{_chunks/th-C83Bb_kR.js.map → admin/chunks/ms-DPTzS7SH.js.map} +1 -1
  61. package/dist/admin/chunks/nl-TzvfktV_.mjs +153 -0
  62. package/dist/{_chunks/nl-BaTAuelQ.mjs.map → admin/chunks/nl-TzvfktV_.mjs.map} +1 -1
  63. package/dist/admin/chunks/nl-db29QMOx.js +157 -0
  64. package/dist/{_chunks/nl-DQjrDEw0.js.map → admin/chunks/nl-db29QMOx.js.map} +1 -1
  65. package/dist/admin/chunks/pl-BdvupIN_.mjs +190 -0
  66. package/dist/admin/chunks/pl-BdvupIN_.mjs.map +1 -0
  67. package/dist/admin/chunks/pl-pYy1djj3.js +194 -0
  68. package/dist/admin/chunks/pl-pYy1djj3.js.map +1 -0
  69. package/dist/admin/chunks/pt-BQmWcdeG.js +52 -0
  70. package/dist/admin/chunks/pt-BQmWcdeG.js.map +1 -0
  71. package/dist/admin/chunks/pt-BR-CTPuXGWF.js +194 -0
  72. package/dist/{_chunks/pt-BR-DPd5nRnl.js.map → admin/chunks/pt-BR-CTPuXGWF.js.map} +1 -1
  73. package/dist/admin/chunks/pt-BR-DPrVmKeZ.mjs +190 -0
  74. package/dist/{_chunks/pt-BR-CCQGwXs0.mjs.map → admin/chunks/pt-BR-DPrVmKeZ.mjs.map} +1 -1
  75. package/dist/admin/chunks/pt-BTLIwmCv.mjs +49 -0
  76. package/dist/admin/chunks/pt-BTLIwmCv.mjs.map +1 -0
  77. package/dist/admin/chunks/ru-D46no502.mjs +165 -0
  78. package/dist/{_chunks/dk-BC7NAQR2.mjs.map → admin/chunks/ru-D46no502.mjs.map} +1 -1
  79. package/dist/admin/chunks/ru-DQiDXgUV.js +169 -0
  80. package/dist/admin/chunks/ru-DQiDXgUV.js.map +1 -0
  81. package/dist/admin/chunks/sk-Byr_l4Jc.mjs +164 -0
  82. package/dist/{_chunks/ko-DoNsXHXA.mjs.map → admin/chunks/sk-Byr_l4Jc.mjs.map} +1 -1
  83. package/dist/admin/chunks/sk-DrnebmXb.js +168 -0
  84. package/dist/{_chunks/it-DS4sM3km.js.map → admin/chunks/sk-DrnebmXb.js.map} +1 -1
  85. package/dist/admin/chunks/sv-Bbam7IDm.mjs +199 -0
  86. package/dist/admin/chunks/sv-Bbam7IDm.mjs.map +1 -0
  87. package/dist/admin/chunks/sv-CrWlNosi.js +203 -0
  88. package/dist/admin/chunks/sv-CrWlNosi.js.map +1 -0
  89. package/dist/admin/chunks/th-BbrCkfgX.js +165 -0
  90. package/dist/{_chunks/id-DYuTgqcc.js.map → admin/chunks/th-BbrCkfgX.js.map} +1 -1
  91. package/dist/admin/chunks/th-hfS0Wmk_.mjs +161 -0
  92. package/dist/{_chunks/it-D04lb2Wc.mjs.map → admin/chunks/th-hfS0Wmk_.mjs.map} +1 -1
  93. package/dist/admin/chunks/tr-CHdMj8m6.js +180 -0
  94. package/dist/admin/chunks/tr-CHdMj8m6.js.map +1 -0
  95. package/dist/admin/chunks/tr-DS7DBOhC.mjs +176 -0
  96. package/dist/admin/chunks/tr-DS7DBOhC.mjs.map +1 -0
  97. package/dist/admin/chunks/uk-BQEQ3weH.js +165 -0
  98. package/dist/{_chunks/uk-VwB0oiuV.js.map → admin/chunks/uk-BQEQ3weH.js.map} +1 -1
  99. package/dist/admin/chunks/uk-Cj8-BKeu.mjs +161 -0
  100. package/dist/{_chunks/sk-DVK4HfSC.mjs.map → admin/chunks/uk-Cj8-BKeu.mjs.map} +1 -1
  101. package/dist/admin/chunks/zh-BUVXH75-.mjs +199 -0
  102. package/dist/admin/chunks/zh-BUVXH75-.mjs.map +1 -0
  103. package/dist/admin/chunks/zh-CWj4avQA.js +203 -0
  104. package/dist/admin/chunks/zh-CWj4avQA.js.map +1 -0
  105. package/dist/admin/chunks/zh-Hans-BElOnuRb.mjs +144 -0
  106. package/dist/{_chunks/zh-Hans-Cc0M5PXr.mjs.map → admin/chunks/zh-Hans-BElOnuRb.mjs.map} +1 -1
  107. package/dist/admin/chunks/zh-Hans-lXbNiMp9.js +148 -0
  108. package/dist/{_chunks/zh-Hans-CLTLm_nt.js.map → admin/chunks/zh-Hans-lXbNiMp9.js.map} +1 -1
  109. package/dist/admin/index.js +24 -4
  110. package/dist/admin/index.js.map +1 -1
  111. package/dist/admin/index.mjs +17 -7
  112. package/dist/admin/index.mjs.map +1 -1
  113. package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +5 -2
  114. package/dist/admin/src/components/DataManagerProvider/reducer.d.ts +97 -6
  115. package/dist/admin/src/components/FormModal/reducer.d.ts +110 -4
  116. package/dist/admin/src/components/ListRow.d.ts +2 -1
  117. package/dist/admin/src/contexts/DataManagerContext.d.ts +4 -4
  118. package/dist/admin/src/index.d.ts +2 -1
  119. package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +1 -2
  120. package/dist/admin/src/pluginId.d.ts +1 -1
  121. package/dist/admin/src/reducers.d.ts +8 -1
  122. package/dist/admin/src/types.d.ts +2 -5
  123. package/dist/server/index.js +2504 -2151
  124. package/dist/server/index.js.map +1 -1
  125. package/dist/server/index.mjs +2500 -2147
  126. package/dist/server/index.mjs.map +1 -1
  127. package/package.json +13 -10
  128. package/dist/_chunks/ListView-CsqdnKp3.mjs +0 -959
  129. package/dist/_chunks/ListView-CsqdnKp3.mjs.map +0 -1
  130. package/dist/_chunks/ListView-tgW460ly.js +0 -964
  131. package/dist/_chunks/ListView-tgW460ly.js.map +0 -1
  132. package/dist/_chunks/ar-BYDB75EB.mjs +0 -51
  133. package/dist/_chunks/ar-BYDB75EB.mjs.map +0 -1
  134. package/dist/_chunks/ar-OCxhAFUy.js +0 -51
  135. package/dist/_chunks/ar-OCxhAFUy.js.map +0 -1
  136. package/dist/_chunks/cs-ChL4LaFY.mjs +0 -139
  137. package/dist/_chunks/cs-Ci3js5EC.js +0 -139
  138. package/dist/_chunks/de-DnlblIOh.js +0 -193
  139. package/dist/_chunks/de-DsHQNzp2.mjs +0 -193
  140. package/dist/_chunks/dk-BC7NAQR2.mjs +0 -183
  141. package/dist/_chunks/dk-D3XnOjYz.js +0 -183
  142. package/dist/_chunks/en-CXG5y_vo.js +0 -216
  143. package/dist/_chunks/en-jBwb53yg.mjs +0 -216
  144. package/dist/_chunks/es-BE_zx2_w.mjs +0 -183
  145. package/dist/_chunks/es-DL8lez9W.js +0 -183
  146. package/dist/_chunks/fr-DnTxugIo.js +0 -75
  147. package/dist/_chunks/fr-DnTxugIo.js.map +0 -1
  148. package/dist/_chunks/fr-lU_OMJma.mjs +0 -75
  149. package/dist/_chunks/fr-lU_OMJma.mjs.map +0 -1
  150. package/dist/_chunks/id-DYuTgqcc.js +0 -166
  151. package/dist/_chunks/id-W1sKBFEw.mjs +0 -166
  152. package/dist/_chunks/index-AjJmuxjv.js +0 -1357
  153. package/dist/_chunks/index-AjJmuxjv.js.map +0 -1
  154. package/dist/_chunks/index-BhIIILgq.mjs +0 -6694
  155. package/dist/_chunks/index-BhIIILgq.mjs.map +0 -1
  156. package/dist/_chunks/index-D79WZLAU.js +0 -6730
  157. package/dist/_chunks/index-D79WZLAU.js.map +0 -1
  158. package/dist/_chunks/index-DIuvDpH9.mjs +0 -1331
  159. package/dist/_chunks/index-DIuvDpH9.mjs.map +0 -1
  160. package/dist/_chunks/it-D04lb2Wc.mjs +0 -167
  161. package/dist/_chunks/it-DS4sM3km.js +0 -167
  162. package/dist/_chunks/ja-BHLK_2_g.mjs +0 -50
  163. package/dist/_chunks/ja-BHLK_2_g.mjs.map +0 -1
  164. package/dist/_chunks/ja-BjouJgZf.js +0 -50
  165. package/dist/_chunks/ja-BjouJgZf.js.map +0 -1
  166. package/dist/_chunks/ko-D_71Pdfn.js +0 -183
  167. package/dist/_chunks/ko-D_71Pdfn.js.map +0 -1
  168. package/dist/_chunks/ko-DoNsXHXA.mjs +0 -183
  169. package/dist/_chunks/ms-BtGFDB9t.mjs +0 -163
  170. package/dist/_chunks/ms-BtGFDB9t.mjs.map +0 -1
  171. package/dist/_chunks/ms-Re1pSHmx.js +0 -163
  172. package/dist/_chunks/ms-Re1pSHmx.js.map +0 -1
  173. package/dist/_chunks/nl-BaTAuelQ.mjs +0 -156
  174. package/dist/_chunks/nl-DQjrDEw0.js +0 -156
  175. package/dist/_chunks/pl-BGwXgwH7.js +0 -193
  176. package/dist/_chunks/pl-BGwXgwH7.js.map +0 -1
  177. package/dist/_chunks/pl-CP2Zgp01.mjs +0 -193
  178. package/dist/_chunks/pl-CP2Zgp01.mjs.map +0 -1
  179. package/dist/_chunks/pt-BR-CCQGwXs0.mjs +0 -193
  180. package/dist/_chunks/pt-BR-DPd5nRnl.js +0 -193
  181. package/dist/_chunks/pt-CJoUDTHQ.js +0 -51
  182. package/dist/_chunks/pt-CJoUDTHQ.js.map +0 -1
  183. package/dist/_chunks/pt-DMeTMW2x.mjs +0 -51
  184. package/dist/_chunks/pt-DMeTMW2x.mjs.map +0 -1
  185. package/dist/_chunks/ru-C8A_4j0w.js +0 -168
  186. package/dist/_chunks/ru-DGSjru5m.mjs +0 -168
  187. package/dist/_chunks/sk-DVK4HfSC.mjs +0 -167
  188. package/dist/_chunks/sk-raWRcmPT.js +0 -167
  189. package/dist/_chunks/sv-BGb12eW3.mjs +0 -202
  190. package/dist/_chunks/sv-BGb12eW3.mjs.map +0 -1
  191. package/dist/_chunks/sv-BNN71SFE.js +0 -202
  192. package/dist/_chunks/sv-BNN71SFE.js.map +0 -1
  193. package/dist/_chunks/th--u3VqsON.mjs +0 -164
  194. package/dist/_chunks/th--u3VqsON.mjs.map +0 -1
  195. package/dist/_chunks/th-C83Bb_kR.js +0 -164
  196. package/dist/_chunks/tr-BW20CfcO.js +0 -179
  197. package/dist/_chunks/tr-BW20CfcO.js.map +0 -1
  198. package/dist/_chunks/tr-DsUerr-c.mjs +0 -179
  199. package/dist/_chunks/uk-Bx5IlOKX.mjs +0 -164
  200. package/dist/_chunks/uk-Bx5IlOKX.mjs.map +0 -1
  201. package/dist/_chunks/uk-VwB0oiuV.js +0 -164
  202. package/dist/_chunks/zh-BiOCwPJu.js +0 -202
  203. package/dist/_chunks/zh-BiOCwPJu.js.map +0 -1
  204. package/dist/_chunks/zh-CsUDN13W.mjs +0 -202
  205. package/dist/_chunks/zh-CsUDN13W.mjs.map +0 -1
  206. package/dist/_chunks/zh-Hans-CLTLm_nt.js +0 -147
  207. package/dist/_chunks/zh-Hans-Cc0M5PXr.mjs +0 -147
  208. package/dist/admin/src/components/DataManagerProvider/constants.d.ts +0 -17
  209. package/dist/admin/src/components/FormModal/constants.d.ts +0 -12
  210. package/dist/admin/src/pages/RecursivePath/RecursivePath.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Cr5tfW7U.mjs","sources":["../../../admin/src/utils/getTrad.ts","../../../admin/src/contexts/DataManagerContext.ts","../../../admin/src/hooks/useDataManager.ts","../../../admin/src/contexts/FormModalNavigationContext.ts","../../../admin/src/hooks/useFormModalNavigation.ts","../../../admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.ts","../../../admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.tsx","../../../admin/src/utils/isAllowedContentTypesForRelations.ts","../../../admin/src/utils/findAttribute.ts","../../../admin/src/utils/getYupInnerErrors.ts","../../../admin/src/components/AllowedTypesSelect.tsx","../../../admin/src/components/AttributeIcon.tsx","../../../admin/src/components/AttributeOptions/OptionBoxWrapper.tsx","../../../admin/src/components/AttributeOptions/AttributeOption.tsx","../../../admin/src/components/AttributeOptions/AttributeList.tsx","../../../admin/src/components/AttributeOptions/CustomFieldOption.tsx","../../../admin/src/components/AttributeOptions/EmptyAttributes.tsx","../../../admin/src/components/AttributeOptions/CustomFieldsList.tsx","../../../admin/src/components/AttributeOptions/AttributeOptions.tsx","../../../admin/src/components/BooleanDefaultValueSelect.tsx","../../../admin/src/components/CustomRadioGroup/Styles.tsx","../../../admin/src/components/CustomRadioGroup/CustomRadioGroup.tsx","../../../admin/src/components/BooleanRadioGroup.tsx","../../../admin/src/components/CheckboxWithNumberField.tsx","../../../admin/src/components/ContentTypeRadioGroup.tsx","../../../admin/src/components/DraftAndPublishToggle.tsx","../../../admin/src/components/FormModalEndActions.tsx","../../../admin/src/components/FormModalHeader.tsx","../../../admin/src/components/FormModalSubHeader.tsx","../../../admin/src/components/IconPicker/constants.ts","../../../admin/src/components/IconPicker/IconPicker.tsx","../../../admin/src/components/PluralName.tsx","../../../admin/src/utils/parseDateValue.ts","../../../admin/src/utils/timeFormat.ts","../../../admin/src/components/GenericInputs.tsx","../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx","../../../admin/src/components/Relation/RelationField/RelationField.tsx","../../../admin/src/components/Relation/RelationNaturePicker/Components.tsx","../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx","../../../admin/src/components/Relation/Relation.tsx","../../../admin/src/components/SelectCategory.tsx","../../../admin/src/utils/getMaxDepth.ts","../../../admin/src/components/SelectComponent.tsx","../../../admin/src/components/SelectComponents.tsx","../../../admin/src/components/SelectDateType.tsx","../../../admin/src/components/SelectNumber.tsx","../../../admin/src/components/SingularName.tsx","../../../admin/src/components/TabForm.tsx","../../../admin/src/components/TextareaEnum.tsx","../../../admin/src/components/FormModal/attributes/nameField.ts","../../../admin/src/components/FormModal/attributes/commonBaseForm.ts","../../../admin/src/components/FormModal/component/componentForm.ts","../../../admin/src/components/FormModal/attributes/attributeOptions.ts","../../../admin/src/components/FormModal/attributes/advancedForm.ts","../../../admin/src/components/FormModal/component/componentField.ts","../../../admin/src/components/FormModal/attributes/baseForm.ts","../../../admin/src/components/FormModal/attributes/form.ts","../../../admin/src/utils/toRegressedEnumValue.ts","../../../admin/src/components/FormModal/attributes/validation/common.ts","../../../admin/src/components/FormModal/attributes/types.ts","../../../admin/src/components/FormModal/category/regex.ts","../../../admin/src/components/FormModal/category/createCategorySchema.ts","../../../admin/src/components/FormModal/category/form.ts","../../../admin/src/components/FormModal/component/createComponentSchema.ts","../../../admin/src/components/FormModal/contentType/contentTypeForm.ts","../../../admin/src/components/FormModal/contentType/createContentTypeSchema.ts","../../../admin/src/components/FormModal/dynamiczoneForm.ts","../../../admin/src/components/FormModal/forms/utils/addItemsToFormSection.ts","../../../admin/src/components/FormModal/forms/utils/createCollectionName.ts","../../../admin/src/components/FormModal/forms/utils/getUsedAttributeNames.ts","../../../admin/src/components/FormModal/forms/forms.ts","../../../admin/src/components/FormModal/selectors.ts","../../../admin/src/components/FormModal/utils/canEditContentType.ts","../../../admin/src/components/FormModal/utils/getAttributesToDisplay.ts","../../../admin/src/components/FormModal/utils/getFormInputNames.ts","../../../admin/src/components/FormModal/FormModal.tsx","../../../admin/src/components/DataManagerProvider/selectors.ts","../../../admin/src/components/DataManagerProvider/utils/cleanData.ts","../../../admin/src/components/DataManagerProvider/utils/createDataObject.ts","../../../admin/src/components/DataManagerProvider/utils/createModifiedDataSchema.ts","../../../admin/src/components/DataManagerProvider/utils/formatSchemas.ts","../../../admin/src/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.ts","../../../admin/src/components/DataManagerProvider/utils/retrieveNestedComponents.ts","../../../admin/src/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.ts","../../../admin/src/components/DataManagerProvider/utils/serverRestartWatcher.ts","../../../admin/src/components/DataManagerProvider/utils/validateSchema.ts","../../../admin/src/components/DataManagerProvider/DataManagerProvider.tsx","../../../admin/src/components/FormModalNavigationProvider/constants.ts","../../../admin/src/components/FormModalNavigationProvider/FormModalNavigationProvider.tsx","../../../admin/src/pages/App/index.tsx"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n","/* eslint-disable check-file/filename-naming-convention */\nimport { createContext } from 'react';\n\nimport type { SchemaType, Component } from '../types';\nimport type { Internal } from '@strapi/types';\n\n// TODO V5 Convert this any types to real types\nexport interface CustomFieldAttributeParams {\n attributeToSet: Record<string, any>;\n forTarget: SchemaType;\n targetUid: Internal.UID.Schema;\n initialAttribute: Record<string, any>;\n}\nexport interface DataManagerContextValue {\n addAttribute: (\n attributeToSet: Record<string, any>,\n forTarget: SchemaType,\n targetUid: Internal.UID.Schema,\n isEditing?: boolean,\n initialAttribute?: Record<string, any>,\n shouldAddComponentToData?: boolean\n ) => void;\n addCustomFieldAttribute: (params: CustomFieldAttributeParams) => void;\n editCustomFieldAttribute: (params: CustomFieldAttributeParams) => void;\n addCreatedComponentToDynamicZone: (\n dynamicZoneTarget: string,\n componentsToAdd: Internal.UID.Component[]\n ) => void;\n createSchema: (\n data: Record<string, any>,\n schemaType: SchemaType,\n uid: Internal.UID.Schema,\n componentCategory?: string,\n shouldAddComponentToData?: boolean\n ) => void;\n changeDynamicZoneComponents: (\n dynamicZoneTarget: string,\n newComponents: Internal.UID.Component[]\n ) => void;\n removeAttribute: (\n mainDataKey: 'contentType' | 'component' | 'contentTypes' | 'components',\n attributeToRemoveName: string,\n componentUid?: string\n ) => void;\n deleteCategory: (categoryUid: string) => void;\n deleteData: () => void;\n editCategory: (categoryUid: string, body: any) => void;\n removeComponentFromDynamicZone: (dzName: string, componentToRemoveIndex: number) => void;\n setModifiedData: () => void;\n sortedContentTypesList: any[]; // Define the actual type\n submitData: (additionalContentTypeData?: Record<string, any>) => Promise<void>;\n updateSchema: (\n data: Record<string, any>,\n schemaType: 'contentType' | 'component',\n componentUID: Internal.UID.Component\n ) => void;\n components: Record<Internal.UID.Component, Component>;\n componentsGroupedByCategory: Record<string, Component[]>;\n componentsThatHaveOtherComponentInTheirAttributes: any[]; // Define the actual type\n contentTypes: Record<string, any>;\n initialData: Record<string, any>;\n isInContentTypeView: boolean;\n isInDevelopmentMode?: boolean;\n modifiedData: Record<string, any>;\n nestedComponents: any[]; // Define the actual type\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n allComponentsCategories: any[];\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const DataManagerContext = createContext<DataManagerContextValue>();\n","import { useContext } from 'react';\n\nimport { DataManagerContext } from '../contexts/DataManagerContext';\n\nexport const useDataManager = () => useContext(DataManagerContext);\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { INITIAL_STATE_DATA } from '../components/FormModalNavigationProvider/constants';\n\nimport type {\n ModalEventProps,\n State,\n} from '../components/FormModalNavigationProvider/FormModalNavigationProvider';\nimport type { SchemaType } from '../types';\nimport type { Internal } from '@strapi/types';\n\nexport interface FormModalNavigationContextValue {\n onCloseModal: () => void;\n onOpenModalAddField: (options: {\n forTarget: SchemaType;\n targetUid?: Internal.UID.Schema;\n }) => void;\n onClickSelectField: (option: ModalEventProps) => void;\n onClickSelectCustomField: (option: ModalEventProps) => void;\n onNavigateToChooseAttributeModal: (options: ModalEventProps) => void;\n onNavigateToAddCompoToDZModal: (options: ModalEventProps) => void;\n onOpenModalAddComponentsToDZ: (options: ModalEventProps) => void;\n onNavigateToCreateComponentStep2: () => void;\n onOpenModalCreateSchema: (options: State) => void;\n onOpenModalEditCategory: (categoryName: string) => void;\n onOpenModalEditField: (options: ModalEventProps) => void;\n onOpenModalEditCustomField: (options: ModalEventProps) => void;\n onOpenModalEditSchema: (options: ModalEventProps) => void;\n setFormModalNavigationState: (value: React.SetStateAction<typeof INITIAL_STATE_DATA>) => void;\n actionType: string;\n attributeName: string;\n attributeType: string;\n customFieldUid: string;\n categoryName: string;\n dynamicZoneTarget: string;\n forTarget: SchemaType;\n modalType: string;\n isOpen: boolean;\n showBackLink: boolean;\n kind: string;\n step: string;\n targetUid: Internal.UID.Schema;\n activeTab: string;\n setActiveTab: (value: React.SetStateAction<string>) => void;\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const FormModalNavigationContext = React.createContext<FormModalNavigationContextValue>();\n","import { useContext } from 'react';\n\nimport { FormModalNavigationContext } from '../contexts/FormModalNavigationContext';\n\nexport const useFormModalNavigation = () => useContext(FormModalNavigationContext);\n","import { useState, MouseEvent } from 'react';\n\nimport { useTracking, useNotification } from '@strapi/admin/strapi-admin';\nimport { useCollator, useFilter } from '@strapi/design-system';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../../hooks/useDataManager';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad } from '../../utils/getTrad';\n\nimport type { Internal } from '@strapi/types';\n\nexport const useContentTypeBuilderMenu = () => {\n const {\n components,\n componentsGroupedByCategory,\n contentTypes,\n isInDevelopmentMode,\n sortedContentTypesList,\n modifiedData,\n initialData,\n } = useDataManager();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [searchValue, setSearchValue] = useState('');\n const { onOpenModalCreateSchema, onOpenModalEditCategory } = useFormModalNavigation();\n const { locale } = useIntl();\n\n const { startsWith } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n // TODO: Allow creating mutliple schemas in parallel\n const canOpenModalCreateCTorComponent =\n !Object.keys(contentTypes).some((ct) => contentTypes[ct].isTemporary === true) &&\n !Object.keys(components).some(\n (component) => components[component as Internal.UID.Component].isTemporary === true\n ) &&\n isEqual(modifiedData, initialData);\n\n const handleClickOpenModalCreateCollectionType = () => {\n if (canOpenModalCreateCTorComponent) {\n // TODO: Review tracking with product\n trackUsage(`willCreateContentType`);\n\n const nextState = {\n modalType: 'contentType',\n kind: 'collectionType',\n actionType: 'create',\n forTarget: 'contentType',\n };\n\n onOpenModalCreateSchema(nextState);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n };\n\n const handleClickOpenModalCreateSingleType = () => {\n if (canOpenModalCreateCTorComponent) {\n trackUsage(`willCreateSingleType`);\n\n const nextState = {\n modalType: 'contentType',\n kind: 'singleType',\n actionType: 'create',\n forTarget: 'contentType',\n };\n\n onOpenModalCreateSchema(nextState);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n };\n\n const handleClickOpenModalCreateComponent = () => {\n if (canOpenModalCreateCTorComponent) {\n trackUsage('willCreateComponent');\n\n const nextState = {\n modalType: 'component',\n kind: null,\n actionType: 'create',\n forTarget: 'component',\n };\n\n onOpenModalCreateSchema(nextState);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n };\n\n const toggleNotificationCannotCreateSchema = () => {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: getTrad('notification.info.creating.notSaved'),\n defaultMessage: 'Please save your work before creating a new collection type or component',\n }),\n });\n };\n\n const componentsData = Object.entries(componentsGroupedByCategory)\n .map(([category, components]) => ({\n name: category,\n title: category,\n isEditable: isInDevelopmentMode,\n // TODO: re-add functionality to edit category name\n onClickEdit(e: MouseEvent, data: any) {\n e.stopPropagation();\n\n if (canOpenModalCreateCTorComponent) {\n onOpenModalEditCategory(data.name);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n },\n links: components\n .map((component) => ({\n name: component.uid,\n to: `/plugins/${pluginId}/component-categories/${category}/${component.uid}`,\n title: component.schema.displayName,\n }))\n .sort((a, b) => formatter.compare(a.title, b.title)),\n }))\n .sort((a, b) => formatter.compare(a.title, b.title));\n\n const displayedContentTypes = sortedContentTypesList.filter((obj) => obj.visible);\n\n const data = [\n {\n name: 'models',\n title: {\n id: `${getTrad('menu.section.models.name')}`,\n defaultMessage: 'Collection Types',\n },\n customLink: isInDevelopmentMode && {\n id: `${getTrad('button.model.create')}`,\n defaultMessage: 'Create new collection type',\n onClick: handleClickOpenModalCreateCollectionType,\n },\n links: displayedContentTypes.filter((contentType) => contentType.kind === 'collectionType'),\n },\n {\n name: 'singleTypes',\n title: {\n id: `${getTrad('menu.section.single-types.name')}`,\n defaultMessage: 'Single Types',\n },\n customLink: isInDevelopmentMode && {\n id: `${getTrad('button.single-types.create')}`,\n defaultMessage: 'Create new single type',\n onClick: handleClickOpenModalCreateSingleType,\n },\n links: displayedContentTypes.filter((singleType) => singleType.kind === 'singleType'),\n },\n {\n name: 'components',\n title: {\n id: `${getTrad('menu.section.components.name')}`,\n defaultMessage: 'Components',\n },\n customLink: isInDevelopmentMode && {\n id: `${getTrad('button.component.create')}`,\n defaultMessage: 'Create a new component',\n onClick: handleClickOpenModalCreateComponent,\n },\n links: componentsData,\n },\n ].map((section) => {\n const hasChild = section.links.some((l) => Array.isArray(l.links));\n\n if (hasChild) {\n let filteredLinksCount = 0;\n\n return {\n ...section,\n links: section.links\n .map((link) => {\n const filteredLinks = link.links.filter((link: any) =>\n startsWith(link.title, searchValue)\n );\n\n if (filteredLinks.length === 0) {\n return null;\n }\n\n filteredLinksCount += filteredLinks.length;\n\n return {\n ...link,\n links: filteredLinks.sort((a: any, b: any) => formatter.compare(a.title, b.title)),\n };\n })\n .filter(Boolean),\n linksCount: filteredLinksCount,\n };\n }\n\n const filteredLinks = section.links\n .filter((link) => startsWith(link.title, searchValue))\n .sort((a, b) => formatter.compare(a.title, b.title));\n\n return {\n ...section,\n links: filteredLinks,\n linksCount: filteredLinks.length,\n };\n });\n\n return {\n menu: data,\n search: {\n value: searchValue,\n onChange: setSearchValue,\n clear: () => setSearchValue(''),\n },\n };\n};\n","import { Fragment } from 'react';\n\nimport {\n Box,\n TextButton,\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavLinkSection,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils/getTrad';\n\nimport { useContentTypeBuilderMenu } from './useContentTypeBuilderMenu';\n\nconst SubNavLinkCustom = styled(SubNavLink)`\n div {\n width: inherit;\n span:nth-child(2) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: inherit;\n }\n }\n`;\n\nexport const ContentTypeBuilderNav = () => {\n const { menu, search } = useContentTypeBuilderMenu();\n const { formatMessage } = useIntl();\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <SubNav aria-label={pluginName}>\n <SubNavHeader\n searchable\n value={search.value}\n onClear={() => search.clear()}\n onChange={(e) => search.onChange(e.target.value)}\n label={pluginName}\n searchLabel={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n />\n <SubNavSections>\n {menu.map((section) => (\n <Fragment key={section.name}>\n <SubNavSection\n label={formatMessage({\n id: section.title.id,\n defaultMessage: section.title.defaultMessage,\n })}\n collapsable\n badgeLabel={section.linksCount.toString()}\n >\n {section.links.map((link) => {\n if (link.links) {\n return (\n <SubNavLinkSection key={link.name} label={upperFirst(link.title)}>\n {link.links.map((subLink: any) => (\n <SubNavLink\n tag={NavLink}\n to={subLink.to}\n active={subLink.active}\n key={subLink.name}\n isSubSectionChild\n >\n {upperFirst(\n formatMessage({ id: subLink.name, defaultMessage: subLink.title })\n )}\n </SubNavLink>\n ))}\n </SubNavLinkSection>\n );\n }\n\n return (\n <SubNavLinkCustom\n tag={NavLink}\n to={link.to}\n active={link.active}\n key={link.name}\n width=\"100%\"\n >\n {upperFirst(formatMessage({ id: link.name, defaultMessage: link.title }))}\n </SubNavLinkCustom>\n );\n })}\n </SubNavSection>\n {section.customLink && (\n <Box paddingLeft={7}>\n <TextButton\n onClick={section.customLink.onClick}\n startIcon={<Plus width=\"0.8rem\" height=\"0.8rem\" />}\n marginTop={2}\n cursor=\"pointer\"\n >\n {formatMessage({\n id: section.customLink.id,\n defaultMessage: section.customLink.defaultMessage,\n })}\n </TextButton>\n </Box>\n )}\n </Fragment>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n","import type { ContentType } from '../types';\n\nexport const isAllowedContentTypesForRelations = (contentType: ContentType) => {\n return (\n contentType.kind === 'collectionType' &&\n (contentType.restrictRelationsTo === null ||\n (Array.isArray(contentType.restrictRelationsTo) &&\n contentType.restrictRelationsTo.length > 0))\n );\n};\n","import { AttributeType } from '../types';\n\nexport const findAttribute = (attributes: AttributeType[], attributeToFind: string) => {\n return attributes.find(({ name }) => name === attributeToFind);\n};\n","import type { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport type { ValidationError } from 'yup';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\nconst extractValuesFromYupError = (\n errorType?: string | undefined,\n errorParams?: Record<string, any> | undefined\n) => {\n if (!errorType || !errorParams) {\n return {};\n }\n\n return {\n [errorType]: errorParams[errorType],\n };\n};\n\nconst getYupInnerErrors = (error: ValidationError) =>\n (error?.inner || []).reduce<Record<string, TranslationMessage>>((acc, currentError) => {\n if (currentError.path) {\n acc[currentError.path.split('[').join('.').split(']').join('')] = {\n id: currentError.message,\n defaultMessage: currentError.message,\n values: extractValuesFromYupError(currentError?.type, currentError?.params),\n };\n }\n\n return acc;\n }, {});\n\nexport { getYupInnerErrors };\n","import { Field, MultiSelectNested } from '@strapi/design-system';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { IntlLabel } from '../types';\n\ninterface AllowedTypesSelectProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n value?: any;\n}\n\nconst options = [\n {\n label: 'All',\n children: [\n { label: 'images (JPEG, PNG, GIF, SVG, TIFF, ICO, DVU)', value: 'images' },\n { label: 'videos (MPEG, MP4, Quicktime, WMV, AVI, FLV)', value: 'videos' },\n { label: 'audios (MP3, WAV, OGG)', value: 'audios' },\n { label: 'files (CSV, ZIP, PDF, Excel, JSON, ...)', value: 'files' },\n ],\n },\n];\n\nexport const AllowedTypesSelect = ({\n intlLabel,\n name,\n onChange,\n value = null,\n}: AllowedTypesSelectProps) => {\n const { formatMessage } = useIntl();\n\n /* eslint-disable indent */\n const displayedValue =\n value === null || value?.length === 0\n ? formatMessage({ id: 'global.none', defaultMessage: 'None' })\n : [...value]\n .sort()\n .map((v) => upperFirst(v))\n .join(', ');\n\n /* eslint-enable indent */\n\n const label = intlLabel.id\n ? formatMessage({ id: intlLabel.id, defaultMessage: intlLabel.defaultMessage })\n : name;\n\n return (\n <Field.Root name={name}>\n <Field.Label>{label}</Field.Label>\n <MultiSelectNested\n customizeContent={() => displayedValue}\n onChange={(values: any[]) => {\n if (values.length > 0) {\n onChange({ target: { name, value: values, type: 'allowed-types-select' } });\n } else {\n onChange({ target: { name, value: null, type: 'allowed-types-select' } });\n }\n }}\n options={options}\n value={value || []}\n />\n </Field.Root>\n );\n};\n","import { ComponentType, SVGProps } from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n BooleanField,\n CollectionType,\n ComponentField,\n DateField,\n DynamicZoneField,\n EmailField,\n EnumerationField,\n JsonField,\n MediaField,\n NumberField,\n PasswordField,\n RelationField,\n MarkdownField,\n SingleType,\n TextField,\n UidField,\n BlocksField,\n} from '@strapi/icons/symbols';\nimport { styled } from 'styled-components';\n\nconst iconByTypes: Record<string, ComponentType<SVGProps<SVGSVGElement>>> = {\n biginteger: NumberField,\n blocks: BlocksField,\n boolean: BooleanField,\n collectionType: CollectionType,\n component: ComponentField,\n contentType: CollectionType,\n date: DateField,\n datetime: DateField,\n decimal: NumberField,\n dynamiczone: DynamicZoneField,\n email: EmailField,\n enum: EnumerationField,\n enumeration: EnumerationField,\n file: MediaField,\n files: MediaField,\n float: NumberField,\n integer: NumberField,\n json: JsonField,\n JSON: JsonField,\n media: MediaField,\n number: NumberField,\n password: PasswordField,\n relation: RelationField,\n richtext: MarkdownField,\n singleType: SingleType,\n string: TextField,\n text: TextField,\n time: DateField,\n timestamp: DateField,\n uid: UidField,\n};\n\nconst IconBox = styled(Box)`\n svg {\n height: 100%;\n width: 100%;\n }\n`;\n\nexport type IconByType = keyof typeof iconByTypes;\n\ntype AttributeIconProps = {\n type: IconByType;\n customField?: string | null;\n};\n\nexport const AttributeIcon = ({ type, customField = null, ...rest }: AttributeIconProps) => {\n const getCustomField = useStrapiApp('AttributeIcon', (state) => state.customFields.get);\n\n let Compo: any = iconByTypes[type];\n\n if (customField) {\n const customFieldObject = getCustomField(customField);\n const icon = customFieldObject?.icon;\n if (icon) {\n Compo = icon;\n }\n }\n\n if (!iconByTypes[type]) {\n return null;\n }\n\n return (\n <IconBox width=\"3.2rem\" shrink={0} {...rest} aria-hidden>\n <Box tag={Compo} />\n </IconBox>\n );\n};\n","import { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nexport const OptionBoxWrapper = styled(Box)`\n width: 100%;\n height: 100%;\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n text-align: left;\n &:hover {\n cursor: pointer;\n background: ${({ theme }) => theme.colors.primary100};\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n }\n`;\n","/**\n *\n * AttributeOption\n *\n */\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Sparkle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { getTrad } from '../../utils/getTrad';\nimport { AttributeIcon, IconByType } from '../AttributeIcon';\n\nimport { OptionBoxWrapper } from './OptionBoxWrapper';\n\nconst newAttributes: string[] = [];\n\nconst NewBadge = () => (\n <Flex grow={1} justifyContent=\"flex-end\">\n <Flex gap={1} hasRadius background=\"alternative100\" padding={`0.2rem 0.4rem`}>\n <Sparkle width={`1rem`} height={`1rem`} fill=\"alternative600\" />\n <Typography textColor=\"alternative600\" variant=\"sigma\">\n New\n </Typography>\n </Flex>\n </Flex>\n);\n\ntype AttributeOptionProps = {\n type: IconByType;\n};\n\nexport const AttributeOption = ({ type = 'text' }: AttributeOptionProps) => {\n const { formatMessage } = useIntl();\n\n const { onClickSelectField } = useFormModalNavigation();\n\n const handleClick = () => {\n const step = type === 'component' ? '1' : null;\n\n onClickSelectField({\n attributeType: type,\n step,\n });\n };\n\n return (\n <OptionBoxWrapper padding={4} tag=\"button\" hasRadius type=\"button\" onClick={handleClick}>\n <Flex>\n <AttributeIcon type={type} />\n <Box paddingLeft={4} width=\"100%\">\n <Flex justifyContent=\"space-between\">\n <Typography fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage({ id: getTrad(`attribute.${type}`), defaultMessage: type })}\n </Typography>\n {newAttributes.includes(type) && <NewBadge />}\n </Flex>\n <Flex>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad(`attribute.${type}.description`),\n defaultMessage: 'A type for modeling data',\n })}\n </Typography>\n </Flex>\n </Box>\n </Flex>\n </OptionBoxWrapper>\n );\n};\n","import { Flex, Grid, KeyboardNavigable } from '@strapi/design-system';\n\nimport { IconByType } from '../AttributeIcon';\n\nimport { AttributeOption } from './AttributeOption';\n\ntype AttributeListProps = {\n attributes: IconByType[][];\n};\n\nexport const AttributeList = ({ attributes }: AttributeListProps) => (\n <KeyboardNavigable tagName=\"button\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8}>\n {attributes.map((attributeRow, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <Grid.Root key={index} gap={3}>\n {attributeRow.map((attribute) => (\n <Grid.Item key={attribute} col={6} direction=\"column\" alignItems=\"stretch\">\n <AttributeOption type={attribute} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n);\n","import * as React from 'react';\n\nimport { StrapiAppContextValue } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { AttributeIcon, IconByType } from '../AttributeIcon';\n\nimport { OptionBoxWrapper } from './OptionBoxWrapper';\n\nexport type CustomFieldOption = {\n name: string;\n type: IconByType;\n icon: React.ComponentType;\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n intlDescription: {\n id: string;\n defaultMessage: string;\n };\n};\n\ntype CustomFieldOptionProps = {\n customFieldUid: string;\n customField: NonNullable<ReturnType<StrapiAppContextValue['customFields']['get']>>;\n};\n\nexport const CustomFieldOption = ({ customFieldUid, customField }: CustomFieldOptionProps) => {\n const { type, intlLabel, intlDescription } = customField;\n const { formatMessage } = useIntl();\n\n const { onClickSelectCustomField } = useFormModalNavigation();\n\n const handleClick = () => {\n onClickSelectCustomField({\n attributeType: type,\n customFieldUid,\n });\n };\n\n return (\n <OptionBoxWrapper padding={4} tag=\"button\" hasRadius type=\"button\" onClick={handleClick}>\n <Flex>\n <AttributeIcon type={type} customField={customFieldUid} />\n <Box paddingLeft={4}>\n <Flex>\n <Typography fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage(intlLabel)}\n </Typography>\n </Flex>\n <Flex>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(intlDescription)}\n </Typography>\n </Flex>\n </Box>\n </Flex>\n </OptionBoxWrapper>\n );\n};\n","import { Box, Flex, Typography, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nconst EmptyCard = styled(Box)`\n background: ${({ theme }) =>\n `linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${theme.colors.neutral150} 100%)`};\n opacity: 0.33;\n`;\n\nexport const EmptyCardGrid = () => {\n return (\n <Flex wrap=\"wrap\" gap={4}>\n {[...Array(4)].map((_, idx) => {\n return (\n <EmptyCard\n // eslint-disable-next-line react/no-array-index-key\n key={`empty-card-${idx}`}\n height=\"138px\"\n width=\"375px\"\n hasRadius\n />\n );\n })}\n </Flex>\n );\n};\n\nexport const EmptyAttributes = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box position=\"relative\">\n <EmptyCardGrid />\n <Box position=\"absolute\" top={6} width=\"100%\">\n <Flex alignItems=\"center\" justifyContent=\"center\" direction=\"column\">\n <EmptyDocuments width=\"160px\" height=\"88px\" />\n <Box paddingTop={6} paddingBottom={4}>\n <Box textAlign=\"center\">\n <Typography variant=\"delta\" tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('modalForm.empty.heading'),\n defaultMessage: 'Nothing in here yet.',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Typography variant=\"delta\" tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('modalForm.empty.sub-heading'),\n defaultMessage:\n 'Find what you are looking for through a wide range of extensions.',\n })}\n </Typography>\n </Box>\n </Box>\n </Box>\n <LinkButton\n tag={Link}\n to={`/marketplace?${qs.stringify({ categories: ['Custom fields'] })}`}\n variant=\"secondary\"\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('modalForm.empty.button'),\n defaultMessage: 'Add custom fields',\n })}\n </LinkButton>\n </Flex>\n </Box>\n </Box>\n );\n};\n","import { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Flex, Grid, KeyboardNavigable, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\n\nimport { CustomFieldOption } from './CustomFieldOption';\nimport { EmptyAttributes } from './EmptyAttributes';\n\nexport const CustomFieldsList = () => {\n const { formatMessage } = useIntl();\n const getAllCustomFields = useStrapiApp('CustomFieldsList', (state) => state.customFields.getAll);\n // TODO change this once useCustomFields is typed (helper-plugin types are solved)\n const registeredCustomFields = Object.entries(getAllCustomFields());\n\n if (!registeredCustomFields.length) {\n return <EmptyAttributes />;\n }\n\n // Sort the array alphabetically by customField name\n const sortedCustomFields = registeredCustomFields.sort((a, b) =>\n a[1].name > b[1].name ? 1 : -1\n );\n\n return (\n <KeyboardNavigable tagName=\"button\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3}>\n <Grid.Root gap={3}>\n {sortedCustomFields.map(([uid, customField]) => (\n <Grid.Item key={uid} col={6} direction=\"column\" alignItems=\"stretch\">\n <CustomFieldOption key={uid} customFieldUid={uid} customField={customField} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Link\n href=\"https://docs.strapi.io/developer-docs/latest/development/custom-fields.html\"\n isExternal\n >\n {formatMessage({\n id: getTrad('modalForm.tabs.custom.howToLink'),\n defaultMessage: 'How to add custom fields',\n })}\n </Link>\n </Flex>\n </KeyboardNavigable>\n );\n};\n","/**\n *\n * AttributeOptions\n *\n */\n\nimport { Divider, Flex, Modal, Tabs, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\nimport { IconByType } from '../AttributeIcon';\n\nimport { AttributeList } from './AttributeList';\nimport { CustomFieldsList } from './CustomFieldsList';\n\ntype AttributeOptionsProps = {\n attributes: IconByType[][];\n forTarget: string;\n kind: string;\n};\n\nexport const AttributeOptions = ({ attributes, forTarget, kind }: AttributeOptionsProps) => {\n const { formatMessage } = useIntl();\n\n const defaultTabId = getTrad('modalForm.tabs.default');\n const customTabId = getTrad('modalForm.tabs.custom');\n\n const titleIdSuffix = forTarget.includes('component') ? 'component' : kind;\n const titleId = getTrad(`modalForm.sub-header.chooseAttribute.${titleIdSuffix}`);\n\n return (\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"default\">\n <Flex justifyContent=\"space-between\">\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({ id: titleId, defaultMessage: 'Select a field' })}\n </Typography>\n <Tabs.List>\n <Tabs.Trigger value=\"default\">\n {formatMessage({ id: defaultTabId, defaultMessage: 'Default' })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"custom\">\n {formatMessage({ id: customTabId, defaultMessage: 'Custom' })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"default\">\n <AttributeList attributes={attributes} />\n </Tabs.Content>\n <Tabs.Content value=\"custom\">\n <CustomFieldsList />\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n );\n};\n","import { Field, SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { IntlLabel } from '../types';\n\ninterface Metadata {\n intlLabel: IntlLabel;\n disabled?: boolean;\n hidden?: boolean;\n}\n\ninterface Option {\n metadatas: Metadata;\n key: string | number;\n value: string | number;\n}\n\ninterface BooleanDefaultValueSelectProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n options: Option[];\n value?: any;\n}\n\nexport const BooleanDefaultValueSelect = ({\n intlLabel,\n name,\n options,\n onChange,\n value = null,\n}: BooleanDefaultValueSelectProps) => {\n const { formatMessage } = useIntl();\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const handleChange = (value: any) => {\n let nextValue: boolean | string = '';\n\n if (value === 'true') {\n nextValue = true;\n }\n\n if (value === 'false') {\n nextValue = false;\n }\n\n onChange({ target: { name, value: nextValue, type: 'select-default-boolean' } });\n };\n\n return (\n <Field.Root name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect onChange={handleChange} value={(value === null ? '' : value).toString()}>\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {/* No need to translate the options */}\n {intlLabel.defaultMessage}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Field.Root>\n );\n};\n","import { Flex, inputFocusStyle } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled(Flex)`\n position: relative;\n align-items: stretch;\n\n label {\n border-radius: 4px;\n max-width: 50%;\n cursor: pointer;\n user-select: none;\n flex: 1;\n border-radius: 4px;\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n\n ${inputFocusStyle()}\n }\n\n input {\n position: absolute;\n opacity: 0;\n }\n\n .option {\n height: 100%;\n border-radius: 4px;\n will-change: transform, opacity;\n background: ${({ theme }) => theme.colors.neutral0};\n\n .checkmark {\n position: relative;\n display: block;\n will-change: transform;\n background: ${({ theme }) => theme.colors.neutral0};\n width: ${({ theme }) => theme.spaces[5]};\n height: ${({ theme }) => theme.spaces[5]};\n border: solid 1px ${({ theme }) => theme.colors.neutral300};\n border-radius: 50%;\n\n &:before,\n &:after {\n content: '';\n display: block;\n border-radius: 50%;\n width: ${({ theme }) => theme.spaces[3]};\n height: ${({ theme }) => theme.spaces[3]};\n position: absolute;\n top: 3px;\n left: 3px;\n }\n\n &:after {\n transform: scale(0);\n transition: inherit;\n will-change: transform;\n }\n }\n }\n\n .container input:checked ~ div {\n background: ${({ theme }) => theme.colors.primary100};\n color: ${({ theme }) => theme.colors.primary600};\n .checkmark {\n border: solid 1px ${({ theme }) => theme.colors.primary600};\n &::after {\n background: ${({ theme }) => theme.colors.primary600};\n transform: scale(1);\n }\n }\n }\n`;\n\nexport { Wrapper };\n","import { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Wrapper } from './Styles';\n\nimport type { IntlLabel } from '../../types';\n\ninterface Radio {\n title: IntlLabel;\n description: IntlLabel;\n value: any;\n}\n\ninterface CustomRadioGroupProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n radios?: Radio[];\n value?: string | boolean;\n}\n\nexport const CustomRadioGroup = ({\n intlLabel,\n name,\n onChange,\n radios = [],\n value,\n}: CustomRadioGroupProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\" htmlFor={name} tag=\"label\">\n {formatMessage(intlLabel)}\n </Typography>\n <Wrapper gap={4} alignItems=\"stretch\">\n {radios.map((radio) => {\n return (\n <label htmlFor={radio.value.toString()} key={radio.value} className=\"container\">\n <input\n id={radio.value.toString()}\n name={name}\n className=\"option-input\"\n checked={radio.value === value}\n value={radio.value}\n key={radio.value}\n onChange={onChange}\n type=\"radio\"\n />\n <Box className=\"option\" padding={4}>\n <Flex>\n <Box paddingRight={4}>\n <span className=\"checkmark\" />\n </Box>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography fontWeight=\"bold\">{formatMessage(radio.title)}</Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(radio.description)}\n </Typography>\n </Flex>\n </Flex>\n </Box>\n </label>\n );\n })}\n </Wrapper>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { IntlLabel } from '../types';\n\nimport { CustomRadioGroup } from './CustomRadioGroup';\n\ninterface BooleanRadioGroupProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n}\n\nexport const BooleanRadioGroup = ({\n onChange,\n name,\n intlLabel,\n ...rest\n}: BooleanRadioGroupProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.value !== 'false';\n\n onChange({ target: { name, value: checked, type: 'boolean-radio-group' } });\n };\n\n return <CustomRadioGroup {...rest} name={name} onChange={handleChange} intlLabel={intlLabel} />;\n};\n","import { Box, Checkbox, Field, Flex, NumberInput, TextInput } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { IntlLabel } from '../types';\n\ninterface CheckboxWithNumberFieldProps {\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: any) => void;\n value?: any;\n}\n\nexport const CheckboxWithNumberField = ({\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value = null,\n}: CheckboxWithNumberFieldProps) => {\n const { formatMessage } = useIntl();\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const type = modifiedData.type === 'biginteger' ? 'text' : 'number';\n\n const disabled = !modifiedData.type;\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Checkbox\n id={name}\n name={name}\n onCheckedChange={(value) => {\n const initValue = type === 'text' ? '0' : 0;\n const nextValue = value ? initValue : null;\n\n onChange({ target: { name, value: nextValue } });\n }}\n checked={value !== null}\n >\n {label}\n </Checkbox>\n {value !== null && (\n <Box paddingLeft={6} style={{ maxWidth: '200px' }}>\n {type === 'text' ? (\n <Field.Root error={errorMessage} name={name}>\n <TextInput\n aria-label={label}\n disabled={disabled}\n onChange={onChange}\n value={value === null ? '' : value}\n />\n <Field.Error />\n </Field.Root>\n ) : (\n <Field.Root error={errorMessage} name={name}>\n <NumberInput\n aria-label={label}\n disabled={disabled}\n onValueChange={(value: any) => {\n onChange({ target: { name, value: value ?? 0, type } });\n }}\n value={value || 0}\n />\n <Field.Error />\n </Field.Root>\n )}\n </Box>\n )}\n </Flex>\n );\n};\n","import { useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport { CustomRadioGroup } from './CustomRadioGroup';\n\nimport type { IntlLabel } from '../types';\n\ninterface Radio {\n title: IntlLabel;\n description: IntlLabel;\n value: any;\n}\n\ninterface ContentTypeRadioGroupProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n radios?: Radio[];\n value?: string | boolean;\n}\n\nexport const ContentTypeRadioGroup = ({ onChange, ...rest }: ContentTypeRadioGroupProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const handleChange = (e: any) => {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: getTrad('contentType.kind.change.warning'),\n defaultMessage:\n 'You just changed the kind of a content type: API will be reset (routes, controllers, and services will be overwritten).',\n }),\n });\n\n onChange(e);\n };\n\n return <CustomRadioGroup {...rest} onChange={handleChange} />;\n};\n","/**\n *\n * DraftAndPublishToggle\n *\n */\n\nimport { useState } from 'react';\n\nimport { ConfirmDialog } from '@strapi/admin/strapi-admin';\nimport { Button, Checkbox, CheckboxProps, Dialog, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface DraftAndPublishToggleProps {\n description?: Description;\n disabled?: boolean;\n intlLabel: IntlLabel;\n isCreating: boolean;\n name: string;\n onChange: (value: { target: { name: string; value: boolean } }) => void;\n value?: boolean;\n}\n\nexport const DraftAndPublishToggle = ({\n description,\n disabled = false,\n intlLabel,\n isCreating,\n name,\n onChange,\n value = false,\n}: DraftAndPublishToggleProps) => {\n const { formatMessage } = useIntl();\n const [showWarning, setShowWarning] = useState(false);\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const handleConfirm = () => {\n onChange({ target: { name, value: false } });\n\n setShowWarning(false);\n };\n\n const handleChange: CheckboxProps['onCheckedChange'] = (checked) => {\n if (!checked && !isCreating) {\n setShowWarning(true);\n\n return;\n }\n\n onChange({ target: { name, value: !!checked } });\n };\n\n return (\n <>\n <Field.Root hint={hint} name={name}>\n <Checkbox checked={value} disabled={disabled} onCheckedChange={handleChange}>\n {label}\n </Checkbox>\n <Field.Hint />\n </Field.Root>\n\n <Dialog.Root open={showWarning} onOpenChange={(isOpen) => setShowWarning(isOpen)}>\n <ConfirmDialog\n endAction={\n <Button onClick={handleConfirm} variant=\"danger\" width=\"100%\" justifyContent=\"center\">\n {formatMessage({\n id: getTrad('popUpWarning.draft-publish.button.confirm'),\n defaultMessage: 'Yes, disable',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: getTrad('popUpWarning.draft-publish.message'),\n defaultMessage: 'If you disable the draft & publish, your drafts will be deleted.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </>\n );\n};\n","/**\n *\n * FormModalEndActions\n *\n */\n\nimport { SyntheticEvent } from 'react';\n\nimport { Button, Flex } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\ntype FormModalEndActionsProps = {\n categoryName?: string;\n deleteCategory: (categoryName: string) => void;\n deleteComponent: () => void;\n deleteContentType: () => void;\n isAttributeModal: boolean;\n isCustomFieldModal: boolean;\n isComponentAttribute: boolean;\n isComponentModal: boolean;\n isComponentToDzModal: boolean;\n isContentTypeModal: boolean;\n isCreatingComponent: boolean;\n isCreatingComponentAttribute: boolean;\n isCreatingComponentInDz: boolean;\n isCreatingComponentWhileAddingAField: boolean;\n isCreatingContentType: boolean;\n isCreatingDz: boolean;\n isDzAttribute: boolean;\n isEditingAttribute: boolean;\n isEditingCategory: boolean;\n isInFirstComponentStep: boolean;\n onSubmitAddComponentAttribute: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitAddComponentToDz: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitCreateContentType: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitCreateComponent: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitCreateDz: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditAttribute: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditCategory: (e: SyntheticEvent) => void;\n onSubmitEditComponent: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditContentType: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditCustomFieldAttribute: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditDz: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onClickFinish: () => void;\n};\n\nexport const FormModalEndActions = ({\n categoryName,\n deleteCategory,\n deleteComponent,\n deleteContentType,\n isAttributeModal,\n isCustomFieldModal,\n isComponentAttribute,\n isComponentToDzModal,\n isContentTypeModal,\n isCreatingComponent,\n isCreatingComponentAttribute,\n isCreatingComponentInDz,\n isCreatingComponentWhileAddingAField,\n isCreatingContentType,\n isCreatingDz,\n isComponentModal,\n isDzAttribute,\n isEditingAttribute,\n isEditingCategory,\n isInFirstComponentStep,\n onSubmitAddComponentAttribute,\n onSubmitAddComponentToDz,\n onSubmitCreateContentType,\n onSubmitCreateComponent,\n onSubmitCreateDz,\n onSubmitEditAttribute,\n onSubmitEditCategory,\n onSubmitEditComponent,\n onSubmitEditContentType,\n onSubmitEditCustomFieldAttribute,\n onSubmitEditDz,\n onClickFinish,\n}: FormModalEndActionsProps) => {\n const { formatMessage } = useIntl();\n\n if (isComponentToDzModal) {\n if (isCreatingComponentInDz) {\n return (\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentToDz(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-first-field-to-created-component'),\n defaultMessage: 'Add first field to the component',\n })}\n </Button>\n );\n }\n\n return (\n <Button\n variant=\"default\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentToDz(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n );\n }\n\n if (isAttributeModal && isDzAttribute && !isCreatingDz) {\n return (\n <Button\n variant=\"default\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitEditDz(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n );\n }\n\n if (isAttributeModal && isDzAttribute && isCreatingDz) {\n return (\n <>\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitCreateDz(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-components-to-dynamiczone'),\n defaultMessage: 'Add components to the zone',\n })}\n </Button>\n {/* // TO FIX fix doesnt close the modal */}\n {/* <Button\n variant=\"default\"\n type=\"button\"\n onClick={e => {\n e.preventDefault();\n\n onSubmitCreateDz(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button> */}\n </>\n );\n }\n\n if (isAttributeModal && isComponentAttribute) {\n if (isInFirstComponentStep) {\n return (\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentAttribute(e, true);\n }}\n >\n {isCreatingComponentAttribute\n ? formatMessage({\n id: getTrad('form.button.configure-component'),\n defaultMessage: 'Configure the component',\n })\n : formatMessage({\n id: getTrad('form.button.select-component'),\n defaultMessage: 'Configure the component',\n })}\n </Button>\n );\n }\n\n return (\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentAttribute(e, true);\n }}\n startIcon={<Plus />}\n >\n {isCreatingComponentWhileAddingAField\n ? formatMessage({\n id: getTrad('form.button.add-first-field-to-created-component'),\n defaultMessage: 'Add first field to the component',\n })\n : formatMessage({\n id: getTrad('form.button.add-field'),\n defaultMessage: 'Add another field',\n })}\n </Button>\n <Button\n variant=\"default\"\n type=\"button\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitAddComponentAttribute(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n if (isAttributeModal && !isComponentAttribute && !isDzAttribute) {\n return (\n <Flex gap={2}>\n <Button\n type={isEditingAttribute ? 'button' : 'submit'}\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditAttribute(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-field'),\n defaultMessage: 'Add another field',\n })}\n </Button>\n <Button\n type={isEditingAttribute ? 'submit' : 'button'}\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitEditAttribute(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n if (isContentTypeModal) {\n return (\n <Flex gap={2}>\n {!isCreatingContentType && (\n <>\n <Button\n type=\"button\"\n variant=\"danger\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n deleteContentType();\n }}\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n <Button\n type=\"submit\"\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditContentType(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </>\n )}\n {isCreatingContentType && (\n <Button\n type=\"submit\"\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitCreateContentType(e, true);\n }}\n >\n {formatMessage({\n id: 'global.continue',\n defaultMessage: 'Continue',\n })}\n </Button>\n )}\n </Flex>\n );\n }\n\n if (isComponentModal) {\n return (\n <Flex gap={2}>\n {!isCreatingComponent && (\n <>\n <Button\n type=\"button\"\n variant=\"danger\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n deleteComponent();\n }}\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n <Button\n type=\"submit\"\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditComponent(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </>\n )}\n {isCreatingComponent && (\n <Button\n type=\"submit\"\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitCreateComponent(e, true);\n }}\n >\n {formatMessage({\n id: 'global.continue',\n defaultMessage: 'Continue',\n })}\n </Button>\n )}\n </Flex>\n );\n }\n\n if (isEditingCategory) {\n return (\n <Flex gap={2}>\n <Button\n type=\"button\"\n variant=\"danger\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n if (categoryName) {\n deleteCategory(categoryName);\n }\n }}\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n <Button\n type=\"submit\"\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditCategory(e);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n if (isCustomFieldModal) {\n return (\n <Flex gap={2}>\n <Button\n type={isEditingAttribute ? 'button' : 'submit'}\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditCustomFieldAttribute(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-field'),\n defaultMessage: 'Add another field',\n })}\n </Button>\n <Button\n type={isEditingAttribute ? 'submit' : 'button'}\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitEditCustomFieldAttribute(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n return null;\n};\n","/**\n *\n * FormModalHeader\n *\n */\nimport { Box, Flex, Breadcrumbs, Crumb, Link, Modal } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../hooks/useDataManager';\nimport { useFormModalNavigation } from '../hooks/useFormModalNavigation';\nimport { getTrad } from '../utils';\n\nimport { AttributeIcon, IconByType } from './AttributeIcon';\n\nimport type { SchemaType } from '../types';\nimport type { Internal } from '@strapi/types';\n\ninterface Header {\n label: string;\n info?: { category: string; name: string };\n}\n\ninterface FormModalHeaderProps {\n actionType?: string | null;\n attributeName: string;\n attributeType: IconByType;\n categoryName: string;\n contentTypeKind: IconByType;\n dynamicZoneTarget: string;\n forTarget: SchemaType;\n modalType: string | null;\n targetUid: Internal.UID.Schema;\n customFieldUid?: string | null;\n showBackLink?: boolean;\n}\n\nexport const FormModalHeader = ({\n actionType = null,\n attributeName,\n attributeType,\n categoryName,\n contentTypeKind,\n dynamicZoneTarget,\n forTarget,\n modalType = null,\n targetUid,\n customFieldUid = null,\n showBackLink = false,\n}: FormModalHeaderProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n let icon: IconByType = 'component';\n let headers: Header[] = [];\n\n const schema = modifiedData?.[forTarget]?.[targetUid] || modifiedData?.[forTarget] || null;\n const displayName = schema?.schema.displayName;\n\n if (modalType === 'contentType') {\n icon = contentTypeKind;\n }\n\n if (['component', 'editCategory'].includes(modalType || '')) {\n icon = 'component';\n }\n\n const isCreatingMainSchema = ['component', 'contentType'].includes(modalType || '');\n\n if (isCreatingMainSchema) {\n let headerId = getTrad(`modalForm.component.header-${actionType}`);\n\n if (modalType === 'contentType') {\n headerId = getTrad(`modalForm.${contentTypeKind}.header-create`);\n }\n\n if (actionType === 'edit') {\n headerId = getTrad(`modalForm.header-edit`);\n }\n\n return (\n <Modal.Header>\n <Flex>\n <Box>\n <AttributeIcon type={icon} />\n </Box>\n <Box paddingLeft={3}>\n <Modal.Title>{formatMessage({ id: headerId }, { name: displayName })}</Modal.Title>\n </Box>\n </Flex>\n </Modal.Header>\n );\n }\n\n headers = [\n {\n label: displayName,\n info: { category: schema?.category || null, name: schema?.schema.displayName },\n },\n ];\n\n if (modalType === 'chooseAttribute') {\n icon = ['component', 'components'].includes(forTarget) ? 'component' : schema.schema.kind;\n }\n\n if (modalType === 'addComponentToDynamicZone') {\n icon = 'dynamiczone';\n headers.push({ label: dynamicZoneTarget });\n }\n\n if (modalType === 'attribute' || modalType === 'customField') {\n icon = attributeType;\n headers.push({ label: attributeName });\n }\n\n if (modalType === 'editCategory') {\n const label = formatMessage({\n id: getTrad('modalForm.header.categories'),\n defaultMessage: 'Categories',\n });\n\n headers = [{ label }, { label: categoryName }];\n }\n\n return (\n <Modal.Header>\n <Flex gap={3}>\n {showBackLink && (\n // This is a workaround and should use the LinkButton with a variant that currently doesn't exist\n <Link\n aria-label={formatMessage({\n id: getTrad('modalForm.header.back'),\n defaultMessage: 'Back',\n })}\n startIcon={<ArrowLeft />}\n onClick={() => onOpenModalAddField({ forTarget, targetUid })}\n href=\"#back\"\n isExternal={false}\n />\n )}\n <AttributeIcon type={icon} customField={customFieldUid} />\n\n <Breadcrumbs label={headers.map(({ label }) => label).join(',')}>\n {headers.map(({ label, info }, index, arr) => {\n label = upperFirst(label);\n\n if (!label) {\n return null;\n }\n\n const key = `${label}.${index}`;\n\n if (info?.category) {\n label = `${label} (${upperFirst(info.category)} - ${upperFirst(info.name)})`;\n }\n\n return (\n <Crumb isCurrent={index === arr.length - 1} key={key}>\n {label}\n </Crumb>\n );\n })}\n </Breadcrumbs>\n </Flex>\n </Modal.Header>\n );\n};\n","import { StrapiAppContextValue } from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport type { SchemaType } from '../types';\n\ntype ModalTitleProps = {\n forTarget?: SchemaType;\n step?: string;\n kind?: string;\n modalType?: string;\n actionType?: string;\n};\n\nexport const getModalTitleSubHeader = ({\n modalType,\n forTarget,\n kind,\n actionType,\n step,\n}: ModalTitleProps) => {\n switch (modalType) {\n case 'chooseAttribute':\n return getTrad(\n `modalForm.sub-header.chooseAttribute.${\n forTarget?.includes('component') ? 'component' : kind || 'collectionType'\n }`\n );\n case 'attribute': {\n return getTrad(\n `modalForm.sub-header.attribute.${actionType}${\n step !== 'null' && step !== null && actionType !== 'edit' ? '.step' : ''\n }`\n );\n }\n case 'customField': {\n return getTrad(`modalForm.sub-header.attribute.${actionType}`);\n }\n case 'addComponentToDynamicZone':\n return getTrad('modalForm.sub-header.addComponentToDynamicZone');\n default:\n return getTrad('configurations');\n }\n};\n\ntype FormModalSubHeaderProps = {\n actionType: string;\n modalType: string;\n forTarget: SchemaType;\n kind?: string;\n step?: string;\n attributeType: string;\n attributeName: string;\n customField?: ReturnType<StrapiAppContextValue['customFields']['get']>;\n};\n\nexport const FormModalSubHeader = ({\n actionType,\n modalType,\n forTarget,\n kind,\n step,\n attributeType,\n attributeName,\n customField,\n}: FormModalSubHeaderProps) => {\n const { formatMessage } = useIntl();\n const intlLabel =\n modalType === 'customField'\n ? customField?.intlLabel\n : { id: getTrad(`attribute.${attributeType}`) };\n\n return (\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={1} gap={1}>\n <Typography tag=\"h2\" variant=\"beta\">\n {formatMessage(\n {\n id: getModalTitleSubHeader({\n actionType,\n forTarget,\n kind,\n step,\n modalType,\n }),\n defaultMessage: 'Add new field',\n },\n {\n type: intlLabel ? upperFirst(formatMessage(intlLabel)) : '',\n name: upperFirst(attributeName),\n step,\n }\n )}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad(`attribute.${attributeType}.description`),\n defaultMessage: 'A type for modeling data',\n })}\n </Typography>\n </Flex>\n );\n};\n","import * as Icons from '@strapi/icons';\nimport * as Symbols from '@strapi/icons/symbols';\n\nexport type Icon = (typeof Icons)[keyof typeof Icons] | (typeof Symbols)[keyof typeof Symbols];\n\nconst COMPONENT_ICONS: Record<string, Icon> = {\n alien: Icons.Alien,\n apps: Icons.GridNine,\n archive: Icons.Archive,\n arrowDown: Icons.ArrowDown,\n arrowLeft: Icons.ArrowLeft,\n arrowRight: Icons.ArrowRight,\n arrowUp: Icons.ArrowUp,\n attachment: Icons.Paperclip,\n bell: Icons.Bell,\n bold: Icons.Bold,\n book: Icons.Book,\n briefcase: Icons.Briefcase,\n brush: Icons.PaintBrush,\n bulletList: Icons.BulletList,\n calendar: Icons.Calendar,\n car: Icons.Car,\n cast: Icons.Cast,\n chartBubble: Icons.ChartBubble,\n chartCircle: Icons.ChartCircle,\n chartPie: Icons.ChartPie,\n check: Icons.Check,\n clock: Icons.Clock,\n cloud: Icons.Cloud,\n code: Icons.Code,\n cog: Icons.Cog,\n collapse: Icons.Collapse,\n command: Icons.Command,\n connector: Icons.Faders,\n crop: Icons.Crop,\n crown: Icons.Crown,\n cup: Icons.Coffee,\n cursor: Icons.Cursor,\n dashboard: Icons.SquaresFour,\n database: Icons.Database,\n discuss: Icons.Discuss,\n doctor: Icons.Stethoscope,\n earth: Icons.Earth,\n emotionHappy: Icons.EmotionHappy,\n emotionUnhappy: Icons.EmotionUnhappy,\n envelop: Icons.Mail,\n exit: Icons.SignOut,\n expand: Icons.Expand,\n eye: Icons.Eye,\n feather: Icons.Feather,\n file: Icons.File,\n fileError: Icons.FileError,\n filePdf: Icons.FilePdf,\n filter: Icons.Filter,\n folder: Icons.Folder,\n gate: Icons.CastleTurret,\n gift: Icons.Gift,\n globe: Icons.Globe,\n grid: Icons.GridFour,\n handHeart: Icons.HandHeart,\n hashtag: Icons.Hashtag,\n headphone: Icons.Headphones,\n heart: Icons.Heart,\n house: Icons.House,\n information: Icons.Information,\n italic: Icons.Italic,\n key: Icons.Key,\n landscape: Icons.Images,\n layer: Icons.ListPlus,\n layout: Icons.Layout,\n lightbulb: Icons.Lightbulb,\n link: Icons.Link,\n lock: Icons.Lock,\n magic: Icons.Magic,\n manyToMany: Icons.ManyToMany,\n manyToOne: Icons.ManyToOne,\n manyWays: Icons.ManyWays,\n medium: Symbols.Medium,\n message: Icons.Message,\n microphone: Icons.Microphone,\n monitor: Icons.Monitor,\n moon: Icons.Moon,\n music: Icons.MusicNotes,\n oneToMany: Icons.OneToMany,\n oneToOne: Icons.OneToOne,\n oneWay: Icons.OneWay,\n paint: Icons.PaintBrush,\n paintBrush: Icons.PaintBrush,\n paperPlane: Icons.PaperPlane,\n pencil: Icons.Pencil,\n phone: Icons.Phone,\n picture: Icons.Image,\n pin: Icons.Pin,\n pinMap: Icons.PinMap,\n plane: Icons.Plane,\n play: Icons.Play,\n plus: Icons.Plus,\n priceTag: Icons.PriceTag,\n puzzle: Icons.PuzzlePiece,\n question: Icons.Question,\n quote: Icons.Quotes,\n refresh: Icons.ArrowClockwise,\n restaurant: Icons.Restaurant,\n rocket: Icons.Rocket,\n rotate: Icons.ArrowsCounterClockwise,\n scissors: Icons.Scissors,\n search: Icons.Search,\n seed: Icons.Plant,\n server: Icons.Server,\n shield: Icons.Shield,\n shirt: Icons.Shirt,\n shoppingCart: Icons.ShoppingCart,\n slideshow: Icons.PresentationChart,\n stack: Icons.Stack,\n star: Icons.Star,\n store: Icons.Store,\n strikeThrough: Icons.StrikeThrough,\n sun: Icons.Sun,\n television: Icons.Television,\n thumbDown: Icons.ThumbDown,\n thumbUp: Icons.ThumbUp,\n train: Icons.Train,\n twitter: Symbols.X,\n typhoon: Icons.Typhoon,\n underline: Icons.Underline,\n user: Icons.User,\n volumeMute: Icons.VolumeMute,\n volumeUp: Icons.VolumeUp,\n walk: Icons.Walk,\n wheelchair: Icons.Wheelchair,\n write: Icons.Feather,\n};\n\nexport { COMPONENT_ICONS };\n","import { useEffect, useRef, useState } from 'react';\n\nimport {\n Box,\n Field,\n Flex,\n IconButton,\n inputFocusStyle,\n Searchbar,\n Tooltip,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Search, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nimport { COMPONENT_ICONS } from './constants';\n\nimport type { IntlLabel } from '../../types';\n\nconst IconPickerWrapper = styled(Flex)`\n label {\n ${inputFocusStyle()}\n border-radius: ${({ theme }) => theme.borderRadius};\n border: 1px solid ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\ntype Icons = keyof typeof COMPONENT_ICONS;\n\ninterface IconPickProps {\n iconKey: Icons;\n name: string;\n onChange: (value: any) => void;\n isSelected: boolean;\n ariaLabel: string;\n}\n\nconst IconPick = ({ iconKey, name, onChange, isSelected, ariaLabel }: IconPickProps) => {\n const Icon = COMPONENT_ICONS[iconKey];\n\n return (\n <Field.Root name={name} required={false}>\n <Field.Label>\n <VisuallyHidden>\n {ariaLabel}\n <Field.Input\n type=\"radio\"\n checked={isSelected}\n onChange={onChange}\n value={iconKey}\n aria-checked={isSelected}\n />\n </VisuallyHidden>\n <Flex\n padding={2}\n cursor=\"pointer\"\n hasRadius\n background={isSelected ? 'primary200' : undefined}\n >\n <Icon fill={isSelected ? 'primary600' : 'neutral300'} />\n </Flex>\n </Field.Label>\n </Field.Root>\n );\n};\n\nexport interface IconPickerProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const IconPicker = ({ intlLabel, name, onChange, value = '' }: IconPickerProps) => {\n const { formatMessage } = useIntl();\n const [showSearch, setShowSearch] = useState(false);\n const [search, setSearch] = useState('');\n const allIcons = Object.keys(COMPONENT_ICONS) as Icons[];\n const [icons, setIcons] = useState(allIcons);\n const searchIconRef = useRef(null);\n const searchBarRef = useRef(null);\n\n const toggleSearch = () => {\n setShowSearch(!showSearch);\n };\n\n const onChangeSearch = ({ target: { value } }: { target: { value: string } }) => {\n setSearch(value);\n setIcons(() => allIcons.filter((icon) => icon.toLowerCase().includes(value.toLowerCase())));\n };\n\n const onClearSearch = () => {\n toggleSearch();\n setSearch('');\n setIcons(allIcons);\n };\n\n const removeIconSelected = () => {\n onChange({ target: { name, value: '' } });\n };\n\n useEffect(() => {\n if (showSearch) {\n (searchBarRef.current as unknown as HTMLInputElement)?.focus();\n }\n }, [showSearch]);\n\n return (\n <>\n <Flex justifyContent=\"space-between\" paddingBottom={2}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\" tag=\"label\">\n {formatMessage(intlLabel)}\n </Typography>\n <Flex gap={1}>\n {showSearch ? (\n <Searchbar\n ref={searchBarRef}\n name=\"searchbar\"\n placeholder={formatMessage({\n id: getTrad('ComponentIconPicker.search.placeholder'),\n defaultMessage: 'Search for an icon',\n })}\n onBlur={() => {\n if (!search) {\n toggleSearch();\n }\n }}\n onChange={onChangeSearch}\n value={search}\n onClear={onClearSearch}\n clearLabel={formatMessage({\n id: getTrad('IconPicker.search.clear.label'),\n defaultMessage: 'Clear the icon search',\n })}\n >\n {formatMessage({\n id: getTrad('IconPicker.search.placeholder.label'),\n defaultMessage: 'Search for an icon',\n })}\n </Searchbar>\n ) : (\n <IconButton\n ref={searchIconRef}\n onClick={toggleSearch}\n withTooltip={false}\n label={formatMessage({\n id: getTrad('IconPicker.search.button.label'),\n defaultMessage: 'Search icon button',\n })}\n variant=\"ghost\"\n >\n <Search />\n </IconButton>\n )}\n {value && (\n <Tooltip\n label={formatMessage({\n id: getTrad('IconPicker.remove.tooltip'),\n defaultMessage: 'Remove the selected icon',\n })}\n >\n <IconButton\n onClick={removeIconSelected}\n withTooltip={false}\n label={formatMessage({\n id: getTrad('IconPicker.remove.button'),\n defaultMessage: 'Remove the selected icon',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Tooltip>\n )}\n </Flex>\n </Flex>\n <IconPickerWrapper\n position=\"relative\"\n padding={1}\n background=\"neutral100\"\n hasRadius\n wrap=\"wrap\"\n gap={2}\n maxHeight=\"126px\"\n overflow=\"auto\"\n textAlign=\"center\"\n >\n {icons.length > 0 ? (\n icons.map((iconKey) => (\n <IconPick\n key={iconKey}\n iconKey={iconKey}\n name={name}\n onChange={onChange}\n isSelected={iconKey === value}\n ariaLabel={formatMessage(\n {\n id: getTrad('IconPicker.icon.label'),\n defaultMessage: 'Select {icon} icon',\n },\n { icon: iconKey }\n )}\n />\n ))\n ) : (\n <Box padding={4} grow={2}>\n <Typography variant=\"delta\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: getTrad('IconPicker.emptyState.label'),\n defaultMessage: 'No icon found',\n })}\n </Typography>\n </Box>\n )}\n </IconPickerWrapper>\n </>\n );\n};\n","import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n\n useEffect(() => {\n if (displayName) {\n const value = nameToSlug(displayName);\n\n try {\n const plural = pluralize(value, 2);\n onChangeRef.current({ target: { name, value: plural } });\n } catch (err) {\n onChangeRef.current({ target: { name, value } });\n }\n } else {\n onChangeRef.current({ target: { name, value: '' } });\n }\n }, [displayName, name]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} />\n <Field.Error />\n </Field.Root>\n );\n};\n","export const parseDateValue = (value: unknown): Date | undefined => {\n if (value instanceof Date && isValidDate(value)) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n if (isValidDate(date)) {\n return date;\n }\n }\n};\n\nconst isValidDate = (date: Date): boolean => !isNaN(date.getTime());\n","type TimeChangeHandler = (params: {\n target: { name: string; value: string | undefined; type: string };\n}) => void;\n\ntype TimeChangeParams = {\n value?: string;\n onChange: TimeChangeHandler;\n name: string;\n type: string;\n};\n\n// The backend sends a value which has the following format: '00:45:00.000'\n// but the time picker only supports hours & minutes so we need to mutate the value\nconst removeSeconds = (time: string): string => {\n const [hours, minutes] = time.split(':');\n return `${hours}:${minutes}`;\n};\n\n// we need to send back the value with the same '00:45:00.000' format\nconst addSecondsAndMilliseconds = (time: string): string => {\n return time.split(':').length === 2 ? `${time}:00.000` : time;\n};\n\nconst formatTimeForInput = (value?: string): string | undefined => {\n if (!value) return;\n return value.split(':').length > 2 ? removeSeconds(value) : value;\n};\n\nconst formatTimeForOutput = (value?: string): string | undefined => {\n if (!value) return undefined;\n return addSecondsAndMilliseconds(value);\n};\n\nexport const handleTimeChange = ({ value }: TimeChangeParams): string | undefined => {\n const formattedInputTime = formatTimeForInput(value);\n\n return formattedInputTime;\n};\n\nexport const handleTimeChangeEvent = (\n onChange: TimeChangeHandler,\n name: string,\n type: string,\n time?: string\n): void => {\n const formattedOutputTime = formatTimeForOutput(time);\n\n onChange({\n target: {\n name,\n value: formattedOutputTime,\n type,\n },\n });\n};\n","/**\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<TAttribute extends Schema.Attribute.AnyAttribute>\n extends Omit<GenericInputProps<TAttribute>, 'customInputs'> {\n ref?: React.Ref<HTMLElement>;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\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 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}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable,\n attribute,\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 options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\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 />\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 />\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 />\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 && ['biginteger', 'integer', 'number'].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","import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { useDataManager } from '../../../../hooks/useDataManager';\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { actions } from '../../../FormModal/reducer';\n\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: string;\n}\n\nexport const RelationTargetPicker = ({\n oneThatIsCreatingARelationWithAnother,\n target,\n}: RelationTargetPickerProps) => {\n const { contentTypes, sortedContentTypesList } = useDataManager();\n const dispatch = useDispatch();\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false }\n const allowedContentTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n const { plugin = null, schema: { displayName } = { displayName: 'error' } } =\n contentTypes?.[target] ?? {};\n\n const handleSelect =\n ({\n uid,\n plugin,\n title,\n restrictRelationsTo,\n }: {\n uid: string;\n plugin: boolean;\n title: string;\n restrictRelationsTo: any;\n }) =>\n () => {\n const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;\n\n dispatch(\n actions.onChangeRelationTarget({\n target: {\n value: uid,\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations: restrictRelationsTo,\n },\n })\n );\n };\n\n /**\n * TODO: This should be a Select but the design doesn't match the\n * styles of the select component and there isn't the ability to\n * change it correctly.\n */\n return (\n <Menu.Root>\n <MenuTrigger>{`${displayName} ${plugin ? `(from: ${plugin})` : ''}`}</MenuTrigger>\n <Menu.Content zIndex=\"popover\">\n {allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin }) => (\n <Menu.Item key={uid} onSelect={handleSelect({ uid, plugin, title, restrictRelationsTo })}>\n {title}&nbsp;\n {plugin && <>(from: {plugin})</>}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst MenuTrigger = styled(Menu.Trigger)`\n max-width: 16.8rem;\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n","import { Box, Divider, Flex, Typography } from '@strapi/design-system';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { GenericInput } from '../../GenericInputs';\n\nimport { RelationTargetPicker } from './RelationTargetPicker/RelationTargetPicker';\n\ninterface RelationFormBoxProps {\n disabled?: boolean;\n error?: Record<string, any>;\n header?: string;\n isMain?: boolean;\n name: string;\n onChange: (value: any) => void;\n oneThatIsCreatingARelationWithAnother?: string;\n target?: string;\n value?: string;\n}\n\nexport const RelationFormBox = ({\n disabled = false,\n error,\n header,\n isMain = false,\n name,\n onChange,\n oneThatIsCreatingARelationWithAnother = '',\n target = '',\n value = '',\n}: RelationFormBoxProps) => {\n return (\n <Box background=\"neutral100\" hasRadius borderColor=\"neutral200\">\n <Flex paddingTop={isMain ? 4 : 1} paddingBottom={isMain ? 3 : 1} justifyContent=\"center\">\n {isMain ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {header}\n </Typography>\n ) : (\n <RelationTargetPicker\n target={target}\n oneThatIsCreatingARelationWithAnother={oneThatIsCreatingARelationWithAnother}\n />\n )}\n </Flex>\n <Divider background=\"neutral200\" />\n <Box padding={4}>\n <GenericInput\n disabled={disabled}\n error={error?.id || null}\n intlLabel={{\n id: getTrad('form.attribute.item.defineRelation.fieldName'),\n defaultMessage: 'Field name',\n }}\n name={name}\n onChange={onChange}\n type=\"text\"\n value={value}\n />\n </Box>\n </Box>\n );\n};\n","import { Box, BoxComponent, Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n position: relative;\n width: 100%;\n &::before {\n content: '';\n position: absolute;\n top: calc(50% - 0px);\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.primary600};\n z-index: 0;\n }\n`;\n\nconst IconWrapper = styled<BoxComponent<'button'>>(Box)<{ $isSelected: boolean }>`\n background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary100' : 'neutral0']};\n border: 1px solid\n ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral200']};\n border-radius: ${({ theme }) => theme.borderRadius};\n z-index: 1;\n flex: 0 0 2.4rem;\n svg {\n width: 2.4rem;\n height: 2.4rem;\n max-width: unset;\n path {\n fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral500']};\n }\n }\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nconst InfosWrapper = styled<FlexComponent>(Flex)`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport { IconWrapper, InfosWrapper, Wrapper };\n","import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport {\n ManyToMany,\n ManyToOne,\n ManyWays as ManyWay,\n OneToMany,\n OneToOne,\n OneWay,\n} from '@strapi/icons';\nimport get from 'lodash/get';\nimport truncate from 'lodash/truncate';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\n\nimport { useDataManager } from '../../../hooks/useDataManager';\nimport { getTrad } from '../../../utils/getTrad';\nimport { actions } from '../../FormModal/reducer';\n\nimport { IconWrapper, InfosWrapper, Wrapper } from './Components';\n\nconst relations = {\n oneWay: OneWay,\n oneToOne: OneToOne,\n oneToMany: OneToMany,\n manyToOne: ManyToOne,\n manyToMany: ManyToMany,\n manyWay: ManyWay,\n};\n\ntype RelationType = keyof typeof relations;\n\ninterface RelationNaturePickerProps {\n naturePickerType: string;\n oneThatIsCreatingARelationWithAnother: string;\n relationType: string;\n target: string;\n}\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes, modifiedData } = useDataManager();\n const ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\n const componentRelations = ['oneWay', 'manyWay'];\n const dataType =\n naturePickerType === 'contentType'\n ? get(modifiedData, [naturePickerType, 'schema', 'kind'], '')\n : naturePickerType;\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'schema', 'displayName'], 'unknown');\n const leftTarget = areDisplayedNamesInverted\n ? targetLabel\n : oneThatIsCreatingARelationWithAnother;\n const rightTarget = areDisplayedNamesInverted\n ? oneThatIsCreatingARelationWithAnother\n : targetLabel;\n const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);\n const restrictedRelations = get(contentTypes, [target, 'schema', 'restrictRelationsTo'], null);\n\n const rightDisplayedValue = pluralize(\n rightTarget,\n ['manyToMany', 'oneToMany', 'manyToOne', 'manyWay'].includes(relationType) ? 2 : 1\n );\n\n if (!relationType) {\n return null;\n }\n\n return (\n <Flex style={{ flex: 1 }}>\n <Wrapper>\n <Flex paddingLeft={9} paddingRight={9} paddingTop={1} justifyContent=\"center\">\n <KeyboardNavigable tagName=\"button\">\n <Flex gap={3}>\n {relationsType.map((relation) => {\n const Asset = relations[relation];\n const isEnabled =\n restrictedRelations === null || restrictedRelations.includes(relation);\n\n return (\n <IconWrapper\n tag=\"button\"\n $isSelected={relationType === relation}\n disabled={!isEnabled}\n key={relation}\n onClick={() => {\n if (isEnabled) {\n dispatch(\n actions.onChangeRelationType({\n target: {\n oneThatIsCreatingARelationWithAnother,\n value: relation,\n },\n })\n );\n }\n }}\n padding={2}\n type=\"button\"\n >\n <Asset key={relation} />\n </IconWrapper>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n </Flex>\n </Wrapper>\n <InfosWrapper justifyContent=\"center\">\n <Typography>{truncate(leftDisplayedValue, { length: 24 })}&nbsp;</Typography>\n <Typography textColor=\"primary600\">\n {formatMessage({ id: getTrad(`relation.${relationType}`) })}&nbsp;\n </Typography>\n <Typography>{truncate(rightDisplayedValue, { length: 24 })}</Typography>\n </InfosWrapper>\n </Flex>\n );\n};\n","import { Flex } from '@strapi/design-system';\n\nimport { getRelationType } from '../../utils/getRelationType';\n\nimport { RelationFormBox } from './RelationField/RelationField';\nimport { RelationNaturePicker } from './RelationNaturePicker/RelationNaturePicker';\n\ninterface RelationProps {\n formErrors: Record<string, any>;\n mainBoxHeader: string;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n naturePickerType: string;\n}\n\nexport const Relation = ({\n formErrors,\n mainBoxHeader,\n modifiedData,\n naturePickerType,\n onChange,\n}: RelationProps) => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n return (\n <Flex style={{ position: 'relative' }}>\n <RelationFormBox\n isMain\n header={mainBoxHeader}\n error={formErrors?.name || null}\n name=\"name\"\n onChange={onChange}\n value={modifiedData?.name || ''}\n />\n <RelationNaturePicker\n naturePickerType={naturePickerType}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n relationType={relationType!}\n target={modifiedData.target}\n />\n <RelationFormBox\n disabled={['oneWay', 'manyWay'].includes(relationType!)}\n error={formErrors?.targetAttribute || null}\n name=\"targetAttribute\"\n onChange={onChange}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n target={modifiedData.target}\n value={modifiedData?.targetAttribute || ''}\n />\n </Flex>\n );\n};\n","import { useState } from 'react';\n\nimport { ComboboxOption, Combobox, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../hooks/useDataManager';\n\ninterface SelectCategoryProps {\n error?: string | null;\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n };\n name: string;\n onChange: (value: { target: { name: string; value: any; type: string } }) => void;\n value?: string;\n isCreating?: boolean;\n dynamicZoneTarget?: string | null;\n}\n\nexport const SelectCategory = ({\n error = null,\n intlLabel,\n name,\n onChange,\n value = undefined,\n isCreating,\n dynamicZoneTarget,\n}: SelectCategoryProps) => {\n const { formatMessage } = useIntl();\n const { allComponentsCategories } = useDataManager();\n const [categories, setCategories] = useState(allComponentsCategories);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage(intlLabel);\n\n const handleChange = (value: any) => {\n onChange({ target: { name, value, type: 'select-category' } });\n };\n\n const handleCreateOption = (value: any) => {\n setCategories((prev) => [...prev, value]);\n handleChange(value);\n };\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <Combobox\n // TODO: re-enable category edits, renaming categories of already existing components currently breaks other functionality\n // See https://github.com/strapi/strapi/issues/20356\n disabled={!isCreating && !dynamicZoneTarget}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n value={value}\n creatable\n >\n {categories.map((category) => (\n <ComboboxOption key={category} value={category}>\n {category}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n","import type { ComponentWithChildren } from '../components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents';\nimport type { NestedComponent } from '../components/DataManagerProvider/utils/retrieveNestedComponents';\nimport type { Internal } from '@strapi/types';\n\nconst findComponent = <T extends { component: Internal.UID.Component }>(\n componentUid: Internal.UID.Schema,\n components: Array<T>\n) => {\n return components.find((c) => c.component === componentUid);\n};\n\n/**\n * Recursively calculates the maximum depth of nested child components\n * for a given component UID.\n *\n * @param componentUid - The UID of the component to start from.\n * @param components - The array of all components with their child components.\n * @param currentDepth - The current depth of the recursion. Defaults to 0.\n * @returns The maximum depth of the nested child components.\n */\nexport const getChildrenMaxDepth = (\n componentUid: Internal.UID.Component,\n components: Array<ComponentWithChildren>,\n currentDepth = 0\n) => {\n const component = findComponent(componentUid, components);\n\n // If the component doesn't exist or has no child components, return the current depth.\n if (!component || !component.childComponents || component.childComponents.length === 0) {\n return currentDepth;\n }\n\n let maxDepth = currentDepth;\n\n // Iterate through each child component to calculate their respective depths.\n component.childComponents.forEach((child) => {\n // Recursively calculate the depth of the child component.\n const depth = getChildrenMaxDepth(child.component, components, currentDepth + 1);\n // Update the maximum depth if the child's depth is greater.\n if (depth > maxDepth) {\n maxDepth = depth;\n }\n });\n\n return maxDepth;\n};\n\n/**\n * Calculates the depth of a component within a nested component tree.\n * Depth is defined as the level at which the component is nested.\n * For example, a component at Depth 3 is the third nested component.\n *\n * @param component - The UID of the component to find the depth for.\n * @param components - The array of all nested components.\n * @returns The depth level of the component within the nested tree.\n */\nexport const getComponentDepth = (\n component: Internal.UID.Schema,\n components: Array<NestedComponent>\n) => {\n /**\n * Helper function to recursively calculate the depth of a component.\n *\n * @param currentComponent - The current component being inspected.\n * @param currentLevel - The current level of depth in the tree.\n * @returns An array of depth levels found for the component.\n */\n const getDepth = (currentComponent: NestedComponent, currentLevel: number): Array<number> => {\n const levels = [];\n levels.push(currentLevel);\n\n // If the component has no parent UIDs, return the current levels\n if (!currentComponent.uidsOfAllParents) {\n return levels;\n }\n\n // Iterate over each parent UID to calculate their respective depths\n for (const parentUid of currentComponent.uidsOfAllParents) {\n const parentComponent = findComponent(parentUid, components);\n if (parentComponent) {\n levels.push(...getDepth(parentComponent, currentLevel + 1));\n }\n }\n\n return levels;\n };\n\n const nestedCompo = findComponent(component, components);\n // return depth 0 if component is not nested\n if (!nestedCompo) {\n return 0;\n }\n const compoDepth = Math.max(...getDepth(nestedCompo, 1));\n return compoDepth;\n};\n","import { SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { MAX_COMPONENT_DEPTH } from '../constants';\nimport { useDataManager } from '../hooks/useDataManager';\nimport { getChildrenMaxDepth, getComponentDepth } from '../utils/getMaxDepth';\n\nimport type { Internal } from '@strapi/types';\ninterface Option {\n uid: string;\n label: string;\n categoryName: string;\n}\n\ninterface SelectComponentProps {\n componentToCreate?: Record<string, any> | null;\n error?: string | null;\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n };\n isAddingAComponentToAnotherComponent: boolean;\n isCreating: boolean;\n isCreatingComponentWhileAddingAField: boolean;\n name: string;\n onChange: (value: any) => void;\n targetUid: Internal.UID.Schema;\n value: string;\n forTarget: string;\n}\n\nexport const SelectComponent = ({\n error = null,\n intlLabel,\n isAddingAComponentToAnotherComponent,\n isCreating,\n isCreatingComponentWhileAddingAField,\n componentToCreate,\n name,\n onChange,\n targetUid,\n forTarget,\n value,\n}: SelectComponentProps) => {\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage(intlLabel);\n\n const {\n componentsGroupedByCategory,\n componentsThatHaveOtherComponentInTheirAttributes,\n nestedComponents,\n } = useDataManager();\n\n const isTargetAComponent = ['component', 'components'].includes(forTarget);\n\n let options: Option[] = Object.entries(componentsGroupedByCategory).reduce(\n (acc: Option[], current) => {\n const [categoryName, components] = current;\n const compos = components.map((component) => {\n return {\n uid: component.uid,\n label: component.schema.displayName,\n categoryName,\n };\n });\n\n return [...acc, ...compos];\n },\n []\n );\n\n if (isAddingAComponentToAnotherComponent) {\n options = options.filter(({ uid }: any) => {\n const maxDepth = getChildrenMaxDepth(uid, componentsThatHaveOtherComponentInTheirAttributes);\n const componentDepth = getComponentDepth(targetUid, nestedComponents);\n const totalDepth = maxDepth + componentDepth;\n return totalDepth <= MAX_COMPONENT_DEPTH;\n });\n }\n\n if (isTargetAComponent) {\n options = options.filter((option) => {\n return option.uid !== targetUid;\n });\n }\n\n if (isCreatingComponentWhileAddingAField) {\n options = [\n {\n uid: value,\n label: componentToCreate?.displayName,\n categoryName: componentToCreate?.category,\n },\n ];\n }\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={isCreatingComponentWhileAddingAField || !isCreating}\n onChange={(value: any) => {\n onChange({ target: { name, value, type: 'select-category' } });\n }}\n value={value || ''}\n >\n {options.map((option) => {\n return (\n <SingleSelectOption key={option.uid} value={option.uid}>\n {`${option.categoryName} - ${option.label}`}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n","import { Field, MultiSelectNested } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../hooks/useDataManager';\nimport { getTrad } from '../utils';\nimport { findAttribute } from '../utils/findAttribute';\n\nimport type { Component } from '../types';\n\ntype SelectComponentsProps = {\n dynamicZoneTarget: string;\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: object;\n };\n name: string;\n onChange: (value: {\n target: {\n name: string;\n value: string[];\n type?: string;\n };\n }) => void;\n value: string[];\n};\n\nexport const SelectComponents = ({\n dynamicZoneTarget,\n intlLabel,\n name,\n onChange,\n value,\n}: SelectComponentsProps) => {\n const { formatMessage } = useIntl();\n const { componentsGroupedByCategory, modifiedData } = useDataManager();\n const dzSchema = findAttribute(modifiedData.contentType.schema.attributes, dynamicZoneTarget);\n const alreadyUsedComponents = dzSchema?.components || [];\n const filteredComponentsGroupedByCategory = Object.keys(componentsGroupedByCategory).reduce(\n (acc, current) => {\n const filteredComponents = componentsGroupedByCategory[current].filter(({ uid }) => {\n return !alreadyUsedComponents.includes(uid);\n });\n\n if (filteredComponents.length > 0) {\n acc[current] = filteredComponents;\n }\n\n return acc;\n },\n {} as Record<string, Component[]>\n );\n const options = Object.entries(filteredComponentsGroupedByCategory).reduce(\n (acc, current) => {\n const [categoryName, components] = current;\n const section = {\n label: categoryName,\n children: components.map(({ uid, schema: { displayName } }) => {\n return { label: displayName, value: uid };\n }),\n };\n\n acc.push(section);\n\n return acc;\n },\n [] as Array<{ label: string; children: Array<{ label: string; value: string }> }>\n );\n\n const displayedValue = formatMessage(\n {\n id: getTrad('components.SelectComponents.displayed-value'),\n defaultMessage:\n '{number, plural, =0 {# components} one {# component} other {# components}} selected',\n },\n { number: value?.length ?? 0 }\n );\n\n return (\n <Field.Root name={name}>\n <Field.Label>{formatMessage(intlLabel)}</Field.Label>\n <MultiSelectNested\n id=\"select1\"\n customizeContent={() => displayedValue}\n onChange={(values) => {\n onChange({ target: { name, value: values, type: 'select-components' } });\n }}\n options={options}\n value={value || []}\n />\n </Field.Root>\n );\n};\n","import { Field, SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { PrimitiveType, useIntl } from 'react-intl';\n\ntype SelectDateTypeProps = {\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: object;\n };\n error?: string;\n modifiedData: {\n default: number;\n max: number;\n min: number;\n };\n name: string;\n onChange: (value: {\n target: {\n name: string;\n value: string | number | null;\n type?: string;\n };\n }) => void;\n options: Array<{\n metadatas: {\n intlLabel: {\n id: string;\n defaultMessage: string;\n values: Record<string, PrimitiveType> | undefined;\n };\n disabled?: boolean;\n hidden?: boolean;\n };\n key: string | number;\n value: string | number;\n }>;\n value?: string;\n};\n\nexport const SelectDateType = ({\n intlLabel,\n error = undefined,\n modifiedData,\n name,\n onChange,\n options,\n value = '',\n}: SelectDateTypeProps) => {\n const { formatMessage } = useIntl();\n const label = formatMessage(intlLabel);\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n\n const handleChange = (nextValue: string | number) => {\n onChange({ target: { name, value: nextValue, type: 'select' } });\n\n if (!value) {\n return;\n }\n\n if (modifiedData.default !== undefined && modifiedData.default !== null) {\n onChange({ target: { name: 'default', value: null } });\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect onChange={handleChange} value={value || ''}>\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n intlLabel.values\n )}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n","import { SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ntype SelectNumberProps = {\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: object;\n };\n error?: string;\n modifiedData: {\n default: number;\n max: number;\n min: number;\n };\n name: string;\n onChange: (value: {\n target: {\n name: string;\n value: string | number | null;\n type?: string;\n };\n }) => void;\n options: Array<{\n metadatas: {\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n disabled?: boolean;\n hidden?: boolean;\n };\n key: string | number;\n value: string | number;\n }>;\n value?: string;\n};\n\nexport const SelectNumber = ({\n intlLabel,\n error = undefined,\n modifiedData,\n name,\n onChange,\n options,\n value = '',\n}: SelectNumberProps) => {\n const { formatMessage } = useIntl();\n const label = formatMessage(intlLabel);\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n\n const handleChange = (nextValue: string | number) => {\n onChange({ target: { name, value: nextValue, type: 'select' } });\n\n if (!value) {\n return;\n }\n\n if (nextValue === 'biginteger' && value !== 'biginteger') {\n if (modifiedData.default !== undefined && modifiedData.default !== null) {\n onChange({ target: { name: 'default', value: null } });\n }\n\n if (modifiedData.max !== undefined && modifiedData.max !== null) {\n onChange({ target: { name: 'max', value: null } });\n }\n\n if (modifiedData.min !== undefined && modifiedData.min !== null) {\n onChange({ target: { name: 'min', value: null } });\n }\n }\n\n if (\n typeof nextValue === 'string' &&\n ['decimal', 'float', 'integer'].includes(nextValue) &&\n value === 'biginteger'\n ) {\n if (modifiedData.default !== undefined && modifiedData.default !== null) {\n onChange({ target: { name: 'default', value: null } });\n }\n\n if (modifiedData.max !== undefined && modifiedData.max !== null) {\n onChange({ target: { name: 'max', value: null } });\n }\n\n if (modifiedData.min !== undefined && modifiedData.min !== null) {\n onChange({ target: { name: 'min', value: null } });\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect onChange={handleChange} value={value || ''}>\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 <Field.Error />\n </Field.Root>\n );\n};\n\nSelectNumber.defaultProps = {\n error: undefined,\n value: '',\n};\n","import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface SingularNameProps {\n description?: IntlLabel | null;\n error?: string | null;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string | null;\n}\n\nexport const SingularName = ({\n description = null,\n error = null,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value = null,\n}: SingularNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n\n useEffect(() => {\n if (displayName) {\n onChangeRef.current({ target: { name, value: nameToSlug(displayName) } });\n } else {\n onChangeRef.current({ target: { name, value: '' } });\n }\n }, [displayName, name]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} />\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n","import { Box, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { GenericInput } from './GenericInputs';\n\ninterface TabFormProps {\n form: Array<Record<string, any>>;\n formErrors: Record<string, any>;\n genericInputProps: Record<string, any>;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n}\n\n/* eslint-disable react/no-array-index-key */\nexport const TabForm = ({\n form,\n formErrors,\n genericInputProps,\n modifiedData,\n onChange,\n}: TabFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n {form.map((section, sectionIndex) => {\n // Don't display an empty section\n if (section.items.length === 0) {\n return null;\n }\n\n return (\n <Box key={sectionIndex}>\n {section.sectionTitle && (\n <Box paddingBottom={4}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage(section.sectionTitle)}\n </Typography>\n </Box>\n )}\n <Grid.Root gap={4}>\n {section.items.map((input: any, i: number) => {\n const key = `${sectionIndex}.${i}`;\n\n /**\n * Use undefined as the default value because not every input wants a string e.g. Date pickers\n */\n const value = get(modifiedData, input.name, undefined);\n\n // When extending the yup schema of an existing field (like in https://github.com/strapi/strapi/blob/293ff3b8f9559236609d123a2774e3be05ce8274/packages/strapi-plugin-i18n/admin/src/index.js#L52)\n // and triggering a yup validation error in the UI (missing a required field for example)\n // We got an object that looks like: formErrors = { \"pluginOptions.i18n.localized\": {...} }\n // In order to deal with this error, we can't rely on lodash.get to resolve this key\n // - lodash will try to access {pluginOptions: {i18n: {localized: true}}})\n // - and we just want to access { \"pluginOptions.i18n.localized\": {...} }\n // NOTE: this is a hack\n const pluginOptionError = Object.keys(formErrors).find((key) => key === input.name);\n\n // Retrieve the error for a specific input\n const errorId = pluginOptionError\n ? formErrors[pluginOptionError].id\n : get(\n formErrors,\n [\n ...input.name\n .split('.')\n // The filter here is used when creating a component\n // in the component step 1 modal\n // Since the component info is stored in the\n // componentToCreate object we can access the error\n // By removing the key\n .filter((key: string) => key !== 'componentToCreate'),\n 'id',\n ],\n null\n );\n\n if (input.type === 'pushRight') {\n return (\n <Grid.Item\n col={input.size || 6}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <div />\n </Grid.Item>\n );\n }\n\n return (\n <Grid.Item\n col={input.size || 6}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <GenericInput\n {...input}\n {...genericInputProps}\n error={errorId}\n onChange={onChange}\n value={value}\n />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </>\n );\n};\n","import { ReactNode, ChangeEvent } from 'react';\n\nimport { Field, Textarea } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { IntlLabel } from '../types';\n\ninterface TextareaEnumProps {\n description?: IntlLabel | null;\n disabled?: boolean;\n error?: string;\n intlLabel: IntlLabel;\n labelAction?: ReactNode;\n name: string;\n onChange: (value: { target: { name: string; value: string | string[] } }) => void;\n placeholder?: IntlLabel | null;\n value: string | string[] | undefined;\n}\n\nexport const TextareaEnum = ({\n description = null,\n disabled = false,\n error = '',\n intlLabel,\n labelAction,\n name,\n onChange,\n placeholder = null,\n value = '',\n}: TextareaEnumProps) => {\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const inputValue = Array.isArray(value) ? value.join('\\n') : '';\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n const arrayValue = e.target.value.split('\\n');\n\n onChange({ target: { name, value: arrayValue } });\n };\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n disabled={disabled}\n onChange={handleChange}\n placeholder={formattedPlaceholder}\n value={inputValue}\n />\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const nameField = {\n name: 'name',\n type: 'text',\n intlLabel: {\n id: 'global.name',\n defaultMessage: 'Name',\n },\n description: {\n id: getTrad('modalForm.attribute.form.base.name.description'),\n defaultMessage: 'No space is allowed for the name of the attribute',\n },\n // validations: {\n // required: true,\n // },\n};\n","import { nameField } from './nameField';\n\nexport const commonBaseForm = {\n sections: [{ sectionTitle: null, items: [nameField] }],\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const componentForm = {\n base(prefix = '') {\n const sections = [\n {\n sectionTitle: null,\n items: [\n {\n name: `${prefix}displayName`,\n type: 'text',\n intlLabel: {\n id: getTrad('contentType.displayName.label'),\n defaultMessage: 'Display Name',\n },\n },\n {\n name: `${prefix}category`,\n type: 'select-category',\n intlLabel: {\n id: getTrad('modalForm.components.create-component.category.label'),\n defaultMessage: 'Select a category or enter a name to create a new one',\n },\n },\n ],\n },\n {\n sectionTitle: null,\n items: [\n {\n name: `${prefix}icon`,\n type: 'icon-picker',\n size: 12,\n intlLabel: {\n id: getTrad('modalForm.components.icon.label'),\n defaultMessage: 'Icon',\n },\n },\n ],\n },\n ];\n\n return sections;\n },\n advanced() {\n const sections: Array<unknown> = [];\n\n return sections;\n },\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const attributeOptions = {\n default: {\n name: 'default',\n type: 'text',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n },\n max: {\n name: 'max',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.maximum'),\n defaultMessage: 'Maximum value',\n },\n },\n maxLength: {\n name: 'maxLength',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.maximumLength'),\n defaultMessage: 'Maximum length',\n },\n },\n min: {\n name: 'min',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.minimum'),\n defaultMessage: 'Minimum value',\n },\n },\n minLength: {\n name: 'minLength',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.minimumLength'),\n defaultMessage: 'Minimum length',\n },\n },\n private: {\n name: 'private',\n type: 'checkbox',\n intlLabel: {\n id: getTrad('form.attribute.item.privateField'),\n defaultMessage: 'Private field',\n },\n description: {\n id: getTrad('form.attribute.item.privateField.description'),\n defaultMessage: 'This field will not show up in the API response',\n },\n },\n regex: {\n intlLabel: {\n id: getTrad('form.attribute.item.text.regex'),\n defaultMessage: 'RegExp pattern',\n },\n name: 'regex',\n type: 'text',\n description: {\n id: getTrad('form.attribute.item.text.regex.description'),\n defaultMessage: 'The text of the regular expression',\n },\n },\n required: {\n name: 'required',\n type: 'checkbox',\n intlLabel: {\n id: getTrad('form.attribute.item.requiredField'),\n defaultMessage: 'Required field',\n },\n description: {\n id: getTrad('form.attribute.item.requiredField.description'),\n defaultMessage: \"You won't be able to create an entry if this field is empty\",\n },\n },\n unique: {\n name: 'unique',\n type: 'checkbox',\n intlLabel: {\n id: getTrad('form.attribute.item.uniqueField'),\n defaultMessage: 'Unique field',\n },\n description: {\n id: getTrad('form.attribute.item.uniqueField.description'),\n defaultMessage:\n \"You won't be able to create an entry if there is an existing entry with identical content\",\n },\n },\n};\n","import { getTrad } from '../../../utils/getTrad';\nimport { componentForm } from '../component/componentForm';\n\nimport { attributeOptions } from './attributeOptions';\n\ntype DataType = 'biginteger' | 'string' | 'integer' | 'float' | 'decimal';\n\nexport const advancedForm = {\n blocks() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n boolean() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n type: 'select-default-boolean',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n name: 'default',\n options: [\n {\n value: 'true',\n key: 'true',\n metadatas: { intlLabel: { id: 'true', defaultMessage: 'true' } },\n },\n {\n value: '',\n key: 'null',\n metadatas: { intlLabel: { id: 'null', defaultMessage: 'null' } },\n },\n {\n value: 'false',\n key: 'false',\n metadatas: { intlLabel: { id: 'false', defaultMessage: 'false' } },\n },\n ],\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n component({ repeatable }: { repeatable: boolean }, step: string) {\n if (step === '1') {\n return { sections: componentForm.advanced() };\n }\n\n if (repeatable) {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.private,\n attributeOptions.max,\n attributeOptions.min,\n ],\n },\n ],\n };\n }\n\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n date({ type }: { type: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: type || 'date',\n value: null,\n withDefaultValue: false,\n disabled: !type,\n autoFocus: false,\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.unique, attributeOptions.private],\n },\n ],\n };\n },\n dynamiczone() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.max, attributeOptions.min],\n },\n ],\n };\n },\n email() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: 'email',\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n enumeration(data: { enum: Array<string> }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n name: 'default',\n type: 'select',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n },\n },\n ...(data.enum || [])\n .filter((value, index) => data.enum.indexOf(value) === index && value)\n .map((value) => {\n return {\n key: value,\n value,\n metadatas: {\n intlLabel: { id: `${value}.no-override`, defaultMessage: value },\n },\n };\n }),\n ],\n },\n {\n intlLabel: {\n id: getTrad('form.attribute.item.enumeration.graphql'),\n defaultMessage: 'Name override for GraphQL',\n },\n name: 'enumName',\n type: 'text',\n validations: {},\n description: {\n id: getTrad('form.attribute.item.enumeration.graphql.description'),\n defaultMessage: 'Allows you to override the default generated name for GraphQL',\n },\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n json() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n media() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: getTrad('form.attribute.media.allowed-types'),\n defaultMessage: 'Select allowed types of media',\n },\n name: 'allowedTypes',\n type: 'allowed-types-select',\n size: 7,\n value: '',\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n number(data: { type: DataType }) {\n const inputStep = data.type === 'decimal' || data.type === 'float' ? 'any' : 1;\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n name: 'default',\n type: data.type === 'biginteger' ? 'text' : 'number',\n step: inputStep,\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.max,\n attributeOptions.min,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n password() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n relation() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.private],\n },\n ],\n };\n },\n richtext() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n text() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default, attributeOptions.regex] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n uid(data: { targetField: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n { ...attributeOptions.default, disabled: Boolean(data.targetField), type: 'text' },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const componentField = {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'createComponent',\n type: 'boolean-radio-group',\n size: 12,\n radios: [\n {\n title: {\n id: getTrad('form.attribute.component.option.create'),\n defaultMessage: 'Create a new component',\n },\n description: {\n id: getTrad('form.attribute.component.option.create.description'),\n defaultMessage:\n 'A component is shared across types and components, it will be available and accessible everywhere.',\n },\n value: true,\n },\n {\n title: {\n id: getTrad('form.attribute.component.option.reuse-existing'),\n defaultMessage: 'Use an existing component',\n },\n description: {\n id: getTrad('form.attribute.component.option.reuse-existing.description'),\n defaultMessage:\n 'Reuse a component already created to keep your data consistent across content-types.',\n },\n value: false,\n },\n ],\n};\n","import { getTrad } from '../../../utils/getTrad';\nimport { componentField } from '../component/componentField';\nimport { componentForm } from '../component/componentForm';\n\nimport { nameField } from './nameField';\n\nexport const baseForm = {\n component(data: { createComponent: boolean }, step: string) {\n if (step === '1') {\n const itemsToConcat =\n data.createComponent === true ? componentForm.base('componentToCreate.') : [];\n\n return {\n sections: [{ sectionTitle: null, items: [componentField] }, ...itemsToConcat],\n };\n }\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n name: 'component',\n type: 'select-component',\n intlLabel: {\n id: getTrad('modalForm.attributes.select-component'),\n defaultMessage: 'Select a component',\n },\n isMultiple: false,\n },\n ],\n },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'repeatable',\n type: 'boolean-radio-group',\n size: 12,\n radios: [\n {\n title: {\n id: getTrad('form.attribute.component.option.repeatable'),\n defaultMessage: 'Repeatable component',\n },\n description: {\n id: getTrad('form.attribute.component.option.repeatable.description'),\n defaultMessage:\n 'Best for multiple instances (array) of ingredients, meta tags, etc..',\n },\n value: true,\n },\n {\n title: {\n id: getTrad('form.attribute.component.option.single'),\n defaultMessage: 'Single component',\n },\n description: {\n id: getTrad('form.attribute.component.option.single.description'),\n defaultMessage:\n 'Best for grouping fields like full address, main information, etc...',\n },\n value: false,\n },\n ],\n },\n ],\n },\n ],\n };\n },\n date() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'type',\n type: 'select-date',\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n hidden: true,\n },\n },\n {\n key: 'date',\n value: 'date',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.date.type.date'),\n defaultMessage: 'date (ex: 01/01/{currentYear})',\n values: { currentYear: new Date().getFullYear() },\n },\n },\n },\n {\n key: 'datetime',\n value: 'datetime',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.date.type.datetime'),\n defaultMessage: 'datetime (ex: 01/01/{currentYear} 00:00 AM)',\n values: { currentYear: new Date().getFullYear() },\n },\n },\n },\n {\n key: 'time',\n value: 'time',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.date.type.time'),\n defaultMessage: 'time (ex: 00:00 AM)',\n },\n },\n },\n ],\n },\n ],\n },\n ],\n };\n },\n enumeration() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n name: 'enum',\n type: 'textarea-enum',\n size: 6,\n intlLabel: {\n id: getTrad('form.attribute.item.enumeration.rules'),\n defaultMessage: 'Values (one line per value)',\n },\n placeholder: {\n id: getTrad('form.attribute.item.enumeration.placeholder'),\n defaultMessage: 'Ex:\\nmorning\\nnoon\\nevening',\n },\n validations: {\n required: true,\n },\n },\n ],\n },\n ],\n };\n },\n media() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'multiple',\n size: 12,\n type: 'boolean-radio-group',\n radios: [\n {\n title: {\n id: getTrad('form.attribute.media.option.multiple'),\n defaultMessage: 'Multiple media',\n },\n description: {\n id: getTrad('form.attribute.media.option.multiple.description'),\n defaultMessage: 'Best for sliders, carousels or multiple files download',\n },\n value: true,\n },\n {\n title: {\n id: getTrad('form.attribute.media.option.single'),\n defaultMessage: 'Single media',\n },\n description: {\n id: getTrad('form.attribute.media.option.single.description'),\n defaultMessage: 'Best for avatar, profile picture or cover',\n },\n value: false,\n },\n ],\n },\n ],\n },\n ],\n };\n },\n number() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type'),\n defaultMessage: 'Number format',\n },\n name: 'type',\n type: 'select-number',\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n hidden: true,\n },\n },\n {\n key: 'integer',\n value: 'integer',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.integer'),\n defaultMessage: 'integer (ex: 10)',\n },\n },\n },\n {\n key: 'biginteger',\n value: 'biginteger',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.biginteger'),\n defaultMessage: 'biginteger (ex: 123456789)',\n },\n },\n },\n {\n key: 'decimal',\n value: 'decimal',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.decimal'),\n defaultMessage: 'decimal (ex: 2.22)',\n },\n },\n },\n {\n key: 'float',\n value: 'float',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.float'),\n defaultMessage: 'decimal (ex: 3.3333333)',\n },\n },\n },\n ],\n },\n ],\n },\n ],\n };\n },\n relation() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: { id: 'FIXME', defaultMessage: 'FIXME' },\n name: 'relation',\n size: 12,\n type: 'relation',\n },\n ],\n },\n ],\n };\n },\n string() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'type',\n size: 12,\n type: 'radio-group',\n radios: [\n {\n title: {\n id: getTrad('form.attribute.text.option.short-text'),\n defaultMessage: 'Sort text',\n },\n description: {\n id: getTrad('form.attribute.text.option.short-text.description'),\n defaultMessage:\n 'Best for titles, names, links (URL). It also enables exact search on the field.',\n },\n value: 'string',\n },\n {\n title: {\n id: getTrad('form.attribute.text.option.long-text'),\n defaultMessage: 'Long text',\n },\n description: {\n id: getTrad('form.attribute.text.option.long-text.description'),\n defaultMessage: 'Best for descriptions, biography. Exact search is disabled.',\n },\n value: 'text',\n },\n ],\n },\n ],\n },\n ],\n };\n },\n text() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'type',\n size: 12,\n type: 'radio-group',\n radios: [\n {\n title: {\n id: getTrad('form.attribute.text.option.short-text'),\n defaultMessage: 'Sort text',\n },\n description: {\n id: getTrad('form.attribute.text.option.short-text.description'),\n defaultMessage:\n 'Best for titles, names, links (URL). It also enables exact search on the field.',\n },\n value: 'string',\n },\n {\n title: {\n id: getTrad('form.attribute.text.option.long-text'),\n defaultMessage: 'Long text',\n },\n description: {\n id: getTrad('form.attribute.text.option.long-text.description'),\n defaultMessage: 'Best for descriptions, biography. Exact search is disabled.',\n },\n value: 'text',\n },\n ],\n },\n ],\n },\n ],\n };\n },\n uid(_data: unknown, step: string, attributes: Array<{ type: string; name: string }>) {\n const options = attributes\n .filter(({ type }) => ['string', 'text'].includes(type))\n .map(({ name }) => ({\n key: name,\n value: name,\n metadatas: {\n intlLabel: { id: `${name}.no-override`, defaultMessage: name },\n },\n }));\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...nameField,\n placeholder: {\n id: getTrad('modalForm.attribute.form.base.name.placeholder'),\n defaultMessage: 'e.g. slug, seoUrl, canonicalUrl',\n },\n },\n {\n intlLabel: {\n id: getTrad('modalForm.attribute.target-field'),\n defaultMessage: 'Attached field',\n },\n name: 'targetField',\n type: 'select',\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: { intlLabel: { id: 'global.none', defaultMessage: 'None' } },\n },\n ...options,\n ],\n },\n ],\n },\n ],\n };\n },\n};\n","import { advancedForm } from './advancedForm';\nimport { baseForm } from './baseForm';\n\nexport const attributesForm = {\n advanced: advancedForm,\n base: baseForm,\n};\n","import slugify from '@sindresorhus/slugify';\n\nexport const toRegressedEnumValue = (value: string | undefined) => {\n if (!value) {\n return '';\n }\n return slugify(value, {\n decamelize: false,\n lowercase: false,\n separator: '_',\n });\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../../utils/getTrad';\n\nconst NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\n\nconst alreadyUsedAttributeNames = (\n usedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'attributeNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !usedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst getUsedContentTypeAttributeNames = (\n ctShema: any,\n isEdition: boolean,\n attributeNameToEdit: string\n) => {\n const attributes = ctShema?.schema?.attributes ?? {};\n\n return Object.keys(attributes).filter((attr) => {\n if (isEdition) {\n return attr !== attributeNameToEdit;\n }\n\n return true;\n });\n};\n\nconst isNameAllowed = (\n reservedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'forbiddenAttributeName',\n message: getTrad('error.attributeName.reserved-name'),\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst validators = {\n default: () => yup.string().nullable(),\n max: () => yup.number().integer().nullable(),\n min: () =>\n yup\n .number()\n .integer()\n .when('max', (max, schema) => {\n if (max) {\n return schema.max(max, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n maxLength: () => yup.number().integer().positive(getTrad('error.validation.positive')).nullable(),\n minLength: () =>\n yup\n .number()\n .integer()\n .min(1)\n .when('maxLength', (maxLength, schema) => {\n if (maxLength) {\n return schema.max(maxLength, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n name(usedNames: Array<string>, reservedNames: Array<string>) {\n return yup\n .string()\n .test(alreadyUsedAttributeNames(usedNames))\n .test(isNameAllowed(reservedNames))\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id);\n },\n required: () => yup.boolean(),\n type: () => yup.string().required(errorsTrads.required.id),\n unique: () => yup.boolean().nullable(),\n};\n\nconst createTextShape = (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 regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n return new RegExp(value || '') !== null;\n } catch (e) {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\ntype GenericIsMinSuperiorThanMax<T extends (string | null) | number> = yup.TestConfig<\n T | undefined,\n Record<string, unknown>\n>;\n\nconst isMinSuperiorThanMax = <\n T extends (string | null) | number,\n>(): GenericIsMinSuperiorThanMax<T> => ({\n name: 'isMinSuperiorThanMax',\n message: getTrad('error.validation.minSupMax'),\n test(min: T | undefined) {\n if (!min) {\n return true;\n }\n\n const { max } = (this as any).parent;\n\n if (!max) {\n return true;\n }\n\n if (Number.isNaN(toNumber(min))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(min);\n },\n});\n\nexport {\n alreadyUsedAttributeNames,\n createTextShape,\n getUsedContentTypeAttributeNames,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n};\n","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 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 .min(1, errorsTrads.min.id)\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 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 = createTextShape(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","export const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport * as yup from 'yup';\n\nimport { CATEGORY_NAME_REGEX } from './regex';\n\nexport const createCategorySchema = (usedCategoryNames: Array<string>) => {\n const shape = {\n name: yup\n .string()\n .matches(CATEGORY_NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'nameNotAllowed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n return !usedCategoryNames.includes(value?.toLowerCase());\n },\n })\n .required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const categoryForm = {\n base: {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n name: 'name',\n type: 'text',\n intlLabel: {\n id: 'global.name',\n defaultMessage: 'Name',\n },\n\n // validations: {\n // required: true,\n // },\n description: {\n id: getTrad('modalForm.editCategory.base.name.description'),\n defaultMessage: 'No space is allowed for the name of the category',\n },\n },\n ],\n },\n ],\n },\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { CATEGORY_NAME_REGEX } from '../category/regex';\nimport { createComponentUid } from '../utils/createUid';\n\nexport const createComponentSchema = (\n usedComponentNames: Array<string>,\n reservedNames: Array<string>,\n category: string,\n takenCollectionNames: Array<string>,\n currentCollectionName: string\n) => {\n const shape = {\n displayName: yup\n .string()\n .test({\n name: 'nameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const name = createComponentUid(value, category);\n\n const snakeCaseKey = snakeCase(name);\n const snakeCaseCollectionName = snakeCase(currentCollectionName);\n\n return (\n usedComponentNames.every((reserved) => {\n return snakeCase(reserved) !== snakeCaseKey;\n }) &&\n takenCollectionNames.every(\n (collectionName) => snakeCase(collectionName) !== snakeCaseCollectionName\n )\n );\n },\n })\n .test({\n name: 'nameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n return reservedNames.every((reserved) => {\n return snakeCase(reserved) !== snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n category: yup\n .string()\n .matches(CATEGORY_NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n\n icon: yup.string(),\n };\n\n return yup.object(shape);\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nconst nameField = {\n name: 'displayName',\n type: 'text',\n intlLabel: {\n id: getTrad('contentType.displayName.label'),\n defaultMessage: 'Display name',\n },\n};\n\nexport const contentTypeForm = {\n advanced: {\n default() {\n return {\n sections: [\n {\n items: [\n {\n intlLabel: {\n id: getTrad('contentType.draftAndPublish.label'),\n defaultMessage: 'Draft & publish',\n },\n description: {\n id: getTrad('contentType.draftAndPublish.description'),\n defaultMessage:\n 'Allows writing a draft version of an entry, before it is published',\n },\n name: 'draftAndPublish',\n type: 'toggle-draft-publish',\n validations: {},\n },\n ],\n },\n ],\n };\n },\n },\n base: {\n create() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n description: {\n id: getTrad('contentType.apiId-singular.description'),\n defaultMessage:\n 'Used to generate the API routes and databases tables/collections',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-singular.label'),\n defaultMessage: 'API ID (Singular)',\n },\n name: 'singularName',\n type: 'text-singular',\n },\n {\n type: 'pushRight',\n size: 6,\n intlLabel: { id: '', defaultMessage: '' },\n name: 'pushRight',\n },\n {\n description: {\n id: getTrad('contentType.apiId-plural.description'),\n defaultMessage: 'Pluralized API ID',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-plural.label'),\n defaultMessage: 'API ID (Plural)',\n },\n name: 'pluralName',\n type: 'text-plural',\n },\n ],\n },\n ],\n };\n },\n edit() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n disabled: true,\n description: {\n id: getTrad('contentType.apiId-singular.description'),\n defaultMessage:\n 'Used to generate the API routes and databases tables/collections',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-singular.label'),\n defaultMessage: 'API ID (Singular)',\n },\n name: 'singularName',\n type: 'text',\n },\n {\n type: 'pushRight',\n size: 6,\n intlLabel: { id: '', defaultMessage: '' },\n name: 'pushRight',\n },\n {\n disabled: true,\n description: {\n id: getTrad('contentType.apiId-plural.description'),\n defaultMessage: 'Pluralized API ID',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-plural.label'),\n defaultMessage: 'API ID (Plural)',\n },\n name: 'pluralName',\n type: 'text',\n },\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'kind',\n type: 'content-type-radio-group',\n size: 12,\n radios: [\n {\n title: {\n id: getTrad('form.button.collection-type.name'),\n defaultMessage: 'Collection Type',\n },\n description: {\n id: getTrad('form.button.collection-type.description'),\n defaultMessage:\n 'Best for multiple instances like articles, products, comments, etc.',\n },\n value: 'collectionType',\n },\n {\n title: {\n id: getTrad('form.button.single-type.name'),\n defaultMessage: 'Single Type',\n },\n description: {\n id: getTrad('form.button.single-type.description'),\n defaultMessage: 'Best for single instance like about us, homepage, etc.',\n },\n value: 'singleType',\n },\n ],\n },\n ],\n },\n ],\n };\n },\n },\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { createUid } from '../utils/createUid';\n\ntype CreateContentTypeSchemaParams = {\n usedContentTypeNames: Array<string>;\n reservedModels: Array<string>;\n singularNames: Array<string>;\n pluralNames: Array<string>;\n collectionNames: Array<string>;\n};\n\nexport const createContentTypeSchema = ({\n usedContentTypeNames = [],\n reservedModels = [],\n singularNames = [],\n pluralNames = [],\n collectionNames = [],\n}: CreateContentTypeSchemaParams) => {\n const shape = {\n displayName: yup\n .string()\n .test({\n name: 'nameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const name = createUid(value);\n\n const snakeCaseKey = snakeCase(name);\n\n return !usedContentTypeNames.some((value) => {\n return snakeCase(value) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'nameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedModels.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n pluralName: yup\n .string()\n .test({\n name: 'pluralNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !pluralNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralNameAlreadyUsedAsSingular',\n message: getTrad('error.contentType.pluralName-equals-singularName'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !singularNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralAndSingularAreUnique',\n message: getTrad('error.contentType.pluralName-used'),\n test(value, context) {\n if (!value) {\n return false;\n }\n\n return snakeCase(context.parent.singularName) !== snakeCase(value);\n },\n })\n .test({\n name: 'pluralNameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !reservedModels.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralNameNotAlreadyUsedInCollectionName',\n message: getTrad('error.contentType.pluralName-equals-collectionName'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !collectionNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n singularName: yup\n .string()\n .test({\n name: 'singularNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !singularNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'singularNameAlreadyUsedAsPlural',\n message: getTrad('error.contentType.singularName-equals-pluralName'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !pluralNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralAndSingularAreUnique',\n message: getTrad('error.contentType.singularName-used'),\n test(value, context) {\n if (!value) {\n return false;\n }\n\n return snakeCase(context.parent.pluralName) !== snakeCase(value);\n },\n })\n .test({\n name: 'singularNameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !reservedModels.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n draftAndPublish: yup.boolean(),\n kind: yup.string().oneOf(['singleType', 'collectionType']),\n };\n\n return yup.object(shape);\n};\n","import { getTrad } from '../../utils/getTrad';\n\nimport { componentField } from './component/componentField';\nimport { componentForm } from './component/componentForm';\n\nexport const dynamiczoneForm = {\n advanced: {\n default() {\n return {\n sections: componentForm.advanced(),\n };\n },\n },\n base: {\n createComponent() {\n return {\n sections: [\n { sectionTitle: null, items: [componentField] },\n ...componentForm.base('componentToCreate.'),\n ],\n };\n },\n default() {\n return {\n sections: [\n { sectionTitle: null, items: [componentField] },\n {\n sectionTitle: null,\n items: [\n {\n type: 'pushRight',\n size: 6,\n intlLabel: { id: '', defaultMessage: '' },\n name: 'pushRight',\n },\n {\n name: 'components',\n type: 'select-components',\n intlLabel: {\n id: getTrad('modalForm.attributes.select-components'),\n defaultMessage: 'Select the components',\n },\n isMultiple: true,\n },\n ],\n },\n ],\n };\n },\n },\n};\n","type SectionTitle = {\n id: string;\n defaultMessage: string;\n};\n\ntype Item = {\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n description?: { id: string; defaultMessage: string };\n name: string;\n type: string;\n value?: string;\n options?: {\n key: string;\n value: string;\n metadatas: {\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n };\n }[];\n};\n\ntype FormTypeOption = {\n sectionTitle: SectionTitle | null;\n items: Item[];\n};\n\nexport type FormTypeOptions = Array<FormTypeOption>;\n\n/**\n * @description\n * Adds form options to the default section or as a new section\n */\nexport const addItemsToFormSection = (\n formTypeOptions: FormTypeOptions | Item[],\n sections: FormTypeOptions\n) => {\n formTypeOptions.forEach((item) => {\n if (!('sectionTitle' in item)) {\n // When there is no sectionTitle key,\n // add the item to the default section\n sections[0].items?.push(item);\n return;\n }\n\n // Otherwise, when sectionTitle has a value (including null),\n // add the item as a new section\n sections.push(item);\n });\n};\n","import { snakeCase } from 'lodash/fp';\nimport pluralize from 'pluralize';\n\n// TODO: create a utility for this\n// Duplicate in server/src/services/schema-builder/component-builder.ts\nconst createComponentCollectionName = (name: string, category: string) => {\n return `components_${snakeCase(category)}_${pluralize(snakeCase(name))}`;\n};\n\nexport { createComponentCollectionName };\n","export type SchemaData = {\n initialData: {\n name: string;\n targetAttribute: any;\n };\n modifiedData: object;\n};\n\nexport type Attribute = {\n name: string;\n};\n\nexport const getUsedAttributeNames = (\n attributes: Array<Attribute>,\n schemaData: SchemaData\n): Array<string> => {\n return attributes\n .filter(({ name }) => {\n return name !== schemaData.initialData.name;\n })\n .map(({ name }) => name);\n};\n","import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { createCategorySchema } from '../category/createCategorySchema';\nimport { categoryForm } from '../category/form';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { Internal } from '@strapi/types';\n\ntype ContentType = {\n schema: {\n singularName: string;\n pluralName: string;\n collectionName: string;\n };\n};\n\nexport type SchemaParams = {\n schemaAttributes: any;\n attributeType: keyof typeof attributeTypes;\n customFieldValidator: any;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: any;\n ctbFormsAPI: any;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: any;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string;\n attributes: any;\n extensions: any;\n forTarget: string;\n};\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: any) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: any) {\n // Default section with no fields\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [] }];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n ...rest,\n });\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: any,\n attributeType: keyof typeof attributeTypes,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: any;\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.schema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data, step).sections;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n ...rest,\n });\n\n const sections = baseForm.reduce((acc: Array<any>, current: any) => {\n if (current.sectionTitle === null) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data, step, attributes);\n } catch (err) {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: any;\n },\n extensions: any,\n contentTypes: Record<string, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.schema.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType: any) => {\n return contentType?.schema?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { schema } = contentTypes[ctUid];\n\n return schema.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { schema } = contentTypes[ctUid];\n\n return schema.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.schema?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { schema } = contentTypes[ctUid];\n const currentCollectionName = schema.collectionName;\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: any) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: any) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: any;\n },\n isEditing = false,\n components: Record<string, any>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components).map((component: any) => {\n return component?.schema?.collectionName;\n });\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: any) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n editCategory: {\n schema(allCategories: Array<any>, initialData: any) {\n const allowedCategories = allCategories\n .filter((cat) => cat !== initialData.name)\n .map((cat) => cat.toLowerCase());\n\n return createCategorySchema(allowedCategories);\n },\n form: {\n advanced: () => ({ sections: [] }),\n base() {\n return categoryForm.base;\n },\n },\n },\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { pluginId } from '../../pluginId';\n\nimport { initialState } from './reducer';\n\n/**\n * Direct selector to the formModal state domain\n */\nconst formModalDomain = () => (state: any) => state[`${pluginId}_formModal`] || initialState;\n\n/**\n * Other specific selectors\n */\n\n/**\n * Default selector used by formModal\n */\n\nexport const makeSelectFormModal = () =>\n createSelector(formModalDomain(), (substate) => {\n return substate;\n });\n\nexport { formModalDomain };\n","import get from 'lodash/get';\n\nimport { getRelationType } from '../../../utils/getRelationType';\n\nimport type { AttributeType } from '../../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport type EditableContentTypeSchema = {\n kind: Struct.ContentTypeKind;\n name: string;\n attributes: AttributeType[];\n};\n\nexport type EditableContentTypeData = {\n contentType: {\n uid: Internal.UID.ContentType;\n schema: EditableContentTypeSchema;\n };\n};\n\ntype ModifiedData = {\n kind: Struct.ContentTypeKind;\n};\n\nexport const canEditContentType = (data: Record<string, any>, modifiedData: ModifiedData) => {\n const kind = get(data, ['contentType', 'schema', 'kind'], '');\n\n // if kind isn't modified or content type is a single type, there is no need to check attributes.\n if (kind === 'singleType' || kind === modifiedData.kind) {\n return true;\n }\n\n const contentTypeAttributes = get(\n data,\n ['contentType', 'schema', 'attributes'],\n []\n ) as AttributeType[];\n\n const relationAttributes = contentTypeAttributes.filter(({ relation, type, targetAttribute }) => {\n const relationType = getRelationType(relation, targetAttribute);\n\n return type === 'relation' && !['oneWay', 'manyWay'].includes(relationType || '');\n });\n\n return relationAttributes.length === 0;\n};\n","import { MAX_COMPONENT_DEPTH } from '../../../constants';\nimport { getComponentDepth } from '../../../utils/getMaxDepth';\n\nimport type { IconByType } from '../../AttributeIcon';\nimport type { NestedComponent } from '../../DataManagerProvider/utils/retrieveNestedComponents';\nimport type { Internal } from '@strapi/types';\n\nexport const getAttributesToDisplay = (\n dataTarget = '',\n targetUid: Internal.UID.Schema,\n nestedComponents: Array<NestedComponent>\n): IconByType[][] => {\n const defaultAttributes: IconByType[] = [\n 'text',\n 'boolean',\n 'blocks',\n 'json',\n 'number',\n 'email',\n 'date',\n 'password',\n 'media',\n 'enumeration',\n 'relation',\n 'richtext',\n ];\n\n const isPickingAttributeForAContentType = dataTarget === 'contentType';\n\n if (isPickingAttributeForAContentType) {\n return [\n // Insert UID before the last item (richtext)\n [...defaultAttributes.slice(0, -1), 'uid', ...defaultAttributes.slice(-1)],\n ['component', 'dynamiczone'],\n ];\n }\n\n // this will only run when adding attributes to components\n if (dataTarget) {\n const componentDepth = getComponentDepth(targetUid, nestedComponents);\n const isNestedInAnotherComponent = componentDepth >= MAX_COMPONENT_DEPTH;\n const canAddComponentInAnotherComponent =\n !isPickingAttributeForAContentType && !isNestedInAnotherComponent;\n if (canAddComponentInAnotherComponent) {\n return [defaultAttributes, ['component']];\n }\n }\n\n return [defaultAttributes];\n};\n","export const getFormInputNames = (form: any) =>\n form.reduce((acc: any, current: any) => {\n const names = current.items.reduce((acc: any, current: any) => {\n if (current.name) {\n acc.push(current.name);\n }\n\n return acc;\n }, []);\n\n return [...acc, ...names];\n }, []);\n","import * as React from 'react';\n\nimport { useStrapiApp, useTracking, useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Modal, Tabs } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEqual from 'lodash/isEqual';\nimport set from 'lodash/set';\nimport toLower from 'lodash/toLower';\nimport { useIntl } from 'react-intl';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDataManager } from '../../hooks/useDataManager';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad, isAllowedContentTypesForRelations } from '../../utils';\nimport { findAttribute } from '../../utils/findAttribute';\nimport { getYupInnerErrors } from '../../utils/getYupInnerErrors';\n// New compos\nimport { AllowedTypesSelect } from '../AllowedTypesSelect';\nimport { IconByType } from '../AttributeIcon';\nimport { AttributeOptions } from '../AttributeOptions/AttributeOptions';\nimport { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect';\nimport { BooleanRadioGroup } from '../BooleanRadioGroup';\nimport { CheckboxWithNumberField } from '../CheckboxWithNumberField';\nimport { ContentTypeRadioGroup } from '../ContentTypeRadioGroup';\nimport { CustomRadioGroup } from '../CustomRadioGroup';\nimport { DraftAndPublishToggle } from '../DraftAndPublishToggle';\nimport { FormModalEndActions } from '../FormModalEndActions';\nimport { FormModalHeader } from '../FormModalHeader';\nimport { FormModalSubHeader } from '../FormModalSubHeader';\nimport { IconPicker } from '../IconPicker/IconPicker';\nimport { PluralName } from '../PluralName';\nimport { Relation } from '../Relation/Relation';\nimport { SelectCategory } from '../SelectCategory';\nimport { SelectComponent } from '../SelectComponent';\nimport { SelectComponents } from '../SelectComponents';\nimport { SelectDateType } from '../SelectDateType';\nimport { SelectNumber } from '../SelectNumber';\nimport { SingularName } from '../SingularName';\nimport { TabForm } from '../TabForm';\nimport { TextareaEnum } from '../TextareaEnum';\n\nimport { forms } from './forms/forms';\nimport { actions } from './reducer';\nimport { makeSelectFormModal } from './selectors';\nimport { canEditContentType } from './utils/canEditContentType';\nimport { createComponentUid, createUid } from './utils/createUid';\nimport { getAttributesToDisplay } from './utils/getAttributesToDisplay';\nimport { getFormInputNames } from './utils/getFormInputNames';\n\nimport type { CustomFieldAttributeParams } from '../../contexts/DataManagerContext';\nimport type { AttributeType } from '../../types';\nimport type { Internal } from '@strapi/types';\n\n/* eslint-disable indent */\n/* eslint-disable react/no-array-index-key */\n\nconst FormComponent = styled.form`\n overflow: auto;\n`;\n\nexport const FormModal = () => {\n const {\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onNavigateToCreateComponentStep2,\n actionType,\n attributeName,\n attributeType,\n customFieldUid,\n categoryName,\n dynamicZoneTarget,\n forTarget,\n modalType,\n isOpen,\n kind,\n step,\n targetUid,\n showBackLink,\n activeTab,\n setActiveTab,\n } = useFormModalNavigation();\n\n const getPlugin = useStrapiApp('FormModal', (state) => state.getPlugin);\n const getCustomField = useStrapiApp('FormModal', (state) => state.customFields.get);\n const customField = getCustomField(customFieldUid);\n\n const formModalSelector = React.useMemo(makeSelectFormModal, []);\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const reducerState = useSelector((state) => formModalSelector(state), shallowEqual);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const ctbPlugin = getPlugin(pluginId);\n const ctbFormsAPI: any = ctbPlugin?.apis.forms;\n const inputsFromPlugins = ctbFormsAPI.components.inputs;\n\n const {\n addAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n allComponentsCategories,\n changeDynamicZoneComponents,\n contentTypes,\n components,\n createSchema,\n deleteCategory,\n deleteData,\n editCategory,\n editCustomFieldAttribute,\n submitData,\n modifiedData: allDataSchema,\n nestedComponents,\n setModifiedData,\n sortedContentTypesList,\n updateSchema,\n reservedNames,\n } = useDataManager();\n\n const {\n componentToCreate,\n formErrors,\n initialData,\n isCreatingComponentWhileAddingAField,\n modifiedData,\n } = reducerState;\n\n const pathToSchema =\n forTarget === 'contentType' || forTarget === 'component' ? [forTarget] : [forTarget, targetUid];\n\n React.useEffect(() => {\n if (isOpen) {\n const collectionTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n // Reset all the modification when opening the edit category modal\n if (modalType === 'editCategory') {\n setModifiedData();\n }\n\n if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {\n trackUsage('willEditFieldOfContentType');\n }\n\n const pathToAttributes = [...pathToSchema, 'schema', 'attributes'];\n\n // Case:\n // the user opens the modal chooseAttributes\n // selects dynamic zone => set the field name\n // then goes to step 1 (the modal is addComponentToDynamicZone) and finally reloads the app.\n // In this particular if the user tries to add components to the zone it will pop an error since the dz is unknown\n const foundDynamicZoneTarget =\n findAttribute(get(allDataSchema, pathToAttributes, []), dynamicZoneTarget) || null;\n\n // Edit category\n if (modalType === 'editCategory' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n name: categoryName,\n },\n })\n );\n }\n\n // Create content type we need to add the default option draftAndPublish\n if (modalType === 'contentType' && actionType === 'create') {\n dispatch(\n actions.setDataToEdit({\n data: {\n draftAndPublish: true,\n },\n })\n );\n }\n\n // Edit content type\n if (modalType === 'contentType' && actionType === 'edit') {\n const { displayName, draftAndPublish, kind, pluginOptions, pluralName, singularName } = get(\n allDataSchema,\n [...pathToSchema, 'schema'],\n {\n displayName: null,\n pluginOptions: {},\n singularName: null,\n pluralName: null,\n }\n );\n\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName,\n draftAndPublish,\n kind,\n pluginOptions,\n pluralName,\n singularName,\n },\n })\n );\n }\n\n // Edit component\n if (modalType === 'component' && actionType === 'edit') {\n const data = get(allDataSchema, pathToSchema, {});\n\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: data.schema.displayName,\n category: data.category,\n icon: data.schema.icon,\n },\n })\n );\n }\n\n // Special case for the dynamic zone\n if (modalType === 'addComponentToDynamicZone' && actionType === 'edit') {\n const attributeToEdit = {\n ...foundDynamicZoneTarget,\n // We filter the available components\n // Because this modal is only used for adding components\n components: [],\n name: dynamicZoneTarget,\n createComponent: false,\n componentToCreate: { type: 'component' },\n };\n\n dispatch(\n actions.setDynamicZoneDataSchema({\n attributeToEdit,\n })\n );\n }\n\n // Set the predefined data structure to create an attribute\n if (attributeType) {\n const attributeToEditNotFormatted = findAttribute(\n get(allDataSchema, pathToAttributes, []),\n attributeName\n ) as AttributeType;\n const attributeToEdit = {\n ...attributeToEditNotFormatted,\n name: attributeName,\n };\n\n // We need to set the repeatable key to false when editing a component\n // The API doesn't send this info\n if (attributeType === 'component' && actionType === 'edit') {\n if (!attributeToEdit.repeatable) {\n set(attributeToEdit, 'repeatable', false);\n }\n }\n\n if (modalType === 'customField') {\n if (actionType === 'edit') {\n dispatch(\n actions.setCustomFieldDataSchema({\n isEditing: true,\n modifiedDataToSetForEditing: attributeToEdit,\n })\n );\n } else {\n dispatch(\n actions.setCustomFieldDataSchema({\n customField: customField!,\n isEditing: false,\n modifiedDataToSetForEditing: attributeToEdit,\n })\n );\n }\n } else {\n dispatch(\n actions.setAttributeDataSchema({\n attributeType,\n nameToSetForRelation: get(collectionTypesForRelation, ['0', 'title'], 'error'),\n targetUid: get(collectionTypesForRelation, ['0', 'uid'], 'error'),\n isEditing: actionType === 'edit',\n modifiedDataToSetForEditing: attributeToEdit,\n step,\n // forTarget,\n })\n );\n }\n }\n } else {\n dispatch(actions.resetProps());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n actionType,\n attributeName,\n attributeType,\n categoryName,\n dynamicZoneTarget,\n forTarget,\n isOpen,\n modalType,\n ]);\n\n const isCreatingContentType = modalType === 'contentType';\n const isCreatingComponent = modalType === 'component';\n const isCreatingAttribute = modalType === 'attribute';\n const isCreatingCustomFieldAttribute = modalType === 'customField';\n const isComponentAttribute = attributeType === 'component' && isCreatingAttribute;\n const isCreating = actionType === 'create';\n const isCreatingComponentFromAView =\n get(modifiedData, 'createComponent', false) || isCreatingComponentWhileAddingAField;\n const isInFirstComponentStep = step === '1';\n const isEditingCategory = modalType === 'editCategory';\n const isPickingAttribute = modalType === 'chooseAttribute';\n const uid = createUid(modifiedData.displayName || '');\n const attributes = get(allDataSchema, [...pathToSchema, 'schema', 'attributes'], null) as {\n name: string;\n }[];\n\n const checkFormValidity = async () => {\n let schema;\n const dataToValidate =\n isCreatingComponentFromAView && step === '1'\n ? get(modifiedData, 'componentToCreate', {})\n : modifiedData;\n // Check form validity for content type\n if (isCreatingContentType) {\n schema = forms.contentType.schema(\n Object.keys(contentTypes),\n actionType === 'edit',\n // currentUID\n get(allDataSchema, [...pathToSchema, 'uid'], null),\n reservedNames,\n ctbFormsAPI,\n contentTypes\n );\n\n // Check form validity for component\n // This is happening when the user click on the link from the left menu\n } else if (isCreatingComponent) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n modifiedData.category || '',\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.displayName || '',\n get(allDataSchema, [...pathToSchema, 'uid'], null)\n // ctbFormsAPI\n );\n } else if (isCreatingCustomFieldAttribute) {\n schema = forms.customField.schema({\n schemaAttributes: get(allDataSchema, [...pathToSchema, 'schema', 'attributes'], []),\n attributeType: customField!.type,\n reservedNames,\n schemaData: { modifiedData, initialData },\n ctbFormsAPI,\n customFieldValidator: customField!.options?.validator,\n });\n\n // Check for validity for creating a component\n // This is happening when the user creates a component \"on the fly\"\n // Since we temporarily store the component info in another object\n // The data is set in the componentToCreate key\n } else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n\n // Check form validity for creating a 'common attribute'\n // We need to make sure that it is independent from the step\n } else if (isCreatingAttribute && !isInFirstComponentStep) {\n const type = attributeType === 'relation' ? 'relation' : modifiedData.type;\n\n let alreadyTakenTargetContentTypeAttributes = [];\n\n if (type === 'relation') {\n const targetContentTypeUID = get(modifiedData, ['target'], null);\n\n const targetContentTypeAttributes = get(\n contentTypes,\n [targetContentTypeUID, 'schema', 'attributes'],\n []\n );\n\n // Create an array with all the targetContentType attributes name\n // in order to prevent the user from creating a relation with a targetAttribute\n // that may exist in the other content type\n alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(\n ({ name: attrName }: { name: string }) => {\n // Keep all the target content type attributes when creating a relation\n if (actionType !== 'edit') {\n return true;\n }\n\n // Remove the already created one when editing\n return attrName !== initialData.targetAttribute;\n }\n );\n }\n schema = forms.attribute.schema(\n get(allDataSchema, pathToSchema, {}),\n type,\n reservedNames,\n alreadyTakenTargetContentTypeAttributes,\n { modifiedData, initialData },\n ctbFormsAPI\n );\n } else if (isEditingCategory) {\n schema = forms.editCategory.schema(allComponentsCategories, initialData);\n } else {\n // The user is either in the addComponentToDynamicZone modal or\n // in step 1 of the add component (modalType=attribute&attributeType=component) but not creating a component\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep && isCreatingComponentFromAView) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n } else {\n // The form is valid\n // The case here is being in the addComponentToDynamicZone modal and not creating a component\n return;\n }\n }\n\n await schema.validate(dataToValidate, { abortEarly: false });\n };\n\n const handleChange = React.useCallback(\n ({\n target: { name, value, type, ...rest },\n }: {\n target: { name: string; value: string; type: string };\n }) => {\n const namesThatCanResetToNullValue = [\n 'enumName',\n 'max',\n 'min',\n 'maxLength',\n 'minLength',\n 'regex',\n 'default',\n ];\n\n let val;\n\n if (namesThatCanResetToNullValue.includes(name) && value === '') {\n val = null;\n } else {\n val = value;\n }\n\n const clonedErrors = Object.assign({}, formErrors);\n\n // Reset min error when modifying the max\n if (name === 'max') {\n delete clonedErrors.min;\n }\n\n // Same here\n if (name === 'maxLength') {\n delete clonedErrors.minLength;\n }\n\n // Since the onBlur is deactivated we remove the errors directly when changing an input\n delete clonedErrors[name];\n\n dispatch(\n actions.setErrors({\n errors: clonedErrors,\n })\n );\n\n dispatch(\n actions.onChange({\n keys: name.split('.'),\n value: val,\n })\n );\n },\n [dispatch, formErrors]\n );\n\n const handleSubmit = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n e.preventDefault();\n\n try {\n await checkFormValidity();\n\n sendButtonAddMoreFieldEvent(shouldContinue);\n const ctTargetUid = forTarget === 'components' ? targetUid : uid;\n\n if (isCreatingContentType) {\n // Create the content type schema\n if (isCreating) {\n createSchema({ ...modifiedData, kind }, modalType, uid);\n // Redirect the user to the created content type\n navigate({ pathname: `/plugins/${pluginId}/content-types/${uid}` });\n\n // Navigate to the choose attribute modal\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n // We cannot switch from collection type to single when the modal is making relations other than oneWay or manyWay\n if (canEditContentType(allDataSchema, modifiedData)) {\n onCloseModal();\n\n await submitData(modifiedData);\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.contentType.relations.conflict' }),\n });\n }\n\n return;\n }\n // We are creating a component using the component modal from the left menu\n } else if (modalType === 'component') {\n if (isCreating) {\n // Create the component schema\n const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);\n const { category, ...rest } = modifiedData;\n\n createSchema(rest, 'component', componentUid, category);\n\n // Redirect the user to the created component\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`,\n });\n\n // Navigate to the choose attribute modal\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: componentUid,\n });\n } else {\n updateSchema(modifiedData, modalType, targetUid as Internal.UID.Component);\n\n // Close the modal\n onCloseModal();\n\n return;\n }\n } else if (isEditingCategory) {\n if (toLower(initialData.name) === toLower(modifiedData.name)) {\n // Close the modal\n onCloseModal();\n\n return;\n }\n\n editCategory(initialData.name, modifiedData);\n\n return;\n // Add/edit a field to a content type\n // Add/edit a field to a created component (the end modal is not step 2)\n } else if (isCreatingCustomFieldAttribute) {\n const customFieldAttributeUpdate: CustomFieldAttributeParams = {\n attributeToSet: { ...modifiedData, customField: customFieldUid },\n forTarget,\n targetUid,\n initialAttribute: initialData,\n };\n\n if (actionType === 'edit') {\n editCustomFieldAttribute(customFieldAttributeUpdate);\n } else {\n addCustomFieldAttribute(customFieldAttributeUpdate);\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n } else if (isCreatingAttribute && !isCreatingComponentFromAView) {\n const isDynamicZoneAttribute = attributeType === 'dynamiczone';\n\n // The user is creating a DZ (he had entered the name of the dz)\n if (isDynamicZoneAttribute) {\n addAttribute(modifiedData, forTarget, targetUid, actionType === 'edit', initialData);\n\n // Adding a component to a dynamiczone is not the same logic as creating a simple field\n // so the search is different\n if (isCreating) {\n // Step 1 of adding a component to a DZ, the user has the option to create a component\n dispatch(actions.resetPropsAndSetTheFormForAddingACompoToADz());\n\n setActiveTab('basic');\n onNavigateToAddCompoToDZModal({ dynamicZoneTarget: modifiedData.name });\n } else {\n onCloseModal();\n }\n\n return;\n }\n\n // Normal fields like boolean relations or dynamic zone\n if (!isComponentAttribute) {\n addAttribute(modifiedData, forTarget, targetUid, actionType === 'edit', initialData);\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n\n // Adding an existing component\n }\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep) {\n // Navigate the user to step 2\n onNavigateToCreateComponentStep2();\n\n // Clear the reducer and prepare the modified data\n // This way we don't have to add some logic to re-run the useEffect\n // The first step is either needed to create a component or just to navigate\n // To the modal for adding a \"common field\"\n dispatch(actions.resetPropsAndSetFormForAddingAnExistingCompo({}));\n\n // We don't want all the props to be reset\n return;\n\n // Here we are in step 2\n // The step 2 is also use to edit an attribute that is a component\n }\n\n addAttribute(\n modifiedData,\n forTarget,\n targetUid,\n // This change the dispatched type\n // either 'editAttribute' or 'addAttribute' in the DataManagerProvider\n actionType === 'edit',\n // This is for the edit part\n initialData,\n // Passing true will add the component to the components object\n // This way we can add fields to the added component (if it wasn't there already)\n true\n );\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid,\n });\n } else {\n onCloseModal();\n }\n\n // We don't need to end the loop here we want the reducer to be reinitialized\n\n // Logic for creating a component without clicking on the link in\n // the left menu\n // We need to separate the logic otherwise the component would be created\n // even though the user didn't set any field\n // We need to prevent the component from being created if the user closes the modal at step 2 without any submission\n } else if (isCreatingAttribute && isCreatingComponentFromAView) {\n // Step 1\n if (isInFirstComponentStep) {\n // Here the search could be refactored since it is the same as the case from above\n // Navigate the user to step 2\n\n trackUsage('willCreateComponentFromAttributesModal');\n\n // Here we clear the reducer state but we also keep the created component\n // If we were to create the component before\n dispatch(actions.resetPropsAndSaveCurrentData({}));\n\n onNavigateToCreateComponentStep2();\n\n // Terminate because we don't want the reducer to be entirely reset\n return;\n\n // Step 2 of creating a component (which is setting the attribute name in the parent's schema)\n }\n // We are destructuring because the modifiedData object doesn't have the appropriate format to create a field\n const { category, type, ...rest } = componentToCreate;\n // Create a the component temp UID\n // This could be refactored but I think it's more understandable to separate the logic\n const componentUid = createComponentUid(componentToCreate.displayName, category);\n // Create the component first and add it to the components data\n createSchema(\n // Component data\n rest,\n // Type will always be component\n // It will dispatch the CREATE_COMPONENT_SCHEMA action\n // So the component will be added in the main components object\n // This might not be needed if we don't allow navigation between entries while editing\n type,\n componentUid,\n category,\n // This will add the created component in the datamanager modifiedData components key\n // Like explained above we will be able to modify the created component structure\n isCreatingComponentFromAView\n );\n // Add the field to the schema\n addAttribute(modifiedData, forTarget, targetUid, false);\n\n dispatch(actions.resetProps());\n\n // Open modal attribute for adding attr to component\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({ forTarget: 'components', targetUid: componentUid });\n } else {\n onCloseModal();\n }\n\n return;\n } else {\n // The modal is addComponentToDynamicZone\n if (isInFirstComponentStep) {\n if (isCreatingComponentFromAView) {\n const { category, type, ...rest } = modifiedData.componentToCreate;\n const componentUid = createComponentUid(\n modifiedData.componentToCreate.displayName,\n category\n );\n // Create the component first and add it to the components data\n createSchema(\n // Component data\n rest,\n // Type will always be component\n // It will dispatch the CREATE_COMPONENT_SCHEMA action\n // So the component will be added in the main components object\n // This might not be needed if we don't allow navigation between entries while editing\n type,\n componentUid,\n category,\n // This will add the created component in the datamanager modifiedData components key\n // Like explained above we will be able to modify the created component structure\n isCreatingComponentFromAView\n );\n // Add the created component to the DZ\n // We don't want to remove the old ones\n addCreatedComponentToDynamicZone(dynamicZoneTarget, [componentUid]);\n\n // The Dynamic Zone and the component is created\n // Open the modal to add fields to the created component\n onNavigateToChooseAttributeModal({ forTarget: 'components', targetUid: componentUid });\n } else {\n // Add the components to the DZ\n changeDynamicZoneComponents(dynamicZoneTarget, modifiedData.components);\n\n onCloseModal();\n }\n } else {\n console.error('This case is not handled');\n }\n\n return;\n }\n\n dispatch(actions.resetProps());\n } catch (err: any) {\n const errors = getYupInnerErrors(err);\n\n dispatch(\n actions.setErrors({\n errors,\n })\n );\n }\n };\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onCloseModal();\n dispatch(actions.resetProps());\n }\n };\n\n const handleClosed = () => {\n // Close the modal\n if (!isEqual(modifiedData, initialData)) {\n handleConfirmClose();\n } else {\n onCloseModal();\n // Reset the reducer\n dispatch(actions.resetProps());\n }\n };\n\n const sendAdvancedTabEvent = (tab: string) => {\n if (tab !== 'advanced') {\n return;\n }\n\n if (isCreatingContentType) {\n trackUsage('didSelectContentTypeSettings');\n\n return;\n }\n\n if (forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldSettings');\n }\n };\n\n const sendButtonAddMoreFieldEvent = (shouldContinue: boolean) => {\n if (\n modalType === 'attribute' &&\n forTarget === 'contentType' &&\n attributeType !== 'dynamiczone' &&\n shouldContinue\n ) {\n trackUsage('willAddMoreFieldToContentType');\n }\n };\n\n const shouldDisableAdvancedTab = () => {\n if (modalType === 'editCategory') {\n return true;\n }\n\n if (modalType === 'component') {\n return true;\n }\n\n if (has(modifiedData, 'createComponent')) {\n return true;\n }\n\n return false;\n };\n\n // Display data for the attributes picker modal\n const displayedAttributes = getAttributesToDisplay(\n forTarget,\n targetUid,\n // We need the nested components so we know when to remove the component option\n nestedComponents\n );\n\n if (!modalType) {\n return null;\n }\n\n const formToDisplay = get(forms, [modalType, 'form'], {\n advanced: () => ({\n sections: [],\n }),\n base: () => ({\n sections: [],\n }),\n });\n\n const isAddingAComponentToAnotherComponent =\n forTarget === 'components' || forTarget === 'component';\n\n const genericInputProps = {\n customInputs: {\n 'allowed-types-select': AllowedTypesSelect,\n 'boolean-radio-group': BooleanRadioGroup,\n 'checkbox-with-number-field': CheckboxWithNumberField,\n 'icon-picker': IconPicker,\n 'content-type-radio-group': ContentTypeRadioGroup,\n 'radio-group': CustomRadioGroup,\n relation: Relation,\n 'select-category': SelectCategory,\n 'select-component': SelectComponent,\n 'select-components': SelectComponents,\n 'select-default-boolean': BooleanDefaultValueSelect,\n 'select-number': SelectNumber,\n 'select-date': SelectDateType,\n 'toggle-draft-publish': DraftAndPublishToggle,\n 'text-plural': PluralName,\n 'text-singular': SingularName,\n 'textarea-enum': TextareaEnum,\n ...inputsFromPlugins,\n },\n componentToCreate,\n dynamicZoneTarget,\n formErrors,\n isAddingAComponentToAnotherComponent,\n isCreatingComponentWhileAddingAField,\n mainBoxHeader: get(allDataSchema, [...pathToSchema, 'schema', 'displayName'], ''),\n modifiedData,\n naturePickerType: forTarget,\n isCreating,\n targetUid,\n forTarget,\n };\n\n const advancedForm = formToDisplay.advanced({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: allDataSchema.contentType || {},\n customField,\n }).sections;\n const baseForm = formToDisplay.base({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: allDataSchema.contentType || {},\n customField,\n }).sections;\n\n const baseFormInputNames = getFormInputNames(baseForm);\n\n const advancedFormInputNames = getFormInputNames(advancedForm);\n const doesBaseFormHasError = Object.keys(formErrors).some((key) =>\n baseFormInputNames.includes(key)\n );\n\n const doesAdvancedFormHasError = Object.keys(formErrors).some((key) =>\n advancedFormInputNames.includes(key)\n );\n\n const schemaKind = get(contentTypes, [targetUid, 'schema', 'kind']);\n\n const checkIsEditingFieldName = () =>\n actionType === 'edit' && attributes.every(({ name }) => name !== modifiedData?.name);\n\n const handleClickFinish = () => {\n if (checkIsEditingFieldName()) {\n trackUsage('didEditFieldNameOnContentType');\n }\n };\n\n return (\n <Modal.Root open={isOpen} onOpenChange={handleClosed}>\n <Modal.Content>\n <FormModalHeader\n actionType={actionType}\n attributeName={attributeName}\n categoryName={categoryName}\n contentTypeKind={kind as IconByType}\n dynamicZoneTarget={dynamicZoneTarget}\n modalType={modalType}\n forTarget={forTarget}\n targetUid={targetUid}\n attributeType={attributeType as IconByType}\n customFieldUid={customFieldUid}\n showBackLink={showBackLink}\n />\n {isPickingAttribute && (\n <AttributeOptions\n attributes={displayedAttributes}\n forTarget={forTarget}\n kind={schemaKind || 'collectionType'}\n />\n )}\n {!isPickingAttribute && (\n <FormComponent onSubmit={handleSubmit}>\n <Modal.Body>\n <Tabs.Root\n variant=\"simple\"\n value={activeTab}\n onValueChange={(value) => {\n setActiveTab(value);\n sendAdvancedTabEvent(value);\n }}\n hasError={\n doesBaseFormHasError ? 'basic' : doesAdvancedFormHasError ? 'advanced' : undefined\n }\n >\n <Flex justifyContent=\"space-between\">\n <FormModalSubHeader\n actionType={actionType}\n forTarget={forTarget}\n kind={kind}\n step={step}\n modalType={modalType}\n attributeType={attributeType}\n attributeName={attributeName}\n customField={customField}\n />\n <Tabs.List>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTrad('popUpForm.navContainer.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\" disabled={shouldDisableAdvancedTab()}>\n {formatMessage({\n id: getTrad('popUpForm.navContainer.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"basic\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={baseForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={advancedForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={handleClosed}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n {/* TODO: refactor this component. Nuf said. */}\n <FormModalEndActions\n deleteCategory={deleteCategory}\n deleteContentType={deleteData}\n deleteComponent={deleteData}\n categoryName={initialData.name}\n isAttributeModal={modalType === 'attribute'}\n isCustomFieldModal={modalType === 'customField'}\n isComponentToDzModal={modalType === 'addComponentToDynamicZone'}\n isComponentAttribute={attributeType === 'component'}\n isComponentModal={modalType === 'component'}\n isContentTypeModal={modalType === 'contentType'}\n isCreatingComponent={actionType === 'create'}\n isCreatingDz={actionType === 'create'}\n isCreatingComponentAttribute={modifiedData.createComponent || false}\n isCreatingComponentInDz={modifiedData.createComponent || false}\n isCreatingComponentWhileAddingAField={isCreatingComponentWhileAddingAField}\n isCreatingContentType={actionType === 'create'}\n isEditingAttribute={actionType === 'edit'}\n isDzAttribute={attributeType === 'dynamiczone'}\n isEditingCategory={modalType === 'editCategory'}\n isInFirstComponentStep={step === '1'}\n onSubmitAddComponentAttribute={handleSubmit}\n onSubmitAddComponentToDz={handleSubmit}\n onSubmitCreateComponent={handleSubmit}\n onSubmitCreateContentType={handleSubmit}\n onSubmitCreateDz={handleSubmit}\n onSubmitEditAttribute={handleSubmit}\n onSubmitEditCategory={handleSubmit}\n onSubmitEditComponent={handleSubmit}\n onSubmitEditContentType={handleSubmit}\n onSubmitEditCustomFieldAttribute={handleSubmit}\n onSubmitEditDz={handleSubmit}\n onClickFinish={handleClickFinish}\n />\n </Modal.Footer>\n </FormComponent>\n )}\n </Modal.Content>\n </Modal.Root>\n );\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { pluginId } from '../../pluginId';\n\nimport { initialState } from './reducer';\n\nimport type { DataManagerStateType } from '../../types';\n\n/**\n * Direct selector to the dataManagerProvider state domain\n */\nconst dataManagerProviderDomain = () => (state: DataManagerStateType) =>\n state[`${pluginId}_dataManagerProvider`] || initialState;\n\n/**\n * Other specific selectors\n */\n\n/**\n * Default selector used by dataManagerProvider\n */\n\nconst makeSelectDataManagerProvider = () =>\n createSelector(dataManagerProviderDomain(), (substate) => {\n return substate;\n });\n\nexport { makeSelectDataManagerProvider, dataManagerProviderDomain };\n","import camelCase from 'lodash/camelCase';\nimport get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\nimport { makeUnique } from '../../../utils/makeUnique';\n\nimport type { Components, Component, AttributeType, ContentTypes } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nconst getCreatedAndModifiedComponents = (\n allComponents: Components,\n initialComponents: Components\n) => {\n const componentUIDsToReturn = Object.keys(allComponents).filter((compoUid) => {\n const currentCompo = get(allComponents, compoUid, {});\n const initialCompo = get(initialComponents, compoUid, {});\n const hasComponentBeenCreated = get(currentCompo, ['isTemporary'], false);\n const hasComponentBeenModified = !isEqual(currentCompo, initialCompo);\n\n return hasComponentBeenCreated || hasComponentBeenModified;\n });\n\n return makeUnique(componentUIDsToReturn);\n};\n\nconst formatComponent = (\n component: Component | Record<string, any>,\n mainDataUID: Internal.UID.Schema\n) => {\n const formattedAttributes = formatAttributes(\n get(component, 'schema.attributes', []),\n mainDataUID\n );\n\n // Set tmpUID if the component has just been created\n // Keep the uid if the component already exists\n const compoUID = get(component, 'isTemporary', false)\n ? { tmpUID: component.uid }\n : { uid: component.uid };\n\n const formattedComponent = Object.assign(\n {},\n compoUID,\n { category: component.category },\n // Omit the attributes since we want to format them\n omit(component.schema, 'attributes'),\n // Add the formatted attributes\n { attributes: formattedAttributes }\n );\n\n return formattedComponent;\n};\n\nconst formatMainDataType = (data: any, isComponent = false) => {\n const mainDataUID = get(data, 'uid', null);\n\n const formattedAttributes = formatAttributes(get(data, 'schema.attributes', []), mainDataUID);\n const initObj = isComponent ? { category: get(data, 'category', '') } : {};\n\n const formattedContentType = Object.assign(initObj, omit(data.schema, 'attributes'), {\n attributes: formattedAttributes,\n });\n\n delete formattedContentType.uid;\n delete formattedContentType.isTemporary;\n delete formattedContentType.visible;\n delete formattedContentType.restrictRelationsTo;\n\n return formattedContentType;\n};\n\n/**\n *\n * @param {Object} attributes\n * @param {String} mainDataUID uid of the main data type\n */\nconst formatAttributes = (attributes: AttributeType[], mainDataUID: Internal.UID.Schema) => {\n return attributes.reduce((acc: Record<string, AttributeType>, { name, ...rest }) => {\n const currentAttribute = rest;\n const hasARelationWithMainDataUID = currentAttribute.target === mainDataUID;\n const isRelationType = currentAttribute.type === 'relation';\n const currentTargetAttribute = get(currentAttribute, 'targetAttribute', null);\n\n if (!hasARelationWithMainDataUID) {\n if (isRelationType) {\n const relationAttr = Object.assign({}, currentAttribute, {\n targetAttribute: formatRelationTargetAttribute(currentTargetAttribute),\n });\n\n acc[name as string] = removeNullKeys(relationAttr) as AttributeType;\n } else {\n acc[name as string] = removeNullKeys(currentAttribute) as AttributeType;\n }\n }\n\n if (hasARelationWithMainDataUID) {\n const target = currentAttribute.target;\n\n const formattedRelationAttribute = Object.assign({}, currentAttribute, {\n target,\n targetAttribute: formatRelationTargetAttribute(currentTargetAttribute),\n });\n\n acc[name as string] = removeNullKeys(formattedRelationAttribute) as AttributeType;\n }\n\n if (currentAttribute.customField) {\n const customFieldAttribute = { ...currentAttribute, type: 'customField' };\n acc[name as string] = removeNullKeys(customFieldAttribute) as AttributeType;\n }\n\n return acc;\n }, {});\n};\n\nconst formatRelationTargetAttribute = (targetAttribute: string | null) =>\n targetAttribute === '-' ? null : targetAttribute;\n\nconst removeNullKeys = (obj: Record<string, any>) =>\n Object.keys(obj).reduce((acc: Record<string, any>, current) => {\n if (obj[current] !== null && current !== 'plugin') {\n acc[current] = obj[current];\n }\n\n return acc;\n }, {});\n\nconst getComponentsToPost = (\n allComponents: Components,\n initialComponents: Components,\n mainDataUID: Internal.UID.Schema\n) => {\n const componentsToFormat = getCreatedAndModifiedComponents(allComponents, initialComponents);\n const formattedComponents = componentsToFormat.map((compoUID) => {\n const currentCompo = get(allComponents, compoUID, {});\n const formattedComponent = formatComponent(currentCompo, mainDataUID);\n\n return formattedComponent;\n });\n\n return formattedComponents;\n};\n\nconst sortContentType = (types: ContentTypes) =>\n sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].schema.visible,\n name: uid,\n title: types[uid].schema.displayName,\n plugin: types[uid].plugin || null,\n uid,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].schema.kind,\n restrictRelationsTo: types[uid].schema.restrictRelationsTo,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n\nexport {\n formatComponent,\n formatMainDataType,\n getComponentsToPost,\n getCreatedAndModifiedComponents,\n sortContentType,\n};\n","import { ContentType } from '../../../types';\n\nexport const createDataObject = (arr: ContentType[]) =>\n arr.reduce((acc: Record<string, ContentType>, current) => {\n acc[current.uid!] = current;\n\n return acc;\n }, {});\n","import get from 'lodash/get';\n\nimport type { ContentType, Components } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nexport const createModifiedDataSchema = (\n contentTypeSchema: ContentType,\n retrievedComponents: Internal.UID.Component[],\n allComponentsSchema: Components,\n isInContentTypeView: boolean\n) => {\n const componentsAssociatedToContentType = retrievedComponents.reduce((acc: any, current) => {\n const componentSchema = get(allComponentsSchema, current, {});\n\n acc[current] = componentSchema;\n\n return acc;\n }, {});\n const keyName = isInContentTypeView ? 'contentType' : 'component';\n const schema = {\n [keyName]: contentTypeSchema,\n components: componentsAssociatedToContentType,\n };\n\n return schema;\n};\n","import { AttributeType } from '../../../types';\n\n/**\n * Format the attributes to array instead of an object\n */\nexport const formatSchemas = (schemas: Record<string, any>) => {\n return Object.keys(schemas).reduce((acc: any, current) => {\n const schema = schemas[current].schema;\n\n acc[current] = {\n ...schemas[current],\n schema: { ...schema, attributes: toAttributesArray(schema.attributes) },\n };\n\n return acc;\n }, {});\n};\n\nexport const toAttributesArray = (attributes: Record<string, AttributeType>) => {\n return Object.keys(attributes).reduce((acc: AttributeType[], current: any) => {\n acc.push({ ...attributes[current], name: current });\n\n return acc;\n }, []);\n};\n","import get from 'lodash/get';\n\nimport type { Component, AttributeType, Components } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\ntype ChildComponent = {\n component: Internal.UID.Component;\n};\n\nexport type ComponentWithChildren = {\n component: Internal.UID.Component;\n childComponents: ChildComponent[];\n};\n\nconst retrieveComponentsThatHaveComponents = (allComponents: Components) => {\n const componentsThatHaveNestedComponents = Object.keys(allComponents).reduce(\n (acc: ComponentWithChildren[], current) => {\n const currentComponent = get(allComponents, [current]);\n\n const compoWithChildren = getComponentWithChildComponents(currentComponent);\n if (compoWithChildren.childComponents.length > 0) {\n acc.push(compoWithChildren);\n }\n\n return acc;\n },\n []\n );\n\n return componentsThatHaveNestedComponents;\n};\n\nconst getComponentWithChildComponents = (component: Component): ComponentWithChildren => {\n const attributes = get(component, ['schema', 'attributes'], []) as AttributeType[];\n return {\n component: component.uid,\n childComponents: attributes\n .filter((attribute) => {\n const { type } = attribute;\n\n return type === 'component';\n })\n .map((attribute) => {\n return {\n component: attribute.component,\n } as ChildComponent;\n }),\n };\n};\n\nexport { getComponentWithChildComponents, retrieveComponentsThatHaveComponents };\n","import type { Components, AttributeType } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nexport type NestedComponent = {\n component: Internal.UID.Component;\n uidsOfAllParents?: Internal.UID.Component[];\n parentCompoUid?: Internal.UID.Component;\n};\n\nexport const retrieveNestedComponents = (appComponents: Components): NestedComponent[] => {\n const nestedComponents = Object.keys(appComponents).reduce((acc: NestedComponent[], current) => {\n const componentAttributes = appComponents?.[current]?.schema?.attributes ?? [];\n const currentComponentNestedCompos = getComponentsNestedWithinComponent(\n componentAttributes,\n current as Internal.UID.Component\n );\n return [...acc, ...currentComponentNestedCompos];\n }, []);\n\n return mergeComponents(nestedComponents);\n};\n\nconst getComponentsNestedWithinComponent = (\n componentAttributes: AttributeType[],\n parentCompoUid: Internal.UID.Component\n) => {\n return componentAttributes.reduce((acc: NestedComponent[], current) => {\n const { type, component } = current;\n if (type === 'component') {\n acc.push({\n component,\n parentCompoUid,\n });\n }\n\n return acc;\n }, []);\n};\n\n// Merge duplicate components\nconst mergeComponents = (originalComponents: NestedComponent[]): NestedComponent[] => {\n const componentMap = new Map();\n // Populate the map with component and its parents\n originalComponents.forEach(({ component, parentCompoUid }) => {\n if (!componentMap.has(component)) {\n componentMap.set(component, new Set());\n }\n componentMap.get(component).add(parentCompoUid);\n });\n\n // Convert the map to the desired array format\n const transformedComponents: NestedComponent[] = Array.from(componentMap.entries()).map(\n ([component, parentCompoUidSet]) => ({\n component,\n uidsOfAllParents: Array.from(parentCompoUidSet),\n })\n );\n\n return transformedComponents;\n};\n","import get from 'lodash/get';\n\nimport { makeUnique } from '../../../utils/makeUnique';\n\nexport const retrieveSpecificInfoFromComponents = (allComponents: any, keysToRetrieve: any) => {\n const allData = Object.keys(allComponents).map((compo) => {\n return get(allComponents, [compo, ...keysToRetrieve], '');\n });\n\n return makeUnique(allData);\n};\n","const SERVER_HAS_NOT_BEEN_KILLED_MESSAGE = 'did-not-kill-server';\nconst SERVER_HAS_BEEN_KILLED_MESSAGE = 'server is down';\n\n/**\n * Server restart watcher\n * Sends an HEAD method to check if the server has been shut down correctly\n * and then pings until it's back on\n */\nexport function serverRestartWatcher(response: any, didShutDownServer?: boolean) {\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n fetch(`${window.strapi.backendURL}/_health`, {\n method: 'HEAD',\n mode: 'no-cors',\n headers: {\n 'Content-Type': 'application/json',\n 'Keep-Alive': 'false',\n },\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(SERVER_HAS_BEEN_KILLED_MESSAGE);\n }\n\n if (!didShutDownServer) {\n throw new Error(SERVER_HAS_NOT_BEEN_KILLED_MESSAGE);\n }\n\n resolve(response);\n })\n .catch((err) => {\n setTimeout(() => {\n return serverRestartWatcher(\n response,\n err.message !== SERVER_HAS_NOT_BEEN_KILLED_MESSAGE\n ).then(resolve);\n }, 100);\n });\n });\n}\n","export const validateSchema = (schema: any) => {\n const dynamicZoneAttributes = Object.values(schema.attributes).filter(\n (attribute: any) => attribute.type === 'dynamiczone'\n );\n\n return dynamicZoneAttributes.every(\n (attribute: any) => Array.isArray(attribute.components) && attribute.components.length > 0\n );\n};\n","import { memo, useEffect, useMemo, useRef, ReactNode } from 'react';\n\nimport {\n useGuidedTour,\n useTracking,\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport set from 'lodash/set';\nimport size from 'lodash/size';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { DataManagerContext } from '../../contexts/DataManagerContext';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { FormModal } from '../FormModal/FormModal';\n\nimport { actions } from './reducer';\nimport { makeSelectDataManagerProvider } from './selectors';\nimport { formatMainDataType, getComponentsToPost, sortContentType } from './utils/cleanData';\nimport { createDataObject } from './utils/createDataObject';\nimport { createModifiedDataSchema } from './utils/createModifiedDataSchema';\nimport { formatSchemas } from './utils/formatSchemas';\nimport { retrieveComponentsFromSchema } from './utils/retrieveComponentsFromSchema';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\nimport { serverRestartWatcher } from './utils/serverRestartWatcher';\nimport { validateSchema } from './utils/validateSchema';\n\nimport type { ContentType, SchemaType, Components } from '../../types';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: ReactNode;\n}\n\ninterface CustomFieldAttributeParams {\n attributeToSet: Record<string, any>;\n forTarget: SchemaType;\n targetUid: Internal.UID.Schema;\n initialAttribute: Record<string, any>;\n}\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n // refactor\n const { components, contentTypes, isLoading, initialData, modifiedData, reservedNames } =\n useSelector(makeSelectDataManagerProvider());\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const { setCurrentStep, setStepState } = useGuidedTour('DataManagerProvider', (state) => state);\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n\n const plugin = getPlugin(pluginId);\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { pathname } = useLocation();\n const { onCloseModal } = useFormModalNavigation();\n const contentTypeMatch = useMatch(`/plugins/${pluginId}/content-types/:uid`);\n const componentMatch = useMatch(\n `/plugins/${pluginId}/component-categories/:categoryUid/:componentUid`\n );\n\n const fetchClient = useFetchClient();\n const { put, post, del } = fetchClient;\n\n const isInDevelopmentMode = autoReload;\n\n const isInContentTypeView = contentTypeMatch !== null;\n const firstKeyToMainSchema = isInContentTypeView ? 'contentType' : 'component';\n const currentUid = isInContentTypeView\n ? get(contentTypeMatch, 'params.uid', null)\n : get(componentMatch, 'params.componentUid', null);\n\n const getDataRef = useRef<any>();\n const endPoint = isInContentTypeView ? 'content-types' : 'components';\n\n getDataRef.current = async () => {\n try {\n const [componentsResponse, contentTypesResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/components`),\n fetchClient.get(`/content-type-builder/content-types`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const components = createDataObject(componentsResponse.data.data);\n const formattedComponents = formatSchemas(components);\n const contentTypes = createDataObject(contentTypesResponse.data.data);\n const formattedContentTypes = formatSchemas(contentTypes);\n\n dispatch(\n actions.init({\n components: formattedComponents,\n contentTypes: formattedContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n useEffect(() => {\n getDataRef.current();\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n // We need to set the modifiedData after the data has been retrieved\n // and also on pathname change\n if (!isLoading && currentUid) {\n setModifiedData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading, pathname, currentUid]);\n\n useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const addAttribute = (\n attributeToSet: Record<string, any>,\n forTarget: SchemaType,\n targetUid: Internal.UID.Schema,\n isEditing = false,\n initialAttribute?: Record<string, any>,\n shouldAddComponentToData = false\n ) => {\n if (isEditing) {\n const payload = {\n attributeToSet,\n forTarget,\n targetUid,\n // NOTE: using ! here to avoid changing the code logic before bigger refactorings\n initialAttribute: initialAttribute!,\n shouldAddComponentToData,\n };\n\n dispatch(actions.editAttribute(payload));\n } else {\n const payload = {\n attributeToSet,\n forTarget,\n targetUid,\n shouldAddComponentToData,\n };\n\n dispatch(actions.addAttribute(payload));\n }\n };\n\n const addCustomFieldAttribute = ({\n attributeToSet,\n forTarget,\n targetUid,\n }: CustomFieldAttributeParams) => {\n dispatch(actions.addCustomFieldAttribute({ attributeToSet, forTarget, targetUid }));\n };\n\n const editCustomFieldAttribute = ({\n attributeToSet,\n forTarget,\n targetUid,\n initialAttribute,\n }: CustomFieldAttributeParams) => {\n dispatch(\n actions.editCustomFieldAttribute({\n attributeToSet,\n forTarget,\n targetUid,\n initialAttribute,\n })\n );\n };\n\n const addCreatedComponentToDynamicZone = (\n dynamicZoneTarget: string,\n componentsToAdd: Internal.UID.Component[]\n ) => {\n dispatch(actions.addCreatedComponentToDynamicZone({ dynamicZoneTarget, componentsToAdd }));\n };\n\n const createSchema = (\n data: Record<string, any>,\n schemaType: SchemaType,\n uid: Internal.UID.Schema,\n componentCategory?: string,\n shouldAddComponentToData = false\n ) => {\n if (schemaType === 'contentType') {\n const payload = {\n data,\n uid,\n };\n\n dispatch(actions.createSchema(payload));\n } else {\n const payload = {\n data,\n uid,\n componentCategory: componentCategory!,\n shouldAddComponentToData,\n };\n\n dispatch(actions.createComponentSchema(payload));\n }\n };\n\n const changeDynamicZoneComponents = (\n dynamicZoneTarget: string,\n newComponents: Internal.UID.Component[]\n ) => {\n dispatch(actions.changeDynamicZoneComponents({ dynamicZoneTarget, newComponents }));\n };\n\n const removeAttribute = (\n mainDataKey: 'components' | 'contentType' | 'component' | 'contentTypes',\n attributeToRemoveName: string,\n componentUid = ''\n ) => {\n if (mainDataKey === 'components') {\n dispatch(\n actions.removeFieldFromDisplayedComponent({\n attributeToRemoveName,\n componentUid,\n })\n );\n } else {\n if (mainDataKey === 'contentType') {\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(\n actions.removeField({\n mainDataKey,\n attributeToRemoveName,\n })\n );\n }\n };\n\n const deleteCategory = async (categoryUid: string) => {\n try {\n const requestURL = `/${pluginId}/component-categories/${categoryUid}`;\n // eslint-disable-next-line no-alert\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad('popUpWarning.bodyMessage.category.delete'),\n })\n );\n // Close the modal\n onCloseModal();\n\n if (userConfirm) {\n lockAppWithAutoreload?.();\n\n await del(requestURL);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n unlockAppWithAutoreload?.();\n\n await updatePermissions();\n }\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const deleteData = async () => {\n try {\n const requestURL = `/${pluginId}/${endPoint}/${currentUid}`;\n const isTemporary = get(modifiedData, [firstKeyToMainSchema, 'isTemporary'], false);\n\n // eslint-disable-next-line no-alert\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(\n `popUpWarning.bodyMessage.${isInContentTypeView ? 'contentType' : 'component'}.delete`\n ),\n })\n );\n\n // Close the modal\n onCloseModal();\n\n if (userConfirm) {\n if (isTemporary) {\n // Delete the not saved type\n // Here we just need to reset the components to the initial ones and also the content types\n // Doing so will trigging a url change since the type doesn't exist in either the contentTypes or the components\n // so the modified and the initial data will also be reset in the useEffect...\n dispatch(actions.deleteNotSavedType());\n\n return;\n }\n\n lockAppWithAutoreload?.();\n\n await del(requestURL);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n await unlockAppWithAutoreload?.();\n\n await getDataRef.current();\n // Refetch the permissions\n await updatePermissions();\n }\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const editCategory = async (categoryUid: string, body: any) => {\n try {\n const requestURL = `/${pluginId}/component-categories/${categoryUid}`;\n\n // Close the modal\n onCloseModal();\n\n // Lock the app\n lockAppWithAutoreload?.();\n\n // Update the category\n await put(requestURL, body);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n await unlockAppWithAutoreload?.();\n\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = () => {\n // We need to create an object with all the non modified compos\n // plus the ones that are created on the fly\n const allCompos = Object.assign({}, components, modifiedData.components);\n\n // Since we apply the modification of a specific component only in the modified data\n // we need to update all compos with the modifications\n if (!isInContentTypeView) {\n const currentEditedCompo = get(modifiedData, 'component', {});\n\n set(allCompos, get(currentEditedCompo, ['uid'], ''), currentEditedCompo);\n }\n\n const composWithCompos = retrieveComponentsThatHaveComponents(allCompos);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = () => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const removeComponentFromDynamicZone = (dzName: string, componentToRemoveIndex: number) => {\n dispatch(\n actions.removeComponentFromDynamicZone({\n dzName,\n componentToRemoveIndex,\n })\n );\n };\n\n const setModifiedData = () => {\n const currentSchemas = isInContentTypeView ? contentTypes : components;\n const schemaToSet = get(currentSchemas, currentUid ?? '', {\n schema: { attributes: [] },\n });\n\n const retrievedComponents = retrieveComponentsFromSchema(\n schemaToSet.schema.attributes,\n components\n );\n\n const newSchemaToSet = createModifiedDataSchema(\n schemaToSet,\n retrievedComponents,\n components,\n isInContentTypeView\n );\n\n const hasJustCreatedSchema =\n get(schemaToSet, 'isTemporary', false) &&\n size(get(schemaToSet, 'schema.attributes', [])) === 0;\n\n dispatch(\n actions.setModifiedData({\n schemaToSet: newSchemaToSet,\n hasJustCreatedSchema,\n })\n );\n };\n\n const shouldRedirect = useMemo(() => {\n const dataSet = isInContentTypeView ? contentTypes : components;\n if (currentUid === 'create-content-type') {\n return false;\n }\n\n return !Object.keys(dataSet).includes(currentUid || '') && !isLoading;\n }, [components, contentTypes, currentUid, isInContentTypeView, isLoading]);\n\n const redirectEndpoint = useMemo(() => {\n const allowedEndpoints = Object.keys(contentTypes)\n .filter((uid) => get(contentTypes, [uid, 'schema', 'visible'], true))\n .sort();\n\n return get(allowedEndpoints, '0', 'create-content-type');\n }, [contentTypes]);\n\n if (shouldRedirect) {\n return <Navigate to={`/plugins/${pluginId}/content-types/${redirectEndpoint}`} />;\n }\n\n const submitData = async (additionalContentTypeData?: Record<string, any>) => {\n try {\n const isCreating = get(modifiedData, [firstKeyToMainSchema, 'isTemporary'], false);\n\n const body: {\n components: any[];\n contentType?: Record<string, any>;\n component?: any;\n } = {\n components: getComponentsToPost(\n modifiedData.components as Components,\n components as Components,\n currentUid as Internal.UID.Schema\n ),\n };\n\n if (isInContentTypeView) {\n const PluginForms = plugin?.apis?.forms as any;\n const contentType = PluginForms.mutateContentTypeSchema(\n {\n ...formatMainDataType(modifiedData.contentType),\n ...additionalContentTypeData,\n },\n initialData.contentType\n ) as ContentType;\n\n const isValidSchema = validateSchema(contentType);\n\n if (!isValidSchema) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error.dynamiczone-min.validation'),\n defaultMessage:\n 'At least one component is required in a dynamic zone to be able to save a content type',\n }),\n });\n\n return;\n }\n\n body.contentType = contentType;\n\n trackUsage('willSaveContentType');\n } else {\n body.component = formatMainDataType(modifiedData.component, true);\n\n trackUsage('willSaveComponent');\n }\n\n // Lock the app\n lockAppWithAutoreload?.();\n\n const baseURL = `/${pluginId}/${endPoint}`;\n const requestURL = isCreating ? baseURL : `${baseURL}/${currentUid}`;\n\n if (isCreating) {\n await post(requestURL, body);\n } else {\n await put(requestURL, body);\n }\n\n if (\n isCreating &&\n (initialData.contentType?.schema.kind === 'collectionType' ||\n initialData.contentType?.schema.kind === 'singleType')\n ) {\n setStepState('contentTypeBuilder.success', true);\n trackUsage('didCreateGuidedTourCollectionType');\n setCurrentStep(null);\n }\n\n // Submit ct tracking success\n if (isInContentTypeView) {\n trackUsage('didSaveContentType');\n\n const oldName = get(body, ['contentType', 'schema', 'name'], '');\n const newName = get(initialData, ['contentType', 'schema', 'name'], '');\n\n if (!isCreating && oldName !== newName) {\n trackUsage('didEditNameOfContentType');\n }\n } else {\n trackUsage('didSaveComponent');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n unlockAppWithAutoreload?.();\n\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n\n // Update the app's permissions\n await updatePermissions();\n } catch (err: any) {\n if (!isInContentTypeView) {\n trackUsage('didNotSaveComponent');\n }\n\n console.error({ err: err.response });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const updateSchema = (\n data: Record<string, any>,\n schemaType: 'contentType' | 'component',\n componentUID: Internal.UID.Schema\n ) => {\n dispatch(\n actions.updateSchema({\n data,\n schemaType,\n uid: componentUID,\n })\n );\n };\n\n return (\n <DataManagerContext.Provider\n value={{\n addAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n allComponentsCategories: retrieveSpecificInfoFromComponents(components, ['category']),\n changeDynamicZoneComponents,\n components,\n componentsGroupedByCategory: groupBy(components, 'category') as Record<string, any[]>,\n componentsThatHaveOtherComponentInTheirAttributes:\n getAllComponentsThatHaveAComponentInTheirAttributes(),\n contentTypes,\n createSchema,\n deleteCategory,\n deleteData,\n editCategory,\n editCustomFieldAttribute,\n isInDevelopmentMode,\n initialData,\n isInContentTypeView,\n modifiedData,\n nestedComponents: getAllNestedComponents(),\n removeAttribute,\n removeComponentFromDynamicZone,\n reservedNames,\n setModifiedData,\n sortedContentTypesList: sortContentType(contentTypes),\n submitData,\n updateSchema,\n }}\n >\n {children}\n {isInDevelopmentMode && <FormModal />}\n </DataManagerContext.Provider>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default memo(DataManagerProvider);\n","const INITIAL_STATE_DATA = {\n actionType: null,\n attributeName: null,\n attributeType: null,\n categoryName: null,\n dynamicZoneTarget: null,\n forTarget: null,\n modalType: null,\n isOpen: false,\n showBackLink: false,\n kind: null,\n step: null,\n targetUid: null,\n customFieldUid: null,\n activeTab: 'basic',\n};\n\nexport { INITIAL_STATE_DATA };\n","import * as React from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\n\nimport { FormModalNavigationContext } from '../../contexts/FormModalNavigationContext';\n\nimport { INITIAL_STATE_DATA } from './constants';\n\ntype FormModalNavigationProviderProps = {\n children: React.ReactNode;\n};\n\nexport type State = any;\n\nexport type ModalEventProps = {\n attributeType?: string;\n customFieldUid?: string;\n dynamicZoneTarget?: string;\n forTarget?: string;\n targetUid?: string;\n attributeName?: string;\n step?: string | null;\n kind?: string;\n categoryName?: string;\n modalType?: string;\n actionType?: string;\n isOpen?: boolean;\n showBackLink?: boolean;\n};\n\nexport const FormModalNavigationProvider = ({ children }: FormModalNavigationProviderProps) => {\n const [state, setFormModalNavigationState] = React.useState(INITIAL_STATE_DATA);\n const { trackUsage } = useTracking();\n\n const onClickSelectCustomField = ({ attributeType, customFieldUid }: ModalEventProps) => {\n // TODO: Add tracking for custom fields\n setFormModalNavigationState((prevState: any) => {\n return {\n ...prevState,\n actionType: 'create',\n modalType: 'customField',\n attributeType,\n customFieldUid,\n activeTab: 'basic',\n };\n });\n };\n\n const onClickSelectField = ({ attributeType, step }: ModalEventProps) => {\n if (state.forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldType', { type: attributeType });\n }\n\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n actionType: 'create',\n modalType: 'attribute',\n step,\n attributeType,\n showBackLink: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onOpenModalAddComponentsToDZ = ({ dynamicZoneTarget, targetUid }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\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 const onOpenModalAddField = ({ forTarget, targetUid }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\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\n const onOpenModalCreateSchema = (nextState: State) => {\n setFormModalNavigationState((prevState) => {\n return { ...prevState, ...nextState, isOpen: true, activeTab: 'basic' };\n });\n };\n\n const onOpenModalEditCategory = (categoryName: string) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n categoryName,\n actionType: 'edit',\n modalType: 'editCategory',\n isOpen: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onOpenModalEditCustomField = ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n customFieldUid,\n }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\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 const onOpenModalEditField = ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\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 const onOpenModalEditSchema = ({ modalType, forTarget, targetUid, kind }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n modalType,\n actionType: 'edit',\n forTarget,\n targetUid,\n kind,\n isOpen: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onCloseModal = () => {\n setFormModalNavigationState(INITIAL_STATE_DATA);\n };\n\n const onNavigateToChooseAttributeModal = ({ forTarget, targetUid }: ModalEventProps) => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n activeTab: 'basic',\n };\n });\n };\n\n const onNavigateToCreateComponentStep2 = () => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n attributeType: 'component',\n modalType: 'attribute',\n step: '2',\n activeTab: 'basic',\n };\n });\n };\n\n const onNavigateToAddCompoToDZModal = ({ dynamicZoneTarget }: ModalEventProps) => {\n setFormModalNavigationState((prev: State) => {\n return {\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 const setActiveTab = (value: string) => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n activeTab: value,\n };\n });\n };\n\n return (\n <FormModalNavigationContext.Provider\n value={\n {\n ...state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditCategory,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setFormModalNavigationState,\n setActiveTab,\n } as any\n }\n >\n {children}\n </FormModalNavigationContext.Provider>\n );\n};\n","/* eslint-disable import/no-default-export */\n/* eslint-disable check-file/filename-naming-convention */\n/* eslint-disable check-file/no-index */\nimport { lazy, Suspense, useEffect, useRef } from 'react';\n\nimport { Page, useGuidedTour, Layouts } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker';\nimport { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav';\nimport DataManagerProvider from '../../components/DataManagerProvider/DataManagerProvider';\nimport { FormModalNavigationProvider } from '../../components/FormModalNavigationProvider/FormModalNavigationProvider';\nimport { PERMISSIONS } from '../../constants';\nimport { pluginId } from '../../pluginId';\n\nconst ListView = lazy(() => import('../ListView/ListView'));\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const title = formatMessage({\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n });\n const startSection = useGuidedTour('App', (state) => state.startSection);\n const startSectionRef = useRef(startSection);\n\n useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('contentTypeBuilder');\n }\n }, []);\n\n return (\n <Page.Protect permissions={PERMISSIONS.main}>\n <Page.Title>{title}</Page.Title>\n <AutoReloadOverlayBlockerProvider>\n <FormModalNavigationProvider>\n <DataManagerProvider>\n <Layouts.Root sideNav={<ContentTypeBuilderNav />}>\n <Suspense fallback={<Page.Loading />}>\n <Routes>\n <Route path=\"content-types/:uid\" element={<ListView />} />\n <Route\n path={`component-categories/:categoryUid/:componentUid`}\n element={<ListView />}\n />\n </Routes>\n </Suspense>\n </Layouts.Root>\n </DataManagerProvider>\n </FormModalNavigationProvider>\n </AutoReloadOverlayBlockerProvider>\n </Page.Protect>\n );\n};\n\nexport default App;\n"],"names":["getTrad","id","pluginId","DataManagerContext","createContext","useDataManager","useContext","FormModalNavigationContext","React","useFormModalNavigation","useContentTypeBuilderMenu","components","componentsGroupedByCategory","contentTypes","isInDevelopmentMode","sortedContentTypesList","modifiedData","initialData","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","searchValue","setSearchValue","useState","onOpenModalCreateSchema","onOpenModalEditCategory","locale","startsWith","useFilter","sensitivity","formatter","useCollator","canOpenModalCreateCTorComponent","Object","keys","some","ct","isTemporary","component","isEqual","handleClickOpenModalCreateCollectionType","nextState","modalType","kind","actionType","forTarget","toggleNotificationCannotCreateSchema","handleClickOpenModalCreateSingleType","handleClickOpenModalCreateComponent","type","message","defaultMessage","componentsData","entries","map","category","name","title","isEditable","onClickEdit","e","data","stopPropagation","links","uid","to","schema","displayName","sort","a","b","compare","displayedContentTypes","filter","obj","visible","customLink","onClick","contentType","singleType","section","hasChild","l","Array","isArray","filteredLinksCount","link","filteredLinks","length","Boolean","linksCount","menu","search","value","onChange","clear","SubNavLinkCustom","styled","SubNavLink","ContentTypeBuilderNav","pluginName","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","searchable","onClear","target","label","searchLabel","SubNavSections","Fragment","SubNavSection","collapsable","badgeLabel","toString","SubNavLinkSection","upperFirst","subLink","tag","NavLink","active","isSubSectionChild","width","Box","paddingLeft","TextButton","startIcon","Plus","height","marginTop","cursor","isAllowedContentTypesForRelations","restrictRelationsTo","findAttribute","attributes","attributeToFind","find","extractValuesFromYupError","errorType","errorParams","getYupInnerErrors","error","inner","reduce","acc","currentError","path","split","join","values","params","options","children","AllowedTypesSelect","intlLabel","displayedValue","v","Field","Root","Label","MultiSelectNested","customizeContent","iconByTypes","biginteger","NumberField","blocks","BlocksField","boolean","BooleanField","collectionType","CollectionType","ComponentField","date","DateField","datetime","decimal","dynamiczone","DynamicZoneField","email","EmailField","enum","EnumerationField","enumeration","file","MediaField","files","float","integer","json","JsonField","JSON","media","number","password","PasswordField","relation","RelationField","richtext","MarkdownField","SingleType","string","TextField","text","time","timestamp","UidField","IconBox","AttributeIcon","customField","rest","getCustomField","useStrapiApp","state","customFields","get","Compo","customFieldObject","icon","shrink","aria-hidden","OptionBoxWrapper","theme","colors","neutral200","primary100","primary200","newAttributes","NewBadge","Flex","grow","justifyContent","gap","hasRadius","background","padding","Sparkle","fill","Typography","textColor","variant","AttributeOption","onClickSelectField","handleClick","step","attributeType","fontWeight","includes","AttributeList","KeyboardNavigable","tagName","direction","alignItems","attributeRow","index","Grid","attribute","Item","col","CustomFieldOption","customFieldUid","intlDescription","onClickSelectCustomField","EmptyCard","neutral150","EmptyCardGrid","wrap","_","idx","EmptyAttributes","position","top","EmptyDocuments","paddingTop","paddingBottom","textAlign","LinkButton","Link","qs","stringify","categories","CustomFieldsList","getAllCustomFields","getAll","registeredCustomFields","sortedCustomFields","href","isExternal","AttributeOptions","defaultTabId","customTabId","titleIdSuffix","titleId","Modal","Body","Tabs","defaultValue","List","Trigger","Divider","marginBottom","Content","BooleanDefaultValueSelect","handleChange","nextValue","SingleSelect","metadatas","disabled","hidden","key","SingleSelectOption","Wrapper","inputFocusStyle","neutral0","spaces","neutral300","primary600","CustomRadioGroup","radios","htmlFor","radio","className","input","checked","paddingRight","span","description","BooleanRadioGroup","CheckboxWithNumberField","errorMessage","Checkbox","onCheckedChange","initValue","style","maxWidth","TextInput","Error","NumberInput","onValueChange","ContentTypeRadioGroup","DraftAndPublishToggle","isCreating","showWarning","setShowWarning","hint","handleConfirm","_Fragment","Hint","Dialog","open","onOpenChange","isOpen","ConfirmDialog","endAction","Button","FormModalEndActions","categoryName","deleteCategory","deleteComponent","deleteContentType","isAttributeModal","isCustomFieldModal","isComponentAttribute","isComponentToDzModal","isContentTypeModal","isCreatingComponent","isCreatingComponentAttribute","isCreatingComponentInDz","isCreatingComponentWhileAddingAField","isCreatingContentType","isCreatingDz","isComponentModal","isDzAttribute","isEditingAttribute","isEditingCategory","isInFirstComponentStep","onSubmitAddComponentAttribute","onSubmitAddComponentToDz","onSubmitCreateContentType","onSubmitCreateComponent","onSubmitCreateDz","onSubmitEditAttribute","onSubmitEditCategory","onSubmitEditComponent","onSubmitEditContentType","onSubmitEditCustomFieldAttribute","onSubmitEditDz","onClickFinish","preventDefault","FormModalHeader","attributeName","contentTypeKind","dynamicZoneTarget","targetUid","showBackLink","onOpenModalAddField","headers","isCreatingMainSchema","headerId","Header","Title","info","push","ArrowLeft","Breadcrumbs","arr","Crumb","isCurrent","getModalTitleSubHeader","FormModalSubHeader","COMPONENT_ICONS","alien","Icons","Alien","apps","GridNine","archive","Archive","arrowDown","ArrowDown","arrowLeft","arrowRight","ArrowRight","arrowUp","ArrowUp","attachment","Paperclip","bell","Bell","bold","Bold","book","Book","briefcase","Briefcase","brush","PaintBrush","bulletList","BulletList","calendar","Calendar","car","Car","cast","Cast","chartBubble","ChartBubble","chartCircle","ChartCircle","chartPie","ChartPie","check","Check","clock","Clock","cloud","Cloud","code","Code","cog","Cog","collapse","Collapse","command","Command","connector","Faders","crop","Crop","crown","Crown","cup","Coffee","Cursor","dashboard","SquaresFour","database","Database","discuss","Discuss","doctor","Stethoscope","earth","Earth","emotionHappy","EmotionHappy","emotionUnhappy","EmotionUnhappy","envelop","Mail","exit","SignOut","expand","Expand","eye","Eye","feather","Feather","File","fileError","FileError","filePdf","FilePdf","Filter","folder","Folder","gate","CastleTurret","gift","Gift","globe","Globe","grid","GridFour","handHeart","HandHeart","hashtag","Hashtag","headphone","Headphones","heart","Heart","house","House","information","Information","italic","Italic","Key","landscape","Images","layer","ListPlus","layout","Layout","lightbulb","Lightbulb","lock","Lock","magic","Magic","manyToMany","ManyToMany","manyToOne","ManyToOne","manyWays","ManyWays","medium","Symbols","Medium","Message","microphone","Microphone","monitor","Monitor","moon","Moon","music","MusicNotes","oneToMany","OneToMany","oneToOne","OneToOne","oneWay","OneWay","paint","paintBrush","paperPlane","PaperPlane","pencil","Pencil","phone","Phone","picture","Image","pin","Pin","pinMap","PinMap","plane","Plane","play","Play","plus","priceTag","PriceTag","puzzle","PuzzlePiece","question","Question","quote","Quotes","refresh","ArrowClockwise","restaurant","Restaurant","rocket","Rocket","rotate","ArrowsCounterClockwise","scissors","Scissors","Search","seed","Plant","server","Server","shield","Shield","shirt","Shirt","shoppingCart","ShoppingCart","slideshow","PresentationChart","stack","Stack","star","Star","store","Store","strikeThrough","StrikeThrough","sun","Sun","television","Television","thumbDown","ThumbDown","thumbUp","ThumbUp","train","Train","twitter","X","typhoon","Typhoon","underline","Underline","user","User","volumeMute","VolumeMute","volumeUp","VolumeUp","walk","Walk","wheelchair","Wheelchair","write","IconPickerWrapper","borderRadius","neutral100","IconPick","iconKey","isSelected","ariaLabel","Icon","required","VisuallyHidden","Input","aria-checked","undefined","IconPicker","showSearch","setShowSearch","setSearch","allIcons","icons","setIcons","searchIconRef","useRef","searchBarRef","toggleSearch","onChangeSearch","toLowerCase","onClearSearch","removeIconSelected","useEffect","current","focus","Searchbar","ref","placeholder","onBlur","clearLabel","IconButton","withTooltip","Tooltip","Trash","maxHeight","overflow","PluralName","onChangeRef","nameToSlug","plural","pluralize","err","parseDateValue","Date","isValidDate","isNaN","getTime","removeSeconds","hours","minutes","addSecondsAndMilliseconds","formatTimeForInput","formatTimeForOutput","handleTimeChange","formattedInputTime","handleTimeChangeEvent","formattedOutputTime","GenericInput","autoComplete","customInputs","labelAction","isNullable","getFieldHintValue","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","CustomInput","valueWithEmptyStringFallback","getErrorMessage","formattedPlaceholder","getComponent","JSONInput","minHeight","Toggle","offLabel","onLabel","dateValue","DateTimePicker","formattedDate","toISOString","DatePicker","formatISO","representation","button","prev","border","EyeStriked","Textarea","event","formattedValue","TimePicker","action","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","divider","br","maxValue","Math","parsedMin","Number","parsedMinLength","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","RelationTargetPicker","oneThatIsCreatingARelationWithAnother","dispatch","useDispatch","allowedContentTypesForRelation","plugin","handleSelect","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","targetContentTypeAllowedRelations","Menu","MenuTrigger","zIndex","onSelect","RelationFormBox","header","isMain","borderColor","IconWrapper","$isSelected","InfosWrapper","relations","manyWay","ManyWay","RelationNaturePicker","naturePickerType","relationType","ctRelations","componentRelations","dataType","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","restrictedRelations","rightDisplayedValue","flex","Asset","isEnabled","onChangeRelationType","truncate","Relation","formErrors","mainBoxHeader","getRelationType","targetAttribute","SelectCategory","allComponentsCategories","setCategories","handleCreateOption","Combobox","onCreateOption","creatable","ComboboxOption","findComponent","componentUid","c","getChildrenMaxDepth","currentDepth","childComponents","maxDepth","forEach","child","depth","getComponentDepth","getDepth","currentComponent","currentLevel","levels","uidsOfAllParents","parentUid","parentComponent","nestedCompo","compoDepth","SelectComponent","isAddingAComponentToAnotherComponent","componentToCreate","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","isTargetAComponent","compos","componentDepth","totalDepth","MAX_COMPONENT_DEPTH","option","SelectComponents","dzSchema","alreadyUsedComponents","filteredComponentsGroupedByCategory","filteredComponents","SelectDateType","default","SelectNumber","defaultProps","SingularName","TabForm","form","genericInputProps","sectionIndex","items","sectionTitle","i","pluginOptionError","errorId","size","div","TextareaEnum","inputValue","arrayValue","nameField","commonBaseForm","sections","componentForm","base","prefix","advanced","attributeOptions","private","regex","unique","advancedForm","autoFocus","repeatable","withDefaultValue","validations","indexOf","inputStep","targetField","componentField","baseForm","itemsToConcat","createComponent","isMultiple","currentYear","getFullYear","_data","attributesForm","toRegressedEnumValue","slugify","decamelize","lowercase","separator","NAME_REGEX","alreadyUsedAttributeNames","usedNames","errorsTrads","test","snakeCaseKey","snakeCase","existingKey","isNameAllowed","reservedNames","validators","yup","nullable","when","positive","matches","createTextShape","usedAttributeNames","shape","RegExp","isMinSuperiorThanMax","parent","toNumber","attributeTypes","object","GRAPHQL_ENUM_REGEX","array","of","duplicates","uniq","val","every","enumName","multiple","allowedTypes","oneOf","alreadyTakenTargetAttributes","lazy","initialForbiddenName","forbiddenTargetAttributeName","CATEGORY_NAME_REGEX","createCategorySchema","usedCategoryNames","categoryForm","createComponentSchema","usedComponentNames","takenCollectionNames","currentCollectionName","createComponentUid","snakeCaseCollectionName","reserved","collectionName","contentTypeForm","create","edit","createContentTypeSchema","usedContentTypeNames","reservedModels","singularNames","pluralNames","collectionNames","createUid","pluralName","context","singularName","draftAndPublish","dynamiczoneForm","addItemsToFormSection","formTypeOptions","item","createComponentCollectionName","getUsedAttributeNames","schemaData","forms","schemaAttributes","customFieldValidator","ctbFormsAPI","attributeShape","makeCustomFieldValidator","extensions","injectedInputs","getAdvancedForm","extendedSettings","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","console","itemsToAdd","alreadyTakenNames","isEditing","ctUid","takenNames","takenSingularNames","singName","takenPluralNames","contentTypeShape","models","flat","alreadyTakenAttributes","componentCategory","componentDisplayName","compoUid","addComponentToDynamicZone","editCategory","allCategories","allowedCategories","cat","formModalDomain","initialState","makeSelectFormModal","createSelector","substate","canEditContentType","contentTypeAttributes","relationAttributes","getAttributesToDisplay","dataTarget","defaultAttributes","isPickingAttributeForAContentType","slice","isNestedInAnotherComponent","canAddComponentInAnotherComponent","getFormInputNames","names","FormComponent","FormModal","onCloseModal","onNavigateToChooseAttributeModal","onNavigateToAddCompoToDZModal","onNavigateToCreateComponentStep2","activeTab","setActiveTab","getPlugin","formModalSelector","useMemo","reducerState","useSelector","shallowEqual","navigate","useNavigate","ctbPlugin","apis","inputsFromPlugins","inputs","addAttribute","addCustomFieldAttribute","addCreatedComponentToDynamicZone","changeDynamicZoneComponents","createSchema","deleteData","editCustomFieldAttribute","submitData","allDataSchema","setModifiedData","updateSchema","pathToSchema","collectionTypesForRelation","pathToAttributes","foundDynamicZoneTarget","setDataToEdit","pluginOptions","attributeToEdit","setDynamicZoneDataSchema","attributeToEditNotFormatted","set","setCustomFieldDataSchema","modifiedDataToSetForEditing","setAttributeDataSchema","nameToSetForRelation","resetProps","isCreatingAttribute","isCreatingCustomFieldAttribute","isCreatingComponentFromAView","isPickingAttribute","checkFormValidity","dataToValidate","validator","targetContentTypeUID","targetContentTypeAttributes","attrName","validate","abortEarly","useCallback","namesThatCanResetToNullValue","clonedErrors","assign","setErrors","errors","handleSubmit","shouldContinue","sendButtonAddMoreFieldEvent","ctTargetUid","pathname","toLower","customFieldAttributeUpdate","attributeToSet","initialAttribute","isDynamicZoneAttribute","resetPropsAndSetTheFormForAddingACompoToADz","resetPropsAndSetFormForAddingAnExistingCompo","resetPropsAndSaveCurrentData","handleConfirmClose","confirm","window","handleClosed","sendAdvancedTabEvent","tab","shouldDisableAdvancedTab","has","displayedAttributes","formToDisplay","contentTypeSchema","baseFormInputNames","advancedFormInputNames","doesBaseFormHasError","doesAdvancedFormHasError","schemaKind","checkIsEditingFieldName","handleClickFinish","onSubmit","hasError","Footer","dataManagerProviderDomain","makeSelectDataManagerProvider","getCreatedAndModifiedComponents","allComponents","initialComponents","componentUIDsToReturn","currentCompo","initialCompo","hasComponentBeenCreated","hasComponentBeenModified","makeUnique","formatComponent","mainDataUID","formattedAttributes","formatAttributes","compoUID","tmpUID","formattedComponent","omit","formatMainDataType","isComponent","initObj","formattedContentType","currentAttribute","hasARelationWithMainDataUID","isRelationType","currentTargetAttribute","relationAttr","formatRelationTargetAttribute","removeNullKeys","formattedRelationAttribute","customFieldAttribute","getComponentsToPost","componentsToFormat","formattedComponents","sortContentType","types","sortBy","camelCase","createDataObject","createModifiedDataSchema","retrievedComponents","allComponentsSchema","isInContentTypeView","componentsAssociatedToContentType","componentSchema","keyName","formatSchemas","schemas","toAttributesArray","retrieveComponentsThatHaveComponents","componentsThatHaveNestedComponents","compoWithChildren","getComponentWithChildComponents","retrieveNestedComponents","appComponents","componentAttributes","currentComponentNestedCompos","getComponentsNestedWithinComponent","mergeComponents","parentCompoUid","originalComponents","componentMap","Map","Set","add","transformedComponents","from","parentCompoUidSet","retrieveSpecificInfoFromComponents","keysToRetrieve","allData","compo","SERVER_HAS_NOT_BEEN_KILLED_MESSAGE","SERVER_HAS_BEEN_KILLED_MESSAGE","serverRestartWatcher","response","didShutDownServer","Promise","resolve","fetch","strapi","backendURL","method","mode","then","res","status","catch","setTimeout","validateSchema","dynamicZoneAttributes","DataManagerProvider","isLoading","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","setCurrentStep","setStepState","useGuidedTour","autoReload","useAppInfo","refetchPermissions","useAuth","useLocation","contentTypeMatch","useMatch","componentMatch","fetchClient","useFetchClient","put","post","del","firstKeyToMainSchema","currentUid","getDataRef","endPoint","componentsResponse","contentTypesResponse","reservedNamesResponse","all","formattedContentTypes","init","reloadPlugin","shouldAddComponentToData","payload","editAttribute","componentsToAdd","schemaType","newComponents","removeAttribute","mainDataKey","attributeToRemoveName","removeFieldFromDisplayedComponent","removeField","categoryUid","requestURL","userConfirm","updatePermissions","deleteNotSavedType","body","getAllComponentsThatHaveAComponentInTheirAttributes","allCompos","currentEditedCompo","composWithCompos","getAllNestedComponents","appNestedCompo","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","currentSchemas","schemaToSet","retrieveComponentsFromSchema","newSchemaToSet","hasJustCreatedSchema","shouldRedirect","dataSet","redirectEndpoint","allowedEndpoints","Navigate","additionalContentTypeData","PluginForms","mutateContentTypeSchema","isValidSchema","baseURL","oldName","newName","componentUID","Provider","groupBy","INITIAL_STATE_DATA","FormModalNavigationProvider","setFormModalNavigationState","prevState","onOpenModalAddComponentsToDZ","onOpenModalEditCustomField","onOpenModalEditField","onOpenModalEditSchema","ListView","App","startSection","startSectionRef","Page","Protect","permissions","PERMISSIONS","main","AutoReloadOverlayBlockerProvider","Layouts","sideNav","Suspense","fallback","Loading","Routes","Route","element"],"mappings":"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"}