@strapi/content-manager 0.0.0-experimental.51e87e311df34df634a6bce7b841df8be31f1efb → 0.0.0-experimental.53bc31e82da0a30669d08ef9fe04efd2b5e9d4eb

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 (443) hide show
  1. package/dist/admin/chunks/CardDragPreview-DwuraT0K.js +80 -0
  2. package/dist/admin/chunks/CardDragPreview-DwuraT0K.js.map +1 -0
  3. package/dist/admin/chunks/CardDragPreview-_dubYgXO.js +82 -0
  4. package/dist/admin/chunks/CardDragPreview-_dubYgXO.js.map +1 -0
  5. package/dist/admin/chunks/ComponentConfigurationPage-F9hz3-8Q.js +298 -0
  6. package/dist/admin/chunks/ComponentConfigurationPage-F9hz3-8Q.js.map +1 -0
  7. package/dist/admin/chunks/ComponentConfigurationPage-Rh9EprfI.js +276 -0
  8. package/dist/admin/chunks/ComponentConfigurationPage-Rh9EprfI.js.map +1 -0
  9. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js +153 -0
  10. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js.map +1 -0
  11. package/dist/admin/chunks/ComponentIcon-C-EjOUPA.js +176 -0
  12. package/dist/admin/chunks/ComponentIcon-C-EjOUPA.js.map +1 -0
  13. package/dist/admin/chunks/EditConfigurationPage-BSyU4QSr.js +180 -0
  14. package/dist/admin/chunks/EditConfigurationPage-BSyU4QSr.js.map +1 -0
  15. package/dist/admin/chunks/EditConfigurationPage-qTV90Q1w.js +158 -0
  16. package/dist/admin/chunks/EditConfigurationPage-qTV90Q1w.js.map +1 -0
  17. package/dist/admin/chunks/EditViewPage-Bg0R6Ket.js +337 -0
  18. package/dist/admin/chunks/EditViewPage-Bg0R6Ket.js.map +1 -0
  19. package/dist/admin/chunks/EditViewPage-DQJnwri9.js +314 -0
  20. package/dist/admin/chunks/EditViewPage-DQJnwri9.js.map +1 -0
  21. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js +56 -0
  22. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js.map +1 -0
  23. package/dist/admin/chunks/FieldTypeIcon-Bxh-7Jin.js +58 -0
  24. package/dist/admin/chunks/FieldTypeIcon-Bxh-7Jin.js.map +1 -0
  25. package/dist/admin/chunks/Form-CoCZb7X4.js +955 -0
  26. package/dist/admin/chunks/Form-CoCZb7X4.js.map +1 -0
  27. package/dist/admin/chunks/Form-NF3WNWJi.js +978 -0
  28. package/dist/admin/chunks/Form-NF3WNWJi.js.map +1 -0
  29. package/dist/admin/chunks/History-D9gkCdWM.js +1380 -0
  30. package/dist/admin/chunks/History-D9gkCdWM.js.map +1 -0
  31. package/dist/admin/chunks/History-DhTXQ3vJ.js +1357 -0
  32. package/dist/admin/chunks/History-DhTXQ3vJ.js.map +1 -0
  33. package/dist/admin/chunks/Input-B-PHs6Qx.js +6762 -0
  34. package/dist/admin/chunks/Input-B-PHs6Qx.js.map +1 -0
  35. package/dist/admin/chunks/Input-BUaeK7Zs.js +6793 -0
  36. package/dist/admin/chunks/Input-BUaeK7Zs.js.map +1 -0
  37. package/dist/admin/chunks/ListConfigurationPage-C9USjNkF.js +795 -0
  38. package/dist/admin/chunks/ListConfigurationPage-C9USjNkF.js.map +1 -0
  39. package/dist/admin/chunks/ListConfigurationPage-Deuq9sl8.js +818 -0
  40. package/dist/admin/chunks/ListConfigurationPage-Deuq9sl8.js.map +1 -0
  41. package/dist/admin/chunks/ListViewPage-CRR7JZM8.js +1132 -0
  42. package/dist/admin/chunks/ListViewPage-CRR7JZM8.js.map +1 -0
  43. package/dist/admin/chunks/ListViewPage-Dykcj1kY.js +1154 -0
  44. package/dist/admin/chunks/ListViewPage-Dykcj1kY.js.map +1 -0
  45. package/dist/admin/chunks/NoContentTypePage-CKhx-nS3.js +57 -0
  46. package/dist/admin/chunks/NoContentTypePage-CKhx-nS3.js.map +1 -0
  47. package/dist/admin/chunks/NoContentTypePage-bJYP8vEF.js +59 -0
  48. package/dist/admin/chunks/NoContentTypePage-bJYP8vEF.js.map +1 -0
  49. package/dist/admin/chunks/NoPermissionsPage-BoK43tp1.js +38 -0
  50. package/dist/admin/chunks/NoPermissionsPage-BoK43tp1.js.map +1 -0
  51. package/dist/admin/chunks/NoPermissionsPage-aAytAGle.js +36 -0
  52. package/dist/admin/chunks/NoPermissionsPage-aAytAGle.js.map +1 -0
  53. package/dist/admin/chunks/Preview-BagRf65F.js +553 -0
  54. package/dist/admin/chunks/Preview-BagRf65F.js.map +1 -0
  55. package/dist/admin/chunks/Preview-DX-20QKo.js +531 -0
  56. package/dist/admin/chunks/Preview-DX-20QKo.js.map +1 -0
  57. package/dist/admin/chunks/Relations-CIVG7vfG.js +1318 -0
  58. package/dist/admin/chunks/Relations-CIVG7vfG.js.map +1 -0
  59. package/dist/admin/chunks/Relations-DRXwCu-N.js +1291 -0
  60. package/dist/admin/chunks/Relations-DRXwCu-N.js.map +1 -0
  61. package/dist/admin/chunks/ar-DckYq_WK.js +222 -0
  62. package/dist/admin/chunks/ar-DckYq_WK.js.map +1 -0
  63. package/dist/admin/chunks/ar-DeQBSsfl.js +227 -0
  64. package/dist/{_chunks/ru-BT3ybNny.js.map → admin/chunks/ar-DeQBSsfl.js.map} +1 -1
  65. package/dist/admin/chunks/ca-ClDTvatJ.js +202 -0
  66. package/dist/admin/chunks/ca-ClDTvatJ.js.map +1 -0
  67. package/dist/admin/chunks/ca-DviY7mRj.js +197 -0
  68. package/dist/{_chunks/de-CCEmbAah.js.map → admin/chunks/ca-DviY7mRj.js.map} +1 -1
  69. package/dist/admin/chunks/cs-BJFxwIWj.js +126 -0
  70. package/dist/{_chunks/ms-BuFotyP_.js.map → admin/chunks/cs-BJFxwIWj.js.map} +1 -1
  71. package/dist/admin/chunks/cs-C7OSYFQ7.js +122 -0
  72. package/dist/{_chunks/cs-CkJy6B2v.js.map → admin/chunks/cs-C7OSYFQ7.js.map} +1 -1
  73. package/dist/admin/chunks/de-5QRlDHyR.js +195 -0
  74. package/dist/{_chunks/ja-7sfIbjxE.js.map → admin/chunks/de-5QRlDHyR.js.map} +1 -1
  75. package/dist/admin/chunks/de-CbImAUA5.js +200 -0
  76. package/dist/{_chunks/gu-BRmF601H.js.map → admin/chunks/de-CbImAUA5.js.map} +1 -1
  77. package/dist/admin/chunks/en-C1CjdAtC.js +313 -0
  78. package/dist/{_chunks/en-D65uIF6Y.mjs.map → admin/chunks/en-C1CjdAtC.js.map} +1 -1
  79. package/dist/admin/chunks/en-LfhocNG2.js +308 -0
  80. package/dist/{_chunks/en-BR48D_RH.js.map → admin/chunks/en-LfhocNG2.js.map} +1 -1
  81. package/dist/admin/chunks/es-C8vLuvZL.js +197 -0
  82. package/dist/admin/chunks/es-C8vLuvZL.js.map +1 -0
  83. package/dist/admin/chunks/es-DkoWSExG.js +192 -0
  84. package/dist/{_chunks/ko-woFZPmLk.js.map → admin/chunks/es-DkoWSExG.js.map} +1 -1
  85. package/dist/admin/chunks/eu-BG1xX7HK.js +198 -0
  86. package/dist/admin/chunks/eu-BG1xX7HK.js.map +1 -0
  87. package/dist/admin/chunks/eu-BJW3AvXu.js +203 -0
  88. package/dist/admin/chunks/eu-BJW3AvXu.js.map +1 -0
  89. package/dist/admin/chunks/fr-CFdRaRVj.js +215 -0
  90. package/dist/admin/chunks/fr-CFdRaRVj.js.map +1 -0
  91. package/dist/admin/chunks/fr-gQSilC7w.js +220 -0
  92. package/dist/admin/chunks/fr-gQSilC7w.js.map +1 -0
  93. package/dist/admin/chunks/gu-D5MMMXRs.js +196 -0
  94. package/dist/admin/chunks/gu-D5MMMXRs.js.map +1 -0
  95. package/dist/admin/chunks/gu-DPU4wyx7.js +201 -0
  96. package/dist/{_chunks/eu-VDH-3ovk.js.map → admin/chunks/gu-DPU4wyx7.js.map} +1 -1
  97. package/dist/admin/chunks/hi-Dp4omeBb.js +201 -0
  98. package/dist/admin/chunks/hi-Dp4omeBb.js.map +1 -0
  99. package/dist/admin/chunks/hi-lp17SCjr.js +196 -0
  100. package/dist/admin/chunks/hi-lp17SCjr.js.map +1 -0
  101. package/dist/{_chunks/hooks-BAaaKPS_.js → admin/chunks/hooks-D-sOYd1s.js} +6 -3
  102. package/dist/admin/chunks/hooks-D-sOYd1s.js.map +1 -0
  103. package/dist/admin/chunks/hooks-DMvik5y_.js +7 -0
  104. package/dist/admin/chunks/hooks-DMvik5y_.js.map +1 -0
  105. package/dist/admin/chunks/hu-CLka1U2C.js +198 -0
  106. package/dist/admin/chunks/hu-CLka1U2C.js.map +1 -0
  107. package/dist/admin/chunks/hu-CtFJuhTd.js +203 -0
  108. package/dist/admin/chunks/hu-CtFJuhTd.js.map +1 -0
  109. package/dist/admin/chunks/id-D7V5S1rB.js +161 -0
  110. package/dist/{_chunks/it-DkBIs7vD.js.map → admin/chunks/id-D7V5S1rB.js.map} +1 -1
  111. package/dist/admin/chunks/id-USfY9m1g.js +156 -0
  112. package/dist/admin/chunks/id-USfY9m1g.js.map +1 -0
  113. package/dist/admin/chunks/index-BFvBqzd6.js +5416 -0
  114. package/dist/admin/chunks/index-BFvBqzd6.js.map +1 -0
  115. package/dist/admin/chunks/index-DjnPfPx8.js +5350 -0
  116. package/dist/admin/chunks/index-DjnPfPx8.js.map +1 -0
  117. package/dist/admin/chunks/it-BAHrwmYS.js +158 -0
  118. package/dist/admin/chunks/it-BAHrwmYS.js.map +1 -0
  119. package/dist/admin/chunks/it-CQFpa_Dc.js +163 -0
  120. package/dist/{_chunks/es-9K52xZIr.js.map → admin/chunks/it-CQFpa_Dc.js.map} +1 -1
  121. package/dist/admin/chunks/ja-BWKmBJFT.js +192 -0
  122. package/dist/admin/chunks/ja-BWKmBJFT.js.map +1 -0
  123. package/dist/admin/chunks/ja-jdQM-B79.js +197 -0
  124. package/dist/admin/chunks/ja-jdQM-B79.js.map +1 -0
  125. package/dist/admin/chunks/ko-CgADGBNt.js +191 -0
  126. package/dist/admin/chunks/ko-CgADGBNt.js.map +1 -0
  127. package/dist/admin/chunks/ko-k46sEyzt.js +196 -0
  128. package/dist/admin/chunks/ko-k46sEyzt.js.map +1 -0
  129. package/dist/admin/chunks/layout-BBZkZkME.js +618 -0
  130. package/dist/admin/chunks/layout-BBZkZkME.js.map +1 -0
  131. package/dist/admin/chunks/layout-DsbCNcEH.js +598 -0
  132. package/dist/admin/chunks/layout-DsbCNcEH.js.map +1 -0
  133. package/dist/admin/chunks/ml-CnhCfOn_.js +196 -0
  134. package/dist/admin/chunks/ml-CnhCfOn_.js.map +1 -0
  135. package/dist/admin/chunks/ml-DqxPwODx.js +201 -0
  136. package/dist/admin/chunks/ml-DqxPwODx.js.map +1 -0
  137. package/dist/admin/chunks/ms-Bh09NFff.js +140 -0
  138. package/dist/{_chunks/uk-C8EiqJY7.js.map → admin/chunks/ms-Bh09NFff.js.map} +1 -1
  139. package/dist/admin/chunks/ms-CvSC0OdG.js +145 -0
  140. package/dist/admin/chunks/ms-CvSC0OdG.js.map +1 -0
  141. package/dist/admin/chunks/nl-BEubhS8C.js +203 -0
  142. package/dist/admin/chunks/nl-BEubhS8C.js.map +1 -0
  143. package/dist/admin/chunks/nl-C8HYflTc.js +198 -0
  144. package/dist/admin/chunks/nl-C8HYflTc.js.map +1 -0
  145. package/dist/admin/chunks/objects-C3EebVVe.js +76 -0
  146. package/dist/admin/chunks/objects-C3EebVVe.js.map +1 -0
  147. package/dist/admin/chunks/objects-wl73iEma.js +73 -0
  148. package/dist/admin/chunks/objects-wl73iEma.js.map +1 -0
  149. package/dist/admin/chunks/pl-DWhGDzmM.js +200 -0
  150. package/dist/{_chunks/ca-Cmk45QO6.js.map → admin/chunks/pl-DWhGDzmM.js.map} +1 -1
  151. package/dist/admin/chunks/pl-MFCZJZuZ.js +195 -0
  152. package/dist/admin/chunks/pl-MFCZJZuZ.js.map +1 -0
  153. package/dist/admin/chunks/pt-BR-CPtAXD-4.js +202 -0
  154. package/dist/admin/chunks/pt-BR-CPtAXD-4.js.map +1 -0
  155. package/dist/admin/chunks/pt-BR-CcotyBGJ.js +197 -0
  156. package/dist/{_chunks/pt-BR-BiOz37D9.js.map → admin/chunks/pt-BR-CcotyBGJ.js.map} +1 -1
  157. package/dist/admin/chunks/pt-BoPxN80n.js +96 -0
  158. package/dist/admin/chunks/pt-BoPxN80n.js.map +1 -0
  159. package/dist/admin/chunks/pt-HbmgeiYO.js +93 -0
  160. package/dist/admin/chunks/pt-HbmgeiYO.js.map +1 -0
  161. package/dist/admin/chunks/relations-CbrYJQqU.js +173 -0
  162. package/dist/admin/chunks/relations-CbrYJQqU.js.map +1 -0
  163. package/dist/admin/chunks/relations-DPq9jPO4.js +178 -0
  164. package/dist/admin/chunks/relations-DPq9jPO4.js.map +1 -0
  165. package/dist/admin/chunks/ru-C0op0ALG.js +232 -0
  166. package/dist/admin/chunks/ru-C0op0ALG.js.map +1 -0
  167. package/dist/admin/chunks/ru-CB4BUyQp.js +230 -0
  168. package/dist/admin/chunks/ru-CB4BUyQp.js.map +1 -0
  169. package/dist/admin/chunks/sa-B_FuPyMw.js +201 -0
  170. package/dist/admin/chunks/sa-B_FuPyMw.js.map +1 -0
  171. package/dist/admin/chunks/sa-n_aPA-pU.js +196 -0
  172. package/dist/admin/chunks/sa-n_aPA-pU.js.map +1 -0
  173. package/dist/admin/chunks/sk-D_iXML2C.js +203 -0
  174. package/dist/admin/chunks/sk-D_iXML2C.js.map +1 -0
  175. package/dist/admin/chunks/sk-tn_BDjE2.js +198 -0
  176. package/dist/admin/chunks/sk-tn_BDjE2.js.map +1 -0
  177. package/dist/admin/chunks/sv-BstBC1Yp.js +203 -0
  178. package/dist/admin/chunks/sv-BstBC1Yp.js.map +1 -0
  179. package/dist/admin/chunks/sv-cq4ZrQRd.js +198 -0
  180. package/dist/admin/chunks/sv-cq4ZrQRd.js.map +1 -0
  181. package/dist/admin/chunks/th-lXoOCqPC.js +149 -0
  182. package/dist/{_chunks/th-D9_GfAjc.js.map → admin/chunks/th-lXoOCqPC.js.map} +1 -1
  183. package/dist/admin/chunks/th-mUH7hEtc.js +144 -0
  184. package/dist/admin/chunks/th-mUH7hEtc.js.map +1 -0
  185. package/dist/admin/chunks/tr-CkS6sLIE.js +200 -0
  186. package/dist/admin/chunks/tr-CkS6sLIE.js.map +1 -0
  187. package/dist/admin/chunks/tr-Yt38daxh.js +195 -0
  188. package/dist/admin/chunks/tr-Yt38daxh.js.map +1 -0
  189. package/dist/admin/chunks/uk-B24MoTVg.js +145 -0
  190. package/dist/admin/chunks/uk-B24MoTVg.js.map +1 -0
  191. package/dist/admin/chunks/uk-Cpgmm7gE.js +140 -0
  192. package/dist/admin/chunks/uk-Cpgmm7gE.js.map +1 -0
  193. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js +247 -0
  194. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js.map +1 -0
  195. package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js +271 -0
  196. package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js.map +1 -0
  197. package/dist/admin/chunks/usePrev-Bjw2dhmq.js +18 -0
  198. package/dist/admin/chunks/usePrev-Bjw2dhmq.js.map +1 -0
  199. package/dist/admin/chunks/usePrev-DIYl-IAL.js +21 -0
  200. package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +1 -0
  201. package/dist/admin/chunks/vi-BGr1X_HZ.js +112 -0
  202. package/dist/admin/chunks/vi-BGr1X_HZ.js.map +1 -0
  203. package/dist/admin/chunks/vi-CvBGlTjr.js +108 -0
  204. package/dist/{_chunks/vi-CJlYDheJ.js.map → admin/chunks/vi-CvBGlTjr.js.map} +1 -1
  205. package/dist/admin/chunks/zh-BmF-sHaT.js +205 -0
  206. package/dist/admin/chunks/zh-BmF-sHaT.js.map +1 -0
  207. package/dist/admin/chunks/zh-DwFu_Kfj.js +210 -0
  208. package/dist/admin/chunks/zh-DwFu_Kfj.js.map +1 -0
  209. package/dist/admin/chunks/zh-Hans-CI0HKio3.js +934 -0
  210. package/dist/{_chunks/zh-Hans-9kOncHGw.js.map → admin/chunks/zh-Hans-CI0HKio3.js.map} +1 -1
  211. package/dist/admin/chunks/zh-Hans-JVK9x7xr.js +953 -0
  212. package/dist/{_chunks/zh-Hans-BPQcRIyH.mjs.map → admin/chunks/zh-Hans-JVK9x7xr.js.map} +1 -1
  213. package/dist/admin/index.js +23 -4
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +16 -13
  216. package/dist/admin/index.mjs.map +1 -1
  217. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  218. package/dist/admin/src/hooks/useDocument.d.ts +2 -2
  219. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +2 -1
  220. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -1
  221. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -1
  222. package/dist/admin/src/preview/index.d.ts +2 -3
  223. package/dist/server/index.js +5459 -4387
  224. package/dist/server/index.js.map +1 -1
  225. package/dist/server/index.mjs +5446 -4372
  226. package/dist/server/index.mjs.map +1 -1
  227. package/dist/server/src/controllers/utils/metadata.d.ts +1 -1
  228. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  229. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  230. package/dist/server/src/services/utils/count.d.ts +1 -1
  231. package/dist/server/src/services/utils/count.d.ts.map +1 -1
  232. package/dist/server/src/services/utils/populate.d.ts +1 -1
  233. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  234. package/dist/shared/contracts/collection-types.d.ts +0 -1
  235. package/dist/shared/contracts/components.d.ts +0 -1
  236. package/dist/shared/contracts/content-types.d.ts +0 -1
  237. package/dist/shared/contracts/history-versions.d.ts +0 -1
  238. package/dist/shared/contracts/index.d.ts +0 -1
  239. package/dist/shared/contracts/init.d.ts +0 -1
  240. package/dist/shared/contracts/preview.d.ts +0 -1
  241. package/dist/shared/contracts/relations.d.ts +1 -2
  242. package/dist/shared/contracts/relations.d.ts.map +1 -1
  243. package/dist/shared/contracts/review-workflows.d.ts +0 -1
  244. package/dist/shared/contracts/single-types.d.ts +0 -1
  245. package/dist/shared/contracts/uid.d.ts +0 -1
  246. package/dist/shared/index.d.ts +0 -1
  247. package/dist/shared/index.js +35 -24
  248. package/dist/shared/index.js.map +1 -1
  249. package/dist/shared/index.mjs +34 -25
  250. package/dist/shared/index.mjs.map +1 -1
  251. package/package.json +15 -12
  252. package/dist/_chunks/CardDragPreview-C0QyJgRA.js +0 -69
  253. package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +0 -1
  254. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs +0 -70
  255. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +0 -1
  256. package/dist/_chunks/ComponentConfigurationPage-D4H-v0et.mjs +0 -236
  257. package/dist/_chunks/ComponentConfigurationPage-D4H-v0et.mjs.map +0 -1
  258. package/dist/_chunks/ComponentConfigurationPage-DdkVGfXC.js +0 -254
  259. package/dist/_chunks/ComponentConfigurationPage-DdkVGfXC.js.map +0 -1
  260. package/dist/_chunks/ComponentIcon-CRbtQEUV.js +0 -175
  261. package/dist/_chunks/ComponentIcon-CRbtQEUV.js.map +0 -1
  262. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs +0 -157
  263. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +0 -1
  264. package/dist/_chunks/EditConfigurationPage-D1nvB7Br.mjs +0 -132
  265. package/dist/_chunks/EditConfigurationPage-D1nvB7Br.mjs.map +0 -1
  266. package/dist/_chunks/EditConfigurationPage-LYEvR4fW.js +0 -150
  267. package/dist/_chunks/EditConfigurationPage-LYEvR4fW.js.map +0 -1
  268. package/dist/_chunks/EditViewPage-Bcnff6Vd.mjs +0 -191
  269. package/dist/_chunks/EditViewPage-Bcnff6Vd.mjs.map +0 -1
  270. package/dist/_chunks/EditViewPage-DqelJ9UK.js +0 -209
  271. package/dist/_chunks/EditViewPage-DqelJ9UK.js.map +0 -1
  272. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs +0 -50
  273. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +0 -1
  274. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js +0 -49
  275. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +0 -1
  276. package/dist/_chunks/Form-CnHfBeiB.js +0 -778
  277. package/dist/_chunks/Form-CnHfBeiB.js.map +0 -1
  278. package/dist/_chunks/Form-CzPCJi3B.mjs +0 -758
  279. package/dist/_chunks/Form-CzPCJi3B.mjs.map +0 -1
  280. package/dist/_chunks/History-CcmSn3Mj.mjs +0 -999
  281. package/dist/_chunks/History-CcmSn3Mj.mjs.map +0 -1
  282. package/dist/_chunks/History-zArjENzj.js +0 -1019
  283. package/dist/_chunks/History-zArjENzj.js.map +0 -1
  284. package/dist/_chunks/Input-CDHKQd7o.js +0 -5618
  285. package/dist/_chunks/Input-CDHKQd7o.js.map +0 -1
  286. package/dist/_chunks/Input-aV8SSoTa.mjs +0 -5586
  287. package/dist/_chunks/Input-aV8SSoTa.mjs.map +0 -1
  288. package/dist/_chunks/ListConfigurationPage-BPvzENJJ.mjs +0 -633
  289. package/dist/_chunks/ListConfigurationPage-BPvzENJJ.mjs.map +0 -1
  290. package/dist/_chunks/ListConfigurationPage-ByZAO_9H.js +0 -652
  291. package/dist/_chunks/ListConfigurationPage-ByZAO_9H.js.map +0 -1
  292. package/dist/_chunks/ListViewPage-BVKBeQAA.js +0 -877
  293. package/dist/_chunks/ListViewPage-BVKBeQAA.js.map +0 -1
  294. package/dist/_chunks/ListViewPage-HljQVnFH.mjs +0 -854
  295. package/dist/_chunks/ListViewPage-HljQVnFH.mjs.map +0 -1
  296. package/dist/_chunks/NoContentTypePage-BV5zfDxr.js +0 -51
  297. package/dist/_chunks/NoContentTypePage-BV5zfDxr.js.map +0 -1
  298. package/dist/_chunks/NoContentTypePage-BfHaSM-K.mjs +0 -51
  299. package/dist/_chunks/NoContentTypePage-BfHaSM-K.mjs.map +0 -1
  300. package/dist/_chunks/NoPermissionsPage-D6ze2nQL.mjs +0 -23
  301. package/dist/_chunks/NoPermissionsPage-D6ze2nQL.mjs.map +0 -1
  302. package/dist/_chunks/NoPermissionsPage-vdNpc6jb.js +0 -23
  303. package/dist/_chunks/NoPermissionsPage-vdNpc6jb.js.map +0 -1
  304. package/dist/_chunks/Preview-DEHdENT1.js +0 -305
  305. package/dist/_chunks/Preview-DEHdENT1.js.map +0 -1
  306. package/dist/_chunks/Preview-vfWOtPG5.mjs +0 -287
  307. package/dist/_chunks/Preview-vfWOtPG5.mjs.map +0 -1
  308. package/dist/_chunks/Relations-B7_hbF0w.mjs +0 -729
  309. package/dist/_chunks/Relations-B7_hbF0w.mjs.map +0 -1
  310. package/dist/_chunks/Relations-DcoOBejP.js +0 -748
  311. package/dist/_chunks/Relations-DcoOBejP.js.map +0 -1
  312. package/dist/_chunks/ar-BUUWXIYu.js +0 -226
  313. package/dist/_chunks/ar-BUUWXIYu.js.map +0 -1
  314. package/dist/_chunks/ar-CCEVvqGG.mjs +0 -226
  315. package/dist/_chunks/ar-CCEVvqGG.mjs.map +0 -1
  316. package/dist/_chunks/ca-5U32ON2v.mjs +0 -201
  317. package/dist/_chunks/ca-5U32ON2v.mjs.map +0 -1
  318. package/dist/_chunks/ca-Cmk45QO6.js +0 -201
  319. package/dist/_chunks/cs-CM2aBUar.mjs +0 -125
  320. package/dist/_chunks/cs-CM2aBUar.mjs.map +0 -1
  321. package/dist/_chunks/cs-CkJy6B2v.js +0 -125
  322. package/dist/_chunks/de-C72KDNOl.mjs +0 -199
  323. package/dist/_chunks/de-C72KDNOl.mjs.map +0 -1
  324. package/dist/_chunks/de-CCEmbAah.js +0 -199
  325. package/dist/_chunks/en-BR48D_RH.js +0 -312
  326. package/dist/_chunks/en-D65uIF6Y.mjs +0 -312
  327. package/dist/_chunks/es-9K52xZIr.js +0 -196
  328. package/dist/_chunks/es-D34tqjMw.mjs +0 -196
  329. package/dist/_chunks/es-D34tqjMw.mjs.map +0 -1
  330. package/dist/_chunks/eu-CdALomew.mjs +0 -202
  331. package/dist/_chunks/eu-CdALomew.mjs.map +0 -1
  332. package/dist/_chunks/eu-VDH-3ovk.js +0 -202
  333. package/dist/_chunks/fr-C43IbhA_.js +0 -219
  334. package/dist/_chunks/fr-C43IbhA_.js.map +0 -1
  335. package/dist/_chunks/fr-DBseuRuB.mjs +0 -219
  336. package/dist/_chunks/fr-DBseuRuB.mjs.map +0 -1
  337. package/dist/_chunks/gu-BRmF601H.js +0 -200
  338. package/dist/_chunks/gu-CNpaMDpH.mjs +0 -200
  339. package/dist/_chunks/gu-CNpaMDpH.mjs.map +0 -1
  340. package/dist/_chunks/hi-CCJBptSq.js +0 -200
  341. package/dist/_chunks/hi-CCJBptSq.js.map +0 -1
  342. package/dist/_chunks/hi-Dwvd04m3.mjs +0 -200
  343. package/dist/_chunks/hi-Dwvd04m3.mjs.map +0 -1
  344. package/dist/_chunks/hooks-BAaaKPS_.js.map +0 -1
  345. package/dist/_chunks/hooks-E5u1mcgM.mjs +0 -8
  346. package/dist/_chunks/hooks-E5u1mcgM.mjs.map +0 -1
  347. package/dist/_chunks/hu-CeYvaaO0.mjs +0 -202
  348. package/dist/_chunks/hu-CeYvaaO0.mjs.map +0 -1
  349. package/dist/_chunks/hu-sNV_yLYy.js +0 -202
  350. package/dist/_chunks/hu-sNV_yLYy.js.map +0 -1
  351. package/dist/_chunks/id-B5Ser98A.js +0 -160
  352. package/dist/_chunks/id-B5Ser98A.js.map +0 -1
  353. package/dist/_chunks/id-BtwA9WJT.mjs +0 -160
  354. package/dist/_chunks/id-BtwA9WJT.mjs.map +0 -1
  355. package/dist/_chunks/index-CxLSGwnk.js +0 -4500
  356. package/dist/_chunks/index-CxLSGwnk.js.map +0 -1
  357. package/dist/_chunks/index-EH8ZtHd5.mjs +0 -4481
  358. package/dist/_chunks/index-EH8ZtHd5.mjs.map +0 -1
  359. package/dist/_chunks/it-BrVPqaf1.mjs +0 -162
  360. package/dist/_chunks/it-BrVPqaf1.mjs.map +0 -1
  361. package/dist/_chunks/it-DkBIs7vD.js +0 -162
  362. package/dist/_chunks/ja-7sfIbjxE.js +0 -196
  363. package/dist/_chunks/ja-BHqhDq4V.mjs +0 -196
  364. package/dist/_chunks/ja-BHqhDq4V.mjs.map +0 -1
  365. package/dist/_chunks/ko-HVQRlfUI.mjs +0 -195
  366. package/dist/_chunks/ko-HVQRlfUI.mjs.map +0 -1
  367. package/dist/_chunks/ko-woFZPmLk.js +0 -195
  368. package/dist/_chunks/layout-CxDMdJ13.mjs +0 -471
  369. package/dist/_chunks/layout-CxDMdJ13.mjs.map +0 -1
  370. package/dist/_chunks/layout-DSeUTfMv.js +0 -488
  371. package/dist/_chunks/layout-DSeUTfMv.js.map +0 -1
  372. package/dist/_chunks/ml-BihZwQit.mjs +0 -200
  373. package/dist/_chunks/ml-BihZwQit.mjs.map +0 -1
  374. package/dist/_chunks/ml-C2W8N8k1.js +0 -200
  375. package/dist/_chunks/ml-C2W8N8k1.js.map +0 -1
  376. package/dist/_chunks/ms-BuFotyP_.js +0 -144
  377. package/dist/_chunks/ms-m_WjyWx7.mjs +0 -144
  378. package/dist/_chunks/ms-m_WjyWx7.mjs.map +0 -1
  379. package/dist/_chunks/nl-D4R9gHx5.mjs +0 -202
  380. package/dist/_chunks/nl-D4R9gHx5.mjs.map +0 -1
  381. package/dist/_chunks/nl-bbEOHChV.js +0 -202
  382. package/dist/_chunks/nl-bbEOHChV.js.map +0 -1
  383. package/dist/_chunks/objects-BcXOv6_9.js +0 -47
  384. package/dist/_chunks/objects-BcXOv6_9.js.map +0 -1
  385. package/dist/_chunks/objects-D6yBsdmx.mjs +0 -45
  386. package/dist/_chunks/objects-D6yBsdmx.mjs.map +0 -1
  387. package/dist/_chunks/pl-sbx9mSt_.mjs +0 -199
  388. package/dist/_chunks/pl-sbx9mSt_.mjs.map +0 -1
  389. package/dist/_chunks/pl-uzwG-hk7.js +0 -199
  390. package/dist/_chunks/pl-uzwG-hk7.js.map +0 -1
  391. package/dist/_chunks/pt-BR-BiOz37D9.js +0 -201
  392. package/dist/_chunks/pt-BR-C71iDxnh.mjs +0 -201
  393. package/dist/_chunks/pt-BR-C71iDxnh.mjs.map +0 -1
  394. package/dist/_chunks/pt-BsaFvS8-.mjs +0 -95
  395. package/dist/_chunks/pt-BsaFvS8-.mjs.map +0 -1
  396. package/dist/_chunks/pt-CeXQuq50.js +0 -95
  397. package/dist/_chunks/pt-CeXQuq50.js.map +0 -1
  398. package/dist/_chunks/relations-B8_Uu38Q.mjs +0 -148
  399. package/dist/_chunks/relations-B8_Uu38Q.mjs.map +0 -1
  400. package/dist/_chunks/relations-S5nNKdN3.js +0 -147
  401. package/dist/_chunks/relations-S5nNKdN3.js.map +0 -1
  402. package/dist/_chunks/ru-BE6A4Exp.mjs +0 -231
  403. package/dist/_chunks/ru-BE6A4Exp.mjs.map +0 -1
  404. package/dist/_chunks/ru-BT3ybNny.js +0 -231
  405. package/dist/_chunks/sa-CcvkYInH.js +0 -200
  406. package/dist/_chunks/sa-CcvkYInH.js.map +0 -1
  407. package/dist/_chunks/sa-Dag0k-Z8.mjs +0 -200
  408. package/dist/_chunks/sa-Dag0k-Z8.mjs.map +0 -1
  409. package/dist/_chunks/sk-BFg-R8qJ.mjs +0 -202
  410. package/dist/_chunks/sk-BFg-R8qJ.mjs.map +0 -1
  411. package/dist/_chunks/sk-CvY09Xjv.js +0 -202
  412. package/dist/_chunks/sk-CvY09Xjv.js.map +0 -1
  413. package/dist/_chunks/sv-CUnfWGsh.mjs +0 -202
  414. package/dist/_chunks/sv-CUnfWGsh.mjs.map +0 -1
  415. package/dist/_chunks/sv-MYDuzgvT.js +0 -202
  416. package/dist/_chunks/sv-MYDuzgvT.js.map +0 -1
  417. package/dist/_chunks/th-BqbI8lIT.mjs +0 -148
  418. package/dist/_chunks/th-BqbI8lIT.mjs.map +0 -1
  419. package/dist/_chunks/th-D9_GfAjc.js +0 -148
  420. package/dist/_chunks/tr-CgeK3wJM.mjs +0 -199
  421. package/dist/_chunks/tr-CgeK3wJM.mjs.map +0 -1
  422. package/dist/_chunks/tr-D9UH-O_R.js +0 -199
  423. package/dist/_chunks/tr-D9UH-O_R.js.map +0 -1
  424. package/dist/_chunks/uk-C8EiqJY7.js +0 -144
  425. package/dist/_chunks/uk-CR-zDhAY.mjs +0 -144
  426. package/dist/_chunks/uk-CR-zDhAY.mjs.map +0 -1
  427. package/dist/_chunks/useDragAndDrop-BMtgCYzL.js +0 -245
  428. package/dist/_chunks/useDragAndDrop-BMtgCYzL.js.map +0 -1
  429. package/dist/_chunks/useDragAndDrop-DJ6jqvZN.mjs +0 -228
  430. package/dist/_chunks/useDragAndDrop-DJ6jqvZN.mjs.map +0 -1
  431. package/dist/_chunks/usePrev-B9w_-eYc.js +0 -15
  432. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  433. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  434. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
  435. package/dist/_chunks/vi-CJlYDheJ.js +0 -111
  436. package/dist/_chunks/vi-DUXIk_fw.mjs +0 -111
  437. package/dist/_chunks/vi-DUXIk_fw.mjs.map +0 -1
  438. package/dist/_chunks/zh-BWZspA60.mjs +0 -209
  439. package/dist/_chunks/zh-BWZspA60.mjs.map +0 -1
  440. package/dist/_chunks/zh-CQQfszqR.js +0 -209
  441. package/dist/_chunks/zh-CQQfszqR.js.map +0 -1
  442. package/dist/_chunks/zh-Hans-9kOncHGw.js +0 -952
  443. package/dist/_chunks/zh-Hans-BPQcRIyH.mjs +0 -952
