@strapi/admin 4.16.2 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (804) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +1 -1
  3. package/package.json +55 -41
  4. package/strapi-server.js +3 -3
  5. package/dist/_chunks/AuthenticatedApp-342bf22f.js +0 -1476
  6. package/dist/_chunks/AuthenticatedApp-342bf22f.js.map +0 -1
  7. package/dist/_chunks/AuthenticatedApp-bb31f306.mjs +0 -1450
  8. package/dist/_chunks/AuthenticatedApp-bb31f306.mjs.map +0 -1
  9. package/dist/_chunks/DragLayer-bff96835.mjs +0 -44
  10. package/dist/_chunks/DragLayer-bff96835.mjs.map +0 -1
  11. package/dist/_chunks/DragLayer-f07eee6c.js +0 -43
  12. package/dist/_chunks/DragLayer-f07eee6c.js.map +0 -1
  13. package/dist/_chunks/HomePage-0c7717c0.mjs +0 -49
  14. package/dist/_chunks/HomePage-0c7717c0.mjs.map +0 -1
  15. package/dist/_chunks/HomePage-175f79c7.js +0 -49
  16. package/dist/_chunks/HomePage-175f79c7.js.map +0 -1
  17. package/dist/_chunks/HomePage-246cc590.mjs +0 -542
  18. package/dist/_chunks/HomePage-246cc590.mjs.map +0 -1
  19. package/dist/_chunks/HomePage-6ff9e578.js +0 -563
  20. package/dist/_chunks/HomePage-6ff9e578.js.map +0 -1
  21. package/dist/_chunks/InstalledPluginsPage-170aff77.mjs +0 -134
  22. package/dist/_chunks/InstalledPluginsPage-170aff77.mjs.map +0 -1
  23. package/dist/_chunks/InstalledPluginsPage-3ae5dbb6.js +0 -153
  24. package/dist/_chunks/InstalledPluginsPage-3ae5dbb6.js.map +0 -1
  25. package/dist/_chunks/InternalErrorPage-040dc993.mjs +0 -41
  26. package/dist/_chunks/InternalErrorPage-040dc993.mjs.map +0 -1
  27. package/dist/_chunks/InternalErrorPage-d0e51ac2.js +0 -41
  28. package/dist/_chunks/InternalErrorPage-d0e51ac2.js.map +0 -1
  29. package/dist/_chunks/Layout-4b3e434a.js +0 -92
  30. package/dist/_chunks/Layout-4b3e434a.js.map +0 -1
  31. package/dist/_chunks/Layout-72fa2ace.mjs +0 -90
  32. package/dist/_chunks/Layout-72fa2ace.mjs.map +0 -1
  33. package/dist/_chunks/LimitsModal-203482b8.js +0 -84
  34. package/dist/_chunks/LimitsModal-203482b8.js.map +0 -1
  35. package/dist/_chunks/LimitsModal-da04700e.mjs +0 -82
  36. package/dist/_chunks/LimitsModal-da04700e.mjs.map +0 -1
  37. package/dist/_chunks/Login-576bbc11.js +0 -64
  38. package/dist/_chunks/Login-576bbc11.js.map +0 -1
  39. package/dist/_chunks/Login-d627bb0a.mjs +0 -62
  40. package/dist/_chunks/Login-d627bb0a.mjs.map +0 -1
  41. package/dist/_chunks/MarketplacePage-1cbfa8fd.mjs +0 -1011
  42. package/dist/_chunks/MarketplacePage-1cbfa8fd.mjs.map +0 -1
  43. package/dist/_chunks/MarketplacePage-e7cd973b.js +0 -1035
  44. package/dist/_chunks/MarketplacePage-e7cd973b.js.map +0 -1
  45. package/dist/_chunks/ProfilePage-52844daa.js +0 -665
  46. package/dist/_chunks/ProfilePage-52844daa.js.map +0 -1
  47. package/dist/_chunks/ProfilePage-ef400907.mjs +0 -642
  48. package/dist/_chunks/ProfilePage-ef400907.mjs.map +0 -1
  49. package/dist/_chunks/SSOProviders-62bfad92.mjs +0 -58
  50. package/dist/_chunks/SSOProviders-62bfad92.mjs.map +0 -1
  51. package/dist/_chunks/SSOProviders-b395a4e6.js +0 -59
  52. package/dist/_chunks/SSOProviders-b395a4e6.js.map +0 -1
  53. package/dist/_chunks/SalesPage-4a0a68fb.js +0 -51
  54. package/dist/_chunks/SalesPage-4a0a68fb.js.map +0 -1
  55. package/dist/_chunks/SalesPage-56bf9463.mjs +0 -48
  56. package/dist/_chunks/SalesPage-56bf9463.mjs.map +0 -1
  57. package/dist/_chunks/SalesPage-66f9ea32.js +0 -51
  58. package/dist/_chunks/SalesPage-66f9ea32.js.map +0 -1
  59. package/dist/_chunks/SalesPage-d0cdc1a7.js +0 -48
  60. package/dist/_chunks/SalesPage-d0cdc1a7.js.map +0 -1
  61. package/dist/_chunks/SalesPage-f9597ae7.mjs +0 -51
  62. package/dist/_chunks/SalesPage-f9597ae7.mjs.map +0 -1
  63. package/dist/_chunks/SalesPage-fceedf48.mjs +0 -51
  64. package/dist/_chunks/SalesPage-fceedf48.mjs.map +0 -1
  65. package/dist/_chunks/ar-21279f4c.js +0 -936
  66. package/dist/_chunks/ar-21279f4c.js.map +0 -1
  67. package/dist/_chunks/ar-62e5e2b3.mjs +0 -936
  68. package/dist/_chunks/ar-62e5e2b3.mjs.map +0 -1
  69. package/dist/_chunks/build-1026ce7c.mjs +0 -68
  70. package/dist/_chunks/build-1026ce7c.mjs.map +0 -1
  71. package/dist/_chunks/build-d99bcc06.js +0 -68
  72. package/dist/_chunks/build-d99bcc06.js.map +0 -1
  73. package/dist/_chunks/ca-d05fb350.js +0 -724
  74. package/dist/_chunks/ca-d05fb350.js.map +0 -1
  75. package/dist/_chunks/ca-e99de225.mjs +0 -724
  76. package/dist/_chunks/ca-e99de225.mjs.map +0 -1
  77. package/dist/_chunks/colors-c24a54f0.js +0 -33
  78. package/dist/_chunks/colors-c24a54f0.js.map +0 -1
  79. package/dist/_chunks/colors-e7489dd4.mjs +0 -34
  80. package/dist/_chunks/colors-e7489dd4.mjs.map +0 -1
  81. package/dist/_chunks/constants-2a8f4e41.mjs +0 -11
  82. package/dist/_chunks/constants-2a8f4e41.mjs.map +0 -1
  83. package/dist/_chunks/constants-40ffa931.js +0 -11
  84. package/dist/_chunks/constants-40ffa931.js.map +0 -1
  85. package/dist/_chunks/constants-4aca55b6.js +0 -85
  86. package/dist/_chunks/constants-4aca55b6.js.map +0 -1
  87. package/dist/_chunks/constants-64899732.js +0 -30
  88. package/dist/_chunks/constants-64899732.js.map +0 -1
  89. package/dist/_chunks/constants-6c68e9a0.js +0 -229
  90. package/dist/_chunks/constants-6c68e9a0.js.map +0 -1
  91. package/dist/_chunks/constants-6ecddc43.mjs +0 -111
  92. package/dist/_chunks/constants-6ecddc43.mjs.map +0 -1
  93. package/dist/_chunks/constants-74b8a935.mjs +0 -52
  94. package/dist/_chunks/constants-74b8a935.mjs.map +0 -1
  95. package/dist/_chunks/constants-7596f6f3.js +0 -132
  96. package/dist/_chunks/constants-7596f6f3.js.map +0 -1
  97. package/dist/_chunks/constants-8092eeb5.mjs +0 -59
  98. package/dist/_chunks/constants-8092eeb5.mjs.map +0 -1
  99. package/dist/_chunks/constants-85da8cc4.js +0 -58
  100. package/dist/_chunks/constants-85da8cc4.js.map +0 -1
  101. package/dist/_chunks/constants-a6fd64fc.mjs +0 -80
  102. package/dist/_chunks/constants-a6fd64fc.mjs.map +0 -1
  103. package/dist/_chunks/constants-a92ce583.mjs +0 -7
  104. package/dist/_chunks/constants-a92ce583.mjs.map +0 -1
  105. package/dist/_chunks/constants-ae0b83df.mjs +0 -227
  106. package/dist/_chunks/constants-ae0b83df.mjs.map +0 -1
  107. package/dist/_chunks/constants-c1f1f698.mjs +0 -85
  108. package/dist/_chunks/constants-c1f1f698.mjs.map +0 -1
  109. package/dist/_chunks/constants-d3dd8ed6.mjs +0 -7
  110. package/dist/_chunks/constants-d3dd8ed6.mjs.map +0 -1
  111. package/dist/_chunks/constants-d5d67ca8.js +0 -6
  112. package/dist/_chunks/constants-d5d67ca8.js.map +0 -1
  113. package/dist/_chunks/constants-da2542a3.js +0 -6
  114. package/dist/_chunks/constants-da2542a3.js.map +0 -1
  115. package/dist/_chunks/constants-ddd2d586.js +0 -82
  116. package/dist/_chunks/constants-ddd2d586.js.map +0 -1
  117. package/dist/_chunks/constants-def33545.mjs +0 -30
  118. package/dist/_chunks/constants-def33545.mjs.map +0 -1
  119. package/dist/_chunks/constants-e05f06d4.js +0 -52
  120. package/dist/_chunks/constants-e05f06d4.js.map +0 -1
  121. package/dist/_chunks/cs-2fa881a2.mjs +0 -291
  122. package/dist/_chunks/cs-2fa881a2.mjs.map +0 -1
  123. package/dist/_chunks/cs-eee75b10.js +0 -291
  124. package/dist/_chunks/cs-eee75b10.js.map +0 -1
  125. package/dist/_chunks/de-28f8bc28.mjs +0 -716
  126. package/dist/_chunks/de-28f8bc28.mjs.map +0 -1
  127. package/dist/_chunks/de-976cc986.js +0 -716
  128. package/dist/_chunks/de-976cc986.js.map +0 -1
  129. package/dist/_chunks/develop-72394876.mjs +0 -61
  130. package/dist/_chunks/develop-72394876.mjs.map +0 -1
  131. package/dist/_chunks/develop-da585b1e.js +0 -61
  132. package/dist/_chunks/develop-da585b1e.js.map +0 -1
  133. package/dist/_chunks/dk-0b759a56.mjs +0 -634
  134. package/dist/_chunks/dk-0b759a56.mjs.map +0 -1
  135. package/dist/_chunks/dk-6189917e.js +0 -634
  136. package/dist/_chunks/dk-6189917e.js.map +0 -1
  137. package/dist/_chunks/edit-29bdf5d6.js +0 -50
  138. package/dist/_chunks/edit-29bdf5d6.js.map +0 -1
  139. package/dist/_chunks/edit-923cefa0.mjs +0 -32
  140. package/dist/_chunks/edit-923cefa0.mjs.map +0 -1
  141. package/dist/_chunks/en-0e9e9327.js +0 -1022
  142. package/dist/_chunks/en-0e9e9327.js.map +0 -1
  143. package/dist/_chunks/en-e728accb.mjs +0 -1022
  144. package/dist/_chunks/en-e728accb.mjs.map +0 -1
  145. package/dist/_chunks/es-18b29db2.mjs +0 -796
  146. package/dist/_chunks/es-18b29db2.mjs.map +0 -1
  147. package/dist/_chunks/es-3ee0992a.js +0 -796
  148. package/dist/_chunks/es-3ee0992a.js.map +0 -1
  149. package/dist/_chunks/eu-8fd773c2.mjs +0 -832
  150. package/dist/_chunks/eu-8fd773c2.mjs.map +0 -1
  151. package/dist/_chunks/eu-be749f31.js +0 -832
  152. package/dist/_chunks/eu-be749f31.js.map +0 -1
  153. package/dist/_chunks/formatAPIErrors-b599cf27.js +0 -20
  154. package/dist/_chunks/formatAPIErrors-b599cf27.js.map +0 -1
  155. package/dist/_chunks/formatAPIErrors-db6ed675.mjs +0 -21
  156. package/dist/_chunks/formatAPIErrors-db6ed675.mjs.map +0 -1
  157. package/dist/_chunks/fr-29c84e1f.js +0 -762
  158. package/dist/_chunks/fr-29c84e1f.js.map +0 -1
  159. package/dist/_chunks/fr-f37df086.mjs +0 -762
  160. package/dist/_chunks/fr-f37df086.mjs.map +0 -1
  161. package/dist/_chunks/gu-377a4b46.js +0 -623
  162. package/dist/_chunks/gu-377a4b46.js.map +0 -1
  163. package/dist/_chunks/gu-69f0e13a.mjs +0 -623
  164. package/dist/_chunks/gu-69f0e13a.mjs.map +0 -1
  165. package/dist/_chunks/he-aec27352.js +0 -326
  166. package/dist/_chunks/he-aec27352.js.map +0 -1
  167. package/dist/_chunks/he-bd769d7e.mjs +0 -326
  168. package/dist/_chunks/he-bd769d7e.mjs.map +0 -1
  169. package/dist/_chunks/hi-1bdc7a46.js +0 -722
  170. package/dist/_chunks/hi-1bdc7a46.js.map +0 -1
  171. package/dist/_chunks/hi-d397a24b.mjs +0 -722
  172. package/dist/_chunks/hi-d397a24b.mjs.map +0 -1
  173. package/dist/_chunks/hu-e2c05f40.js +0 -832
  174. package/dist/_chunks/hu-e2c05f40.js.map +0 -1
  175. package/dist/_chunks/hu-eb88bd0c.mjs +0 -832
  176. package/dist/_chunks/hu-eb88bd0c.mjs.map +0 -1
  177. package/dist/_chunks/id-586df3a2.js +0 -448
  178. package/dist/_chunks/id-586df3a2.js.map +0 -1
  179. package/dist/_chunks/id-f47699e6.mjs +0 -448
  180. package/dist/_chunks/id-f47699e6.mjs.map +0 -1
  181. package/dist/_chunks/index-10a05917.mjs +0 -51
  182. package/dist/_chunks/index-10a05917.mjs.map +0 -1
  183. package/dist/_chunks/index-115d317b.mjs +0 -244
  184. package/dist/_chunks/index-115d317b.mjs.map +0 -1
  185. package/dist/_chunks/index-171715e4.js +0 -697
  186. package/dist/_chunks/index-171715e4.js.map +0 -1
  187. package/dist/_chunks/index-176cc121.mjs +0 -469
  188. package/dist/_chunks/index-176cc121.mjs.map +0 -1
  189. package/dist/_chunks/index-1bac5263.js +0 -338
  190. package/dist/_chunks/index-1bac5263.js.map +0 -1
  191. package/dist/_chunks/index-200c5a6a.js +0 -51
  192. package/dist/_chunks/index-200c5a6a.js.map +0 -1
  193. package/dist/_chunks/index-215b5421.mjs +0 -51
  194. package/dist/_chunks/index-215b5421.mjs.map +0 -1
  195. package/dist/_chunks/index-23401c29.js +0 -418
  196. package/dist/_chunks/index-23401c29.js.map +0 -1
  197. package/dist/_chunks/index-242c859c.js +0 -335
  198. package/dist/_chunks/index-242c859c.js.map +0 -1
  199. package/dist/_chunks/index-26fcb3ca.mjs +0 -1432
  200. package/dist/_chunks/index-26fcb3ca.mjs.map +0 -1
  201. package/dist/_chunks/index-28dd9303.mjs +0 -51
  202. package/dist/_chunks/index-28dd9303.mjs.map +0 -1
  203. package/dist/_chunks/index-296c14bf.mjs +0 -362
  204. package/dist/_chunks/index-296c14bf.mjs.map +0 -1
  205. package/dist/_chunks/index-2de06c32.js +0 -51
  206. package/dist/_chunks/index-2de06c32.js.map +0 -1
  207. package/dist/_chunks/index-2eb69b5d.mjs +0 -399
  208. package/dist/_chunks/index-2eb69b5d.mjs.map +0 -1
  209. package/dist/_chunks/index-2f61e3ae.js +0 -585
  210. package/dist/_chunks/index-2f61e3ae.js.map +0 -1
  211. package/dist/_chunks/index-308b73ba.mjs +0 -60
  212. package/dist/_chunks/index-308b73ba.mjs.map +0 -1
  213. package/dist/_chunks/index-34e41e15.js +0 -134
  214. package/dist/_chunks/index-34e41e15.js.map +0 -1
  215. package/dist/_chunks/index-38115cde.js +0 -66
  216. package/dist/_chunks/index-38115cde.js.map +0 -1
  217. package/dist/_chunks/index-383efae4.mjs +0 -55
  218. package/dist/_chunks/index-383efae4.mjs.map +0 -1
  219. package/dist/_chunks/index-3b426575.js +0 -47
  220. package/dist/_chunks/index-3b426575.js.map +0 -1
  221. package/dist/_chunks/index-47af1603.js +0 -253
  222. package/dist/_chunks/index-47af1603.js.map +0 -1
  223. package/dist/_chunks/index-49b7e6ff.mjs +0 -1266
  224. package/dist/_chunks/index-49b7e6ff.mjs.map +0 -1
  225. package/dist/_chunks/index-4d9b2cb9.js +0 -47
  226. package/dist/_chunks/index-4d9b2cb9.js.map +0 -1
  227. package/dist/_chunks/index-4de70b5d.js +0 -3404
  228. package/dist/_chunks/index-4de70b5d.js.map +0 -1
  229. package/dist/_chunks/index-59b1f604.js +0 -380
  230. package/dist/_chunks/index-59b1f604.js.map +0 -1
  231. package/dist/_chunks/index-5a5217e0.mjs +0 -308
  232. package/dist/_chunks/index-5a5217e0.mjs.map +0 -1
  233. package/dist/_chunks/index-5da07c41.js +0 -418
  234. package/dist/_chunks/index-5da07c41.js.map +0 -1
  235. package/dist/_chunks/index-600cb5dd.js +0 -51
  236. package/dist/_chunks/index-600cb5dd.js.map +0 -1
  237. package/dist/_chunks/index-608d8d10.mjs +0 -393
  238. package/dist/_chunks/index-608d8d10.mjs.map +0 -1
  239. package/dist/_chunks/index-74812118.mjs +0 -53
  240. package/dist/_chunks/index-74812118.mjs.map +0 -1
  241. package/dist/_chunks/index-7d578921.js +0 -847
  242. package/dist/_chunks/index-7d578921.js.map +0 -1
  243. package/dist/_chunks/index-8109fa91.mjs +0 -676
  244. package/dist/_chunks/index-8109fa91.mjs.map +0 -1
  245. package/dist/_chunks/index-82c7a120.js +0 -15401
  246. package/dist/_chunks/index-82c7a120.js.map +0 -1
  247. package/dist/_chunks/index-83d53962.js +0 -62
  248. package/dist/_chunks/index-83d53962.js.map +0 -1
  249. package/dist/_chunks/index-88298941.js +0 -54
  250. package/dist/_chunks/index-88298941.js.map +0 -1
  251. package/dist/_chunks/index-8933483b.mjs +0 -3374
  252. package/dist/_chunks/index-8933483b.mjs.map +0 -1
  253. package/dist/_chunks/index-91df57b1.mjs +0 -826
  254. package/dist/_chunks/index-91df57b1.mjs.map +0 -1
  255. package/dist/_chunks/index-973c363e.mjs +0 -63
  256. package/dist/_chunks/index-973c363e.mjs.map +0 -1
  257. package/dist/_chunks/index-989bbeec.mjs +0 -232
  258. package/dist/_chunks/index-989bbeec.mjs.map +0 -1
  259. package/dist/_chunks/index-9910dda4.js +0 -55
  260. package/dist/_chunks/index-9910dda4.js.map +0 -1
  261. package/dist/_chunks/index-9afb163a.js +0 -418
  262. package/dist/_chunks/index-9afb163a.js.map +0 -1
  263. package/dist/_chunks/index-9f61bef8.js +0 -51
  264. package/dist/_chunks/index-9f61bef8.js.map +0 -1
  265. package/dist/_chunks/index-ab31623a.mjs +0 -273
  266. package/dist/_chunks/index-ab31623a.mjs.map +0 -1
  267. package/dist/_chunks/index-ac85118a.mjs +0 -47
  268. package/dist/_chunks/index-ac85118a.mjs.map +0 -1
  269. package/dist/_chunks/index-ad8e55c0.mjs +0 -866
  270. package/dist/_chunks/index-ad8e55c0.mjs.map +0 -1
  271. package/dist/_chunks/index-aedeaf5a.js +0 -311
  272. package/dist/_chunks/index-aedeaf5a.js.map +0 -1
  273. package/dist/_chunks/index-bbac142a.js +0 -125
  274. package/dist/_chunks/index-bbac142a.js.map +0 -1
  275. package/dist/_chunks/index-bd18f803.mjs +0 -15320
  276. package/dist/_chunks/index-bd18f803.mjs.map +0 -1
  277. package/dist/_chunks/index-c8b8a2ee.mjs +0 -359
  278. package/dist/_chunks/index-c8b8a2ee.mjs.map +0 -1
  279. package/dist/_chunks/index-c97f5820.js +0 -1456
  280. package/dist/_chunks/index-c97f5820.js.map +0 -1
  281. package/dist/_chunks/index-cb6a72d2.mjs +0 -127
  282. package/dist/_chunks/index-cb6a72d2.mjs.map +0 -1
  283. package/dist/_chunks/index-cbc7c054.js +0 -266
  284. package/dist/_chunks/index-cbc7c054.js.map +0 -1
  285. package/dist/_chunks/index-ce5995cd.mjs +0 -132
  286. package/dist/_chunks/index-ce5995cd.mjs.map +0 -1
  287. package/dist/_chunks/index-d1152896.js +0 -294
  288. package/dist/_chunks/index-d1152896.js.map +0 -1
  289. package/dist/_chunks/index-d1dd825b.js +0 -365
  290. package/dist/_chunks/index-d1dd825b.js.map +0 -1
  291. package/dist/_chunks/index-d2d9df41.mjs +0 -270
  292. package/dist/_chunks/index-d2d9df41.mjs.map +0 -1
  293. package/dist/_chunks/index-d3e1fd86.js +0 -490
  294. package/dist/_chunks/index-d3e1fd86.js.map +0 -1
  295. package/dist/_chunks/index-d4517ac4.mjs +0 -582
  296. package/dist/_chunks/index-d4517ac4.mjs.map +0 -1
  297. package/dist/_chunks/index-d49fa655.js +0 -873
  298. package/dist/_chunks/index-d49fa655.js.map +0 -1
  299. package/dist/_chunks/index-d6694cab.mjs +0 -125
  300. package/dist/_chunks/index-d6694cab.mjs.map +0 -1
  301. package/dist/_chunks/index-e117c643.mjs +0 -55
  302. package/dist/_chunks/index-e117c643.mjs.map +0 -1
  303. package/dist/_chunks/index-e1b90981.mjs +0 -314
  304. package/dist/_chunks/index-e1b90981.mjs.map +0 -1
  305. package/dist/_chunks/index-e24df0bf.js +0 -403
  306. package/dist/_chunks/index-e24df0bf.js.map +0 -1
  307. package/dist/_chunks/index-e2d2f58e.mjs +0 -47
  308. package/dist/_chunks/index-e2d2f58e.mjs.map +0 -1
  309. package/dist/_chunks/index-e369d741.mjs +0 -383
  310. package/dist/_chunks/index-e369d741.mjs.map +0 -1
  311. package/dist/_chunks/index-e79b2b9e.mjs +0 -338
  312. package/dist/_chunks/index-e79b2b9e.mjs.map +0 -1
  313. package/dist/_chunks/index-ea18ff22.mjs +0 -51
  314. package/dist/_chunks/index-ea18ff22.mjs.map +0 -1
  315. package/dist/_chunks/index-eb67694f.mjs +0 -261
  316. package/dist/_chunks/index-eb67694f.mjs.map +0 -1
  317. package/dist/_chunks/index-ed3696ec.js +0 -272
  318. package/dist/_chunks/index-ed3696ec.js.map +0 -1
  319. package/dist/_chunks/index-ee1ea38b.js +0 -129
  320. package/dist/_chunks/index-ee1ea38b.js.map +0 -1
  321. package/dist/_chunks/index-efc967f5.js +0 -55
  322. package/dist/_chunks/index-efc967f5.js.map +0 -1
  323. package/dist/_chunks/index-fc700e52.js +0 -263
  324. package/dist/_chunks/index-fc700e52.js.map +0 -1
  325. package/dist/_chunks/index-fd4e5616.mjs +0 -412
  326. package/dist/_chunks/index-fd4e5616.mjs.map +0 -1
  327. package/dist/_chunks/index-ffd2f664.js +0 -1337
  328. package/dist/_chunks/index-ffd2f664.js.map +0 -1
  329. package/dist/_chunks/it-4006227c.mjs +0 -459
  330. package/dist/_chunks/it-4006227c.mjs.map +0 -1
  331. package/dist/_chunks/it-9c4295f1.js +0 -459
  332. package/dist/_chunks/it-9c4295f1.js.map +0 -1
  333. package/dist/_chunks/ja-db43ca3d.mjs +0 -633
  334. package/dist/_chunks/ja-db43ca3d.mjs.map +0 -1
  335. package/dist/_chunks/ja-eb74520f.js +0 -633
  336. package/dist/_chunks/ja-eb74520f.js.map +0 -1
  337. package/dist/_chunks/ko-18e71df4.js +0 -631
  338. package/dist/_chunks/ko-18e71df4.js.map +0 -1
  339. package/dist/_chunks/ko-a7826e25.mjs +0 -631
  340. package/dist/_chunks/ko-a7826e25.mjs.map +0 -1
  341. package/dist/_chunks/ml-90131768.mjs +0 -722
  342. package/dist/_chunks/ml-90131768.mjs.map +0 -1
  343. package/dist/_chunks/ml-c5199364.js +0 -722
  344. package/dist/_chunks/ml-c5199364.js.map +0 -1
  345. package/dist/_chunks/ms-bc514df6.js +0 -342
  346. package/dist/_chunks/ms-bc514df6.js.map +0 -1
  347. package/dist/_chunks/ms-f4f16a83.mjs +0 -342
  348. package/dist/_chunks/ms-f4f16a83.mjs.map +0 -1
  349. package/dist/_chunks/nl-887ce2c3.mjs +0 -828
  350. package/dist/_chunks/nl-887ce2c3.mjs.map +0 -1
  351. package/dist/_chunks/nl-f1aedbe2.js +0 -828
  352. package/dist/_chunks/nl-f1aedbe2.js.map +0 -1
  353. package/dist/_chunks/no-ec6c2927.js +0 -310
  354. package/dist/_chunks/no-ec6c2927.js.map +0 -1
  355. package/dist/_chunks/no-f0b02541.mjs +0 -310
  356. package/dist/_chunks/no-f0b02541.mjs.map +0 -1
  357. package/dist/_chunks/pl-9be86414.js +0 -721
  358. package/dist/_chunks/pl-9be86414.js.map +0 -1
  359. package/dist/_chunks/pl-9ccd35d9.mjs +0 -721
  360. package/dist/_chunks/pl-9ccd35d9.mjs.map +0 -1
  361. package/dist/_chunks/pt-4fcc08f1.js +0 -296
  362. package/dist/_chunks/pt-4fcc08f1.js.map +0 -1
  363. package/dist/_chunks/pt-8acb6ac1.mjs +0 -296
  364. package/dist/_chunks/pt-8acb6ac1.mjs.map +0 -1
  365. package/dist/_chunks/pt-BR-d43239e3.js +0 -794
  366. package/dist/_chunks/pt-BR-d43239e3.js.map +0 -1
  367. package/dist/_chunks/pt-BR-fd73cb13.mjs +0 -794
  368. package/dist/_chunks/pt-BR-fd73cb13.mjs.map +0 -1
  369. package/dist/_chunks/ru-9aad40c5.mjs +0 -993
  370. package/dist/_chunks/ru-9aad40c5.mjs.map +0 -1
  371. package/dist/_chunks/ru-c0293425.js +0 -993
  372. package/dist/_chunks/ru-c0293425.js.map +0 -1
  373. package/dist/_chunks/sa-6bf4c20e.mjs +0 -722
  374. package/dist/_chunks/sa-6bf4c20e.mjs.map +0 -1
  375. package/dist/_chunks/sa-8ffb7ca7.js +0 -722
  376. package/dist/_chunks/sa-8ffb7ca7.js.map +0 -1
  377. package/dist/_chunks/schema-260fec28.js +0 -514
  378. package/dist/_chunks/schema-260fec28.js.map +0 -1
  379. package/dist/_chunks/schema-6bd8bd85.mjs +0 -490
  380. package/dist/_chunks/schema-6bd8bd85.mjs.map +0 -1
  381. package/dist/_chunks/sk-58d31b17.mjs +0 -690
  382. package/dist/_chunks/sk-58d31b17.mjs.map +0 -1
  383. package/dist/_chunks/sk-a9308737.js +0 -690
  384. package/dist/_chunks/sk-a9308737.js.map +0 -1
  385. package/dist/_chunks/sv-0f5ffd1e.js +0 -827
  386. package/dist/_chunks/sv-0f5ffd1e.js.map +0 -1
  387. package/dist/_chunks/sv-d80ad633.mjs +0 -827
  388. package/dist/_chunks/sv-d80ad633.mjs.map +0 -1
  389. package/dist/_chunks/th-a53bbf7a.js +0 -430
  390. package/dist/_chunks/th-a53bbf7a.js.map +0 -1
  391. package/dist/_chunks/th-e72c6a22.mjs +0 -430
  392. package/dist/_chunks/th-e72c6a22.mjs.map +0 -1
  393. package/dist/_chunks/tr-b84a68b0.js +0 -785
  394. package/dist/_chunks/tr-b84a68b0.js.map +0 -1
  395. package/dist/_chunks/tr-e35ecfe8.mjs +0 -785
  396. package/dist/_chunks/tr-e35ecfe8.mjs.map +0 -1
  397. package/dist/_chunks/uk-de367ec1.mjs +0 -343
  398. package/dist/_chunks/uk-de367ec1.mjs.map +0 -1
  399. package/dist/_chunks/uk-e5226227.js +0 -343
  400. package/dist/_chunks/uk-e5226227.js.map +0 -1
  401. package/dist/_chunks/useAdminRolePermissions-603a2709.mjs +0 -2322
  402. package/dist/_chunks/useAdminRolePermissions-603a2709.mjs.map +0 -1
  403. package/dist/_chunks/useAdminRolePermissions-cb1a3ee2.js +0 -2337
  404. package/dist/_chunks/useAdminRolePermissions-cb1a3ee2.js.map +0 -1
  405. package/dist/_chunks/useAdminRoles-68d5d608.js +0 -62
  406. package/dist/_chunks/useAdminRoles-68d5d608.js.map +0 -1
  407. package/dist/_chunks/useAdminRoles-7ab5d521.mjs +0 -44
  408. package/dist/_chunks/useAdminRoles-7ab5d521.mjs.map +0 -1
  409. package/dist/_chunks/useAdminUsers-05d6b26a.js +0 -61
  410. package/dist/_chunks/useAdminUsers-05d6b26a.js.map +0 -1
  411. package/dist/_chunks/useAdminUsers-09f86a58.mjs +0 -43
  412. package/dist/_chunks/useAdminUsers-09f86a58.mjs.map +0 -1
  413. package/dist/_chunks/useContentTypes-53b449bb.mjs +0 -67
  414. package/dist/_chunks/useContentTypes-53b449bb.mjs.map +0 -1
  415. package/dist/_chunks/useContentTypes-7da293cc.js +0 -85
  416. package/dist/_chunks/useContentTypes-7da293cc.js.map +0 -1
  417. package/dist/_chunks/useDebounce-4712871e.js +0 -35
  418. package/dist/_chunks/useDebounce-4712871e.js.map +0 -1
  419. package/dist/_chunks/useDebounce-9364f340.mjs +0 -17
  420. package/dist/_chunks/useDebounce-9364f340.mjs.map +0 -1
  421. package/dist/_chunks/useLicenseLimitNotification-1fd756fa.mjs +0 -80
  422. package/dist/_chunks/useLicenseLimitNotification-1fd756fa.mjs.map +0 -1
  423. package/dist/_chunks/useLicenseLimitNotification-8a4d7fc1.js +0 -100
  424. package/dist/_chunks/useLicenseLimitNotification-8a4d7fc1.js.map +0 -1
  425. package/dist/_chunks/useLicenseLimits-13a102d3.mjs +0 -31
  426. package/dist/_chunks/useLicenseLimits-13a102d3.mjs.map +0 -1
  427. package/dist/_chunks/useLicenseLimits-81ef3cce.js +0 -49
  428. package/dist/_chunks/useLicenseLimits-81ef3cce.js.map +0 -1
  429. package/dist/_chunks/useReviewWorkflows-799e0305.js +0 -59
  430. package/dist/_chunks/useReviewWorkflows-799e0305.js.map +0 -1
  431. package/dist/_chunks/useReviewWorkflows-9e6b8986.mjs +0 -41
  432. package/dist/_chunks/useReviewWorkflows-9e6b8986.mjs.map +0 -1
  433. package/dist/_chunks/validateWorkflow-5693ea2d.js +0 -1124
  434. package/dist/_chunks/validateWorkflow-5693ea2d.js.map +0 -1
  435. package/dist/_chunks/validateWorkflow-7a2b6ab8.mjs +0 -1101
  436. package/dist/_chunks/validateWorkflow-7a2b6ab8.mjs.map +0 -1
  437. package/dist/_chunks/vi-096bccbb.mjs +0 -298
  438. package/dist/_chunks/vi-096bccbb.mjs.map +0 -1
  439. package/dist/_chunks/vi-c5fabb75.js +0 -298
  440. package/dist/_chunks/vi-c5fabb75.js.map +0 -1
  441. package/dist/_chunks/zh-24f618cb.js +0 -836
  442. package/dist/_chunks/zh-24f618cb.js.map +0 -1
  443. package/dist/_chunks/zh-Hans-35d2c374.js +0 -957
  444. package/dist/_chunks/zh-Hans-35d2c374.js.map +0 -1
  445. package/dist/_chunks/zh-Hans-ccf4be4b.mjs +0 -957
  446. package/dist/_chunks/zh-Hans-ccf4be4b.mjs.map +0 -1
  447. package/dist/_chunks/zh-ba29b2e1.mjs +0 -836
  448. package/dist/_chunks/zh-ba29b2e1.mjs.map +0 -1
  449. package/dist/admin/index.js +0 -34
  450. package/dist/admin/index.js.map +0 -1
  451. package/dist/admin/index.mjs +0 -34
  452. package/dist/admin/index.mjs.map +0 -1
  453. package/dist/admin/src/App.d.ts +0 -6
  454. package/dist/admin/src/StrapiApp.d.ts +0 -140
  455. package/dist/admin/src/components/AuthenticatedApp.d.ts +0 -2
  456. package/dist/admin/src/components/ConfigurationProvider.d.ts +0 -11
  457. package/dist/admin/src/components/DefaultDocument.d.ts +0 -5
  458. package/dist/admin/src/components/DragLayer.d.ts +0 -10
  459. package/dist/admin/src/components/GuidedTour/Homepage.d.ts +0 -2
  460. package/dist/admin/src/components/GuidedTour/Modal.d.ts +0 -2
  461. package/dist/admin/src/components/GuidedTour/Ornaments.d.ts +0 -13
  462. package/dist/admin/src/components/GuidedTour/Provider.d.ts +0 -6
  463. package/dist/admin/src/components/GuidedTour/constants.d.ts +0 -165
  464. package/dist/admin/src/components/LanguageProvider.d.ts +0 -19
  465. package/dist/admin/src/components/LeftMenu.d.ts +0 -5
  466. package/dist/admin/src/components/NoJavascript.d.ts +0 -7
  467. package/dist/admin/src/components/NpsSurvey.d.ts +0 -17
  468. package/dist/admin/src/components/Onboarding.d.ts +0 -2
  469. package/dist/admin/src/components/PluginsInitializer.d.ts +0 -5
  470. package/dist/admin/src/components/PrivateRoute.d.ts +0 -8
  471. package/dist/admin/src/components/Providers.d.ts +0 -13
  472. package/dist/admin/src/components/RBACProvider.d.ts +0 -27
  473. package/dist/admin/src/components/Theme.d.ts +0 -6
  474. package/dist/admin/src/components/ThemeToggleProvider.d.ts +0 -12
  475. package/dist/admin/src/components/UnauthenticatedLogo.d.ts +0 -2
  476. package/dist/admin/src/constants.d.ts +0 -195
  477. package/dist/admin/src/content-manager/components/BlocksInput/BlocksContent.d.ts +0 -5
  478. package/dist/admin/src/content-manager/components/BlocksInput/BlocksEditor.d.ts +0 -34
  479. package/dist/admin/src/content-manager/components/BlocksInput/BlocksInput.d.ts +0 -18
  480. package/dist/admin/src/content-manager/components/BlocksInput/BlocksToolbar.d.ts +0 -2
  481. package/dist/admin/src/content-manager/components/BlocksInput/hooks/useBlocksStore.d.ts +0 -32
  482. package/dist/admin/src/content-manager/components/BlocksInput/hooks/useModifiersStore.d.ts +0 -20
  483. package/dist/admin/src/content-manager/components/BlocksInput/plugins/withLinks.d.ts +0 -8
  484. package/dist/admin/src/content-manager/components/BlocksInput/plugins/withStrapiSchema.d.ts +0 -8
  485. package/dist/admin/src/content-manager/components/BlocksInput/tests/mock-schema.d.ts +0 -2
  486. package/dist/admin/src/content-manager/components/BlocksInput/utils/links.d.ts +0 -10
  487. package/dist/admin/src/content-manager/components/BlocksInput/utils/types.d.ts +0 -6
  488. package/dist/admin/src/contexts/admin.d.ts +0 -14
  489. package/dist/admin/src/contexts/apiTokenPermissions.d.ts +0 -36
  490. package/dist/admin/src/contexts/configuration.d.ts +0 -27
  491. package/dist/admin/src/contexts/themeToggle.d.ts +0 -22
  492. package/dist/admin/src/core/apis/Components.d.ts +0 -10
  493. package/dist/admin/src/core/apis/CustomFields.d.ts +0 -8
  494. package/dist/admin/src/core/apis/Fields.d.ts +0 -10
  495. package/dist/admin/src/core/apis/Middlewares.d.ts +0 -9
  496. package/dist/admin/src/core/apis/Plugin.d.ts +0 -19
  497. package/dist/admin/src/core/apis/Reducers.d.ts +0 -10
  498. package/dist/admin/src/core/store/configure.d.ts +0 -29
  499. package/dist/admin/src/core/store/hooks.d.ts +0 -37
  500. package/dist/admin/src/core/utils/basename.d.ts +0 -1
  501. package/dist/admin/src/core/utils/createHook.d.ts +0 -10
  502. package/dist/admin/src/hooks/__mocks__/useAdminUsers.d.ts +0 -2
  503. package/dist/admin/src/hooks/__mocks__/useContentTypes.d.ts +0 -2
  504. package/dist/admin/src/hooks/__mocks__/useSettingsMenu.d.ts +0 -2
  505. package/dist/admin/src/hooks/useAdminRoles.d.ts +0 -13
  506. package/dist/admin/src/hooks/useAdminUsers.d.ts +0 -19
  507. package/dist/admin/src/hooks/useContentTypes.d.ts +0 -7
  508. package/dist/admin/src/hooks/useDebounce.d.ts +0 -1
  509. package/dist/admin/src/hooks/useEnterprise.d.ts +0 -8
  510. package/dist/admin/src/hooks/useInjectReducer.d.ts +0 -10
  511. package/dist/admin/src/hooks/useLicenseLimitNotification.d.ts +0 -1
  512. package/dist/admin/src/hooks/useMenu.d.ts +0 -9
  513. package/dist/admin/src/hooks/useSettingsMenu.d.ts +0 -24
  514. package/dist/admin/src/index.d.ts +0 -3
  515. package/dist/admin/src/layouts/AppLayout.d.ts +0 -7
  516. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +0 -11
  517. package/dist/admin/src/pages/Admin.d.ts +0 -7
  518. package/dist/admin/src/pages/Auth/AuthPage.d.ts +0 -6
  519. package/dist/admin/src/pages/Auth/components/FieldActionWrapper.d.ts +0 -3
  520. package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +0 -3
  521. package/dist/admin/src/pages/Auth/components/ForgotPasswordSuccess.d.ts +0 -2
  522. package/dist/admin/src/pages/Auth/components/Login.d.ts +0 -8
  523. package/dist/admin/src/pages/Auth/components/Oops.d.ts +0 -2
  524. package/dist/admin/src/pages/Auth/components/Register.d.ts +0 -7
  525. package/dist/admin/src/pages/Auth/components/ResetPassword.d.ts +0 -3
  526. package/dist/admin/src/pages/Auth/constants.d.ts +0 -14
  527. package/dist/admin/src/pages/HomePage.d.ts +0 -3
  528. package/dist/admin/src/pages/InstalledPluginsPage.d.ts +0 -3
  529. package/dist/admin/src/pages/InternalErrorPage.d.ts +0 -7
  530. package/dist/admin/src/pages/Marketplace/MarketplacePage.d.ts +0 -19
  531. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +0 -13
  532. package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +0 -13
  533. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +0 -13
  534. package/dist/admin/src/pages/Marketplace/components/OfflineLayout.d.ts +0 -2
  535. package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +0 -8
  536. package/dist/admin/src/pages/Marketplace/components/SortSelect.d.ts +0 -51
  537. package/dist/admin/src/pages/Marketplace/hooks/__mocks__/useNavigatorOnline.d.ts +0 -1
  538. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +0 -92
  539. package/dist/admin/src/pages/Marketplace/hooks/useNavigatorOnline.d.ts +0 -5
  540. package/dist/admin/src/pages/NotFoundPage.d.ts +0 -1
  541. package/dist/admin/src/pages/ProfilePage.d.ts +0 -2
  542. package/dist/admin/src/pages/SettingsPage/hooks/useRegenerate.d.ts +0 -4
  543. package/dist/admin/src/pages/SettingsPage/pages/Roles/EditPage/hooks/usePermissionsDataManager.d.ts +0 -24
  544. package/dist/admin/src/pages/SettingsPage/pages/Roles/hooks/__mocks__/useAdminRolePermissions.d.ts +0 -2
  545. package/dist/admin/src/pages/SettingsPage/pages/Roles/hooks/useAdminRolePermissions.d.ts +0 -11
  546. package/dist/admin/src/pages/SettingsPage/utils/makeUniqueRoutes.d.ts +0 -6
  547. package/dist/admin/src/pages/UseCasePage.d.ts +0 -8
  548. package/dist/admin/src/reducer.d.ts +0 -21
  549. package/dist/admin/src/render.d.ts +0 -10
  550. package/dist/admin/src/selectors.d.ts +0 -21
  551. package/dist/admin/src/shared/components/InjectionZone.d.ts +0 -53
  552. package/dist/admin/src/shared/hooks/__mocks__/useInjectionZone.d.ts +0 -1
  553. package/dist/admin/src/shared/hooks/useInjectionZone.d.ts +0 -2
  554. package/dist/admin/src/translations/languageNativeNames.d.ts +0 -36
  555. package/dist/admin/src/types/permissions.d.ts +0 -17
  556. package/dist/admin/src/utils/createRoute.d.ts +0 -6
  557. package/dist/admin/src/utils/formatAPIErrors.d.ts +0 -6
  558. package/dist/admin/src/utils/getFullName.d.ts +0 -1
  559. package/dist/admin/src/utils/hashAdminUserEmail.d.ts +0 -6
  560. package/dist/cli.js +0 -48
  561. package/dist/cli.js.map +0 -1
  562. package/dist/cli.mjs +0 -48
  563. package/dist/cli.mjs.map +0 -1
  564. package/dist/ee/admin/src/constants.d.ts +0 -55
  565. package/dist/ee/admin/src/hooks/useLicenseLimitNotification.d.ts +0 -1
  566. package/dist/ee/admin/src/pages/AuthPage/components/Login.d.ts +0 -3
  567. package/dist/ee/admin/src/pages/AuthPage/components/Providers.d.ts +0 -2
  568. package/dist/ee/admin/src/pages/AuthPage/components/SSOProviders.d.ts +0 -8
  569. package/dist/ee/admin/src/pages/AuthPage/constants.d.ts +0 -3
  570. package/dist/ee/admin/src/pages/AuthResponse.d.ts +0 -2
  571. package/dist/ee/admin/src/pages/HomePage.d.ts +0 -1
  572. package/dist/shared/contracts/admin.d.ts +0 -23
  573. package/dist/shared/contracts/authentication.d.ts +0 -126
  574. package/dist/shared/contracts/providers.d.ts +0 -34
  575. package/dist/shared/contracts/roles.d.ts +0 -52
  576. package/dist/shared/contracts/shared.d.ts +0 -39
  577. package/dist/shared/contracts/user.d.ts +0 -40
  578. package/dist/shared/contracts/users.d.ts +0 -52
  579. package/dist/shared/schema.d.ts +0 -7
  580. package/ee/server/bootstrap.js +0 -41
  581. package/ee/server/config/admin-actions.js +0 -72
  582. package/ee/server/constants/default-stages.json +0 -18
  583. package/ee/server/constants/default-workflow.json +0 -3
  584. package/ee/server/constants/webhookEvents.js +0 -5
  585. package/ee/server/constants/workflows.js +0 -33
  586. package/ee/server/content-types/index.js +0 -9
  587. package/ee/server/content-types/workflow/index.js +0 -41
  588. package/ee/server/content-types/workflow-stage/index.js +0 -51
  589. package/ee/server/controllers/__tests__/stages.test.js +0 -174
  590. package/ee/server/controllers/admin.js +0 -50
  591. package/ee/server/controllers/audit-logs.js +0 -24
  592. package/ee/server/controllers/authentication/constants.js +0 -11
  593. package/ee/server/controllers/authentication/index.js +0 -11
  594. package/ee/server/controllers/authentication/middlewares.js +0 -117
  595. package/ee/server/controllers/authentication/utils.js +0 -23
  596. package/ee/server/controllers/authentication.js +0 -64
  597. package/ee/server/controllers/index.js +0 -12
  598. package/ee/server/controllers/role.js +0 -64
  599. package/ee/server/controllers/user.js +0 -110
  600. package/ee/server/controllers/workflows/assignees/index.js +0 -44
  601. package/ee/server/controllers/workflows/index.js +0 -188
  602. package/ee/server/controllers/workflows/stages/index.js +0 -189
  603. package/ee/server/destroy.js +0 -12
  604. package/ee/server/index.js +0 -11
  605. package/ee/server/middlewares/__tests__/review-workflows.test.js +0 -40
  606. package/ee/server/middlewares/review-workflows.js +0 -40
  607. package/ee/server/migrations/audit-logs-table.js +0 -45
  608. package/ee/server/migrations/review-workflows-content-types.js +0 -29
  609. package/ee/server/migrations/review-workflows-deleted-ct-in-workflows.js +0 -39
  610. package/ee/server/migrations/review-workflows-stage-attribute.js +0 -49
  611. package/ee/server/migrations/review-workflows-stages-color.js +0 -20
  612. package/ee/server/migrations/review-workflows-stages-roles.js +0 -68
  613. package/ee/server/migrations/review-workflows-workflow-name.js +0 -28
  614. package/ee/server/register.js +0 -40
  615. package/ee/server/routes/audit-logs.js +0 -43
  616. package/ee/server/routes/index.js +0 -8
  617. package/ee/server/routes/license-limit.js +0 -29
  618. package/ee/server/routes/review-workflows.js +0 -164
  619. package/ee/server/routes/sso.js +0 -69
  620. package/ee/server/routes/utils.js +0 -15
  621. package/ee/server/services/__tests__/assignees.test.js +0 -76
  622. package/ee/server/services/__tests__/audit-logs.test.js +0 -300
  623. package/ee/server/services/__tests__/passport.test.js +0 -95
  624. package/ee/server/services/__tests__/review-workflows-validation.test.js +0 -100
  625. package/ee/server/services/__tests__/review-workflows.test.js +0 -163
  626. package/ee/server/services/__tests__/sso.test.js +0 -117
  627. package/ee/server/services/__tests__/stages.test.js +0 -275
  628. package/ee/server/services/__tests__/workflows.test.js +0 -203
  629. package/ee/server/services/audit-logs.js +0 -236
  630. package/ee/server/services/auth.js +0 -75
  631. package/ee/server/services/index.js +0 -18
  632. package/ee/server/services/passport/provider-registry.js +0 -27
  633. package/ee/server/services/passport/sso.js +0 -37
  634. package/ee/server/services/passport.js +0 -46
  635. package/ee/server/services/review-workflows/__tests__/entity-service-decorator.test.js +0 -211
  636. package/ee/server/services/review-workflows/assignees.js +0 -54
  637. package/ee/server/services/review-workflows/entity-service-decorator.js +0 -101
  638. package/ee/server/services/review-workflows/metrics/__tests__/weekly-metrics.test.js +0 -65
  639. package/ee/server/services/review-workflows/metrics/index.js +0 -56
  640. package/ee/server/services/review-workflows/metrics/weekly-metrics.js +0 -76
  641. package/ee/server/services/review-workflows/review-workflows.js +0 -133
  642. package/ee/server/services/review-workflows/stage-permissions.js +0 -60
  643. package/ee/server/services/review-workflows/stages.js +0 -384
  644. package/ee/server/services/review-workflows/validation.js +0 -68
  645. package/ee/server/services/review-workflows/workflows/__tests__/content-types.test.js +0 -146
  646. package/ee/server/services/review-workflows/workflows/content-types.js +0 -89
  647. package/ee/server/services/review-workflows/workflows/index.js +0 -237
  648. package/ee/server/services/role.js +0 -24
  649. package/ee/server/services/seat-enforcement.js +0 -114
  650. package/ee/server/services/user.js +0 -234
  651. package/ee/server/utils/__tests__/persisted-tables.test.js +0 -38
  652. package/ee/server/utils/__tests__/sso-lock.test.js +0 -84
  653. package/ee/server/utils/index.js +0 -8
  654. package/ee/server/utils/persisted-tables.js +0 -139
  655. package/ee/server/utils/review-workflows.js +0 -39
  656. package/ee/server/utils/sso-lock.js +0 -42
  657. package/ee/server/validation/audit-logs.js +0 -18
  658. package/ee/server/validation/authentication.js +0 -36
  659. package/ee/server/validation/review-workflows.js +0 -92
  660. package/ee/server/validation/role.js +0 -68
  661. package/ee/server/validation/user.js +0 -27
  662. package/ee/strapi-server.js +0 -3
  663. package/server/bootstrap.js +0 -101
  664. package/server/config/admin-actions.js +0 -216
  665. package/server/config/admin-conditions.js +0 -26
  666. package/server/config/email-templates/forgot-password.js +0 -25
  667. package/server/config/index.js +0 -9
  668. package/server/config/settings.js +0 -9
  669. package/server/content-types/Permission.js +0 -64
  670. package/server/content-types/Role.js +0 -59
  671. package/server/content-types/User.js +0 -112
  672. package/server/content-types/api-token-permission.js +0 -36
  673. package/server/content-types/api-token.js +0 -76
  674. package/server/content-types/index.js +0 -11
  675. package/server/content-types/transfer-token-permission.js +0 -36
  676. package/server/content-types/transfer-token.js +0 -66
  677. package/server/controllers/__tests__/admin.test.js +0 -106
  678. package/server/controllers/__tests__/api-token.test.js +0 -496
  679. package/server/controllers/__tests__/content-api.test.js +0 -173
  680. package/server/controllers/__tests__/permission.test.js +0 -200
  681. package/server/controllers/__tests__/role.test.js +0 -201
  682. package/server/controllers/__tests__/transfer/token.test.js +0 -520
  683. package/server/controllers/__tests__/user.test.js +0 -326
  684. package/server/controllers/admin.js +0 -151
  685. package/server/controllers/api-token.js +0 -135
  686. package/server/controllers/authenticated-user.js +0 -52
  687. package/server/controllers/authentication.js +0 -172
  688. package/server/controllers/content-api.js +0 -15
  689. package/server/controllers/formatters/conditions.js +0 -12
  690. package/server/controllers/formatters/format-actions-by-sections.js +0 -40
  691. package/server/controllers/formatters/index.js +0 -9
  692. package/server/controllers/index.js +0 -14
  693. package/server/controllers/permission.js +0 -45
  694. package/server/controllers/role.js +0 -198
  695. package/server/controllers/transfer/index.js +0 -13
  696. package/server/controllers/transfer/runner.js +0 -28
  697. package/server/controllers/transfer/token.js +0 -131
  698. package/server/controllers/user.js +0 -141
  699. package/server/controllers/webhooks.js +0 -132
  700. package/server/destroy.js +0 -10
  701. package/server/domain/action/__tests__/action-domain.test.js +0 -230
  702. package/server/domain/action/__tests__/action-provider.test.js +0 -376
  703. package/server/domain/action/index.js +0 -142
  704. package/server/domain/action/provider.js +0 -83
  705. package/server/domain/condition/__tests__/condition-domain.test.js +0 -122
  706. package/server/domain/condition/__tests__/condition-provider.test.js +0 -156
  707. package/server/domain/condition/index.js +0 -92
  708. package/server/domain/condition/provider.js +0 -42
  709. package/server/domain/permission/__tests__/permission-domain.test.js +0 -285
  710. package/server/domain/permission/index.js +0 -156
  711. package/server/domain/user.js +0 -28
  712. package/server/index.js +0 -26
  713. package/server/middlewares/data-transfer.js +0 -29
  714. package/server/middlewares/index.js +0 -8
  715. package/server/middlewares/rateLimit.js +0 -47
  716. package/server/policies/hasPermissions.js +0 -38
  717. package/server/policies/index.js +0 -7
  718. package/server/policies/isAuthenticatedAdmin.js +0 -5
  719. package/server/policies/isTelemetryEnabled.js +0 -16
  720. package/server/register.js +0 -19
  721. package/server/routes/admin.js +0 -71
  722. package/server/routes/api-tokens.js +0 -70
  723. package/server/routes/authentication.js +0 -57
  724. package/server/routes/content-api.js +0 -20
  725. package/server/routes/index.js +0 -28
  726. package/server/routes/permissions.js +0 -20
  727. package/server/routes/roles.js +0 -107
  728. package/server/routes/serve-admin-panel.js +0 -71
  729. package/server/routes/transfer.js +0 -102
  730. package/server/routes/users.js +0 -88
  731. package/server/routes/webhooks.js +0 -81
  732. package/server/services/__tests__/action.test.js +0 -98
  733. package/server/services/__tests__/api-token.test.js +0 -980
  734. package/server/services/__tests__/auth.test.js +0 -319
  735. package/server/services/__tests__/content-type.test.js +0 -405
  736. package/server/services/__tests__/metrics.test.js +0 -65
  737. package/server/services/__tests__/passport.test.js +0 -90
  738. package/server/services/__tests__/permission.test.js +0 -177
  739. package/server/services/__tests__/permissions-manager-sanitize.test.js +0 -117
  740. package/server/services/__tests__/permissions-manager-validate.test.js +0 -119
  741. package/server/services/__tests__/permissions-manager.test.js +0 -318
  742. package/server/services/__tests__/permissions.section-builder.section.test.js +0 -136
  743. package/server/services/__tests__/project-settings.test.js +0 -397
  744. package/server/services/__tests__/role.test.js +0 -970
  745. package/server/services/__tests__/token.test.js +0 -217
  746. package/server/services/__tests__/transfer/token.test.js +0 -878
  747. package/server/services/__tests__/user.test.js +0 -786
  748. package/server/services/action.js +0 -35
  749. package/server/services/api-token.js +0 -453
  750. package/server/services/auth.js +0 -117
  751. package/server/services/condition.js +0 -14
  752. package/server/services/constants.js +0 -37
  753. package/server/services/content-type.js +0 -208
  754. package/server/services/index.js +0 -18
  755. package/server/services/metrics.js +0 -44
  756. package/server/services/passport/local-strategy.js +0 -28
  757. package/server/services/passport.js +0 -45
  758. package/server/services/permission/engine.js +0 -85
  759. package/server/services/permission/permissions-manager/index.js +0 -53
  760. package/server/services/permission/permissions-manager/query-builders.js +0 -72
  761. package/server/services/permission/permissions-manager/sanitize.js +0 -286
  762. package/server/services/permission/permissions-manager/validate.js +0 -218
  763. package/server/services/permission/queries.js +0 -190
  764. package/server/services/permission/sections-builder/builder.js +0 -84
  765. package/server/services/permission/sections-builder/handlers.js +0 -156
  766. package/server/services/permission/sections-builder/index.js +0 -50
  767. package/server/services/permission/sections-builder/section.js +0 -71
  768. package/server/services/permission/sections-builder/utils.js +0 -26
  769. package/server/services/permission.js +0 -33
  770. package/server/services/project-settings.js +0 -174
  771. package/server/services/role.js +0 -471
  772. package/server/services/token.js +0 -70
  773. package/server/services/transfer/index.js +0 -7
  774. package/server/services/transfer/permission.js +0 -22
  775. package/server/services/transfer/token.js +0 -449
  776. package/server/services/transfer/utils.js +0 -38
  777. package/server/services/user.js +0 -363
  778. package/server/strategies/__tests__/admin.test.js +0 -118
  779. package/server/strategies/__tests__/api-token.test.js +0 -364
  780. package/server/strategies/admin.js +0 -52
  781. package/server/strategies/api-token.js +0 -140
  782. package/server/strategies/data-transfer.js +0 -113
  783. package/server/strategies/index.js +0 -26
  784. package/server/utils/index.d.ts +0 -25
  785. package/server/utils/index.js +0 -9
  786. package/server/validation/__tests__/common-functions.test.js +0 -54
  787. package/server/validation/action-provider.js +0 -67
  788. package/server/validation/api-tokens.js +0 -32
  789. package/server/validation/authentication/forgot-password.js +0 -14
  790. package/server/validation/authentication/index.js +0 -19
  791. package/server/validation/authentication/register.js +0 -45
  792. package/server/validation/authentication/renew-token.js +0 -7
  793. package/server/validation/authentication/reset-password.js +0 -15
  794. package/server/validation/common-functions/check-fields-are-correctly-nested.js +0 -28
  795. package/server/validation/common-functions/check-fields-dont-have-duplicates.js +0 -17
  796. package/server/validation/common-functions/index.js +0 -9
  797. package/server/validation/common-validators.js +0 -209
  798. package/server/validation/permission.js +0 -53
  799. package/server/validation/policies/hasPermissions.js +0 -27
  800. package/server/validation/project-settings.js +0 -48
  801. package/server/validation/role.js +0 -59
  802. package/server/validation/transfer/index.js +0 -5
  803. package/server/validation/transfer/token.js +0 -42
  804. package/server/validation/user.js +0 -65
