@strapi/admin 4.15.5-alpha.5 → 4.15.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-eea6970a.js → AuthenticatedApp-61dfdab8.js} +21 -21
  2. package/dist/_chunks/{AuthenticatedApp-eea6970a.js.map → AuthenticatedApp-61dfdab8.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-1e10546a.mjs → AuthenticatedApp-da1595e9.mjs} +21 -21
  4. package/dist/_chunks/{AuthenticatedApp-1e10546a.mjs.map → AuthenticatedApp-da1595e9.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-970b8c5a.mjs → HomePage-2690d237.mjs} +4 -4
  6. package/dist/_chunks/{HomePage-970b8c5a.mjs.map → HomePage-2690d237.mjs.map} +1 -1
  7. package/dist/_chunks/{HomePage-96c4aa5b.mjs → HomePage-3792b299.mjs} +4 -4
  8. package/dist/_chunks/{HomePage-96c4aa5b.mjs.map → HomePage-3792b299.mjs.map} +1 -1
  9. package/dist/_chunks/{HomePage-3ce777a2.js → HomePage-48934b34.js} +4 -4
  10. package/dist/_chunks/{HomePage-3ce777a2.js.map → HomePage-48934b34.js.map} +1 -1
  11. package/dist/_chunks/{HomePage-ec67248d.js → HomePage-f3052b59.js} +4 -4
  12. package/dist/_chunks/{HomePage-ec67248d.js.map → HomePage-f3052b59.js.map} +1 -1
  13. package/dist/_chunks/{InstalledPluginsPage-7743670e.mjs → InstalledPluginsPage-3bd06321.mjs} +3 -3
  14. package/dist/_chunks/{InstalledPluginsPage-7743670e.mjs.map → InstalledPluginsPage-3bd06321.mjs.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-1e0d2ae1.js → InstalledPluginsPage-da0780c1.js} +3 -3
  16. package/dist/_chunks/{InstalledPluginsPage-1e0d2ae1.js.map → InstalledPluginsPage-da0780c1.js.map} +1 -1
  17. package/dist/_chunks/{Login-a6af5d62.mjs → Login-8f68c65a.mjs} +2 -2
  18. package/dist/_chunks/{Login-a6af5d62.mjs.map → Login-8f68c65a.mjs.map} +1 -1
  19. package/dist/_chunks/{Login-04fc2757.js → Login-ab4b47ad.js} +2 -2
  20. package/dist/_chunks/{Login-04fc2757.js.map → Login-ab4b47ad.js.map} +1 -1
  21. package/dist/_chunks/{MarketplacePage-aeb425cc.js → MarketplacePage-935fca72.js} +3 -3
  22. package/dist/_chunks/{MarketplacePage-aeb425cc.js.map → MarketplacePage-935fca72.js.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-61d66050.mjs → MarketplacePage-95af86bb.mjs} +3 -3
  24. package/dist/_chunks/{MarketplacePage-61d66050.mjs.map → MarketplacePage-95af86bb.mjs.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-862401de.mjs → ProfilePage-20de1b54.mjs} +3 -3
  26. package/dist/_chunks/{ProfilePage-862401de.mjs.map → ProfilePage-20de1b54.mjs.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-f3915e86.js → ProfilePage-b8b29c4d.js} +3 -3
  28. package/dist/_chunks/{ProfilePage-f3915e86.js.map → ProfilePage-b8b29c4d.js.map} +1 -1
  29. package/dist/_chunks/{constants-298d4e08.js → constants-008a1527.js} +5 -5
  30. package/dist/_chunks/{constants-298d4e08.js.map → constants-008a1527.js.map} +1 -1
  31. package/dist/_chunks/{constants-94ec0c39.mjs → constants-1d345364.mjs} +5 -5
  32. package/dist/_chunks/{constants-94ec0c39.mjs.map → constants-1d345364.mjs.map} +1 -1
  33. package/dist/_chunks/{constants-14dd24d9.mjs → constants-278adc05.mjs} +6 -6
  34. package/dist/_chunks/{constants-14dd24d9.mjs.map → constants-278adc05.mjs.map} +1 -1
  35. package/dist/_chunks/{constants-98046873.mjs → constants-29d123f8.mjs} +2 -2
  36. package/dist/_chunks/{constants-98046873.mjs.map → constants-29d123f8.mjs.map} +1 -1
  37. package/dist/_chunks/{constants-ca23be5d.js → constants-4be682e5.js} +2 -2
  38. package/dist/_chunks/{constants-ca23be5d.js.map → constants-4be682e5.js.map} +1 -1
  39. package/dist/_chunks/{constants-a0698a4a.js → constants-797ada28.js} +6 -6
  40. package/dist/_chunks/{constants-a0698a4a.js.map → constants-797ada28.js.map} +1 -1
  41. package/dist/_chunks/{constants-fb780d44.mjs → constants-db792b94.mjs} +3 -3
  42. package/dist/_chunks/{constants-fb780d44.mjs.map → constants-db792b94.mjs.map} +1 -1
  43. package/dist/_chunks/{constants-9ee3d5d7.js → constants-ec71917d.js} +3 -3
  44. package/dist/_chunks/{constants-9ee3d5d7.js.map → constants-ec71917d.js.map} +1 -1
  45. package/dist/_chunks/{index-4b12f2e9.mjs → index-003c2cab.mjs} +5 -5
  46. package/dist/_chunks/{index-4b12f2e9.mjs.map → index-003c2cab.mjs.map} +1 -1
  47. package/dist/_chunks/{index-e12cacd1.js → index-035f8c59.js} +3 -3
  48. package/dist/_chunks/{index-e12cacd1.js.map → index-035f8c59.js.map} +1 -1
  49. package/dist/_chunks/{index-5de6defe.mjs → index-039f8e26.mjs} +4 -4
  50. package/dist/_chunks/{index-5de6defe.mjs.map → index-039f8e26.mjs.map} +1 -1
  51. package/dist/_chunks/{index-ea2ed45d.js → index-0c9fceff.js} +5 -5
  52. package/dist/_chunks/{index-ea2ed45d.js.map → index-0c9fceff.js.map} +1 -1
  53. package/dist/_chunks/{index-2609696f.js → index-0ed05075.js} +4 -4
  54. package/dist/_chunks/{index-2609696f.js.map → index-0ed05075.js.map} +1 -1
  55. package/dist/_chunks/{index-bff8cad7.js → index-0fbbca7a.js} +3 -3
  56. package/dist/_chunks/{index-bff8cad7.js.map → index-0fbbca7a.js.map} +1 -1
  57. package/dist/_chunks/{index-ebd41ad5.mjs → index-154693de.mjs} +3 -3
  58. package/dist/_chunks/{index-ebd41ad5.mjs.map → index-154693de.mjs.map} +1 -1
  59. package/dist/_chunks/{index-a81ae30e.mjs → index-1932eedf.mjs} +3 -3
  60. package/dist/_chunks/{index-a81ae30e.mjs.map → index-1932eedf.mjs.map} +1 -1
  61. package/dist/_chunks/{index-92f311b0.mjs → index-1ebd9d8c.mjs} +5 -5
  62. package/dist/_chunks/{index-92f311b0.mjs.map → index-1ebd9d8c.mjs.map} +1 -1
  63. package/dist/_chunks/{index-51aa0dc6.js → index-1f4afa21.js} +3 -3
  64. package/dist/_chunks/{index-51aa0dc6.js.map → index-1f4afa21.js.map} +1 -1
  65. package/dist/_chunks/{index-ffafceee.js → index-25975989.js} +4 -4
  66. package/dist/_chunks/{index-ffafceee.js.map → index-25975989.js.map} +1 -1
  67. package/dist/_chunks/{index-75d51788.js → index-2b22b1a0.js} +5 -5
  68. package/dist/_chunks/{index-75d51788.js.map → index-2b22b1a0.js.map} +1 -1
  69. package/dist/_chunks/{index-5d3982dd.js → index-345c0ae9.js} +6 -6
  70. package/dist/_chunks/{index-5d3982dd.js.map → index-345c0ae9.js.map} +1 -1
  71. package/dist/_chunks/{index-5a15fb17.mjs → index-3c693658.mjs} +3 -3
  72. package/dist/_chunks/{index-5a15fb17.mjs.map → index-3c693658.mjs.map} +1 -1
  73. package/dist/_chunks/{index-372f70ce.mjs → index-40495ca1.mjs} +2 -2
  74. package/dist/_chunks/{index-372f70ce.mjs.map → index-40495ca1.mjs.map} +1 -1
  75. package/dist/_chunks/{index-6c56f4c2.mjs → index-40d047a8.mjs} +3 -3
  76. package/dist/_chunks/{index-6c56f4c2.mjs.map → index-40d047a8.mjs.map} +1 -1
  77. package/dist/_chunks/{index-9a307bbd.mjs → index-46138ec7.mjs} +4 -4
  78. package/dist/_chunks/{index-9a307bbd.mjs.map → index-46138ec7.mjs.map} +1 -1
  79. package/dist/_chunks/{index-b51842fb.mjs → index-46c3ee85.mjs} +3 -3
  80. package/dist/_chunks/{index-b51842fb.mjs.map → index-46c3ee85.mjs.map} +1 -1
  81. package/dist/_chunks/{index-c8abc905.mjs → index-4f557234.mjs} +3 -3
  82. package/dist/_chunks/{index-c8abc905.mjs.map → index-4f557234.mjs.map} +1 -1
  83. package/dist/_chunks/{index-6e082128.mjs → index-51986071.mjs} +3 -3
  84. package/dist/_chunks/{index-6e082128.mjs.map → index-51986071.mjs.map} +1 -1
  85. package/dist/_chunks/{index-8c004453.js → index-557e0c47.js} +2 -2
  86. package/dist/_chunks/{index-8c004453.js.map → index-557e0c47.js.map} +1 -1
  87. package/dist/_chunks/{index-04dc85bf.mjs → index-56b499fb.mjs} +5 -5
  88. package/dist/_chunks/{index-04dc85bf.mjs.map → index-56b499fb.mjs.map} +1 -1
  89. package/dist/_chunks/{index-f6e45499.js → index-5a5b0567.js} +20 -20
  90. package/dist/_chunks/{index-f6e45499.js.map → index-5a5b0567.js.map} +1 -1
  91. package/dist/_chunks/{index-27d910b7.mjs → index-6353193a.mjs} +5 -5
  92. package/dist/_chunks/{index-27d910b7.mjs.map → index-6353193a.mjs.map} +1 -1
  93. package/dist/_chunks/{index-527a80ef.mjs → index-6797e259.mjs} +3 -3
  94. package/dist/_chunks/{index-527a80ef.mjs.map → index-6797e259.mjs.map} +1 -1
  95. package/dist/_chunks/{index-435b6463.js → index-69d47db4.js} +3 -3
  96. package/dist/_chunks/{index-435b6463.js.map → index-69d47db4.js.map} +1 -1
  97. package/dist/_chunks/{index-b1141822.js → index-72494b79.js} +3 -3
  98. package/dist/_chunks/{index-b1141822.js.map → index-72494b79.js.map} +1 -1
  99. package/dist/_chunks/{index-008328ba.js → index-787a0db6.js} +5 -5
  100. package/dist/_chunks/{index-008328ba.js.map → index-787a0db6.js.map} +1 -1
  101. package/dist/_chunks/{index-cf35f9e7.js → index-7bfab5f5.js} +4 -4
  102. package/dist/_chunks/{index-cf35f9e7.js.map → index-7bfab5f5.js.map} +1 -1
  103. package/dist/_chunks/{index-7e1f48fc.mjs → index-81509193.mjs} +8 -8
  104. package/dist/_chunks/{index-7e1f48fc.mjs.map → index-81509193.mjs.map} +1 -1
  105. package/dist/_chunks/{index-e17a9e33.mjs → index-834fad5c.mjs} +5 -5
  106. package/dist/_chunks/{index-e17a9e33.mjs.map → index-834fad5c.mjs.map} +1 -1
  107. package/dist/_chunks/{index-8600b6e5.mjs → index-8e034257.mjs} +3 -3
  108. package/dist/_chunks/{index-8600b6e5.mjs.map → index-8e034257.mjs.map} +1 -1
  109. package/dist/_chunks/{index-15fddb85.mjs → index-9118a940.mjs} +4 -4
  110. package/dist/_chunks/{index-15fddb85.mjs.map → index-9118a940.mjs.map} +1 -1
  111. package/dist/_chunks/{index-3266a985.js → index-924a1288.js} +3 -3
  112. package/dist/_chunks/{index-3266a985.js.map → index-924a1288.js.map} +1 -1
  113. package/dist/_chunks/{index-a299ce97.js → index-9304d6de.js} +8 -8
  114. package/dist/_chunks/{index-a299ce97.js.map → index-9304d6de.js.map} +1 -1
  115. package/dist/_chunks/{index-7b5707cd.js → index-97a59f73.js} +4 -4
  116. package/dist/_chunks/{index-7b5707cd.js.map → index-97a59f73.js.map} +1 -1
  117. package/dist/_chunks/{index-b4277486.js → index-9c26fffe.js} +4 -4
  118. package/dist/_chunks/{index-b4277486.js.map → index-9c26fffe.js.map} +1 -1
  119. package/dist/_chunks/{index-f3c7f6a9.js → index-9f2d5dc8.js} +3 -3
  120. package/dist/_chunks/{index-f3c7f6a9.js.map → index-9f2d5dc8.js.map} +1 -1
  121. package/dist/_chunks/{index-92a2ece4.js → index-9f30a92e.js} +4 -4
  122. package/dist/_chunks/{index-92a2ece4.js.map → index-9f30a92e.js.map} +1 -1
  123. package/dist/_chunks/{index-aa35df09.mjs → index-a6f1ccf6.mjs} +6 -6
  124. package/dist/_chunks/{index-aa35df09.mjs.map → index-a6f1ccf6.mjs.map} +1 -1
  125. package/dist/_chunks/{index-e7e7f75d.mjs → index-a9625818.mjs} +5 -5
  126. package/dist/_chunks/{index-e7e7f75d.mjs.map → index-a9625818.mjs.map} +1 -1
  127. package/dist/_chunks/{index-401d5daa.js → index-b2d4d126.js} +5 -5
  128. package/dist/_chunks/{index-401d5daa.js.map → index-b2d4d126.js.map} +1 -1
  129. package/dist/_chunks/{index-c5ed938c.mjs → index-b42866c5.mjs} +2 -2
  130. package/dist/_chunks/{index-c5ed938c.mjs.map → index-b42866c5.mjs.map} +1 -1
  131. package/dist/_chunks/{index-83133812.mjs → index-b6ee936b.mjs} +4 -4
  132. package/dist/_chunks/{index-83133812.mjs.map → index-b6ee936b.mjs.map} +1 -1
  133. package/dist/_chunks/{index-392a9490.js → index-bac648de.js} +5 -5
  134. package/dist/_chunks/{index-392a9490.js.map → index-bac648de.js.map} +1 -1
  135. package/dist/_chunks/{index-56a6576d.js → index-bc709e72.js} +3 -3
  136. package/dist/_chunks/{index-56a6576d.js.map → index-bc709e72.js.map} +1 -1
  137. package/dist/_chunks/{index-0a328691.mjs → index-bde05e9e.mjs} +3 -3
  138. package/dist/_chunks/{index-0a328691.mjs.map → index-bde05e9e.mjs.map} +1 -1
  139. package/dist/_chunks/{index-a3bc2b4e.mjs → index-be3e5f69.mjs} +2 -2
  140. package/dist/_chunks/{index-a3bc2b4e.mjs.map → index-be3e5f69.mjs.map} +1 -1
  141. package/dist/_chunks/{index-7b53073e.js → index-bfb581a2.js} +3 -3
  142. package/dist/_chunks/{index-7b53073e.js.map → index-bfb581a2.js.map} +1 -1
  143. package/dist/_chunks/{index-470c6923.js → index-cbf9952d.js} +2 -2
  144. package/dist/_chunks/{index-470c6923.js.map → index-cbf9952d.js.map} +1 -1
  145. package/dist/_chunks/{index-80b911e7.mjs → index-cc38783c.mjs} +3 -3
  146. package/dist/_chunks/{index-80b911e7.mjs.map → index-cc38783c.mjs.map} +1 -1
  147. package/dist/_chunks/{index-6b269800.mjs → index-d2b3c398.mjs} +3 -3
  148. package/dist/_chunks/{index-6b269800.mjs.map → index-d2b3c398.mjs.map} +1 -1
  149. package/dist/_chunks/{index-1e7b6d32.js → index-d5f569ab.js} +5 -5
  150. package/dist/_chunks/{index-1e7b6d32.js.map → index-d5f569ab.js.map} +1 -1
  151. package/dist/_chunks/{index-e628615b.mjs → index-d9882c45.mjs} +4 -4
  152. package/dist/_chunks/{index-e628615b.mjs.map → index-d9882c45.mjs.map} +1 -1
  153. package/dist/_chunks/{index-65d8637e.js → index-e0e235a0.js} +3 -3
  154. package/dist/_chunks/{index-65d8637e.js.map → index-e0e235a0.js.map} +1 -1
  155. package/dist/_chunks/{index-da0be0d5.js → index-e34335f1.js} +3 -3
  156. package/dist/_chunks/{index-da0be0d5.js.map → index-e34335f1.js.map} +1 -1
  157. package/dist/_chunks/{index-9afe0455.js → index-eaff38ba.js} +3 -3
  158. package/dist/_chunks/{index-9afe0455.js.map → index-eaff38ba.js.map} +1 -1
  159. package/dist/_chunks/{index-1930d662.js → index-eebad65d.js} +3 -3
  160. package/dist/_chunks/{index-1930d662.js.map → index-eebad65d.js.map} +1 -1
  161. package/dist/_chunks/{index-c66a60bb.mjs → index-f3e7f8cc.mjs} +4 -4
  162. package/dist/_chunks/{index-c66a60bb.mjs.map → index-f3e7f8cc.mjs.map} +1 -1
  163. package/dist/_chunks/{index-c145ae06.mjs → index-f52ae628.mjs} +3 -3
  164. package/dist/_chunks/{index-c145ae06.mjs.map → index-f52ae628.mjs.map} +1 -1
  165. package/dist/_chunks/{index-eafb6c8c.mjs → index-f55a69e7.mjs} +4 -4
  166. package/dist/_chunks/{index-eafb6c8c.mjs.map → index-f55a69e7.mjs.map} +1 -1
  167. package/dist/_chunks/{index-7d60e3dc.mjs → index-f5b276a8.mjs} +20 -20
  168. package/dist/_chunks/{index-7d60e3dc.mjs.map → index-f5b276a8.mjs.map} +1 -1
  169. package/dist/_chunks/{index-b5ff3031.js → index-f7cf652c.js} +4 -4
  170. package/dist/_chunks/{index-b5ff3031.js.map → index-f7cf652c.js.map} +1 -1
  171. package/dist/_chunks/{index-9d9b9769.js → index-f7dbd21b.js} +2 -2
  172. package/dist/_chunks/{index-9d9b9769.js.map → index-f7dbd21b.js.map} +1 -1
  173. package/dist/_chunks/{schema-755747ac.js → schema-15e33d1c.js} +2 -2
  174. package/dist/_chunks/{schema-755747ac.js.map → schema-15e33d1c.js.map} +1 -1
  175. package/dist/_chunks/{schema-666ecce4.mjs → schema-a7f695ae.mjs} +2 -2
  176. package/dist/_chunks/{schema-666ecce4.mjs.map → schema-a7f695ae.mjs.map} +1 -1
  177. package/dist/_chunks/{validateWorkflow-e77a9ab3.mjs → validateWorkflow-2f84e76e.mjs} +3 -3
  178. package/dist/_chunks/{validateWorkflow-e77a9ab3.mjs.map → validateWorkflow-2f84e76e.mjs.map} +1 -1
  179. package/dist/_chunks/{validateWorkflow-ae45d3d4.js → validateWorkflow-6b5dffaf.js} +3 -3
  180. package/dist/_chunks/{validateWorkflow-ae45d3d4.js.map → validateWorkflow-6b5dffaf.js.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 +1 @@
1
- {"version":3,"file":"index-b5ff3031.js","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedEditView/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 ProtectedApiTokenCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].read}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenCreateView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,8BAA8B,MAAM;AAClC,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,aAAqB,sBAAA,EAAA,aAAa,YAAY,SAAS,YAAY,EAAE,MACpE,UAACD,2BAAA,IAAAE,MAAA,oBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"index-f7cf652c.js","sources":["../../admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedEditView/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 ProtectedApiTokenCreateView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings['api-tokens'].read}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedApiTokenCreateView;\n"],"names":["useSelector","selectAdminPermissions","jsx","CheckPagePermissions","EditView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,8BAA8B,MAAM;AAClC,QAAA,cAAcA,uBAAYC,iBAAAA,sBAAsB;AAGpD,SAAAC,2BAAA,IAACC,aAAqB,sBAAA,EAAA,aAAa,YAAY,SAAS,YAAY,EAAE,MACpE,UAACD,2BAAA,IAAAE,MAAA,oBAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;;"}
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const PropTypes = require("prop-types");
4
4
  const reactIntl = require("react-intl");
5
- const index = require("./index-2609696f.js");
5
+ const index = require("./index-0ed05075.js");
6
6
  const designSystem = require("@strapi/design-system");
7
7
  const helperPlugin = require("@strapi/helper-plugin");
8
8
  const Icons = require("@strapi/icons");
@@ -131,4 +131,4 @@ SelectRoles.propTypes = {
131
131
  exports.MagicLinkCE = MagicLinkCE;
132
132
  exports.MagicLinkWrapper = MagicLinkWrapper;
133
133
  exports.SelectRoles = SelectRoles;
134
- //# sourceMappingURL=index-9d9b9769.js.map
134
+ //# sourceMappingURL=index-f7dbd21b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-9d9b9769.js","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":["useNotification","useIntl","useClipboard","jsx","ContentBox","IconButton","Duplicate","PropTypes","getBasename","keyframes","styled","LoadingIcon","getFetchClient","useQuery","Select","Option"],"mappings":"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"}
1
+ {"version":3,"file":"index-f7dbd21b.js","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":["useNotification","useIntl","useClipboard","jsx","ContentBox","IconButton","Duplicate","PropTypes","getBasename","keyframes","styled","LoadingIcon","getFetchClient","useQuery","Select","Option"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  const React = require("react");
3
3
  const reactDnd = require("react-dnd");
4
4
  const toolkit = require("@reduxjs/toolkit");
5
- const index = require("./index-2609696f.js");
5
+ const index = require("./index-0ed05075.js");
6
6
  const helperPlugin = require("@strapi/helper-plugin");
7
7
  const get = require("lodash/get");
8
8
  const isBoolean = require("lodash/isBoolean");
@@ -511,4 +511,4 @@ exports.makeSelectModelLinks = makeSelectModelLinks;
511
511
  exports.selectAppDomain = selectAppDomain;
512
512
  exports.selectFieldSizes = selectFieldSizes;
513
513
  exports.useDragAndDrop = useDragAndDrop;
514
- //# sourceMappingURL=schema-755747ac.js.map
514
+ //# sourceMappingURL=schema-15e33d1c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-755747ac.js","sources":["../../admin/src/content-manager/utils/getTrad.js","../../admin/src/content-manager/contexts/Wysiwyg.js","../../admin/src/content-manager/hooks/useKeyboardDragAndDrop.js","../../admin/src/content-manager/hooks/useDragAndDrop.js","../../admin/src/content-manager/pages/App/selectors.js","../../admin/src/content-manager/utils/composeRefs.js","../../admin/src/content-manager/utils/isFieldTypeNumber.js","../../admin/src/content-manager/utils/schema.js"],"sourcesContent":["const getTrad = (id) => `content-manager.${id}`;\n\nexport default getTrad;\n","import { createContext } from 'react';\n\nconst WysiwygContext = createContext();\n\nexport default WysiwygContext;\n","import { useState } from 'react';\n\n/**\n * @typedef UseKeyboardDragAndDropCallbacks\n *\n * @type {{\n * onCancel?: (index: number) => void,\n * onDropItem?: (index: number) => void,\n * onGrabItem?: (index: number) => void,\n * onMoveItem: (newIndex: number, currentIndex: number) => void,\n * }}\n */\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n *\n * @type {(active: boolean, index: number, callbacks: UseKeyboardDragAndDropCallbacks) => (event: React.KeyboardEvent<HTMLButtonElement>) => void}\n */\nexport const useKeyboardDragAndDrop = (\n active,\n index,\n { onCancel, onDropItem, onGrabItem, onMoveItem }\n) => {\n const [isSelected, setIsSelected] = useState(false);\n /**\n * @type {(movement: 'UP' | 'DOWN') => void})}\n */\n const handleMove = (movement) => {\n if (!isSelected) {\n return;\n }\n\n if (movement === 'UP') {\n onMoveItem(index - 1, index);\n } else if (movement === 'DOWN') {\n onMoveItem(index + 1, index);\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n /**\n * @type {React.KeyboardEventHandler<HTMLButtonElement>}\n */\n const handleKeyDown = (e) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import { useRef } from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { useKeyboardDragAndDrop } from './useKeyboardDragAndDrop';\n\n/**\n * @typedef UseDragAndDropOptions\n *\n * @type {{\n * type?: string,\n * index: number,\n * item?: object,\n * onStart?: () => void,\n * onEnd?: () => void,\n * dropSensitivity?: 'regular' | 'immediate'\n * } & import('./useKeyboardDragAndDrop').UseKeyboardDragAndDropCallbacks}\n */\n\n/**\n * @typedef UseDragAndDropReturn\n *\n * @type {[props: {handlerId: import('dnd-core').Identifier, isDragging: boolean, handleKeyDown: (event: import('react').KeyboardEvent<HTMLButtonElement>) => void}, objectRef: React.RefObject<HTMLElement>, dropRef: import('react-dnd').ConnectDropTarget, dragRef: import('react-dnd').ConnectDragSource, dragPreviewRef: import('react-dnd').ConnectDragPreview]}\n */\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n *\n * @type {(active: boolean, options: UseDragAndDropOptions) => UseDragAndDropReturn}\n */\nexport const useDragAndDrop = (\n active,\n {\n type = 'STRAPI_DND',\n index,\n item = {},\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = 'regular',\n }\n) => {\n const objectRef = useRef(null);\n\n const [{ handlerId }, dropRef] = useDrop({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!objectRef.current) {\n return;\n }\n const dragIndex = item.index;\n const newInd = index;\n\n // Don't replace items with themselves\n if (dragIndex === newInd) {\n return;\n }\n\n if (dropSensitivity === 'regular') {\n const hoverBoundingRect = objectRef.current.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Dragging downwards\n if (dragIndex < newInd && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newInd && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newInd, dragIndex);\n item.index = newInd;\n },\n });\n\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is for useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [{ handlerId, isDragging, handleKeyDown }, objectRef, dropRef, dragRef, dragPreviewRef];\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { initialState } from './reducer';\n\nconst selectAppDomain = () => (state) => {\n return state['content-manager_app'] || initialState;\n};\n\nconst makeSelectApp = () =>\n createSelector(selectAppDomain(), (substate) => {\n return substate;\n });\n\nconst makeSelectModels = () => createSelector(selectAppDomain(), (state) => state.models);\n\nconst makeSelectModelLinks = () =>\n createSelector(selectAppDomain(), (state) => ({\n collectionTypeLinks: state.collectionTypeLinks,\n singleTypeLinks: state.singleTypeLinks,\n }));\n\nconst makeSelectModelAndComponentSchemas = () =>\n createSelector(selectAppDomain(), ({ components, models }) => ({\n schemas: [...components, ...models],\n }));\n\nconst selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes);\n\nexport default makeSelectApp;\nexport {\n makeSelectModelAndComponentSchemas,\n makeSelectModelLinks,\n makeSelectModels,\n selectAppDomain,\n selectFieldSizes,\n};\n","/**\n * @typedef PossibleRef<T>\n * @type {React.Ref<T> | undefined;}\n *\n * @typedef setRef\n * @type {<T>(ref: PossibleRef<T>, value: T) => React.RefCallback<T>}\n */\n\n/**\n * @type {setRef}\n */\nconst setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n};\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n *\n * @type {<T>(...refs: PossibleRef<T>[]) => (node: T) => void}\n */\nexport const composeRefs = (...refs) => {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n};\n","export default function isFieldTypeNumber(type) {\n return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);\n}\n","import { translatedErrors as errorsTrads } from '@strapi/helper-plugin';\nimport get from 'lodash/get';\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport isNaN from 'lodash/isNaN';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport isFieldTypeNumber from './isFieldTypeNumber';\n\nyup.addMethod(yup.mixed, 'defined', function () {\n return this.test('defined', errorsTrads.required, (value) => value !== undefined);\n});\n\nyup.addMethod(yup.array, 'notEmptyMin', function (min) {\n return this.test('notEmptyMin', errorsTrads.min, (value) => {\n if (isEmpty(value)) {\n return true;\n }\n\n return value.length >= min;\n });\n});\n\nyup.addMethod(yup.string, 'isInferior', function (message, max) {\n return this.test('isInferior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(value);\n });\n});\n\nyup.addMethod(yup.string, 'isSuperior', function (message, min) {\n return this.test('isSuperior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(value) >= toNumber(min);\n });\n});\n\nconst getAttributes = (data) => get(data, ['attributes'], {});\n\nconst createYupSchema = (\n model,\n { components },\n options = {\n isCreatingEntry: true,\n isDraft: true,\n isFromComponent: false,\n isJSONTestDisabled: false,\n }\n) => {\n const attributes = getAttributes(model);\n\n return yup.object().shape(\n Object.keys(attributes).reduce((acc, current) => {\n const attribute = attributes[current];\n\n if (\n attribute.type !== 'relation' &&\n attribute.type !== 'component' &&\n attribute.type !== 'dynamiczone'\n ) {\n const formatted = createYupSchemaAttribute(attribute.type, attribute, options);\n acc[current] = formatted;\n }\n\n if (attribute.type === 'relation') {\n acc[current] = [\n 'oneWay',\n 'oneToOne',\n 'manyToOne',\n 'oneToManyMorph',\n 'oneToOneMorph',\n ].includes(attribute.relationType)\n ? yup.object().nullable()\n : yup.array().nullable();\n }\n\n if (attribute.type === 'component') {\n const componentFieldSchema = createYupSchema(\n components[attribute.component],\n {\n components,\n },\n { ...options, isFromComponent: true }\n );\n\n if (attribute.repeatable === true) {\n const { min, max, required } = attribute;\n\n let componentSchema = yup.lazy((value) => {\n let baseSchema = yup.array().of(componentFieldSchema);\n\n if (min) {\n if (required) {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n } else if (required !== true && isEmpty(value)) {\n baseSchema = baseSchema.nullable();\n } else {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n }\n } else if (required && !options.isDraft) {\n baseSchema = baseSchema.min(1, errorsTrads.required);\n }\n\n if (max) {\n baseSchema = baseSchema.max(max, errorsTrads.max);\n }\n\n return baseSchema;\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n const componentSchema = yup.lazy((obj) => {\n if (obj !== undefined) {\n return attribute.required === true && !options.isDraft\n ? componentFieldSchema.defined()\n : componentFieldSchema.nullable();\n }\n\n return attribute.required === true ? yup.object().defined() : yup.object().nullable();\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n let dynamicZoneSchema = yup.array().of(\n yup.lazy(({ __component }) => {\n return createYupSchema(\n components[__component],\n { components },\n { ...options, isFromComponent: true }\n );\n })\n );\n\n const { max, min } = attribute;\n\n if (min) {\n if (attribute.required) {\n dynamicZoneSchema = dynamicZoneSchema\n .test('min', errorsTrads.min, (value) => {\n if (options.isCreatingEntry) {\n return value && value.length >= min;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null && value.length >= min;\n })\n .test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n } else {\n dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min);\n }\n } else if (attribute.required && !options.isDraft) {\n dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n }\n\n if (max) {\n dynamicZoneSchema = dynamicZoneSchema.max(max, errorsTrads.max);\n }\n\n acc[current] = dynamicZoneSchema;\n }\n\n return acc;\n }, {})\n );\n};\n\nconst createYupSchemaAttribute = (type, validations, options) => {\n let schema = yup.mixed();\n\n if (['string', 'uid', 'text', 'richtext', 'email', 'password', 'enumeration'].includes(type)) {\n schema = yup.string();\n }\n\n if (type === 'blocks') {\n schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n // Don't run validations on drafts\n if (options.isDraft) {\n return true;\n }\n\n // The backend validates the actual schema, check if a value different than null is not an array\n if (value && !Array.isArray(value)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'json') {\n schema = yup\n .mixed(errorsTrads.json)\n .test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n if (!value || !value.length) {\n return true;\n }\n\n try {\n JSON.parse(value);\n\n return true;\n } catch (err) {\n return false;\n }\n })\n .nullable()\n .test('required', errorsTrads.required, (value) => {\n if (validations.required && (!value || !value.length)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'email') {\n schema = schema.email(errorsTrads.email);\n }\n\n if (['number', 'integer', 'float', 'decimal'].includes(type)) {\n schema = yup\n .number()\n .transform((cv) => (isNaN(cv) ? undefined : cv))\n .typeError();\n }\n\n if (type === 'biginteger') {\n schema = yup.string().matches(/^-?\\d*$/);\n }\n\n if (['date', 'datetime'].includes(type)) {\n schema = yup.date();\n }\n\n Object.keys(validations).forEach((validation) => {\n const validationValue = validations[validation];\n\n if (\n !!validationValue ||\n (!isBoolean(validationValue) && Number.isInteger(Math.floor(validationValue))) ||\n validationValue === 0\n ) {\n switch (validation) {\n case 'required': {\n if (!options.isDraft) {\n if (type === 'password' && options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n }\n\n if (type !== 'password') {\n if (options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n } else {\n schema = schema.test('required', errorsTrads.required, (value) => {\n // Field is not touched and the user is editing the entry\n if (value === undefined && !options.isFromComponent) {\n return true;\n }\n\n if (isFieldTypeNumber(type)) {\n if (value === 0) {\n return true;\n }\n\n return !!value;\n }\n\n if (type === 'boolean') {\n // Boolean value can be undefined/unset in modifiedData when generated in a new component\n return value !== null && value !== undefined;\n }\n\n if (type === 'date' || type === 'datetime') {\n if (typeof value === 'string') {\n return !isEmpty(value);\n }\n\n return !isEmpty(value?.toString());\n }\n\n return !isEmpty(value);\n });\n }\n }\n }\n\n break;\n }\n\n case 'max': {\n if (type === 'biginteger') {\n schema = schema.isInferior(errorsTrads.max, validationValue);\n } else {\n schema = schema.max(validationValue, errorsTrads.max);\n }\n break;\n }\n case 'maxLength':\n schema = schema.max(validationValue, errorsTrads.maxLength);\n break;\n case 'min': {\n if (type === 'biginteger') {\n schema = schema.isSuperior(errorsTrads.min, validationValue);\n } else {\n schema = schema.min(validationValue, errorsTrads.min);\n }\n break;\n }\n case 'minLength': {\n if (!options.isDraft) {\n schema = schema.min(validationValue, errorsTrads.minLength);\n }\n break;\n }\n case 'regex':\n schema = schema.matches(new RegExp(validationValue), {\n message: errorsTrads.regex,\n excludeEmptyString: !validations.required,\n });\n break;\n case 'lowercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().lowercase();\n }\n break;\n case 'uppercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().uppercase();\n }\n break;\n case 'positive':\n if (isFieldTypeNumber(type)) {\n schema = schema.positive();\n }\n break;\n case 'negative':\n if (isFieldTypeNumber(type)) {\n schema = schema.negative();\n }\n break;\n default:\n schema = schema.nullable();\n }\n }\n });\n\n return schema;\n};\n\nexport default createYupSchema;\n"],"names":["createContext","index","useState","useRef","useDrop","item","useDrag","initialState","createSelector","yup","errorsTrads","isEmpty","toNumber","get","componentSchema","isNaN","isBoolean"],"mappings":"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"}
1
+ {"version":3,"file":"schema-15e33d1c.js","sources":["../../admin/src/content-manager/utils/getTrad.js","../../admin/src/content-manager/contexts/Wysiwyg.js","../../admin/src/content-manager/hooks/useKeyboardDragAndDrop.js","../../admin/src/content-manager/hooks/useDragAndDrop.js","../../admin/src/content-manager/pages/App/selectors.js","../../admin/src/content-manager/utils/composeRefs.js","../../admin/src/content-manager/utils/isFieldTypeNumber.js","../../admin/src/content-manager/utils/schema.js"],"sourcesContent":["const getTrad = (id) => `content-manager.${id}`;\n\nexport default getTrad;\n","import { createContext } from 'react';\n\nconst WysiwygContext = createContext();\n\nexport default WysiwygContext;\n","import { useState } from 'react';\n\n/**\n * @typedef UseKeyboardDragAndDropCallbacks\n *\n * @type {{\n * onCancel?: (index: number) => void,\n * onDropItem?: (index: number) => void,\n * onGrabItem?: (index: number) => void,\n * onMoveItem: (newIndex: number, currentIndex: number) => void,\n * }}\n */\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n *\n * @type {(active: boolean, index: number, callbacks: UseKeyboardDragAndDropCallbacks) => (event: React.KeyboardEvent<HTMLButtonElement>) => void}\n */\nexport const useKeyboardDragAndDrop = (\n active,\n index,\n { onCancel, onDropItem, onGrabItem, onMoveItem }\n) => {\n const [isSelected, setIsSelected] = useState(false);\n /**\n * @type {(movement: 'UP' | 'DOWN') => void})}\n */\n const handleMove = (movement) => {\n if (!isSelected) {\n return;\n }\n\n if (movement === 'UP') {\n onMoveItem(index - 1, index);\n } else if (movement === 'DOWN') {\n onMoveItem(index + 1, index);\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n /**\n * @type {React.KeyboardEventHandler<HTMLButtonElement>}\n */\n const handleKeyDown = (e) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import { useRef } from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { useKeyboardDragAndDrop } from './useKeyboardDragAndDrop';\n\n/**\n * @typedef UseDragAndDropOptions\n *\n * @type {{\n * type?: string,\n * index: number,\n * item?: object,\n * onStart?: () => void,\n * onEnd?: () => void,\n * dropSensitivity?: 'regular' | 'immediate'\n * } & import('./useKeyboardDragAndDrop').UseKeyboardDragAndDropCallbacks}\n */\n\n/**\n * @typedef UseDragAndDropReturn\n *\n * @type {[props: {handlerId: import('dnd-core').Identifier, isDragging: boolean, handleKeyDown: (event: import('react').KeyboardEvent<HTMLButtonElement>) => void}, objectRef: React.RefObject<HTMLElement>, dropRef: import('react-dnd').ConnectDropTarget, dragRef: import('react-dnd').ConnectDragSource, dragPreviewRef: import('react-dnd').ConnectDragPreview]}\n */\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n *\n * @type {(active: boolean, options: UseDragAndDropOptions) => UseDragAndDropReturn}\n */\nexport const useDragAndDrop = (\n active,\n {\n type = 'STRAPI_DND',\n index,\n item = {},\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = 'regular',\n }\n) => {\n const objectRef = useRef(null);\n\n const [{ handlerId }, dropRef] = useDrop({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!objectRef.current) {\n return;\n }\n const dragIndex = item.index;\n const newInd = index;\n\n // Don't replace items with themselves\n if (dragIndex === newInd) {\n return;\n }\n\n if (dropSensitivity === 'regular') {\n const hoverBoundingRect = objectRef.current.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Dragging downwards\n if (dragIndex < newInd && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newInd && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newInd, dragIndex);\n item.index = newInd;\n },\n });\n\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is for useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [{ handlerId, isDragging, handleKeyDown }, objectRef, dropRef, dragRef, dragPreviewRef];\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { initialState } from './reducer';\n\nconst selectAppDomain = () => (state) => {\n return state['content-manager_app'] || initialState;\n};\n\nconst makeSelectApp = () =>\n createSelector(selectAppDomain(), (substate) => {\n return substate;\n });\n\nconst makeSelectModels = () => createSelector(selectAppDomain(), (state) => state.models);\n\nconst makeSelectModelLinks = () =>\n createSelector(selectAppDomain(), (state) => ({\n collectionTypeLinks: state.collectionTypeLinks,\n singleTypeLinks: state.singleTypeLinks,\n }));\n\nconst makeSelectModelAndComponentSchemas = () =>\n createSelector(selectAppDomain(), ({ components, models }) => ({\n schemas: [...components, ...models],\n }));\n\nconst selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes);\n\nexport default makeSelectApp;\nexport {\n makeSelectModelAndComponentSchemas,\n makeSelectModelLinks,\n makeSelectModels,\n selectAppDomain,\n selectFieldSizes,\n};\n","/**\n * @typedef PossibleRef<T>\n * @type {React.Ref<T> | undefined;}\n *\n * @typedef setRef\n * @type {<T>(ref: PossibleRef<T>, value: T) => React.RefCallback<T>}\n */\n\n/**\n * @type {setRef}\n */\nconst setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n};\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n *\n * @type {<T>(...refs: PossibleRef<T>[]) => (node: T) => void}\n */\nexport const composeRefs = (...refs) => {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n};\n","export default function isFieldTypeNumber(type) {\n return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);\n}\n","import { translatedErrors as errorsTrads } from '@strapi/helper-plugin';\nimport get from 'lodash/get';\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport isNaN from 'lodash/isNaN';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport isFieldTypeNumber from './isFieldTypeNumber';\n\nyup.addMethod(yup.mixed, 'defined', function () {\n return this.test('defined', errorsTrads.required, (value) => value !== undefined);\n});\n\nyup.addMethod(yup.array, 'notEmptyMin', function (min) {\n return this.test('notEmptyMin', errorsTrads.min, (value) => {\n if (isEmpty(value)) {\n return true;\n }\n\n return value.length >= min;\n });\n});\n\nyup.addMethod(yup.string, 'isInferior', function (message, max) {\n return this.test('isInferior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(value);\n });\n});\n\nyup.addMethod(yup.string, 'isSuperior', function (message, min) {\n return this.test('isSuperior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(value) >= toNumber(min);\n });\n});\n\nconst getAttributes = (data) => get(data, ['attributes'], {});\n\nconst createYupSchema = (\n model,\n { components },\n options = {\n isCreatingEntry: true,\n isDraft: true,\n isFromComponent: false,\n isJSONTestDisabled: false,\n }\n) => {\n const attributes = getAttributes(model);\n\n return yup.object().shape(\n Object.keys(attributes).reduce((acc, current) => {\n const attribute = attributes[current];\n\n if (\n attribute.type !== 'relation' &&\n attribute.type !== 'component' &&\n attribute.type !== 'dynamiczone'\n ) {\n const formatted = createYupSchemaAttribute(attribute.type, attribute, options);\n acc[current] = formatted;\n }\n\n if (attribute.type === 'relation') {\n acc[current] = [\n 'oneWay',\n 'oneToOne',\n 'manyToOne',\n 'oneToManyMorph',\n 'oneToOneMorph',\n ].includes(attribute.relationType)\n ? yup.object().nullable()\n : yup.array().nullable();\n }\n\n if (attribute.type === 'component') {\n const componentFieldSchema = createYupSchema(\n components[attribute.component],\n {\n components,\n },\n { ...options, isFromComponent: true }\n );\n\n if (attribute.repeatable === true) {\n const { min, max, required } = attribute;\n\n let componentSchema = yup.lazy((value) => {\n let baseSchema = yup.array().of(componentFieldSchema);\n\n if (min) {\n if (required) {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n } else if (required !== true && isEmpty(value)) {\n baseSchema = baseSchema.nullable();\n } else {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n }\n } else if (required && !options.isDraft) {\n baseSchema = baseSchema.min(1, errorsTrads.required);\n }\n\n if (max) {\n baseSchema = baseSchema.max(max, errorsTrads.max);\n }\n\n return baseSchema;\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n const componentSchema = yup.lazy((obj) => {\n if (obj !== undefined) {\n return attribute.required === true && !options.isDraft\n ? componentFieldSchema.defined()\n : componentFieldSchema.nullable();\n }\n\n return attribute.required === true ? yup.object().defined() : yup.object().nullable();\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n let dynamicZoneSchema = yup.array().of(\n yup.lazy(({ __component }) => {\n return createYupSchema(\n components[__component],\n { components },\n { ...options, isFromComponent: true }\n );\n })\n );\n\n const { max, min } = attribute;\n\n if (min) {\n if (attribute.required) {\n dynamicZoneSchema = dynamicZoneSchema\n .test('min', errorsTrads.min, (value) => {\n if (options.isCreatingEntry) {\n return value && value.length >= min;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null && value.length >= min;\n })\n .test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n } else {\n dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min);\n }\n } else if (attribute.required && !options.isDraft) {\n dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n }\n\n if (max) {\n dynamicZoneSchema = dynamicZoneSchema.max(max, errorsTrads.max);\n }\n\n acc[current] = dynamicZoneSchema;\n }\n\n return acc;\n }, {})\n );\n};\n\nconst createYupSchemaAttribute = (type, validations, options) => {\n let schema = yup.mixed();\n\n if (['string', 'uid', 'text', 'richtext', 'email', 'password', 'enumeration'].includes(type)) {\n schema = yup.string();\n }\n\n if (type === 'blocks') {\n schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n // Don't run validations on drafts\n if (options.isDraft) {\n return true;\n }\n\n // The backend validates the actual schema, check if a value different than null is not an array\n if (value && !Array.isArray(value)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'json') {\n schema = yup\n .mixed(errorsTrads.json)\n .test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n if (!value || !value.length) {\n return true;\n }\n\n try {\n JSON.parse(value);\n\n return true;\n } catch (err) {\n return false;\n }\n })\n .nullable()\n .test('required', errorsTrads.required, (value) => {\n if (validations.required && (!value || !value.length)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'email') {\n schema = schema.email(errorsTrads.email);\n }\n\n if (['number', 'integer', 'float', 'decimal'].includes(type)) {\n schema = yup\n .number()\n .transform((cv) => (isNaN(cv) ? undefined : cv))\n .typeError();\n }\n\n if (type === 'biginteger') {\n schema = yup.string().matches(/^-?\\d*$/);\n }\n\n if (['date', 'datetime'].includes(type)) {\n schema = yup.date();\n }\n\n Object.keys(validations).forEach((validation) => {\n const validationValue = validations[validation];\n\n if (\n !!validationValue ||\n (!isBoolean(validationValue) && Number.isInteger(Math.floor(validationValue))) ||\n validationValue === 0\n ) {\n switch (validation) {\n case 'required': {\n if (!options.isDraft) {\n if (type === 'password' && options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n }\n\n if (type !== 'password') {\n if (options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n } else {\n schema = schema.test('required', errorsTrads.required, (value) => {\n // Field is not touched and the user is editing the entry\n if (value === undefined && !options.isFromComponent) {\n return true;\n }\n\n if (isFieldTypeNumber(type)) {\n if (value === 0) {\n return true;\n }\n\n return !!value;\n }\n\n if (type === 'boolean') {\n // Boolean value can be undefined/unset in modifiedData when generated in a new component\n return value !== null && value !== undefined;\n }\n\n if (type === 'date' || type === 'datetime') {\n if (typeof value === 'string') {\n return !isEmpty(value);\n }\n\n return !isEmpty(value?.toString());\n }\n\n return !isEmpty(value);\n });\n }\n }\n }\n\n break;\n }\n\n case 'max': {\n if (type === 'biginteger') {\n schema = schema.isInferior(errorsTrads.max, validationValue);\n } else {\n schema = schema.max(validationValue, errorsTrads.max);\n }\n break;\n }\n case 'maxLength':\n schema = schema.max(validationValue, errorsTrads.maxLength);\n break;\n case 'min': {\n if (type === 'biginteger') {\n schema = schema.isSuperior(errorsTrads.min, validationValue);\n } else {\n schema = schema.min(validationValue, errorsTrads.min);\n }\n break;\n }\n case 'minLength': {\n if (!options.isDraft) {\n schema = schema.min(validationValue, errorsTrads.minLength);\n }\n break;\n }\n case 'regex':\n schema = schema.matches(new RegExp(validationValue), {\n message: errorsTrads.regex,\n excludeEmptyString: !validations.required,\n });\n break;\n case 'lowercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().lowercase();\n }\n break;\n case 'uppercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().uppercase();\n }\n break;\n case 'positive':\n if (isFieldTypeNumber(type)) {\n schema = schema.positive();\n }\n break;\n case 'negative':\n if (isFieldTypeNumber(type)) {\n schema = schema.negative();\n }\n break;\n default:\n schema = schema.nullable();\n }\n }\n });\n\n return schema;\n};\n\nexport default createYupSchema;\n"],"names":["createContext","index","useState","useRef","useDrop","item","useDrag","initialState","createSelector","yup","errorsTrads","isEmpty","toNumber","get","componentSchema","isNaN","isBoolean"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createContext, useState, useRef } from "react";
2
2
  import { useDrop, useDrag } from "react-dnd";
3
3
  import { createSelector } from "@reduxjs/toolkit";
4
- import { J as initialState } from "./index-83133812.mjs";
4
+ import { J as initialState } from "./index-b6ee936b.mjs";
5
5
  import { translatedErrors } from "@strapi/helper-plugin";
6
6
  import get from "lodash/get";
7
7
  import isBoolean from "lodash/isBoolean";
@@ -487,4 +487,4 @@ export {
487
487
  selectFieldSizes as s,
488
488
  useDragAndDrop as u
489
489
  };
490
- //# sourceMappingURL=schema-666ecce4.mjs.map
490
+ //# sourceMappingURL=schema-a7f695ae.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-666ecce4.mjs","sources":["../../admin/src/content-manager/utils/getTrad.js","../../admin/src/content-manager/contexts/Wysiwyg.js","../../admin/src/content-manager/hooks/useKeyboardDragAndDrop.js","../../admin/src/content-manager/hooks/useDragAndDrop.js","../../admin/src/content-manager/pages/App/selectors.js","../../admin/src/content-manager/utils/composeRefs.js","../../admin/src/content-manager/utils/isFieldTypeNumber.js","../../admin/src/content-manager/utils/schema.js"],"sourcesContent":["const getTrad = (id) => `content-manager.${id}`;\n\nexport default getTrad;\n","import { createContext } from 'react';\n\nconst WysiwygContext = createContext();\n\nexport default WysiwygContext;\n","import { useState } from 'react';\n\n/**\n * @typedef UseKeyboardDragAndDropCallbacks\n *\n * @type {{\n * onCancel?: (index: number) => void,\n * onDropItem?: (index: number) => void,\n * onGrabItem?: (index: number) => void,\n * onMoveItem: (newIndex: number, currentIndex: number) => void,\n * }}\n */\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n *\n * @type {(active: boolean, index: number, callbacks: UseKeyboardDragAndDropCallbacks) => (event: React.KeyboardEvent<HTMLButtonElement>) => void}\n */\nexport const useKeyboardDragAndDrop = (\n active,\n index,\n { onCancel, onDropItem, onGrabItem, onMoveItem }\n) => {\n const [isSelected, setIsSelected] = useState(false);\n /**\n * @type {(movement: 'UP' | 'DOWN') => void})}\n */\n const handleMove = (movement) => {\n if (!isSelected) {\n return;\n }\n\n if (movement === 'UP') {\n onMoveItem(index - 1, index);\n } else if (movement === 'DOWN') {\n onMoveItem(index + 1, index);\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n /**\n * @type {React.KeyboardEventHandler<HTMLButtonElement>}\n */\n const handleKeyDown = (e) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import { useRef } from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { useKeyboardDragAndDrop } from './useKeyboardDragAndDrop';\n\n/**\n * @typedef UseDragAndDropOptions\n *\n * @type {{\n * type?: string,\n * index: number,\n * item?: object,\n * onStart?: () => void,\n * onEnd?: () => void,\n * dropSensitivity?: 'regular' | 'immediate'\n * } & import('./useKeyboardDragAndDrop').UseKeyboardDragAndDropCallbacks}\n */\n\n/**\n * @typedef UseDragAndDropReturn\n *\n * @type {[props: {handlerId: import('dnd-core').Identifier, isDragging: boolean, handleKeyDown: (event: import('react').KeyboardEvent<HTMLButtonElement>) => void}, objectRef: React.RefObject<HTMLElement>, dropRef: import('react-dnd').ConnectDropTarget, dragRef: import('react-dnd').ConnectDragSource, dragPreviewRef: import('react-dnd').ConnectDragPreview]}\n */\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n *\n * @type {(active: boolean, options: UseDragAndDropOptions) => UseDragAndDropReturn}\n */\nexport const useDragAndDrop = (\n active,\n {\n type = 'STRAPI_DND',\n index,\n item = {},\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = 'regular',\n }\n) => {\n const objectRef = useRef(null);\n\n const [{ handlerId }, dropRef] = useDrop({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!objectRef.current) {\n return;\n }\n const dragIndex = item.index;\n const newInd = index;\n\n // Don't replace items with themselves\n if (dragIndex === newInd) {\n return;\n }\n\n if (dropSensitivity === 'regular') {\n const hoverBoundingRect = objectRef.current.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Dragging downwards\n if (dragIndex < newInd && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newInd && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newInd, dragIndex);\n item.index = newInd;\n },\n });\n\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is for useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [{ handlerId, isDragging, handleKeyDown }, objectRef, dropRef, dragRef, dragPreviewRef];\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { initialState } from './reducer';\n\nconst selectAppDomain = () => (state) => {\n return state['content-manager_app'] || initialState;\n};\n\nconst makeSelectApp = () =>\n createSelector(selectAppDomain(), (substate) => {\n return substate;\n });\n\nconst makeSelectModels = () => createSelector(selectAppDomain(), (state) => state.models);\n\nconst makeSelectModelLinks = () =>\n createSelector(selectAppDomain(), (state) => ({\n collectionTypeLinks: state.collectionTypeLinks,\n singleTypeLinks: state.singleTypeLinks,\n }));\n\nconst makeSelectModelAndComponentSchemas = () =>\n createSelector(selectAppDomain(), ({ components, models }) => ({\n schemas: [...components, ...models],\n }));\n\nconst selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes);\n\nexport default makeSelectApp;\nexport {\n makeSelectModelAndComponentSchemas,\n makeSelectModelLinks,\n makeSelectModels,\n selectAppDomain,\n selectFieldSizes,\n};\n","/**\n * @typedef PossibleRef<T>\n * @type {React.Ref<T> | undefined;}\n *\n * @typedef setRef\n * @type {<T>(ref: PossibleRef<T>, value: T) => React.RefCallback<T>}\n */\n\n/**\n * @type {setRef}\n */\nconst setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n};\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n *\n * @type {<T>(...refs: PossibleRef<T>[]) => (node: T) => void}\n */\nexport const composeRefs = (...refs) => {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n};\n","export default function isFieldTypeNumber(type) {\n return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);\n}\n","import { translatedErrors as errorsTrads } from '@strapi/helper-plugin';\nimport get from 'lodash/get';\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport isNaN from 'lodash/isNaN';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport isFieldTypeNumber from './isFieldTypeNumber';\n\nyup.addMethod(yup.mixed, 'defined', function () {\n return this.test('defined', errorsTrads.required, (value) => value !== undefined);\n});\n\nyup.addMethod(yup.array, 'notEmptyMin', function (min) {\n return this.test('notEmptyMin', errorsTrads.min, (value) => {\n if (isEmpty(value)) {\n return true;\n }\n\n return value.length >= min;\n });\n});\n\nyup.addMethod(yup.string, 'isInferior', function (message, max) {\n return this.test('isInferior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(value);\n });\n});\n\nyup.addMethod(yup.string, 'isSuperior', function (message, min) {\n return this.test('isSuperior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(value) >= toNumber(min);\n });\n});\n\nconst getAttributes = (data) => get(data, ['attributes'], {});\n\nconst createYupSchema = (\n model,\n { components },\n options = {\n isCreatingEntry: true,\n isDraft: true,\n isFromComponent: false,\n isJSONTestDisabled: false,\n }\n) => {\n const attributes = getAttributes(model);\n\n return yup.object().shape(\n Object.keys(attributes).reduce((acc, current) => {\n const attribute = attributes[current];\n\n if (\n attribute.type !== 'relation' &&\n attribute.type !== 'component' &&\n attribute.type !== 'dynamiczone'\n ) {\n const formatted = createYupSchemaAttribute(attribute.type, attribute, options);\n acc[current] = formatted;\n }\n\n if (attribute.type === 'relation') {\n acc[current] = [\n 'oneWay',\n 'oneToOne',\n 'manyToOne',\n 'oneToManyMorph',\n 'oneToOneMorph',\n ].includes(attribute.relationType)\n ? yup.object().nullable()\n : yup.array().nullable();\n }\n\n if (attribute.type === 'component') {\n const componentFieldSchema = createYupSchema(\n components[attribute.component],\n {\n components,\n },\n { ...options, isFromComponent: true }\n );\n\n if (attribute.repeatable === true) {\n const { min, max, required } = attribute;\n\n let componentSchema = yup.lazy((value) => {\n let baseSchema = yup.array().of(componentFieldSchema);\n\n if (min) {\n if (required) {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n } else if (required !== true && isEmpty(value)) {\n baseSchema = baseSchema.nullable();\n } else {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n }\n } else if (required && !options.isDraft) {\n baseSchema = baseSchema.min(1, errorsTrads.required);\n }\n\n if (max) {\n baseSchema = baseSchema.max(max, errorsTrads.max);\n }\n\n return baseSchema;\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n const componentSchema = yup.lazy((obj) => {\n if (obj !== undefined) {\n return attribute.required === true && !options.isDraft\n ? componentFieldSchema.defined()\n : componentFieldSchema.nullable();\n }\n\n return attribute.required === true ? yup.object().defined() : yup.object().nullable();\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n let dynamicZoneSchema = yup.array().of(\n yup.lazy(({ __component }) => {\n return createYupSchema(\n components[__component],\n { components },\n { ...options, isFromComponent: true }\n );\n })\n );\n\n const { max, min } = attribute;\n\n if (min) {\n if (attribute.required) {\n dynamicZoneSchema = dynamicZoneSchema\n .test('min', errorsTrads.min, (value) => {\n if (options.isCreatingEntry) {\n return value && value.length >= min;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null && value.length >= min;\n })\n .test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n } else {\n dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min);\n }\n } else if (attribute.required && !options.isDraft) {\n dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n }\n\n if (max) {\n dynamicZoneSchema = dynamicZoneSchema.max(max, errorsTrads.max);\n }\n\n acc[current] = dynamicZoneSchema;\n }\n\n return acc;\n }, {})\n );\n};\n\nconst createYupSchemaAttribute = (type, validations, options) => {\n let schema = yup.mixed();\n\n if (['string', 'uid', 'text', 'richtext', 'email', 'password', 'enumeration'].includes(type)) {\n schema = yup.string();\n }\n\n if (type === 'blocks') {\n schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n // Don't run validations on drafts\n if (options.isDraft) {\n return true;\n }\n\n // The backend validates the actual schema, check if a value different than null is not an array\n if (value && !Array.isArray(value)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'json') {\n schema = yup\n .mixed(errorsTrads.json)\n .test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n if (!value || !value.length) {\n return true;\n }\n\n try {\n JSON.parse(value);\n\n return true;\n } catch (err) {\n return false;\n }\n })\n .nullable()\n .test('required', errorsTrads.required, (value) => {\n if (validations.required && (!value || !value.length)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'email') {\n schema = schema.email(errorsTrads.email);\n }\n\n if (['number', 'integer', 'float', 'decimal'].includes(type)) {\n schema = yup\n .number()\n .transform((cv) => (isNaN(cv) ? undefined : cv))\n .typeError();\n }\n\n if (type === 'biginteger') {\n schema = yup.string().matches(/^-?\\d*$/);\n }\n\n if (['date', 'datetime'].includes(type)) {\n schema = yup.date();\n }\n\n Object.keys(validations).forEach((validation) => {\n const validationValue = validations[validation];\n\n if (\n !!validationValue ||\n (!isBoolean(validationValue) && Number.isInteger(Math.floor(validationValue))) ||\n validationValue === 0\n ) {\n switch (validation) {\n case 'required': {\n if (!options.isDraft) {\n if (type === 'password' && options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n }\n\n if (type !== 'password') {\n if (options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n } else {\n schema = schema.test('required', errorsTrads.required, (value) => {\n // Field is not touched and the user is editing the entry\n if (value === undefined && !options.isFromComponent) {\n return true;\n }\n\n if (isFieldTypeNumber(type)) {\n if (value === 0) {\n return true;\n }\n\n return !!value;\n }\n\n if (type === 'boolean') {\n // Boolean value can be undefined/unset in modifiedData when generated in a new component\n return value !== null && value !== undefined;\n }\n\n if (type === 'date' || type === 'datetime') {\n if (typeof value === 'string') {\n return !isEmpty(value);\n }\n\n return !isEmpty(value?.toString());\n }\n\n return !isEmpty(value);\n });\n }\n }\n }\n\n break;\n }\n\n case 'max': {\n if (type === 'biginteger') {\n schema = schema.isInferior(errorsTrads.max, validationValue);\n } else {\n schema = schema.max(validationValue, errorsTrads.max);\n }\n break;\n }\n case 'maxLength':\n schema = schema.max(validationValue, errorsTrads.maxLength);\n break;\n case 'min': {\n if (type === 'biginteger') {\n schema = schema.isSuperior(errorsTrads.min, validationValue);\n } else {\n schema = schema.min(validationValue, errorsTrads.min);\n }\n break;\n }\n case 'minLength': {\n if (!options.isDraft) {\n schema = schema.min(validationValue, errorsTrads.minLength);\n }\n break;\n }\n case 'regex':\n schema = schema.matches(new RegExp(validationValue), {\n message: errorsTrads.regex,\n excludeEmptyString: !validations.required,\n });\n break;\n case 'lowercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().lowercase();\n }\n break;\n case 'uppercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().uppercase();\n }\n break;\n case 'positive':\n if (isFieldTypeNumber(type)) {\n schema = schema.positive();\n }\n break;\n case 'negative':\n if (isFieldTypeNumber(type)) {\n schema = schema.negative();\n }\n break;\n default:\n schema = schema.nullable();\n }\n }\n });\n\n return schema;\n};\n\nexport default createYupSchema;\n"],"names":["item","errorsTrads","componentSchema"],"mappings":"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"}
1
+ {"version":3,"file":"schema-a7f695ae.mjs","sources":["../../admin/src/content-manager/utils/getTrad.js","../../admin/src/content-manager/contexts/Wysiwyg.js","../../admin/src/content-manager/hooks/useKeyboardDragAndDrop.js","../../admin/src/content-manager/hooks/useDragAndDrop.js","../../admin/src/content-manager/pages/App/selectors.js","../../admin/src/content-manager/utils/composeRefs.js","../../admin/src/content-manager/utils/isFieldTypeNumber.js","../../admin/src/content-manager/utils/schema.js"],"sourcesContent":["const getTrad = (id) => `content-manager.${id}`;\n\nexport default getTrad;\n","import { createContext } from 'react';\n\nconst WysiwygContext = createContext();\n\nexport default WysiwygContext;\n","import { useState } from 'react';\n\n/**\n * @typedef UseKeyboardDragAndDropCallbacks\n *\n * @type {{\n * onCancel?: (index: number) => void,\n * onDropItem?: (index: number) => void,\n * onGrabItem?: (index: number) => void,\n * onMoveItem: (newIndex: number, currentIndex: number) => void,\n * }}\n */\n\n/**\n * Utility hook designed to implement keyboard accessibile drag and drop by\n * returning an onKeyDown handler to be passed to the drag icon button.\n *\n * @internal - You should use `useDragAndDrop` instead.\n *\n * @type {(active: boolean, index: number, callbacks: UseKeyboardDragAndDropCallbacks) => (event: React.KeyboardEvent<HTMLButtonElement>) => void}\n */\nexport const useKeyboardDragAndDrop = (\n active,\n index,\n { onCancel, onDropItem, onGrabItem, onMoveItem }\n) => {\n const [isSelected, setIsSelected] = useState(false);\n /**\n * @type {(movement: 'UP' | 'DOWN') => void})}\n */\n const handleMove = (movement) => {\n if (!isSelected) {\n return;\n }\n\n if (movement === 'UP') {\n onMoveItem(index - 1, index);\n } else if (movement === 'DOWN') {\n onMoveItem(index + 1, index);\n }\n };\n\n const handleDragClick = () => {\n if (isSelected) {\n if (onDropItem) {\n onDropItem(index);\n }\n setIsSelected(false);\n } else {\n if (onGrabItem) {\n onGrabItem(index);\n }\n setIsSelected(true);\n }\n };\n\n const handleCancel = () => {\n if (isSelected) {\n setIsSelected(false);\n\n if (onCancel) {\n onCancel(index);\n }\n }\n };\n\n /**\n * @type {React.KeyboardEventHandler<HTMLButtonElement>}\n */\n const handleKeyDown = (e) => {\n if (!active) {\n return;\n }\n\n if (e.key === 'Tab' && !isSelected) {\n return;\n }\n\n e.preventDefault();\n\n switch (e.key) {\n case ' ':\n case 'Enter':\n handleDragClick();\n break;\n\n case 'Escape':\n handleCancel();\n break;\n\n case 'ArrowDown':\n case 'ArrowRight':\n handleMove('DOWN');\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n handleMove('UP');\n break;\n\n default:\n }\n };\n\n return handleKeyDown;\n};\n","import { useRef } from 'react';\n\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { useKeyboardDragAndDrop } from './useKeyboardDragAndDrop';\n\n/**\n * @typedef UseDragAndDropOptions\n *\n * @type {{\n * type?: string,\n * index: number,\n * item?: object,\n * onStart?: () => void,\n * onEnd?: () => void,\n * dropSensitivity?: 'regular' | 'immediate'\n * } & import('./useKeyboardDragAndDrop').UseKeyboardDragAndDropCallbacks}\n */\n\n/**\n * @typedef UseDragAndDropReturn\n *\n * @type {[props: {handlerId: import('dnd-core').Identifier, isDragging: boolean, handleKeyDown: (event: import('react').KeyboardEvent<HTMLButtonElement>) => void}, objectRef: React.RefObject<HTMLElement>, dropRef: import('react-dnd').ConnectDropTarget, dragRef: import('react-dnd').ConnectDragSource, dragPreviewRef: import('react-dnd').ConnectDragPreview]}\n */\n\n/**\n * A utility hook abstracting the general drag and drop hooks from react-dnd.\n * Centralising the same behaviours and by default offering keyboard support.\n *\n * @type {(active: boolean, options: UseDragAndDropOptions) => UseDragAndDropReturn}\n */\nexport const useDragAndDrop = (\n active,\n {\n type = 'STRAPI_DND',\n index,\n item = {},\n onStart,\n onEnd,\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n dropSensitivity = 'regular',\n }\n) => {\n const objectRef = useRef(null);\n\n const [{ handlerId }, dropRef] = useDrop({\n accept: type,\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!objectRef.current) {\n return;\n }\n const dragIndex = item.index;\n const newInd = index;\n\n // Don't replace items with themselves\n if (dragIndex === newInd) {\n return;\n }\n\n if (dropSensitivity === 'regular') {\n const hoverBoundingRect = objectRef.current.getBoundingClientRect();\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Dragging downwards\n if (dragIndex < newInd && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > newInd && hoverClientY > hoverMiddleY) {\n return;\n }\n }\n\n // Time to actually perform the action\n onMoveItem(newInd, dragIndex);\n item.index = newInd;\n },\n });\n\n const [{ isDragging }, dragRef, dragPreviewRef] = useDrag({\n type,\n item() {\n if (onStart) {\n onStart();\n }\n\n /**\n * This will be attached and it helps define the preview sizes\n * when a component is flexy e.g. Relations\n */\n const { width } = objectRef.current?.getBoundingClientRect() ?? {};\n\n return { index, width, ...item };\n },\n end() {\n if (onEnd) {\n onEnd();\n }\n },\n canDrag: active,\n /**\n * This is for useful when the item is in a virtualized list.\n * However, if we don't have an ID then we want the libraries\n * defaults to take care of this.\n */\n isDragging: item.id\n ? (monitor) => {\n return item.id === monitor.getItem().id;\n }\n : undefined,\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const handleKeyDown = useKeyboardDragAndDrop(active, index, {\n onGrabItem,\n onDropItem,\n onCancel,\n onMoveItem,\n });\n\n return [{ handlerId, isDragging, handleKeyDown }, objectRef, dropRef, dragRef, dragPreviewRef];\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { initialState } from './reducer';\n\nconst selectAppDomain = () => (state) => {\n return state['content-manager_app'] || initialState;\n};\n\nconst makeSelectApp = () =>\n createSelector(selectAppDomain(), (substate) => {\n return substate;\n });\n\nconst makeSelectModels = () => createSelector(selectAppDomain(), (state) => state.models);\n\nconst makeSelectModelLinks = () =>\n createSelector(selectAppDomain(), (state) => ({\n collectionTypeLinks: state.collectionTypeLinks,\n singleTypeLinks: state.singleTypeLinks,\n }));\n\nconst makeSelectModelAndComponentSchemas = () =>\n createSelector(selectAppDomain(), ({ components, models }) => ({\n schemas: [...components, ...models],\n }));\n\nconst selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes);\n\nexport default makeSelectApp;\nexport {\n makeSelectModelAndComponentSchemas,\n makeSelectModelLinks,\n makeSelectModels,\n selectAppDomain,\n selectFieldSizes,\n};\n","/**\n * @typedef PossibleRef<T>\n * @type {React.Ref<T> | undefined;}\n *\n * @typedef setRef\n * @type {<T>(ref: PossibleRef<T>, value: T) => React.RefCallback<T>}\n */\n\n/**\n * @type {setRef}\n */\nconst setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n};\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n *\n * @type {<T>(...refs: PossibleRef<T>[]) => (node: T) => void}\n */\nexport const composeRefs = (...refs) => {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n};\n","export default function isFieldTypeNumber(type) {\n return ['integer', 'biginteger', 'decimal', 'float', 'number'].includes(type);\n}\n","import { translatedErrors as errorsTrads } from '@strapi/helper-plugin';\nimport get from 'lodash/get';\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport isNaN from 'lodash/isNaN';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport isFieldTypeNumber from './isFieldTypeNumber';\n\nyup.addMethod(yup.mixed, 'defined', function () {\n return this.test('defined', errorsTrads.required, (value) => value !== undefined);\n});\n\nyup.addMethod(yup.array, 'notEmptyMin', function (min) {\n return this.test('notEmptyMin', errorsTrads.min, (value) => {\n if (isEmpty(value)) {\n return true;\n }\n\n return value.length >= min;\n });\n});\n\nyup.addMethod(yup.string, 'isInferior', function (message, max) {\n return this.test('isInferior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(value);\n });\n});\n\nyup.addMethod(yup.string, 'isSuperior', function (message, min) {\n return this.test('isSuperior', message, function (value) {\n if (!value) {\n return true;\n }\n\n if (Number.isNaN(toNumber(value))) {\n return true;\n }\n\n return toNumber(value) >= toNumber(min);\n });\n});\n\nconst getAttributes = (data) => get(data, ['attributes'], {});\n\nconst createYupSchema = (\n model,\n { components },\n options = {\n isCreatingEntry: true,\n isDraft: true,\n isFromComponent: false,\n isJSONTestDisabled: false,\n }\n) => {\n const attributes = getAttributes(model);\n\n return yup.object().shape(\n Object.keys(attributes).reduce((acc, current) => {\n const attribute = attributes[current];\n\n if (\n attribute.type !== 'relation' &&\n attribute.type !== 'component' &&\n attribute.type !== 'dynamiczone'\n ) {\n const formatted = createYupSchemaAttribute(attribute.type, attribute, options);\n acc[current] = formatted;\n }\n\n if (attribute.type === 'relation') {\n acc[current] = [\n 'oneWay',\n 'oneToOne',\n 'manyToOne',\n 'oneToManyMorph',\n 'oneToOneMorph',\n ].includes(attribute.relationType)\n ? yup.object().nullable()\n : yup.array().nullable();\n }\n\n if (attribute.type === 'component') {\n const componentFieldSchema = createYupSchema(\n components[attribute.component],\n {\n components,\n },\n { ...options, isFromComponent: true }\n );\n\n if (attribute.repeatable === true) {\n const { min, max, required } = attribute;\n\n let componentSchema = yup.lazy((value) => {\n let baseSchema = yup.array().of(componentFieldSchema);\n\n if (min) {\n if (required) {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n } else if (required !== true && isEmpty(value)) {\n baseSchema = baseSchema.nullable();\n } else {\n baseSchema = baseSchema.min(min, errorsTrads.min);\n }\n } else if (required && !options.isDraft) {\n baseSchema = baseSchema.min(1, errorsTrads.required);\n }\n\n if (max) {\n baseSchema = baseSchema.max(max, errorsTrads.max);\n }\n\n return baseSchema;\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n const componentSchema = yup.lazy((obj) => {\n if (obj !== undefined) {\n return attribute.required === true && !options.isDraft\n ? componentFieldSchema.defined()\n : componentFieldSchema.nullable();\n }\n\n return attribute.required === true ? yup.object().defined() : yup.object().nullable();\n });\n\n acc[current] = componentSchema;\n\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n let dynamicZoneSchema = yup.array().of(\n yup.lazy(({ __component }) => {\n return createYupSchema(\n components[__component],\n { components },\n { ...options, isFromComponent: true }\n );\n })\n );\n\n const { max, min } = attribute;\n\n if (min) {\n if (attribute.required) {\n dynamicZoneSchema = dynamicZoneSchema\n .test('min', errorsTrads.min, (value) => {\n if (options.isCreatingEntry) {\n return value && value.length >= min;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null && value.length >= min;\n })\n .test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n } else {\n dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min);\n }\n } else if (attribute.required && !options.isDraft) {\n dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, (value) => {\n if (options.isCreatingEntry) {\n return value !== null || value !== undefined;\n }\n\n if (value === undefined) {\n return true;\n }\n\n return value !== null;\n });\n }\n\n if (max) {\n dynamicZoneSchema = dynamicZoneSchema.max(max, errorsTrads.max);\n }\n\n acc[current] = dynamicZoneSchema;\n }\n\n return acc;\n }, {})\n );\n};\n\nconst createYupSchemaAttribute = (type, validations, options) => {\n let schema = yup.mixed();\n\n if (['string', 'uid', 'text', 'richtext', 'email', 'password', 'enumeration'].includes(type)) {\n schema = yup.string();\n }\n\n if (type === 'blocks') {\n schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n // Don't run validations on drafts\n if (options.isDraft) {\n return true;\n }\n\n // The backend validates the actual schema, check if a value different than null is not an array\n if (value && !Array.isArray(value)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'json') {\n schema = yup\n .mixed(errorsTrads.json)\n .test('isJSON', errorsTrads.json, (value) => {\n // Disable the test for bulk publish, it's valid when it comes from the db\n if (options.isJSONTestDisabled) {\n return true;\n }\n\n if (!value || !value.length) {\n return true;\n }\n\n try {\n JSON.parse(value);\n\n return true;\n } catch (err) {\n return false;\n }\n })\n .nullable()\n .test('required', errorsTrads.required, (value) => {\n if (validations.required && (!value || !value.length)) {\n return false;\n }\n\n return true;\n });\n }\n\n if (type === 'email') {\n schema = schema.email(errorsTrads.email);\n }\n\n if (['number', 'integer', 'float', 'decimal'].includes(type)) {\n schema = yup\n .number()\n .transform((cv) => (isNaN(cv) ? undefined : cv))\n .typeError();\n }\n\n if (type === 'biginteger') {\n schema = yup.string().matches(/^-?\\d*$/);\n }\n\n if (['date', 'datetime'].includes(type)) {\n schema = yup.date();\n }\n\n Object.keys(validations).forEach((validation) => {\n const validationValue = validations[validation];\n\n if (\n !!validationValue ||\n (!isBoolean(validationValue) && Number.isInteger(Math.floor(validationValue))) ||\n validationValue === 0\n ) {\n switch (validation) {\n case 'required': {\n if (!options.isDraft) {\n if (type === 'password' && options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n }\n\n if (type !== 'password') {\n if (options.isCreatingEntry) {\n schema = schema.required(errorsTrads.required);\n } else {\n schema = schema.test('required', errorsTrads.required, (value) => {\n // Field is not touched and the user is editing the entry\n if (value === undefined && !options.isFromComponent) {\n return true;\n }\n\n if (isFieldTypeNumber(type)) {\n if (value === 0) {\n return true;\n }\n\n return !!value;\n }\n\n if (type === 'boolean') {\n // Boolean value can be undefined/unset in modifiedData when generated in a new component\n return value !== null && value !== undefined;\n }\n\n if (type === 'date' || type === 'datetime') {\n if (typeof value === 'string') {\n return !isEmpty(value);\n }\n\n return !isEmpty(value?.toString());\n }\n\n return !isEmpty(value);\n });\n }\n }\n }\n\n break;\n }\n\n case 'max': {\n if (type === 'biginteger') {\n schema = schema.isInferior(errorsTrads.max, validationValue);\n } else {\n schema = schema.max(validationValue, errorsTrads.max);\n }\n break;\n }\n case 'maxLength':\n schema = schema.max(validationValue, errorsTrads.maxLength);\n break;\n case 'min': {\n if (type === 'biginteger') {\n schema = schema.isSuperior(errorsTrads.min, validationValue);\n } else {\n schema = schema.min(validationValue, errorsTrads.min);\n }\n break;\n }\n case 'minLength': {\n if (!options.isDraft) {\n schema = schema.min(validationValue, errorsTrads.minLength);\n }\n break;\n }\n case 'regex':\n schema = schema.matches(new RegExp(validationValue), {\n message: errorsTrads.regex,\n excludeEmptyString: !validations.required,\n });\n break;\n case 'lowercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().lowercase();\n }\n break;\n case 'uppercase':\n if (['text', 'textarea', 'email', 'string'].includes(type)) {\n schema = schema.strict().uppercase();\n }\n break;\n case 'positive':\n if (isFieldTypeNumber(type)) {\n schema = schema.positive();\n }\n break;\n case 'negative':\n if (isFieldTypeNumber(type)) {\n schema = schema.negative();\n }\n break;\n default:\n schema = schema.nullable();\n }\n }\n });\n\n return schema;\n};\n\nexport default createYupSchema;\n"],"names":["item","errorsTrads","componentSchema"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { useEffect } from "react";
3
- import { V as useTypedStore } from "./index-83133812.mjs";
3
+ import { V as useTypedStore } from "./index-b6ee936b.mjs";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Box, Typography, Flex, MultiSelectOption, IconButton, VisuallyHidden, Accordion, AccordionToggle, AccordionContent, Grid, GridItem, TextInput, SingleSelect, SingleSelectOption, MultiSelect, MultiSelectGroup } from "@strapi/design-system";
6
6
  import { useTracking, useNotification, NotAllowedInput, ConfirmDialog, useCollator } from "@strapi/helper-plugin";
@@ -12,7 +12,7 @@ import { PlusCircle, More, Drag, Duplicate } from "@strapi/icons";
12
12
  import { MenuItem, Menu } from "@strapi/design-system/v2";
13
13
  import { useField } from "formik";
14
14
  import { getEmptyImage } from "react-dnd-html5-backend";
15
- import { u as useDragAndDrop, c as composeRefs } from "./schema-666ecce4.mjs";
15
+ import { u as useDragAndDrop, c as composeRefs } from "./schema-a7f695ae.mjs";
16
16
  import "axios";
17
17
  import { produce } from "immer";
18
18
  import "lodash/cloneDeep";
@@ -1098,4 +1098,4 @@ export {
1098
1098
  useInjectReducer as u,
1099
1099
  validateWorkflow as v
1100
1100
  };
1101
- //# sourceMappingURL=validateWorkflow-e77a9ab3.mjs.map
1101
+ //# sourceMappingURL=validateWorkflow-2f84e76e.mjs.map