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

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 (183) hide show
  1. package/dist/_chunks/{AuthenticatedApp-52d37e32.mjs → AuthenticatedApp-1e10546a.mjs} +21 -21
  2. package/dist/_chunks/{AuthenticatedApp-52d37e32.mjs.map → AuthenticatedApp-1e10546a.mjs.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-31e6418d.js → AuthenticatedApp-eea6970a.js} +21 -21
  4. package/dist/_chunks/{AuthenticatedApp-31e6418d.js.map → AuthenticatedApp-eea6970a.js.map} +1 -1
  5. package/dist/_chunks/{HomePage-0f953b49.js → HomePage-3ce777a2.js} +4 -4
  6. package/dist/_chunks/{HomePage-0f953b49.js.map → HomePage-3ce777a2.js.map} +1 -1
  7. package/dist/_chunks/{HomePage-a2c12504.mjs → HomePage-96c4aa5b.mjs} +4 -4
  8. package/dist/_chunks/{HomePage-a2c12504.mjs.map → HomePage-96c4aa5b.mjs.map} +1 -1
  9. package/dist/_chunks/{HomePage-1e7b2e66.mjs → HomePage-970b8c5a.mjs} +4 -4
  10. package/dist/_chunks/{HomePage-1e7b2e66.mjs.map → HomePage-970b8c5a.mjs.map} +1 -1
  11. package/dist/_chunks/{HomePage-d0f7fc69.js → HomePage-ec67248d.js} +4 -4
  12. package/dist/_chunks/{HomePage-d0f7fc69.js.map → HomePage-ec67248d.js.map} +1 -1
  13. package/dist/_chunks/{InstalledPluginsPage-46e14507.js → InstalledPluginsPage-1e0d2ae1.js} +3 -3
  14. package/dist/_chunks/{InstalledPluginsPage-46e14507.js.map → InstalledPluginsPage-1e0d2ae1.js.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-3fc71003.mjs → InstalledPluginsPage-7743670e.mjs} +3 -3
  16. package/dist/_chunks/{InstalledPluginsPage-3fc71003.mjs.map → InstalledPluginsPage-7743670e.mjs.map} +1 -1
  17. package/dist/_chunks/{Login-550366a9.js → Login-04fc2757.js} +2 -2
  18. package/dist/_chunks/{Login-550366a9.js.map → Login-04fc2757.js.map} +1 -1
  19. package/dist/_chunks/{Login-57e0fd9c.mjs → Login-a6af5d62.mjs} +2 -2
  20. package/dist/_chunks/{Login-57e0fd9c.mjs.map → Login-a6af5d62.mjs.map} +1 -1
  21. package/dist/_chunks/{MarketplacePage-2505749a.mjs → MarketplacePage-61d66050.mjs} +3 -3
  22. package/dist/_chunks/{MarketplacePage-2505749a.mjs.map → MarketplacePage-61d66050.mjs.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-138e7b39.js → MarketplacePage-aeb425cc.js} +3 -3
  24. package/dist/_chunks/{MarketplacePage-138e7b39.js.map → MarketplacePage-aeb425cc.js.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-bd50b4f3.mjs → ProfilePage-862401de.mjs} +3 -3
  26. package/dist/_chunks/{ProfilePage-bd50b4f3.mjs.map → ProfilePage-862401de.mjs.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-23b8a29f.js → ProfilePage-f3915e86.js} +3 -3
  28. package/dist/_chunks/{ProfilePage-23b8a29f.js.map → ProfilePage-f3915e86.js.map} +1 -1
  29. package/dist/_chunks/{constants-362e760f.mjs → constants-14dd24d9.mjs} +6 -6
  30. package/dist/_chunks/{constants-362e760f.mjs.map → constants-14dd24d9.mjs.map} +1 -1
  31. package/dist/_chunks/{constants-ac7899ed.js → constants-298d4e08.js} +5 -5
  32. package/dist/_chunks/{constants-ac7899ed.js.map → constants-298d4e08.js.map} +1 -1
  33. package/dist/_chunks/{constants-e2c67ec8.mjs → constants-94ec0c39.mjs} +5 -5
  34. package/dist/_chunks/{constants-e2c67ec8.mjs.map → constants-94ec0c39.mjs.map} +1 -1
  35. package/dist/_chunks/{constants-6dcb43aa.mjs → constants-98046873.mjs} +2 -2
  36. package/dist/_chunks/{constants-6dcb43aa.mjs.map → constants-98046873.mjs.map} +1 -1
  37. package/dist/_chunks/{constants-88f9d2a0.js → constants-9ee3d5d7.js} +3 -3
  38. package/dist/_chunks/{constants-88f9d2a0.js.map → constants-9ee3d5d7.js.map} +1 -1
  39. package/dist/_chunks/{constants-4539f7ac.js → constants-a0698a4a.js} +6 -6
  40. package/dist/_chunks/{constants-4539f7ac.js.map → constants-a0698a4a.js.map} +1 -1
  41. package/dist/_chunks/{constants-06897e38.js → constants-ca23be5d.js} +2 -2
  42. package/dist/_chunks/{constants-06897e38.js.map → constants-ca23be5d.js.map} +1 -1
  43. package/dist/_chunks/{constants-59bcff2e.mjs → constants-fb780d44.mjs} +3 -3
  44. package/dist/_chunks/{constants-59bcff2e.mjs.map → constants-fb780d44.mjs.map} +1 -1
  45. package/dist/_chunks/{index-0b787ac1.js → index-008328ba.js} +5 -5
  46. package/dist/_chunks/{index-0b787ac1.js.map → index-008328ba.js.map} +1 -1
  47. package/dist/_chunks/{index-2b48526d.mjs → index-04dc85bf.mjs} +5 -5
  48. package/dist/_chunks/{index-2b48526d.mjs.map → index-04dc85bf.mjs.map} +1 -1
  49. package/dist/_chunks/{index-70189e76.mjs → index-0a328691.mjs} +3 -3
  50. package/dist/_chunks/{index-70189e76.mjs.map → index-0a328691.mjs.map} +1 -1
  51. package/dist/_chunks/{index-c45d5f19.mjs → index-15fddb85.mjs} +4 -4
  52. package/dist/_chunks/{index-c45d5f19.mjs.map → index-15fddb85.mjs.map} +1 -1
  53. package/dist/_chunks/{index-24b626a6.js → index-1930d662.js} +3 -3
  54. package/dist/_chunks/{index-24b626a6.js.map → index-1930d662.js.map} +1 -1
  55. package/dist/_chunks/{index-ff9d30ef.js → index-1e7b6d32.js} +5 -5
  56. package/dist/_chunks/{index-ff9d30ef.js.map → index-1e7b6d32.js.map} +1 -1
  57. package/dist/_chunks/{index-133699a3.js → index-2609696f.js} +4 -4
  58. package/dist/_chunks/{index-133699a3.js.map → index-2609696f.js.map} +1 -1
  59. package/dist/_chunks/{index-9eb4c34d.mjs → index-27d910b7.mjs} +5 -5
  60. package/dist/_chunks/{index-9eb4c34d.mjs.map → index-27d910b7.mjs.map} +1 -1
  61. package/dist/_chunks/{index-be8eb534.js → index-3266a985.js} +3 -3
  62. package/dist/_chunks/{index-be8eb534.js.map → index-3266a985.js.map} +1 -1
  63. package/dist/_chunks/{index-994d2c5d.mjs → index-372f70ce.mjs} +2 -2
  64. package/dist/_chunks/{index-994d2c5d.mjs.map → index-372f70ce.mjs.map} +1 -1
  65. package/dist/_chunks/{index-6db2b431.js → index-392a9490.js} +5 -5
  66. package/dist/_chunks/{index-6db2b431.js.map → index-392a9490.js.map} +1 -1
  67. package/dist/_chunks/{index-9195720c.js → index-401d5daa.js} +5 -5
  68. package/dist/_chunks/{index-9195720c.js.map → index-401d5daa.js.map} +1 -1
  69. package/dist/_chunks/{index-58ffc071.js → index-435b6463.js} +3 -3
  70. package/dist/_chunks/{index-58ffc071.js.map → index-435b6463.js.map} +1 -1
  71. package/dist/_chunks/{index-4b8c01d4.js → index-470c6923.js} +2 -2
  72. package/dist/_chunks/{index-4b8c01d4.js.map → index-470c6923.js.map} +1 -1
  73. package/dist/_chunks/{index-c9e68296.mjs → index-4b12f2e9.mjs} +5 -5
  74. package/dist/_chunks/{index-c9e68296.mjs.map → index-4b12f2e9.mjs.map} +1 -1
  75. package/dist/_chunks/{index-02064a74.js → index-51aa0dc6.js} +3 -3
  76. package/dist/_chunks/{index-02064a74.js.map → index-51aa0dc6.js.map} +1 -1
  77. package/dist/_chunks/{index-b17c7874.mjs → index-527a80ef.mjs} +3 -3
  78. package/dist/_chunks/{index-b17c7874.mjs.map → index-527a80ef.mjs.map} +1 -1
  79. package/dist/_chunks/{index-36a7c525.js → index-56a6576d.js} +3 -3
  80. package/dist/_chunks/{index-36a7c525.js.map → index-56a6576d.js.map} +1 -1
  81. package/dist/_chunks/{index-c59a117e.mjs → index-5a15fb17.mjs} +3 -3
  82. package/dist/_chunks/{index-c59a117e.mjs.map → index-5a15fb17.mjs.map} +1 -1
  83. package/dist/_chunks/{index-d3dea80c.js → index-5d3982dd.js} +6 -6
  84. package/dist/_chunks/{index-d3dea80c.js.map → index-5d3982dd.js.map} +1 -1
  85. package/dist/_chunks/{index-fae4b277.mjs → index-5de6defe.mjs} +4 -4
  86. package/dist/_chunks/{index-fae4b277.mjs.map → index-5de6defe.mjs.map} +1 -1
  87. package/dist/_chunks/{index-898ba1c6.js → index-65d8637e.js} +3 -3
  88. package/dist/_chunks/{index-898ba1c6.js.map → index-65d8637e.js.map} +1 -1
  89. package/dist/_chunks/{index-bb22dbbc.mjs → index-6b269800.mjs} +3 -3
  90. package/dist/_chunks/{index-bb22dbbc.mjs.map → index-6b269800.mjs.map} +1 -1
  91. package/dist/_chunks/{index-91ef29b3.mjs → index-6c56f4c2.mjs} +3 -3
  92. package/dist/_chunks/{index-91ef29b3.mjs.map → index-6c56f4c2.mjs.map} +1 -1
  93. package/dist/_chunks/{index-4fef292a.mjs → index-6e082128.mjs} +3 -3
  94. package/dist/_chunks/{index-4fef292a.mjs.map → index-6e082128.mjs.map} +1 -1
  95. package/dist/_chunks/{index-cd6b99a8.js → index-75d51788.js} +5 -5
  96. package/dist/_chunks/{index-cd6b99a8.js.map → index-75d51788.js.map} +1 -1
  97. package/dist/_chunks/{index-a0af8beb.js → index-7b53073e.js} +3 -3
  98. package/dist/_chunks/{index-a0af8beb.js.map → index-7b53073e.js.map} +1 -1
  99. package/dist/_chunks/{index-8cafda81.js → index-7b5707cd.js} +4 -4
  100. package/dist/_chunks/{index-8cafda81.js.map → index-7b5707cd.js.map} +1 -1
  101. package/dist/_chunks/{index-4544af4c.mjs → index-7d60e3dc.mjs} +20 -20
  102. package/dist/_chunks/{index-4544af4c.mjs.map → index-7d60e3dc.mjs.map} +1 -1
  103. package/dist/_chunks/{index-1a3e997a.mjs → index-7e1f48fc.mjs} +8 -8
  104. package/dist/_chunks/{index-1a3e997a.mjs.map → index-7e1f48fc.mjs.map} +1 -1
  105. package/dist/_chunks/{index-9f8605e5.mjs → index-80b911e7.mjs} +3 -3
  106. package/dist/_chunks/{index-9f8605e5.mjs.map → index-80b911e7.mjs.map} +1 -1
  107. package/dist/_chunks/{index-ce41b6f0.mjs → index-83133812.mjs} +4 -4
  108. package/dist/_chunks/{index-ce41b6f0.mjs.map → index-83133812.mjs.map} +1 -1
  109. package/dist/_chunks/{index-67a35378.mjs → index-8600b6e5.mjs} +3 -3
  110. package/dist/_chunks/{index-67a35378.mjs.map → index-8600b6e5.mjs.map} +1 -1
  111. package/dist/_chunks/{index-19b1984d.js → index-8c004453.js} +2 -2
  112. package/dist/_chunks/{index-19b1984d.js.map → index-8c004453.js.map} +1 -1
  113. package/dist/_chunks/{index-9deb8ccb.js → index-92a2ece4.js} +4 -4
  114. package/dist/_chunks/{index-9deb8ccb.js.map → index-92a2ece4.js.map} +1 -1
  115. package/dist/_chunks/{index-dc4938ad.mjs → index-92f311b0.mjs} +5 -5
  116. package/dist/_chunks/{index-dc4938ad.mjs.map → index-92f311b0.mjs.map} +1 -1
  117. package/dist/_chunks/{index-610889c4.mjs → index-9a307bbd.mjs} +4 -4
  118. package/dist/_chunks/{index-610889c4.mjs.map → index-9a307bbd.mjs.map} +1 -1
  119. package/dist/_chunks/{index-c36d6802.js → index-9afe0455.js} +3 -3
  120. package/dist/_chunks/{index-c36d6802.js.map → index-9afe0455.js.map} +1 -1
  121. package/dist/_chunks/{index-074a5de8.js → index-9d9b9769.js} +2 -2
  122. package/dist/_chunks/{index-074a5de8.js.map → index-9d9b9769.js.map} +1 -1
  123. package/dist/_chunks/{index-628c5937.js → index-a299ce97.js} +8 -8
  124. package/dist/_chunks/{index-628c5937.js.map → index-a299ce97.js.map} +1 -1
  125. package/dist/_chunks/{index-5113c6be.mjs → index-a3bc2b4e.mjs} +2 -2
  126. package/dist/_chunks/{index-5113c6be.mjs.map → index-a3bc2b4e.mjs.map} +1 -1
  127. package/dist/_chunks/{index-3be46ca9.mjs → index-a81ae30e.mjs} +3 -3
  128. package/dist/_chunks/{index-3be46ca9.mjs.map → index-a81ae30e.mjs.map} +1 -1
  129. package/dist/_chunks/{index-0778959c.mjs → index-aa35df09.mjs} +6 -6
  130. package/dist/_chunks/{index-0778959c.mjs.map → index-aa35df09.mjs.map} +1 -1
  131. package/dist/_chunks/{index-eb59cabf.js → index-b1141822.js} +3 -3
  132. package/dist/_chunks/{index-eb59cabf.js.map → index-b1141822.js.map} +1 -1
  133. package/dist/_chunks/{index-148939b0.js → index-b4277486.js} +4 -4
  134. package/dist/_chunks/{index-148939b0.js.map → index-b4277486.js.map} +1 -1
  135. package/dist/_chunks/{index-03e8b9e3.mjs → index-b51842fb.mjs} +3 -3
  136. package/dist/_chunks/{index-03e8b9e3.mjs.map → index-b51842fb.mjs.map} +1 -1
  137. package/dist/_chunks/{index-d63b0b91.js → index-b5ff3031.js} +4 -4
  138. package/dist/_chunks/{index-d63b0b91.js.map → index-b5ff3031.js.map} +1 -1
  139. package/dist/_chunks/{index-6e44aef9.js → index-bff8cad7.js} +3 -3
  140. package/dist/_chunks/{index-6e44aef9.js.map → index-bff8cad7.js.map} +1 -1
  141. package/dist/_chunks/{index-1a7cc203.mjs → index-c145ae06.mjs} +3 -3
  142. package/dist/_chunks/{index-1a7cc203.mjs.map → index-c145ae06.mjs.map} +1 -1
  143. package/dist/_chunks/{index-23925f10.mjs → index-c5ed938c.mjs} +2 -2
  144. package/dist/_chunks/{index-23925f10.mjs.map → index-c5ed938c.mjs.map} +1 -1
  145. package/dist/_chunks/{index-aceb13c1.mjs → index-c66a60bb.mjs} +4 -4
  146. package/dist/_chunks/{index-aceb13c1.mjs.map → index-c66a60bb.mjs.map} +1 -1
  147. package/dist/_chunks/{index-13ab14ec.mjs → index-c8abc905.mjs} +3 -3
  148. package/dist/_chunks/{index-13ab14ec.mjs.map → index-c8abc905.mjs.map} +1 -1
  149. package/dist/_chunks/{index-86172b2d.js → index-cf35f9e7.js} +4 -4
  150. package/dist/_chunks/{index-86172b2d.js.map → index-cf35f9e7.js.map} +1 -1
  151. package/dist/_chunks/{index-2c76e5e2.js → index-da0be0d5.js} +3 -3
  152. package/dist/_chunks/{index-2c76e5e2.js.map → index-da0be0d5.js.map} +1 -1
  153. package/dist/_chunks/{index-64a156de.js → index-e12cacd1.js} +3 -3
  154. package/dist/_chunks/{index-64a156de.js.map → index-e12cacd1.js.map} +1 -1
  155. package/dist/_chunks/{index-ea43b165.mjs → index-e17a9e33.mjs} +5 -5
  156. package/dist/_chunks/{index-ea43b165.mjs.map → index-e17a9e33.mjs.map} +1 -1
  157. package/dist/_chunks/{index-15c76f0b.mjs → index-e628615b.mjs} +4 -4
  158. package/dist/_chunks/{index-15c76f0b.mjs.map → index-e628615b.mjs.map} +1 -1
  159. package/dist/_chunks/{index-59880344.mjs → index-e7e7f75d.mjs} +5 -5
  160. package/dist/_chunks/{index-59880344.mjs.map → index-e7e7f75d.mjs.map} +1 -1
  161. package/dist/_chunks/{index-5c19f439.js → index-ea2ed45d.js} +5 -5
  162. package/dist/_chunks/{index-5c19f439.js.map → index-ea2ed45d.js.map} +1 -1
  163. package/dist/_chunks/{index-8bca9e4c.mjs → index-eafb6c8c.mjs} +4 -4
  164. package/dist/_chunks/{index-8bca9e4c.mjs.map → index-eafb6c8c.mjs.map} +1 -1
  165. package/dist/_chunks/{index-3a96c79f.mjs → index-ebd41ad5.mjs} +3 -3
  166. package/dist/_chunks/{index-3a96c79f.mjs.map → index-ebd41ad5.mjs.map} +1 -1
  167. package/dist/_chunks/{index-aee95cda.js → index-f3c7f6a9.js} +3 -3
  168. package/dist/_chunks/{index-aee95cda.js.map → index-f3c7f6a9.js.map} +1 -1
  169. package/dist/_chunks/{index-be02d51c.js → index-f6e45499.js} +20 -20
  170. package/dist/_chunks/{index-be02d51c.js.map → index-f6e45499.js.map} +1 -1
  171. package/dist/_chunks/{index-6b1148f6.js → index-ffafceee.js} +4 -4
  172. package/dist/_chunks/{index-6b1148f6.js.map → index-ffafceee.js.map} +1 -1
  173. package/dist/_chunks/{schema-549f8236.mjs → schema-666ecce4.mjs} +2 -2
  174. package/dist/_chunks/{schema-549f8236.mjs.map → schema-666ecce4.mjs.map} +1 -1
  175. package/dist/_chunks/{schema-e3080441.js → schema-755747ac.js} +2 -2
  176. package/dist/_chunks/{schema-e3080441.js.map → schema-755747ac.js.map} +1 -1
  177. package/dist/_chunks/{validateWorkflow-a7311af1.js → validateWorkflow-ae45d3d4.js} +3 -3
  178. package/dist/_chunks/{validateWorkflow-a7311af1.js.map → validateWorkflow-ae45d3d4.js.map} +1 -1
  179. package/dist/_chunks/{validateWorkflow-7bff41ac.mjs → validateWorkflow-e77a9ab3.mjs} +3 -3
  180. package/dist/_chunks/{validateWorkflow-7bff41ac.mjs.map → validateWorkflow-e77a9ab3.mjs.map} +1 -1
  181. package/dist/admin/index.js +1 -1
  182. package/dist/admin/index.mjs +1 -1
  183. package/package.json +12 -12
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import PropTypes from "prop-types";
3
3
  import { useIntl } from "react-intl";
