@strapi/admin 4.15.5-alpha.2 → 4.15.5-alpha.4

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 (199) hide show
  1. package/dist/_chunks/{AuthenticatedApp-4b160235.js → AuthenticatedApp-31e6418d.js} +21 -21
  2. package/dist/_chunks/{AuthenticatedApp-4b160235.js.map → AuthenticatedApp-31e6418d.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-fa931d1d.mjs → AuthenticatedApp-52d37e32.mjs} +21 -21
  4. package/dist/_chunks/{AuthenticatedApp-fa931d1d.mjs.map → AuthenticatedApp-52d37e32.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-b91d1592.js → HomePage-0f953b49.js} +4 -4
  6. package/dist/_chunks/{HomePage-b91d1592.js.map → HomePage-0f953b49.js.map} +1 -1
  7. package/dist/_chunks/{HomePage-8e98be60.mjs → HomePage-1e7b2e66.mjs} +4 -4
  8. package/dist/_chunks/{HomePage-8e98be60.mjs.map → HomePage-1e7b2e66.mjs.map} +1 -1
  9. package/dist/_chunks/{HomePage-9bda39b5.mjs → HomePage-a2c12504.mjs} +4 -4
  10. package/dist/_chunks/{HomePage-9bda39b5.mjs.map → HomePage-a2c12504.mjs.map} +1 -1
  11. package/dist/_chunks/{HomePage-b6967648.js → HomePage-d0f7fc69.js} +4 -4
  12. package/dist/_chunks/{HomePage-b6967648.js.map → HomePage-d0f7fc69.js.map} +1 -1
  13. package/dist/_chunks/{InstalledPluginsPage-ee6d69b0.mjs → InstalledPluginsPage-3fc71003.mjs} +3 -3
  14. package/dist/_chunks/{InstalledPluginsPage-ee6d69b0.mjs.map → InstalledPluginsPage-3fc71003.mjs.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-d4b90e9c.js → InstalledPluginsPage-46e14507.js} +3 -3
  16. package/dist/_chunks/{InstalledPluginsPage-d4b90e9c.js.map → InstalledPluginsPage-46e14507.js.map} +1 -1
  17. package/dist/_chunks/{Login-5fbf37c3.js → Login-550366a9.js} +2 -2
  18. package/dist/_chunks/{Login-5fbf37c3.js.map → Login-550366a9.js.map} +1 -1
  19. package/dist/_chunks/{Login-4fc5dcbb.mjs → Login-57e0fd9c.mjs} +2 -2
  20. package/dist/_chunks/{Login-4fc5dcbb.mjs.map → Login-57e0fd9c.mjs.map} +1 -1
  21. package/dist/_chunks/{MarketplacePage-ff0d02c6.js → MarketplacePage-138e7b39.js} +3 -3
  22. package/dist/_chunks/{MarketplacePage-ff0d02c6.js.map → MarketplacePage-138e7b39.js.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-ec9bf1db.mjs → MarketplacePage-2505749a.mjs} +3 -3
  24. package/dist/_chunks/{MarketplacePage-ec9bf1db.mjs.map → MarketplacePage-2505749a.mjs.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-96a8404e.js → ProfilePage-23b8a29f.js} +3 -3
  26. package/dist/_chunks/{ProfilePage-96a8404e.js.map → ProfilePage-23b8a29f.js.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-caeace8c.mjs → ProfilePage-bd50b4f3.mjs} +3 -3
  28. package/dist/_chunks/{ProfilePage-caeace8c.mjs.map → ProfilePage-bd50b4f3.mjs.map} +1 -1
  29. package/dist/_chunks/{build-f011d8dc.mjs → build-92e15b93.mjs} +13 -13
  30. package/dist/_chunks/{build-f011d8dc.mjs.map → build-92e15b93.mjs.map} +1 -1
  31. package/dist/_chunks/{build-b285bccd.js → build-df2f219f.js} +13 -13
  32. package/dist/_chunks/{build-b285bccd.js.map → build-df2f219f.js.map} +1 -1
  33. package/dist/_chunks/{constants-916debf1.js → constants-06897e38.js} +2 -2
  34. package/dist/_chunks/{constants-916debf1.js.map → constants-06897e38.js.map} +1 -1
  35. package/dist/_chunks/{constants-129cf022.mjs → constants-362e760f.mjs} +6 -6
  36. package/dist/_chunks/{constants-129cf022.mjs.map → constants-362e760f.mjs.map} +1 -1
  37. package/dist/_chunks/{constants-1bd1239d.js → constants-4539f7ac.js} +6 -6
  38. package/dist/_chunks/{constants-1bd1239d.js.map → constants-4539f7ac.js.map} +1 -1
  39. package/dist/_chunks/{constants-39df4f04.mjs → constants-59bcff2e.mjs} +3 -3
  40. package/dist/_chunks/{constants-39df4f04.mjs.map → constants-59bcff2e.mjs.map} +1 -1
  41. package/dist/_chunks/{constants-7bfc7134.mjs → constants-6dcb43aa.mjs} +2 -2
  42. package/dist/_chunks/{constants-7bfc7134.mjs.map → constants-6dcb43aa.mjs.map} +1 -1
  43. package/dist/_chunks/{constants-86882708.js → constants-88f9d2a0.js} +3 -3
  44. package/dist/_chunks/{constants-86882708.js.map → constants-88f9d2a0.js.map} +1 -1
  45. package/dist/_chunks/{constants-cd5a4e71.js → constants-ac7899ed.js} +5 -5
  46. package/dist/_chunks/{constants-cd5a4e71.js.map → constants-ac7899ed.js.map} +1 -1
  47. package/dist/_chunks/{constants-ffa23daa.mjs → constants-e2c67ec8.mjs} +5 -5
  48. package/dist/_chunks/{constants-ffa23daa.mjs.map → constants-e2c67ec8.mjs.map} +1 -1
  49. package/dist/_chunks/{develop-9765d7ba.js → develop-4d25a6e0.js} +13 -13
  50. package/dist/_chunks/{develop-9765d7ba.js.map → develop-4d25a6e0.js.map} +1 -1
  51. package/dist/_chunks/{develop-3c9f7452.mjs → develop-a46fed01.mjs} +13 -13
  52. package/dist/_chunks/{develop-3c9f7452.mjs.map → develop-a46fed01.mjs.map} +1 -1
  53. package/dist/_chunks/{index-f18d27fd.js → index-02064a74.js} +3 -3
  54. package/dist/_chunks/{index-f18d27fd.js.map → index-02064a74.js.map} +1 -1
  55. package/dist/_chunks/{index-332b3702.mjs → index-03e8b9e3.mjs} +3 -3
  56. package/dist/_chunks/{index-332b3702.mjs.map → index-03e8b9e3.mjs.map} +1 -1
  57. package/dist/_chunks/{index-539c5eac.js → index-074a5de8.js} +2 -2
  58. package/dist/_chunks/{index-539c5eac.js.map → index-074a5de8.js.map} +1 -1
  59. package/dist/_chunks/{index-e2db7aa8.mjs → index-0778959c.mjs} +6 -6
  60. package/dist/_chunks/{index-e2db7aa8.mjs.map → index-0778959c.mjs.map} +1 -1
  61. package/dist/_chunks/{index-455d0b3e.js → index-0b787ac1.js} +5 -5
  62. package/dist/_chunks/{index-455d0b3e.js.map → index-0b787ac1.js.map} +1 -1
  63. package/dist/_chunks/{index-7c0dcf2b.js → index-133699a3.js} +4 -4
  64. package/dist/_chunks/{index-7c0dcf2b.js.map → index-133699a3.js.map} +1 -1
  65. package/dist/_chunks/{index-6861cd84.mjs → index-13ab14ec.mjs} +3 -3
  66. package/dist/_chunks/{index-6861cd84.mjs.map → index-13ab14ec.mjs.map} +1 -1
  67. package/dist/_chunks/{index-d196ac50.js → index-148939b0.js} +4 -4
  68. package/dist/_chunks/{index-d196ac50.js.map → index-148939b0.js.map} +1 -1
  69. package/dist/_chunks/{index-891d1527.mjs → index-15c76f0b.mjs} +4 -4
  70. package/dist/_chunks/{index-891d1527.mjs.map → index-15c76f0b.mjs.map} +1 -1
  71. package/dist/_chunks/{index-653e1ab3.js → index-19b1984d.js} +2 -2
  72. package/dist/_chunks/{index-653e1ab3.js.map → index-19b1984d.js.map} +1 -1
  73. package/dist/_chunks/{index-d33c8d9f.mjs → index-1a3e997a.mjs} +8 -8
  74. package/dist/_chunks/{index-d33c8d9f.mjs.map → index-1a3e997a.mjs.map} +1 -1
  75. package/dist/_chunks/{index-62b7bdbe.js → index-1a74fa41.js} +343 -285
  76. package/dist/_chunks/index-1a74fa41.js.map +1 -0
  77. package/dist/_chunks/{index-d80de23d.mjs → index-1a7cc203.mjs} +3 -3
  78. package/dist/_chunks/{index-d80de23d.mjs.map → index-1a7cc203.mjs.map} +1 -1
  79. package/dist/_chunks/{index-f4a061be.mjs → index-23925f10.mjs} +2 -2
  80. package/dist/_chunks/{index-f4a061be.mjs.map → index-23925f10.mjs.map} +1 -1
  81. package/dist/_chunks/{index-006ef0ac.js → index-24b626a6.js} +3 -3
  82. package/dist/_chunks/{index-006ef0ac.js.map → index-24b626a6.js.map} +1 -1
  83. package/dist/_chunks/{index-43e86c36.mjs → index-2b48526d.mjs} +5 -5
  84. package/dist/_chunks/{index-43e86c36.mjs.map → index-2b48526d.mjs.map} +1 -1
  85. package/dist/_chunks/{index-6bfd0b33.js → index-2c76e5e2.js} +3 -3
  86. package/dist/_chunks/{index-6bfd0b33.js.map → index-2c76e5e2.js.map} +1 -1
  87. package/dist/_chunks/{index-54dc318d.js → index-36a7c525.js} +3 -3
  88. package/dist/_chunks/{index-54dc318d.js.map → index-36a7c525.js.map} +1 -1
  89. package/dist/_chunks/{index-df043af5.mjs → index-3a96c79f.mjs} +3 -3
  90. package/dist/_chunks/{index-df043af5.mjs.map → index-3a96c79f.mjs.map} +1 -1
  91. package/dist/_chunks/{index-57ae9065.mjs → index-3be46ca9.mjs} +3 -3
  92. package/dist/_chunks/{index-57ae9065.mjs.map → index-3be46ca9.mjs.map} +1 -1
  93. package/dist/_chunks/{index-9b3ff96c.mjs → index-4544af4c.mjs} +20 -20
  94. package/dist/_chunks/{index-9b3ff96c.mjs.map → index-4544af4c.mjs.map} +1 -1
  95. package/dist/_chunks/{index-f3c67f77.js → index-4b8c01d4.js} +2 -2
  96. package/dist/_chunks/{index-f3c67f77.js.map → index-4b8c01d4.js.map} +1 -1
  97. package/dist/_chunks/{index-0bd0d840.mjs → index-4fef292a.mjs} +3 -3
  98. package/dist/_chunks/{index-0bd0d840.mjs.map → index-4fef292a.mjs.map} +1 -1
  99. package/dist/_chunks/{index-f67d8e8d.mjs → index-5113c6be.mjs} +2 -2
  100. package/dist/_chunks/{index-f67d8e8d.mjs.map → index-5113c6be.mjs.map} +1 -1
  101. package/dist/_chunks/{index-05ada54b.js → index-58ffc071.js} +3 -3
  102. package/dist/_chunks/{index-05ada54b.js.map → index-58ffc071.js.map} +1 -1
  103. package/dist/_chunks/{index-c184f4d7.mjs → index-59880344.mjs} +5 -5
  104. package/dist/_chunks/{index-c184f4d7.mjs.map → index-59880344.mjs.map} +1 -1
  105. package/dist/_chunks/{index-9c88e73f.js → index-5c19f439.js} +5 -5
  106. package/dist/_chunks/{index-9c88e73f.js.map → index-5c19f439.js.map} +1 -1
  107. package/dist/_chunks/{index-b593ff2a.mjs → index-610889c4.mjs} +4 -4
  108. package/dist/_chunks/{index-b593ff2a.mjs.map → index-610889c4.mjs.map} +1 -1
  109. package/dist/_chunks/{index-05001647.js → index-628c5937.js} +8 -8
  110. package/dist/_chunks/{index-05001647.js.map → index-628c5937.js.map} +1 -1
  111. package/dist/_chunks/{index-2ed87ac8.js → index-64a156de.js} +3 -3
  112. package/dist/_chunks/{index-2ed87ac8.js.map → index-64a156de.js.map} +1 -1
  113. package/dist/_chunks/{index-1bf08614.mjs → index-67a35378.mjs} +3 -3
  114. package/dist/_chunks/{index-1bf08614.mjs.map → index-67a35378.mjs.map} +1 -1
  115. package/dist/_chunks/{index-3fb94612.js → index-6b1148f6.js} +4 -4
  116. package/dist/_chunks/{index-3fb94612.js.map → index-6b1148f6.js.map} +1 -1
  117. package/dist/_chunks/{index-0c5f6415.js → index-6db2b431.js} +5 -5
  118. package/dist/_chunks/{index-0c5f6415.js.map → index-6db2b431.js.map} +1 -1
  119. package/dist/_chunks/{index-dff777b7.js → index-6e44aef9.js} +3 -3
  120. package/dist/_chunks/{index-dff777b7.js.map → index-6e44aef9.js.map} +1 -1
  121. package/dist/_chunks/{index-a684490c.mjs → index-70189e76.mjs} +3 -3
  122. package/dist/_chunks/{index-a684490c.mjs.map → index-70189e76.mjs.map} +1 -1
  123. package/dist/_chunks/{index-7028ad70.js → index-86172b2d.js} +4 -4
  124. package/dist/_chunks/{index-7028ad70.js.map → index-86172b2d.js.map} +1 -1
  125. package/dist/_chunks/{index-09752dfe.js → index-898ba1c6.js} +3 -3
  126. package/dist/_chunks/{index-09752dfe.js.map → index-898ba1c6.js.map} +1 -1
  127. package/dist/_chunks/{index-c40ee26a.mjs → index-8bca9e4c.mjs} +4 -4
  128. package/dist/_chunks/{index-c40ee26a.mjs.map → index-8bca9e4c.mjs.map} +1 -1
  129. package/dist/_chunks/{index-1eaab33f.js → index-8cafda81.js} +4 -4
  130. package/dist/_chunks/{index-1eaab33f.js.map → index-8cafda81.js.map} +1 -1
  131. package/dist/_chunks/{index-d5711ebb.js → index-9195720c.js} +5 -5
  132. package/dist/_chunks/{index-d5711ebb.js.map → index-9195720c.js.map} +1 -1
  133. package/dist/_chunks/{index-eea1e084.mjs → index-91ef29b3.mjs} +3 -3
  134. package/dist/_chunks/{index-eea1e084.mjs.map → index-91ef29b3.mjs.map} +1 -1
  135. package/dist/_chunks/{index-782c0685.mjs → index-994d2c5d.mjs} +2 -2
  136. package/dist/_chunks/{index-782c0685.mjs.map → index-994d2c5d.mjs.map} +1 -1
  137. package/dist/_chunks/{index-7a956856.js → index-9deb8ccb.js} +4 -4
  138. package/dist/_chunks/{index-7a956856.js.map → index-9deb8ccb.js.map} +1 -1
  139. package/dist/_chunks/{index-cd2af4a0.mjs → index-9eb4c34d.mjs} +5 -5
  140. package/dist/_chunks/{index-cd2af4a0.mjs.map → index-9eb4c34d.mjs.map} +1 -1
  141. package/dist/_chunks/{index-de154c58.mjs → index-9f8605e5.mjs} +3 -3
  142. package/dist/_chunks/{index-de154c58.mjs.map → index-9f8605e5.mjs.map} +1 -1
  143. package/dist/_chunks/{index-e013fe86.js → index-a0af8beb.js} +3 -3
  144. package/dist/_chunks/{index-e013fe86.js.map → index-a0af8beb.js.map} +1 -1
  145. package/dist/_chunks/{index-a220f0b2.mjs → index-aceb13c1.mjs} +4 -4
  146. package/dist/_chunks/{index-a220f0b2.mjs.map → index-aceb13c1.mjs.map} +1 -1
  147. package/dist/_chunks/{index-82f22c48.js → index-aee95cda.js} +3 -3
  148. package/dist/_chunks/{index-82f22c48.js.map → index-aee95cda.js.map} +1 -1
  149. package/dist/_chunks/{index-55a46be8.mjs → index-b17c7874.mjs} +3 -3
  150. package/dist/_chunks/{index-55a46be8.mjs.map → index-b17c7874.mjs.map} +1 -1
  151. package/dist/_chunks/{index-234ed67d.mjs → index-bb22dbbc.mjs} +3 -3
  152. package/dist/_chunks/{index-234ed67d.mjs.map → index-bb22dbbc.mjs.map} +1 -1
  153. package/dist/_chunks/{index-b6c497e5.js → index-be02d51c.js} +20 -20
  154. package/dist/_chunks/{index-b6c497e5.js.map → index-be02d51c.js.map} +1 -1
  155. package/dist/_chunks/{index-cdc1221a.js → index-be8eb534.js} +3 -3
  156. package/dist/_chunks/{index-cdc1221a.js.map → index-be8eb534.js.map} +1 -1
  157. package/dist/_chunks/{index-05f82f02.js → index-c36d6802.js} +3 -3
  158. package/dist/_chunks/{index-05f82f02.js.map → index-c36d6802.js.map} +1 -1
  159. package/dist/_chunks/{index-4343f97f.mjs → index-c45d5f19.mjs} +4 -4
  160. package/dist/_chunks/{index-4343f97f.mjs.map → index-c45d5f19.mjs.map} +1 -1
  161. package/dist/_chunks/{index-8d895e56.mjs → index-c59a117e.mjs} +3 -3
  162. package/dist/_chunks/{index-8d895e56.mjs.map → index-c59a117e.mjs.map} +1 -1
  163. package/dist/_chunks/{index-853bad50.mjs → index-c9e68296.mjs} +5 -5
  164. package/dist/_chunks/{index-853bad50.mjs.map → index-c9e68296.mjs.map} +1 -1
  165. package/dist/_chunks/{index-4e8af716.js → index-cd6b99a8.js} +5 -5
  166. package/dist/_chunks/{index-4e8af716.js.map → index-cd6b99a8.js.map} +1 -1
  167. package/dist/_chunks/{index-326b9481.mjs → index-ce41b6f0.mjs} +4 -4
  168. package/dist/_chunks/{index-326b9481.mjs.map → index-ce41b6f0.mjs.map} +1 -1
  169. package/dist/_chunks/{index-8acbbabe.js → index-d3dea80c.js} +6 -6
  170. package/dist/_chunks/{index-8acbbabe.js.map → index-d3dea80c.js.map} +1 -1
  171. package/dist/_chunks/{index-706ae836.js → index-d63b0b91.js} +4 -4
  172. package/dist/_chunks/{index-706ae836.js.map → index-d63b0b91.js.map} +1 -1
  173. package/dist/_chunks/{index-77124563.mjs → index-dc4938ad.mjs} +5 -5
  174. package/dist/_chunks/{index-77124563.mjs.map → index-dc4938ad.mjs.map} +1 -1
  175. package/dist/_chunks/{index-c075b5a1.mjs → index-dc89c18c.mjs} +335 -277
  176. package/dist/_chunks/index-dc89c18c.mjs.map +1 -0
  177. package/dist/_chunks/{index-f0f40db4.mjs → index-ea43b165.mjs} +5 -5
  178. package/dist/_chunks/{index-f0f40db4.mjs.map → index-ea43b165.mjs.map} +1 -1
  179. package/dist/_chunks/{index-55d6d65a.js → index-eb59cabf.js} +3 -3
  180. package/dist/_chunks/{index-55d6d65a.js.map → index-eb59cabf.js.map} +1 -1
  181. package/dist/_chunks/{index-d9f9de85.mjs → index-fae4b277.mjs} +4 -4
  182. package/dist/_chunks/{index-d9f9de85.mjs.map → index-fae4b277.mjs.map} +1 -1
  183. package/dist/_chunks/{index-96af3a65.js → index-ff9d30ef.js} +5 -5
  184. package/dist/_chunks/{index-96af3a65.js.map → index-ff9d30ef.js.map} +1 -1
  185. package/dist/_chunks/{schema-82ad2cb1.mjs → schema-549f8236.mjs} +2 -2
  186. package/dist/_chunks/{schema-82ad2cb1.mjs.map → schema-549f8236.mjs.map} +1 -1
  187. package/dist/_chunks/{schema-8bb5b01b.js → schema-e3080441.js} +2 -2
  188. package/dist/_chunks/{schema-8bb5b01b.js.map → schema-e3080441.js.map} +1 -1
  189. package/dist/_chunks/{validateWorkflow-23b1ee38.mjs → validateWorkflow-7bff41ac.mjs} +3 -3
  190. package/dist/_chunks/{validateWorkflow-23b1ee38.mjs.map → validateWorkflow-7bff41ac.mjs.map} +1 -1
  191. package/dist/_chunks/{validateWorkflow-f5761727.js → validateWorkflow-a7311af1.js} +3 -3
  192. package/dist/_chunks/{validateWorkflow-f5761727.js.map → validateWorkflow-a7311af1.js.map} +1 -1
  193. package/dist/admin/index.js +1 -1
  194. package/dist/admin/index.mjs +1 -1
  195. package/dist/cli.js +12 -12
  196. package/dist/cli.mjs +12 -12
  197. package/package.json +12 -12
  198. package/dist/_chunks/index-62b7bdbe.js.map +0 -1
  199. package/dist/_chunks/index-c075b5a1.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"constants-86882708.js","sources":["../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/constants.js"],"sourcesContent":["import getTrad from '../../../../../../../admin/src/content-manager/utils/getTrad';\nimport {\n ASSIGNEE_ATTRIBUTE_NAME,\n STAGE_ATTRIBUTE_NAME,\n} from '../../EditView/InformationBox/constants';\n\nexport const REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n key: `__${STAGE_ATTRIBUTE_NAME}_temp_key__`,\n name: STAGE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n },\n metadatas: {\n // formatMessage() will be applied when the column is rendered\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n schema: {\n type: 'string',\n },\n },\n },\n },\n {\n key: `__${ASSIGNEE_ATTRIBUTE_NAME}_temp_key__`,\n name: ASSIGNEE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n },\n metadatas: {\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee`),\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n schema: {\n type: 'string',\n },\n },\n },\n },\n];\n"],"names":["STAGE_ATTRIBUTE_NAME","getTrad","ASSIGNEE_ATTRIBUTE_NAME"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,6BAA6B;AAAA,EACxC;AAAA,IACE,KAAK,KAAKA,UAAoB,oBAAA;AAAA,IAC9B,MAAMA,UAAA;AAAA,IACN,aAAa;AAAA,MACX,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA;AAAA,MAET,OAAO;AAAA,QACL,IAAIC,OAAAA,QAAQ,yDAAyD;AAAA,QACrE,gBAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,WAAW;AAAA,QACT,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,KAAK,KAAKC,UAAuB,uBAAA;AAAA,IACjC,MAAMA,UAAA;AAAA,IACN,aAAa;AAAA,MACX,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAID,OAAAA,QAAQ,4DAA4D;AAAA,QACxE,gBAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,WAAW;AAAA,QACT,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;"}
1
+ {"version":3,"file":"constants-88f9d2a0.js","sources":["../../ee/admin/src/content-manager/pages/ListView/ReviewWorkflowsColumn/constants.js"],"sourcesContent":["import getTrad from '../../../../../../../admin/src/content-manager/utils/getTrad';\nimport {\n ASSIGNEE_ATTRIBUTE_NAME,\n STAGE_ATTRIBUTE_NAME,\n} from '../../EditView/InformationBox/constants';\n\nexport const REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n key: `__${STAGE_ATTRIBUTE_NAME}_temp_key__`,\n name: STAGE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n },\n metadatas: {\n // formatMessage() will be applied when the column is rendered\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n schema: {\n type: 'string',\n },\n },\n },\n },\n {\n key: `__${ASSIGNEE_ATTRIBUTE_NAME}_temp_key__`,\n name: ASSIGNEE_ATTRIBUTE_NAME,\n fieldSchema: {\n type: 'relation',\n },\n metadatas: {\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee`),\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n schema: {\n type: 'string',\n },\n },\n },\n },\n];\n"],"names":["STAGE_ATTRIBUTE_NAME","getTrad","ASSIGNEE_ATTRIBUTE_NAME"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,6BAA6B;AAAA,EACxC;AAAA,IACE,KAAK,KAAKA,UAAoB,oBAAA;AAAA,IAC9B,MAAMA,UAAA;AAAA,IACN,aAAa;AAAA,MACX,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA;AAAA,MAET,OAAO;AAAA,QACL,IAAIC,OAAAA,QAAQ,yDAAyD;AAAA,QACrE,gBAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,WAAW;AAAA,QACT,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,KAAK,KAAKC,UAAuB,uBAAA;AAAA,IACjC,MAAMA,UAAA;AAAA,IACN,aAAa;AAAA,MACX,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,MACT,OAAO;AAAA,QACL,IAAID,OAAAA,QAAQ,4DAA4D;AAAA,QACxE,gBAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,WAAW;AAAA,QACT,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;"}
@@ -4,7 +4,7 @@ require("lodash/cloneDeep");
4
4
  require("lodash/get");
5
5
  require("lodash/omit");
6
6
  require("lodash/isNaN");
7
- const schema = require("./schema-8bb5b01b.js");
7
+ const schema = require("./schema-e3080441.js");
8
8
  require("lodash/merge");
9
9
  require("lodash/set");
10
10
  require("@strapi/helper-plugin");
@@ -12,14 +12,14 @@ const jsxRuntime = require("react/jsx-runtime");
12
12
  const designSystem = require("@strapi/design-system");
13
13
  const PropTypes = require("prop-types");
14
14
  const reactIntl = require("react-intl");
15
- const index = require("./index-05001647.js");
15
+ const index = require("./index-628c5937.js");
16
16
  const useAdminUsers = require("./useAdminUsers-05d6b26a.js");
17
17
  const useReviewWorkflows = require("./useReviewWorkflows-799e0305.js");
18
18
  const colors = require("./colors-c24a54f0.js");
19
19
  require("react");
20
20
  require("react-dnd");
21
21
  require("@reduxjs/toolkit");
22
- require("./index-7c0dcf2b.js");
22
+ require("./index-133699a3.js");
23
23
  require("react-dom/client");
24
24
  require("invariant");
25
25
  require("lodash/isFunction");
@@ -43,7 +43,7 @@ require("lodash/isEmpty");
43
43
  require("lodash/toNumber");
44
44
  require("lodash/sortBy");
45
45
  require("./DragLayer-f07eee6c.js");
46
- require("./AuthenticatedApp-4b160235.js");
46
+ require("./AuthenticatedApp-31e6418d.js");
47
47
  require("semver/functions/lt");
48
48
  require("semver/functions/valid");
49
49
  require("react-dnd-html5-backend");
@@ -226,4 +226,4 @@ const REVIEW_WORKFLOW_FILTERS = [
226
226
  }
227
227
  ];
228
228
  exports.REVIEW_WORKFLOW_FILTERS = REVIEW_WORKFLOW_FILTERS;
229
- //# sourceMappingURL=constants-cd5a4e71.js.map
229
+ //# sourceMappingURL=constants-ac7899ed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-cd5a4e71.js","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":["useIntl","useAdminUsers","jsx","Combobox","ComboboxOption","getDisplayName","PropTypes","useReviewWorkflows","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","getTrad"],"mappings":"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"}
1
+ {"version":3,"file":"constants-ac7899ed.js","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":["useIntl","useAdminUsers","jsx","Combobox","ComboboxOption","getDisplayName","PropTypes","useReviewWorkflows","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","getTrad"],"mappings":"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"}
@@ -2,7 +2,7 @@ import "lodash/cloneDeep";
2
2
  import "lodash/get";
3
3
  import "lodash/omit";
4
4
  import "lodash/isNaN";
5
- import { g as getTrad } from "./schema-82ad2cb1.mjs";
5
+ import { g as getTrad } from "./schema-549f8236.mjs";
6
6
  import "lodash/merge";
7
7
  import "lodash/set";
8
8
  import "@strapi/helper-plugin";
@@ -10,14 +10,14 @@ import { jsx, jsxs } from "react/jsx-runtime";
10
10
  import { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from "@strapi/design-system";
11
11
  import PropTypes from "prop-types";
12
12
  import { useIntl } from "react-intl";
13
- import { g as getDisplayName } from "./index-d33c8d9f.mjs";
13
+ import { g as getDisplayName } from "./index-1a3e997a.mjs";
14
14
  import { u as useAdminUsers } from "./useAdminUsers-09f86a58.mjs";
15
15
  import { u as useReviewWorkflows } from "./useReviewWorkflows-9e6b8986.mjs";
16
16
  import { g as getStageColorByHex } from "./colors-e7489dd4.mjs";
17
17
  import "react";
18
18
  import "react-dnd";
19
19
  import "@reduxjs/toolkit";
20
- import "./index-326b9481.mjs";
20
+ import "./index-ce41b6f0.mjs";
21
21
  import "react-dom/client";
22
22
  import "invariant";
23
23
  import "lodash/isFunction";
@@ -41,7 +41,7 @@ import "lodash/isEmpty";
41
41
  import "lodash/toNumber";
42
42
  import "lodash/sortBy";
43
43
  import "./DragLayer-bff96835.mjs";
44
- import "./AuthenticatedApp-fa931d1d.mjs";
44
+ import "./AuthenticatedApp-52d37e32.mjs";
45
45
  import "semver/functions/lt";
46
46
  import "semver/functions/valid";
47
47
  import "react-dnd-html5-backend";
@@ -224,4 +224,4 @@ const REVIEW_WORKFLOW_FILTERS = [
224
224
  export {
225
225
  REVIEW_WORKFLOW_FILTERS
226
226
  };
227
- //# sourceMappingURL=constants-ffa23daa.mjs.map
227
+ //# sourceMappingURL=constants-e2c67ec8.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-ffa23daa.mjs","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants-e2c67ec8.mjs","sources":["../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js","../../ee/admin/src/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js"],"sourcesContent":["import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDisplayName } from '../../../../../../../../admin/src/content-manager/utils/getDisplayName';\nimport { useAdminUsers } from '../../../../../../../../admin/src/hooks/useAdminUsers';\n\nexport const AssigneeFilter = ({ value, onChange }) => {\n const { formatMessage } = useIntl();\n const { users, isLoading } = useAdminUsers();\n\n return (\n <Combobox\n value={value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select an user to filter',\n })}\n onChange={onChange}\n loading={isLoading}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nAssigneeFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nAssigneeFilter.defaultProps = {\n value: '',\n};\n","import * as React from 'react';\n\nimport { Flex, Loader, SingleSelect, SingleSelectOption, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { useReviewWorkflows } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';\nimport { getStageColorByHex } from '../../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';\n\nexport const StageFilter = ({ value, onChange, uid }) => {\n const { formatMessage } = useIntl();\n const {\n workflows: [workflow],\n isLoading,\n } = useReviewWorkflows({ filters: { contentTypes: uid } });\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.reviewWorkflows.label',\n defaultMessage: 'Search and select an workflow stage to filter',\n })}\n value={value}\n onChange={onChange}\n loading={isLoading}\n // eslint-disable-next-line react/no-unstable-nested-components\n customizeContent={() => (\n <Flex as=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis>\n {value}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} /> : null}\n </Flex>\n )}\n >\n {(workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color);\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : 'transparent'}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nStageFilter.defaultProps = {\n value: '',\n};\n\nStageFilter.propTypes = {\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n","import { getTrad } from '../../../../../../../../admin/src/content-manager/utils';\n\nimport { AssigneeFilter } from './AssigneeFilter';\nimport { StageFilter } from './StageFilter';\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'name',\n\n schema: {\n type: 'string',\n },\n },\n },\n\n metadatas: {\n customInput: StageFilter,\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.stage`),\n defaultMessage: 'Review stage',\n },\n },\n\n name: 'strapi_stage',\n },\n\n {\n fieldSchema: {\n type: 'relation',\n mainField: {\n name: 'id',\n\n schema: {\n type: 'int',\n },\n },\n },\n\n metadatas: {\n customInput: AssigneeFilter,\n\n customOperators: [\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n intlLabel: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n\n label: {\n id: getTrad(`containers.ListPage.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: 'Assignee',\n },\n },\n\n name: 'strapi_assignee',\n },\n];\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index-62b7bdbe.js");
3
+ const index = require("./index-1a74fa41.js");
4
+ require("@strapi/strapi/dist/utils/ee");
4
5
  require("@strapi/typescript-utils");
5
6
  require("node:os");
6
7
  require("node:fs/promises");
@@ -10,6 +11,16 @@ require("semver");
10
11
  require("resolve-from");
11
12
  require("execa");
12
13
  require("read-pkg-up");
14
+ require("perf_hooks");
15
+ require("browserslist");
16
+ require("@strapi/strapi");
17
+ require("@strapi/utils");
18
+ require("dotenv");
19
+ require("esbuild-register/dist/node");
20
+ require("node:fs");
21
+ require("lodash/camelCase");
22
+ require("boxen");
23
+ require("chalk");
13
24
  require("outdent");
14
25
  require("prettier");
15
26
  require("react");
@@ -26,17 +37,6 @@ require("node:crypto");
26
37
  require("@pmmmwh/react-refresh-webpack-plugin");
27
38
  require("path");
28
39
  require("find-root");
29
- require("esbuild-register/dist/node");
30
- require("boxen");
31
- require("chalk");
32
- require("browserslist");
33
- require("@strapi/strapi");
34
- require("@strapi/utils");
35
- require("dotenv");
36
- require("node:fs");
37
- require("lodash/camelCase");
38
- require("@strapi/strapi/dist/utils/ee");
39
- require("perf_hooks");
40
40
  require("chokidar");
41
41
  require("node:cluster");
42
42
  require("node:util");
@@ -58,4 +58,4 @@ const develop = async (options) => {
58
58
  }
59
59
  };
60
60
  exports.develop = develop;
61
- //# sourceMappingURL=develop-9765d7ba.js.map
61
+ //# sourceMappingURL=develop-4d25a6e0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"develop-9765d7ba.js","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop","handleUnexpectedError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,cAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZC,UAAA,sBAAsB,GAAG;AAAA,EAC3B;AACF;;"}
1
+ {"version":3,"file":"develop-4d25a6e0.js","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop","handleUnexpectedError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,cAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZC,UAAA,sBAAsB,GAAG;AAAA,EAC3B;AACF;;"}
@@ -1,4 +1,5 @@
1
- import { d as develop$1, h as handleUnexpectedError } from "./index-c075b5a1.mjs";
1
+ import { d as develop$1, h as handleUnexpectedError } from "./index-dc89c18c.mjs";
2
+ import "@strapi/strapi/dist/utils/ee";
2
3
  import "@strapi/typescript-utils";
3
4
  import "node:os";
4
5
  import "node:fs/promises";
@@ -8,6 +9,16 @@ import "semver";
8
9
  import "resolve-from";
9
10
  import "execa";
10
11
  import "read-pkg-up";
12
+ import "perf_hooks";
13
+ import "browserslist";
14
+ import "@strapi/strapi";
15
+ import "@strapi/utils";
16
+ import "dotenv";
17
+ import "esbuild-register/dist/node";
18
+ import "node:fs";
19
+ import "lodash/camelCase";
20
+ import "boxen";
21
+ import "chalk";
11
22
  import "outdent";
12
23
  import "prettier";
13
24
  import "react";
@@ -24,17 +35,6 @@ import "node:crypto";
24
35
  import "@pmmmwh/react-refresh-webpack-plugin";
25
36
  import "path";
26
37
  import "find-root";
27
- import "esbuild-register/dist/node";
28
- import "boxen";
29
- import "chalk";
30
- import "browserslist";
31
- import "@strapi/strapi";
32
- import "@strapi/utils";
33
- import "dotenv";
34
- import "node:fs";
35
- import "lodash/camelCase";
36
- import "@strapi/strapi/dist/utils/ee";
37
- import "perf_hooks";
38
38
  import "chokidar";
39
39
  import "node:cluster";
40
40
  import "node:util";
@@ -58,4 +58,4 @@ const develop = async (options) => {
58
58
  export {
59
59
  develop
60
60
  };
61
- //# sourceMappingURL=develop-3c9f7452.mjs.map
61
+ //# sourceMappingURL=develop-a46fed01.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"develop-3c9f7452.mjs","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,UAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZ,0BAAsB,GAAG;AAAA,EAC3B;AACF;"}
1
+ {"version":3,"file":"develop-a46fed01.mjs","sources":["../../_internal/cli/commands/develop.ts"],"sourcesContent":["import { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ninterface DevelopCLIOptions extends DevelopOptions {\n /**\n * @deprecated\n */\n browser?: boolean;\n}\n\nconst develop = async (options: DevelopCLIOptions) => {\n try {\n if (typeof options.browser !== 'undefined') {\n options.logger.warn(\n \"[@strapi/strapi]: The browser argument, this is now deprecated. Use '--open' instead.\"\n );\n }\n\n await nodeDevelop({\n ...options,\n open: options.browser ?? options.open,\n });\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\nexport { develop };\nexport type { DevelopCLIOptions };\n"],"names":["nodeDevelop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUM,MAAA,UAAU,OAAO,YAA+B;AAChD,MAAA;AACE,QAAA,OAAO,QAAQ,YAAY,aAAa;AAC1C,cAAQ,OAAO;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAMA,UAAY;AAAA,MAChB,GAAG;AAAA,MACH,MAAM,QAAQ,WAAW,QAAQ;AAAA,IAAA,CAClC;AAAA,WACM,KAAK;AACZ,0BAAsB,GAAG;AAAA,EAC3B;AACF;"}
@@ -8,7 +8,7 @@ const isEqual = require("lodash/isEqual");
8
8
  const reactIntl = require("react-intl");
9
9
  const reactRedux = require("react-redux");
10
10
  const useAdminRoles = require("./useAdminRoles-68d5d608.js");
11
- const AuthenticatedApp = require("./AuthenticatedApp-4b160235.js");
11
+ const AuthenticatedApp = require("./AuthenticatedApp-31e6418d.js");
12
12
  const React = require("react");
13
13
  const produce = require("immer");
14
14
  const omit = require("lodash/omit");
@@ -19,7 +19,7 @@ const formatAPIErrors = require("./formatAPIErrors-b599cf27.js");
19
19
  require("react-query");
20
20
  require("semver/functions/lt");
21
21
  require("semver/functions/valid");
22
- require("./index-7c0dcf2b.js");
22
+ require("./index-133699a3.js");
23
23
  require("react-dom/client");
24
24
  require("invariant");
25
25
  require("lodash/isFunction");
@@ -415,4 +415,4 @@ const ProtectedSSO = () => {
415
415
  };
416
416
  exports.SingleSignOn = SingleSignOn;
417
417
  exports.default = ProtectedSSO;
418
- //# sourceMappingURL=index-f18d27fd.js.map
418
+ //# sourceMappingURL=index-02064a74.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-f18d27fd.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/hooks/useSettingsForm.ts","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/utils/schema.js","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport {\n getYupInnerErrors,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport produce from 'immer';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { ValidationError } from 'yup';\n\nimport { formatAPIErrors } from '../../../../../../../../admin/src/utils/formatAPIErrors';\n\ninterface GetDataSucceedAction {\n type: 'GET_DATA_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n fieldsToPick: string[];\n}\n\ninterface OnCancelAction {\n type: 'ON_CANCEL';\n}\n\ninterface OnChangeAction {\n type: 'ON_CHANGE';\n keys: string;\n value: unknown;\n}\n\ninterface OnSubmitAction {\n type: 'ON_SUBMIT';\n}\n\ninterface OnSubmitSucceedAction {\n type: 'ON_SUBMIT_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n}\n\ninterface SetErrorsAction {\n type: 'SET_ERRORS';\n errors: Record<string, unknown>;\n}\n\ninterface InitialState {\n fieldsToPick: string[];\n formErrors?: Record<string, unknown>;\n initialData: Record<string, unknown>;\n isLoading: boolean;\n modifiedData: Record<string, unknown>;\n showHeaderButtonLoader: boolean;\n showHeaderLoader: boolean;\n}\n\nconst initialState: InitialState = {\n fieldsToPick: [],\n formErrors: {},\n initialData: {},\n isLoading: true,\n modifiedData: {},\n showHeaderButtonLoader: false,\n showHeaderLoader: true,\n};\n\ntype Action =\n | GetDataSucceedAction\n | OnCancelAction\n | OnChangeAction\n | OnSubmitAction\n | OnSubmitSucceedAction\n | SetErrorsAction;\n\nconst reducer = (state: typeof initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n draftState.isLoading = false;\n draftState.showHeaderLoader = false;\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n break;\n }\n case 'ON_CANCEL': {\n draftState.modifiedData = state.initialData;\n draftState.formErrors = {};\n break;\n }\n case 'ON_CHANGE': {\n if (action.keys.includes('username') && !action.value) {\n set(draftState.modifiedData, action.keys.split('.'), null);\n } else {\n set(draftState.modifiedData, action.keys.split('.'), action.value);\n }\n break;\n }\n case 'ON_SUBMIT': {\n draftState.showHeaderButtonLoader = true;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n draftState.showHeaderButtonLoader = false;\n break;\n }\n case 'SET_ERRORS': {\n draftState.formErrors = action.errors;\n draftState.showHeaderButtonLoader = false;\n break;\n }\n default:\n return draftState;\n }\n });\n\nconst checkFormValidity = async (data: Record<string, unknown>, schema: any) => {\n let errors = null;\n\n try {\n await schema.validate(data, { abortEarly: false });\n } catch (err) {\n if (err instanceof ValidationError) {\n errors = getYupInnerErrors(err);\n }\n }\n\n return errors;\n};\n\n/**\n * TODO: refactor this, it's confusing and hard to read.\n * It's also only used in `Settings/pages/SingleSignOn` so it can\n * probably be deleted and everything written there...\n */\nexport const useSettingsForm = (\n schema: Record<string, unknown>,\n cbSuccess: (data: any) => void,\n fieldsToPick: string[]\n) => {\n const [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n ] = React.useReducer(reducer, { ...initialState, fieldsToPick });\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n\n const { get, put } = useFetchClient();\n\n React.useEffect(() => {\n const getData = async () => {\n try {\n const {\n data: { data },\n } = await get('/admin/providers/options');\n\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n fieldsToPick,\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n }\n };\n\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCancel = () => {\n dispatch({\n type: 'ON_CANCEL',\n });\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: string; value?: unknown };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n const setField = (fieldName: string, value: unknown) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: fieldName,\n value,\n });\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n const errors = await checkFormValidity(modifiedData, schema);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: errors || {},\n });\n\n if (!errors) {\n try {\n // @ts-expect-error - context assertation\n lockApp();\n\n dispatch({\n type: 'ON_SUBMIT',\n });\n const cleanedData = omit(modifiedData, ['confirmPassword', 'registrationToken']);\n\n if (cleanedData.roles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.roles = cleanedData.roles.map((role) => role.id);\n }\n if (cleanedData.ssoLockedRoles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.ssoLockedRoles = [...new Set(cleanedData.ssoLockedRoles)];\n }\n\n const {\n data: { data },\n } = await put('/admin/providers/options', cleanedData);\n\n cbSuccess(data);\n\n dispatch({\n type: 'ON_SUBMIT_SUCCEEDED',\n data,\n });\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n // @ts-expect-error hooks needs refactoring anyways\n const data = err?.response?.payload ?? { data: {} };\n\n if (!!data?.data && typeof data.data === 'string') {\n toggleNotification({\n type: 'warning',\n message: data.data,\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: data.message,\n });\n }\n\n const apiErrors = formatAPIErrors(data);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: apiErrors,\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n }\n };\n\n return [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n { handleCancel, handleChange, handleSubmit, setField },\n ] as const;\n};\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport default schema;\n","import * as React from 'react';\n\nimport {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useAdminRoles } from '../../../../../../../admin/src/hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../../../admin/src/selectors';\n\nimport { useSettingsForm } from './hooks/useSettingsForm';\nimport schema from './utils/schema';\n\nexport const SingleSignOn = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings.sso,\n readRoles: permissions.settings.roles.read,\n });\n\n const [\n { formErrors, initialData, isLoading: isLoadingForm, modifiedData, showHeaderButtonLoader },\n ,\n { handleChange, handleSubmit },\n ] = useSettingsForm(schema, () => {}, ['autoRegister', 'defaultRole', 'ssoLockedRoles']);\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n enabled: canReadRoles,\n });\n\n const isLoading = isLoadingPermissions || isLoadingRoles || isLoadingForm;\n // TODO: focus() first error field, but it looks like that requires refactoring from useSettingsForm to Formik\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main tabIndex={-1}>\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Button\n data-testid=\"save-button\"\n disabled={isEqual(initialData, modifiedData)}\n loading={showHeaderButtonLoader}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({ id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isLoading ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} m={6} s={12}>\n <ToggleInput\n aria-label=\"autoRegister\"\n data-testid=\"autoRegister\"\n disabled={!canUpdate}\n checked={modifiedData.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoRegister', value: e.target.checked },\n });\n }}\n />\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n formErrors.defaultRole\n ? formatMessage({\n id: formErrors.defaultRole.id,\n defaultMessage: formErrors.defaultRole.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) => {\n handleChange({ target: { name: 'defaultRole', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={modifiedData.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n formErrors.ssoLockedRoles\n ? formatMessage({\n id: formErrors.ssoLockedRoles.id,\n defaultMessage: formErrors.ssoLockedRoles.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) => {\n handleChange({ target: { name: 'ssoLockedRoles', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => {\n handleChange({ target: { name: 'ssoLockedRoles' } });\n }}\n value={modifiedData.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </form>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedSSO = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.sso.main}>\n <SingleSignOn />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedSSO;\n"],"names":["produce","pick","set","schema","ValidationError","getYupInnerErrors","React","useNotification","useOverlayBlocker","useFetchClient","omit","formatAPIErrors","yup","translatedErrors","useFocusWhenNavigate","useIntl","useSelector","selectAdminPermissions","useRBAC","useAdminRoles","Layout","jsx","SettingsPageTitle","Main","jsxs","HeaderLayout","Button","isEqual","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
1
+ {"version":3,"file":"index-02064a74.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/hooks/useSettingsForm.ts","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/utils/schema.js","../../ee/admin/src/pages/SettingsPage/pages/SingleSignOn/index.js"],"sourcesContent":["import * as React from 'react';\n\nimport {\n getYupInnerErrors,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport produce from 'immer';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { ValidationError } from 'yup';\n\nimport { formatAPIErrors } from '../../../../../../../../admin/src/utils/formatAPIErrors';\n\ninterface GetDataSucceedAction {\n type: 'GET_DATA_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n fieldsToPick: string[];\n}\n\ninterface OnCancelAction {\n type: 'ON_CANCEL';\n}\n\ninterface OnChangeAction {\n type: 'ON_CHANGE';\n keys: string;\n value: unknown;\n}\n\ninterface OnSubmitAction {\n type: 'ON_SUBMIT';\n}\n\ninterface OnSubmitSucceedAction {\n type: 'ON_SUBMIT_SUCCEEDED';\n data: {\n [key: string]: unknown;\n };\n}\n\ninterface SetErrorsAction {\n type: 'SET_ERRORS';\n errors: Record<string, unknown>;\n}\n\ninterface InitialState {\n fieldsToPick: string[];\n formErrors?: Record<string, unknown>;\n initialData: Record<string, unknown>;\n isLoading: boolean;\n modifiedData: Record<string, unknown>;\n showHeaderButtonLoader: boolean;\n showHeaderLoader: boolean;\n}\n\nconst initialState: InitialState = {\n fieldsToPick: [],\n formErrors: {},\n initialData: {},\n isLoading: true,\n modifiedData: {},\n showHeaderButtonLoader: false,\n showHeaderLoader: true,\n};\n\ntype Action =\n | GetDataSucceedAction\n | OnCancelAction\n | OnChangeAction\n | OnSubmitAction\n | OnSubmitSucceedAction\n | SetErrorsAction;\n\nconst reducer = (state: typeof initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'GET_DATA_SUCCEEDED': {\n draftState.isLoading = false;\n draftState.showHeaderLoader = false;\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n break;\n }\n case 'ON_CANCEL': {\n draftState.modifiedData = state.initialData;\n draftState.formErrors = {};\n break;\n }\n case 'ON_CHANGE': {\n if (action.keys.includes('username') && !action.value) {\n set(draftState.modifiedData, action.keys.split('.'), null);\n } else {\n set(draftState.modifiedData, action.keys.split('.'), action.value);\n }\n break;\n }\n case 'ON_SUBMIT': {\n draftState.showHeaderButtonLoader = true;\n break;\n }\n case 'ON_SUBMIT_SUCCEEDED': {\n draftState.initialData = pick(action.data, state.fieldsToPick);\n draftState.modifiedData = pick(action.data, state.fieldsToPick);\n draftState.showHeaderButtonLoader = false;\n break;\n }\n case 'SET_ERRORS': {\n draftState.formErrors = action.errors;\n draftState.showHeaderButtonLoader = false;\n break;\n }\n default:\n return draftState;\n }\n });\n\nconst checkFormValidity = async (data: Record<string, unknown>, schema: any) => {\n let errors = null;\n\n try {\n await schema.validate(data, { abortEarly: false });\n } catch (err) {\n if (err instanceof ValidationError) {\n errors = getYupInnerErrors(err);\n }\n }\n\n return errors;\n};\n\n/**\n * TODO: refactor this, it's confusing and hard to read.\n * It's also only used in `Settings/pages/SingleSignOn` so it can\n * probably be deleted and everything written there...\n */\nexport const useSettingsForm = (\n schema: Record<string, unknown>,\n cbSuccess: (data: any) => void,\n fieldsToPick: string[]\n) => {\n const [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n ] = React.useReducer(reducer, { ...initialState, fieldsToPick });\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n\n const { get, put } = useFetchClient();\n\n React.useEffect(() => {\n const getData = async () => {\n try {\n const {\n data: { data },\n } = await get('/admin/providers/options');\n\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n fieldsToPick,\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error' },\n });\n }\n };\n\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCancel = () => {\n dispatch({\n type: 'ON_CANCEL',\n });\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: string; value?: unknown };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n const setField = (fieldName: string, value: unknown) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: fieldName,\n value,\n });\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n const errors = await checkFormValidity(modifiedData, schema);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: errors || {},\n });\n\n if (!errors) {\n try {\n // @ts-expect-error - context assertation\n lockApp();\n\n dispatch({\n type: 'ON_SUBMIT',\n });\n const cleanedData = omit(modifiedData, ['confirmPassword', 'registrationToken']);\n\n if (cleanedData.roles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.roles = cleanedData.roles.map((role) => role.id);\n }\n if (cleanedData.ssoLockedRoles) {\n // @ts-expect-error hooks needs refactoring anyways\n cleanedData.ssoLockedRoles = [...new Set(cleanedData.ssoLockedRoles)];\n }\n\n const {\n data: { data },\n } = await put('/admin/providers/options', cleanedData);\n\n cbSuccess(data);\n\n dispatch({\n type: 'ON_SUBMIT_SUCCEEDED',\n data,\n });\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n // @ts-expect-error hooks needs refactoring anyways\n const data = err?.response?.payload ?? { data: {} };\n\n if (!!data?.data && typeof data.data === 'string') {\n toggleNotification({\n type: 'warning',\n message: data.data,\n });\n } else {\n toggleNotification({\n type: 'warning',\n message: data.message,\n });\n }\n\n const apiErrors = formatAPIErrors(data);\n\n dispatch({\n type: 'SET_ERRORS',\n errors: apiErrors,\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n }\n };\n\n return [\n { formErrors, initialData, isLoading, modifiedData, showHeaderButtonLoader, showHeaderLoader },\n dispatch,\n { handleCancel, handleChange, handleSubmit, setField },\n ] as const;\n};\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport default schema;\n","import * as React from 'react';\n\nimport {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { useAdminRoles } from '../../../../../../../admin/src/hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../../../admin/src/selectors';\n\nimport { useSettingsForm } from './hooks/useSettingsForm';\nimport schema from './utils/schema';\n\nexport const SingleSignOn = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings.sso,\n readRoles: permissions.settings.roles.read,\n });\n\n const [\n { formErrors, initialData, isLoading: isLoadingForm, modifiedData, showHeaderButtonLoader },\n ,\n { handleChange, handleSubmit },\n ] = useSettingsForm(schema, () => {}, ['autoRegister', 'defaultRole', 'ssoLockedRoles']);\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n enabled: canReadRoles,\n });\n\n const isLoading = isLoadingPermissions || isLoadingRoles || isLoadingForm;\n // TODO: focus() first error field, but it looks like that requires refactoring from useSettingsForm to Formik\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main tabIndex={-1}>\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Button\n data-testid=\"save-button\"\n disabled={isEqual(initialData, modifiedData)}\n loading={showHeaderButtonLoader}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({ id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isLoading ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} m={6} s={12}>\n <ToggleInput\n aria-label=\"autoRegister\"\n data-testid=\"autoRegister\"\n disabled={!canUpdate}\n checked={modifiedData.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoRegister', value: e.target.checked },\n });\n }}\n />\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n formErrors.defaultRole\n ? formatMessage({\n id: formErrors.defaultRole.id,\n defaultMessage: formErrors.defaultRole.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) => {\n handleChange({ target: { name: 'defaultRole', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={modifiedData.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} m={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n formErrors.ssoLockedRoles\n ? formatMessage({\n id: formErrors.ssoLockedRoles.id,\n defaultMessage: formErrors.ssoLockedRoles.id,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) => {\n handleChange({ target: { name: 'ssoLockedRoles', value } });\n }}\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => {\n handleChange({ target: { name: 'ssoLockedRoles' } });\n }}\n value={modifiedData.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </form>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedSSO = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.sso.main}>\n <SingleSignOn />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedSSO;\n"],"names":["produce","pick","set","schema","ValidationError","getYupInnerErrors","React","useNotification","useOverlayBlocker","useFetchClient","omit","formatAPIErrors","yup","translatedErrors","useFocusWhenNavigate","useIntl","useSelector","selectAdminPermissions","useRBAC","useAdminRoles","Layout","jsx","SettingsPageTitle","Main","jsxs","HeaderLayout","Button","isEqual","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { onRowClick, pxToRem, stopPropagation, useFocusWhenNavigate, useQueryParams, useRBAC, LoadingIndicatorPage, SettingsPageTitle, SearchURLQuery, ConfirmDialog, useAPIErrorHandler, useNotification, getFetchClient, CheckPagePermissions } from "@strapi/helper-plugin";
3
3
  import { useSelector } from "react-redux";
4
- import { s as selectAdminPermissions } from "./AuthenticatedApp-fa931d1d.mjs";
4
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-52d37e32.mjs";
5
5
  import { useState, useReducer, useCallback } from "react";
6
6
  import { Tr, Td, Typography, Flex, Box, IconButton, Main, HeaderLayout, Button, ActionLayout, ContentLayout, Table, TFooter, Thead, Th, VisuallyHidden, Tbody } from "@strapi/design-system";
7
7
  import { Plus, Duplicate, Pencil, Trash } from "@strapi/icons";
@@ -13,7 +13,7 @@ import produce from "immer";
13
13
  import "react-query";
14
14
  import "semver/functions/lt";
15
15
  import "semver/functions/valid";
16
- import "./index-326b9481.mjs";
16
+ import "./index-ce41b6f0.mjs";
17
17
  import "react-dom/client";
18
18
  import "invariant";
19
19
  import "lodash/isFunction";
@@ -359,4 +359,4 @@ const ProtectedListPage = () => {
359
359
  export {
360
360
  ProtectedListPage as default
361
361
  };
362
- //# sourceMappingURL=index-332b3702.mjs.map
362
+ //# sourceMappingURL=index-03e8b9e3.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-332b3702.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Roles/ListPage/components/EmptyRole/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ListPage/reducer.js","../../admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedListPage/index.js"],"sourcesContent":["export default () => 'todo empty role';\n","import React from 'react';\n\nimport { Box, Flex, IconButton, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, pxToRem, stopPropagation } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleRow = ({ id, name, description, usersCount, icons, rowIndex, canUpdate }) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n {...(canUpdate\n ? onRowClick({\n fn: editObject.onClick,\n })\n : {})}\n >\n <Td maxWidth={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" {...stopPropagation}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton onClick={icon.onClick} label={icon.label} noBorder icon={icon.icon} />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nRoleRow.propTypes = {\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n usersCount: PropTypes.number.isRequired,\n icons: PropTypes.array.isRequired,\n rowIndex: PropTypes.number.isRequired,\n canUpdate: PropTypes.bool,\n};\n\nRoleRow.defaultProps = {\n canUpdate: false,\n};\n\nexport default RoleRow;\n","/* eslint-disable consistent-return */\nimport produce from 'immer';\n\nexport const initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { useCallback, useReducer, useState } from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Main,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../selectors';\n\nimport EmptyRole from './components/EmptyRole';\nimport BaseRoleRow from './components/RoleRow';\nimport reducer, { initialState } from './reducer';\n\nconst useRoleActions = ({ canCreate, canDelete, canUpdate, refetchRoles }) => {\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = useState(false);\n const { push } = useHistory();\n const [{ selectedRoles, showModalConfirmButtonLoading, roleToDelete }, dispatch] = useReducer(\n reducer,\n initialState\n );\n\n const { post } = getFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n handleToggleModal();\n };\n\n const onRoleDuplicate = useCallback(\n (id) => {\n push(`/settings/roles/duplicate/${id}`);\n },\n [push]\n );\n\n const handleNewRoleClick = () => push('/settings/roles/new');\n\n const onRoleRemove = useCallback((roleId) => {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: roleId,\n });\n\n handleToggleModal();\n }, []);\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleGoTo = useCallback(\n (id) => {\n push(`/settings/roles/${id}`);\n },\n [push]\n );\n\n const handleClickDelete = useCallback(\n (e, role) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: { id: 'Roles.ListPage.notification.delete-not-allowed' },\n });\n } else {\n onRoleRemove(role.id);\n }\n },\n [toggleNotification, onRoleRemove]\n );\n\n const handleClickDuplicate = useCallback(\n (e, role) => {\n e.preventDefault();\n e.stopPropagation();\n onRoleDuplicate(role.id);\n },\n [onRoleDuplicate]\n );\n\n const getIcons = useCallback(\n (role) => [\n ...(canCreate\n ? [\n {\n onClick: (e) => handleClickDuplicate(e, role),\n label: formatMessage({ id: 'app.utils.duplicate', defaultMessage: 'Duplicate' }),\n icon: <Duplicate />,\n },\n ]\n : []),\n ...(canUpdate\n ? [\n {\n onClick: () => handleGoTo(role.id),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n },\n ]\n : []),\n ...(canDelete\n ? [\n {\n onClick: (e) => handleClickDelete(e, role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n },\n ]\n : []),\n ],\n [\n formatMessage,\n handleClickDelete,\n handleClickDuplicate,\n handleGoTo,\n canCreate,\n canUpdate,\n canDelete,\n ]\n );\n\n return {\n handleNewRoleClick,\n getIcons,\n selectedRoles,\n isWarningDeleteAllOpened,\n showModalConfirmButtonLoading,\n handleToggleModal,\n handleDeleteData,\n };\n};\n\nconst RoleListPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n const permissions = useSelector(selectAdminPermissions);\n const [{ query }] = useQueryParams();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings.roles);\n\n const {\n roles,\n isLoading,\n refetch: refetchRoles,\n } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n cacheTime: 0,\n enabled: !isLoadingForPermissions && canRead,\n }\n );\n\n const {\n handleNewRoleClick,\n getIcons,\n isWarningDeleteAllOpened,\n showModalConfirmButtonLoading,\n handleToggleModal,\n handleDeleteData,\n } = useRoleActions({ refetchRoles, canCreate, canDelete, canUpdate });\n\n // ! TODO - Show the search bar only if the user is allowed to read - add the search input\n // canRead\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n const title = formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n });\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={title}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <BaseRoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={getIcons(role)}\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n {!rowCount && !isLoading && <EmptyRole />}\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={handleToggleModal}\n />\n </Main>\n );\n};\n\nexport default RoleListPage;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListPage from '../ListPage';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["BaseRoleRow","ListPage"],"mappings":"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"}
1
+ {"version":3,"file":"index-03e8b9e3.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Roles/ListPage/components/EmptyRole/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ListPage/reducer.js","../../admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedListPage/index.js"],"sourcesContent":["export default () => 'todo empty role';\n","import React from 'react';\n\nimport { Box, Flex, IconButton, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, pxToRem, stopPropagation } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleRow = ({ id, name, description, usersCount, icons, rowIndex, canUpdate }) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n {...(canUpdate\n ? onRowClick({\n fn: editObject.onClick,\n })\n : {})}\n >\n <Td maxWidth={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" {...stopPropagation}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton onClick={icon.onClick} label={icon.label} noBorder icon={icon.icon} />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nRoleRow.propTypes = {\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n usersCount: PropTypes.number.isRequired,\n icons: PropTypes.array.isRequired,\n rowIndex: PropTypes.number.isRequired,\n canUpdate: PropTypes.bool,\n};\n\nRoleRow.defaultProps = {\n canUpdate: false,\n};\n\nexport default RoleRow;\n","/* eslint-disable consistent-return */\nimport produce from 'immer';\n\nexport const initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default reducer;\n","import React, { useCallback, useReducer, useState } from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Main,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../../selectors';\n\nimport EmptyRole from './components/EmptyRole';\nimport BaseRoleRow from './components/RoleRow';\nimport reducer, { initialState } from './reducer';\n\nconst useRoleActions = ({ canCreate, canDelete, canUpdate, refetchRoles }) => {\n const { formatMessage } = useIntl();\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = useState(false);\n const { push } = useHistory();\n const [{ selectedRoles, showModalConfirmButtonLoading, roleToDelete }, dispatch] = useReducer(\n reducer,\n initialState\n );\n\n const { post } = getFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n handleToggleModal();\n };\n\n const onRoleDuplicate = useCallback(\n (id) => {\n push(`/settings/roles/duplicate/${id}`);\n },\n [push]\n );\n\n const handleNewRoleClick = () => push('/settings/roles/new');\n\n const onRoleRemove = useCallback((roleId) => {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: roleId,\n });\n\n handleToggleModal();\n }, []);\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleGoTo = useCallback(\n (id) => {\n push(`/settings/roles/${id}`);\n },\n [push]\n );\n\n const handleClickDelete = useCallback(\n (e, role) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: { id: 'Roles.ListPage.notification.delete-not-allowed' },\n });\n } else {\n onRoleRemove(role.id);\n }\n },\n [toggleNotification, onRoleRemove]\n );\n\n const handleClickDuplicate = useCallback(\n (e, role) => {\n e.preventDefault();\n e.stopPropagation();\n onRoleDuplicate(role.id);\n },\n [onRoleDuplicate]\n );\n\n const getIcons = useCallback(\n (role) => [\n ...(canCreate\n ? [\n {\n onClick: (e) => handleClickDuplicate(e, role),\n label: formatMessage({ id: 'app.utils.duplicate', defaultMessage: 'Duplicate' }),\n icon: <Duplicate />,\n },\n ]\n : []),\n ...(canUpdate\n ? [\n {\n onClick: () => handleGoTo(role.id),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n },\n ]\n : []),\n ...(canDelete\n ? [\n {\n onClick: (e) => handleClickDelete(e, role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n },\n ]\n : []),\n ],\n [\n formatMessage,\n handleClickDelete,\n handleClickDuplicate,\n handleGoTo,\n canCreate,\n canUpdate,\n canDelete,\n ]\n );\n\n return {\n handleNewRoleClick,\n getIcons,\n selectedRoles,\n isWarningDeleteAllOpened,\n showModalConfirmButtonLoading,\n handleToggleModal,\n handleDeleteData,\n };\n};\n\nconst RoleListPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n const permissions = useSelector(selectAdminPermissions);\n const [{ query }] = useQueryParams();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings.roles);\n\n const {\n roles,\n isLoading,\n refetch: refetchRoles,\n } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n cacheTime: 0,\n enabled: !isLoadingForPermissions && canRead,\n }\n );\n\n const {\n handleNewRoleClick,\n getIcons,\n isWarningDeleteAllOpened,\n showModalConfirmButtonLoading,\n handleToggleModal,\n handleDeleteData,\n } = useRoleActions({ refetchRoles, canCreate, canDelete, canUpdate });\n\n // ! TODO - Show the search bar only if the user is allowed to read - add the search input\n // canRead\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n const title = formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n });\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={title}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <BaseRoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={getIcons(role)}\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n {!rowCount && !isLoading && <EmptyRole />}\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={handleToggleModal}\n />\n </Main>\n );\n};\n\nexport default RoleListPage;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport ListPage from '../ListPage';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["BaseRoleRow","ListPage"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const PropTypes = require("prop-types");
4
4
  const reactIntl = require("react-intl");
5
- const index = require("./index-7c0dcf2b.js");
5
+ const index = require("./index-133699a3.js");
6
6
  const designSystem = require("@strapi/design-system");
7
7
  const helperPlugin = require("@strapi/helper-plugin");
8
8
  const Icons = require("@strapi/icons");
@@ -131,4 +131,4 @@ SelectRoles.propTypes = {
131
131
  exports.MagicLinkCE = MagicLinkCE;
132
132
  exports.MagicLinkWrapper = MagicLinkWrapper;
133
133
  exports.SelectRoles = SelectRoles;
134
- //# sourceMappingURL=index-539c5eac.js.map
134
+ //# sourceMappingURL=index-074a5de8.js.map