@strapi/admin 4.2.0-beta.2 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/admin/src/app.js +4 -7
  2. package/admin/src/assets/images/homepage-logo.png +0 -0
  3. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +2 -6
  4. package/admin/src/components/ConfigurationsProvider/index.js +51 -0
  5. package/admin/src/components/ConfigurationsProvider/reducer.js +28 -0
  6. package/admin/src/components/GuidedTour/Homepage/index.js +1 -2
  7. package/admin/src/components/GuidedTour/Modal/components/Stepper.js +1 -2
  8. package/admin/src/components/LeftMenu/index.js +19 -7
  9. package/admin/src/components/Notifications/Notification/index.js +2 -2
  10. package/admin/src/components/Providers/index.js +8 -4
  11. package/admin/src/components/UnauthenticatedLogo/index.js +4 -2
  12. package/admin/src/components/UpgradePlanModal/index.js +6 -2
  13. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
  14. package/admin/src/content-manager/components/SelectMany/ListItem.js +1 -2
  15. package/admin/src/content-manager/components/SelectWrapper/index.js +8 -7
  16. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +1 -1
  17. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +2 -2
  18. package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -0
  19. package/admin/src/content-manager/pages/App/LeftMenu/index.js +8 -7
  20. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
  21. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -2
  22. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -2
  23. package/admin/src/content-manager/pages/EditView/Header/index.js +3 -3
  24. package/admin/src/content-manager/pages/EditView/index.js +1 -4
  25. package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -2
  26. package/admin/src/content-manager/pages/ListView/index.js +1 -1
  27. package/admin/src/content-manager/pages/NoContentType/index.js +1 -2
  28. package/admin/src/hooks/useFetchMarketplaceProviders/index.js +23 -0
  29. package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +11 -0
  30. package/admin/src/pages/Admin/index.js +5 -15
  31. package/admin/src/pages/App/index.js +9 -18
  32. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -2
  33. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -1
  34. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -2
  35. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -2
  36. package/admin/src/pages/AuthPage/components/Register/index.js +12 -12
  37. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -4
  38. package/admin/src/pages/HomePage/ContentBlocks.js +15 -2
  39. package/admin/src/pages/HomePage/HomeHeader.js +2 -2
  40. package/admin/src/pages/HomePage/SocialLinks.js +4 -3
  41. package/admin/src/pages/InternalErrorPage/index.js +1 -2
  42. package/admin/src/pages/MarketplacePage/components/{EmptyPluginSearch/EmptyPluginGrid.js → EmptyNpmPackageSearch/EmptyNpmPackageGrid.js} +1 -1
  43. package/admin/src/pages/MarketplacePage/components/{EmptyPluginSearch → EmptyNpmPackageSearch}/index.js +6 -4
  44. package/admin/src/pages/MarketplacePage/components/{PluginCard → NpmPackageCard}/InstallPluginButton.js +0 -0
  45. package/admin/src/pages/MarketplacePage/components/{PluginCard → NpmPackageCard}/index.js +26 -13
  46. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +42 -0
  47. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +14 -6
  48. package/admin/src/pages/MarketplacePage/index.js +99 -37
  49. package/admin/src/pages/NotFoundPage/index.js +1 -2
  50. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +5 -4
  51. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +1 -1
  52. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/UpdateButton/index.js +1 -1
  53. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +1 -1
  54. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +85 -0
  55. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/init.js +13 -0
  56. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +43 -0
  57. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +118 -0
  58. package/admin/src/pages/{App → SettingsPage/pages/ApplicationInfosPage/components/LogoInput}/reducer.js +13 -7
  59. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/stepper.js +25 -0
  60. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +67 -0
  61. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +176 -0
  62. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +82 -0
  63. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +51 -0
  64. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +97 -0
  65. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +85 -0
  66. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +28 -0
  67. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +155 -87
  68. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +16 -0
  69. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/constants.js +3 -0
  70. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +17 -0
  71. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +76 -0
  72. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +17 -0
  73. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +21 -0
  74. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +1 -1
  75. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +1 -1
  76. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +1 -2
  77. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +1 -1
  78. package/admin/src/reducers.js +2 -4
  79. package/admin/src/translations/en.json +33 -3
  80. package/admin/src/translations/pl.json +264 -12
  81. package/admin/src/translations/vi.json +17 -17
  82. package/build/1856.6a94980b.chunk.js +172 -0
  83. package/build/2077.5456ccd1.chunk.js +194 -0
  84. package/build/2758.9475712b.chunk.js +162 -0
  85. package/build/2912.dd031292.chunk.js +253 -0
  86. package/build/4715.4588fdf5.chunk.js +385 -0
  87. package/build/4800.d3ebc81d.chunk.js +1 -0
  88. package/build/4982.c57c5675.chunk.js +308 -0
  89. package/build/7197.ed8d6752.chunk.js +113 -0
  90. package/build/7589.577cf729.chunk.js +194 -0
  91. package/build/{7393.8ae60738.chunk.js → 7757.f6eb5e92.chunk.js} +89 -87
  92. package/build/7841.9e9cf739.chunk.js +253 -0
  93. package/build/8681.aec05472.chunk.js +163 -0
  94. package/build/9066.2847fdff.chunk.js +101 -0
  95. package/build/9115.abdf4e3b.chunk.js +1 -0
  96. package/build/9158.e48d88af.chunk.js +503 -0
  97. package/build/{7191.3bde3cbf.chunk.js → 9298.cb3b6bc1.chunk.js} +112 -113
  98. package/build/9420.ba035f29.chunk.js +508 -0
  99. package/build/948.d64fb515.chunk.js +2 -0
  100. package/build/Admin-authenticatedApp.e7ed0550.chunk.js +80 -0
  101. package/build/Admin_homePage.8c00145e.chunk.js +71 -0
  102. package/build/Admin_marketplace.a88d5bda.chunk.js +11 -0
  103. package/build/Admin_pluginsPage.e895d79f.chunk.js +1 -0
  104. package/build/{Admin_profilePage.62c203ad.chunk.js → Admin_profilePage.33cfed9b.chunk.js} +2 -2
  105. package/build/Admin_settingsPage.fe33e0a2.chunk.js +180 -0
  106. package/build/admin-edit-roles-page.e77a2acc.chunk.js +1 -0
  107. package/build/admin-edit-users.4c49fe98.chunk.js +11 -0
  108. package/build/admin-users.b89adf82.chunk.js +12 -0
  109. package/build/api-tokens-create-page.618b3e40.chunk.js +1 -0
  110. package/build/api-tokens-edit-page.8d19dfe1.chunk.js +1 -0
  111. package/build/api-tokens-list-page.274e1c80.chunk.js +15 -0
  112. package/build/{codemirror-css.b467b1de.chunk.js → codemirror-css.98490df3.chunk.js} +2 -2
  113. package/build/{codemirror-javacript.41bdefda.chunk.js → codemirror-javacript.cafbda9c.chunk.js} +1 -1
  114. package/build/codemirror-theme.b3c64617.chunk.js +34 -0
  115. package/build/content-manager.04b93497.chunk.js +1204 -0
  116. package/build/content-type-builder.b3139cb1.chunk.js +141 -0
  117. package/build/{cropper-css.ecc0d670.chunk.js → cropper-css.0055cd53.chunk.js} +2 -2
  118. package/build/email-settings-page.4ae595f6.chunk.js +103 -0
  119. package/build/en-json.0a5ba154.chunk.js +1 -0
  120. package/build/fb376b132d18bf4522ca.png +0 -0
  121. package/build/{fontawesome-css-all.04f33619.chunk.js → fontawesome-css-all.b88d464e.chunk.js} +3 -3
  122. package/build/{fontawesome-css.477ba714.chunk.js → fontawesome-css.59dc4459.chunk.js} +2 -2
  123. package/build/highlight.js.9d8ef460.chunk.js +86 -0
  124. package/build/i18n-settings-page.bdac3c7b.chunk.js +101 -0
  125. package/build/index.html +1 -1
  126. package/build/main.3257934a.js +8404 -0
  127. package/build/pl-json.f65302c2.chunk.js +1 -0
  128. package/build/{runtime~main.a32b12c8.js → runtime~main.de49adfd.js} +1 -1
  129. package/build/sso-settings-page.0b4d2106.chunk.js +1 -0
  130. package/build/upload-settings.cadfd452.chunk.js +101 -0
  131. package/build/upload-translation-ca-json.79159984.chunk.js +1 -0
  132. package/build/upload.fbc65439.chunk.js +105 -0
  133. package/build/users-advanced-settings-page.646b6f29.chunk.js +101 -0
  134. package/build/users-email-settings-page.8b561ea3.chunk.js +1 -0
  135. package/build/users-providers-settings-page.82141ace.chunk.js +1 -0
  136. package/build/users-roles-settings-page.28bf6bdc.chunk.js +30 -0
  137. package/build/vi-json.bf3424be.chunk.js +1 -0
  138. package/build/webhook-edit-page.ca670f8d.chunk.js +23 -0
  139. package/build/webhook-list-page.7057f1e8.chunk.js +133 -0
  140. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  141. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  142. package/ee/server/controllers/user.js +4 -0
  143. package/index.js +239 -53
  144. package/package.json +8 -12
  145. package/scripts/build.js +3 -17
  146. package/server/config/admin-actions.js +14 -0
  147. package/server/controllers/admin.js +29 -12
  148. package/server/controllers/user.js +4 -0
  149. package/server/policies/index.js +0 -1
  150. package/server/routes/admin.js +28 -9
  151. package/server/routes/serve-admin-panel.js +1 -1
  152. package/server/services/index.js +1 -0
  153. package/server/services/permission/permissions-manager/sanitize.js +22 -0
  154. package/server/services/project-settings.js +173 -0
  155. package/server/services/user.js +1 -1
  156. package/server/utils/index.d.ts +2 -0
  157. package/server/validation/project-settings.js +39 -0
  158. package/webpack.config.js +5 -28
  159. package/admin/src/content-manager/components/DynamicComponentCard/index.js +0 -43
  160. package/admin/src/pages/App/constants.js +0 -1
  161. package/admin/src/tsconfig.json +0 -10
  162. package/build/1856.521a99fd.chunk.js +0 -172
  163. package/build/20.cf744c35.chunk.js +0 -308
  164. package/build/2077.51485bfb.chunk.js +0 -194
  165. package/build/2135.95ee6de1.chunk.js +0 -162
  166. package/build/2524.688d0355.chunk.js +0 -1
  167. package/build/2897.8e7d5853.chunk.js +0 -184
  168. package/build/2912.79c2b3c8.chunk.js +0 -253
  169. package/build/2a9e9ef5c4c775bb7c7b.png +0 -0
  170. package/build/4073.f3936352.chunk.js +0 -1
  171. package/build/4715.77e04177.chunk.js +0 -385
  172. package/build/5232.928fea74.chunk.js +0 -989
  173. package/build/6229.26d93336.chunk.js +0 -194
  174. package/build/6281.f10a7e3a.chunk.js +0 -1
  175. package/build/6404.80bf5858.chunk.js +0 -506
  176. package/build/7009.79fce86d.chunk.js +0 -164
  177. package/build/7841.f0e7d629.chunk.js +0 -253
  178. package/build/7863.c1938f3f.chunk.js +0 -112
  179. package/build/9066.118ecccd.chunk.js +0 -101
  180. package/build/Admin-authenticatedApp.1f76af8f.chunk.js +0 -80
  181. package/build/Admin_homePage.8b391120.chunk.js +0 -71
  182. package/build/Admin_marketplace.21730109.chunk.js +0 -11
  183. package/build/Admin_pluginsPage.788fb2f6.chunk.js +0 -1
  184. package/build/Admin_settingsPage.9ce20f16.chunk.js +0 -170
  185. package/build/admin-edit-roles-page.75380ed4.chunk.js +0 -1
  186. package/build/admin-edit-users.05f7f389.chunk.js +0 -10
  187. package/build/admin-users.e03db115.chunk.js +0 -11
  188. package/build/api-tokens-create-page.c44e0c62.chunk.js +0 -1
  189. package/build/api-tokens-edit-page.30d0924d.chunk.js +0 -1
  190. package/build/api-tokens-list-page.6049cd23.chunk.js +0 -15
  191. package/build/codemirror-theme.cf9f9eb6.chunk.js +0 -34
  192. package/build/content-manager.2f0f9b15.chunk.js +0 -1204
  193. package/build/content-type-builder.ce7b7f42.chunk.js +0 -141
  194. package/build/email-settings-page.f67d13b2.chunk.js +0 -103
  195. package/build/en-json.3e1a222e.chunk.js +0 -1
  196. package/build/highlight.js.3381ffc3.chunk.js +0 -86
  197. package/build/i18n-settings-page.6b67cb75.chunk.js +0 -101
  198. package/build/main.e6045245.js +0 -7909
  199. package/build/pl-json.94f05d2c.chunk.js +0 -1
  200. package/build/sso-settings-page.e9034e22.chunk.js +0 -1
  201. package/build/upload-settings.3db55de0.chunk.js +0 -101
  202. package/build/upload.070c189b.chunk.js +0 -105
  203. package/build/users-advanced-settings-page.a23cda17.chunk.js +0 -101
  204. package/build/users-email-settings-page.0a096388.chunk.js +0 -1
  205. package/build/users-providers-settings-page.bfe7755a.chunk.js +0 -1
  206. package/build/users-roles-settings-page.c01bec1d.chunk.js +0 -30
  207. package/build/vi-json.3d14e91e.chunk.js +0 -1
  208. package/build/webhook-edit-page.d457087d.chunk.js +0 -23
  209. package/build/webhook-list-page.a4217ff2.chunk.js +0 -133
  210. package/server/policies/isTelemetryEnabled.js +0 -16
  211. package/utils/create-cache-dir.js +0 -161
  212. package/utils/get-custom-app-config-file.js +0 -23
  213. package/utils/get-custom-webpack-config.js +0 -38
  214. package/utils/get-plugins-path.js +0 -26
  215. package/utils/index.js +0 -13
  216. package/utils/should-build-admin.js +0 -52
  217. package/utils/watch-admin-files.js +0 -59
