@strapi/admin 4.3.4 → 4.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. package/admin/src/StrapiApp.js +27 -35
  2. package/admin/src/components/AuthenticatedApp/index.js +15 -12
  3. package/admin/src/components/AuthenticatedApp/utils/api.js +1 -1
  4. package/admin/src/components/AutoReloadOverlayBlockerProvider/index.js +8 -6
  5. package/admin/src/components/ConfigurationsProvider/index.js +21 -12
  6. package/admin/src/components/ConfigurationsProvider/reducer.js +1 -1
  7. package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
  8. package/admin/src/components/GuidedTour/Homepage/index.js +2 -2
  9. package/admin/src/components/GuidedTour/Modal/components/Content.js +6 -6
  10. package/admin/src/components/GuidedTour/Modal/components/Modal.js +1 -1
  11. package/admin/src/components/GuidedTour/Modal/index.js +2 -4
  12. package/admin/src/components/GuidedTour/Modal/reducer.js +1 -1
  13. package/admin/src/components/GuidedTour/index.js +4 -4
  14. package/admin/src/components/GuidedTour/init.js +2 -2
  15. package/admin/src/components/GuidedTour/reducer.js +1 -1
  16. package/admin/src/components/GuidedTour/utils/isGuidedTourCompleted.js +1 -1
  17. package/admin/src/components/GuidedTour/utils/persistStateToLocaleStorage.js +4 -4
  18. package/admin/src/components/LanguageProvider/index.js +1 -1
  19. package/admin/src/components/LanguageProvider/init.js +1 -1
  20. package/admin/src/components/LeftMenu/index.js +6 -6
  21. package/admin/src/components/Notifications/Notification/index.js +3 -4
  22. package/admin/src/components/Notifications/index.js +2 -2
  23. package/admin/src/components/Notifications/reducer.js +2 -2
  24. package/admin/src/components/PluginsInitializer/index.js +4 -2
  25. package/admin/src/components/PluginsInitializer/init.js +1 -1
  26. package/admin/src/components/PluginsInitializer/reducer.js +1 -1
  27. package/admin/src/components/PrivateRoute/index.js +1 -1
  28. package/admin/src/components/Providers/index.js +14 -10
  29. package/admin/src/components/RBACProvider/actions.js +1 -1
  30. package/admin/src/components/RBACProvider/index.js +1 -1
  31. package/admin/src/components/RBACProvider/reducer.js +2 -2
  32. package/admin/src/components/ThemeToggleProvider/index.js +1 -1
  33. package/admin/src/components/UpgradePlanModal/index.js +1 -1
  34. package/admin/src/content-manager/components/AttributeFilter/Filters.js +1 -1
  35. package/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +1 -1
  36. package/admin/src/content-manager/components/AttributeFilter/index.js +1 -1
  37. package/admin/src/content-manager/components/Block/index.js +1 -1
  38. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +7 -12
  39. package/admin/src/content-manager/components/DragLayer/index.js +1 -1
  40. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +1 -1
  41. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -1
  42. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +4 -4
  43. package/admin/src/content-manager/components/DynamicTable/index.js +25 -4
  44. package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton/index.js +18 -20
  45. package/admin/src/content-manager/components/DynamicZone/components/Component/index.js +1 -1
  46. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
  47. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/index.js +3 -3
  48. package/admin/src/content-manager/components/DynamicZone/index.js +10 -10
  49. package/admin/src/content-manager/components/DynamicZone/utils/connect.js +1 -1
  50. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  51. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +6 -6
  52. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +1 -1
  53. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +4 -4
  54. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +18 -18
  55. package/admin/src/content-manager/components/FieldComponent/utils/connect.js +1 -1
  56. package/admin/src/content-manager/components/FieldComponent/utils/select.js +6 -6
  57. package/admin/src/content-manager/components/FieldTypeIcon/index.js +31 -1
  58. package/admin/src/content-manager/components/FormTitle/index.js +1 -1
  59. package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
  60. package/admin/src/content-manager/components/InputJSON/index.js +5 -6
  61. package/admin/src/content-manager/components/InputJSON/jsonlint.js +13 -13
  62. package/admin/src/content-manager/components/InputUID/index.js +1 -1
  63. package/admin/src/content-manager/components/InputUID/regex.js +1 -1
  64. package/admin/src/content-manager/components/Inputs/index.js +62 -15
  65. package/admin/src/content-manager/components/Inputs/utils/connect.js +1 -1
  66. package/admin/src/content-manager/components/Inputs/utils/generateOptions.js +1 -1
  67. package/admin/src/content-manager/components/Inputs/utils/getStep.js +1 -5
  68. package/admin/src/content-manager/components/LayoutDndProvider/index.js +6 -6
  69. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +4 -4
  70. package/admin/src/content-manager/components/PreviewWysiwyg/utils/mdRenderer.js +1 -1
  71. package/admin/src/content-manager/components/PreviewWysiwyg/utils/satinizeHtml.js +1 -1
  72. package/admin/src/content-manager/components/RepeatableComponent/AccordionGroupCustom/index.js +1 -1
  73. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +9 -15
  74. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/utils/connect.js +1 -1
  75. package/admin/src/content-manager/components/RepeatableComponent/index.js +5 -5
  76. package/admin/src/content-manager/components/RepeatableComponent/utils/connect.js +1 -1
  77. package/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js +2 -2
  78. package/admin/src/content-manager/components/SectionTitle/index.js +1 -1
  79. package/admin/src/content-manager/components/SelectMany/ListItem.js +1 -1
  80. package/admin/src/content-manager/components/SelectMany/index.js +1 -1
  81. package/admin/src/content-manager/components/SelectOne/SingleValue.js +1 -1
  82. package/admin/src/content-manager/components/SelectWrapper/Option.js +1 -1
  83. package/admin/src/content-manager/components/SelectWrapper/index.js +16 -26
  84. package/admin/src/content-manager/components/SelectWrapper/utils/connect.js +1 -1
  85. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +6 -11
  86. package/admin/src/content-manager/components/SingleTypeFormWrapper/utils/getRequestUrl.js +1 -1
  87. package/admin/src/content-manager/components/Wysiwyg/Editor.js +1 -1
  88. package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +1 -1
  89. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +1 -1
  90. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +4 -4
  91. package/admin/src/content-manager/components/Wysiwyg/index.js +5 -5
  92. package/admin/src/content-manager/components/Wysiwyg/utils/utils.js +4 -4
  93. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -1
  94. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +3 -3
  95. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/reducer.js +1 -1
  96. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +7 -7
  97. package/admin/src/content-manager/hooks/useFindRedirectionLink/index.js +1 -1
  98. package/admin/src/content-manager/hooks/useFindRedirectionLink/selectors.js +1 -1
  99. package/admin/src/content-manager/hooks/useSyncRbac/reducer.js +1 -1
  100. package/admin/src/content-manager/hooks/useSyncRbac/selectors.js +2 -2
  101. package/admin/src/content-manager/pages/App/LeftMenu/index.js +8 -8
  102. package/admin/src/content-manager/pages/App/index.js +3 -3
  103. package/admin/src/content-manager/pages/App/reducer.js +1 -1
  104. package/admin/src/content-manager/pages/App/selectors.js +4 -4
  105. package/admin/src/content-manager/pages/App/useModels.js +1 -1
  106. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +2 -2
  107. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -1
  108. package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +2 -2
  109. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
  110. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +5 -5
  111. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +1 -1
  112. package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +1 -1
  113. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +7 -2
  114. package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +3 -3
  115. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +36 -5
  116. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFieldButton.js +3 -3
  117. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFields.js +1 -1
  118. package/admin/src/content-manager/pages/EditSettingsView/index.js +23 -22
  119. package/admin/src/content-manager/pages/EditSettingsView/reducer.js +1 -1
  120. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -2
  121. package/admin/src/content-manager/pages/EditSettingsView/utils/getInputProps.js +1 -1
  122. package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +12 -12
  123. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +1 -1
  124. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/connect.js +1 -1
  125. package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/utils/connect.js +1 -1
  126. package/admin/src/content-manager/pages/EditView/Header/index.js +4 -4
  127. package/admin/src/content-manager/pages/EditView/Header/utils/connect.js +1 -1
  128. package/admin/src/content-manager/pages/EditView/Header/utils/getDraftRelations.js +3 -3
  129. package/admin/src/content-manager/pages/EditView/Informations/utils/getUnits.js +1 -1
  130. package/admin/src/content-manager/pages/EditView/index.js +98 -94
  131. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -2
  132. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +1 -1
  133. package/admin/src/content-manager/pages/EditViewLayoutManager/Permissions.js +1 -1
  134. package/admin/src/content-manager/pages/EditViewLayoutManager/reducer.js +1 -1
  135. package/admin/src/content-manager/pages/EditViewLayoutManager/selectors.js +1 -1
  136. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +6 -6
  137. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +4 -3
  138. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +9 -9
  139. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +2 -2
  140. package/admin/src/content-manager/pages/ListSettingsView/index.js +9 -9
  141. package/admin/src/content-manager/pages/ListSettingsView/reducer.js +1 -1
  142. package/admin/src/content-manager/pages/ListSettingsView/utils/ellipsisCardTitle.js +1 -1
  143. package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +8 -7
  144. package/admin/src/content-manager/pages/ListView/FieldPicker/utils/getAllAllowedHeader.js +1 -1
  145. package/admin/src/content-manager/pages/ListView/actions.js +1 -1
  146. package/admin/src/content-manager/pages/ListView/index.js +3 -3
  147. package/admin/src/content-manager/pages/ListView/reducer.js +2 -2
  148. package/admin/src/content-manager/pages/ListView/selectors.js +3 -3
  149. package/admin/src/content-manager/pages/ListView/utils/createPluginsFilter.js +1 -1
  150. package/admin/src/content-manager/pages/ListViewLayoutManager/Permissions.js +2 -2
  151. package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +3 -3
  152. package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +1 -1
  153. package/admin/src/content-manager/sharedReducers/crudReducer/selectors.js +1 -1
  154. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  155. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -2
  156. package/admin/src/content-manager/utils/generatePermissionsObject.js +3 -2
  157. package/admin/src/content-manager/utils/getFieldName.js +2 -2
  158. package/admin/src/content-manager/utils/getMaxTempKey.js +2 -2
  159. package/admin/src/content-manager/utils/getRequestUrl.js +1 -1
  160. package/admin/src/content-manager/utils/getTrad.js +1 -1
  161. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +2 -2
  162. package/admin/src/content-manager/utils/removeKeyInObject.js +1 -1
  163. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +2 -2
  164. package/admin/src/core/apis/CustomFields.js +80 -0
  165. package/admin/src/core/apis/Plugin.js +1 -1
  166. package/admin/src/core/apis/index.js +1 -0
  167. package/admin/src/core/store/configureStore.js +1 -1
  168. package/admin/src/core/store/createReducer.js +1 -1
  169. package/admin/src/core/utils/axiosInstance.js +4 -4
  170. package/admin/src/core/utils/createHook.js +2 -2
  171. package/admin/src/hooks/useFetchEnabledPlugins/index.js +3 -3
  172. package/admin/src/hooks/useFetchMarketplacePlugins/index.js +3 -3
  173. package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +1 -1
  174. package/admin/src/hooks/useFetchMarketplaceProviders/index.js +3 -3
  175. package/admin/src/hooks/useFetchPermissionsLayout/index.js +1 -1
  176. package/admin/src/hooks/useFetchPermissionsLayout/reducer.js +1 -1
  177. package/admin/src/hooks/useFetchRole/index.js +4 -4
  178. package/admin/src/hooks/useFetchRole/reducer.js +1 -1
  179. package/admin/src/hooks/useMenu/reducer.js +1 -1
  180. package/admin/src/hooks/useMenu/utils/getGeneralLinks.js +3 -1
  181. package/admin/src/hooks/useModels/index.js +1 -1
  182. package/admin/src/hooks/useModels/reducer.js +3 -3
  183. package/admin/src/hooks/useRolesList/reducer.js +1 -1
  184. package/admin/src/hooks/useSettingsForm/index.js +2 -2
  185. package/admin/src/hooks/useSettingsForm/reducer.js +1 -1
  186. package/admin/src/hooks/useSettingsMenu/index.js +2 -2
  187. package/admin/src/hooks/useSettingsMenu/init.js +1 -1
  188. package/admin/src/hooks/useSettingsMenu/reducer.js +3 -3
  189. package/admin/src/hooks/useSettingsMenu/utils/formatLinks.js +3 -3
  190. package/admin/src/hooks/useSettingsMenu/utils/sortLinks.js +1 -1
  191. package/admin/src/index.js +1 -1
  192. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
  193. package/admin/src/pages/Admin/Onboarding/index.js +2 -2
  194. package/admin/src/pages/Admin/index.js +2 -2
  195. package/admin/src/pages/App/index.js +13 -5
  196. package/admin/src/pages/App/reducer.js +1 -1
  197. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
  198. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +4 -4
  199. package/admin/src/pages/AuthPage/components/Login/index.js +2 -2
  200. package/admin/src/pages/AuthPage/components/Register/index.js +6 -6
  201. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +5 -5
  202. package/admin/src/pages/AuthPage/init.js +1 -1
  203. package/admin/src/pages/AuthPage/reducer.js +1 -1
  204. package/admin/src/pages/AuthPage/utils/forms.js +2 -8
  205. package/admin/src/pages/HomePage/ContentBlocks.js +1 -1
  206. package/admin/src/pages/HomePage/SocialLinks.js +1 -1
  207. package/admin/src/pages/HomePage/index.js +3 -3
  208. package/admin/src/pages/InstalledPluginsPage/Plugins.js +1 -1
  209. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +2 -2
  210. package/admin/src/pages/MarketplacePage/index.js +6 -10
  211. package/admin/src/pages/ProfilePage/index.js +20 -23
  212. package/admin/src/pages/ProfilePage/utils/api.js +1 -1
  213. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +4 -4
  214. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +2 -2
  215. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +8 -6
  216. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +25 -13
  217. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +16 -4
  218. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +1 -1
  219. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +1 -1
  220. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +1 -1
  221. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/reducer.js +1 -1
  222. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +1 -1
  223. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +2 -2
  224. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -1
  225. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +1 -1
  226. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +4 -4
  227. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +1 -1
  228. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +1 -1
  229. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +4 -4
  230. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +1 -1
  231. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +1 -1
  232. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +4 -4
  233. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +2 -2
  234. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +5 -8
  235. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +1 -1
  236. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +3 -3
  237. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +1 -1
  238. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -1
  239. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +8 -12
  240. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/utils/generateHeadersFromActions.js +1 -1
  241. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
  242. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/getAvailableActions.js +1 -1
  243. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapses/index.js +1 -1
  244. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
  245. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -1
  246. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/findDisplayedActions.js +1 -1
  247. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +2 -2
  248. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +9 -8
  249. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +4 -4
  250. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +1 -1
  251. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/findMatchingPermissions.js +1 -1
  252. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  253. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +1 -1
  254. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatPermissionsToAPI.js +1 -1
  255. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatSettingsPermissionsToAPI.js +4 -4
  256. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +2 -2
  257. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +5 -8
  258. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +2 -2
  259. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/getConditionsButtonState.js +2 -2
  260. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
  261. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +67 -69
  262. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +4 -3
  263. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -2
  264. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/getCheckboxState.js +3 -3
  265. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/removeConditionKeyFromData.js +1 -1
  266. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +58 -60
  267. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +6 -10
  268. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +3 -3
  269. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +1 -1
  270. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +4 -4
  271. package/admin/src/pages/SettingsPage/pages/Users/ListPage/Filters/index.js +1 -1
  272. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +8 -8
  273. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js +2 -8
  274. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +17 -11
  275. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/api.js +1 -1
  276. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +46 -14
  277. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -2
  278. package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js +1 -5
  279. package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/roles.js +1 -4
  280. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +5 -5
  281. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +4 -4
  282. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/utils/formatValue.js +1 -1
  283. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +4 -4
  284. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +1 -1
  285. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/fieldsRegex.js +2 -2
  286. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/schema.js +1 -1
  287. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +9 -9
  288. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/reducer.js +2 -2
  289. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +2 -2
  290. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +6 -6
  291. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/reducer.js +4 -4
  292. package/admin/src/pages/SettingsPage/utils/createSectionsRoutes.js +3 -3
  293. package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +12 -12
  294. package/admin/src/pages/SettingsPage/utils/getSectionsToDisplay.js +2 -2
  295. package/admin/src/pages/UseCasePage/index.js +2 -2
  296. package/admin/src/shared/components/InjectionZone/index.js +1 -1
  297. package/admin/src/shared/hooks/useInjectionZone/index.js +1 -1
  298. package/admin/src/translations/ca.json +4 -4
  299. package/admin/src/translations/de.json +4 -4
  300. package/admin/src/translations/dk.json +4 -4
  301. package/admin/src/translations/en.json +16 -15
  302. package/admin/src/translations/es.json +163 -6
  303. package/admin/src/translations/fr.json +4 -4
  304. package/admin/src/translations/gu.json +4 -4
  305. package/admin/src/translations/he.json +3 -3
  306. package/admin/src/translations/hi.json +4 -4
  307. package/admin/src/translations/hu.json +4 -4
  308. package/admin/src/translations/id.json +4 -4
  309. package/admin/src/translations/it.json +4 -4
  310. package/admin/src/translations/ja.json +4 -4
  311. package/admin/src/translations/ko.json +4 -4
  312. package/admin/src/translations/ml.json +4 -4
  313. package/admin/src/translations/nl.json +4 -4
  314. package/admin/src/translations/no.json +3 -3
  315. package/admin/src/translations/pl.json +4 -4
  316. package/admin/src/translations/pt-BR.json +177 -24
  317. package/admin/src/translations/ru.json +4 -4
  318. package/admin/src/translations/sa.json +4 -4
  319. package/admin/src/translations/sk.json +4 -4
  320. package/admin/src/translations/sv.json +665 -11
  321. package/admin/src/translations/th.json +3 -3
  322. package/admin/src/translations/zh-Hans.json +12 -15
  323. package/admin/src/translations/zh.json +4 -4
  324. package/admin/src/utils/getAttributesToDisplay.js +1 -1
  325. package/admin/src/utils/getExistingActions.js +2 -2
  326. package/admin/src/utils/getFullName.js +1 -1
  327. package/admin/src/utils/getRequestUrl.js +1 -1
  328. package/admin/src/utils/makeUniqueRoutes.js +2 -2
  329. package/admin/src/utils/sortLinks.js +1 -1
  330. package/build/{1669.0551026a.chunk.js → 1669.4ce92b2f.chunk.js} +1 -1
  331. package/build/524.2437fb56.chunk.js +644 -0
  332. package/build/{6925.fb35248e.chunk.js → 6925.f5c8b6fc.chunk.js} +4 -4
  333. package/build/{7866.29d1f169.chunk.js → 7866.22e3c9f8.chunk.js} +1 -1
  334. package/build/8773.4e36117f.chunk.js +325 -0
  335. package/build/Admin-authenticatedApp.aaa66872.chunk.js +80 -0
  336. package/build/Admin_InternalErrorPage.12e24216.chunk.js +1 -0
  337. package/build/{Admin_marketplace.0b758aac.chunk.js → Admin_marketplace.2d181ad7.chunk.js} +1 -1
  338. package/build/Admin_pluginsPage.4d59785a.chunk.js +1 -0
  339. package/build/Admin_profilePage.8617313a.chunk.js +15 -0
  340. package/build/Admin_settingsPage.e58753c8.chunk.js +178 -0
  341. package/build/admin-app.1f9e13f8.chunk.js +112 -0
  342. package/build/admin-edit-roles-page.554ba3fa.chunk.js +1 -0
  343. package/build/admin-edit-users.5bebf473.chunk.js +10 -0
  344. package/build/admin-users.1d0aa7a0.chunk.js +11 -0
  345. package/build/{api-tokens-create-page.442e3be0.chunk.js → api-tokens-create-page.b4a9987d.chunk.js} +1 -1
  346. package/build/{api-tokens-edit-page.5f34eec7.chunk.js → api-tokens-edit-page.6f5b4e26.chunk.js} +1 -1
  347. package/build/api-tokens-list-page.06938769.chunk.js +15 -0
  348. package/build/ca-json.d16c1d28.chunk.js +1 -0
  349. package/build/content-manager.86f7594d.chunk.js +1178 -0
  350. package/build/content-type-builder-list-view.9b874fd4.chunk.js +194 -0
  351. package/build/content-type-builder-translation-en-json.f985c9c4.chunk.js +1 -0
  352. package/build/content-type-builder-translation-pt-BR-json.d6c7fcc1.chunk.js +1 -0
  353. package/build/content-type-builder.47ab07ad.chunk.js +145 -0
  354. package/build/de-json.a9b514dc.chunk.js +1 -0
  355. package/build/dk-json.09e8d145.chunk.js +1 -0
  356. package/build/en-json.1bf20384.chunk.js +1 -0
  357. package/build/es-json.bb1fc425.chunk.js +1 -0
  358. package/build/fr-json.a3cf2e0b.chunk.js +1 -0
  359. package/build/gu-json.d8311297.chunk.js +1 -0
  360. package/build/he-json.3b825d80.chunk.js +1 -0
  361. package/build/hi-json.0edb8d29.chunk.js +1 -0
  362. package/build/hu-json.7855529a.chunk.js +1 -0
  363. package/build/i18n-settings-page.bf1304b0.chunk.js +101 -0
  364. package/build/i18n-translation-fr-json.b401aa34.chunk.js +1 -0
  365. package/build/id-json.df9618f2.chunk.js +1 -0
  366. package/build/index.html +1 -1
  367. package/build/it-json.a21bf078.chunk.js +1 -0
  368. package/build/ja-json.7b0d9067.chunk.js +1 -0
  369. package/build/ko-json.983c1f8f.chunk.js +1 -0
  370. package/build/main.7db3414f.js +9321 -0
  371. package/build/ml-json.8dd021c8.chunk.js +1 -0
  372. package/build/nl-json.29d2eb37.chunk.js +1 -0
  373. package/build/no-json.40386397.chunk.js +1 -0
  374. package/build/pl-json.1f04f00c.chunk.js +1 -0
  375. package/build/pt-BR-json.b4bc8efe.chunk.js +1 -0
  376. package/build/ru-json.7ab40ccf.chunk.js +1 -0
  377. package/build/{runtime~main.3dfda620.js → runtime~main.c1c5510b.js} +2 -2
  378. package/build/sa-json.c5a9f4ea.chunk.js +1 -0
  379. package/build/sk-json.e4c24c4e.chunk.js +1 -0
  380. package/build/sv-json.c3f471ae.chunk.js +1 -0
  381. package/build/th-json.a59ffb32.chunk.js +1 -0
  382. package/build/upload-translation-es-json.0f90db48.chunk.js +1 -0
  383. package/build/{upload-translation-th-json.64dd70ce.chunk.js → upload-translation-th-json.9e1fda51.chunk.js} +1 -1
  384. package/build/upload.7084cea6.chunk.js +7 -0
  385. package/build/{users-advanced-settings-page.f38654fc.chunk.js → users-advanced-settings-page.f11c8af4.chunk.js} +1 -1
  386. package/build/{users-email-settings-page.899e7fbd.chunk.js → users-email-settings-page.73c41236.chunk.js} +1 -1
  387. package/build/{users-providers-settings-page.a0b0fe39.chunk.js → users-providers-settings-page.f8e78537.chunk.js} +1 -1
  388. package/build/users-roles-settings-page.cafb4fe5.chunk.js +30 -0
  389. package/build/{webhook-edit-page.3417d93c.chunk.js → webhook-edit-page.9aba79b2.chunk.js} +3 -3
  390. package/build/zh-Hans-json.77a42bc5.chunk.js +1 -0
  391. package/build/zh-json.451a0271.chunk.js +1 -0
  392. package/ee/admin/hooks/useAuthProviders/reducer.js +1 -1
  393. package/ee/admin/pages/AuthPage/components/Login/index.js +2 -2
  394. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +3 -3
  395. package/ee/admin/pages/SettingsPage/SingleSignOn/index.js +3 -3
  396. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +11 -9
  397. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +8 -8
  398. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/reducer.js +1 -1
  399. package/ee/admin/pages/SettingsPage/utils/customRoutes.js +1 -1
  400. package/ee/server/controllers/authentication/middlewares.js +1 -1
  401. package/ee/server/controllers/authentication/utils.js +1 -1
  402. package/ee/server/controllers/role.js +4 -4
  403. package/ee/server/services/passport/provider-registry.js +1 -1
  404. package/ee/server/services/passport/sso.js +1 -1
  405. package/ee/server/services/passport.js +1 -1
  406. package/ee/server/services/role.js +1 -1
  407. package/ee/server/validation/authentication.js +1 -1
  408. package/ee/server/validation/role.js +3 -6
  409. package/ee/server/validation/user.js +1 -1
  410. package/env.js +2 -2
  411. package/index.js +2 -2
  412. package/jest.config.front.js +3 -1
  413. package/package.json +24 -15
  414. package/scripts/build.js +2 -2
  415. package/scripts/create-dev-plugins-file.js +5 -7
  416. package/scripts/create-plugins-file.js +2 -2
  417. package/server/config/admin-conditions.js +3 -3
  418. package/server/controllers/admin.js +1 -1
  419. package/server/controllers/authentication.js +1 -1
  420. package/server/controllers/formatters/format-actions-by-sections.js +8 -5
  421. package/server/controllers/role.js +1 -1
  422. package/server/controllers/user.js +1 -1
  423. package/server/controllers/webhooks.js +6 -16
  424. package/server/domain/action/index.js +3 -3
  425. package/server/domain/action/provider.js +2 -2
  426. package/server/domain/condition/index.js +2 -2
  427. package/server/domain/condition/provider.js +1 -1
  428. package/server/domain/permission/index.js +3 -3
  429. package/server/domain/user.js +2 -2
  430. package/server/policies/hasPermissions.js +5 -5
  431. package/server/policies/isAuthenticatedAdmin.js +1 -1
  432. package/server/routes/serve-admin-panel.js +1 -1
  433. package/server/services/action.js +1 -1
  434. package/server/services/api-token.js +5 -5
  435. package/server/services/auth.js +2 -2
  436. package/server/services/condition.js +1 -1
  437. package/server/services/content-type.js +5 -3
  438. package/server/services/passport/local-strategy.js +2 -2
  439. package/server/services/passport.js +2 -4
  440. package/server/services/permission/engine-hooks.js +1 -1
  441. package/server/services/permission/engine.js +9 -9
  442. package/server/services/permission/permissions-manager/query-builers.js +5 -5
  443. package/server/services/permission/permissions-manager/sanitize.js +6 -10
  444. package/server/services/permission/queries.js +12 -13
  445. package/server/services/permission/sections-builder/handlers.js +21 -19
  446. package/server/services/permission/sections-builder/section.js +2 -2
  447. package/server/services/permission/sections-builder/utils.js +5 -5
  448. package/server/services/project-settings.js +9 -12
  449. package/server/services/role.js +15 -13
  450. package/server/services/token.js +2 -2
  451. package/server/services/user.js +11 -11
  452. package/server/strategies/admin.js +1 -1
  453. package/server/strategies/api-token.js +3 -3
  454. package/server/utils/index.js +1 -1
  455. package/server/validation/action-provider.js +6 -12
  456. package/server/validation/api-tokens.js +4 -16
  457. package/server/validation/authentication/renew-token.js +1 -5
  458. package/server/validation/common-functions/check-fields-are-correctly-nested.js +5 -3
  459. package/server/validation/common-functions/check-fields-dont-have-duplicates.js +3 -2
  460. package/server/validation/common-validators.js +74 -71
  461. package/server/validation/permission.js +13 -13
  462. package/server/validation/policies/hasPermissions.js +2 -6
  463. package/server/validation/user.js +1 -5
  464. package/utils/create-cache-dir.js +3 -3
  465. package/utils/get-custom-app-config-file.js +3 -3
  466. package/utils/get-plugins-path.js +3 -2
  467. package/utils/should-build-admin.js +4 -4
  468. package/webpack.config.js +2 -7
  469. package/build/611.aa894d27.chunk.js +0 -158
  470. package/build/8773.c190837d.chunk.js +0 -330
  471. package/build/Admin-authenticatedApp.380e5e99.chunk.js +0 -80
  472. package/build/Admin_InternalErrorPage.25c53284.chunk.js +0 -1
  473. package/build/Admin_pluginsPage.0992c2b5.chunk.js +0 -1
  474. package/build/Admin_profilePage.35ce8e94.chunk.js +0 -15
  475. package/build/Admin_settingsPage.76ee4c17.chunk.js +0 -178
  476. package/build/admin-app.93ff2e38.chunk.js +0 -112
  477. package/build/admin-edit-roles-page.358d98c1.chunk.js +0 -1
  478. package/build/admin-edit-users.7d9cf406.chunk.js +0 -10
  479. package/build/admin-users.bb3a8eb6.chunk.js +0 -11
  480. package/build/api-tokens-list-page.5ea3f6ce.chunk.js +0 -15
  481. package/build/ca-json.0097e443.chunk.js +0 -1
  482. package/build/content-manager.55791f82.chunk.js +0 -1178
  483. package/build/content-type-builder-list-view.4a704844.chunk.js +0 -194
  484. package/build/content-type-builder-translation-en-json.201bfb78.chunk.js +0 -1
  485. package/build/content-type-builder-translation-pt-BR-json.5739a2aa.chunk.js +0 -1
  486. package/build/content-type-builder.f48a28f9.chunk.js +0 -142
  487. package/build/de-json.0b92acd2.chunk.js +0 -1
  488. package/build/dk-json.9f1bc016.chunk.js +0 -1
  489. package/build/en-json.6d70e9ff.chunk.js +0 -1
  490. package/build/es-json.2a5a9fc1.chunk.js +0 -1
  491. package/build/fr-json.84064a0b.chunk.js +0 -1
  492. package/build/gu-json.dafa6f0d.chunk.js +0 -1
  493. package/build/he-json.d40da459.chunk.js +0 -1
  494. package/build/hi-json.b4ae16d1.chunk.js +0 -1
  495. package/build/hu-json.c81ce352.chunk.js +0 -1
  496. package/build/i18n-settings-page.9d426e96.chunk.js +0 -101
  497. package/build/i18n-translation-fr-json.0839d68d.chunk.js +0 -1
  498. package/build/id-json.fad45d17.chunk.js +0 -1
  499. package/build/it-json.12df4cdf.chunk.js +0 -1
  500. package/build/ja-json.850237e9.chunk.js +0 -1
  501. package/build/ko-json.2f3d256e.chunk.js +0 -1
  502. package/build/main.66ef8611.js +0 -9317
  503. package/build/ml-json.dc946c7f.chunk.js +0 -1
  504. package/build/nl-json.465b173f.chunk.js +0 -1
  505. package/build/no-json.e8749dd4.chunk.js +0 -1
  506. package/build/pl-json.4d11f53d.chunk.js +0 -1
  507. package/build/pt-BR-json.6301d49b.chunk.js +0 -1
  508. package/build/ru-json.28147733.chunk.js +0 -1
  509. package/build/sa-json.be504091.chunk.js +0 -1
  510. package/build/sk-json.5b33afc2.chunk.js +0 -1
  511. package/build/sv-json.cdcac02d.chunk.js +0 -1
  512. package/build/th-json.3aadaec6.chunk.js +0 -1
  513. package/build/upload-translation-es-json.6b1813b6.chunk.js +0 -1
  514. package/build/upload.0af4feca.chunk.js +0 -7
  515. package/build/users-roles-settings-page.1206751f.chunk.js +0 -30
  516. package/build/zh-Hans-json.eac1d90a.chunk.js +0 -1
  517. package/build/zh-json.96bf6019.chunk.js +0 -1
