@strapi/admin 4.9.0-alpha.0 → 4.9.0-beta.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 (591) hide show
  1. package/admin/src/StrapiApp.js +1 -1
  2. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +6 -10
  3. package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +2 -3
  4. package/admin/src/components/GuidedTour/Homepage/components/Step.js +1 -3
  5. package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
  6. package/admin/src/components/GuidedTour/Homepage/index.js +4 -8
  7. package/admin/src/components/GuidedTour/Modal/components/Content.js +35 -25
  8. package/admin/src/components/GuidedTour/Modal/components/Modal.js +7 -11
  9. package/admin/src/components/GuidedTour/Modal/components/StepNumberWithPadding.js +1 -1
  10. package/admin/src/components/GuidedTour/Modal/components/Stepper.js +2 -5
  11. package/admin/src/components/GuidedTour/Stepper/StepLine.js +1 -1
  12. package/admin/src/components/GuidedTour/Stepper/StepNumber.js +2 -4
  13. package/admin/src/components/LeftMenu/index.js +5 -10
  14. package/admin/src/components/Notifications/Notification/index.js +10 -3
  15. package/admin/src/components/Notifications/index.js +6 -4
  16. package/admin/src/components/Theme/index.js +1 -1
  17. package/admin/src/content-manager/components/AttributeFilter/Filters.js +2 -3
  18. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +0 -2
  19. package/admin/src/content-manager/components/ComponentInitializer/index.js +4 -7
  20. package/admin/src/content-manager/components/DragLayer/RelationDragPreview.js +3 -3
  21. package/admin/src/content-manager/components/DynamicTable/CellContent/Media/FileWrapper.js +1 -2
  22. package/admin/src/content-manager/components/DynamicTable/CellContent/Media/index.js +3 -3
  23. package/admin/src/content-manager/components/DynamicTable/CellContent/MultipleMedias.js +1 -1
  24. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +14 -11
  25. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationSingle/index.js +1 -1
  26. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -4
  27. package/admin/src/content-manager/components/DynamicTable/CellContent/SingleComponent/index.js +1 -2
  28. package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +1 -2
  29. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +4 -9
  30. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +4 -9
  31. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +3 -9
  32. package/admin/src/content-manager/components/DynamicTable/index.js +1 -2
  33. package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton.js +2 -5
  34. package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +4 -6
  35. package/admin/src/content-manager/components/DynamicZone/components/ComponentCategory.js +1 -2
  36. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker.js +1 -4
  37. package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +3 -6
  38. package/admin/src/content-manager/components/DynamicZone/components/DynamicZoneLabel.js +1 -3
  39. package/admin/src/content-manager/components/DynamicZone/index.js +3 -3
  40. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  41. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +3 -31
  42. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +65 -134
  43. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +85 -0
  44. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/index.js +1 -2
  45. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +7 -1
  46. package/admin/src/content-manager/components/FieldComponent/Label.js +1 -3
  47. package/admin/src/content-manager/components/FieldComponent/index.js +4 -7
  48. package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
  49. package/admin/src/content-manager/components/FieldTypeIcon/index.js +15 -13
  50. package/admin/src/content-manager/components/Hint/index.js +1 -1
  51. package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
  52. package/admin/src/content-manager/components/InputUID/endActionStyle.js +1 -3
  53. package/admin/src/content-manager/components/InputUID/index.js +2 -6
  54. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
  55. package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
  56. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +3 -5
  57. package/admin/src/content-manager/components/RelationInput/RelationInput.js +17 -14
  58. package/admin/src/content-manager/components/RelationInput/components/Option.js +1 -2
  59. package/admin/src/content-manager/components/RelationInput/components/Relation.js +9 -4
  60. package/admin/src/content-manager/components/RelationInput/components/RelationItem.js +4 -4
  61. package/admin/src/content-manager/components/RelationInput/components/RelationList.js +1 -1
  62. package/admin/src/content-manager/components/RelationInputDataManager/RelationInputDataManager.js +39 -33
  63. package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +12 -6
  64. package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -2
  65. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
  66. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +24 -18
  67. package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +1 -2
  68. package/admin/src/content-manager/components/Wysiwyg/index.js +5 -7
  69. package/admin/src/content-manager/components/Wysiwyg/utils/continueList.js +3 -3
  70. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
  71. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
  72. package/admin/src/content-manager/hooks/useRelation/useRelation.js +2 -2
  73. package/admin/src/content-manager/pages/App/LeftMenu/index.js +1 -1
  74. package/admin/src/content-manager/pages/App/index.js +1 -2
  75. package/admin/src/content-manager/pages/App/useModels.js +1 -1
  76. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +9 -8
  77. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/components/ErrorFallback.js +1 -1
  78. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
  79. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +2 -5
  80. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +2 -4
  81. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +6 -11
  82. package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +3 -3
  83. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +2 -6
  84. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +5 -5
  85. package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +1 -3
  86. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -1
  87. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +1 -2
  88. package/admin/src/content-manager/pages/EditSettingsView/components/RowsLayout.js +1 -1
  89. package/admin/src/content-manager/pages/EditSettingsView/index.js +17 -13
  90. package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
  91. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
  92. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +2 -2
  93. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
  94. package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +3 -5
  95. package/admin/src/content-manager/pages/EditView/GridRow/index.js +1 -1
  96. package/admin/src/content-manager/pages/EditView/Header/index.js +17 -16
  97. package/admin/src/content-manager/pages/EditView/Information/index.js +9 -9
  98. package/admin/src/content-manager/pages/EditView/index.js +10 -15
  99. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
  100. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
  101. package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +4 -8
  102. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +4 -9
  103. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +8 -7
  104. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +14 -10
  105. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +4 -9
  106. package/admin/src/content-manager/pages/ListSettingsView/index.js +10 -7
  107. package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +1 -2
  108. package/admin/src/content-manager/pages/ListView/PaginationFooter/index.js +1 -2
  109. package/admin/src/content-manager/pages/ListView/index.js +12 -10
  110. package/admin/src/content-manager/pages/NoContentType/index.js +2 -5
  111. package/admin/src/content-manager/pages/NoPermissions/index.js +1 -2
  112. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  113. package/admin/src/content-manager/utils/createDefaultForm.js +2 -10
  114. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
  115. package/admin/src/content-manager/utils/getFieldName.js +1 -1
  116. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
  117. package/admin/src/content-manager/utils/paths.js +1 -1
  118. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
  119. package/admin/src/hooks/index.js +2 -0
  120. package/admin/src/hooks/useLicenseLimitNotification/index.js +5 -0
  121. package/admin/src/hooks/useLicenseLimits/index.js +3 -0
  122. package/admin/src/hooks/useMenu/reducer.js +1 -3
  123. package/admin/src/hooks/useRegenerate/index.js +13 -8
  124. package/admin/src/hooks/useSettingsForm/index.js +3 -3
  125. package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
  126. package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
  127. package/admin/src/hooks/useSettingsMenu/utils/defaultGlobalLinks.js +7 -0
  128. package/admin/src/index.js +0 -1
  129. package/admin/src/layouts/AppLayout/index.js +1 -3
  130. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
  131. package/admin/src/layouts/UnauthenticatedLayout/index.js +1 -2
  132. package/admin/src/pages/Admin/Onboarding/index.js +26 -7
  133. package/admin/src/pages/App/index.js +1 -1
  134. package/admin/src/pages/AuthPage/components/FieldActionWrapper/index.js +1 -1
  135. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +3 -9
  136. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -4
  137. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +4 -12
  138. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -4
  139. package/admin/src/pages/AuthPage/components/Register/index.js +14 -13
  140. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +4 -11
  141. package/admin/src/pages/AuthPage/reducer.js +1 -1
  142. package/admin/src/pages/HomePage/CloudBox.js +83 -0
  143. package/admin/src/pages/HomePage/ContentBlocks.js +6 -7
  144. package/admin/src/pages/HomePage/HomeHeader.js +5 -12
  145. package/admin/src/pages/HomePage/SocialLinks.js +37 -34
  146. package/admin/src/pages/HomePage/assets/strapi-cloud-background.png +0 -0
  147. package/admin/src/pages/HomePage/assets/strapi-cloud-flags.svg +1 -0
  148. package/admin/src/pages/HomePage/assets/strapi-cloud-icon.svg +1 -0
  149. package/admin/src/pages/HomePage/index.js +3 -4
  150. package/admin/src/pages/InstalledPluginsPage/Plugins.js +14 -5
  151. package/admin/src/pages/InternalErrorPage/index.js +2 -5
  152. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/EmptyNpmPackageGrid.js +1 -2
  153. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +2 -5
  154. package/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js +2 -3
  155. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js +2 -4
  156. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +2 -4
  157. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +4 -9
  158. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +5 -11
  159. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FilterSelect.js +1 -1
  160. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +3 -6
  161. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +2 -5
  162. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
  163. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +3 -3
  164. package/admin/src/pages/MarketplacePage/components/SortSelect/index.js +1 -2
  165. package/admin/src/pages/MarketplacePage/index.js +15 -8
  166. package/admin/src/pages/NotFoundPage/index.js +2 -5
  167. package/admin/src/pages/ProfilePage/index.js +27 -24
  168. package/admin/src/pages/SettingsPage/components/Filters/index.js +2 -3
  169. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +1 -1
  170. package/admin/src/pages/SettingsPage/{pages/ApiTokens/EditView/components → components/Tokens}/FormHead/index.js +45 -26
  171. package/admin/src/pages/SettingsPage/components/Tokens/LifeSpanInput/index.js +97 -0
  172. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +75 -0
  173. package/admin/src/pages/SettingsPage/components/Tokens/Table/DeleteButton/index.js +52 -0
  174. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/ReadButton/index.js +1 -1
  175. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/UpdateButton/index.js +1 -1
  176. package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +145 -0
  177. package/admin/src/pages/SettingsPage/{pages/ApiTokens/EditView/components/ContentBox → components/Tokens/TokenBox}/index.js +20 -18
  178. package/admin/src/pages/SettingsPage/components/Tokens/TokenDescription/index.js +51 -0
  179. package/admin/src/pages/SettingsPage/components/Tokens/TokenName/index.js +46 -0
  180. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +71 -0
  181. package/admin/src/pages/SettingsPage/components/Tokens/constants.js +2 -0
  182. package/admin/src/pages/SettingsPage/index.js +1 -1
  183. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +5 -7
  184. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +5 -7
  185. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js +1 -1
  186. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +17 -10
  187. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js +1 -1
  188. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +56 -149
  189. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +2 -4
  190. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +3 -5
  191. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +12 -8
  192. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +48 -19
  193. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
  194. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/schema.js +1 -1
  195. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
  196. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +18 -20
  197. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +5 -0
  198. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +1 -3
  199. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +8 -5
  200. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +1 -3
  201. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +14 -11
  202. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +1 -4
  203. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +1 -1
  204. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +1 -5
  205. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -2
  206. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +63 -74
  207. package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +266 -4
  208. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/CollapseLabel/index.js +1 -1
  209. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +2 -2
  210. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +2 -6
  211. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +5 -4
  212. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
  213. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +4 -8
  214. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
  215. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +3 -5
  216. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
  217. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/CarretIcon/index.js +1 -1
  218. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -2
  219. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +3 -7
  220. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/index.js +1 -1
  221. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
  222. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypes/index.js +1 -1
  223. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
  224. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +12 -12
  225. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
  226. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +1 -1
  227. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
  228. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
  229. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
  230. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  231. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +12 -16
  232. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
  233. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
  234. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +1 -2
  235. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +4 -12
  236. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
  237. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
  238. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +12 -10
  239. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +1 -4
  240. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
  241. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +6 -10
  242. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +1 -5
  243. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +314 -129
  244. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +142 -0
  245. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js +48 -0
  246. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +263 -0
  247. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/getDateOfExpiration.js +16 -0
  248. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/index.js +4 -0
  249. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +11 -0
  250. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +216 -0
  251. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js +48 -0
  252. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedCreateView/index.js +14 -0
  253. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedEditView/index.js +14 -0
  254. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js +12 -0
  255. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +19 -19
  256. package/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +24 -0
  257. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +11 -8
  258. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +17 -12
  259. package/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js +1 -2
  260. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +32 -34
  261. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +1 -2
  262. package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
  263. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -2
  264. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +1 -2
  265. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +3 -5
  266. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +1 -1
  267. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +12 -10
  268. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +10 -16
  269. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +17 -15
  270. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +1 -1
  271. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
  272. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +183 -182
  273. package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +51 -10
  274. package/admin/src/pages/UseCasePage/index.js +13 -11
  275. package/admin/src/permissions/defaultPermissions.js +8 -0
  276. package/admin/src/permissions/index.js +1 -1
  277. package/admin/src/translations/ca.json +13 -19
  278. package/admin/src/translations/de.json +6 -12
  279. package/admin/src/translations/dk.json +6 -12
  280. package/admin/src/translations/en.json +221 -190
  281. package/admin/src/translations/es.json +6 -12
  282. package/admin/src/translations/eu.json +178 -184
  283. package/admin/src/translations/fr.json +6 -12
  284. package/admin/src/translations/gu.json +0 -6
  285. package/admin/src/translations/he.json +0 -6
  286. package/admin/src/translations/hi.json +6 -12
  287. package/admin/src/translations/hu.json +19 -25
  288. package/admin/src/translations/id.json +0 -6
  289. package/admin/src/translations/it.json +0 -6
  290. package/admin/src/translations/ja.json +6 -12
  291. package/admin/src/translations/ko.json +6 -12
  292. package/admin/src/translations/ml.json +6 -12
  293. package/admin/src/translations/nl.json +19 -25
  294. package/admin/src/translations/no.json +0 -6
  295. package/admin/src/translations/pl.json +6 -12
  296. package/admin/src/translations/pt-BR.json +6 -12
  297. package/admin/src/translations/ru.json +859 -785
  298. package/admin/src/translations/sa.json +6 -12
  299. package/admin/src/translations/sk.json +2 -8
  300. package/admin/src/translations/sv.json +19 -25
  301. package/admin/src/translations/th.json +0 -6
  302. package/admin/src/translations/tr.json +19 -25
  303. package/admin/src/translations/zh-Hans.json +895 -669
  304. package/admin/src/translations/zh.json +19 -25
  305. package/admin/src/utils/getAttributesToDisplay.js +2 -4
  306. package/admin/src/utils/getExistingActions.js +1 -3
  307. package/admin/src/utils/sortLinks.js +1 -1
  308. package/build/{2223.1bfea951.chunk.js → 2263.4c5916f9.chunk.js} +66 -177
  309. package/build/27d16aefee06412db90a.png +0 -0
  310. package/build/4049.64715f20.chunk.js +1 -0
  311. package/build/5563.aa832e5f.chunk.js +30 -0
  312. package/build/6985.66cca29c.chunk.js +1 -0
  313. package/build/7259.e6ef3b8e.chunk.js +1 -0
  314. package/build/{5015.8e3fe50b.chunk.js → 8469.853c822b.chunk.js} +1 -6
  315. package/build/9505.dbe702ab.chunk.js +14 -0
  316. package/build/9816.01ee964f.chunk.js +2 -0
  317. package/build/Admin-authenticatedApp.5a090404.chunk.js +79 -0
  318. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +1 -0
  319. package/build/Admin_homePage.1411fb7c.chunk.js +68 -0
  320. package/build/Admin_marketplace.02608d56.chunk.js +22 -0
  321. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +1 -0
  322. package/build/Admin_profilePage.76afeca0.chunk.js +15 -0
  323. package/build/Admin_settingsPage.0aa4fcdc.chunk.js +9 -0
  324. package/build/Upload_ConfigureTheView.34dde278.chunk.js +1 -0
  325. package/build/admin-app.50584489.chunk.js +112 -0
  326. package/build/admin-edit-roles-page.cf543488.chunk.js +216 -0
  327. package/build/admin-edit-users.31c20712.chunk.js +10 -0
  328. package/build/admin-roles-list.489c501f.chunk.js +2 -0
  329. package/build/admin-users.3e111a7d.chunk.js +11 -0
  330. package/build/{api-tokens-create-page.a31c7fba.chunk.js → api-tokens-create-page.2a6e22bd.chunk.js} +1 -1
  331. package/build/{api-tokens-edit-page.64fef287.chunk.js → api-tokens-edit-page.fa38cd63.chunk.js} +1 -1
  332. package/build/api-tokens-list-page.93f24348.chunk.js +16 -0
  333. package/build/audit-logs-settings-page.7be97e82.chunk.js +1 -0
  334. package/build/bb3108f7fd1e6179bde1.svg +1 -0
  335. package/build/bb4d0d527bdfb161bc5a.svg +1 -0
  336. package/build/ca-json.43e14418.chunk.js +1 -0
  337. package/build/content-manager.f8b9710b.chunk.js +1139 -0
  338. package/build/content-type-builder-list-view.cf38fe2f.chunk.js +191 -0
  339. package/build/content-type-builder-translation-zh-Hans-json.415577fb.chunk.js +1 -0
  340. package/build/content-type-builder.0f5dbcf1.chunk.js +126 -0
  341. package/build/de-json.fcac7381.chunk.js +1 -0
  342. package/build/dk-json.e34cad0d.chunk.js +1 -0
  343. package/build/email-settings-page.4bdbef9a.chunk.js +3 -0
  344. package/build/en-json.b052667a.chunk.js +1 -0
  345. package/build/es-json.715b6fd8.chunk.js +1 -0
  346. package/build/eu-json.fb17c8f9.chunk.js +1 -0
  347. package/build/fr-json.f66c3211.chunk.js +1 -0
  348. package/build/gu-json.4d667d0c.chunk.js +1 -0
  349. package/build/{he-json.f0de8cdb.chunk.js → he-json.3cf0b48a.chunk.js} +1 -1
  350. package/build/hi-json.323be97d.chunk.js +1 -0
  351. package/build/hu-json.fe71e6c8.chunk.js +1 -0
  352. package/build/i18n-settings-page.2bb5be96.chunk.js +1 -0
  353. package/build/id-json.41e07c46.chunk.js +1 -0
  354. package/build/index.html +1 -1
  355. package/build/it-json.bfe27ed8.chunk.js +1 -0
  356. package/build/ja-json.81b6d1e3.chunk.js +1 -0
  357. package/build/ko-json.4539f4ba.chunk.js +1 -0
  358. package/build/main.7fa3d343.js +3783 -0
  359. package/build/ml-json.8988e374.chunk.js +1 -0
  360. package/build/nl-json.98345913.chunk.js +1 -0
  361. package/build/{no-json.9b3cd181.chunk.js → no-json.19a2dbfa.chunk.js} +1 -1
  362. package/build/pl-json.59a5dab3.chunk.js +1 -0
  363. package/build/pt-BR-json.9410688b.chunk.js +1 -0
  364. package/build/ru-json.6a01cea6.chunk.js +1 -0
  365. package/build/runtime~main.ee2bfeea.js +2 -0
  366. package/build/sa-json.6359a11c.chunk.js +1 -0
  367. package/build/sk-json.2374f129.chunk.js +1 -0
  368. package/build/sso-settings-page.272b87c8.chunk.js +1 -0
  369. package/build/sv-json.ae6e71ea.chunk.js +1 -0
  370. package/build/th-json.5f659396.chunk.js +1 -0
  371. package/build/tr-json.bac5dbd3.chunk.js +1 -0
  372. package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +1 -0
  373. package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +1 -0
  374. package/build/transfer-tokens-list-page.3c9b0280.chunk.js +16 -0
  375. package/build/upload-settings.0875e973.chunk.js +1 -0
  376. package/build/upload-translation-zh-Hans-json.db163b6b.chunk.js +1 -0
  377. package/build/upload.c7da1611.chunk.js +13 -0
  378. package/build/users-advanced-settings-page.1d3c14c7.chunk.js +1 -0
  379. package/build/users-email-settings-page.e8db68c4.chunk.js +1 -0
  380. package/build/users-permissions-translation-zh-Hans-json.6ab714ee.chunk.js +1 -0
  381. package/build/users-providers-settings-page.14cac425.chunk.js +1 -0
  382. package/build/users-roles-settings-page.2ea4de84.chunk.js +30 -0
  383. package/build/webhook-edit-page.329141a5.chunk.js +23 -0
  384. package/build/webhook-list-page.029957a4.chunk.js +1 -0
  385. package/build/zh-Hans-json.4cfef87d.chunk.js +1 -0
  386. package/build/zh-json.3529f1e5.chunk.js +1 -0
  387. package/ee/admin/hooks/index.js +2 -0
  388. package/ee/admin/hooks/useLicenseLimitNotification/index.js +88 -0
  389. package/ee/admin/hooks/useLicenseLimits/index.js +31 -0
  390. package/ee/admin/hooks/useSettingsMenu/utils/customAdminLinks.js +12 -12
  391. package/ee/admin/hooks/useSettingsMenu/utils/customGlobalLinks.js +13 -21
  392. package/ee/admin/pages/AuthPage/components/Login/index.js +3 -7
  393. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -4
  394. package/ee/admin/pages/AuthPage/components/Providers/index.js +3 -10
  395. package/ee/admin/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +88 -0
  396. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js +2 -7
  397. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js +1 -2
  398. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js +1 -2
  399. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js +1 -2
  400. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js +2 -5
  401. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +21 -10
  402. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/tableHeaders.js +1 -1
  403. package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +25 -11
  404. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +52 -0
  405. package/ee/admin/pages/SettingsPage/utils/customRoutes.js +2 -16
  406. package/ee/admin/permissions/customPermissions.js +0 -3
  407. package/ee/server/bootstrap.js +4 -7
  408. package/ee/server/config/admin-actions.js +0 -10
  409. package/ee/server/controllers/admin.js +49 -0
  410. package/ee/server/controllers/index.js +1 -3
  411. package/ee/server/controllers/role.js +0 -39
  412. package/ee/server/controllers/user.js +62 -4
  413. package/ee/server/index.js +0 -1
  414. package/ee/server/routes/index.js +9 -122
  415. package/ee/server/services/audit-logs.js +15 -5
  416. package/ee/server/services/index.js +2 -3
  417. package/ee/server/services/seat-enforcement.js +114 -0
  418. package/ee/server/services/user.js +234 -0
  419. package/ee/server/utils/persisted-tables.js +49 -0
  420. package/ee/server/validation/role.js +28 -20
  421. package/package.json +18 -17
  422. package/server/bootstrap.js +2 -1
  423. package/server/config/admin-actions.js +48 -0
  424. package/server/content-types/User.js +4 -0
  425. package/server/content-types/api-token.js +1 -0
  426. package/server/content-types/index.js +2 -0
  427. package/server/content-types/transfer-token-permission.js +36 -0
  428. package/server/content-types/transfer-token.js +66 -0
  429. package/server/controllers/api-token.js +8 -7
  430. package/server/controllers/index.js +1 -0
  431. package/server/controllers/permission.js +2 -4
  432. package/server/controllers/role.js +70 -23
  433. package/server/controllers/transfer/index.js +13 -0
  434. package/server/controllers/transfer/runner.js +28 -0
  435. package/server/controllers/transfer/token.js +131 -0
  436. package/server/controllers/user.js +7 -1
  437. package/server/domain/user.js +3 -0
  438. package/server/middlewares/data-transfer.js +29 -0
  439. package/server/middlewares/index.js +1 -0
  440. package/server/register.js +2 -9
  441. package/server/routes/index.js +2 -0
  442. package/server/routes/roles.js +48 -0
  443. package/server/routes/transfer.js +102 -0
  444. package/server/services/api-token.js +2 -3
  445. package/server/services/constants.js +10 -0
  446. package/server/services/index.js +1 -0
  447. package/server/services/permission/permissions-manager/index.js +9 -5
  448. package/server/services/permission/permissions-manager/sanitize.js +103 -4
  449. package/server/services/permission/queries.js +1 -74
  450. package/server/services/transfer/index.js +7 -0
  451. package/server/services/transfer/permission.js +22 -0
  452. package/server/services/transfer/token.js +426 -0
  453. package/server/services/transfer/utils.js +38 -0
  454. package/server/strategies/api-token.js +4 -2
  455. package/server/strategies/data-transfer.js +109 -0
  456. package/server/strategies/index.js +1 -0
  457. package/server/utils/index.d.ts +2 -0
  458. package/server/validation/api-tokens.js +1 -6
  459. package/server/validation/permission.js +1 -82
  460. package/server/validation/role.js +44 -0
  461. package/server/validation/transfer/index.js +5 -0
  462. package/server/validation/transfer/token.js +42 -0
  463. package/webpack.alias.js +0 -1
  464. package/admin/src/assets/images/hot-air-balloon.png +0 -0
  465. package/admin/src/assets/images/upgrade-details.png +0 -0
  466. package/admin/src/components/UpgradePlanModal/index.js +0 -131
  467. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findLeafByPathAndReplace.js +0 -51
  468. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/recursivelyFindPathsBasedOnCondition.js +0 -79
  469. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +0 -78
  470. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +0 -40
  471. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +0 -112
  472. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/utils/constants.js +0 -3
  473. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/constants.js +0 -3
  474. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/constants.js +0 -3
  475. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/utils/constants.js +0 -3
  476. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/constants.js +0 -3
  477. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/constants.js +0 -3
  478. package/build/1412.936ed920.chunk.js +0 -159
  479. package/build/1683.d59d0f23.chunk.js +0 -268
  480. package/build/2607.2e48dbf8.chunk.js +0 -66
  481. package/build/2743.646a1015.chunk.js +0 -45
  482. package/build/3075.3ee481f1.chunk.js +0 -108
  483. package/build/3632.2e378cf8.chunk.js +0 -138
  484. package/build/4318.cd55ce02.chunk.js +0 -30
  485. package/build/617f9c948fa79e6d73bd.png +0 -0
  486. package/build/6d21938306785f176538.png +0 -0
  487. package/build/8633.00ccd382.chunk.js +0 -1
  488. package/build/9707.b36ed71e.chunk.js +0 -96
  489. package/build/Admin-authenticatedApp.a73577e1.chunk.js +0 -79
  490. package/build/Admin_InternalErrorPage.178ddb90.chunk.js +0 -1
  491. package/build/Admin_homePage.c2f5f27d.chunk.js +0 -77
  492. package/build/Admin_marketplace.1df49c42.chunk.js +0 -26
  493. package/build/Admin_pluginsPage.8d824408.chunk.js +0 -6
  494. package/build/Admin_profilePage.cb667bc5.chunk.js +0 -15
  495. package/build/Admin_settingsPage.f90615fb.chunk.js +0 -178
  496. package/build/Upload_ConfigureTheView.d306009d.chunk.js +0 -1
  497. package/build/admin-app.06f07029.chunk.js +0 -112
  498. package/build/admin-edit-roles-page.35199b9d.chunk.js +0 -1
  499. package/build/admin-edit-users.9e48b00d.chunk.js +0 -10
  500. package/build/admin-users.cf7b4151.chunk.js +0 -11
  501. package/build/api-tokens-list-page.e600ad3e.chunk.js +0 -16
  502. package/build/audit-logs-settings-page.d4da4579.chunk.js +0 -1
  503. package/build/ca-json.4d999055.chunk.js +0 -1
  504. package/build/content-manager.255c3a59.chunk.js +0 -1139
  505. package/build/content-type-builder-list-view.8d7a3d68.chunk.js +0 -193
  506. package/build/content-type-builder-translation-zh-Hans-json.52a30266.chunk.js +0 -1
  507. package/build/content-type-builder.3c8558a5.chunk.js +0 -126
  508. package/build/de-json.866f8a28.chunk.js +0 -1
  509. package/build/dk-json.10f7b1d1.chunk.js +0 -1
  510. package/build/email-settings-page.b19f2eb2.chunk.js +0 -10
  511. package/build/en-json.1997583c.chunk.js +0 -1
  512. package/build/es-json.ea15c957.chunk.js +0 -1
  513. package/build/eu-json.3bc24d60.chunk.js +0 -1
  514. package/build/fr-json.e88fbdfd.chunk.js +0 -1
  515. package/build/gu-json.94f0d242.chunk.js +0 -1
  516. package/build/hi-json.df3a7be2.chunk.js +0 -1
  517. package/build/hu-json.680e6eef.chunk.js +0 -1
  518. package/build/i18n-settings-page.a6b49eac.chunk.js +0 -60
  519. package/build/id-json.e0d83d41.chunk.js +0 -1
  520. package/build/it-json.8be59205.chunk.js +0 -1
  521. package/build/ja-json.97ee41ba.chunk.js +0 -1
  522. package/build/ko-json.4cbbf4f2.chunk.js +0 -1
  523. package/build/main.7f308c20.js +0 -4322
  524. package/build/ml-json.e3747091.chunk.js +0 -1
  525. package/build/nl-json.371a15ee.chunk.js +0 -1
  526. package/build/pl-json.e535cbce.chunk.js +0 -1
  527. package/build/pt-BR-json.e5fafa46.chunk.js +0 -1
  528. package/build/review-workflows-settings.7b4be1b0.chunk.js +0 -63
  529. package/build/ru-json.866f0ff1.chunk.js +0 -1
  530. package/build/runtime~main.bf374148.js +0 -2
  531. package/build/sa-json.7efeb257.chunk.js +0 -1
  532. package/build/sk-json.7bbeb0af.chunk.js +0 -1
  533. package/build/sso-settings-page.ad2143dd.chunk.js +0 -41
  534. package/build/sv-json.dc40951f.chunk.js +0 -1
  535. package/build/th-json.f664b96d.chunk.js +0 -1
  536. package/build/tr-json.b79eae31.chunk.js +0 -1
  537. package/build/upload-settings.eb1a7908.chunk.js +0 -84
  538. package/build/upload-translation-zh-Hans-json.3da5cf56.chunk.js +0 -1
  539. package/build/upload.700e2c84.chunk.js +0 -33
  540. package/build/users-advanced-settings-page.aae212f2.chunk.js +0 -8
  541. package/build/users-email-settings-page.8a9b0da1.chunk.js +0 -23
  542. package/build/users-permissions-translation-zh-Hans-json.0b31c705.chunk.js +0 -1
  543. package/build/users-providers-settings-page.e6be909d.chunk.js +0 -99
  544. package/build/users-roles-settings-page.97d06a80.chunk.js +0 -30
  545. package/build/webhook-edit-page.9eb0f789.chunk.js +0 -75
  546. package/build/webhook-list-page.66082323.chunk.js +0 -42
  547. package/build/zh-Hans-json.30a18940.chunk.js +0 -1
  548. package/build/zh-json.49d84433.chunk.js +0 -1
  549. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +0 -137
  550. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +0 -42
  551. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/AddStage.js +0 -87
  552. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/index.js +0 -1
  553. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +0 -90
  554. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/index.js +0 -1
  555. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +0 -77
  556. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/index.js +0 -1
  557. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +0 -6
  558. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +0 -63
  559. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/index.js +0 -3
  560. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +0 -102
  561. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/getWorkflowValidationSchema.js +0 -25
  562. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +0 -267
  563. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/utils/constants.js +0 -3
  564. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ConditionsSelect/MenuList/utils/constants.js +0 -3
  565. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/constants.js +0 -3
  566. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/constants.js +0 -3
  567. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/utils/constants.js +0 -3
  568. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/constants.js +0 -3
  569. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/constants.js +0 -3
  570. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +0 -370
  571. package/ee/admin/pages/SettingsPage/pages/Roles/ProtectedListPage/index.js +0 -12
  572. package/ee/server/constants/default-stages.json +0 -14
  573. package/ee/server/constants/default-workflow.json +0 -1
  574. package/ee/server/constants/workflows.js +0 -7
  575. package/ee/server/content-types/index.js +0 -9
  576. package/ee/server/content-types/workflow/index.js +0 -34
  577. package/ee/server/content-types/workflow-stage/index.js +0 -36
  578. package/ee/server/controllers/permission.js +0 -21
  579. package/ee/server/controllers/workflows/index.js +0 -36
  580. package/ee/server/controllers/workflows/stages/index.js +0 -57
  581. package/ee/server/services/review-workflows/review-workflows.js +0 -54
  582. package/ee/server/services/review-workflows/stages.js +0 -133
  583. package/ee/server/services/review-workflows/workflows.js +0 -25
  584. package/ee/server/utils/index.js +0 -8
  585. package/ee/server/utils/test.js +0 -11
  586. package/ee/server/validation/permission.js +0 -8
  587. package/ee/server/validation/review-workflows.js +0 -17
  588. package/server/domain/role.js +0 -29
  589. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/DefaultButton/index.js +1 -1
  590. /package/{ee/admin → admin/src}/pages/SettingsPage/pages/Roles/CreatePage/utils/schema.js +0 -0
  591. /package/{ee/admin → admin/src}/pages/SettingsPage/pages/Roles/ListPage/reducer.js +0 -0
