@strapi/content-type-builder 5.13.0-beta.1 → 5.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/admin/components/AttributeIcon.js +0 -1
  2. package/dist/admin/components/AttributeIcon.js.map +1 -1
  3. package/dist/admin/components/AttributeIcon.mjs +0 -1
  4. package/dist/admin/components/AttributeIcon.mjs.map +1 -1
  5. package/dist/admin/components/AttributeOptions/AttributeOption.js +1 -1
  6. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  7. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +1 -1
  8. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  9. package/dist/admin/components/AttributeOptions/CustomFieldOption.js +1 -1
  10. package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
  11. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +1 -1
  12. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
  13. package/dist/admin/components/AutoReloadOverlayBlocker.js +2 -5
  14. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
  15. package/dist/admin/components/AutoReloadOverlayBlocker.mjs +2 -5
  16. package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
  17. package/dist/admin/components/ComponentCard/ComponentCard.js +11 -13
  18. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  19. package/dist/admin/components/ComponentCard/ComponentCard.mjs +11 -13
  20. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
  21. package/dist/admin/components/ComponentList.js +26 -12
  22. package/dist/admin/components/ComponentList.js.map +1 -1
  23. package/dist/admin/components/ComponentList.mjs +26 -12
  24. package/dist/admin/components/ComponentList.mjs.map +1 -1
  25. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +70 -253
  26. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  27. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +73 -256
  28. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  29. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +81 -53
  30. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  31. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +82 -54
  32. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
  33. package/dist/admin/components/DisplayedType.js +14 -14
  34. package/dist/admin/components/DisplayedType.js.map +1 -1
  35. package/dist/admin/components/DisplayedType.mjs +15 -15
  36. package/dist/admin/components/DisplayedType.mjs.map +1 -1
  37. package/dist/admin/components/DynamicZoneList.js +38 -34
  38. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  39. package/dist/admin/components/DynamicZoneList.mjs +40 -36
  40. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  41. package/dist/admin/components/FormModal/FormModal.js +164 -198
  42. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  43. package/dist/admin/components/FormModal/FormModal.mjs +165 -198
  44. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  45. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  46. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  47. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  48. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  49. package/dist/admin/components/FormModal/component/createComponentSchema.js +2 -2
  50. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
  51. package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
  52. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
  53. package/dist/admin/components/FormModal/forms/forms.js +27 -10
  54. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  55. package/dist/admin/components/FormModal/forms/forms.mjs +27 -10
  56. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  57. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
  58. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
  59. package/dist/admin/components/FormModal/reducer.js +4 -4
  60. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  61. package/dist/admin/components/FormModal/reducer.mjs +4 -4
  62. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  63. package/dist/admin/components/FormModal/utils/canEditContentType.js +14 -9
  64. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  65. package/dist/admin/components/FormModal/utils/canEditContentType.mjs +14 -9
  66. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  67. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
  68. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
  69. package/dist/admin/components/FormModalEndActions.js +34 -1
  70. package/dist/admin/components/FormModalEndActions.js.map +1 -1
  71. package/dist/admin/components/FormModalEndActions.mjs +34 -1
  72. package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
  73. package/dist/admin/components/FormModalHeader.js +28 -10
  74. package/dist/admin/components/FormModalHeader.js.map +1 -1
  75. package/dist/admin/components/FormModalHeader.mjs +28 -10
  76. package/dist/admin/components/FormModalHeader.mjs.map +1 -1
  77. package/dist/admin/components/FormModalSubHeader.js.map +1 -1
  78. package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
  79. package/dist/admin/components/GenericInputs.js +5 -9
  80. package/dist/admin/components/GenericInputs.js.map +1 -1
  81. package/dist/admin/components/GenericInputs.mjs +5 -9
  82. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  83. package/dist/admin/components/List.js +199 -149
  84. package/dist/admin/components/List.js.map +1 -1
  85. package/dist/admin/components/List.mjs +202 -151
  86. package/dist/admin/components/List.mjs.map +1 -1
  87. package/dist/admin/components/Relation/Relation.js +2 -3
  88. package/dist/admin/components/Relation/Relation.js.map +1 -1
  89. package/dist/admin/components/Relation/Relation.mjs +2 -3
  90. package/dist/admin/components/Relation/Relation.mjs.map +1 -1
  91. package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
  92. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
  93. package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
  94. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
  95. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +5 -6
  96. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
  97. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +5 -6
  98. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
  99. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +21 -19
  100. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
  101. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +21 -19
  102. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
  103. package/dist/admin/components/SelectCategory.js +1 -1
  104. package/dist/admin/components/SelectCategory.js.map +1 -1
  105. package/dist/admin/components/SelectCategory.mjs +1 -1
  106. package/dist/admin/components/SelectCategory.mjs.map +1 -1
  107. package/dist/admin/components/SelectComponent.js +6 -3
  108. package/dist/admin/components/SelectComponent.js.map +1 -1
  109. package/dist/admin/components/SelectComponent.mjs +6 -3
  110. package/dist/admin/components/SelectComponent.mjs.map +1 -1
  111. package/dist/admin/components/SelectComponents.js +6 -9
  112. package/dist/admin/components/SelectComponents.js.map +1 -1
  113. package/dist/admin/components/SelectComponents.mjs +6 -9
  114. package/dist/admin/components/SelectComponents.mjs.map +1 -1
  115. package/dist/admin/components/SelectNumber.js +4 -0
  116. package/dist/admin/components/SelectNumber.js.map +1 -1
  117. package/dist/admin/components/SelectNumber.mjs +4 -0
  118. package/dist/admin/components/SelectNumber.mjs.map +1 -1
  119. package/dist/admin/components/TabForm.js +1 -2
  120. package/dist/admin/components/TabForm.js.map +1 -1
  121. package/dist/admin/components/TabForm.mjs +1 -2
  122. package/dist/admin/components/TabForm.mjs.map +1 -1
  123. package/dist/admin/icons/Curve.js +1 -1
  124. package/dist/admin/icons/Curve.js.map +1 -1
  125. package/dist/admin/icons/Curve.mjs +1 -1
  126. package/dist/admin/icons/Curve.mjs.map +1 -1
  127. package/dist/admin/pages/App/index.js +19 -39
  128. package/dist/admin/pages/App/index.js.map +1 -1
  129. package/dist/admin/pages/App/index.mjs +21 -41
  130. package/dist/admin/pages/App/index.mjs.map +1 -1
  131. package/dist/admin/pages/ListView/LinkToCMSettingsView.js +17 -26
  132. package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
  133. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +17 -26
  134. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
  135. package/dist/admin/pages/ListView/ListView.js +158 -105
  136. package/dist/admin/pages/ListView/ListView.js.map +1 -1
  137. package/dist/admin/pages/ListView/ListView.mjs +163 -110
  138. package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
  139. package/dist/admin/reducers.js +4 -3
  140. package/dist/admin/reducers.js.map +1 -1
  141. package/dist/admin/reducers.mjs +4 -3
  142. package/dist/admin/reducers.mjs.map +1 -1
  143. package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +2 -2
  144. package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +1 -5
  145. package/dist/admin/src/components/ComponentList.d.ts +6 -4
  146. package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +14 -29
  147. package/dist/admin/src/components/DisplayedType.d.ts +1 -2
  148. package/dist/admin/src/components/DynamicZoneList.d.ts +5 -8
  149. package/dist/admin/src/components/FormModal/forms/forms.d.ts +38 -2
  150. package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +2 -3
  151. package/dist/admin/src/components/FormModal/reducer.d.ts +4 -10
  152. package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +4 -4
  153. package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +1 -1
  154. package/dist/admin/src/components/FormModalEndActions.d.ts +5 -1
  155. package/dist/admin/src/components/FormModalHeader.d.ts +7 -10
  156. package/dist/admin/src/components/FormModalSubHeader.d.ts +3 -3
  157. package/dist/admin/src/components/GenericInputs.d.ts +1 -2
  158. package/dist/admin/src/components/List.d.ts +13 -16
  159. package/dist/admin/src/components/Relation/Relation.d.ts +1 -2
  160. package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +1 -2
  161. package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +2 -3
  162. package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +1 -2
  163. package/dist/admin/src/components/SelectComponents.d.ts +1 -3
  164. package/dist/admin/src/components/SelectNumber.d.ts +7 -1
  165. package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +4 -3
  166. package/dist/admin/src/pages/ListView/ListView.d.ts +1 -1
  167. package/dist/admin/src/reducers.d.ts +8 -2
  168. package/dist/admin/src/types.d.ts +43 -40
  169. package/dist/admin/src/utils/findAttribute.d.ts +2 -2
  170. package/dist/admin/src/utils/formAPI.d.ts +1 -43
  171. package/dist/admin/src/utils/getMaxDepth.d.ts +2 -2
  172. package/dist/admin/src/utils/getRelationType.d.ts +1 -1
  173. package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
  174. package/dist/admin/translations/de.json.js +1 -0
  175. package/dist/admin/translations/de.json.js.map +1 -1
  176. package/dist/admin/translations/de.json.mjs +1 -0
  177. package/dist/admin/translations/de.json.mjs.map +1 -1
  178. package/dist/admin/translations/dk.json.js +1 -0
  179. package/dist/admin/translations/dk.json.js.map +1 -1
  180. package/dist/admin/translations/dk.json.mjs +1 -0
  181. package/dist/admin/translations/dk.json.mjs.map +1 -1
  182. package/dist/admin/translations/en.json.js +2 -4
  183. package/dist/admin/translations/en.json.js.map +1 -1
  184. package/dist/admin/translations/en.json.mjs +2 -4
  185. package/dist/admin/translations/en.json.mjs.map +1 -1
  186. package/dist/admin/translations/es.json.js +1 -0
  187. package/dist/admin/translations/es.json.js.map +1 -1
  188. package/dist/admin/translations/es.json.mjs +1 -0
  189. package/dist/admin/translations/es.json.mjs.map +1 -1
  190. package/dist/admin/translations/ko.json.js +1 -0
  191. package/dist/admin/translations/ko.json.js.map +1 -1
  192. package/dist/admin/translations/ko.json.mjs +1 -0
  193. package/dist/admin/translations/ko.json.mjs.map +1 -1
  194. package/dist/admin/translations/pl.json.js +1 -0
  195. package/dist/admin/translations/pl.json.js.map +1 -1
  196. package/dist/admin/translations/pl.json.mjs +1 -0
  197. package/dist/admin/translations/pl.json.mjs.map +1 -1
  198. package/dist/admin/translations/pt-BR.json.js +1 -0
  199. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  200. package/dist/admin/translations/pt-BR.json.mjs +1 -0
  201. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  202. package/dist/admin/translations/sv.json.js +1 -0
  203. package/dist/admin/translations/sv.json.js.map +1 -1
  204. package/dist/admin/translations/sv.json.mjs +1 -0
  205. package/dist/admin/translations/sv.json.mjs.map +1 -1
  206. package/dist/admin/translations/tr.json.js +1 -0
  207. package/dist/admin/translations/tr.json.js.map +1 -1
  208. package/dist/admin/translations/tr.json.mjs +1 -0
  209. package/dist/admin/translations/tr.json.mjs.map +1 -1
  210. package/dist/admin/translations/zh.json.js +1 -0
  211. package/dist/admin/translations/zh.json.js.map +1 -1
  212. package/dist/admin/translations/zh.json.mjs +1 -0
  213. package/dist/admin/translations/zh.json.mjs.map +1 -1
  214. package/dist/admin/utils/findAttribute.js.map +1 -1
  215. package/dist/admin/utils/findAttribute.mjs.map +1 -1
  216. package/dist/admin/utils/formAPI.js +1 -0
  217. package/dist/admin/utils/formAPI.js.map +1 -1
  218. package/dist/admin/utils/formAPI.mjs +1 -0
  219. package/dist/admin/utils/formAPI.mjs.map +1 -1
  220. package/dist/admin/utils/getMaxDepth.js.map +1 -1
  221. package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
  222. package/dist/admin/utils/getRelationType.js.map +1 -1
  223. package/dist/admin/utils/getRelationType.mjs.map +1 -1
  224. package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
  225. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
  226. package/dist/server/controllers/index.js +1 -3
  227. package/dist/server/controllers/index.js.map +1 -1
  228. package/dist/server/controllers/index.mjs +1 -3
  229. package/dist/server/controllers/index.mjs.map +1 -1
  230. package/dist/server/controllers/validation/common.js +0 -2
  231. package/dist/server/controllers/validation/common.js.map +1 -1
  232. package/dist/server/controllers/validation/common.mjs +1 -2
  233. package/dist/server/controllers/validation/common.mjs.map +1 -1
  234. package/dist/server/controllers/validation/content-type.js.map +1 -1
  235. package/dist/server/controllers/validation/content-type.mjs.map +1 -1
  236. package/dist/server/routes/admin.js +0 -51
  237. package/dist/server/routes/admin.js.map +1 -1
  238. package/dist/server/routes/admin.mjs +0 -51
  239. package/dist/server/routes/admin.mjs.map +1 -1
  240. package/dist/server/services/index.js +1 -3
  241. package/dist/server/services/index.js.map +1 -1
  242. package/dist/server/services/index.mjs +1 -3
  243. package/dist/server/services/index.mjs.map +1 -1
  244. package/dist/server/services/schema-builder/component-builder.js +2 -12
  245. package/dist/server/services/schema-builder/component-builder.js.map +1 -1
  246. package/dist/server/services/schema-builder/component-builder.mjs +2 -12
  247. package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
  248. package/dist/server/services/schema-builder/content-type-builder.js +28 -43
  249. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  250. package/dist/server/services/schema-builder/content-type-builder.mjs +28 -43
  251. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
  252. package/dist/server/services/schema-builder/index.js +49 -51
  253. package/dist/server/services/schema-builder/index.js.map +1 -1
  254. package/dist/server/services/schema-builder/index.mjs +49 -51
  255. package/dist/server/services/schema-builder/index.mjs.map +1 -1
  256. package/dist/server/src/controllers/index.d.ts +0 -5
  257. package/dist/server/src/controllers/index.d.ts.map +1 -1
  258. package/dist/server/src/controllers/validation/common.d.ts +0 -1
  259. package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
  260. package/dist/server/src/controllers/validation/content-type.d.ts +2 -3
  261. package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
  262. package/dist/server/src/index.d.ts +0 -6
  263. package/dist/server/src/index.d.ts.map +1 -1
  264. package/dist/server/src/routes/admin.d.ts.map +1 -1
  265. package/dist/server/src/services/index.d.ts +0 -2
  266. package/dist/server/src/services/index.d.ts.map +1 -1
  267. package/dist/server/src/services/schema-builder/component-builder.d.ts +0 -1
  268. package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -1
  269. package/dist/server/src/services/schema-builder/content-type-builder.d.ts +3 -2
  270. package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
  271. package/dist/server/src/services/schema-builder/index.d.ts +0 -3
  272. package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
  273. package/dist/server/src/utils/index.d.ts +0 -2
  274. package/dist/server/src/utils/index.d.ts.map +1 -1
  275. package/dist/server/utils/index.js.map +1 -1
  276. package/dist/server/utils/index.mjs.map +1 -1
  277. package/package.json +6 -11
  278. package/dist/admin/components/AttributeRow.js +0 -342
  279. package/dist/admin/components/AttributeRow.js.map +0 -1
  280. package/dist/admin/components/AttributeRow.mjs +0 -339
  281. package/dist/admin/components/AttributeRow.mjs.map +0 -1
  282. package/dist/admin/components/ComponentRow.js +0 -42
  283. package/dist/admin/components/ComponentRow.js.map +0 -1
  284. package/dist/admin/components/ComponentRow.mjs +0 -40
  285. package/dist/admin/components/ComponentRow.mjs.map +0 -1
  286. package/dist/admin/components/DataManager/DataManagerContext.js +0 -9
  287. package/dist/admin/components/DataManager/DataManagerContext.js.map +0 -1
  288. package/dist/admin/components/DataManager/DataManagerContext.mjs +0 -7
  289. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +0 -1
  290. package/dist/admin/components/DataManager/DataManagerProvider.js +0 -344
  291. package/dist/admin/components/DataManager/DataManagerProvider.js.map +0 -1
  292. package/dist/admin/components/DataManager/DataManagerProvider.mjs +0 -323
  293. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +0 -1
  294. package/dist/admin/components/DataManager/reducer.js +0 -546
  295. package/dist/admin/components/DataManager/reducer.js.map +0 -1
  296. package/dist/admin/components/DataManager/reducer.mjs +0 -542
  297. package/dist/admin/components/DataManager/reducer.mjs.map +0 -1
  298. package/dist/admin/components/DataManager/undoRedo.js +0 -102
  299. package/dist/admin/components/DataManager/undoRedo.js.map +0 -1
  300. package/dist/admin/components/DataManager/undoRedo.mjs +0 -100
  301. package/dist/admin/components/DataManager/undoRedo.mjs.map +0 -1
  302. package/dist/admin/components/DataManager/useDataManager.js +0 -9
  303. package/dist/admin/components/DataManager/useDataManager.js.map +0 -1
  304. package/dist/admin/components/DataManager/useDataManager.mjs +0 -7
  305. package/dist/admin/components/DataManager/useDataManager.mjs.map +0 -1
  306. package/dist/admin/components/DataManager/useServerRestartWatcher.js +0 -35
  307. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +0 -1
  308. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +0 -33
  309. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +0 -1
  310. package/dist/admin/components/DataManager/utils/cleanData.js +0 -128
  311. package/dist/admin/components/DataManager/utils/cleanData.js.map +0 -1
  312. package/dist/admin/components/DataManager/utils/cleanData.mjs +0 -125
  313. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +0 -1
  314. package/dist/admin/components/DataManager/utils/formatSchemas.js +0 -21
  315. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +0 -1
  316. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +0 -18
  317. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +0 -1
  318. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +0 -34
  319. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +0 -1
  320. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs +0 -31
  321. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +0 -1
  322. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js +0 -45
  323. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +0 -1
  324. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs +0 -43
  325. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +0 -1
  326. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +0 -17
  327. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +0 -1
  328. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs +0 -15
  329. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +0 -1
  330. package/dist/admin/components/ExitPrompt.js +0 -50
  331. package/dist/admin/components/ExitPrompt.js.map +0 -1
  332. package/dist/admin/components/ExitPrompt.mjs +0 -48
  333. package/dist/admin/components/ExitPrompt.mjs.map +0 -1
  334. package/dist/admin/components/Footers.js +0 -95
  335. package/dist/admin/components/Footers.js.map +0 -1
  336. package/dist/admin/components/Footers.mjs +0 -92
  337. package/dist/admin/components/Footers.mjs.map +0 -1
  338. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +0 -28
  339. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +0 -1
  340. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs +0 -7
  341. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +0 -1
  342. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +0 -205
  343. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +0 -1
  344. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +0 -202
  345. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +0 -1
  346. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js +0 -9
  347. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +0 -1
  348. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs +0 -7
  349. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +0 -1
  350. package/dist/admin/components/Status.js +0 -73
  351. package/dist/admin/components/Status.js.map +0 -1
  352. package/dist/admin/components/Status.mjs +0 -70
  353. package/dist/admin/components/Status.mjs.map +0 -1
  354. package/dist/admin/pages/ListView/EmptyState.js +0 -38
  355. package/dist/admin/pages/ListView/EmptyState.js.map +0 -1
  356. package/dist/admin/pages/ListView/EmptyState.mjs +0 -36
  357. package/dist/admin/pages/ListView/EmptyState.mjs.map +0 -1
  358. package/dist/admin/src/components/AttributeRow.d.ts +0 -28
  359. package/dist/admin/src/components/ComponentRow.d.ts +0 -11
  360. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +0 -138
  361. package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +0 -6
  362. package/dist/admin/src/components/DataManager/reducer.d.ts +0 -278
  363. package/dist/admin/src/components/DataManager/undoRedo.d.ts +0 -23
  364. package/dist/admin/src/components/DataManager/useDataManager.d.ts +0 -1
  365. package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +0 -1
  366. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +0 -311
  367. package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +0 -3
  368. package/dist/admin/src/components/DataManager/utils/retrieveComponentsThatHaveComponents.d.ts +0 -12
  369. package/dist/admin/src/components/DataManager/utils/retrieveNestedComponents.d.ts +0 -8
  370. package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +0 -1
  371. package/dist/admin/src/components/ExitPrompt.d.ts +0 -1
  372. package/dist/admin/src/components/Footers.d.ts +0 -13
  373. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +0 -19
  374. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +0 -54
  375. package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +0 -1
  376. package/dist/admin/src/components/Status.d.ts +0 -6
  377. package/dist/admin/src/pages/ListView/EmptyState.d.ts +0 -1
  378. package/dist/server/controllers/schema.js +0 -55
  379. package/dist/server/controllers/schema.js.map +0 -1
  380. package/dist/server/controllers/schema.mjs +0 -53
  381. package/dist/server/controllers/schema.mjs.map +0 -1
  382. package/dist/server/controllers/validation/schema.js +0 -612
  383. package/dist/server/controllers/validation/schema.js.map +0 -1
  384. package/dist/server/controllers/validation/schema.mjs +0 -610
  385. package/dist/server/controllers/validation/schema.mjs.map +0 -1
  386. package/dist/server/services/schema.js +0 -246
  387. package/dist/server/services/schema.js.map +0 -1
  388. package/dist/server/services/schema.mjs +0 -242
  389. package/dist/server/services/schema.mjs.map +0 -1
  390. package/dist/server/src/controllers/schema.d.ts +0 -8
  391. package/dist/server/src/controllers/schema.d.ts.map +0 -1
  392. package/dist/server/src/controllers/validation/schema.d.ts +0 -80968
  393. package/dist/server/src/controllers/validation/schema.d.ts.map +0 -1
  394. package/dist/server/src/services/schema.d.ts +0 -2756
  395. package/dist/server/src/services/schema.d.ts.map +0 -1
