@strapi/admin 4.6.0 → 4.6.2

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 (418) hide show
  1. package/.browserslistrc +2 -1
  2. package/admin/src/StrapiApp.js +1 -1
  3. package/admin/src/assets/images/onboarding-preview.png +0 -0
  4. package/admin/src/components/AuthenticatedApp/utils/api.js +5 -4
  5. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +3 -7
  6. package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +1 -2
  7. package/admin/src/components/GuidedTour/Homepage/components/Step.js +1 -3
  8. package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
  9. package/admin/src/components/GuidedTour/Homepage/index.js +2 -6
  10. package/admin/src/components/GuidedTour/Modal/components/Content.js +1 -3
  11. package/admin/src/components/GuidedTour/Modal/components/Modal.js +2 -8
  12. package/admin/src/components/GuidedTour/Modal/components/StepNumberWithPadding.js +1 -1
  13. package/admin/src/components/GuidedTour/Modal/components/Stepper.js +2 -5
  14. package/admin/src/components/GuidedTour/Stepper/StepLine.js +1 -1
  15. package/admin/src/components/GuidedTour/Stepper/StepNumber.js +2 -4
  16. package/admin/src/components/LeftMenu/index.js +12 -11
  17. package/admin/src/components/Notifications/Notification/index.js +2 -2
  18. package/admin/src/components/Notifications/index.js +1 -1
  19. package/admin/src/components/Theme/index.js +1 -1
  20. package/admin/src/components/UpgradePlanModal/index.js +3 -10
  21. package/admin/src/content-manager/components/AttributeFilter/Filters.js +2 -3
  22. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +24 -30
  23. package/admin/src/content-manager/components/ComponentInitializer/index.js +2 -5
  24. package/admin/src/content-manager/components/DynamicTable/CellContent/Media/FileWrapper.js +1 -2
  25. package/admin/src/content-manager/components/DynamicTable/CellContent/Media/index.js +3 -3
  26. package/admin/src/content-manager/components/DynamicTable/CellContent/MultipleMedias.js +1 -1
  27. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +19 -16
  28. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationSingle/index.js +1 -1
  29. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -4
  30. package/admin/src/content-manager/components/DynamicTable/CellContent/SingleComponent/index.js +1 -2
  31. package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +1 -2
  32. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +10 -7
  33. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +10 -7
  34. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +3 -9
  35. package/admin/src/content-manager/components/DynamicTable/index.js +1 -2
  36. package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton.js +2 -5
  37. package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +1 -3
  38. package/admin/src/content-manager/components/DynamicZone/components/ComponentCategory.js +1 -2
  39. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker.js +1 -4
  40. package/admin/src/content-manager/components/DynamicZone/components/DynamicZoneLabel.js +1 -3
  41. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +39 -9
  42. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +9 -15
  43. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findLeafByPathAndReplace.js +1 -3
  44. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +6 -5
  45. package/admin/src/content-manager/components/FieldComponent/Label.js +1 -3
  46. package/admin/src/content-manager/components/FieldComponent/index.js +2 -5
  47. package/admin/src/content-manager/components/FieldTypeIcon/index.js +15 -13
  48. package/admin/src/content-manager/components/Hint/index.js +1 -1
  49. package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
  50. package/admin/src/content-manager/components/InputUID/endActionStyle.js +1 -3
  51. package/admin/src/content-manager/components/InputUID/index.js +6 -10
  52. package/admin/src/content-manager/components/Inputs/index.js +0 -2
  53. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +1 -3
  54. package/admin/src/content-manager/components/RelationInput/RelationInput.js +16 -12
  55. package/admin/src/content-manager/components/RelationInput/components/Option.js +1 -2
  56. package/admin/src/content-manager/components/RelationInput/components/Relation.js +1 -2
  57. package/admin/src/content-manager/components/RelationInput/components/RelationList.js +1 -1
  58. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +39 -26
  59. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
  60. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +24 -18
  61. package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +1 -2
  62. package/admin/src/content-manager/components/Wysiwyg/index.js +1 -3
  63. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +4 -3
  64. package/admin/src/content-manager/hooks/useLazyComponents/index.js +9 -13
  65. package/admin/src/content-manager/hooks/useRelation/useRelation.js +4 -4
  66. package/admin/src/content-manager/pages/App/LeftMenu/index.js +1 -1
  67. package/admin/src/content-manager/pages/App/index.js +1 -2
  68. package/admin/src/content-manager/pages/App/useModels.js +9 -4
  69. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +9 -8
  70. package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +3 -2
  71. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/components/ErrorFallback.js +1 -1
  72. package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +4 -4
  73. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +2 -5
  74. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +2 -4
  75. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +2 -7
  76. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +2 -6
  77. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +5 -5
  78. package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +1 -3
  79. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -1
  80. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +1 -2
  81. package/admin/src/content-manager/pages/EditSettingsView/components/RowsLayout.js +1 -1
  82. package/admin/src/content-manager/pages/EditSettingsView/index.js +15 -11
  83. package/admin/src/content-manager/pages/EditSettingsView/utils/api.js +4 -2
  84. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +8 -10
  85. package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +3 -5
  86. package/admin/src/content-manager/pages/EditView/GridRow/index.js +1 -1
  87. package/admin/src/content-manager/pages/EditView/Header/index.js +12 -10
  88. package/admin/src/content-manager/pages/EditView/index.js +2 -7
  89. package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +2 -6
  90. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +2 -7
  91. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +8 -7
  92. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +10 -6
  93. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +10 -7
  94. package/admin/src/content-manager/pages/ListSettingsView/index.js +10 -7
  95. package/admin/src/content-manager/pages/ListSettingsView/utils/api.js +4 -2
  96. package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +1 -2
  97. package/admin/src/content-manager/pages/ListView/PaginationFooter/index.js +1 -2
  98. package/admin/src/content-manager/pages/ListView/index.js +25 -28
  99. package/admin/src/content-manager/pages/NoContentType/index.js +2 -5
  100. package/admin/src/content-manager/pages/NoPermissions/index.js +1 -2
  101. package/admin/src/core/utils/index.js +0 -1
  102. package/admin/src/hooks/useFetchEnabledPlugins/utils/api.js +3 -2
  103. package/admin/src/hooks/useInjectReducer/index.js +1 -0
  104. package/admin/src/hooks/useInjectReducer/useInjectReducer.js +19 -0
  105. package/admin/src/hooks/useMenu/reducer.js +1 -3
  106. package/admin/src/hooks/useRegenerate/index.js +3 -3
  107. package/admin/src/hooks/useRolesList/index.js +5 -3
  108. package/admin/src/index.js +4 -3
  109. package/admin/src/layouts/AppLayout/index.js +1 -3
  110. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
  111. package/admin/src/layouts/UnauthenticatedLayout/index.js +1 -2
  112. package/admin/src/pages/Admin/Onboarding/constants.js +46 -0
  113. package/admin/src/pages/Admin/Onboarding/index.js +172 -87
  114. package/admin/src/pages/Admin/index.js +5 -2
  115. package/admin/src/pages/App/index.js +1 -1
  116. package/admin/src/pages/AuthPage/components/FieldActionWrapper/index.js +1 -1
  117. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -7
  118. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -4
  119. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +11 -10
  120. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -4
  121. package/admin/src/pages/AuthPage/components/Register/index.js +13 -11
  122. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +2 -9
  123. package/admin/src/pages/HomePage/ContentBlocks.js +2 -5
  124. package/admin/src/pages/HomePage/HomeHeader.js +3 -6
  125. package/admin/src/pages/HomePage/SocialLinks.js +33 -30
  126. package/admin/src/pages/HomePage/index.js +1 -4
  127. package/admin/src/pages/InstalledPluginsPage/Plugins.js +14 -5
  128. package/admin/src/pages/InternalErrorPage/index.js +2 -5
  129. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/EmptyNpmPackageGrid.js +1 -2
  130. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +2 -5
  131. package/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js +2 -3
  132. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js +2 -4
  133. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +2 -4
  134. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +2 -7
  135. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +3 -9
  136. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FilterSelect.js +1 -1
  137. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +1 -4
  138. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +2 -5
  139. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
  140. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +3 -3
  141. package/admin/src/pages/MarketplacePage/components/SortSelect/index.js +1 -2
  142. package/admin/src/pages/MarketplacePage/index.js +15 -8
  143. package/admin/src/pages/NotFoundPage/index.js +2 -5
  144. package/admin/src/pages/ProfilePage/index.js +17 -14
  145. package/admin/src/pages/ProfilePage/utils/api.js +5 -3
  146. package/admin/src/pages/SettingsPage/{pages/Users/ListPage → components}/Filters/index.js +2 -3
  147. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +16 -3
  148. package/admin/src/pages/SettingsPage/index.js +1 -1
  149. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +1 -3
  150. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +1 -3
  151. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js +1 -1
  152. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +13 -8
  153. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js +1 -1
  154. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContentBox/index.js +2 -3
  155. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +11 -7
  156. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +1 -2
  157. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormHead/index.js +2 -5
  158. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +2 -4
  159. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +1 -3
  160. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +2 -2
  161. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +7 -6
  162. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +2 -3
  163. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/ReadButton/index.js +1 -1
  164. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/UpdateButton/index.js +1 -1
  165. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +1 -3
  166. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +6 -7
  167. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +1 -3
  168. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +8 -5
  169. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +1 -3
  170. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +13 -9
  171. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +1 -4
  172. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +1 -1
  173. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +1 -5
  174. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -2
  175. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +56 -70
  176. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +5 -3
  177. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/CollapseLabel/index.js +1 -1
  178. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +2 -2
  179. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +1 -4
  180. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +5 -4
  181. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +2 -5
  182. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +1 -2
  183. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/CarretIcon/index.js +1 -1
  184. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -2
  185. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +1 -4
  186. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/index.js +1 -1
  187. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
  188. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypes/index.js +1 -1
  189. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
  190. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -4
  191. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +1 -1
  192. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +12 -16
  193. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +1 -2
  194. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +1 -5
  195. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
  196. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +11 -8
  197. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +1 -4
  198. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +2 -6
  199. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +1 -5
  200. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +16 -10
  201. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +12 -9
  202. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +6 -3
  203. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +11 -8
  204. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +18 -10
  205. package/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js +1 -2
  206. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +10 -6
  207. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/api.js +6 -3
  208. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +1 -2
  209. package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js +3 -20
  210. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +5 -4
  211. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +1 -2
  212. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +1 -3
  213. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +1 -1
  214. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +11 -8
  215. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +2 -8
  216. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +11 -9
  217. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +4 -3
  218. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +26 -18
  219. package/admin/src/pages/UseCasePage/index.js +12 -9
  220. package/admin/src/permissions/defaultPermissions.js +2 -15
  221. package/admin/src/translations/ar.json +4 -4
  222. package/admin/src/translations/ca.json +4 -4
  223. package/admin/src/translations/cs.json +4 -4
  224. package/admin/src/translations/de.json +4 -4
  225. package/admin/src/translations/dk.json +4 -4
  226. package/admin/src/translations/en.json +17 -10
  227. package/admin/src/translations/es.json +4 -4
  228. package/admin/src/translations/eu.json +796 -0
  229. package/admin/src/translations/fr.json +4 -4
  230. package/admin/src/translations/gu.json +4 -4
  231. package/admin/src/translations/he.json +4 -4
  232. package/admin/src/translations/hi.json +4 -4
  233. package/admin/src/translations/hu.json +4 -4
  234. package/admin/src/translations/id.json +4 -4
  235. package/admin/src/translations/it.json +4 -4
  236. package/admin/src/translations/ja.json +4 -4
  237. package/admin/src/translations/ko.json +4 -4
  238. package/admin/src/translations/languageNativeNames.js +1 -0
  239. package/admin/src/translations/ml.json +4 -4
  240. package/admin/src/translations/ms.json +4 -4
  241. package/admin/src/translations/nl.json +4 -4
  242. package/admin/src/translations/no.json +4 -4
  243. package/admin/src/translations/pl.json +4 -4
  244. package/admin/src/translations/pt-BR.json +4 -4
  245. package/admin/src/translations/pt.json +4 -4
  246. package/admin/src/translations/ru.json +785 -789
  247. package/admin/src/translations/sa.json +4 -4
  248. package/admin/src/translations/sk.json +4 -4
  249. package/admin/src/translations/sv.json +4 -4
  250. package/admin/src/translations/th.json +4 -4
  251. package/admin/src/translations/tr.json +4 -4
  252. package/admin/src/translations/uk.json +4 -4
  253. package/admin/src/translations/vi.json +4 -4
  254. package/admin/src/translations/zh-Hans.json +4 -4
  255. package/admin/src/translations/zh.json +4 -4
  256. package/build/1341.5d48c79b.chunk.js +1 -0
  257. package/build/19eb2dfcf2603eb55733.png +0 -0
  258. package/build/2637.679b590b.chunk.js +1 -0
  259. package/build/4318.9b1ac9bc.chunk.js +30 -0
  260. package/build/4849.7abafe52.chunk.js +98 -0
  261. package/build/6487.83e219bf.chunk.js +14 -0
  262. package/build/{5015.8e3fe50b.chunk.js → 8469.853c822b.chunk.js} +1 -6
  263. package/build/9816.01ee964f.chunk.js +2 -0
  264. package/build/Admin-authenticatedApp.dd16edad.chunk.js +79 -0
  265. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +1 -0
  266. package/build/Admin_homePage.4b878f04.chunk.js +72 -0
  267. package/build/Admin_marketplace.a8ea585f.chunk.js +22 -0
  268. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +1 -0
  269. package/build/Admin_profilePage.b27e40f6.chunk.js +15 -0
  270. package/build/Admin_settingsPage.3cd54156.chunk.js +178 -0
  271. package/build/Upload_ConfigureTheView.34dde278.chunk.js +1 -0
  272. package/build/admin-app.3a084127.chunk.js +112 -0
  273. package/build/admin-edit-roles-page.fd041d89.chunk.js +1 -0
  274. package/build/admin-edit-users.08a60ea2.chunk.js +10 -0
  275. package/build/admin-users.74f5629d.chunk.js +11 -0
  276. package/build/{api-tokens-create-page.0e686c30.chunk.js → api-tokens-create-page.a31c7fba.chunk.js} +1 -1
  277. package/build/{api-tokens-edit-page.d6c7487b.chunk.js → api-tokens-edit-page.64fef287.chunk.js} +1 -1
  278. package/build/api-tokens-list-page.370459ba.chunk.js +16 -0
  279. package/build/ar-json.39e54aba.chunk.js +1 -0
  280. package/build/audit-logs-settings-page.bc1784fe.chunk.js +1 -0
  281. package/build/{ca-json.f6a0f472.chunk.js → ca-json.4d999055.chunk.js} +1 -1
  282. package/build/content-manager.d04b738f.chunk.js +1139 -0
  283. package/build/content-type-builder-list-view.c2f917b6.chunk.js +191 -0
  284. package/build/content-type-builder.b7fb1e65.chunk.js +126 -0
  285. package/build/cs-json.4b44411c.chunk.js +1 -0
  286. package/build/{de-json.30e1f35b.chunk.js → de-json.866f8a28.chunk.js} +1 -1
  287. package/build/{dk-json.e6d9ffa4.chunk.js → dk-json.10f7b1d1.chunk.js} +1 -1
  288. package/build/email-settings-page.884cfb8b.chunk.js +3 -0
  289. package/build/en-json.9cada7f3.chunk.js +1 -0
  290. package/build/es-json.ea15c957.chunk.js +1 -0
  291. package/build/eu-json.3bc24d60.chunk.js +1 -0
  292. package/build/{fr-json.78545ef8.chunk.js → fr-json.e88fbdfd.chunk.js} +1 -1
  293. package/build/{gu-json.676518f2.chunk.js → gu-json.94f0d242.chunk.js} +1 -1
  294. package/build/{he-json.ad22e8cc.chunk.js → he-json.f0de8cdb.chunk.js} +1 -1
  295. package/build/{hi-json.19b51c09.chunk.js → hi-json.df3a7be2.chunk.js} +1 -1
  296. package/build/{hu-json.f947088f.chunk.js → hu-json.680e6eef.chunk.js} +1 -1
  297. package/build/i18n-settings-page.c7bc29fc.chunk.js +1 -0
  298. package/build/{id-json.504daa84.chunk.js → id-json.e0d83d41.chunk.js} +1 -1
  299. package/build/index.html +1 -1
  300. package/build/{it-json.2fd90f4d.chunk.js → it-json.8be59205.chunk.js} +1 -1
  301. package/build/{ja-json.c9f12d0b.chunk.js → ja-json.97ee41ba.chunk.js} +1 -1
  302. package/build/{ko-json.ef463065.chunk.js → ko-json.4cbbf4f2.chunk.js} +1 -1
  303. package/build/main.9c01de7f.js +3929 -0
  304. package/build/{ml-json.490f666c.chunk.js → ml-json.e3747091.chunk.js} +1 -1
  305. package/build/ms-json.0eddffd9.chunk.js +1 -0
  306. package/build/{nl-json.c416295a.chunk.js → nl-json.371a15ee.chunk.js} +1 -1
  307. package/build/{no-json.1a2258ba.chunk.js → no-json.9b3cd181.chunk.js} +1 -1
  308. package/build/{pl-json.8cf0c871.chunk.js → pl-json.e535cbce.chunk.js} +1 -1
  309. package/build/{pt-BR-json.51fab8d0.chunk.js → pt-BR-json.e5fafa46.chunk.js} +1 -1
  310. package/build/pt-json.ee554a41.chunk.js +1 -0
  311. package/build/ru-json.866f0ff1.chunk.js +1 -0
  312. package/build/runtime~main.bb1389c9.js +2 -0
  313. package/build/{sa-json.f3fa5407.chunk.js → sa-json.7efeb257.chunk.js} +1 -1
  314. package/build/{sk-json.9ec60d9f.chunk.js → sk-json.7bbeb0af.chunk.js} +1 -1
  315. package/build/sso-settings-page.82d84043.chunk.js +1 -0
  316. package/build/{sv-json.c6b0c237.chunk.js → sv-json.dc40951f.chunk.js} +1 -1
  317. package/build/{th-json.6e68155c.chunk.js → th-json.f664b96d.chunk.js} +1 -1
  318. package/build/{tr-json.9f41dc08.chunk.js → tr-json.b79eae31.chunk.js} +1 -1
  319. package/build/uk-json.b7e38370.chunk.js +1 -0
  320. package/build/upload-settings.c18b010f.chunk.js +1 -0
  321. package/build/upload.0876ab69.chunk.js +13 -0
  322. package/build/users-advanced-settings-page.677e1973.chunk.js +1 -0
  323. package/build/users-email-settings-page.a3c80419.chunk.js +1 -0
  324. package/build/users-providers-settings-page.87a9c77d.chunk.js +1 -0
  325. package/build/users-roles-settings-page.79c19845.chunk.js +30 -0
  326. package/build/vi-json.ee4c5537.chunk.js +1 -0
  327. package/build/webhook-edit-page.cfbdd3fd.chunk.js +23 -0
  328. package/build/webhook-list-page.3daa4fe2.chunk.js +1 -0
  329. package/build/{zh-Hans-json.9c0eac99.chunk.js → zh-Hans-json.30a18940.chunk.js} +1 -1
  330. package/build/{zh-json.f88f563d.chunk.js → zh-json.49d84433.chunk.js} +1 -1
  331. package/ee/admin/pages/AuthPage/components/Login/index.js +1 -5
  332. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -4
  333. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -8
  334. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js +41 -0
  335. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js +2 -9
  336. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js +1 -2
  337. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js +1 -2
  338. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js +1 -2
  339. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js +3 -6
  340. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +47 -0
  341. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/index.js +30 -31
  342. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js +7 -9
  343. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +88 -0
  344. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +15 -11
  345. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +20 -12
  346. package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +15 -9
  347. package/ee/admin/permissions/customPermissions.js +4 -0
  348. package/ee/server/migrations/audit-logs-table.js +45 -0
  349. package/ee/server/register.js +2 -0
  350. package/ee/server/services/audit-logs.js +11 -1
  351. package/package.json +31 -31
  352. package/server/config/admin-actions.js +0 -16
  353. package/server/controllers/admin.js +16 -55
  354. package/server/routes/admin.js +0 -28
  355. package/webpack.alias.js +0 -1
  356. package/webpack.config.js +0 -3
  357. package/admin/src/content-manager/components/InputJSON/FieldWrapper.js +0 -40
  358. package/admin/src/content-manager/components/InputJSON/Label.js +0 -35
  359. package/admin/src/content-manager/components/InputJSON/components.js +0 -36
  360. package/admin/src/content-manager/components/InputJSON/index.js +0 -223
  361. package/admin/src/content-manager/components/InputJSON/jsonlint.js +0 -680
  362. package/admin/src/core/utils/axiosInstance.js +0 -40
  363. package/build/2607.ce06608e.chunk.js +0 -66
  364. package/build/2743.dea372fb.chunk.js +0 -42
  365. package/build/3075.03ebe93d.chunk.js +0 -115
  366. package/build/3632.963ac97d.chunk.js +0 -138
  367. package/build/4318.8cb388a5.chunk.js +0 -30
  368. package/build/4656.a0d43cca.chunk.js +0 -159
  369. package/build/5910.a5374848.chunk.js +0 -209
  370. package/build/8633.4af74a50.chunk.js +0 -1
  371. package/build/9641.a311b612.chunk.js +0 -276
  372. package/build/9707.62831b4d.chunk.js +0 -101
  373. package/build/Admin-authenticatedApp.50dc27f9.chunk.js +0 -75
  374. package/build/Admin_InternalErrorPage.157152a8.chunk.js +0 -1
  375. package/build/Admin_homePage.79ab880c.chunk.js +0 -77
  376. package/build/Admin_marketplace.eabf21b2.chunk.js +0 -26
  377. package/build/Admin_pluginsPage.953e796b.chunk.js +0 -6
  378. package/build/Admin_profilePage.5c2efda5.chunk.js +0 -15
  379. package/build/Admin_settingsPage.19cfb9ca.chunk.js +0 -178
  380. package/build/Upload_ConfigureTheView.3f2b6e6a.chunk.js +0 -1
  381. package/build/admin-app.34295b50.chunk.js +0 -112
  382. package/build/admin-edit-roles-page.d50d9654.chunk.js +0 -1
  383. package/build/admin-edit-users.912b856d.chunk.js +0 -10
  384. package/build/admin-users.e36e7111.chunk.js +0 -11
  385. package/build/api-tokens-list-page.1cd86136.chunk.js +0 -16
  386. package/build/ar-json.932794f7.chunk.js +0 -1
  387. package/build/audit-logs-settings-page.308a6250.chunk.js +0 -1
  388. package/build/codemirror-addon-closebrackets.71aa4bbd.chunk.js +0 -2
  389. package/build/codemirror-addon-lint-js.405f70fb.chunk.js +0 -1
  390. package/build/codemirror-addon-lint.8487ad3d.chunk.js +0 -1
  391. package/build/codemirror-addon-mark-selection.1928c849.chunk.js +0 -1
  392. package/build/codemirror-css.359a2a4b.chunk.js +0 -345
  393. package/build/codemirror-javacript.af237b68.chunk.js +0 -1
  394. package/build/codemirror-theme.2fe63a16.chunk.js +0 -33
  395. package/build/content-manager.851f40ce.chunk.js +0 -1170
  396. package/build/content-type-builder-list-view.4243b2b1.chunk.js +0 -198
  397. package/build/content-type-builder.365b6bf4.chunk.js +0 -125
  398. package/build/cs-json.79879fb6.chunk.js +0 -1
  399. package/build/email-settings-page.379552b1.chunk.js +0 -15
  400. package/build/en-json.38d182e5.chunk.js +0 -1
  401. package/build/es-json.e275481d.chunk.js +0 -1
  402. package/build/i18n-settings-page.3ab28b1a.chunk.js +0 -65
  403. package/build/main.9f31732e.js +0 -4454
  404. package/build/ms-json.db87d8d3.chunk.js +0 -1
  405. package/build/pt-json.62927d1e.chunk.js +0 -1
  406. package/build/ru-json.3b411a39.chunk.js +0 -1
  407. package/build/runtime~main.2b8e2318.js +0 -2
  408. package/build/sso-settings-page.b64a44e8.chunk.js +0 -41
  409. package/build/uk-json.b2fcd567.chunk.js +0 -1
  410. package/build/upload-settings.6c26ff37.chunk.js +0 -89
  411. package/build/upload.2c69d238.chunk.js +0 -38
  412. package/build/users-advanced-settings-page.c4270682.chunk.js +0 -13
  413. package/build/users-email-settings-page.60422a2f.chunk.js +0 -28
  414. package/build/users-providers-settings-page.e1834060.chunk.js +0 -104
  415. package/build/users-roles-settings-page.3ef35132.chunk.js +0 -30
  416. package/build/vi-json.f08d7d03.chunk.js +0 -1
  417. package/build/webhook-edit-page.c0080dc1.chunk.js +0 -75
  418. package/build/webhook-list-page.f75ba3f2.chunk.js +0 -42
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  const path = require('path');
4
- const execa = require('execa');
4
+
5
+ const { map, values, sumBy, pipe, flatMap, propEq } = require('lodash/fp');
5
6
  const _ = require('lodash');