4
- import { T as getBasename } from "./index-ce41b6f0.mjs";
4
+ import { T as getBasename } from "./index-83133812.mjs";
5
5
  import { IconButton, Select, Option } from "@strapi/design-system";
6
6
  import { useNotification, useClipboard, ContentBox, getFetchClient } from "@strapi/helper-plugin";
7
7
  import { Duplicate, Loader as Loader$1 } from "@strapi/icons";
@@ -129,4 +129,4 @@ export {
129
129
  SelectRoles as S,
130
130
  MagicLinkWrapper as a
131
131
  };
132
- //# sourceMappingURL=index-5113c6be.mjs.map
132
+ //# sourceMappingURL=index-a3bc2b4e.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-5113c6be.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js","../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js","../../admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js"],"sourcesContent":["import React from 'react';\n\nimport { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification } from '@strapi/helper-plugin';\nimport { Duplicate } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst MagicLinkWrapper = ({ children, target }) => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async () => {\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({ type: 'info', message: { id: 'notification.link-copied' } });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nMagicLinkWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n target: PropTypes.string.isRequired,\n};\n\nexport default MagicLinkWrapper;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../core/utils/basename';\n\nimport MagicLinkWrapper from './MagicLinkWrapper';\n\nexport const MagicLinkCE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkCE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkCE.propTypes = {\n registrationToken: PropTypes.string,\n};\n","import React from 'react';\n\nimport { Option, Select } from '@strapi/design-system';\nimport { getFetchClient } from '@strapi/helper-plugin';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport styled, { keyframes } from 'styled-components';\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nconst fetchData = async () => {\n const { get } = getFetchClient();\n const { data } = await get('/admin/roles');\n\n return data.data;\n};\n\nconst SelectRoles = ({ disabled, error, onChange, value }) => {\n const { status, data } = useQuery(['roles'], fetchData, {\n staleTime: 50000,\n });\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n });\n const hint = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n });\n const placeholder = formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n });\n const startIcon = status === 'loading' ? <Loader /> : undefined;\n\n return (\n <Select\n id=\"roles\"\n disabled={disabled}\n error={errorMessage}\n hint={hint}\n label={label}\n name=\"roles\"\n onChange={(v) => {\n onChange({ target: { name: 'roles', value: v } });\n }}\n placeholder={placeholder}\n multi\n startIcon={startIcon}\n value={value.map((v) => v.toString())}\n withTags\n required\n >\n {(data || []).map((role) => {\n return (\n <Option key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </Option>\n );\n })}\n </Select>\n );\n};\n\nSelectRoles.defaultProps = {\n disabled: false,\n error: undefined,\n};\n\nSelectRoles.propTypes = {\n disabled: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.array.isRequired,\n};\n\nexport default SelectRoles;\n"],"names":["LoadingIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index-a3bc2b4e.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js","../../admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js","../../admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js"],"sourcesContent":["import React from 'react';\n\nimport { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification } from '@strapi/helper-plugin';\nimport { Duplicate } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst MagicLinkWrapper = ({ children, target }) => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async () => {\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({ type: 'info', message: { id: 'notification.link-copied' } });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} noBorder icon={<Duplicate />} onClick={handleClick} />\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nMagicLinkWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n target: PropTypes.string.isRequired,\n};\n\nexport default MagicLinkWrapper;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../../core/utils/basename';\n\nimport MagicLinkWrapper from './MagicLinkWrapper';\n\nexport const MagicLinkCE = ({ registrationToken }) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nMagicLinkCE.defaultProps = {\n registrationToken: '',\n};\n\nMagicLinkCE.propTypes = {\n registrationToken: PropTypes.string,\n};\n","import React from 'react';\n\nimport { Option, Select } from '@strapi/design-system';\nimport { getFetchClient } from '@strapi/helper-plugin';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\nimport styled, { keyframes } from 'styled-components';\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nconst fetchData = async () => {\n const { get } = getFetchClient();\n const { data } = await get('/admin/roles');\n\n return data.data;\n};\n\nconst SelectRoles = ({ disabled, error, onChange, value }) => {\n const { status, data } = useQuery(['roles'], fetchData, {\n staleTime: 50000,\n });\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n });\n const hint = formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n });\n const placeholder = formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n });\n const startIcon = status === 'loading' ? <Loader /> : undefined;\n\n return (\n <Select\n id=\"roles\"\n disabled={disabled}\n error={errorMessage}\n hint={hint}\n label={label}\n name=\"roles\"\n onChange={(v) => {\n onChange({ target: { name: 'roles', value: v } });\n }}\n placeholder={placeholder}\n multi\n startIcon={startIcon}\n value={value.map((v) => v.toString())}\n withTags\n required\n >\n {(data || []).map((role) => {\n return (\n <Option key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </Option>\n );\n })}\n </Select>\n );\n};\n\nSelectRoles.defaultProps = {\n disabled: false,\n error: undefined,\n};\n\nSelectRoles.propTypes = {\n disabled: PropTypes.bool,\n error: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.array.isRequired,\n};\n\nexport default SelectRoles;\n"],"names":["LoadingIcon"],"mappings":"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"}
@@ -5,13 +5,13 @@ import { useRBAC, pxToRem } from "@strapi/helper-plugin";
5
5
  import { ExclamationMarkCircle, ExternalLink } from "@strapi/icons";