@@ -4,8 +4,8 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactRedux = require('react-redux');
6
6
  var styledComponents = require('styled-components');
7
+ var useDataManager = require('../../../../hooks/useDataManager.js');
7
8
  var isAllowedContentTypesForRelations = require('../../../../utils/isAllowedContentTypesForRelations.js');
8
- var useDataManager = require('../../../DataManager/useDataManager.js');
9
9
  var reducer = require('../../../FormModal/reducer.js');
10
10
 
11
11
  const RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target })=>{
@@ -13,10 +13,9 @@ const RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target })
13
13
  const dispatch = reactRedux.useDispatch();
14
14
  // TODO: replace with an obj { relation: 'x', bidirctional: true|false }
15
15
  const allowedContentTypesForRelation = sortedContentTypesList.filter(isAllowedContentTypesForRelations.isAllowedContentTypesForRelations);
16
- const type = contentTypes[target];
17
- if (!type) {
18
- return null;
19
- }
16
+ const { plugin = null, schema: { displayName } = {
17
+ displayName: 'error'
18
+ } } = contentTypes?.[target] ?? {};
20
19
  const handleSelect = ({ uid, plugin, title, restrictRelationsTo })=>()=>{
21
20
  const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;
22
21
  dispatch(reducer.actions.onChangeRelationTarget({
@@ -35,7 +34,7 @@ const RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target })
35
34
  */ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Menu.Root, {
36
35
  children: [
37
36
  /*#__PURE__*/ jsxRuntime.jsx(MenuTrigger, {
38
- children: `${type.info.displayName} ${type.plugin ? `(from: ${type.plugin})` : ''}`
37
+ children: `${displayName} ${plugin ? `(from: ${plugin})` : ''}`
39
38
  }),
40
39
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Content, {
41
40
  zIndex: "popover",
@@ -1 +1 @@
1
- {"version":3,"file":"RelationTargetPicker.js","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { useDataManager } from '../../../DataManager/useDataManager';\nimport { actions } from '../../../FormModal/reducer';\n\nimport type { Internal, Schema } from '@strapi/types';\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: Internal.UID.ContentType;\n}\n\ntype SelectOpts = {\n uid: string;\n plugin?: string;\n title: string;\n restrictRelationsTo: Schema.Attribute.RelationKind.Any[] | null;\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 type = contentTypes[target];\n\n if (!type) {\n return null;\n }\n\n const handleSelect =\n ({ uid, plugin, title, restrictRelationsTo }: SelectOpts) =>\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>{`${type.info.displayName} ${type.plugin ? `(from: ${type.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"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","type","handleSelect","uid","plugin","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","info","displayName","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;;;MAqBaA,oBAAuB,GAAA,CAAC,EACnCC,qCAAqC,EACrCC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGC,6BAAAA,EAAAA;AACjD,IAAA,MAAMC,QAAWC,GAAAA,sBAAAA,EAAAA;;IAEjB,MAAMC,8BAAAA,GAAiCJ,sBAAuBK,CAAAA,MAAM,CAClEC,mEAAAA,CAAAA;IAGF,MAAMC,IAAAA,GAAOR,YAAY,CAACD,MAAO,CAAA;AAEjC,IAAA,IAAI,CAACS,IAAM,EAAA;QACT,OAAO,IAAA;AACT;IAEA,MAAMC,YAAAA,GACJ,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAEC,mBAAmB,EAAc,GACxD,IAAA;YACE,MAAMC,+BAAAA,GAAkCH,SAAS,CAAC,EAAEA,OAAO,CAAC,EAAEC,KAAM,CAAA,CAAC,GAAGA,KAAAA;YAExET,QACEY,CAAAA,eAAAA,CAAQC,sBAAsB,CAAC;gBAC7BjB,MAAQ,EAAA;oBACNkB,KAAOP,EAAAA,GAAAA;AACPZ,oBAAAA,qCAAAA;AACAgB,oBAAAA,+BAAAA;oBACAI,iCAAmCL,EAAAA;AACrC;AACF,aAAA,CAAA,CAAA;AAEJ,SAAA;AAEF;;;;MAKA,qBACEM,eAACC,CAAAA,iBAAAA,CAAKC,IAAI,EAAA;;0BACRC,cAACC,CAAAA,WAAAA,EAAAA;0BAAa,CAAC,EAAEf,KAAKgB,IAAI,CAACC,WAAW,CAAC,CAAC,EAAEjB,IAAKG,CAAAA,MAAM,GAAG,CAAC,OAAO,EAAEH,IAAKG,CAAAA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAA,CAAG;;AACtF,0BAAAW,cAAA,CAACF,kBAAKM,OAAO,EAAA;gBAACC,MAAO,EAAA,SAAA;AAClBtB,gBAAAA,QAAAA,EAAAA,8BAAAA,CAA+BuB,GAAG,CAAC,CAAC,EAAElB,GAAG,EAAEE,KAAK,EAAEC,mBAAmB,EAAEF,MAAM,EAAE,iBAC9EQ,eAAA,CAACC,kBAAKS,IAAI,EAAA;AAAWC,wBAAAA,QAAAA,EAAUrB,YAAa,CAAA;AAAEC,4BAAAA,GAAAA;AAAKC,4BAAAA,MAAAA;AAAQC,4BAAAA,KAAAA;AAAOC,4BAAAA;AAAoB,yBAAA,CAAA;;AACnFD,4BAAAA,KAAAA;AAAM,4BAAA,GAAA;4BACND,MAAU,kBAAAQ,eAAA,CAAAY,mBAAA,EAAA;;AAAE,oCAAA,SAAA;AAAQpB,oCAAAA,MAAAA;AAAO,oCAAA;;;;AAFdD,qBAAAA,EAAAA,GAAAA,CAAAA;;;;AAQ1B;AAEA,MAAMa,WAAcS,GAAAA,uBAAAA,CAAOZ,iBAAKa,CAAAA,OAAO,CAAC;;;;;;;AAOxC,CAAC;;;;"}
1
+ {"version":3,"file":"RelationTargetPicker.js","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["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"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","plugin","schema","displayName","handleSelect","uid","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;;;MAaaA,oBAAuB,GAAA,CAAC,EACnCC,qCAAqC,EACrCC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGC,6BAAAA,EAAAA;AACjD,IAAA,MAAMC,QAAWC,GAAAA,sBAAAA,EAAAA;;IAEjB,MAAMC,8BAAAA,GAAiCJ,sBAAuBK,CAAAA,MAAM,CAClEC,mEAAAA,CAAAA;IAGF,MAAM,EAAEC,SAAS,IAAI,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAG;QAAEA,WAAa,EAAA;AAAQ,KAAC,EAAE,GACzEV,YAAAA,GAAeD,MAAAA,CAAO,IAAI,EAAC;IAE7B,MAAMY,YAAAA,GACJ,CAAC,EACCC,GAAG,EACHJ,MAAM,EACNK,KAAK,EACLC,mBAAmB,EAMpB,GACD,IAAA;YACE,MAAMC,+BAAAA,GAAkCP,SAAS,CAAC,EAAEA,OAAO,CAAC,EAAEK,KAAM,CAAA,CAAC,GAAGA,KAAAA;YAExEV,QACEa,CAAAA,eAAAA,CAAQC,sBAAsB,CAAC;gBAC7BlB,MAAQ,EAAA;oBACNmB,KAAON,EAAAA,GAAAA;AACPd,oBAAAA,qCAAAA;AACAiB,oBAAAA,+BAAAA;oBACAI,iCAAmCL,EAAAA;AACrC;AACF,aAAA,CAAA,CAAA;AAEJ,SAAA;AAEF;;;;MAKA,qBACEM,eAACC,CAAAA,iBAAAA,CAAKC,IAAI,EAAA;;0BACRC,cAACC,CAAAA,WAAAA,EAAAA;AAAa,gBAAA,QAAA,EAAA,CAAC,EAAEd,WAAAA,CAAY,CAAC,EAAEF,MAAS,GAAA,CAAC,OAAO,EAAEA,MAAO,CAAA,CAAC,CAAC,GAAG,GAAG;;AAClE,0BAAAe,cAAA,CAACF,kBAAKI,OAAO,EAAA;gBAACC,MAAO,EAAA,SAAA;AAClBrB,gBAAAA,QAAAA,EAAAA,8BAAAA,CAA+BsB,GAAG,CAAC,CAAC,EAAEf,GAAG,EAAEC,KAAK,EAAEC,mBAAmB,EAAEN,MAAM,EAAE,iBAC9EY,eAAA,CAACC,kBAAKO,IAAI,EAAA;AAAWC,wBAAAA,QAAAA,EAAUlB,YAAa,CAAA;AAAEC,4BAAAA,GAAAA;AAAKJ,4BAAAA,MAAAA;AAAQK,4BAAAA,KAAAA;AAAOC,4BAAAA;AAAoB,yBAAA,CAAA;;AACnFD,4BAAAA,KAAAA;AAAM,4BAAA,GAAA;4BACNL,MAAU,kBAAAY,eAAA,CAAAU,mBAAA,EAAA;;AAAE,oCAAA,SAAA;AAAQtB,oCAAAA,MAAAA;AAAO,oCAAA;;;;AAFdI,qBAAAA,EAAAA,GAAAA,CAAAA;;;;AAQ1B;AAEA,MAAMY,WAAcO,GAAAA,uBAAAA,CAAOV,iBAAKW,CAAAA,OAAO,CAAC;;;;;;;AAOxC,CAAC;;;;"}
@@ -2,8 +2,8 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { Menu } from '@strapi/design-system';
3
3
  import { useDispatch } from 'react-redux';
4
4
  import { styled } from 'styled-components';
5
+ import { useDataManager } from '../../../../hooks/useDataManager.mjs';
5
6
  import { isAllowedContentTypesForRelations } from '../../../../utils/isAllowedContentTypesForRelations.mjs';
6
- import { useDataManager } from '../../../DataManager/useDataManager.mjs';
7
7
  import { actions } from '../../../FormModal/reducer.mjs';
8
8
 
9
9
  const RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target })=>{
@@ -11,10 +11,9 @@ const RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target })
11
11
  const dispatch = useDispatch();
12
12
  // TODO: replace with an obj { relation: 'x', bidirctional: true|false }
13
13
  const allowedContentTypesForRelation = sortedContentTypesList.filter(isAllowedContentTypesForRelations);
14
- const type = contentTypes[target];
15
- if (!type) {
16
- return null;
17
- }
14
+ const { plugin = null, schema: { displayName } = {
15
+ displayName: 'error'
16
+ } } = contentTypes?.[target] ?? {};
18
17
  const handleSelect = ({ uid, plugin, title, restrictRelationsTo })=>()=>{
19
18
  const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;
20
19
  dispatch(actions.onChangeRelationTarget({
@@ -33,7 +32,7 @@ const RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target })
33
32
  */ return /*#__PURE__*/ jsxs(Menu.Root, {
34
33
  children: [
35
34
  /*#__PURE__*/ jsx(MenuTrigger, {
36
- children: `${type.info.displayName} ${type.plugin ? `(from: ${type.plugin})` : ''}`
35
+ children: `${displayName} ${plugin ? `(from: ${plugin})` : ''}`
37
36
  }),
38
37
  /*#__PURE__*/ jsx(Menu.Content, {
39
38
  zIndex: "popover",
@@ -1 +1 @@
1
- {"version":3,"file":"RelationTargetPicker.mjs","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { useDataManager } from '../../../DataManager/useDataManager';\nimport { actions } from '../../../FormModal/reducer';\n\nimport type { Internal, Schema } from '@strapi/types';\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: Internal.UID.ContentType;\n}\n\ntype SelectOpts = {\n uid: string;\n plugin?: string;\n title: string;\n restrictRelationsTo: Schema.Attribute.RelationKind.Any[] | null;\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 type = contentTypes[target];\n\n if (!type) {\n return null;\n }\n\n const handleSelect =\n ({ uid, plugin, title, restrictRelationsTo }: SelectOpts) =>\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>{`${type.info.displayName} ${type.plugin ? `(from: ${type.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"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","type","handleSelect","uid","plugin","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","info","displayName","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;MAqBaA,oBAAuB,GAAA,CAAC,EACnCC,qCAAqC,EACrCC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGC,cAAAA,EAAAA;AACjD,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;;IAEjB,MAAMC,8BAAAA,GAAiCJ,sBAAuBK,CAAAA,MAAM,CAClEC,iCAAAA,CAAAA;IAGF,MAAMC,IAAAA,GAAOR,YAAY,CAACD,MAAO,CAAA;AAEjC,IAAA,IAAI,CAACS,IAAM,EAAA;QACT,OAAO,IAAA;AACT;IAEA,MAAMC,YAAAA,GACJ,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,EAAEC,mBAAmB,EAAc,GACxD,IAAA;YACE,MAAMC,+BAAAA,GAAkCH,SAAS,CAAC,EAAEA,OAAO,CAAC,EAAEC,KAAM,CAAA,CAAC,GAAGA,KAAAA;YAExET,QACEY,CAAAA,OAAAA,CAAQC,sBAAsB,CAAC;gBAC7BjB,MAAQ,EAAA;oBACNkB,KAAOP,EAAAA,GAAAA;AACPZ,oBAAAA,qCAAAA;AACAgB,oBAAAA,+BAAAA;oBACAI,iCAAmCL,EAAAA;AACrC;AACF,aAAA,CAAA,CAAA;AAEJ,SAAA;AAEF;;;;MAKA,qBACEM,IAACC,CAAAA,IAAAA,CAAKC,IAAI,EAAA;;0BACRC,GAACC,CAAAA,WAAAA,EAAAA;0BAAa,CAAC,EAAEf,KAAKgB,IAAI,CAACC,WAAW,CAAC,CAAC,EAAEjB,IAAKG,CAAAA,MAAM,GAAG,CAAC,OAAO,EAAEH,IAAKG,CAAAA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAA,CAAG;;AACtF,0BAAAW,GAAA,CAACF,KAAKM,OAAO,EAAA;gBAACC,MAAO,EAAA,SAAA;AAClBtB,gBAAAA,QAAAA,EAAAA,8BAAAA,CAA+BuB,GAAG,CAAC,CAAC,EAAElB,GAAG,EAAEE,KAAK,EAAEC,mBAAmB,EAAEF,MAAM,EAAE,iBAC9EQ,IAAA,CAACC,KAAKS,IAAI,EAAA;AAAWC,wBAAAA,QAAAA,EAAUrB,YAAa,CAAA;AAAEC,4BAAAA,GAAAA;AAAKC,4BAAAA,MAAAA;AAAQC,4BAAAA,KAAAA;AAAOC,4BAAAA;AAAoB,yBAAA,CAAA;;AACnFD,4BAAAA,KAAAA;AAAM,4BAAA,GAAA;4BACND,MAAU,kBAAAQ,IAAA,CAAAY,QAAA,EAAA;;AAAE,oCAAA,SAAA;AAAQpB,oCAAAA,MAAAA;AAAO,oCAAA;;;;AAFdD,qBAAAA,EAAAA,GAAAA,CAAAA;;;;AAQ1B;AAEA,MAAMa,WAAcS,GAAAA,MAAAA,CAAOZ,IAAKa,CAAAA,OAAO,CAAC;;;;;;;AAOxC,CAAC;;;;"}
1
+ {"version":3,"file":"RelationTargetPicker.mjs","sources":["../../../../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx"],"sourcesContent":["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"],"names":["RelationTargetPicker","oneThatIsCreatingARelationWithAnother","target","contentTypes","sortedContentTypesList","useDataManager","dispatch","useDispatch","allowedContentTypesForRelation","filter","isAllowedContentTypesForRelations","plugin","schema","displayName","handleSelect","uid","title","restrictRelationsTo","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","value","targetContentTypeAllowedRelations","_jsxs","Menu","Root","_jsx","MenuTrigger","Content","zIndex","map","Item","onSelect","_Fragment","styled","Trigger"],"mappings":";;;;;;;;MAaaA,oBAAuB,GAAA,CAAC,EACnCC,qCAAqC,EACrCC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGC,cAAAA,EAAAA;AACjD,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;;IAEjB,MAAMC,8BAAAA,GAAiCJ,sBAAuBK,CAAAA,MAAM,CAClEC,iCAAAA,CAAAA;IAGF,MAAM,EAAEC,SAAS,IAAI,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAG;QAAEA,WAAa,EAAA;AAAQ,KAAC,EAAE,GACzEV,YAAAA,GAAeD,MAAAA,CAAO,IAAI,EAAC;IAE7B,MAAMY,YAAAA,GACJ,CAAC,EACCC,GAAG,EACHJ,MAAM,EACNK,KAAK,EACLC,mBAAmB,EAMpB,GACD,IAAA;YACE,MAAMC,+BAAAA,GAAkCP,SAAS,CAAC,EAAEA,OAAO,CAAC,EAAEK,KAAM,CAAA,CAAC,GAAGA,KAAAA;YAExEV,QACEa,CAAAA,OAAAA,CAAQC,sBAAsB,CAAC;gBAC7BlB,MAAQ,EAAA;oBACNmB,KAAON,EAAAA,GAAAA;AACPd,oBAAAA,qCAAAA;AACAiB,oBAAAA,+BAAAA;oBACAI,iCAAmCL,EAAAA;AACrC;AACF,aAAA,CAAA,CAAA;AAEJ,SAAA;AAEF;;;;MAKA,qBACEM,IAACC,CAAAA,IAAAA,CAAKC,IAAI,EAAA;;0BACRC,GAACC,CAAAA,WAAAA,EAAAA;AAAa,gBAAA,QAAA,EAAA,CAAC,EAAEd,WAAAA,CAAY,CAAC,EAAEF,MAAS,GAAA,CAAC,OAAO,EAAEA,MAAO,CAAA,CAAC,CAAC,GAAG,GAAG;;AAClE,0BAAAe,GAAA,CAACF,KAAKI,OAAO,EAAA;gBAACC,MAAO,EAAA,SAAA;AAClBrB,gBAAAA,QAAAA,EAAAA,8BAAAA,CAA+BsB,GAAG,CAAC,CAAC,EAAEf,GAAG,EAAEC,KAAK,EAAEC,mBAAmB,EAAEN,MAAM,EAAE,iBAC9EY,IAAA,CAACC,KAAKO,IAAI,EAAA;AAAWC,wBAAAA,QAAAA,EAAUlB,YAAa,CAAA;AAAEC,4BAAAA,GAAAA;AAAKJ,4BAAAA,MAAAA;AAAQK,4BAAAA,KAAAA;AAAOC,4BAAAA;AAAoB,yBAAA,CAAA;;AACnFD,4BAAAA,KAAAA;AAAM,4BAAA,GAAA;4BACNL,MAAU,kBAAAY,IAAA,CAAAU,QAAA,EAAA;;AAAE,oCAAA,SAAA;AAAQtB,oCAAAA,MAAAA;AAAO,oCAAA;;;;AAFdI,qBAAAA,EAAAA,GAAAA,CAAAA;;;;AAQ1B;AAEA,MAAMY,WAAcO,GAAAA,MAAAA,CAAOV,IAAKW,CAAAA,OAAO,CAAC;;;;;;;AAOxC,CAAC;;;;"}
@@ -8,8 +8,8 @@ var truncate = require('lodash/truncate');
8
8
  var pluralize = require('pluralize');
9
9
  var reactIntl = require('react-intl');
10
10
  var reactRedux = require('react-redux');
11
+ var useDataManager = require('../../../hooks/useDataManager.js');
11
12
  var getTrad = require('../../../utils/getTrad.js');
12
- var useDataManager = require('../../DataManager/useDataManager.js');
13
13
  var reducer = require('../../FormModal/reducer.js');
14
14
  var Components = require('./Components.js');
15
15
 
@@ -21,31 +21,32 @@ const relations = {
21
21
  manyToMany: Icons.ManyToMany,
22
22
  manyWay: Icons.ManyWays
23
23
  };
24
- const ctRelations = [
25
- 'oneWay',
26
- 'oneToOne',
27
- 'oneToMany',
28
- 'manyToOne',
29
- 'manyToMany',
30
- 'manyWay'
31
- ];
32
- const componentRelations = [
33
- 'oneWay',
34
- 'manyWay'
35
- ];
36
- const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWithAnother, relationType, target, targetUid })=>{
24
+ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWithAnother, relationType, target })=>{
37
25
  const dispatch = reactRedux.useDispatch();
38
26
  const { formatMessage } = reactIntl.useIntl();
39
- const { contentTypes } = useDataManager.useDataManager();
40
- const dataType = naturePickerType === 'component' ? 'component' : get(contentTypes, [
41
- targetUid,
27
+ const { contentTypes, modifiedData } = useDataManager.useDataManager();
28
+ const ctRelations = [
29
+ 'oneWay',
30
+ 'oneToOne',
31
+ 'oneToMany',
32
+ 'manyToOne',
33
+ 'manyToMany',
34
+ 'manyWay'
35
+ ];
36
+ const componentRelations = [
37
+ 'oneWay',
38
+ 'manyWay'
39
+ ];
40
+ const dataType = naturePickerType === 'contentType' ? get(modifiedData, [
41
+ naturePickerType,
42
+ 'schema',
42
43
  'kind'
43
- ], '');
44
+ ], '') : naturePickerType;
44
45
  const relationsType = dataType === 'collectionType' ? ctRelations : componentRelations;
45
46
  const areDisplayedNamesInverted = relationType === 'manyToOne';
46
47
  const targetLabel = get(contentTypes, [
47
48
  target,
48
- 'info',
49
+ 'schema',
49
50
  'displayName'
50
51
  ], 'unknown');
51
52
  const leftTarget = areDisplayedNamesInverted ? targetLabel : oneThatIsCreatingARelationWithAnother;
@@ -53,6 +54,7 @@ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWith
53
54
  const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);
54
55
  const restrictedRelations = get(contentTypes, [
55
56
  target,
57
+ 'schema',
56
58
  'restrictRelationsTo'
57
59
  ], null);
58
60
  const rightDisplayedValue = pluralize(rightTarget, [
@@ -1 +1 @@
1
- {"version":3,"file":"RelationNaturePicker.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["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 { getTrad } from '../../../utils/getTrad';\nimport { useDataManager } from '../../DataManager/useDataManager';\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 targetUid: string;\n}\n\nconst ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\nconst componentRelations = ['oneWay', 'manyWay'];\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n targetUid,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes } = useDataManager();\n\n const dataType =\n naturePickerType === 'component' ? 'component' : get(contentTypes, [targetUid, 'kind'], '');\n\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'info', '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, '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 aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\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"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","ctRelations","componentRelations","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","targetUid","dispatch","useDispatch","formatMessage","useIntl","contentTypes","useDataManager","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"RelationNaturePicker.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["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 aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\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"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","dispatch","useDispatch","formatMessage","useIntl","contentTypes","modifiedData","useDataManager","ctRelations","componentRelations","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":"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"}
@@ -6,8 +6,8 @@ import truncate from 'lodash/truncate';
6
6
  import pluralize from 'pluralize';
7
7
  import { useIntl } from 'react-intl';
8
8
  import { useDispatch } from 'react-redux';
9
+ import { useDataManager } from '../../../hooks/useDataManager.mjs';
9
10
  import { getTrad } from '../../../utils/getTrad.mjs';
10
- import { useDataManager } from '../../DataManager/useDataManager.mjs';
11
11
  import { actions } from '../../FormModal/reducer.mjs';
12
12
  import { Wrapper, IconWrapper, InfosWrapper } from './Components.mjs';
13
13
 
@@ -19,31 +19,32 @@ const relations = {
19
19
  manyToMany: ManyToMany,
20
20
  manyWay: ManyWays
21
21
  };
22
- const ctRelations = [
23
- 'oneWay',
24
- 'oneToOne',
25
- 'oneToMany',
26
- 'manyToOne',
27
- 'manyToMany',
28
- 'manyWay'
29
- ];
30
- const componentRelations = [
31
- 'oneWay',
32
- 'manyWay'
33
- ];
34
- const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWithAnother, relationType, target, targetUid })=>{
22
+ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWithAnother, relationType, target })=>{
35
23
  const dispatch = useDispatch();
36
24
  const { formatMessage } = useIntl();
37
- const { contentTypes } = useDataManager();
38
- const dataType = naturePickerType === 'component' ? 'component' : get(contentTypes, [
39
- targetUid,
25
+ const { contentTypes, modifiedData } = useDataManager();
26
+ const ctRelations = [
27
+ 'oneWay',
28
+ 'oneToOne',
29
+ 'oneToMany',
30
+ 'manyToOne',
31
+ 'manyToMany',
32
+ 'manyWay'
33
+ ];
34
+ const componentRelations = [
35
+ 'oneWay',
36
+ 'manyWay'
37
+ ];
38
+ const dataType = naturePickerType === 'contentType' ? get(modifiedData, [
39
+ naturePickerType,
40
+ 'schema',
40
41
  'kind'
41
- ], '');
42
+ ], '') : naturePickerType;
42
43
  const relationsType = dataType === 'collectionType' ? ctRelations : componentRelations;
43
44
  const areDisplayedNamesInverted = relationType === 'manyToOne';
44
45
  const targetLabel = get(contentTypes, [
45
46
  target,
46
- 'info',
47
+ 'schema',
47
48
  'displayName'
48
49
  ], 'unknown');
49
50
  const leftTarget = areDisplayedNamesInverted ? targetLabel : oneThatIsCreatingARelationWithAnother;
@@ -51,6 +52,7 @@ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWith
51
52
  const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);
52
53
  const restrictedRelations = get(contentTypes, [
53
54
  target,
55
+ 'schema',
54
56
  'restrictRelationsTo'
55
57
  ], null);
56
58
  const rightDisplayedValue = pluralize(rightTarget, [
@@ -1 +1 @@
1
- {"version":3,"file":"RelationNaturePicker.mjs","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["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 { getTrad } from '../../../utils/getTrad';\nimport { useDataManager } from '../../DataManager/useDataManager';\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 targetUid: string;\n}\n\nconst ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\nconst componentRelations = ['oneWay', 'manyWay'];\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n targetUid,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes } = useDataManager();\n\n const dataType =\n naturePickerType === 'component' ? 'component' : get(contentTypes, [targetUid, 'kind'], '');\n\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'info', '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, '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 aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\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"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","ctRelations","componentRelations","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","targetUid","dispatch","useDispatch","formatMessage","useIntl","contentTypes","useDataManager","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":"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"}
1
+ {"version":3,"file":"RelationNaturePicker.mjs","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["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 aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\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"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","dispatch","useDispatch","formatMessage","useIntl","contentTypes","modifiedData","useDataManager","ctRelations","componentRelations","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":";;;;;;;;;;;;;AAqBA,MAAMA,SAAY,GAAA;IAChBC,MAAQC,EAAAA,MAAAA;IACRC,QAAUC,EAAAA,QAAAA;IACVC,SAAWC,EAAAA,SAAAA;IACXC,SAAWC,EAAAA,SAAAA;IACXC,UAAYC,EAAAA,UAAAA;IACZC,OAASC,EAAAA;AACX,CAAA;AAWO,MAAMC,oBAAuB,GAAA,CAAC,EACnCC,gBAAgB,EAChBC,qCAAqC,EACrCC,YAAY,EACZC,MAAM,EACoB,GAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAM,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGC,cAAAA,EAAAA;AACvC,IAAA,MAAMC,WAAc,GAAA;AAAC,QAAA,QAAA;AAAU,QAAA,UAAA;AAAY,QAAA,WAAA;AAAa,QAAA,WAAA;AAAa,QAAA,YAAA;AAAc,QAAA;AAAU,KAAA;AAC7F,IAAA,MAAMC,kBAAqB,GAAA;AAAC,QAAA,QAAA;AAAU,QAAA;AAAU,KAAA;AAChD,IAAA,MAAMC,QACJb,GAAAA,gBAAAA,KAAqB,aACjBc,GAAAA,GAAAA,CAAIL,YAAc,EAAA;AAACT,QAAAA,gBAAAA;AAAkB,QAAA,QAAA;AAAU,QAAA;AAAO,KAAA,EAAE,EACxDA,CAAAA,GAAAA,gBAAAA;IACN,MAAMe,aAAAA,GACJF,QAAa,KAAA,gBAAA,GAAmBF,WAAcC,GAAAA,kBAAAA;AAGhD,IAAA,MAAMI,4BAA4Bd,YAAiB,KAAA,WAAA;IACnD,MAAMe,WAAAA,GAAcH,IAAIN,YAAc,EAAA;AAACL,QAAAA,MAAAA;AAAQ,QAAA,QAAA;AAAU,QAAA;KAAc,EAAE,SAAA,CAAA;IACzE,MAAMe,UAAAA,GAAaF,4BACfC,WACAhB,GAAAA,qCAAAA;IACJ,MAAMkB,WAAAA,GAAcH,4BAChBf,qCACAgB,GAAAA,WAAAA;AACJ,IAAA,MAAMG,kBAAqBC,GAAAA,SAAAA,CAAUH,UAAYhB,EAAAA,YAAAA,KAAiB,eAAe,CAAI,GAAA,CAAA,CAAA;IACrF,MAAMoB,mBAAAA,GAAsBR,IAAIN,YAAc,EAAA;AAACL,QAAAA,MAAAA;AAAQ,QAAA,QAAA;AAAU,QAAA;KAAsB,EAAE,IAAA,CAAA;IAEzF,MAAMoB,mBAAAA,GAAsBF,UAC1BF,WACA,EAAA;AAAC,QAAA,YAAA;AAAc,QAAA,WAAA;AAAa,QAAA,WAAA;AAAa,QAAA;KAAU,CAACK,QAAQ,CAACtB,YAAAA,CAAAA,GAAgB,CAAI,GAAA,CAAA,CAAA;AAGnF,IAAA,IAAI,CAACA,YAAc,EAAA;QACjB,OAAO,IAAA;AACT;AAEA,IAAA,qBACEuB,IAACC,CAAAA,IAAAA,EAAAA;QAAKC,KAAO,EAAA;YAAEC,IAAM,EAAA;AAAE,SAAA;;0BACrBC,GAACC,CAAAA,OAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACH,CAAAA,IAAAA,EAAAA;oBAAKK,WAAa,EAAA,CAAA;oBAAGC,YAAc,EAAA,CAAA;oBAAGC,UAAY,EAAA,CAAA;oBAAGC,cAAe,EAAA,QAAA;AACnE,oBAAA,QAAA,gBAAAL,GAACM,CAAAA,iBAAAA,EAAAA;wBAAkBC,OAAQ,EAAA,QAAA;AACzB,wBAAA,QAAA,gBAAAP,GAACH,CAAAA,IAAAA,EAAAA;4BAAKW,GAAK,EAAA,CAAA;sCACRtB,aAAcuB,CAAAA,GAAG,CAAC,CAACC,QAAAA,GAAAA;gCAClB,MAAMC,KAAAA,GAAQtD,SAAS,CAACqD,QAAS,CAAA;AACjC,gCAAA,MAAME,SACJnB,GAAAA,mBAAAA,KAAwB,IAAQA,IAAAA,mBAAAA,CAAoBE,QAAQ,CAACe,QAAAA,CAAAA;AAE/D,gCAAA,qBACEV,GAACa,CAAAA,WAAAA,EAAAA;oCACCC,GAAI,EAAA,QAAA;AACJC,oCAAAA,WAAAA,EAAa1C,YAAiBqC,KAAAA,QAAAA;AAC9BM,oCAAAA,QAAAA,EAAU,CAACJ,SAAAA;oCAEXK,OAAS,EAAA,IAAA;AACP,wCAAA,IAAIL,SAAW,EAAA;4CACbrC,QACE2C,CAAAA,OAAAA,CAAQC,oBAAoB,CAAC;gDAC3B7C,MAAQ,EAAA;AACNF,oDAAAA,qCAAAA;oDACAgD,KAAOV,EAAAA;AACT;AACF,6CAAA,CAAA,CAAA;AAEJ;AACF,qCAAA;oCACAW,OAAS,EAAA,CAAA;oCACTC,IAAK,EAAA,QAAA;AACLC,oCAAAA,YAAAA,EAAY9C,aAAc,CAAA;AAAE+C,wCAAAA,EAAAA,EAAIC,OAAQ,CAAA,CAAC,SAAS,EAAEf,SAAS,CAAC;AAAE,qCAAA,CAAA;AAChEgB,oCAAAA,cAAAA,EAAcrD,YAAiBqC,KAAAA,QAAAA;oCAC/BiB,oBAAoBjB,EAAAA,QAAAA;AAEpB,oCAAA,QAAA,gBAAAV,GAACW,CAAAA,KAAAA,EAAAA;wCAAqBiB,aAAY,EAAA;AAAtBlB,qCAAAA,EAAAA,QAAAA;AAnBPA,iCAAAA,EAAAA,QAAAA,CAAAA;AAsBX,6BAAA;;;;;0BAKRd,IAACiC,CAAAA,YAAAA,EAAAA;gBAAaxB,cAAe,EAAA,QAAA;;kCAC3BT,IAACkC,CAAAA,UAAAA,EAAAA;;AAAYC,4BAAAA,QAAAA,CAASxC,kBAAoB,EAAA;gCAAEyC,MAAQ,EAAA;AAAG,6BAAA,CAAA;AAAG,4BAAA;;;kCAC1DpC,IAACkC,CAAAA,UAAAA,EAAAA;wBAAWG,SAAU,EAAA,YAAA;;4BACnBxD,aAAc,CAAA;AAAE+C,gCAAAA,EAAAA,EAAIC,OAAQ,CAAA,CAAC,SAAS,EAAEpD,aAAa,CAAC;AAAE,6BAAA,CAAA;AAAG,4BAAA;;;kCAE9D2B,GAAC8B,CAAAA,UAAAA,EAAAA;AAAYC,wBAAAA,QAAAA,EAAAA,QAAAA,CAASrC,mBAAqB,EAAA;4BAAEsC,MAAQ,EAAA;AAAG,yBAAA;;;;;;AAIhE;;;;"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var reactIntl = require('react-intl');
7
- var useDataManager = require('./DataManager/useDataManager.js');
7
+ var useDataManager = require('../hooks/useDataManager.js');
8
8
 
9
9
  const SelectCategory = ({ error = null, intlLabel, name, onChange, value = undefined, isCreating, dynamicZoneTarget })=>{
10
10
  const { formatMessage } = reactIntl.useIntl();
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCategory.js","sources":["../../../admin/src/components/SelectCategory.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { ComboboxOption, Combobox, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from './DataManager/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"],"names":["SelectCategory","error","intlLabel","name","onChange","value","undefined","isCreating","dynamicZoneTarget","formatMessage","useIntl","allComponentsCategories","useDataManager","categories","setCategories","useState","errorMessage","id","defaultMessage","label","handleChange","target","type","handleCreateOption","prev","_jsxs","Field","Root","_jsx","Label","Combobox","disabled","onCreateOption","creatable","map","category","ComboboxOption","Error"],"mappings":";;;;;;;;MAqBaA,cAAiB,GAAA,CAAC,EAC7BC,KAAQ,GAAA,IAAI,EACZC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,KAAQC,GAAAA,SAAS,EACjBC,UAAU,EACVC,iBAAiB,EACG,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,uBAAuB,EAAE,GAAGC,6BAAAA,EAAAA;AACpC,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAc,CAAA,GAAGC,cAASJ,CAAAA,uBAAAA,CAAAA;IAE7C,MAAMK,YAAAA,GAAef,QAAQQ,aAAc,CAAA;QAAEQ,EAAIhB,EAAAA,KAAAA;QAAOiB,cAAgBjB,EAAAA;KAAW,CAAA,GAAA,EAAA;AACnF,IAAA,MAAMkB,QAAQV,aAAcP,CAAAA,SAAAA,CAAAA;AAE5B,IAAA,MAAMkB,eAAe,CAACf,KAAAA,GAAAA;QACpBD,QAAS,CAAA;YAAEiB,MAAQ,EAAA;AAAElB,gBAAAA,IAAAA;AAAME,gBAAAA,KAAAA;gBAAOiB,IAAM,EAAA;AAAkB;AAAE,SAAA,CAAA;AAC9D,KAAA;AAEA,IAAA,MAAMC,qBAAqB,CAAClB,KAAAA,GAAAA;AAC1BS,QAAAA,aAAAA,CAAc,CAACU,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAMnB,gBAAAA;AAAM,aAAA,CAAA;QACxCe,YAAaf,CAAAA,KAAAA,CAAAA;AACf,KAAA;IAEA,qBACEoB,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAAC1B,KAAOe,EAAAA,YAAAA;QAAcb,IAAMA,EAAAA,IAAAA;;AACrC,0BAAAyB,cAAA,CAACF,mBAAMG,KAAK,EAAA;AAAEV,gBAAAA,QAAAA,EAAAA;;0BACdS,cAACE,CAAAA,qBAAAA,EAAAA;;;gBAGCC,QAAU,EAAA,CAACxB,cAAc,CAACC,iBAAAA;gBAC1BJ,QAAUgB,EAAAA,YAAAA;gBACVY,cAAgBT,EAAAA,kBAAAA;gBAChBlB,KAAOA,EAAAA,KAAAA;gBACP4B,SAAS,EAAA,IAAA;AAERpB,gBAAAA,QAAAA,EAAAA,UAAAA,CAAWqB,GAAG,CAAC,CAACC,QAAAA,iBACfP,cAACQ,CAAAA,2BAAAA,EAAAA;wBAA8B/B,KAAO8B,EAAAA,QAAAA;AACnCA,wBAAAA,QAAAA,EAAAA;AADkBA,qBAAAA,EAAAA,QAAAA,CAAAA;;AAKzB,0BAAAP,cAAA,CAACF,mBAAMW,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
1
+ {"version":3,"file":"SelectCategory.js","sources":["../../../admin/src/components/SelectCategory.tsx"],"sourcesContent":["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"],"names":["SelectCategory","error","intlLabel","name","onChange","value","undefined","isCreating","dynamicZoneTarget","formatMessage","useIntl","allComponentsCategories","useDataManager","categories","setCategories","useState","errorMessage","id","defaultMessage","label","handleChange","target","type","handleCreateOption","prev","_jsxs","Field","Root","_jsx","Label","Combobox","disabled","onCreateOption","creatable","map","category","ComboboxOption","Error"],"mappings":";;;;;;;;MAqBaA,cAAiB,GAAA,CAAC,EAC7BC,KAAQ,GAAA,IAAI,EACZC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,KAAQC,GAAAA,SAAS,EACjBC,UAAU,EACVC,iBAAiB,EACG,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,uBAAuB,EAAE,GAAGC,6BAAAA,EAAAA;AACpC,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAc,CAAA,GAAGC,cAASJ,CAAAA,uBAAAA,CAAAA;IAE7C,MAAMK,YAAAA,GAAef,QAAQQ,aAAc,CAAA;QAAEQ,EAAIhB,EAAAA,KAAAA;QAAOiB,cAAgBjB,EAAAA;KAAW,CAAA,GAAA,EAAA;AACnF,IAAA,MAAMkB,QAAQV,aAAcP,CAAAA,SAAAA,CAAAA;AAE5B,IAAA,MAAMkB,eAAe,CAACf,KAAAA,GAAAA;QACpBD,QAAS,CAAA;YAAEiB,MAAQ,EAAA;AAAElB,gBAAAA,IAAAA;AAAME,gBAAAA,KAAAA;gBAAOiB,IAAM,EAAA;AAAkB;AAAE,SAAA,CAAA;AAC9D,KAAA;AAEA,IAAA,MAAMC,qBAAqB,CAAClB,KAAAA,GAAAA;AAC1BS,QAAAA,aAAAA,CAAc,CAACU,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAMnB,gBAAAA;AAAM,aAAA,CAAA;QACxCe,YAAaf,CAAAA,KAAAA,CAAAA;AACf,KAAA;IAEA,qBACEoB,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAAC1B,KAAOe,EAAAA,YAAAA;QAAcb,IAAMA,EAAAA,IAAAA;;AACrC,0BAAAyB,cAAA,CAACF,mBAAMG,KAAK,EAAA;AAAEV,gBAAAA,QAAAA,EAAAA;;0BACdS,cAACE,CAAAA,qBAAAA,EAAAA;;;gBAGCC,QAAU,EAAA,CAACxB,cAAc,CAACC,iBAAAA;gBAC1BJ,QAAUgB,EAAAA,YAAAA;gBACVY,cAAgBT,EAAAA,kBAAAA;gBAChBlB,KAAOA,EAAAA,KAAAA;gBACP4B,SAAS,EAAA,IAAA;AAERpB,gBAAAA,QAAAA,EAAAA,UAAAA,CAAWqB,GAAG,CAAC,CAACC,QAAAA,iBACfP,cAACQ,CAAAA,2BAAAA,EAAAA;wBAA8B/B,KAAO8B,EAAAA,QAAAA;AACnCA,wBAAAA,QAAAA,EAAAA;AADkBA,qBAAAA,EAAAA,QAAAA,CAAAA;;AAKzB,0BAAAP,cAAA,CAACF,mBAAMW,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { Field, Combobox, ComboboxOption } from '@strapi/design-system';
4
4
  import { useIntl } from 'react-intl';
5
- import { useDataManager } from './DataManager/useDataManager.mjs';
5
+ import { useDataManager } from '../hooks/useDataManager.mjs';
6
6
 
7
7
  const SelectCategory = ({ error = null, intlLabel, name, onChange, value = undefined, isCreating, dynamicZoneTarget })=>{
8
8
  const { formatMessage } = useIntl();
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCategory.mjs","sources":["../../../admin/src/components/SelectCategory.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { ComboboxOption, Combobox, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from './DataManager/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"],"names":["SelectCategory","error","intlLabel","name","onChange","value","undefined","isCreating","dynamicZoneTarget","formatMessage","useIntl","allComponentsCategories","useDataManager","categories","setCategories","useState","errorMessage","id","defaultMessage","label","handleChange","target","type","handleCreateOption","prev","_jsxs","Field","Root","_jsx","Label","Combobox","disabled","onCreateOption","creatable","map","category","ComboboxOption","Error"],"mappings":";;;;;;MAqBaA,cAAiB,GAAA,CAAC,EAC7BC,KAAQ,GAAA,IAAI,EACZC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,KAAQC,GAAAA,SAAS,EACjBC,UAAU,EACVC,iBAAiB,EACG,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,uBAAuB,EAAE,GAAGC,cAAAA,EAAAA;AACpC,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAc,CAAA,GAAGC,QAASJ,CAAAA,uBAAAA,CAAAA;IAE7C,MAAMK,YAAAA,GAAef,QAAQQ,aAAc,CAAA;QAAEQ,EAAIhB,EAAAA,KAAAA;QAAOiB,cAAgBjB,EAAAA;KAAW,CAAA,GAAA,EAAA;AACnF,IAAA,MAAMkB,QAAQV,aAAcP,CAAAA,SAAAA,CAAAA;AAE5B,IAAA,MAAMkB,eAAe,CAACf,KAAAA,GAAAA;QACpBD,QAAS,CAAA;YAAEiB,MAAQ,EAAA;AAAElB,gBAAAA,IAAAA;AAAME,gBAAAA,KAAAA;gBAAOiB,IAAM,EAAA;AAAkB;AAAE,SAAA,CAAA;AAC9D,KAAA;AAEA,IAAA,MAAMC,qBAAqB,CAAClB,KAAAA,GAAAA;AAC1BS,QAAAA,aAAAA,CAAc,CAACU,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAMnB,gBAAAA;AAAM,aAAA,CAAA;QACxCe,YAAaf,CAAAA,KAAAA,CAAAA;AACf,KAAA;IAEA,qBACEoB,IAAA,CAACC,MAAMC,IAAI,EAAA;QAAC1B,KAAOe,EAAAA,YAAAA;QAAcb,IAAMA,EAAAA,IAAAA;;AACrC,0BAAAyB,GAAA,CAACF,MAAMG,KAAK,EAAA;AAAEV,gBAAAA,QAAAA,EAAAA;;0BACdS,GAACE,CAAAA,QAAAA,EAAAA;;;gBAGCC,QAAU,EAAA,CAACxB,cAAc,CAACC,iBAAAA;gBAC1BJ,QAAUgB,EAAAA,YAAAA;gBACVY,cAAgBT,EAAAA,kBAAAA;gBAChBlB,KAAOA,EAAAA,KAAAA;gBACP4B,SAAS,EAAA,IAAA;AAERpB,gBAAAA,QAAAA,EAAAA,UAAAA,CAAWqB,GAAG,CAAC,CAACC,QAAAA,iBACfP,GAACQ,CAAAA,cAAAA,EAAAA;wBAA8B/B,KAAO8B,EAAAA,QAAAA;AACnCA,wBAAAA,QAAAA,EAAAA;AADkBA,qBAAAA,EAAAA,QAAAA,CAAAA;;AAKzB,0BAAAP,GAAA,CAACF,MAAMW,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
1
+ {"version":3,"file":"SelectCategory.mjs","sources":["../../../admin/src/components/SelectCategory.tsx"],"sourcesContent":["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"],"names":["SelectCategory","error","intlLabel","name","onChange","value","undefined","isCreating","dynamicZoneTarget","formatMessage","useIntl","allComponentsCategories","useDataManager","categories","setCategories","useState","errorMessage","id","defaultMessage","label","handleChange","target","type","handleCreateOption","prev","_jsxs","Field","Root","_jsx","Label","Combobox","disabled","onCreateOption","creatable","map","category","ComboboxOption","Error"],"mappings":";;;;;;MAqBaA,cAAiB,GAAA,CAAC,EAC7BC,KAAQ,GAAA,IAAI,EACZC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,KAAQC,GAAAA,SAAS,EACjBC,UAAU,EACVC,iBAAiB,EACG,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,uBAAuB,EAAE,GAAGC,cAAAA,EAAAA;AACpC,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAc,CAAA,GAAGC,QAASJ,CAAAA,uBAAAA,CAAAA;IAE7C,MAAMK,YAAAA,GAAef,QAAQQ,aAAc,CAAA;QAAEQ,EAAIhB,EAAAA,KAAAA;QAAOiB,cAAgBjB,EAAAA;KAAW,CAAA,GAAA,EAAA;AACnF,IAAA,MAAMkB,QAAQV,aAAcP,CAAAA,SAAAA,CAAAA;AAE5B,IAAA,MAAMkB,eAAe,CAACf,KAAAA,GAAAA;QACpBD,QAAS,CAAA;YAAEiB,MAAQ,EAAA;AAAElB,gBAAAA,IAAAA;AAAME,gBAAAA,KAAAA;gBAAOiB,IAAM,EAAA;AAAkB;AAAE,SAAA,CAAA;AAC9D,KAAA;AAEA,IAAA,MAAMC,qBAAqB,CAAClB,KAAAA,GAAAA;AAC1BS,QAAAA,aAAAA,CAAc,CAACU,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAMnB,gBAAAA;AAAM,aAAA,CAAA;QACxCe,YAAaf,CAAAA,KAAAA,CAAAA;AACf,KAAA;IAEA,qBACEoB,IAAA,CAACC,MAAMC,IAAI,EAAA;QAAC1B,KAAOe,EAAAA,YAAAA;QAAcb,IAAMA,EAAAA,IAAAA;;AACrC,0BAAAyB,GAAA,CAACF,MAAMG,KAAK,EAAA;AAAEV,gBAAAA,QAAAA,EAAAA;;0BACdS,GAACE,CAAAA,QAAAA,EAAAA;;;gBAGCC,QAAU,EAAA,CAACxB,cAAc,CAACC,iBAAAA;gBAC1BJ,QAAUgB,EAAAA,YAAAA;gBACVY,cAAgBT,EAAAA,kBAAAA;gBAChBlB,KAAOA,EAAAA,KAAAA;gBACP4B,SAAS,EAAA,IAAA;AAERpB,gBAAAA,QAAAA,EAAAA,UAAAA,CAAWqB,GAAG,CAAC,CAACC,QAAAA,iBACfP,GAACQ,CAAAA,cAAAA,EAAAA;wBAA8B/B,KAAO8B,EAAAA,QAAAA;AACnCA,wBAAAA,QAAAA,EAAAA;AADkBA,qBAAAA,EAAAA,QAAAA,CAAAA;;AAKzB,0BAAAP,GAAA,CAACF,MAAMW,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
@@ -4,8 +4,8 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
6
  var constants = require('../constants.js');
7
+ var useDataManager = require('../hooks/useDataManager.js');
7
8
  var getMaxDepth = require('../utils/getMaxDepth.js');
8
- var useDataManager = require('./DataManager/useDataManager.js');
9
9
 
10
10
  const SelectComponent = ({ error = null, intlLabel, isAddingAComponentToAnotherComponent, isCreating, isCreatingComponentWhileAddingAField, componentToCreate, name, onChange, targetUid, forTarget, value })=>{
11
11
  const { formatMessage } = reactIntl.useIntl();
@@ -15,13 +15,16 @@ const SelectComponent = ({ error = null, intlLabel, isAddingAComponentToAnotherC
15
15
  }) : '';
16
16
  const label = formatMessage(intlLabel);
17
17
  const { componentsGroupedByCategory, componentsThatHaveOtherComponentInTheirAttributes, nestedComponents } = useDataManager.useDataManager();
18
- const isTargetAComponent = forTarget === 'component';
18
+ const isTargetAComponent = [
19
+ 'component',
20
+ 'components'
21
+ ].includes(forTarget);
19
22
  let options = Object.entries(componentsGroupedByCategory).reduce((acc, current)=>{
20
23
  const [categoryName, components] = current;
21
24
  const compos = components.map((component)=>{
22
25
  return {
23
26
  uid: component.uid,
24
- label: component.info.displayName,
27
+ label: component.schema.displayName,
25
28
  categoryName
26
29
  };
27
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SelectComponent.js","sources":["../../../admin/src/components/SelectComponent.tsx"],"sourcesContent":["import { SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { MAX_COMPONENT_DEPTH } from '../constants';\nimport { getChildrenMaxDepth, getComponentDepth } from '../utils/getMaxDepth';\n\nimport { useDataManager } from './DataManager/useDataManager';\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 = forTarget === 'component';\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.info.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"],"names":["SelectComponent","error","intlLabel","isAddingAComponentToAnotherComponent","isCreating","isCreatingComponentWhileAddingAField","componentToCreate","name","onChange","targetUid","forTarget","value","formatMessage","useIntl","errorMessage","id","defaultMessage","label","componentsGroupedByCategory","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","useDataManager","isTargetAComponent","options","Object","entries","reduce","acc","current","categoryName","components","compos","map","component","uid","info","displayName","filter","maxDepth","getChildrenMaxDepth","componentDepth","getComponentDepth","totalDepth","MAX_COMPONENT_DEPTH","option","category","_jsxs","Field","Root","_jsx","Label","SingleSelect","disabled","target","type","SingleSelectOption","Error"],"mappings":"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"}
1
+ {"version":3,"file":"SelectComponent.js","sources":["../../../admin/src/components/SelectComponent.tsx"],"sourcesContent":["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"],"names":["SelectComponent","error","intlLabel","isAddingAComponentToAnotherComponent","isCreating","isCreatingComponentWhileAddingAField","componentToCreate","name","onChange","targetUid","forTarget","value","formatMessage","useIntl","errorMessage","id","defaultMessage","label","componentsGroupedByCategory","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","useDataManager","isTargetAComponent","includes","options","Object","entries","reduce","acc","current","categoryName","components","compos","map","component","uid","schema","displayName","filter","maxDepth","getChildrenMaxDepth","componentDepth","getComponentDepth","totalDepth","MAX_COMPONENT_DEPTH","option","category","_jsxs","Field","Root","_jsx","Label","SingleSelect","disabled","target","type","SingleSelectOption","Error"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Field, SingleSelect, SingleSelectOption } from '@strapi/design-system';
3
3
  import { useIntl } from 'react-intl';
4
4
  import { MAX_COMPONENT_DEPTH } from '../constants.mjs';
5
+ import { useDataManager } from '../hooks/useDataManager.mjs';
5
6
  import { getChildrenMaxDepth, getComponentDepth } from '../utils/getMaxDepth.mjs';
6
- import { useDataManager } from './DataManager/useDataManager.mjs';
7
7
 
8
8
  const SelectComponent = ({ error = null, intlLabel, isAddingAComponentToAnotherComponent, isCreating, isCreatingComponentWhileAddingAField, componentToCreate, name, onChange, targetUid, forTarget, value })=>{
9
9
  const { formatMessage } = useIntl();
@@ -13,13 +13,16 @@ const SelectComponent = ({ error = null, intlLabel, isAddingAComponentToAnotherC
13
13
  }) : '';
14
14
  const label = formatMessage(intlLabel);
15
15
  const { componentsGroupedByCategory, componentsThatHaveOtherComponentInTheirAttributes, nestedComponents } = useDataManager();
16
- const isTargetAComponent = forTarget === 'component';
16
+ const isTargetAComponent = [
17
+ 'component',
18
+ 'components'
19
+ ].includes(forTarget);
17
20
  let options = Object.entries(componentsGroupedByCategory).reduce((acc, current)=>{
18
21
  const [categoryName, components] = current;
19
22
  const compos = components.map((component)=>{
20
23
  return {
21
24
  uid: component.uid,
22
- label: component.info.displayName,
25
+ label: component.schema.displayName,
23
26
  categoryName
24
27
  };
25
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SelectComponent.mjs","sources":["../../../admin/src/components/SelectComponent.tsx"],"sourcesContent":["import { SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { MAX_COMPONENT_DEPTH } from '../constants';\nimport { getChildrenMaxDepth, getComponentDepth } from '../utils/getMaxDepth';\n\nimport { useDataManager } from './DataManager/useDataManager';\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 = forTarget === 'component';\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.info.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"],"names":["SelectComponent","error","intlLabel","isAddingAComponentToAnotherComponent","isCreating","isCreatingComponentWhileAddingAField","componentToCreate","name","onChange","targetUid","forTarget","value","formatMessage","useIntl","errorMessage","id","defaultMessage","label","componentsGroupedByCategory","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","useDataManager","isTargetAComponent","options","Object","entries","reduce","acc","current","categoryName","components","compos","map","component","uid","info","displayName","filter","maxDepth","getChildrenMaxDepth","componentDepth","getComponentDepth","totalDepth","MAX_COMPONENT_DEPTH","option","category","_jsxs","Field","Root","_jsx","Label","SingleSelect","disabled","target","type","SingleSelectOption","Error"],"mappings":"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"}
1
+ {"version":3,"file":"SelectComponent.mjs","sources":["../../../admin/src/components/SelectComponent.tsx"],"sourcesContent":["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"],"names":["SelectComponent","error","intlLabel","isAddingAComponentToAnotherComponent","isCreating","isCreatingComponentWhileAddingAField","componentToCreate","name","onChange","targetUid","forTarget","value","formatMessage","useIntl","errorMessage","id","defaultMessage","label","componentsGroupedByCategory","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","useDataManager","isTargetAComponent","includes","options","Object","entries","reduce","acc","current","categoryName","components","compos","map","component","uid","schema","displayName","filter","maxDepth","getChildrenMaxDepth","componentDepth","getComponentDepth","totalDepth","MAX_COMPONENT_DEPTH","option","category","_jsxs","Field","Root","_jsx","Label","SingleSelect","disabled","target","type","SingleSelectOption","Error"],"mappings":"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"}