6
7
  const { exists } = require('fs-extra');
7
8
  const { env } = require('@strapi/utils');
8
- const { ValidationError } = require('@strapi/utils').errors;
9
9
  const { isUsingTypeScript } = require('@strapi/typescript-utils');
10
10
  // eslint-disable-next-line node/no-extraneous-require
11
11
  const ee = require('@strapi/strapi/lib/utils/ee');
@@ -17,15 +17,6 @@ const {
17
17
  } = require('../validation/project-settings');
18
18
  const { getService } = require('../utils');
19
19
 
20
- const PLUGIN_NAME_REGEX = /^[A-Za-z][A-Za-z0-9-_]+$/;
21
-
22
- /**
23
- * Validates a plugin name format
24
- */
25
- const isValidPluginName = (plugin) => {
26
- return _.isString(plugin) && !_.isEmpty(plugin) && PLUGIN_NAME_REGEX.test(plugin);
27
- };
28
-
29
20
  /**
30
21
  * A set of functions called "actions" for `Admin`
31
22
  */
@@ -97,11 +88,25 @@ module.exports = {
97
88
  );
98
89
  const isHostedOnStrapiCloud = env('STRAPI_HOSTING', null) === 'strapi.cloud';
99
90
 
91
+ const numberOfAllContentTypes = _.size(strapi.contentTypes);
92
+ const numberOfComponents = _.size(strapi.components);
93
+
94
+ const getNumberOfDynamicZones = () => {
95
+ return pipe(
96
+ map('attributes'),
97
+ flatMap(values),
98
+ sumBy(propEq('type', 'dynamiczone'))
99
+ )(strapi.contentTypes);
100
+ };
101
+
100
102
  return {
101
103
  data: {
102
104
  useTypescriptOnServer,
103
105
  useTypescriptOnAdmin,
104
106
  isHostedOnStrapiCloud,
107
+ numberOfAllContentTypes, // TODO: V5: This event should be renamed numberOfContentTypes in V5 as the name is already taken to describe the number of content types using i18n.
108
+ numberOfComponents,
109
+ numberOfDynamicZones: getNumberOfDynamicZones(),
105
110
  },
106
111
  };
