@strapi/admin 4.6.0 → 4.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/.browserslistrc +2 -1
  2. package/admin/src/StrapiApp.js +1 -1
  3. package/admin/src/assets/images/onboarding-preview.png +0 -0
  4. package/admin/src/components/AuthenticatedApp/utils/api.js +5 -4
  5. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +3 -7
  6. package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +1 -2
  7. package/admin/src/components/GuidedTour/Homepage/components/Step.js +1 -3
  8. package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +1 -1
  9. package/admin/src/components/GuidedTour/Homepage/index.js +2 -6
  10. package/admin/src/components/GuidedTour/Modal/components/Content.js +1 -3
  11. package/admin/src/components/GuidedTour/Modal/components/Modal.js +2 -8
  12. package/admin/src/components/GuidedTour/Modal/components/StepNumberWithPadding.js +1 -1
  13. package/admin/src/components/GuidedTour/Modal/components/Stepper.js +2 -5
  14. package/admin/src/components/GuidedTour/Stepper/StepLine.js +1 -1
  15. package/admin/src/components/GuidedTour/Stepper/StepNumber.js +2 -4
  16. package/admin/src/components/LeftMenu/index.js +12 -11
  17. package/admin/src/components/Notifications/Notification/index.js +2 -2
  18. package/admin/src/components/Notifications/index.js +1 -1
  19. package/admin/src/components/Theme/index.js +1 -1
  20. package/admin/src/components/UpgradePlanModal/index.js +3 -10
  21. package/admin/src/content-manager/components/AttributeFilter/Filters.js +2 -3
  22. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +24 -30
  23. package/admin/src/content-manager/components/ComponentInitializer/index.js +2 -5
  24. package/admin/src/content-manager/components/DynamicTable/CellContent/Media/FileWrapper.js +1 -2
  25. package/admin/src/content-manager/components/DynamicTable/CellContent/Media/index.js +3 -3
  26. package/admin/src/content-manager/components/DynamicTable/CellContent/MultipleMedias.js +1 -1
  27. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationMultiple/index.js +19 -16
  28. package/admin/src/content-manager/components/DynamicTable/CellContent/RelationSingle/index.js +1 -1
  29. package/admin/src/content-manager/components/DynamicTable/CellContent/RepeatableComponent/index.js +1 -4
  30. package/admin/src/content-manager/components/DynamicTable/CellContent/SingleComponent/index.js +1 -2
  31. package/admin/src/content-manager/components/DynamicTable/CellContent/index.js +1 -2
  32. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +10 -7
  33. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +10 -7
  34. package/admin/src/content-manager/components/DynamicTable/TableRows/index.js +3 -9
  35. package/admin/src/content-manager/components/DynamicTable/index.js +1 -2
  36. package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton.js +2 -5
  37. package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +1 -3
  38. package/admin/src/content-manager/components/DynamicZone/components/ComponentCategory.js +1 -2
  39. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker.js +1 -4
  40. package/admin/src/content-manager/components/DynamicZone/components/DynamicZoneLabel.js +1 -3
  41. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +39 -9
  42. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +9 -15
  43. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findLeafByPathAndReplace.js +1 -3
  44. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +6 -5
  45. package/admin/src/content-manager/components/FieldComponent/Label.js +1 -3
  46. package/admin/src/content-manager/components/FieldComponent/index.js +2 -5
  47. package/admin/src/content-manager/components/FieldTypeIcon/index.js +15 -13
  48. package/admin/src/content-manager/components/Hint/index.js +1 -1
  49. package/admin/src/content-manager/components/InjectionZoneList/index.js +1 -1
  50. package/admin/src/content-manager/components/InputUID/endActionStyle.js +1 -3
  51. package/admin/src/content-manager/components/InputUID/index.js +6 -10
  52. package/admin/src/content-manager/components/Inputs/index.js +0 -2
  53. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +1 -3
  54. package/admin/src/content-manager/components/RelationInput/RelationInput.js +16 -12
  55. package/admin/src/content-manager/components/RelationInput/components/Option.js +1 -2
  56. package/admin/src/content-manager/components/RelationInput/components/Relation.js +1 -2
  57. package/admin/src/content-manager/components/RelationInput/components/RelationList.js +1 -1
  58. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +39 -26
  59. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
  60. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +24 -18
  61. package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +1 -2
  62. package/admin/src/content-manager/components/Wysiwyg/index.js +1 -3
  63. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +4 -3
  64. package/admin/src/content-manager/hooks/useLazyComponents/index.js +9 -13
  65. package/admin/src/content-manager/hooks/useRelation/useRelation.js +4 -4
  66. package/admin/src/content-manager/pages/App/LeftMenu/index.js +1 -1
  67. package/admin/src/content-manager/pages/App/index.js +1 -2
  68. package/admin/src/content-manager/pages/App/useModels.js +9 -4
  69. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +9 -8
  70. package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +3 -2
  71. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/components/ErrorFallback.js +1 -1
  72. package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +4 -4
  73. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +2 -5
  74. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +2 -4
  75. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +2 -7
  76. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +2 -6
  77. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +5 -5
  78. package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +1 -3
  79. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -1
  80. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +1 -2
  81. package/admin/src/content-manager/pages/EditSettingsView/components/RowsLayout.js +1 -1
  82. package/admin/src/content-manager/pages/EditSettingsView/index.js +15 -11
  83. package/admin/src/content-manager/pages/EditSettingsView/utils/api.js +4 -2
  84. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +8 -10
  85. package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +3 -5
  86. package/admin/src/content-manager/pages/EditView/GridRow/index.js +1 -1
  87. package/admin/src/content-manager/pages/EditView/Header/index.js +12 -10
  88. package/admin/src/content-manager/pages/EditView/index.js +2 -7
  89. package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +2 -6
  90. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +2 -7
  91. package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +8 -7
  92. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +10 -6
  93. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +10 -7
  94. package/admin/src/content-manager/pages/ListSettingsView/index.js +10 -7
  95. package/admin/src/content-manager/pages/ListSettingsView/utils/api.js +4 -2
  96. package/admin/src/content-manager/pages/ListView/FieldPicker/index.js +1 -2
  97. package/admin/src/content-manager/pages/ListView/PaginationFooter/index.js +1 -2
  98. package/admin/src/content-manager/pages/ListView/index.js +25 -28
  99. package/admin/src/content-manager/pages/NoContentType/index.js +2 -5
  100. package/admin/src/content-manager/pages/NoPermissions/index.js +1 -2
  101. package/admin/src/core/utils/index.js +0 -1
  102. package/admin/src/hooks/useFetchEnabledPlugins/utils/api.js +3 -2
  103. package/admin/src/hooks/useInjectReducer/index.js +1 -0
  104. package/admin/src/hooks/useInjectReducer/useInjectReducer.js +19 -0
  105. package/admin/src/hooks/useMenu/reducer.js +1 -3
  106. package/admin/src/hooks/useRegenerate/index.js +3 -3
  107. package/admin/src/hooks/useRolesList/index.js +5 -3
  108. package/admin/src/index.js +4 -3
  109. package/admin/src/layouts/AppLayout/index.js +1 -3
  110. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +1 -1
  111. package/admin/src/layouts/UnauthenticatedLayout/index.js +1 -2
  112. package/admin/src/pages/Admin/Onboarding/constants.js +46 -0
  113. package/admin/src/pages/Admin/Onboarding/index.js +172 -87
  114. package/admin/src/pages/Admin/index.js +5 -2
  115. package/admin/src/pages/App/index.js +1 -1
  116. package/admin/src/pages/AuthPage/components/FieldActionWrapper/index.js +1 -1
  117. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -7
  118. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -4
  119. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +11 -10
  120. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -4
  121. package/admin/src/pages/AuthPage/components/Register/index.js +13 -11
  122. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +2 -9
  123. package/admin/src/pages/HomePage/ContentBlocks.js +2 -5
  124. package/admin/src/pages/HomePage/HomeHeader.js +3 -6
  125. package/admin/src/pages/HomePage/SocialLinks.js +33 -30
  126. package/admin/src/pages/HomePage/index.js +1 -4
  127. package/admin/src/pages/InstalledPluginsPage/Plugins.js +14 -5
  128. package/admin/src/pages/InternalErrorPage/index.js +2 -5
  129. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/EmptyNpmPackageGrid.js +1 -2
  130. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +2 -5
  131. package/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js +2 -3
  132. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js +2 -4
  133. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +2 -4
  134. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +2 -7
  135. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +3 -9
  136. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FilterSelect.js +1 -1
  137. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +1 -4
  138. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +2 -5
  139. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
  140. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +3 -3
  141. package/admin/src/pages/MarketplacePage/components/SortSelect/index.js +1 -2
  142. package/admin/src/pages/MarketplacePage/index.js +15 -8
  143. package/admin/src/pages/NotFoundPage/index.js +2 -5
  144. package/admin/src/pages/ProfilePage/index.js +17 -14
  145. package/admin/src/pages/ProfilePage/utils/api.js +5 -3
  146. package/admin/src/pages/SettingsPage/{pages/Users/ListPage → components}/Filters/index.js +2 -3
  147. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +16 -3
  148. package/admin/src/pages/SettingsPage/index.js +1 -1
  149. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +1 -3
  150. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +1 -3
  151. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js +1 -1
  152. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +13 -8
  153. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js +1 -1
  154. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContentBox/index.js +2 -3
  155. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +11 -7
  156. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +1 -2
  157. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormHead/index.js +2 -5
  158. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +2 -4
  159. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +1 -3
  160. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +2 -2
  161. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +7 -6
  162. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +2 -3
  163. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/ReadButton/index.js +1 -1
  164. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/UpdateButton/index.js +1 -1
  165. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +1 -3
  166. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +6 -7
  167. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +1 -3
  168. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +8 -5
  169. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +1 -3
  170. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +13 -9
  171. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +1 -4
  172. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +1 -1
  173. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +1 -5
  174. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +1 -2
  175. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +56 -70
  176. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +5 -3
  177. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/CollapseLabel/index.js +1 -1
  178. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +2 -2
  179. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +1 -4
  180. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +5 -4
  181. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +2 -5
  182. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +1 -2
  183. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/CarretIcon/index.js +1 -1
  184. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +1 -2
  185. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +1 -4
  186. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/index.js +1 -1
  187. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +1 -1
  188. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypes/index.js +1 -1
  189. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +1 -1
  190. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -4
  191. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +1 -1
  192. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +12 -16
  193. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +1 -2
  194. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +1 -5
  195. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +1 -1
  196. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +11 -8
  197. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +1 -4
  198. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +2 -6
  199. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +1 -5
  200. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +16 -10
  201. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +12 -9
  202. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +6 -3
  203. package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +11 -8
  204. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +18 -10
  205. package/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js +1 -2
  206. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +10 -6
  207. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/api.js +6 -3
  208. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +1 -2
  209. package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js +3 -20
  210. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +5 -4
  211. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/EventRow.js +1 -2
  212. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +1 -3
  213. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +1 -1
  214. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +11 -8
  215. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +2 -8
  216. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +11 -9
  217. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +4 -3
  218. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +26 -18
  219. package/admin/src/pages/UseCasePage/index.js +12 -9
  220. package/admin/src/permissions/defaultPermissions.js +2 -15
  221. package/admin/src/translations/ar.json +4 -4
  222. package/admin/src/translations/ca.json +4 -4
  223. package/admin/src/translations/cs.json +4 -4
  224. package/admin/src/translations/de.json +4 -4
  225. package/admin/src/translations/dk.json +4 -4
  226. package/admin/src/translations/en.json +17 -10
  227. package/admin/src/translations/es.json +4 -4
  228. package/admin/src/translations/eu.json +796 -0
  229. package/admin/src/translations/fr.json +4 -4
  230. package/admin/src/translations/gu.json +4 -4
  231. package/admin/src/translations/he.json +4 -4
  232. package/admin/src/translations/hi.json +4 -4
  233. package/admin/src/translations/hu.json +4 -4
  234. package/admin/src/translations/id.json +4 -4
  235. package/admin/src/translations/it.json +4 -4
  236. package/admin/src/translations/ja.json +4 -4
  237. package/admin/src/translations/ko.json +4 -4
  238. package/admin/src/translations/languageNativeNames.js +1 -0
  239. package/admin/src/translations/ml.json +4 -4
  240. package/admin/src/translations/ms.json +4 -4
  241. package/admin/src/translations/nl.json +4 -4
  242. package/admin/src/translations/no.json +4 -4
  243. package/admin/src/translations/pl.json +4 -4
  244. package/admin/src/translations/pt-BR.json +4 -4
  245. package/admin/src/translations/pt.json +4 -4
  246. package/admin/src/translations/ru.json +785 -789
  247. package/admin/src/translations/sa.json +4 -4
  248. package/admin/src/translations/sk.json +4 -4
  249. package/admin/src/translations/sv.json +4 -4
  250. package/admin/src/translations/th.json +4 -4
  251. package/admin/src/translations/tr.json +4 -4
  252. package/admin/src/translations/uk.json +4 -4
  253. package/admin/src/translations/vi.json +4 -4
  254. package/admin/src/translations/zh-Hans.json +4 -4
  255. package/admin/src/translations/zh.json +4 -4
  256. package/build/1341.5d48c79b.chunk.js +1 -0
  257. package/build/19eb2dfcf2603eb55733.png +0 -0
  258. package/build/2637.679b590b.chunk.js +1 -0
  259. package/build/4318.9b1ac9bc.chunk.js +30 -0
  260. package/build/4849.7abafe52.chunk.js +98 -0
  261. package/build/6487.83e219bf.chunk.js +14 -0
  262. package/build/{5015.8e3fe50b.chunk.js → 8469.853c822b.chunk.js} +1 -6
  263. package/build/9816.01ee964f.chunk.js +2 -0
  264. package/build/Admin-authenticatedApp.dd16edad.chunk.js +79 -0
  265. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +1 -0
  266. package/build/Admin_homePage.4b878f04.chunk.js +72 -0
  267. package/build/Admin_marketplace.a8ea585f.chunk.js +22 -0
  268. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +1 -0
  269. package/build/Admin_profilePage.b27e40f6.chunk.js +15 -0
  270. package/build/Admin_settingsPage.3cd54156.chunk.js +178 -0
  271. package/build/Upload_ConfigureTheView.34dde278.chunk.js +1 -0
  272. package/build/admin-app.3a084127.chunk.js +112 -0
  273. package/build/admin-edit-roles-page.fd041d89.chunk.js +1 -0
  274. package/build/admin-edit-users.08a60ea2.chunk.js +10 -0
  275. package/build/admin-users.74f5629d.chunk.js +11 -0
  276. package/build/{api-tokens-create-page.0e686c30.chunk.js → api-tokens-create-page.a31c7fba.chunk.js} +1 -1
  277. package/build/{api-tokens-edit-page.d6c7487b.chunk.js → api-tokens-edit-page.64fef287.chunk.js} +1 -1
  278. package/build/api-tokens-list-page.370459ba.chunk.js +16 -0
  279. package/build/ar-json.39e54aba.chunk.js +1 -0
  280. package/build/audit-logs-settings-page.bc1784fe.chunk.js +1 -0
  281. package/build/{ca-json.f6a0f472.chunk.js → ca-json.4d999055.chunk.js} +1 -1
  282. package/build/content-manager.d04b738f.chunk.js +1139 -0
  283. package/build/content-type-builder-list-view.c2f917b6.chunk.js +191 -0
  284. package/build/content-type-builder.b7fb1e65.chunk.js +126 -0
  285. package/build/cs-json.4b44411c.chunk.js +1 -0
  286. package/build/{de-json.30e1f35b.chunk.js → de-json.866f8a28.chunk.js} +1 -1
  287. package/build/{dk-json.e6d9ffa4.chunk.js → dk-json.10f7b1d1.chunk.js} +1 -1
  288. package/build/email-settings-page.884cfb8b.chunk.js +3 -0
  289. package/build/en-json.9cada7f3.chunk.js +1 -0
  290. package/build/es-json.ea15c957.chunk.js +1 -0
  291. package/build/eu-json.3bc24d60.chunk.js +1 -0
  292. package/build/{fr-json.78545ef8.chunk.js → fr-json.e88fbdfd.chunk.js} +1 -1
  293. package/build/{gu-json.676518f2.chunk.js → gu-json.94f0d242.chunk.js} +1 -1
  294. package/build/{he-json.ad22e8cc.chunk.js → he-json.f0de8cdb.chunk.js} +1 -1
  295. package/build/{hi-json.19b51c09.chunk.js → hi-json.df3a7be2.chunk.js} +1 -1
  296. package/build/{hu-json.f947088f.chunk.js → hu-json.680e6eef.chunk.js} +1 -1
  297. package/build/i18n-settings-page.c7bc29fc.chunk.js +1 -0
  298. package/build/{id-json.504daa84.chunk.js → id-json.e0d83d41.chunk.js} +1 -1
  299. package/build/index.html +1 -1
  300. package/build/{it-json.2fd90f4d.chunk.js → it-json.8be59205.chunk.js} +1 -1
  301. package/build/{ja-json.c9f12d0b.chunk.js → ja-json.97ee41ba.chunk.js} +1 -1
  302. package/build/{ko-json.ef463065.chunk.js → ko-json.4cbbf4f2.chunk.js} +1 -1
  303. package/build/main.9c01de7f.js +3929 -0
  304. package/build/{ml-json.490f666c.chunk.js → ml-json.e3747091.chunk.js} +1 -1
  305. package/build/ms-json.0eddffd9.chunk.js +1 -0
  306. package/build/{nl-json.c416295a.chunk.js → nl-json.371a15ee.chunk.js} +1 -1
  307. package/build/{no-json.1a2258ba.chunk.js → no-json.9b3cd181.chunk.js} +1 -1
  308. package/build/{pl-json.8cf0c871.chunk.js → pl-json.e535cbce.chunk.js} +1 -1
  309. package/build/{pt-BR-json.51fab8d0.chunk.js → pt-BR-json.e5fafa46.chunk.js} +1 -1
  310. package/build/pt-json.ee554a41.chunk.js +1 -0
  311. package/build/ru-json.866f0ff1.chunk.js +1 -0
  312. package/build/runtime~main.bb1389c9.js +2 -0
  313. package/build/{sa-json.f3fa5407.chunk.js → sa-json.7efeb257.chunk.js} +1 -1
  314. package/build/{sk-json.9ec60d9f.chunk.js → sk-json.7bbeb0af.chunk.js} +1 -1
  315. package/build/sso-settings-page.82d84043.chunk.js +1 -0
  316. package/build/{sv-json.c6b0c237.chunk.js → sv-json.dc40951f.chunk.js} +1 -1
  317. package/build/{th-json.6e68155c.chunk.js → th-json.f664b96d.chunk.js} +1 -1
  318. package/build/{tr-json.9f41dc08.chunk.js → tr-json.b79eae31.chunk.js} +1 -1
  319. package/build/uk-json.b7e38370.chunk.js +1 -0
  320. package/build/upload-settings.c18b010f.chunk.js +1 -0
  321. package/build/upload.0876ab69.chunk.js +13 -0
  322. package/build/users-advanced-settings-page.677e1973.chunk.js +1 -0
  323. package/build/users-email-settings-page.a3c80419.chunk.js +1 -0
  324. package/build/users-providers-settings-page.87a9c77d.chunk.js +1 -0
  325. package/build/users-roles-settings-page.79c19845.chunk.js +30 -0
  326. package/build/vi-json.ee4c5537.chunk.js +1 -0
  327. package/build/webhook-edit-page.cfbdd3fd.chunk.js +23 -0
  328. package/build/webhook-list-page.3daa4fe2.chunk.js +1 -0
  329. package/build/{zh-Hans-json.9c0eac99.chunk.js → zh-Hans-json.30a18940.chunk.js} +1 -1
  330. package/build/{zh-json.f88f563d.chunk.js → zh-json.49d84433.chunk.js} +1 -1
  331. package/ee/admin/pages/AuthPage/components/Login/index.js +1 -5
  332. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -4
  333. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -8
  334. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js +41 -0
  335. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js +2 -9
  336. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js +1 -2
  337. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js +1 -2
  338. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js +1 -2
  339. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js +3 -6
  340. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +47 -0
  341. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/index.js +30 -31
  342. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js +7 -9
  343. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +88 -0
  344. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +15 -11
  345. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +20 -12
  346. package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +15 -9
  347. package/ee/admin/permissions/customPermissions.js +4 -0
  348. package/ee/server/migrations/audit-logs-table.js +45 -0
  349. package/ee/server/register.js +2 -0
  350. package/ee/server/services/audit-logs.js +11 -1
  351. package/package.json +31 -31
  352. package/server/config/admin-actions.js +0 -16
  353. package/server/controllers/admin.js +16 -55
  354. package/server/routes/admin.js +0 -28
  355. package/webpack.alias.js +0 -1
  356. package/webpack.config.js +0 -3
  357. package/admin/src/content-manager/components/InputJSON/FieldWrapper.js +0 -40
  358. package/admin/src/content-manager/components/InputJSON/Label.js +0 -35
  359. package/admin/src/content-manager/components/InputJSON/components.js +0 -36
  360. package/admin/src/content-manager/components/InputJSON/index.js +0 -223
  361. package/admin/src/content-manager/components/InputJSON/jsonlint.js +0 -680
  362. package/admin/src/core/utils/axiosInstance.js +0 -40
  363. package/build/2607.ce06608e.chunk.js +0 -66
  364. package/build/2743.dea372fb.chunk.js +0 -42
  365. package/build/3075.03ebe93d.chunk.js +0 -115
  366. package/build/3632.963ac97d.chunk.js +0 -138
  367. package/build/4318.8cb388a5.chunk.js +0 -30
  368. package/build/4656.a0d43cca.chunk.js +0 -159
  369. package/build/5910.a5374848.chunk.js +0 -209
  370. package/build/8633.4af74a50.chunk.js +0 -1
  371. package/build/9641.a311b612.chunk.js +0 -276
  372. package/build/9707.62831b4d.chunk.js +0 -101
  373. package/build/Admin-authenticatedApp.50dc27f9.chunk.js +0 -75
  374. package/build/Admin_InternalErrorPage.157152a8.chunk.js +0 -1
  375. package/build/Admin_homePage.79ab880c.chunk.js +0 -77
  376. package/build/Admin_marketplace.eabf21b2.chunk.js +0 -26
  377. package/build/Admin_pluginsPage.953e796b.chunk.js +0 -6
  378. package/build/Admin_profilePage.5c2efda5.chunk.js +0 -15
  379. package/build/Admin_settingsPage.19cfb9ca.chunk.js +0 -178
  380. package/build/Upload_ConfigureTheView.3f2b6e6a.chunk.js +0 -1
  381. package/build/admin-app.34295b50.chunk.js +0 -112
  382. package/build/admin-edit-roles-page.d50d9654.chunk.js +0 -1
  383. package/build/admin-edit-users.912b856d.chunk.js +0 -10
  384. package/build/admin-users.e36e7111.chunk.js +0 -11
  385. package/build/api-tokens-list-page.1cd86136.chunk.js +0 -16
  386. package/build/ar-json.932794f7.chunk.js +0 -1
  387. package/build/audit-logs-settings-page.308a6250.chunk.js +0 -1
  388. package/build/codemirror-addon-closebrackets.71aa4bbd.chunk.js +0 -2
  389. package/build/codemirror-addon-lint-js.405f70fb.chunk.js +0 -1
  390. package/build/codemirror-addon-lint.8487ad3d.chunk.js +0 -1
  391. package/build/codemirror-addon-mark-selection.1928c849.chunk.js +0 -1
  392. package/build/codemirror-css.359a2a4b.chunk.js +0 -345
  393. package/build/codemirror-javacript.af237b68.chunk.js +0 -1
  394. package/build/codemirror-theme.2fe63a16.chunk.js +0 -33
  395. package/build/content-manager.851f40ce.chunk.js +0 -1170
  396. package/build/content-type-builder-list-view.4243b2b1.chunk.js +0 -198
  397. package/build/content-type-builder.365b6bf4.chunk.js +0 -125
  398. package/build/cs-json.79879fb6.chunk.js +0 -1
  399. package/build/email-settings-page.379552b1.chunk.js +0 -15
  400. package/build/en-json.38d182e5.chunk.js +0 -1
  401. package/build/es-json.e275481d.chunk.js +0 -1
  402. package/build/i18n-settings-page.3ab28b1a.chunk.js +0 -65
  403. package/build/main.9f31732e.js +0 -4454
  404. package/build/ms-json.db87d8d3.chunk.js +0 -1
  405. package/build/pt-json.62927d1e.chunk.js +0 -1
  406. package/build/ru-json.3b411a39.chunk.js +0 -1
  407. package/build/runtime~main.2b8e2318.js +0 -2
  408. package/build/sso-settings-page.b64a44e8.chunk.js +0 -41
  409. package/build/uk-json.b2fcd567.chunk.js +0 -1
  410. package/build/upload-settings.6c26ff37.chunk.js +0 -89
  411. package/build/upload.2c69d238.chunk.js +0 -38
  412. package/build/users-advanced-settings-page.c4270682.chunk.js +0 -13
  413. package/build/users-email-settings-page.60422a2f.chunk.js +0 -28
  414. package/build/users-providers-settings-page.e1834060.chunk.js +0 -104
  415. package/build/users-roles-settings-page.3ef35132.chunk.js +0 -30
  416. package/build/vi-json.f08d7d03.chunk.js +0 -1
  417. package/build/webhook-edit-page.c0080dc1.chunk.js +0 -75
  418. package/build/webhook-list-page.f75ba3f2.chunk.js +0 -42
