@strapi/admin 4.9.0-exp.90df253ba90fd6879eb56a720a1f80d04ff745b8 → 4.9.1

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 (167) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.js +14 -0
  3. package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +7 -0
  4. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  5. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +3 -1
  6. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +10 -3
  7. package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
  8. package/admin/src/content-manager/components/InputUID/endActionStyle.js +4 -13
  9. package/admin/src/content-manager/components/InputUID/index.js +94 -71
  10. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
  11. package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
  12. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
  13. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
  14. package/admin/src/content-manager/pages/App/index.js +2 -2
  15. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
  16. package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
  17. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
  18. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
  19. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
  20. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
  21. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  22. package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
  23. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
  24. package/admin/src/content-manager/utils/getFieldName.js +1 -1
  25. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
  26. package/admin/src/content-manager/utils/paths.js +1 -1
  27. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
  28. package/admin/src/hooks/useConfigurations/__mocks__/index.js +7 -0
  29. package/admin/src/hooks/useRegenerate/index.js +12 -7
  30. package/admin/src/hooks/useSettingsForm/index.js +3 -3
  31. package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
  32. package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
  33. package/admin/src/pages/AuthPage/components/Register/index.js +46 -38
  34. package/admin/src/pages/AuthPage/reducer.js +1 -1
  35. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +2 -2
  36. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
  37. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
  38. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +1 -1
  39. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
  40. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
  41. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
  42. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
  43. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
  44. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
  45. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
  46. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
  47. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
  48. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  49. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
  50. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
  51. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
  52. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
  53. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +1 -1
  54. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +47 -5
  55. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
  56. package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
  57. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
  58. package/admin/src/permissions/index.js +1 -1
  59. package/admin/src/translations/en.json +1 -0
  60. package/admin/src/utils/getAttributesToDisplay.js +2 -4
  61. package/admin/src/utils/getExistingActions.js +1 -3
  62. package/admin/src/utils/sortLinks.js +1 -1
  63. package/build/1387.84b454d3.chunk.js +1 -0
  64. package/build/1657.45231968.chunk.js +168 -0
  65. package/build/3081.bcf9a12f.chunk.js +108 -0
  66. package/build/462.8fff7f3b.chunk.js +71 -0
  67. package/build/4628.20631dd1.chunk.js +1 -0
  68. package/build/5542.b8240e3f.chunk.js +70 -0
  69. package/build/5563.905daa13.chunk.js +79 -0
  70. package/build/6404.68405699.chunk.js +100 -0
  71. package/build/7259.b7d00cea.chunk.js +1 -0
  72. package/build/8694.6522968d.chunk.js +247 -0
  73. package/build/9347.058ddb22.chunk.js +1 -0
  74. package/build/Admin-authenticatedApp.a168aa38.chunk.js +79 -0
  75. package/build/Admin_InternalErrorPage.15c6bf07.chunk.js +1 -0
  76. package/build/Admin_homePage.da2181fe.chunk.js +73 -0
  77. package/build/Admin_marketplace.99e25059.chunk.js +31 -0
  78. package/build/Admin_pluginsPage.f6b52ee9.chunk.js +6 -0
  79. package/build/Admin_profilePage.9112cffc.chunk.js +15 -0
  80. package/build/Admin_settingsPage.cb63220f.chunk.js +79 -0
  81. package/build/Upload_ConfigureTheView.eaaec495.chunk.js +1 -0
  82. package/build/admin-app.8cde5b22.chunk.js +110 -0
  83. package/build/admin-edit-roles-page.4f1858e9.chunk.js +280 -0
  84. package/build/admin-edit-users.7e14d85f.chunk.js +10 -0
  85. package/build/admin-roles-list.97e198f9.chunk.js +31 -0
  86. package/build/admin-users.d02de059.chunk.js +34 -0
  87. package/build/api-tokens-create-page.97595e12.chunk.js +1 -0
  88. package/build/api-tokens-edit-page.cd36e30e.chunk.js +1 -0
  89. package/build/api-tokens-list-page.6757c7b9.chunk.js +16 -0
  90. package/build/audit-logs-settings-page.ca9a3c46.chunk.js +76 -0
  91. package/build/content-manager.ba088a66.chunk.js +1132 -0
  92. package/build/content-type-builder-list-view.9c2c020c.chunk.js +214 -0
  93. package/build/content-type-builder.fef159db.chunk.js +126 -0
  94. package/build/email-settings-page.1095e1ab.chunk.js +10 -0
  95. package/build/{en-json.01a88a30.chunk.js → en-json.b052667a.chunk.js} +1 -1
  96. package/build/{highlight.js.26ef649f.chunk.js → highlight.js.28a1547e.chunk.js} +2 -2
  97. package/build/i18n-settings-page.7d80aae0.chunk.js +60 -0
  98. package/build/index.html +1 -1
  99. package/build/main.0df5f5ca.js +2280 -0
  100. package/build/{runtime~main.a40b1b57.js → runtime~main.03cdff31.js} +2 -2
  101. package/build/sso-settings-page.1dd4886e.chunk.js +1 -0
  102. package/build/transfer-tokens-create-page.ec2ca215.chunk.js +1 -0
  103. package/build/transfer-tokens-edit-page.22bf28e5.chunk.js +1 -0
  104. package/build/transfer-tokens-list-page.cf8c77f2.chunk.js +16 -0
  105. package/build/upload-settings.945fdcfa.chunk.js +13 -0
  106. package/build/upload-translation-fr-json.baab9911.chunk.js +1 -0
  107. package/build/{upload-translation-th-json.3847dae0.chunk.js → upload-translation-th-json.98d35574.chunk.js} +1 -1
  108. package/build/upload.a86b1054.chunk.js +33 -0
  109. package/build/users-advanced-settings-page.5b5a9baa.chunk.js +8 -0
  110. package/build/users-email-settings-page.e5506eb4.chunk.js +23 -0
  111. package/build/users-providers-settings-page.e32089c2.chunk.js +28 -0
  112. package/build/users-roles-settings-page.9359e4d1.chunk.js +30 -0
  113. package/build/webhook-edit-page.213f0075.chunk.js +75 -0
  114. package/build/webhook-list-page.5beb2a5c.chunk.js +71 -0
  115. package/ee/server/bootstrap.js +3 -0
  116. package/ee/server/register.js +3 -2
  117. package/ee/server/services/audit-logs.js +75 -16
  118. package/ee/server/utils/persisted-tables.js +49 -0
  119. package/jest.config.front.js +1 -6
  120. package/package.json +27 -25
  121. package/server/middlewares/data-transfer.js +4 -1
  122. package/server/services/permission/permissions-manager/sanitize.js +2 -0
  123. package/webpack.config.js +1 -1
  124. package/build/2637.679b590b.chunk.js +0 -1
  125. package/build/4049.64715f20.chunk.js +0 -1
  126. package/build/5563.451e91ee.chunk.js +0 -30
  127. package/build/7112.2bf13da3.chunk.js +0 -14
  128. package/build/7259.7744297b.chunk.js +0 -1
  129. package/build/8469.853c822b.chunk.js +0 -1
  130. package/build/8580.b0dcf37c.chunk.js +0 -98
  131. package/build/9816.01ee964f.chunk.js +0 -2
  132. package/build/Admin-authenticatedApp.5aa08bf5.chunk.js +0 -79
  133. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +0 -1
  134. package/build/Admin_homePage.1411fb7c.chunk.js +0 -68
  135. package/build/Admin_marketplace.0f6c8ee2.chunk.js +0 -22
  136. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +0 -1
  137. package/build/Admin_profilePage.d2a8f9ab.chunk.js +0 -15
  138. package/build/Admin_settingsPage.489ec4eb.chunk.js +0 -9
  139. package/build/Upload_ConfigureTheView.34dde278.chunk.js +0 -1
  140. package/build/admin-app.4b313104.chunk.js +0 -112
  141. package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
  142. package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
  143. package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
  144. package/build/admin-users.af8c3123.chunk.js +0 -11
  145. package/build/api-tokens-create-page.2a6e22bd.chunk.js +0 -1
  146. package/build/api-tokens-edit-page.fa38cd63.chunk.js +0 -1
  147. package/build/api-tokens-list-page.93f24348.chunk.js +0 -16
  148. package/build/audit-logs-settings-page.7be97e82.chunk.js +0 -1
  149. package/build/content-manager.f530e141.chunk.js +0 -1139
  150. package/build/content-type-builder-list-view.cf38fe2f.chunk.js +0 -191
  151. package/build/content-type-builder.6ecd201d.chunk.js +0 -126
  152. package/build/email-settings-page.4bdbef9a.chunk.js +0 -3
  153. package/build/i18n-settings-page.2bb5be96.chunk.js +0 -1
  154. package/build/main.43b93ff3.js +0 -3843
  155. package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
  156. package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +0 -1
  157. package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +0 -1
  158. package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
  159. package/build/upload-settings.0200561d.chunk.js +0 -1
  160. package/build/upload-translation-fr-json.84429734.chunk.js +0 -1
  161. package/build/upload.c7da1611.chunk.js +0 -13
  162. package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
  163. package/build/users-email-settings-page.a3c80419.chunk.js +0 -1
  164. package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
  165. package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
  166. package/build/webhook-edit-page.a2a2b7bb.chunk.js +0 -23
  167. package/build/webhook-list-page.029957a4.chunk.js +0 -1
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[302],{26930:function(A,u,a){a.r(u),a.d(u,{SingleSignOn:function(){return f},default:function(){return L}});var e=a(32735),l=a(13478),R=a(57269),s=a(39161),E=a(5636),v=a(89793),b=a.n(v),C=a(64421),g=a(8888),c=a(72041),r=a(5173),M=r.Ry().shape({autoRegister:r.Xg().required(l.translatedErrors.required),defaultRole:r.nK().when("autoRegister",(t,i)=>t?i.required(l.translatedErrors.required):i.nullable())});const m={...c.Z.settings.sso,readRoles:c.Z.settings.roles.read},f=()=>{const{formatMessage:t}=(0,E.useIntl)(),{isLoading:i,allowedActions:{canUpdate:h,canReadRoles:O}}=(0,l.useRBAC)(m),[{formErrors:o,initialData:y,isLoading:I,modifiedData:d,showHeaderButtonLoader:P},H,{handleChange:S,handleSubmit:D}]=(0,g.G4)((0,C.IF)("providers/options"),M,()=>{},["autoRegister","defaultRole"]),{roles:F}=(0,g.bF)(O);(0,l.useFocusWhenNavigate)();const T=i||I;(0,e.useEffect)(()=>{if(o.defaultRole){const n='[name="defaultRole"]';document.querySelector(n).focus()}},[o]);const p=b()(y,d);return e.createElement(s.Layout,null,e.createElement(l.SettingsPageTitle,{name:"SSO"}),e.createElement(s.Main,{tabIndex:-1},e.createElement("form",{onSubmit:n=>{if(p){n.preventDefault();return}D(n)}},e.createElement(s.HeaderLayout,{primaryAction:e.createElement(s.Button,{"data-testid":"save-button",disabled:p,loading:P,startIcon:e.createElement(R.Check,null),type:"submit",size:"L"},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.sso.title",defaultMessage:"Single Sign-On"}),subtitle:t({id:"Settings.sso.description",defaultMessage:"Configure the settings for the Single Sign-On feature."})}),e.createElement(s.ContentLayout,null,T?e.createElement(l.LoadingIndicatorPage,null):e.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4,background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(s.Typography,{variant:"delta",as:"h2"},t({id:"global.settings",defaultMessage:"Settings"})),e.createElement(s.Grid,{gap:4},e.createElement(s.GridItem,{col:6,m:6,s:12},e.createElement(s.ToggleInput,{"aria-label":"autoRegister","data-testid":"autoRegister",disabled:!h,checked:d.autoRegister,hint:t({id:"Settings.sso.form.registration.description",defaultMessage:"Create new user on SSO login if no account exists"}),label:t({id:"Settings.sso.form.registration.label",defaultMessage:"Auto-registration"}),name:"autoRegister",offLabel:t({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:t({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:n=>{S({target:{name:"autoRegister",value:n.target.checked}})}})),e.createElement(s.GridItem,{col:6,m:6,s:12},e.createElement(s.Select,{disabled:!h,hint:t({id:"Settings.sso.form.defaultRole.description",defaultMessage:"It will attach the new authenticated user to the selected role"}),error:o.defaultRole?t({id:o.defaultRole.id,defaultMessage:o.defaultRole.id}):"",label:t({id:"Settings.sso.form.defaultRole.label",defaultMessage:"Default role"}),name:"defaultRole",onChange:n=>{S({target:{name:"defaultRole",value:n}})},placeholder:t({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),value:d.defaultRole},F.map(({id:n,name:x})=>e.createElement(s.Option,{key:n,value:n.toString()},x))))))))))};var L=()=>e.createElement(l.CheckPagePermissions,{permissions:m.main},e.createElement(f,null))}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4816],{76411:function(r,s,e){e.r(s);var t=e(32735),n=e(13478),i=e.n(n),_=e(72041),a=e(37259);const E=()=>t.createElement(n.CheckPagePermissions,{permissions:_.Z.settings["transfer-tokens"].create},t.createElement(a.Z,null));s.default=E}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2492],{32392:function(r,s,e){e.r(s);var n=e(32735),t=e(13478),i=e.n(t),_=e(72041),a=e(37259);const E=()=>n.createElement(t.CheckPagePermissions,{permissions:_.Z.settings["transfer-tokens"].read},n.createElement(a.Z,null));s.default=E}}]);
@@ -1,16 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9600],{81450:function(H,v,n){n.d(v,{Z:function(){return R}});var e=n(32735),s=n(5141),A=n(60216),t=n.n(A),a=n(39161),l=n(13478),C=n(57269),D=n(5636);const k=({tokenName:r,onClickDelete:c,tokenType:E})=>{const{formatMessage:d}=(0,D.useIntl)(),{trackUsage:f}=(0,l.useTracking)(),[u,p]=(0,e.useState)(!1),h=()=>{p(!1),f("willDeleteToken",{tokenType:E}),c()};return e.createElement(a.Box,{paddingLeft:1,onClick:T=>T.stopPropagation()},e.createElement(a.IconButton,{onClick:()=>{p(!0)},label:d({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${r}`}),name:"delete",noBorder:!0,icon:e.createElement(C.Trash,null)}),e.createElement(l.ConfirmDialog,{onToggleDialog:()=>p(!1),onConfirm:h,isOpen:u}))};k.propTypes={tokenName:t().string.isRequired,onClickDelete:t().func.isRequired,tokenType:t().string.isRequired};var L=k,W=n(83292);const w={edit:{id:"app.component.table.edit",defaultMessage:"Edit {target}"},read:{id:"app.component.table.read",defaultMessage:"Read {target}"}},U=(0,W.default)(l.Link)`
2
- svg {
3
- path {
4
- fill: ${({theme:r})=>r.colors.neutral500};
5
- }
6
- }
7
-
8
- &:hover,
9
- &:focus {
10
- svg {
11
- path {
12
- fill: ${({theme:r})=>r.colors.neutral800};
13
- }
14
- }
15
- }
16
- `,g=({tokenName:r,tokenId:c,buttonType:E,children:d})=>{const{formatMessage:f}=(0,D.useIntl)(),{location:{pathname:u}}=(0,s.useHistory)();return e.createElement(U,{to:`${u}/${c}`,title:f(w[E],{target:r})},d)};g.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired,buttonType:t().string,children:t().node.isRequired},g.defaultProps={buttonType:"edit"};var I=g;const S=({tokenName:r,tokenId:c})=>e.createElement(I,{tokenName:r,tokenId:c},e.createElement(C.Pencil,null));S.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var Z=S;const M=({tokenName:r,tokenId:c})=>e.createElement(I,{tokenName:r,tokenId:c,buttonType:"read"},e.createElement(C.Eye,null));M.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var V=M;const m=({permissions:r,headers:c,contentType:E,isLoading:d,tokens:f,onConfirmDelete:u,tokenType:p})=>{const{canDelete:h,canUpdate:T,canRead:N}=r,P=h||T||N,[{query:y}]=(0,l.useQueryParams)(),[,b]=y?y.sort.split(":"):"ASC",{push:x,location:{pathname:B}}=(0,s.useHistory)(),{trackUsage:F}=(0,l.useTracking)(),O=f.sort((o,$)=>{const i=o.name.localeCompare($.name);return b==="DESC"?-i:i});return e.createElement(l.DynamicTable,{headers:c,contentType:E,rows:f,withBulkActions:P,isLoading:d,onConfirmDelete:u},e.createElement(a.Tbody,null,O.map(o=>e.createElement(a.Tr,{key:o.id,...(0,l.onRowClick)({fn(){F("willEditTokenFromList",{tokenType:p}),x(`${B}/${o.id}`)},condition:T})},e.createElement(a.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(a.Typography,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},o.name)),e.createElement(a.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(a.Typography,{textColor:"neutral800",ellipsis:!0},o.description)),e.createElement(a.Td,null,e.createElement(a.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(o.createdAt)}))),e.createElement(a.Td,null,o.lastUsedAt&&e.createElement(a.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(o.lastUsedAt)}))),P&&e.createElement(a.Td,null,e.createElement(a.Flex,{justifyContent:"end"},T&&e.createElement(Z,{tokenName:o.name,tokenId:o.id}),!T&&N&&e.createElement(V,{tokenName:o.name,tokenId:o.id}),h&&e.createElement(L,{tokenName:o.name,onClickDelete:()=>u(o.id),tokenType:p})))))))};m.propTypes={tokens:t().array,permissions:t().shape({canRead:t().bool,canDelete:t().bool,canUpdate:t().bool}).isRequired,headers:t().arrayOf(t().shape({cellFormatter:t().func,key:t().string.isRequired,metadatas:t().shape({label:t().string.isRequired,sortable:t().bool}).isRequired,name:t().string.isRequired})),contentType:t().string.isRequired,isLoading:t().bool,onConfirmDelete:t().func,tokenType:t().string.isRequired},m.defaultProps={tokens:[],headers:[],isLoading:!1,onConfirmDelete(){}};var R=m},68774:function(H,v,n){n.d(v,{Z:function(){return e},f:function(){return s}});const e="api-token",s="transfer-token"},38286:function(H,v,n){n.r(v),n.d(v,{default:function(){return M}});var e=n(32735),s=n(13478),A=n(72041),t=n(5636),a=n(84968),l=n(5141),C=n(33348),D=n.n(C),k=n(39161),L=n(57269),w=[{name:"name",key:"name",metadatas:{label:{id:"Settings.tokens.ListView.headers.name",defaultMessage:"Name"},sortable:!0}},{name:"description",key:"description",metadatas:{label:{id:"Settings.tokens.ListView.headers.description",defaultMessage:"Description"},sortable:!1}},{name:"createdAt",key:"createdAt",metadatas:{label:{id:"Settings.tokens.ListView.headers.createdAt",defaultMessage:"Created at"},sortable:!1}},{name:"lastUsedAt",key:"lastUsedAt",metadatas:{label:{id:"Settings.tokens.ListView.headers.lastUsedAt",defaultMessage:"Last used"},sortable:!1}}],U=n(81450),g=n(68774),S=()=>{(0,s.useFocusWhenNavigate)();const V=(0,a.useQueryClient)(),{formatMessage:m}=(0,t.useIntl)(),R=(0,s.useNotification)(),{allowedActions:{canCreate:r,canDelete:c,canUpdate:E,canRead:d}}=(0,s.useRBAC)(A.Z.settings["transfer-tokens"]),{push:f}=(0,l.useHistory)(),{trackUsage:u}=(0,s.useTracking)(),{startSection:p}=(0,s.useGuidedTour)(),h=(0,e.useRef)(p),{get:T,del:N}=(0,s.useFetchClient)();(0,e.useEffect)(()=>{h.current&&h.current("transferTokens")},[]),(0,e.useEffect)(()=>{f({search:D().stringify({sort:"name:ASC"},{encode:!1})})},[f]);const P=w.map(i=>({...i,metadatas:{...i.metadatas,label:m(i.metadatas.label)}})),{data:y,status:b,isFetching:x}=(0,a.useQuery)(["transfer-tokens"],async()=>{u("willAccessTokenList",{tokenType:g.f});const{data:{data:i}}=await T("/admin/transfer/tokens");return u("didAccessTokenList",{number:i.length,tokenType:g.f}),i},{enabled:d,onError(){R({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),B=d&&(b!=="success"&&b!=="error"||b==="success"&&x),F=(0,a.useMutation)(async i=>{await N(`/admin/transfer/tokens/${i}`)},{async onSuccess(){await V.invalidateQueries(["transfer-tokens"])},onError(i){i?.response?.data?.data?R({type:"warning",message:i.response.data.data}):R({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),O=d&&y,o=d&&!y&&!r,$=d&&!y&&r;return e.createElement(k.Main,{"aria-busy":B},e.createElement(s.SettingsPageTitle,{name:"Transfer Tokens"}),e.createElement(k.HeaderLayout,{title:m({id:"Settings.transferTokens.title",defaultMessage:"Transfer Tokens"}),subtitle:m({id:"Settings.transferTokens.description",defaultMessage:'"List of generated transfer tokens"'}),primaryAction:r?e.createElement(s.LinkButton,{"data-testid":"create-transfer-token-button",startIcon:e.createElement(L.Plus,null),size:"S",onClick:()=>u("willAddTokenFromList",{tokenType:g.f}),to:"/settings/transfer-tokens/create"},m({id:"Settings.transferTokens.create",defaultMessage:"Create new Transfer Token"})):void 0}),e.createElement(k.ContentLayout,null,!d&&e.createElement(s.NoPermissions,null),O&&e.createElement(U.Z,{permissions:{canRead:d,canDelete:c,canUpdate:E},headers:P,contentType:"trasfer-tokens",rows:y,isLoading:B,onConfirmDelete:i=>F.mutateAsync(i),tokens:y,tokenType:g.f}),$&&e.createElement(s.NoContent,{content:{id:"Settings.transferTokens.addFirstToken",defaultMessage:"Add your first Transfer Token"},action:e.createElement(k.Button,{variant:"secondary",startIcon:e.createElement(L.Plus,null)},m({id:"Settings.transferTokens.addNewToken",defaultMessage:"Add new Transfer Token"}))}),o&&e.createElement(s.NoContent,{content:{id:"Settings.transferTokens.emptyStateLayout",defaultMessage:"You don\u2019t have any content yet..."}})))},M=()=>e.createElement(s.CheckPagePermissions,{permissions:A.Z.settings["transfer-tokens"].main},e.createElement(S,null))}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[695],{67963:function(H,f,i){i.r(f),i.d(f,{SettingsPage:function(){return p},default:function(){return L}});var e=i(32735),b=i(99357),O=i(5636),r=i(13478),v=i(57269),a=i(39161),C=i(55721),D=i(89793),y=i.n(D),n=i(15503),M=t=>t,T=i(97889),S=i(3040),z=i.n(S);const k={isLoading:!0,isSubmiting:!1,initialData:{responsiveDimensions:!0,sizeOptimization:!0,autoOrientation:!1,videoPreview:!1},modifiedData:{responsiveDimensions:!0,sizeOptimization:!0,autoOrientation:!1,videoPreview:!1}};var I=(t,l)=>(0,T.default)(t,s=>{switch(l.type){case"CANCEL_CHANGES":{s.modifiedData=t.initialData;break}case"GET_DATA_SUCCEEDED":{s.isLoading=!1,s.initialData=l.data,s.modifiedData=l.data;break}case"ON_CHANGE":{z()(s,["modifiedData",...l.keys.split(".")],l.value);break}case"ON_SUBMIT":{s.isSubmiting=!0;break}case"SUBMIT_SUCCEEDED":{s.initialData=t.modifiedData,s.isSubmiting=!1;break}case"ON_SUBMIT_ERROR":{s.isSubmiting=!1;break}default:return t}}),B=i(93826);const p=()=>{const{formatMessage:t}=(0,O.useIntl)(),{lockApp:l,unlockApp:s}=(0,r.useOverlayBlocker)(),P=(0,r.useNotification)(),{get:A,put:N}=(0,r.useFetchClient)();(0,r.useFocusWhenNavigate)();const[{initialData:x,isLoading:R,isSubmiting:U,modifiedData:d},g]=(0,e.useReducer)(I,k,M),h=(0,e.useRef)(!0);(0,e.useEffect)(()=>{const c=C.Z.CancelToken.source(),F=async()=>{try{const{data:{data:m}}=await A((0,n.IF)("settings"),{cancelToken:c.token});g({type:"GET_DATA_SUCCEEDED",data:m})}catch(m){console.error(m)}};return h.current&&F(),()=>{c.cancel("Operation canceled by the user."),h.current=!1}},[]);const E=y()(x,d),G=async o=>{if(o.preventDefault(),!E){l(),g({type:"ON_SUBMIT"});try{await N((0,n.IF)("settings"),d),g({type:"SUBMIT_SUCCEEDED"}),P({type:"success",message:{id:"notification.form.success.fields"}})}catch(c){console.error(c),g({type:"ON_SUBMIT_ERROR"})}s()}},u=({target:{name:o,value:c}})=>{g({type:"ON_CHANGE",keys:o,value:c})};return e.createElement(a.Main,{tabIndex:-1},e.createElement(b.Helmet,{title:t({id:(0,n.OB)("page.title"),defaultMessage:"Settings - Media Libray"})}),e.createElement("form",{onSubmit:G},e.createElement(a.HeaderLayout,{title:t({id:(0,n.OB)("settings.header.label"),defaultMessage:"Media Library"}),primaryAction:e.createElement(a.Button,{disabled:E,"data-testid":"save-button",loading:U,type:"submit",startIcon:e.createElement(v.Check,null),size:"S"},t({id:"global.save",defaultMessage:"Save"})),subtitle:t({id:(0,n.OB)("settings.sub-header.label"),defaultMessage:"Configure the settings for the Media Library"})}),e.createElement(a.ContentLayout,null,R?e.createElement(r.LoadingIndicatorPage,null):e.createElement(a.Layout,null,e.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:12},e.createElement(a.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(a.Flex,null,e.createElement(a.Typography,{variant:"delta",as:"h2"},t({id:(0,n.OB)("settings.blockTitle"),defaultMessage:"Asset management"}))),e.createElement(a.Grid,{gap:6},e.createElement(a.GridItem,{col:6,s:12},e.createElement(a.ToggleInput,{"aria-label":"responsiveDimensions","data-testid":"responsiveDimensions",checked:d.responsiveDimensions,hint:t({id:(0,n.OB)("settings.form.responsiveDimensions.description"),defaultMessage:"Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset."}),label:t({id:(0,n.OB)("settings.form.responsiveDimensions.label"),defaultMessage:"Responsive friendly upload"}),name:"responsiveDimensions",offLabel:t({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:t({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:o=>{u({target:{name:"responsiveDimensions",value:o.target.checked}})}})),e.createElement(a.GridItem,{col:6,s:12},e.createElement(a.ToggleInput,{"aria-label":"sizeOptimization","data-testid":"sizeOptimization",checked:d.sizeOptimization,hint:t({id:(0,n.OB)("settings.form.sizeOptimization.description"),defaultMessage:"Enabling this option will reduce the image size and slightly reduce its quality."}),label:t({id:(0,n.OB)("settings.form.sizeOptimization.label"),defaultMessage:"Size optimization"}),name:"sizeOptimization",offLabel:t({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:t({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:o=>{u({target:{name:"sizeOptimization",value:o.target.checked}})}})),e.createElement(a.GridItem,{col:6,s:12},e.createElement(a.ToggleInput,{"aria-label":"autoOrientation","data-testid":"autoOrientation",checked:d.autoOrientation,hint:t({id:(0,n.OB)("settings.form.autoOrientation.description"),defaultMessage:"Enabling this option will automatically rotate the image according to EXIF orientation tag."}),label:t({id:(0,n.OB)("settings.form.autoOrientation.label"),defaultMessage:"Auto orientation"}),name:"autoOrientation",offLabel:t({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:t({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:o=>{u({target:{name:"autoOrientation",value:o.target.checked}})}}))))))))))};var L=()=>e.createElement(r.CheckPagePermissions,{permissions:B.Z.settings},e.createElement(p,null))}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7833],{49713:function(e){e.exports=JSON.parse(`{"button.next":"Suivant","checkControl.crop-duplicate":"Dupliquer & recadrer le m\xE9dia","checkControl.crop-original":"Recadrer le m\xE9dia d'origine","control-card.add":"Ajouter","control-card.cancel":"Annuler","control-card.copy-link":"Copier le lien","control-card.crop":"Recadrer","control-card.download":"T\xE9l\xE9charger","control-card.edit":"\xC9diter","control-card.replace-media":"Remplacer le m\xE9dia","control-card.save":"Sauvegarder","filter.add":"Ajouter un filtre","form.button.replace-media":"Remplacer le m\xE9dia","form.input.decription.file-alt":"Ce texte sera affich\xE9 si le m\xE9dia ne peut pas \xEAtre affich\xE9.","form.input.label.file-alt":"Texte alternatif","form.input.label.file-caption":"L\xE9gende","form.input.label.file-name":"Nom du fichier","form.upload-url.error.url.invalid":"Une URL n'est pas valide","form.upload-url.error.url.invalids":"{number} URLs ne sont pas valides","header.actions.upload-assets":"Importer des m\xE9dias","header.content.assets":"{numberFolders, plural, one {1 dossier} other {# dossiers}} - {numberAssets, plural, one {1 m\xE9dia} other {# m\xE9dias}}","input.button.label":"Parcourir les fichiers","input.label-bold":"Glissez & d\xE9posez","input.label-normal":"pour importer ou","input.placeholder":"Cliquez pour s\xE9lectionner un m\xE9dia ou glissez & d\xE9posez un fichier dans cette zone","input.placeholder.icon":"Lacher le fichier dans cette zone","input.url.description":"S\xE9parez vos URLs par un retour \xE0 la ligne.","input.url.label":"URL","list.assets-empty.subtitle":"Ajoutez-en un \xE0 la liste.","list.assets-empty.title":"Il n'y a pas encore de m\xE9dia","list.assets-empty.title-withSearch":"Il n'y a aucun m\xE9dia avec les filtres appliqu\xE9s","list.assets.loading-asset":"Chargement du contenu pour le media {path}","list.assets.not-supported-content":"Preview non disponible","list.assets.preview-asset":"Preview de la vid\xE9o {path}","list.assets.type-not-allowed":"Ce type de fichier n'est pas autoris\xE9.","modal.file-details.date":"Date","modal.file-details.dimensions":"Dimensions","modal.file-details.extension":"Extension","modal.file-details.size":"Taille","modal.header.browse":"Importer des m\xE9dias","modal.header.file-detail":"D\xE9tails","modal.header.pending-assets":"M\xE9dias en attente","modal.header.select-files":"Fichiers s\xE9lectionn\xE9s","modal.nav.browse":"parcourir","modal.nav.computer":"depuis l'ordinateur","modal.nav.selected":"s\xE9lectionn\xE9(s)","modal.nav.url":"depuis une url","modal.selected-list.sub-header-subtitle":"Glissez-d\xE9posez pour r\xE9organiser les m\xE9dias dans le champ","modal.upload-list.sub-header-subtitle":"G\xE9rez les m\xE9dias avant de les ajouter \xE0 la m\xE9diath\xE8que","modal.upload-list.sub-header.button":"Ajouter plus de m\xE9dias","plugin.description.long":"Gestion des fichiers multim\xE9dias.","plugin.description.short":"Gestion des fichiers multim\xE9dias.","plugin.name":"M\xE9diath\xE8que","search.placeholder":"Rechercher un m\xE9dia...","settings.blockTitle":"Gestion des fichiers","settings.form.autoOrientation.description":"Faire pivoter automatiquement l'image selon les EXIF d'orientation","settings.form.autoOrientation.label":"Activer l'orientation automatique","settings.form.responsiveDimensions.description":"G\xE9n\xE8re automatiquement plusieurs formats (grand, moyen, petit) du m\xE9dia import\xE9","settings.form.responsiveDimensions.label":"Activer le t\xE9l\xE9chargement \\"responsive friendly\\"","settings.form.sizeOptimization.description":"Activer cette option r\xE9duira la taille des images en baissant l\xE9g\xE8rement leur qualit\xE9","settings.form.sizeOptimization.label":"Optimisation de la taille","settings.form.videoPreview.description":"G\xE9n\xE8re un aper\xE7u de six secondes de la vid\xE9o (GIF)","settings.form.videoPreview.label":"Aper\xE7u","settings.header.label":"M\xE9diath\xE8que - R\xE9glages","settings.section.image.label":"IMAGE","settings.section.video.label":"VID\xC9O","settings.sub-header.label":"Configurer les param\xE8tres de la m\xE9diath\xE8que","sort.created_at_asc":"Importations les plus anciennes","sort.created_at_desc":"Importations les plus r\xE9centes","sort.label":"Trier par","sort.name_asc":"Ordre alphab\xE9tique (A \xE0 Z)","sort.name_desc":"Ordre alphab\xE9tique invers\xE9 (Z \xE0 A)","sort.updated_at_asc":"Modifications les plus anciennes","sort.updated_at_desc":"Modifications les plus r\xE9centes","window.confirm.close-modal.file":"\xCAtes-vous s\xFBr ? Vos modifications seront perdues.","window.confirm.close-modal.files":"\xCAtes-vous s\xFBr ? Certains fichiers n'ont pas encore \xE9t\xE9 t\xE9l\xE9charg\xE9s."}`)}}]);
@@ -1,13 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3650],{84837:function(it,J,t){t.r(J),t.d(J,{default:function(){return we}});var e=t(32735),R=t(5141),A=t(5636),Ee=t(99357),g=t(13478),n=t(39161),Z=t(83292),X=t(33348),y=t(57269),he=t(86588),ve=t(61405),ye=t(91575),Ce=t(35468),Me=t(65790),Fe=t(25005),Be=t(89581),Se=t(60216),f=t.n(Se);const V=({pagination:s})=>e.createElement(n.Box,{paddingTop:6},e.createElement(n.Flex,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(g.PageSizeURLQuery,null),e.createElement(g.PaginationURLQuery,{pagination:s})));V.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},V.propTypes={pagination:f().shape({page:f().number,pageCount:f().number,pageSize:f().number,total:f().number})};var p=t(68781),Le=t(20069),Ae=t(81094);const Y=({selected:s,onSuccess:l})=>{const{formatMessage:r}=(0,A.useIntl)(),[i,c]=(0,e.useState)(!1),{isLoading:u,remove:h}=(0,Ae.K)(),E=async()=>{await h(s),l()};return e.createElement(e.Fragment,null,e.createElement(n.Button,{variant:"danger-light",size:"S",startIcon:e.createElement(y.Trash,null),onClick:()=>c(!0)},r({id:"global.delete",defaultMessage:"Delete"})),e.createElement(g.ConfirmDialog,{isConfirmButtonLoading:u,isOpen:i,onToggleDialog:()=>c(!1),onConfirm:E}))};Y.propTypes={selected:f().arrayOf(p.pw,p.nx).isRequired,onSuccess:f().func.isRequired};var be=t(83281),Ie=t(86834),Te=t.n(Ie),q=t(84968),x=t(74951),d=t(15503);const Re=()=>{const s=(0,g.useNotification)(),l=(0,q.useQueryClient)(),r=(0,d.IF)("actions/bulk-move"),{post:i}=(0,g.useFetchClient)(),c=({destinationFolderId:E,filesAndFolders:m})=>{const C=m.reduce((v,o)=>{const{id:b,type:B}=o,T=B==="asset"?"fileIds":"folderIds";return v[T]||(v[T]=[]),v[T].push(b),v},{});return i(r,{...C,destinationFolderId:E})},u=(0,q.useMutation)(c,{onSuccess(E){const{data:{data:m}}=E;m?.files?.length>0&&(l.refetchQueries([x.Z,"assets"],{active:!0}),l.refetchQueries([x.Z,"asset-count"],{active:!0})),l.refetchQueries([x.Z,"folders"],{active:!0}),s({type:"success",message:{id:(0,d.OB)("modal.move.success-label"),defaultMessage:"Elements have been moved successfully."}})}});return{...u,move:(E,m)=>u.mutateAsync({destinationFolderId:E,filesAndFolders:m})}};var xe=t(21375),De=t(72236);const $=({onClose:s,selected:l,currentFolder:r})=>{const{formatMessage:i}=(0,A.useIntl)(),{data:c,isLoading:u}=(0,De.v)(),{move:h}=Re();if(!c)return null;const E=async(v,{setErrors:o})=>{try{await h(v.destination.value,l),s()}catch(b){const T=(0,g.normalizeAPIError)(b).errors.reduce((O,S)=>(O[S.values?.path?.length||"destination"]=S.defaultMessage,O),{});Te()(T)||o(T)}},m=()=>{s()};if(u)return e.createElement(n.ModalLayout,{onClose:m,labelledBy:"title"},e.createElement(n.ModalBody,null,e.createElement(n.Flex,{justifyContent:"center",paddingTop:4,paddingBottom:4},e.createElement(n.Loader,null,i({id:(0,d.OB)("content.isLoading"),defaultMessage:"Content is loading."})))));const C={destination:{value:r?.id||"",label:r?.name||c[0].label}};return e.createElement(n.ModalLayout,{onClose:m,labelledBy:"title"},e.createElement(be.Formik,{validateOnChange:!1,onSubmit:E,initialValues:C},({values:v,errors:o,setFieldValue:b})=>e.createElement(g.Form,{noValidate:!0},e.createElement(n.ModalHeader,null,e.createElement(n.Typography,{fontWeight:"bold",textColor:"neutral800",as:"h2",id:"title"},i({id:(0,d.OB)("modal.folder.move.title"),defaultMessage:"Move elements to"}))),e.createElement(n.ModalBody,null,e.createElement(n.Grid,{gap:4},e.createElement(n.GridItem,{xs:12,col:12},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(n.FieldLabel,{htmlFor:"folder-destination"},i({id:(0,d.OB)("form.input.label.folder-location"),defaultMessage:"Location"})),e.createElement(xe.Z,{options:c,onChange:B=>{b("destination",B)},defaultValue:v.destination,name:"destination",menuPortalTarget:document.querySelector("body"),inputId:"folder-destination",error:o?.destination,ariaErrorMessage:"destination-error"}),o.destination&&e.createElement(n.Typography,{variant:"pi",as:"p",id:"folder-destination-error",textColor:"danger600"},o.destination))))),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:m,variant:"tertiary",name:"cancel"},i({id:"cancel",defaultMessage:"Cancel"})),endActions:e.createElement(n.Button,{type:"submit",loading:u},i({id:"modal.folder.move.submit",defaultMessage:"Move"}))}))))};$.defaultProps={currentFolder:void 0},$.propTypes={onClose:f().func.isRequired,currentFolder:p.nx,selected:f().arrayOf(p.nx,p.pw).isRequired};const z=({selected:s,onSuccess:l,currentFolder:r})=>{const{formatMessage:i}=(0,A.useIntl)(),[c,u]=(0,e.useState)(!1),h=()=>{u(!1),l()};return e.createElement(e.Fragment,null,e.createElement(n.Button,{variant:"secondary",size:"S",startIcon:e.createElement(y.Folder,null),onClick:()=>u(!0)},i({id:"global.move",defaultMessage:"Move"})),c&&e.createElement($,{currentFolder:r,onClose:h,selected:s}))};z.defaultProps={currentFolder:void 0},z.propTypes={onSuccess:f().func.isRequired,currentFolder:p.nx,selected:f().arrayOf(p.pw,p.nx).isRequired};const G=({selected:s,onSuccess:l,currentFolder:r})=>{const{formatMessage:i}=(0,A.useIntl)();return e.createElement(n.Flex,{gap:2,paddingBottom:5},e.createElement(n.Typography,{variant:"epsilon",textColor:"neutral600"},i({id:(0,Le.Z)("list.assets.selected"),defaultMessage:"{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected"},{numberFolders:s.filter(({type:c})=>c==="folder").length,numberAssets:s.filter(({type:c})=>c==="asset").length})),e.createElement(Y,{selected:s,onSuccess:l}),e.createElement(z,{currentFolder:r,selected:s,onSuccess:l}))};G.defaultProps={currentFolder:void 0},G.propTypes={onSuccess:f().func.isRequired,currentFolder:p.nx,selected:f().arrayOf(p.pw,p.nx).isRequired};var Oe=t(1920);const Pe=({isFiltering:s,canCreate:l,canRead:r})=>s?{id:"list.assets-empty.title-withSearch",defaultMessage:"There are no elements with the applied filters"}:r?l?{id:"list.assets.empty-upload",defaultMessage:"Upload your first assets..."}:{id:"list.assets.empty",defaultMessage:"Media Library is empty"}:{id:"header.actions.no-permissions",defaultMessage:"No permissions to view"},_=({canCreate:s,isFiltering:l,canRead:r,onActionClick:i})=>{const{formatMessage:c}=(0,A.useIntl)(),u=Pe({isFiltering:l,canCreate:s,canRead:r});return e.createElement(Oe.i,{icon:r?null:y.EmptyPermissions,action:s&&!l&&e.createElement(n.Button,{variant:"secondary",startIcon:e.createElement(y.Plus,null),onClick:i},c({id:(0,d.OB)("header.actions.add-assets"),defaultMessage:"Add new assets"})),content:c({...u,id:(0,d.OB)(u.id)})})};_.propTypes={canCreate:f().bool.isRequired,canRead:f().bool.isRequired,isFiltering:f().bool.isRequired,onActionClick:f().func.isRequired};var D=t(47359),Ue=t(79996),Qe=t(90768),ee=t(90142);const ke=()=>{const s=(0,e.useRef)(null),[l,r]=(0,e.useState)(!1),{formatMessage:i}=(0,A.useIntl)(),{trackUsage:c}=(0,g.useTracking)(),[{query:u},h]=(0,g.useQueryParams)(),E=u?.filters?.$and||[],m=()=>r(o=>!o),C=o=>{h({filters:{$and:o},page:1})},v=o=>{c("didFilterMediaLibraryElements",{location:"content-manager",filter:Object.keys(o[o.length-1])[0]}),h({filters:{$and:o},page:1})};return e.createElement(e.Fragment,null,e.createElement(n.Button,{variant:"tertiary",ref:s,startIcon:e.createElement(y.Filter,null),onClick:m,size:"S"},i({id:"app.utils.filters",defaultMessage:"Filters"})),l&&e.createElement(Qe.Z,{displayedFilters:ee.Z,filters:E,onSubmit:v,onToggle:m,source:s}),e.createElement(Ue.Z,{appliedFilters:E,filtersSchema:ee.Z,onRemoveFilter:C}))};var Ze=t(17837);const W=({breadcrumbs:s,canCreate:l,folder:r,onToggleEditFolderDialog:i,onToggleUploadAssetDialog:c})=>{const{formatMessage:u}=(0,A.useIntl)(),{pathname:h}=(0,R.useLocation)(),[{query:E}]=(0,g.useQueryParams)(),m={...E,folder:r?.parent?.id??void 0};return e.createElement(n.HeaderLayout,{title:u({id:(0,d.OB)("plugin.name"),defaultMessage:"Media Library"}),subtitle:s&&r&&e.createElement(Ze.O,{as:"nav",label:u({id:(0,d.OB)("header.breadcrumbs.nav.label"),defaultMessage:"Folders navigation"}),breadcrumbs:s,currentFolderId:r?.id}),navigationAction:r&&e.createElement(n.Link,{startIcon:e.createElement(y.ArrowLeft,null),to:`${h}?${(0,X.stringify)(m,{encode:!1})}`},u({id:(0,d.OB)("header.actions.folder-level-up"),defaultMessage:"Back"})),primaryAction:l&&e.createElement(n.Flex,{gap:2},e.createElement(n.Button,{startIcon:e.createElement(y.Plus,null),variant:"secondary",onClick:i},u({id:(0,d.OB)("header.actions.add-folder"),defaultMessage:"Add new folder"})),e.createElement(n.Button,{startIcon:e.createElement(y.Plus,null),onClick:c},u({id:(0,d.OB)("header.actions.add-assets"),defaultMessage:"Add new assets"})))})};W.defaultProps={breadcrumbs:!1,folder:null},W.propTypes={breadcrumbs:f().oneOfType([p.Fv,f().bool]),canCreate:f().bool.isRequired,folder:p.nx,onToggleEditFolderDialog:f().func.isRequired,onToggleUploadAssetDialog:f().func.isRequired};var Ve=t(37293),$e=t(77935),ze=t(46891),Ge=t(36156),We=t(93826);const He=(0,Z.default)(n.Box)`
2
- height: ${32/16}rem;
3
- display: flex;
4
- align-items: center;
5
- `,te=(0,Z.default)(n.Typography)`
6
- max-width: 100%;
7
- `,ne=(0,Z.default)(n.Box)`
8
- svg {
9
- path {
10
- fill: ${({theme:s})=>s.colors.neutral500};
11
- }
12
- }
13
- `,Ne=()=>{const{push:s}=(0,R.useHistory)(),{canRead:l,canCreate:r,canUpdate:i,canCopyLink:c,canDownload:u,isLoading:h}=(0,ze.y)(),E=(0,e.useRef)(),{formatMessage:m}=(0,A.useIntl)(),{pathname:C}=(0,R.useLocation)(),{trackUsage:v}=(0,g.useTracking)(),[{query:o},b]=(0,g.useQueryParams)(),B=Boolean(o._q||o.filters),[T,O]=(0,g.usePersistentState)(p.uf.view,p.Uk.GRID),S=T===p.Uk.GRID,{data:L,isLoading:Je,errors:Xe}=(0,Ve.L)({skipWhen:!l,query:o}),{data:Ye,isLoading:qe,errors:_e}=(0,$e.j)({enabled:l&&L?.pagination?.page===1&&!(0,d.rV)(o),query:o}),{data:H,isLoading:ae,error:et}=(0,Ge.W)(o?.folder,{enabled:l&&!!o?.folder});et?.response?.status===404&&s(C);const P=Ye?.map(a=>({...a,type:"folder",folderURL:(0,d.Km)(C,o,a.id),isSelectable:i}))??[],M=P?.length||0,U=L?.results?.map(a=>({...a,type:"asset",isSelectable:i}))||[],F=U?.length??0,tt=L?.pagination?.total,se=ae||qe||h||Je,[nt,at]=(0,e.useState)(!1),[st,oe]=(0,e.useState)(!1),[le,N]=(0,e.useState)(void 0),[j,re]=(0,e.useState)(void 0),[I,{selectOne:Q,selectAll:ie}]=(0,g.useSelectionState)(["type","id"],[]),de=I?.length>0&&I?.length!==F+M,K=()=>at(a=>!a),ce=({created:a=!1}={})=>{a&&o?.page!=="1"&&b({...o,page:1}),oe(k=>!k)},ue=(a,k)=>{a.target.checked&&v("didSelectAllMediaLibraryElements"),ie(k)},me=a=>{v("didSortMediaLibraryElements",{location:"upload",sort:a}),b({sort:a})},ge=a=>{re(a),oe(!0)},ot=a=>{re(null),ce(a),E.current&&E.current.focus()},fe=a=>{a===F&&L.pagination.page===L.pagination.pageCount&&L.pagination.page>1&&b({...o,page:L.pagination.page-1})},lt=()=>{ie(),fe(I.length)};return(0,g.useFocusWhenNavigate)(),e.createElement(n.Layout,null,e.createElement(n.Main,{"aria-busy":se},e.createElement(W,{breadcrumbs:!ae&&(0,d.M4)(H,{pathname:C,query:o}),canCreate:r,onToggleEditFolderDialog:ce,onToggleUploadAssetDialog:K,folder:H}),e.createElement(n.ActionLayout,{startActions:e.createElement(e.Fragment,null,i&&S&&(F>0||M>0)&&e.createElement(He,{paddingLeft:2,paddingRight:2,background:"neutral0",hasRadius:!0,borderColor:"neutral200"},e.createElement(n.BaseCheckbox,{"aria-label":m({id:(0,d.OB)("bulk.select.label"),defaultMessage:"Select all folders & assets"}),indeterminate:de,value:(F>0||M>0)&&I.length===F+M,onChange:a=>ue(a,[...U,...P])})),l&&S&&e.createElement(Be.Z,{onChangeSort:me}),l&&e.createElement(ke,null)),endActions:e.createElement(e.Fragment,null,e.createElement(g.CheckPermissions,{permissions:We.Z.configureView},e.createElement(ne,{paddingTop:1,paddingBottom:1},e.createElement(n.IconButton,{forwardedAs:R.Link,to:{pathname:`${C}/configuration`,search:(0,X.stringify)(o,{encode:!1})},icon:e.createElement(y.Cog,null),label:m({id:"app.links.configure-view",defaultMessage:"Configure the view"})}))),e.createElement(ne,{paddingTop:1,paddingBottom:1},e.createElement(n.IconButton,{icon:S?e.createElement(y.List,null):e.createElement(y.Grid,null),label:m(S?{id:(0,d.OB)("view-switch.list"),defaultMessage:"List View"}:{id:(0,d.OB)("view-switch.grid"),defaultMessage:"Grid View"}),onClick:()=>O(S?p.Uk.LIST:p.Uk.GRID)})),e.createElement(g.SearchURLQuery,{label:m({id:(0,d.OB)("search.label"),defaultMessage:"Search for an asset"}),trackedEvent:"didSearchMediaLibraryElements",trackedEventDetails:{location:"upload"}}))}),e.createElement(n.ContentLayout,null,I.length>0&&e.createElement(G,{currentFolder:H,selected:I,onSuccess:lt}),se&&e.createElement(g.LoadingIndicatorPage,null),(Xe||_e)&&e.createElement(g.AnErrorOccurred,null),M===0&&F===0&&e.createElement(_,{canCreate:r,canRead:l,isFiltering:B,onActionClick:K}),l&&!S&&(F>0||M>0)&&e.createElement(Fe.b,{assetCount:F,folderCount:M,indeterminate:de,onChangeSort:me,onChangeFolder:a=>s((0,d.Km)(C,o,a)),onEditAsset:N,onEditFolder:ge,onSelectOne:Q,onSelectAll:ue,rows:[...P,...U],selected:I,shouldDisableBulkSelect:!i,sortQuery:o?.sort??""}),l&&S&&e.createElement(e.Fragment,null,M>0&&e.createElement(Me.a,{title:(B&&F>0||!B)&&m({id:(0,d.OB)("list.folders.title"),defaultMessage:"Folders ({count})"},{count:M})||""},P.map(a=>{const rt=!!I.filter(({type:w})=>w==="folder").find(w=>w.id===a.id),pe=(0,d.Km)(C,o,a?.id);return e.createElement(n.GridItem,{col:3,key:`folder-${a.id}`},e.createElement(D.Ac,{ref:j&&a.id===j.id?E:void 0,ariaLabel:a.name,id:`folder-${a.id}`,to:pe,startAction:Q&&a.isSelectable?e.createElement(D.MM,{"data-testid":`folder-checkbox-${a.id}`,value:rt,onChange:()=>Q(a)}):null,cardActions:e.createElement(n.IconButton,{icon:e.createElement(y.Pencil,null),"aria-label":m({id:(0,d.OB)("list.folder.edit"),defaultMessage:"Edit folder"}),onClick:()=>ge(a)})},e.createElement(D.Bu,null,e.createElement(D.u6,{to:pe},e.createElement(n.Flex,{as:"h2",direction:"column",alignItems:"start",maxWidth:"100%"},e.createElement(te,{fontWeight:"semiBold",ellipsis:!0},a.name,e.createElement(n.VisuallyHidden,null,":")),e.createElement(te,{as:"span",textColor:"neutral600",variant:"pi",ellipsis:!0},m({id:(0,d.OB)("list.folder.subtitle"),defaultMessage:"{folderCount, plural, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} one {# asset} other {# assets}}"},{folderCount:a.children.count,filesCount:a.files.count})))))))})),F>0&&M>0&&e.createElement(n.Box,{paddingTop:6,paddingBottom:4},e.createElement(n.Divider,null)),F>0&&e.createElement(Ce.r,{assets:U,onEditAsset:N,onSelectAsset:Q,selectedAssets:I.filter(({type:a})=>a==="asset"),title:(!B||B&&M>0)&&L?.pagination?.page===1&&m({id:(0,d.OB)("list.assets.title"),defaultMessage:"Assets ({count})"},{count:tt})||""})),L?.pagination&&e.createElement(V,{pagination:L.pagination}))),nt&&e.createElement(he.x,{onClose:K,trackedLocation:"upload",folderId:o?.folder}),st&&e.createElement(ve.f,{onClose:ot,folder:j,parentFolderId:o?.folder,location:"upload"}),le&&e.createElement(ye.s,{onClose:a=>{a===null&&fe(1),N(void 0)},asset:le,canUpdate:i,canCopyLink:c,canDownload:u,trackedLocation:"upload"}))};var je=t(68715);const Ke=(0,e.lazy)(()=>t.e(9514).then(t.bind(t,1372)));var we=()=>{const{config:{isLoading:s,isError:l,data:r}}=(0,je.Z)(),[{rawQuery:i},c]=(0,g.useQueryParams)(),{formatMessage:u}=(0,A.useIntl)(),h=u({id:(0,d.OB)("plugin.name"),defaultMessage:"Media Library"});return(0,e.useEffect)(()=>{s||l||i||c({sort:r.sort,page:1,pageSize:r.pageSize})},[s,l,r,i,c]),(0,g.useFocusWhenNavigate)(),e.createElement(n.Main,{"aria-busy":s},e.createElement(Ee.Helmet,{title:h}),s&&e.createElement(g.LoadingIndicatorPage,null),i?e.createElement(e.Suspense,{fallback:e.createElement(g.LoadingIndicatorPage,null)},e.createElement(R.Switch,null,e.createElement(R.Route,{exact:!0,path:`/plugins/${x.Z}`,component:Ne}),e.createElement(R.Route,{exact:!0,path:`/plugins/${x.Z}/configuration`,render:()=>e.createElement(Ke,{config:r})}))):null)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9460],{84764:function(A,f,n){n.r(f),n.d(f,{default:function(){return P}});var e=n(32735),p=n(84968),h=n(5636),E=n(83281),i=n(13478),a=n(39161),y=n(57269),l=n(88369),t=n(59677),m=[{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email"),defaultMessage:"One account per email address"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email"),defaultMessage:"Disallow the user to create multiple accounts using the same email address with different authentication providers."},name:"unique_email",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.sign-up"),defaultMessage:"Enable sign-ups"},description:{id:(0,t.OB)("EditForm.inputToggle.description.sign-up"),defaultMessage:"When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider."},name:"allow_register",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email-reset-password"),defaultMessage:"Reset password page"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email-reset-password"),defaultMessage:"URL of your application's reset password page."},placeholder:{id:(0,t.OB)("EditForm.inputToggle.placeholder.email-reset-password"),defaultMessage:"ex: https://youtfrontend.com/reset-password"},name:"email_reset_password",type:"text",size:{col:6,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email-confirmation"),defaultMessage:"Enable email confirmation"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email-confirmation"),defaultMessage:"When enabled (ON), new registered users receive a confirmation email."},name:"email_confirmation",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,t.OB)("EditForm.inputToggle.label.email-confirmation-redirection"),defaultMessage:"Redirection url"},description:{id:(0,t.OB)("EditForm.inputToggle.description.email-confirmation-redirection"),defaultMessage:"After you confirmed your email, choose where you will be redirected."},placeholder:{id:(0,t.OB)("EditForm.inputToggle.placeholder.email-confirmation-redirection"),defaultMessage:"ex: https://youtfrontend.com/email-confirmation"},name:"email_confirmation_redirection",type:"text",size:{col:6,xs:12}}],r=n(5173);const u=new RegExp("(^$)|((.+:\\/\\/.*)(d*)\\/?(.*))");var L=r.Ry().shape({email_confirmation_redirection:r.nK().when("email_confirmation",{is:!0,then:r.Z_().matches(u).required(),otherwise:r.Z_().nullable()}),email_reset_password:r.Z_(i.translatedErrors.string).matches(u,i.translatedErrors.regex).nullable()});const T=async()=>{const{get:s}=(0,i.getFetchClient)(),{data:d}=await s((0,t.Gc)("advanced"));return d},R=s=>{const{put:d}=(0,i.getFetchClient)();return d((0,t.Gc)("advanced"),s)},w=()=>e.createElement(i.CheckPagePermissions,{permissions:l.Z.readAdvancedSettings},e.createElement(C,null)),C=()=>{const{formatMessage:s}=(0,h.useIntl)(),d=(0,i.useNotification)(),{lockApp:x,unlockApp:O}=(0,i.useOverlayBlocker)(),{notifyStatus:N}=(0,a.useNotifyAT)(),I=(0,p.useQueryClient)();(0,i.useFocusWhenNavigate)();const z=(0,e.useMemo)(()=>({update:l.Z.updateAdvancedSettings}),[]),{isLoading:G,allowedActions:{canUpdate:Z}}=(0,i.useRBAC)(z),{status:k,data:M}=(0,p.useQuery)("advanced",()=>T(),{onSuccess(){N(s({id:(0,t.OB)("Form.advancedSettings.data.loaded"),defaultMessage:"Advanced settings data has been loaded"}))},onError(){d({type:"warning",message:{id:(0,t.OB)("notification.error"),defaultMessage:"An error occured"}})}}),H=G||k!=="success",B=(0,p.useMutation)(c=>R(c),{async onSuccess(){await I.invalidateQueries("advanced"),d({type:"success",message:{id:(0,t.OB)("notification.success.saved"),defaultMessage:"Saved"}}),O()},onError(){d({type:"warning",message:{id:(0,t.OB)("notification.error"),defaultMessage:"An error occured"}}),O()},refetchActive:!0}),{isLoading:U}=B,D=async c=>{x();const g=c.email_confirmation?c.email_confirmation_redirection:"";await B.mutateAsync({...c,email_confirmation_redirection:g})};return H?e.createElement(a.Main,{"aria-busy":"true"},e.createElement(i.SettingsPageTitle,{name:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(a.HeaderLayout,{title:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(a.ContentLayout,null,e.createElement(i.LoadingIndicatorPage,null))):e.createElement(a.Main,{"aria-busy":U},e.createElement(i.SettingsPageTitle,{name:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(E.Formik,{onSubmit:D,initialValues:M.settings,validateOnChange:!1,validationSchema:L,enableReinitialize:!0},({errors:c,values:g,handleChange:F,isSubmitting:Q})=>e.createElement(i.Form,null,e.createElement(a.HeaderLayout,{title:s({id:(0,t.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"}),primaryAction:e.createElement(a.Button,{loading:Q,type:"submit",disabled:!Z,startIcon:e.createElement(y.Check,null),size:"S"},s({id:"global.save",defaultMessage:"Save"}))}),e.createElement(a.ContentLayout,null,e.createElement(a.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(a.Typography,{variant:"delta",as:"h2"},s({id:"global.settings",defaultMessage:"Settings"})),e.createElement(a.Grid,{gap:6},e.createElement(a.GridItem,{col:6,s:12},e.createElement(a.Select,{label:s({id:(0,t.OB)("EditForm.inputSelect.label.role"),defaultMessage:"Default role for authenticated users"}),value:g.default_role,hint:s({id:(0,t.OB)("EditForm.inputSelect.description.role"),defaultMessage:"It will attach the new authenticated user to the selected role."}),onChange:o=>F({target:{name:"default_role",value:o}})},M.roles.map(o=>e.createElement(a.Option,{key:o.type,value:o.type},o.name)))),m.map(o=>{let b=g[o.name];return b||(b=o.type==="bool"?!1:""),e.createElement(a.GridItem,{key:o.name,...o.size},e.createElement(i.GenericInput,{...o,value:b,error:c[o.name],disabled:o.name==="email_confirmation_redirection"&&g.email_confirmation===!1,onChange:F}))}))))))))};var P=w},59677:function(A,f,n){n.d(f,{YX:function(){return h},Gc:function(){return a},OB:function(){return y.Z}});var e=n(92891),h=l=>Object.keys(l).reduce((t,S)=>{const m=l[S].controllers,r=Object.keys(m).reduce((u,v)=>((0,e.isEmpty)(m[v])||(u[v]=m[v]),u),{});return(0,e.isEmpty)(r)||(t[S]={controllers:r}),t},{}),E=n(90201),a=l=>`/${E.Z}/${l}`,y=n(82069)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8418],{218:function(S,h,s){s.r(h),s.d(h,{default:function(){return H}});var e=s(32735),v=s(84968),T=s(5636),a=s(13478),t=s(39161),B=s(88369),l=s(59677);const f=async()=>{const{get:n}=(0,a.getFetchClient)(),{data:o}=await n((0,l.Gc)("email-templates"));return o},M=n=>{const{put:o}=(0,a.getFetchClient)();return o((0,l.Gc)("email-templates"),n)};var O=s(60216),i=s.n(O),E=s(57269);const y=({canUpdate:n,onEditClick:o})=>{const{formatMessage:r}=(0,T.useIntl)();return e.createElement(t.Table,{colCount:3,rowCount:3},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.icon.label"),defaultMessage:"icon"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:(0,l.OB)("Email.template.table.name.label"),defaultMessage:"name"}))),e.createElement(t.Th,{width:"1%"},e.createElement(t.VisuallyHidden,null,r({id:(0,l.OB)("Email.template.table.action.label"),defaultMessage:"action"}))))),e.createElement(t.Tbody,null,e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("reset_password")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(E.Refresh,{"aria-label":r({id:"global.reset-password",defaultMessage:"Reset password"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:"global.reset-password",defaultMessage:"Reset password"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("reset_password"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:n&&e.createElement(E.Pencil,null)}))),e.createElement(t.Tr,{...(0,a.onRowClick)({fn:()=>o("email_confirmation")})},e.createElement(t.Td,null,e.createElement(t.Icon,null,e.createElement(E.Check,{"aria-label":r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"})}))),e.createElement(t.Td,null,e.createElement(t.Typography,null,r({id:(0,l.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"}))),e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.IconButton,{onClick:()=>o("email_confirmation"),label:r({id:(0,l.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:n&&e.createElement(E.Pencil,null)})))))};y.propTypes={canUpdate:i().bool.isRequired,onEditClick:i().func.isRequired};var b=y,U=s(83281),c=s(5173),G=c.Ry().shape({options:c.Ry().shape({from:c.Ry().shape({name:c.Z_().required(a.translatedErrors.required),email:c.Z_().email(a.translatedErrors.email).required(a.translatedErrors.required)}).required(),response_email:c.Z_().email(a.translatedErrors.email),object:c.Z_().required(a.translatedErrors.required),message:c.Z_().required(a.translatedErrors.required)}).required(a.translatedErrors.required)});const R=({template:n,onToggle:o,onSubmit:r})=>{const{formatMessage:m}=(0,T.useIntl)();return e.createElement(t.ModalLayout,{onClose:o,labelledBy:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(n.display),defaultMessage:n.display})}`},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:`${m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${m({id:(0,l.OB)(n.display),defaultMessage:n.display})}`},e.createElement(t.Crumb,null,m({id:(0,l.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})),e.createElement(t.Crumb,null,m({id:(0,l.OB)(n.display),defaultMessage:n.display})))),e.createElement(U.Formik,{onSubmit:r,initialValues:n,validateOnChange:!1,validationSchema:G,enableReinitialize:!0},({errors:d,values:u,handleChange:p,isSubmitting:C})=>e.createElement(a.Form,null,e.createElement(t.ModalBody,null,e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.name.label"),defaultMessage:"Shipper name"},name:"options.from.name",onChange:p,value:u.options.from.name,error:d?.options?.from?.name,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.from.email.label"),defaultMessage:"Shipper email"},name:"options.from.email",onChange:p,value:u.options.from.email,error:d?.options?.from?.email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.response_email.label"),defaultMessage:"Response email"},name:"options.response_email",onChange:p,value:u.options.response_email,error:d?.options?.response_email,type:"text"})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(a.GenericInput,{intlLabel:{id:(0,l.OB)("PopUpForm.Email.options.object.label"),defaultMessage:"Subject"},name:"options.object",onChange:p,value:u.options.object,error:d?.options?.object,type:"text"})),e.createElement(t.GridItem,{col:12,s:12},e.createElement(t.Textarea,{label:m({id:(0,l.OB)("PopUpForm.Email.options.message.label"),defaultMessage:"Message"}),name:"options.message",onChange:p,value:u.options.message,error:d?.options?.message&&m({id:d.options.message,defaultMessage:d.options.message})})))),e.createElement(t.ModalFooter,{startActions:e.createElement(t.Button,{onClick:o,variant:"tertiary"},"Cancel"),endActions:e.createElement(t.Button,{loading:C,type:"submit"},"Finish")}))))};R.propTypes={template:i().shape({display:i().string,icon:i().string,options:i().shape({from:i().shape({name:i().string,email:i().string}),message:i().string,object:i().string,response_email:i().string})}).isRequired,onSubmit:i().func.isRequired,onToggle:i().func.isRequired};var k=R;const A=()=>e.createElement(a.CheckPagePermissions,{permissions:B.Z.readEmailTemplates},e.createElement(j,null)),j=()=>{const{formatMessage:n}=(0,T.useIntl)(),{trackUsage:o}=(0,a.useTracking)(),{notifyStatus:r}=(0,t.useNotifyAT)(),m=(0,a.useNotification)(),{lockApp:d,unlockApp:u}=(0,a.useOverlayBlocker)(),p=(0,e.useRef)(o),C=(0,v.useQueryClient)();(0,a.useFocusWhenNavigate)();const[Z,N]=(0,e.useState)(!1),[F,$]=(0,e.useState)(null),x=(0,e.useMemo)(()=>({update:B.Z.updateEmailTemplates}),[]),{isLoading:q,allowedActions:{canUpdate:w}}=(0,a.useRBAC)(x),{status:Q,data:I}=(0,v.useQuery)("email-templates",()=>f(),{onSuccess(){r(n({id:(0,l.OB)("Email.template.data.loaded"),defaultMessage:"Email templates has been loaded"}))},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),V=q||Q!=="success",P=()=>{N(g=>!g)},D=g=>{$(g),P()},L=(0,v.useMutation)(g=>M({"email-templates":g}),{async onSuccess(){await C.invalidateQueries("email-templates"),m({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}}),p.current("didEditEmailTemplates"),u(),P()},onError(){m({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),u()},refetchActive:!0}),{isLoading:z}=L,W=g=>{d(),p.current("willEditEmailTemplates");const X={...I,[F]:g};L.mutate(X)};return V?e.createElement(t.Main,{"aria-busy":"true"},e.createElement(a.SettingsPageTitle,{name:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(a.LoadingIndicatorPage,null))):e.createElement(t.Main,{"aria-busy":z},e.createElement(a.SettingsPageTitle,{name:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.HeaderLayout,{title:n({id:(0,l.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(t.ContentLayout,null,e.createElement(b,{onEditClick:D,canUpdate:w}),Z&&e.createElement(k,{template:I[F],onToggle:P,onSubmit:W})))};var H=A},59677:function(S,h,s){s.d(h,{YX:function(){return T},Gc:function(){return B},OB:function(){return l.Z}});var e=s(92891),T=f=>Object.keys(f).reduce((M,O)=>{const i=f[O].controllers,E=Object.keys(i).reduce((y,b)=>((0,e.isEmpty)(i[b])||(y[b]=i[b]),y),{});return(0,e.isEmpty)(E)||(M[O]={controllers:E}),M},{}),a=s(90201),B=f=>`/${a.Z}/${f}`,l=s(82069)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2282],{51509:function(Y,B,n){n.r(B),n.d(B,{ProvidersPage:function(){return V},default:function(){return le}});var e=n(32735),O=n(5636),s=n(13478),Z=n(23973),W=n.n(Z),S=n(23940),U=n.n(S),t=n(39161),R=n(57269),P=n(84968),r=n(5173),l=n(59677);const M={id:(0,l.OB)("PopUpForm.Providers.redirectURL.front-end.label"),defaultMessage:"The redirect URL to your front-end app"},T={id:"http://www.client-app.com",defaultMessage:"http://www.client-app.com"},x={id:(0,l.OB)("PopUpForm.Providers.enabled.description"),defaultMessage:"If disabled, users won't be able to use this provider."},w={id:(0,l.OB)("PopUpForm.Providers.enabled.label"),defaultMessage:"Enable"},G={id:(0,l.OB)("PopUpForm.Providers.key.label"),defaultMessage:"Client ID"},X={id:(0,l.OB)("PopUpForm.Providers.redirectURL.label"),defaultMessage:"The redirect URL to add in your {provider} application configurations"},C={id:(0,l.OB)("PopUpForm.Providers.key.placeholder"),defaultMessage:"TEXT"},$={id:(0,l.OB)("PopUpForm.Providers.secret.label"),defaultMessage:"Client Secret"};var I={email:{form:[[{intlLabel:w,name:"enabled",type:"bool",description:x,size:6}]],schema:r.Ry().shape({enabled:r.Xg().required(s.translatedErrors.required)})},providers:{form:[[{intlLabel:w,name:"enabled",type:"bool",description:x,size:6,validations:{required:!0}}],[{intlLabel:G,name:"key",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:$,name:"secret",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:M,placeholder:T,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:X,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:r.Ry().shape({enabled:r.Xg().required(s.translatedErrors.required),key:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),secret:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),callback:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()})})},providersWithSubdomain:{form:[[{intlLabel:w,name:"enabled",type:"bool",description:x,size:6,validations:{required:!0}}],[{intlLabel:G,name:"key",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:$,name:"secret",type:"text",placeholder:C,size:12,validations:{required:!0}}],[{intlLabel:{id:(0,l.OB)({id:"PopUpForm.Providers.jwksurl.label"}),defaultMessage:"JWKS URL"},name:"jwksurl",type:"text",placeholder:C,size:12,validations:{required:!1}}],[{intlLabel:{id:(0,l.OB)("PopUpForm.Providers.subdomain.label"),defaultMessage:"Host URI (Subdomain)"},name:"subdomain",type:"text",placeholder:{id:(0,l.OB)("PopUpForm.Providers.subdomain.placeholder"),defaultMessage:"my.subdomain.com"},size:12,validations:{required:!0}}],[{intlLabel:M,placeholder:T,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:X,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:r.Ry().shape({enabled:r.Xg().required(s.translatedErrors.required),key:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),secret:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),subdomain:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()}),callback:r.Z_().when("enabled",{is:!0,then:r.Z_().required(s.translatedErrors.required),otherwise:r.Z_()})})}};const _=async i=>{try{const{get:d}=(0,s.getFetchClient)(),{data:m}=await d((0,l.Gc)("providers"));return m}catch{throw i({type:"warning",message:{id:"notification.error"}}),new Error("error")}},ee=i=>{const{put:d}=(0,s.getFetchClient)();return d((0,l.Gc)("providers"),i)};var te=n(92891),ae=i=>(0,te.sortBy)(Object.keys(i).reduce((d,m)=>{const{icon:g,enabled:c,subdomain:b}=i[m],p=g==="envelope"?["fas","envelope"]:["fab",g];return b!==void 0?d.push({name:m,icon:p,enabled:c,subdomain:b}):d.push({name:m,icon:p,enabled:c}),d},[]),"name"),Q=n(88369),re=n(60216),a=n.n(re),se=n(83281);const z=({description:i,disabled:d,intlLabel:m,error:g,name:c,onChange:b,placeholder:p,providerToEditName:y,type:h,value:o})=>{const{formatMessage:f}=(0,O.useIntl)(),E=c==="noName"?`${strapi.backendURL}/api/connect/${y}/callback`:o,L=f({id:m.id,defaultMessage:m.defaultMessage},{provider:y,...m.values}),v=i?f({id:i.id,defaultMessage:i.defaultMessage},{provider:y,...i.values}):"";if(h==="bool")return e.createElement(t.ToggleInput,{"aria-label":c,checked:o,disabled:d,hint:v,label:L,name:c,offLabel:f({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:f({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:q=>{b({target:{name:c,value:q.target.checked}})}});const A=p?f({id:p.id,defaultMessage:p.defaultMessage},{...p.values}):"",j=g?f({id:g,defaultMessage:g}):"";return e.createElement(t.TextInput,{"aria-label":c,disabled:d,error:j,label:L,name:c,onChange:b,placeholder:A,type:h,value:E})};z.defaultProps={description:null,disabled:!1,error:"",placeholder:null,value:""},z.propTypes={description:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired,values:a().object}),disabled:a().bool,error:a().string,intlLabel:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired,values:a().object}).isRequired,name:a().string.isRequired,onChange:a().func.isRequired,placeholder:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired,values:a().object}),providerToEditName:a().string.isRequired,type:a().string.isRequired,value:a().oneOfType([a().bool,a().string])};var ne=z;const N=({headerBreadcrumbs:i,initialData:d,isSubmiting:m,layout:g,isOpen:c,onSubmit:b,onToggle:p,providerToEditName:y})=>{const{formatMessage:h}=(0,O.useIntl)();return c?e.createElement(t.ModalLayout,{onClose:p,labelledBy:"title"},e.createElement(t.ModalHeader,null,e.createElement(t.Breadcrumbs,{label:i.join(", ")},i.map(o=>e.createElement(t.Crumb,{key:o},o)))),e.createElement(se.Formik,{onSubmit:o=>b(o),initialValues:d,validationSchema:g.schema,validateOnChange:!1},({errors:o,handleChange:f,values:E})=>e.createElement(s.Form,null,e.createElement(t.ModalBody,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.Grid,{gap:5},g.form.map(L=>L.map(v=>e.createElement(t.GridItem,{key:v.name,col:v.size,xs:12},e.createElement(ne,{...v,error:o[v.name],onChange:f,value:E[v.name],providerToEditName:y}))))))),e.createElement(t.ModalFooter,{startActions:e.createElement(t.Button,{variant:"tertiary",onClick:p,type:"button"},h({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(t.Button,{type:"submit",loading:m},h({id:"global.save",defaultMessage:"Save"}))})))):null};N.defaultProps={initialData:null,providerToEditName:null},N.propTypes={headerBreadcrumbs:a().arrayOf(a().string).isRequired,initialData:a().object,layout:a().shape({form:a().arrayOf(a().array),schema:a().object}).isRequired,isOpen:a().bool.isRequired,isSubmiting:a().bool.isRequired,onSubmit:a().func.isRequired,onToggle:a().func.isRequired,providerToEditName:a().string};var ie=N;const V=()=>{const{formatMessage:i}=(0,O.useIntl)();(0,s.useFocusWhenNavigate)();const{notifyStatus:d}=(0,t.useNotifyAT)(),m=(0,P.useQueryClient)(),{trackUsage:g}=(0,s.useTracking)(),c=(0,e.useRef)(g),[b,p]=(0,e.useState)(!1),[y,h]=(0,e.useState)(!1),[o,f]=(0,e.useState)(null),E=(0,s.useNotification)(),{lockApp:L,unlockApp:v}=(0,s.useOverlayBlocker)(),A=(0,e.useMemo)(()=>({update:Q.Z.updateProviders}),[]),{isLoading:j,allowedActions:{canUpdate:q}}=(0,s.useRBAC)(A),{isLoading:oe,data:k,isFetching:de}=(0,P.useQuery)("get-providers",()=>_(E),{onSuccess(){d(i({id:(0,l.OB)("Providers.data.loaded"),defaultMessage:"Providers have been loaded"}))},initialData:{}}),ue=oe||de,ce=(0,P.useMutation)(ee,{async onSuccess(){await m.invalidateQueries("get-providers"),E({type:"info",message:{id:(0,l.OB)("notification.success.submit")}}),c.current("didEditAuthenticationProvider"),h(!1),D(),v()},onError(){E({type:"warning",message:{id:"notification.error"}}),v(),h(!1)},refetchActive:!1}),F=(0,e.useMemo)(()=>ae(k),[k]),me=F.length,J=(0,e.useMemo)(()=>{if(!o)return!1;const u=F.find(H=>H.name===o);return W()(u,"subdomain")},[F,o]),pe=i({id:(0,l.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"}),ge=(0,e.useMemo)(()=>o==="email"?I.email:J?I.providersWithSubdomain:I.providers,[o,J]),D=()=>{p(u=>!u)},K=u=>{q&&(f(u.name),D())},fe=async u=>{h(!0),L(),c.current("willEditAuthenticationProvider");const H={...k,[o]:u};ce.mutate({providers:H})};return e.createElement(t.Layout,null,e.createElement(s.SettingsPageTitle,{name:pe}),e.createElement(t.Main,null,e.createElement(t.HeaderLayout,{title:i({id:(0,l.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"})}),ue||j?e.createElement(s.LoadingIndicatorPage,null):e.createElement(t.ContentLayout,null,e.createElement(t.Table,{colCount:3,rowCount:me+1},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},i({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},i({id:(0,l.OB)("Providers.status"),defaultMessage:"Status"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma"},e.createElement(t.VisuallyHidden,null,i({id:"global.settings",defaultMessage:"Settings"})))))),e.createElement(t.Tbody,null,F.map(u=>e.createElement(t.Tr,{key:u.name,...(0,s.onRowClick)({fn:()=>K(u),condition:q})},e.createElement(t.Td,{width:"45%"},e.createElement(t.Typography,{fontWeight:"semiBold",textColor:"neutral800"},u.name)),e.createElement(t.Td,{width:"65%"},e.createElement(t.Typography,{textColor:u.enabled?"success600":"danger600","data-testid":`enable-${u.name}`},u.enabled?i({id:"global.enabled",defaultMessage:"Enabled"}):i({id:"global.disabled",defaultMessage:"Disabled"}))),e.createElement(t.Td,{...s.stopPropagation},q&&e.createElement(t.IconButton,{onClick:()=>K(u),noBorder:!0,icon:e.createElement(R.Pencil,null),label:"Edit"})))))))),e.createElement(ie,{initialData:k[o],isOpen:b,isSubmiting:y,layout:ge,headerBreadcrumbs:[i({id:(0,l.OB)("PopUpForm.header.edit.providers"),defaultMessage:"Edit Provider"}),U()(o)],onToggle:D,onSubmit:fe,providerToEditName:o}))};var le=()=>e.createElement(s.CheckPagePermissions,{permissions:Q.Z.readProviders},e.createElement(V,null))},59677:function(Y,B,n){n.d(B,{YX:function(){return s},Gc:function(){return S},OB:function(){return U.Z}});var e=n(92891),s=t=>Object.keys(t).reduce((R,P)=>{const r=t[P].controllers,l=Object.keys(r).reduce((M,T)=>((0,e.isEmpty)(r[T])||(M[T]=r[T]),M),{});return(0,e.isEmpty)(l)||(R[P]={controllers:l}),R},{}),Z=n(90201),S=t=>`/${Z.Z}/${t}`,U=n(82069)}}]);
@@ -1,30 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{77495:function(b,L,a){"use strict";a.r(L),a.d(L,{default:function(){return We}});var e=a(32735),C=a(5141),o=a(13478),c=a(90201),y=a(88369),t=a(39161),E=a(57269),f=a(5636),v=a(84968),M=a(58469),T=a(59677);const A=async(n,r)=>{try{const{get:s}=(0,o.getFetchClient)(),{data:i}=await s((0,T.Gc)("roles"));return r("The roles have loaded successfully"),i}catch{throw n({type:"warning",message:{id:"notification.error"}}),new Error("error")}},U=async(n,r)=>{try{const{del:s}=(0,o.getFetchClient)();await s(`${(0,T.Gc)("roles")}/${n}`)}catch{r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}};var w=a(60216),D=a.n(w);const x=({sortedRoles:n,canDelete:r,permissions:s,setRoleToDelete:i,onDelete:d})=>{const{formatMessage:l}=(0,f.useIntl)(),{push:m}=(0,C.useHistory)(),[p,h]=d,g=u=>r&&!["public","authenticated"].includes(u.type),R=u=>{i(u),h(!p)},P=u=>{m(`/settings/${c.Z}/roles/${u}`)};return e.createElement(t.Tbody,null,n?.map(u=>e.createElement(t.Tr,{key:u.name,...(0,o.onRowClick)({fn:()=>P(u.id)})},e.createElement(t.Td,{width:"20%"},e.createElement(t.Typography,null,u.name)),e.createElement(t.Td,{width:"50%"},e.createElement(t.Typography,null,u.description)),e.createElement(t.Td,{width:"30%"},e.createElement(t.Typography,null,`${u.nb_users} ${l({id:"global.users",defaultMessage:"users"}).toLowerCase()}`)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"end",...o.stopPropagation},e.createElement(o.CheckPermissions,{permissions:s.updateRole},e.createElement(t.IconButton,{onClick:()=>P(u.id),noBorder:!0,icon:e.createElement(E.Pencil,null),label:l({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${u.name}`})})),g(u)&&e.createElement(o.CheckPermissions,{permissions:s.deleteRole},e.createElement(t.IconButton,{onClick:()=>R(u.id),noBorder:!0,icon:e.createElement(E.Trash,null),label:l({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${u.name}`})})))))))};var N=x;x.defaultProps={canDelete:!1},x.propTypes={onDelete:D().array.isRequired,permissions:D().object.isRequired,setRoleToDelete:D().func.isRequired,sortedRoles:D().array.isRequired,canDelete:D().bool};var W=()=>{const{trackUsage:n}=(0,o.useTracking)(),{formatMessage:r}=(0,f.useIntl)(),{push:s}=(0,C.useHistory)(),i=(0,o.useNotification)(),{notifyStatus:d}=(0,t.useNotifyAT)(),[{query:l}]=(0,o.useQueryParams)(),m=l?._q||"",[p,h]=(0,e.useState)(!1),[g,R]=(0,e.useState)(!1),[P,u]=(0,e.useState)();(0,o.useFocusWhenNavigate)();const S=(0,v.useQueryClient)(),G=(0,e.useMemo)(()=>({create:y.Z.createRole,read:y.Z.readRoles,update:y.Z.updateRole,delete:y.Z.deleteRole}),[]),{isLoading:k,allowedActions:{canRead:B,canDelete:F}}=(0,o.useRBAC)(G),{isLoading:Z,data:{roles:oe},isFetching:Qe}=(0,v.useQuery)("get-roles",()=>A(i,d),{initialData:{},enabled:B}),ie=Z||Qe,ze=()=>{n("willCreateRole"),s(`/settings/${c.Z}/roles/new`)},Ye=()=>{h(!p)},Xe={roles:{id:(0,T.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,T.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},Je=r({id:"global.roles",defaultMessage:"Roles"}),Ke=(0,v.useMutation)(nt=>U(nt,i),{async onSuccess(){await S.invalidateQueries("get-roles")}}),qe=async()=>{R(!0),await Ke.mutateAsync(P),h(!p),R(!1)},V=(0,M.ZP)(oe||[],m,{keys:["name","description"]}),_e=m&&!V.length?"search":"roles",et=4,tt=(oe?.length||0)+1;return e.createElement(t.Layout,null,e.createElement(o.SettingsPageTitle,{name:Je}),e.createElement(t.Main,{"aria-busy":ie},e.createElement(t.HeaderLayout,{title:r({id:"global.roles",defaultMessage:"Roles"}),subtitle:r({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(o.CheckPermissions,{permissions:y.Z.createRole},e.createElement(t.Button,{onClick:ze,startIcon:e.createElement(E.Plus,null),size:"S"},r({id:(0,T.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(t.ActionLayout,{startActions:e.createElement(o.SearchURLQuery,{label:r({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(t.ContentLayout,null,!B&&e.createElement(o.NoPermissions,null),(ie||k)&&e.createElement(o.LoadingIndicatorPage,null),B&&V&&V?.length?e.createElement(t.Table,{colCount:et,rowCount:tt},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:"global.description",defaultMessage:"Description"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},r({id:"global.users",defaultMessage:"Users"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,r({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(N,{sortedRoles:V,canDelete:F,permissions:y.Z,setRoleToDelete:u,onDelete:[p,h]})):e.createElement(o.EmptyStateLayout,{content:Xe[_e]})),e.createElement(o.ConfirmDialog,{isConfirmButtonLoading:g,onConfirm:qe,onToggleDialog:Ye,isOpen:p})))},ce=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.accessRoles},e.createElement(W,null)),X=a(83281),I=a(82069),O=a(92891);const J=(0,e.createContext)({}),K=({children:n,value:r})=>e.createElement(J.Provider,{value:r},n),Q=()=>(0,e.useContext)(J);K.propTypes={children:D().node.isRequired,value:D().object.isRequired};var j=a(83292),ue=a(37213),de=a.n(ue),me=a(15738),ge=a.n(me),pe=n=>{switch(n){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Ee=(0,j.default)(t.Box)`
2
- margin: -1px;
3
- border-radius: ${({theme:n})=>n.spaces[1]} 0 0 ${({theme:n})=>n.spaces[1]};
4
- `;function z({route:n}){const{formatMessage:r}=(0,f.useIntl)(),{method:s,handler:i,path:d}=n,l=d?ge()(d.split("/")):[],[m="",p=""]=i?i.split("."):[],h=pe(n.method);return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},r({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,m),e.createElement(t.Typography,{variant:"delta",textColor:"primary600"},".",p)),e.createElement(t.Flex,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(Ee,{background:h.background,borderColor:h.border,padding:2},e.createElement(t.Typography,{fontWeight:"bold",textColor:h.text},s)),e.createElement(t.Box,{paddingLeft:2,paddingRight:2},de()(l,g=>e.createElement(t.Typography,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}z.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},z.propTypes={route:D().shape({handler:D().string,method:D().string,path:D().string})};var he=z,fe=()=>{const{formatMessage:n}=(0,f.useIntl)(),{selectedAction:r,routes:s}=Q(),i=(0,O.without)(r.split("."),"controllers"),d=(0,O.get)(s,i[0]),l=i.slice(1).join("."),m=(0,O.isEmpty)(d)?[]:d.filter(p=>p.handler.endsWith(l));return e.createElement(t.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},r?e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},m.map((p,h)=>e.createElement(he,{key:h,route:p}))):e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},n({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},n({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"}))))},ye=a(23940),Ce=a.n(ye);function Re(n){switch(n){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 Ce()(n.replace("api::","").replace("plugin::",""))}}var be=Re,Te=a(98978),q=a.n(Te);const _=j.css`
5
- background: ${n=>n.theme.colors.primary100};
6
- svg {
7
- opacity: 1;
8
- }
9
- `;var ve=(0,j.default)(t.Box)`
10
- display: flex;
11
- justify-content: space-between;
12
- align-items: center;
13
-
14
- svg {
15
- opacity: 0;
16
- path {
17
- fill: ${n=>n.theme.colors.primary600};
18
- }
19
- }
20
-
21
- /* Show active style both on hover and when the action is selected */
22
- ${n=>n.isActive&&_}
23
- &:hover {
24
- ${_}
25
- }
26
- `;const Ae=j.default.div`
27
- flex: 1;
28
- align-self: center;
29
- border-top: 1px solid ${({theme:n})=>n.colors.neutral150};
30
- `,ee=({subCategory:n})=>{const{formatMessage:r}=(0,f.useIntl)(),{onChange:s,onChangeSelectAll:i,onSelectedAction:d,selectedAction:l,modifiedData:m}=Q(),p=(0,e.useMemo)(()=>(0,O.get)(m,n.name,{}),[m,n]),h=(0,e.useMemo)(()=>Object.values(p).every(u=>u.enabled===!0),[p]),g=(0,e.useMemo)(()=>Object.values(p).some(u=>u.enabled===!0)&&!h,[p,h]),R=(0,e.useCallback)(({target:{name:u}})=>{i({target:{name:u,value:!h}})},[h,i]),P=(0,e.useCallback)(u=>l===u,[l]);return e.createElement(t.Box,null,e.createElement(t.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(t.Box,{paddingRight:4},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n.label)),e.createElement(Ae,null),e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Checkbox,{name:n.name,value:h,onValueChange:u=>R({target:{name:n.name,value:u}}),indeterminate:g},r({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(t.Flex,{paddingTop:6,paddingBottom:6},e.createElement(t.Grid,{gap:2,style:{flex:1}},n.actions.map(u=>{const S=`${u.name}.enabled`;return e.createElement(t.GridItem,{col:6,key:u.name},e.createElement(ve,{isActive:P(u.name),padding:2,hasRadius:!0},e.createElement(t.Checkbox,{value:(0,O.get)(m,S,!1),name:S,onValueChange:G=>s({target:{name:S,value:G}})},u.label),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>d(u.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(E.Cog,null))))}))))};ee.propTypes={subCategory:D().object.isRequired};var Pe=ee;const te=({name:n,permissions:r})=>{const s=(0,e.useMemo)(()=>q()(Object.values(r.controllers).reduce((i,d,l)=>{const m=`${n}.controllers.${Object.keys(r.controllers)[l]}`,p=q()(Object.keys(d).reduce((h,g)=>[...h,{...d[g],label:g,name:`${m}.${g}`}],[]),"label");return[...i,{actions:p,label:Object.keys(r.controllers)[l],name:m}]},[]),"label"),[n,r]);return e.createElement(t.Box,{padding:6},s.map(i=>e.createElement(Pe,{key:i.name,subCategory:i})))};te.propTypes={name:D().string.isRequired,permissions:D().object.isRequired};var De=te,Le=(n,r)=>{const s=Object.keys(r).sort().map(i=>({name:i,isOpen:!1}));return{...n,collapses:s}},H=a(97889);const Me={collapses:[]},xe=(n,r)=>(0,H.default)(n,s=>{switch(r.type){case"TOGGLE_COLLAPSE":{s.collapses=n.collapses.map((i,d)=>d===r.index?{...i,isOpen:!i.isOpen}:{...i,isOpen:!1});break}default:return s}});var ke=()=>{const{modifiedData:n}=Q(),{formatMessage:r}=(0,f.useIntl)(),[{collapses:s},i]=(0,e.useReducer)(xe,Me,l=>Le(l,n)),d=l=>i({type:"TOGGLE_COLLAPSE",index:l});return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},s.map((l,m)=>e.createElement(t.Accordion,{expanded:l.isOpen,onToggle:()=>d(m),key:l.name,variant:m%2===0?"secondary":void 0},e.createElement(t.AccordionToggle,{title:be(l.name),description:r({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:l.name}),variant:m%2?"primary":"secondary"}),e.createElement(t.AccordionContent,null,e.createElement(t.Box,null,e.createElement(De,{permissions:n[l.name],name:l.name}))))))};const Se={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var Be=(n,r)=>(0,H.default)(n,s=>{switch(r.type){case"ON_CHANGE":{const i=r.keys.length,d=r.keys[i-1]==="enabled";if(r.value&&d){const l=(0,O.take)(r.keys,i-1).join(".");s.selectedAction=l}(0,O.set)(s,["modifiedData",...r.keys],r.value);break}case"ON_CHANGE_SELECT_ALL":{const i=["modifiedData",...r.keys],d=(0,O.get)(n,i,{}),l=Object.keys(d).reduce((m,p)=>(m[p]={...d[p],enabled:r.value},m),{});(0,O.set)(s,i,l);break}case"ON_RESET":{s.modifiedData=n.initialData;break}case"ON_SUBMIT_SUCCEEDED":{s.initialData=n.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:i}=r;s.selectedAction=i===n.selectedAction?"":i;break}default:return s}}),Oe=(n,r,s)=>({...n,initialData:r,modifiedData:r,routes:s});const ne=(0,e.forwardRef)(({permissions:n,routes:r},s)=>{const{formatMessage:i}=(0,f.useIntl)(),[d,l]=(0,e.useReducer)(Be,Se,R=>Oe(R,n,r));(0,e.useImperativeHandle)(s,()=>({getPermissions(){return{permissions:d.modifiedData}},resetForm(){l({type:"ON_RESET"})},setFormAfterSubmit(){l({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...d,onChange:({target:{name:R,value:P}})=>l({type:"ON_CHANGE",keys:R.split("."),value:P==="empty__string_value"?"":P}),onChangeSelectAll:({target:{name:R,value:P}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:R.split("."),value:P}),onSelectedAction:R=>l({type:"SELECT_ACTION",actionToSelect:R})};return e.createElement(K,{value:g},e.createElement(t.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(t.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h2"},i({id:(0,I.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},i({id:(0,I.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(ke,null))),e.createElement(fe,null)))});ne.propTypes={permissions:D().object.isRequired,routes:D().object.isRequired};var se=(0,e.memo)(ne);const ut={isLoading:!0,modifiedData:{}},dt=(n,r)=>produce(n,s=>{switch(r.type){case"GET_DATA":{s.isLoading=!0,s.modifiedData={};break}case"GET_DATA_SUCCEEDED":{s.isLoading=!1,s.modifiedData=r.data;break}case"GET_DATA_ERROR":{s.isLoading=!0;break}case"ON_SUBMIT_SUCCEEDED":{s.modifiedData=r.data;break}default:return s}});var mt=null;const gt=(n,r)=>{const{isLoading:s,allowedActions:i}=useRBAC(r),[{isLoading:d,modifiedData:l},m]=useReducer(reducer,initialState),p=useNotification(),h=useRef(!0),g=new AbortController,{signal:R}=g;useEffect(()=>(s||(async()=>{try{m({type:"GET_DATA"});const S=await request(getRequestURL(n),{method:"GET",signal:R});m({type:"GET_DATA_SUCCEEDED",data:S})}catch(S){h.current&&(m({type:"GET_DATA_ERROR"}),console.error(S),p({type:"warning",message:{id:"notification.error"}}))}})(),()=>{g.abort(),h.current=!1}),[s,n]);const P=useCallback(u=>{m({type:"ON_SUBMIT_SUCCEEDED",data:u})},[]);return{allowedActions:i,dispatchSubmitSucceeded:P,isLoading:d,isLoadingForPermissions:s,modifiedData:l}};var pt=null;const Et={roles:[],isLoading:!0},ht=(n,r)=>produce(n,s=>{switch(r.type){case"GET_DATA":{s.isLoading=!0,s.roles=[];break}case"GET_DATA_SUCCEEDED":{s.roles=r.data,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}});var ft=null;const yt=(n=!0)=>{const[{roles:r,isLoading:s},i]=useReducer(reducer,initialState,()=>init(initialState,n)),d=useNotification(),l=useRef(!0),m=new AbortController,{signal:p}=m;useEffect(()=>(n&&h(),()=>{m.abort(),l.current=!1}),[n]);const h=async()=>{try{i({type:"GET_DATA"});const{roles:g}=await request(`/${pluginId}/roles`,{method:"GET",signal:p});i({type:"GET_DATA_SUCCEEDED",data:g})}catch(g){const R=get(g,["response","payload","message"],"An error occured");l.current&&(i({type:"GET_DATA_ERROR"}),R!=="Forbidden"&&d({type:"warning",message:R}))}};return{roles:r,isLoading:s,getData:h}};var Ct=null,Ge=(n,r)=>({...n,isLoading:r});const re={permissions:{},routes:{},isLoading:!0};var Fe=(n,r)=>(0,H.default)(n,s=>{switch(r.type){case"GET_DATA":{s.isLoading=!0,s.permissions={},s.routes={};break}case"GET_DATA_SUCCEEDED":{s.permissions=r.permissions,s.routes=r.routes,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}}),ae=(n=!0)=>{const r=(0,o.useNotification)(),[{permissions:s,routes:i,isLoading:d},l]=(0,e.useReducer)(Fe,re,()=>Ge(re,n)),m=(0,o.useFetchClient)(),p=(0,e.useCallback)(async()=>{try{l({type:"GET_DATA"});const[{permissions:h},{routes:g}]=await Promise.all([`/${c.Z}/permissions`,`/${c.Z}/routes`].map(async R=>(await m.get(R)).data));l({type:"GET_DATA_SUCCEEDED",permissions:(0,T.YX)(h),routes:g})}catch(h){const g=(0,O.get)(h,["response","payload","message"],"An error occured");l({type:"GET_DATA_ERROR"}),g!=="Forbidden"&&r({type:"warning",message:g})}},[r]);return(0,e.useEffect)(()=>{n&&p()},[p,n]),{permissions:s,routes:i,getData:p,isLoading:d}};const Ue={role:{},isLoading:!0};var we=(n,r)=>(0,H.default)(n,s=>{switch(r.type){case"GET_DATA_SUCCEEDED":{s.role=r.role,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{s.role.name=r.name,s.role.description=r.description;break}default:return s}}),Ne=n=>{const[r,s]=(0,e.useReducer)(we,Ue),i=(0,o.useNotification)(),d=(0,e.useRef)(null),{get:l}=(0,o.useFetchClient)();(0,e.useEffect)(()=>(d.current=!0,n?m(n):s({type:"GET_DATA_SUCCEEDED",role:{}}),()=>d.current=!1),[n]);const m=async h=>{try{const{data:{role:g}}=await l(`/${c.Z}/roles/${h}`);d.current&&s({type:"GET_DATA_SUCCEEDED",role:g})}catch(g){console.error(g),s({type:"GET_DATA_ERROR"}),i({type:"warning",message:{id:"notification.error"}})}},p=(0,e.useCallback)(h=>{s({type:"ON_SUBMIT_SUCCEEDED",...h})},[]);return{...r,onSubmitSucceeded:p}},$=a(5173),Ie=$.Ry().shape({name:$.Z_().required(o.translatedErrors.required),description:$.Z_().required(o.translatedErrors.required)}),$e=()=>{const{formatMessage:n}=(0,f.useIntl)(),[r,s]=(0,e.useState)(!1),i=(0,o.useNotification)(),{lockApp:d,unlockApp:l}=(0,o.useOverlayBlocker)(),{params:{id:m}}=(0,C.useRouteMatch)(`/settings/${c.Z}/roles/:id`),{isLoading:p,routes:h}=ae(),{role:g,onSubmitSucceeded:R,isLoading:P}=Ne(m),u=(0,e.useRef)(),{put:S}=(0,o.useFetchClient)(),G=async k=>{d(),s(!0);try{const B=u.current.getPermissions();await S(`/${c.Z}/roles/${m}`,{...k,...B,users:[]}),R({name:k.name,description:k.description}),i({type:"success",message:{id:(0,I.Z)("Settings.roles.edited"),defaultMessage:"Role edited"}})}catch(B){console.error(B),i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),l()};return P?e.createElement(o.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Roles"}),e.createElement(X.Formik,{enableReinitialize:!0,initialValues:{name:g.name,description:g.description},onSubmit:G,validationSchema:Ie},({handleSubmit:k,values:B,handleChange:F,errors:Z})=>e.createElement(o.Form,{noValidate:!0,onSubmit:k},e.createElement(t.HeaderLayout,{primaryAction:!p&&e.createElement(t.Button,{disabled:g.code==="strapi-super-admin",type:"submit",loading:r,startIcon:e.createElement(E.Check,null)},n({id:"global.save",defaultMessage:"Save"})),title:g.name,subtitle:g.description,navigationAction:e.createElement(o.Link,{startIcon:e.createElement(E.ArrowLeft,null),to:"/settings/users-permissions/roles"},n({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},n({id:(0,I.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{name:"name",value:B.name||"",onChange:F,label:n({id:"global.name",defaultMessage:"Name"}),error:Z.name?n({id:Z.name,defaultMessage:"Invalid value"}):null})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{name:"description",value:B.description||"",onChange:F,label:n({id:"global.description",defaultMessage:"Description"}),error:Z.description?n({id:Z.description,defaultMessage:"Invalid value"}):null}))))),!p&&e.createElement(se,{ref:u,permissions:g.permissions,routes:h}))))))},Ze=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.updateRole},e.createElement($e,null)),je=$.Ry().shape({name:$.Z_().required(o.translatedErrors.required),description:$.Z_().required(o.translatedErrors.required)}),He=()=>{const{formatMessage:n}=(0,f.useIntl)(),[r,s]=(0,e.useState)(!1),i=(0,o.useNotification)(),{goBack:d}=(0,C.useHistory)(),{lockApp:l,unlockApp:m}=(0,o.useOverlayBlocker)(),{isLoading:p,permissions:h,routes:g}=ae(),{trackUsage:R}=(0,o.useTracking)(),P=(0,e.useRef)(),{post:u}=(0,o.useFetchClient)(),S=async G=>{l(),s(!0);try{const k=P.current.getPermissions();await u(`/${c.Z}/roles`,{...G,...k,users:[]}),R("didCreateRole"),i({type:"success",message:{id:(0,I.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),d()}catch(k){console.error(k),i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),m()};return e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Roles"}),e.createElement(X.Formik,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:S,validationSchema:je},({handleSubmit:G,values:k,handleChange:B,errors:F})=>e.createElement(o.Form,{noValidate:!0,onSubmit:G},e.createElement(t.HeaderLayout,{primaryAction:!p&&e.createElement(t.Button,{type:"submit",loading:r,startIcon:e.createElement(E.Check,null)},n({id:"global.save",defaultMessage:"Save"})),title:n({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:n({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},n({id:(0,I.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{name:"name",value:k.name||"",onChange:B,label:n({id:"global.name",defaultMessage:"Name"}),error:F.name?n({id:F.name,defaultMessage:"Invalid value"}):null})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{name:"description",value:k.description||"",onChange:B,label:n({id:"global.description",defaultMessage:"Description"}),error:F.description?n({id:F.description,defaultMessage:"Invalid value"}):null}))))),!p&&e.createElement(se,{ref:P,permissions:h,routes:g}))))))},Ve=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.createRole},e.createElement(He,null)),We=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.accessRoles},e.createElement(C.Switch,null,e.createElement(C.Route,{path:`/settings/${c.Z}/roles/new`,component:Ve,exact:!0}),e.createElement(C.Route,{path:`/settings/${c.Z}/roles/:id`,component:Ze,exact:!0}),e.createElement(C.Route,{path:`/settings/${c.Z}/roles`,component:ce,exact:!0}),e.createElement(C.Route,{path:"",component:o.NotFound})))},59677:function(b,L,a){"use strict";a.d(L,{YX:function(){return o},Gc:function(){return t},OB:function(){return E.Z}});var e=a(92891),o=f=>Object.keys(f).reduce((v,M)=>{const T=f[M].controllers,A=Object.keys(T).reduce((U,w)=>((0,e.isEmpty)(T[w])||(U[w]=T[w]),U),{});return(0,e.isEmpty)(A)||(v[M]={controllers:A}),v},{}),c=a(90201),t=f=>`/${c.Z}/${f}`,E=a(82069)},56671:function(b,L,a){var e=a(35897),C=a(74741),o=C(e);b.exports=o},52920:function(b,L,a){var e=a(56671),C=a(81580);function o(c,y){var t=-1,E=C(c)?Array(c.length):[];return e(c,function(f,v,M){E[++t]=y(f,v,M)}),E}b.exports=o},50690:function(b,L,a){var e=a(26460),C=a(80166),o=a(88904),c=a(52920),y=a(36024),t=a(76535),E=a(1397),f=a(15362),v=a(77236);function M(T,A,U){A.length?A=e(A,function(x){return v(x)?function(N){return C(N,x.length===1?x[0]:x)}:x}):A=[f];var w=-1;A=e(A,t(o));var D=c(T,function(x,N,le){var W=e(A,function(Y){return Y(x)});return{criteria:W,index:++w,value:x}});return y(D,function(x,N){return E(x,N,U)})}b.exports=M},36024:function(b){function L(a,e){var C=a.length;for(a.sort(e);C--;)a[C]=a[C].value;return a}b.exports=L},40709:function(b,L,a){var e=a(22945);function C(o,c){if(o!==c){var y=o!==void 0,t=o===null,E=o===o,f=e(o),v=c!==void 0,M=c===null,T=c===c,A=e(c);if(!M&&!A&&!f&&o>c||f&&v&&T&&!M&&!A||t&&v&&T||!y&&T||!E)return 1;if(!t&&!f&&!A&&o<c||A&&y&&E&&!t&&!f||M&&y&&E||!v&&E||!T)return-1}return 0}b.exports=C},1397:function(b,L,a){var e=a(40709);function C(o,c,y){for(var t=-1,E=o.criteria,f=c.criteria,v=E.length,M=y.length;++t<v;){var T=e(E[t],f[t]);if(T){if(t>=M)return T;var A=y[t];return T*(A=="desc"?-1:1)}}return o.index-c.index}b.exports=C},74741:function(b,L,a){var e=a(81580);function C(o,c){return function(y,t){if(y==null)return y;if(!e(y))return o(y,t);for(var E=y.length,f=c?E:-1,v=Object(y);(c?f--:++f<E)&&t(v[f],f,v)!==!1;);return y}}b.exports=C},37213:function(b,L,a){var e=a(26460),C=a(88904),o=a(52920),c=a(77236);function y(t,E){var f=c(t)?e:o;return f(t,C(E,3))}b.exports=y},98978:function(b,L,a){var e=a(40314),C=a(50690),o=a(94569),c=a(63108),y=o(function(t,E){if(t==null)return[];var f=E.length;return f>1&&c(t,E[0],E[1])?E=[]:f>2&&c(E[0],E[1],E[2])&&(E=[E[0]]),C(t,e(E,1),[])});b.exports=y},15738:function(b,L,a){var e=a(4293);function C(o){var c=o==null?0:o.length;return c?e(o,1,c):[]}b.exports=C}}]);
@@ -1,23 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{47272:function(V,P,l){l.d(P,{Z:function(){return ie}});var e=l(32735),o=l(13478),t=l(39161),y=l(84968),x=l(5141),R=l(8888),j=l(60216),i=l.n(j),k=l(57269),I=l(83281),T=l(5636),$=l(83292),N=l(23940),z=l.n(N);const O=({disabledEvents:a,name:n,events:r,inputValue:s,handleChange:u,handleChangeAll:p})=>{const d=r.filter(g=>!a.includes(g)),c=s.length===d.length,h=s.length>0,f=({target:{name:g}})=>{p({target:{name:g,value:!c}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(t.Checkbox,{indeterminate:h&&!c,"aria-label":"Select all entries",name:n,onChange:f,value:c},z()(n))),r.map(g=>e.createElement("td",{key:g},e.createElement(t.BaseCheckbox,{disabled:a.includes(g),"aria-label":g,name:g,value:s.includes(g),onValueChange:E=>u({target:{name:g,value:E}})}))))};O.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},O.propTypes={disabledEvents:i().array,events:i().array,inputValue:i().array,handleChange:i().func,handleChangeAll:i().func,name:i().string.isRequired};var X=O,Q=a=>a.reduce((n,r)=>{const s=r.split(".")[0];return n[s]||(n[s]=[]),n[s].push(r),n},{});const q=$.default.table`
2
- td {
3
- height: ${52/16}rem;
4
- width: 10%;
5
- vertical-align: middle;
6
- text-align: center;
7
- }
8
-
9
- tbody tr:nth-child(odd) {
10
- background: ${({theme:a})=>a.colors.neutral100};
11
- }
12
-
13
- tbody tr td:first-child {
14
- padding-left: ${({theme:a})=>a.spaces[7]};
15
- }
16
- `,w={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},G=({isDraftAndPublish:a})=>{const n=a?w.headers.draftAndPublish:w.headers.default,r=a?w.events.draftAndPublish:w.events.default,{formatMessage:s}=(0,T.useIntl)(),{values:u,handleChange:p}=(0,I.useFormikContext)(),d="events",c=u.events,h=[],f=Q(c),g=({target:{name:m,value:A}})=>{let C=new Set(c);A?C.add(m):C.delete(m),p({target:{name:d,value:Array.from(C)}})},E=({target:{name:m,value:A}})=>{let C=new Set(c);A?r[m].forEach(S=>{h.includes(S)||C.add(S)}):r[m].forEach(S=>C.delete(S)),p({target:{name:d,value:Array.from(C)}})};return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.FieldLabel,null,s({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(q,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),n.map(m=>m==="app.utils.publish"||m==="app.utils.unpublish"?e.createElement("td",{key:m.id,title:s({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m))):e.createElement("td",{key:m.id},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},s(m)))))),e.createElement("tbody",null,Object.keys(r).map(m=>e.createElement(X,{disabledEvents:h,key:m,name:m,events:r[m],inputValue:f[m],handleChange:g,handleChangeAll:E})))))};G.propTypes={isDraftAndPublish:i().bool.isRequired};var J=G,H=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const D=({name:a,onChange:n,value:r,...s})=>{const[u,p]=(0,e.useState)(r?[...H,r]:H),d=h=>{n({target:{name:a,value:h}})},c=h=>{p(f=>[...f,h]),n({target:{name:a,value:h}})};return e.createElement(t.CreatableCombobox,{...s,onChange:d,onCreateOption:c,placeholder:"",value:r},u.map(h=>e.createElement(t.ComboboxOption,{value:h,key:h},h)))};D.defaultProps={value:void 0},D.propTypes={name:i().string.isRequired,onChange:i().func.isRequired,value:i().string};var Y=D,_=()=>{const{formatMessage:a}=(0,T.useIntl)(),{values:n,errors:r}=(0,I.useFormikContext)();return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.FieldLabel,null,a({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(t.Box,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(I.FieldArray,{validateOnChange:!1,name:"headers",render:({push:s,remove:u})=>e.createElement(t.Grid,{gap:4},n.headers?.map((p,d)=>e.createElement(e.Fragment,{key:d},e.createElement(t.GridItem,{col:6},e.createElement(I.Field,{as:Y,name:`headers.${d}.key`,"aria-label":`row ${d+1} key`,label:a({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:r.headers?.[d]?.key&&a({id:r.headers[d]?.key,defaultMessage:r.headers[d]?.key})})),e.createElement(t.GridItem,{col:6},e.createElement(t.Flex,{alignItems:"flex-end"},e.createElement(t.Box,{style:{flex:1}},e.createElement(I.Field,{as:t.TextInput,"aria-label":`row ${d+1} value`,label:a({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${d}.value`,error:r.headers?.[d]?.value&&a({id:r.headers[d]?.value,defaultMessage:r.headers[d]?.value})})),e.createElement(t.Flex,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:r.headers?.[d]?.value?0:5},e.createElement(o.RemoveRoundedButton,{onClick:()=>n.headers.length!==1&&u(d),label:a({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:d+1})})))))),e.createElement(t.GridItem,{col:12},e.createElement(t.TextButton,{type:"button",onClick:()=>{s({key:"",value:""})},startIcon:e.createElement(k.Plus,null)},a({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))};const F=$.default.svg(({theme:a,color:n})=>`
17
- width: ${12/16}rem;
18
- height: ${12/16}rem;
19
-
20
- path {
21
- fill: ${a.colors[n]};
22
- }
23
- `),L=({isPending:a,statusCode:n})=>{const{formatMessage:r}=(0,T.useIntl)();return a?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Loader}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):n>=200&&n<300?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Check,color:"success700"}),e.createElement(t.Typography,null,r({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):n>=300?e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(F,{as:k.Cross,color:"danger700"}),e.createElement(t.Typography,null,r({id:"Settings.error",defaultMessage:"error"})," ",n)):null};L.propTypes={isPending:i().bool.isRequired,statusCode:i().number},L.defaultProps={statusCode:void 0};const B=({statusCode:a,message:n})=>{const{formatMessage:r}=(0,T.useIntl)();return a>=200&&a<300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Typography,{textColor:"neutral600",ellipsis:!0},r({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):a>=300?e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement(t.Flex,{maxWidth:(0,o.pxToRem)(250),justifyContent:"flex-end",title:n},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral600"},n))):null};B.propTypes={statusCode:i().number,message:i().string},B.defaultProps={statusCode:void 0,message:void 0};const K=({onCancel:a})=>{const{formatMessage:n}=(0,T.useIntl)();return e.createElement(t.Flex,{justifyContent:"flex-end"},e.createElement("button",{onClick:a,type:"button"},e.createElement(t.Flex,{gap:2,alignItems:"center"},e.createElement(t.Typography,{textColor:"neutral400"},n({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(F,{as:k.Cross,color:"neutral400"}))))};K.propTypes={onCancel:i().func.isRequired};const W=({isPending:a,onCancel:n,response:r})=>{const{statusCode:s,message:u}=r,{formatMessage:p}=(0,T.useIntl)();return e.createElement(t.Box,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Grid,{gap:4,style:{alignItems:"center"}},e.createElement(t.GridItem,{col:3},e.createElement(t.Typography,null,p({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(t.GridItem,{col:3},e.createElement(L,{isPending:a,statusCode:s})),e.createElement(t.GridItem,{col:6},a?e.createElement(K,{onCancel:n}):e.createElement(B,{statusCode:s,message:u}))))};W.defaultProps={isPending:!1,onCancel(){},response:{}},W.propTypes={isPending:i().bool,onCancel:i().func,response:i().object};var ee=W,v=l(5173);const te=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,ae=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var ne=v.Ry().shape({name:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(te,o.translatedErrors.regex),url:v.Z_(o.translatedErrors.string).required(o.translatedErrors.required).matches(ae,o.translatedErrors.regex),headers:v.Vo(a=>{let n=v.IX();if(a.length===1){const{key:r,value:s}=a[0];if(!r&&!s)return n}return n.of(v.Ry().shape({key:v.Z_().required(o.translatedErrors.required),value:v.Z_().required(o.translatedErrors.required)}))}),events:v.IX()});const U=({handleSubmit:a,data:n,triggerWebhook:r,isCreating:s,isTriggering:u,triggerResponse:p,isDraftAndPublishEvents:d})=>{const{formatMessage:c}=(0,T.useIntl)(),[h,f]=(0,e.useState)(!1);return e.createElement(I.Formik,{onSubmit:a,initialValues:{name:n?.name||"",url:n?.url||"",headers:Object.keys(n?.headers||[]).length?Object.entries(n.headers).map(([g,E])=>({key:g,value:E})):[{key:"",value:""}],events:n?.events||[]},validationSchema:ne,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:g,errors:E})=>e.createElement(o.Form,{noValidate:!0},e.createElement(t.HeaderLayout,{primaryAction:e.createElement(t.Flex,{gap:2},e.createElement(t.Button,{onClick:()=>{r(),f(!0)},variant:"tertiary",startIcon:e.createElement(k.Play,null),disabled:s||u,size:"L"},c({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(t.Button,{startIcon:e.createElement(k.Check,null),onClick:g,type:"submit",size:"L"},c({id:"global.save",defaultMessage:"Save"}))),title:s?c({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):n?.name,navigationAction:e.createElement(o.Link,{startIcon:e.createElement(k.ArrowLeft,null),to:"/settings/webhooks"},c({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},h&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(ee,{isPending:u,response:p,onCancel:()=>f(!1)})),e.createElement(t.Box,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(t.Grid,{gap:6},e.createElement(t.GridItem,{col:6},e.createElement(I.Field,{as:t.TextInput,name:"name",error:E.name&&c({id:E.name}),label:c({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(t.GridItem,{col:12},e.createElement(I.Field,{as:t.TextInput,name:"url",error:E.url&&c({id:E.url}),label:c({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(_,null),e.createElement(J,{isDraftAndPublish:d})))))))};U.propTypes={data:i().object,handleSubmit:i().func.isRequired,triggerWebhook:i().func.isRequired,isCreating:i().bool.isRequired,isDraftAndPublishEvents:i().bool.isRequired,isTriggering:i().bool.isRequired,triggerResponse:i().object},U.defaultProps={data:void 0,triggerResponse:void 0};var re=U,se=l(92891);const le=a=>{const n={...a};return(0,se.set)(n,"headers",oe(a.headers)),n},oe=a=>a.reduce((n,r)=>{const{key:s,value:u}=r;return s!==""?{...n,[s]:u}:n},{});var Z=le,ie=()=>{const{params:{id:a}}=(0,x.useRouteMatch)("/settings/webhooks/:id"),{replace:n}=(0,x.useHistory)(),{lockApp:r,unlockApp:s}=(0,o.useOverlayBlocker)(),u=(0,o.useNotification)(),p=(0,y.useQueryClient)(),{isLoading:d,collectionTypes:c}=(0,R.bP)(),{post:h}=(0,o.useFetchClient)(),f=a==="create",g=(0,e.useCallback)(async b=>{const[M,{data:pe}]=await(0,o.to)((0,o.request)(`/admin/webhooks/${b}`,{method:"GET"}));return M?(u({type:"warning",message:{id:"notification.error"}}),null):pe},[u]),{isLoading:E,data:m}=(0,y.useQuery)(["get-webhook",a],()=>g(a),{enabled:!f}),{isLoading:A,data:C,isIdle:S,mutate:de}=(0,y.useMutation)(()=>h(`/admin/webhooks/${a}/trigger`)),ue=()=>de(null,{onError(){u({type:"warning",message:{id:"notification.error"}})}}),ce=(0,y.useMutation)(b=>(0,o.request)("/admin/webhooks",{method:"POST",body:b})),me=(0,y.useMutation)(({id:b,body:M})=>(0,o.request)(`/admin/webhooks/${b}`,{method:"PUT",body:M})),ge=async b=>{f?(r(),ce.mutate(Z(b),{onSuccess(M){u({type:"success",message:{id:"Settings.webhooks.created"}}),n(`/settings/webhooks/${M.data.id}`),s()},onError(M){u({type:"warning",message:{id:"notification.error"}}),console.log(M),s()}})):(r(),me.mutate({id:a,body:Z(b)},{onSuccess(){p.invalidateQueries(["get-webhook",a]),u({type:"success",message:{id:"notification.form.success.fields"}}),s()},onError(M){u({type:"warning",message:{id:"notification.error"}}),console.log(M),s()}}))},he=(0,e.useMemo)(()=>c.some(b=>b.options.draftAndPublish===!0),[c]);return E||d?e.createElement(o.LoadingIndicatorPage,null):e.createElement(t.Main,null,e.createElement(o.SettingsPageTitle,{name:"Webhooks"}),e.createElement(re,{handleSubmit:ge,data:m,triggerWebhook:ue,isCreating:f,isTriggering:A,isTriggerIdle:S,triggerResponse:C?.data.data,isDraftAndPublishEvents:he}))}},33238:function(V,P,l){l.r(P);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),x=l(47272);const R=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.create},e.createElement(x.Z,null));P.default=R},59021:function(V,P,l){l.r(P);var e=l(32735),o=l(13478),t=l.n(o),y=l(72041),x=l(47272);const R=()=>e.createElement(o.CheckPagePermissions,{permissions:y.Z.settings.webhooks.update},e.createElement(x.Z,null));P.default=R}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{70791:function(ee,L,i){i.r(L),i.d(L,{default:function(){return V}});var e=i(32735),a=i(13478),C=i(72041),O=i(5141),x=i(5636),t=i(39161),E=i(57269),P=i(97889),H=i(3040),K=i.n(H);const I={webhooks:[],webhooksToDelete:[],webhookToDelete:null,loadingWebhooks:!0};var G=(r,s)=>(0,P.default)(r,l=>{switch(s.type){case"GET_DATA_SUCCEEDED":{l.webhooks=s.data,l.loadingWebhooks=!1;break}case"TOGGLE_LOADING":{l.loadingWebhooks=!r.loadingWebhooks;break}case"SET_WEBHOOK_ENABLED":{K()(l,["webhooks",...s.keys],s.value);break}case"SET_WEBHOOK_TO_DELETE":{l.webhookToDelete=s.id;break}case"SET_WEBHOOKS_TO_DELETE":{s.value?l.webhooksToDelete.push(s.id):l.webhooksToDelete=r.webhooksToDelete.filter(d=>d!==s.id);break}case"SET_ALL_WEBHOOKS_TO_DELETE":{r.webhooksToDelete.length===0?l.webhooksToDelete=r.webhooks.map(d=>d.id):l.webhooksToDelete=[];break}case"WEBHOOKS_DELETED":{l.webhooks=r.webhooks.filter(d=>!r.webhooksToDelete.includes(d.id)),l.webhooksToDelete=[];break}case"WEBHOOK_DELETED":{l.webhooks=r.webhooks.filter((d,g)=>g!==s.index),l.webhookToDelete=null;break}default:return l}}),N=()=>{const{isLoading:r,allowedActions:{canCreate:s,canRead:l,canUpdate:d,canDelete:g}}=(0,a.useRBAC)(C.Z.settings.webhooks),b=(0,a.useNotification)(),h=(0,e.useRef)(!0),{formatMessage:n}=(0,x.useIntl)(),[$,T]=(0,e.useState)(!1),[{webhooks:f,webhooksToDelete:y,webhookToDelete:D,loadingWebhooks:p},u]=(0,e.useReducer)(G,I),{notifyStatus:R}=(0,t.useNotifyAT)();(0,a.useFocusWhenNavigate)();const{push:U}=(0,O.useHistory)(),{pathname:S}=(0,O.useLocation)(),k=f.length,m=y.length,B=o=>f.findIndex(c=>c.id===o);(0,e.useEffect)(()=>(h.current=!0,()=>{h.current=!1}),[]),(0,e.useEffect)(()=>{l&&F()},[l]);const F=async()=>{try{const{data:o}=await(0,a.request)("/admin/webhooks",{method:"GET"});h.current&&(u({type:"GET_DATA_SUCCEEDED",data:o}),R("webhooks have been loaded"))}catch(o){console.log(o),h.current&&(o.code!==20&&b({type:"warning",message:{id:"notification.error"}}),u({type:"TOGGLE_LOADING"}))}},z=()=>{T(o=>!o)},Z=()=>{D?j():J()},j=async()=>{try{await(0,a.request)(`/admin/webhooks/${D}`,{method:"DELETE"}),u({type:"WEBHOOK_DELETED",index:B(D)})}catch(o){o.code!==20&&b({type:"warning",message:{id:"notification.error"}})}T(!1)},J=async()=>{const o={ids:y};try{await(0,a.request)("/admin/webhooks/batch-delete",{method:"POST",body:o}),h.current&&u({type:"WEBHOOKS_DELETED"})}catch(c){h.current&&c.code!==20&&b({type:"warning",message:{id:"notification.error"}})}T(!1)},v=o=>{T(!0),o!=="all"&&u({type:"SET_WEBHOOK_TO_DELETE",id:o})},Q=async(o,c)=>{const W=B(c),_=f[W],M=[W,"isEnabled"],A={..._,isEnabled:o};delete A.id;try{u({type:"SET_WEBHOOK_ENABLED",keys:M,value:o}),await(0,a.request)(`/admin/webhooks/${c}`,{method:"PUT",body:A})}catch(q){h.current&&(u({type:"SET_WEBHOOK_ENABLED",keys:M,value:!o}),q.code!==20&&b({type:"warning",message:{id:"notification.error"}}))}},X=()=>{u({type:"SET_ALL_WEBHOOKS_TO_DELETE"})},Y=(o,c)=>{u({type:"SET_WEBHOOKS_TO_DELETE",value:o,id:c})},w=o=>{U(`${S}/${o}`)};return e.createElement(t.Layout,null,e.createElement(a.SettingsPageTitle,{name:"Webhooks"}),e.createElement(t.Main,{"aria-busy":r||p},e.createElement(t.HeaderLayout,{title:n({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:n({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:s&&!p&&e.createElement(a.LinkButton,{startIcon:e.createElement(E.Plus,null),variant:"default",to:`${S}/create`,size:"S"},n({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),m>0&&g&&e.createElement(t.ActionLayout,{startActions:e.createElement(e.Fragment,null,e.createElement(t.Typography,{variant:"epsilon",textColor:"neutral600"},n({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected"},{webhooksToDeleteLength:m})),e.createElement(t.Button,{onClick:()=>v("all"),startIcon:e.createElement(E.Trash,null),size:"L",variant:"danger-light"},n({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(t.ContentLayout,null,r||p?e.createElement(t.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(a.LoadingIndicatorPage,null)):k>0?e.createElement(t.Table,{colCount:5,rowCount:k+1,footer:e.createElement(t.TFooter,{onClick:()=>s?w("create"):{},icon:e.createElement(E.Plus,null)},n({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(t.Thead,null,e.createElement(t.Tr,null,e.createElement(t.Th,null,e.createElement(t.BaseCheckbox,{"aria-label":n({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:m>0&&m<k,value:m===k,onValueChange:X})),e.createElement(t.Th,{width:"20%"},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,{width:"60%"},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(t.Th,{width:"20%"},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},n({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,n({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(t.Tbody,null,f.map(o=>e.createElement(t.Tr,{key:o.id,...(0,a.onRowClick)({fn:()=>w(o.id),condition:d})},e.createElement(t.Td,{...a.stopPropagation},e.createElement(t.BaseCheckbox,{"aria-label":`${n({id:"global.select",defaultMessage:"Select"})} ${o.name}`,value:y?.includes(o.id),onValueChange:c=>Y(c,o.id),id:"select",name:"select"})),e.createElement(t.Td,null,e.createElement(t.Typography,{fontWeight:"semiBold",textColor:"neutral800"},o.name)),e.createElement(t.Td,null,e.createElement(t.Typography,{textColor:"neutral800"},o.url)),e.createElement(t.Td,null,e.createElement(t.Flex,{...a.stopPropagation},e.createElement(t.Switch,{onLabel:n({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:n({id:"global.disabled",defaultMessage:"Disabled"}),label:`${o.name} ${n({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:o.isEnabled,onChange:()=>Q(!o.isEnabled,o.id),visibleLabels:!0}))),e.createElement(t.Td,null,e.createElement(t.Flex,{gap:1,...a.stopPropagation},d&&e.createElement(t.IconButton,{onClick:()=>{w(o.id)},label:n({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(E.Pencil,null),noBorder:!0}),g&&e.createElement(t.IconButton,{onClick:()=>v(o.id),label:n({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(E.Trash,null),noBorder:!0,id:`delete-${o.id}`}))))))):e.createElement(t.EmptyStateLayout,{icon:e.createElement(E.EmptyDocuments,{width:"160px"}),content:n({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(t.Button,{variant:"secondary",startIcon:e.createElement(E.Plus,null),onClick:()=>s?w("create"):{}},n({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}))),e.createElement(a.ConfirmDialog,{isOpen:$,onToggleDialog:z,onConfirm:Z}))},V=()=>e.createElement(a.CheckPagePermissions,{permissions:C.Z.settings.webhooks.main},e.createElement(N,null))}}]);