107
112
  },
@@ -130,28 +135,6 @@ module.exports = {
130
135
  };
131
136
  },
132
137
 
133
- async installPlugin(ctx) {
134
- try {
135
- const { plugin } = ctx.request.body;
136
-
137
- if (!isValidPluginName(plugin)) {
138
- throw new ValidationError('Invalid plugin name');
139
- }
140
-
141
- strapi.reload.isWatching = false;
142
-
143
- strapi.log.info(`Installing ${plugin}...`);
144
- await execa('npm', ['run', 'strapi', '--', 'install', plugin]);
145
-
146
- ctx.send({ ok: true });
147
-
148
- strapi.reload();
149
- } catch (err) {
150
- strapi.reload.isWatching = true;
151
- throw err;
152
- }
153
- },
154
-
155
138
  async plugins(ctx) {
156
139
  const enabledPlugins = strapi.config.get('enabledPlugins');
157
140
 
@@ -164,26 +147,4 @@ module.exports = {
164
147
 
165
148
  ctx.send({ plugins });
166
149
  },
167
-
168
- async uninstallPlugin(ctx) {
169
- try {
170
- const { plugin } = ctx.params;
171
-
172
- if (!isValidPluginName(plugin)) {
173
- throw new ValidationError('Invalid plugin name');
174
- }
175
-
176
- strapi.reload.isWatching = false;
177
-
178
- strapi.log.info(`Uninstalling ${plugin}...`);
179
- await execa('npm', ['run', 'strapi', '--', 'uninstall', plugin, '-d']);
180
-
181
- ctx.send({ ok: true });
182
-
183
- strapi.reload();
184
- } catch (err) {
185
- strapi.reload.isWatching = true;
186
- throw err;
187
- }
188
- },
189
150
  };