@@ -1,30 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{77495:function(te,I,a){a.r(I),a.d(I,{default:function(){return Tt}});var e=a(32735),h=a(5141),d=a(88425),f=a(90201),P=a(88369),T=a(41415),X=a(96709),j=a(28356),N=a(99223),U=a(17e3),k=a(27649),K=a(94745),w=a(76330),B=a(29005),A=a(66735),Re=a(3685),y=a(49372),Ce=a(94638),Pe=a(19406),Z=a(5636),Y=a(84968),Te=a(58469),O=a(59677);const Ae=async(t,n)=>{try{const{data:s}=await O.be.get((0,O.Gc)("roles"));return n("The roles have loaded successfully"),s}catch{throw t({type:"warning",message:{id:"notification.error"}}),new Error("error")}},De=async(t,n)=>{try{await O.be.delete(`${(0,O.Gc)("roles")}/${t}`)}catch{n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}};var be=a(60216),v=a.n(be),se=a(50563),J=a(87933),Le=a(3594),Se=a(68625),Me=a(4038);const q=({sortedRoles:t,canDelete:n,permissions:s,setRoleToDelete:r,onDelete:u})=>{const{formatMessage:o}=(0,Z.useIntl)(),{push:i}=(0,h.useHistory)(),[c,m]=u,g=l=>n&&!["public","authenticated"].includes(l.type),p=l=>{r(l),m(!c)},E=l=>{i(`/settings/${f.Z}/roles/${l}`)};return e.createElement(Le.p,null,t?.map(l=>e.createElement(B.Tr,{key:l.name,...(0,d.onRowClick)({fn:()=>E(l.id)})},e.createElement(A.Td,{width:"20%"},e.createElement(y.Z,null,l.name)),e.createElement(A.Td,{width:"50%"},e.createElement(y.Z,null,l.description)),e.createElement(A.Td,{width:"30%"},e.createElement(y.Z,null,`${l.nb_users} ${o({id:"global.users",defaultMessage:"users"}).toLowerCase()}`)),e.createElement(A.Td,null,e.createElement(J.k,{justifyContent:"end",...d.stopPropagation},e.createElement(d.CheckPermissions,{permissions:s.updateRole},e.createElement(se.h,{onClick:()=>E(l.id),noBorder:!0,icon:e.createElement(Se.Z,null),label:o({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${l.name}`})})),g(l)&&e.createElement(d.CheckPermissions,{permissions:s.deleteRole},e.createElement(se.h,{onClick:()=>p(l.id),noBorder:!0,icon:e.createElement(Me.default,null),label:o({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${l.name}`})})))))))};var Ze=q;q.defaultProps={canDelete:!1},q.propTypes={onDelete:v().array.isRequired,permissions:v().object.isRequired,setRoleToDelete:v().func.isRequired,sortedRoles:v().array.isRequired,canDelete:v().bool};var Oe=()=>{const{trackUsage:t}=(0,d.useTracking)(),{formatMessage:n}=(0,Z.useIntl)(),{push:s}=(0,h.useHistory)(),r=(0,d.useNotification)(),{notifyStatus:u}=(0,Ce.G)(),[{query:o}]=(0,d.useQueryParams)(),i=o?._q||"",[c,m]=(0,e.useState)(!1),[g,p]=(0,e.useState)(!1),[E,l]=(0,e.useState)();(0,d.useFocusWhenNavigate)();const C=(0,Y.useQueryClient)(),R=(0,e.useMemo)(()=>({create:P.Z.createRole,read:P.Z.readRoles,update:P.Z.updateRole,delete:P.Z.deleteRole}),[]),{isLoading:b,allowedActions:{canRead:L,canDelete:F}}=(0,d.useRBAC)(R),{isLoading:At,data:{roles:ye},isFetching:Dt}=(0,Y.useQuery)("get-roles",()=>Ae(r,u),{initialData:{},enabled:L}),ve=At||Dt,bt=()=>{t("willCreateRole"),s(`/settings/${f.Z}/roles/new`)},Lt=()=>{m(!c)},St={roles:{id:(0,O.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,O.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},Mt=n({id:"global.roles",defaultMessage:"Roles"}),Zt=(0,Y.useMutation)(Nt=>De(Nt,r),{async onSuccess(){await C.invalidateQueries("get-roles")}}),Ot=async()=>{p(!0),await Zt.mutateAsync(E),m(!c),p(!1)},Q=(0,Te.ZP)(ye||[],i,{keys:["name","description"]}),Ut=i&&!Q.length?"search":"roles",xt=4,It=(ye?.length||0)+1;return e.createElement(X.A,null,e.createElement(d.SettingsPageTitle,{name:Mt}),e.createElement(k.o,{"aria-busy":ve},e.createElement(j.T,{title:n({id:"global.roles",defaultMessage:"Roles"}),subtitle:n({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(d.CheckPermissions,{permissions:P.Z.createRole},e.createElement(T.z,{onClick:bt,startIcon:e.createElement(Pe.default,null),size:"S"},n({id:(0,O.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(N.Z,{startActions:e.createElement(d.SearchURLQuery,{label:n({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(U.D,null,!L&&e.createElement(d.NoPermissions,null),(ve||b)&&e.createElement(d.LoadingIndicatorPage,null),L&&Q&&Q?.length?e.createElement(K.i,{colCount:xt,rowCount:It},e.createElement(w.h,null,e.createElement(B.Tr,null,e.createElement(A.Th,null,e.createElement(y.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(A.Th,null,e.createElement(y.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"Description"}))),e.createElement(A.Th,null,e.createElement(y.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.users",defaultMessage:"Users"}))),e.createElement(A.Th,null,e.createElement(Re.T,null,n({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(Ze,{sortedRoles:Q,canDelete:F,permissions:P.Z,setRoleToDelete:l,onDelete:[c,m]})):e.createElement(d.EmptyStateLayout,{content:St[Ut]})),e.createElement(d.ConfirmDialog,{isConfirmButtonLoading:g,onConfirm:Ot,onToggleDialog:Lt,isOpen:c})))},Ue=()=>e.createElement(d.CheckPagePermissions,{permissions:P.Z.accessRoles},e.createElement(Oe,null)),ne=a(83281),D=a(27677),S=a(72850),ae=a(10369),re=a(10508),xe=a(29439),oe=a(66456),H=a(15335),x=a(5803),G=a(82069),M=a(92891);const ie=(0,e.createContext)({}),le=({children:t,value:n})=>e.createElement(ie.Provider,{value:n},t),_=()=>(0,e.useContext)(ie);le.propTypes={children:v().node.isRequired,value:v().object.isRequired};var V=a(83292),Ie=a(37213),Ne=a.n(Ie),ke=a(15738),Be=a.n(ke),Ge=t=>{switch(t){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const $e=(0,V.default)(S.x)`
2
- margin: -1px;
3
- border-radius: ${({theme:t})=>t.spaces[1]} 0 0 ${({theme:t})=>t.spaces[1]};
4
- `;function ee({route:t}){const{formatMessage:n}=(0,Z.useIntl)(),{method:s,handler:r,path:u}=t,o=u?Be()(u.split("/")):[],[i="",c=""]=r?r.split("."):[],m=Ge(t.method);return e.createElement(D.K,{spacing:2},e.createElement(y.Z,{variant:"delta",as:"h3"},n({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,i),e.createElement(y.Z,{variant:"delta",textColor:"primary600"},".",c)),e.createElement(D.K,{horizontal:!0,hasRadius:!0,background:"neutral0",borderColor:"neutral200",spacing:0},e.createElement($e,{background:m.background,borderColor:m.border,padding:2},e.createElement(y.Z,{fontWeight:"bold",textColor:m.text},s)),e.createElement(S.x,{paddingLeft:2,paddingRight:2},Ne()(o,g=>e.createElement(y.Z,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}ee.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},ee.propTypes={route:v().shape({handler:v().string,method:v().string,path:v().string})};var Fe=ee,je=()=>{const{formatMessage:t}=(0,Z.useIntl)(),{selectedAction:n,routes:s}=_(),r=(0,M.without)(n.split("."),"controllers"),u=(0,M.get)(s,r[0]),o=r.slice(1).join("."),i=(0,M.isEmpty)(u)?[]:u.filter(c=>c.handler.endsWith(o));return e.createElement(x.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},n?e.createElement(D.K,{spacing:2},i.map((c,m)=>e.createElement(Fe,{key:m,route:c}))):e.createElement(D.K,{spacing:2},e.createElement(y.Z,{variant:"delta",as:"h3"},t({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(y.Z,{as:"p",textColor:"neutral600"},t({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Ke=a(83828),we=a(61762),He=a(89966),Ve=a(23940),We=a.n(Ve);function ze(t){switch(t){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return We()(t.replace("api::","").replace("plugin::",""))}}var Qe=ze,Xe=a(98978),ce=a.n(Xe),de=a(8284),Ye=a(45112);const ue=V.css`
5
- background: ${t=>t.theme.colors.primary100};
6
- svg {
7
- opacity: 1;
8
- }
9
- `;var Je=(0,V.default)(S.x)`
10
- display: flex;
11
- justify-content: space-between;
12
- align-items: center;
13
-
14
- svg {
15
- opacity: 0;
16
- path {
17
- fill: ${t=>t.theme.colors.primary600};
18
- }
19
- }
20
-
21
- /* Show active style both on hover and when the action is selected */
22
- ${t=>t.isActive&&ue}
23
- &:hover {
24
- ${ue}
25
- }
26
- `;const qe=V.default.div`
27
- flex: 1;
28
- align-self: center;
29
- border-top: 1px solid ${({theme:t})=>t.colors.neutral150};
30
- `,me=({subCategory:t})=>{const{formatMessage:n}=(0,Z.useIntl)(),{onChange:s,onChangeSelectAll:r,onSelectedAction:u,selectedAction:o,modifiedData:i}=_(),c=(0,e.useMemo)(()=>(0,M.get)(i,t.name,{}),[i,t]),m=(0,e.useMemo)(()=>Object.values(c).every(l=>l.enabled===!0),[c]),g=(0,e.useMemo)(()=>Object.values(c).some(l=>l.enabled===!0)&&!m,[c,m]),p=(0,e.useCallback)(({target:{name:l}})=>{r({target:{name:l,value:!m}})},[m,r]),E=(0,e.useCallback)(l=>o===l,[o]);return e.createElement(S.x,null,e.createElement(J.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(S.x,{paddingRight:4},e.createElement(y.Z,{variant:"sigma",textColor:"neutral600"},t.label)),e.createElement(qe,null),e.createElement(S.x,{paddingLeft:4},e.createElement(de.X,{name:t.name,value:m,onValueChange:l=>p({target:{name:t.name,value:l}}),indeterminate:g},n({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(J.k,{paddingTop:6,paddingBottom:6},e.createElement(H.r,{gap:2,style:{flex:1}},t.actions.map(l=>{const C=`${l.name}.enabled`;return e.createElement(x.P,{col:6,key:l.name},e.createElement(Je,{isActive:E(l.name),padding:2,hasRadius:!0},e.createElement(de.X,{value:(0,M.get)(i,C,!1),name:C,onValueChange:R=>s({target:{name:C,value:R}})},l.label),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>u(l.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(Ye.Z,null))))}))))};me.propTypes={subCategory:v().object.isRequired};var _e=me;const ge=({name:t,permissions:n})=>{const s=(0,e.useMemo)(()=>ce()(Object.values(n.controllers).reduce((r,u,o)=>{const i=`${t}.controllers.${Object.keys(n.controllers)[o]}`,c=ce()(Object.keys(u).reduce((m,g)=>[...m,{...u[g],label:g,name:`${i}.${g}`}],[]),"label");return[...r,{actions:c,label:Object.keys(n.controllers)[o],name:i}]},[]),"label"),[t,n]);return e.createElement(S.x,{padding:6},s.map(r=>e.createElement(_e,{key:r.name,subCategory:r})))};ge.propTypes={name:v().string.isRequired,permissions:v().object.isRequired};var et=ge,tt=(t,n)=>{const s=Object.keys(n).sort().map(r=>({name:r,isOpen:!1}));return{...t,collapses:s}},W=a(97889);const st={collapses:[]},nt=(t,n)=>(0,W.default)(t,s=>{switch(n.type){case"TOGGLE_COLLAPSE":{s.collapses=t.collapses.map((r,u)=>u===n.index?{...r,isOpen:!r.isOpen}:{...r,isOpen:!1});break}default:return s}});var at=()=>{const{modifiedData:t}=_(),{formatMessage:n}=(0,Z.useIntl)(),[{collapses:s},r]=(0,e.useReducer)(nt,st,o=>tt(o,t)),u=o=>r({type:"TOGGLE_COLLAPSE",index:o});return e.createElement(D.K,{spacing:1},s.map((o,i)=>e.createElement(Ke.U,{expanded:o.isOpen,onToggle:()=>u(i),key:o.name,variant:i%2===0?"secondary":void 0},e.createElement(we.B,{title:Qe(o.name),description:n({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:o.name}),variant:i%2?"primary":"secondary"}),e.createElement(He.v,null,e.createElement(S.x,null,e.createElement(et,{permissions:t[o.name],name:o.name}))))))};const rt={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var ot=(t,n)=>(0,W.default)(t,s=>{switch(n.type){case"ON_CHANGE":{const r=n.keys.length,u=n.keys[r-1]==="enabled";if(n.value&&u){const o=(0,M.take)(n.keys,r-1).join(".");s.selectedAction=o}(0,M.set)(s,["modifiedData",...n.keys],n.value);break}case"ON_CHANGE_SELECT_ALL":{const r=["modifiedData",...n.keys],u=(0,M.get)(t,r,{}),o=Object.keys(u).reduce((i,c)=>(i[c]={...u[c],enabled:n.value},i),{});(0,M.set)(s,r,o);break}case"ON_RESET":{s.modifiedData=t.initialData;break}case"ON_SUBMIT_SUCCEEDED":{s.initialData=t.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:r}=n;s.selectedAction=r===t.selectedAction?"":r;break}default:return s}}),it=(t,n,s)=>({...t,initialData:n,modifiedData:n,routes:s});const pe=(0,e.forwardRef)(({permissions:t,routes:n},s)=>{const{formatMessage:r}=(0,Z.useIntl)(),[u,o]=(0,e.useReducer)(ot,rt,p=>it(p,t,n));(0,e.useImperativeHandle)(s,()=>({getPermissions(){return{permissions:u.modifiedData}},resetForm(){o({type:"ON_RESET"})},setFormAfterSubmit(){o({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...u,onChange:({target:{name:p,value:E}})=>o({type:"ON_CHANGE",keys:p.split("."),value:E==="empty__string_value"?"":E}),onChangeSelectAll:({target:{name:p,value:E}})=>o({type:"ON_CHANGE_SELECT_ALL",keys:p.split("."),value:E}),onSelectedAction:p=>o({type:"SELECT_ACTION",actionToSelect:p})};return e.createElement(le,{value:g},e.createElement(H.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(x.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(D.K,{spacing:6},e.createElement(D.K,{spacing:2},e.createElement(y.Z,{variant:"delta",as:"h2"},r({id:(0,G.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(y.Z,{as:"p",textColor:"neutral600"},r({id:(0,G.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(at,null))),e.createElement(je,null)))});pe.propTypes={permissions:v().object.isRequired,routes:v().object.isRequired};var Ee=(0,e.memo)(pe);const Vt={isLoading:!0,modifiedData:{}},Wt=(t,n)=>produce(t,s=>{switch(n.type){case"GET_DATA":{s.isLoading=!0,s.modifiedData={};break}case"GET_DATA_SUCCEEDED":{s.isLoading=!1,s.modifiedData=n.data;break}case"GET_DATA_ERROR":{s.isLoading=!0;break}case"ON_SUBMIT_SUCCEEDED":{s.modifiedData=n.data;break}default:return s}});var zt=null,lt=a(98399);const Qt=(t,n)=>{const{isLoading:s,allowedActions:r}=useRBAC(n),[{isLoading:u,modifiedData:o},i]=useReducer(reducer,initialState),c=useNotification(),m=useRef(!0),g=new AbortController,{signal:p}=g;useEffect(()=>(s||(async()=>{try{i({type:"GET_DATA"});const C=await request(getRequestURL(t),{method:"GET",signal:p});i({type:"GET_DATA_SUCCEEDED",data:C})}catch(C){m.current&&(i({type:"GET_DATA_ERROR"}),lt.error(C),c({type:"warning",message:{id:"notification.error"}}))}})(),()=>{g.abort(),m.current=!1}),[s,t]);const E=useCallback(l=>{i({type:"ON_SUBMIT_SUCCEEDED",data:l})},[]);return{allowedActions:r,dispatchSubmitSucceeded:E,isLoading:u,isLoadingForPermissions:s,modifiedData:o}};var Xt=null;const Yt={roles:[],isLoading:!0},Jt=(t,n)=>produce(t,s=>{switch(n.type){case"GET_DATA":{s.isLoading=!0,s.roles=[];break}case"GET_DATA_SUCCEEDED":{s.roles=n.data,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}});var qt=null;const _t=(t=!0)=>{const[{roles:n,isLoading:s},r]=useReducer(reducer,initialState,()=>init(initialState,t)),u=useNotification(),o=useRef(!0),i=new AbortController,{signal:c}=i;useEffect(()=>(t&&m(),()=>{i.abort(),o.current=!1}),[t]);const m=async()=>{try{r({type:"GET_DATA"});const{roles:g}=await request(`/${pluginId}/roles`,{method:"GET",signal:c});r({type:"GET_DATA_SUCCEEDED",data:g})}catch(g){const p=get(g,["response","payload","message"],"An error occured");o.current&&(r({type:"GET_DATA_ERROR"}),p!=="Forbidden"&&u({type:"warning",message:p}))}};return{roles:n,isLoading:s,getData:m}};var es=null,ct=(t,n)=>({...t,isLoading:n}),z=a(8917);const he={permissions:{},routes:{},isLoading:!0};var dt=(t,n)=>(0,W.default)(t,s=>{switch(n.type){case"GET_DATA":{s.isLoading=!0,s.permissions={},s.routes={};break}case"GET_DATA_SUCCEEDED":{s.permissions=n.permissions,s.routes=n.routes,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}}),fe=(t=!0)=>{const n=(0,d.useNotification)(),[{permissions:s,routes:r,isLoading:u},o]=(0,e.useReducer)(dt,he,()=>ct(he,t)),i=(0,e.useCallback)(async()=>{try{o({type:"GET_DATA"});const[{permissions:c},{routes:m}]=await Promise.all([`/${f.Z}/permissions`,`/${f.Z}/routes`].map(async g=>(await z.Z.get(g)).data));o({type:"GET_DATA_SUCCEEDED",permissions:(0,O.YX)(c),routes:m})}catch(c){const m=(0,M.get)(c,["response","payload","message"],"An error occured");o({type:"GET_DATA_ERROR"}),m!=="Forbidden"&&n({type:"warning",message:m})}},[n]);return(0,e.useEffect)(()=>{t&&i()},[i,t]),{permissions:s,routes:r,getData:i,isLoading:u}};const ut={role:{},isLoading:!0};var mt=(t,n)=>(0,W.default)(t,s=>{switch(n.type){case"GET_DATA_SUCCEEDED":{s.role=n.role,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{s.role.name=n.name,s.role.description=n.description;break}default:return s}}),gt=a(98399),pt=t=>{const[n,s]=(0,e.useReducer)(mt,ut),r=(0,d.useNotification)(),u=(0,e.useRef)(null);(0,e.useEffect)(()=>(u.current=!0,t?o(t):s({type:"GET_DATA_SUCCEEDED",role:{}}),()=>u.current=!1),[t]);const o=async c=>{try{const{data:{role:m}}=await z.Z.get(`/${f.Z}/roles/${c}`);u.current&&s({type:"GET_DATA_SUCCEEDED",role:m})}catch(m){gt.error(m),s({type:"GET_DATA_ERROR"}),r({type:"warning",message:{id:"notification.error"}})}},i=(0,e.useCallback)(c=>{s({type:"ON_SUBMIT_SUCCEEDED",...c})},[]);return{...n,onSubmitSucceeded:i}},$=a(5173),Et=$.Ry().shape({name:$.Z_().required(d.translatedErrors.required),description:$.Z_().required(d.translatedErrors.required)}),ht=a(98399),ft=()=>{const{formatMessage:t}=(0,Z.useIntl)(),[n,s]=(0,e.useState)(!1),r=(0,d.useNotification)(),{lockApp:u,unlockApp:o}=(0,d.useOverlayBlocker)(),{params:{id:i}}=(0,h.useRouteMatch)(`/settings/${f.Z}/roles/:id`),{isLoading:c,routes:m}=fe(),{role:g,onSubmitSucceeded:p,isLoading:E}=pt(i),l=(0,e.useRef)(),C=async R=>{u(),s(!0);try{const b=l.current.getPermissions();await z.Z.put(`/${f.Z}/roles/${i}`,{...R,...b,users:[]}),p({name:R.name,description:R.description}),r({type:"success",message:{id:(0,G.Z)("Settings.roles.edited"),defaultMessage:"Role edited"}})}catch(b){ht.error(b),r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),o()};return E?e.createElement(d.LoadingIndicatorPage,null):e.createElement(k.o,null,e.createElement(d.SettingsPageTitle,{name:"Roles"}),e.createElement(ne.Formik,{enableReinitialize:!0,initialValues:{name:g.name,description:g.description},onSubmit:C,validationSchema:Et},({handleSubmit:R,values:b,handleChange:L,errors:F})=>e.createElement(d.Form,{noValidate:!0,onSubmit:R},e.createElement(j.T,{primaryAction:!c&&e.createElement(T.z,{disabled:g.code==="strapi-super-admin",type:"submit",loading:n,startIcon:e.createElement(oe.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:g.name,subtitle:g.description,navigationAction:e.createElement(d.Link,{startIcon:e.createElement(xe.Z,null),to:"/settings/users-permissions/roles"},t({id:"global.back",defaultMessage:"Back"}))}),e.createElement(U.D,null,e.createElement(D.K,{spacing:7},e.createElement(S.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(D.K,{spacing:4},e.createElement(y.Z,{variant:"delta",as:"h2"},t({id:(0,G.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(H.r,{gap:4},e.createElement(x.P,{col:6},e.createElement(ae.o,{name:"name",value:b.name||"",onChange:L,label:t({id:"global.name",defaultMessage:"Name"}),error:F.name?t({id:F.name,defaultMessage:"Invalid value"}):null})),e.createElement(x.P,{col:6},e.createElement(re.g,{name:"description",value:b.description||"",onChange:L,label:t({id:"global.description",defaultMessage:"Description"}),error:F.description?t({id:F.description,defaultMessage:"Invalid value"}):null}))))),!c&&e.createElement(Ee,{ref:l,permissions:g.permissions,routes:m}))))))},yt=()=>e.createElement(d.CheckPagePermissions,{permissions:P.Z.updateRole},e.createElement(ft,null)),vt=$.Ry().shape({name:$.Z_().required(d.translatedErrors.required),description:$.Z_().required(d.translatedErrors.required)}),Rt=a(98399),Ct=()=>{const{formatMessage:t}=(0,Z.useIntl)(),[n,s]=(0,e.useState)(!1),r=(0,d.useNotification)(),{goBack:u}=(0,h.useHistory)(),{lockApp:o,unlockApp:i}=(0,d.useOverlayBlocker)(),{isLoading:c,permissions:m,routes:g}=fe(),{trackUsage:p}=(0,d.useTracking)(),E=(0,e.useRef)(),l=async C=>{o(),s(!0);try{const R=E.current.getPermissions();await z.Z.post(`/${f.Z}/roles`,{...C,...R,users:[]}),p("didCreateRole"),r({type:"success",message:{id:(0,G.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),u()}catch(R){Rt.error(R),r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),i()};return e.createElement(k.o,null,e.createElement(d.SettingsPageTitle,{name:"Roles"}),e.createElement(ne.Formik,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:l,validationSchema:vt},({handleSubmit:C,values:R,handleChange:b,errors:L})=>e.createElement(d.Form,{noValidate:!0,onSubmit:C},e.createElement(j.T,{primaryAction:!c&&e.createElement(T.z,{type:"submit",loading:n,startIcon:e.createElement(oe.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:t({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(U.D,null,e.createElement(D.K,{spacing:7},e.createElement(S.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(D.K,{spacing:4},e.createElement(y.Z,{variant:"delta",as:"h2"},t({id:(0,G.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(H.r,{gap:4},e.createElement(x.P,{col:6},e.createElement(ae.o,{name:"name",value:R.name||"",onChange:b,label:t({id:"global.name",defaultMessage:"Name"}),error:L.name?t({id:L.name,defaultMessage:"Invalid value"}):null})),e.createElement(x.P,{col:6},e.createElement(re.g,{name:"description",value:R.description||"",onChange:b,label:t({id:"global.description",defaultMessage:"Description"}),error:L.description?t({id:L.description,defaultMessage:"Invalid value"}):null}))))),!c&&e.createElement(Ee,{ref:E,permissions:m,routes:g}))))))},Pt=()=>e.createElement(d.CheckPagePermissions,{permissions:P.Z.createRole},e.createElement(Ct,null)),Tt=()=>e.createElement(d.CheckPagePermissions,{permissions:P.Z.accessRoles},e.createElement(h.Switch,null,e.createElement(h.Route,{path:`/settings/${f.Z}/roles/new`,component:Pt,exact:!0}),e.createElement(h.Route,{path:`/settings/${f.Z}/roles/:id`,component:yt,exact:!0}),e.createElement(h.Route,{path:`/settings/${f.Z}/roles`,component:Ue,exact:!0}),e.createElement(h.Route,{path:"",component:d.NotFound})))},8917:function(te,I,a){var e=a(55721),h=a(88425),d=a.n(h);const f=e.Z.create({baseURL:"http://localhost:1337"});f.interceptors.request.use(async T=>(T.headers={Authorization:`Bearer ${h.auth.getToken()}`,Accept:"application/json","Content-Type":"application/json"},T),T=>{Promise.reject(T)}),f.interceptors.response.use(T=>T,T=>{throw T.response?.status===401&&(h.auth.clearAppStorage(),window.location.reload()),T});const P=(0,h.wrapAxiosInstance)(f);I.Z=P},59677:function(te,I,a){a.d(I,{be:function(){return e.Z},YX:function(){return f},Gc:function(){return X},OB:function(){return j.Z}});var e=a(8917),h=a(92891),f=N=>Object.keys(N).reduce((U,k)=>{const K=N[k].controllers,w=Object.keys(K).reduce((B,A)=>((0,h.isEmpty)(K[A])||(B[A]=K[A]),B),{});return(0,h.isEmpty)(w)||(U[k]={controllers:w}),U},{}),P=a(90201),X=N=>`/${P.Z}/${N}`,j=a(82069)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3278],{50576:function(n){n.exports=JSON.parse('{"Analytics":"Ph\xE2n T\xEDch","Auth.components.Oops.text":"T\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n \u0111\xE3 b\u1ECB kho\xE1","Auth.components.Oops.text.admin":"N\u1EBFu c\xF3 s\u1EF1 nh\u1EA7m l\u1EABn, h\xE3y li\xEAn h\u1EC7 ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB","Auth.form.button.forgot-password":"G\u1EEDi Email","Auth.form.button.go-home":"QUAY V\u1EC0 TRANG CH\u1EE6","Auth.form.button.login":"\u0110\u0103ng nh\u1EADp","Auth.form.button.login.providers.error":"Kh\xF4ng th\u1EC3 k\u1EBFt n\u1ED1i b\u1EA1n v\u1EDBi d\u1ECBch v\u1EE5 \u0111\xE3 ch\u1ECDn.","Auth.form.button.login.strapi":"\u0110\u0103ng nh\u1EADp v\u1EDBi Strapi","Auth.form.button.password-recovery":"Kh\xF4i ph\u1EE5c m\u1EADt kh\u1EA9u","Auth.form.button.register":"S\u1EB5n s\xE0ng \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u","Auth.form.confirmPassword.label":"Nh\u1EADp l\u1EA1i m\u1EADt kh\u1EA9u","Auth.form.currentPassword.label":"M\u1EADt kh\u1EA9u hi\u1EC7n t\u1EA1i","Auth.form.email.label":"Email","Auth.form.email.placeholder":"kai@doe.com","Auth.form.error.blocked":"T\xE0i kho\u1EA3n c\u1EE7a b\u1EA1n b\u1ECB kh\xF3a b\u1EDFi ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB.","Auth.form.error.code.provide":"M\xE3 \u0111\u01B0\u1EE3c cung c\u1EA5p kh\xF4ng ch\xEDnh x\xE1c.","Auth.form.error.confirmed":"T\xE0i kho\u1EA3n Email c\u1EE7a b\u1EA1n ch\u01B0a \u0111\u01B0\u1EE3c x\xE1c nh\u1EADn.","Auth.form.error.email.invalid":"Email sai.","Auth.form.error.email.provide":"Vui l\xF2ng cung c\u1EA5p t\xEAn \u0111\u0103ng nh\u1EADp ho\u1EB7c email.","Auth.form.error.email.taken":"Email \u0111\xE3 t\u1ED3n t\u1EA1i.","Auth.form.error.invalid":"\u0110\u1ECBnh danh ho\u1EB7c m\u1EADt kh\u1EA9u sai.","Auth.form.error.params.provide":"Tham s\u1ED1 \u0111\u01B0\u1EE3c cung c\u1EA5p kh\xF4ng ch\xEDnh x\xE1c.","Auth.form.error.password.format":"M\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n kh\xF4ng th\u1EC3 ch\u1EE9a k\xFD t\u1EF1 `$` h\u01A1n ba l\u1EA7n","Auth.form.error.password.local":"Ng\u01B0\u1EDDi d\xF9ng n\xE0y ch\u01B0a t\u1EEBng \u0111\u1EB7t m\u1EADt kh\u1EA9u c\u1EE5c b\u1ED9, vui l\xF2ng \u0111\u0103ng nh\u1EADp th\xF4ng qua nh\xE0 cung c\u1EA5p \u0111\xE3 d\xF9ng trong l\xFAc t\u1EA1o t\xE0i kho\u1EA3n ban \u0111\u1EA7u","Auth.form.error.password.matching":"M\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp.","Auth.form.error.password.provide":"Vui l\xF2ng cung c\u1EA5p m\u1EADt kh\u1EA9u c\u1EE7a b\u1EA1n.","Auth.form.error.ratelimit":"Th\u1EED qu\xE1 nhi\u1EC1u l\u1EA7n, vui l\xF2ng th\u1EED l\u1EA1i sau m\u1ED9t ph\xFAt","Auth.form.error.user.not-exist":"Email n\xE0y ch\u01B0a t\u1ED3n t\u1EA1i.","Auth.form.error.username.taken":"T\xEAn \u0111\u0103ng nh\u1EADp \u0111\xE3 t\u1ED3n t\u1EA1i.","Auth.form.firstname.label":"H\u1ECD","Auth.form.firstname.placeholder":"v.d. Kai","Auth.form.forgot-password.email.label":"Nh\u1EADp email c\u1EE7a b\u1EA1n","Auth.form.forgot-password.email.label.success":"Email \u0111\xE3 g\u1EEDi th\xE0nh c\xF4ng \u0111\u1EBFn","Auth.form.lastname.label":"T\xEAn","Auth.form.lastname.placeholder":"v.d. Doe","Auth.form.password.hide-password":"\u1EA8n m\u1EADt kh\u1EA9u","Auth.form.password.hint":"M\u1EADt kh\u1EA9u ph\u1EA3i ch\u1EE9a \xEDt nh\u1EA5t 8 k\xFD t\u1EF1, 1 vi\u1EBFt hoa, 1 vi\u1EBFt th\u01B0\u1EDDng v\xE0 1 s\u1ED1","Auth.form.password.show-password":"Hi\u1EC3n th\u1ECB password","Auth.form.register.news.label":"C\u1EADp nh\u1EADt cho t\xF4i v\u1EC1 ch\u1EE9c n\u0103ng m\u1EDBi v\xE0 nh\u1EEFng c\u1EA3i thi\u1EC7n s\u1EAFp t\u1EDBi (th\xF4ng qua vi\u1EC7c n\xE0y b\u1EA1n \u0111\xE3 ch\u1EA5p nh\u1EADn {terms} v\xE0 {policy}).","Auth.form.register.subtitle":"Th\xF4ng tin c\u1EE7a b\u1EA1n ch\u1EC9 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u0111\u1EC3 \u0111\u0103ng nh\u1EADp v\xE0o trang qu\u1EA3n tr\u1ECB. T\u1EA5t c\u1EA3 c\xE1c d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c l\u01B0u \u1EDF c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","Auth.form.rememberMe.label":"Nh\u1EDB t\xF4i","Auth.form.username.label":"T\xEAn \u0111\u0103ng nh\u1EADp","Auth.form.username.placeholder":"Kai Doe","Auth.form.welcome.subtitle":"\u0110\u0103ng nh\u1EADp v\xE0o t\xE0i kho\u1EA3n Strapi c\u1EE7a b\u1EA1n","Auth.form.welcome.title":"Ch\xE0o m\u1EEBng!","Auth.link.forgot-password":"Qu\xEAn m\u1EADt kh\u1EA9u?","Auth.link.ready":"S\u1EB5n s\xE0ng \u0111\u0103ng nh\u1EADp?","Auth.link.signin":"\u0110\u0103ng nh\u1EADp","Auth.link.signin.account":"\u0110\xE3 c\xF3 t\xE0i kho\u1EA3n?","Auth.login.sso.divider":"Ho\u1EB7c \u0111\u0103ng nh\u1EADp v\u1EDBi","Auth.login.sso.loading":"\u0110ang t\u1EA3i c\xE1c d\u1ECBch v\u1EE5 cung c\u1EA5p...","Auth.login.sso.subtitle":"\u0110\u0103ng nh\u1EADp qua SSO","Auth.privacy-policy-agreement.policy":"ch\xEDnh s\xE1ch b\u1EA3o m\u1EADt","Auth.privacy-policy-agreement.terms":"c\xE1c \u0111i\u1EC1u kho\u1EA3n","Auth.reset-password.title":"\u0110\u1EB7t l\u1EA1i m\u1EADt kh\u1EA9u","Content Manager":"Qu\u1EA3n L\xFD N\u1ED9i Dung","Documentation":"T\xE0i li\u1EC7u","Email":"Email","Files Upload":"T\u1EA3i T\xE2p Tin L\xEAn","HomePage.helmet.title":"Trang ch\u1EE7","HomePage.roadmap":"Xem l\u1ED9 tr\xECnh c\u1EE7a ch\xFAng t\xF4i","HomePage.welcome.congrats":"Ch\xFAc m\u1EEBng!","HomePage.welcome.congrats.content":"B\u1EA1n \u0111\xE3 \u0111\u0103ng nh\u1EADp nh\u01B0 l\xE0 ng\u01B0\u1EDDi qu\u1EA3n tr\u1ECB \u0111\u1EA7u ti\xEAn. \u0110\u1EC3 kh\xE1m ph\xE1 nh\u1EEFng t\xEDnh n\u0103ng m\u1EA1nh m\u1EBD \u0111\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi Strapi.","New entry":"B\u1EA3n ghi m\u1EDBi","Password":"M\u1EADt Kh\u1EA9u","Provider":"Nh\xE0 Cung C\u1EA5p","ResetPasswordToken":"C\xE0i L\u1EA1i Chu\u1ED7i Kh\xF3a M\u1EADt Kh\u1EA9u","Role":"Vai tr\xF2","Username":"T\xEAn \u0111\u0103ng nh\u1EADp","Users":"Ng\u01B0\u1EDDi d\xF9ng","Users & Permissions":"Ng\u01B0\u1EDDi d\xF9ng v\xE0 Ph\xE2n quy\u1EC1n","app.components.BlockLink.code":"Code v\xED d\u1EE5","app.components.Button.cancel":"H\u1EE7y b\u1ECF","app.components.ComingSoonPage.comingSoon":"S\u1EAFp c\xF3","app.components.DownloadInfo.download":"\u0110ang t\u1EA3i v\u1EC1","app.components.DownloadInfo.text":"Vi\u1EC7c n\xE0y c\xF3 th\u1EC3 t\u1ED1n m\u1ED9t ph\xFAt. C\u1EA3m \u01A1n b\u1EA1n v\xEC s\u1EF1 ki\xEAn nh\u1EABn.","app.components.EmptyAttributes.title":"Ch\u01B0a c\xF3 tr\u01B0\u1EDDng nh\u1EADp li\u1EC7u n\xE0o","app.components.HomePage.button.blog":"XEM TH\xCAM TR\xCAN BLOG","app.components.HomePage.community":"T\xECm c\u1ED9ng \u0111\u1ED3ng tr\xEAn web","app.components.HomePage.community.content":"Th\u1EA3o lu\u1EADn v\u1EDBi th\xE0nh vi\xEAn, ng\u01B0\u1EDDi \u0111\xF3ng g\xF3p v\xE0 l\u1EADp tr\xECnh vi\xEAn tr\xEAn nh\u1EEFng k\xEAnh kh\xE1c nhau.","app.components.HomePage.welcome":"Ch\xE0o m\u1EEBng b\u1EA1n \u0111\xE3 tham gia \u{1F44B}","app.components.HomePage.welcome.again":"Ch\xE0o m\u1EEBng \u{1F44B}","app.components.HomePage.welcomeBlock.content":"Ch\xFAng t\xF4i h\u1EA1nh ph\xFAc khi c\xF3 b\u1EA1n l\xE0 m\u1ED9t ph\u1EA7n c\u1EE7a c\u1ED9ng \u0111\u1ED3ng. Ch\xFAng t\xF4i li\xEAn t\u1EE5c t\xECm ki\u1EBFm s\u1EF1 ph\u1EA3n h\u1ED3i, do \u0111\xF3 b\u1EA1n c\xF3 th\u1EC3 Li\xEAn h\u1EC7 tr\u1EF1c ti\u1EBFp v\u1EDBi ch\xFAng t\xF4i tr\xEAn ","app.components.HomePage.welcomeBlock.content.again":"Ch\xFAng t\xF4i hi v\u1ECDng b\u1EA1n c\xF3 ti\u1EBFn tri\u1EC3n tr\xEAn d\u1EF1 \xE1n c\u1EE7a b\u1EA1n... B\u1EA1n t\u1EF1 do \u0111\u1ECDc tin t\u1EE9c m\u1EDBi nh\u1EA5t v\u1EC1 Strapi. Ch\xFAng t\xF4i \u0111ang c\u1ED1 g\u1EAFng h\u1EBFt m\u1EE9c \u0111\u1EC3 c\u1EA3i thi\u1EC7n s\u1EA3n ph\u1EA9m d\u1EF1a tr\xEAn ph\u1EA3n h\u1ED3i c\u1EE7a b\u1EA1n.","app.components.HomePage.welcomeBlock.content.issues":"v\u1EA5n \u0111\u1EC1.","app.components.HomePage.welcomeBlock.content.raise":" ho\u1EB7c n\xEAu l\xEAn ","app.components.ImgPreview.hint":"K\xE9o v\xE0 th\u1EA3 t\u1EADp tin c\u1EE7a b\u1EA1n v\xE0o khu v\u1EF1c n\xE0y ho\u1EB7c {browse} \u0111\u1EC3 t\xECm t\u1EADp tin t\u1EA3i l\xEAn","app.components.ImgPreview.hint.browse":"duy\u1EC7t","app.components.InputFile.newFile":"Th\xEAm t\u1EADp tin m\u1EDBi","app.components.InputFileDetails.open":"M\u1EDF ra \u1EDF th\u1EBB m\u1EDBi","app.components.InputFileDetails.originalName":"T\xEAn g\u1ED1c:","app.components.InputFileDetails.remove":"Xo\xE1 t\u1EADp tin n\xE0y","app.components.InputFileDetails.size":"K\xEDch th\u01B0\u1EDBc:","app.components.InstallPluginPage.Download.description":"N\xF3 s\u1EBD t\u1ED1n m\u1ED9t v\xE0i gi\xE2y \u0111\u1EC3 t\u1EA3i v\u1EC1 v\xE0 c\xE0i \u0111\u1EB7t plugin.","app.components.InstallPluginPage.Download.title":"\u0110ang t\u1EA3i v\u1EC1...","app.components.InstallPluginPage.description":"M\u1EDF r\u1ED9ng \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n d\u1EC5 d\xE0ng","app.components.LeftMenuFooter.help":"Gi\xFAp \u0111\u1EE1","app.components.LeftMenuFooter.poweredBy":"Cung c\u1EA5p b\u1EDFi ","app.components.LeftMenuLinkContainer.configuration":"C\xE1c c\u1EA5u h\xECnh","app.components.LeftMenuLinkContainer.general":"Chung","app.components.LeftMenuLinkContainer.noPluginsInstalled":"Ch\u01B0a c\xF3 plugins n\xE0o \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.LeftMenuLinkContainer.plugins":"Plugins","app.components.ListPluginsPage.description":"Danh s\xE1ch plugins \u0111\xE3 c\xE0i trong d\u1EF1 \xE1n.","app.components.ListPluginsPage.helmet.title":"Danh s\xE1ch plugins","app.components.Logout.logout":"\u0110\u0103ng xu\u1EA5t","app.components.Logout.profile":"H\u1ED3 s\u01A1","app.components.NotFoundPage.back":"Tr\u1EDF v\u1EC1 trang ch\u1EE7","app.components.NotFoundPage.description":"Kh\xF4ng T\xECm Th\u1EA5y","app.components.Official":"Ch\xEDnh Th\u1EE9c","app.components.Onboarding.label.completed":"% \u0111\xE3 ho\xE0n th\xE0nh","app.components.Onboarding.title":"Videos B\u1EAFt \u0110\u1EA7u","app.components.PluginCard.Button.label.download":"T\u1EA3i v\u1EC1","app.components.PluginCard.Button.label.install":"\u0110\xE3 \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed":"Ch\u1EE9c n\u0103ng autoReload kh\xF4ng ho\u1EA1t \u0111\u1ED9ng. Vui l\xF2ng ch\u1EA1y \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n v\u1EDBi `yarn develop`.","app.components.PluginCard.PopUpWarning.install.impossible.confirm":"T\xF4i hi\u1EC3u!","app.components.PluginCard.PopUpWarning.install.impossible.environment":"V\xEC nh\u1EEFng l\xFD do b\u1EA3o m\u1EADt, ch\u1EC9 m\u1ED9t plugin c\xF3 th\u1EC3 \u0111\u01B0\u1EE3c t\u1EA3i v\u1EC1 trong m\xF4i tr\u01B0\u1EDDng ph\xE1t tri\u1EC3n.","app.components.PluginCard.PopUpWarning.install.impossible.title":"T\u1EA3i v\u1EC1 kh\xF4ng kh\u1EA3 thi","app.components.PluginCard.compatible":"T\u01B0\u01A1ng th\xEDch v\u1EDBi \u1EE9ng d\u1EE5ng c\u1EE7a b\u1EA1n","app.components.PluginCard.compatibleCommunity":"T\u01B0\u01A1ng th\xEDch v\u1EDBi c\u1ED9ng \u0111\u1ED3ng","app.components.PluginCard.more-details":"Th\xEAm chi ti\u1EBFt","app.components.listPlugins.button":"Th\xEAm m\u1EDBi Plugin","app.components.listPlugins.title.none":"Ch\u01B0a c\xF3 plugins n\xE0o \u0111\u01B0\u1EE3c c\xE0i \u0111\u1EB7t","app.components.listPluginsPage.deletePlugin.error":"M\u1ED9t l\u1ED7i x\u1EA3y ra trong khi g\u1EE1 b\u1ECF plugin","app.containers.App.notification.error.init":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi g\u1EEDi y\xEAu c\u1EA7u \u0111\u1EBFn API","app.utils.SelectOption.defaultMessage":" ","app.utils.defaultMessage":" ","app.utils.placeholder.defaultMessage":" ","components.AutoReloadBlocker.description":"Ch\u1EA1y Strapi v\u1EDBi m\u1ED9t trong c\xE1c l\u1EC7nh sau:","components.AutoReloadBlocker.header":"T\xEDnh n\u0103ng T\u1EA3i l\u1EA1i b\u1ECB b\u1EAFt bu\u1ED9c cho plugin n\xE0y.","components.ErrorBoundary.title":"\u0110i\u1EC1u g\xEC \u0111\xF3 kh\xF4ng \u1ED5n...","components.Input.error.attribute.key.taken":"Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.attribute.sameKeyAndName":"Kh\xF4ng th\u1EC3 b\u1EB1ng nhau","components.Input.error.attribute.taken":"Tr\u01B0\u1EDDng nh\u1EADp li\u1EC7u n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.contentTypeName.taken":"T\xEAn n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","components.Input.error.custom-error":"{errorMessage} ","components.Input.error.password.noMatch":"M\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp","components.Input.error.validation.email":"Email kh\xF4ng h\u1EE3p l\u1EC7","components.Input.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 \u0111\u1ECBnh d\u1EA1ng JSON","components.Input.error.validation.max":"Gi\xE1 tr\u1ECB qu\xE1 cao.","components.Input.error.validation.maxLength":"Gi\xE1 tr\u1ECB qu\xE1 d\xE0i.","components.Input.error.validation.min":"Gi\xE1 tr\u1ECB qu\xE1 th\u1EA5p.","components.Input.error.validation.minLength":"Gi\xE1 tr\u1ECB qu\xE1 ng\u1EAFn.","components.Input.error.validation.minSupMax":"Kh\xF4ng th\u1EC3 l\xE0 tr\xEAn m\u0169","components.Input.error.validation.regex":"Gi\xE1 tr\u1ECB kh\xF4ng kh\u1EDBi v\u1EDBi regex.","components.Input.error.validation.required":"Gi\xE1 tr\u1ECB n\xE0y b\u1EAFt bu\u1ED9c.","components.InputSelect.option.placeholder":"Ch\u1ECDn \u1EDF \u0111\xE2y","components.ListRow.empty":"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u \u0111\u1EC3 hi\u1EC3n th\u1ECB.","components.OverlayBlocker.description":"B\u1EA1n \u0111ang d\xF9ng m\u1ED9t t\xEDnh n\u0103ng m\xE0 n\xF3 c\u1EA7n ph\u1EA3i kh\u1EDFi \u0111\u1ED9ng l\u1EA1i m\xE1y ch\u1EE7. Vui l\xF2ng ch\u1EDD cho m\xE1y ch\u1EE7 kh\u1EDFi \u0111\u1ED9ng xong.","components.OverlayBlocker.description.serverError":"M\xE1y ch\u1EE7 n\xEAn \u0111\u01B0\u1EE3c kh\u1EDFi \u0111\u1ED9ng l\u1EA1i, vui l\xF2ng ki\u1EC3m tra nh\u1EADt k\xFD c\u1EE7a b\u1EA1n trong c\u1EEDa s\u1ED5 l\u1EC7nh","components.OverlayBlocker.title":"\u0110ang \u0111\u1EE3i kh\u1EDFi \u0111\u1ED9ng l\u1EA1i...","components.OverlayBlocker.title.serverError":"Vi\u1EC7c kh\u1EDFi \u0111\u1ED9ng l\u1EA1i t\u1ED1n nhi\u1EC1u th\u1EDDi gian h\u01A1n mong \u0111\u1EE3i","components.PageFooter.select":"b\u1EA3n ghi tr\xEAn trang","components.ProductionBlocker.description":"V\xEC l\xFD do an to\xE0n ch\xFAng t\xF4i ph\u1EA3i v\xF4 hi\u1EC7u ho\xE1 plugin trong c\xE1c m\xF4i tr\u01B0\u1EDDng kh\xE1c","components.ProductionBlocker.header":"Plugin n\xE0y ch\u1EC9 hi\u1EC7u l\u1EE9c trong m\xF4i tr\u01B0\u1EDDng ph\xE1t tri\u1EC3n","components.Wysiwyg.collapse":"Thu l\u1EA1i","components.Wysiwyg.selectOptions.H1":"Ti\xEAu \u0111\u1EC1 H1","components.Wysiwyg.selectOptions.H2":"Ti\xEAu \u0111\u1EC1 H2","components.Wysiwyg.selectOptions.H3":"Ti\xEAu \u0111\u1EC1 H3","components.Wysiwyg.selectOptions.H4":"Ti\xEAu \u0111\u1EC1 H4","components.Wysiwyg.selectOptions.H5":"Ti\xEAu \u0111\u1EC1 H5","components.Wysiwyg.selectOptions.H6":"Ti\xEAu \u0111\u1EC1 H6","components.Wysiwyg.selectOptions.title":"Th\xEAm m\u1ED9t ti\xEAu \u0111\u1EC1","components.WysiwygBottomControls.charactersIndicators":"k\xFD t\u1EF1","components.WysiwygBottomControls.fullscreen":"M\u1EDF r\u1ED9ng","components.WysiwygBottomControls.uploadFiles":"K\xE9o v\xE0 th\u1EA3 c\xE1c t\u1EADp tin, d\xE1n t\u1EEB b\u1ED9 nh\u1EDB t\u1EA1m hay {browse}.","components.WysiwygBottomControls.uploadFiles.browse":"ch\u1ECDn t\u1EC7p","components.popUpWarning.message":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 b\u1EA1n mu\u1ED1n xo\xE1 n\xF3?","components.popUpWarning.title":"Vui l\xF2ng x\xE1c nh\u1EADn","content-manager.EditRelations.title":"D\u1EEF Li\u1EC7u Quan H\u1EC7","content-manager.components.AddFilterCTA.add":"L\u1ECDc","content-manager.components.AddFilterCTA.hide":"L\u1ECDc","content-manager.components.DraggableAttr.edit":"Nh\u1EA5n \u0111\u1EC3 ch\u1EC9nh s\u1EEDa","content-manager.components.EmptyAttributesBlock.button":"\u0110\u1EBFn trang c\xE0i \u0111\u1EB7t","content-manager.components.EmptyAttributesBlock.description":"B\u1EA1n c\xF3 th\u1EC3 thay \u0111\u1ED5i c\xE0i \u0111\u1EB7t c\u1EE7a b\u1EA1n","content-manager.components.FilterOptions.button.apply":"\xC1p d\u1EE5ng","content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply":"\xC1p d\u1EE5ng","content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll":"X\xF3a t\u1EA5t c\u1EA3","content-manager.components.FiltersPickWrapper.PluginHeader.description":"C\xE0i \u0111\u1EB7t c\xE1c \u0111i\u1EC1u ki\u1EC7n \u0111\u1EC3 \xE1p d\u1EE5ng cho vi\u1EC7c l\u1ECDc c\xE1c b\u1EA3n ghi","content-manager.components.FiltersPickWrapper.PluginHeader.title.filter":"C\xE1c b\u1ED9 l\u1ECDc","content-manager.components.FiltersPickWrapper.hide":"\u1EA8n \u0111i","content-manager.components.LimitSelect.itemsPerPage":"S\u1ED1 l\u01B0\u1EE3ng b\u1EA3n ghi trong trang","content-manager.components.Search.placeholder":"T\xECm m\u1ED9t b\u1EA3n ghi...","content-manager.components.TableDelete.delete":"X\xF3a t\u1EA5t c\u1EA3","content-manager.components.TableDelete.deleteSelected":"X\xF3a \u0111\xE3 ch\u1ECDn","content-manager.components.TableEmpty.withFilters":"Kh\xF4ng c\xF3 {contentType} v\u1EDBi b\u1ED9 l\u1ECDc \u0111\u01B0\u1EE3c d\xF9ng","content-manager.components.TableEmpty.withSearch":"Kh\xF4ng c\xF3 {contentType} t\u01B0\u01A1ng \u1EE9ng v\u1EDBi t\xECm ki\u1EBFm ({search})...","content-manager.components.TableEmpty.withoutFilter":"Kh\xF4ng c\xF3 {contentType}...","content-manager.containers.Edit.Link.Layout":"C\u1EA5u h\xECnh b\u1ED1 c\u1EE5c","content-manager.containers.Edit.addAnItem":"Th\xEAm m\u1ED9t b\u1EA3n ghi...","content-manager.containers.Edit.clickToJump":"Nh\u1EA5n \u0111\u1EC3 nh\u1EA3y v\xE0o b\u1EA3n ghi","content-manager.containers.Edit.delete":"X\xF3a","content-manager.containers.Edit.editing":"\u0110\u0103ng s\u1EEDa...","content-manager.containers.Edit.pluginHeader.title.new":"T\u1EA1o m\u1ED9t B\u1EA3n ghi","content-manager.containers.Edit.reset":"L\xE0m l\u1EA1i","content-manager.containers.Edit.returnList":"Tr\u1EDF v\u1EC1 danh s\xE1ch","content-manager.containers.Edit.seeDetails":"Chi ti\u1EBFt","content-manager.containers.Edit.submit":"L\u01B0u","content-manager.containers.EditView.notification.errors":"B\u1EA3ng nh\u1EADp li\u1EC7u c\xF3 v\xE0i l\u1ED7i","content-manager.containers.Home.introduction":"\u0110\u1EC3 ch\u1EC9nh s\u1EEDa c\xE1c b\u1EA3n ghi c\u1EE7a b\u1EA1n, \u0111i \u0111\u1EBFn li\xEAn k\u1EBFt \u1EDF menu b\xEAn tr\xE1i. Plugin n\xE0y ch\u01B0a c\xF3 c\xE1ch th\xEDch h\u1EE3p \u0111\u1EC3 ch\u1EC9nh s\u1EEDa c\xE1c c\xE0i \u0111\u1EB7t v\xE0 n\xF3 v\u1EABn \u0111ang \u0111\u01B0\u1EE3c ph\xE1t tri\u1EC3n.","content-manager.containers.Home.pluginHeaderDescription":"Qu\u1EA3n l\xFD c\xE1c b\u1EA3n ghi th\xF4ng qua m\u1ED9t giao di\u1EC7n m\u1EA1nh v\xE0 \u0111\u1EB9p.","content-manager.containers.Home.pluginHeaderTitle":"Qu\u1EA3n L\xFD N\u1ED9i Dung","content-manager.containers.List.errorFetchRecords":"L\u1ED7i","content-manager.containers.ListPage.displayedFields":"C\xE1c tr\u01B0\u1EDDng \u0111\xE3 \u0111\u01B0\u1EE3c tr\xECnh b\xE0y","content-manager.containers.SettingPage.attributes":"C\xE1c tr\u01B0\u1EDDng thu\u1ED9c t\xEDnh","content-manager.containers.SettingPage.attributes.description":"\u0110\u1ECBnh ngh\u0129a th\u1EE9 t\u1EF1 c\xE1c thu\u1ED9c t\xEDnh","content-manager.containers.SettingPage.editSettings.description":"K\xE9o & th\u1EA3 c\xE1c tr\u01B0\u1EDDng \u0111\u1EC3 x\xE2y d\u1EF1ng b\u1ED1 c\u1EE5c","content-manager.containers.SettingPage.editSettings.entry.title":"T\xEAn b\u1EA3n ghi","content-manager.containers.SettingPage.editSettings.entry.title.description":"C\xE0i \u0111\u1EB7t tr\u01B0\u1EDDng \u0111\u01B0\u1EE3c tr\xECnh b\xE0y trong b\u1EA3n ghi c\u1EE7a b\u1EA1n","content-manager.containers.SettingPage.editSettings.title":"Ch\u1EC9nh s\u1EEDa hi\u1EC3n th\u1ECB (c\xE1c c\xE0i \u0111\u1EB7t)","content-manager.containers.SettingPage.layout":"B\u1ED1 c\u1EE5c","content-manager.containers.SettingPage.listSettings.title":"Hi\u1EC3n th\u1ECB danh s\xE1ch (c\xE1c c\xE0i \u0111\u1EB7t)","content-manager.containers.SettingPage.settings":"C\xE1c c\xE0i \u0111\u1EB7t","content-manager.containers.SettingViewModel.pluginHeader.title":"Qu\u1EA3n L\xFD N\u1ED9i Dung - {name}","content-manager.containers.SettingsPage.Block.contentType.description":"C\u1EA5u h\xECnh c\xE1c c\xE0i \u0111\u1EB7t ri\xEAng","content-manager.containers.SettingsPage.Block.generalSettings.title":"Chung","content-manager.containers.SettingsView.list.title":"C\xE1c c\u1EA5u h\xECnh v\u1EC1 Tr\xECnh b\xE0y","content-manager.emptyAttributes.title":"Ch\u01B0a c\xF3 tr\u01B0\u1EDDng n\xE0o h\u1EBFt","content-manager.error.attribute.key.taken":"Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.attribute.sameKeyAndName":"Kh\xF4ng th\u1EC3 b\u1EB1ng nhau","content-manager.error.attribute.taken":"T\xEAn tr\u01B0\u1EDDng n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.contentTypeName.taken":"T\xEAn n\xE0y \u0111\xE3 t\u1ED3n t\u1EA1i","content-manager.error.model.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 c\u1EA5u h\xECnh n\u1ED9i dung.","content-manager.error.record.create":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi t\u1EA1o b\u1EA3n ghi.","content-manager.error.record.delete":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi xo\xE1 b\u1EA3n ghi.","content-manager.error.record.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 b\u1EA3n ghi.","content-manager.error.record.update":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi c\u1EADp nh\u1EADt b\u1EA3n ghi.","content-manager.error.records.count":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 s\u1ED1 l\u01B0\u1EE3ng b\u1EA3n ghi.","content-manager.error.records.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 c\xE1c b\u1EA3n ghi.","content-manager.error.schema.generation":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi qu\xE1 tr\xECnh t\u1EA1o ra l\u01B0\u1EE3c \u0111\u1ED3.","content-manager.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 \u0111\u1ECBnh d\u1EA1ng JSON","content-manager.error.validation.max":"Gi\xE1 tr\u1ECB qu\xE1 cao.","content-manager.error.validation.maxLength":"Gi\xE1 tr\u1ECB qu\xE1 d\xE0i.","content-manager.error.validation.min":"Gi\xE1 tr\u1ECB qu\xE1 th\u1EA5p.","content-manager.error.validation.minLength":"Gi\xE1 tr\u1ECB qu\xE1 ng\u1EAFn.","content-manager.error.validation.minSupMax":"Kh\xF4ng th\u1EC3 l\xE0 tr\xEAn m\u0169","content-manager.error.validation.regex":"Gi\xE1 tr\u1ECB kh\xF4ng kh\u1EDBi v\u1EDBi regex.","content-manager.error.validation.required":"Gi\xE1 tr\u1ECB n\xE0y b\u1EAFt bu\u1ED9c.","content-manager.form.Input.bulkActions":"K\xEDch ho\u1EA1t ho\u1EA1t \u0111\u1ED9ng g\u1ED9p","content-manager.form.Input.defaultSort":"Thu\u1ED9c t\xEDnh s\u1EAFp x\u1EBFp m\u1EB7c \u0111\u1ECBnh","content-manager.form.Input.description":"M\xF4 t\u1EA3","content-manager.form.Input.description.placeholder":"T\xEAn hi\u1EC3n th\u1ECB trong h\u1ED3 s\u01A1","content-manager.form.Input.editable":"Tr\u01B0\u1EDDng ch\u1EC9nh s\u1EEDa \u0111\u01B0\u1EE3c","content-manager.form.Input.filters":"K\xEDch ho\u1EA1t c\xE1c b\u1ED9 l\u1ECDc","content-manager.form.Input.label":"Nh\xE3n","content-manager.form.Input.label.inputDescription":"Gi\xE1 tr\u1ECB n\xE0y ghi \u0111\xE8 l\xEAn nh\xE3n \u0111\u01B0\u1EE3c tr\xECnh b\xE0y trong ph\u1EA7n \u0111\u1EA7u c\u1EE7a b\u1EA3ng","content-manager.form.Input.pageEntries":"B\u1EA3n ghi trong trang","content-manager.form.Input.placeholder":"Ch\u1ED7 ch\u1EDD gi\xE1 tr\u1ECB","content-manager.form.Input.placeholder.placeholder":"Gi\xE1 tr\u1ECB tuy\u1EC7t v\u1EDDi c\u1EE7a t\xF4i","content-manager.form.Input.search":"K\xEDch ho\u1EA1t t\xECm ki\u1EBFm","content-manager.form.Input.search.field":"K\xEDch ho\u1EA1t t\xECm ki\u1EBFm cho tr\u01B0\u1EDDng n\xE0y","content-manager.form.Input.sort.field":"K\xEDch ho\u1EA1t s\u1EAFp x\u1EBFp tr\xEAn tr\u01B0\u1EDDng n\xE0y","content-manager.form.Input.wysiwyg":"Tr\xECnh b\xE0y nh\u01B0 l\xE0 WYSIWYG","content-manager.global.displayedFields":"C\xE1c Tr\u01B0\u1EDDng \u0110\xE3 \u0110\u01B0\u1EE3c Tr\xECnh B\xE0y","content-manager.groups":"Nh\xF3m","content-manager.groups.numbered":"Nh\xF3m ({number})","content-manager.notification.error.displayedFields":"B\u1EA1n c\u1EA7n tr\xECnh b\xE0y \xEDt nh\u1EA5t m\u1ED9t tr\u01B0\u1EDDng","content-manager.notification.error.relationship.fetch":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi l\u1EA5y v\u1EC1 m\u1ED1i quan h\u1EC7.","content-manager.notification.info.SettingPage.disableSort":"B\u1EA1n c\u1EA7n c\xF3 m\u1ED9t thu\u1ED9c t\xEDnh \u0111\u01B0\u1EE3c ph\xE9p s\u1EAFp x\u1EBFp","content-manager.notification.info.minimumFields":"B\u1EA1n c\u1EA7n hi\u1EC3n th\u1ECB \xEDt nh\u1EA5t m\u1ED9t tr\u01B0\u1EDDng","content-manager.notification.upload.error":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra trong khi t\u1EA3i l\xEAn c\xE1c t\u1EADp tin c\u1EE7a b\u1EA1n","content-manager.pageNotFound":"Kh\xF4ng T\xECm Th\u1EA5y Trang","content-manager.plugin.description.long":"C\xE1ch nhanh \u0111\u1EC3 xem, s\u1EEDa v\xE0 xo\xE1 d\u1EEF li\u1EC7u trong c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","content-manager.plugin.description.short":"C\xE1ch nhanh \u0111\u1EC3 xem, s\u1EEDa v\xE0 xo\xE1 d\u1EEF li\u1EC7u trong c\u01A1 s\u1EDF d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.","content-manager.popUpWarning.bodyMessage.contentType.delete":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n xo\xE1 b\u1EA3n ghi n\xE0y kh\xF4ng?","content-manager.popUpWarning.bodyMessage.contentType.delete.all":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n xo\xE1 c\xE1c b\u1EA3n ghi n\xE0y kh\xF4ng?","content-manager.popUpWarning.warning.cancelAllSettings":"B\u1EA1n c\xF3 ch\u1EAFc l\xE0 mu\u1ED1n h\u1EE7y b\u1ECF c\xE1c thay \u0111\u1ED5i c\u1EE7a b\u1EA1n?","content-manager.popUpWarning.warning.updateAllSettings":"N\xF3 s\u1EBD thay \u0111\u1ED5i t\u1EA5t c\u1EA3 c\xE0i \u0111\u1EB7t c\u1EE7a b\u1EA1n","content-manager.success.record.delete":"\u0110\xE3 xo\xE1","content-manager.success.record.save":"\u0110\xE3 l\u01B0u","form.button.done":"Ho\xE0n th\xE0nh","notification.error":"M\u1ED9t l\u1ED7i \u0111\xE3 x\u1EA3y ra","notification.error.layout":"Kh\xF4ng th\u1EC3 kh\xF4i ph\u1EE5c","notification.form.error.fields":"B\u1EA3ng nh\u1EADp li\u1EC7u c\xF3 v\xE0i l\u1ED7i","request.error.model.unknown":"C\u1EA5u tr\xFAc n\xE0y kh\xF4ng t\u1ED3n t\u1EA1i"}')}}]);
@@ -1,75 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{41513:function(te,M,t){t.d(M,{Z:function(){return Fe}});var e=t(32735),n=t(88425),L=t(27649),P=t(84968),x=t(5141),E=t(67927),p=t(17247),ne=t(60216),d=t.n(ne),h=t(29439),k=t(66456),ce=t(74512);function ve(a){return(0,ce.jsx)("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:(0,ce.jsx)("path",{d:"M4 20.252V3.748a1 1 0 011.507-.862l14.028 8.252a1 1 0 010 1.724L5.507 21.113A1 1 0 014 20.252z",fill:"#212134"})})}var be=t(28356),Re=t(17e3),ae=t(72850),ue=t(41415),W=t(27677),Q=t(10369),me=t(15335),D=t(5803),Z=t(83281),N=t(5636),Ce=t(76437),F=t(49372),ye=t(83292),Ie=t(44426),G=t(8284),ge=t(23940),i=t.n(ge);const C=({disabledEvents:a,name:r,events:o,inputValue:s,handleChange:c,handleChangeAll:O})=>{const u=o.filter(b=>!a.includes(b)),f=s.length===u.length,m=s.length>0,K=({target:{name:b}})=>{O({target:{name:b,value:!f}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(G.X,{indeterminate:m&&!f,"aria-label":"Select all entries",name:r,onChange:K,value:f},i()(r))),o.map(b=>e.createElement("td",{key:b},e.createElement(Ie.C,{disabled:a.includes(b),"aria-label":b,name:b,value:s.includes(b),onValueChange:S=>c({target:{name:b,value:S}})}))))};C.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},C.propTypes={disabledEvents:d().array,events:d().array,inputValue:d().array,handleChange:d().func,handleChangeAll:d().func,name:d().string.isRequired};var A=C,R=a=>a.reduce((r,o)=>{const s=o.split(".")[0];return r[s]||(r[s]=[]),r[s].push(o),r},{});const pe=ye.default.table`
2
- td {
3
- height: ${52/16}rem;
4
- width: 10%;
5
- vertical-align: middle;
6
- text-align: center;
7
- }
8
-
9
- tbody tr:nth-child(odd) {
10
- background: ${({theme:a})=>a.colors.neutral100};
11
- }
12
-
13
- tbody tr td:first-child {
14
- padding-left: ${({theme:a})=>a.spaces[7]};
15
- }
16
- `,re={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},fe=({isDraftAndPublish:a})=>{const r=a?re.headers.draftAndPublish:re.headers.default,o=a?re.events.draftAndPublish:re.events.default,{formatMessage:s}=(0,N.useIntl)(),{values:c,handleChange:O}=(0,Z.useFormikContext)(),u="events",f=c.events,m=[],K=R(f),b=({target:{name:v,value:ee}})=>{let l=new Set(f);ee?l.add(v):l.delete(v),O({target:{name:u,value:Array.from(l)}})},S=({target:{name:v,value:ee}})=>{let l=new Set(f);ee?o[v].forEach(g=>{m.includes(g)||l.add(g)}):o[v].forEach(g=>l.delete(g)),O({target:{name:u,value:Array.from(l)}})};return e.createElement(W.K,{spacing:1},e.createElement(Ce.Q,null,s({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(pe,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),r.map(v=>v==="app.utils.publish"||v==="app.utils.unpublish"?e.createElement("td",{key:v.id,title:s({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(F.Z,{variant:"sigma",textColor:"neutral600"},s(v))):e.createElement("td",{key:v.id},e.createElement(F.Z,{variant:"sigma",textColor:"neutral600"},s(v)))))),e.createElement("tbody",null,Object.keys(o).map(v=>e.createElement(A,{disabledEvents:m,key:v,name:v,events:o[v],inputValue:K[v],handleChange:b,handleChangeAll:S})))))};fe.propTypes={isDraftAndPublish:d().bool.isRequired};var J=fe,Te=t(19406),z=t(87933),Le=t(7563),Ae=t(21590),Me=t(90333),Pe=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const oe=({name:a,onChange:r,value:o,...s})=>{const[c,O]=(0,e.useState)(o?[...Pe,o]:Pe),u=m=>{r({target:{name:a,value:m}})},f=m=>{O(K=>[...K,m]),r({target:{name:a,value:m}})};return e.createElement(Ae.X,{...s,onChange:u,onCreateOption:f,placeholder:"",value:o},c.map(m=>e.createElement(Me.O,{value:m,key:m},m)))};oe.defaultProps={value:void 0},oe.propTypes={name:d().string.isRequired,onChange:d().func.isRequired,value:d().string};var De=oe,xe=()=>{const{formatMessage:a}=(0,N.useIntl)(),{values:r,errors:o}=(0,Z.useFormikContext)();return e.createElement(W.K,{spacing:1},e.createElement(Ce.Q,null,a({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(ae.x,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(Z.FieldArray,{validateOnChange:!1,name:"headers",render:({push:s,remove:c})=>e.createElement(me.r,{gap:4},r.headers?.map((O,u)=>e.createElement(e.Fragment,{key:u},e.createElement(D.P,{col:6},e.createElement(Z.Field,{as:De,name:`headers.${u}.key`,"aria-label":`row ${u+1} key`,label:a({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:o.headers?.[u]?.key&&a({id:o.headers[u]?.key,defaultMessage:o.headers[u]?.key})})),e.createElement(D.P,{col:6},e.createElement(z.k,{alignItems:"flex-end"},e.createElement(ae.x,{style:{flex:1}},e.createElement(Z.Field,{as:Q.o,"aria-label":`row ${u+1} value`,label:a({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${u}.value`,error:o.headers?.[u]?.value&&a({id:o.headers[u]?.value,defaultMessage:o.headers[u]?.value})})),e.createElement(z.k,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:o.headers?.[u]?.value?0:5},e.createElement(n.RemoveRoundedButton,{onClick:()=>r.headers.length!==1&&c(u),label:a({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:u+1})})))))),e.createElement(D.P,{col:12},e.createElement(Le.A,{type:"button",onClick:()=>{s({key:"",value:""})},startIcon:e.createElement(Te.default,null)},a({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))},w=t(35331),$e=t(27169);const le=ye.default.svg(({theme:a,color:r})=>`
17
- width: ${12/16}rem;
18
- height: ${12/16}rem;
19
-
20
- path {
21
- fill: ${a.colors[r]};
22
- }
23
- `),y=({isPending:a,statusCode:r})=>{const{formatMessage:o}=(0,N.useIntl)();return a?e.createElement(W.K,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(le,{as:$e.Z}),e.createElement(F.Z,null,o({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):r>=200&&r<300?e.createElement(W.K,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(le,{as:k.Z,color:"success700"}),e.createElement(F.Z,null,o({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):r>=300?e.createElement(W.K,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(le,{as:w.default,color:"danger700"}),e.createElement(F.Z,null,o({id:"Settings.error",defaultMessage:"error"})," ",r)):null};y.propTypes={isPending:d().bool.isRequired,statusCode:d().number},y.defaultProps={statusCode:void 0};const se=({statusCode:a,message:r})=>{const{formatMessage:o}=(0,N.useIntl)();return a>=200&&a<300?e.createElement(z.k,{justifyContent:"flex-end"},e.createElement(F.Z,{textColor:"neutral600",ellipsis:!0},o({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):a>=300?e.createElement(z.k,{justifyContent:"flex-end"},e.createElement(z.k,{maxWidth:(0,n.pxToRem)(250),justifyContent:"flex-end",title:r},e.createElement(F.Z,{ellipsis:!0,textColor:"neutral600"},r))):null};se.propTypes={statusCode:d().number,message:d().string},se.defaultProps={statusCode:void 0,message:void 0};const Oe=({onCancel:a})=>{const{formatMessage:r}=(0,N.useIntl)();return e.createElement(z.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:a,type:"button"},e.createElement(W.K,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(F.Z,{textColor:"neutral400"},r({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(le,{as:w.default,color:"neutral400"}))))};Oe.propTypes={onCancel:d().func.isRequired};const he=({isPending:a,onCancel:r,response:o})=>{const{statusCode:s,message:c}=o,{formatMessage:O}=(0,N.useIntl)();return e.createElement(ae.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(me.r,{gap:4,style:{alignItems:"center"}},e.createElement(D.P,{col:3},e.createElement(F.Z,null,O({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(D.P,{col:3},e.createElement(y,{isPending:a,statusCode:s})),e.createElement(D.P,{col:6},a?e.createElement(Oe,{onCancel:r}):e.createElement(se,{statusCode:s,message:c}))))};he.defaultProps={isPending:!1,onCancel(){},response:{}},he.propTypes={isPending:d().bool,onCancel:d().func,response:d().object};var $=he,B=t(5173);const H=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,Be=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ie=B.Ry().shape({name:B.Z_(n.translatedErrors.string).required(n.translatedErrors.required).matches(H,n.translatedErrors.regex),url:B.Z_(n.translatedErrors.string).required(n.translatedErrors.required).matches(Be,n.translatedErrors.regex),headers:B.Vo(a=>{let r=B.IX();if(a.length===1){const{key:o,value:s}=a[0];if(!o&&!s)return r}return r.of(B.Ry().shape({key:B.Z_().required(n.translatedErrors.required),value:B.Z_().required(n.translatedErrors.required)}))}),events:B.IX()});const V=({handleSubmit:a,data:r,triggerWebhook:o,isCreating:s,isTriggering:c,triggerResponse:O,isDraftAndPublishEvents:u})=>{const{formatMessage:f}=(0,N.useIntl)(),[m,K]=(0,e.useState)(!1);return e.createElement(Z.Formik,{onSubmit:a,initialValues:{name:r?.name||"",url:r?.url||"",headers:Object.keys(r?.headers||[]).length?Object.entries(r.headers).map(([b,S])=>({key:b,value:S})):[{key:"",value:""}],events:r?.events||[]},validationSchema:ie,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:b,errors:S})=>e.createElement(n.Form,{noValidate:!0},e.createElement(be.T,{primaryAction:e.createElement(W.K,{horizontal:!0,spacing:2},e.createElement(ue.z,{onClick:()=>{o(),K(!0)},variant:"tertiary",startIcon:e.createElement(ve,null),disabled:s||c,size:"L"},f({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(ue.z,{startIcon:e.createElement(k.Z,null),onClick:b,type:"submit",size:"L"},f({id:"global.save",defaultMessage:"Save"}))),title:s?f({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):r?.name,navigationAction:e.createElement(n.Link,{startIcon:e.createElement(h.Z,null),to:"/settings/webhooks"},f({id:"global.back",defaultMessage:"Back"}))}),e.createElement(Re.D,null,e.createElement(W.K,{spacing:4},m&&e.createElement("div",{className:"trigger-wrapper"},e.createElement($,{isPending:c,response:O,onCancel:()=>K(!1)})),e.createElement(ae.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(W.K,{spacing:6},e.createElement(me.r,{gap:6},e.createElement(D.P,{col:6},e.createElement(Z.Field,{as:Q.o,name:"name",error:S.name&&f({id:S.name}),label:f({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(D.P,{col:12},e.createElement(Z.Field,{as:Q.o,name:"url",error:S.url&&f({id:S.url}),label:f({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(xe,null),e.createElement(J,{isDraftAndPublish:u})))))))};V.propTypes={data:d().object,handleSubmit:d().func.isRequired,triggerWebhook:d().func.isRequired,isCreating:d().bool.isRequired,isDraftAndPublishEvents:d().bool.isRequired,isTriggering:d().bool.isRequired,triggerResponse:d().object},V.defaultProps={data:void 0,triggerResponse:void 0};var de=V,_=t(92891);const Se=a=>{const r={...a};return(0,_.set)(r,"headers",Ke(a.headers)),r},Ke=a=>a.reduce((r,o)=>{const{key:s,value:c}=o;return s!==""?{...r,[s]:c}:r},{});var Ee=Se,T=t(98399),Fe=()=>{const{params:{id:a}}=(0,x.useRouteMatch)("/settings/webhooks/:id"),{replace:r}=(0,x.useHistory)(),{lockApp:o,unlockApp:s}=(0,n.useOverlayBlocker)(),c=(0,n.useNotification)(),O=(0,P.useQueryClient)(),{isLoading:u,collectionTypes:f}=(0,E.bP)(),m=a==="create",K=(0,e.useCallback)(async j=>{const[X,{data:Ve}]=await(0,n.to)((0,n.request)(`/admin/webhooks/${j}`,{method:"GET"}));return X?(c({type:"warning",message:{id:"notification.error"}}),null):Ve},[c]),{isLoading:b,data:S}=(0,P.useQuery)(["get-webhook",a],()=>K(a),{enabled:!m}),{isLoading:v,data:ee,isIdle:l,mutate:g}=(0,P.useMutation)(()=>p.be.post(`/admin/webhooks/${a}/trigger`)),U=()=>g(null,{onError(){c({type:"warning",message:{id:"notification.error"}})}}),Y=(0,P.useMutation)(j=>(0,n.request)("/admin/webhooks",{method:"POST",body:j})),Ue=(0,P.useMutation)(({id:j,body:X})=>(0,n.request)(`/admin/webhooks/${j}`,{method:"PUT",body:X})),Ze=async j=>{m?(o(),Y.mutate(Ee(j),{onSuccess(X){c({type:"success",message:{id:"Settings.webhooks.created"}}),r(`/settings/webhooks/${X.data.id}`),s()},onError(X){c({type:"warning",message:{id:"notification.error"}}),T.log(X),s()}})):(o(),Ue.mutate({id:a,body:Ee(j)},{onSuccess(){O.invalidateQueries(["get-webhook",a]),c({type:"success",message:{id:"notification.form.success.fields"}}),s()},onError(X){c({type:"warning",message:{id:"notification.error"}}),T.log(X),s()}}))},ze=(0,e.useMemo)(()=>f.some(j=>j.options.draftAndPublish===!0),[f]);return b||u?e.createElement(n.LoadingIndicatorPage,null):e.createElement(L.o,null,e.createElement(n.SettingsPageTitle,{name:"Webhooks"}),e.createElement(de,{handleSubmit:Ze,data:S,triggerWebhook:U,isCreating:m,isTriggering:v,isTriggerIdle:l,triggerResponse:ee?.data.data,isDraftAndPublishEvents:ze}))}},33238:function(te,M,t){t.r(M);var e=t(32735),n=t(88425),L=t.n(n),P=t(83983),x=t(41513);const E=()=>e.createElement(n.CheckPagePermissions,{permissions:P.Z.settings.webhooks.create},e.createElement(x.Z,null));M.default=E},59021:function(te,M,t){t.r(M);var e=t(32735),n=t(88425),L=t.n(n),P=t(83983),x=t(41513);const E=()=>e.createElement(n.CheckPagePermissions,{permissions:P.Z.settings.webhooks.update},e.createElement(x.Z,null));M.default=E},21590:function(te,M,t){t.d(M,{h:function(){return G},X:function(){return ge}});var e=t(32735),n=t(60216),L=t(57269),P=t(59002),x=t(96892),E=t(94486);const p={Close:"Close",CloseSelect:"CloseSelect",First:"First",Last:"Last",Next:"Next",Open:"Open",PageDown:"PageDown",PageUp:"PageUp",Previous:"Previous",Select:"Select",Space:"Space",Type:"Type"},ne={Close:"Close",First:"First",Last:"Last",Next:"Next",Open:"Open",Previous:"Previous",Select:"Select",UpLevel:"UpLevel"};function d(i=[],C=null,A=[]){const q=String(C??"").toLowerCase();return q?i.filter(R=>R.props.children.toString().toLowerCase().includes(q)&&A.indexOf(R)<0):i}function h(i,C){if(!C&&i===E.y.DOWN)return p.Open;if(i===E.y.DOWN)return p.Next;if(i===E.y.UP)return p.Previous;if(i===E.y.HOME)return p.First;if(i===E.y.END)return p.Last;if(i===E.y.ESCAPE)return p.Close;if(i===E.y.ENTER)return p.CloseSelect;if(i===E.y.BACKSPACE||i===E.y.CLEAR||i.length===1)return p.Type}function k(i,C,A){switch(A){case p.First:return 0;case p.Last:return C;case p.Previous:return Math.max(0,i-1);case p.Next:return Math.min(C,i+1);default:return i}}function ce(i){x(i,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}).forEach(({el:C,top:A,left:q})=>{C.scrollTop=A,C.scrollLeft=q})}var ve=t(87933),be=t(93958),Re=t(46406),ae=t(72850),ue=t(49372),W=t(97405),Q=t(91225),me=t(90333);const D=({options:i,activeOptionRef:C})=>((0,e.useEffect)(()=>{C.current&&ce(C.current)},[C]),i);D.defaultProps={activeOptionRef:void 0},D.propTypes={options:n.array.isRequired};var Z=t(87107),N=t(76437),Ce=t(67014),F=t(47851),ye=t(27677),Ie=t(3685);const G=({children:i,clearLabel:C,creatable:A,createMessage:q,disabled:R,error:pe,hasMoreItems:re,hint:fe,label:J,labelAction:Te,loading:z,loadingMessage:Le,noOptionsMessage:Ae,onChange:Me,onClear:ke,onCreateOption:Pe,onInputChange:oe,onLoadMore:De,placeholder:we,required:xe,value:w,...$e})=>{const le=()=>i.find(l=>l.props?.value.toLowerCase()===w.toLowerCase()).props?.children,[y,se]=(0,e.useState)(0),[Oe,he]=(0,e.useState)(null),[$,B]=(0,e.useState)(i),[H,Be]=(0,e.useState)(!1),[I,ie]=(0,e.useState)(""),V=(0,e.useRef)(),de=(0,e.useRef)(!1),_=(0,e.useRef)(),Se=(0,e.useRef)(),Ke=(0,e.useRef)(),Ee=(0,e.useRef)(!0),T=(0,P.M)("combobox"),We=`${T}-label`;if(!J&&!$e["aria-label"])throw new Error('The Combobox component needs a "label" or an "aria-label" props');(0,e.useEffect)(()=>{B(d(i,I))},[I,i]),(0,e.useEffect)(()=>{H&&V.current&&ce(V.current)},[y,H]),(0,e.useLayoutEffect)(()=>{Ee.current&&(Ee.current=!1)},[w]);const Fe=H?`${T}-${y}`:"",a=()=>{Me(null),ie("")},r=l=>{oe&&oe(l);const g=_.current.value;B(d(i,g)),se(0),he(null),I!==g&&ie(g),H||m(!0,!1)},o=l=>{const{key:g}=l,U=A&&I?$.length:$.length-1,Y=h(g,H);switch(w&&!I&&g===E.y.BACKSPACE&&a(),Y){case p.Next:{if(y===U){c(0);break}c(k(y,U,Y));break}case p.Previous:{if(y===0){c(U);break}c(k(y,U,Y));break}case p.Last:case p.First:{if(y===U){c(0);break}c(k(y,U,Y));break}case p.CloseSelect:l.preventDefault(),f(y);break;case p.Close:l.preventDefault(),m(!1);break;case p.Open:m(!0);break}},s=l=>{if(l.preventDefault(),w&&!de.current&&ie(""),de.current){de.current=!1;return}m(!1,!1)},c=l=>{se(l)},O=l=>{c(l),f(l)},u=()=>{de.current=!0},f=l=>{const g=$[l];if(ie(""),g){Me(g.props.value),m(!1);return}A&&(Pe(I),m(!1))},m=(l,g=!0)=>{Be(l),g&&_.current.focus()},K=e.Children.toArray($).map((l,g)=>{const U=y===g;return(0,e.cloneElement)(l,{id:`${T}-${g}`,"aria-selected":Oe===g,"aria-posinset":g+1,"aria-setsize":e.Children.toArray($).length,ref(Y){U&&(V.current=Y)},onClick:()=>O(g),onMouseDown:u,isSelected:U})}),b=()=>{_.current.focus(),ke&&ke(),a()},S=()=>{_.current.focus(),m(!0)},v=()=>{const l=$.findIndex(g=>g.props?.children===I);return I&&l===-1},ee=l=>{l.preventDefault(),m(l,!0)};return e.createElement(Z.g,{hint:fe,error:pe,id:T,required:xe},e.createElement(Ie.T,{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text"},w),e.createElement(ye.K,{spacing:J||fe||pe?1:0},J&&e.createElement(N.Q,{action:Te},J),e.createElement(Q.d8,{ref:Se,$disabled:R,hasError:pe},e.createElement(Q.fv,{wrap:"wrap"},!I&&w&&e.createElement(Q.K7,{id:`${T}-selected-value`},e.createElement(ue.Z,null,le())),e.createElement(Q.II,{"aria-activedescendant":Fe,"aria-autocomplete":"list","aria-controls":`${T}-listbox`,"aria-disabled":R,"aria-expanded":H,"aria-haspopup":"listbox","aria-labelledby":J?We:void 0,autoComplete:"off",autoCorrect:"off",id:T,onBlur:R?void 0:s,onClick:R?void 0:ee,onInput:R?void 0:r,onKeyDown:R?void 0:o,placeholder:w?"":we,readOnly:R,ref:_,required:xe,role:"combobox",spellCheck:"off",type:"text",value:I})),e.createElement(ve.k,null,(w||I)&&e.createElement(be.zb,{id:`${T}-clear`,"aria-label":C,disabled:R,paddingLeft:3,as:"button",onClick:b,type:"button"},e.createElement(L.Cross,null)),e.createElement(be.AV,{disabled:R,paddingLeft:3,"aria-hidden":!0,as:"button",onClick:S,tabIndex:-1,type:"button"},e.createElement(L.CarretDown,null)))),e.createElement(Ce.J,null),e.createElement(F.c,null)),H&&e.createElement(Re.J,{id:`${T}-popover`,source:Se,spacing:4,fullWidth:!0,intersectionId:`${T}-listbox-popover-intersection`,onReachEnd:re&&!z?De:void 0},e.createElement("div",{role:"listbox",ref:Ke,id:`${T}-listbox`,"aria-labelledby":J?We:void 0},(Boolean($.length)||A)&&e.createElement(e.Fragment,null,e.createElement(D,{activeOptionRef:V,options:K}),v()&&A&&e.createElement(me.O,{isSelected:y===$.length,ref:l=>{y===$.length&&(V.current=l)},onMouseDown:u,onClick:()=>f(),taindex:0},q(I))),!$.length&&!A&&!z&&e.createElement(ae.x,{paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,ref:V},e.createElement(ue.Z,{textColor:"neutral800"},Ae(I))),z&&e.createElement(ve.k,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2},e.createElement(W.a,{small:!0},Le)))))},ge=i=>e.createElement(G,{...i,creatable:!0});G.defaultProps={"aria-label":void 0,clearLabel:"clear",creatable:!1,createMessage:i=>`Create "${i}"`,disabled:!1,error:void 0,hasMoreItems:!1,hint:void 0,label:void 0,loading:!1,loadingMessage:"Loading content...",noOptionsMessage:()=>"No results found",onClear:void 0,onCreateOption:void 0,onInputChange:void 0,onLoadMore:void 0,placeholder:"Select or enter a value",value:void 0},ge.defaultProps=G.defaultProps,G.propTypes={"aria-label":n.string,children:n.oneOfType([n.arrayOf(n.node),n.node]),clearLabel:n.string,creatable:n.bool,createMessage:n.func,disabled:n.bool,error:n.string,hasMoreItems:n.bool,hint:n.oneOfType([n.string,n.node,n.arrayOf(n.node)]),label:n.string,labelAction:n.element,loading:n.bool,loadingMessage:n.string,noOptionsMessage:n.func,onChange:n.func.isRequired,onClear:n.func,onCreateOption:n.func,onInputChange:n.func,onLoadMore:n.func,placeholder:n.string,value:n.string},ge.propTypes={...G.propTypes,onCreateOption:n.func.isRequired}},90333:function(te,M,t){t.d(M,{O:function(){return x}});var e=t(32735),n=t(60216),L=t(49372),P=t(91225);const x=(0,e.forwardRef)(({isSelected:E,children:p,...ne},d)=>e.createElement(P.Zq,{hasRadius:!0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,role:"option",background:"neutral0",isSelected:E,ref:d,...ne},e.createElement(L.Z,{textColor:E?"primary600":"neutral800",fontWeight:E?"bold":null},p)));x.defaultProps={isSelected:!1},x.propTypes={children:n.oneOfType([n.string,n.number]).isRequired,isSelected:n.bool},x.displayName="ComboboxOption"},91225:function(te,M,t){t.d(M,{II:function(){return ne},K7:function(){return E},Zq:function(){return d},d8:function(){return x},fv:function(){return p}});var e=t(83292),n=t(72850),L=t(87933),P=t(30350);const x=(0,e.default)(L.k)`
24
- position: relative;
25
- border: 1px solid ${({theme:h,hasError:k})=>k?h.colors.danger600:h.colors.neutral200};
26
- padding-right: ${({theme:h})=>h.spaces[3]};
27
- padding-left: ${({theme:h})=>h.spaces[3]};
28
- border-radius: ${({theme:h})=>h.borderRadius};
29
- background: ${({theme:h})=>h.colors.neutral0};
30
-
31
- ${({theme:h,$disabled:k})=>k?`
32
- color: ${h.colors.neutral600};
33
- background: ${h.colors.neutral150};
34
- `:void 0}
35
-
36
- ${(0,P.k3)()}
37
- `,E=e.default.div`
38
- padding: 1px 2px;
39
- grid-area: 1 / 1 / 2 / 3;
40
- `,p=(0,e.default)(L.k)`
41
- display: grid;
42
- flex: 1 1 0%;
43
- position: relative;
44
- `,ne=e.default.input`
45
- display: inline-grid;
46
- grid-area: 1 / 1 / 2 / 3;
47
- grid-template-columns: 0px min-content;
48
- background: transparent;
49
- min-height: ${40/16}rem;
50
- border: none;
51
- flex: 1;
52
- font-size: ${14/16}rem;
53
- color: ${({theme:h})=>h.colors.neutral800};
54
- outline: none;
55
- &:focus-visible {
56
- outline: none;
57
- box-shadow: none;
58
- outline-offset: 0;
59
- }
60
- &[aria-disabled='true'] {
61
- background: inherit;
62
- color: inherit;
63
- cursor: not-allowed;
64
- }
65
- `,d=(0,e.default)(n.x)`
66
- width: 100%;
67
- border: none;
68
- text-align: left;
69
- outline-offset: -3px;
70
- ${({isSelected:h,theme:k})=>h&&`background: ${k.colors.primary100};`}
71
-
72
- &:hover {
73
- background: ${({theme:h})=>h.colors.primary100};
74
- }
75
- `},27169:function(te,M,t){t.d(M,{Z:function(){return n}});var e=t(74512);function n(L){return(0,e.jsx)("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...L,children:(0,e.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.057 18c.552 0 1 .451 1 .997v4.006a1 1 0 01-.941.995l-.059.002c-.552 0-1-.451-1-.997v-4.006a1 1 0 01.941-.995l.06-.002zm-3.06-.736l.055.03c.478.276.64.89.367 1.364l-2.002 3.468a1 1 0 01-1.31.394l-.055-.03a1.002 1.002 0 01-.368-1.363l2.003-3.469a1 1 0 011.31-.394zm7.42.394l2.002 3.468a1 1 0 01-.314 1.331l-.053.033a1.002 1.002 0 01-1.365-.363l-2.003-3.469a1 1 0 01.314-1.33l.054-.034a1.002 1.002 0 011.364.364zm-9.548-2.66l.033.054c.276.478.11 1.091-.364 1.364L3.07 18.42a1 1 0 01-1.331-.314l-.033-.053a1.001 1.001 0 01.364-1.365l3.468-2.003a1 1 0 011.33.314zm11.79-.313l3.468 2.002a1 1 0 01.393 1.31l-.03.055c-.276.478-.89.64-1.363.367l-3.469-2.003a1 1 0 01-.394-1.309l.03-.055c.276-.479.89-.64 1.364-.367zm4.344-3.628a1 1 0 01.995.941l.002.06c0 .551-.451 1-.997 1h-4.006a1 1 0 01-.995-.942L18 12.057c0-.552.451-1 .997-1h4.006zm-18 0a1 1 0 01.995.941l.002.06c0 .551-.451 1-.998 1H.998a1 1 0 01-.996-.942L0 12.057c0-.552.451-1 .998-1h4.004zm17.454-5.059l.033.054c.277.478.11 1.091-.363 1.365l-3.469 2.002a1 1 0 01-1.33-.314l-.034-.053a1.002 1.002 0 01.364-1.365l3.468-2.003a1 1 0 011.331.314zM3.07 5.684l3.468 2.003a1 1 0 01.394 1.31l-.03.055c-.276.478-.89.64-1.364.367L2.07 7.417a1 1 0 01-.394-1.31l.03-.055c.276-.479.89-.64 1.364-.368zm14.926-4.008l.056.03c.478.276.64.89.367 1.364l-2.003 3.468a1 1 0 01-1.309.394l-.055-.03a1.002 1.002 0 01-.367-1.364l2.002-3.468a1 1 0 011.31-.394zm-10.58.394L9.42 5.538a1 1 0 01-.314 1.33l-.053.034a1.002 1.002 0 01-1.365-.364L5.684 3.07a1 1 0 01.314-1.331l.054-.033a1.002 1.002 0 011.365.364zM12.058 0c.552 0 1 .451 1 .998v4.004a1 1 0 01-.941.996L12.057 6c-.552 0-1-.451-1-.998V.998a1 1 0 01.941-.996l.06-.002z",fill:"#212134"})})}}}]);
@@ -1,42 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{74767:function(We,S,t){t.r(S),t.d(S,{default:function(){return ge}});var e=t(32735),s=t(88425),W=t(83983),B=t(5141),U=t(5636),F=t(96709),X=t(28356),j=t(99223),J=t(17e3),Q=t(9695),M=t(87933),Y=t(27677),A=t(50563),x=t(44426),q=t(94745),_=t(73269),ee=t(76330),$=t(29005),d=t(66735),te=t(3594),g=t(49372),H=t(41415),ne=t(3685),b=t(60216),P=t(83292),K=t(72850);const y=P.default.div`
2
- background: ${({theme:a})=>a.colors.danger500};
3
- border: none;
4
- border-radius: 16px;
5
- position: relative;
6
- height: ${24/16}rem;
7
- width: ${40/16}rem;
8
-
9
- & span {
10
- font-size: ${({visibleLabels:a})=>a?"1rem":0};
11
- }
12
-
13
- &:before {
14
- content: '';
15
- background: ${({theme:a})=>a.colors.neutral0};
16
- width: 1rem;
17
- height: 1rem;
18
- border-radius: 50%;
19
- position: absolute;
20
- transition: all 0.5s;
21
- left: ${({theme:a})=>a.spaces[1]};
22
- top: ${({theme:a})=>a.spaces[1]};
23
- }
24
-
25
- @media (prefers-reduced-motion: reduce) {
26
- &:before {
27
- transition: none;
28
- }
29
- }
30
- `,ae=P.default.button`
31
- background: transparent;
32
- padding: 0;
33
- border: none;
34
-
35
- &[aria-checked='true'] ${y} {
36
- background: ${({theme:a})=>a.colors.success500};
37
- }
38
-
39
- &[aria-checked='true'] ${y}:before {
40
- transform: translateX(1rem);
41
- }
42
- `,T=e.forwardRef(({label:a,onChange:i,onLabel:o,offLabel:r,selected:h,visibleLabels:m,...u},l)=>e.createElement(ae,{ref:l,role:"switch","aria-checked":h,"aria-label":a,onClick:i,visibleLabels:m,type:"button",...u},e.createElement(M.k,null,e.createElement(y,null,e.createElement("span",null,o),e.createElement("span",null,r)),m&&e.createElement(K.x,{as:"span","aria-hidden":!0,paddingLeft:2,color:h?"success600":"danger600"},h?o:r))));T.defaultProps={onLabel:"On",offLabel:"Off",visibleLabels:!1},T.propTypes={label:b.string.isRequired,offLabel:b.string,onChange:b.func.isRequired,onLabel:b.string,selected:b.bool.isRequired,visibleLabels:b.bool},T.displayName="Switch";var le=t(27649),oe=t(94638),C=t(19406),se=t(68625),G=t(4038),ie=t(54725),re=t(97889),de=t(3040),ce=t.n(de);const ue={webhooks:[],webhooksToDelete:[],webhookToDelete:null,loadingWebhooks:!0};var Ee=(a,i)=>(0,re.default)(a,o=>{switch(i.type){case"GET_DATA_SUCCEEDED":{o.webhooks=i.data,o.loadingWebhooks=!1;break}case"TOGGLE_LOADING":{o.loadingWebhooks=!a.loadingWebhooks;break}case"SET_WEBHOOK_ENABLED":{ce()(o,["webhooks",...i.keys],i.value);break}case"SET_WEBHOOK_TO_DELETE":{o.webhookToDelete=i.id;break}case"SET_WEBHOOKS_TO_DELETE":{i.value?o.webhooksToDelete.push(i.id):o.webhooksToDelete=a.webhooksToDelete.filter(r=>r!==i.id);break}case"SET_ALL_WEBHOOKS_TO_DELETE":{a.webhooksToDelete.length===0?o.webhooksToDelete=a.webhooks.map(r=>r.id):o.webhooksToDelete=[];break}case"WEBHOOKS_DELETED":{o.webhooks=a.webhooks.filter(r=>!a.webhooksToDelete.includes(r.id)),o.webhooksToDelete=[];break}case"WEBHOOK_DELETED":{o.webhooks=a.webhooks.filter((r,h)=>h!==i.index),o.webhookToDelete=null;break}default:return o}}),he=t(98399),me=()=>{const{isLoading:a,allowedActions:{canCreate:i,canRead:o,canUpdate:r,canDelete:h}}=(0,s.useRBAC)(W.Z.settings.webhooks),m=(0,s.useNotification)(),u=(0,e.useRef)(!0),{formatMessage:l}=(0,U.useIntl)(),[be,v]=(0,e.useState)(!1),[{webhooks:L,webhooksToDelete:O,webhookToDelete:p,loadingWebhooks:w},E]=(0,e.useReducer)(Ee,ue),{notifyStatus:fe}=(0,oe.G)();(0,s.useFocusWhenNavigate)();const{push:Te}=(0,B.useHistory)(),{pathname:N}=(0,B.useLocation)(),D=L.length,f=O.length,I=n=>L.findIndex(c=>c.id===n);(0,e.useEffect)(()=>(u.current=!0,()=>{u.current=!1}),[]),(0,e.useEffect)(()=>{o&&ve()},[o]);const ve=async()=>{try{const{data:n}=await(0,s.request)("/admin/webhooks",{method:"GET"});u.current&&(E({type:"GET_DATA_SUCCEEDED",data:n}),fe("webhooks have been loaded"))}catch(n){he.log(n),u.current&&(n.code!==20&&m({type:"warning",message:{id:"notification.error"}}),E({type:"TOGGLE_LOADING"}))}},Le=()=>{v(n=>!n)},De=()=>{p?ke():ye()},ke=async()=>{try{await(0,s.request)(`/admin/webhooks/${p}`,{method:"DELETE"}),E({type:"WEBHOOK_DELETED",index:I(p)})}catch(n){n.code!==20&&m({type:"warning",message:{id:"notification.error"}})}v(!1)},ye=async()=>{const n={ids:O};try{await(0,s.request)("/admin/webhooks/batch-delete",{method:"POST",body:n}),u.current&&E({type:"WEBHOOKS_DELETED"})}catch(c){u.current&&c.code!==20&&m({type:"warning",message:{id:"notification.error"}})}v(!1)},R=n=>{v(!0),n!=="all"&&E({type:"SET_WEBHOOK_TO_DELETE",id:n})},Ce=async(n,c)=>{const V=I(c),we=L[V],Z=[V,"isEnabled"],z={...we,isEnabled:n};delete z.id;try{E({type:"SET_WEBHOOK_ENABLED",keys:Z,value:n}),await(0,s.request)(`/admin/webhooks/${c}`,{method:"PUT",body:z})}catch(Se){u.current&&(E({type:"SET_WEBHOOK_ENABLED",keys:Z,value:!n}),Se.code!==20&&m({type:"warning",message:{id:"notification.error"}}))}},Oe=()=>{E({type:"SET_ALL_WEBHOOKS_TO_DELETE"})},pe=(n,c)=>{E({type:"SET_WEBHOOKS_TO_DELETE",value:n,id:c})},k=n=>{Te(`${N}/${n}`)};return e.createElement(F.A,null,e.createElement(s.SettingsPageTitle,{name:"Webhooks"}),e.createElement(le.o,{"aria-busy":a||w},e.createElement(X.T,{title:l({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:l({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:i&&!w&&e.createElement(s.LinkButton,{startIcon:e.createElement(C.default,null),variant:"default",to:`${N}/create`,size:"S"},l({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),f>0&&h&&e.createElement(j.Z,{startActions:e.createElement(e.Fragment,null,e.createElement(g.Z,{variant:"epsilon",textColor:"neutral600"},l({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected"},{webhooksToDeleteLength:f})),e.createElement(H.z,{onClick:()=>R("all"),startIcon:e.createElement(G.default,null),size:"L",variant:"danger-light"},l({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(J.D,null,a||w?e.createElement(K.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(s.LoadingIndicatorPage,null)):e.createElement(e.Fragment,null,D>0?e.createElement(q.i,{colCount:5,rowCount:D+1,footer:e.createElement(_.c,{onClick:()=>i?k("create"):{},icon:e.createElement(C.default,null)},l({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(ee.h,null,e.createElement($.Tr,null,e.createElement(d.Th,null,e.createElement(x.C,{"aria-label":l({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:f>0&&f<D,value:f===D,onValueChange:Oe})),e.createElement(d.Th,{width:"20%"},e.createElement(g.Z,{variant:"sigma",textColor:"neutral600"},l({id:"global.name",defaultMessage:"Name"}))),e.createElement(d.Th,{width:"60%"},e.createElement(g.Z,{variant:"sigma",textColor:"neutral600"},l({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(d.Th,{width:"20%"},e.createElement(g.Z,{variant:"sigma",textColor:"neutral600"},l({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(d.Th,null,e.createElement(ne.T,null,l({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(te.p,null,L.map(n=>e.createElement($.Tr,{key:n.id,...(0,s.onRowClick)({fn:()=>k(n.id),condition:r})},e.createElement(d.Td,{...s.stopPropagation},e.createElement(x.C,{"aria-label":`${l({id:"global.select",defaultMessage:"Select"})} ${n.name}`,value:O?.includes(n.id),onValueChange:c=>pe(c,n.id),id:"select",name:"select"})),e.createElement(d.Td,null,e.createElement(g.Z,{fontWeight:"semiBold",textColor:"neutral800"},n.name)),e.createElement(d.Td,null,e.createElement(g.Z,{textColor:"neutral800"},n.url)),e.createElement(d.Td,null,e.createElement(M.k,{...s.stopPropagation},e.createElement(T,{onLabel:l({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:l({id:"global.disabled",defaultMessage:"Disabled"}),label:`${n.name} ${l({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:n.isEnabled,onChange:()=>Ce(!n.isEnabled,n.id),visibleLabels:!0}))),e.createElement(d.Td,null,e.createElement(Y.K,{horizontal:!0,spacing:1,...s.stopPropagation},r&&e.createElement(A.h,{onClick:()=>{k(n.id)},label:l({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(se.Z,null),noBorder:!0}),h&&e.createElement(A.h,{onClick:()=>R(n.id),label:l({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(G.default,null),noBorder:!0,id:`delete-${n.id}`}))))))):e.createElement(Q.x,{icon:e.createElement(ie.default,{width:"160px"}),content:l({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(H.z,{variant:"secondary",startIcon:e.createElement(C.default,null),onClick:()=>i?k("create"):{}},l({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))})))),e.createElement(s.ConfirmDialog,{isOpen:be,onToggleDialog:Le,onConfirm:De}))},ge=()=>e.createElement(s.CheckPagePermissions,{permissions:W.Z.settings.webhooks.main},e.createElement(me,null))}}]);