@@ -0,0 +1,79 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(K,M,n){n.r(M),n.d(M,{default:function(){return It}});var e=n(32735),r=n(13478),S=n(84968),E=n(33795),z=n.n(E),y=JSON.parse('{"i8":"4.9.0-beta.2"}'),k=n(8888),d=n(5141),x=n(4409),R=n(74506),b=n(51968),$=n(88311),U=n.n($),Ce=n(58107),v=n(83292),Me=n(60216),i=n.n(Me),F=n(5636),o=n(39161),C=n(57269);const Re=(0,v.default)(o.Flex)`
2
+ position: fixed;
3
+ z-index: 4;
4
+ inset: 0;
5
+ /* this is theme.colors.neutral800 with opacity */
6
+ background: ${({theme:t})=>`${t.colors.neutral800}1F`};
7
+ `,te=({onClose:t,onSkip:a,children:s,hideSkip:l})=>{const{formatMessage:g}=(0,F.useIntl)();return e.createElement(o.Portal,null,e.createElement(Re,{onClick:t,padding:8,justifyContent:"center"},e.createElement(o.FocusTrap,{onEscape:t},e.createElement(o.Flex,{direction:"column",alignItems:"stretch",background:"neutral0",width:(0,r.pxToRem)(660),shadow:"popupShadow",hasRadius:!0,padding:4,gap:8,role:"dialog","aria-modal":!0,onClick:p=>p.stopPropagation()},e.createElement(o.Flex,{justifyContent:"flex-end"},e.createElement(o.IconButton,{onClick:t,"aria-label":g({id:"app.utils.close-label",defaultMessage:"Close"}),icon:e.createElement(C.Cross,null)})),e.createElement(o.Box,{paddingLeft:7,paddingRight:7,paddingBottom:l?8:0},s),!l&&e.createElement(o.Flex,{justifyContent:"flex-end"},e.createElement(o.Button,{variant:"tertiary",onClick:a},g({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"})))))))};te.propTypes={children:i().node.isRequired,onClose:i().func.isRequired,onSkip:i().func.isRequired,hideSkip:i().bool.isRequired};var xe=te,ne=n(97889);const ae={stepContent:null,sectionIndex:null,stepIndex:null,hasSectionAfter:!1,hasStepAfter:!1};var Ie=(t=ae,a)=>(0,ne.default)(t,s=>{switch(a.type){case"UPDATE_MODAL":{s.stepContent=a.content,s.sectionIndex=a.newSectionIndex,s.stepIndex=a.newStepIndex,s.hasSectionAfter=a.newHasSectionAfter,s.hasStepAfter=a.newHasStepAfter;break}default:return s}});const Pe=v.default.li`
8
+ list-style: disc;
9
+ &::marker {
10
+ color: ${({theme:t})=>t.colors.neutral800};
11
+ }
12
+ `,oe=({id:t,defaultMessage:a})=>{const{formatMessage:s}=(0,F.useIntl)();return e.createElement(o.Flex,{direction:"column",alignItems:"stretch",gap:4,paddingBottom:6},s({id:t,defaultMessage:a},{documentationLink:Se,b:Ae,p:Le,light:be,ul:Oe,li:De}))},Se=t=>e.createElement(o.Typography,{as:"a",textColor:"primary600",target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters"},t),Ae=t=>e.createElement(o.Typography,{fontWeight:"semiBold"},t),Le=t=>e.createElement(o.Typography,null,t),be=t=>e.createElement(o.Typography,{textColor:"neutral600"},t),Oe=t=>e.createElement(o.Box,{paddingLeft:6},e.createElement("ul",null,t)),De=t=>e.createElement(Pe,null,t);oe.propTypes={id:i().string.isRequired,defaultMessage:i().string.isRequired};var Be=oe,H=n(78024),ke=n(14317);const w=({number:t,last:a,type:s})=>e.createElement(o.Box,{paddingTop:3,paddingBottom:a?0:3},e.createElement(ke.Z,{number:t,type:s}));w.defaultProps={number:void 0,last:!1,type:""},w.propTypes={number:i().number,last:i().bool,type:i().string};var se=w,N=n(23678);const Z=({title:t,content:a,cta:s,onCtaClick:l,sectionIndex:g,stepIndex:p,hasSectionAfter:f})=>{const{formatMessage:m}=(0,F.useIntl)(),h=g>0,u=p>0,T=g+1;return e.createElement(e.Fragment,null,e.createElement(o.Flex,{alignItems:"stretch"},e.createElement(o.Flex,{marginRight:8,justifyContent:"center",minWidth:(0,r.pxToRem)(30)},h&&e.createElement(H.Z,{type:N.hx,minHeight:(0,r.pxToRem)(24)})),e.createElement(o.Typography,{variant:"sigma",textColor:"primary600"},m({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"}))),e.createElement(o.Flex,null,e.createElement(o.Flex,{marginRight:8,minWidth:(0,r.pxToRem)(30)},e.createElement(se,{number:g+1,type:u?N.hx:N.lW})),e.createElement(o.Typography,{variant:"alpha",fontWeight:"bold",textColor:"neutral800",as:"h3",id:"title"},m(t))),e.createElement(o.Flex,{alignItems:"stretch"},e.createElement(o.Flex,{marginRight:8,direction:"column",justifyContent:"center",minWidth:(0,r.pxToRem)(30)},f&&e.createElement(e.Fragment,null,e.createElement(H.Z,{type:N.hx}),u&&e.createElement(se,{number:T+1,type:N.lW,last:!0}))),e.createElement(o.Box,null,e.createElement(Be,{...a}),s&&(s.target?e.createElement(r.LinkButton,{endIcon:e.createElement(C.ArrowRight,null),onClick:l,to:s.target},m(s.title)):e.createElement(o.Button,{endIcon:e.createElement(C.ArrowRight,null),onClick:l},m(s.title))))),u&&f&&e.createElement(o.Box,{paddingTop:3},e.createElement(o.Flex,{marginRight:8,justifyContent:"center",width:(0,r.pxToRem)(30)},e.createElement(H.Z,{type:N.hx,minHeight:(0,r.pxToRem)(24)}))))};Z.defaultProps={currentStep:null,cta:void 0},Z.propTypes={sectionIndex:i().number.isRequired,stepIndex:i().number.isRequired,hasSectionAfter:i().bool.isRequired,content:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired}).isRequired,cta:i().shape({target:i().string,title:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired})}),currentStep:i().string,onCtaClick:i().func.isRequired,title:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired}).isRequired};var Fe=Z,Ne=()=>{const{currentStep:t,guidedTourState:a,setCurrentStep:s,setStepState:l,isGuidedTourVisible:g,setSkipped:p}=(0,r.useGuidedTour)(),[f,m]=(0,e.useState)(t),[{stepContent:h,sectionIndex:u,stepIndex:T,hasSectionAfter:O,hasStepAfter:A},W]=(0,e.useReducer)(Ie,ae),{trackUsage:G}=(0,r.useTracking)();(0,e.useEffect)(()=>{if(!t){m(!1);return}const[D]=U()(a,t);m(!D&&g)},[t,a,g]),(0,e.useEffect)(()=>{if(t){const[D]=U()(Ce.Z,t),L=Object.keys(a),[P,c]=t.split("."),B=L.indexOf(P),V=Object.keys(a[P]).indexOf(c),q=B<L.length-1,_=V<Object.keys(a[P]).length-1;W({type:"UPDATE_MODAL",content:D,newSectionIndex:B,newStepIndex:V,newHasSectionAfter:q,newHasStepAfter:_})}},[t,a]);const I=()=>{l(t,!0),G(h.trackingEvent),s(null)},j=()=>{p(!0),s(null),G("didSkipGuidedtour")};return f&&h?e.createElement(xe,{hideSkip:!A&&!O,onSkip:j,onClose:I},e.createElement(Fe,{...h,onCtaClick:I,currentStep:t,sectionIndex:u,stepIndex:T,hasSectionAfter:O})):null},Ge=n(15300),Ue=n(61450),We=n(1897),Q=n(78464),re=n(42889),je=n(25390),Ke=n(3703),$e=n(17264);const Ve=(0,v.default)(o.Box)`
13
+ width: ${150/16}rem;
14
+ position: absolute;
15
+ bottom: ${({theme:t})=>t.spaces[9]};
16
+ left: ${({theme:t})=>t.spaces[5]};
17
+ `,ie=(0,v.default)(d.NavLink)`
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ text-decoration: none;
22
+ padding: ${({theme:t})=>`${t.spaces[2]} ${t.spaces[4]}`};
23
+ border-radius: ${({theme:t})=>t.spaces[1]};
24
+
25
+ &:hover {
26
+ background: ${({theme:t,logout:a})=>a?t.colors.danger100:t.colors.primary100};
27
+ text-decoration: none;
28
+ }
29
+
30
+ svg {
31
+ path {
32
+ fill: ${({theme:t})=>t.colors.danger600};
33
+ }
34
+ }
35
+ `,le=({generalSectionLinks:t,pluginsSectionLinks:a})=>{const s=(0,e.useRef)(),[l,g]=(0,e.useState)(!1),{logos:{menu:p}}=(0,k.um)(),[f,m]=(0,r.usePersistentState)("navbar-condensed",!1),{userDisplayName:h}=(0,r.useAppInfos)(),{formatMessage:u}=(0,F.useIntl)(),{trackUsage:T}=(0,r.useTracking)(),{pathname:O}=(0,d.useLocation)(),A=(0,d.useHistory)(),{post:W}=(0,r.getFetchClient)(),G=h.split(" ").map(c=>c.substring(0,1)).join("").substring(0,2),I=()=>g(c=>!c),j=async()=>{await W("/admin/logout"),r.auth.clearAppStorage(),I(),A.push("/auth/login")},D=c=>{!c.currentTarget.contains(c.relatedTarget)&&c.relatedTarget?.parentElement?.id!=="main-nav-user-button"&&g(!1)},L=(c=null)=>{T("willNavigate",{from:O,to:c})},P=u({id:"app.components.LeftMenu.navbrand.title",defaultMessage:"Strapi Dashboard"});return e.createElement(Ge.$,{condensed:f},e.createElement(Ue.D,{as:d.NavLink,workplace:u({id:"app.components.LeftMenu.navbrand.workplace",defaultMessage:"Workplace"}),title:P,icon:e.createElement("img",{src:p.custom||p.default,alt:u({id:"app.components.LeftMenu.logo.alt",defaultMessage:"Application logo"})})}),e.createElement(o.Divider,null),e.createElement(We._,null,e.createElement(Q.O,{as:d.NavLink,to:"/content-manager",icon:e.createElement(C.Write,null),onClick:()=>L("/content-manager")},u({id:"global.content-manager",defaultMessage:"Content manager"})),a.length>0?e.createElement(re.y,{label:u({id:"app.components.LeftMenu.plugins",defaultMessage:"Plugins"})},a.map(c=>{const B=c.icon;return e.createElement(Q.O,{as:d.NavLink,to:c.to,key:c.to,icon:e.createElement(B,null),onClick:()=>L(c.to)},u(c.intlLabel))})):null,t.length>0?e.createElement(re.y,{label:u({id:"app.components.LeftMenu.general",defaultMessage:"General"})},t.map(c=>{const B=c.icon;return e.createElement(Q.O,{as:d.NavLink,badgeContent:c.notificationsCount>0&&c.notificationsCount.toString()||void 0,to:c.to,key:c.to,icon:e.createElement(B,null),onClick:()=>L(c.to)},u(c.intlLabel))})):null),e.createElement(je.q,null,e.createElement(Ke.r,{id:"main-nav-user-button",ref:s,onClick:I,initials:G},h),l&&e.createElement(Ve,{onBlur:D,padding:1,shadow:"tableShadow",background:"neutral0",hasRadius:!0},e.createElement(o.FocusTrap,{onEscape:I},e.createElement(o.Flex,{direction:"column",alignItems:"stretch",gap:0},e.createElement(ie,{tabIndex:0,onClick:I,to:"/me"},e.createElement(o.Typography,null,u({id:"global.profile",defaultMessage:"Profile"}))),e.createElement(ie,{tabIndex:0,onClick:j,logout:"logout",to:"/auth/login"},e.createElement(o.Typography,{textColor:"danger600"},u({id:"app.components.LeftMenu.logout",defaultMessage:"Logout"})),e.createElement(C.Exit,null))))),e.createElement($e.w,{onClick:()=>m(c=>!c)},u(f?{id:"app.components.LeftMenu.expand",defaultMessage:"Expand the navbar"}:{id:"app.components.LeftMenu.collapse",defaultMessage:"Collapse the navbar"}))))};le.propTypes={generalSectionLinks:i().array.isRequired,pluginsSectionLinks:i().array.isRequired};var ze=le;const He=(0,v.default)(o.Box)`
36
+ flex: 1;
37
+ `,ce=({children:t,sideNav:a})=>{const{formatMessage:s}=(0,F.useIntl)();return e.createElement(o.Box,{background:"neutral100"},e.createElement(o.SkipToContent,null,s({id:"skipToContent",defaultMessage:"Skip to content"})),e.createElement(o.Flex,{alignItems:"flex-start"},a,e.createElement(He,null,t)))};ce.propTypes={children:i().node.isRequired,sideNav:i().node.isRequired};var we=ce,Y=n(8997),Ze=n(26648),Qe=n.p+"19eb2dfcf2603eb55733.png";const Ye=[{label:{id:"app.components.Onboarding.link.build-content",defaultMessage:"Build a content architecture"},href:"https://www.youtube.com/watch?v=G9GjN0RxhkE",duration:"5:48"},{label:{id:"app.components.Onboarding.link.manage-content",defaultMessage:"Add & manage content"},href:"https://www.youtube.com/watch?v=DEZw4KbybAI",duration:"3:18"},{label:{id:"app.components.Onboarding.link.manage-media",defaultMessage:"Manage media"},href:"https://www.youtube.com/watch?v=-61MuiMQb38",duration:"3:41"}],de={href:"https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq",label:{id:"app.components.Onboarding.link.more-videos",defaultMessage:"Watch more videos"}},Je=[{label:{id:"global.documentation",defaultMessage:"documentation"},href:"https://docs.strapi.io",icon:C.Book},{label:{id:"app.static.links.cheatsheet",defaultMessage:"cheatsheet"},href:"https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf",icon:C.PaperPlane}],Xe=(0,v.default)(o.Button)`
38
+ border-radius: 50%;
39
+ padding: ${({theme:t})=>t.spaces[3]};
40
+ /* Resetting 2rem height defined by Button component */
41
+ height: 100%;
42
+ `,qe=(0,v.default)(o.Flex)`
43
+ transform: translate(-50%, -50%);
44
+ `,_e=(0,v.default)(o.Flex)`
45
+ text-decoration: none;
46
+
47
+ :focus-visible {
48
+ outline-offset: ${({theme:t})=>`-${t.spaces[1]}`};
49
+ }
50
+
51
+ :hover {
52
+ background: ${({theme:t})=>t.colors.primary100};
53
+
54
+ /* Hover style for the number displayed */
55
+ ${o.Typography}:first-child {
56
+ color: ${({theme:t})=>t.colors.primary500};
57
+ }
58
+
59
+ /* Hover style for the label */
60
+ ${o.Typography}:nth-child(1) {
61
+ color: ${({theme:t})=>t.colors.primary600};
62
+ }
63
+ }
64
+ `,et=v.default.img`
65
+ width: ${({theme:t})=>t.spaces[10]};
66
+ height: ${({theme:t})=>t.spaces[8]};
67
+ /* Same overlay used in ModalLayout */
68
+ background: ${({theme:t})=>`${t.colors.neutral800}1F`};
69
+ border-radius: ${({theme:t})=>t.borderRadius};
70
+ `,ue=(0,v.default)(o.Typography)`
71
+ /* line height of label and watch more to 1 so they can be better aligned visually */
72
+ line-height: 1;
73
+ `,pe=(0,v.default)(ue)`
74
+ text-decoration: none;
75
+
76
+ :hover {
77
+ text-decoration: underline;
78
+ }
79
+ `;var tt=()=>{const t=(0,e.useRef)(),[a,s]=(0,e.useState)(!1),{formatMessage:l}=(0,F.useIntl)(),{communityEdition:g}=(0,r.useAppInfos)(),p=()=>{s(m=>!m)},f=[...Je,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:C.Message,href:g?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(o.Box,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(Xe,{"aria-label":l(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:p,ref:t},e.createElement(o.Icon,{as:a?C.Cross:C.Question,color:"buttonNeutral0"})),a&&e.createElement(o.Portal,null,e.createElement(o.PopoverPrimitives.Content,{padding:0,source:t,placement:"top-end",spacing:12},e.createElement(o.FocusTrap,{onEscape:p},e.createElement(o.Flex,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(ue,{fontWeight:"bold"},l({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(pe,{as:"a",href:de.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},l(de.label))),e.createElement(o.Divider,null),Ye.map(({href:m,duration:h,label:u},T)=>e.createElement(_e,{as:"a",href:m,target:"_blank",rel:"noreferrer noopener",key:m,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(o.Box,{paddingRight:5},e.createElement(o.Typography,{textColor:"neutral200",variant:"alpha"},T+1)),e.createElement(o.Box,{position:"relative"},e.createElement(et,{src:Qe,alt:""}),e.createElement(qe,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(o.Icon,{as:C.Play,color:"buttonNeutral0",width:3,height:3}))),e.createElement(o.Flex,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(o.Typography,{fontWeight:"bold"},l(u)),e.createElement(o.VisuallyHidden,null,":"),e.createElement(o.Typography,{textColor:"neutral600",variant:"pi"},h)))),e.createElement(o.Flex,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},f.map(({label:m,href:h,icon:u})=>e.createElement(o.Flex,{gap:3,key:h},e.createElement(o.Icon,{as:u,color:"primary600"}),e.createElement(pe,{as:"a",href:h,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},l(m)))))))))};const nt=(0,e.lazy)(()=>Promise.all([n.e(8469),n.e(6985),n.e(2263),n.e(994)]).then(n.bind(n,58153))),at=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,12016))),ot=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,15415))),st=(0,e.lazy)(()=>Promise.all([n.e(8469),n.e(5516)]).then(n.bind(n,92698))),me=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,53951))),rt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,92336))),it=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,9972))),ge=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,61056))),lt=()=>{const{trackUsage:t}=(0,r.useTracking)(),a=(0,x.useDispatch)(),s=(0,x.useSelector)(l=>l.admin_app.status);(0,e.useEffect)(()=>{s==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:Ze.e}))},[s])};var ct=()=>{lt();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:s}=(0,k.H9)(),{menu:l}=(0,r.useStrapiApp)(),{showTutorials:g}=(0,k.um)(),p=(0,e.useMemo)(()=>l.filter(f=>f.Component).map(({to:f,Component:m,exact:h})=>(0,Y.ot)(m,f,h)),[l]);return t?e.createElement(r.LoadingIndicatorPage,null):e.createElement(R.DndProvider,{backend:b.PD},e.createElement(we,{sideNav:e.createElement(ze,{generalSectionLinks:a,pluginsSectionLinks:s})},e.createElement(e.Suspense,{fallback:e.createElement(r.LoadingIndicatorPage,null)},e.createElement(d.Switch,null,e.createElement(d.Route,{path:"/",component:at,exact:!0}),e.createElement(d.Route,{path:"/me",component:it,exact:!0}),e.createElement(d.Route,{path:"/content-manager",component:nt}),p,e.createElement(d.Route,{path:"/settings/:settingId",component:ge}),e.createElement(d.Route,{path:"/settings",component:ge,exact:!0}),e.createElement(d.Route,{path:"/marketplace"},e.createElement(st,null)),e.createElement(d.Route,{path:"/list-plugins",exact:!0},e.createElement(ot,null)),e.createElement(d.Route,{path:"/404",component:me}),e.createElement(d.Route,{path:"/500",component:rt}),e.createElement(d.Route,{path:"",component:me}))),e.createElement(Ne,null),g&&e.createElement(tt,null)))},dt=t=>({plugins:Object.keys(t).reduce((a,s)=>(a[s]={...t[s]},a),{})}),ut=n(3040),pt=n.n(ut);const he={plugins:null};var mt=(t=he,a)=>(0,ne.default)(t,s=>{switch(a.type){case"SET_PLUGIN_READY":{pt()(s,["plugins",a.pluginId,"isReady"],!0);break}default:return s}}),gt=()=>{const{plugins:t}=(0,r.useStrapiApp)(),[{plugins:a},s]=(0,e.useReducer)(mt,he,()=>dt(t)),l=(0,e.useRef)(p=>{s({type:"SET_PLUGIN_READY",pluginId:p})});if(Object.keys(a).some(p=>a[p].isReady===!1)){const p=Object.keys(a).reduce((f,m)=>{const h=a[m].initializer;if(h){const u=a[m].pluginId;f.push(e.createElement(h,{key:u,setPlugin:l.current}))}return f},[]);return e.createElement(e.Fragment,null,p,e.createElement(r.LoadingIndicatorPage,null))}return e.createElement(ct,null)},fe=n(17367);const ht=()=>({type:fe.l}),ft=t=>({type:fe.m,permissions:t}),Ee=({children:t,permissions:a,refetchPermissions:s})=>{const{allPermissions:l}=(0,x.useSelector)(p=>p.rbacProvider),g=(0,x.useDispatch)();return(0,e.useEffect)(()=>(g(ft(a)),()=>{g(ht())}),[a,g]),l?e.createElement(r.RBACProviderContext.Provider,{value:{allPermissions:l,refetchPermissions:s}},t):e.createElement(r.LoadingIndicatorPage,null)};Ee.propTypes={children:i().element.isRequired,permissions:i().array.isRequired,refetchPermissions:i().func.isRequired};var Et=Ee,yt=n(84306),Tt=n(54770),J=n.n(Tt),ye=(t,a)=>!J().valid(t)||!J().valid(a)?!1:J().lt(t,a);const Te=y.i8,vt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:X}=(0,r.getFetchClient)(),Ct=async t=>{try{const{data:{tag_name:a}}=await yt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return ye(Te,a)&&vt&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${a}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),a}catch{return Te}},Mt=async()=>{try{const{data:t,headers:a}=await X("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Rt=async()=>{try{const{data:t,headers:a}=await X("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},xt=async()=>{try{const{data:{data:{roles:t}}}=await X("/admin/users/me");return t}catch(t){throw new Error(t)}},ve=y.i8;var It=()=>{const{setGuidedTourVisibility:t}=(0,r.useGuidedTour)(),a=(0,r.useNotification)(),s=(0,e.useRef)(t),l=r.auth.getUserInfo(),g=z()(l,"username")||(0,Y.Pp)(l.firstname,l.lastname),[p,f]=(0,e.useState)(g),[m,h]=(0,e.useState)(null),{showReleaseNotification:u}=(0,k.um)(),[{data:T,status:O},{data:A,isLoading:W},{data:G,status:I,refetch:j,isFetched:D,isFetching:L},{data:P}]=(0,S.useQueries)([{queryKey:"app-infos",queryFn:Mt},{queryKey:"strapi-release",queryFn:()=>Ct(a),enabled:u,initialData:ve},{queryKey:"admin-users-permission",queryFn:Rt,initialData:[]},{queryKey:"user-roles",queryFn:xt}]),c=(0,e.useMemo)(()=>ye(ve,A),[A]);(0,e.useEffect)(()=>{P&&P.find(({code:ee})=>ee==="strapi-super-admin")&&T?.autoReload&&s.current(!0)},[P,T]),(0,e.useEffect)(()=>{(async()=>{const ee=await(0,Y.Qy)(l);h(ee)})()},[l]);const V=W||(L&&D||O==="loading"||I==="loading"),q=(0,e.useMemo)(()=>({...T,userId:m,latestStrapiReleaseTag:A,setUserDisplayName:f,shouldUpdateStrapi:c,userDisplayName:p}),[T,A,c,p,m]);return V?e.createElement(r.LoadingIndicatorPage,null):O==="error"?e.createElement("div",null,"error..."):e.createElement(r.AppInfosContext.Provider,{value:q},e.createElement(Et,{permissions:G,refetchPermissions:j},e.createElement(gt,null)))}},78024:function(K,M,n){var e=n(32735),r=n(60216),S=n.n(r),E=n(13478),z=n.n(E),y=n(39161),k=n.n(y),d=n(23678);const x=({type:R,...b})=>e.createElement(y.Box,{width:(0,E.pxToRem)(2),height:"100%",background:R===d.VM?"neutral300":"primary500",hasRadius:!0,...b});x.defaultProps={type:d.VM},x.propTypes={type:S().oneOf([d.lW,d.hx,d.VM])},M.Z=x},14317:function(K,M,n){var e=n(32735),r=n(60216),S=n.n(r),E=n(13478),z=n.n(E),y=n(39161),k=n.n(y),d=n(57269),x=n.n(d),R=n(23678);const b=({type:$,number:U})=>$===R.hx?e.createElement(y.Flex,{background:"primary600",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Icon,{as:d.Check,"aria-hidden":!0,width:(0,E.pxToRem)(16),color:"neutral0"})):$===R.lW?e.createElement(y.Flex,{background:"primary600",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Typography,{fontWeight:"semiBold",textColor:"neutral0"},U)):e.createElement(y.Flex,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Typography,{fontWeight:"semiBold",textColor:"neutral600"},U));b.defaultProps={number:void 0,type:R.VM},b.propTypes={number:S().number,type:S().oneOf([R.lW,R.hx,R.VM])},M.Z=b},23678:function(K,M,n){n.d(M,{VM:function(){return S},hx:function(){return r},lW:function(){return e}});const e="isActive",r="isDone",S="isNotDone"},58107:function(K,M){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};M.Z=n}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9501],{92336:function(E,o,t){t.r(o);var e=t(32735),n=t(13478),i=t.n(n),a=t(39161),d=t.n(a),s=t(57269),u=t.n(s),l=t(5636);const r=()=>{const{formatMessage:_}=(0,l.useIntl)();return(0,n.useFocusWhenNavigate)(),e.createElement(a.Main,{labelledBy:"title"},e.createElement(a.HeaderLayout,{id:"title",title:_({id:"content-manager.pageNotFound",defaultMessage:"Page not found"})}),e.createElement(a.ContentLayout,null,e.createElement(a.EmptyStateLayout,{action:e.createElement(n.LinkButton,{variant:"secondary",endIcon:e.createElement(s.ArrowRight,null),to:"/"},_({id:"app.components.NotFoundPage.back",defaultMessage:"Back to homepage"})),content:_({id:"notification.error",defaultMessage:"An error occured"}),hasRadius:!0,icon:e.createElement(s.EmptyPictures,{width:"10rem"}),shadow:"tableShadow"})))};o.default=r}}]);
@@ -0,0 +1,68 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3981],{83119:function(M,E){const o=()=>null;E.Z=o},12016:function(M,E,o){o.r(E),o.d(E,{default:function(){return ce}});var e=o(32735),f=o(5636),c=o(83292),L=o(99357),H=o(5141),l=o(13478),n=o(39161),P=o.p+"7e9af4fb7e723fcebf1f.svg",w=o(8888),I=t=>Object.entries(t).every(([,r])=>Object.entries(r).every(([,a])=>a)),d=o(57269),R=o(60216),i=o.n(R),G=o(14317),F=o(78024),p=o(23678);const b=({type:t,title:r,number:a,content:s,hasLine:m})=>{const{formatMessage:h}=(0,f.useIntl)();return e.createElement(n.Box,null,e.createElement(n.Flex,null,e.createElement(n.Box,{minWidth:(0,l.pxToRem)(30),marginRight:5},e.createElement(G.Z,{type:t,number:a})),e.createElement(n.Typography,{variant:"delta",as:"h3"},h(r))),e.createElement(n.Flex,{alignItems:"flex-start"},e.createElement(n.Flex,{justifyContent:"center",minWidth:(0,l.pxToRem)(30),marginBottom:3,marginTop:3,marginRight:5},m&&e.createElement(F.Z,{type:t,minHeight:t===p.lW?(0,l.pxToRem)(85):(0,l.pxToRem)(65)})),e.createElement(n.Box,{marginTop:2},t===p.lW&&s)))};b.defaultProps={content:void 0,number:void 0,type:p.VM,hasLine:!0},b.propTypes={content:i().node,number:i().number,title:i().shape({id:i().string,defaultMessage:i().string}).isRequired,type:i().oneOf([p.lW,p.hx,p.VM]),hasLine:i().bool};var j=b;const W=(t,r)=>t===-1||r<t?p.hx:r>t?p.VM:p.lW,C=({sections:t,currentSectionKey:r})=>{const a=t.findIndex(s=>s.key===r);return e.createElement(n.Box,null,t.map((s,m)=>e.createElement(j,{key:s.key,title:s.title,content:s.content,number:m+1,type:W(a,m),hasLine:m!==t.length-1})))};C.defaultProps={currentSectionKey:void 0},C.propTypes={sections:i().arrayOf(i().shape({key:i().string.isRequired,title:i().shape({id:i().string,defaultMessage:i().string}).isRequired,content:i().node})).isRequired,currentSectionKey:i().string};var D=C,O=o(58107),A=()=>{const{guidedTourState:t,setSkipped:r}=(0,l.useGuidedTour)(),{formatMessage:a}=(0,f.useIntl)(),{trackUsage:s}=(0,l.useTracking)(),m=Object.entries(O.Z).map(([u,g])=>({key:u,title:g.home.title,content:e.createElement(l.LinkButton,{onClick:()=>s(g.home.trackingEvent),to:g.home.cta.target,endIcon:e.createElement(d.ArrowRight,null)},a(g.home.cta.title))})),T=m.map(u=>({isDone:Object.entries(t[u.key]).every(([,g])=>g),...u})).find(u=>!u.isDone)?.key,x=()=>{r(!0),s("didSkipGuidedtour")};return e.createElement(n.Box,{hasRadius:!0,shadow:"tableShadow",paddingTop:7,paddingRight:4,paddingLeft:7,paddingBottom:4,background:"neutral0"},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(n.Typography,{variant:"beta",as:"h2"},a({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"})),e.createElement(D,{sections:m,currentSectionKey:T})),e.createElement(n.Flex,{justifyContent:"flex-end"},e.createElement(n.Button,{variant:"tertiary",onClick:x},a({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"}))))},Z=o(95489),S=o(41502);const z=(0,c.default)(d.Discord)`
2
+ path {
3
+ fill: #7289da !important;
4
+ }
5
+ `,$=(0,c.default)(d.Reddit)`
6
+ > path:first-child {
7
+ fill: #ff4500;
8
+ }
9
+ `,v=(0,c.default)(d.Strapi)`
10
+ > path:first-child {
11
+ fill: #4945ff;
12
+ }
13
+ > path:nth-child(2) {
14
+ fill: #fff;
15
+ }
16
+ > path:nth-child(4) {
17
+ fill: #9593ff;
18
+ }
19
+ `,N=(0,c.default)(d.Twitter)`
20
+ path {
21
+ fill: #1da1f2 !important;
22
+ }
23
+ `,V=(0,c.default)(d.Discourse)`
24
+ > path:first-child {
25
+ fill: #231f20;
26
+ }
27
+ > path:nth-child(2) {
28
+ fill: #fff9ae;
29
+ }
30
+ > path:nth-child(3) {
31
+ fill: #00aeef;
32
+ }
33
+ > path:nth-child(4) {
34
+ fill: #00a94f;
35
+ }
36
+ > path:nth-child(5) {
37
+ fill: #f15d22;
38
+ }
39
+ > path:nth-child(6) {
40
+ fill: #e31b23;
41
+ }
42
+ `,K=[{name:{id:"app.components.HomePage.community.links.github",defaultMessage:"Github"},link:"https://github.com/strapi/strapi/",icon:e.createElement(d.Github,{fill:"#7289DA"}),alt:"github"},{name:{id:"app.components.HomePage.community.links.discord",defaultMessage:"Discord"},link:"https://discord.strapi.io/",icon:e.createElement(z,null),alt:"discord"},{name:{id:"app.components.HomePage.community.links.reddit",defaultMessage:"Reddit"},link:"https://www.reddit.com/r/Strapi/",icon:e.createElement($,null),alt:"reddit"},{name:{id:"app.components.HomePage.community.links.twitter",defaultMessage:"Twitter"},link:"https://twitter.com/strapijs",icon:e.createElement(N,null),alt:"twitter"},{name:{id:"app.components.HomePage.community.links.forum",defaultMessage:"Forum"},link:"https://forum.strapi.io",icon:e.createElement(V,null),alt:"forum"},{name:{id:"app.components.HomePage.community.links.blog",defaultMessage:"Blog"},link:"https://strapi.io/blog?utm_source=referral&utm_medium=admin&utm_campaign=career%20page",icon:e.createElement(v,null),alt:"blog"},{name:{id:"app.components.HomePage.community.links.career",defaultMessage:"We are hiring!"},link:"https://strapi.io/careers?utm_source=referral&utm_medium=admin&utm_campaign=blog",icon:e.createElement(v,null),alt:"career"}],U=(0,c.default)(Z.Q)`
43
+ display: flex;
44
+ align-items: center;
45
+ border: none;
46
+
47
+ svg {
48
+ width: ${({theme:t})=>t.spaces[6]};
49
+ height: ${({theme:t})=>t.spaces[6]};
50
+ }
51
+
52
+ span {
53
+ word-break: keep-all;
54
+ }
55
+ `,J=(0,c.default)(n.Grid)`
56
+ row-gap: ${({theme:t})=>t.spaces[2]};
57
+ column-gap: ${({theme:t})=>t.spaces[4]};
58
+ `;var Q=()=>{const{formatMessage:t}=(0,f.useIntl)(),{communityEdition:r}=(0,l.useAppInfos)(),a=[...K,{icon:e.createElement(v,null),link:r?"https://discord.strapi.io":"https://support.strapi.io/support/home",name:{id:"Settings.application.get-help",defaultMessage:"Get help"}}];return e.createElement(n.Box,{as:"aside","aria-labelledby":"join-the-community",background:"neutral0",hasRadius:!0,paddingRight:5,paddingLeft:5,paddingTop:6,paddingBottom:6,shadow:"tableShadow"},e.createElement(n.Box,{paddingBottom:7},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:5},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:3},e.createElement(n.Typography,{variant:"delta",as:"h2",id:"join-the-community"},t({id:"app.components.HomePage.community",defaultMessage:"Join the community"})),e.createElement(n.Typography,{textColor:"neutral600"},t({id:"app.components.HomePage.community.content",defaultMessage:"Discuss with team members, contributors and developers on different channels"}))),e.createElement(S.r,{href:"https://feedback.strapi.io/",isExternal:!0,endIcon:e.createElement(d.ExternalLink,null)},t({id:"app.components.HomePage.roadmap",defaultMessage:"See our road map"})))),e.createElement(J,null,a.map(({icon:s,link:m,name:h})=>e.createElement(n.GridItem,{col:6,s:12,key:h},e.createElement(U,{size:"L",startIcon:s,variant:"tertiary",href:m,isExternal:!0},t(h))))))};const Y=(0,c.default)(n.Typography)`
59
+ word-break: break-word;
60
+ `,B=({hasCreatedContentType:t,onCreateCT:r})=>{const{formatMessage:a}=(0,f.useIntl)();return e.createElement("div",null,e.createElement(n.Box,{paddingLeft:6,paddingBottom:10},e.createElement(n.Flex,{direction:"column",alignItems:"flex-start",gap:5},e.createElement(n.Typography,{as:"h1",variant:"alpha"},a(t?{id:"app.components.HomePage.welcome.again",defaultMessage:"Welcome \u{1F44B}"}:{id:"app.components.HomePage.welcome",defaultMessage:"Welcome on board!"})),e.createElement(Y,{textColor:"neutral600",variant:"epsilon"},a(t?{id:"app.components.HomePage.welcomeBlock.content.again",defaultMessage:"We hope you are making progress on your project! Feel free to read the latest news about Strapi. We are giving our best to improve the product based on your feedback."}:{id:"app.components.HomePage.welcomeBlock.content",defaultMessage:"Congrats! You are logged as the first administrator. To discover the powerful features provided by Strapi, we recommend you to create your first Content type!"})),t?e.createElement(S.r,{isExternal:!0,href:"https://strapi.io/blog"},a({id:"app.components.HomePage.button.blog",defaultMessage:"See more on the blog"})):e.createElement(n.Button,{size:"L",onClick:r,endIcon:e.createElement(d.ArrowRight,null)},a({id:"app.components.HomePage.create",defaultMessage:"Create your first Content type"})))))};B.defaultProps={hasCreatedContentType:void 0,onCreateCT:void 0},B.propTypes={hasCreatedContentType:i().bool,onCreateCT:i().func};var X=B,q=o.p+"27d16aefee06412db90a.png",_=o.p+"bb3108f7fd1e6179bde1.svg",ee=o.p+"bb4d0d527bdfb161bc5a.svg";const te=c.default.a`
61
+ text-decoration: none;
62
+ `,ne=(0,c.default)(n.Box)`
63
+ background-image: url(${({backgroundImage:t})=>t});
64
+ `,oe=(0,c.default)(n.Flex)`
65
+ background: rgba(255, 255, 255, 0.3);
66
+ `;var ae=()=>{const{formatMessage:t}=(0,f.useIntl)(),{trackUsage:r}=(0,l.useTracking)();return e.createElement(te,{href:"https://cloud.strapi.io",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>{r("didClickOnTryStrapiCloudSection")}},e.createElement(n.Flex,{shadow:"tableShadow",hasRadius:!0,padding:6,background:"neutral0",position:"relative",gap:6},e.createElement(ne,{backgroundImage:q,hasRadius:!0,padding:3},e.createElement(oe,{width:(0,l.pxToRem)(32),height:(0,l.pxToRem)(32),justifyContent:"center",hasRadius:!0,alignItems:"center"},e.createElement("img",{src:_,alt:t({id:"app.components.BlockLink.cloud",defaultMessage:"Strapi Cloud"})}))),e.createElement(n.Flex,{gap:1,direction:"column",alignItems:"start"},e.createElement(n.Flex,null,e.createElement(n.Typography,{fontWeight:"semiBold",variant:"pi"},t({id:"app.components.BlockLink.cloud",defaultMessage:"Strapi Cloud"}))),e.createElement(n.Typography,{textColor:"neutral600"},t({id:"app.components.BlockLink.cloud.content",defaultMessage:"A fully composable, and collaborative platform to boost your team velocity."})),e.createElement(n.Box,{src:ee,position:"absolute",top:0,right:0,as:"img"}))))};const k=c.default.a`
67
+ text-decoration: none;
68
+ `;var re=()=>{const{formatMessage:t}=(0,f.useIntl)(),{trackUsage:r}=(0,l.useTracking)(),a=s=>{r(s)};return e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:5},e.createElement(ae,null),e.createElement(k,{href:"https://strapi.io/resource-center",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonReadTheDocumentationSection")},e.createElement(l.ContentBox,{title:t({id:"global.documentation",defaultMessage:"Documentation"}),subtitle:t({id:"app.components.BlockLink.documentation.content",defaultMessage:"Discover the essential concepts, guides and instructions."}),icon:e.createElement(d.InformationSquare,null),iconBackground:"primary100"})),e.createElement(k,{href:"https://strapi.io/starters",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonCodeExampleSection")},e.createElement(l.ContentBox,{title:t({id:"app.components.BlockLink.code",defaultMessage:"Code example"}),subtitle:t({id:"app.components.BlockLink.code.content",defaultMessage:"Learn by using ready-made starters for your projects."}),icon:e.createElement(d.CodeSquare,null),iconBackground:"warning100"})),e.createElement(k,{href:"https://strapi.io/blog/categories/tutorials",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonTutorialSection")},e.createElement(l.ContentBox,{title:t({id:"app.components.BlockLink.tutorial",defaultMessage:"Tutorials"}),subtitle:t({id:"app.components.BlockLink.tutorial.content",defaultMessage:"Follow step-by-step instructions to use and customize Strapi."}),icon:e.createElement(d.PlaySquare,null),iconBackground:"secondary100"})),e.createElement(k,{href:"https://strapi.io/blog",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonBlogSection")},e.createElement(l.ContentBox,{title:t({id:"app.components.BlockLink.blog",defaultMessage:"Blog"}),subtitle:t({id:"app.components.BlockLink.blog.content",defaultMessage:"Read the latest news about Strapi and the ecosystem."}),icon:e.createElement(d.FeatherSquare,null),iconBackground:"alternative100"})))};const le=(()=>window&&window.strapi&&window.strapi.isEE?o(21306).Z:o(83119).Z)(),ie=(0,c.default)(n.Box).withConfig({displayName:"HomePage__LogoContainer",componentId:"sc-1md9zz4-0"})(["position:absolute;top:0;right:0;img{width:","rem;}"],150/16),se=()=>{const{collectionTypes:t,singleTypes:r,isLoading:a}=(0,w.bP)(),{guidedTourState:s,isGuidedTourVisible:m,isSkipped:h}=(0,l.useGuidedTour)();le();const T=!I(s)&&m&&!h,{push:x}=(0,H.useHistory)(),u=y=>{y.preventDefault(),x("/plugins/content-type-builder/content-types/create-content-type")},g=(0,e.useMemo)(()=>{const y=de=>de.filter(me=>me.isDisplayed);return y(t).length>1||y(r).length>0},[t,r]);return a?e.createElement(l.LoadingIndicatorPage,null):e.createElement(n.Layout,null,e.createElement(f.FormattedMessage,{id:"HomePage.helmet.title",defaultMessage:"Homepage"},y=>e.createElement(L.Helmet,{title:y[0]})),e.createElement(n.Main,null,e.createElement(ie,null,e.createElement("img",{alt:"","aria-hidden":!0,src:P})),e.createElement(n.Box,{padding:10},e.createElement(n.Grid,null,e.createElement(n.GridItem,{col:8,s:12},e.createElement(X,{onCreateCT:u,hasCreatedContentType:g}))),e.createElement(n.Grid,{gap:6},e.createElement(n.GridItem,{col:8,s:12},T?e.createElement(A,null):e.createElement(re,null)),e.createElement(n.GridItem,{col:4,s:12},e.createElement(Q,null))))))};var ce=(0,e.memo)(se)}}]);
@@ -0,0 +1,22 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5516],{92698:function(Qe,O,p){p.r(O),p.d(O,{MarketPlacePage:function(){return _},default:function(){return Ae}});var e=p(32735),E=p(5636),oe=p(99357),C=p(58469),u=p(13478),t=p(39161),ce=p(60216),a=p.n(ce),f=p(57269),T=p(83292);const de=(0,T.default)(t.Box)`
2
+ background: ${({theme:n})=>`linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${n.colors.neutral150} 100%)`};
3
+ opacity: 0.33;
4
+ `,ue=()=>e.createElement(t.GridLayout,null,Array(12).fill(null).map((n,s)=>e.createElement(de,{key:`empty-plugin-card-${s}`,height:"234px",hasRadius:!0}))),$=({content:n})=>e.createElement(t.Box,{position:"relative"},e.createElement(ue,null),e.createElement(t.Box,{position:"absolute",top:11,width:"100%"},e.createElement(t.Flex,{alignItems:"center",justifyContent:"center",direction:"column"},e.createElement(t.Icon,{as:f.EmptyStateDocument,color:"",width:"160px",height:"88px"}),e.createElement(t.Box,{paddingTop:6},e.createElement(t.Typography,{variant:"delta",as:"p",textColor:"neutral600"},n)))));$.propTypes={content:a().string.isRequired};var V=$,j=p(95489);const x=({isOnline:n,npmPackageType:s})=>{const{formatMessage:r}=(0,E.useIntl)(),{trackUsage:i}=(0,u.useTracking)(),o=s==="provider"?"didSubmitProvider":"didSubmitPlugin";return e.createElement(t.HeaderLayout,{title:r({id:"global.marketplace",defaultMessage:"Marketplace"}),subtitle:r({id:"admin.pages.MarketPlacePage.subtitle",defaultMessage:"Get more out of Strapi"}),primaryAction:n&&e.createElement(j.Q,{startIcon:e.createElement(f.Upload,null),variant:"tertiary",href:`https://market.strapi.io/submit-${s}`,onClick:()=>i(o),isExternal:!0},r({id:`admin.pages.MarketPlacePage.submit.${s}.link`,defaultMessage:`Submit ${s}`}))})};var z=x;x.defaultProps={npmPackageType:"plugin"},x.propTypes={isOnline:a().bool.isRequired,npmPackageType:a().string};var G=p(84968),H=p(84306);const pe="https://market-api.strapi.io",ge=async(n={})=>{const{data:s}=await H.Z.get(`${pe}/providers`,{params:n});return s};var me=(n,s)=>{const r=(0,u.useNotification)();return(0,G.useQuery)(["list-marketplace-providers",s],()=>ge(s),{onSuccess(){n&&n()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};const fe="https://market-api.strapi.io",he=async(n={})=>{const{data:s}=await H.Z.get(`${fe}/plugins`,{params:n});return{...s,data:s.data.filter(i=>i.attributes.strapiCompatibility==="v4")}};var Pe=(n,s)=>{const r=(0,u.useNotification)();return(0,G.useQuery)(["list-marketplace-plugins",s],()=>he(s),{onSuccess(){n&&n()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},Ee=p(72041),ke=p.p+"9d5d788027e86620c234.svg",ye=()=>{const n=typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0,[s,r]=(0,e.useState)(n),i=()=>r(!0),o=()=>r(!1);return(0,e.useEffect)(()=>(window.addEventListener("online",i),window.addEventListener("offline",o),()=>{window.removeEventListener("online",i),window.removeEventListener("offline",o)}),[]),s},ve=()=>{const{formatMessage:n}=(0,E.useIntl)(),{trackUsage:s}=(0,u.useTracking)();return e.createElement("a",{href:"https://strapi.canny.io/plugin-requests",target:"_blank",rel:"noopener noreferrer nofollow",style:{textDecoration:"none"},onClick:()=>s("didMissMarketplacePlugin")},e.createElement(u.ContentBox,{title:n({id:"admin.pages.MarketPlacePage.missingPlugin.title",defaultMessage:"Documentation"}),subtitle:n({id:"admin.pages.MarketPlacePage.missingPlugin.description",defaultMessage:"Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration!"}),icon:e.createElement(f.GlassesSquare,null),iconBackground:"alternative100",endAction:e.createElement(t.Icon,{as:f.ExternalLink,color:"neutral600",width:3,height:3,marginLeft:2})}))},Me=p(24443),be=p.n(Me),Re=p(47750),Te=p(54770),U=p.n(Te);const S=({description:n,installMessage:s,disabled:r,handleCopy:i,pluginName:o})=>e.createElement(t.Tooltip,{"data-testid":`tooltip-${o}`,description:n},e.createElement(t.Box,null,e.createElement(t.Button,{size:"S",startIcon:e.createElement(f.Duplicate,null),variant:"secondary",disabled:r,onClick:i},s))),I=({strapiPeerDepVersion:n,strapiAppVersion:s,handleCopy:r,pluginName:i})=>{const{formatMessage:o}=(0,E.useIntl)(),d=U().validRange(n),c=U().satisfies(s,d),l=o({id:"admin.pages.MarketPlacePage.plugin.copy",defaultMessage:"Copy install command"});if(s){if(!d)return e.createElement(S,{installMessage:l,pluginName:i,description:o({id:"admin.pages.MarketPlacePage.plugin.version.null",defaultMessage:'Unable to verify compatibility with your Strapi version: "{strapiAppVersion}"'},{strapiAppVersion:s}),handleCopy:r});if(!c)return e.createElement(S,{installMessage:l,pluginName:i,description:o({id:"admin.pages.MarketPlacePage.plugin.version",defaultMessage:'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'},{strapiAppVersion:s,versionRange:d}),disabled:!0})}return e.createElement(t.Button,{size:"S",startIcon:e.createElement(f.Duplicate,null),variant:"secondary",onClick:r},l)};S.defaultProps={disabled:!1,handleCopy:null},S.propTypes={description:a().string.isRequired,installMessage:a().string.isRequired,disabled:a().bool,handleCopy:a().func,pluginName:a().string.isRequired},I.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},I.propTypes={strapiAppVersion:a().string,strapiPeerDepVersion:a().string,handleCopy:a().func.isRequired,pluginName:a().string.isRequired};var Se=I;const B=({isInstalled:n,isInDevelopmentMode:s,commandToCopy:r,strapiAppVersion:i,strapiPeerDepVersion:o,pluginName:d})=>{const c=(0,u.useNotification)(),{formatMessage:l}=(0,E.useIntl)(),{trackUsage:g}=(0,u.useTracking)(),m=()=>{navigator.clipboard.writeText(r),g("willInstallPlugin"),c({type:"success",message:{id:"admin.pages.MarketPlacePage.plugin.copy.success"}})};return n?e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Icon,{as:f.Check,marginRight:2,width:12,height:12,color:"success600"}),e.createElement(t.Typography,{variant:"omega",textColor:"success600",fontWeight:"bold"},l({id:"admin.pages.MarketPlacePage.plugin.installed",defaultMessage:"Installed"}))):s?e.createElement(Se,{strapiAppVersion:i,strapiPeerDepVersion:o,handleCopy:m,pluginName:d}):null};B.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},B.propTypes={isInstalled:a().bool.isRequired,isInDevelopmentMode:a().bool.isRequired,commandToCopy:a().string.isRequired,strapiAppVersion:a().string,strapiPeerDepVersion:a().string,pluginName:a().string.isRequired};var Ce=B;const xe=(0,T.default)(t.Divider)`
5
+ width: ${(0,u.pxToRem)(12)};
6
+ transform: rotate(90deg);
7
+ `,w=({githubStars:n,npmDownloads:s,npmPackageType:r})=>{const{formatMessage:i}=(0,E.useIntl)();return e.createElement(t.Flex,{gap:1},!!n&&e.createElement(e.Fragment,null,e.createElement(t.Icon,{as:f.Github,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),"aria-hidden":!0}),e.createElement(t.Icon,{as:f.Star,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),color:"warning500","aria-hidden":!0}),e.createElement("p",{"aria-label":i({id:`admin.pages.MarketPlacePage.${r}.githubStars`,defaultMessage:"This {package} was starred {starsCount} on GitHub"},{starsCount:n,package:r})},e.createElement(t.Typography,{variant:"pi",textColor:"neutral800",lineHeight:16},n)),e.createElement(xe,{unsetMargin:!1,background:"neutral200"})),e.createElement(t.Icon,{as:f.Download,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),"aria-hidden":!0}),e.createElement("p",{"aria-label":i({id:`admin.pages.MarketPlacePage.${r}.downloads`,defaultMessage:"This {package} has {downloadsCount} weekly downloads"},{downloadsCount:s,package:r})},e.createElement(t.Typography,{variant:"pi",textColor:"neutral800",lineHeight:16},s)))};w.defaultProps={githubStars:0,npmDownloads:0},w.propTypes={githubStars:a().number,npmDownloads:a().number,npmPackageType:a().string.isRequired};var Ie=w;const Be=(0,T.default)(t.Typography)`
8
+ /* stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix */
9
+ display: -webkit-box;
10
+ -webkit-box-orient: vertical;
11
+ -webkit-line-clamp: 2;
12
+ /* stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix */
13
+ overflow: hidden;
14
+ `,N=({npmPackage:n,isInstalled:s,useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d})=>{const{attributes:c}=n,{formatMessage:l}=(0,E.useIntl)(),{trackUsage:g}=(0,u.useTracking)(),m=r?`yarn add ${c.npmPackageName}`:`npm install ${c.npmPackageName}`,y=l({id:"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi",defaultMessage:"Made by Strapi"}),M=`https://market.strapi.io/${be().plural(o)}/${c.slug}`;return e.createElement(t.Flex,{direction:"column",justifyContent:"space-between",paddingTop:4,paddingRight:4,paddingBottom:4,paddingLeft:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",height:"100%",alignItems:"normal","data-testid":"npm-package-card"},e.createElement(t.Box,null,e.createElement(t.Flex,{direction:"row",justifyContent:"space-between",alignItems:"flex-start"},e.createElement(t.Box,{as:"img",src:c.logo.url,alt:`${c.name} logo`,hasRadius:!0,width:11,height:11}),e.createElement(Ie,{githubStars:c.githubStars,npmDownloads:c.npmDownloads,npmPackageType:o})),e.createElement(t.Box,{paddingTop:4},e.createElement(t.Typography,{as:"h3",variant:"delta"},e.createElement(t.Flex,{alignItems:"center"},c.name,c.validated&&!c.madeByStrapi&&e.createElement(t.Tooltip,{description:l({id:"admin.pages.MarketPlacePage.plugin.tooltip.verified",defaultMessage:"Plugin verified by Strapi"})},e.createElement(t.Flex,null,e.createElement(t.Icon,{as:f.CheckCircle,marginLeft:2,color:"success600"}))),c.madeByStrapi&&e.createElement(t.Tooltip,{description:y},e.createElement(t.Flex,null,e.createElement(t.Box,{as:"img",src:Re,alt:y,marginLeft:1,width:6,height:"auto"})))))),e.createElement(t.Box,{paddingTop:2},e.createElement(Be,{as:"p",variant:"omega",textColor:"neutral600"},c.description))),e.createElement(t.Flex,{gap:2,style:{alignSelf:"flex-end"},paddingTop:6},e.createElement(j.Q,{size:"S",href:M,isExternal:!0,endIcon:e.createElement(f.ExternalLink,null),"aria-label":l({id:"admin.pages.MarketPlacePage.plugin.info.label",defaultMessage:"Learn more about {pluginName}"},{pluginName:c.name}),variant:"tertiary",onClick:()=>g("didPluginLearnMore")},l({id:"admin.pages.MarketPlacePage.plugin.info.text",defaultMessage:"More"})),e.createElement(Ce,{isInstalled:s,isInDevelopmentMode:i,commandToCopy:m,strapiAppVersion:d,strapiPeerDepVersion:c.strapiVersion,pluginName:c.name})))};N.defaultProps={isInDevelopmentMode:!1,strapiAppVersion:null},N.propTypes={npmPackage:a().shape({id:a().string.isRequired,attributes:a().shape({name:a().string.isRequired,description:a().string.isRequired,slug:a().string.isRequired,npmPackageName:a().string.isRequired,npmPackageUrl:a().string.isRequired,repositoryUrl:a().string.isRequired,logo:a().object.isRequired,developerName:a().string.isRequired,validated:a().bool.isRequired,madeByStrapi:a().bool.isRequired,strapiCompatibility:a().oneOf(["v3","v4"]),strapiVersion:a().string,githubStars:a().number,npmDownloads:a().number}).isRequired}).isRequired,isInstalled:a().bool.isRequired,useYarn:a().bool.isRequired,isInDevelopmentMode:a().bool,npmPackageType:a().string.isRequired,strapiAppVersion:a().string};var we=N;const q=({npmPackages:n,installedPackageNames:s,useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d})=>{const c=(0,e.useCallback)(l=>s.includes(l),[s]);return e.createElement(t.Grid,{gap:4},n.map(l=>e.createElement(t.GridItem,{col:4,s:6,xs:12,style:{height:"100%"},key:l.id},e.createElement(we,{npmPackage:l,isInstalled:c(l.attributes.npmPackageName),useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d}))))};q.defaultProps={installedPackageNames:[],strapiAppVersion:null},q.propTypes={npmPackages:a().array.isRequired,installedPackageNames:a().arrayOf(a().string),useYarn:a().bool.isRequired,isInDevelopmentMode:a().bool.isRequired,npmPackageType:a().string.isRequired,strapiAppVersion:a().string};var Q=q;const Ne=(0,T.default)(t.Box)`
15
+ font-weight: ${({theme:n})=>n.fontWeights.semiBold};
16
+
17
+ span {
18
+ font-size: ${({theme:n})=>n.fontSizes[1]};
19
+ }
20
+ `,W=({sortQuery:n,handleSelectChange:s})=>{const{formatMessage:r}=(0,E.useIntl)(),i={"name:asc":{selected:{id:"admin.pages.MarketPlacePage.sort.alphabetical.selected",defaultMessage:"Sort by alphabetical order"},option:{id:"admin.pages.MarketPlacePage.sort.alphabetical",defaultMessage:"Alphabetical order"}},"submissionDate:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.newest.selected",defaultMessage:"Sort by newest"},option:{id:"admin.pages.MarketPlacePage.sort.newest",defaultMessage:"Newest"}},"githubStars:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.githubStars.selected",defaultMessage:"Sort by GitHub stars"},option:{id:"admin.pages.MarketPlacePage.sort.githubStars",defaultMessage:"Number of GitHub stars"}},"npmDownloads:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.npmDownloads.selected",defaultMessage:"Sort by npm downloads"},option:{id:"admin.pages.MarketPlacePage.sort.npmDownloads",defaultMessage:"Number of downloads"}}};return e.createElement(Ne,null,e.createElement(t.Select,{size:"S",id:"sort-by-select",value:n,customizeContent:()=>r(i[n].selected),onChange:o=>{s({sort:o})}},Object.entries(i).map(([o,d])=>e.createElement(t.Option,{key:o,value:o},r(d.option)))))};W.propTypes={sortQuery:a().string.isRequired,handleSelectChange:a().func.isRequired};var qe=W;const Z=({message:n,value:s,onChange:r,possibleFilters:i,onClear:o,customizeContent:d})=>{const c=(l,g)=>`${l} (${g})`;return e.createElement(t.Select,{"data-testid":`${n}-button`,"aria-label":n,placeholder:n,size:"M",onChange:r,onClear:o,value:s,customizeContent:d,multi:!0},Object.entries(i).map(([l,g])=>e.createElement(t.Option,{"data-testid":`${l}-${g}`,key:l,value:l},c(l,g))))};Z.propTypes={message:a().string.isRequired,value:a().array.isRequired,onChange:a().func.isRequired,possibleFilters:a().object.isRequired,onClear:a().func.isRequired,customizeContent:a().func.isRequired};var Y=Z;const K=({source:n,onToggle:s,query:r,npmPackageType:i,possibleCategories:o,possibleCollections:d,handleSelectChange:c,handleSelectClear:l})=>{const{formatMessage:g}=(0,E.useIntl)();return e.createElement(t.Popover,{source:n,padding:3,spacing:4,onBlur:()=>{}},e.createElement(t.FocusTrap,{onEscape:s},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.Box,null,e.createElement(Y,{message:g({id:"admin.pages.MarketPlacePage.filters.collections",defaultMessage:"Collections"}),value:r?.collections||[],onChange:m=>{c({collections:m})},onClear:()=>l("collections"),possibleFilters:d,customizeContent:m=>g({id:"admin.pages.MarketPlacePage.filters.collectionsSelected",defaultMessage:"{count, plural, =0 {No collections} one {# collection} other {# collections}} selected"},{count:m.length})})),i==="plugin"&&e.createElement(t.Box,null,e.createElement(Y,{message:g({id:"admin.pages.MarketPlacePage.filters.categories",defaultMessage:"Categories"}),value:r?.categories||[],onChange:m=>{c({categories:m})},onClear:()=>l("categories"),possibleFilters:o,customizeContent:m=>g({id:"admin.pages.MarketPlacePage.filters.categoriesSelected",defaultMessage:"{count, plural, =0 {No categories} one {# category} other {# categories}} selected"},{count:m.length}),name:"categories"})))))};K.propTypes={onToggle:a().func.isRequired,source:a().shape({current:a().instanceOf(Element)}).isRequired,query:a().object.isRequired,npmPackageType:a().oneOf(["plugin","provider"]).isRequired,possibleCollections:a().object.isRequired,possibleCategories:a().object.isRequired,handleSelectChange:a().func.isRequired,handleSelectClear:a().func.isRequired};var Fe=K;const F=({name:n,handleRemove:s})=>e.createElement(t.Box,{padding:1},e.createElement(t.Tag,{icon:e.createElement(f.Cross,null),onClick:s},n)),Le=(0,T.default)(t.Button)`
21
+ height: ${({theme:n})=>n.sizes.input.S};
22
+ `,J=({possibleCollections:n,possibleCategories:s,npmPackageType:r,query:i,handleSelectClear:o,handleSelectChange:d})=>{const[c,l]=(0,e.useState)(!1),g=(0,e.useRef)(),{formatMessage:m}=(0,E.useIntl)(),y=()=>l(h=>!h),M=(h,R)=>{const P={[R]:i[R].filter(b=>b!==h)};d(P)};return e.createElement(e.Fragment,null,e.createElement(t.Box,{paddingTop:1,paddingBottom:1},e.createElement(Le,{variant:"tertiary",ref:g,"data-testid":"filters-button",startIcon:e.createElement(f.Filter,null),onClick:y,size:"S"},m({id:"app.utils.filters",defaultMessage:"Filters"})),c&&e.createElement(Fe,{onToggle:y,source:g,query:i,handleSelectClear:o,handleSelectChange:d,possibleCollections:n,possibleCategories:s,npmPackageType:r})),i.collections?.map(h=>e.createElement(F,{name:h,key:h,handleRemove:()=>M(h,"collections")})),r==="plugin"&&i.categories?.map(h=>e.createElement(F,{name:h,key:h,handleRemove:()=>M(h,"categories")})))};F.propTypes={name:a().string.isRequired,handleRemove:a().func.isRequired},J.propTypes={npmPackageType:a().oneOf(["plugin","provider"]).isRequired,possibleCollections:a().object.isRequired,possibleCategories:a().object.isRequired,query:a().object.isRequired,handleSelectChange:a().func.isRequired,handleSelectClear:a().func.isRequired};var De=J;const X=(n,s)=>(0,C.ZP)(n,s,{keys:[{threshold:C.ZP.rankings.WORD_STARTS_WITH,key:"attributes.name"},{threshold:C.ZP.rankings.WORD_STARTS_WITH,key:"attributes.description"}],baseSort:(r,i)=>r.index<i.index?-1:1}),_=()=>{const{formatMessage:n}=(0,E.useIntl)(),{trackUsage:s}=(0,u.useTracking)(),{notifyStatus:r}=(0,t.useNotifyAT)(),i=(0,e.useRef)(s),o=(0,u.useNotification)(),[d,c]=(0,e.useState)(""),[{query:l},g]=(0,u.useQueryParams)(),{autoReload:m,dependencies:y,useYarn:M,strapiVersion:h}=(0,u.useAppInfos)(),R=ye(),P=l?.npmPackageType||"plugin",[b,ee]=(0,e.useState)({plugin:P==="plugin"?{...l}:{},provider:P==="provider"?{...l}:{}});(0,u.useFocusWhenNavigate)();const Oe=n({id:"global.marketplace",defaultMessage:"Marketplace"}),te=()=>{r(n({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:Oe}))},{status:ae,data:ne}=me(te,b.provider),{status:se,data:L}=Pe(te,b.plugin),$e=[se,ae].includes("loading"),Ve=[se,ae].includes("error");if((0,e.useEffect)(()=>{i.current("didGoToMarketplace")},[]),(0,e.useEffect)(()=>{m||o({type:"info",message:{id:"admin.pages.MarketPlacePage.production",defaultMessage:"Manage plugins from the development environment"},blockTransition:!0})},[o,m]),!R)return e.createElement(t.Layout,null,e.createElement(t.Main,null,e.createElement(z,{isOnline:R}),e.createElement(t.Flex,{width:"100%",direction:"column",alignItems:"center",justifyContent:"center",style:{paddingTop:"120px"}},e.createElement(t.Box,{paddingBottom:2},e.createElement(t.Typography,{textColor:"neutral700",variant:"alpha"},n({id:"admin.pages.MarketPlacePage.offline.title",defaultMessage:"You are offline"}))),e.createElement(t.Box,{paddingBottom:6},e.createElement(t.Typography,{textColor:"neutral700",variant:"epsilon"},n({id:"admin.pages.MarketPlacePage.offline.subtitle",defaultMessage:"You need to be connected to the Internet to access Strapi Market."}))),e.createElement("img",{src:ke,alt:"offline",style:{width:"88px",height:"88px"}}))));if(Ve)return e.createElement(t.Layout,null,e.createElement(t.ContentLayout,null,e.createElement(t.Box,{paddingTop:8},e.createElement(u.AnErrorOccurred,null))));if($e)return e.createElement(t.Layout,null,e.createElement(t.Main,{"aria-busy":!0},e.createElement(u.LoadingIndicatorPage,null)));const D=X(L.data,d),A=X(ne.data,d),re=n({id:"admin.pages.MarketPlacePage.search.empty",defaultMessage:'No result for "{target}"'},{target:d}),je=v=>{const k=v===0?"plugin":"provider",Ue=b[k]&&Object.keys(b[k]).length;g(Ue?{...b[k],npmPackageType:k}:{npmPackageType:k,collections:[],categories:[],sort:"name:asc"})},ie=v=>{g(v),ee(k=>({...k,[P]:{...k[P],...v}}))},ze=v=>{g({[v]:[]},"remove"),ee(k=>({...k,[P]:{}}))},le=Object.keys(y),Ge=P==="plugin"?L.meta.collections:ne.meta.collections,He=L.meta.categories;return e.createElement(t.Layout,null,e.createElement(t.Main,null,e.createElement(oe.Helmet,{title:n({id:"admin.pages.MarketPlacePage.helmet",defaultMessage:"Marketplace - Plugins"})}),e.createElement(z,{isOnline:R,npmPackageType:P}),e.createElement(t.ContentLayout,null,e.createElement(t.Box,{width:"25%",paddingBottom:4},e.createElement(t.Searchbar,{name:"searchbar",onClear:()=>c(""),value:d,onChange:v=>c(v.target.value),clearLabel:n({id:"admin.pages.MarketPlacePage.search.clear",defaultMessage:"Clear the search"}),placeholder:n({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"})},n({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"}))),e.createElement(t.TabGroup,{label:n({id:"admin.pages.MarketPlacePage.tab-group.label",defaultMessage:"Plugins and Providers for Strapi"}),id:"tabs",variant:"simple",initialSelectedTabIndex:["plugin","provider"].indexOf(P),onTabChange:je},e.createElement(t.Box,{paddingBottom:4},e.createElement(t.Tabs,null,e.createElement(t.Tab,null,n({id:"admin.pages.MarketPlacePage.plugins",defaultMessage:"Plugins"})," ","(",D.length,")"),e.createElement(t.Tab,null,n({id:"admin.pages.MarketPlacePage.providers",defaultMessage:"Providers"})," ","(",A.length,")"))),e.createElement(t.Flex,{paddingBottom:4,gap:2},e.createElement(qe,{sortQuery:l?.sort||"name:asc",handleSelectChange:ie}),e.createElement(De,{npmPackageType:P,possibleCollections:Ge,possibleCategories:He,query:l||{},handleSelectChange:ie,handleSelectClear:ze})),e.createElement(t.TabPanels,null,e.createElement(t.TabPanel,null,d.length>0&&!D.length?e.createElement(V,{content:re}):e.createElement(Q,{npmPackages:D,installedPackageNames:le,useYarn:M,isInDevelopmentMode:m,npmPackageType:"plugin",strapiAppVersion:h})),e.createElement(t.TabPanel,null,d.length>0&&!A.length?e.createElement(V,{content:re}):e.createElement(Q,{npmPackages:A,installedPackageNames:le,useYarn:M,isInDevelopmentMode:m,npmPackageType:"provider"})))),e.createElement(t.Box,{paddingTop:7},e.createElement(ve,null)))))};var Ae=()=>e.createElement(u.CheckPagePermissions,{permissions:Ee.Z.marketplace.main},e.createElement(_,null))}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3677],{15415:function(M,o,a){a.r(o),a.d(o,{default:function(){return P}});var e=a(32735),s=a(13478),d=a(99357),r=a(5636),m=a(72041),t=a(39161),p=a(84968);const E=async()=>{const{get:n}=(0,s.getFetchClient)(),{data:l}=await n("/admin/plugins");return l};var f=n=>{const l=(0,s.useNotification)();return(0,p.useQuery)("list-enabled-plugins",()=>E(),{onSuccess(){n&&n()},onError(){l({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},h=()=>{const{formatMessage:n}=(0,r.useIntl)(),{notifyStatus:l}=(0,t.useNotifyAT)();(0,s.useFocusWhenNavigate)();const u=n({id:"global.plugins",defaultMessage:"Plugins"}),y=()=>{l(n({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:u}))},{status:g,data:c}=f(y);return g!=="success"&&g!=="error"?e.createElement(t.Layout,null,e.createElement(t.Main,{"aria-busy":!0},e.createElement(s.LoadingIndicatorPage,null))):e.createElement(t.Layout,null,e.createElement(t.Main,null,e.createElement(t.HeaderLayout,{title:u,subtitle:n({id:"app.components.ListPluginsPage.description",defaultMessage:"List of the installed plugins in the project."})}),e.createElement(t.ContentLayout,null,e.createElement(t.Table,{colCount:2,rowCount:c?.plugins?.length??0+1},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"description"}))))),e.createElement(t.Tbody,null,c.plugins.map(({name:i,displayName:T,description:v})=>e.createElement(t.Tr,{key:i},e.createElement(t.Td,null,e.createElement(t.Typography,{textColor:"neutral800",variant:"omega",fontWeight:"bold"},n({id:`global.plugins.${i}`,defaultMessage:T}))),e.createElement(t.Td,null,e.createElement(t.Typography,{textColor:"neutral800"},n({id:`global.plugins.${i}.description`,defaultMessage:v}))))))))))},P=()=>{const{formatMessage:n}=(0,r.useIntl)(),l=n({id:"global.plugins",defaultMessage:"Plugins"});return e.createElement(s.CheckPagePermissions,{permissions:m.Z.marketplace.main},e.createElement(d.Helmet,{title:l}),e.createElement(h,null))}}}]);
@@ -0,0 +1,15 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9497],{9972:function(H,w,n){n.r(w),n.d(w,{default:function(){return X}});var e=n(32735),l=n(83292),o=n(13478),T=n(5636),v=n(83281),C=n(23940),M=n.n(C),E=n(84968),S=n(88423),f=n.n(S),m=n(99357),t=n(39161),u=n(57269),Z=n(20139),U=n(8888),k=n(9086),N=n.n(k);const O=async()=>{const{get:d}=(0,o.getFetchClient)(),{data:g}=await d("/admin/users/me");return g.data},D=async d=>{const g=N()(d,["confirmPassword","currentTheme"]),{put:h}=(0,o.getFetchClient)(),{data:L}=await h("/admin/users/me",g);return{...L.data,currentTheme:d.currentTheme}};var z=n(5173),Q=n(1057),j=z.Ry().shape(Q.Rw),G=n(8997);const W=l.default.a`
2
+ color: ${({theme:d})=>d.colors.primary600};
3
+ `,P=(0,l.default)(t.TextInput)`
4
+ ::-ms-reveal {
5
+ display: none;
6
+ }
7
+ `,I=(0,l.default)(t.FieldAction)`
8
+ svg {
9
+ height: 1rem;
10
+ width: 1rem;
11
+ path {
12
+ fill: ${({theme:d})=>d.colors.neutral600};
13
+ }
14
+ }
15
+ `;var X=()=>{const[d,g]=(0,e.useState)(!1),[h,L]=(0,e.useState)(!1),[A,Y]=(0,e.useState)(!1),{changeLocale:$,localeNames:F}=(0,Z.Z)(),{setUserDisplayName:V}=(0,o.useAppInfos)(),J=(0,E.useQueryClient)(),{formatMessage:a}=(0,T.useIntl)(),{trackUsage:K}=(0,o.useTracking)(),b=(0,o.useNotification)(),{lockApp:q,unlockApp:_}=(0,o.useOverlayBlocker)(),{notifyStatus:ee}=(0,t.useNotifyAT)(),{currentTheme:te,themes:R,onChangeTheme:ae}=(0,U.M1)();(0,o.useFocusWhenNavigate)();const{status:re,data:y}=(0,E.useQuery)("user",()=>O(),{onSuccess(){ee(a({id:"Settings.profile.form.notify.data.loaded",defaultMessage:"Your profile data has been loaded"}))},onError(){b({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),ne=re!=="success",B=(0,E.useMutation)(r=>D(r),{async onSuccess(r){await J.invalidateQueries("user"),o.auth.setUserInfo(f()(r,["email","firstname","lastname","username","preferedLanguage"]));const i=r.username||(0,G.Pp)(r.firstname,r.lastname);V(i),$(r.preferedLanguage),ae(r.currentTheme),K("didChangeMode",{newMode:r.currentTheme}),b({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}})},onSettled(){_()},refetchActive:!0}),{isLoading:se}=B,oe=async(r,{setErrors:i})=>{q();const c=r.username||null;B.mutate({...r,username:c},{onError(x){const s=x?.response?.data;return s?.data?i(s.data):b({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},le=["currentTheme","email","firstname","lastname","username","preferedLanguage"],ie=f()({...y,currentTheme:te},le);if(ne)return e.createElement(t.Main,{"aria-busy":"true"},e.createElement(m.Helmet,{title:a({id:"Settings.profile.form.section.helmet.title",defaultMessage:"User profile"})}),e.createElement(t.HeaderLayout,{title:a({id:"Settings.profile.form.section.profile.page.title",defaultMessage:"Profile page"})}),e.createElement(t.ContentLayout,null,e.createElement(o.LoadingIndicatorPage,null)));const de=Object.keys(R).filter(r=>R[r]);return e.createElement(t.Main,{"aria-busy":se},e.createElement(m.Helmet,{title:a({id:"Settings.profile.form.section.helmet.title",defaultMessage:"User profile"})}),e.createElement(v.Formik,{onSubmit:oe,initialValues:ie,validateOnChange:!1,validationSchema:j,enableReinitialize:!0},({errors:r,values:i,handleChange:c,isSubmitting:x})=>e.createElement(o.Form,null,e.createElement(t.HeaderLayout,{title:y.username||(0,G.Pp)(y.firstname,y.lastname),primaryAction:e.createElement(t.Button,{startIcon:e.createElement(u.Check,null),loading:x,type:"submit"},a({id:"global.save",defaultMessage:"Save"}))}),e.createElement(t.Box,{paddingBottom:10},e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},a({id:"global.profile",defaultMessage:"Profile"})),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},error:r.firstname,onChange:c,value:i.firstname||"",type:"text",name:"firstname",required:!0})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},error:r.lastname,onChange:c,value:i.lastname||"",type:"text",name:"lastname"})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},error:r.email,onChange:c,value:i.email||"",type:"email",name:"email",required:!0})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.username.label",defaultMessage:"Username"},error:r.username,onChange:c,value:i.username||"",type:"text",name:"username"}))))),e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},a({id:"global.change-password",defaultMessage:"Change password"})),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(P,{error:r.currentPassword?a({id:r.currentPassword,defaultMessage:r.currentPassword}):"",onChange:c,value:i.currentPassword||"",label:a({id:"Auth.form.currentPassword.label",defaultMessage:"Current Password"}),name:"currentPassword",type:A?"text":"password",endAction:e.createElement(I,{onClick:s=>{s.stopPropagation(),Y(p=>!p)},label:a(A?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},A?e.createElement(u.Eye,null):e.createElement(u.EyeStriked,null))}))),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(P,{error:r.password?a({id:r.password,defaultMessage:r.password}):"",onChange:c,value:i.password||"",label:a({id:"global.password",defaultMessage:"Password"}),name:"password",type:d?"text":"password",autoComplete:"new-password",endAction:e.createElement(I,{onClick:s=>{s.stopPropagation(),g(p=>!p)},label:a(d?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},d?e.createElement(u.Eye,null):e.createElement(u.EyeStriked,null))})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(P,{error:r.confirmPassword?a({id:r.confirmPassword,defaultMessage:r.confirmPassword}):"",onChange:c,value:i.confirmPassword||"",label:a({id:"Auth.form.confirmPassword.label",defaultMessage:"Password confirmation"}),name:"confirmPassword",type:h?"text":"password",autoComplete:"new-password",endAction:e.createElement(I,{onClick:s=>{s.stopPropagation(),L(p=>!p)},label:a(h?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},h?e.createElement(u.Eye,null):e.createElement(u.EyeStriked,null))}))))),e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.Typography,{variant:"delta",as:"h2"},a({id:"Settings.profile.form.section.experience.title",defaultMessage:"Experience"})),e.createElement(t.Typography,null,a({id:"Settings.profile.form.section.experience.interfaceLanguageHelp",defaultMessage:"Preference changes will apply only to you. More information is available {here}."},{here:e.createElement(W,{target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales"},a({id:"Settings.profile.form.section.experience.here",defaultMessage:"here"}))}))),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(t.Select,{label:a({id:"Settings.profile.form.section.experience.interfaceLanguage",defaultMessage:"Interface language"}),placeholder:a({id:"global.select",defaultMessage:"Select"}),hint:a({id:"Settings.profile.form.section.experience.interfaceLanguage.hint",defaultMessage:"This will only display your own interface in the chosen language."}),onClear:()=>{c({target:{name:"preferedLanguage",value:null}})},clearLabel:a({id:"Settings.profile.form.section.experience.clear.select",defaultMessage:"Clear the interface language selected"}),value:i.preferedLanguage,onChange:s=>{c({target:{name:"preferedLanguage",value:s}})}},Object.keys(F).map(s=>{const p=F[s];return e.createElement(t.Option,{value:s,key:s},p)}))),e.createElement(t.GridItem,{s:12,col:6},e.createElement(t.Select,{label:a({id:"Settings.profile.form.section.experience.mode.label",defaultMessage:"Interface mode"}),placeholder:a({id:"components.Select.placeholder",defaultMessage:"Select"}),hint:a({id:"Settings.profile.form.section.experience.mode.hint",defaultMessage:"Displays your interface in the chosen mode."}),value:i.currentTheme,onChange:s=>{c({target:{name:"currentTheme",value:s}})}},de.map(s=>e.createElement(t.Option,{value:s,key:s},a({id:"Settings.profile.form.section.experience.mode.option-label",defaultMessage:"{name} mode"},{name:a({id:s,defaultMessage:M()(s)})}))))))))))))))}},1057:function(H,w,n){n.d(w,{YM:function(){return S},Rw:function(){return v}});var e=n(5173),l=n(13478);const o={firstname:e.Z_().trim().required(l.translatedErrors.required),lastname:e.Z_(),email:e.Z_().email(l.translatedErrors.email).lowercase().required(l.translatedErrors.required),username:e.Z_().nullable(),password:e.Z_().min(8,l.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number"),confirmPassword:e.Z_().min(8,l.translatedErrors.minLength).oneOf([e.iH("password"),null],"components.Input.error.password.noMatch").when("password",(f,m)=>f?m.required(l.translatedErrors.required):m)};var v={...o,currentPassword:e.Z_().when(["password","confirmPassword"],(f,m,t)=>f||m?t.required(l.translatedErrors.required):t),preferedLanguage:e.Z_().nullable()},M={roles:e.IX().min(1,l.translatedErrors.required).required(l.translatedErrors.required)},S=e.Ry().shape({...o,isActive:e.Xg(),...M})}}]);
@@ -0,0 +1,9 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{61056:function(R,S,t){"use strict";t.r(S),t.d(S,{SettingsPage:function(){return oe},default:function(){return Ze}});var e=t(32735),g=t(13478),f=t(5141),n=t(39161),E=t(5636),I=t(99357),z=t(8888),x=t(8997),P=t(84968),F=t(57269),G=t(72041),N=t(60216),i=t.n(N);const v=750,O=100,B=["image/jpeg","image/png","image/svg+xml"];var U=t(97889);const D={localImage:void 0};var j=(a=D,o)=>(0,U.default)(a,s=>{switch(o.type){case"SET_LOCAL_IMAGE":{s.localImage=o.value;break}default:return s}});const H=({onChangeLogo:a,customLogo:o,goTo:s,Component:l,modalTitle:d,next:u,prev:h,currentStep:m})=>{const[{localImage:c},r]=(0,e.useReducer)(j,D),{formatMessage:y}=(0,E.useIntl)(),p=M=>{r({type:"SET_LOCAL_IMAGE",value:M})},L=()=>{s(null)};return m?e.createElement(n.ModalLayout,{labelledBy:"modal",onClose:L},e.createElement(n.ModalHeader,null,e.createElement(n.Typography,{fontWeight:"bold",as:"h2",id:"modal"},y(d))),e.createElement(l,{setLocalImage:p,goTo:s,next:u,prev:h,onClose:L,asset:c||o,onChangeLogo:a})):null};H.defaultProps={Component:void 0,currentStep:void 0,customLogo:void 0,modalTitle:void 0,next:null,prev:null},H.propTypes={Component:i().elementType,currentStep:i().string,customLogo:i().shape({name:i().string,url:i().string,width:i().number,height:i().number,ext:i().string}),goTo:i().func.isRequired,modalTitle:i().shape({id:i().string,defaultMessage:i().string}),next:i().string,onChangeLogo:i().func.isRequired,prev:i().string};var ae=H;const Y={currentStep:void 0};var se=(a=Y,o)=>(0,U.default)(a,s=>{switch(o.type){case"GO_TO":{s.currentStep=o.to;break}default:return s}}),ie=t(83292);const le={id:"Settings.application.customization.modal.upload.error-format",defaultMessage:"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."},k={id:"Settings.application.customization.modal.upload.error-size",defaultMessage:"The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)"},re=a=>new Promise(o=>{const s=new FileReader;s.onload=()=>{const l=new Image;l.onload=function(){o({width:l.width,height:l.height})},l.src=s.result},s.readAsDataURL(a)}),de=(a,o)=>({ext:a.name.split(".").pop(),size:a.size/1e3,name:a.name,url:URL.createObjectURL(a),rawFile:a,width:o.width,height:o.height}),q=async a=>{let o;if(!B.includes(a.type))throw o=new Error("File format"),o.displayMessage=le,o;const l=await re(a);if(!(l.width<=v&&l.height<=v))throw o=new Error("File sizing"),o.displayMessage=k,o;const u=de(a,l);if(!(u.size<=O))throw o=new Error("File sizing"),o.displayMessage=k,o;return u},ce=(0,ie.default)(n.FieldInput)`
2
+ opacity: 0;
3
+ position: absolute;
4
+ top: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ right: 0;
8
+ z-index: 1;
9
+ `,K=({setLocalImage:a,goTo:o,next:s,onClose:l})=>{const{formatMessage:d}=(0,E.useIntl)(),[u,h]=(0,e.useState)(!1),[m,c]=(0,e.useState)(void 0),r=(0,e.useRef)(null),y=()=>h(!0),p=()=>h(!1),L=A=>{A.preventDefault(),r.current.click()},M=async()=>{p();const A=r.current.files[0];if(A)try{const C=await q(A);a(C),o(s)}catch(C){if(C.displayMessage)c(d(C.displayMessage,{size:O,dimension:v})),r.current.focus();else throw C}},T=()=>u?"primary500":m?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(n.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(n.Field,{name:"logo-upload",error:m},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(n.Flex,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:u?"primary100":"neutral100",borderColor:T(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:y,onDragLeave:p},e.createElement(n.Icon,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:F.PicturePlus,"aria-hidden":!0}),e.createElement(n.Box,{paddingTop:3,paddingBottom:5},e.createElement(n.Typography,{variant:"delta",as:"span"},d({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(ce,{accept:B,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:M,ref:r,id:"logo-upload"}),e.createElement(n.Button,{type:"button",onClick:L},d({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(n.Box,{paddingTop:6},e.createElement(n.Typography,{variant:"pi",textColor:"neutral600"},d({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:O,dimension:v})))),e.createElement(n.FieldError,null)))))),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:l,variant:"tertiary"},d({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};K.defaultProps={next:null},K.propTypes={goTo:i().func.isRequired,next:i().string,onClose:i().func.isRequired,setLocalImage:i().func.isRequired};var ue=K,me=t(84306),ge=async a=>{try{const o=await me.Z.get(a,{responseType:"blob",timeout:8e3});return new File([o.data],o.config.url,{type:o.headers["content-type"]})}catch(o){throw o.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},o}};const Z=({goTo:a,next:o,onClose:s,setLocalImage:l})=>{const{formatMessage:d}=(0,E.useIntl)(),[u,h]=(0,e.useState)(""),[m,c]=(0,e.useState)(null),r=p=>{h(p.target.value)},y=async()=>{try{const p=await ge(u),L=await q(p);l(L),a(o)}catch(p){if(p.displayMessage)c(d(p.displayMessage,{size:O,dimension:v}));else throw p}};return e.createElement("form",{onSubmit:p=>{p.preventDefault(),y()}},e.createElement(n.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(n.TextInput,{label:d({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:m,onChange:r,value:u,name:"logo-url"})),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:s,variant:"tertiary"},d({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(n.Button,{type:"submit"},d({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};Z.defaultProps={next:null},Z.propTypes={goTo:i().func.isRequired,next:i().string,onClose:i().func.isRequired,setLocalImage:i().func.isRequired};var pe=Z;const $=({setLocalImage:a,goTo:o,next:s,onClose:l})=>{const{formatMessage:d}=(0,E.useIntl)();return e.createElement(n.TabGroup,{label:d({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(n.Box,{paddingLeft:8,paddingRight:8},e.createElement(n.Tabs,null,e.createElement(n.Tab,null,d({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(n.Tab,null,d({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(n.Divider,null)),e.createElement(n.TabPanels,null,e.createElement(n.TabPanel,null,e.createElement(ue,{onClose:l,setLocalImage:a,goTo:o,next:s})),e.createElement(n.TabPanel,null,e.createElement(pe,{onClose:l,setLocalImage:a,goTo:o,next:s}))))};$.defaultProps={next:null},$.propTypes={goTo:i().func.isRequired,next:i().string,onClose:i().func.isRequired,setLocalImage:i().func.isRequired};var fe=$;const _=({asset:a})=>{const{formatMessage:o}=(0,E.useIntl)();return e.createElement(n.Card,null,e.createElement(n.CardHeader,null,e.createElement(n.CardAsset,{size:"S",src:a.url})),e.createElement(n.CardBody,null,e.createElement(n.CardContent,null,e.createElement(n.CardTitle,null,a.name),e.createElement(n.CardSubtitle,null,`${a.ext.toUpperCase()} - ${a.width}\u2715${a.height}`)),e.createElement(n.CardBadge,null,o({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};_.propTypes={asset:i().shape({name:i().string,url:i().string,width:i().number,height:i().number,ext:i().string}).isRequired};var he=_;const V=({onClose:a,asset:o,prev:s,next:l,goTo:d,setLocalImage:u,onChangeLogo:h})=>{const{formatMessage:m}=(0,E.useIntl)(),c=()=>{u(void 0),d(s)},r=()=>{h(o),d(l)};return e.createElement(e.Fragment,null,e.createElement(n.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(n.Flex,{justifyContent:"space-between",paddingBottom:6},e.createElement(n.Flex,{direction:"column",alignItems:"flex-start"},e.createElement(n.Typography,{variant:"pi",fontWeight:"bold"},m({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(n.Typography,{variant:"pi",textColor:"neutral500"},m({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(n.Button,{onClick:c,variant:"secondary"},m({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(n.Box,{maxWidth:(0,g.pxToRem)(180)},e.createElement(he,{asset:o}))),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:a,variant:"tertiary"},m({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(n.Button,{onClick:r},m({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};V.defaultProps={next:null,prev:null},V.propTypes={goTo:i().func.isRequired,asset:i().shape({name:i().string,url:i().string,width:i().number,height:i().number,ext:i().string}).isRequired,next:i().string,onClose:i().func.isRequired,onChangeLogo:i().func.isRequired,prev:i().string,setLocalImage:i().func.isRequired};var Ee=V,ye={upload:{Component:fe,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:Ee,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}};const Q=({canUpdate:a,customLogo:o,defaultLogo:s,hint:l,label:d,onChangeLogo:u,onResetLogo:h})=>{const[{currentStep:m},c]=(0,e.useReducer)(se,Y),{Component:r,next:y,prev:p,modalTitle:L}=ye[m]||{},{formatMessage:M}=(0,E.useIntl)(),T=A=>{c({type:"GO_TO",to:A})};return e.createElement(e.Fragment,null,e.createElement(n.CarouselInput,{label:d,selectedSlide:0,hint:l,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:o?.name||"logo.png",actions:e.createElement(n.CarouselActions,null,e.createElement(n.IconButton,{disabled:!a,onClick:()=>T(o?"pending":"upload"),label:M({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(F.Plus,null)}),o&&e.createElement(n.IconButton,{disabled:!a,onClick:h,label:M({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(F.Refresh,null)}))},e.createElement(n.CarouselSlide,{label:M({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(n.Box,{maxHeight:"40%",maxWidth:"40%",as:"img",src:o?.url||s,alt:M({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(ae,{Component:r,currentStep:m,onChangeLogo:u,customLogo:o,goTo:T,next:y,prev:p,modalTitle:L}))};Q.defaultProps={canUpdate:!1,customLogo:null,hint:null},Q.propTypes={canUpdate:i().bool,customLogo:i().shape({url:i().string,name:i().string}),label:i().string.isRequired,hint:i().string,defaultLogo:i().string.isRequired,onChangeLogo:i().func.isRequired,onResetLogo:i().func.isRequired};var ee=Q;const w={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var Me=(a=w,o)=>(0,U.default)(a,s=>{switch(o.type){case"SET_CUSTOM_MENU_LOGO":{s.menuLogo.display=o.value,s.menuLogo.submit.rawFile=o.value.rawFile;break}case"SET_CUSTOM_AUTH_LOGO":{s.authLogo.display=o.value,s.authLogo.submit.rawFile=o.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{s.menuLogo.display=null,s.menuLogo.submit={rawFile:null,isReset:!0};break}case"RESET_CUSTOM_AUTH_LOGO":{s.authLogo.display=null,s.authLogo.submit={rawFile:null,isReset:!0};break}default:return s}}),Se=t(86349),Le=t.n(Se),ve=(a,o)=>Le()(a,{menuLogo:{display:o.menuLogo},authLogo:{display:o.authLogo}});const J=(0,e.forwardRef)(({canUpdate:a,projectSettingsStored:o},s)=>{const{formatMessage:l}=(0,E.useIntl)(),{trackUsage:d}=(0,g.useTracking)(),{logos:{menu:u,auth:h}}=(0,z.um)(),[{menuLogo:m,authLogo:c},r]=(0,e.useReducer)(Me,w,()=>ve(w,o)),y=T=>{r({type:"SET_CUSTOM_MENU_LOGO",value:T})},p=()=>{d("didClickResetLogo",{logo:"menu"}),r({type:"RESET_CUSTOM_MENU_LOGO"})},L=T=>{r({type:"SET_CUSTOM_AUTH_LOGO",value:T})},M=()=>{d("didClickResetLogo",{logo:"auth"}),r({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(s,()=>({getValues:()=>({menuLogo:m.submit,authLogo:c.submit})})),e.createElement(n.Box,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(n.Typography,{variant:"delta",as:"h3"},l({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(n.Typography,{variant:"pi",textColor:"neutral600"},l({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:v,size:O})),e.createElement(n.Grid,{paddingTop:4,gap:4},e.createElement(n.GridItem,{col:6,s:12},e.createElement(ee,{canUpdate:a,customLogo:m.display,defaultLogo:u.default,hint:l({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:l({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:y,onResetLogo:p})),e.createElement(n.GridItem,{col:6,s:12},e.createElement(ee,{canUpdate:a,customLogo:c.display,defaultLogo:h.default,hint:l({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:l({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:L,onResetLogo:M}))))});J.defaultProps={canUpdate:!1,projectSettingsStored:null},J.propTypes={canUpdate:i().bool,projectSettingsStored:i().shape({menuLogo:i().shape({url:i().string,name:i().string})})};var Ce=J,Te=t(48344),xe=t.n(Te),te=a=>xe()(a,(o,s,l)=>{s&&s.url?o[l]={...s,url:(0,g.prefixFileUrlWithBackendUrl)(s.url)}:o[l]=s},{});const Re=async()=>{const{get:a}=(0,g.getFetchClient)(),{data:o}=await a("/admin/project-settings");return te(o)},Ie=async a=>{const{post:o}=(0,g.getFetchClient)(),{data:s}=await o("/admin/project-settings",a,{headers:{"Content-Type":"multipart/form-data"}});return te(s)};var Fe=a=>{const o=new FormData;return Object.entries(a).forEach(([s,l])=>{l&&l.rawFile instanceof File&&o.append(s,l.rawFile),l&&l.isReset&&o.append(s,null)}),o};const Ae=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var Oe=()=>{const a=(0,e.useRef)(),o=(0,g.useNotification)(),{trackUsage:s}=(0,g.useTracking)(),{formatMessage:l}=(0,E.useIntl)(),d=(0,P.useQueryClient)();(0,g.useFocusWhenNavigate)();const u=(0,g.useAppInfos)(),{latestStrapiReleaseTag:h,shouldUpdateStrapi:m,strapiVersion:c}=u,{updateProjectSettings:r}=(0,z.um)(),{allowedActions:{canRead:y,canUpdate:p}}=(0,g.useRBAC)(G.Z.settings["project-settings"]),L=y&&p,{data:M}=(0,P.useQuery)("project-settings",Re,{enabled:y}),T=(0,P.useMutation)(C=>Ie(C),{async onSuccess(C){let{menuLogo:b,authLogo:X}=C;await d.invalidateQueries("project-settings",{refetchActive:!0}),r({menuLogo:b?.url,authLogo:X?.url})}}),A=C=>{if(C.preventDefault(),!p)return;const b=a.current.getValues(),X=Fe(b);T.mutate(X,{onSuccess(){const{menuLogo:$e,authLogo:Ve}=b;$e.rawFile&&s("didChangeLogo",{logo:"menu"}),Ve.rawFile&&s("didChangeLogo",{logo:"auth"}),o({type:"success",message:l({id:"app",defaultMessage:"Saved"})})},onError(){o({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(n.Layout,null,e.createElement(g.SettingsPageTitle,{name:"Application"}),e.createElement(n.Main,null,e.createElement("form",{onSubmit:A},e.createElement(n.HeaderLayout,{title:l({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:l({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:L&&e.createElement(n.Button,{type:"submit",startIcon:e.createElement(F.Check,null)},l({id:"global.save",defaultMessage:"Save"}))}),e.createElement(n.ContentLayout,null,e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(n.Typography,{variant:"delta",as:"h3"},l({id:"global.details",defaultMessage:"Details"})),e.createElement(n.Grid,{gap:5,as:"dl"},e.createElement(n.GridItem,{col:6,s:12},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(n.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(n.Typography,null,"v",c),m&&e.createElement(n.Link,{href:`https://github.com/strapi/strapi/releases/tag/${h}`,isExternal:!0,endIcon:e.createElement(F.ExternalLink,null)},l({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(n.GridItem,{col:6,s:12},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(n.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(n.Typography,null,l({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:u.communityEdition})),e.createElement(n.Link,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(F.ExternalLink,null)},l({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(n.GridItem,{col:6,s:12},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(n.Typography,{as:"dd"},u.nodeVersion)),e.createElement(Ae,null))),y&&M&&e.createElement(Ce,{canUpdate:p,ref:a,projectSettingsStored:M}))))))},ze=t(3704),Ue=t.n(ze),De=a=>Ue()(a,s=>s.links).map(s=>(0,x.ot)(s.Component,s.to,s.exact||!1)),Pe=a=>a.filter(o=>!o.links.every(s=>s.isDisplayed===!1)),Be=[{async Component(){return await Promise.all([t.e(8469),t.e(3455)]).then(t.bind(t,67249))},to:"/settings/roles",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,92034))},to:"/settings/roles/duplicate/:id",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,92034))},to:"/settings/roles/new",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,33778))},to:"/settings/roles/:id",exact:!0},{async Component(){return await t.e(5199).then(t.bind(t,54865))},to:"/settings/users",exact:!0},{async Component(){return await t.e(4263).then(t.bind(t,34669))},to:"/settings/users/:id",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,33238))},to:"/settings/webhooks/create",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,59021))},to:"/settings/webhooks/:id",exact:!0},{async Component(){return await t.e(4121).then(t.bind(t,70791))},to:"/settings/webhooks",exact:!0},{async Component(){return await t.e(8056).then(t.bind(t,37168))},to:"/settings/api-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(5563),t.e(4299)]).then(t.bind(t,3330))},to:"/settings/api-tokens/create",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(5563),t.e(92)]).then(t.bind(t,97841))},to:"/settings/api-tokens/:id",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(4816)]).then(t.bind(t,76411))},to:"/settings/transfer-tokens/create",exact:!0},{async Component(){return await t.e(9600).then(t.bind(t,38286))},to:"/settings/transfer-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(2492)]).then(t.bind(t,32392))},to:"/settings/transfer-tokens/:id",exact:!0}],be=[...(()=>window&&window.strapi&&window.strapi.isEE?t(63775).Z:t(75936).Z)(),...Be],Ge=t(61590),Ne=t(43110),We=t(77013),je=t(79318),He=t(66618);const ne=({menu:a})=>{const{formatMessage:o}=(0,E.useIntl)(),{trackUsage:s}=(0,g.useTracking)(),{pathname:l}=(0,f.useLocation)(),u=Pe(a).map(c=>({...c,title:c.intlLabel,links:c.links.map(r=>({...r,title:r.intlLabel,name:r.id}))})),h=o({id:"global.settings",defaultMessage:"Settings"}),m=(c=null)=>{s("willNavigate",{from:l,to:c})};return e.createElement(Ge.m,{ariaLabel:h},e.createElement(Ne.p,{label:h}),e.createElement(We.Z,null,u.map(c=>e.createElement(je.D,{key:c.id,label:o(c.intlLabel)},c.links.map(r=>e.createElement(He.E,{as:f.NavLink,withBullet:r.hasNotification,to:r.to,onClick:()=>m(r.to),key:r.id},o(r.intlLabel)))))))};ne.propTypes={menu:i().array.isRequired};var Ke=ne;function oe(){const{settingId:a}=(0,f.useParams)(),{settings:o}=(0,g.useStrapiApp)(),{formatMessage:s}=(0,E.useIntl)(),{isLoading:l,menu:d}=(0,z.Te)(),u=(0,e.useMemo)(()=>(0,x.WW)(be.map(({to:c,Component:r,exact:y})=>(0,x.ot)(r,c,y))),[]),h=De(o);if(l)return e.createElement(g.LoadingIndicatorPage,null);if(!a)return e.createElement(f.Redirect,{to:"/settings/application-infos"});const m=s({id:"global.settings",defaultMessage:"Settings"});return e.createElement(n.Layout,{sideNav:e.createElement(Ke,{menu:d})},e.createElement(I.Helmet,{title:m}),e.createElement(f.Switch,null,e.createElement(f.Route,{path:"/settings/application-infos",component:Oe,exact:!0}),u,h))}var Ze=(0,e.memo)(oe)},17891:function(R,S){"use strict";const t=()=>null;S.Z=t},75936:function(R,S){"use strict";const t=[];S.Z=t},78999:function(R,S,t){"use strict";var e=t(32735),g=t(5636),f=t(39161),n=t.n(f),E=t(41502),I=t(57269),z=t.n(I),x=t(13478),P=t.n(x),F=t(58414);const G="https://cloud.strapi.io/profile/billing",N="https://strapi.io/billing/request-seats",i=()=>{const{formatMessage:v}=(0,g.useIntl)(),{license:O}=(0,F.q5)(),{licenseLimitStatus:B,enforcementUserCount:U,permittedSeats:D,isHostedOnStrapiCloud:W}=O?.data??{};return D?e.createElement(f.GridItem,{col:6,s:12},e.createElement(f.Typography,{variant:"sigma",textColor:"neutral600"},v({id:"Settings.application.admin-seats",defaultMessage:"Admin seats"})),e.createElement(f.Flex,{gap:2},e.createElement(f.Flex,null,e.createElement(f.Typography,{as:"p"},v({id:"Settings.application.ee.admin-seats.count",defaultMessage:"<text>{enforcementUserCount}</text>/{permittedSeats}"},{permittedSeats:D,enforcementUserCount:U,text:j=>e.createElement(f.Typography,{fontWeight:"semiBold",textColor:U>D?"danger500":null},j)}))),B==="OVER_LIMIT"&&e.createElement(f.Tooltip,{description:v({id:"Settings.application.ee.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"})},e.createElement(f.Icon,{width:`${(0,x.pxToRem)(14)}rem`,height:`${(0,x.pxToRem)(14)}rem`,color:"danger500",as:I.ExclamationMarkCircle}))),e.createElement(E.r,{href:W?G:N,isExternal:!0,endIcon:e.createElement(I.ExternalLink,null)},v({id:"Settings.application.ee.admin-seats.add-seats",defaultMessage:"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}"},{isHostedOnStrapiCloud:W}))):null};S.Z=i},63775:function(R,S,t){"use strict";const e=[];strapi.features.isEnabled(strapi.features.SSO)&&e.push({async Component(){return await t.e(302).then(t.bind(t,26930))},to:"/settings/single-sign-on",exact:!0}),strapi.features.isEnabled(strapi.features.AUDIT_LOGS)&&e.push({async Component(){return await t.e(2812).then(t.bind(t,71765))},to:"/settings/audit-logs",exact:!0}),S.Z=e},3704:function(R,S,t){var e=t(40314),g=t(37213);function f(n,E){return e(g(n,E),1)}R.exports=f},37213:function(R,S,t){var e=t(26460),g=t(88904),f=t(52920),n=t(77236);function E(I,z){var x=n(I)?e:f;return x(I,g(z,3))}R.exports=E}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9514],{1372:function(P,p,t){t.r(p),t.d(p,{default:function(){return H}});var e=t(32735),y=t(5636),T=t(89793),A=t.n(T),N=t(60216),r=t.n(N),n=t(39161),u=t(13478),m=t(57269),d=t(20069),E=t(68781);const C=({sort:s="",pageSize:o=10,onChange:i})=>{const{formatMessage:l}=(0,y.useIntl)();return e.createElement(n.Box,{background:"neutral0",hasRadius:!0,shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(n.Grid,{gap:4},e.createElement(n.GridItem,{s:12,col:6},e.createElement(n.Select,{label:l({id:(0,d.Z)("config.entries.title"),defaultMessage:"Entries per page"}),hint:l({id:(0,d.Z)("config.entries.note"),defaultMessage:"Number of assets displayed by default in the Media Library"}),onChange:a=>i({target:{name:"pageSize",value:a}}),name:"pageSize",value:o,"test-pageSize":o,"data-testid":"pageSize-select"},E.ay.map(a=>e.createElement(n.Option,{"data-testid":`pageSize-option-${a}`,key:a,value:a},a)))),e.createElement(n.GridItem,{s:12,col:6},e.createElement(n.Select,{label:l({id:(0,d.Z)("config.sort.title"),defaultMessage:"Default sort order"}),hint:l({id:(0,d.Z)("config.note"),defaultMessage:"Note: You can override this value in the media library."}),onChange:a=>i({target:{name:"sort",value:a}}),name:"sort",value:s,"test-sort":s,"data-testid":"sort-select"},E.Fo.map(a=>e.createElement(n.Option,{"data-testid":`sort-option-${a.value}`,key:a.key,value:a.value},l({id:(0,d.Z)(a.key),defaultMessage:`${a.value}`})))))))};C.propTypes={sort:r().string.isRequired,pageSize:r().number.isRequired,onChange:r().func.isRequired};var R=t(97889),I=t(3040),B=t.n(I),O=t(33795),z=t.n(O),f=t(74951);const D=`${f.Z}/ON_CHANGE`,S=`${f.Z}/SET_LOADED`,v={initialData:{},modifiedData:{}},M=s=>({...v,initialData:s,modifiedData:s});var $=(s=v,o)=>(0,R.default)(s,i=>{switch(o.type){case D:{B()(i,["modifiedData",...o.keys.split(".")],o.value);break}case S:{const l=M(z()(i,["modifiedData"],{}));i.initialData=l.initialData,i.modifiedData=l.modifiedData;break}default:return i}});const G=({name:s,value:o})=>({type:D,keys:s,value:o}),W=()=>({type:S});var F=t(68715);const L=({config:s})=>{const{trackUsage:o}=(0,u.useTracking)(),{formatMessage:i}=(0,y.useIntl)(),l=(0,u.useNotification)(),{mutateConfig:a}=(0,F.Z)(),{isLoading:b}=a,[k,U]=(0,e.useState)(!1),h=()=>U(g=>!g),[V,Z]=(0,e.useReducer)($,v,()=>M(s)),{initialData:x,modifiedData:c}=V,Y=g=>{g.preventDefault(),h()},j=async()=>{o("willEditMediaLibraryConfig"),await a.mutateAsync(c),h(),Z(W()),l({type:"success",message:{id:"notification.form.success.fields",defaultMessage:"Changes saved"}})},J=({target:{name:g,value:K}})=>{Z(G({name:g,value:K}))};return(0,u.useFocusWhenNavigate)(),e.createElement(n.Layout,null,e.createElement(n.Main,{"aria-busy":b},e.createElement("form",{onSubmit:Y},e.createElement(n.HeaderLayout,{navigationAction:e.createElement(u.Link,{startIcon:e.createElement(m.ArrowLeft,null),to:`/plugins/${f.Z}`,id:"go-back"},i({id:(0,d.Z)("config.back"),defaultMessage:"Back"})),primaryAction:e.createElement(n.Button,{size:"S",startIcon:e.createElement(m.Check,null),disabled:A()(c,x),type:"submit"},i({id:"global.save",defaultMessage:"Save"})),subtitle:i({id:(0,d.Z)("config.subtitle"),defaultMessage:"Define the view settings of the media library."}),title:i({id:(0,d.Z)("config.title"),defaultMessage:"Configure the view - Media Library"})}),e.createElement(n.ContentLayout,null,e.createElement(C,{"data-testid":"settings",pageSize:c.pageSize||"",sort:c.sort||"",onChange:J})),e.createElement(u.ConfirmDialog,{bodyText:{id:(0,d.Z)("config.popUpWarning.warning.updateAllSettings"),defaultMessage:"This will modify all your settings"},iconRightButton:e.createElement(m.Check,null),isConfirmButtonLoading:b,isOpen:k,onToggleDialog:h,onConfirm:j,variantRightButton:"success-light"}))))};L.propTypes={config:r().shape({pageSize:r().number,sort:r().string}).isRequired};var H=L}}]);