@@ -68,32 +68,4 @@ module.exports = [
68
68
  ],
69
69
  },
70
70
  },
71
- {
72
- method: 'POST',
73
- path: '/plugins/install',
74
- handler: 'admin.installPlugin',
75
- config: {
76
- policies: [
77
- 'admin::isAuthenticatedAdmin',
78
- {
79
- name: 'admin::hasPermissions',
80
- config: { actions: ['admin::marketplace.plugins.install'] },
81
- },
82
- ],
83
- },
84
- },
85
- {
86
- method: 'DELETE',
87
- path: '/plugins/uninstall/:plugin',
88
- handler: 'admin.uninstallPlugin',
89
- config: {
90
- policies: [
91
- 'admin::isAuthenticatedAdmin',
92
- {
93
- name: 'admin::hasPermissions',
94
- config: { actions: ['admin::marketplace.plugins.uninstall'] },
95
- },
96
- ],
97
- },
98
- },
99
71
  ];
package/webpack.alias.js CHANGED
@@ -32,7 +32,6 @@ const aliasExactMatch = [
32
32
  'redux',
33
33
  'reselect',
34
34
  'styled-components',
35
- 'whatwg-fetch',
36
35
  'yup',
37
36
  ];
38
37
 
package/webpack.config.js CHANGED
@@ -8,7 +8,6 @@ const ForkTsCheckerPlugin = require('fork-ts-checker-webpack-plugin');
8
8
  const HtmlWebpackPlugin = require('html-webpack-plugin');