6
6
  import { useIntl } from "react-intl";
7
7
  import { useSelector } from "react-redux";
8
- import { s as selectAdminPermissions } from "./AuthenticatedApp-52d37e32.mjs";
8
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-1e10546a.mjs";
9
9
  import { u as useLicenseLimits } from "./useLicenseLimits-13a102d3.mjs";
10
10
  import "react";
11
11
  import "react-query";
12
12
  import "semver/functions/lt";
13
13
  import "semver/functions/valid";
14
- import "./index-ce41b6f0.mjs";
14
+ import "./index-83133812.mjs";
15
15
  import "react-dom/client";
16
16
  import "invariant";
17
17
  import "lodash/isFunction";
@@ -122,4 +122,4 @@ const AdminSeatInfoEE = () => {
122
122
  export {
123
123
  AdminSeatInfoEE
124
124
  };
125
- //# sourceMappingURL=index-3be46ca9.mjs.map
125
+ //# sourceMappingURL=index-a81ae30e.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-3be46ca9.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Flex, GridItem, Icon, Tooltip, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { pxToRem, useRBAC } from '@strapi/helper-plugin';\nimport { ExclamationMarkCircle, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.users);\n const {\n license: { licenseLimitStatus, enforcementUserCount, permittedSeats, isHostedOnStrapiCloud },\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !permittedSeats) {\n return null;\n }\n\n return (\n <GridItem col={6} s={12}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography as=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n // eslint-disable-next-line react/no-unstable-nested-components\n text: (chunks) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : null}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <Icon\n width={`${pxToRem(14)}rem`}\n height={`${pxToRem(14)}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n </Flex>\n <Link\n href={isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL}\n isExternal\n endIcon={<ExternalLink />}\n >\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}',\n },\n { isHostedOnStrapiCloud }\n )}\n </Link>\n </GridItem>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,2BAA2B;AACjC,MAAM,0BAA0B;AAEzB,MAAM,kBAAkB,MAAM;AAC7B,QAAA,EAAE,kBAAkB;AACpB,QAAA,cAAc,YAAY,sBAAsB;AAChD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,SAAS,WAAW,WAAW,UAAU;AAAA,EACzD,IAAA,QAAQ,YAAY,SAAS,KAAK;AAChC,QAAA;AAAA,IACJ,SAAS,EAAE,oBAAoB,sBAAsB,gBAAgB,sBAAsB;AAAA,IAC3F;AAAA,IACA,WAAW;AAAA,MACT,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnB,SAAS,CAAC,iBAAiB,WAAW,aAAa,aAAa;AAAA,EAAA,CACjE;AAED,QAAM,YAAY,iBAAiB;AAE/B,MAAA,WAAW,aAAa,CAAC,gBAAgB;AACpC,WAAA;AAAA,EACT;AAEA,SACG,qBAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAA;AAAA,IAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,MACb,IAAI;AAAA,MACJ,gBAAgB;AAAA,IACjB,CAAA,GACH;AAAA,IACA,qBAAC,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,MAAA,oBAAC,MACC,EAAA,UAAA,oBAAC,YAAW,EAAA,IAAG,KACZ,UAAA;AAAA,QACC;AAAA,UACE,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA,MAAM,CAAC,WACL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAW;AAAA,cACX,WAAW,uBAAuB,iBAAiB,cAAc;AAAA,cAEhE,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAEJ;AAAA,SAEJ,EACF,CAAA;AAAA,MACC,uBAAuB,gBACtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAa,cAAc;AAAA,YACzB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UAED,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,QAAQ,EAAE,CAAC;AAAA,cACrB,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAAA,cACtB,OAAM;AAAA,cACN,IAAI;AAAA,YAAA;AAAA,UACN;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,wBAAwB,2BAA2B;AAAA,QACzD,YAAU;AAAA,QACV,6BAAU,cAAa,EAAA;AAAA,QAEtB,UAAA;AAAA,UACC;AAAA,YACE,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,UACA,EAAE,sBAAsB;AAAA,QAC1B;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index-a81ae30e.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Flex, GridItem, Icon, Tooltip, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { pxToRem, useRBAC } from '@strapi/helper-plugin';\nimport { ExclamationMarkCircle, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.users);\n const {\n license: { licenseLimitStatus, enforcementUserCount, permittedSeats, isHostedOnStrapiCloud },\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !permittedSeats) {\n return null;\n }\n\n return (\n <GridItem col={6} s={12}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography as=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n // eslint-disable-next-line react/no-unstable-nested-components\n text: (chunks) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : null}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <Icon\n width={`${pxToRem(14)}rem`}\n height={`${pxToRem(14)}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n </Flex>\n <Link\n href={isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL}\n isExternal\n endIcon={<ExternalLink />}\n >\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}',\n },\n { isHostedOnStrapiCloud }\n )}\n </Link>\n </GridItem>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,2BAA2B;AACjC,MAAM,0BAA0B;AAEzB,MAAM,kBAAkB,MAAM;AAC7B,QAAA,EAAE,kBAAkB;AACpB,QAAA,cAAc,YAAY,sBAAsB;AAChD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,SAAS,WAAW,WAAW,UAAU;AAAA,EACzD,IAAA,QAAQ,YAAY,SAAS,KAAK;AAChC,QAAA;AAAA,IACJ,SAAS,EAAE,oBAAoB,sBAAsB,gBAAgB,sBAAsB;AAAA,IAC3F;AAAA,IACA,WAAW;AAAA,MACT,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnB,SAAS,CAAC,iBAAiB,WAAW,aAAa,aAAa;AAAA,EAAA,CACjE;AAED,QAAM,YAAY,iBAAiB;AAE/B,MAAA,WAAW,aAAa,CAAC,gBAAgB;AACpC,WAAA;AAAA,EACT;AAEA,SACG,qBAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAA;AAAA,IAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,MACb,IAAI;AAAA,MACJ,gBAAgB;AAAA,IACjB,CAAA,GACH;AAAA,IACA,qBAAC,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,MAAA,oBAAC,MACC,EAAA,UAAA,oBAAC,YAAW,EAAA,IAAG,KACZ,UAAA;AAAA,QACC;AAAA,UACE,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA,MAAM,CAAC,WACL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,YAAW;AAAA,cACX,WAAW,uBAAuB,iBAAiB,cAAc;AAAA,cAEhE,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAEJ;AAAA,SAEJ,EACF,CAAA;AAAA,MACC,uBAAuB,gBACtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAa,cAAc;AAAA,YACzB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UAED,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,QAAQ,EAAE,CAAC;AAAA,cACrB,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAAA,cACtB,OAAM;AAAA,cACN,IAAI;AAAA,YAAA;AAAA,UACN;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,wBAAwB,2BAA2B;AAAA,QACzD,YAAU;AAAA,QACV,6BAAU,cAAa,EAAA;AAAA,QAEtB,UAAA;AAAA,UACC;AAAA,YACE,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,UACA,EAAE,sBAAsB;AAAA,QAC1B;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { onRowClick, stopPropagation, translatedErrors, useNotification, useOverlayBlocker, useFetchClient, Form, GenericInput, PageSizeURLQuery, PaginationURLQuery, Status, useAPIErrorHandler, useRBAC, useFocusWhenNavigate, SettingsPageTitle, SearchURLQuery, NoPermissions, DynamicTable, CheckPagePermissions } from "@strapi/helper-plugin";
3
3
  import { useSelector } from "react-redux";
4
- import { g as getFullName, s as selectAdminPermissions } from "./AuthenticatedApp-52d37e32.mjs";
4
+ import { g as getFullName, s as selectAdminPermissions } from "./AuthenticatedApp-1e10546a.mjs";
5
5
  import { useState } from "react";
6
6
  import { Button, Tbody, Tr, Td, BaseCheckbox, Typography, Flex, IconButton, Box, ModalLayout, ModalHeader, ModalBody, Grid, GridItem, ModalFooter, Main, HeaderLayout, ActionLayout, ContentLayout } from "@strapi/design-system";
7
7
  import qs__default from "qs";
@@ -9,13 +9,13 @@ import { useIntl } from "react-intl";
9
9
  import { useMutation, useQueryClient } from "react-query";
10
10
  import { useHistory, useLocation } from "react-router-dom";
11
11
  import { u as useAdminUsers } from "./useAdminUsers-09f86a58.mjs";
12
- import { p as useEnterprise } from "./index-ce41b6f0.mjs";
12
+ import { p as useEnterprise } from "./index-83133812.mjs";
13
13
  import { F as Filters } from "./index-74812118.mjs";
14
14
  import { Envelop, Pencil, Trash } from "@strapi/icons";
15
15
  import PropTypes from "prop-types";
16
16
  import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
17
17
  import { Formik } from "formik";
18
- import { M as MagicLinkCE, S as SelectRoles } from "./index-5113c6be.mjs";
18
+ import { M as MagicLinkCE, S as SelectRoles } from "./index-a3bc2b4e.mjs";
19
19
  import * as yup from "yup";
20
20
  const CreateActionCE = ({ onClick }) => {
21
21
  const { formatMessage } = useIntl();
@@ -241,7 +241,7 @@ const ModalForm = ({ onSuccess, onToggle }) => {
241
241
  );
242
242
  const MagicLink = useEnterprise(
243
243
  MagicLinkCE,
244
- async () => (await import("./index-1a7cc203.mjs")).MagicLinkEE
244
+ async () => (await import("./index-c145ae06.mjs")).MagicLinkEE
245
245
  );
246
246
  const postMutation = useMutation(
247
247
  (body) => {
@@ -653,7 +653,7 @@ const UsersListPageSwitch = () => {
653
653
  UserListPageCE,
654
654
  async () => (
655
655
  // eslint-disable-next-line import/no-cycle
656
- (await import("./index-9eb4c34d.mjs")).UserListPageEE
656
+ (await import("./index-27d910b7.mjs")).UserListPageEE
657
657
  )
658
658
  );
659
659
  if (!UsersListPage) {
@@ -673,4 +673,4 @@ export {
673
673
  UserListPageCE as U,
674
674
  index as i
675
675
  };
676
- //# sourceMappingURL=index-0778959c.mjs.map
676
+ //# sourceMappingURL=index-aa35df09.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-0778959c.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Button } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nexport const CreateActionCE = ({ onClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nCreateActionCE.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\n\nimport {\n BaseCheckbox,\n Box,\n Flex,\n IconButton,\n Tbody,\n Td,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { getFullName } from '../../../../../../../utils/getFullName';\n\nconst TableRows = ({\n canDelete,\n headers,\n entriesToDelete,\n onClickDelete,\n onSelectRow,\n withMainAction,\n withBulkActions,\n rows,\n}) => {\n const {\n push,\n location: { pathname },\n } = useHistory();\n const { formatMessage } = useIntl();\n\n return (\n <Tbody>\n {rows.map((data) => {\n const isChecked = entriesToDelete.findIndex((id) => id === data.id) !== -1;\n\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => push(`${pathname}/${data.id}`),\n condition: withBulkActions,\n })}\n >\n {withMainAction && (\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n checked={isChecked}\n onChange={() => {\n onSelectRow({ name: data.id, value: !isChecked });\n }}\n />\n </Td>\n )}\n {headers.map(({ key, cellFormatter, name, ...rest }) => {\n return (\n <Td key={key}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(data, { key, name, formatMessage, ...rest })\n ) : (\n <Typography textColor=\"neutral800\">{data[name] || '-'}</Typography>\n )}\n </Td>\n );\n })}\n\n {withBulkActions && (\n <Td>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => push(`${pathname}/${data.id}`)}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Pencil />}\n />\n\n {canDelete && (\n <Box paddingLeft={1} {...stopPropagation}>\n <IconButton\n onClick={() => onClickDelete(data.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Trash />}\n />\n </Box>\n )}\n </Flex>\n </Td>\n )}\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n canDelete: false,\n entriesToDelete: [],\n onClickDelete() {},\n onSelectRow() {},\n rows: [],\n withBulkActions: false,\n withMainAction: false,\n};\n\nTableRows.propTypes = {\n canDelete: PropTypes.bool,\n entriesToDelete: PropTypes.array,\n headers: PropTypes.array.isRequired,\n onClickDelete: PropTypes.func,\n onSelectRow: PropTypes.func,\n rows: PropTypes.array,\n withBulkActions: PropTypes.bool,\n withMainAction: PropTypes.bool,\n};\n\nexport default TableRows;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nexport const FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nexport const ROLE_LAYOUT = [];\n\nexport const FORM_LAYOUT = [\n [\n {\n intlLabel: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n ],\n];\n\nexport const FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),\n});\n\nexport const STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n};\n","import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport {\n Form,\n GenericInput,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useEnterprise } from '../../../../../../hooks/useEnterprise';\nimport { MagicLinkCE } from '../../components/MagicLink';\nimport SelectRoles from '../../components/SelectRoles';\n\nimport { FORM_LAYOUT, FORM_SCHEMA, FORM_INITIAL_VALUES, ROLE_LAYOUT, STEPPER } from './constants';\n\nconst ModalForm = ({ onSuccess, onToggle }) => {\n const [currentStep, setStep] = useState('create');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [registrationToken, setRegistrationToken] = useState(null);\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { post } = useFetchClient();\n const roleLayout = useEnterprise(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, eeRoles];\n },\n\n defaultValue: [],\n }\n );\n const initialValues = useEnterprise(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink'\n )\n ).MagicLinkEE\n );\n const postMutation = useMutation(\n (body) => {\n return post('/admin/users', body);\n },\n {\n async onSuccess({ data }) {\n setRegistrationToken(data.data.registrationToken);\n\n await onSuccess();\n\n goNext();\n setIsSubmitting(false);\n },\n onError(err) {\n setIsSubmitting(false);\n\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n\n throw err;\n },\n onSettled() {\n unlockApp();\n },\n }\n );\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body, { setErrors }) => {\n lockApp();\n setIsSubmitting(true);\n try {\n await postMutation.mutateAsync(body);\n } catch (err) {\n unlockApp();\n\n if (err?.response?.data?.error.message === 'Email already taken') {\n setErrors({ email: err.response.data.error.message });\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n const endActions =\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n );\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Formik\n enableReinitialize\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n validateOnChange={false}\n >\n {({ errors, handleChange, values }) => {\n return (\n <Form>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n error={errors[input.name]}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={isDisabled}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={endActions}\n />\n </Form>\n );\n }}\n </Formik>\n </ModalLayout>\n );\n};\n\nModalForm.propTypes = {\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nexport default ModalForm;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 10,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","const displayedFilters = [\n {\n name: 'firstname',\n metadatas: { label: 'Firstname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'lastname',\n metadatas: { label: 'Lastname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'email',\n metadatas: { label: 'Email' },\n fieldSchema: { type: 'email' },\n },\n {\n name: 'username',\n metadatas: { label: 'Username' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'isActive',\n metadatas: { label: 'Active user' },\n fieldSchema: { type: 'boolean' },\n },\n];\n\nexport default displayedFilters;\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { Status } from '@strapi/helper-plugin';\n\nconst tableHeaders = [\n {\n name: 'firstname',\n key: 'firstname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n },\n {\n name: 'lastname',\n key: 'lastname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n },\n {\n key: 'email',\n name: 'email',\n metadatas: {\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n },\n {\n key: 'roles',\n name: 'roles',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n },\n cellFormatter({ roles }, { formatMessage }) {\n return (\n <Typography textColor=\"neutral800\">\n {roles\n .map((role) =>\n formatMessage({\n id: `Settings.permissions.users.${role.code}`,\n defaultMessage: role.name,\n })\n )\n .join(',\\n')}\n </Typography>\n );\n },\n },\n {\n key: 'username',\n name: 'username',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n },\n {\n key: 'isActive',\n name: 'isActive',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n },\n cellFormatter({ isActive }, { formatMessage }) {\n return (\n <Flex>\n <Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: isActive\n ? 'Settings.permissions.users.active'\n : 'Settings.permissions.users.inactive',\n defaultMessage: isActive ? 'Active' : 'Inactive',\n })}\n </Typography>\n </Flex>\n );\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useState } from 'react';\n\nimport { ActionLayout, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n DynamicTable,\n NoPermissions,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Filters from '../../../components/Filters';\n\nimport { CreateActionCE } from './CreateAction';\nimport TableRows from './DynamicTable/TableRows';\nimport ModalForm from './ModalForm';\nimport PaginationFooter from './PaginationFooter';\nimport displayedFilters from './utils/displayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst EE_LICENSE_LIMIT_QUERY_KEY = ['ee', 'license-limit-info'];\n\nexport const UserListPageCE = () => {\n const { post } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = useState(false);\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings.users);\n const queryClient = useQueryClient();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const {\n users,\n pagination,\n isError,\n isLoading,\n refetch: refetchAdminUsers,\n } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }), {\n cacheTime: 0,\n enabled: canRead,\n });\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction'\n )\n ).CreateActionEE\n );\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const deleteAllMutation = useMutation(\n async (ids) => {\n await post('/admin/users/batch-delete', { ids });\n },\n {\n async onSuccess() {\n await refetchAdminUsers();\n\n // Toggle enabled/ disabled state on the invite button\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n message: formatAPIError(error),\n defaultMessage: 'An error occured',\n },\n });\n },\n }\n );\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n {canRead && (\n <ActionLayout\n startActions={\n <>\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters displayedFilters={displayedFilters} />\n </>\n }\n />\n )}\n\n <ContentLayout canRead={canRead}>\n {!canRead && <NoPermissions />}\n {/* TODO: Replace error message with something better */}\n {isError && <div>TODO: An error occurred</div>}\n {canRead && (\n <>\n <DynamicTable\n contentType=\"Users\"\n isLoading={isLoading}\n onConfirmDeleteAll={deleteAllMutation.mutateAsync}\n onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n >\n <TableRows\n canDelete={canDelete}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n />\n </DynamicTable>\n\n {pagination && <PaginationFooter pagination={pagination} />}\n </>\n )}\n </ContentLayout>\n {isModalOpened && (\n <ModalForm\n onSuccess={async () => {\n await refetchAdminUsers();\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n }}\n onToggle={handleToggle}\n />\n )}\n </Main>\n );\n};\n\n// component which determines whether this page should render the CE or EE page\nconst UsersListPageSwitch = () => {\n const UsersListPage = useEnterprise(\n UserListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\nexport default UsersListPageSwitch;\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.users.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["qs","ListPage"],"mappings":"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"}
1
+ {"version":3,"file":"index-aa35df09.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js","../../admin/src/pages/SettingsPage/pages/Users/ListPage/index.js","../../admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Button } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nexport const CreateActionCE = ({ onClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nCreateActionCE.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n","import React from 'react';\n\nimport {\n BaseCheckbox,\n Box,\n Flex,\n IconButton,\n Tbody,\n Td,\n Tr,\n Typography,\n} from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { getFullName } from '../../../../../../../utils/getFullName';\n\nconst TableRows = ({\n canDelete,\n headers,\n entriesToDelete,\n onClickDelete,\n onSelectRow,\n withMainAction,\n withBulkActions,\n rows,\n}) => {\n const {\n push,\n location: { pathname },\n } = useHistory();\n const { formatMessage } = useIntl();\n\n return (\n <Tbody>\n {rows.map((data) => {\n const isChecked = entriesToDelete.findIndex((id) => id === data.id) !== -1;\n\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => push(`${pathname}/${data.id}`),\n condition: withBulkActions,\n })}\n >\n {withMainAction && (\n <Td {...stopPropagation}>\n <BaseCheckbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n checked={isChecked}\n onChange={() => {\n onSelectRow({ name: data.id, value: !isChecked });\n }}\n />\n </Td>\n )}\n {headers.map(({ key, cellFormatter, name, ...rest }) => {\n return (\n <Td key={key}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(data, { key, name, formatMessage, ...rest })\n ) : (\n <Typography textColor=\"neutral800\">{data[name] || '-'}</Typography>\n )}\n </Td>\n );\n })}\n\n {withBulkActions && (\n <Td>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => push(`${pathname}/${data.id}`)}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Pencil />}\n />\n\n {canDelete && (\n <Box paddingLeft={1} {...stopPropagation}>\n <IconButton\n onClick={() => onClickDelete(data.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getFullName(data.firstname, data.lastname) }\n )}\n noBorder\n icon={<Trash />}\n />\n </Box>\n )}\n </Flex>\n </Td>\n )}\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n canDelete: false,\n entriesToDelete: [],\n onClickDelete() {},\n onSelectRow() {},\n rows: [],\n withBulkActions: false,\n withMainAction: false,\n};\n\nTableRows.propTypes = {\n canDelete: PropTypes.bool,\n entriesToDelete: PropTypes.array,\n headers: PropTypes.array.isRequired,\n onClickDelete: PropTypes.func,\n onSelectRow: PropTypes.func,\n rows: PropTypes.array,\n withBulkActions: PropTypes.bool,\n withMainAction: PropTypes.bool,\n};\n\nexport default TableRows;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nexport const FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nexport const ROLE_LAYOUT = [];\n\nexport const FORM_LAYOUT = [\n [\n {\n intlLabel: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n {\n intlLabel: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'text',\n size: {\n col: 6,\n xs: 12,\n },\n },\n ],\n [\n {\n intlLabel: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email',\n size: {\n col: 6,\n xs: 12,\n },\n required: true,\n },\n ],\n];\n\nexport const FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),\n});\n\nexport const STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n};\n","import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport {\n Form,\n GenericInput,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n} from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { useEnterprise } from '../../../../../../hooks/useEnterprise';\nimport { MagicLinkCE } from '../../components/MagicLink';\nimport SelectRoles from '../../components/SelectRoles';\n\nimport { FORM_LAYOUT, FORM_SCHEMA, FORM_INITIAL_VALUES, ROLE_LAYOUT, STEPPER } from './constants';\n\nconst ModalForm = ({ onSuccess, onToggle }) => {\n const [currentStep, setStep] = useState('create');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [registrationToken, setRegistrationToken] = useState(null);\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { post } = useFetchClient();\n const roleLayout = useEnterprise(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, eeRoles];\n },\n\n defaultValue: [],\n }\n );\n const initialValues = useEnterprise(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLink'\n )\n ).MagicLinkEE\n );\n const postMutation = useMutation(\n (body) => {\n return post('/admin/users', body);\n },\n {\n async onSuccess({ data }) {\n setRegistrationToken(data.data.registrationToken);\n\n await onSuccess();\n\n goNext();\n setIsSubmitting(false);\n },\n onError(err) {\n setIsSubmitting(false);\n\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n\n throw err;\n },\n onSettled() {\n unlockApp();\n },\n }\n );\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body, { setErrors }) => {\n lockApp();\n setIsSubmitting(true);\n try {\n await postMutation.mutateAsync(body);\n } catch (err) {\n unlockApp();\n\n if (err?.response?.data?.error.message === 'Email already taken') {\n setErrors({ email: err.response.data.error.message });\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n const endActions =\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n );\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Formik\n enableReinitialize\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n validateOnChange={false}\n >\n {({ errors, handleChange, values }) => {\n return (\n <Form>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n error={errors[input.name]}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles\n disabled={isDisabled}\n error={errors.roles}\n onChange={handleChange}\n value={values.roles}\n />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map((input) => {\n return (\n <GridItem key={input.name} {...input.size}>\n <GenericInput\n {...input}\n disabled={isDisabled}\n onChange={handleChange}\n value={values[input.name]}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={endActions}\n />\n </Form>\n );\n }}\n </Formik>\n </ModalLayout>\n );\n};\n\nModalForm.propTypes = {\n onToggle: PropTypes.func.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nexport default ModalForm;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 10,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\n","const displayedFilters = [\n {\n name: 'firstname',\n metadatas: { label: 'Firstname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'lastname',\n metadatas: { label: 'Lastname' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'email',\n metadatas: { label: 'Email' },\n fieldSchema: { type: 'email' },\n },\n {\n name: 'username',\n metadatas: { label: 'Username' },\n fieldSchema: { type: 'string' },\n },\n {\n name: 'isActive',\n metadatas: { label: 'Active user' },\n fieldSchema: { type: 'boolean' },\n },\n];\n\nexport default displayedFilters;\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { Status } from '@strapi/helper-plugin';\n\nconst tableHeaders = [\n {\n name: 'firstname',\n key: 'firstname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n },\n {\n name: 'lastname',\n key: 'lastname',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n },\n {\n key: 'email',\n name: 'email',\n metadatas: {\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n },\n {\n key: 'roles',\n name: 'roles',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n },\n cellFormatter({ roles }, { formatMessage }) {\n return (\n <Typography textColor=\"neutral800\">\n {roles\n .map((role) =>\n formatMessage({\n id: `Settings.permissions.users.${role.code}`,\n defaultMessage: role.name,\n })\n )\n .join(',\\n')}\n </Typography>\n );\n },\n },\n {\n key: 'username',\n name: 'username',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n },\n {\n key: 'isActive',\n name: 'isActive',\n metadatas: {\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n },\n cellFormatter({ isActive }, { formatMessage }) {\n return (\n <Flex>\n <Status isActive={isActive} variant={isActive ? 'success' : 'danger'} />\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: isActive\n ? 'Settings.permissions.users.active'\n : 'Settings.permissions.users.inactive',\n defaultMessage: isActive ? 'Active' : 'Inactive',\n })}\n </Typography>\n </Flex>\n );\n },\n },\n];\n\nexport default tableHeaders;\n","import React, { useState } from 'react';\n\nimport { ActionLayout, ContentLayout, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n DynamicTable,\n NoPermissions,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useFocusWhenNavigate,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../hooks/useAdminUsers';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport Filters from '../../../components/Filters';\n\nimport { CreateActionCE } from './CreateAction';\nimport TableRows from './DynamicTable/TableRows';\nimport ModalForm from './ModalForm';\nimport PaginationFooter from './PaginationFooter';\nimport displayedFilters from './utils/displayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst EE_LICENSE_LIMIT_QUERY_KEY = ['ee', 'license-limit-info'];\n\nexport const UserListPageCE = () => {\n const { post } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = useState(false);\n const permissions = useSelector(selectAdminPermissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings.users);\n const queryClient = useQueryClient();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const {\n users,\n pagination,\n isError,\n isLoading,\n refetch: refetchAdminUsers,\n } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }), {\n cacheTime: 0,\n enabled: canRead,\n });\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction'\n )\n ).CreateActionEE\n );\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const deleteAllMutation = useMutation(\n async (ids) => {\n await post('/admin/users/batch-delete', { ids });\n },\n {\n async onSuccess() {\n await refetchAdminUsers();\n\n // Toggle enabled/ disabled state on the invite button\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n },\n onError(error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n message: formatAPIError(error),\n defaultMessage: 'An error occured',\n },\n });\n },\n }\n );\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name=\"Users\" />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n {canRead && (\n <ActionLayout\n startActions={\n <>\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters displayedFilters={displayedFilters} />\n </>\n }\n />\n )}\n\n <ContentLayout canRead={canRead}>\n {!canRead && <NoPermissions />}\n {/* TODO: Replace error message with something better */}\n {isError && <div>TODO: An error occurred</div>}\n {canRead && (\n <>\n <DynamicTable\n contentType=\"Users\"\n isLoading={isLoading}\n onConfirmDeleteAll={deleteAllMutation.mutateAsync}\n onConfirmDelete={(id) => deleteAllMutation.mutateAsync([id])}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n >\n <TableRows\n canDelete={canDelete}\n headers={headers}\n rows={users}\n withBulkActions\n withMainAction={canDelete}\n />\n </DynamicTable>\n\n {pagination && <PaginationFooter pagination={pagination} />}\n </>\n )}\n </ContentLayout>\n {isModalOpened && (\n <ModalForm\n onSuccess={async () => {\n await refetchAdminUsers();\n await queryClient.refetchQueries(EE_LICENSE_LIMIT_QUERY_KEY);\n }}\n onToggle={handleToggle}\n />\n )}\n </Main>\n );\n};\n\n// component which determines whether this page should render the CE or EE page\nconst UsersListPageSwitch = () => {\n const UsersListPage = useEnterprise(\n UserListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\nexport default UsersListPageSwitch;\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.users.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["qs","ListPage"],"mappings":"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"}
@@ -4,7 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const helperPlugin = require("@strapi/helper-plugin");
5
5
  const reactRedux = require("react-redux");
6
6
  const reactRouterDom = require("react-router-dom");
7
- const AuthenticatedApp = require("./AuthenticatedApp-31e6418d.js");
7
+ const AuthenticatedApp = require("./AuthenticatedApp-eea6970a.js");
8
8
  const React = require("react");
9
9
  const designSystem = require("@strapi/design-system");
10
10
  const Icons = require("@strapi/icons");
@@ -17,7 +17,7 @@ const yup = require("yup");
17
17
  require("react-query");
18
18
  require("semver/functions/lt");
19
19
  require("semver/functions/valid");
20
- require("./index-133699a3.js");
20
+ require("./index-2609696f.js");
21
21
  require("react-dom/client");
22
22
  require("invariant");
23
23
  require("lodash/isFunction");
@@ -291,4 +291,4 @@ const ProtectedEditPage = () => {
291
291
  return /* @__PURE__ */ jsxRuntime.jsx(EditPage, {});
292
292
  };
293
293
  exports.default = ProtectedEditPage;
294
- //# sourceMappingURL=index-eb59cabf.js.map
294
+ //# sourceMappingURL=index-b1141822.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-eb59cabf.js","sources":["../../admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nRoleForm.defaultProps = {\n disabled: false,\n role: null,\n values: { name: '', description: '' },\n};\nRoleForm.propTypes = {\n disabled: PropTypes.bool,\n errors: PropTypes.object.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n role: PropTypes.object,\n values: PropTypes.object,\n};\n\nexport default RoleForm;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport { Permissions, RoleForm } from './components';\nimport schema from './utils/schema';\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/roles/:id');\n const { put } = useFetchClient();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const permissionsRef = useRef();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { trackUsage } = useTracking();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(id, {\n cacheTime: 0,\n });\n\n const {\n roles: [role = {}],\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n const { permissions, isLoading: isLoadingPermissions } = useAdminRolePermissions(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n // TODO: this should use a react-query mutation\n const handleEditRoleSubmit = async (data) => {\n try {\n lockApp();\n setIsSubmiting(true);\n\n const { permissionsToSend, didUpdateConditions } = permissionsRef.current.getPermissions();\n\n await put(`/admin/roles/${id}`, data);\n\n if (role.code !== 'strapi-super-admin') {\n await put(`/admin/roles/${id}/permissions`, {\n permissions: permissionsToSend,\n });\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n } finally {\n setIsSubmiting(false);\n unlockApp();\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n enableReinitialize\n initialValues={{\n name: role.name,\n description: role.description,\n }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n disabled={role.code === 'strapi-super-admin'}\n onClick={handleSubmit}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n isLoading={isRoleLoading || isLoadingPermissions}\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n {!isLoadingPermissionsLayout && !isRoleLoading && !isLoadingPermissions ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default EditPage;\n","import React from 'react';\n\nimport { LoadingIndicatorPage, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC({\n read: permissions.settings.roles.read,\n update: permissions.settings.roles.update,\n });\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to=\"/\" />;\n }\n\n return <EditPage />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","PropTypes","yup","translatedErrors","useNotification","useRouteMatch","useFetchClient","useState","useRef","useOverlayBlocker","useTracking","useAPIErrorHandler","useAdminRolePermissionLayout","useAdminRoles","useAdminRolePermissions","Main","SettingsPageTitle","Formik","HeaderLayout","Link","ArrowLeft","ContentLayout","Permissions","LoadingIndicatorPage","useSelector","selectAdminPermissions","useRBAC","Redirect"],"mappings":"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"}
1
+ {"version":3,"file":"index-b1141822.js","sources":["../../admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nRoleForm.defaultProps = {\n disabled: false,\n role: null,\n values: { name: '', description: '' },\n};\nRoleForm.propTypes = {\n disabled: PropTypes.bool,\n errors: PropTypes.object.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n role: PropTypes.object,\n values: PropTypes.object,\n};\n\nexport default RoleForm;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport { Permissions, RoleForm } from './components';\nimport schema from './utils/schema';\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/roles/:id');\n const { put } = useFetchClient();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const permissionsRef = useRef();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { trackUsage } = useTracking();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(id, {\n cacheTime: 0,\n });\n\n const {\n roles: [role = {}],\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n const { permissions, isLoading: isLoadingPermissions } = useAdminRolePermissions(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n // TODO: this should use a react-query mutation\n const handleEditRoleSubmit = async (data) => {\n try {\n lockApp();\n setIsSubmiting(true);\n\n const { permissionsToSend, didUpdateConditions } = permissionsRef.current.getPermissions();\n\n await put(`/admin/roles/${id}`, data);\n\n if (role.code !== 'strapi-super-admin') {\n await put(`/admin/roles/${id}/permissions`, {\n permissions: permissionsToSend,\n });\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n } finally {\n setIsSubmiting(false);\n unlockApp();\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n enableReinitialize\n initialValues={{\n name: role.name,\n description: role.description,\n }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n disabled={role.code === 'strapi-super-admin'}\n onClick={handleSubmit}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n isLoading={isRoleLoading || isLoadingPermissions}\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n {!isLoadingPermissionsLayout && !isRoleLoading && !isLoadingPermissions ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default EditPage;\n","import React from 'react';\n\nimport { LoadingIndicatorPage, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC({\n read: permissions.settings.roles.read,\n update: permissions.settings.roles.update,\n });\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to=\"/\" />;\n }\n\n return <EditPage />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","PropTypes","yup","translatedErrors","useNotification","useRouteMatch","useFetchClient","useState","useRef","useOverlayBlocker","useTracking","useAPIErrorHandler","useAdminRolePermissionLayout","useAdminRoles","useAdminRolePermissions","Main","SettingsPageTitle","Formik","HeaderLayout","Link","ArrowLeft","ContentLayout","Permissions","LoadingIndicatorPage","useSelector","selectAdminPermissions","useRBAC","Redirect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,WAAW,CAAC,EAAE,UAAU,MAAM,QAAQ,QAAQ,UAAU,aAAa;AACnE,QAAA,EAAE,kBAAkBA,UAAAA;AAE1B,wCACGC,kBAAI,EAAA,YAAW,YAAW,SAAS,GAAG,QAAO,gBAAe,WAAS,MACpE,0CAACC,mBAAK,EAAA,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,IAACC,2BAAAA,KAAAD,aAAAA,MAAA,EAAK,gBAAe,iBACnB,UAAA;AAAA,MAAAC,gCAACF,aAAAA,KACC,EAAA,UAAA;AAAA,QAACG,2BAAAA,IAAAH,aAAAA,KAAA,EACC,yCAACI,aAAAA,YAAW,EAAA,YAAW,QACpB,UACG,OAAA,KAAK,OACL,cAAc;AAAA,UACZ,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB,GACP,EACF,CAAA;AAAA,QACAD,2BAAA,IAACH,aACC,KAAA,EAAA,UAAAG,2BAAAA,IAACC,aAAAA,YAAW,EAAA,WAAU,cAAa,SAAQ,MACxC,UAAA,OACG,KAAK,cACL,cAAc;AAAA,UACZ,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB,GACP,EACF,CAAA;AAAA,MAAA,GACF;AAAA,MACCD,2BAAA,IAAAE,aAAA,QAAA,EAAO,UAAQ,MAAC,SAAQ,aACtB,UAAA;AAAA,QACC;AAAA,UACE,IAAI;AAAA,UACJ,gBACE;AAAA,QACJ;AAAA,QACA,EAAE,QAAQ,KAAK,WAAW;AAAA,MAAA,GAE9B;AAAA,IAAA,GACF;AAAA,IACAH,2BAAAA,KAACI,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,MAACH,2BAAAA,IAAAI,aAAAA,UAAA,EAAS,KAAK,GACb,UAAAJ,2BAAA;AAAA,QAACK,aAAA;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,OAAO,OAAO,QAAQ,cAAc,EAAE,IAAI,OAAO,MAAM;AAAA,UACvD,OAAO,cAAc;AAAA,YACnB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UACD;AAAA,UACA;AAAA,UACA,UAAQ;AAAA,UACR,OAAO,OAAO,QAAQ;AAAA,QAAA;AAAA,MAAA,GAE1B;AAAA,MACAL,2BAAAA,IAACI,aAAAA,UAAS,EAAA,KAAK,GACb,UAAAJ,2BAAA;AAAA,QAACM,aAAA;AAAA,QAAA;AAAA,UACC;AAAA,UACA,OAAO,cAAc;AAAA,YACnB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UACD,IAAG;AAAA,UACH,OAAO,OAAO,QAAQ,cAAc,EAAE,IAAI,OAAO,MAAM;AAAA,UACvD;AAAA,UACA;AAAA,UAEC,iBAAO,eAAe;AAAA,QAAA;AAAA,MAAA,GAE3B;AAAA,IAAA,GACF;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,QAAQ,EAAE,MAAM,IAAI,aAAa,GAAG;AACtC;AACA,SAAS,YAAY;AAAA,EACnB,UAAUC,mBAAU,QAAA;AAAA,EACpB,QAAQA,mBAAAA,QAAU,OAAO;AAAA,EACzB,QAAQA,mBAAAA,QAAU,KAAK;AAAA,EACvB,UAAUA,mBAAAA,QAAU,KAAK;AAAA,EACzB,MAAMA,mBAAU,QAAA;AAAA,EAChB,QAAQA,mBAAU,QAAA;AACpB;ACrGA,MAAM,SAASC,eAAI,OAAO,EAAE,MAAM;AAAA,EAChC,MAAMA,eAAI,OAAA,EAAS,SAASC,aAAAA,iBAAiB,QAAQ;AACvD,CAAC;ACoBD,MAAM,WAAW,MAAM;AACrB,QAAM,qBAAqBC,aAAAA;AACrB,QAAA,EAAE,kBAAkBd,UAAAA;AACpB,QAAA;AAAA,IACJ,QAAQ,EAAE,GAAG;AAAA,EAAA,IACXe,eAAAA,cAAc,qBAAqB;AACjC,QAAA,EAAE,QAAQC,aAAAA;AAChB,QAAM,CAAC,cAAc,cAAc,IAAIC,eAAS,KAAK;AACrD,QAAM,iBAAiBC,MAAAA;AACvB,QAAM,EAAE,SAAS,UAAU,IAAIC,aAAkB,kBAAA;AAC3C,QAAA,EAAE,eAAeC,aAAAA;AACjB,QAAA,EAAE,mBAAmBC,aAAAA;AAE3B,QAAM,EAAE,WAAW,4BAA4B,MAAM,kBAAkB,IACrEC,qDAA6B,IAAI;AAAA,IAC/B,WAAW;AAAA,EAAA,CACZ;AAEG,QAAA;AAAA,IACJ,OAAO,CAAC,OAAO,EAAE;AAAA,IACjB,WAAW;AAAA,IACX,SAAS;AAAA,EAAA,IACPC,cAAA;AAAA,IACF,EAAE,GAAG;AAAA,IACL;AAAA,MACE,WAAW;AAAA,IACb;AAAA,EAAA;AAGF,QAAM,EAAE,aAAa,WAAW,qBAAyB,IAAAC,wBAAA;AAAA,IACvD,EAAE,GAAG;AAAA,IACL;AAAA,MACE,WAAW;AAAA,IACb;AAAA,EAAA;AAII,QAAA,uBAAuB,OAAO,SAAS;AACvC,QAAA;AACM;AACR,qBAAe,IAAI;AAEnB,YAAM,EAAE,mBAAmB,oBAAA,IAAwB,eAAe,QAAQ;AAE1E,YAAM,IAAI,gBAAgB,EAAE,IAAI,IAAI;AAEhC,UAAA,KAAK,SAAS,sBAAsB;AAChC,cAAA,IAAI,gBAAgB,EAAE,gBAAgB;AAAA,UAC1C,aAAa;AAAA,QAAA,CACd;AAED,YAAI,qBAAqB;AACvB,qBAAW,qBAAqB;AAAA,QAClC;AAAA,MACF;AAEA,qBAAe,QAAQ;AAEvB,YAAM,YAAY;AAEC,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,EAAE,IAAI,6BAA6B;AAAA,MAAA,CAC7C;AAAA,aACM,OAAO;AACK,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,eAAe,KAAK;AAAA,MAAA,CAC9B;AAAA,IAAA,UACD;AACA,qBAAe,KAAK;AACV;IACZ;AAAA,EAAA;AAGF,QAAM,iBAAiB,CAAC,iBAAiB,KAAK,SAAS;AAEvD,yCACGC,mBACC,EAAA,UAAA;AAAA,IAACrB,2BAAAA,IAAAsB,aAAA,mBAAA,EAAkB,MAAK,QAAQ,CAAA;AAAA,IAChCtB,2BAAA;AAAA,MAACuB,OAAA;AAAA,MAAA;AAAA,QACC,oBAAkB;AAAA,QAClB,eAAe;AAAA,UACb,MAAM,KAAK;AAAA,UACX,aAAa,KAAK;AAAA,QACpB;AAAA,QACA,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAEjB,UAAA,CAAC,EAAE,cAAc,QAAQ,QAAQ,cAAc,WAC9C,MAAAxB,2BAAA,KAAC,QAAK,EAAA,UAAU,cACd,UAAA;AAAA,UAAAC,2BAAA;AAAA,YAACwB,aAAA;AAAA,YAAA;AAAA,cACC,eACExB,2BAAA,IAACF,aAAK,MAAA,EAAA,KAAK,GACT,UAAAE,2BAAA;AAAA,gBAACE,aAAA;AAAA,gBAAA;AAAA,kBACC,UAAU,KAAK,SAAS;AAAA,kBACxB,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT,MAAK;AAAA,kBAEJ,UAAc,cAAA;AAAA,oBACb,IAAI;AAAA,oBACJ,gBAAgB;AAAA,kBAAA,CACjB;AAAA,gBAAA;AAAA,cAAA,GAEL;AAAA,cAEF,OAAO,cAAc;AAAA,gBACnB,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,cACD,UAAU,cAAc;AAAA,gBACtB,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,cACD,iDACGuB,mBAAK,EAAA,0CAAYC,iBAAU,CAAA,CAAA,GAAI,IAAG,mBAChC,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cACjB,CAAA,GACH;AAAA,YAAA;AAAA,UAEJ;AAAA,UACA1B,2BAAAA,IAAC2B,aAAAA,iBACC,UAAC5B,2BAAAA,KAAAD,aAAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UAAA;AAAA,YAAAE,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,iBAAiB;AAAA,gBAC5B,UAAU;AAAA,gBACV;AAAA,gBACA;AAAA,gBACA,UAAU;AAAA,gBACV,QAAQ;AAAA,gBACR;AAAA,cAAA;AAAA,YACF;AAAA,YACC,CAAC,8BAA8B,CAAC,iBAAiB,CAAC,uBACjDA,2BAAAA,IAACH,aAAAA,KAAI,EAAA,QAAO,gBAAe,WAAS,MAClC,UAAAG,2BAAA;AAAA,cAAC4B,wBAAA;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA,KAAK;AAAA,gBACL,QAAQ;AAAA,cAAA;AAAA,YAAA,EAEZ,CAAA,IAEC5B,2BAAAA,IAAAH,aAAA,KAAA,EAAI,YAAW,YAAW,SAAS,GAAG,QAAO,gBAAe,WAAS,MACpE,UAAAG,2BAAAA,IAAC6B,oCAAqB,CAAA,GACxB;AAAA,UAAA,EAAA,CAEJ,EACF,CAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF,EAAA,CAAA;AAEJ;AC7KA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAcC,uBAAYC,iBAAAA,sBAAsB;AAEhD,QAAA;AAAA,IACJ;AAAA,IACA,gBAAgB,EAAE,SAAS,UAAU;AAAA,MACnCC,qBAAQ;AAAA,IACV,MAAM,YAAY,SAAS,MAAM;AAAA,IACjC,QAAQ,YAAY,SAAS,MAAM;AAAA,EAAA,CACpC;AAED,MAAI,WAAW;AACb,0CAAQH,mCAAqB,CAAA,CAAA;AAAA,EAC/B;AAEI,MAAA,CAAC,WAAW,CAAC,WAAW;AACnB,WAAA7B,2BAAA,IAACiC,eAAS,UAAA,EAAA,IAAG,IAAI,CAAA;AAAA,EAC1B;AAEA,wCAAQ,UAAS,CAAA,CAAA;AACnB;;"}
@@ -3,13 +3,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const helperPlugin = require("@strapi/helper-plugin");
5
5
  const reactRedux = require("react-redux");
6
- const AuthenticatedApp = require("./AuthenticatedApp-31e6418d.js");
7
- const index = require("./index-be8eb534.js");
6
+ const AuthenticatedApp = require("./AuthenticatedApp-eea6970a.js");
7
+ const index = require("./index-3266a985.js");
8
8
  require("react");
9
9
  require("react-query");
10
10
  require("semver/functions/lt");
11
11
  require("semver/functions/valid");
12
- require("./index-133699a3.js");
12
+ require("./index-2609696f.js");
13
13
  require("react-dom/client");
14
14
  require("@strapi/design-system");
15
15
  require("invariant");
@@ -44,4 +44,4 @@ const ProtectedCreateView = () => {
44
44
  return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: permissions.settings.webhooks.create, children: /* @__PURE__ */ jsxRuntime.jsx(index.EditView, {}) });
45
45
  };
46
46
  exports.default = ProtectedCreateView;
47
- //# sourceMappingURL=index-148939b0.js.map
47
+ //# sourceMappingURL=index-b4277486.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-148939b0.js","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedCreateView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.create}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedCreateView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,sBAAsB,MAAM;AAC1B,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,qCAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAACD,2BAAA,IAAAE,MAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"index-b4277486.js","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedCreateView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.create}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedCreateView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,sBAAsB,MAAM;AAC1B,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,qCAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAACD,2BAAA,IAAAE,MAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}
@@ -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-52d37e32.mjs";
4
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-1e10546a.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-ce41b6f0.mjs";
16
+ import "./index-83133812.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-03e8b9e3.mjs.map
362
+ //# sourceMappingURL=index-b51842fb.mjs.map