@@ -34,9 +34,9 @@ const ListSettingsView = ({ layout, slug }) => {
34
34
  const { refetchData } = useContext(ModelsContext);
35
35
 
36
36
  const [showWarningSubmit, setWarningSubmit] = useState(false);
37
- const toggleWarningSubmit = () => setWarningSubmit(prevState => !prevState);
37
+ const toggleWarningSubmit = () => setWarningSubmit((prevState) => !prevState);
38
38
  const [isModalFormOpen, setIsModalFormOpen] = useState(false);
39
- const toggleModalForm = () => setIsModalFormOpen(prevState => !prevState);
39
+ const toggleModalForm = () => setIsModalFormOpen((prevState) => !prevState);
40
40
  const [reducerState, dispatch] = useReducer(reducer, initialState, () =>
41
41
  init(initialState, layout)
42
42
  );
@@ -76,7 +76,7 @@ const ListSettingsView = ({ layout, slug }) => {
76
76
  submitMutation.mutate(body);
77
77
  };
78
78
 
79
- const handleAddField = item => {
79
+ const handleAddField = (item) => {
80
80
  dispatch({
81
81
  type: 'ADD_FIELD',
82
82
  item,
@@ -99,13 +99,13 @@ const ListSettingsView = ({ layout, slug }) => {
99
99
  }
100
100
  };
101
101
 
102
- const handleSubmit = e => {
102
+ const handleSubmit = (e) => {
103
103
  e.preventDefault();
104
104
  toggleWarningSubmit();
105
105
  trackUsage('willSaveContentTypeLayout');
106
106
  };
107
107
 
108
- const handleClickEditField = fieldToEdit => {
108
+ const handleClickEditField = (fieldToEdit) => {
109
109
  dispatch({
110
110
  type: 'SET_FIELD_TO_EDIT',
111
111
  fieldToEdit,
@@ -120,7 +120,7 @@ const ListSettingsView = ({ layout, slug }) => {
120
120
  toggleModalForm();
121
121
  };
122
122
 
123
- const handleSubmitFieldEdit = e => {
123
+ const handleSubmitFieldEdit = (e) => {
124
124
  e.preventDefault();
125
125
  toggleModalForm();
126
126
  dispatch({
@@ -128,12 +128,12 @@ const ListSettingsView = ({ layout, slug }) => {
128
128
  });
129
129
  };
130
130
 
131
- const submitMutation = useMutation(body => putCMSettingsLV(body, slug), {
132
- onSuccess: () => {
131
+ const submitMutation = useMutation((body) => putCMSettingsLV(body, slug), {
132
+ onSuccess() {
133
133
  trackUsage('didEditListSettings');
134
134
  refetchData();
135
135
  },
136
- onError: () => {
136
+ onError() {
137
137
  toggleNotification({
138
138
  type: 'warning',
139
139
  message: { id: 'notification.error' },
@@ -12,7 +12,7 @@ const initialState = {
12
12
 
13
13
  const reducer = (state = initialState, action) =>
14
14
  // eslint-disable-next-line consistent-return
15
- produce(state, draftState => {
15
+ produce(state, (draftState) => {
16
16
  const layoutFieldListPath = ['modifiedData', 'layouts', 'list'];
17
17
  switch (action.type) {
18
18
  case 'ADD_FIELD': {
@@ -1,4 +1,4 @@
1
- const ellipsisCardTitle = title => {
1
+ const ellipsisCardTitle = (title) => {
2
2
  const formatedTitle = title.length > 20 ? `${title.substring(0, 20)}...` : title;
3
3
 
4
4
  return formatedTitle;
@@ -16,7 +16,7 @@ const FieldPicker = ({ layout }) => {
16
16
  const { trackUsage } = useTracking();
17
17
  const { formatMessage } = useIntl();
18
18
 
19
- const allAllowedHeaders = getAllAllowedHeaders(layout.contentType.attributes).map(attrName => {
19
+ const allAllowedHeaders = getAllAllowedHeaders(layout.contentType.attributes).map((attrName) => {
20
20
  const metadatas = layout.contentType.metadatas[attrName].list;
21
21
 
22
22
  return {
@@ -26,18 +26,18 @@ const FieldPicker = ({ layout }) => {
26
26
  });
27
27
  const values = displayedHeaders.map(({ name }) => name);
28
28
 
29
- const handleChange = updatedValues => {
29
+ const handleChange = (updatedValues) => {
30
30
  trackUsage('didChangeDisplayedFields');
31
31
 
32
32
  // removing a header
33
33
  if (updatedValues.length < values.length) {
34
- const removedHeader = values.filter(value => {
34
+ const removedHeader = values.filter((value) => {
35
35
  return updatedValues.indexOf(value) === -1;
36
36
  });
37
37
 
38
38
  dispatch(onChangeListHeaders({ name: removedHeader[0], value: true }));
39
39
  } else {
40
- const addedHeader = updatedValues.filter(value => {
40
+ const addedHeader = updatedValues.filter((value) => {
41
41
  return values.indexOf(value) === -1;
42
42
  });
43
43
 
@@ -51,18 +51,19 @@ const FieldPicker = ({ layout }) => {
51
51
  aria-label="change displayed fields"
52
52
  value={values}
53
53
  onChange={handleChange}
54
- customizeContent={values =>
54
+ customizeContent={(values) =>
55
55
  formatMessage(
56
56
  {
57
57
  id: getTrad('select.currently.selected'),
58
58
  defaultMessage: '{count} currently selected',
59
59
  },
60
60
  { count: values.length }
61
- )}
61
+ )
62
+ }
62
63
  multi
63
64
  size="S"
64
65
  >
65
- {allAllowedHeaders.map(header => {
66
+ {allAllowedHeaders.map((header) => {
66
67
  return (
67
68
  <Option key={header.name} value={header.name}>
68
69
  {formatMessage({
@@ -1,6 +1,6 @@
1
1
  import { checkIfAttributeIsDisplayable } from '../../../../utils';
2
2
 
3
- const getAllAllowedHeaders = attributes => {
3
+ const getAllAllowedHeaders = (attributes) => {
4
4
  const allowedAttributes = Object.keys(attributes).reduce((acc, current) => {
5
5
  const attribute = attributes[current];
6
6
 
@@ -32,4 +32,4 @@ export const setLayout = ({ components, contentType }) => {
32
32
  };
33
33
  };
34
34
 
35
- export const onChangeListHeaders = target => ({ type: ON_CHANGE_LIST_HEADERS, target });
35
+ export const onChangeListHeaders = (target) => ({ type: ON_CHANGE_LIST_HEADERS, target });
@@ -151,7 +151,7 @@ function ListView({
151
151
  );
152
152
 
153
153
  const handleConfirmDeleteAllData = useCallback(
154
- async ids => {
154
+ async (ids) => {
155
155
  try {
156
156
  await axiosInstance.post(getRequestUrl(`collection-types/${slug}/actions/bulkDelete`), {
157
157
  ids,
@@ -171,7 +171,7 @@ function ListView({
171
171
  );
172
172
 
173
173
  const handleConfirmDeleteData = useCallback(
174
- async idToDelete => {
174
+ async (idToDelete) => {
175
175
  try {
176
176
  await axiosInstance.delete(getRequestUrl(`collection-types/${slug}/${idToDelete}`));
177
177
 
@@ -236,7 +236,7 @@ function ListView({
236
236
  )
237
237
  : null;
238
238
 
239
- const getCreateAction = props =>
239
+ const getCreateAction = (props) =>
240
240
  canCreate ? (
241
241
  <Button
242
242
  {...props}
@@ -28,7 +28,7 @@ export const initialState = {
28
28
 
29
29
  const listViewReducer = (state = initialState, action) =>
30
30
  // eslint-disable-next-line consistent-return
31
- produce(state, draftState => {
31
+ produce(state, (draftState) => {
32
32
  switch (action.type) {
33
33
  case GET_DATA: {
34
34
  return {
@@ -105,7 +105,7 @@ const listViewReducer = (state = initialState, action) =>
105
105
  }
106
106
  } else {
107
107
  draftState.displayedHeaders = state.displayedHeaders.filter(
108
- header => header.name !== name
108
+ (header) => header.name !== name
109
109
  );
110
110
  }
111
111
 
@@ -4,7 +4,7 @@ import { initialState } from './reducer';
4
4
  /**
5
5
  * Direct selector to the listView state domain
6
6
  */
7
- const listViewDomain = () => state => state['content-manager_listView'] || initialState;
7
+ const listViewDomain = () => (state) => state['content-manager_listView'] || initialState;
8
8
 
9
9
  /**
10
10
  * Other specific selectors
@@ -15,11 +15,11 @@ const listViewDomain = () => state => state['content-manager_listView'] || initi
15
15
  */
16
16
 
17
17
  const makeSelectListView = () =>
18
- createSelector(listViewDomain(), substate => {
18
+ createSelector(listViewDomain(), (substate) => {
19
19
  return substate;
20
20
  });
21
21
 
22
- const selectDisplayedHeaders = state => {
22
+ const selectDisplayedHeaders = (state) => {
23
23
  const { displayedHeaders } = state['content-manager_listView'];
24
24
 
25
25
  return displayedHeaders;
@@ -1,4 +1,4 @@
1
- const createPluginsFilter = obj =>
1
+ const createPluginsFilter = (obj) =>
2
2
  Object.values(obj || {}).reduce((acc, current) => Object.assign(acc, current), {});
3
3
 
4
4
  export default createPluginsFilter;
@@ -5,7 +5,7 @@ import { useRBAC, LoadingIndicatorPage, difference } from '@strapi/helper-plugin
5
5
  import ListView from '../ListView';
6
6
  import { generatePermissionsObject } from '../../utils';
7
7
 
8
- const Permissions = props => {
8
+ const Permissions = (props) => {
9
9
  const viewPermissions = useMemo(() => generatePermissionsObject(props.slug), [props.slug]);
10
10
 
11
11
  const { isLoading, allowedActions } = useRBAC(viewPermissions, props.permissions);
@@ -35,7 +35,7 @@ export default memo(Permissions, (prev, next) => {
35
35
  // this hack prevents this
36
36
  // TODO at some point we will need to refacto the LV and migrate to react-query
37
37
  const propNamesThatHaveChanged = Object.keys(differenceBetweenRerenders).filter(
38
- propName => propName !== 'state'
38
+ (propName) => propName !== 'state'
39
39
  );
40
40
 
41
41
  return propNamesThatHaveChanged.length > 0;
@@ -14,7 +14,7 @@ export const getData = () => {
14
14
  };
15
15
  };
16
16
 
17
- export const getDataSucceeded = data => ({
17
+ export const getDataSucceeded = (data) => ({
18
18
  type: GET_DATA_SUCCEEDED,
19
19
  data,
20
20
  });
@@ -33,12 +33,12 @@ export const setDataStructures = (componentsDataStructure, contentTypeDataStruct
33
33
  contentTypeDataStructure,
34
34
  });
35
35
 
36
- export const setStatus = status => ({
36
+ export const setStatus = (status) => ({
37
37
  type: SET_STATUS,
38
38
  status,
39
39
  });
40
40
 
41
- export const submitSucceeded = data => ({
41
+ export const submitSucceeded = (data) => ({
42
42
  type: SUBMIT_SUCCEEDED,
43
43
  data,
44
44
  });
@@ -26,7 +26,7 @@ const crudInitialState = {
26
26
  };
27
27
 
28
28
  const crudReducer = (state = crudInitialState, action) =>
29
- produce(state, draftState => {
29
+ produce(state, (draftState) => {
30
30
  switch (action.type) {
31
31
  case GET_DATA: {
32
32
  draftState.isLoading = true;
@@ -1,3 +1,3 @@
1
- const selectCrudReducer = state => state['content-manager_editViewCrudReducer'];
1
+ const selectCrudReducer = (state) => state['content-manager_editViewCrudReducer'];
2
2
 
3
3
  export default selectCrudReducer;
@@ -1,6 +1,6 @@
1
1
  import { toLower } from 'lodash';
2
2
 
3
- const checkIfAttributeIsDisplayable = attribute => {
3
+ const checkIfAttributeIsDisplayable = (attribute) => {
4
4
  const type = attribute.type;
5
5
 
6
6
  if (type === 'relation') {
@@ -1,7 +1,7 @@
1
1
  import { omit, get } from 'lodash';
2
2
 
3
3
  const formatLayoutToApi = ({ layouts, metadatas, ...rest }) => {
4
- const list = layouts.list.map(obj => {
4
+ const list = layouts.list.map((obj) => {
5
5
  if (obj.name) {
6
6
  return obj.name;
7
7
  }
@@ -27,7 +27,7 @@ const formatLayoutToApi = ({ layouts, metadatas, ...rest }) => {
27
27
  };
28
28
  }, {});
29
29
 
30
- const edit = layouts.edit.map(row =>
30
+ const edit = layouts.edit.map((row) =>
31
31
  row.map(({ name, size }) => ({
32
32
  name,
33
33
  size,
@@ -1,6 +1,7 @@
1
- const addSubjectToPermissionsArray = (array, uid) => array.map(data => ({ ...data, subject: uid }));
1
+ const addSubjectToPermissionsArray = (array, uid) =>
2
+ array.map((data) => ({ ...data, subject: uid }));
2
3
 
3
- const generatePermissionsObject = uid => {
4
+ const generatePermissionsObject = (uid) => {
4
5
  const permissions = {
5
6
  create: [{ action: 'plugin::content-manager.explorer.create', subject: null }],
6
7
  delete: [{ action: 'plugin::content-manager.explorer.delete', subject: null }],
@@ -1,6 +1,6 @@
1
1
  import { isNaN } from 'lodash';
2
2
 
3
- const getFieldName = stringName =>
4
- stringName.split('.').filter(string => isNaN(parseInt(string, 10)));
3
+ const getFieldName = (stringName) =>
4
+ stringName.split('.').filter((string) => isNaN(parseInt(string, 10)));
5
5
 
6
6
  export default getFieldName;
@@ -1,11 +1,11 @@
1
- const getMaxTempKey = arr => {
1
+ const getMaxTempKey = (arr) => {
2
2
  if (arr.length === 0) {
3
3
  return -1;
4
4
  }
5
5
 
6
6
  return Math.max.apply(
7
7
  Math,
8
- arr.map(o => o.__temp_key__)
8
+ arr.map((o) => o.__temp_key__)
9
9
  );
10
10
  };
11
11
 
@@ -1,4 +1,4 @@
1
1
  // FIXME when back-end ready
2
- const getRequestUrl = path => `/content-manager/${path}`;
2
+ const getRequestUrl = (path) => `/content-manager/${path}`;
3
3
 
4
4
  export default getRequestUrl;
@@ -1,3 +1,3 @@
1
- const getTrad = id => `content-manager.${id}`;
1
+ const getTrad = (id) => `content-manager.${id}`;
2
2
 
3
3
  export default getTrad;
@@ -1,14 +1,14 @@
1
1
  import { set } from 'lodash';
2
2
 
3
3
  const mergeMetasWithSchema = (data, schemas, mainSchemaKey) => {
4
- const findSchema = refUid => schemas.find(obj => obj.uid === refUid);
4
+ const findSchema = (refUid) => schemas.find((obj) => obj.uid === refUid);
5
5
  const merged = Object.assign({}, data);
6
6
  const mainUID = data[mainSchemaKey].uid;
7
7
  const mainSchema = findSchema(mainUID);
8
8
 
9
9
  set(merged, [mainSchemaKey], { ...data[mainSchemaKey], ...mainSchema });
10
10
 
11
- Object.keys(data.components).forEach(compoUID => {
11
+ Object.keys(data.components).forEach((compoUID) => {
12
12
  const compoSchema = findSchema(compoUID);
13
13
 
14
14
  set(merged, ['components', compoUID], { ...data.components[compoUID], ...compoSchema });
@@ -17,7 +17,7 @@ const removeKeyInObject = (obj, keyToRemove) => {
17
17
  return acc;
18
18
  }
19
19
 
20
- return { ...acc, [current]: value.map(obj => removeKeyInObject(obj, keyToRemove)) };
20
+ return { ...acc, [current]: value.map((obj) => removeKeyInObject(obj, keyToRemove)) };
21
21
  }
22
22
 
23
23
  if (typeof value === 'object') {
@@ -10,7 +10,7 @@ const removePasswordFieldsFromData = (data, contentTypeSchema, componentSchema)
10
10
  const isRepeatable = getOtherInfos(schema, [current, 'repeatable']);
11
11
 
12
12
  if (attrType === 'dynamiczone') {
13
- acc[current] = value.map(componentValue => {
13
+ acc[current] = value.map((componentValue) => {
14
14
  const subCleanedData = recursiveCleanData(
15
15
  componentValue,
16
16
  componentSchema[componentValue.__component]
@@ -26,7 +26,7 @@ const removePasswordFieldsFromData = (data, contentTypeSchema, componentSchema)
26
26
  if (isRepeatable) {
27
27
  /* eslint-disable indent */
28
28
  acc[current] = value
29
- ? value.map(compoData => {
29
+ ? value.map((compoData) => {
30
30
  const subCleanedData = recursiveCleanData(compoData, componentSchema[component]);
31
31
 
32
32
  return subCleanedData;
@@ -0,0 +1,80 @@
1
+ import invariant from 'invariant';
2
+
3
+ const ALLOWED_TYPES = [
4
+ 'biginteger',
5
+ 'boolean',
6
+ 'date',
7
+ 'datetime',
8
+ 'decimal',
9
+ 'email',
10
+ 'enumeration',
11
+ 'float',
12
+ 'integer',
13
+ 'json',
14
+ 'password',
15
+ 'richtext',
16
+ 'string',
17
+ 'text',
18
+ 'time',
19
+ 'timestamp',
20
+ 'uid',
21
+ ];
22
+
23
+ class CustomFields {
24
+ constructor() {
25
+ this.customFields = {};
26
+ }
27
+
28
+ register(customFields) {
29
+ if (Array.isArray(customFields)) {
30
+ // If several custom fields are passed, register them one by one
31
+ customFields.forEach(customField => {
32
+ this.register(customField);
33
+ });
34
+ } else {
35
+ // Handle individual custom field
36
+ const { name, pluginId, type, intlLabel, intlDescription, components } = customFields;
37
+
38
+ // Ensure required attributes are provided
39
+ invariant(name, 'A name must be provided');
40
+ invariant(type, 'A type must be provided');
41
+ invariant(intlLabel, 'An intlLabel must be provided');
42
+ invariant(intlDescription, 'An intlDescription must be provided');
43
+ invariant(components, 'A components object must be provided');
44
+ invariant(components.Input, 'An Input component must be provided');
45
+
46
+ // Ensure the type is valid
47
+ invariant(
48
+ ALLOWED_TYPES.includes(type),
49
+ `Custom field type: '${type}' is not a valid Strapi type or it can't be used with a Custom Field`
50
+ );
51
+
52
+ // Ensure name has no special characters
53
+ const isValidObjectKey = /^(?![0-9])[a-zA-Z0-9$_-]+$/g;
54
+ invariant(
55
+ isValidObjectKey.test(name),
56
+ `Custom field name: '${name}' is not a valid object key`
57
+ );
58
+
59
+ // When no plugin is specified, default to the global namespace
60
+ const uid = pluginId ? `plugin::${pluginId}.${name}` : `global::${name}`;
61
+
62
+ // Ensure the uid is unique
63
+ const uidAlreadyUsed = Object.prototype.hasOwnProperty.call(this.customFields, uid);
64
+ invariant(!uidAlreadyUsed, `Custom field: '${uid}' has already been registered`);
65
+
66
+ this.customFields[uid] = customFields;
67
+ }
68
+ }
69
+
70
+ getAll() {
71
+ return this.customFields;
72
+ }
73
+
74
+ get(uid) {
75
+ return this.customFields[uid];
76
+ }
77
+ }
78
+
79
+ // Export an instance since it's a singleton
80
+ export default new CustomFields();
@@ -27,4 +27,4 @@ class Plugin {
27
27
  }
28
28
  }
29
29
 
30
- export default pluginConf => new Plugin(pluginConf);
30
+ export default (pluginConf) => new Plugin(pluginConf);
@@ -3,3 +3,4 @@ export { default as Components } from './Components';
3
3
  export { default as Middlewares } from './Middlewares';
4
4
  export { default as Plugin } from './Plugin';
5
5
  export { default as Reducers } from './Reducers';
6
+ export { default as customFields } from './CustomFields';
@@ -4,7 +4,7 @@ import createReducer from './createReducer';
4
4
  const configureStore = (appMiddlewares, appReducers) => {
5
5
  const middlewares = [];
6
6
 
7
- appMiddlewares.forEach(middleware => {
7
+ appMiddlewares.forEach((middleware) => {
8
8
  middlewares.push(middleware());
9
9
  });
10
10
 
@@ -1,5 +1,5 @@
1
1
  import { combineReducers } from 'redux';
2
2
 
3
- const createReducer = reducers => combineReducers(reducers);
3
+ const createReducer = (reducers) => combineReducers(reducers);
4
4
 
5
5
  export default createReducer;
@@ -6,7 +6,7 @@ const instance = axios.create({
6
6
  });
7
7
 
8
8
  instance.interceptors.request.use(
9
- async config => {
9
+ async (config) => {
10
10
  config.headers = {
11
11
  Authorization: `Bearer ${auth.getToken()}`,
12
12
  Accept: 'application/json',
@@ -15,14 +15,14 @@ instance.interceptors.request.use(
15
15
 
16
16
  return config;
17
17
  },
18
- error => {
18
+ (error) => {
19
19
  Promise.reject(error);
20
20
  }
21
21
  );
22
22
 
23
23
  instance.interceptors.response.use(
24
- response => response,
25
- error => {
24
+ (response) => response,
25
+ (error) => {
26
26
  // whatever you want to do with the error
27
27
  if (error?.response?.status === 401) {
28
28
  auth.clearAppStorage();
@@ -25,7 +25,7 @@ const createHook = () => {
25
25
  return result;
26
26
  },
27
27
  runSeries(...args) {
28
- return _handlers.map(fn => fn(...args));
28
+ return _handlers.map((fn) => fn(...args));
29
29
  },
30
30
  async runSeriesAsync(...args) {
31
31
  const result = [];
@@ -38,7 +38,7 @@ const createHook = () => {
38
38
  },
39
39
  runParallel(...args) {
40
40
  return Promise.all(
41
- _handlers.map(fn => {
41
+ _handlers.map((fn) => {
42
42
  return fn(...args);
43
43
  })
44
44
  );
@@ -2,16 +2,16 @@ import { useQuery } from 'react-query';
2
2
  import { useNotification } from '@strapi/helper-plugin';
3
3
  import { fetchEnabledPlugins } from './utils/api';
4
4
 
5
- const useFetchEnabledPlugins = notifyLoad => {
5
+ const useFetchEnabledPlugins = (notifyLoad) => {
6
6
  const toggleNotification = useNotification();
7
7
 
8
8
  return useQuery('list-enabled-plugins', () => fetchEnabledPlugins(), {
9
- onSuccess: () => {
9
+ onSuccess() {
10
10
  if (notifyLoad) {
11
11
  notifyLoad();
12
12
  }
13
13
  },
14
- onError: () => {
14
+ onError() {
15
15
  toggleNotification({
16
16
  type: 'warning',
17
17
  message: { id: 'notification.error', defaultMessage: 'An error occured' },
@@ -2,16 +2,16 @@ import { useQuery } from 'react-query';
2
2
  import { useNotification } from '@strapi/helper-plugin';
3
3
  import { fetchMarketplacePlugins } from './utils/api';
4
4
 
5
- const useFetchMarketplacePlugins = notifyLoad => {
5
+ const useFetchMarketplacePlugins = (notifyLoad) => {
6
6
  const toggleNotification = useNotification();
7
7
 
8
8
  return useQuery('list-marketplace-plugins', () => fetchMarketplacePlugins(), {
9
- onSuccess: () => {
9
+ onSuccess() {
10
10
  if (notifyLoad) {
11
11
  notifyLoad();
12
12
  }
13
13
  },
14
- onError: () => {
14
+ onError() {
15
15
  toggleNotification({
16
16
  type: 'warning',
17
17
  message: { id: 'notification.error', defaultMessage: 'An error occured' },
@@ -8,7 +8,7 @@ const fetchMarketplacePlugins = async () => {
8
8
  // Only keep v4 plugins
9
9
  const filteredResponse = {
10
10
  ...response,
11
- data: response.data.filter(plugin => plugin.attributes.strapiCompatibility === 'v4'),
11
+ data: response.data.filter((plugin) => plugin.attributes.strapiCompatibility === 'v4'),
12
12
  };
13
13
 
14
14
  return filteredResponse;
@@ -2,16 +2,16 @@ import { useQuery } from 'react-query';
2
2
  import { useNotification } from '@strapi/helper-plugin';
3
3
  import { fetchMarketplacePlugins } from './utils/api';
4
4
 
5
- const useFetchMarketplaceProviders = notifyLoad => {
5
+ const useFetchMarketplaceProviders = (notifyLoad) => {
6
6
  const toggleNotification = useNotification();
7
7
 
8
8
  return useQuery('list-marketplace-providers', () => fetchMarketplacePlugins(), {
9
- onSuccess: () => {
9
+ onSuccess() {
10
10
  if (notifyLoad) {
11
11
  notifyLoad();
12
12
  }
13
13
  },
14
- onError: () => {
14
+ onError() {
15
15
  toggleNotification({
16
16
  type: 'warning',
17
17
  message: { id: 'notification.error', defaultMessage: 'An error occured' },
@@ -3,7 +3,7 @@ import { request } from '@strapi/helper-plugin';
3
3
 
4
4
  import reducer, { initialState } from './reducer';
5
5
 
6
- const useFetchPermissionsLayout = id => {
6
+ const useFetchPermissionsLayout = (id) => {
7
7
  const [{ data, error, isLoading }, dispatch] = useReducer(reducer, initialState);
8
8
 
9
9
  useEffect(() => {