@@ -1,30 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{79634:(te,G,a)=>{a.r(G),a.d(G,{default:()=>Ts});var s=a(32735),C=a(5141),p=a(10938),b=a(42296),T=a(8091),_=a(44526),D=a(11856),E=a(16540),f=a(53214),U=a(28004),P=a(95602),B=a(29270),F=a(59290),N=a.n(F),v=a(5636),A=a(84968),V=a(58469),x=a(33234),re=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const Je=(r,e)=>re(void 0,null,function*(){try{const{data:t}=yield x.be.get((0,x.Gc)("roles"));return e("The roles have loaded successfully"),t}catch(t){throw r({type:"warning",message:{id:"notification.error"}}),new Error("error")}}),qe=(r,e)=>re(void 0,null,function*(){try{yield x.be.delete(`${(0,x.Gc)("roles")}/${r}`)}catch(t){e({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}});var et=a(60216),h=a.n(et),se=a(20763),Q=a(19192),tt=a(95717),rt=a.n(tt),st=a(76470),nt=a.n(st),ot=Object.defineProperty,ne=Object.getOwnPropertySymbols,at=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable,oe=(r,e,t)=>e in r?ot(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ae=(r,e)=>{for(var t in e||(e={}))at.call(e,t)&&oe(r,t,e[t]);if(ne)for(var t of ne(e))it.call(e,t)&&oe(r,t,e[t]);return r};const X=({sortedRoles:r,canDelete:e,permissions:t,setRoleToDelete:i,onDelete:u})=>{const{formatMessage:l}=(0,v.useIntl)(),{push:d}=(0,C.useHistory)(),[o,n]=u,c=m=>e&&!["public","authenticated"].includes(m.type),g=m=>{i(m),n(!o)},y=m=>{d(`/settings/${b.Z}/roles/${m}`)};return s.createElement(f.Tbody,null,r==null?void 0:r.map(m=>s.createElement(f.Tr,ae({key:m.name},(0,p.onRowClick)({fn:()=>y(m.id)})),s.createElement(f.Td,{width:"20%"},s.createElement(P.Typography,null,m.name)),s.createElement(f.Td,{width:"50%"},s.createElement(P.Typography,null,m.description)),s.createElement(f.Td,{width:"30%"},s.createElement(P.Typography,null,`${m.nb_users} ${l({id:"global.users",defaultMessage:"users"}).toLowerCase()}`)),s.createElement(f.Td,null,s.createElement(Q.Flex,ae({justifyContent:"end"},p.stopPropagation),s.createElement(p.CheckPermissions,{permissions:t.updateRole},s.createElement(se.IconButton,{onClick:()=>y(m.id),noBorder:!0,icon:s.createElement(rt(),null),label:l({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${m.name}`})})),c(m)&&s.createElement(p.CheckPermissions,{permissions:t.deleteRole},s.createElement(se.IconButton,{onClick:()=>g(m.id),noBorder:!0,icon:s.createElement(nt(),null),label:l({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${m.name}`})})))))))},lt=X;X.defaultProps={canDelete:!1},X.propTypes={onDelete:h().array.isRequired,permissions:h().object.isRequired,setRoleToDelete:h().func.isRequired,sortedRoles:h().array.isRequired,canDelete:h().bool};var ie=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const ct=()=>{const{trackUsage:r}=(0,p.useTracking)(),{formatMessage:e}=(0,v.useIntl)(),{push:t}=(0,C.useHistory)(),i=(0,p.useNotification)(),{notifyStatus:u}=(0,B.useNotifyAT)(),[{query:l}]=(0,p.useQueryParams)(),d=(l==null?void 0:l._q)||"",[o,n]=(0,s.useState)(!1),[c,g]=(0,s.useState)(!1),[y,m]=(0,s.useState)();(0,p.useFocusWhenNavigate)();const R=(0,A.useQueryClient)(),O=(0,s.useMemo)(()=>({create:T.Z.createRole,read:T.Z.readRoles,update:T.Z.updateRole,delete:T.Z.deleteRole}),[]),{isLoading:w,allowedActions:{canRead:M,canDelete:k}}=(0,p.useRBAC)(O),{isLoading:Ds,data:{roles:ee},isFetching:As}=(0,A.useQuery)("get-roles",()=>Je(i,u),{initialData:{},enabled:M}),Ye=Ds||As,Ls=()=>{r("willCreateRole"),t(`/settings/${b.Z}/roles/new`)},Ss=()=>{n(!o)},ws={roles:{id:(0,x.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,x.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},Ms=e({id:"global.roles",defaultMessage:"Roles"}),Us=(0,A.useMutation)(xs=>qe(xs,i),{onSuccess:()=>ie(void 0,null,function*(){yield R.invalidateQueries("get-roles")})}),Is=()=>ie(void 0,null,function*(){g(!0),yield Us.mutateAsync(y),n(!o),g(!1)}),H=(0,V.ZP)(ee||[],d,{keys:["name","description"]}),js=d&&!H.length?"search":"roles",_s=4,Bs=((ee==null?void 0:ee.length)||0)+1;return s.createElement(D.Layout,null,s.createElement(p.SettingsPageTitle,{name:Ms}),s.createElement(E.Main,{"aria-busy":Ye},s.createElement(D.HeaderLayout,{title:e({id:"global.roles",defaultMessage:"Roles"}),subtitle:e({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:s.createElement(p.CheckPermissions,{permissions:T.Z.createRole},s.createElement(_.Button,{onClick:Ls,startIcon:s.createElement(N(),null),size:"L"},e({id:(0,x.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),s.createElement(D.ActionLayout,{startActions:s.createElement(p.SearchURLQuery,{label:e({id:"app.component.search.label",defaultMessage:"Search"})})}),s.createElement(D.ContentLayout,null,!M&&s.createElement(p.NoPermissions,null),(Ye||w)&&s.createElement(p.LoadingIndicatorPage,null),M&&H&&(H==null?void 0:H.length)?s.createElement(f.Table,{colCount:_s,rowCount:Bs},s.createElement(f.Thead,null,s.createElement(f.Tr,null,s.createElement(f.Th,null,s.createElement(P.Typography,{variant:"sigma",textColor:"neutral600"},e({id:"global.name",defaultMessage:"Name"}))),s.createElement(f.Th,null,s.createElement(P.Typography,{variant:"sigma",textColor:"neutral600"},e({id:"global.description",defaultMessage:"Description"}))),s.createElement(f.Th,null,s.createElement(P.Typography,{variant:"sigma",textColor:"neutral600"},e({id:"global.users",defaultMessage:"Users"}))),s.createElement(f.Th,null,s.createElement(U.VisuallyHidden,null,e({id:"global.actions",defaultMessage:"Actions"}))))),s.createElement(lt,{sortedRoles:H,canDelete:k,permissions:T.Z,setRoleToDelete:m,onDelete:[o,n]})):s.createElement(p.EmptyStateLayout,{content:ws[js]})),s.createElement(p.ConfirmDialog,{isConfirmButtonLoading:c,onConfirm:Is,onToggleDialog:Ss,isOpen:o})))},ut=()=>s.createElement(p.CheckPagePermissions,{permissions:T.Z.accessRoles},s.createElement(ct,null));var L=a(90662),I=a(9808),le=a(37178),ce=a(90353),dt=a(98599),pt=a.n(dt),mt=a(88677),ue=a.n(mt),gt=a(58434),S=a(78330),de=a(83281),Z=a(71810),j=a(92891);const pe=(0,s.createContext)({}),me=({children:r,value:e})=>s.createElement(pe.Provider,{value:e},r),Y=()=>(0,s.useContext)(pe);me.propTypes={children:h().node.isRequired,value:h().object.isRequired};var W=a(19615),ft=a(37213),Pt=a.n(ft),yt=a(15738),Et=a.n(yt);const vt=r=>{switch(r){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"}}},ht=(0,W.default)(I.Box)`
2
- margin: -1px;
3
- border-radius: ${({theme:r})=>r.spaces[1]} 0 0 ${({theme:r})=>r.spaces[1]};
4
- `;function J({route:r}){const{formatMessage:e}=(0,v.useIntl)(),{method:t,handler:i,path:u}=r,l=u?Et()(u.split("/")):[],[d="",o=""]=i?i.split("."):[],n=vt(r.method);return s.createElement(L.Stack,{spacing:2},s.createElement(P.Typography,{variant:"delta",as:"h3"},e({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",s.createElement("span",null,d),s.createElement(P.Typography,{variant:"delta",textColor:"primary600"},".",o)),s.createElement(L.Stack,{horizontal:!0,hasRadius:!0,background:"neutral0",borderColor:"neutral200",spacing:0},s.createElement(ht,{background:n.background,borderColor:n.border,padding:2},s.createElement(P.Typography,{fontWeight:"bold",textColor:n.text},t)),s.createElement(I.Box,{paddingLeft:2,paddingRight:2},Pt()(l,c=>s.createElement(P.Typography,{key:c,textColor:c.includes(":")?"neutral600":"neutral900"},"/",c)))))}J.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},J.propTypes={route:h().shape({handler:h().string,method:h().string,path:h().string})};const Ot=J,Rt=()=>{const{formatMessage:r}=(0,v.useIntl)(),{selectedAction:e,routes:t}=Y(),i=(0,j.without)(e.split("."),"controllers"),u=(0,j.get)(t,i[0]),l=i.slice(1).join("."),d=(0,j.isEmpty)(u)?[]:u.filter(o=>o.handler.endsWith(l));return s.createElement(S.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},e?s.createElement(L.Stack,{spacing:2},d.map((o,n)=>s.createElement(Ot,{key:n,route:o}))):s.createElement(L.Stack,{spacing:2},s.createElement(P.Typography,{variant:"delta",as:"h3"},r({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),s.createElement(P.Typography,{as:"p",textColor:"neutral600"},r({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"}))))};var q=a(12001),Ct=a(23940),bt=a.n(Ct);function Tt(r){switch(r){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 bt()(r.replace("api::","").replace("plugin::",""))}}const Dt=Tt;var At=a(98978),ge=a.n(At),fe=a(52111),Lt=a(42258),St=a.n(Lt);const Pe=W.css`
5
- background: ${r=>r.theme.colors.primary100};
6
- svg {
7
- opacity: 1;
8
- }
9
- `,wt=(0,W.default)(I.Box)`
10
- display: flex;
11
- justify-content: space-between;
12
- align-items: center;
13
-
14
- svg {
15
- opacity: 0;
16
- path {
17
- fill: ${r=>r.theme.colors.primary600};
18
- }
19
- }
20
-
21
- /* Show active style both on hover and when the action is selected */
22
- ${r=>r.isActive&&Pe}
23
- &:hover {
24
- ${Pe}
25
- }
26
- `,Mt=W.default.div`
27
- flex: 1;
28
- align-self: center;
29
- border-top: 1px solid ${({theme:r})=>r.colors.neutral150};
30
- `,ye=({subCategory:r})=>{const{formatMessage:e}=(0,v.useIntl)(),{onChange:t,onChangeSelectAll:i,onSelectedAction:u,selectedAction:l,modifiedData:d}=Y(),o=(0,s.useMemo)(()=>(0,j.get)(d,r.name,{}),[d,r]),n=(0,s.useMemo)(()=>Object.values(o).every(m=>m.enabled===!0),[o]),c=(0,s.useMemo)(()=>Object.values(o).some(m=>m.enabled===!0)&&!n,[o,n]),g=(0,s.useCallback)(({target:{name:m}})=>{i({target:{name:m,value:!n}})},[n,i]),y=(0,s.useCallback)(m=>l===m,[l]);return s.createElement(I.Box,null,s.createElement(Q.Flex,{justifyContent:"space-between",alignItems:"center"},s.createElement(I.Box,{paddingRight:4},s.createElement(P.Typography,{variant:"sigma",textColor:"neutral600"},r.label)),s.createElement(Mt,null),s.createElement(I.Box,{paddingLeft:4},s.createElement(fe.Checkbox,{name:r.name,value:n,onValueChange:m=>g({target:{name:r.name,value:m}}),indeterminate:c},e({id:"app.utils.select-all",defaultMessage:"Select all"})))),s.createElement(Q.Flex,{paddingTop:6,paddingBottom:6},s.createElement(S.Grid,{gap:2,style:{flex:1}},r.actions.map(m=>{const R=`${m.name}.enabled`;return s.createElement(S.GridItem,{col:6,key:m.name},s.createElement(wt,{isActive:y(m.name),padding:2,hasRadius:!0},s.createElement(fe.Checkbox,{value:(0,j.get)(d,R,!1),name:R,onValueChange:O=>t({target:{name:R,value:O}})},m.label),s.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>u(m.name),style:{display:"inline-flex",alignItems:"center"}},s.createElement(St(),null))))}))))};ye.propTypes={subCategory:h().object.isRequired};const Ut=ye;var It=Object.defineProperty,jt=Object.defineProperties,_t=Object.getOwnPropertyDescriptors,Ee=Object.getOwnPropertySymbols,Bt=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable,ve=(r,e,t)=>e in r?It(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Nt=(r,e)=>{for(var t in e||(e={}))Bt.call(e,t)&&ve(r,t,e[t]);if(Ee)for(var t of Ee(e))xt.call(e,t)&&ve(r,t,e[t]);return r},Gt=(r,e)=>jt(r,_t(e));const he=({name:r,permissions:e})=>{const t=(0,s.useMemo)(()=>ge()(Object.values(e.controllers).reduce((i,u,l)=>{const d=`${r}.controllers.${Object.keys(e.controllers)[l]}`,o=ge()(Object.keys(u).reduce((n,c)=>[...n,Gt(Nt({},u[c]),{label:c,name:`${d}.${c}`})],[]),"label");return[...i,{actions:o,label:Object.keys(e.controllers)[l],name:d}]},[]),"label"),[r,e]);return s.createElement(I.Box,{padding:6},t.map(i=>s.createElement(Ut,{key:i.name,subCategory:i})))};he.propTypes={name:h().string.isRequired,permissions:h().object.isRequired};const Ft=he;var Zt=Object.defineProperty,$t=Object.defineProperties,kt=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,Vt=Object.prototype.hasOwnProperty,Ht=Object.prototype.propertyIsEnumerable,Re=(r,e,t)=>e in r?Zt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Wt=(r,e)=>{for(var t in e||(e={}))Vt.call(e,t)&&Re(r,t,e[t]);if(Oe)for(var t of Oe(e))Ht.call(e,t)&&Re(r,t,e[t]);return r},zt=(r,e)=>$t(r,kt(e));const Kt=(r,e)=>{const t=Object.keys(e).sort().map(i=>({name:i,isOpen:!1}));return zt(Wt({},r),{collapses:t})};var z=a(49415),Qt=Object.defineProperty,Xt=Object.defineProperties,Yt=Object.getOwnPropertyDescriptors,Ce=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,be=(r,e,t)=>e in r?Qt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Te=(r,e)=>{for(var t in e||(e={}))Jt.call(e,t)&&be(r,t,e[t]);if(Ce)for(var t of Ce(e))qt.call(e,t)&&be(r,t,e[t]);return r},De=(r,e)=>Xt(r,Yt(e));const er={collapses:[]},tr=(r,e)=>(0,z.default)(r,t=>{switch(e.type){case"TOGGLE_COLLAPSE":{t.collapses=r.collapses.map((i,u)=>u===e.index?De(Te({},i),{isOpen:!i.isOpen}):De(Te({},i),{isOpen:!1}));break}default:return t}}),rr=()=>{const{modifiedData:r}=Y(),{formatMessage:e}=(0,v.useIntl)(),[{collapses:t},i]=(0,s.useReducer)(tr,er,l=>Kt(l,r)),u=l=>i({type:"TOGGLE_COLLAPSE",index:l});return s.createElement(L.Stack,{spacing:1},t.map((l,d)=>s.createElement(q.Accordion,{expanded:l.isOpen,onToggle:()=>u(d),key:l.name,variant:d%2===0?"secondary":void 0},s.createElement(q.AccordionToggle,{title:Dt(l.name),description:e({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:l.name}),variant:d%2?"primary":"secondary"}),s.createElement(q.AccordionContent,null,s.createElement(I.Box,null,s.createElement(Ft,{permissions:r[l.name],name:l.name}))))))};var sr=Object.defineProperty,nr=Object.defineProperties,or=Object.getOwnPropertyDescriptors,Ae=Object.getOwnPropertySymbols,ar=Object.prototype.hasOwnProperty,ir=Object.prototype.propertyIsEnumerable,Le=(r,e,t)=>e in r?sr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,lr=(r,e)=>{for(var t in e||(e={}))ar.call(e,t)&&Le(r,t,e[t]);if(Ae)for(var t of Ae(e))ir.call(e,t)&&Le(r,t,e[t]);return r},cr=(r,e)=>nr(r,or(e));const ur={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]},dr=(r,e)=>(0,z.default)(r,t=>{switch(e.type){case"ON_CHANGE":{const i=e.keys.length,u=e.keys[i-1]==="enabled";if(e.value&&u){const l=(0,j.take)(e.keys,i-1).join(".");t.selectedAction=l}(0,j.set)(t,["modifiedData",...e.keys],e.value);break}case"ON_CHANGE_SELECT_ALL":{const i=["modifiedData",...e.keys],u=(0,j.get)(r,i,{}),l=Object.keys(u).reduce((d,o)=>(d[o]=cr(lr({},u[o]),{enabled:e.value}),d),{});(0,j.set)(t,i,l);break}case"ON_RESET":{t.modifiedData=r.initialData;break}case"ON_SUBMIT_SUCCEEDED":{t.initialData=r.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:i}=e;t.selectedAction=i===r.selectedAction?"":i;break}default:return t}});var pr=Object.defineProperty,mr=Object.defineProperties,gr=Object.getOwnPropertyDescriptors,Se=Object.getOwnPropertySymbols,fr=Object.prototype.hasOwnProperty,Pr=Object.prototype.propertyIsEnumerable,we=(r,e,t)=>e in r?pr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,yr=(r,e)=>{for(var t in e||(e={}))fr.call(e,t)&&we(r,t,e[t]);if(Se)for(var t of Se(e))Pr.call(e,t)&&we(r,t,e[t]);return r},Er=(r,e)=>mr(r,gr(e));const vr=(r,e,t)=>Er(yr({},r),{initialData:e,modifiedData:e,routes:t});var hr=Object.defineProperty,Or=Object.defineProperties,Rr=Object.getOwnPropertyDescriptors,Me=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,br=Object.prototype.propertyIsEnumerable,Ue=(r,e,t)=>e in r?hr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Tr=(r,e)=>{for(var t in e||(e={}))Cr.call(e,t)&&Ue(r,t,e[t]);if(Me)for(var t of Me(e))br.call(e,t)&&Ue(r,t,e[t]);return r},Dr=(r,e)=>Or(r,Rr(e));const Ie=(0,s.forwardRef)(({permissions:r,routes:e},t)=>{const{formatMessage:i}=(0,v.useIntl)(),[u,l]=(0,s.useReducer)(dr,ur,g=>vr(g,r,e));(0,s.useImperativeHandle)(t,()=>({getPermissions:()=>({permissions:u.modifiedData}),resetForm:()=>{l({type:"ON_RESET"})},setFormAfterSubmit:()=>{l({type:"ON_SUBMIT_SUCCEEDED"})}}));const d=({target:{name:g,value:y}})=>l({type:"ON_CHANGE",keys:g.split("."),value:y==="empty__string_value"?"":y}),o=({target:{name:g,value:y}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:g.split("."),value:y}),n=g=>l({type:"SELECT_ACTION",actionToSelect:g}),c=Dr(Tr({},u),{onChange:d,onChangeSelectAll:o,onSelectedAction:n});return s.createElement(me,{value:c},s.createElement(S.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},s.createElement(S.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},s.createElement(L.Stack,{spacing:6},s.createElement(L.Stack,{spacing:2},s.createElement(P.Typography,{variant:"delta",as:"h2"},i({id:(0,Z.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),s.createElement(P.Typography,{as:"p",textColor:"neutral600"},i({id:(0,Z.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),s.createElement(rr,null))),s.createElement(Rt,null)))});Ie.propTypes={permissions:h().object.isRequired,routes:h().object.isRequired};const je=(0,s.memo)(Ie),zs={isLoading:!0,modifiedData:{}},Ks=(r,e)=>produce(r,t=>{switch(e.type){case"GET_DATA":{t.isLoading=!0,t.modifiedData={};break}case"GET_DATA_SUCCEEDED":{t.isLoading=!1,t.modifiedData=e.data;break}case"GET_DATA_ERROR":{t.isLoading=!0;break}case"ON_SUBMIT_SUCCEEDED":{t.modifiedData=e.data;break}default:return t}}),Qs=null;var Ar=a(98399),Lr=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const Xs=(r,e)=>{const{isLoading:t,allowedActions:i}=useRBAC(e),[{isLoading:u,modifiedData:l},d]=useReducer(reducer,initialState),o=useNotification(),n=useRef(!0),c=new AbortController,{signal:g}=c;useEffect(()=>(t||(()=>Lr(void 0,null,function*(){try{d({type:"GET_DATA"});const R=yield request(getRequestURL(r),{method:"GET",signal:g});d({type:"GET_DATA_SUCCEEDED",data:R})}catch(R){n.current&&(d({type:"GET_DATA_ERROR"}),Ar.error(R),o({type:"warning",message:{id:"notification.error"}}))}}))(),()=>{c.abort(),n.current=!1}),[t,r]);const y=useCallback(m=>{d({type:"ON_SUBMIT_SUCCEEDED",data:m})},[]);return{allowedActions:i,dispatchSubmitSucceeded:y,isLoading:u,isLoadingForPermissions:t,modifiedData:l}},Ys=null;var Sr=Object.defineProperty,wr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,_e=Object.getOwnPropertySymbols,Ur=Object.prototype.hasOwnProperty,Ir=Object.prototype.propertyIsEnumerable,Be=(r,e,t)=>e in r?Sr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,jr=(r,e)=>{for(var t in e||(e={}))Ur.call(e,t)&&Be(r,t,e[t]);if(_e)for(var t of _e(e))Ir.call(e,t)&&Be(r,t,e[t]);return r},_r=(r,e)=>wr(r,Mr(e));const Js=(r,e)=>_r(jr({},r),{isLoading:e}),qs=null,en={roles:[],isLoading:!0},tn=(r,e)=>produce(r,t=>{switch(e.type){case"GET_DATA":{t.isLoading=!0,t.roles=[];break}case"GET_DATA_SUCCEEDED":{t.roles=e.data,t.isLoading=!1;break}case"GET_DATA_ERROR":{t.isLoading=!1;break}default:return t}}),rn=null;var Br=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const sn=(r=!0)=>{const[{roles:e,isLoading:t},i]=useReducer(reducer,initialState,()=>init(initialState,r)),u=useNotification(),l=useRef(!0),d=new AbortController,{signal:o}=d;useEffect(()=>(r&&n(),()=>{d.abort(),l.current=!1}),[r]);const n=()=>Br(void 0,null,function*(){try{i({type:"GET_DATA"});const{roles:c}=yield request(`/${pluginId}/roles`,{method:"GET",signal:o});i({type:"GET_DATA_SUCCEEDED",data:c})}catch(c){const g=get(c,["response","payload","message"],"An error occured");l.current&&(i({type:"GET_DATA_ERROR"}),g!=="Forbidden"&&u({type:"warning",message:g}))}});return{roles:e,isLoading:t,getData:n}},nn=null;var xr=Object.defineProperty,Nr=Object.defineProperties,Gr=Object.getOwnPropertyDescriptors,xe=Object.getOwnPropertySymbols,Fr=Object.prototype.hasOwnProperty,Zr=Object.prototype.propertyIsEnumerable,Ne=(r,e,t)=>e in r?xr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,$r=(r,e)=>{for(var t in e||(e={}))Fr.call(e,t)&&Ne(r,t,e[t]);if(xe)for(var t of xe(e))Zr.call(e,t)&&Ne(r,t,e[t]);return r},kr=(r,e)=>Nr(r,Gr(e));const Vr=(r,e)=>kr($r({},r),{isLoading:e});var K=a(15506);const Ge={permissions:{},routes:{},isLoading:!0},Hr=(r,e)=>(0,z.default)(r,t=>{switch(e.type){case"GET_DATA":{t.isLoading=!0,t.permissions={},t.routes={};break}case"GET_DATA_SUCCEEDED":{t.permissions=e.permissions,t.routes=e.routes,t.isLoading=!1;break}case"GET_DATA_ERROR":{t.isLoading=!1;break}default:return t}});var Fe=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const Ze=(r=!0)=>{const e=(0,p.useNotification)(),[{permissions:t,routes:i,isLoading:u},l]=(0,s.useReducer)(Hr,Ge,()=>Vr(Ge,r)),d=(0,s.useCallback)(()=>Fe(void 0,null,function*(){try{l({type:"GET_DATA"});const[{permissions:o},{routes:n}]=yield Promise.all([`/${b.Z}/permissions`,`/${b.Z}/routes`].map(c=>Fe(this,null,function*(){return(yield K.Z.get(c)).data})));l({type:"GET_DATA_SUCCEEDED",permissions:(0,x.YX)(o),routes:n})}catch(o){const n=(0,j.get)(o,["response","payload","message"],"An error occured");l({type:"GET_DATA_ERROR"}),n!=="Forbidden"&&e({type:"warning",message:n})}}),[e]);return(0,s.useEffect)(()=>{r&&d()},[d,r]),{permissions:t,routes:i,getData:d,isLoading:u}},Wr={role:{},isLoading:!0},zr=(r,e)=>(0,z.default)(r,t=>{switch(e.type){case"GET_DATA_SUCCEEDED":{t.role=e.role,t.isLoading=!1;break}case"GET_DATA_ERROR":{t.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{t.role.name=e.name,t.role.description=e.description;break}default:return t}});var Kr=a(98399),Qr=Object.defineProperty,Xr=Object.defineProperties,Yr=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,Jr=Object.prototype.hasOwnProperty,qr=Object.prototype.propertyIsEnumerable,ke=(r,e,t)=>e in r?Qr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ve=(r,e)=>{for(var t in e||(e={}))Jr.call(e,t)&&ke(r,t,e[t]);if($e)for(var t of $e(e))qr.call(e,t)&&ke(r,t,e[t]);return r},es=(r,e)=>Xr(r,Yr(e)),ts=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const rs=r=>{const[e,t]=(0,s.useReducer)(zr,Wr),i=(0,p.useNotification)(),u=(0,s.useRef)(null);(0,s.useEffect)(()=>(u.current=!0,r?l(r):t({type:"GET_DATA_SUCCEEDED",role:{}}),()=>u.current=!1),[r]);const l=o=>ts(void 0,null,function*(){try{const{data:{role:n}}=yield K.Z.get(`/${b.Z}/roles/${o}`);u.current&&t({type:"GET_DATA_SUCCEEDED",role:n})}catch(n){Kr.error(n),t({type:"GET_DATA_ERROR"}),i({type:"warning",message:{id:"notification.error"}})}}),d=(0,s.useCallback)(o=>{t(Ve({type:"ON_SUBMIT_SUCCEEDED"},o))},[]);return es(Ve({},e),{onSubmitSucceeded:d})};var $=a(5173);const ss=$.Ry().shape({name:$.Z_().required(p.translatedErrors.required),description:$.Z_().required(p.translatedErrors.required)});var ns=a(98399),os=Object.defineProperty,as=Object.defineProperties,is=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,ls=Object.prototype.hasOwnProperty,cs=Object.prototype.propertyIsEnumerable,We=(r,e,t)=>e in r?os(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ze=(r,e)=>{for(var t in e||(e={}))ls.call(e,t)&&We(r,t,e[t]);if(He)for(var t of He(e))cs.call(e,t)&&We(r,t,e[t]);return r},us=(r,e)=>as(r,is(e)),ds=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const ps=()=>{const{formatMessage:r}=(0,v.useIntl)(),[e,t]=(0,s.useState)(!1),i=(0,p.useNotification)(),{lockApp:u,unlockApp:l}=(0,p.useOverlayBlocker)(),{params:{id:d}}=(0,C.useRouteMatch)(`/settings/${b.Z}/roles/:id`),{isLoading:o,routes:n}=Ze(),{role:c,onSubmitSucceeded:g,isLoading:y}=rs(d),m=(0,s.useRef)(),R=O=>ds(void 0,null,function*(){u(),t(!0);try{const w=m.current.getPermissions();yield K.Z.put(`/${b.Z}/roles/${d}`,us(ze(ze({},O),w),{users:[]})),g({name:O.name,description:O.description}),i({type:"success",message:{id:(0,Z.Z)("Settings.roles.edited"),defaultMessage:"Role edited"}})}catch(w){ns.error(w),i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}t(!1),l()});return y?s.createElement(p.LoadingIndicatorPage,null):s.createElement(E.Main,null,s.createElement(p.SettingsPageTitle,{name:"Roles"}),s.createElement(de.Formik,{enableReinitialize:!0,initialValues:{name:c.name,description:c.description},onSubmit:R,validationSchema:ss},({handleSubmit:O,values:w,handleChange:M,errors:k})=>s.createElement(p.Form,{noValidate:!0,onSubmit:O},s.createElement(D.HeaderLayout,{primaryAction:!o&&s.createElement(_.Button,{disabled:c.code==="strapi-super-admin",type:"submit",loading:e,startIcon:s.createElement(ue(),null)},r({id:"global.save",defaultMessage:"Save"})),title:c.name,subtitle:c.description,navigationAction:s.createElement(gt.Link,{startIcon:s.createElement(pt(),null),to:"/settings/users-permissions/roles"},r({id:"global.back",defaultMessage:"Back"}))}),s.createElement(D.ContentLayout,null,s.createElement(L.Stack,{spacing:7},s.createElement(I.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},s.createElement(L.Stack,{spacing:4},s.createElement(P.Typography,{variant:"delta",as:"h2"},r({id:(0,Z.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),s.createElement(S.Grid,{gap:4},s.createElement(S.GridItem,{col:6},s.createElement(le.TextInput,{name:"name",value:w.name||"",onChange:M,label:r({id:"global.name",defaultMessage:"Name"}),error:k.name?r({id:k.name,defaultMessage:"Invalid value"}):null})),s.createElement(S.GridItem,{col:6},s.createElement(ce.Textarea,{name:"description",value:w.description||"",onChange:M,label:r({id:"global.description",defaultMessage:"Description"}),error:k.description?r({id:k.description,defaultMessage:"Invalid value"}):null}))))),!o&&s.createElement(je,{ref:m,permissions:c.permissions,routes:n}))))))},ms=()=>s.createElement(p.CheckPagePermissions,{permissions:T.Z.updateRole},s.createElement(ps,null)),gs=$.Ry().shape({name:$.Z_().required(p.translatedErrors.required),description:$.Z_().required(p.translatedErrors.required)});var fs=a(98399),Ps=Object.defineProperty,ys=Object.defineProperties,Es=Object.getOwnPropertyDescriptors,Ke=Object.getOwnPropertySymbols,vs=Object.prototype.hasOwnProperty,hs=Object.prototype.propertyIsEnumerable,Qe=(r,e,t)=>e in r?Ps(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Xe=(r,e)=>{for(var t in e||(e={}))vs.call(e,t)&&Qe(r,t,e[t]);if(Ke)for(var t of Ke(e))hs.call(e,t)&&Qe(r,t,e[t]);return r},Os=(r,e)=>ys(r,Es(e)),Rs=(r,e,t)=>new Promise((i,u)=>{var l=n=>{try{o(t.next(n))}catch(c){u(c)}},d=n=>{try{o(t.throw(n))}catch(c){u(c)}},o=n=>n.done?i(n.value):Promise.resolve(n.value).then(l,d);o((t=t.apply(r,e)).next())});const Cs=()=>{const{formatMessage:r}=(0,v.useIntl)(),[e,t]=(0,s.useState)(!1),i=(0,p.useNotification)(),{goBack:u}=(0,C.useHistory)(),{lockApp:l,unlockApp:d}=(0,p.useOverlayBlocker)(),{isLoading:o,permissions:n,routes:c}=Ze(),{trackUsage:g}=(0,p.useTracking)(),y=(0,s.useRef)(),m=R=>Rs(void 0,null,function*(){l(),t(!0);try{const O=y.current.getPermissions();yield K.Z.post(`/${b.Z}/roles`,Os(Xe(Xe({},R),O),{users:[]})),g("didCreateRole"),i({type:"success",message:{id:(0,Z.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),u()}catch(O){fs.error(O),i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}t(!1),d()});return s.createElement(E.Main,null,s.createElement(p.SettingsPageTitle,{name:"Roles"}),s.createElement(de.Formik,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:m,validationSchema:gs},({handleSubmit:R,values:O,handleChange:w,errors:M})=>s.createElement(p.Form,{noValidate:!0,onSubmit:R},s.createElement(D.HeaderLayout,{primaryAction:!o&&s.createElement(_.Button,{type:"submit",loading:e,startIcon:s.createElement(ue(),null)},r({id:"global.save",defaultMessage:"Save"})),title:r({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:r({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),s.createElement(D.ContentLayout,null,s.createElement(L.Stack,{spacing:7},s.createElement(I.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},s.createElement(L.Stack,{spacing:4},s.createElement(P.Typography,{variant:"delta",as:"h2"},r({id:(0,Z.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),s.createElement(S.Grid,{gap:4},s.createElement(S.GridItem,{col:6},s.createElement(le.TextInput,{name:"name",value:O.name||"",onChange:w,label:r({id:"global.name",defaultMessage:"Name"}),error:M.name?r({id:M.name,defaultMessage:"Invalid value"}):null})),s.createElement(S.GridItem,{col:6},s.createElement(ce.Textarea,{name:"description",value:O.description||"",onChange:w,label:r({id:"global.description",defaultMessage:"Description"}),error:M.description?r({id:M.description,defaultMessage:"Invalid value"}):null}))))),!o&&s.createElement(je,{ref:y,permissions:n,routes:c}))))))},bs=()=>s.createElement(p.CheckPagePermissions,{permissions:T.Z.createRole},s.createElement(Cs,null)),Ts=()=>s.createElement(p.CheckPagePermissions,{permissions:T.Z.accessRoles},s.createElement(C.Switch,null,s.createElement(C.Route,{path:`/settings/${b.Z}/roles/new`,component:bs,exact:!0}),s.createElement(C.Route,{path:`/settings/${b.Z}/roles/:id`,component:ms,exact:!0}),s.createElement(C.Route,{path:`/settings/${b.Z}/roles`,component:ut,exact:!0}),s.createElement(C.Route,{path:"",component:p.NotFound})))},15506:(te,G,a)=>{a.d(G,{Z:()=>D});var s=a(43653),C=a.n(s),p=a(10938),b=a.n(p),T=(E,f,U)=>new Promise((P,B)=>{var F=A=>{try{v(U.next(A))}catch(V){B(V)}},N=A=>{try{v(U.throw(A))}catch(V){B(V)}},v=A=>A.done?P(A.value):Promise.resolve(A.value).then(F,N);v((U=U.apply(E,f)).next())});const _=C().create({baseURL:"http://localhost:1337"});_.interceptors.request.use(E=>T(void 0,null,function*(){return E.headers={Authorization:`Bearer ${p.auth.getToken()}`,Accept:"application/json","Content-Type":"application/json"},E}),E=>{Promise.reject(E)}),_.interceptors.response.use(E=>E,E=>{var f;throw((f=E.response)==null?void 0:f.status)===401&&(p.auth.clearAppStorage(),window.location.reload()),E});const D=_},33234:(te,G,a)=>{a.d(G,{be:()=>s.Z,YX:()=>b,Gc:()=>D,OB:()=>E.Z});var s=a(15506),C=a(92891);const b=f=>Object.keys(f).reduce((U,P)=>{const B=f[P].controllers,F=Object.keys(B).reduce((N,v)=>((0,C.isEmpty)(B[v])||(N[v]=B[v]),N),{});return(0,C.isEmpty)(F)||(U[P]={controllers:F}),U},{});var T=a(42296);const D=f=>`/${T.Z}/${f}`;var E=a(71810)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3278],{50576: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 sai \u0111\xE3 \u0111\u01B0\u1EE3c cung c\u1EA5p.","Auth.form.error.confirmed":"Email c\u1EE7a t\xE0i kho\u1EA3n 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 \u0111\u01B0\u1EE3c d\xF9ng.","Auth.form.error.invalid":"\u0110\u1ECBnh danh ho\u1EB7c m\u1EADt kh\u1EA9u sai.","Auth.form.error.params.provide":"Tham s\u1ED1 sai \u0111\xE3 \u0111\u01B0\u1EE3c cung c\u1EA5p.","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":"Nh\u1EEFng 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 trong 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 b\u1ECB l\u1EA5y.","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 l\xEAn t\xE0u!","app.components.HomePage.welcome.again":"Ch\xE0o m\u1EEBng ","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":"Nh\u1EEFng m\u1EADt kh\u1EA9u kh\xF4ng kh\u1EDBp","components.Input.error.validation.email":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 email","components.Input.error.validation.json":"\u0110\xE2y kh\xF4ng ph\u1EA3i l\xE0 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":"Co 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":"Gi\xE3n ra","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 ch\xFAng","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.relations":"C\xE1c tr\u01B0\u1EDDng Quan H\u1EC7","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 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,23 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{26972:(V,x,o)=>{"use strict";o.d(x,{Z:()=>ut});var e=o(32735),u=o(10938),v=o(16540),l=o(84968),a=o(5141),s=o(41072),g=o(16558),P=o(60216),c=o.n(P),I=o(59716),Ee=o.n(I),ye=o(98221),Y=o.n(ye),be=o(46824),Pe=o.n(be),q=o(11856),F=o(9808),_=o(44526),Ce=o(58434),T=o(90662),K=o(37178),M=o(78330),L=o(83281),j=o(5636),ee=o(20001),w=o(95602),te=o(19615),Oe=o(35980),Me=o(52111),Se=o(23940),xe=o.n(Se);const H=({disabledEvents:n,name:t,events:r,inputValue:i,handleChange:f,handleChangeAll:y})=>{const C=r.filter(m=>!n.includes(m)),d=i.length===C.length,h=i.length>0,b=({target:{name:m}})=>{y({target:{name:m,value:!d}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(Me.Checkbox,{indeterminate:h&&!d,"aria-label":"Select all entries",name:t,onChange:b,value:d},xe()(t))),r.map(m=>e.createElement("td",{key:m},e.createElement(Oe.BaseCheckbox,{disabled:n.includes(m),"aria-label":m,name:m,value:i.includes(m),onValueChange:E=>f({target:{name:m,value:E}})}))))};H.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange:()=>{},handleChangeAll:()=>{}},H.propTypes={disabledEvents:c().array,events:c().array,inputValue:c().array,handleChange:c().func,handleChangeAll:c().func,name:c().string.isRequired};const Ie=H,Te=n=>n.reduce((t,r)=>{const i=r.split(".")[0];return t[i]||(t[i]=[]),t[i].push(r),t},{}),we=te.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:n})=>n.colors.neutral100};
11
- }
12
-
13
- tbody tr td:first-child {
14
- padding-left: ${({theme:n})=>n.spaces[7]};
15
- }
16
- `,z={headers:{default:["Settings.webhooks.events.create","Settings.webhooks.events.update","app.utils.delete"],draftAndPublish:["Settings.webhooks.events.create","Settings.webhooks.events.update","app.utils.delete","app.utils.publish","app.utils.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"]}}},ne=({isDraftAndPublish:n})=>{const t=n?z.headers.draftAndPublish:z.headers.default,r=n?z.events.draftAndPublish:z.events.default,{formatMessage:i}=(0,j.useIntl)(),{values:f,handleChange:y}=(0,L.useFormikContext)(),C="events",d=f.events,h=[],b=Te(d),m=({target:{name:p,value:A}})=>{let O=new Set(d);A?O.add(p):O.delete(p),y({target:{name:C,value:Array.from(O)}})},E=({target:{name:p,value:A}})=>{let O=new Set(d);A?r[p].forEach(k=>{h.includes(k)||O.add(k)}):r[p].forEach(k=>O.delete(k)),y({target:{name:C,value:Array.from(O)}})};return e.createElement(T.Stack,{spacing:1},e.createElement(ee.FieldLabel,null,i({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(we,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),t.map(p=>p==="app.utils.publish"||p==="app.utils.unpublish"?e.createElement("td",{key:p,title:i({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for contents with Draft/Publish system enabled"})},e.createElement(w.Typography,{variant:"sigma",textColor:"neutral600"},i({id:p,defaultMessage:p}))):e.createElement("td",{key:p},e.createElement(w.Typography,{variant:"sigma",textColor:"neutral600"},i({id:p,defaultMessage:p})))))),e.createElement("tbody",null,Object.keys(r).map(p=>e.createElement(Ie,{disabledEvents:h,key:p,name:p,events:r[p],inputValue:b[p],handleChange:m,handleChangeAll:E})))))};ne.propTypes={isDraftAndPublish:c().bool.isRequired};const Re=ne;var Ae=o(32365),ke=o.n(Ae),B=o(19192),De=o(74201),re=o(14715);const ae=["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"];var Le=Object.defineProperty,je=Object.defineProperties,Ve=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,oe=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable,se=(n,t,r)=>t in n?Le(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,Be=(n,t)=>{for(var r in t||(t={}))oe.call(t,r)&&se(n,r,t[r]);if(W)for(var r of W(t))le.call(t,r)&&se(n,r,t[r]);return n},Fe=(n,t)=>je(n,Ve(t)),ze=(n,t)=>{var r={};for(var i in n)oe.call(n,i)&&t.indexOf(i)<0&&(r[i]=n[i]);if(n!=null&&W)for(var i of W(n))t.indexOf(i)<0&&le.call(n,i)&&(r[i]=n[i]);return r};const N=n=>{var t=n,{name:r,onChange:i,value:f}=t,y=ze(t,["name","onChange","value"]);const[C,d]=(0,e.useState)(f?[...ae,f]:ae),h=m=>{i({target:{name:r,value:m}})},b=m=>{d(E=>[...E,m]),i({target:{name:r,value:m}})};return e.createElement(re.CreatableCombobox,Fe(Be({},y),{onChange:h,onCreateOption:b,placeholder:"",value:f}),C.map(m=>e.createElement(re.ComboboxOption,{value:m,key:m},m)))};N.defaultProps={value:void 0},N.propTypes={name:c().string.isRequired,onChange:c().func.isRequired,value:c().string};const We=N,Ue=()=>{const{formatMessage:n}=(0,j.useIntl)(),{values:t,errors:r}=(0,L.useFormikContext)();return e.createElement(T.Stack,{spacing:1},e.createElement(ee.FieldLabel,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(F.Box,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(L.FieldArray,{validateOnChange:!1,name:"headers",render:({push:i,remove:f})=>{var y;return e.createElement(M.Grid,{gap:4},(y=t.headers)==null?void 0:y.map((C,d)=>{var h,b,m,E,p,A,O,k,$,G;return e.createElement(e.Fragment,{key:d},e.createElement(M.GridItem,{col:6},e.createElement(L.Field,{as:We,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:((b=(h=r.headers)==null?void 0:h[d])==null?void 0:b.key)&&n({id:(m=r.headers[d])==null?void 0:m.key,defaultMessage:(E=r.headers[d])==null?void 0:E.key})})),e.createElement(M.GridItem,{col:6},e.createElement(B.Flex,{alignItems:"flex-end"},e.createElement(F.Box,{style:{flex:1}},e.createElement(L.Field,{as:K.TextInput,"aria-label":`row ${d+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:((A=(p=r.headers)==null?void 0:p[d])==null?void 0:A.value)&&n({id:(O=r.headers[d])==null?void 0:O.value,defaultMessage:(k=r.headers[d])==null?void 0:k.value})})),e.createElement(B.Flex,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:(G=($=r.headers)==null?void 0:$[d])!=null&&G.value?0:5},e.createElement(u.RemoveRoundedButton,{onClick:()=>t.headers.length!==1&&f(d),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))}),e.createElement(M.GridItem,{col:12},e.createElement(De.TextButton,{type:"button",onClick:()=>{i({key:"",value:""})},startIcon:e.createElement(ke(),null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))}})))};var $e=o(55633),ie=o.n($e),Ge=o(22301),Ke=o.n(Ge);const U=te.default.svg(({theme:n,color:t})=>`
17
- width: ${12/16}rem;
18
- height: ${12/16}rem;
19
-
20
- path {
21
- fill: ${n.colors[t]};
22
- }
23
- `),Z=({isPending:n,statusCode:t})=>{const{formatMessage:r}=(0,j.useIntl)();return n?e.createElement(T.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(U,{as:Ke()}),e.createElement(w.Typography,null,r({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):t>=200&&t<300?e.createElement(T.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(U,{as:Y(),color:"success700"}),e.createElement(w.Typography,null,r({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):t>=300?e.createElement(T.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(U,{as:ie(),color:"danger700"}),e.createElement(w.Typography,null,r({id:"Settings.error",defaultMessage:"error"})," ",t)):null};Z.propTypes={isPending:c().bool.isRequired,statusCode:c().number},Z.defaultProps={statusCode:void 0};const X=({statusCode:n,message:t})=>{const{formatMessage:r}=(0,j.useIntl)();return n>=200&&n<300?e.createElement(B.Flex,{justifyContent:"flex-end"},e.createElement(w.Typography,{textColor:"neutral600",ellipsis:!0},r({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(B.Flex,{justifyContent:"flex-end"},e.createElement(B.Flex,{maxWidth:(0,u.pxToRem)(250),justifyContent:"flex-end",title:t},e.createElement(w.Typography,{ellipsis:!0,textColor:"neutral600"},t))):null};X.propTypes={statusCode:c().number,message:c().string},X.defaultProps={statusCode:void 0,message:void 0};const ue=({onCancel:n})=>{const{formatMessage:t}=(0,j.useIntl)();return e.createElement(B.Flex,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(T.Stack,{horizontal:!0,spacing:2,style:{alignItems:"center"}},e.createElement(w.Typography,{textColor:"neutral400"},t({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(U,{as:ie(),color:"neutral400"}))))};ue.propTypes={onCancel:c().func.isRequired};const Q=({isPending:n,onCancel:t,response:r})=>{const{statusCode:i,message:f}=r,{formatMessage:y}=(0,j.useIntl)();return e.createElement(F.Box,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(M.Grid,{gap:4,style:{alignItems:"center"}},e.createElement(M.GridItem,{col:3},e.createElement(w.Typography,null,y({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(M.GridItem,{col:3},e.createElement(Z,{isPending:n,statusCode:i})),e.createElement(M.GridItem,{col:6},n?e.createElement(ue,{onCancel:t}):e.createElement(X,{statusCode:i,message:f}))))};Q.defaultProps={isPending:!1,onCancel:()=>{},response:{}},Q.propTypes={isPending:c().bool,onCancel:c().func,response:c().object};const He=Q;var R=o(5173);const Ne=new RegExp("(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)"),Ze=new RegExp("(^$)|((https?://.*)(d*)/?(.*))"),Xe=R.Ry().shape({name:R.Z_(u.translatedErrors.string).required(u.translatedErrors.required).matches(Ne,u.translatedErrors.regex),url:R.Z_(u.translatedErrors.string).required(u.translatedErrors.required).matches(Ze,u.translatedErrors.regex),headers:R.Vo(n=>{let t=R.IX();if(n.length===1){const{key:r,value:i}=n[0];if(!r&&!i)return t}return t.of(R.Ry().shape({key:R.Z_().required(u.translatedErrors.required),value:R.Z_().required(u.translatedErrors.required)}))}),events:R.IX()}),J=({handleSubmit:n,data:t,triggerWebhook:r,isCreating:i,isTriggering:f,triggerResponse:y,isDraftAndPublishEvents:C})=>{const{formatMessage:d}=(0,j.useIntl)(),[h,b]=(0,e.useState)(!1);return e.createElement(L.Formik,{onSubmit:n,initialValues:{name:(t==null?void 0:t.name)||"",url:(t==null?void 0:t.url)||"",headers:Object.keys((t==null?void 0:t.headers)||[]).length?Object.entries(t.headers).map(([m,E])=>({key:m,value:E})):[{key:"",value:""}],events:(t==null?void 0:t.events)||[]},validationSchema:Xe,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:m,errors:E})=>e.createElement(u.Form,{noValidate:!0},e.createElement(q.HeaderLayout,{primaryAction:e.createElement(T.Stack,{horizontal:!0,spacing:2},e.createElement(_.Button,{onClick:()=>{r(),b(!0)},variant:"tertiary",startIcon:e.createElement(Pe(),null),disabled:i||f,size:"L"},d({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(_.Button,{startIcon:e.createElement(Y(),null),onClick:m,type:"submit",size:"L"},d({id:"global.save",defaultMessage:"Save"}))),title:i?d({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):t==null?void 0:t.name,navigationAction:e.createElement(Ce.Link,{startIcon:e.createElement(Ee(),null),to:"/settings/webhooks"},d({id:"global.back",defaultMessage:"Back"}))}),e.createElement(q.ContentLayout,null,e.createElement(T.Stack,{spacing:4},h&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(He,{isPending:f,response:y,onCancel:()=>b(!1)})),e.createElement(F.Box,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(T.Stack,{spacing:6},e.createElement(M.Grid,{gap:6},e.createElement(M.GridItem,{col:6},e.createElement(L.Field,{as:K.TextInput,name:"name",error:E.name&&d({id:E.name}),label:d({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(M.GridItem,{col:12},e.createElement(L.Field,{as:K.TextInput,name:"url",error:E.url&&d({id:E.url}),label:d({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(Ue,null),e.createElement(Re,{isDraftAndPublish:C})))))))};J.propTypes={data:c().object,handleSubmit:c().func.isRequired,triggerWebhook:c().func.isRequired,isCreating:c().bool.isRequired,isDraftAndPublishEvents:c().bool.isRequired,isTriggering:c().bool.isRequired,triggerResponse:c().object},J.defaultProps={data:void 0,triggerResponse:void 0};const Qe=J;var Je=o(92891),Ye=Object.defineProperty,qe=Object.defineProperties,_e=Object.getOwnPropertyDescriptors,de=Object.getOwnPropertySymbols,et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable,ce=(n,t,r)=>t in n?Ye(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,me=(n,t)=>{for(var r in t||(t={}))et.call(t,r)&&ce(n,r,t[r]);if(de)for(var r of de(t))tt.call(t,r)&&ce(n,r,t[r]);return n},nt=(n,t)=>qe(n,_e(t));const rt=n=>{const t=me({},n);return(0,Je.set)(t,"headers",at(n.headers)),t},at=n=>n.reduce((t,r)=>{const{key:i,value:f}=r;return i!==""?nt(me({},t),{[i]:f}):t},{}),ge=rt;var fe=o(98399),ot=Object.defineProperty,pe=Object.getOwnPropertySymbols,lt=Object.prototype.hasOwnProperty,st=Object.prototype.propertyIsEnumerable,he=(n,t,r)=>t in n?ot(n,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[t]=r,it=(n,t)=>{for(var r in t||(t={}))lt.call(t,r)&&he(n,r,t[r]);if(pe)for(var r of pe(t))st.call(t,r)&&he(n,r,t[r]);return n},ve=(n,t,r)=>new Promise((i,f)=>{var y=h=>{try{d(r.next(h))}catch(b){f(b)}},C=h=>{try{d(r.throw(h))}catch(b){f(b)}},d=h=>h.done?i(h.value):Promise.resolve(h.value).then(y,C);d((r=r.apply(n,t)).next())});const ut=()=>{const{params:{id:n}}=(0,a.useRouteMatch)("/settings/webhooks/:id"),{replace:t}=(0,a.useHistory)(),{lockApp:r,unlockApp:i}=(0,u.useOverlayBlocker)(),f=(0,u.useNotification)(),y=(0,l.useQueryClient)(),{isLoading:C,collectionTypes:d}=(0,s.bP)(),h=n==="create",b=(0,e.useCallback)(S=>ve(void 0,null,function*(){const[D,{data:gt}]=yield(0,u.to)((0,u.request)(`/admin/webhooks/${S}`,{method:"GET"}));return D?(f({type:"warning",message:{id:"notification.error"}}),null):gt}),[f]),{isLoading:m,data:E}=(0,l.useQuery)(["get-webhook",n],()=>b(n),{enabled:!h}),{isLoading:p,data:A,isIdle:O,mutate:k}=(0,l.useMutation)(()=>g.be.post(`/admin/webhooks/${n}/trigger`)),$=()=>k(null,{onError:()=>{f({type:"warning",message:{id:"notification.error"}})}}),G=(0,l.useMutation)(S=>(0,u.request)("/admin/webhooks",{method:"POST",body:S})),dt=(0,l.useMutation)(({id:S,body:D})=>(0,u.request)(`/admin/webhooks/${S}`,{method:"PUT",body:D})),ct=S=>ve(void 0,null,function*(){h?(r(),G.mutate(ge(S),{onSuccess:D=>{f({type:"success",message:{id:"Settings.webhooks.created"}}),t(`/settings/webhooks/${D.data.id}`),i()},onError:D=>{f({type:"warning",message:{id:"notification.error"}}),fe.log(D),i()}})):(r(),dt.mutate({id:n,body:ge(S)},{onSuccess:()=>{y.invalidateQueries(["get-webhook",n]),f({type:"success",message:{id:"notification.form.success.fields"}}),i()},onError:D=>{f({type:"warning",message:{id:"notification.error"}}),fe.log(D),i()}}))}),mt=(0,e.useMemo)(()=>d.some(S=>S.options.draftAndPublish===!0),[d]);return m||C?e.createElement(u.LoadingIndicatorPage,null):e.createElement(v.Main,null,e.createElement(u.SettingsPageTitle,{name:"Webhooks"}),e.createElement(Qe,it({},{handleSubmit:ct,data:E,triggerWebhook:$,isCreating:h,isTriggering:p,isTriggerIdle:O,triggerResponse:A==null?void 0:A.data.data,isDraftAndPublishEvents:mt})))}},12935:(V,x,o)=>{"use strict";o.r(x),o.d(x,{default:()=>g});var e=o(32735),u=o(10938),v=o.n(u),l=o(2805),a=o(26972);const g=()=>e.createElement(u.CheckPagePermissions,{permissions:l.Z.settings.webhooks.create},e.createElement(a.Z,null))},91849:(V,x,o)=>{"use strict";o.r(x),o.d(x,{default:()=>g});var e=o(32735),u=o(10938),v=o.n(u),l=o(2805),a=o(26972);const g=()=>e.createElement(u.CheckPagePermissions,{permissions:l.Z.settings.webhooks.update},e.createElement(a.Z,null))},22301:function(V,x,o){(function(e,u){V.exports=u(o(32735))})(this,function(e){return function(u){var v={};function l(a){if(v[a])return v[a].exports;var s=v[a]={i:a,l:!1,exports:{}};return u[a].call(s.exports,s,s.exports,l),s.l=!0,s.exports}return l.m=u,l.c=v,l.d=function(a,s,g){l.o(a,s)||Object.defineProperty(a,s,{enumerable:!0,get:g})},l.r=function(a){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},l.t=function(a,s){if(1&s&&(a=l(a)),8&s||4&s&&typeof a=="object"&&a&&a.__esModule)return a;var g=Object.create(null);if(l.r(g),Object.defineProperty(g,"default",{enumerable:!0,value:a}),2&s&&typeof a!="string")for(var P in a)l.d(g,P,function(c){return a[c]}.bind(null,P));return g},l.n=function(a){var s=a&&a.__esModule?function(){return a.default}:function(){return a};return l.d(s,"a",s),s},l.o=function(a,s){return Object.prototype.hasOwnProperty.call(a,s)},l.p="",l(l.s=108)}({0:function(u,v){u.exports=e},108:function(u,v,l){"use strict";l.r(v);var a=l(0);function s(){return(s=Object.assign||function(g){for(var P=1;P<arguments.length;P++){var c=arguments[P];for(var I in c)Object.prototype.hasOwnProperty.call(c,I)&&(g[I]=c[I])}return g}).apply(this,arguments)}v.default=function(g){return a.createElement("svg",s({width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},g),a.createElement("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"}))}}})})},46824:function(V,x,o){(function(e,u){V.exports=u(o(32735))})(this,function(e){return function(u){var v={};function l(a){if(v[a])return v[a].exports;var s=v[a]={i:a,l:!1,exports:{}};return u[a].call(s.exports,s,s.exports,l),s.l=!0,s.exports}return l.m=u,l.c=v,l.d=function(a,s,g){l.o(a,s)||Object.defineProperty(a,s,{enumerable:!0,get:g})},l.r=function(a){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},l.t=function(a,s){if(1&s&&(a=l(a)),8&s||4&s&&typeof a=="object"&&a&&a.__esModule)return a;var g=Object.create(null);if(l.r(g),Object.defineProperty(g,"default",{enumerable:!0,value:a}),2&s&&typeof a!="string")for(var P in a)l.d(g,P,function(c){return a[c]}.bind(null,P));return g},l.n=function(a){var s=a&&a.__esModule?function(){return a.default}:function(){return a};return l.d(s,"a",s),s},l.o=function(a,s){return Object.prototype.hasOwnProperty.call(a,s)},l.p="",l(l.s=145)}({0:function(u,v){u.exports=e},145:function(u,v,l){"use strict";l.r(v);var a=l(0);function s(){return(s=Object.assign||function(g){for(var P=1;P<arguments.length;P++){var c=arguments[P];for(var I in c)Object.prototype.hasOwnProperty.call(c,I)&&(g[I]=c[I])}return g}).apply(this,arguments)}v.default=function(g){return a.createElement("svg",s({width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},g),a.createElement("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"}))}}})})}}]);
@@ -1,133 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{55470:(W,H,f)=>{"use strict";W.exports=f(17173)},17173:function(W,H,f){(function(l,y){W.exports=y(f(32735),f(19615))})(this,function(l,y){return function(a){var u={};function e(o){if(u[o])return u[o].exports;var i=u[o]={i:o,l:!1,exports:{}};return a[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=a,e.c=u,e.d=function(o,i,c){e.o(o,i)||Object.defineProperty(o,i,{enumerable:!0,get:c})},e.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},e.t=function(o,i){if(1&i&&(o=e(o)),8&i||4&i&&typeof o=="object"&&o&&o.__esModule)return o;var c=Object.create(null);if(e.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:o}),2&i&&typeof o!="string")for(var s in o)e.d(c,s,function(t){return o[t]}.bind(null,s));return c},e.n=function(o){var i=o&&o.__esModule?function(){return o.default}:function(){return o};return e.d(i,"a",i),i},e.o=function(o,i){return Object.prototype.hasOwnProperty.call(o,i)},e.p="",e(e.s=121)}({0:function(a,u,e){a.exports=e(19)()},1:function(a,u){a.exports=l},10:function(a,u,e){var o=e(25),i=e(26),c=e(22),s=e(27);a.exports=function(t,b){return o(t)||i(t,b)||c(t,b)||s()},a.exports.default=a.exports,a.exports.__esModule=!0},121:function(a,u,e){"use strict";e.r(u),e.d(u,"Switch",function(){return R});var o,i,c=e(5),s=e.n(c),t=e(4),b=e.n(t),h=e(3),g=e.n(h),k=e(1),T=e.n(k),n=e(0),r=e.n(n),d=e(2),w=e.n(d),j=e(9),Y=e(6),I=["label","onChange","onLabel","offLabel","selected","visibleLabels"],F=w.a.div(o||(o=g()([`
2
- background: `,`;
3
- border: none;
4
- border-radius: 16px;
5
- position: relative;
6
- height: `,`rem;
7
- width: `,`rem;
8
-
9
- & span {
10
- font-size: `,`;
11
- }
12
-
13
- &:before {
14
- content: '';
15
- background: `,`;
16
- width: 1rem;
17
- height: 1rem;
18
- border-radius: 50%;
19
- position: absolute;
20
- transition: all 0.5s;
21
- left: `,`;
22
- top: `,`;
23
- }
24
-
25
- @media (prefers-reduced-motion: reduce) {
26
- &:before {
27
- transition: none;
28
- }
29
- }
30
- `])),function(O){return O.theme.colors.danger500},1.5,2.5,function(O){return O.visibleLabels?"1rem":0},function(O){return O.theme.colors.neutral0},function(O){return O.theme.spaces[1]},function(O){return O.theme.spaces[1]}),J=w.a.button(i||(i=g()([`
31
- background: transparent;
32
- padding: 0;
33
- border: none;
34
-
35
- &[aria-checked='true'] `,` {
36
- background: `,`;
37
- }
38
-
39
- &[aria-checked='true'] `,`:before {
40
- transform: translateX(1rem);
41
- }
42
- `])),F,function(O){return O.theme.colors.success500},F),R=T.a.forwardRef(function(O,_){var q=O.label,ee=O.onChange,K=O.onLabel,G=O.offLabel,z=O.selected,ne=O.visibleLabels,te=b()(O,I);return T.a.createElement(J,s()({ref:_,role:"switch","aria-checked":z,"aria-label":q,onClick:ee,visibleLabels:ne,type:"button"},te),T.a.createElement(j.Flex,null,T.a.createElement(F,null,T.a.createElement("span",null,K),T.a.createElement("span",null,G)),ne&&T.a.createElement(Y.Box,{as:"span","aria-hidden":!0,paddingLeft:2,color:z?"success600":"danger600"},z?K:G)))});R.defaultProps={onLabel:"On",offLabel:"Off",visibleLabels:!1},R.propTypes={label:r.a.string.isRequired,offLabel:r.a.string,onChange:r.a.func.isRequired,onLabel:r.a.string,selected:r.a.bool.isRequired,visibleLabels:r.a.bool},R.displayName="Switch"},13:function(a,u){function e(o){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?(a.exports=e=function(i){return typeof i},a.exports.default=a.exports,a.exports.__esModule=!0):(a.exports=e=function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},a.exports.default=a.exports,a.exports.__esModule=!0),e(o)}a.exports=e,a.exports.default=a.exports,a.exports.__esModule=!0},19:function(a,u,e){"use strict";var o=e(20);function i(){}function c(){}c.resetWarningCache=i,a.exports=function(){function s(h,g,k,T,n,r){if(r!==o){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}function t(){return s}s.isRequired=s;var b={array:s,bool:s,func:s,number:s,object:s,string:s,symbol:s,any:s,arrayOf:t,element:s,elementType:s,instanceOf:t,node:s,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:c,resetWarningCache:i};return b.PropTypes=b,b}},2:function(a,u){a.exports=y},20:function(a,u,e){"use strict";a.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},21:function(a,u){a.exports=function(e,o){(o==null||o>e.length)&&(o=e.length);for(var i=0,c=new Array(o);i<o;i++)c[i]=e[i];return c},a.exports.default=a.exports,a.exports.__esModule=!0},22:function(a,u,e){var o=e(21);a.exports=function(i,c){if(i){if(typeof i=="string")return o(i,c);var s=Object.prototype.toString.call(i).slice(8,-1);return s==="Object"&&i.constructor&&(s=i.constructor.name),s==="Map"||s==="Set"?Array.from(i):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?o(i,c):void 0}},a.exports.default=a.exports,a.exports.__esModule=!0},24:function(a,u){a.exports=function(e,o){if(e==null)return{};var i,c,s={},t=Object.keys(e);for(c=0;c<t.length;c++)i=t[c],o.indexOf(i)>=0||(s[i]=e[i]);return s},a.exports.default=a.exports,a.exports.__esModule=!0},25:function(a,u){a.exports=function(e){if(Array.isArray(e))return e},a.exports.default=a.exports,a.exports.__esModule=!0},26:function(a,u){a.exports=function(e,o){var i=e==null?null:typeof Symbol!="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(i!=null){var c,s,t=[],b=!0,h=!1;try{for(i=i.call(e);!(b=(c=i.next()).done)&&(t.push(c.value),!o||t.length!==o);b=!0);}catch(g){h=!0,s=g}finally{try{b||i.return==null||i.return()}finally{if(h)throw s}}return t}},a.exports.default=a.exports,a.exports.__esModule=!0},27:function(a,u){a.exports=function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
43
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},a.exports.default=a.exports,a.exports.__esModule=!0},3:function(a,u){a.exports=function(e,o){return o||(o=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(o)}}))},a.exports.default=a.exports,a.exports.__esModule=!0},4:function(a,u,e){var o=e(24);a.exports=function(i,c){if(i==null)return{};var s,t,b=o(i,c);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(i);for(t=0;t<h.length;t++)s=h[t],c.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(i,s)&&(b[s]=i[s])}return b},a.exports.default=a.exports,a.exports.__esModule=!0},5:function(a,u){function e(){return a.exports=e=Object.assign||function(o){for(var i=1;i<arguments.length;i++){var c=arguments[i];for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(o[s]=c[s])}return o},a.exports.default=a.exports,a.exports.__esModule=!0,e.apply(this,arguments)}a.exports=e,a.exports.default=a.exports,a.exports.__esModule=!0},6:function(a,u,e){"use strict";e.r(u),e.d(u,"Box",function(){return T});var o,i=e(3),c=e.n(i),s=e(0),t=e.n(s),b=e(2),h=e.n(b),g=e(7),k={color:!0},T=h.a.div.withConfig({shouldForwardProp:function(n,r){return!k[n]&&r(n)}})(o||(o=c()([`
44
- // Font
45
- font-size: `,`;
46
-
47
- // Colors
48
- background: `,`;
49
- color: `,`;
50
-
51
- // Spaces
52
- `,`
53
- `,`
54
- `,`
55
- `,`
56
- `,`
57
- `,`
58
- `,`
59
- `,`
60
- `,`
61
-
62
- // Responsive hiding
63
- `,`
64
- `,`
65
-
66
-
67
- // Borders
68
- border-radius: `,`;
69
- border-style: `,`;
70
- border-width: `,`;
71
- border-color: `,`;
72
- border: `,`;
73
-
74
- // Shadows
75
- box-shadow: `,`;
76
-
77
- // Handlers
78
- pointer-events: `,`;
79
- &:hover {
80
- `,`
81
- }
82
-
83
- // Display
84
- display: `,`;
85
-
86
- // Position
87
- position: `,`;
88
- left: `,`;
89
- right: `,`;
90
- top: `,`;
91
- bottom: `,`;
92
- z-index: `,`;
93
- overflow: `,`;
94
- cursor: `,`;
95
-
96
- // Size
97
- width: `,`;
98
- max-width: `,`;
99
- min-width: `,`;
100
- height: `,`;
101
- max-height: `,`;
102
- min-height: `,`;
103
-
104
- // Animation
105
- transition: `,`;
106
- transform: `,`;
107
- animation: `,`;
108
-
109
- //Flexbox children props
110
- flex-shrink: `,`;
111
- flex-grow: `,`;
112
- flex-basis: `,`;
113
- flex: `,`;
114
-
115
- // Text
116
- text-align: `,`;
117
- text-transform: `,`;
118
- line-height: `,`;
119
-
120
- // Cursor
121
- cursor: `,`;
122
- `])),function(n){var r=n.fontSize;return n.theme.fontSizes[r]||r},function(n){var r=n.theme,d=n.background;return r.colors[d]},function(n){var r=n.theme,d=n.color;return r.colors[d]},function(n){var r=n.theme,d=n.padding;return Object(g.a)("padding",d,r)},function(n){var r=n.theme,d=n.paddingTop;return Object(g.a)("padding-top",d,r)},function(n){var r=n.theme,d=n.paddingRight;return Object(g.a)("padding-right",d,r)},function(n){var r=n.theme,d=n.paddingBottom;return Object(g.a)("padding-bottom",d,r)},function(n){var r=n.theme,d=n.paddingLeft;return Object(g.a)("padding-left",d,r)},function(n){var r=n.theme,d=n.marginLeft;return Object(g.a)("margin-left",d,r)},function(n){var r=n.theme,d=n.marginRight;return Object(g.a)("margin-right",d,r)},function(n){var r=n.theme,d=n.marginTop;return Object(g.a)("margin-top",d,r)},function(n){var r=n.theme,d=n.marginBottom;return Object(g.a)("margin-bottom",d,r)},function(n){var r=n.theme;return n.hiddenS?"".concat(r.mediaQueries.tablet," { display: none; }"):void 0},function(n){var r=n.theme;return n.hiddenXS?"".concat(r.mediaQueries.mobile," { display: none; }"):void 0},function(n){var r=n.theme,d=n.hasRadius,w=n.borderRadius;return d?r.borderRadius:w},function(n){return n.borderStyle},function(n){return n.borderWidth},function(n){var r=n.borderColor;return n.theme.colors[r]},function(n){var r=n.theme,d=n.borderColor,w=n.borderStyle,j=n.borderWidth;if(d&&!w&&!j)return"1px solid ".concat(r.colors[d])},function(n){var r=n.theme,d=n.shadow;return r.shadows[d]},function(n){return n.pointerEvents},function(n){var r=n._hover,d=n.theme;return r?r(d):void 0},function(n){return n.display},function(n){return n.position},function(n){var r=n.left;return n.theme.spaces[r]||r},function(n){var r=n.right;return n.theme.spaces[r]||r},function(n){var r=n.top;return n.theme.spaces[r]||r},function(n){var r=n.bottom;return n.theme.spaces[r]||r},function(n){return n.zIndex},function(n){return n.overflow},function(n){return n.cursor},function(n){var r=n.width;return n.theme.spaces[r]||r},function(n){var r=n.maxWidth;return n.theme.spaces[r]||r},function(n){var r=n.minWidth;return n.theme.spaces[r]||r},function(n){var r=n.height;return n.theme.spaces[r]||r},function(n){var r=n.maxHeight;return n.theme.spaces[r]||r},function(n){var r=n.minHeight;return n.theme.spaces[r]||r},function(n){return n.transition},function(n){return n.transform},function(n){return n.animation},function(n){return n.shrink},function(n){return n.grow},function(n){return n.basis},function(n){return n.flex},function(n){return n.textAlign},function(n){return n.textTransform},function(n){return n.lineHeight},function(n){return n.cursor});T.displayName="Box",T.defaultProps={background:void 0,borderColor:void 0,color:void 0,hiddenS:!1,hiddenXS:!1,padding:void 0,paddingTop:void 0,paddingRight:void 0,paddingBottom:void 0,paddingLeft:void 0,hasRadius:!1,shadow:void 0,children:null,shrink:void 0,grow:void 0,basis:void 0,flex:void 0,_hover:function(){}},T.propTypes={_hover:t.a.func,background:t.a.string,basis:t.a.oneOfType([t.a.string,t.a.string]),borderColor:t.a.string,children:t.a.oneOfType([t.a.node,t.a.string]),color:t.a.string,flex:t.a.oneOfType([t.a.string,t.a.string]),grow:t.a.oneOfType([t.a.string,t.a.string]),hasRadius:t.a.bool,hiddenS:t.a.bool,hiddenXS:t.a.bool,padding:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingBottom:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingLeft:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingRight:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),paddingTop:t.a.oneOfType([t.a.number,t.a.arrayOf(t.a.number)]),shadow:t.a.string,shrink:t.a.oneOfType([t.a.string,t.a.string])}},7:function(a,u,e){"use strict";var o=e(10),i=e.n(o),c=e(13),s=e.n(c);u.a=function(t,b,h){var g=b;if(Array.isArray(b)||s()(b)!=="object"||(g=[b==null?void 0:b.desktop,b==null?void 0:b.tablet,b==null?void 0:b.mobile]),g!==void 0){if(Array.isArray(g)){var k=g,T=i()(k,3),n=T[0],r=T[1],d=T[2],w="".concat(t,": ").concat(h.spaces[n],";");return r!==void 0&&(w+="".concat(h.mediaQueries.tablet,`{
123
- `).concat(t,": ").concat(h.spaces[r],`;
124
- }`)),d!==void 0&&(w+="".concat(h.mediaQueries.mobile,`{
125
- `).concat(t,": ").concat(h.spaces[d],`;
126
- }`)),w}var j=h.spaces[g]||g;return"".concat(t,": ").concat(j,";")}}},9:function(a,u,e){"use strict";e.r(u),e.d(u,"Flex",function(){return n});var o,i=e(3),c=e.n(i),s=e(0),t=e.n(s),b=e(2),h=e.n(b),g=e(6),k=e(7),T={direction:!0},n=h()(g.Box).withConfig({shouldForwardProp:function(r,d){return!T[r]&&d(r)}})(o||(o=c()([`
127
- align-items: `,`;
128
- display: `,`;
129
- flex-direction: `,`;
130
- flex-wrap: `,`;
131
- `,`};
132
- justify-content: `,`;
133
- `])),function(r){return r.alignItems},function(r){return r.inline?"inline-flex":"flex"},function(r){return r.direction},function(r){return r.wrap},function(r){var d=r.gap,w=r.theme;return Object(k.a)("gap",d,w)},function(r){return r.justifyContent});n.defaultProps={alignItems:"center",basis:void 0,direction:"row",gap:void 0,inline:!1,justifyContent:void 0,reverse:!1,wrap:void 0},n.propTypes={alignItems:t.a.string,basis:t.a.oneOfType([t.a.string,t.a.number]),direction:t.a.string,gap:t.a.oneOfType([t.a.shape({desktop:t.a.number,mobile:t.a.number,tablet:t.a.number}),t.a.number,t.a.arrayOf(t.a.number),t.a.string]),inline:t.a.bool,justifyContent:t.a.string,reverse:t.a.bool,wrap:t.a.string}}})})},54999:(W,H,f)=>{"use strict";f.r(H),f.d(H,{default:()=>xe});var l=f(32735),y=f(10938),a=f(2805),u=f(5141),e=f(5636),o=f(11856),i=f(64354),c=f(19192),s=f(90662),t=f(20763),b=f(35980),h=f(53214),g=f(95602),k=f(44526),T=f(28004),n=f(55470),r=f(16540),d=f(74064),w=f(29270),j=f(9808),Y=f(32365),I=f.n(Y),F=f(97642),J=f.n(F),R=f(22081),O=f.n(R),_=f(7219),q=f.n(_),ee=f(49415),K=f(3040),G=f.n(K);const z={webhooks:[],webhooksToDelete:[],webhookToDelete:null,loadingWebhooks:!0},te=(E,v)=>(0,ee.default)(E,m=>{switch(v.type){case"GET_DATA_SUCCEEDED":{m.webhooks=v.data,m.loadingWebhooks=!1;break}case"TOGGLE_LOADING":{m.loadingWebhooks=!E.loadingWebhooks;break}case"SET_WEBHOOK_ENABLED":{G()(m,["webhooks",...v.keys],v.value);break}case"SET_WEBHOOK_TO_DELETE":{m.webhookToDelete=v.id;break}case"SET_WEBHOOKS_TO_DELETE":{v.value?m.webhooksToDelete.push(v.id):m.webhooksToDelete=E.webhooksToDelete.filter(S=>S!==v.id);break}case"SET_ALL_WEBHOOKS_TO_DELETE":{E.webhooksToDelete.length===0?m.webhooksToDelete=E.webhooks.map(S=>S.id):m.webhooksToDelete=[];break}case"WEBHOOKS_DELETED":{m.webhooks=E.webhooks.filter(S=>!E.webhooksToDelete.includes(S.id)),m.webhooksToDelete=[];break}case"WEBHOOK_DELETED":{m.webhooks=E.webhooks.filter((S,B)=>B!==v.index),m.webhookToDelete=null;break}default:return m}});var pe=f(98399),he=Object.defineProperty,me=Object.defineProperties,be=Object.getOwnPropertyDescriptors,ae=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable,ie=(E,v,m)=>v in E?he(E,v,{enumerable:!0,configurable:!0,writable:!0,value:m}):E[v]=m,N=(E,v)=>{for(var m in v||(v={}))ge.call(v,m)&&ie(E,m,v[m]);if(ae)for(var m of ae(v))ve.call(v,m)&&ie(E,m,v[m]);return E},ye=(E,v)=>me(E,be(v)),$=(E,v,m)=>new Promise((S,B)=>{var A=D=>{try{x(m.next(D))}catch(M){B(M)}},C=D=>{try{x(m.throw(D))}catch(M){B(M)}},x=D=>D.done?S(D.value):Promise.resolve(D.value).then(A,C);x((m=m.apply(E,v)).next())});const Ee=()=>{const{isLoading:E,allowedActions:{canCreate:v,canRead:m,canUpdate:S,canDelete:B}}=(0,y.useRBAC)(a.Z.settings.webhooks),A=(0,y.useNotification)(),C=(0,l.useRef)(!0),{formatMessage:x}=(0,e.useIntl)(),[D,M]=(0,l.useState)(!1),[{webhooks:U,webhooksToDelete:Q,webhookToDelete:re,loadingWebhooks:oe},P]=(0,l.useReducer)(te,z),{notifyStatus:Oe}=(0,w.useNotifyAT)();(0,y.useFocusWhenNavigate)();const{push:Te}=(0,u.useHistory)(),{pathname:le}=(0,u.useLocation)(),X=U.length,V=Q.length,se=p=>U.findIndex(L=>L.id===p);(0,l.useEffect)(()=>(C.current=!0,()=>{C.current=!1}),[]),(0,l.useEffect)(()=>{m&&we()},[m]);const we=()=>$(void 0,null,function*(){try{const{data:p}=yield(0,y.request)("/admin/webhooks",{method:"GET"});C.current&&(P({type:"GET_DATA_SUCCEEDED",data:p}),Oe("webhooks have been loaded"))}catch(p){pe.log(p),C.current&&(p.code!==20&&A({type:"warning",message:{id:"notification.error"}}),P({type:"TOGGLE_LOADING"}))}}),ke=()=>{M(p=>!p)},Se=()=>{re?Le():Ce()},Le=()=>$(void 0,null,function*(){try{yield(0,y.request)(`/admin/webhooks/${re}`,{method:"DELETE"}),P({type:"WEBHOOK_DELETED",index:se(re)})}catch(p){p.code!==20&&A({type:"warning",message:{id:"notification.error"}})}M(!1)}),Ce=()=>$(void 0,null,function*(){const p={ids:Q};try{yield(0,y.request)("/admin/webhooks/batch-delete",{method:"POST",body:p}),C.current&&P({type:"WEBHOOKS_DELETED"})}catch(L){C.current&&L.code!==20&&A({type:"warning",message:{id:"notification.error"}})}M(!1)}),ue=p=>{M(!0),p!=="all"&&P({type:"SET_WEBHOOK_TO_DELETE",id:p})},De=(p,L)=>$(void 0,null,function*(){const ce=se(L),je=U[ce],de=[ce,"isEnabled"],fe=ye(N({},je),{isEnabled:p});delete fe.id;try{P({type:"SET_WEBHOOK_ENABLED",keys:de,value:p}),yield(0,y.request)(`/admin/webhooks/${L}`,{method:"PUT",body:fe})}catch(Be){C.current&&(P({type:"SET_WEBHOOK_ENABLED",keys:de,value:!p}),Be.code!==20&&A({type:"warning",message:{id:"notification.error"}}))}}),Pe=()=>{P({type:"SET_ALL_WEBHOOKS_TO_DELETE"})},Me=(p,L)=>{P({type:"SET_WEBHOOKS_TO_DELETE",value:p,id:L})},Z=p=>{Te(`${le}/${p}`)};return l.createElement(o.Layout,null,l.createElement(y.SettingsPageTitle,{name:"Webhooks"}),l.createElement(r.Main,{"aria-busy":E||oe},l.createElement(o.HeaderLayout,{title:x({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:x({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:v&&!oe&&l.createElement(d.LinkButton,{startIcon:l.createElement(I(),null),variant:"default",to:`${le}/create`,size:"L"},x({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),V>0&&B&&l.createElement(o.ActionLayout,{startActions:l.createElement(l.Fragment,null,l.createElement(g.Typography,{variant:"epsilon",textColor:"neutral600"},x({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected"},{webhooksToDeleteLength:V})),l.createElement(k.Button,{onClick:()=>ue("all"),startIcon:l.createElement(O(),null),size:"L",variant:"danger-light"},x({id:"global.delete",defaultMessage:"Delete"})))}),l.createElement(o.ContentLayout,null,E||oe?l.createElement(j.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},l.createElement(y.LoadingIndicatorPage,null)):l.createElement(l.Fragment,null,X>0?l.createElement(h.Table,{colCount:5,rowCount:X+1,footer:l.createElement(h.TFooter,{onClick:()=>v?Z("create"):{},icon:l.createElement(I(),null)},x({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},l.createElement(h.Thead,null,l.createElement(h.Tr,null,l.createElement(h.Th,null,l.createElement(b.BaseCheckbox,{"aria-label":x({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:V>0&&V<X,value:V===X,onValueChange:Pe})),l.createElement(h.Th,{width:"20%"},l.createElement(g.Typography,{variant:"sigma",textColor:"neutral600"},x({id:"global.name",defaultMessage:"Name"}))),l.createElement(h.Th,{width:"60%"},l.createElement(g.Typography,{variant:"sigma",textColor:"neutral600"},x({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),l.createElement(h.Th,{width:"20%"},l.createElement(g.Typography,{variant:"sigma",textColor:"neutral600"},x({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),l.createElement(h.Th,null,l.createElement(T.VisuallyHidden,null,x({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),l.createElement(h.Tbody,null,U.map(p=>l.createElement(h.Tr,N({key:p.id},(0,y.onRowClick)({fn:()=>Z(p.id),condition:S})),l.createElement(h.Td,N({},y.stopPropagation),l.createElement(b.BaseCheckbox,{"aria-label":`${x({id:"global.select",defaultMessage:"Select"})} ${p.name}`,value:Q==null?void 0:Q.includes(p.id),onValueChange:L=>Me(L,p.id),id:"select",name:"select"})),l.createElement(h.Td,null,l.createElement(g.Typography,{fontWeight:"semiBold",textColor:"neutral800"},p.name)),l.createElement(h.Td,null,l.createElement(g.Typography,{textColor:"neutral800"},p.url)),l.createElement(h.Td,null,l.createElement(c.Flex,N({},y.stopPropagation),l.createElement(n.Switch,{onLabel:x({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:x({id:"global.disabled",defaultMessage:"Disabled"}),label:`${p.name} ${x({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:p.isEnabled,onChange:()=>De(!p.isEnabled,p.id),visibleLabels:!0}))),l.createElement(h.Td,null,l.createElement(s.Stack,N({horizontal:!0,spacing:1},y.stopPropagation),S&&l.createElement(t.IconButton,{onClick:()=>{Z(p.id)},label:x({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:l.createElement(J(),null),noBorder:!0}),B&&l.createElement(t.IconButton,{onClick:()=>ue(p.id),label:x({id:"global.delete",defaultMessage:"Delete"}),icon:l.createElement(O(),null),noBorder:!0,id:`delete-${p.id}`}))))))):l.createElement(i.EmptyStateLayout,{icon:l.createElement(q(),{width:"160px"}),content:x({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:l.createElement(k.Button,{variant:"secondary",startIcon:l.createElement(I(),null),onClick:()=>v?Z("create"):{}},x({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))})))),l.createElement(y.ConfirmDialog,{isOpen:D,onToggleDialog:ke,onConfirm:Se}))},xe=()=>l.createElement(y.CheckPagePermissions,{permissions:a.Z.settings.webhooks.main},l.createElement(Ee,null))},7219:function(W,H,f){(function(l,y){W.exports=y(f(32735))})(this,function(l){return function(y){var a={};function u(e){if(a[e])return a[e].exports;var o=a[e]={i:e,l:!1,exports:{}};return y[e].call(o.exports,o,o.exports,u),o.l=!0,o.exports}return u.m=y,u.c=a,u.d=function(e,o,i){u.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:i})},u.r=function(e){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.t=function(e,o){if(1&o&&(e=u(e)),8&o||4&o&&typeof e=="object"&&e&&e.__esModule)return e;var i=Object.create(null);if(u.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&o&&typeof e!="string")for(var c in e)u.d(i,c,function(s){return e[s]}.bind(null,c));return i},u.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(o,"a",o),o},u.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},u.p="",u(u.s=63)}({0:function(y,a){y.exports=l},63:function(y,a,u){"use strict";u.r(a);var e=u(0);function o(){return(o=Object.assign||function(i){for(var c=1;c<arguments.length;c++){var s=arguments[c];for(var t in s)Object.prototype.hasOwnProperty.call(s,t)&&(i[t]=s[t])}return i}).apply(this,arguments)}a.default=function(i){return e.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 216 120",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i),e.createElement("g",{opacity:.84,clipPath:"url(#EmptyDocuments_svg__clip0_1142_57509)"},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M189.25 19.646a7.583 7.583 0 010 15.166h-43.333a7.583 7.583 0 010 15.167h23.833a7.583 7.583 0 010 15.167h-11.022c-5.28 0-9.561 3.395-9.561 7.583 0 1.956 1.063 3.782 3.19 5.48 2.017 1.608 4.824 1.817 7.064 3.096a7.583 7.583 0 01-3.754 14.174H65.75a7.583 7.583 0 010-15.166H23.5a7.583 7.583 0 110-15.167h43.333a7.583 7.583 0 100-15.167H39.75a7.583 7.583 0 110-15.166h43.333a7.583 7.583 0 010-15.167H189.25zm0 30.333a7.583 7.583 0 110 15.166 7.583 7.583 0 010-15.166z",fill:"#D9D8FF",fillOpacity:.8}),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M132.561 19.646l10.077 73.496.906 7.374a4.334 4.334 0 01-3.773 4.829l-63.44 7.789a4.333 4.333 0 01-4.83-3.772l-9.767-79.547a2.166 2.166 0 011.91-2.417l5.262-.59 63.655-7.162zM73.162 26.33l4.97-.557-4.97.557z",fill:"#fff"}),e.createElement("path",{d:"M73.162 26.33l4.97-.557m54.429-6.127l10.077 73.496.906 7.374a4.334 4.334 0 01-3.773 4.829l-63.44 7.789a4.333 4.333 0 01-4.83-3.772l-9.767-79.547a2.166 2.166 0 011.91-2.417l5.262-.59 63.655-7.162z",stroke:"#7B79FF",strokeWidth:2.5}),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M129.818 24.27l9.122 66.608.82 6.682c.264 2.153-1.246 4.11-3.373 4.371l-56.812 6.976c-2.127.261-4.066-1.272-4.33-3.425l-8.83-71.908a2.167 2.167 0 011.887-2.415l7.028-.863",fill:"#F0F0FF"}),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M135.331 5.833H85.978a2.97 2.97 0 00-2.107.873A2.97 2.97 0 0083 8.813v82.333c0 .823.333 1.567.872 2.106a2.97 2.97 0 002.107.873h63.917a2.97 2.97 0 002.106-.873 2.97 2.97 0 00.873-2.106V23.367a2.98 2.98 0 00-.873-2.107L137.437 6.705a2.98 2.98 0 00-2.106-.872z",fill:"#fff",stroke:"#7B79FF",strokeWidth:2.5}),e.createElement("path",{d:"M135.811 7.082v12.564a3.25 3.25 0 003.25 3.25h8.595M94.644 78.146h28.167m-28.167-55.25h28.167-28.167zm0 13h46.584-46.584zm0 14.083h46.584-46.584zm0 14.084h46.584-46.584z",stroke:"#7B79FF",strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round"})),e.createElement("defs",null,e.createElement("clipPath",{id:"EmptyDocuments_svg__clip0_1142_57509"},e.createElement("path",{fill:"#fff",d:"M0 0h216v120H0z"}))))}}})})}}]);
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- const { createPolicy } = require('@strapi/utils').policy;
4
-
5
- /**
6
- * This policy is used for routes dealing with telemetry and analytics content.
7
- * It will fails when the telemetry has been disabled on the server.
8
- */
9
- module.exports = createPolicy({
10
- name: 'admin::isTelemetryEnabled',
11
- handler(_ctx, _config, { strapi }) {
12
- if (strapi.telemetry.isDisabled) {
13
- return false;
14
- }
15
- },
16
- });
@@ -1,161 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
- const _ = require('lodash');
5
- const fs = require('fs-extra');
6
- const { isUsingTypeScript } = require('@strapi/typescript-utils');
7
- const getCustomAppConfigFile = require('./get-custom-app-config-file');
8
-
9
- const getPkgPath = name => path.dirname(require.resolve(`${name}/package.json`));
10
-
11
- async function createPluginsJs(plugins, dest) {
12
- const pluginsArray = plugins.map(({ pathToPlugin, name }) => {
13
- const shortName = _.camelCase(name);
14
-
15
- /**
16
- * path.join, on windows, it uses backslashes to resolve path.
17
- * The problem is that Webpack does not windows paths
18
- * With this tool, we need to rely on "/" and not "\".
19
- * This is the reason why '..\\..\\..\\node_modules\\@strapi\\plugin-content-type-builder/strapi-admin.js' was not working.
20
- * The regexp at line 105 aims to replace the windows backslashes by standard slash so that webpack can deal with them.
21
- * Backslash looks to work only for absolute paths with webpack => https://webpack.js.org/concepts/module-resolution/#absolute-paths
22
- */
23
- const realPath = path
24
- .join(path.relative(path.resolve(dest, 'admin', 'src'), pathToPlugin), 'strapi-admin.js')
25
- .replace(/\\/g, '/');
26
-
27
- return {
28
- name,
29
- pathToPlugin: realPath,
30
- shortName,
31
- };
32
- });
33
-
34
- const content = `
35
- ${pluginsArray
36
- .map(({ pathToPlugin, shortName }) => {
37
- const req = `'${pathToPlugin}'`;
38
-
39
- return `import ${shortName} from ${req};`;
40
- })
41
- .join('\n')}
42
-
43
-
44
- const plugins = {
45
- ${[...pluginsArray]
46
- .map(({ name, shortName }) => {
47
- return ` '${name}': ${shortName},`;
48
- })
49
- .join('\n')}
50
- };
51
-
52
- export default plugins;
53
- `;
54
-
55
- return fs.writeFile(path.resolve(dest, 'admin', 'src', 'plugins.js'), content);
56
- }
57
-
58
- async function copyAdmin(dest) {
59
- const adminPath = getPkgPath('@strapi/admin');
60
-
61
- // TODO copy ee folders for plugins
62
- await fs.copy(path.resolve(adminPath, 'ee', 'admin'), path.resolve(dest, 'ee', 'admin'));
63
-
64
- await fs.ensureDir(path.resolve(dest, 'config'));
65
- await fs.copy(path.resolve(adminPath, 'admin'), path.resolve(dest, 'admin'));
66
-
67
- // Copy package.json
68
- await fs.copy(path.resolve(adminPath, 'package.json'), path.resolve(dest, 'package.json'));
69
- }
70
-
71
- async function createCacheDir({ appDir, plugins }) {
72
- const cacheDir = path.resolve(appDir, '.cache');
73
-
74
- const useTypeScript = await isUsingTypeScript(path.join(appDir, 'src', 'admin'), 'tsconfig.json');
75
-
76
- const pluginsWithFront = Object.keys(plugins)
77
- .filter(pluginName => {
78
- const pluginInfo = plugins[pluginName];
79
- return fs.existsSync(path.resolve(pluginInfo.pathToPlugin, 'strapi-admin.js'));
80
- })
81
- .map(name => ({ name, ...plugins[name] }));
82
-
83
- // create .cache dir
84
- await fs.emptyDir(cacheDir);
85
-
86
- // copy admin core code
87
- await copyAdmin(cacheDir);
88
-
89
- // Retrieve the custom config file extension
90
- const customAdminAppConfigFile = await getCustomAppConfigFile(appDir, useTypeScript);
91
-
92
- if (customAdminAppConfigFile) {
93
- const defaultAdminConfigFilePath = path.resolve(cacheDir, 'admin', 'src', 'app.js');
94
- const customAdminAppConfigFilePath = path.join(
95
- appDir,
96
- 'src',
97
- 'admin',
98
- customAdminAppConfigFile
99
- );
100
- const dest = path.resolve(cacheDir, 'admin', 'src', customAdminAppConfigFile);
101
-
102
- if (useTypeScript) {
103
- // Remove the default config file
104
- await fs.remove(defaultAdminConfigFilePath);
105
- // Copy the custom one
106
- await fs.copy(customAdminAppConfigFilePath, dest);
107
- } else {
108
- await fs.copy(customAdminAppConfigFilePath, dest);
109
- }
110
- }
111
-
112
- // Copy admin extensions folder
113
- const adminExtensionFolder = path.join(appDir, 'src', 'admin', 'extensions');
114
-
115
- if (fs.existsSync(adminExtensionFolder)) {
116
- await fs.copy(adminExtensionFolder, path.resolve(cacheDir, 'admin', 'src', 'extensions'));
117
- }
118
-
119
- // create plugins.js with plugins requires
120
- await createPluginsJs(pluginsWithFront, cacheDir);
121
-
122
- // create the tsconfig.json file so we can develop plugins in ts while being in a JS project
123
- if (!useTypeScript) {
124
- await createTSConfigFile(cacheDir);
125
- }
126
- }
127
-
128
- async function createTSConfigFile(dest) {
129
- const tsConfig = {
130
- compilerOptions: {
131
- lib: ['es2019', 'es2020.promise', 'es2020.bigint', 'es2020.string', 'DOM'],
132
- noImplicitAny: false,
133
- module: 'es2020',
134
- target: 'es5',
135
- jsx: 'react',
136
- allowJs: true,
137
- strict: true,
138
- moduleResolution: 'node',
139
- skipLibCheck: true,
140
- esModuleInterop: true,
141
- allowSyntheticDefaultImports: true,
142
- resolveJsonModule: true,
143
- noEmit: false,
144
- incremental: true,
145
- },
146
- include: ['../../../src/admin/*', '../../../src/**/**/admin/src/*'],
147
- exclude: ['node_modules', '**/*.test.js', '*.js'],
148
- };
149
-
150
- const filePath = path.join(dest, 'admin', 'src', 'tsconfig.json');
151
-
152
- try {
153
- await fs.ensureFile(filePath);
154
-
155
- await fs.writeJSON(filePath, tsConfig, { spaces: 2 });
156
- } catch (err) {
157
- console.log(err);
158
- }
159
- }
160
-
161
- module.exports = createCacheDir;