@@ -1,245 +0,0 @@
1
- "use strict";
2
- const React = require("react");
3
- const reactDnd = require("react-dnd");
4
- function _interopNamespace(e) {
5
- if (e && e.__esModule) return e;
6
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
- if (e) {
8
- for (const k in e) {
9
- if (k !== "default") {
10
- const d = Object.getOwnPropertyDescriptor(e, k);
11
- Object.defineProperty(n, k, d.get ? d : {
12
- enumerable: true,
13
- get: () => e[k]
14
- });
15
- }
16
- }
17
- }
18
- n.default = e;
19
- return Object.freeze(n);
20
- }
21
- const React__namespace = /* @__PURE__ */ _interopNamespace(React);
22
- const ItemTypes = {
23
- COMPONENT: "component",
24
- EDIT_FIELD: "editField",
25
- FIELD: "field",
26
- DYNAMIC_ZONE: "dynamicZone",
27
- RELATION: "relation",
28
- BLOCKS: "blocks"
29
- };
30
- const useKeyboardDragAndDrop = (active, index, { onCancel, onDropItem, onGrabItem, onMoveItem }) => {
31
- const [isSelected, setIsSelected] = React__namespace.useState(false);
32
- const handleMove = (movement) => {
33
- if (!isSelected) {
34
- return;
35
- }
36
- if (typeof index === "number" && onMoveItem) {
37
- if (movement === "UP") {
38
- onMoveItem(index - 1, index);
39
- } else if (movement === "DOWN") {
40
- onMoveItem(index + 1, index);
41
- }
42
- }
43
- };
44
- const handleDragClick = () => {
45
- if (isSelected) {
46
- if (onDropItem) {
47
- onDropItem(index);
48
- }
49
- setIsSelected(false);
50
- } else {
51
- if (onGrabItem) {
52
- onGrabItem(index);
53
- }
54
- setIsSelected(true);
55
- }
56
- };
57
- const handleCancel = () => {
58
- if (isSelected) {
59
- setIsSelected(false);
60
- if (onCancel) {
61
- onCancel(index);
62
- }
63
- }
64
- };
65
- const handleKeyDown = (e) => {
66
- if (!active) {
67
- return;
68
- }
69
- if (e.key === "Tab" && !isSelected) {
70
- return;
71
- }
72
- e.preventDefault();
73
- switch (e.key) {
74
- case " ":
75
- case "Enter":
76
- handleDragClick();
77
- break;
78
- case "Escape":
79
- handleCancel();
80
- break;
81
- case "ArrowDown":
82
- case "ArrowRight":
83
- handleMove("DOWN");
84
- break;
85
- case "ArrowUp":
86
- case "ArrowLeft":
87
- handleMove("UP");
88
- break;
89
- }
90
- };
91
- return handleKeyDown;
92
- };
93
- const DIRECTIONS = {
94
- UPWARD: "upward",
95
- DOWNWARD: "downward"
96
- };
97
- const DROP_SENSITIVITY = {
98
- REGULAR: "regular",
99
- IMMEDIATE: "immediate"
100
- };
101
- const useDragAndDrop = (active, {
102
- type = "STRAPI_DND",
103
- index,
104
- item,
105
- onStart,
106
- onEnd,
107
- onGrabItem,
108
- onDropItem,
109
- onCancel,
110
- onMoveItem,
111
- dropSensitivity = DROP_SENSITIVITY.REGULAR
112
- }) => {
113
- const objectRef = React__namespace.useRef(null);
114
- const [{ handlerId, isOver }, dropRef] = reactDnd.useDrop({
115
- accept: type,
116
- collect(monitor) {
117
- return {
118
- handlerId: monitor.getHandlerId(),
119
- isOver: monitor.isOver({ shallow: true })
120
- };
121
- },
122
- drop(item2) {
123
- const draggedIndex = item2.index;
124
- const newIndex = index;
125
- if (isOver && onDropItem) {
126
- onDropItem(draggedIndex, newIndex);
127
- }
128
- },
129
- hover(item2, monitor) {
130
- if (!objectRef.current || !onMoveItem) {
131
- return;
132
- }
133
- const dragIndex = item2.index;
134
- const newIndex = index;
135
- const hoverBoundingRect = objectRef.current?.getBoundingClientRect();
136
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
137
- const clientOffset = monitor.getClientOffset();
138
- if (!clientOffset) return;
139
- const hoverClientY = clientOffset && clientOffset.y - hoverBoundingRect.top;
140
- if (typeof dragIndex === "number" && typeof newIndex === "number") {
141
- if (dragIndex === newIndex) {
142
- return;
143
- }
144
- if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {
145
- if (dragIndex < newIndex && hoverClientY < hoverMiddleY) {
146
- return;
147
- }
148
- if (dragIndex > newIndex && hoverClientY > hoverMiddleY) {
149
- return;
150
- }
151
- }
152
- onMoveItem(newIndex, dragIndex);
153
- item2.index = newIndex;
154
- } else {
155
- if (Array.isArray(dragIndex) && Array.isArray(newIndex)) {
156
- const minLength = Math.min(dragIndex.length, newIndex.length);
157
- let areEqual = true;
158
- let isLessThan = false;
159
- let isGreaterThan = false;
160
- for (let i = 0; i < minLength; i++) {
161
- if (dragIndex[i] < newIndex[i]) {
162
- isLessThan = true;
163
- areEqual = false;
164
- break;
165
- } else if (dragIndex[i] > newIndex[i]) {
166
- isGreaterThan = true;
167
- areEqual = false;
168
- break;
169
- }
170
- }
171
- if (areEqual && dragIndex.length === newIndex.length) {
172
- return;
173
- }
174
- if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {
175
- if (isLessThan && !isGreaterThan && hoverClientY < hoverMiddleY) {
176
- return;
177
- }
178
- if (isGreaterThan && !isLessThan && hoverClientY > hoverMiddleY) {
179
- return;
180
- }
181
- }
182
- }
183
- onMoveItem(newIndex, dragIndex);
184
- item2.index = newIndex;
185
- }
186
- }
187
- });
188
- const getDragDirection = (monitor) => {
189
- if (monitor && monitor.isDragging() && !monitor.didDrop() && monitor.getInitialClientOffset() && monitor.getClientOffset()) {
190
- const deltaY = monitor.getInitialClientOffset().y - monitor.getClientOffset().y;
191
- if (deltaY > 0) return DIRECTIONS.UPWARD;
192
- if (deltaY < 0) return DIRECTIONS.DOWNWARD;
193
- return null;
194
- }
195
- return null;
196
- };
197
- const [{ isDragging, direction }, dragRef, dragPreviewRef] = reactDnd.useDrag({
198
- type,
199
- item() {
200
- if (onStart) {
201
- onStart();
202
- }
203
- const { width } = objectRef.current?.getBoundingClientRect() ?? {};
204
- return { index, width, ...item };
205
- },
206
- end() {
207
- if (onEnd) {
208
- onEnd();
209
- }
210
- },
211
- canDrag: active,
212
- /**
213
- * This is useful when the item is in a virtualized list.
214
- * However, if we don't have an ID then we want the libraries
215
- * defaults to take care of this.
216
- */
217
- isDragging: item?.id ? (monitor) => {
218
- return item.id === monitor.getItem().id;
219
- } : void 0,
220
- collect: (monitor) => ({
221
- isDragging: monitor.isDragging(),
222
- initialOffset: monitor.getInitialClientOffset(),
223
- currentOffset: monitor.getClientOffset(),
224
- direction: getDragDirection(monitor)
225
- })
226
- });
227
- const handleKeyDown = useKeyboardDragAndDrop(active, index, {
228
- onGrabItem,
229
- onDropItem,
230
- onCancel,
231
- onMoveItem
232
- });
233
- return [
234
- { handlerId, isDragging, handleKeyDown, isOverDropTarget: isOver, direction },
235
- objectRef,
236
- dropRef,
237
- dragRef,
238
- dragPreviewRef
239
- ];
240
- };
241
- exports.DIRECTIONS = DIRECTIONS;
242
- exports.DROP_SENSITIVITY = DROP_SENSITIVITY;
243
- exports.ItemTypes = ItemTypes;
244
- exports.useDragAndDrop = useDragAndDrop;
245
- //# sourceMappingURL=useDragAndDrop-BMtgCYzL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDragAndDrop-BMtgCYzL.js","sources":["../../admin/src/constants/dragAndDrop.ts","../../admin/src/hooks/useKeyboardDragAndDrop.ts","../../admin/src/hooks/useDragAndDrop.ts"],"sourcesContent":["export const ItemTypes = {\n COMPONENT: 'component',\n EDIT_FIELD: 'editField',\n FIELD: 'field',\n DYNAMIC_ZONE: 'dynamicZone',\n RELATION: 'relation',\n BLOCKS: 'blocks',\n} as const;\n","import * as React from 'react';\n\nexport type UseKeyboardDragAndDropCallbacks<TIndex extends number | Array<number> = number> = {\n onCancel?: (index: TIndex) => void;\n onDropItem?: (currentIndex: TIndex, newIndex?: TIndex) => void;\n onGrabItem?: (index: TIndex) => void;\n onMoveItem?: (newIndex: TIndex, currentIndex: TIndex) => void;\n};\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n */\nexport const useKeyboardDragAndDrop = <TIndex extends number | Array<number> = number>(\n active: boolean,\n index: TIndex,\n { onCancel, onDropItem, onGrabItem, onMoveItem }: UseKeyboardDragAndDropCallbacks<TIndex>\n) => {\n const [isSelected, setIsSelected] = React.useState(false);\n\n const handleMove = (movement: 'UP' | 'DOWN') => {\n if (!isSelected) {\n return;\n }\n if (typeof index === 'number' && onMoveItem) {\n if (movement === 'UP') {\n onMoveItem((index - 1) as TIndex, index);\n } else if (movement === 'DOWN') {\n onMoveItem((index + 1) as TIndex, index);\n }\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n const handleKeyDown = <E extends Element>(e: React.KeyboardEvent<E>) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import * as React from 'react';\n\nimport {\n useDrag,\n useDrop,\n type HandlerManager,\n type ConnectDragSource,\n type ConnectDropTarget,\n type ConnectDragPreview,\n type DragSourceMonitor,\n} from 'react-dnd';\n\nimport {\n useKeyboardDragAndDrop,\n type UseKeyboardDragAndDropCallbacks,\n} from './useKeyboardDragAndDrop';\n\nimport type { Data } from '@strapi/types';\n\nconst DIRECTIONS = {\n UPWARD: 'upward',\n DOWNWARD: 'downward',\n} as const;\n\nconst DROP_SENSITIVITY = {\n REGULAR: 'regular',\n IMMEDIATE: 'immediate',\n} as const;\n\ninterface UseDragAndDropOptions<\n TIndex extends number | Array<number> = number,\n TItem extends { index: TIndex } = { index: TIndex },\n> extends UseKeyboardDragAndDropCallbacks<TIndex> {\n type?: string;\n index: TIndex;\n item?: TItem;\n onStart?: () => void;\n onEnd?: () => void;\n dropSensitivity?: (typeof DROP_SENSITIVITY)[keyof typeof DROP_SENSITIVITY];\n}\n\ntype Identifier = ReturnType<HandlerManager['getHandlerId']>;\n\ntype UseDragAndDropReturn<E extends Element = HTMLElement> = [\n props: {\n handlerId: Identifier;\n isDragging: boolean;\n handleKeyDown: <E extends Element>(event: React.KeyboardEvent<E>) => void;\n isOverDropTarget: boolean;\n direction: (typeof DIRECTIONS)[keyof typeof DIRECTIONS] | null;\n },\n objectRef: React.RefObject<E>,\n dropRef: ConnectDropTarget,\n dragRef: ConnectDragSource,\n dragPreviewRef: ConnectDragPreview,\n];\n\ntype DropCollectedProps = {\n handlerId: Identifier;\n isOver: boolean;\n};\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n */\nconst useDragAndDrop = <\n TIndex extends number | Array<number>,\n TItem extends { index: TIndex; id?: Data.ID; [key: string]: unknown } = {\n index: TIndex;\n [key: string]: unknown;\n },\n E extends Element = HTMLElement,\n>(\n active: boolean,\n {\n type = 'STRAPI_DND',\n index,\n item,\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = DROP_SENSITIVITY.REGULAR,\n }: UseDragAndDropOptions<TIndex, TItem>\n): UseDragAndDropReturn<E> => {\n const objectRef = React.useRef<E>(null);\n\n const [{ handlerId, isOver }, dropRef] = useDrop<TItem, void, DropCollectedProps>({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n isOver: monitor.isOver({ shallow: true }),\n };\n },\n drop(item) {\n const draggedIndex = item.index;\n const newIndex = index;\n\n if (isOver && onDropItem) {\n onDropItem(draggedIndex, newIndex);\n }\n },\n hover(item, monitor) {\n if (!objectRef.current || !onMoveItem) {\n return;\n }\n\n const dragIndex = item.index;\n const newIndex = index;\n\n const hoverBoundingRect = objectRef.current?.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) return;\n\n const hoverClientY = clientOffset && clientOffset.y - hoverBoundingRect.top;\n if (typeof dragIndex === 'number' && typeof newIndex === 'number') {\n if (dragIndex === newIndex) {\n // Don't replace items with themselves\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (dragIndex < newIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n } else {\n // Using numbers as indices doesn't work for nested list items with path like [1, 1, 0]\n if (Array.isArray(dragIndex) && Array.isArray(newIndex)) {\n // Indices comparison to find item position in nested list\n const minLength = Math.min(dragIndex.length, newIndex.length);\n let areEqual = true;\n let isLessThan = false;\n let isGreaterThan = false;\n\n for (let i = 0; i < minLength; i++) {\n if (dragIndex[i] < newIndex[i]) {\n isLessThan = true;\n areEqual = false;\n break;\n } else if (dragIndex[i] > newIndex[i]) {\n isGreaterThan = true;\n areEqual = false;\n break;\n }\n }\n\n // Don't replace items with themselves\n if (areEqual && dragIndex.length === newIndex.length) {\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (isLessThan && !isGreaterThan && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (isGreaterThan && !isLessThan && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n }\n\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n }\n },\n });\n\n const getDragDirection = (monitor: DragSourceMonitor<TItem, void>) => {\n if (\n monitor &&\n monitor.isDragging() &&\n !monitor.didDrop() &&\n monitor.getInitialClientOffset() &&\n monitor.getClientOffset()\n ) {\n const deltaY = monitor.getInitialClientOffset()!.y - monitor.getClientOffset()!.y;\n\n if (deltaY > 0) return DIRECTIONS.UPWARD;\n\n if (deltaY < 0) return DIRECTIONS.DOWNWARD;\n\n return null;\n }\n\n return null;\n };\n\n const [{ isDragging, direction }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item?.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n initialOffset: monitor.getInitialClientOffset(),\n currentOffset: monitor.getClientOffset(),\n direction: getDragDirection(monitor),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [\n { handlerId, isDragging, handleKeyDown, isOverDropTarget: isOver, direction },\n objectRef,\n dropRef,\n dragRef,\n dragPreviewRef,\n ];\n};\n\nexport {\n useDragAndDrop,\n UseDragAndDropReturn,\n UseDragAndDropOptions,\n DIRECTIONS,\n DROP_SENSITIVITY,\n};\n"],"names":["React","useDrop","item","useDrag"],"mappings":"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"}
@@ -1,228 +0,0 @@
1
- import * as React from "react";
2
- import { useDrop, useDrag } from "react-dnd";
3
- const ItemTypes = {
4
- COMPONENT: "component",
5
- EDIT_FIELD: "editField",
6
- FIELD: "field",
7
- DYNAMIC_ZONE: "dynamicZone",
8
- RELATION: "relation",
9
- BLOCKS: "blocks"
10
- };
11
- const useKeyboardDragAndDrop = (active, index, { onCancel, onDropItem, onGrabItem, onMoveItem }) => {
12
- const [isSelected, setIsSelected] = React.useState(false);
13
- const handleMove = (movement) => {
14
- if (!isSelected) {
15
- return;
16
- }
17
- if (typeof index === "number" && onMoveItem) {
18
- if (movement === "UP") {
19
- onMoveItem(index - 1, index);
20
- } else if (movement === "DOWN") {
21
- onMoveItem(index + 1, index);
22
- }
23
- }
24
- };
25
- const handleDragClick = () => {
26
- if (isSelected) {
27
- if (onDropItem) {
28
- onDropItem(index);
29
- }
30
- setIsSelected(false);
31
- } else {
32
- if (onGrabItem) {
33
- onGrabItem(index);
34
- }
35
- setIsSelected(true);
36
- }
37
- };
38
- const handleCancel = () => {
39
- if (isSelected) {
40
- setIsSelected(false);
41
- if (onCancel) {
42
- onCancel(index);
43
- }
44
- }
45
- };
46
- const handleKeyDown = (e) => {
47
- if (!active) {
48
- return;
49
- }
50
- if (e.key === "Tab" && !isSelected) {
51
- return;
52
- }
53
- e.preventDefault();
54
- switch (e.key) {
55
- case " ":
56
- case "Enter":
57
- handleDragClick();
58
- break;
59
- case "Escape":
60
- handleCancel();
61
- break;
62
- case "ArrowDown":
63
- case "ArrowRight":
64
- handleMove("DOWN");
65
- break;
66
- case "ArrowUp":
67
- case "ArrowLeft":
68
- handleMove("UP");
69
- break;
70
- }
71
- };
72
- return handleKeyDown;
73
- };
74
- const DIRECTIONS = {
75
- UPWARD: "upward",
76
- DOWNWARD: "downward"
77
- };
78
- const DROP_SENSITIVITY = {
79
- REGULAR: "regular",
80
- IMMEDIATE: "immediate"
81
- };
82
- const useDragAndDrop = (active, {
83
- type = "STRAPI_DND",
84
- index,
85
- item,
86
- onStart,
87
- onEnd,
88
- onGrabItem,
89
- onDropItem,
90
- onCancel,
91
- onMoveItem,
92
- dropSensitivity = DROP_SENSITIVITY.REGULAR
93
- }) => {
94
- const objectRef = React.useRef(null);
95
- const [{ handlerId, isOver }, dropRef] = useDrop({
96
- accept: type,
97
- collect(monitor) {
98
- return {
99
- handlerId: monitor.getHandlerId(),
100
- isOver: monitor.isOver({ shallow: true })
101
- };
102
- },
103
- drop(item2) {
104
- const draggedIndex = item2.index;
105
- const newIndex = index;
106
- if (isOver && onDropItem) {
107
- onDropItem(draggedIndex, newIndex);
108
- }
109
- },
110
- hover(item2, monitor) {
111
- if (!objectRef.current || !onMoveItem) {
112
- return;
113
- }
114
- const dragIndex = item2.index;
115
- const newIndex = index;
116
- const hoverBoundingRect = objectRef.current?.getBoundingClientRect();
117
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
118
- const clientOffset = monitor.getClientOffset();
119
- if (!clientOffset) return;
120
- const hoverClientY = clientOffset && clientOffset.y - hoverBoundingRect.top;
121
- if (typeof dragIndex === "number" && typeof newIndex === "number") {
122
- if (dragIndex === newIndex) {
123
- return;
124
- }
125
- if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {
126
- if (dragIndex < newIndex && hoverClientY < hoverMiddleY) {
127
- return;
128
- }
129
- if (dragIndex > newIndex && hoverClientY > hoverMiddleY) {
130
- return;
131
- }
132
- }
133
- onMoveItem(newIndex, dragIndex);
134
- item2.index = newIndex;
135
- } else {
136
- if (Array.isArray(dragIndex) && Array.isArray(newIndex)) {
137
- const minLength = Math.min(dragIndex.length, newIndex.length);
138
- let areEqual = true;
139
- let isLessThan = false;
140
- let isGreaterThan = false;
141
- for (let i = 0; i < minLength; i++) {
142
- if (dragIndex[i] < newIndex[i]) {
143
- isLessThan = true;
144
- areEqual = false;
145
- break;
146
- } else if (dragIndex[i] > newIndex[i]) {
147
- isGreaterThan = true;
148
- areEqual = false;
149
- break;
150
- }
151
- }
152
- if (areEqual && dragIndex.length === newIndex.length) {
153
- return;
154
- }
155
- if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {
156
- if (isLessThan && !isGreaterThan && hoverClientY < hoverMiddleY) {
157
- return;
158
- }
159
- if (isGreaterThan && !isLessThan && hoverClientY > hoverMiddleY) {
160
- return;
161
- }
162
- }
163
- }
164
- onMoveItem(newIndex, dragIndex);
165
- item2.index = newIndex;
166
- }
167
- }
168
- });
169
- const getDragDirection = (monitor) => {
170
- if (monitor && monitor.isDragging() && !monitor.didDrop() && monitor.getInitialClientOffset() && monitor.getClientOffset()) {
171
- const deltaY = monitor.getInitialClientOffset().y - monitor.getClientOffset().y;
172
- if (deltaY > 0) return DIRECTIONS.UPWARD;
173
- if (deltaY < 0) return DIRECTIONS.DOWNWARD;
174
- return null;
175
- }
176
- return null;
177
- };
178
- const [{ isDragging, direction }, dragRef, dragPreviewRef] = useDrag({
179
- type,
180
- item() {
181
- if (onStart) {
182
- onStart();
183
- }
184
- const { width } = objectRef.current?.getBoundingClientRect() ?? {};
185
- return { index, width, ...item };
186
- },
187
- end() {
188
- if (onEnd) {
189
- onEnd();
190
- }
191
- },
192
- canDrag: active,
193
- /**
194
- * This is useful when the item is in a virtualized list.
195
- * However, if we don't have an ID then we want the libraries
196
- * defaults to take care of this.
197
- */
198
- isDragging: item?.id ? (monitor) => {
199
- return item.id === monitor.getItem().id;
200
- } : void 0,
201
- collect: (monitor) => ({
202
- isDragging: monitor.isDragging(),
203
- initialOffset: monitor.getInitialClientOffset(),
204
- currentOffset: monitor.getClientOffset(),
205
- direction: getDragDirection(monitor)
206
- })
207
- });
208
- const handleKeyDown = useKeyboardDragAndDrop(active, index, {
209
- onGrabItem,
210
- onDropItem,
211
- onCancel,
212
- onMoveItem
213
- });
214
- return [
215
- { handlerId, isDragging, handleKeyDown, isOverDropTarget: isOver, direction },
216
- objectRef,
217
- dropRef,
218
- dragRef,
219
- dragPreviewRef
220
- ];
221
- };
222
- export {
223
- DROP_SENSITIVITY as D,
224
- ItemTypes as I,
225
- DIRECTIONS as a,
226
- useDragAndDrop as u
227
- };
228
- //# sourceMappingURL=useDragAndDrop-DJ6jqvZN.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDragAndDrop-DJ6jqvZN.mjs","sources":["../../admin/src/constants/dragAndDrop.ts","../../admin/src/hooks/useKeyboardDragAndDrop.ts","../../admin/src/hooks/useDragAndDrop.ts"],"sourcesContent":["export const ItemTypes = {\n COMPONENT: 'component',\n EDIT_FIELD: 'editField',\n FIELD: 'field',\n DYNAMIC_ZONE: 'dynamicZone',\n RELATION: 'relation',\n BLOCKS: 'blocks',\n} as const;\n","import * as React from 'react';\n\nexport type UseKeyboardDragAndDropCallbacks<TIndex extends number | Array<number> = number> = {\n onCancel?: (index: TIndex) => void;\n onDropItem?: (currentIndex: TIndex, newIndex?: TIndex) => void;\n onGrabItem?: (index: TIndex) => void;\n onMoveItem?: (newIndex: TIndex, currentIndex: TIndex) => void;\n};\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n */\nexport const useKeyboardDragAndDrop = <TIndex extends number | Array<number> = number>(\n active: boolean,\n index: TIndex,\n { onCancel, onDropItem, onGrabItem, onMoveItem }: UseKeyboardDragAndDropCallbacks<TIndex>\n) => {\n const [isSelected, setIsSelected] = React.useState(false);\n\n const handleMove = (movement: 'UP' | 'DOWN') => {\n if (!isSelected) {\n return;\n }\n if (typeof index === 'number' && onMoveItem) {\n if (movement === 'UP') {\n onMoveItem((index - 1) as TIndex, index);\n } else if (movement === 'DOWN') {\n onMoveItem((index + 1) as TIndex, index);\n }\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n const handleKeyDown = <E extends Element>(e: React.KeyboardEvent<E>) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import * as React from 'react';\n\nimport {\n useDrag,\n useDrop,\n type HandlerManager,\n type ConnectDragSource,\n type ConnectDropTarget,\n type ConnectDragPreview,\n type DragSourceMonitor,\n} from 'react-dnd';\n\nimport {\n useKeyboardDragAndDrop,\n type UseKeyboardDragAndDropCallbacks,\n} from './useKeyboardDragAndDrop';\n\nimport type { Data } from '@strapi/types';\n\nconst DIRECTIONS = {\n UPWARD: 'upward',\n DOWNWARD: 'downward',\n} as const;\n\nconst DROP_SENSITIVITY = {\n REGULAR: 'regular',\n IMMEDIATE: 'immediate',\n} as const;\n\ninterface UseDragAndDropOptions<\n TIndex extends number | Array<number> = number,\n TItem extends { index: TIndex } = { index: TIndex },\n> extends UseKeyboardDragAndDropCallbacks<TIndex> {\n type?: string;\n index: TIndex;\n item?: TItem;\n onStart?: () => void;\n onEnd?: () => void;\n dropSensitivity?: (typeof DROP_SENSITIVITY)[keyof typeof DROP_SENSITIVITY];\n}\n\ntype Identifier = ReturnType<HandlerManager['getHandlerId']>;\n\ntype UseDragAndDropReturn<E extends Element = HTMLElement> = [\n props: {\n handlerId: Identifier;\n isDragging: boolean;\n handleKeyDown: <E extends Element>(event: React.KeyboardEvent<E>) => void;\n isOverDropTarget: boolean;\n direction: (typeof DIRECTIONS)[keyof typeof DIRECTIONS] | null;\n },\n objectRef: React.RefObject<E>,\n dropRef: ConnectDropTarget,\n dragRef: ConnectDragSource,\n dragPreviewRef: ConnectDragPreview,\n];\n\ntype DropCollectedProps = {\n handlerId: Identifier;\n isOver: boolean;\n};\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n */\nconst useDragAndDrop = <\n TIndex extends number | Array<number>,\n TItem extends { index: TIndex; id?: Data.ID; [key: string]: unknown } = {\n index: TIndex;\n [key: string]: unknown;\n },\n E extends Element = HTMLElement,\n>(\n active: boolean,\n {\n type = 'STRAPI_DND',\n index,\n item,\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = DROP_SENSITIVITY.REGULAR,\n }: UseDragAndDropOptions<TIndex, TItem>\n): UseDragAndDropReturn<E> => {\n const objectRef = React.useRef<E>(null);\n\n const [{ handlerId, isOver }, dropRef] = useDrop<TItem, void, DropCollectedProps>({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n isOver: monitor.isOver({ shallow: true }),\n };\n },\n drop(item) {\n const draggedIndex = item.index;\n const newIndex = index;\n\n if (isOver && onDropItem) {\n onDropItem(draggedIndex, newIndex);\n }\n },\n hover(item, monitor) {\n if (!objectRef.current || !onMoveItem) {\n return;\n }\n\n const dragIndex = item.index;\n const newIndex = index;\n\n const hoverBoundingRect = objectRef.current?.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n if (!clientOffset) return;\n\n const hoverClientY = clientOffset && clientOffset.y - hoverBoundingRect.top;\n if (typeof dragIndex === 'number' && typeof newIndex === 'number') {\n if (dragIndex === newIndex) {\n // Don't replace items with themselves\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (dragIndex < newIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n } else {\n // Using numbers as indices doesn't work for nested list items with path like [1, 1, 0]\n if (Array.isArray(dragIndex) && Array.isArray(newIndex)) {\n // Indices comparison to find item position in nested list\n const minLength = Math.min(dragIndex.length, newIndex.length);\n let areEqual = true;\n let isLessThan = false;\n let isGreaterThan = false;\n\n for (let i = 0; i < minLength; i++) {\n if (dragIndex[i] < newIndex[i]) {\n isLessThan = true;\n areEqual = false;\n break;\n } else if (dragIndex[i] > newIndex[i]) {\n isGreaterThan = true;\n areEqual = false;\n break;\n }\n }\n\n // Don't replace items with themselves\n if (areEqual && dragIndex.length === newIndex.length) {\n return;\n }\n\n if (dropSensitivity === DROP_SENSITIVITY.REGULAR) {\n // Dragging downwards\n if (isLessThan && !isGreaterThan && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (isGreaterThan && !isLessThan && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n }\n\n onMoveItem(newIndex, dragIndex);\n item.index = newIndex;\n }\n },\n });\n\n const getDragDirection = (monitor: DragSourceMonitor<TItem, void>) => {\n if (\n monitor &&\n monitor.isDragging() &&\n !monitor.didDrop() &&\n monitor.getInitialClientOffset() &&\n monitor.getClientOffset()\n ) {\n const deltaY = monitor.getInitialClientOffset()!.y - monitor.getClientOffset()!.y;\n\n if (deltaY > 0) return DIRECTIONS.UPWARD;\n\n if (deltaY < 0) return DIRECTIONS.DOWNWARD;\n\n return null;\n }\n\n return null;\n };\n\n const [{ isDragging, direction }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item?.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n initialOffset: monitor.getInitialClientOffset(),\n currentOffset: monitor.getClientOffset(),\n direction: getDragDirection(monitor),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [\n { handlerId, isDragging, handleKeyDown, isOverDropTarget: isOver, direction },\n objectRef,\n dropRef,\n dragRef,\n dragPreviewRef,\n ];\n};\n\nexport {\n useDragAndDrop,\n UseDragAndDropReturn,\n UseDragAndDropOptions,\n DIRECTIONS,\n DROP_SENSITIVITY,\n};\n"],"names":["item"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- const React = require("react");
3
- const prefixFileUrlWithBackendUrl = (fileURL) => {
4
- return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
5
- };
6
- const usePrev = (value) => {
7
- const ref = React.useRef();
8
- React.useEffect(() => {
9
- ref.current = value;
10
- }, [value]);
11
- return ref.current;
12
- };
13
- exports.prefixFileUrlWithBackendUrl = prefixFileUrlWithBackendUrl;
14
- exports.usePrev = usePrev;
15
- //# sourceMappingURL=usePrev-B9w_-eYc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrev-B9w_-eYc.js","sources":["../../admin/src/utils/urls.ts","../../admin/src/hooks/usePrev.ts"],"sourcesContent":["const prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\nexport { prefixFileUrlWithBackendUrl };\n","import { useEffect, useRef } from 'react';\n\nexport const usePrev = <T>(value: T): T | undefined => {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n"],"names":["useRef","useEffect"],"mappings":";;AAAM,MAAA,8BAA8B,CAAC,YAAyC;AAC5E,SAAO,CAAC,CAAC,WAAW,QAAQ,WAAW,GAAG,IAAI,GAAG,OAAO,OAAO,UAAU,GAAG,OAAO,KAAK;AAC1F;ACAa,MAAA,UAAU,CAAI,UAA4B;AACrD,QAAM,MAAMA,MAAAA,OAAU;AAEtBC,QAAAA,UAAU,MAAM;AACd,QAAI,UAAU;AAAA,EAAA,GACb,CAAC,KAAK,CAAC;AAEV,SAAO,IAAI;AACb;;;"}
@@ -1,16 +0,0 @@
1
- import { useRef, useEffect } from "react";
2
- const prefixFileUrlWithBackendUrl = (fileURL) => {
3
- return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
4
- };
5
- const usePrev = (value) => {
6
- const ref = useRef();
7
- useEffect(() => {
8
- ref.current = value;
9
- }, [value]);
10
- return ref.current;
11
- };
12
- export {
13
- prefixFileUrlWithBackendUrl as p,
14
- usePrev as u
15
- };
16
- //# sourceMappingURL=usePrev-DH6iah0A.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrev-DH6iah0A.mjs","sources":["../../admin/src/utils/urls.ts","../../admin/src/hooks/usePrev.ts"],"sourcesContent":["const prefixFileUrlWithBackendUrl = (fileURL?: string): string | undefined => {\n return !!fileURL && fileURL.startsWith('/') ? `${window.strapi.backendURL}${fileURL}` : fileURL;\n};\n\nexport { prefixFileUrlWithBackendUrl };\n","import { useEffect, useRef } from 'react';\n\nexport const usePrev = <T>(value: T): T | undefined => {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n"],"names":[],"mappings":";AAAM,MAAA,8BAA8B,CAAC,YAAyC;AAC5E,SAAO,CAAC,CAAC,WAAW,QAAQ,WAAW,GAAG,IAAI,GAAG,OAAO,OAAO,UAAU,GAAG,OAAO,KAAK;AAC1F;ACAa,MAAA,UAAU,CAAI,UAA4B;AACrD,QAAM,MAAM,OAAU;AAEtB,YAAU,MAAM;AACd,QAAI,UAAU;AAAA,EAAA,GACb,CAAC,KAAK,CAAC;AAEV,SAAO,IAAI;AACb;"}