@strapi/content-manager 0.0.0-next.c22d1aa5024dc77092c3df7e990ad89dcd79e7b0 → 0.0.0-next.c57731c6e91ae024fa544ad986d80a3c4a489dbf

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 (221) hide show
  1. package/dist/admin/chunks/{CardDragPreview-DwuraT0K.js → CardDragPreview-DwuraT0K.mjs} +1 -1
  2. package/dist/admin/chunks/CardDragPreview-DwuraT0K.mjs.map +1 -0
  3. package/dist/admin/chunks/{ComponentConfigurationPage-Dj1bNvEF.js → ComponentConfigurationPage-BqvYunl3.js} +4 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-Dj1bNvEF.js.map → ComponentConfigurationPage-BqvYunl3.js.map} +1 -1
  5. package/dist/admin/chunks/{ComponentConfigurationPage-Co2eC_-C.js → ComponentConfigurationPage-C9JWxciR.mjs} +9 -8
  6. package/dist/admin/chunks/ComponentConfigurationPage-C9JWxciR.mjs.map +1 -0
  7. package/dist/admin/chunks/{ComponentIcon-BZcTc4rj.js → ComponentIcon-BZcTc4rj.mjs} +1 -1
  8. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.mjs.map +1 -0
  9. package/dist/admin/chunks/{EditConfigurationPage-Dm5woBp9.js → EditConfigurationPage-DE_FVPa6.js} +4 -3
  10. package/dist/admin/chunks/{EditConfigurationPage-Dm5woBp9.js.map → EditConfigurationPage-DE_FVPa6.js.map} +1 -1
  11. package/dist/admin/chunks/{EditConfigurationPage-zd9OLaVh.js → EditConfigurationPage-DqBbH_tt.mjs} +9 -8
  12. package/dist/admin/chunks/EditConfigurationPage-DqBbH_tt.mjs.map +1 -0
  13. package/dist/admin/chunks/{EditViewPage-DsBKmSPb.js → EditViewPage-BPrkSLuI.js} +7 -10
  14. package/dist/admin/chunks/EditViewPage-BPrkSLuI.js.map +1 -0
  15. package/dist/admin/chunks/{EditViewPage-kAIaYTg0.js → EditViewPage-CxmB65b6.mjs} +11 -14
  16. package/dist/admin/chunks/EditViewPage-CxmB65b6.mjs.map +1 -0
  17. package/dist/admin/chunks/{FieldTypeIcon-BY6MrVF4.js → FieldTypeIcon-BY6MrVF4.mjs} +1 -1
  18. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.mjs.map +1 -0
  19. package/dist/admin/chunks/{Form-BPIhJKyf.js → Form-CnU6eQgF.js} +2 -2
  20. package/dist/admin/chunks/{Form-BPIhJKyf.js.map → Form-CnU6eQgF.js.map} +1 -1
  21. package/dist/admin/chunks/{Form-BO69oITe.js → Form-DBte52Jp.mjs} +5 -5
  22. package/dist/admin/chunks/Form-DBte52Jp.mjs.map +1 -0
  23. package/dist/admin/chunks/{History-BzvpM-Gw.js → History-BZnq2Bi2.mjs} +11 -11
  24. package/dist/admin/chunks/History-BZnq2Bi2.mjs.map +1 -0
  25. package/dist/admin/chunks/{History-DBQ96jv2.js → History-CRk6-vwW.js} +6 -6
  26. package/dist/admin/chunks/{History-DBQ96jv2.js.map → History-CRk6-vwW.js.map} +1 -1
  27. package/dist/admin/chunks/{Input-Dh1MtWno.js → Input-CoyG0mFB.js} +748 -313
  28. package/dist/admin/chunks/Input-CoyG0mFB.js.map +1 -0
  29. package/dist/admin/chunks/{Input-BlDcbhUC.js → Input-CquZCZx3.mjs} +755 -320
  30. package/dist/admin/chunks/Input-CquZCZx3.mjs.map +1 -0
  31. package/dist/admin/chunks/{ListConfigurationPage-8d3BsQIr.js → ListConfigurationPage-CyWNH3Mv.js} +3 -2
  32. package/dist/admin/chunks/{ListConfigurationPage-DK0ARecn.js.map → ListConfigurationPage-CyWNH3Mv.js.map} +1 -1
  33. package/dist/admin/chunks/{ListConfigurationPage-DK0ARecn.js → ListConfigurationPage-T4REP8DG.mjs} +8 -7
  34. package/dist/admin/chunks/ListConfigurationPage-T4REP8DG.mjs.map +1 -0
  35. package/dist/admin/chunks/{ListViewPage-CS1ED-vI.js → ListViewPage-Br5s3p1I.js} +4 -3
  36. package/dist/admin/chunks/{ListViewPage-BF2q7N6W.js.map → ListViewPage-Br5s3p1I.js.map} +1 -1
  37. package/dist/admin/chunks/{ListViewPage-BF2q7N6W.js → ListViewPage-eJAJfQ91.mjs} +6 -5
  38. package/dist/admin/chunks/ListViewPage-eJAJfQ91.mjs.map +1 -0
  39. package/dist/admin/chunks/{NoContentTypePage-C5Qxz3I4.js → NoContentTypePage-BZlQtroN.js} +3 -2
  40. package/dist/admin/chunks/{NoContentTypePage-C5Qxz3I4.js.map → NoContentTypePage-BZlQtroN.js.map} +1 -1
  41. package/dist/admin/chunks/{NoContentTypePage-DjdXr1-j.js → NoContentTypePage-Ccor5E27.mjs} +3 -2
  42. package/dist/admin/chunks/NoContentTypePage-Ccor5E27.mjs.map +1 -0
  43. package/dist/admin/chunks/{NoPermissionsPage-C5dC0MtL.js → NoPermissionsPage-BeqSJ6Je.js} +3 -2
  44. package/dist/admin/chunks/{NoPermissionsPage-BUwtKUEP.js.map → NoPermissionsPage-BeqSJ6Je.js.map} +1 -1
  45. package/dist/admin/chunks/{NoPermissionsPage-BUwtKUEP.js → NoPermissionsPage-BpCoaqBJ.mjs} +3 -2
  46. package/dist/admin/chunks/NoPermissionsPage-BpCoaqBJ.mjs.map +1 -0
  47. package/dist/admin/chunks/{Preview-DBvmhR7Q.js → Preview-DYyTSe9I.js} +236 -92
  48. package/dist/admin/chunks/Preview-DYyTSe9I.js.map +1 -0
  49. package/dist/admin/chunks/{Preview-C9kXTY6C.js → Preview-VVd4rU0x.mjs} +244 -100
  50. package/dist/admin/chunks/Preview-VVd4rU0x.mjs.map +1 -0
  51. package/dist/admin/chunks/{Relations-Cn0atFpd.js → Relations-CiBR_0b1.mjs} +471 -7
  52. package/dist/admin/chunks/Relations-CiBR_0b1.mjs.map +1 -0
  53. package/dist/admin/chunks/{Relations-XHxDKEvT.js → Relations-PF93YcFV.js} +469 -4
  54. package/dist/admin/chunks/Relations-PF93YcFV.js.map +1 -0
  55. package/dist/admin/chunks/{ar-DckYq_WK.js → ar-DckYq_WK.mjs} +1 -1
  56. package/dist/admin/chunks/ar-DckYq_WK.mjs.map +1 -0
  57. package/dist/admin/chunks/{ca-DviY7mRj.js → ca-DviY7mRj.mjs} +1 -1
  58. package/dist/admin/chunks/ca-DviY7mRj.mjs.map +1 -0
  59. package/dist/admin/chunks/{cs-C7OSYFQ7.js → cs-C7OSYFQ7.mjs} +1 -1
  60. package/dist/admin/chunks/cs-C7OSYFQ7.mjs.map +1 -0
  61. package/dist/admin/chunks/{de-5QRlDHyR.js → de-5QRlDHyR.mjs} +1 -1
  62. package/dist/admin/chunks/de-5QRlDHyR.mjs.map +1 -0
  63. package/dist/admin/chunks/{en-LfhocNG2.js → en-CImiNxXE.mjs} +3 -1
  64. package/dist/admin/chunks/en-CImiNxXE.mjs.map +1 -0
  65. package/dist/admin/chunks/{en-C1CjdAtC.js → en-CLf4SuMQ.js} +3 -1
  66. package/dist/admin/chunks/{en-LfhocNG2.js.map → en-CLf4SuMQ.js.map} +1 -1
  67. package/dist/admin/chunks/{es-DkoWSExG.js → es-DkoWSExG.mjs} +1 -1
  68. package/dist/admin/chunks/es-DkoWSExG.mjs.map +1 -0
  69. package/dist/admin/chunks/{eu-BG1xX7HK.js → eu-BG1xX7HK.mjs} +1 -1
  70. package/dist/admin/chunks/eu-BG1xX7HK.mjs.map +1 -0
  71. package/dist/admin/chunks/{fr-CFdRaRVj.js → fr-CFdRaRVj.mjs} +1 -1
  72. package/dist/admin/chunks/fr-CFdRaRVj.mjs.map +1 -0
  73. package/dist/admin/chunks/{gu-D5MMMXRs.js → gu-D5MMMXRs.mjs} +1 -1
  74. package/dist/admin/chunks/gu-D5MMMXRs.mjs.map +1 -0
  75. package/dist/admin/chunks/{hi-lp17SCjr.js → hi-lp17SCjr.mjs} +1 -1
  76. package/dist/admin/chunks/hi-lp17SCjr.mjs.map +1 -0
  77. package/dist/admin/chunks/{hooks-DMvik5y_.js → hooks-DMvik5y_.mjs} +1 -1
  78. package/dist/admin/chunks/hooks-DMvik5y_.mjs.map +1 -0
  79. package/dist/admin/chunks/{hu-CLka1U2C.js → hu-CLka1U2C.mjs} +1 -1
  80. package/dist/admin/chunks/hu-CLka1U2C.mjs.map +1 -0
  81. package/dist/admin/chunks/{id-USfY9m1g.js → id-USfY9m1g.mjs} +1 -1
  82. package/dist/admin/chunks/id-USfY9m1g.mjs.map +1 -0
  83. package/dist/admin/chunks/{index-BczuAULz.js → index-Cv0O6gf0.js} +93 -43
  84. package/dist/admin/chunks/index-Cv0O6gf0.js.map +1 -0
  85. package/dist/admin/chunks/{index-BkyR-Bnu.js → index-Dz9dwt8b.mjs} +122 -73
  86. package/dist/admin/chunks/index-Dz9dwt8b.mjs.map +1 -0
  87. package/dist/admin/chunks/{it-BAHrwmYS.js → it-BAHrwmYS.mjs} +1 -1
  88. package/dist/admin/chunks/it-BAHrwmYS.mjs.map +1 -0
  89. package/dist/admin/chunks/{ja-BWKmBJFT.js → ja-BWKmBJFT.mjs} +1 -1
  90. package/dist/admin/chunks/ja-BWKmBJFT.mjs.map +1 -0
  91. package/dist/admin/chunks/{ko-CgADGBNt.js → ko-CgADGBNt.mjs} +1 -1
  92. package/dist/admin/chunks/ko-CgADGBNt.mjs.map +1 -0
  93. package/dist/admin/chunks/{layout-DcDoRT8g.js → layout-CzYR-gGR.js} +5 -4
  94. package/dist/admin/chunks/{layout-DcDoRT8g.js.map → layout-CzYR-gGR.js.map} +1 -1
  95. package/dist/admin/chunks/{layout-fghBgRgX.js → layout-Jq9GIk_m.mjs} +8 -7
  96. package/dist/admin/chunks/layout-Jq9GIk_m.mjs.map +1 -0
  97. package/dist/admin/chunks/{ml-CnhCfOn_.js → ml-CnhCfOn_.mjs} +1 -1
  98. package/dist/admin/chunks/ml-CnhCfOn_.mjs.map +1 -0
  99. package/dist/admin/chunks/{ms-Bh09NFff.js → ms-Bh09NFff.mjs} +1 -1
  100. package/dist/admin/chunks/ms-Bh09NFff.mjs.map +1 -0
  101. package/dist/admin/chunks/{nl-C8HYflTc.js → nl-C8HYflTc.mjs} +1 -1
  102. package/dist/admin/chunks/nl-C8HYflTc.mjs.map +1 -0
  103. package/dist/admin/chunks/{objects-wl73iEma.js → objects-wl73iEma.mjs} +1 -1
  104. package/dist/admin/chunks/objects-wl73iEma.mjs.map +1 -0
  105. package/dist/admin/chunks/{pl-MFCZJZuZ.js → pl-MFCZJZuZ.mjs} +1 -1
  106. package/dist/admin/chunks/pl-MFCZJZuZ.mjs.map +1 -0
  107. package/dist/admin/chunks/{pt-BR-CcotyBGJ.js → pt-BR-CcotyBGJ.mjs} +1 -1
  108. package/dist/admin/chunks/pt-BR-CcotyBGJ.mjs.map +1 -0
  109. package/dist/admin/chunks/{pt-HbmgeiYO.js → pt-HbmgeiYO.mjs} +1 -1
  110. package/dist/admin/chunks/pt-HbmgeiYO.mjs.map +1 -0
  111. package/dist/admin/chunks/{relations-CgaydhiM.js → relations-CMn4X6LA.js} +2 -2
  112. package/dist/admin/chunks/{relations-CgaydhiM.js.map → relations-CMn4X6LA.js.map} +1 -1
  113. package/dist/admin/chunks/{relations-DPVgU_rq.js → relations-Y5L4AlFb.mjs} +2 -2
  114. package/dist/admin/chunks/relations-Y5L4AlFb.mjs.map +1 -0
  115. package/dist/admin/chunks/{ru-CB4BUyQp.js → ru-CB4BUyQp.mjs} +1 -1
  116. package/dist/admin/chunks/{ru-CB4BUyQp.js.map → ru-CB4BUyQp.mjs.map} +1 -1
  117. package/dist/admin/chunks/{sa-n_aPA-pU.js → sa-n_aPA-pU.mjs} +1 -1
  118. package/dist/admin/chunks/sa-n_aPA-pU.mjs.map +1 -0
  119. package/dist/admin/chunks/{sk-tn_BDjE2.js → sk-tn_BDjE2.mjs} +1 -1
  120. package/dist/admin/chunks/sk-tn_BDjE2.mjs.map +1 -0
  121. package/dist/admin/chunks/{sv-cq4ZrQRd.js → sv-cq4ZrQRd.mjs} +1 -1
  122. package/dist/admin/chunks/sv-cq4ZrQRd.mjs.map +1 -0
  123. package/dist/admin/chunks/{th-mUH7hEtc.js → th-mUH7hEtc.mjs} +1 -1
  124. package/dist/admin/chunks/th-mUH7hEtc.mjs.map +1 -0
  125. package/dist/admin/chunks/{tr-Yt38daxh.js → tr-Yt38daxh.mjs} +1 -1
  126. package/dist/admin/chunks/tr-Yt38daxh.mjs.map +1 -0
  127. package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
  128. package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
  129. package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
  130. package/dist/admin/chunks/{en-C1CjdAtC.js.map → uk-DB6OgySY.js.map} +1 -1
  131. package/dist/admin/chunks/{useDragAndDrop-HYwNDExe.js → useDragAndDrop-HYwNDExe.mjs} +1 -1
  132. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +1 -0
  133. package/dist/admin/chunks/{usePrev-Bjw2dhmq.js → usePrev-Bjw2dhmq.mjs} +1 -1
  134. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +1 -0
  135. package/dist/admin/chunks/{vi-CvBGlTjr.js → vi-CvBGlTjr.mjs} +1 -1
  136. package/dist/admin/chunks/vi-CvBGlTjr.mjs.map +1 -0
  137. package/dist/admin/chunks/{zh-BmF-sHaT.js → zh-BmF-sHaT.mjs} +1 -1
  138. package/dist/admin/chunks/zh-BmF-sHaT.mjs.map +1 -0
  139. package/dist/admin/chunks/{zh-Hans-CI0HKio3.js → zh-Hans-CI0HKio3.mjs} +1 -1
  140. package/dist/admin/chunks/{zh-Hans-CI0HKio3.js.map → zh-Hans-CI0HKio3.mjs.map} +1 -1
  141. package/dist/admin/index.js +2 -1
  142. package/dist/admin/index.js.map +1 -1
  143. package/dist/admin/index.mjs +2 -1
  144. package/dist/admin/index.mjs.map +1 -1
  145. package/dist/admin/src/components/InjectionZone.d.ts +7 -1
  146. package/dist/admin/src/content-manager.d.ts +4 -0
  147. package/dist/admin/src/hooks/useDocument.d.ts +2 -0
  148. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  149. package/dist/admin/src/index.d.ts +1 -0
  150. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +2 -1
  151. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +11 -0
  152. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +49 -1
  153. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +2 -1
  154. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +1 -2
  155. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +2 -1
  156. package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
  157. package/dist/admin/src/preview/pages/Preview.d.ts +4 -0
  158. package/dist/server/index.js +1 -1
  159. package/dist/server/index.js.map +1 -1
  160. package/dist/server/index.mjs +1 -1
  161. package/dist/server/index.mjs.map +1 -1
  162. package/package.json +8 -8
  163. package/dist/admin/chunks/CardDragPreview-DwuraT0K.js.map +0 -1
  164. package/dist/admin/chunks/ComponentConfigurationPage-Co2eC_-C.js.map +0 -1
  165. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js.map +0 -1
  166. package/dist/admin/chunks/EditConfigurationPage-zd9OLaVh.js.map +0 -1
  167. package/dist/admin/chunks/EditViewPage-DsBKmSPb.js.map +0 -1
  168. package/dist/admin/chunks/EditViewPage-kAIaYTg0.js.map +0 -1
  169. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js.map +0 -1
  170. package/dist/admin/chunks/Form-BO69oITe.js.map +0 -1
  171. package/dist/admin/chunks/History-BzvpM-Gw.js.map +0 -1
  172. package/dist/admin/chunks/Input-BlDcbhUC.js.map +0 -1
  173. package/dist/admin/chunks/Input-Dh1MtWno.js.map +0 -1
  174. package/dist/admin/chunks/ListConfigurationPage-8d3BsQIr.js.map +0 -1
  175. package/dist/admin/chunks/ListViewPage-CS1ED-vI.js.map +0 -1
  176. package/dist/admin/chunks/NoContentTypePage-DjdXr1-j.js.map +0 -1
  177. package/dist/admin/chunks/NoPermissionsPage-C5dC0MtL.js.map +0 -1
  178. package/dist/admin/chunks/Preview-C9kXTY6C.js.map +0 -1
  179. package/dist/admin/chunks/Preview-DBvmhR7Q.js.map +0 -1
  180. package/dist/admin/chunks/Relations-Cn0atFpd.js.map +0 -1
  181. package/dist/admin/chunks/Relations-XHxDKEvT.js.map +0 -1
  182. package/dist/admin/chunks/ar-DckYq_WK.js.map +0 -1
  183. package/dist/admin/chunks/ca-DviY7mRj.js.map +0 -1
  184. package/dist/admin/chunks/cs-C7OSYFQ7.js.map +0 -1
  185. package/dist/admin/chunks/de-5QRlDHyR.js.map +0 -1
  186. package/dist/admin/chunks/es-DkoWSExG.js.map +0 -1
  187. package/dist/admin/chunks/eu-BG1xX7HK.js.map +0 -1
  188. package/dist/admin/chunks/fr-CFdRaRVj.js.map +0 -1
  189. package/dist/admin/chunks/gu-D5MMMXRs.js.map +0 -1
  190. package/dist/admin/chunks/hi-lp17SCjr.js.map +0 -1
  191. package/dist/admin/chunks/hooks-DMvik5y_.js.map +0 -1
  192. package/dist/admin/chunks/hu-CLka1U2C.js.map +0 -1
  193. package/dist/admin/chunks/id-USfY9m1g.js.map +0 -1
  194. package/dist/admin/chunks/index-BczuAULz.js.map +0 -1
  195. package/dist/admin/chunks/index-BkyR-Bnu.js.map +0 -1
  196. package/dist/admin/chunks/it-BAHrwmYS.js.map +0 -1
  197. package/dist/admin/chunks/ja-BWKmBJFT.js.map +0 -1
  198. package/dist/admin/chunks/ko-CgADGBNt.js.map +0 -1
  199. package/dist/admin/chunks/layout-fghBgRgX.js.map +0 -1
  200. package/dist/admin/chunks/ml-CnhCfOn_.js.map +0 -1
  201. package/dist/admin/chunks/ms-Bh09NFff.js.map +0 -1
  202. package/dist/admin/chunks/nl-C8HYflTc.js.map +0 -1
  203. package/dist/admin/chunks/objects-wl73iEma.js.map +0 -1
  204. package/dist/admin/chunks/pl-MFCZJZuZ.js.map +0 -1
  205. package/dist/admin/chunks/pt-BR-CcotyBGJ.js.map +0 -1
  206. package/dist/admin/chunks/pt-HbmgeiYO.js.map +0 -1
  207. package/dist/admin/chunks/relations-DPVgU_rq.js.map +0 -1
  208. package/dist/admin/chunks/sa-n_aPA-pU.js.map +0 -1
  209. package/dist/admin/chunks/sk-tn_BDjE2.js.map +0 -1
  210. package/dist/admin/chunks/sv-cq4ZrQRd.js.map +0 -1
  211. package/dist/admin/chunks/th-mUH7hEtc.js.map +0 -1
  212. package/dist/admin/chunks/tr-Yt38daxh.js.map +0 -1
  213. package/dist/admin/chunks/uk-B24MoTVg.js +0 -145
  214. package/dist/admin/chunks/uk-B24MoTVg.js.map +0 -1
  215. package/dist/admin/chunks/uk-Cpgmm7gE.js +0 -140
  216. package/dist/admin/chunks/uk-Cpgmm7gE.js.map +0 -1
  217. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js.map +0 -1
  218. package/dist/admin/chunks/usePrev-Bjw2dhmq.js.map +0 -1
  219. package/dist/admin/chunks/vi-CvBGlTjr.js.map +0 -1
  220. package/dist/admin/chunks/zh-BmF-sHaT.js.map +0 -1
  221. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +0 -49
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListConfigurationPage-8d3BsQIr.js","sources":["../../../admin/src/pages/ListConfiguration/components/Header.tsx","../../../admin/src/pages/ListConfiguration/components/Settings.tsx","../../../admin/src/pages/ListConfiguration/components/EditFieldForm.tsx","../../../admin/src/pages/ListConfiguration/components/DraggableCard.tsx","../../../admin/src/pages/ListConfiguration/components/SortDisplayedFields.tsx","../../../admin/src/pages/ListConfiguration/ListConfigurationPage.tsx"],"sourcesContent":["import { useForm, BackButton, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { COLLECTION_TYPES } from '../../../constants/collections';\nimport { capitalise } from '../../../utils/strings';\nimport { getTranslation } from '../../../utils/translations';\n\ninterface HeaderProps {\n collectionType: string;\n name: string;\n model: string;\n}\n\nconst Header = ({ name }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const params = useParams<{ slug: string }>();\n\n const modified = useForm('Header', (state) => state.modified);\n const isSubmitting = useForm('Header', (state) => state.isSubmitting);\n\n return (\n <Layouts.Header\n navigationAction={<BackButton fallback={`../${COLLECTION_TYPES}/${params.slug}`} />}\n primaryAction={\n <Button size=\"S\" disabled={!modified} type=\"submit\" loading={isSubmitting}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.description.list-settings'),\n defaultMessage: 'Define the settings of the list view.',\n })}\n title={formatMessage(\n {\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.title'),\n defaultMessage: 'Configure the view - {name}',\n },\n { name: capitalise(name) }\n )}\n />\n );\n};\n\nexport { Header };\nexport type { HeaderProps };\n","import * as React from 'react';\n\nimport { useForm, InputRenderer, type InputProps } from '@strapi/admin/strapi-admin';\nimport { Flex, Grid, Typography, useCollator } from '@strapi/design-system';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../hooks/useDocument';\nimport { type EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport { getTranslation } from '../../../utils/translations';\nimport { type FormData } from '../ListConfigurationPage';\n\nimport type { DistributiveOmit } from 'react-redux';\n\nexport type InputPropsWithMessageDescriptors = DistributiveOmit<\n InputProps,\n 'hint' | 'label' | 'placeholder'\n> & {\n hint?: MessageDescriptor;\n label: MessageDescriptor;\n placeholder?: MessageDescriptor;\n};\n\n/**\n * @internal\n * @description Form inputs are always displayed in a grid, so we need\n * to use the size property to determine how many columns the input should\n * take up.\n */\nexport type FormLayoutInputProps = InputPropsWithMessageDescriptors & { size: number };\n\nconst EXCLUDED_SORT_ATTRIBUTE_TYPES = [\n 'media',\n 'richtext',\n 'dynamiczone',\n 'relation',\n 'component',\n 'json',\n 'blocks',\n];\n\ninterface SortOption {\n value: string;\n label: string;\n}\n\nconst Settings = () => {\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const { schema } = useDoc();\n\n const layout = useForm<FormData['layout']>('Settings', (state) => state.values.layout ?? []);\n const currentSortBy = useForm<FormData['settings']['defaultSortBy']>(\n 'Settings',\n (state) => state.values.settings.defaultSortBy\n );\n const onChange = useForm('Settings', (state) => state.onChange);\n\n const sortOptions = React.useMemo(\n () =>\n Object.values(layout).reduce<SortOption[]>((acc, field) => {\n if (schema && !EXCLUDED_SORT_ATTRIBUTE_TYPES.includes(schema.attributes[field.name].type)) {\n acc.push({\n value: field.name,\n label: typeof field.label !== 'string' ? formatMessage(field.label) : field.label,\n });\n }\n\n return acc;\n }, []),\n [formatMessage, layout, schema]\n );\n\n const sortOptionsSorted = sortOptions.sort((a, b) => formatter.compare(a.label, b.label));\n\n React.useEffect(() => {\n if (sortOptionsSorted.findIndex((opt) => opt.value === currentSortBy) === -1) {\n onChange('settings.defaultSortBy', sortOptionsSorted[0]?.value);\n }\n }, [currentSortBy, onChange, sortOptionsSorted]);\n\n const formLayout = React.useMemo(\n () =>\n SETTINGS_FORM_LAYOUT.map((row) =>\n row.map((field) => {\n if (field.type === 'enumeration') {\n return {\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n options: field.name === 'settings.defaultSortBy' ? sortOptionsSorted : field.options,\n };\n } else {\n return {\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n };\n }\n })\n ) as [top: EditFieldLayout[], bottom: EditFieldLayout[]],\n [formatMessage, sortOptionsSorted]\n );\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.settings'),\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root key=\"bottom\" gap={4}>\n {formLayout.map((row) =>\n row.map(({ size, ...field }) => (\n <Grid.Item key={field.name} s={12} col={size} direction=\"column\" alignItems=\"stretch\">\n {/* @ts-expect-error – issue with EnumerationProps conflicting with InputProps */}\n <InputRenderer {...field} />\n </Grid.Item>\n ))\n )}\n </Grid.Root>\n </Flex>\n );\n};\n\nconst SETTINGS_FORM_LAYOUT: FormLayoutInputProps[][] = [\n [\n {\n label: {\n id: getTranslation('form.Input.search'),\n defaultMessage: 'Enable search',\n },\n name: 'settings.searchable',\n size: 4,\n type: 'boolean' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.filters'),\n defaultMessage: 'Enable filters',\n },\n name: 'settings.filterable',\n size: 4,\n type: 'boolean' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.bulkActions'),\n defaultMessage: 'Enable bulk actions',\n },\n name: 'settings.bulkable',\n size: 4,\n type: 'boolean' as const,\n },\n ],\n [\n {\n hint: {\n id: getTranslation('form.Input.pageEntries.inputDescription'),\n defaultMessage: 'Note: You can override this value in the Collection Type settings page.',\n },\n label: {\n id: getTranslation('form.Input.pageEntries'),\n defaultMessage: 'Entries per page',\n },\n name: 'settings.pageSize',\n options: ['10', '20', '50', '100'].map((value) => ({ value, label: value })),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.defaultSort'),\n defaultMessage: 'Default sort attribute',\n },\n name: 'settings.defaultSortBy',\n options: [],\n size: 3,\n type: 'enumeration' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.sort.order'),\n defaultMessage: 'Default sort order',\n },\n name: 'settings.defaultSortOrder',\n options: ['ASC', 'DESC'].map((value) => ({ value, label: value })),\n size: 3,\n type: 'enumeration' as const,\n },\n ],\n];\n\nexport { Settings };\n","import { Form, useField, InputRenderer, useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, FlexComponent, Grid, Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { FieldTypeIcon } from '../../../components/FieldTypeIcon';\nimport { capitalise } from '../../../utils/strings';\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ListFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { FormData } from '../ListConfigurationPage';\n\ninterface EditFieldFormProps extends Pick<ListFieldLayout, 'attribute'> {\n name: string;\n onClose: () => void;\n}\n\nconst FIELD_SCHEMA = yup.object().shape({\n label: yup.string().required(),\n sortable: yup.boolean(),\n});\n\nconst EditFieldForm = ({ attribute, name, onClose }: EditFieldFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const { value, onChange } = useField<FormData['layout'][number]>(name);\n\n if (!value) {\n // This is very unlikely to happen, but it ensures the form is not opened without a value.\n console.error(\n \"You've opened a field to edit without it being part of the form, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.containers.list-settings.modal-form.error',\n defaultMessage: 'An error occurred while trying to open the form.',\n }),\n type: 'danger',\n });\n\n return null;\n }\n\n let shouldDisplaySortToggle = !['media', 'relation'].includes(attribute.type);\n\n if ('relation' in attribute && ['oneWay', 'oneToOne', 'manyToOne'].includes(attribute.relation)) {\n shouldDisplaySortToggle = true;\n }\n\n return (\n <Modal.Content>\n <Form\n method=\"PUT\"\n initialValues={value}\n validationSchema={FIELD_SCHEMA}\n onSubmit={(data) => {\n onChange(name, data);\n onClose();\n }}\n >\n <Modal.Header>\n <HeaderContainer>\n {/* @ts-expect-error attribute.type === custom does not work here */}\n <FieldTypeIcon type={attribute.type} />\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('containers.list-settings.modal-form.label'),\n defaultMessage: 'Edit {fieldName}',\n },\n { fieldName: capitalise(value.label) }\n )}\n </Modal.Title>\n </HeaderContainer>\n </Modal.Header>\n <Modal.Body>\n <Grid.Root gap={4}>\n {[\n {\n name: 'label',\n label: formatMessage({\n id: getTranslation('form.Input.label'),\n defaultMessage: 'Label',\n }),\n hint: formatMessage({\n id: getTranslation('form.Input.label.inputDescription'),\n defaultMessage: \"This value overrides the label displayed in the table's head\",\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: getTranslation('form.Input.sort.field'),\n defaultMessage: 'Enable sort on this field',\n }),\n name: 'sortable',\n size: 6,\n type: 'boolean' as const,\n },\n ]\n .filter(\n (field) =>\n field.name !== 'sortable' ||\n (field.name === 'sortable' && shouldDisplaySortToggle)\n )\n .map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n s={12}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\nconst HeaderContainer = styled<FlexComponent>(Flex)`\n svg {\n width: 3.2rem;\n margin-right: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nexport { EditFieldForm };\nexport type { EditFieldFormProps };\n","import * as React from 'react';\n\nimport {\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n Modal,\n Typography,\n useComposedRefs,\n} from '@strapi/design-system';\nimport { Cross, Drag, Pencil } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { CardDragPreview } from '../../../components/DragPreviews/CardDragPreview';\nimport { ItemTypes } from '../../../constants/dragAndDrop';\nimport { useDragAndDrop } from '../../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../../utils/translations';\n\nimport { EditFieldForm } from './EditFieldForm';\n\nimport type { ListFieldLayout } from '../../../hooks/useDocumentLayout';\n\ntype DraggableCardProps = Omit<ListFieldLayout, 'label'> & {\n label: string;\n index: number;\n isDraggingSibling: boolean;\n onMoveField: (dragIndex: number, hoverIndex: number) => void;\n onRemoveField: () => void;\n setIsDraggingSibling: (isDragging: boolean) => void;\n};\n\nconst DraggableCard = ({\n attribute,\n index,\n isDraggingSibling,\n label,\n name,\n onMoveField,\n onRemoveField,\n setIsDraggingSibling,\n}: DraggableCardProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const [, forceRerenderAfterDnd] = React.useState(false);\n\n const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop(true, {\n type: ItemTypes.FIELD,\n item: { index, label, name },\n index,\n onMoveItem: onMoveField,\n onEnd: () => setIsDraggingSibling(false),\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef]);\n\n React.useEffect(() => {\n if (isDragging) {\n setIsDraggingSibling(true);\n }\n }, [isDragging, setIsDraggingSibling]);\n\n // Effect in order to force a rerender after reordering the components\n // Since we are removing the Accordion when doing the DnD we are losing the dragRef, therefore the replaced element cannot be dragged\n // anymore, this hack forces a rerender in order to apply the dragRef\n React.useEffect(() => {\n if (!isDraggingSibling) {\n forceRerenderAfterDnd((prev) => !prev);\n }\n }, [isDraggingSibling]);\n\n const composedRefs = useComposedRefs<HTMLButtonElement>(\n dropRef,\n objectRef as React.RefObject<HTMLButtonElement>\n );\n\n return (\n <FieldWrapper ref={composedRefs}>\n {isDragging && <CardDragPreview label={label} />}\n {!isDragging && isDraggingSibling && <CardDragPreview isSibling label={label} />}\n\n {!isDragging && !isDraggingSibling && (\n <FieldContainer\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n justifyContent=\"space-between\"\n onClick={() => setIsModalOpen(true)}\n >\n <Flex gap={3}>\n <DragButton\n ref={dragRef}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: label }\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <Drag />\n </DragButton>\n <Typography fontWeight=\"bold\">{label}</Typography>\n </Flex>\n <Flex paddingLeft={3} onClick={(e) => e.stopPropagation()}>\n <Modal.Root open={isModalOpen} onOpenChange={setIsModalOpen}>\n <Modal.Trigger>\n <ActionButton\n onClick={(e) => {\n e.stopPropagation();\n }}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: label }\n )}\n type=\"button\"\n >\n <Pencil width=\"1.2rem\" height=\"1.2rem\" />\n </ActionButton>\n </Modal.Trigger>\n <EditFieldForm\n attribute={attribute}\n name={`layout.${index}`}\n onClose={() => {\n setIsModalOpen(false);\n }}\n />\n </Modal.Root>\n <ActionButton\n onClick={onRemoveField}\n data-testid={`delete-${name}`}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: label }\n )}\n type=\"button\"\n >\n <Cross width=\"1.2rem\" height=\"1.2rem\" />\n </ActionButton>\n </Flex>\n </FieldContainer>\n )}\n </FieldWrapper>\n );\n};\n\nconst ActionButton = styled.button`\n display: flex;\n align-items: center;\n height: ${({ theme }) => theme.spaces[7]};\n color: ${({ theme }) => theme.colors.neutral600};\n\n &:hover {\n color: ${({ theme }) => theme.colors.neutral700};\n }\n\n &:last-child {\n padding: 0 ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst DragButton = styled(ActionButton)`\n padding: 0 ${({ theme }) => theme.spaces[3]};\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n`;\n\nconst FieldContainer = styled<FlexComponent>(Flex)`\n max-height: 3.2rem;\n cursor: pointer;\n`;\n\nconst FieldWrapper = styled<BoxComponent>(Box)`\n &:last-child {\n padding-right: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nexport { DraggableCard };\nexport type { DraggableCardProps };\n","import * as React from 'react';\n\nimport { useForm } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, VisuallyHidden, Typography, Menu } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useGetContentTypeConfigurationQuery } from '../../../services/contentTypes';\nimport { checkIfAttributeIsDisplayable } from '../../../utils/attributes';\nimport { getTranslation } from '../../../utils/translations';\n\nimport { DraggableCard, DraggableCardProps } from './DraggableCard';\n\nimport type { ListLayout } from '../../../hooks/useDocumentLayout';\nimport type { FormData } from '../ListConfigurationPage';\n\ninterface SortDisplayedFieldsProps extends Pick<ListLayout, 'layout'> {}\n\nconst SortDisplayedFields = () => {\n const { formatMessage } = useIntl();\n const { model, schema } = useDoc();\n const [isDraggingSibling, setIsDraggingSibling] = React.useState(false);\n const [lastAction, setLastAction] = React.useState<string | null>(null);\n const scrollableContainerRef = React.useRef<HTMLDivElement>(null);\n\n const values = useForm<FormData['layout']>(\n 'SortDisplayedFields',\n (state) => state.values.layout ?? []\n );\n const addFieldRow = useForm('SortDisplayedFields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('SortDisplayedFields', (state) => state.removeFieldRow);\n const moveFieldRow = useForm('SortDisplayedFields', (state) => state.moveFieldRow);\n\n const { metadata: allMetadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} }),\n });\n\n /**\n * This is our list of fields that are not displayed in the current layout\n * so we create their default state to be added to the layout.\n */\n const nonDisplayedFields = React.useMemo(() => {\n if (!schema) {\n return [];\n }\n\n const displayedFieldNames = values.map((field) => field.name);\n\n return Object.entries(schema.attributes).reduce<Array<FormData['layout'][number]>>(\n (acc, [name, attribute]) => {\n if (!displayedFieldNames.includes(name) && checkIfAttributeIsDisplayable(attribute)) {\n const { list: metadata } = allMetadata[name];\n\n acc.push({\n name,\n label: metadata.label || name,\n sortable: metadata.sortable,\n });\n }\n\n return acc;\n },\n []\n );\n }, [allMetadata, values, schema]);\n\n const handleAddField = (field: FormData['layout'][number]) => {\n setLastAction('add');\n addFieldRow('layout', field);\n };\n\n const handleRemoveField = (index: number) => {\n setLastAction('remove');\n removeFieldRow('layout', index);\n };\n\n const handleMoveField: DraggableCardProps['onMoveField'] = (dragIndex, hoverIndex) => {\n moveFieldRow('layout', dragIndex, hoverIndex);\n };\n\n React.useEffect(() => {\n if (lastAction === 'add' && scrollableContainerRef?.current) {\n scrollableContainerRef.current.scrollLeft = scrollableContainerRef.current.scrollWidth;\n }\n }, [lastAction]);\n\n return (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.view'),\n defaultMessage: 'View',\n })}\n </Typography>\n\n <Flex padding={4} borderColor=\"neutral300\" borderStyle=\"dashed\" borderWidth=\"1px\" hasRadius>\n <Box flex=\"1\" overflow=\"auto hidden\" ref={scrollableContainerRef}>\n <Flex gap={3}>\n {values.map((field, index) => (\n <DraggableCard\n key={field.name}\n index={index}\n isDraggingSibling={isDraggingSibling}\n onMoveField={handleMoveField}\n onRemoveField={() => handleRemoveField(index)}\n setIsDraggingSibling={setIsDraggingSibling}\n {...field}\n attribute={schema!.attributes[field.name]}\n label={typeof field.label === 'object' ? formatMessage(field.label) : field.label}\n />\n ))}\n </Flex>\n </Box>\n\n <Menu.Root>\n <Menu.Trigger\n paddingLeft={2}\n paddingRight={2}\n justifyContent=\"center\"\n endIcon={null}\n disabled={nonDisplayedFields.length === 0}\n variant=\"tertiary\"\n >\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: getTranslation('components.FieldSelect.label'),\n defaultMessage: 'Add a field',\n })}\n </VisuallyHidden>\n <Plus aria-hidden focusable={false} style={{ position: 'relative', top: 2 }} />\n </Menu.Trigger>\n <Menu.Content>\n {nonDisplayedFields.map((field) => (\n <Menu.Item key={field.name} onSelect={() => handleAddField(field)}>\n {typeof field.label === 'object' ? formatMessage(field.label) : field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Flex>\n );\n};\n\nexport { SortDisplayedFields };\nexport type { SortDisplayedFieldsProps };\n","import * as React from 'react';\n\nimport {\n Form,\n type FormProps,\n useNotification,\n useTracking,\n useAPIErrorHandler,\n Page,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { Divider, Flex, Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Navigate } from 'react-router-dom';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { useDoc } from '../../hooks/useDocument';\nimport { ListFieldLayout, ListLayout, useDocLayout } from '../../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../../modules/hooks';\nimport { useUpdateContentTypeConfigurationMutation } from '../../services/contentTypes';\nimport { setIn } from '../../utils/objects';\n\nimport { Header } from './components/Header';\nimport { Settings } from './components/Settings';\nimport { SortDisplayedFields } from './components/SortDisplayedFields';\n\nimport type { Metadatas } from '../../../../shared/contracts/content-types';\n\ninterface FormData extends Pick<ListLayout, 'settings'> {\n layout: Array<Pick<ListFieldLayout, 'sortable' | 'name'> & { label: string }>;\n}\n\nconst ListConfiguration = () => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { model, collectionType } = useDoc();\n\n const { isLoading: isLoadingLayout, list, edit } = useDocLayout();\n\n const [updateContentTypeConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: FormProps<FormData>['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n const layoutData = data.layout ?? [];\n /**\n * We reconstruct the metadatas object by taking the existing edit metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(edit.metadatas).reduce<Metadatas>((acc, [name, editMeta]) => {\n const { mainField: _mainField, ...listMeta } = list.metadatas[name];\n\n const { label, sortable } = layoutData.find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: editMeta,\n list: {\n ...listMeta,\n label: label || listMeta.label,\n sortable: sortable || listMeta.sortable,\n },\n };\n\n return acc;\n }, {});\n\n const res = await updateContentTypeConfiguration({\n layouts: {\n edit: edit.layout.flatMap((panel) =>\n panel.map((row) => row.map(({ name, size }) => ({ name, size })))\n ),\n list: layoutData.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditListSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n console.error(err);\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const initialValues = React.useMemo(() => {\n return {\n layout: list.layout.map(({ label, sortable, name }) => ({\n label: typeof label === 'string' ? label : formatMessage(label),\n sortable,\n name,\n })),\n settings: list.settings,\n } satisfies FormData;\n }, [formatMessage, list.layout, list.settings]);\n\n if (collectionType === SINGLE_TYPES) {\n return <Navigate to={`/single-types/${model}`} />;\n }\n\n if (isLoadingLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>{`Configure ${list.settings.displayName} List View`}</Page.Title>\n <Main>\n <Form initialValues={initialValues} onSubmit={handleSubmit} method=\"PUT\">\n <Header\n collectionType={collectionType}\n model={model}\n name={list.settings.displayName ?? ''}\n />\n <Layouts.Content>\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={6}\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Settings />\n <Divider />\n <SortDisplayedFields />\n </Flex>\n </Layouts.Content>\n </Form>\n </Main>\n </Layouts.Root>\n );\n};\n\nconst ProtectedListConfiguration = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListConfiguration />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListConfiguration, ListConfiguration };\nexport type { FormData };\n"],"names":["Header","name","formatMessage","useIntl","params","useParams","modified","useForm","state","isSubmitting","_jsx","Layouts","navigationAction","BackButton","fallback","COLLECTION_TYPES","slug","primaryAction","Button","size","disabled","type","loading","id","defaultMessage","subtitle","getTranslation","title","capitalise","EXCLUDED_SORT_ATTRIBUTE_TYPES","Settings","locale","formatter","useCollator","sensitivity","schema","useDoc","layout","values","currentSortBy","settings","defaultSortBy","onChange","sortOptions","React","useMemo","Object","reduce","acc","field","includes","attributes","push","value","label","sortOptionsSorted","sort","a","b","compare","useEffect","findIndex","opt","formLayout","SETTINGS_FORM_LAYOUT","map","row","hint","undefined","options","_jsxs","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","s","col","InputRenderer","FIELD_SCHEMA","yup","object","shape","string","required","sortable","boolean","EditFieldForm","attribute","onClose","toggleNotification","useNotification","useField","console","error","message","shouldDisplaySortToggle","relation","Modal","Content","Form","method","initialValues","validationSchema","onSubmit","data","HeaderContainer","FieldTypeIcon","Title","fieldName","Body","filter","Footer","onClick","styled","theme","spaces","DraggableCard","index","isDraggingSibling","onMoveField","onRemoveField","setIsDraggingSibling","isModalOpen","setIsModalOpen","useState","forceRerenderAfterDnd","isDragging","objectRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","ItemTypes","FIELD","item","onMoveItem","onEnd","getEmptyImage","captureDraggingState","prev","composedRefs","useComposedRefs","FieldWrapper","ref","CardDragPreview","isSibling","FieldContainer","borderColor","background","hasRadius","justifyContent","DragButton","aria-label","e","stopPropagation","Drag","fontWeight","paddingLeft","open","onOpenChange","Trigger","ActionButton","Pencil","width","height","data-testid","Cross","button","colors","neutral600","neutral700","neutral150","Box","SortDisplayedFields","model","lastAction","setLastAction","scrollableContainerRef","useRef","addFieldRow","removeFieldRow","moveFieldRow","metadata","allMetadata","useGetContentTypeConfigurationQuery","selectFromResult","contentType","metadatas","nonDisplayedFields","displayedFieldNames","entries","checkIfAttributeIsDisplayable","list","handleAddField","handleRemoveField","handleMoveField","dragIndex","hoverIndex","current","scrollLeft","scrollWidth","padding","borderStyle","borderWidth","flex","overflow","Menu","paddingRight","endIcon","length","VisuallyHidden","Plus","aria-hidden","focusable","style","position","top","onSelect","ListConfiguration","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","collectionType","isLoading","isLoadingLayout","edit","useDocLayout","updateContentTypeConfiguration","useUpdateContentTypeConfigurationMutation","handleSubmit","layoutData","meta","editMeta","mainField","_mainField","listMeta","find","res","layouts","flatMap","panel","setIn","uid","err","SINGLE_TYPES","Navigate","to","Page","Loading","displayName","Main","shadow","paddingTop","paddingBottom","Divider","ProtectedListConfiguration","permissions","useTypedSelector","admin_app","contentManager","collectionTypesConfigurations","Protect"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListViewPage-CS1ED-vI.js","sources":["../../../admin/src/pages/ListView/components/Filters.tsx","../../../admin/src/pages/ListView/components/TableCells/CellValue.tsx","../../../admin/src/pages/ListView/components/TableCells/Components.tsx","../../../admin/src/pages/ListView/components/TableCells/Media.tsx","../../../admin/src/pages/ListView/components/TableCells/Relations.tsx","../../../admin/src/pages/ListView/components/TableCells/CellContent.tsx","../../../admin/src/pages/ListView/components/ViewSettingsMenu.tsx","../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Filters,\n useField,\n useAuth,\n useTracking,\n useQueryParams,\n useAdminUsers,\n} from '@strapi/admin/strapi-admin';\nimport { Combobox, ComboboxOption, useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { CREATOR_FIELDS } from '../../../constants/attributes';\nimport { useContentTypeSchema } from '../../../hooks/useContentTypeSchema';\nimport { useDebounce } from '../../../hooks/useDebounce';\nimport { Schema } from '../../../hooks/useDocument';\nimport { useGetContentTypeConfigurationQuery } from '../../../services/contentTypes';\nimport { getMainField } from '../../../utils/attributes';\nimport { getDisplayName } from '../../../utils/users';\n\n/**\n * If new attributes are added, this list needs to be updated.\n */\nconst NOT_ALLOWED_FILTERS = [\n 'json',\n 'component',\n 'media',\n 'richtext',\n 'dynamiczone',\n 'password',\n 'blocks',\n];\nconst DEFAULT_ALLOWED_FILTERS = ['createdAt', 'updatedAt'];\nconst USER_FILTER_ATTRIBUTES = [...CREATOR_FIELDS, 'strapi_assignee'];\n\n/* -------------------------------------------------------------------------------------------------\n * Filters\n * -----------------------------------------------------------------------------------------------*/\ninterface FiltersProps {\n disabled?: boolean;\n schema: Schema;\n}\n\nconst FiltersImpl = ({ disabled, schema }: FiltersProps) => {\n const { attributes, uid: model, options } = schema;\n const { formatMessage, locale } = useIntl();\n const { trackUsage } = useTracking();\n const allPermissions = useAuth('FiltersImpl', (state) => state.permissions);\n const [{ query }] = useQueryParams<Filters.Query>();\n const { schemas } = useContentTypeSchema();\n\n const canReadAdminUsers = React.useMemo(\n () =>\n allPermissions.filter(\n (permission) => permission.action === 'admin::users.read' && permission.subject === null\n ).length > 0,\n [allPermissions]\n );\n\n const selectedUserIds = (query?.filters?.$and ?? []).reduce<string[]>((acc, filter) => {\n const [key, value] = Object.entries(filter)[0];\n if (typeof value.id !== 'object') {\n return acc;\n }\n\n const id = value.id.$eq || value.id.$ne;\n\n if (id && USER_FILTER_ATTRIBUTES.includes(key) && !acc.includes(id)) {\n acc.push(id);\n }\n\n return acc;\n }, []);\n\n const { data: userData, isLoading: isLoadingAdminUsers } = useAdminUsers(\n { filters: { id: { $in: selectedUserIds } } },\n {\n // fetch the list of admin users only if the filter contains users and the\n // current user has permissions to display users\n skip: selectedUserIds.length === 0 || !canReadAdminUsers,\n }\n );\n\n const { users = [] } = userData ?? {};\n\n const { metadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} }),\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const displayedFilters = React.useMemo(() => {\n const [{ properties: { fields = [] } = { fields: [] } }] = allPermissions.filter(\n (permission) =>\n permission.action === 'plugin::content-manager.explorer.read' &&\n permission.subject === model\n );\n\n const allowedFields = fields.filter((field) => {\n const attribute = attributes[field] ?? {};\n\n return attribute.type && !NOT_ALLOWED_FILTERS.includes(attribute.type);\n });\n\n return (\n [\n 'id',\n ...allowedFields,\n ...DEFAULT_ALLOWED_FILTERS,\n ...(canReadAdminUsers ? CREATOR_FIELDS : []),\n ]\n .map((name) => {\n const attribute = attributes[name];\n\n if (NOT_ALLOWED_FILTERS.includes(attribute.type)) {\n return null;\n }\n\n const { mainField: mainFieldName = '', label } = metadata[name].list;\n\n let filter: Filters.Filter = {\n name,\n label: label ?? '',\n mainField: getMainField(attribute, mainFieldName, { schemas, components: {} }),\n // @ts-expect-error – TODO: this is filtered out above in the `allowedFields` call but TS complains, is there a better way to solve this?\n type: attribute.type,\n };\n\n if (\n attribute.type === 'relation' &&\n 'target' in attribute &&\n attribute.target === 'admin::user'\n ) {\n filter = {\n ...filter,\n input: AdminUsersFilter,\n options: users.map((user) => ({\n label: getDisplayName(user),\n value: user.id.toString(),\n })),\n operators: [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ],\n mainField: {\n name: 'id',\n type: 'integer',\n },\n };\n }\n\n if (attribute.type === 'enumeration') {\n filter = {\n ...filter,\n options: attribute.enum.map((value) => ({\n label: value,\n value,\n })),\n };\n }\n\n return filter;\n })\n .filter(Boolean) as Filters.Filter[]\n ).toSorted((a, b) => formatter.compare(a.label, b.label));\n }, [\n allPermissions,\n canReadAdminUsers,\n model,\n attributes,\n metadata,\n schemas,\n users,\n formatMessage,\n formatter,\n ]);\n\n const onOpenChange = (isOpen: boolean) => {\n if (isOpen) {\n trackUsage('willFilterEntries');\n }\n };\n\n const handleFilterChange: Filters.Props['onChange'] = (data) => {\n const attribute = attributes[data.name];\n\n if (attribute) {\n trackUsage('didFilterEntries', {\n useRelation: attribute.type === 'relation',\n });\n }\n };\n\n return (\n <Filters.Root\n disabled={disabled}\n options={displayedFilters}\n onOpenChange={onOpenChange}\n onChange={handleFilterChange}\n >\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdminUsersFilter\n * -----------------------------------------------------------------------------------------------*/\n\nconst AdminUsersFilter = ({ name }: Filters.ValueInputProps) => {\n const [pageSize, setPageSize] = React.useState(10);\n const [search, setSearch] = React.useState('');\n const { formatMessage } = useIntl();\n\n const debouncedSearch = useDebounce(search, 300);\n\n const { data, isLoading } = useAdminUsers({\n pageSize,\n _q: debouncedSearch,\n });\n const field = useField(name);\n\n const handleOpenChange = (isOpen?: boolean) => {\n if (!isOpen) {\n setPageSize(10);\n }\n };\n\n const { users = [], pagination } = data ?? {};\n const { pageCount = 1, page = 1 } = pagination ?? {};\n\n return (\n <Combobox\n value={field.value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select a user to filter',\n })}\n onOpenChange={handleOpenChange}\n onChange={(value) => field.onChange(name, value)}\n loading={isLoading}\n onLoadMore={() => setPageSize(pageSize + 10)}\n hasMoreItems={page < pageCount}\n onInputChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(e.currentTarget.value);\n }}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nexport { FiltersImpl as Filters };\nexport type { FiltersProps };\n","import parseISO from 'date-fns/parseISO';\nimport toString from 'lodash/toString';\nimport { useIntl } from 'react-intl';\n\nimport type { Schema } from '@strapi/types';\n\ninterface CellValueProps {\n type: Schema.Attribute.Kind | 'custom';\n value: any;\n}\n\nconst CellValue = ({ type, value }: CellValueProps) => {\n const { formatDate, formatTime, formatNumber } = useIntl();\n let formattedValue = value;\n\n if (type === 'date') {\n formattedValue = formatDate(parseISO(value), { dateStyle: 'full' });\n }\n\n if (type === 'datetime') {\n formattedValue = formatDate(value, { dateStyle: 'full', timeStyle: 'short' });\n }\n\n if (type === 'time') {\n const [hour, minute, second] = value.split(':');\n const date = new Date();\n date.setHours(hour);\n date.setMinutes(minute);\n date.setSeconds(second);\n\n formattedValue = formatTime(date, {\n timeStyle: 'short',\n });\n }\n\n if (['float', 'decimal'].includes(type)) {\n formattedValue = formatNumber(value, {\n // Should be kept in sync with the corresponding value\n // in the design-system/NumberInput: https://github.com/strapi/design-system/blob/main/packages/strapi-design-system/src/NumberInput/NumberInput.js#L53\n maximumFractionDigits: 20,\n });\n }\n\n if (['integer', 'biginteger'].includes(type)) {\n formattedValue = formatNumber(value, { maximumFractionDigits: 0 });\n }\n\n return toString(formattedValue);\n};\n\nexport { CellValue };\nexport type { CellValueProps };\n","import { Badge, Tooltip, Typography, Menu } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { CellContentProps } from './CellContent';\nimport { CellValue } from './CellValue';\n\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * SingleComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SingleComponentProps extends Pick<CellContentProps, 'mainField'> {\n content: Schema.Attribute.Value<Schema.Attribute.Component<`${string}.${string}`, false>>;\n}\n\nconst SingleComponent = ({ content, mainField }: SingleComponentProps) => {\n if (!mainField) {\n return null;\n }\n\n return (\n <Tooltip label={content[mainField.name]}>\n <Typography maxWidth=\"25rem\" textColor=\"neutral800\" ellipsis>\n <CellValue type={mainField.type} value={content[mainField.name]} />\n </Typography>\n </Tooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * RepeatableComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RepeatableComponentProps extends Pick<CellContentProps, 'mainField'> {\n content: Schema.Attribute.Value<Schema.Attribute.Component<`${string}.${string}`, true>>;\n}\n\nconst RepeatableComponent = ({ content, mainField }: RepeatableComponentProps) => {\n const { formatMessage } = useIntl();\n\n if (!mainField) {\n return null;\n }\n\n return (\n <Menu.Root>\n <Menu.Trigger onClick={(e) => e.stopPropagation()}>\n <Badge>{content.length}</Badge>\n {formatMessage(\n {\n id: 'content-manager.containers.list.items',\n defaultMessage: '{number, plural, =0 {items} one {item} other {items}}',\n },\n { number: content.length }\n )}\n </Menu.Trigger>\n <Menu.Content>\n {content.map((item) => (\n <Menu.Item key={item.id} disabled>\n <Typography maxWidth=\"50rem\" ellipsis>\n <CellValue type={mainField.type} value={item[mainField.name]} />\n </Typography>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nexport { SingleComponent, RepeatableComponent };\nexport type { SingleComponentProps, RepeatableComponentProps };\n","import * as React from 'react';\n\nimport { Avatar, Flex, Tooltip, Typography, TypographyComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { prefixFileUrlWithBackendUrl } from '../../../../utils/urls';\n\nimport type { Data } from '@strapi/types';\n\ninterface MediaFile {\n id?: Data.ID;\n alternativeText?: string;\n ext: string;\n formats: {\n thumbnail?: {\n url?: string;\n };\n };\n mime: string;\n name: string;\n url: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Media\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MediaSingleProps extends MediaFile {}\n\nconst getFileExtension = (ext: string) => (ext && ext[0] === '.' ? ext.substring(1) : ext);\n\nconst MediaSingle = ({ url, mime, alternativeText, name, ext, formats }: MediaSingleProps) => {\n const fileURL = prefixFileUrlWithBackendUrl(url)!;\n\n if (mime.includes('image')) {\n const thumbnail = formats?.thumbnail?.url;\n const mediaURL = prefixFileUrlWithBackendUrl(thumbnail) || fileURL;\n\n return (\n <Avatar.Item\n src={mediaURL}\n alt={alternativeText || name}\n fallback={alternativeText || name}\n preview\n />\n );\n }\n\n const fileExtension = getFileExtension(ext);\n const fileName = name.length > 100 ? `${name.substring(0, 100)}...` : name;\n\n return (\n <Tooltip description={fileName}>\n <FileWrapper>{fileExtension}</FileWrapper>\n </Tooltip>\n );\n};\n\nconst FileWrapper = ({ children }: { children: React.ReactNode }) => {\n return (\n <Flex\n tag=\"span\"\n position=\"relative\"\n borderRadius=\"50%\"\n width=\"26px\"\n height=\"26px\"\n borderColor=\"neutral200\"\n background=\"neutral150\"\n paddingLeft=\"1px\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <FileTypography variant=\"sigma\" textColor=\"neutral600\">\n {children}\n </FileTypography>\n </Flex>\n );\n};\n\nconst FileTypography = styled<TypographyComponent>(Typography)`\n font-size: 0.9rem;\n line-height: 0.9rem;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * MediaMultiple\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MediaMultipleProps {\n content: MediaFile[];\n}\n\nconst MediaMultiple = ({ content }: MediaMultipleProps) => {\n return (\n <Avatar.Group>\n {content.map((file, index) => {\n const key = `${file.id}${index}`;\n\n if (index === 3) {\n const remainingFiles = `+${content.length - 3}`;\n\n return <FileWrapper key={key}>{remainingFiles}</FileWrapper>;\n }\n\n if (index > 3) {\n return null;\n }\n\n return <MediaSingle key={key} {...file} />;\n })}\n </Avatar.Group>\n );\n};\n\nexport { MediaMultiple, MediaSingle };\nexport type { MediaMultipleProps, MediaSingleProps };\n","import * as React from 'react';\n\nimport { Typography, Loader, useNotifyAT, Menu } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetRelationsQuery } from '../../../../services/relations';\nimport { getRelationLabel } from '../../../../utils/relations';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport type { CellContentProps } from './CellContent';\n\n/* -------------------------------------------------------------------------------------------------\n * RelationSingle\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RelationSingleProps extends Pick<CellContentProps, 'mainField' | 'content'> {}\n\nconst RelationSingle = ({ mainField, content }: RelationSingleProps) => {\n return (\n <Typography maxWidth=\"50rem\" textColor=\"neutral800\" ellipsis>\n {getRelationLabel(content, mainField)}\n </Typography>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * RelationMultiple\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RelationMultipleProps\n extends Pick<CellContentProps, 'mainField' | 'content' | 'name' | 'rowId'> {}\n\n/**\n * TODO: fix this component – tracking issue https://strapi-inc.atlassian.net/browse/CONTENT-2184\n */\nconst RelationMultiple = ({ mainField, content, rowId, name }: RelationMultipleProps) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const [isOpen, setIsOpen] = React.useState(false);\n\n const [targetField] = name.split('.');\n\n const { data, isLoading } = useGetRelationsQuery(\n {\n model,\n id: rowId,\n targetField,\n },\n {\n skip: !isOpen,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const contentCount = Array.isArray(content) ? content.length : content.count;\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: getTranslation('DynamicTable.relation-loaded'),\n defaultMessage: 'Relations have been loaded',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n return (\n <Menu.Root onOpenChange={(isOpen) => setIsOpen(isOpen)}>\n <Menu.Trigger onClick={(e) => e.stopPropagation()}>\n <Typography style={{ cursor: 'pointer' }} textColor=\"neutral800\" fontWeight=\"regular\">\n {contentCount > 0\n ? formatMessage(\n {\n id: 'content-manager.containers.list.items',\n defaultMessage: '{number} {number, plural, =0 {items} one {item} other {items}}',\n },\n { number: contentCount }\n )\n : '-'}\n </Typography>\n </Menu.Trigger>\n <Menu.Content>\n {isLoading && (\n <Menu.Item disabled>\n <Loader small>\n {formatMessage({\n id: getTranslation('ListViewTable.relation-loading'),\n defaultMessage: 'Relations are loading',\n })}\n </Loader>\n </Menu.Item>\n )}\n {data?.results && (\n <>\n {data.results.map((entry) => (\n <Menu.Item key={entry.documentId} disabled>\n <Typography maxWidth=\"50rem\" ellipsis>\n {getRelationLabel(entry, mainField)}\n </Typography>\n </Menu.Item>\n ))}\n\n {data?.pagination && data?.pagination.total > 10 && (\n <Menu.Item\n aria-disabled\n aria-label={formatMessage({\n id: getTranslation('ListViewTable.relation-more'),\n defaultMessage: 'This relation contains more entities than displayed',\n })}\n >\n <Typography>…</Typography>\n </Menu.Item>\n )}\n </>\n )}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nexport { RelationSingle, RelationMultiple };\nexport type { RelationSingleProps, RelationMultipleProps };\n","import { Tooltip, Typography } from '@strapi/design-system';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { CellValue } from './CellValue';\nimport { SingleComponent, RepeatableComponent } from './Components';\nimport { MediaSingle, MediaMultiple } from './Media';\nimport { RelationMultiple, RelationSingle } from './Relations';\n\nimport type { ListFieldLayout } from '../../../../hooks/useDocumentLayout';\nimport type { Schema, Data } from '@strapi/types';\n\ninterface CellContentProps extends Omit<ListFieldLayout, 'cellFormatter'> {\n content: Schema.Attribute.Value<Schema.Attribute.AnyAttribute>;\n rowId: Data.ID;\n}\n\nconst CellContent = ({ content, mainField, attribute, rowId, name }: CellContentProps) => {\n if (!hasContent(content, mainField, attribute)) {\n return (\n <Typography\n textColor=\"neutral800\"\n paddingLeft={attribute.type === ('relation' || 'component') ? '1.6rem' : 0}\n paddingRight={attribute.type === ('relation' || 'component') ? '1.6rem' : 0}\n >\n -\n </Typography>\n );\n }\n\n switch (attribute.type) {\n case 'media':\n if (!attribute.multiple) {\n return <MediaSingle {...content} />;\n }\n\n return <MediaMultiple content={content} />;\n\n case 'relation': {\n if (isSingleRelation(attribute.relation)) {\n return <RelationSingle mainField={mainField} content={content} />;\n }\n\n return <RelationMultiple rowId={rowId} mainField={mainField} content={content} name={name} />;\n }\n\n case 'component':\n if (attribute.repeatable) {\n return <RepeatableComponent mainField={mainField} content={content} />;\n }\n\n return <SingleComponent mainField={mainField} content={content} />;\n\n case 'string':\n return (\n <Tooltip description={content}>\n <Typography maxWidth=\"30rem\" ellipsis textColor=\"neutral800\">\n <CellValue type={attribute.type} value={content} />\n </Typography>\n </Tooltip>\n );\n\n default:\n return (\n <Typography maxWidth=\"30rem\" ellipsis textColor=\"neutral800\">\n <CellValue type={attribute.type} value={content} />\n </Typography>\n );\n }\n};\n\nconst hasContent = (\n content: CellContentProps['content'],\n mainField: CellContentProps['mainField'],\n attribute: CellContentProps['attribute']\n) => {\n if (attribute.type === 'component') {\n // Repeatable fields show the ID as fallback, in case the mainField\n // doesn't have any content\n if (attribute.repeatable || !mainField) {\n return content?.length > 0;\n }\n\n const value = content?.[mainField.name];\n\n // relations, media ... show the id as fallback\n if (mainField.name === 'id' && ![undefined, null].includes(value)) {\n return true;\n }\n\n return !isEmpty(value);\n }\n\n if (attribute.type === 'relation') {\n if (isSingleRelation(attribute.relation)) {\n return !isEmpty(content);\n }\n\n if (Array.isArray(content)) {\n return content.length > 0;\n }\n\n return content?.count > 0;\n }\n\n /*\n Biginteger fields need to be treated as strings, as `isNumber`\n doesn't deal with them.\n */\n if (['integer', 'decimal', 'float', 'number'].includes(attribute.type)) {\n return typeof content === 'number';\n }\n\n if (attribute.type === 'boolean') {\n return content !== null;\n }\n\n return !isEmpty(content);\n};\n\nconst isSingleRelation = (\n type: Extract<CellContentProps['attribute'], { type: 'relation' }>['relation']\n) => ['oneToOne', 'manyToOne', 'oneToOneMorph'].includes(type);\n\nexport { CellContent };\nexport type { CellContentProps };\n","import * as React from 'react';\n\nimport { useTracking, useRBAC, useQueryParams } from '@strapi/admin/strapi-admin';\nimport {\n Flex,\n IconButton,\n Popover,\n Checkbox,\n TextButton,\n Typography,\n useCollator,\n LinkButton,\n} from '@strapi/design-system';\nimport { Cog, ListPlus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useTypedSelector } from '../../../modules/hooks';\nimport { checkIfAttributeIsDisplayable } from '../../../utils/attributes';\n\ninterface ViewSettingsMenuProps extends FieldPickerProps {}\n\nconst ViewSettingsMenu = (props: ViewSettingsMenuProps) => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations ?? []\n );\n const [{ query }] = useQueryParams<{ plugins?: Record<string, unknown> }>();\n const { formatMessage } = useIntl();\n const {\n allowedActions: { canConfigureView },\n } = useRBAC(permissions);\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <IconButton\n label={formatMessage({\n id: 'components.ViewSettings.tooltip',\n defaultMessage: 'View Settings',\n })}\n >\n <Cog />\n </IconButton>\n </Popover.Trigger>\n <Popover.Content side=\"bottom\" align=\"end\" sideOffset={4}>\n <Flex alignItems=\"stretch\" direction=\"column\" padding={3} gap={3}>\n {canConfigureView ? (\n <LinkButton\n size=\"S\"\n startIcon={<ListPlus />}\n variant=\"secondary\"\n tag={NavLink}\n to={{\n pathname: 'configurations/list',\n search: query.plugins\n ? stringify({ plugins: query.plugins }, { encode: false })\n : '',\n }}\n >\n {formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n })}\n </LinkButton>\n ) : null}\n <FieldPicker {...props} />\n </Flex>\n </Popover.Content>\n </Popover.Root>\n );\n};\n\ninterface FieldPickerProps {\n headers?: string[];\n setHeaders: (headers: string[]) => void;\n resetHeaders: () => void;\n}\n\nconst FieldPicker = ({ headers = [], resetHeaders, setHeaders }: FieldPickerProps) => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n\n const { schema, model } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const attributes = schema?.attributes ?? {};\n\n const columns = Object.keys(attributes)\n .filter((name) => checkIfAttributeIsDisplayable(attributes[name]))\n .map((name) => ({\n name,\n label: list.metadatas[name]?.label ?? '',\n }))\n .sort((a, b) => formatter.compare(a.label, b.label));\n\n const handleChange = (name: string) => {\n trackUsage('didChangeDisplayedFields');\n\n /**\n * create an array of the new headers, if the new name exists it should be removed,\n * otherwise it should be added\n */\n const newHeaders = headers.includes(name)\n ? headers.filter((header) => header !== name)\n : [...headers, name];\n\n setHeaders(newHeaders);\n };\n\n const handleReset = () => {\n resetHeaders();\n };\n\n return (\n <Flex\n tag=\"fieldset\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={3}\n borderWidth={0}\n maxHeight={'240px'}\n overflow={'scroll'}\n >\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"legend\" variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'containers.list.displayedFields',\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n\n <TextButton onClick={handleReset}>\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </TextButton>\n </Flex>\n\n <Flex direction=\"column\" alignItems=\"stretch\">\n {columns.map((header) => {\n const isActive = headers.includes(header.name);\n\n return (\n <Flex\n wrap=\"wrap\"\n gap={2}\n background={isActive ? 'primary100' : 'transparent'}\n hasRadius\n padding={2}\n key={header.name}\n >\n <Checkbox\n onCheckedChange={() => handleChange(header.name)}\n checked={isActive}\n name={header.name}\n >\n <Typography fontSize={1}>{header.label}</Typography>\n </Checkbox>\n </Flex>\n );\n })}\n </Flex>\n </Flex>\n );\n};\n\nexport { ViewSettingsMenu };\nexport type { ViewSettingsMenuProps, FieldPickerProps };\n","import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Typography, ButtonProps } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n return (\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["NOT_ALLOWED_FILTERS","DEFAULT_ALLOWED_FILTERS","USER_FILTER_ATTRIBUTES","CREATOR_FIELDS","FiltersImpl","disabled","schema","attributes","uid","model","options","formatMessage","locale","useIntl","trackUsage","useTracking","allPermissions","useAuth","state","permissions","query","useQueryParams","schemas","useContentTypeSchema","canReadAdminUsers","React","useMemo","filter","permission","action","subject","length","selectedUserIds","filters","$and","reduce","acc","key","value","Object","entries","id","$eq","$ne","includes","push","data","userData","isLoading","isLoadingAdminUsers","useAdminUsers","$in","skip","users","metadata","useGetContentTypeConfigurationQuery","selectFromResult","contentType","metadatas","formatter","useCollator","sensitivity","displayedFilters","properties","fields","allowedFields","field","attribute","type","map","name","mainField","mainFieldName","label","list","getMainField","components","target","input","AdminUsersFilter","user","getDisplayName","toString","operators","defaultMessage","enum","Boolean","toSorted","a","b","compare","onOpenChange","isOpen","handleFilterChange","useRelation","_jsxs","Filters","Root","onChange","_jsx","Trigger","Popover","List","pageSize","setPageSize","useState","search","setSearch","debouncedSearch","useDebounce","_q","useField","handleOpenChange","pagination","pageCount","page","Combobox","aria-label","loading","onLoadMore","hasMoreItems","onInputChange","e","currentTarget","ComboboxOption","CellValue","formatDate","formatTime","formatNumber","formattedValue","parseISO","dateStyle","timeStyle","hour","minute","second","split","date","Date","setHours","setMinutes","setSeconds","maximumFractionDigits","SingleComponent","content","Tooltip","Typography","maxWidth","textColor","ellipsis","RepeatableComponent","Menu","onClick","stopPropagation","Badge","number","Content","item","Item","getFileExtension","ext","substring","MediaSingle","url","mime","alternativeText","formats","fileURL","prefixFileUrlWithBackendUrl","thumbnail","mediaURL","Avatar","src","alt","fallback","preview","fileExtension","fileName","description","FileWrapper","children","Flex","tag","position","borderRadius","width","height","borderColor","background","paddingLeft","justifyContent","alignItems","FileTypography","variant","styled","MediaMultiple","Group","file","index","remainingFiles","RelationSingle","getRelationLabel","RelationMultiple","rowId","useDoc","notifyStatus","useNotifyAT","setIsOpen","targetField","useGetRelationsQuery","refetchOnMountOrArgChange","contentCount","Array","isArray","count","useEffect","getTranslation","style","cursor","fontWeight","Loader","small","results","_Fragment","entry","documentId","total","aria-disabled","CellContent","hasContent","paddingRight","multiple","isSingleRelation","relation","repeatable","undefined","isEmpty","ViewSettingsMenu","props","useTypedSelector","admin_app","contentManager","collectionTypesConfigurations","allowedActions","canConfigureView","useRBAC","IconButton","Cog","side","align","sideOffset","direction","padding","gap","LinkButton","size","startIcon","ListPlus","NavLink","to","pathname","plugins","stringify","encode","FieldPicker","headers","resetHeaders","setHeaders","useDocumentLayout","columns","keys","checkIfAttributeIsDisplayable","sort","handleChange","newHeaders","header","handleReset","borderWidth","maxHeight","overflow","TextButton","isActive","wrap","hasRadius","Checkbox","onCheckedChange","checked","fontSize","INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","Layouts","Header","ListViewPage","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","collectionType","displayedHeaders","setDisplayedHeaders","listLayout","usePrev","layout","isEqual","handleSetHeaders","convertListLayoutToFieldLayouts","settings","defaultSortBy","defaultSortOrder","params","buildValidParams","error","isFetching","useGetAllDocumentsQuery","message","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","translation","draftAndPublish","searchable","sortable","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","Main","Title","primaryAction","CreateButton","subtitle","title","navigationAction","BackButton","Action","endActions","InjectionZone","area","startActions","SearchInput","placeholder","trackedEvent","filterable","Table","rows","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","ActionsCell","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","ReactRouterLink","Plus","textDecoration","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","PERMISSIONS","Protect","DocumentRBAC"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoContentTypePage-DjdXr1-j.js","sources":["../../../admin/src/pages/NoContentTypePage.tsx"],"sourcesContent":["import { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { getTranslation } from '../utils/translations';\n\nconst NoContentType = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content',\n })}\n />\n <Layouts.Content>\n <EmptyStateLayout\n action={\n <LinkButton\n tag={NavLink}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/plugins/content-type-builder/content-types/create-content-type\"\n >\n {formatMessage({\n id: 'app.components.HomePage.create',\n defaultMessage: 'Create your first Content-type',\n })}\n </LinkButton>\n }\n content={formatMessage({\n id: 'content-manager.pages.NoContentType.text',\n defaultMessage:\n \"You don't have any content yet, we recommend you to create your first Content-Type.\",\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n shadow=\"tableShadow\"\n />\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nexport { NoContentType };\n"],"names":["NoContentType","formatMessage","useIntl","_jsxs","Page","Main","_jsx","Layouts","Header","title","id","getTranslation","defaultMessage","Content","EmptyStateLayout","action","LinkButton","tag","NavLink","variant","startIcon","Plus","to","content","hasRadius","icon","EmptyDocuments","width","shadow"],"mappings":";;;;;;;;;;;;;;;;;;AASA,MAAMA,aAAgB,GAAA,IAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,qBACEC,IAAA,CAACC,KAAKC,IAAI,EAAA;;AACR,0BAAAC,GAAA,CAACC,QAAQC,MAAM,EAAA;AACbC,gBAAAA,KAAAA,EAAOR,aAAc,CAAA;AACnBS,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,aAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAN,GAAA,CAACC,QAAQM,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAP,GAACQ,CAAAA,gBAAAA,EAAAA;AACCC,oBAAAA,MAAAA,gBACET,GAACU,CAAAA,UAAAA,EAAAA;wBACCC,GAAKC,EAAAA,OAAAA;wBACLC,OAAQ,EAAA,WAAA;AACRC,wBAAAA,SAAAA,gBAAWd,GAACe,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;wBACZC,EAAG,EAAA,iEAAA;kCAEFrB,aAAc,CAAA;4BACbS,EAAI,EAAA,gCAAA;4BACJE,cAAgB,EAAA;AAClB,yBAAA;;AAGJW,oBAAAA,OAAAA,EAAStB,aAAc,CAAA;wBACrBS,EAAI,EAAA,0CAAA;wBACJE,cACE,EAAA;AACJ,qBAAA,CAAA;oBACAY,SAAS,EAAA,IAAA;AACTC,oBAAAA,IAAAA,gBAAMnB,GAACoB,CAAAA,cAAAA,EAAAA;wBAAeC,KAAM,EAAA;;oBAC5BC,MAAO,EAAA;;;;;AAKjB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoPermissionsPage-C5dC0MtL.js","sources":["../../../admin/src/pages/NoPermissionsPage.tsx"],"sourcesContent":["import { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/translations';\n\nconst NoPermissions = () => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <Layouts.Header\n title={formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content',\n })}\n />\n <Layouts.Content>\n <Page.NoPermissions />\n </Layouts.Content>\n </>\n );\n};\n\nexport { NoPermissions };\n"],"names":["NoPermissions","formatMessage","useIntl","_jsxs","_Fragment","_jsx","Layouts","Header","title","id","getTranslation","defaultMessage","Content","Page"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,MAAMA,aAAgB,GAAA,IAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,qBACEC,eAAA,CAAAC,mBAAA,EAAA;;AACE,0BAAAC,cAAA,CAACC,oBAAQC,MAAM,EAAA;AACbC,gBAAAA,KAAAA,EAAOP,aAAc,CAAA;AACnBQ,oBAAAA,EAAAA,EAAIC,oBAAe,CAAA,aAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAN,cAAA,CAACC,oBAAQM,OAAO,EAAA;wCACdP,cAAA,CAACQ,iBAAKb,aAAa,EAAA,EAAA;;;;AAI3B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Preview-C9kXTY6C.js","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nconst UnstablePreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Flex height=\"100%\">\n <Box flex={1}>TODO: Side editor</Box>\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n flex={1}\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n </Flex>\n );\n};\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent, UnstablePreviewContent };\n","import * as React from 'react';\n\nimport {\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <>\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Flex gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex flex={1} paddingRight={2} justifyContent=\"space-between\">\n <PreviewTabs />\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader, UnstablePreviewHeader };\n","import * as React from 'react';\n\nimport { Page, useQueryParams, useRBAC, createContext } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { PreviewContent, UnstablePreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader, UnstablePreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const { formatMessage } = useIntl();\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <UnstablePreviewContent />\n </>\n ) : (\n <>\n <PreviewHeader />\n <PreviewContent />\n </>\n )}\n </Flex>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([{ action: 'plugin::content-manager.explorer.read', subject: model }]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["UnstablePreviewContent","previewUrl","usePreviewContext","state","url","formatMessage","useIntl","_jsxs","Flex","height","_jsx","Box","flex","src","title","id","defaultMessage","borderWidth","tag","PreviewContent","width","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","IconButton","variant","Link","relative","to","onClick","label","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","_Fragment","Tabs","Root","value","onValueChange","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","gap","background","borderColor","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","justifyContent","LinkIcon","PreviewHeader","Grid","gridCols","Item","xs","paddingTop","paddingBottom","marginBottom","alignItems","margin","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","PreviewPage","slug","model","documentId","collectionType","useParams","params","React","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","Title","direction","strapi","future","isEnabled","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","position","top","left","zIndex","Protect","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Preview-DBvmhR7Q.js","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nconst UnstablePreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Flex height=\"100%\">\n <Box flex={1}>TODO: Side editor</Box>\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n flex={1}\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n </Flex>\n );\n};\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent, UnstablePreviewContent };\n","import * as React from 'react';\n\nimport {\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <>\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Flex gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex flex={1} paddingRight={2} justifyContent=\"space-between\">\n <PreviewTabs />\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader, UnstablePreviewHeader };\n","import * as React from 'react';\n\nimport { Page, useQueryParams, useRBAC, createContext } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { PreviewContent, UnstablePreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader, UnstablePreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const { formatMessage } = useIntl();\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <UnstablePreviewContent />\n </>\n ) : (\n <>\n <PreviewHeader />\n <PreviewContent />\n </>\n )}\n </Flex>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([{ action: 'plugin::content-manager.explorer.read', subject: model }]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["UnstablePreviewContent","previewUrl","usePreviewContext","state","url","formatMessage","useIntl","_jsxs","Flex","height","_jsx","Box","flex","src","title","id","defaultMessage","borderWidth","tag","PreviewContent","width","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","IconButton","variant","Link","relative","to","onClick","label","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","_Fragment","Tabs","Root","value","onValueChange","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","gap","background","borderColor","TitleContainer","paddingLeft","paddingRight","PreviewTitle","maxWidth","fontSize","fontWeight","justifyContent","LinkIcon","PreviewHeader","Grid","gridCols","Item","xs","paddingTop","paddingBottom","marginBottom","alignItems","margin","styled","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","PreviewPage","slug","model","documentId","collectionType","useParams","params","React","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","Title","direction","strapi","future","isEnabled","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","position","top","left","zIndex","Protect","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}