9
9
  const { ESBuildMinifyPlugin } = require('esbuild-loader');
10
10
  const WebpackBar = require('webpackbar');
11
- const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
12
11
  const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
13
12
  const browserslistToEsbuild = require('browserslist-to-esbuild');
14
13
 
@@ -232,8 +231,6 @@ module.exports = ({
232
231
  }),
233
232
  new webpack.DefinePlugin(envVariables),
234
233
 
235
- new NodePolyfillPlugin(),
236
-
237
234
  new ForkTsCheckerPlugin({
238
235
  typescript: {
239
236
  configFile: tsConfigFilePath,
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useIntl } from 'react-intl';
4
- import { Field } from '@strapi/design-system/Field';
5
-
6
- const FieldWrapper = ({ name, hint, error, children, required }) => {
7
- const { formatMessage } = useIntl();
8
- const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';
9
-
10
- return (
11
- <Field
12
- name={name}
13
- hint={hint && formatMessage(hint)}
14
- error={errorMessage}
15
- id={name}
16
- required={required}
17
- >
18
- {children}
19
- </Field>
20
- );
21
- };
22
-
23
- FieldWrapper.defaultProps = {
24
- hint: undefined,
25
- error: '',
26
- required: false,
27
- };
28
-
29
- FieldWrapper.propTypes = {
30
- name: PropTypes.string.isRequired,
31
- hint: PropTypes.shape({
32
- id: PropTypes.string,
33
- defaultMessage: PropTypes.string,
34
- }),
35
- error: PropTypes.string,
36
- children: PropTypes.node.isRequired,
37
- required: PropTypes.bool,
38
- };
39
-
40
- export default FieldWrapper;
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useIntl } from 'react-intl';
4
- import { FieldLabel } from '@strapi/design-system/Field';
5
-
6
- const Label = ({ intlLabel, labelAction, name }) => {
7
- const { formatMessage } = useIntl();
8
- const label = intlLabel?.id
9
- ? formatMessage(
10
- { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },
11
- { ...intlLabel.values }
12
- )
13
- : name;
14
-
15
- return <FieldLabel action={labelAction}>{label}</FieldLabel>;
16
- };
17
-
18
- Label.defaultProps = {
19
- id: undefined,
20
- intlLabel: undefined,
21
- labelAction: undefined,
22
- };
23
-
24
- Label.propTypes = {
25
- id: PropTypes.string,
26
- intlLabel: PropTypes.shape({
27
- id: PropTypes.string.isRequired,
28
- defaultMessage: PropTypes.string.isRequired,
29
- values: PropTypes.object,
30
- }),
31
- labelAction: PropTypes.element,
32
- name: PropTypes.string.isRequired,
33
- };
34
-
35
- export default Label;
@@ -1,36 +0,0 @@
1
- import styled from 'styled-components';
2
- import { Box } from '@strapi/design-system/Box';
3
-
4
- /* eslint-disable */
5
- /* stylelint-disable */
6
- const EditorWrapper = styled.div`
7
- cursor: ${({ disabled }) => (disabled ? 'not-allowed !important' : 'auto')};
8
- /* BASICS */
9
-
10
- .colored {
11
- background-color: yellow;
12
- color: black !important;
13
- }
14
-
15
- > div {
16
- border-radius: 3px;
17
- > div:last-of-type {
18
- min-height: 253px;
19
- max-height: 506px;
20
- }
21
- }
22
-
23
- .CodeMirror {
24
- /* Set height, width, borders, and global font properties here */
25
- font-size: ${14 / 16}rem;
26
- direction: ltr;
27
- z-index: 0;
28
- }
29
- `;
30
-
31
- const StyledBox = styled(Box)`
32
- border-radius: ${({ theme }) => theme.borderRadius};
33
- border: 1px solid ${({ theme, error }) => (error ? theme.colors.danger600 : 'transparent')};
34
- `;
35
-
36
- export { EditorWrapper, StyledBox };
@@ -1,223 +0,0 @@
1
- /**
2
- *
3
- * InputJSON
4
- *
5
- */
6
-
7
- import React from 'react';
8
- import PropTypes from 'prop-types';
9
- import cm from 'codemirror';
10
- import trimStart from 'lodash/trimStart';
11
- import { Stack } from '@strapi/design-system/Stack';
12
- import { FieldHint, FieldError } from '@strapi/design-system/Field';
13
- import jsonlint from './jsonlint';
14
- import { EditorWrapper, StyledBox } from './components';
15
- import Label from './Label';
16
- import FieldWrapper from './FieldWrapper';
17
-
18
- const WAIT = 600;
19
- const DEFAULT_THEME = 'blackboard';
20
-
21
- const loadCss = async () => {
22
- await import(
23
- /* webpackChunkName: "codemirror-javacript" */ 'codemirror/mode/javascript/javascript'
24
- );
25
- await import(/* webpackChunkName: "codemirror-addon-lint" */ 'codemirror/addon/lint/lint');
26
- await import(
27
- /* webpackChunkName: "codemirror-addon-lint-js" */ 'codemirror/addon/lint/javascript-lint'
28
- );
29
- await import(
30
- /* webpackChunkName: "codemirror-addon-closebrackets" */ 'codemirror/addon/edit/closebrackets'
31
- );
32
- await import(
33
- /* webpackChunkName: "codemirror-addon-mark-selection" */ 'codemirror/addon/selection/mark-selection'
34
- );
35
- await import(/* webpackChunkName: "codemirror-css" */ 'codemirror/lib/codemirror.css');
36
- await import(/* webpackChunkName: "codemirror-theme" */ 'codemirror/theme/blackboard.css');
37
- };
38
-
39
- loadCss();
40
-
41
- class InputJSON extends React.Component {
42
- timer = null;
43
-
44
- constructor(props) {
45
- super(props);
46
- this.editor = React.createRef();
47
- this.state = { error: false, markedText: null };
48
- }
49
-
50
- componentDidMount() {
51
- // Init codemirror component
52
- this.codeMirror = cm.fromTextArea(this.editor.current, {
53
- autoCloseBrackets: true,
54
- lineNumbers: true,
55
- matchBrackets: true,
56
- mode: 'application/json',
57
- readOnly: this.props.disabled,
58
- smartIndent: true,
59
- styleSelectedText: true,
60
- tabSize: 2,
61
- theme: DEFAULT_THEME,
62
- fontSize: '13px',
63
- });
64
- this.codeMirror.on('change', this.handleChange);
65
-
66
- this.setSize();
67
- this.setInitValue();
68
- }
69
-
70
- componentDidUpdate(prevProps) {
71
- if (prevProps.value !== this.props.value && !this.codeMirror.state.focused) {
72
- this.setInitValue();
73
- }
74
- }
75
-
76
- setInitValue = () => {
77
- const { value } = this.props;
78
-
79
- try {
80
- if (value === null) return this.codeMirror.setValue('');
81
-
82
- if (value === 0) return this.codeMirror.setValue('0');
83
-
84
- return this.codeMirror.setValue(value);
85
- } catch (err) {
86
- return this.setState({ error: true });
87
- }
88
- };
89
-
90
- setSize = () => this.codeMirror.setSize('100%', 'auto');
91
-
92
- getContentAtLine = (line) => this.codeMirror.getLine(line);
93
-
94
- // getEditorOption = (opt) => this.codeMirror.getOption(opt);
95
- // getValue = () => this.codeMirror.getValue();
96
-
97
- markSelection = ({ message }) => {
98
- let line = parseInt(message.split(':')[0].split('line ')[1], 10) - 1;
99
- let content = this.getContentAtLine(line);
100
-
101
- if (content === '{') {
102
- line += 1;
103
- content = this.getContentAtLine(line);
104
- }
105
- const chEnd = content.length;
106
- const chStart = chEnd - trimStart(content, ' ').length;
107
- const markedText = this.codeMirror.markText(
108
- { line, ch: chStart },
109
- { line, ch: chEnd },
110
- { className: 'colored' }
111
- );
112
- this.setState({ markedText });
113
- };
114
-
115
- handleChange = (doc, change) => {
116
- if (change.origin === 'setValue') {
117
- return;
118
- }
119
-
120
- const { name, onChange } = this.props;
121
- let value = doc.getValue();
122
-
123
- if (value === '') {
124
- value = null;
125
- }
126
-
127
- // Update the parent
128
- onChange({
129
- target: {
130
- name,
131
- value,
132
- type: 'json',
133
- },
134
- });
135
-
136
- // Remove higlight error
137
- if (this.state.markedText) {
138
- this.state.markedText.clear();
139
- this.setState({ markedText: null, error: null });
140
- }
141
-
142
- clearTimeout(this.timer);
143
- this.timer = setTimeout(() => this.testJSON(doc.getValue()), WAIT);
144
- };
145
-
146
- testJSON = (value) => {
147
- try {
148
- jsonlint.parse(value);
149
- } catch (err) {
150
- this.markSelection(err);
151
- }
152
- };
153
-
154
- render() {
155
- if (this.state.error) {
156
- return <div>error json</div>;
157
- }
158
-
159
- return (
160
- <FieldWrapper
161
- name={this.props.name}
162
- hint={this.props.description}
163
- error={this.props.error}
164
- required={this.props.required}
165
- >
166
- <Stack spacing={1}>
167
- <Label
168
- intlLabel={this.props.intlLabel}
169
- name={this.props.name}
170
- labelAction={this.props.labelAction}
171
- />
172
- <StyledBox error={this.props.error}>
173
- <EditorWrapper disabled={this.props.disabled}>
174
- <textarea
175
- ref={this.editor}
176
- autoComplete="off"
177
- id={this.props.id || this.props.name}
178
- defaultValue=""
179
- />
180
- </EditorWrapper>
181
- </StyledBox>
182
- <FieldHint />
183
- <FieldError />
184
- </Stack>
185
- </FieldWrapper>
186
- );
187
- }
188
- }
189
-
190
- InputJSON.defaultProps = {
191
- description: null,
192
- disabled: false,
193
- id: undefined,
194
- error: undefined,
195
- intlLabel: undefined,
196
- labelAction: undefined,
197
- onChange() {},
198
- value: null,
199
- required: false,
200
- };
201
-
202
- InputJSON.propTypes = {
203
- description: PropTypes.shape({
204
- id: PropTypes.string.isRequired,
205
- defaultMessage: PropTypes.string.isRequired,
206
- values: PropTypes.object,
207
- }),
208
- disabled: PropTypes.bool,
209
- error: PropTypes.string,
210
- id: PropTypes.string,
211
- intlLabel: PropTypes.shape({
212
- id: PropTypes.string.isRequired,
213
- defaultMessage: PropTypes.string.isRequired,
214
- values: PropTypes.object,
215
- }),
216
- labelAction: PropTypes.element,
217
- name: PropTypes.string.isRequired,
218
- onChange: PropTypes.func,
219
- value: PropTypes.any,
220
- required: PropTypes.bool,
221
- };
222
-
223
- export default InputJSON;