@@ -1,2322 +0,0 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { useMemo, useState, memo, useCallback, forwardRef, useReducer, useImperativeHandle } from "react";
3
- import { Button, Flex, Typography, Box, MultiSelectNested, ModalLayout, ModalHeader, ModalBody, ModalFooter, BaseCheckbox, Checkbox, Grid, GridItem, Accordion, AccordionToggle, AccordionContent, TabGroup, Tabs, Tab, TabPanels, TabPanel } from "@strapi/design-system";
4
- import { difference, useFetchClient } from "@strapi/helper-plugin";
5
- import has from "lodash/has";
6
- import isEmpty from "lodash/isEmpty";
7
- import PropTypes from "prop-types";
8
- import { useIntl } from "react-intl";
9
- import { createContext } from "@radix-ui/react-context";
10
- import sortBy from "lodash/sortBy";
11
- import styled from "styled-components";
12
- import { Cog, CarretDown, ChevronUp, ChevronDown } from "@strapi/icons";
13
- import get from "lodash/get";
14
- import omit from "lodash/omit";
15
- import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
16
- import produce from "immer";
17
- import groupBy from "lodash/groupBy";
18
- import upperFirst from "lodash/upperFirst";
19
- import flattenDeep from "lodash/flattenDeep";
20
- import isObject from "lodash/isObject";
21
- import merge from "lodash/merge";
22
- import set from "lodash/set";
23
- import cloneDeep from "lodash/cloneDeep";
24
- import { useQuery } from "react-query";
25
- const [PermissionsDataManagerProvider, usePermissionsDataManagerContext] = createContext("PermissionsDataManager");
26
- const usePermissionsDataManager = () => usePermissionsDataManagerContext("usePermissionsDataManager");
27
- const Wrapper$5 = styled.div`
28
- position: relative;
29
-
30
- ${({ hasConditions, disabled, theme }) => hasConditions && `
31
- &:before {
32
- content: '';
33
- position: absolute;
34
- top: -3px;
35
- left: -10px;
36
- width: 6px;
37
- height: 6px;
38
- border-radius: ${20 / 16}rem;;
39
- background: ${disabled ? theme.colors.neutral100 : theme.colors.primary600};
40
- }
41
- `}
42
- `;
43
- const ConditionsButton = ({ onClick, className, hasConditions, variant }) => {
44
- const { formatMessage } = useIntl();
45
- return /* @__PURE__ */ jsx(Wrapper$5, { hasConditions, className, children: /* @__PURE__ */ jsx(Button, { variant, startIcon: /* @__PURE__ */ jsx(Cog, {}), onClick, children: formatMessage({
46
- id: "global.settings",
47
- defaultMessage: "Settings"
48
- }) }) });
49
- };
50
- ConditionsButton.defaultProps = {
51
- className: null,
52
- hasConditions: false,
53
- variant: "tertiary"
54
- };
55
- ConditionsButton.propTypes = {
56
- onClick: PropTypes.func.isRequired,
57
- className: PropTypes.string,
58
- hasConditions: PropTypes.bool,
59
- variant: PropTypes.string
60
- };
61
- const ConditionsButton$1 = styled(ConditionsButton)``;
62
- const getSelectedValues = (rawValue) => Object.values(rawValue).map(
63
- (x) => Object.entries(x).filter(([, value]) => value).map(([key]) => key)
64
- ).flat();
65
- const getNestedOptions = (options) => options.reduce((acc, [label, children]) => {
66
- acc.push({
67
- label: upperFirst(label),
68
- children: children.map((child) => ({
69
- label: child.displayName,
70
- value: child.id
71
- }))
72
- });
73
- return acc;
74
- }, []);
75
- const getNewStateFromChangedValues = (options, changedValues) => options.map(([, values]) => values).flat().reduce((acc, curr) => ({ [curr.id]: changedValues.includes(curr.id), ...acc }), {});
76
- const ActionRow$2 = ({
77
- arrayOfOptionsGroupedByCategory,
78
- isFormDisabled,
79
- isGrey,
80
- label,
81
- name,
82
- onChange,
83
- value
84
- }) => {
85
- const { formatMessage } = useIntl();
86
- const handleChange = (val) => {
87
- onChange(name, getNewStateFromChangedValues(arrayOfOptionsGroupedByCategory, val));
88
- };
89
- return /* @__PURE__ */ jsxs(Flex, { as: "li", background: isGrey ? "neutral100" : "neutral0", paddingBottom: 3, paddingTop: 3, children: [
90
- /* @__PURE__ */ jsxs(Flex, { paddingLeft: 6, style: { width: 180 }, children: [
91
- /* @__PURE__ */ jsxs(Typography, { variant: "sigma", textColor: "neutral600", children: [
92
- formatMessage({
93
- id: "Settings.permissions.conditions.can",
94
- defaultMessage: "Can"
95
- }),
96
- " "
97
- ] }),
98
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", title: label, textColor: "primary600", ellipsis: true, children: formatMessage({
99
- id: `Settings.roles.form.permissions.${label.toLowerCase()}`,
100
- defaultMessage: label
101
- }) }),
102
- /* @__PURE__ */ jsxs(Typography, { variant: "sigma", textColor: "neutral600", children: [
103
- " ",
104
- formatMessage({
105
- id: "Settings.permissions.conditions.when",
106
- defaultMessage: "When"
107
- })
108
- ] })
109
- ] }),
110
- /* @__PURE__ */ jsx(Box, { style: { maxWidth: 430, width: "100%" }, children: /* @__PURE__ */ jsx(
111
- MultiSelectNested,
112
- {
113
- id: name,
114
- customizeContent: (values) => `${values.length} currently selected`,
115
- onChange: handleChange,
116
- value: getSelectedValues(value),
117
- options: getNestedOptions(arrayOfOptionsGroupedByCategory),
118
- disabled: isFormDisabled
119
- }
120
- ) })
121
- ] });
122
- };
123
- ActionRow$2.propTypes = {
124
- arrayOfOptionsGroupedByCategory: PropTypes.array.isRequired,
125
- isFormDisabled: PropTypes.bool.isRequired,
126
- isGrey: PropTypes.bool.isRequired,
127
- label: PropTypes.string.isRequired,
128
- name: PropTypes.string.isRequired,
129
- value: PropTypes.object.isRequired,
130
- onChange: PropTypes.func.isRequired
131
- };
132
- const createConditionsForm = (conditions, valueObject) => {
133
- return conditions.reduce((acc, current) => {
134
- acc[current.id] = get(valueObject, current.id, false);
135
- return acc;
136
- }, {});
137
- };
138
- const createCategoryForm = (arrayOfOptions, valueObject) => {
139
- return arrayOfOptions.reduce((acc, current) => {
140
- const [categoryName, relatedConditions] = current;
141
- const conditionsForm = createConditionsForm(relatedConditions, valueObject);
142
- acc[categoryName] = conditionsForm;
143
- return acc;
144
- }, {});
145
- };
146
- const createDefaultConditionsForm$1 = (actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory) => {
147
- return actionsToDisplay.reduce((acc, current) => {
148
- const valueFromModifiedData = get(
149
- modifiedData,
150
- [...current.pathToConditionsObject, "conditions"],
151
- {}
152
- );
153
- const categoryDefaultForm = createCategoryForm(
154
- arrayOfOptionsGroupedByCategory,
155
- valueFromModifiedData
156
- );
157
- acc[current.pathToConditionsObject.join("..")] = categoryDefaultForm;
158
- return acc;
159
- }, {});
160
- };
161
- const ConditionsModal = ({ actions, headerBreadCrumbs, isFormDisabled, onClosed, onToggle }) => {
162
- const { formatMessage } = useIntl();
163
- const { availableConditions, modifiedData, onChangeConditions } = usePermissionsDataManager();
164
- const arrayOfOptionsGroupedByCategory = useMemo(() => {
165
- return Object.entries(groupBy(availableConditions, "category"));
166
- }, [availableConditions]);
167
- const actionsToDisplay = actions.filter(
168
- ({ isDisplayed, hasSomeActionsSelected, hasAllActionsSelected }) => isDisplayed && (hasSomeActionsSelected || hasAllActionsSelected)
169
- );
170
- const initState = useMemo(() => {
171
- return createDefaultConditionsForm$1(
172
- actionsToDisplay,
173
- modifiedData,
174
- arrayOfOptionsGroupedByCategory
175
- );
176
- }, [actionsToDisplay, modifiedData, arrayOfOptionsGroupedByCategory]);
177
- const [state, setState] = useState(initState);
178
- const handleChange = (name, values) => {
179
- setState(
180
- produce((draft) => {
181
- if (!draft[name]) {
182
- draft[name] = {};
183
- }
184
- if (!draft[name].default) {
185
- draft[name].default = {};
186
- }
187
- draft[name].default = values;
188
- })
189
- );
190
- };
191
- const handleSubmit = () => {
192
- const conditionsWithoutCategory = Object.entries(state).reduce((acc, current) => {
193
- const [key, value] = current;
194
- const merged = Object.values(value).reduce((acc1, current1) => {
195
- return { ...acc1, ...current1 };
196
- }, {});
197
- acc[key] = merged;
198
- return acc;
199
- }, {});
200
- onChangeConditions(conditionsWithoutCategory);
201
- onToggle();
202
- };
203
- return /* @__PURE__ */ jsxs(ModalLayout, { labelledBy: "condition-modal-breadcrumbs", onClose: onClosed, children: [
204
- /* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(Breadcrumbs, { id: "condition-modal-breadcrumbs", label: headerBreadCrumbs.join(", "), children: headerBreadCrumbs.map((label, index, arr) => /* @__PURE__ */ jsx(Crumb, { isCurrent: index === arr.length - 1, children: upperFirst(
205
- formatMessage({
206
- id: label,
207
- defaultMessage: label
208
- })
209
- ) }, label)) }) }),
210
- /* @__PURE__ */ jsxs(ModalBody, { children: [
211
- actionsToDisplay.length === 0 && /* @__PURE__ */ jsx(Typography, { children: formatMessage({
212
- id: "Settings.permissions.conditions.no-actions",
213
- defaultMessage: "You first need to select actions (create, read, update, ...) before defining conditions on them."
214
- }) }),
215
- /* @__PURE__ */ jsx("ul", { children: actionsToDisplay.map(({ actionId, label, pathToConditionsObject }, index) => {
216
- const name = pathToConditionsObject.join("..");
217
- return /* @__PURE__ */ jsx(
218
- ActionRow$2,
219
- {
220
- arrayOfOptionsGroupedByCategory,
221
- label,
222
- isFormDisabled,
223
- isGrey: index % 2 === 0,
224
- name,
225
- onChange: handleChange,
226
- value: get(state, name, {})
227
- },
228
- actionId
229
- );
230
- }) })
231
- ] }),
232
- /* @__PURE__ */ jsx(
233
- ModalFooter,
234
- {
235
- startActions: /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onToggle, children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }),
236
- endActions: /* @__PURE__ */ jsx(Button, { onClick: handleSubmit, children: formatMessage({
237
- id: "Settings.permissions.conditions.apply",
238
- defaultMessage: "Apply"
239
- }) })
240
- }
241
- )
242
- ] });
243
- };
244
- ConditionsModal.propTypes = {
245
- actions: PropTypes.arrayOf(
246
- PropTypes.shape({
247
- actionId: PropTypes.string.isRequired,
248
- checkboxName: PropTypes.string,
249
- hasSomeActionsSelected: PropTypes.bool.isRequired,
250
- hasAllActionsSelected: PropTypes.bool,
251
- isDisplayed: PropTypes.bool.isRequired,
252
- label: PropTypes.string
253
- })
254
- ).isRequired,
255
- headerBreadCrumbs: PropTypes.arrayOf(PropTypes.string).isRequired,
256
- isFormDisabled: PropTypes.bool.isRequired,
257
- onClosed: PropTypes.func.isRequired,
258
- onToggle: PropTypes.func.isRequired
259
- };
260
- const cellWidth = `${120 / 16}rem`;
261
- const firstRowWidth = `${200 / 16}rem`;
262
- const rowHeight = `${53 / 16}rem`;
263
- const HiddenAction = styled.div`
264
- width: ${cellWidth};
265
- `;
266
- const CollapseLabel = styled(Flex)`
267
- padding-right: ${({ theme }) => theme.spaces[2]};
268
- overflow: hidden;
269
- flex: 1;
270
- ${({ isCollapsable }) => isCollapsable && "cursor: pointer;"}
271
- `;
272
- const RowLabelWithCheckbox = ({
273
- children,
274
- isCollapsable,
275
- isActive,
276
- isFormDisabled,
277
- label,
278
- onChange,
279
- onClick,
280
- checkboxName,
281
- someChecked,
282
- value
283
- }) => {
284
- const { formatMessage } = useIntl();
285
- return /* @__PURE__ */ jsxs(Flex, { alignItems: "center", paddingLeft: 6, style: { width: firstRowWidth, flexShrink: 0 }, children: [
286
- /* @__PURE__ */ jsx(Box, { paddingRight: 2, children: /* @__PURE__ */ jsx(
287
- BaseCheckbox,
288
- {
289
- name: checkboxName,
290
- "aria-label": formatMessage(
291
- {
292
- id: `Settings.permissions.select-all-by-permission`,
293
- defaultMessage: "Select all {label} permissions"
294
- },
295
- { label }
296
- ),
297
- disabled: isFormDisabled,
298
- onValueChange: (value2) => onChange({
299
- target: {
300
- name: checkboxName,
301
- value: value2
302
- }
303
- }),
304
- indeterminate: someChecked,
305
- value
306
- }
307
- ) }),
308
- /* @__PURE__ */ jsxs(
309
- CollapseLabel,
310
- {
311
- title: label,
312
- alignItems: "center",
313
- isCollapsable,
314
- ...isCollapsable && {
315
- onClick,
316
- "aria-expanded": isActive,
317
- onKeyDown: ({ key }) => (key === "Enter" || key === " ") && onClick(),
318
- tabIndex: 0,
319
- role: "button"
320
- },
321
- children: [
322
- /* @__PURE__ */ jsx(
323
- Typography,
324
- {
325
- fontWeight: isActive ? "bold" : "",
326
- textColor: isActive ? "primary600" : "neutral800",
327
- ellipsis: true,
328
- children: upperFirst(label)
329
- }
330
- ),
331
- children
332
- ]
333
- }
334
- )
335
- ] });
336
- };
337
- RowLabelWithCheckbox.defaultProps = {
338
- children: null,
339
- checkboxName: "",
340
- onChange() {
341
- },
342
- value: false,
343
- someChecked: false,
344
- isCollapsable: false
345
- };
346
- RowLabelWithCheckbox.propTypes = {
347
- checkboxName: PropTypes.string,
348
- children: PropTypes.node,
349
- label: PropTypes.string.isRequired,
350
- isCollapsable: PropTypes.bool,
351
- isFormDisabled: PropTypes.bool.isRequired,
352
- onChange: PropTypes.func,
353
- onClick: PropTypes.func.isRequired,
354
- someChecked: PropTypes.bool,
355
- value: PropTypes.bool,
356
- isActive: PropTypes.bool.isRequired
357
- };
358
- const RowLabelWithCheckbox$1 = memo(RowLabelWithCheckbox);
359
- const createArrayOfValues = (obj) => {
360
- if (!isObject(obj)) {
361
- return [];
362
- }
363
- return flattenDeep(
364
- Object.values(obj).map((value) => {
365
- if (isObject(value)) {
366
- return createArrayOfValues(value);
367
- }
368
- return value;
369
- })
370
- );
371
- };
372
- const removeConditionKeyFromData = (obj) => {
373
- if (!obj) {
374
- return null;
375
- }
376
- return Object.keys(obj).reduce((acc, current) => {
377
- if (current !== "conditions") {
378
- acc[current] = obj[current];
379
- }
380
- return acc;
381
- }, {});
382
- };
383
- const getCheckboxState = (dataObj) => {
384
- const dataWithoutCondition = removeConditionKeyFromData(dataObj);
385
- const arrayOfValues = createArrayOfValues(dataWithoutCondition);
386
- if (!arrayOfValues.length) {
387
- return { hasAllActionsSelected: false, hasSomeActionsSelected: false };
388
- }
389
- const hasAllActionsSelected = arrayOfValues.every((val) => val);
390
- const hasSomeActionsSelected = arrayOfValues.some((val) => val) && !hasAllActionsSelected;
391
- return { hasAllActionsSelected, hasSomeActionsSelected };
392
- };
393
- const CarretIcon = styled(CarretDown)`
394
- display: none;
395
- width: ${10 / 16}rem;
396
- transform: rotate(${({ $isActive }) => $isActive ? "180" : "0"}deg);
397
- margin-left: ${({ theme }) => theme.spaces[2]};
398
- `;
399
- const activeStyle = (theme) => `
400
- ${Typography} {
401
- color: ${theme.colors.primary600};
402
- font-weight: ${theme.fontWeights.bold}
403
- }
404
- ${CarretIcon} {
405
- display: block;
406
- path {
407
- fill: ${theme.colors.primary600}
408
- };
409
- }
410
- `;
411
- const generateCheckboxesActions = (availableActions, modifiedData, pathToData) => {
412
- return availableActions.map(({ actionId, isDisplayed, applyToProperties, label }) => {
413
- if (!isDisplayed) {
414
- return { actionId, hasSomeActionsSelected: false, isDisplayed };
415
- }
416
- const baseCheckboxNameArray = [...pathToData.split(".."), actionId];
417
- const checkboxNameArray = isEmpty(applyToProperties) ? [...baseCheckboxNameArray, "properties", "enabled"] : baseCheckboxNameArray;
418
- const checkboxName = checkboxNameArray.join("..");
419
- const conditionsValue = get(modifiedData, [...baseCheckboxNameArray, "conditions"], null);
420
- const hasConditions = createArrayOfValues(conditionsValue).some((val) => val);
421
- if (isEmpty(applyToProperties)) {
422
- const value = get(modifiedData, checkboxNameArray, false);
423
- return {
424
- actionId,
425
- checkboxName,
426
- hasAllActionsSelected: value,
427
- hasConditions,
428
- hasSomeActionsSelected: value,
429
- isDisplayed,
430
- isParentCheckbox: false,
431
- label,
432
- pathToConditionsObject: baseCheckboxNameArray
433
- };
434
- }
435
- const mainData = get(modifiedData, checkboxNameArray, null);
436
- const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(mainData);
437
- return {
438
- actionId,
439
- checkboxName,
440
- hasAllActionsSelected,
441
- hasConditions,
442
- hasSomeActionsSelected,
443
- isDisplayed,
444
- isParentCheckbox: true,
445
- label,
446
- pathToConditionsObject: baseCheckboxNameArray
447
- };
448
- });
449
- };
450
- const activeRowStyle = (theme, isActive) => `
451
- ${Wrapper$4} {
452
- background-color: ${theme.colors.primary100};
453
- color: ${theme.colors.primary600};
454
- border-radius: ${isActive ? "2px 2px 0 0" : "2px"};
455
- }
456
- ${Chevron} {
457
- display: flex;
458
- }
459
- ${ConditionsButton$1} {
460
- display: block;
461
- }
462
- &:hover {
463
- ${activeStyle(theme)}
464
- }
465
-
466
- &:focus-within {
467
- ${({ theme: theme2, isActive: isActive2 }) => activeRowStyle(theme2, isActive2)}
468
- }
469
-
470
- `;
471
- const Wrapper$4 = styled.div`
472
- flex: 1;
473
- display: flex;
474
- align-items: center;
475
- height: ${rowHeight};
476
- background-color: ${({ isGrey, theme }) => isGrey ? theme.colors.neutral100 : theme.colors.neutral0};
477
- border: 1px solid transparent;
478
- `;
479
- const BoxWrapper = styled.div`
480
- display: inline-flex;
481
- min-width: 100%;
482
-
483
- ${ConditionsButton$1} {
484
- display: none;
485
- }
486
- ${({ isActive, theme }) => isActive && activeRowStyle(theme, isActive)}
487
- &:hover {
488
- ${({ theme, isActive }) => activeRowStyle(theme, isActive)}
489
- }
490
- `;
491
- const Cell$2 = styled(Flex)`
492
- width: ${cellWidth};
493
- position: relative;
494
- `;
495
- const Chevron = styled(Box)`
496
- display: none;
497
- svg {
498
- width: 11px;
499
- }
500
- * {
501
- fill: ${({ theme }) => theme.colors.primary600};
502
- }
503
- `;
504
- const TinyDot = styled.span`
505
- position: absolute;
506
- top: -6px;
507
- left: 37px;
508
- width: 6px;
509
- height: 6px;
510
- border-radius: 20px;
511
- background: ${({ theme }) => theme.colors.primary600};
512
- `;
513
- const AbsoluteBox = styled(Box)`
514
- position: absolute;
515
- right: 9px;
516
- transform: translateY(10px);
517
- `;
518
- const Collapse = ({
519
- availableActions,
520
- isActive,
521
- isGrey,
522
- isFormDisabled,
523
- label,
524
- onClickToggle,
525
- pathToData
526
- }) => {
527
- const [isModalOpen, setModalOpen] = useState(false);
528
- const { formatMessage } = useIntl();
529
- const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
530
- const handleToggleModalIsOpen = () => {
531
- setModalOpen((s) => !s);
532
- };
533
- const handleModalClose = () => {
534
- setModalOpen(false);
535
- };
536
- const mainData = get(modifiedData, pathToData.split(".."), {});
537
- const dataWithoutCondition = useMemo(() => {
538
- return Object.keys(mainData).reduce((acc, current) => {
539
- acc[current] = omit(mainData[current], "conditions");
540
- return acc;
541
- }, {});
542
- }, [mainData]);
543
- const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);
544
- const checkboxesActions = useMemo(() => {
545
- return generateCheckboxesActions(availableActions, modifiedData, pathToData);
546
- }, [availableActions, modifiedData, pathToData]);
547
- const doesConditionButtonHasConditions = checkboxesActions.some(
548
- ({ hasConditions }) => hasConditions
549
- );
550
- return /* @__PURE__ */ jsxs(BoxWrapper, { isActive, children: [
551
- /* @__PURE__ */ jsxs(Wrapper$4, { isGrey, children: [
552
- /* @__PURE__ */ jsx(
553
- RowLabelWithCheckbox$1,
554
- {
555
- isCollapsable: true,
556
- isFormDisabled,
557
- label,
558
- checkboxName: pathToData,
559
- onChange: onChangeParentCheckbox,
560
- onClick: onClickToggle,
561
- someChecked: hasSomeActionsSelected,
562
- value: hasAllActionsSelected,
563
- isActive,
564
- children: /* @__PURE__ */ jsx(Chevron, { paddingLeft: 2, children: isActive ? /* @__PURE__ */ jsx(ChevronUp, {}) : /* @__PURE__ */ jsx(ChevronDown, {}) })
565
- }
566
- ),
567
- /* @__PURE__ */ jsx(Flex, { style: { flex: 1 }, children: checkboxesActions.map(
568
- ({
569
- actionId,
570
- hasConditions,
571
- hasAllActionsSelected: hasAllActionsSelected2,
572
- hasSomeActionsSelected: hasSomeActionsSelected2,
573
- isDisplayed,
574
- isParentCheckbox,
575
- checkboxName,
576
- label: permissionLabel
577
- }) => {
578
- if (!isDisplayed) {
579
- return /* @__PURE__ */ jsx(HiddenAction, {}, actionId);
580
- }
581
- if (isParentCheckbox) {
582
- return /* @__PURE__ */ jsxs(Cell$2, { justifyContent: "center", alignItems: "center", children: [
583
- hasConditions && /* @__PURE__ */ jsx(TinyDot, {}),
584
- /* @__PURE__ */ jsx(
585
- BaseCheckbox,
586
- {
587
- disabled: isFormDisabled,
588
- name: checkboxName,
589
- "aria-label": formatMessage(
590
- {
591
- id: `Settings.permissions.select-by-permission`,
592
- defaultMessage: "Select {label} permission"
593
- },
594
- { label: `${permissionLabel} ${label}` }
595
- ),
596
- onValueChange: (value) => {
597
- onChangeParentCheckbox({
598
- target: {
599
- name: checkboxName,
600
- value
601
- }
602
- });
603
- },
604
- indeterminate: hasSomeActionsSelected2,
605
- value: hasAllActionsSelected2
606
- }
607
- )
608
- ] }, actionId);
609
- }
610
- return /* @__PURE__ */ jsxs(Cell$2, { justifyContent: "center", alignItems: "center", children: [
611
- hasConditions && /* @__PURE__ */ jsx(TinyDot, {}),
612
- /* @__PURE__ */ jsx(
613
- BaseCheckbox,
614
- {
615
- disabled: isFormDisabled,
616
- indeterminate: hasConditions,
617
- name: checkboxName,
618
- onValueChange: (value) => {
619
- onChangeSimpleCheckbox({
620
- target: {
621
- name: checkboxName,
622
- value
623
- }
624
- });
625
- },
626
- value: hasAllActionsSelected2
627
- }
628
- )
629
- ] }, actionId);
630
- }
631
- ) }),
632
- isModalOpen && /* @__PURE__ */ jsx(
633
- ConditionsModal,
634
- {
635
- headerBreadCrumbs: [label, "Settings.permissions.conditions.conditions"],
636
- actions: checkboxesActions,
637
- isFormDisabled,
638
- onClosed: handleModalClose,
639
- onToggle: handleToggleModalIsOpen
640
- }
641
- )
642
- ] }),
643
- /* @__PURE__ */ jsx(AbsoluteBox, { children: /* @__PURE__ */ jsx(
644
- ConditionsButton$1,
645
- {
646
- onClick: handleToggleModalIsOpen,
647
- hasConditions: doesConditionButtonHasConditions
648
- }
649
- ) })
650
- ] });
651
- };
652
- Collapse.propTypes = {
653
- availableActions: PropTypes.array.isRequired,
654
- isActive: PropTypes.bool.isRequired,
655
- isGrey: PropTypes.bool.isRequired,
656
- isFormDisabled: PropTypes.bool.isRequired,
657
- label: PropTypes.string.isRequired,
658
- onClickToggle: PropTypes.func.isRequired,
659
- pathToData: PropTypes.string.isRequired
660
- };
661
- const Required = styled.span`
662
- color: ${({ theme }) => theme.colors.danger700};
663
- padding-left: ${({ theme }) => theme.spaces[1]}px;
664
- `;
665
- const RequiredSign = () => /* @__PURE__ */ jsx(Required, { children: "*" });
666
- const getAvailableActions = (actions, targetSubject) => {
667
- return actions.map((action) => {
668
- const isDisplayed = Array.isArray(action.subjects) && action.subjects.indexOf(targetSubject) !== -1;
669
- return { ...action, isDisplayed };
670
- });
671
- };
672
- const StyledBox$1 = styled(Box)`
673
- transform: translate(-4px, -12px);
674
-
675
- &:before {
676
- content: '';
677
- width: ${4 / 16}rem;
678
- height: ${12 / 16}rem;
679
- background: ${({ theme }) => theme.colors.primary200};
680
- display: block;
681
- }
682
- `;
683
- const Svg = styled.svg`
684
- position: relative;
685
- flex-shrink: 0;
686
- transform: translate(-0.5px, -1px);
687
-
688
- * {
689
- fill: ${({ theme, color }) => theme.colors[color]};
690
- }
691
- `;
692
- const Curve = (props) => /* @__PURE__ */ jsx(StyledBox$1, { children: /* @__PURE__ */ jsx(
693
- Svg,
694
- {
695
- width: "20",
696
- height: "23",
697
- viewBox: "0 0 20 23",
698
- fill: "none",
699
- xmlns: "http://www.w3.org/2000/svg",
700
- ...props,
701
- children: /* @__PURE__ */ jsx(
702
- "path",
703
- {
704
- fillRule: "evenodd",
705
- clipRule: "evenodd",
706
- d: "M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z",
707
- fill: "#D9D8FF"
708
- }
709
- )
710
- }
711
- ) });
712
- Curve.defaultProps = {
713
- fill: "primary200"
714
- };
715
- Curve.propTypes = {
716
- fill: PropTypes.string
717
- };
718
- const Curve$1 = memo(Curve);
719
- const Cell$1 = styled(Flex)`
720
- width: ${cellWidth};
721
- position: relative;
722
- `;
723
- const RowWrapper = styled(Flex)`
724
- height: ${rowHeight};
725
- `;
726
- const Wrapper$3 = styled(Box)`
727
- padding-left: ${31 / 16}rem;
728
- `;
729
- const LeftBorderTimeline = styled(Box)`
730
- border-left: ${({ isVisible, theme }) => isVisible ? `4px solid ${theme.colors.primary200}` : "4px solid transparent"};
731
- `;
732
- const RowStyle = styled(Flex)`
733
- padding-left: ${({ theme }) => theme.spaces[4]};
734
- width: ${({ level }) => 145 - level * 36}px;
735
-
736
- ${({ isCollapsable, theme }) => isCollapsable && `
737
- ${CarretIcon} {
738
- display: block;
739
- color: ${theme.colors.neutral100};
740
- }
741
- &:hover {
742
- ${activeStyle(theme)}
743
- }
744
- `}
745
- ${({ isActive, theme }) => isActive && activeStyle(theme)};
746
- `;
747
- const TopTimeline = styled.div`
748
- padding-top: ${({ theme }) => theme.spaces[2]};
749
- margin-top: ${({ theme }) => theme.spaces[2]};
750
- width: ${4 / 16}rem;
751
- background-color: ${({ theme }) => theme.colors.primary200};
752
- border-top-left-radius: 2px;
753
- border-top-right-radius: 2px;
754
- `;
755
- const SubActionRow = ({
756
- childrenForm,
757
- isFormDisabled,
758
- recursiveLevel,
759
- pathToDataFromActionRow,
760
- propertyActions,
761
- parentName,
762
- propertyName
763
- }) => {
764
- const { formatMessage } = useIntl();
765
- const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
766
- const [rowToOpen, setRowToOpen] = useState(null);
767
- const handleClickToggleSubLevel = (name) => {
768
- setRowToOpen((prev) => {
769
- if (prev === name) {
770
- return null;
771
- }
772
- return name;
773
- });
774
- };
775
- const displayedRecursiveChildren = useMemo(() => {
776
- if (!rowToOpen) {
777
- return null;
778
- }
779
- return childrenForm.find(({ value }) => value === rowToOpen);
780
- }, [rowToOpen, childrenForm]);
781
- return /* @__PURE__ */ jsxs(Wrapper$3, { children: [
782
- /* @__PURE__ */ jsx(TopTimeline, {}),
783
- childrenForm.map(({ label, value, required, children: subChildrenForm }, index) => {
784
- const isVisible = index + 1 < childrenForm.length;
785
- const isArrayType = Array.isArray(subChildrenForm);
786
- const isActive = rowToOpen === value;
787
- return /* @__PURE__ */ jsxs(LeftBorderTimeline, { isVisible, children: [
788
- /* @__PURE__ */ jsxs(RowWrapper, { children: [
789
- /* @__PURE__ */ jsx(Curve$1, { color: "primary200" }),
790
- /* @__PURE__ */ jsxs(Flex, { style: { flex: 1 }, children: [
791
- /* @__PURE__ */ jsx(RowStyle, { level: recursiveLevel, isActive, isCollapsable: isArrayType, children: /* @__PURE__ */ jsxs(
792
- CollapseLabel,
793
- {
794
- alignItems: "center",
795
- isCollapsable: isArrayType,
796
- ...isArrayType && {
797
- onClick: () => handleClickToggleSubLevel(value),
798
- "aria-expanded": isActive,
799
- onKeyDown: ({ key }) => (key === "Enter" || key === " ") && handleClickToggleSubLevel(value),
800
- tabIndex: 0,
801
- role: "button"
802
- },
803
- title: label,
804
- children: [
805
- /* @__PURE__ */ jsx(Typography, { ellipsis: true, children: upperFirst(label) }),
806
- required && /* @__PURE__ */ jsx(RequiredSign, {}),
807
- /* @__PURE__ */ jsx(CarretIcon, { $isActive: isActive })
808
- ]
809
- }
810
- ) }),
811
- /* @__PURE__ */ jsx(Flex, { style: { flex: 1 }, children: propertyActions.map(
812
- ({ actionId, label: propertyLabel, isActionRelatedToCurrentProperty }) => {
813
- if (!isActionRelatedToCurrentProperty) {
814
- return /* @__PURE__ */ jsx(HiddenAction, {}, actionId);
815
- }
816
- const checkboxName = [
817
- ...pathToDataFromActionRow.split(".."),
818
- actionId,
819
- "properties",
820
- propertyName,
821
- ...parentName.split(".."),
822
- value
823
- ];
824
- const checkboxValue = get(modifiedData, checkboxName, false);
825
- if (!subChildrenForm) {
826
- return /* @__PURE__ */ jsx(Cell$1, { justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx(
827
- BaseCheckbox,
828
- {
829
- disabled: isFormDisabled,
830
- name: checkboxName.join(".."),
831
- "aria-label": formatMessage(
832
- {
833
- id: `Settings.permissions.select-by-permission`,
834
- defaultMessage: "Select {label} permission"
835
- },
836
- { label: `${parentName} ${label} ${propertyLabel}` }
837
- ),
838
- onValueChange: (value2) => {
839
- onChangeSimpleCheckbox({
840
- target: {
841
- name: checkboxName.join(".."),
842
- value: value2
843
- }
844
- });
845
- },
846
- value: checkboxValue
847
- }
848
- ) }, propertyLabel);
849
- }
850
- const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(checkboxValue);
851
- return /* @__PURE__ */ jsx(Cell$1, { justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx(
852
- BaseCheckbox,
853
- {
854
- disabled: isFormDisabled,
855
- name: checkboxName.join(".."),
856
- "aria-label": formatMessage(
857
- {
858
- id: `Settings.permissions.select-by-permission`,
859
- defaultMessage: "Select {label} permission"
860
- },
861
- { label: `${parentName} ${label} ${propertyLabel}` }
862
- ),
863
- onValueChange: (value2) => {
864
- onChangeParentCheckbox({
865
- target: {
866
- name: checkboxName.join(".."),
867
- value: value2
868
- }
869
- });
870
- },
871
- value: hasAllActionsSelected,
872
- indeterminate: hasSomeActionsSelected
873
- },
874
- propertyLabel
875
- ) }, propertyLabel);
876
- }
877
- ) })
878
- ] })
879
- ] }),
880
- displayedRecursiveChildren && isActive && /* @__PURE__ */ jsx(Box, { paddingBottom: 2, children: /* @__PURE__ */ jsx(
881
- SubActionRow,
882
- {
883
- isFormDisabled,
884
- parentName: `${parentName}..${value}`,
885
- pathToDataFromActionRow,
886
- propertyActions,
887
- propertyName,
888
- recursiveLevel: recursiveLevel + 1,
889
- childrenForm: displayedRecursiveChildren.children
890
- }
891
- ) })
892
- ] }, value);
893
- })
894
- ] });
895
- };
896
- SubActionRow.propTypes = {
897
- childrenForm: PropTypes.array.isRequired,
898
- isFormDisabled: PropTypes.bool.isRequired,
899
- parentName: PropTypes.string.isRequired,
900
- pathToDataFromActionRow: PropTypes.string.isRequired,
901
- propertyActions: PropTypes.array.isRequired,
902
- propertyName: PropTypes.string.isRequired,
903
- recursiveLevel: PropTypes.number.isRequired
904
- };
905
- const SubActionRow$1 = memo(SubActionRow);
906
- const getActionIdsFromPropertyActions = (propertyActions) => {
907
- const actionIds = propertyActions.reduce((acc, current) => {
908
- if (current.isActionRelatedToCurrentProperty) {
909
- acc.push(current.actionId);
910
- }
911
- return acc;
912
- }, []);
913
- return actionIds;
914
- };
915
- const getRowLabelCheckboxeState = (propertyActions, modifiedData, pathToContentType, propertyToCheck, targetKey) => {
916
- const actionIds = getActionIdsFromPropertyActions(propertyActions);
917
- const data = actionIds.reduce((acc, current) => {
918
- const pathToData = [
919
- ...pathToContentType.split(".."),
920
- current,
921
- "properties",
922
- propertyToCheck,
923
- targetKey
924
- ];
925
- const mainData = get(modifiedData, pathToData, false);
926
- acc[current] = mainData;
927
- return acc;
928
- }, {});
929
- return getCheckboxState(data);
930
- };
931
- const Cell = styled(Flex)`
932
- width: ${cellWidth};
933
- position: relative;
934
- `;
935
- const Wrapper$2 = styled(Flex)`
936
- height: ${rowHeight};
937
- flex: 1;
938
-
939
- ${({ isCollapsable, theme }) => isCollapsable && `
940
- ${CarretIcon} {
941
- display: block;
942
- color: ${theme.colors.neutral100};
943
- }
944
- &:hover {
945
- ${activeStyle(theme)}
946
- }
947
- `}
948
- ${({ isActive, theme }) => isActive && activeStyle(theme)};
949
- `;
950
- const ActionRow = ({
951
- childrenForm,
952
- label,
953
- isFormDisabled,
954
- name,
955
- required,
956
- pathToData,
957
- propertyActions,
958
- propertyName,
959
- isOdd
960
- }) => {
961
- const { formatMessage } = useIntl();
962
- const [rowToOpen, setRowToOpen] = useState(null);
963
- const {
964
- modifiedData,
965
- onChangeCollectionTypeLeftActionRowCheckbox,
966
- onChangeParentCheckbox,
967
- onChangeSimpleCheckbox
968
- } = usePermissionsDataManager();
969
- const isActive = rowToOpen === name;
970
- const recursiveChildren = useMemo(() => {
971
- if (!Array.isArray(childrenForm)) {
972
- return [];
973
- }
974
- return childrenForm;
975
- }, [childrenForm]);
976
- const isCollapsable = recursiveChildren.length > 0;
977
- const handleClick = useCallback(() => {
978
- if (isCollapsable) {
979
- setRowToOpen((prev) => {
980
- if (prev === name) {
981
- return null;
982
- }
983
- return name;
984
- });
985
- }
986
- }, [isCollapsable, name]);
987
- const handleChangeLeftRowCheckbox = ({ target: { value } }) => {
988
- onChangeCollectionTypeLeftActionRowCheckbox(pathToData, propertyName, name, value);
989
- };
990
- const { hasAllActionsSelected, hasSomeActionsSelected } = useMemo(() => {
991
- return getRowLabelCheckboxeState(propertyActions, modifiedData, pathToData, propertyName, name);
992
- }, [propertyActions, modifiedData, pathToData, propertyName, name]);
993
- return /* @__PURE__ */ jsxs(Fragment, { children: [
994
- /* @__PURE__ */ jsx(
995
- Wrapper$2,
996
- {
997
- alignItems: "center",
998
- isCollapsable,
999
- isActive,
1000
- background: isOdd ? "neutral100" : "neutral0",
1001
- children: /* @__PURE__ */ jsxs(Flex, { children: [
1002
- /* @__PURE__ */ jsxs(
1003
- RowLabelWithCheckbox$1,
1004
- {
1005
- onChange: handleChangeLeftRowCheckbox,
1006
- onClick: handleClick,
1007
- isCollapsable,
1008
- isFormDisabled,
1009
- label,
1010
- someChecked: hasSomeActionsSelected,
1011
- value: hasAllActionsSelected,
1012
- isActive,
1013
- children: [
1014
- required && /* @__PURE__ */ jsx(RequiredSign, {}),
1015
- /* @__PURE__ */ jsx(CarretIcon, { $isActive: isActive })
1016
- ]
1017
- }
1018
- ),
1019
- /* @__PURE__ */ jsx(Flex, { children: propertyActions.map(({ label: label2, isActionRelatedToCurrentProperty, actionId }) => {
1020
- if (!isActionRelatedToCurrentProperty) {
1021
- return /* @__PURE__ */ jsx(HiddenAction, {}, label2);
1022
- }
1023
- const checkboxName = [
1024
- ...pathToData.split(".."),
1025
- actionId,
1026
- "properties",
1027
- propertyName,
1028
- name
1029
- ];
1030
- if (!isCollapsable) {
1031
- const checkboxValue = get(modifiedData, checkboxName, false);
1032
- return /* @__PURE__ */ jsx(Cell, { justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx(
1033
- BaseCheckbox,
1034
- {
1035
- disabled: isFormDisabled,
1036
- name: checkboxName.join(".."),
1037
- "aria-label": formatMessage(
1038
- {
1039
- id: `Settings.permissions.select-by-permission`,
1040
- defaultMessage: "Select {label} permission"
1041
- },
1042
- { label: `${name} ${label2}` }
1043
- ),
1044
- onValueChange: (value) => {
1045
- onChangeSimpleCheckbox({
1046
- target: {
1047
- name: checkboxName.join(".."),
1048
- value
1049
- }
1050
- });
1051
- },
1052
- value: checkboxValue
1053
- }
1054
- ) }, actionId);
1055
- }
1056
- const data = get(modifiedData, checkboxName, {});
1057
- const { hasAllActionsSelected: hasAllActionsSelected2, hasSomeActionsSelected: hasSomeActionsSelected2 } = getCheckboxState(data);
1058
- return /* @__PURE__ */ jsx(Cell, { justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx(
1059
- BaseCheckbox,
1060
- {
1061
- disabled: isFormDisabled,
1062
- name: checkboxName.join(".."),
1063
- onValueChange: (value) => {
1064
- onChangeParentCheckbox({
1065
- target: {
1066
- name: checkboxName.join(".."),
1067
- value
1068
- }
1069
- });
1070
- },
1071
- "aria-label": formatMessage(
1072
- {
1073
- id: `Settings.permissions.select-by-permission`,
1074
- defaultMessage: "Select {label} permission"
1075
- },
1076
- { label: `${name} ${label2}` }
1077
- ),
1078
- value: hasAllActionsSelected2,
1079
- indeterminate: hasSomeActionsSelected2
1080
- }
1081
- ) }, label2);
1082
- }) })
1083
- ] })
1084
- }
1085
- ),
1086
- isActive && /* @__PURE__ */ jsx(
1087
- SubActionRow$1,
1088
- {
1089
- childrenForm: recursiveChildren,
1090
- isFormDisabled,
1091
- parentName: name,
1092
- pathToDataFromActionRow: pathToData,
1093
- propertyName,
1094
- propertyActions,
1095
- recursiveLevel: 0
1096
- }
1097
- )
1098
- ] });
1099
- };
1100
- ActionRow.defaultProps = {
1101
- childrenForm: [],
1102
- required: false
1103
- };
1104
- ActionRow.propTypes = {
1105
- childrenForm: PropTypes.array,
1106
- label: PropTypes.string.isRequired,
1107
- isFormDisabled: PropTypes.bool.isRequired,
1108
- name: PropTypes.string.isRequired,
1109
- pathToData: PropTypes.string.isRequired,
1110
- propertyActions: PropTypes.array.isRequired,
1111
- propertyName: PropTypes.string.isRequired,
1112
- required: PropTypes.bool,
1113
- isOdd: PropTypes.bool.isRequired
1114
- };
1115
- const ActionRow$1 = memo(ActionRow);
1116
- const HeaderLabel = styled(Flex)`
1117
- width: ${cellWidth};
1118
- flex-shrink: 0;
1119
- `;
1120
- const PropertyLabelWrapper = styled(Flex)`
1121
- width: ${firstRowWidth};
1122
- height: ${rowHeight};
1123
- flex-shrink: 0;
1124
- `;
1125
- const Header = ({ headers, label }) => {
1126
- const { formatMessage } = useIntl();
1127
- const translatedLabel = formatMessage(
1128
- {
1129
- id: "Settings.roles.form.permission.property-label",
1130
- defaultMessage: "{label} permissions"
1131
- },
1132
- { label }
1133
- );
1134
- return /* @__PURE__ */ jsxs(Flex, { children: [
1135
- /* @__PURE__ */ jsx(PropertyLabelWrapper, { alignItems: "center", paddingLeft: 6, children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral500", children: translatedLabel }) }),
1136
- headers.map((header) => {
1137
- if (!header.isActionRelatedToCurrentProperty) {
1138
- return /* @__PURE__ */ jsx(HeaderLabel, {}, header.label);
1139
- }
1140
- return /* @__PURE__ */ jsx(HeaderLabel, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral500", children: formatMessage({
1141
- id: `Settings.roles.form.permissions.${header.label.toLowerCase()}`,
1142
- defaultMessage: header.label
1143
- }) }) }, header.label);
1144
- })
1145
- ] });
1146
- };
1147
- Header.propTypes = {
1148
- headers: PropTypes.arrayOf(
1149
- PropTypes.shape({
1150
- label: PropTypes.string.isRequired,
1151
- isActionRelatedToCurrentProperty: PropTypes.bool.isRequired
1152
- })
1153
- ).isRequired,
1154
- label: PropTypes.string.isRequired
1155
- };
1156
- const generateHeadersFromActions = (actions, propertyName) => {
1157
- return actions.map((action) => {
1158
- const isActionRelatedToCurrentProperty = Array.isArray(action.applyToProperties) && action.applyToProperties.indexOf(propertyName) !== -1 && action.isDisplayed;
1159
- return { label: action.label, actionId: action.actionId, isActionRelatedToCurrentProperty };
1160
- });
1161
- };
1162
- const Wrapper$1 = styled.div`
1163
- display: inline-flex;
1164
- flex-direction: column;
1165
- min-width: 0;
1166
- `;
1167
- const CollapsePropertyMatrix = ({
1168
- availableActions,
1169
- childrenForm,
1170
- isFormDisabled,
1171
- label,
1172
- pathToData,
1173
- propertyName
1174
- }) => {
1175
- const propertyActions = useMemo(
1176
- () => generateHeadersFromActions(availableActions, propertyName),
1177
- [availableActions, propertyName]
1178
- );
1179
- return /* @__PURE__ */ jsxs(Wrapper$1, { children: [
1180
- /* @__PURE__ */ jsx(Header, { label, headers: propertyActions }),
1181
- /* @__PURE__ */ jsx(Box, { children: childrenForm.map(({ children: childrenForm2, label: label2, value, required }, i) => /* @__PURE__ */ jsx(
1182
- ActionRow$1,
1183
- {
1184
- childrenForm: childrenForm2,
1185
- label: label2,
1186
- isFormDisabled,
1187
- name: value,
1188
- required,
1189
- propertyActions,
1190
- pathToData,
1191
- propertyName,
1192
- isOdd: i % 2 === 0
1193
- },
1194
- value
1195
- )) })
1196
- ] });
1197
- };
1198
- CollapsePropertyMatrix.propTypes = {
1199
- childrenForm: PropTypes.array.isRequired,
1200
- availableActions: PropTypes.array.isRequired,
1201
- isFormDisabled: PropTypes.bool.isRequired,
1202
- label: PropTypes.string.isRequired,
1203
- pathToData: PropTypes.string.isRequired,
1204
- propertyName: PropTypes.string.isRequired
1205
- };
1206
- const Wrapper = styled.div`
1207
- flex-direction: column;
1208
- display: inline-flex;
1209
- min-width: 100%;
1210
- ${({ theme, isActive }) => isActive && `border: 1px solid ${theme.colors.primary600};`}
1211
- `;
1212
- const ContentTypeCollapse = ({
1213
- allActions,
1214
- contentTypeName,
1215
- label,
1216
- index,
1217
- isActive,
1218
- isFormDisabled,
1219
- onClickToggleCollapse,
1220
- pathToData,
1221
- properties
1222
- }) => {
1223
- const handleClickToggleCollapse = useCallback(() => {
1224
- onClickToggleCollapse(contentTypeName);
1225
- }, [contentTypeName, onClickToggleCollapse]);
1226
- const availableActions = useMemo(() => {
1227
- return getAvailableActions(allActions, contentTypeName);
1228
- }, [allActions, contentTypeName]);
1229
- return /* @__PURE__ */ jsxs(Wrapper, { isActive, children: [
1230
- /* @__PURE__ */ jsx(
1231
- Collapse,
1232
- {
1233
- availableActions,
1234
- isActive,
1235
- isGrey: index % 2 === 0,
1236
- isFormDisabled,
1237
- label,
1238
- onClickToggle: handleClickToggleCollapse,
1239
- pathToData
1240
- }
1241
- ),
1242
- isActive && properties.map(({ label: propertyLabel, value, children: childrenForm }) => {
1243
- return /* @__PURE__ */ jsx(
1244
- CollapsePropertyMatrix,
1245
- {
1246
- availableActions,
1247
- childrenForm,
1248
- isFormDisabled,
1249
- label: propertyLabel,
1250
- pathToData,
1251
- propertyName: value
1252
- },
1253
- value
1254
- );
1255
- })
1256
- ] });
1257
- };
1258
- ContentTypeCollapse.propTypes = {
1259
- allActions: PropTypes.array.isRequired,
1260
- contentTypeName: PropTypes.string.isRequired,
1261
- index: PropTypes.number.isRequired,
1262
- isActive: PropTypes.bool.isRequired,
1263
- isFormDisabled: PropTypes.bool.isRequired,
1264
- label: PropTypes.string.isRequired,
1265
- onClickToggleCollapse: PropTypes.func.isRequired,
1266
- pathToData: PropTypes.string.isRequired,
1267
- properties: PropTypes.array.isRequired
1268
- };
1269
- const ContentTypeCollapses = ({ actions, isFormDisabled, pathToData, subjects }) => {
1270
- const [collapseToOpen, setCollapseToOpen] = useState(null);
1271
- const handleClickToggleCollapse = (collapseName) => {
1272
- const nextCollapseToOpen = collapseToOpen === collapseName ? null : collapseName;
1273
- setCollapseToOpen(nextCollapseToOpen);
1274
- };
1275
- return subjects.map(({ uid, label, properties }, index) => {
1276
- return /* @__PURE__ */ jsx(
1277
- ContentTypeCollapse,
1278
- {
1279
- allActions: actions,
1280
- contentTypeName: uid,
1281
- label,
1282
- isActive: collapseToOpen === uid,
1283
- isFormDisabled,
1284
- index,
1285
- onClickToggleCollapse: handleClickToggleCollapse,
1286
- pathToData: `${pathToData}..${uid}`,
1287
- properties
1288
- },
1289
- uid
1290
- );
1291
- });
1292
- };
1293
- ContentTypeCollapses.defaultProps = {
1294
- actions: [],
1295
- subjects: []
1296
- };
1297
- ContentTypeCollapses.propTypes = {
1298
- actions: PropTypes.array.isRequired,
1299
- isFormDisabled: PropTypes.bool.isRequired,
1300
- pathToData: PropTypes.string.isRequired,
1301
- subjects: PropTypes.arrayOf(
1302
- PropTypes.shape({
1303
- uid: PropTypes.string.isRequired,
1304
- label: PropTypes.string.isRequired,
1305
- properties: PropTypes.array.isRequired
1306
- })
1307
- )
1308
- };
1309
- const ContentTypeCollapses$1 = memo(ContentTypeCollapses);
1310
- const findDisplayedActions = (actions) => actions.filter(({ subjects }) => subjects && subjects.length);
1311
- const getActionsIds = (array) => array.map(({ actionId }) => actionId);
1312
- const getRelatedActionIdData = (actionIdArray, dataObj) => {
1313
- return actionIdArray.reduce((acc, actionId) => {
1314
- Object.keys(dataObj).forEach((ctUid) => {
1315
- const actionIdData = get(dataObj, [ctUid, actionId], {});
1316
- const actionIdState = { [ctUid]: removeConditionKeyFromData(actionIdData) };
1317
- if (!acc[actionId]) {
1318
- acc[actionId] = actionIdState;
1319
- } else {
1320
- acc[actionId] = { ...acc[actionId], ...actionIdState };
1321
- }
1322
- });
1323
- return acc;
1324
- }, {});
1325
- };
1326
- const getCheckboxesState = (properties, modifiedData) => {
1327
- const actionsIds = getActionsIds(properties);
1328
- const relatedActionsData = getRelatedActionIdData(actionsIds, modifiedData);
1329
- const checkboxesState = Object.keys(relatedActionsData).reduce((acc, current) => {
1330
- acc[current] = getCheckboxState(relatedActionsData[current]);
1331
- return acc;
1332
- }, {});
1333
- return checkboxesState;
1334
- };
1335
- const CenteredStack = styled(Flex)`
1336
- width: ${cellWidth};
1337
- flex-shrink: 0;
1338
- `;
1339
- const GlobalActions = ({ actions, isFormDisabled, kind }) => {
1340
- const { formatMessage } = useIntl();
1341
- const { modifiedData, onChangeCollectionTypeGlobalActionCheckbox } = usePermissionsDataManager();
1342
- const displayedActions = useMemo(() => {
1343
- return findDisplayedActions(actions);
1344
- }, [actions]);
1345
- const checkboxesState = useMemo(() => {
1346
- return getCheckboxesState(displayedActions, modifiedData[kind]);
1347
- }, [modifiedData, displayedActions, kind]);
1348
- return /* @__PURE__ */ jsx(Box, { paddingBottom: 4, paddingTop: 6, style: { paddingLeft: firstRowWidth }, children: /* @__PURE__ */ jsx(Flex, { gap: 0, children: displayedActions.map(({ label, actionId }) => {
1349
- return /* @__PURE__ */ jsxs(
1350
- CenteredStack,
1351
- {
1352
- direction: "column",
1353
- alignItems: "center",
1354
- justifyContent: "center",
1355
- gap: 3,
1356
- children: [
1357
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral500", children: formatMessage({
1358
- id: `Settings.roles.form.permissions.${label.toLowerCase()}`,
1359
- defaultMessage: label
1360
- }) }),
1361
- /* @__PURE__ */ jsx(
1362
- BaseCheckbox,
1363
- {
1364
- disabled: isFormDisabled,
1365
- onValueChange: (value) => {
1366
- onChangeCollectionTypeGlobalActionCheckbox(kind, actionId, value);
1367
- },
1368
- name: actionId,
1369
- "aria-label": formatMessage(
1370
- {
1371
- id: `Settings.permissions.select-all-by-permission`,
1372
- defaultMessage: "Select all {label} permissions"
1373
- },
1374
- {
1375
- label: formatMessage({
1376
- id: `Settings.roles.form.permissions.${label.toLowerCase()}`,
1377
- defaultMessage: label
1378
- })
1379
- }
1380
- ),
1381
- value: get(checkboxesState, [actionId, "hasAllActionsSelected"], false),
1382
- indeterminate: get(checkboxesState, [actionId, "hasSomeActionsSelected"], false)
1383
- }
1384
- )
1385
- ]
1386
- },
1387
- actionId
1388
- );
1389
- }) }) });
1390
- };
1391
- GlobalActions.defaultProps = {
1392
- actions: []
1393
- };
1394
- GlobalActions.propTypes = {
1395
- actions: PropTypes.arrayOf(
1396
- PropTypes.shape({
1397
- label: PropTypes.string.isRequired,
1398
- actionId: PropTypes.string.isRequired,
1399
- subjects: PropTypes.array.isRequired
1400
- })
1401
- ),
1402
- isFormDisabled: PropTypes.bool.isRequired,
1403
- kind: PropTypes.string.isRequired
1404
- };
1405
- const GlobalActions$1 = memo(GlobalActions);
1406
- const StyledBox = styled(Box)`
1407
- overflow-x: auto;
1408
- `;
1409
- const ContentTypes = ({ isFormDisabled, kind, layout: { actions, subjects } }) => {
1410
- const sortedSubjects = sortBy([...subjects], "label");
1411
- return /* @__PURE__ */ jsxs(StyledBox, { background: "neutral0", children: [
1412
- /* @__PURE__ */ jsx(GlobalActions$1, { actions, kind, isFormDisabled }),
1413
- /* @__PURE__ */ jsx(
1414
- ContentTypeCollapses$1,
1415
- {
1416
- actions,
1417
- isFormDisabled,
1418
- pathToData: kind,
1419
- subjects: sortedSubjects
1420
- }
1421
- )
1422
- ] });
1423
- };
1424
- ContentTypes.propTypes = {
1425
- isFormDisabled: PropTypes.bool.isRequired,
1426
- kind: PropTypes.string.isRequired,
1427
- layout: PropTypes.shape({
1428
- actions: PropTypes.array,
1429
- subjects: PropTypes.arrayOf(
1430
- PropTypes.shape({
1431
- uid: PropTypes.string.isRequired,
1432
- label: PropTypes.string.isRequired,
1433
- properties: PropTypes.array.isRequired
1434
- })
1435
- )
1436
- }).isRequired
1437
- };
1438
- const ContentTypes$1 = memo(ContentTypes);
1439
- const formatActions = (actions, modifiedData, pathToData) => {
1440
- return actions.map((action) => {
1441
- const checkboxName = [...pathToData, action.action, "properties", "enabled"];
1442
- const checkboxValue = get(modifiedData, checkboxName, false);
1443
- const conditionValue = get(modifiedData, [...pathToData, action.action, "conditions"], {});
1444
- const hasConditions = createArrayOfValues(conditionValue).some((val) => val);
1445
- return {
1446
- ...action,
1447
- isDisplayed: checkboxValue,
1448
- checkboxName: checkboxName.join(".."),
1449
- hasSomeActionsSelected: checkboxValue,
1450
- value: checkboxValue,
1451
- hasConditions,
1452
- label: action.displayName,
1453
- actionId: action.action,
1454
- pathToConditionsObject: [...pathToData, action.action]
1455
- };
1456
- });
1457
- };
1458
- const getConditionsButtonState = (valueObj) => {
1459
- const relatedData = Object.entries(valueObj).reduce((acc, current) => {
1460
- const [catName, { conditions }] = current;
1461
- acc[catName] = conditions;
1462
- return acc;
1463
- }, {});
1464
- const arrayOfValues = createArrayOfValues(relatedData);
1465
- return arrayOfValues.some((val) => val);
1466
- };
1467
- const Border = styled.div`
1468
- flex: 1;
1469
- align-self: center;
1470
- border-top: 1px solid ${({ theme }) => theme.colors.neutral150};
1471
- `;
1472
- const CheckboxWrapper = styled.div`
1473
- position: relative;
1474
- word-break: keep-all;
1475
- ${({ hasConditions, disabled, theme }) => hasConditions && `
1476
- &:before {
1477
- content: '';
1478
- position: absolute;
1479
- top: ${-4 / 16}rem;
1480
- left: ${-8 / 16}rem;
1481
- width: ${6 / 16}rem;
1482
- height: ${6 / 16}rem;
1483
- border-radius: ${20 / 16}rem;
1484
- background: ${disabled ? theme.colors.neutral100 : theme.colors.primary600};
1485
- }
1486
- `}
1487
- `;
1488
- const SubCategory = ({ categoryName, isFormDisabled, subCategoryName, actions, pathToData }) => {
1489
- const [isModalOpen, setModalOpen] = useState(false);
1490
- const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox } = usePermissionsDataManager();
1491
- const { formatMessage } = useIntl();
1492
- const mainData = get(modifiedData, pathToData, {});
1493
- const dataWithoutCondition = useMemo(() => {
1494
- return Object.keys(mainData).reduce((acc, current) => {
1495
- acc[current] = removeConditionKeyFromData(mainData[current]);
1496
- return acc;
1497
- }, {});
1498
- }, [mainData]);
1499
- const { hasAllActionsSelected, hasSomeActionsSelected } = getCheckboxState(dataWithoutCondition);
1500
- const handleToggleModalIsOpen = () => {
1501
- setModalOpen((s) => !s);
1502
- };
1503
- const handleModalClose = () => {
1504
- setModalOpen(false);
1505
- };
1506
- const formattedActions = formatActions(actions, modifiedData, pathToData);
1507
- const doesButtonHasCondition = getConditionsButtonState(get(modifiedData, [...pathToData], {}));
1508
- return /* @__PURE__ */ jsxs(Fragment, { children: [
1509
- /* @__PURE__ */ jsxs(Box, { children: [
1510
- /* @__PURE__ */ jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [
1511
- /* @__PURE__ */ jsx(Box, { paddingRight: 4, children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", children: subCategoryName }) }),
1512
- /* @__PURE__ */ jsx(Border, {}),
1513
- /* @__PURE__ */ jsx(Box, { paddingLeft: 4, children: /* @__PURE__ */ jsx(
1514
- Checkbox,
1515
- {
1516
- name: pathToData.join(".."),
1517
- disabled: isFormDisabled,
1518
- onValueChange: (value) => {
1519
- onChangeParentCheckbox({
1520
- target: {
1521
- name: pathToData.join(".."),
1522
- value
1523
- }
1524
- });
1525
- },
1526
- indeterminate: hasSomeActionsSelected,
1527
- value: hasAllActionsSelected,
1528
- children: formatMessage({ id: "app.utils.select-all", defaultMessage: "Select all" })
1529
- }
1530
- ) })
1531
- ] }),
1532
- /* @__PURE__ */ jsxs(Flex, { paddingTop: 6, paddingBottom: 6, children: [
1533
- /* @__PURE__ */ jsx(Grid, { gap: 2, style: { flex: 1 }, children: formattedActions.map(({ checkboxName, value, action, displayName, hasConditions }) => {
1534
- return /* @__PURE__ */ jsx(GridItem, { col: 3, children: /* @__PURE__ */ jsx(CheckboxWrapper, { disabled: isFormDisabled, hasConditions, children: /* @__PURE__ */ jsx(
1535
- Checkbox,
1536
- {
1537
- name: checkboxName,
1538
- disabled: isFormDisabled,
1539
- onValueChange: (value2) => {
1540
- onChangeSimpleCheckbox({
1541
- target: {
1542
- name: checkboxName,
1543
- value: value2
1544
- }
1545
- });
1546
- },
1547
- value,
1548
- children: displayName
1549
- }
1550
- ) }) }, action);
1551
- }) }),
1552
- /* @__PURE__ */ jsx(
1553
- ConditionsButton$1,
1554
- {
1555
- hasConditions: doesButtonHasCondition,
1556
- onClick: handleToggleModalIsOpen
1557
- }
1558
- )
1559
- ] })
1560
- ] }),
1561
- isModalOpen && /* @__PURE__ */ jsx(
1562
- ConditionsModal,
1563
- {
1564
- headerBreadCrumbs: [categoryName, subCategoryName],
1565
- actions: formattedActions,
1566
- isFormDisabled,
1567
- onClosed: handleModalClose,
1568
- onToggle: handleToggleModalIsOpen
1569
- }
1570
- )
1571
- ] });
1572
- };
1573
- SubCategory.propTypes = {
1574
- actions: PropTypes.array.isRequired,
1575
- categoryName: PropTypes.string.isRequired,
1576
- isFormDisabled: PropTypes.bool.isRequired,
1577
- subCategoryName: PropTypes.string.isRequired,
1578
- pathToData: PropTypes.array.isRequired
1579
- };
1580
- const PermissionRow = ({
1581
- childrenForm,
1582
- kind,
1583
- name,
1584
- isOpen,
1585
- isFormDisabled,
1586
- isWhite,
1587
- onOpenCategory,
1588
- pathToData
1589
- }) => {
1590
- const { formatMessage } = useIntl();
1591
- const handleClick = () => {
1592
- onOpenCategory(name);
1593
- };
1594
- const categoryName = useMemo(() => {
1595
- const split = name.split("::");
1596
- return split.pop();
1597
- }, [name]);
1598
- return /* @__PURE__ */ jsxs(
1599
- Accordion,
1600
- {
1601
- expanded: isOpen,
1602
- onToggle: handleClick,
1603
- id: `accordion-${name}`,
1604
- variant: isWhite ? "primary" : "secondary",
1605
- children: [
1606
- /* @__PURE__ */ jsx(
1607
- AccordionToggle,
1608
- {
1609
- title: upperFirst(categoryName),
1610
- description: `${formatMessage(
1611
- { id: "Settings.permissions.category" },
1612
- { category: categoryName }
1613
- )} ${kind === "plugins" ? "plugin" : kind}`
1614
- }
1615
- ),
1616
- /* @__PURE__ */ jsx(AccordionContent, { children: /* @__PURE__ */ jsx(Box, { padding: 6, children: childrenForm.map(({ actions, subCategoryName, subCategoryId }) => /* @__PURE__ */ jsx(
1617
- SubCategory,
1618
- {
1619
- actions,
1620
- categoryName,
1621
- isFormDisabled,
1622
- subCategoryName,
1623
- pathToData: [...pathToData, subCategoryId]
1624
- },
1625
- subCategoryName
1626
- )) }) })
1627
- ]
1628
- }
1629
- );
1630
- };
1631
- PermissionRow.defaultProps = {};
1632
- PermissionRow.propTypes = {
1633
- childrenForm: PropTypes.array.isRequired,
1634
- isOpen: PropTypes.bool.isRequired,
1635
- isFormDisabled: PropTypes.bool.isRequired,
1636
- isWhite: PropTypes.bool.isRequired,
1637
- kind: PropTypes.string.isRequired,
1638
- name: PropTypes.string.isRequired,
1639
- onOpenCategory: PropTypes.func.isRequired,
1640
- pathToData: PropTypes.array.isRequired
1641
- };
1642
- const PluginsAndSettingsPermissions = ({ isFormDisabled, kind, layout }) => {
1643
- const [openedCategory, setOpenedCategory] = useState(null);
1644
- const handleOpenCategory = (categoryName) => {
1645
- setOpenedCategory(categoryName === openedCategory ? null : categoryName);
1646
- };
1647
- return /* @__PURE__ */ jsx(Box, { padding: 6, background: "neutral0", children: layout.map(({ category, categoryId, childrenForm }, index) => {
1648
- return /* @__PURE__ */ jsx(
1649
- PermissionRow,
1650
- {
1651
- childrenForm,
1652
- kind,
1653
- isFormDisabled,
1654
- isOpen: openedCategory === category,
1655
- isWhite: index % 2 === 1,
1656
- name: category,
1657
- onOpenCategory: handleOpenCategory,
1658
- pathToData: [kind, categoryId]
1659
- },
1660
- category
1661
- );
1662
- }) });
1663
- };
1664
- PluginsAndSettingsPermissions.propTypes = {
1665
- isFormDisabled: PropTypes.bool.isRequired,
1666
- kind: PropTypes.string.isRequired,
1667
- layout: PropTypes.arrayOf(
1668
- PropTypes.shape({
1669
- category: PropTypes.string.isRequired,
1670
- categoryId: PropTypes.string.isRequired,
1671
- childrenForm: PropTypes.arrayOf(
1672
- PropTypes.shape({
1673
- actions: PropTypes.array.isRequired
1674
- })
1675
- ).isRequired
1676
- }).isRequired
1677
- ).isRequired
1678
- };
1679
- const findMatchingPermission = (permissions, action, subject) => permissions.find((perm) => perm.action === action && perm.subject === subject);
1680
- const createDefaultConditionsForm = (conditions, initialConditions = []) => conditions.reduce((acc, current) => {
1681
- acc[current.id] = initialConditions.indexOf(current.id) !== -1;
1682
- return acc;
1683
- }, {});
1684
- const createDefaultPropertyForms = ({ children }, propertyValues, prefix = "") => {
1685
- return children.reduce((acc, current) => {
1686
- if (current.children) {
1687
- return {
1688
- ...acc,
1689
- [current.value]: createDefaultPropertyForms(
1690
- current,
1691
- propertyValues,
1692
- `${prefix}${current.value}.`
1693
- )
1694
- };
1695
- }
1696
- const hasProperty = propertyValues.indexOf(`${prefix}${current.value}`) !== -1;
1697
- acc[current.value] = hasProperty;
1698
- return acc;
1699
- }, {});
1700
- };
1701
- const createDefaultPropertiesForm = (propertiesArray, ctLayout, matchingPermission) => {
1702
- return propertiesArray.reduce(
1703
- (acc, currentPropertyName) => {
1704
- const foundProperty = ctLayout.properties.find(({ value }) => value === currentPropertyName);
1705
- if (foundProperty) {
1706
- const matchingPermissionPropertyValues = get(
1707
- matchingPermission,
1708
- ["properties", foundProperty.value],
1709
- []
1710
- );
1711
- const propertyForm = createDefaultPropertyForms(
1712
- foundProperty,
1713
- matchingPermissionPropertyValues
1714
- );
1715
- acc.properties[currentPropertyName] = propertyForm;
1716
- }
1717
- return acc;
1718
- },
1719
- { properties: {} }
1720
- );
1721
- };
1722
- const findLayouts = (allLayouts, subjects) => {
1723
- return subjects.reduce((acc, current) => {
1724
- const foundLayout = allLayouts.find(({ uid }) => uid === current) || null;
1725
- if (foundLayout) {
1726
- acc[current] = foundLayout;
1727
- }
1728
- return acc;
1729
- }, {});
1730
- };
1731
- const createDefaultCTFormFromLayout = ({ subjects }, actionArray, conditionArray, initialPermissions = []) => {
1732
- return actionArray.reduce((defaultForm, current) => {
1733
- const actionSubjects = current.subjects;
1734
- const subjectLayouts = findLayouts(subjects, actionSubjects);
1735
- if (isEmpty(subjectLayouts)) {
1736
- return defaultForm;
1737
- }
1738
- const contentTypesActions = Object.keys(subjectLayouts).reduce((acc, currentCTUID) => {
1739
- const { actionId, applyToProperties } = current;
1740
- const currentSubjectLayout = subjectLayouts[currentCTUID];
1741
- const properties = currentSubjectLayout.properties.map(({ value }) => value);
1742
- const doesNothaveProperty = properties.every(
1743
- (property) => (applyToProperties || []).indexOf(property) === -1
1744
- );
1745
- const matchingPermission = findMatchingPermission(initialPermissions, actionId, currentCTUID);
1746
- const conditionsForm = createDefaultConditionsForm(
1747
- conditionArray,
1748
- get(matchingPermission, "conditions", [])
1749
- );
1750
- if (isEmpty(applyToProperties) || doesNothaveProperty) {
1751
- set(acc, [currentCTUID, actionId], {
1752
- properties: {
1753
- enabled: matchingPermission !== void 0
1754
- },
1755
- conditions: conditionsForm
1756
- });
1757
- return acc;
1758
- }
1759
- const propertiesForm = createDefaultPropertiesForm(
1760
- applyToProperties,
1761
- subjectLayouts[currentCTUID],
1762
- matchingPermission
1763
- );
1764
- set(acc, [currentCTUID, actionId], { ...propertiesForm, conditions: conditionsForm });
1765
- return acc;
1766
- }, {});
1767
- return merge(defaultForm, contentTypesActions);
1768
- }, {});
1769
- };
1770
- const createSubCategoryForm = (actions, conditions, permissions) => {
1771
- return actions.reduce((acc, current) => {
1772
- const foundMatchingPermission = findMatchingPermission(permissions, current.action, null);
1773
- acc[current.action] = {
1774
- properties: {
1775
- enabled: foundMatchingPermission !== void 0
1776
- },
1777
- conditions: createDefaultConditionsForm(
1778
- conditions,
1779
- foundMatchingPermission?.conditions ?? []
1780
- )
1781
- };
1782
- return acc;
1783
- }, {});
1784
- };
1785
- const createChildrenDefaultForm = (childrenForm, conditions, initialPermissions) => {
1786
- return childrenForm.reduce((acc, current) => {
1787
- acc[current.subCategoryId] = createSubCategoryForm(
1788
- current.actions,
1789
- conditions,
1790
- initialPermissions
1791
- );
1792
- return acc;
1793
- }, {});
1794
- };
1795
- const createDefaultPluginsFormFromLayout = (pluginsLayout, conditions, initialPermissions = []) => {
1796
- return pluginsLayout.reduce((acc, { categoryId, childrenForm }) => {
1797
- const childrenDefaultForm = createChildrenDefaultForm(
1798
- childrenForm,
1799
- conditions,
1800
- initialPermissions
1801
- );
1802
- acc[categoryId] = childrenDefaultForm;
1803
- return acc;
1804
- }, {});
1805
- };
1806
- const replaceName = (name) => name.split(" ").join("-");
1807
- const formatLayout = (layout, groupByKey) => {
1808
- return Object.entries(groupBy(layout, groupByKey)).map(([itemName, item]) => ({
1809
- category: itemName,
1810
- categoryId: replaceName(itemName),
1811
- childrenForm: Object.entries(groupBy(item, "subCategory")).map(
1812
- ([subCategoryName, actions]) => ({
1813
- subCategoryName,
1814
- subCategoryId: replaceName(subCategoryName),
1815
- actions
1816
- })
1817
- )
1818
- }));
1819
- };
1820
- const init = (layout, permissions) => {
1821
- const {
1822
- conditions,
1823
- sections: { collectionTypes, singleTypes, plugins, settings }
1824
- } = layout;
1825
- const layouts = {
1826
- collectionTypes,
1827
- singleTypes,
1828
- plugins: formatLayout(plugins, "plugin"),
1829
- settings: formatLayout(settings, "category")
1830
- };
1831
- const defaultForm = {
1832
- collectionTypes: createDefaultCTFormFromLayout(
1833
- collectionTypes,
1834
- collectionTypes.actions || [],
1835
- conditions,
1836
- permissions
1837
- ),
1838
- singleTypes: createDefaultCTFormFromLayout(
1839
- singleTypes,
1840
- singleTypes.actions || [],
1841
- conditions,
1842
- permissions
1843
- ),
1844
- plugins: createDefaultPluginsFormFromLayout(layouts.plugins, conditions, permissions),
1845
- settings: createDefaultPluginsFormFromLayout(layouts.settings, conditions, permissions)
1846
- };
1847
- return {
1848
- initialData: defaultForm,
1849
- modifiedData: defaultForm,
1850
- layouts
1851
- };
1852
- };
1853
- const updateConditionsToFalse = (obj) => {
1854
- return Object.keys(obj).reduce((acc, current) => {
1855
- const currentValue = obj[current];
1856
- if (isObject(currentValue) && !has(currentValue, "conditions")) {
1857
- return { ...acc, [current]: updateConditionsToFalse(currentValue) };
1858
- }
1859
- if (isObject(currentValue) && has(currentValue, "conditions")) {
1860
- const isActionEnabled = createArrayOfValues(omit(currentValue, "conditions")).some(
1861
- (val) => val
1862
- );
1863
- if (!isActionEnabled) {
1864
- const updatedConditions = Object.keys(currentValue.conditions).reduce((acc1, current2) => {
1865
- acc1[current2] = false;
1866
- return acc1;
1867
- }, {});
1868
- return { ...acc, [current]: { ...currentValue, conditions: updatedConditions } };
1869
- }
1870
- }
1871
- acc[current] = currentValue;
1872
- return acc;
1873
- }, {});
1874
- };
1875
- const updateValues = (obj, valueToSet, isFieldUpdate = false) => {
1876
- return Object.keys(obj).reduce((acc, current) => {
1877
- const currentValue = obj[current];
1878
- if (current === "conditions" && !isFieldUpdate) {
1879
- acc[current] = currentValue;
1880
- return acc;
1881
- }
1882
- if (isObject(currentValue)) {
1883
- return { ...acc, [current]: updateValues(currentValue, valueToSet, current === "fields") };
1884
- }
1885
- acc[current] = valueToSet;
1886
- return acc;
1887
- }, {});
1888
- };
1889
- const initialState = {
1890
- initialData: {},
1891
- modifiedData: {},
1892
- layouts: {}
1893
- };
1894
- const reducer = (state, action) => produce(state, (draftState) => {
1895
- switch (action.type) {
1896
- case "ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX": {
1897
- const { collectionTypeKind, actionId, value } = action;
1898
- const pathToData = ["modifiedData", collectionTypeKind];
1899
- Object.keys(get(state, pathToData)).forEach((collectionType) => {
1900
- const collectionTypeActionData = get(
1901
- state,
1902
- [...pathToData, collectionType, actionId],
1903
- void 0
1904
- );
1905
- if (collectionTypeActionData) {
1906
- let updatedValues = updateValues(collectionTypeActionData, value);
1907
- if (!value && updatedValues.conditions) {
1908
- const updatedConditions = updateValues(updatedValues.conditions, false);
1909
- updatedValues = { ...updatedValues, conditions: updatedConditions };
1910
- }
1911
- set(draftState, [...pathToData, collectionType, actionId], updatedValues);
1912
- }
1913
- });
1914
- break;
1915
- }
1916
- case "ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX": {
1917
- const { pathToCollectionType, propertyName, rowName, value } = action;
1918
- let nextModifiedDataState = cloneDeep(state.modifiedData);
1919
- const pathToModifiedDataCollectionType = pathToCollectionType.split("..");
1920
- const objToUpdate = get(nextModifiedDataState, pathToModifiedDataCollectionType, {});
1921
- Object.keys(objToUpdate).forEach((actionId) => {
1922
- if (has(objToUpdate[actionId], `properties.${propertyName}`)) {
1923
- const objValue = get(objToUpdate, [actionId, "properties", propertyName, rowName]);
1924
- const pathToDataToSet = [
1925
- ...pathToModifiedDataCollectionType,
1926
- actionId,
1927
- "properties",
1928
- propertyName,
1929
- rowName
1930
- ];
1931
- if (!isObject(objValue)) {
1932
- set(nextModifiedDataState, pathToDataToSet, value);
1933
- } else {
1934
- const updatedValue = updateValues(objValue, value);
1935
- set(nextModifiedDataState, pathToDataToSet, updatedValue);
1936
- }
1937
- }
1938
- });
1939
- if (!value) {
1940
- nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);
1941
- }
1942
- set(draftState, "modifiedData", nextModifiedDataState);
1943
- break;
1944
- }
1945
- case "ON_CHANGE_CONDITIONS": {
1946
- Object.entries(action.conditions).forEach((array) => {
1947
- const [stringPathToData, conditionsToUpdate] = array;
1948
- set(
1949
- draftState,
1950
- ["modifiedData", ...stringPathToData.split(".."), "conditions"],
1951
- conditionsToUpdate
1952
- );
1953
- });
1954
- break;
1955
- }
1956
- case "ON_CHANGE_SIMPLE_CHECKBOX": {
1957
- let nextModifiedDataState = cloneDeep(state.modifiedData);
1958
- set(nextModifiedDataState, [...action.keys.split("..")], action.value);
1959
- if (!action.value) {
1960
- nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);
1961
- }
1962
- set(draftState, "modifiedData", nextModifiedDataState);
1963
- break;
1964
- }
1965
- case "ON_CHANGE_TOGGLE_PARENT_CHECKBOX": {
1966
- const { keys, value } = action;
1967
- const pathToValue = [...keys.split("..")];
1968
- let nextModifiedDataState = cloneDeep(state.modifiedData);
1969
- const oldValues = get(nextModifiedDataState, pathToValue, {});
1970
- const updatedValues = updateValues(oldValues, value);
1971
- set(nextModifiedDataState, pathToValue, updatedValues);
1972
- if (!value) {
1973
- nextModifiedDataState = updateConditionsToFalse(nextModifiedDataState);
1974
- }
1975
- set(draftState, ["modifiedData"], nextModifiedDataState);
1976
- break;
1977
- }
1978
- case "RESET_FORM": {
1979
- draftState.modifiedData = state.initialData;
1980
- break;
1981
- }
1982
- case "SET_FORM_AFTER_SUBMIT": {
1983
- draftState.initialData = state.modifiedData;
1984
- break;
1985
- }
1986
- default:
1987
- return draftState;
1988
- }
1989
- });
1990
- const createConditionsArray = (conditions) => {
1991
- return Object.entries(conditions).filter(([, conditionValue]) => {
1992
- return conditionValue;
1993
- }).map(([conditionName]) => conditionName);
1994
- };
1995
- const createPermission = (array) => {
1996
- const [actionName, { conditions }] = array;
1997
- return {
1998
- action: actionName,
1999
- subject: null,
2000
- conditions: createConditionsArray(conditions),
2001
- properties: {}
2002
- };
2003
- };
2004
- const createPermissionsArrayFromCategory = (categoryPermissions) => {
2005
- return Object.values(categoryPermissions).reduce((acc, current) => {
2006
- const permissions = Object.entries(current).reduce((acc1, current1) => {
2007
- const [
2008
- ,
2009
- {
2010
- properties: { enabled }
2011
- }
2012
- ] = current1;
2013
- if (!enabled) {
2014
- return acc1;
2015
- }
2016
- const permission = createPermission(current1);
2017
- acc1.push(permission);
2018
- return acc1;
2019
- }, []);
2020
- return [...acc, ...permissions];
2021
- }, []);
2022
- };
2023
- const formatSettingsPermissionsToAPI = (settingsPermissionsObject) => {
2024
- return Object.values(settingsPermissionsObject).reduce((acc, current) => {
2025
- const currentCategoryPermissions = createPermissionsArrayFromCategory(current);
2026
- return [...acc, ...currentCategoryPermissions];
2027
- }, []);
2028
- };
2029
- const createPropertyArray = (propertyValue, prefix = "") => {
2030
- return Object.entries(propertyValue).reduce((acc, current) => {
2031
- const [name, value] = current;
2032
- if (isObject(value)) {
2033
- return [...acc, ...createPropertyArray(value, `${prefix}${name}.`)];
2034
- }
2035
- if (value && !isObject(value)) {
2036
- acc.push(`${prefix}${name}`);
2037
- }
2038
- return acc;
2039
- }, []);
2040
- };
2041
- const createPermissionWithProperties = (action, subject, { conditions, properties }) => {
2042
- return Object.entries(properties).reduce(
2043
- (acc, current) => {
2044
- const [propertyName, propertyValue] = current;
2045
- acc.properties[propertyName] = createPropertyArray(propertyValue);
2046
- return acc;
2047
- },
2048
- { action, subject, conditions: createConditionsArray(conditions), properties: {} }
2049
- );
2050
- };
2051
- const createPermissionWithoutProperties = (action, subject, { conditions }) => {
2052
- return {
2053
- action,
2054
- subject,
2055
- properties: {},
2056
- conditions: createConditionsArray(conditions)
2057
- };
2058
- };
2059
- const createSubjectPermissions = (subject, actions) => {
2060
- const permissions = Object.entries(actions).reduce((acc, current) => {
2061
- const [actionName, permissions2] = current;
2062
- const shouldCreatePermission = createArrayOfValues(permissions2).some((val) => val);
2063
- if (!shouldCreatePermission) {
2064
- return acc;
2065
- }
2066
- if (!permissions2?.properties?.enabled) {
2067
- const createdPermissionsArray = createPermissionWithProperties(
2068
- actionName,
2069
- subject,
2070
- permissions2
2071
- );
2072
- return [...acc, createdPermissionsArray];
2073
- }
2074
- if (!permissions2.properties.enabled) {
2075
- return acc;
2076
- }
2077
- const permission = createPermissionWithoutProperties(actionName, subject, permissions2);
2078
- acc.push(permission);
2079
- return acc;
2080
- }, []);
2081
- return permissions;
2082
- };
2083
- const formatContentTypesPermissionToAPI = (contentTypesPermissions) => {
2084
- const permissions = Object.entries(contentTypesPermissions).reduce((allPermissions, current) => {
2085
- const [subject, currentSubjectActions] = current;
2086
- const permissions2 = createSubjectPermissions(subject, currentSubjectActions);
2087
- return [...allPermissions, ...permissions2];
2088
- }, []);
2089
- return permissions;
2090
- };
2091
- const formatPermissionsToAPI = (modifiedData) => {
2092
- const pluginsPermissions = formatSettingsPermissionsToAPI(modifiedData.plugins);
2093
- const settingsPermissions = formatSettingsPermissionsToAPI(modifiedData.settings);
2094
- const collectionTypesPermissions = formatContentTypesPermissionToAPI(
2095
- modifiedData.collectionTypes
2096
- );
2097
- const singleTypesPermissions = formatContentTypesPermissionToAPI(modifiedData.singleTypes);
2098
- return [
2099
- ...pluginsPermissions,
2100
- ...settingsPermissions,
2101
- ...collectionTypesPermissions,
2102
- ...singleTypesPermissions
2103
- ];
2104
- };
2105
- const TAB_LABELS = [
2106
- {
2107
- labelId: "app.components.LeftMenuLinkContainer.collectionTypes",
2108
- defaultMessage: "Collection Types",
2109
- id: "collectionTypes"
2110
- },
2111
- {
2112
- labelId: "app.components.LeftMenuLinkContainer.singleTypes",
2113
- id: "singleTypes",
2114
- defaultMessage: "Single Types"
2115
- },
2116
- {
2117
- labelId: "app.components.LeftMenuLinkContainer.plugins",
2118
- defaultMessage: "Plugins",
2119
- id: "plugins"
2120
- },
2121
- {
2122
- labelId: "app.components.LeftMenuLinkContainer.settings",
2123
- defaultMessage: "Settings",
2124
- id: "settings"
2125
- }
2126
- ];
2127
- const Permissions = forwardRef(({ layout, isFormDisabled, permissions }, ref) => {
2128
- const [{ initialData, layouts, modifiedData }, dispatch] = useReducer(
2129
- reducer,
2130
- initialState,
2131
- () => init(layout, permissions)
2132
- );
2133
- const { formatMessage } = useIntl();
2134
- useImperativeHandle(ref, () => {
2135
- return {
2136
- getPermissions() {
2137
- const collectionTypesDiff = difference(
2138
- initialData.collectionTypes,
2139
- modifiedData.collectionTypes
2140
- );
2141
- const singleTypesDiff = difference(initialData.singleTypes, modifiedData.singleTypes);
2142
- const contentTypesDiff = { ...collectionTypesDiff, ...singleTypesDiff };
2143
- let didUpdateConditions;
2144
- if (isEmpty(contentTypesDiff)) {
2145
- didUpdateConditions = false;
2146
- } else {
2147
- didUpdateConditions = Object.values(contentTypesDiff).some((permission) => {
2148
- return Object.values(permission).some(
2149
- (permissionValue) => has(permissionValue, "conditions")
2150
- );
2151
- });
2152
- }
2153
- return { permissionsToSend: formatPermissionsToAPI(modifiedData), didUpdateConditions };
2154
- },
2155
- resetForm() {
2156
- dispatch({ type: "RESET_FORM" });
2157
- },
2158
- setFormAfterSubmit() {
2159
- dispatch({ type: "SET_FORM_AFTER_SUBMIT" });
2160
- }
2161
- };
2162
- });
2163
- const handleChangeCollectionTypeLeftActionRowCheckbox = (pathToCollectionType, propertyName, rowName, value) => {
2164
- dispatch({
2165
- type: "ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",
2166
- pathToCollectionType,
2167
- propertyName,
2168
- rowName,
2169
- value
2170
- });
2171
- };
2172
- const handleChangeCollectionTypeGlobalActionCheckbox = (collectionTypeKind, actionId, value) => {
2173
- dispatch({
2174
- type: "ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",
2175
- collectionTypeKind,
2176
- actionId,
2177
- value
2178
- });
2179
- };
2180
- const handleChangeConditions = (conditions) => {
2181
- dispatch({ type: "ON_CHANGE_CONDITIONS", conditions });
2182
- };
2183
- const handleChangeSimpleCheckbox = useCallback(({ target: { name, value } }) => {
2184
- dispatch({
2185
- type: "ON_CHANGE_SIMPLE_CHECKBOX",
2186
- keys: name,
2187
- value
2188
- });
2189
- }, []);
2190
- const handleChangeParentCheckbox = useCallback(({ target: { name, value } }) => {
2191
- dispatch({
2192
- type: "ON_CHANGE_TOGGLE_PARENT_CHECKBOX",
2193
- keys: name,
2194
- value
2195
- });
2196
- }, []);
2197
- return /* @__PURE__ */ jsx(
2198
- PermissionsDataManagerProvider,
2199
- {
2200
- availableConditions: layout.conditions,
2201
- modifiedData,
2202
- onChangeConditions: handleChangeConditions,
2203
- onChangeSimpleCheckbox: handleChangeSimpleCheckbox,
2204
- onChangeParentCheckbox: handleChangeParentCheckbox,
2205
- onChangeCollectionTypeLeftActionRowCheckbox: handleChangeCollectionTypeLeftActionRowCheckbox,
2206
- onChangeCollectionTypeGlobalActionCheckbox: handleChangeCollectionTypeGlobalActionCheckbox,
2207
- children: /* @__PURE__ */ jsxs(
2208
- TabGroup,
2209
- {
2210
- id: "tabs",
2211
- label: formatMessage({
2212
- id: "Settings.permissions.users.tabs.label",
2213
- defaultMessage: "Tabs Permissions"
2214
- }),
2215
- children: [
2216
- /* @__PURE__ */ jsx(Tabs, { children: TAB_LABELS.map((tabLabel) => /* @__PURE__ */ jsx(Tab, { children: formatMessage({ id: tabLabel.labelId, defaultMessage: tabLabel.defaultMessage }) }, tabLabel.id)) }),
2217
- /* @__PURE__ */ jsxs(TabPanels, { style: { position: "relative" }, children: [
2218
- /* @__PURE__ */ jsx(TabPanel, { children: /* @__PURE__ */ jsx(
2219
- ContentTypes$1,
2220
- {
2221
- layout: layouts.collectionTypes,
2222
- kind: "collectionTypes",
2223
- isFormDisabled
2224
- }
2225
- ) }),
2226
- /* @__PURE__ */ jsx(TabPanel, { children: /* @__PURE__ */ jsx(
2227
- ContentTypes$1,
2228
- {
2229
- layout: layouts.singleTypes,
2230
- kind: "singleTypes",
2231
- isFormDisabled
2232
- }
2233
- ) }),
2234
- /* @__PURE__ */ jsx(TabPanel, { children: /* @__PURE__ */ jsx(
2235
- PluginsAndSettingsPermissions,
2236
- {
2237
- layout: layouts.plugins,
2238
- kind: "plugins",
2239
- isFormDisabled
2240
- }
2241
- ) }),
2242
- /* @__PURE__ */ jsx(TabPanel, { children: /* @__PURE__ */ jsx(
2243
- PluginsAndSettingsPermissions,
2244
- {
2245
- layout: layouts.settings,
2246
- kind: "settings",
2247
- isFormDisabled
2248
- }
2249
- ) })
2250
- ] })
2251
- ]
2252
- }
2253
- )
2254
- }
2255
- );
2256
- });
2257
- Permissions.defaultProps = {
2258
- permissions: [],
2259
- layout: {
2260
- conditions: [],
2261
- sections: {
2262
- collectionTypes: {},
2263
- singleTypes: {
2264
- actions: []
2265
- },
2266
- settings: [],
2267
- plugins: []
2268
- }
2269
- }
2270
- };
2271
- Permissions.propTypes = {
2272
- layout: PropTypes.object,
2273
- isFormDisabled: PropTypes.bool.isRequired,
2274
- permissions: PropTypes.array
2275
- };
2276
- const Permissions$1 = memo(Permissions);
2277
- const useAdminRolePermissionLayout = (id, queryOptions = {}) => {
2278
- const { get: get2 } = useFetchClient();
2279
- const { data, error, isError, isLoading } = useQuery(
2280
- ["permissions", id],
2281
- async () => {
2282
- const {
2283
- data: { data: data2 }
2284
- } = await get2("/admin/permissions", {
2285
- // TODO: check with BE why we deviate from our usual admin API format here
2286
- params: { role: id }
2287
- });
2288
- return data2;
2289
- },
2290
- queryOptions
2291
- );
2292
- return { data, error, isError, isLoading };
2293
- };
2294
- const useAdminRolePermissions = (params = { id: null }, queryOptions = {}) => {
2295
- const { id, ...queryParams } = params;
2296
- const { get: get2 } = useFetchClient();
2297
- const {
2298
- data: permissions,
2299
- error,
2300
- isError,
2301
- isLoading,
2302
- refetch
2303
- } = useQuery(
2304
- ["roles", id, "permissions", queryParams],
2305
- async () => {
2306
- const {
2307
- data: { data }
2308
- } = await get2(`/admin/roles/${id}/permissions`, {
2309
- params: queryParams
2310
- });
2311
- return data;
2312
- },
2313
- queryOptions
2314
- );
2315
- return { permissions, error, isError, isLoading, refetch };
2316
- };
2317
- export {
2318
- Permissions$1 as P,
2319
- useAdminRolePermissions as a,
2320
- useAdminRolePermissionLayout as u
2321
- };
2322
- //# sourceMappingURL=useAdminRolePermissions-603a2709.mjs.map