@strapi/admin 4.9.0-exp.90df253ba90fd6879eb56a720a1f80d04ff745b8 → 4.10.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/admin/src/content-manager/components/DynamicTable/CellContent/PublicationState/PublicationState.js +26 -0
  2. package/admin/src/content-manager/components/DynamicTable/CellContent/PublicationState/index.js +1 -0
  3. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStage.js +15 -0
  4. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +1 -0
  5. package/admin/src/content-manager/components/DynamicTable/index.js +43 -49
  6. package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +2 -0
  7. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  8. package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
  9. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
  10. package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
  11. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
  12. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
  13. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
  14. package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
  15. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
  16. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
  17. package/admin/src/content-manager/pages/EditView/Information/index.js +77 -53
  18. package/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxCE.js +13 -0
  19. package/admin/src/content-manager/pages/EditView/InformationBox/index.js +3 -0
  20. package/admin/src/content-manager/pages/EditView/index.js +3 -4
  21. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
  22. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
  23. package/admin/src/content-manager/pages/ListView/index.js +6 -9
  24. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  25. package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
  26. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
  27. package/admin/src/content-manager/utils/getFieldName.js +1 -1
  28. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
  29. package/admin/src/content-manager/utils/paths.js +1 -1
  30. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
  31. package/admin/src/hooks/useRegenerate/index.js +1 -1
  32. package/admin/src/hooks/useSettingsForm/index.js +3 -3
  33. package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
  34. package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
  35. package/admin/src/index.js +1 -0
  36. package/admin/src/pages/AuthPage/reducer.js +1 -1
  37. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +5 -7
  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/components/FormTransferTokenContainer/index.js +0 -41
  55. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +4 -6
  56. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +0 -1
  57. package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
  58. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
  59. package/admin/src/permissions/index.js +1 -1
  60. package/admin/src/translations/en.json +6 -0
  61. package/admin/src/utils/getAttributesToDisplay.js +2 -4
  62. package/admin/src/utils/getExistingActions.js +1 -3
  63. package/admin/src/utils/sortLinks.js +1 -1
  64. package/build/{8580.b0dcf37c.chunk.js → 2263.4c5916f9.chunk.js} +61 -61
  65. package/build/4649.213b8a3b.chunk.js +30 -0
  66. package/build/6985.66cca29c.chunk.js +1 -0
  67. package/build/7259.aefb51e8.chunk.js +1 -0
  68. package/build/{7112.2bf13da3.chunk.js → 9505.dbe702ab.chunk.js} +6 -6
  69. package/build/{Admin-authenticatedApp.5aa08bf5.chunk.js → Admin-authenticatedApp.f50ad423.chunk.js} +3 -3
  70. package/build/{Admin_marketplace.0f6c8ee2.chunk.js → Admin_marketplace.02608d56.chunk.js} +1 -1
  71. package/build/{Admin_profilePage.d2a8f9ab.chunk.js → Admin_profilePage.76afeca0.chunk.js} +1 -1
  72. package/build/Admin_settingsPage.147755cd.chunk.js +9 -0
  73. package/build/admin-app.55dd7921.chunk.js +112 -0
  74. package/build/admin-edit-roles-page.cf543488.chunk.js +216 -0
  75. package/build/admin-edit-users.31c20712.chunk.js +10 -0
  76. package/build/admin-roles-list.489c501f.chunk.js +2 -0
  77. package/build/{admin-users.af8c3123.chunk.js → admin-users.3e111a7d.chunk.js} +1 -1
  78. package/build/{api-tokens-create-page.2a6e22bd.chunk.js → api-tokens-create-page.4328b852.chunk.js} +1 -1
  79. package/build/{api-tokens-edit-page.fa38cd63.chunk.js → api-tokens-edit-page.bce5050f.chunk.js} +1 -1
  80. package/build/content-manager.4480ae88.chunk.js +1137 -0
  81. package/build/content-type-builder-translation-en-json.7961593e.chunk.js +1 -0
  82. package/build/content-type-builder.af9abf1e.chunk.js +126 -0
  83. package/build/en-json.697b4bcf.chunk.js +1 -0
  84. package/build/index.html +1 -1
  85. package/build/main.af8c0f31.js +3790 -0
  86. package/build/review-workflows-settings.7a7dc773.chunk.js +57 -0
  87. package/build/runtime~main.5a95bee6.js +2 -0
  88. package/build/sso-settings-page.272b87c8.chunk.js +1 -0
  89. package/build/{upload-settings.0200561d.chunk.js → upload-settings.0875e973.chunk.js} +1 -1
  90. package/build/upload-translation-fr-json.baab9911.chunk.js +1 -0
  91. package/build/users-advanced-settings-page.1d3c14c7.chunk.js +1 -0
  92. package/build/{users-email-settings-page.a3c80419.chunk.js → users-email-settings-page.e8db68c4.chunk.js} +1 -1
  93. package/build/users-providers-settings-page.14cac425.chunk.js +1 -0
  94. package/build/users-roles-settings-page.2ea4de84.chunk.js +30 -0
  95. package/build/{webhook-edit-page.a2a2b7bb.chunk.js → webhook-edit-page.329141a5.chunk.js} +3 -3
  96. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +92 -0
  97. package/ee/admin/content-manager/pages/EditView/InformationBox/index.js +3 -0
  98. package/ee/admin/hooks/useSettingsMenu/utils/customAdminLinks.js +12 -12
  99. package/ee/admin/hooks/useSettingsMenu/utils/customGlobalLinks.js +21 -13
  100. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +195 -0
  101. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +42 -0
  102. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/AddStage.js +87 -0
  103. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/index.js +1 -0
  104. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +90 -0
  105. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/index.js +1 -0
  106. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +92 -0
  107. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/index.js +1 -0
  108. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +6 -0
  109. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +35 -0
  110. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/index.js +3 -0
  111. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +121 -0
  112. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/getWorkflowValidationSchema.js +25 -0
  113. package/ee/admin/pages/SettingsPage/utils/customRoutes.js +16 -2
  114. package/ee/admin/permissions/customPermissions.js +3 -0
  115. package/ee/server/bootstrap.js +16 -0
  116. package/ee/server/config/admin-actions.js +10 -0
  117. package/ee/server/constants/default-stages.json +14 -0
  118. package/ee/server/constants/default-workflow.json +1 -0
  119. package/ee/server/constants/workflows.js +8 -0
  120. package/ee/server/content-types/index.js +9 -0
  121. package/ee/server/content-types/workflow/index.js +34 -0
  122. package/ee/server/content-types/workflow-stage/index.js +41 -0
  123. package/ee/server/controllers/index.js +2 -0
  124. package/ee/server/controllers/workflows/index.js +36 -0
  125. package/ee/server/controllers/workflows/stages/index.js +95 -0
  126. package/ee/server/index.js +1 -0
  127. package/ee/server/middlewares/review-workflows.js +40 -0
  128. package/ee/server/migrations/review-workflows.js +39 -0
  129. package/ee/server/register.js +7 -0
  130. package/ee/server/routes/index.js +104 -0
  131. package/ee/server/services/index.js +4 -0
  132. package/ee/server/services/review-workflows/entity-service-decorator.js +42 -0
  133. package/ee/server/services/review-workflows/review-workflows.js +175 -0
  134. package/ee/server/services/review-workflows/stages.js +148 -0
  135. package/ee/server/services/review-workflows/workflows.js +25 -0
  136. package/ee/server/utils/index.js +8 -0
  137. package/ee/server/utils/persisted-tables.js +49 -0
  138. package/ee/server/utils/review-workflows.js +25 -0
  139. package/ee/server/utils/test.js +11 -0
  140. package/ee/server/validation/review-workflows.js +24 -0
  141. package/package.json +13 -13
  142. package/server/controllers/transfer/runner.js +2 -4
  143. package/server/routes/transfer.js +4 -13
  144. package/server/services/constants.js +0 -4
  145. package/server/services/permission/permissions-manager/sanitize.js +2 -0
  146. package/server/services/transfer/permission.js +1 -1
  147. package/server/services/transfer/token.js +31 -33
  148. package/server/validation/transfer/token.js +2 -10
  149. package/build/2637.679b590b.chunk.js +0 -1
  150. package/build/5563.451e91ee.chunk.js +0 -30
  151. package/build/7259.7744297b.chunk.js +0 -1
  152. package/build/Admin_settingsPage.489ec4eb.chunk.js +0 -9
  153. package/build/admin-app.4b313104.chunk.js +0 -112
  154. package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
  155. package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
  156. package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
  157. package/build/content-manager.f530e141.chunk.js +0 -1139
  158. package/build/content-type-builder-translation-en-json.e577d595.chunk.js +0 -1
  159. package/build/content-type-builder.6ecd201d.chunk.js +0 -126
  160. package/build/en-json.01a88a30.chunk.js +0 -1
  161. package/build/main.43b93ff3.js +0 -3843
  162. package/build/runtime~main.a40b1b57.js +0 -2
  163. package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
  164. package/build/upload-translation-fr-json.84429734.chunk.js +0 -1
  165. package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
  166. package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
  167. package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
@@ -0,0 +1,216 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2544],{92034:function(U,W,u){"use strict";u.r(W),u.d(W,{CreatePage:function(){return le},default:function(){return de}});var e=u(32735),A=u(64213),r=u(13478),y=u(39161),i=u(57269),I=u(83281),D=u(33795),K=u.n(D),G=u(86834),F=u.n(G),b=u(5636),he=u(5141),Q=u(83292),_=u(7247),Ce=u(8888),E=u(72041),ie=u(5173),ee=ie.Ry().shape({name:ie.Z_().required(r.translatedErrors.required),description:ie.Z_().required(r.translatedErrors.required)});const Oe=Q.default.div`
2
+ border: 1px solid ${({theme:L})=>L.colors.primary200};
3
+ background: ${({theme:L})=>L.colors.primary100};
4
+ padding: ${({theme:L})=>`${L.spaces[2]} ${L.spaces[4]}`};
5
+ color: ${({theme:L})=>L.colors.primary600};
6
+ border-radius: ${({theme:L})=>L.borderRadius};
7
+ font-size: ${12/16}rem;
8
+ font-weight: bold;
9
+ `,le=()=>{const L=(0,r.useNotification)(),{lockApp:Z,unlockApp:B}=(0,r.useOverlayBlocker)(),{formatMessage:P}=(0,b.useIntl)(),[N,X]=(0,e.useState)(!1),{replace:te}=(0,he.useHistory)(),w=(0,e.useRef)(),{trackUsage:oe}=(0,r.useTracking)(),xe=(0,he.useRouteMatch)("/settings/roles/duplicate/:id"),ue=K()(xe,"params.id",null),{isLoading:Re,data:re}=(0,Ce.U_)(),{permissions:Te,isLoading:me}=(0,Ce.Dq)(ue),be=se=>{Z(),X(!0),oe(ue?"willDuplicateRole":"willCreateNewRole"),Promise.resolve((0,r.request)("/admin/roles",{method:"POST",body:se})).then(async $=>{const{permissionsToSend:q}=w.current.getPermissions();return oe(ue?"didDuplicateRole":"didCreateNewRole"),$.data.id&&!F()(q)&&await(0,r.request)(`/admin/roles/${$.data.id}/permissions`,{method:"PUT",body:{permissions:q}}),$}).then($=>{X(!1),L({type:"success",message:{id:"Settings.roles.created",defaultMessage:"created"}}),te(`/settings/roles/${$.data.id}`)}).catch($=>{console.error($),X(!1),L({type:"warning",message:{id:"notification.error"}})}).finally(()=>{B()})},ne=`${P({id:"Settings.roles.form.created",defaultMessage:"Created"})} ${(0,A.format)(new Date,"PPP")}`;return e.createElement(y.Main,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(I.Formik,{initialValues:{name:"",description:ne},onSubmit:be,validationSchema:ee,validateOnChange:!1},({handleSubmit:se,values:$,errors:q,handleReset:Y,handleChange:pe})=>e.createElement(r.Form,{noValidate:!0},e.createElement(e.Fragment,null,e.createElement(y.HeaderLayout,{primaryAction:e.createElement(y.Flex,{gap:2},e.createElement(y.Button,{variant:"secondary",onClick:()=>{Y(),w.current.resetForm()},size:"L"},P({id:"app.components.Button.reset",defaultMessage:"Reset"})),e.createElement(y.Button,{onClick:se,loading:N,size:"L"},P({id:"global.save",defaultMessage:"Save"}))),title:P({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:P({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(r.Link,{startIcon:e.createElement(i.ArrowLeft,null),to:"/settings/roles"},P({id:"global.back",defaultMessage:"Back"}))}),e.createElement(y.ContentLayout,null,e.createElement(y.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(y.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(y.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(y.Flex,{justifyContent:"space-between"},e.createElement(y.Box,null,e.createElement(y.Box,null,e.createElement(y.Typography,{fontWeight:"bold"},P({id:"global.details",defaultMessage:"Details"}))),e.createElement(y.Box,null,e.createElement(y.Typography,{variant:"pi",textColor:"neutral600"},P({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(Oe,null,P({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:0}))),e.createElement(y.Grid,{gap:4},e.createElement(y.GridItem,{col:6},e.createElement(y.TextInput,{name:"name",error:q.name&&P({id:q.name}),label:P({id:"global.name",defaultMessage:"Name"}),onChange:pe,value:$.name})),e.createElement(y.GridItem,{col:6},e.createElement(y.Textarea,{label:P({id:"global.description",defaultMessage:"Description"}),name:"description",error:q.description&&P({id:q.description}),onChange:pe},$.description))))),!Re&&!me?e.createElement(y.Box,{shadow:"filterShadow",hasRadius:!0},e.createElement(_.Z,{isFormDisabled:!1,ref:w,permissions:Te,layout:re})):e.createElement(y.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(r.LoadingIndicatorPage,null))))))))};function de(){return e.createElement(r.CheckPagePermissions,{permissions:E.Z.settings.roles.create},e.createElement(le,null))}},7247:function(U,W,u){"use strict";u.d(W,{Z:function(){return Ln}});var e=u(32735),A=u(60216),r=u.n(A),y=u(13478),i=u(39161),I=u(23973),D=u.n(I),K=u(86834),G=u.n(K),F=u(5636),b=u(83292),he=u(98978),Q=u.n(he),_=u(57269),Ce=u(33795),E=u.n(Ce),ie=u(9086),$e=u.n(ie),ee=u(8888);const Oe=b.default.div`
10
+ position: relative;
11
+
12
+ ${({hasConditions:t,disabled:n,theme:o})=>t&&`
13
+ &:before {
14
+ content: '';
15
+ position: absolute;
16
+ top: -3px;
17
+ left: -10px;
18
+ width: 6px;
19
+ height: 6px;
20
+ border-radius: ${20/16}rem;;
21
+ background: ${n?o.colors.neutral100:o.colors.primary600};
22
+ }
23
+ `}
24
+ `,le=({onClick:t,className:n,hasConditions:o,variant:s})=>{const{formatMessage:a}=(0,F.useIntl)();return e.createElement(Oe,{hasConditions:o,className:n},e.createElement(i.Button,{variant:s,startIcon:e.createElement(_.Cog,null),onClick:t},a({id:"global.settings",defaultMessage:"Settings"})))};le.defaultProps={className:null,hasConditions:!1,variant:"tertiary"},le.propTypes={onClick:r().func.isRequired,className:r().string,hasConditions:r().bool,variant:r().string};var de=(0,b.default)(le)``,L=u(97889),Z=u(81346),B=u.n(Z),P=u(23940),N=u.n(P);const X=t=>Object.values(t).map(n=>Object.entries(n).filter(([,o])=>o).map(([o])=>o)).flat(),te=t=>t.reduce((n,[o,s])=>(n.push({label:N()(o),children:s.map(a=>({label:a.displayName,value:a.id}))}),n),[]),w=(t,n)=>t.map(([,o])=>o).flat().reduce((o,s)=>({[s.id]:n.includes(s.id),...o}),{}),oe=({arrayOfOptionsGroupedByCategory:t,isFormDisabled:n,isGrey:o,label:s,name:a,onChange:l,value:c})=>{const{formatMessage:d}=(0,F.useIntl)(),p=m=>{l(a,w(t,m))};return e.createElement(i.Flex,{as:"li",background:o?"neutral100":"neutral0",paddingBottom:3,paddingTop:3},e.createElement(i.Flex,{paddingLeft:6,style:{width:180}},e.createElement(i.Typography,{variant:"sigma",textColor:"neutral600"},d({id:"Settings.permissions.conditions.can",defaultMessage:"Can"}),"\xA0"),e.createElement(i.Typography,{variant:"sigma",title:s,textColor:"primary600",ellipsis:!0},d({id:`Settings.roles.form.permissions.${s.toLowerCase()}`,defaultMessage:s})),e.createElement(i.Typography,{variant:"sigma",textColor:"neutral600"},"\xA0",d({id:"Settings.permissions.conditions.when",defaultMessage:"When"}))),e.createElement(i.Box,{style:{maxWidth:430,width:"100%"}},e.createElement(i.MultiSelectNested,{id:a,customizeContent:m=>`${m.length} currently selected`,onChange:p,value:X(c),options:te(t),disabled:n})))};oe.propTypes={arrayOfOptionsGroupedByCategory:r().array.isRequired,isFormDisabled:r().bool.isRequired,isGrey:r().bool.isRequired,label:r().string.isRequired,name:r().string.isRequired,value:r().object.isRequired,onChange:r().func.isRequired};var xe=oe;const ue=(t,n)=>t.reduce((o,s)=>(o[s.id]=E()(n,s.id,!1),o),{}),Re=(t,n)=>t.reduce((o,s)=>{const[a,l]=s,c=ue(l,n);return o[a]=c,o},{});var Te=(t,n,o)=>t.reduce((s,a)=>{const l=E()(n,[...a.pathToConditionsObject,"conditions"],{}),c=Re(o,l);return s[a.pathToConditionsObject.join("..")]=c,s},{});const me=({actions:t,headerBreadCrumbs:n,isFormDisabled:o,onClosed:s,onToggle:a})=>{const{formatMessage:l}=(0,F.useIntl)(),{availableConditions:c,modifiedData:d,onChangeConditions:p}=(0,ee.$_)(),m=(0,e.useMemo)(()=>Object.entries(B()(c,"category")),[c]),g=t.filter(({isDisplayed:f,hasSomeActionsSelected:T,hasAllActionsSelected:R})=>f&&(T||R)),h=(0,e.useMemo)(()=>Te(g,d,m),[g,d,m]),[v,O]=(0,e.useState)(h),x=(f,T)=>{O((0,L.default)(R=>{R[f]||(R[f]={}),R[f].default||(R[f].default={}),R[f].default=T}))},C=()=>{const f=Object.entries(v).reduce((T,R)=>{const[S,V]=R,M=Object.values(V).reduce((j,k)=>({...j,...k}),{});return T[S]=M,T},{});p(f),a()};return e.createElement(i.ModalLayout,{labelledBy:"condition-modal-breadcrumbs",onClose:s},e.createElement(i.ModalHeader,null,e.createElement(i.Breadcrumbs,{id:"condition-modal-breadcrumbs",label:n.join(", ")},n.map(f=>e.createElement(i.Crumb,{key:f},N()(l({id:f,defaultMessage:f})))))),e.createElement(i.ModalBody,null,g.length===0&&e.createElement(i.Typography,null,l({id:"Settings.permissions.conditions.no-actions",defaultMessage:"You first need to select actions (create, read, update, ...) before defining conditions on them."})),e.createElement("ul",null,g.map(({actionId:f,label:T,pathToConditionsObject:R},S)=>{const V=R.join("..");return e.createElement(xe,{key:f,arrayOfOptionsGroupedByCategory:m,label:T,isFormDisabled:o,isGrey:S%2===0,name:V,onChange:x,value:E()(v,V,{})})}))),e.createElement(i.ModalFooter,{startActions:e.createElement(i.Button,{variant:"tertiary",onClick:a},l({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(i.Button,{onClick:C},l({id:"Settings.permissions.conditions.apply",defaultMessage:"Apply"}))}))};me.propTypes={actions:r().arrayOf(r().shape({actionId:r().string.isRequired,checkboxName:r().string,hasSomeActionsSelected:r().bool.isRequired,hasAllActionsSelected:r().bool,isDisplayed:r().bool.isRequired,label:r().string})).isRequired,headerBreadCrumbs:r().arrayOf(r().string).isRequired,isFormDisabled:r().bool.isRequired,onClosed:r().func.isRequired,onToggle:r().func.isRequired};var be=me;const ne=`${120/16}rem`,se=`${200/16}rem`,$=`${53/16}rem`;var Y=b.default.div`
25
+ width: ${ne};
26
+ `,ke=(0,b.default)(i.Flex)`
27
+ padding-right: ${({theme:t})=>t.spaces[2]};
28
+ overflow: hidden;
29
+ flex: 1;
30
+ ${({isCollapsable:t})=>t&&"cursor: pointer;"}
31
+ `;const Fe=({children:t,isCollapsable:n,isActive:o,isFormDisabled:s,label:a,onChange:l,onClick:c,checkboxName:d,someChecked:p,value:m})=>{const{formatMessage:g}=(0,F.useIntl)();return e.createElement(i.Flex,{alignItems:"center",paddingLeft:6,style:{width:se,flexShrink:0}},e.createElement(i.Box,{paddingRight:2},e.createElement(i.BaseCheckbox,{name:d,"aria-label":g({id:"Settings.permissions.select-all-by-permission",defaultMessage:"Select all {label} permissions"},{label:a}),disabled:s,onValueChange:h=>l({target:{name:d,value:h}}),indeterminate:p,value:m})),e.createElement(ke,{title:a,alignItems:"center",isCollapsable:n,...n&&{onClick:c,"aria-expanded":o,onKeyDown:({key:h})=>(h==="Enter"||h===" ")&&c(),tabIndex:0,role:"button"}},e.createElement(i.Typography,{fontWeight:o?"bold":"",textColor:o?"primary600":"neutral800",ellipsis:!0},N()(a)),t))};Fe.defaultProps={children:null,checkboxName:"",onChange(){},value:!1,someChecked:!1,isCollapsable:!1},Fe.propTypes={checkboxName:r().string,children:r().node,label:r().string.isRequired,isCollapsable:r().bool,isFormDisabled:r().bool.isRequired,onChange:r().func,onClick:r().func.isRequired,someChecked:r().bool,value:r().bool,isActive:r().bool.isRequired};var Ke=(0,e.memo)(Fe),Rt=u(72091),Tt=u.n(Rt),St=u(85973),ce=u.n(St);const Ue=t=>ce()(t)?Tt()(Object.values(t).map(n=>ce()(n)?Ue(n):n)):[];var Ee=Ue,Le=t=>t?Object.keys(t).reduce((n,o)=>(o!=="conditions"&&(n[o]=t[o]),n),{}):null,ge=t=>{const n=Le(t),o=Ee(n);if(!o.length)return{hasAllActionsSelected:!1,hasSomeActionsSelected:!1};const s=o.every(l=>l),a=o.some(l=>l)&&!s;return{hasAllActionsSelected:s,hasSomeActionsSelected:a}},At=(t,n,o)=>t.map(({actionId:s,isDisplayed:a,applyToProperties:l,label:c})=>{if(!a)return{actionId:s,hasSomeActionsSelected:!1,isDisplayed:a};const d=[...o.split(".."),s],p=G()(l)?[...d,"properties","enabled"]:d,m=p.join(".."),g=E()(n,[...d,"conditions"],null),h=Ee(g).some(C=>C);if(G()(l)){const C=E()(n,p,!1);return{actionId:s,checkboxName:m,hasAllActionsSelected:C,hasConditions:h,hasSomeActionsSelected:C,isDisplayed:a,isParentCheckbox:!1,label:c,pathToConditionsObject:d}}const v=E()(n,p,null),{hasAllActionsSelected:O,hasSomeActionsSelected:x}=ge(v);return{actionId:s,checkboxName:m,hasAllActionsSelected:O,hasConditions:h,hasSomeActionsSelected:x,isDisplayed:a,isParentCheckbox:!0,label:c,pathToConditionsObject:d}}),Se=(0,b.default)(_.CarretDown)`
32
+ display: none;
33
+ width: ${10/16}rem;
34
+ transform: rotate(${({$isActive:t})=>t?"180":"0"}deg);
35
+ margin-left: ${({theme:t})=>t.spaces[2]};
36
+ `,Ae=t=>`
37
+ ${i.Typography} {
38
+ color: ${t.colors.primary600};
39
+ font-weight: ${t.fontWeights.bold}
40
+ }
41
+ ${Se} {
42
+ display: block;
43
+ path {
44
+ fill: ${t.colors.primary600}
45
+ };
46
+ }
47
+ `;const Be=(t,n)=>`
48
+ ${Ze} {
49
+ background-color: ${t.colors.primary100};
50
+ color: ${t.colors.primary600};
51
+ border-radius: ${n?"2px 2px 0 0":"2px"};
52
+ }
53
+ ${Ye} {
54
+ display: flex;
55
+ }
56
+ ${de} {
57
+ display: block;
58
+ }
59
+ &:hover {
60
+ ${Ae(t)}
61
+ }
62
+
63
+ &:focus-within {
64
+ ${({theme:o,isActive:s})=>Be(o,s)}
65
+ }
66
+
67
+ `,Ze=b.default.div`
68
+ flex: 1;
69
+ display: flex;
70
+ align-items: center;
71
+ height: ${$};
72
+ background-color: ${({isGrey:t,theme:n})=>t?n.colors.neutral100:n.colors.neutral0};
73
+ border: 1px solid transparent;
74
+ `,Pt=b.default.div`
75
+ display: inline-flex;
76
+ min-width: 100%;
77
+
78
+ ${de} {
79
+ display: none;
80
+ }
81
+ ${({isActive:t,theme:n})=>t&&Be(n,t)}
82
+ &:hover {
83
+ ${({theme:t,isActive:n})=>Be(t,n)}
84
+ }
85
+ `,Xe=(0,b.default)(i.Flex)`
86
+ width: ${ne};
87
+ position: relative;
88
+ `,Ye=(0,b.default)(i.Box)`
89
+ display: none;
90
+ svg {
91
+ width: 11px;
92
+ }
93
+ * {
94
+ fill: ${({theme:t})=>t.colors.primary600};
95
+ }
96
+ `,ze=b.default.span`
97
+ position: absolute;
98
+ top: -6px;
99
+ left: 37px;
100
+ width: 6px;
101
+ height: 6px;
102
+ border-radius: 20px;
103
+ background: ${({theme:t})=>t.colors.primary600};
104
+ `,$t=(0,b.default)(i.Box)`
105
+ position: absolute;
106
+ right: 9px;
107
+ transform: translateY(10px);
108
+ `,Je=({availableActions:t,isActive:n,isGrey:o,isFormDisabled:s,label:a,onClickToggle:l,pathToData:c})=>{const[d,p]=(0,e.useState)(!1),{formatMessage:m}=(0,F.useIntl)(),{modifiedData:g,onChangeParentCheckbox:h,onChangeSimpleCheckbox:v}=(0,ee.$_)(),O=()=>{p(M=>!M)},x=()=>{p(!1)},C=E()(g,c.split(".."),{}),f=(0,e.useMemo)(()=>Object.keys(C).reduce((M,j)=>(M[j]=$e()(C[j],"conditions"),M),{}),[C]),{hasAllActionsSelected:T,hasSomeActionsSelected:R}=ge(f),S=(0,e.useMemo)(()=>At(t,g,c),[t,g,c]),V=S.some(({hasConditions:M})=>M);return e.createElement(Pt,{isActive:n},e.createElement(Ze,{isGrey:o},e.createElement(Ke,{isCollapsable:!0,isFormDisabled:s,label:a,checkboxName:c,onChange:h,onClick:l,someChecked:R,value:T,isActive:n},e.createElement(Ye,{paddingLeft:2},n?e.createElement(_.ChevronUp,null):e.createElement(_.ChevronDown,null))),e.createElement(i.Flex,{style:{flex:1}},S.map(({actionId:M,hasConditions:j,hasAllActionsSelected:k,hasSomeActionsSelected:J,isDisplayed:ve,isParentCheckbox:H,checkboxName:ae,label:Pe})=>ve?H?e.createElement(Xe,{key:M,justifyContent:"center",alignItems:"center"},j&&e.createElement(ze,null),e.createElement(i.BaseCheckbox,{disabled:s,name:ae,"aria-label":m({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${Pe} ${a}`}),onValueChange:fe=>{h({target:{name:ae,value:fe}})},indeterminate:J,value:k})):e.createElement(Xe,{key:M,justifyContent:"center",alignItems:"center"},j&&e.createElement(ze,null),e.createElement(i.BaseCheckbox,{disabled:s,indeterminate:j,name:ae,onValueChange:fe=>{v({target:{name:ae,value:fe}})},value:k})):e.createElement(Y,{key:M}))),d&&e.createElement(be,{headerBreadCrumbs:[a,"Settings.permissions.conditions.conditions"],actions:S,isFormDisabled:s,onClosed:x,onToggle:O})),e.createElement($t,null,e.createElement(de,{onClick:O,hasConditions:V})))};Je.propTypes={availableActions:r().array.isRequired,isActive:r().bool.isRequired,isGrey:r().bool.isRequired,isFormDisabled:r().bool.isRequired,label:r().string.isRequired,onClickToggle:r().func.isRequired,pathToData:r().string.isRequired};var Ot=Je,kt=(t,n)=>t.map(o=>{const s=Array.isArray(o.applyToProperties)&&o.applyToProperties.indexOf(n)!==-1&&o.isDisplayed;return{label:o.label,actionId:o.actionId,isActionRelatedToCurrentProperty:s}});const Qe=(0,b.default)(i.Flex)`
109
+ width: ${ne};
110
+ flex-shrink: 0;
111
+ `,Mt=(0,b.default)(i.Flex)`
112
+ width: ${se};
113
+ height: ${$};
114
+ flex-shrink: 0;
115
+ `,_e=({headers:t,label:n})=>{const{formatMessage:o}=(0,F.useIntl)(),s=o({id:"Settings.roles.form.permission.property-label",defaultMessage:"{label} permissions"},{label:n});return e.createElement(i.Flex,null,e.createElement(Mt,{alignItems:"center",paddingLeft:6},e.createElement(i.Typography,{variant:"sigma",textColor:"neutral500"},s)),t.map(a=>a.isActionRelatedToCurrentProperty?e.createElement(Qe,{justifyContent:"center",key:a.label},e.createElement(i.Typography,{variant:"sigma",textColor:"neutral500"},o({id:`Settings.roles.form.permissions.${a.label.toLowerCase()}`,defaultMessage:a.label}))):e.createElement(Qe,{key:a.label})))};_e.propTypes={headers:r().arrayOf(r().shape({label:r().string.isRequired,isActionRelatedToCurrentProperty:r().bool.isRequired})).isRequired,label:r().string.isRequired};var Ft=_e;const Lt=b.default.span`
116
+ color: ${({theme:t})=>t.colors.danger700};
117
+ padding-left: ${({theme:t})=>t.spaces[1]}px;
118
+ `;var et=()=>e.createElement(Lt,null,"*"),Bt=(t,n)=>t.map(o=>{const s=Array.isArray(o.subjects)&&o.subjects.indexOf(n)!==-1;return{...o,isDisplayed:s}});const It=(0,b.default)(i.Box)`
119
+ transform: translate(-4px, -12px);
120
+
121
+ &:before {
122
+ content: '';
123
+ width: ${4/16}rem;
124
+ height: ${12/16}rem;
125
+ background: ${({theme:t})=>t.colors.primary200};
126
+ display: block;
127
+ }
128
+ `,Dt=b.default.svg`
129
+ position: relative;
130
+ flex-shrink: 0;
131
+ transform: translate(-0.5px, -1px);
132
+
133
+ * {
134
+ fill: ${({theme:t,color:n})=>t.colors[n]};
135
+ }
136
+ `,Ie=t=>e.createElement(It,null,e.createElement(Dt,{width:"20",height:"23",viewBox:"0 0 20 23",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.02477 14.7513C8.65865 17.0594 11.6046 18.6059 17.5596 18.8856C18.6836 18.9384 19.5976 19.8435 19.5976 20.9688V20.9688C19.5976 22.0941 18.6841 23.0125 17.5599 22.9643C10.9409 22.6805 6.454 20.9387 3.75496 17.1258C0.937988 13.1464 0.486328 7.39309 0.486328 0.593262H4.50974C4.50974 7.54693 5.06394 11.9813 7.02477 14.7513Z",fill:"#D9D8FF"})));Ie.defaultProps={fill:"primary200"},Ie.propTypes={fill:r().string};var jt=(0,e.memo)(Ie);const tt=(0,b.default)(i.Flex)`
137
+ width: ${ne};
138
+ position: relative;
139
+ `,Nt=(0,b.default)(i.Flex)`
140
+ height: ${$};
141
+ `,qt=(0,b.default)(i.Box)`
142
+ padding-left: ${31/16}rem;
143
+ `,wt=(0,b.default)(i.Box)`
144
+ border-left: ${({isVisible:t,theme:n})=>t?`4px solid ${n.colors.primary200}`:"4px solid transparent"};
145
+ `,Vt=(0,b.default)(i.Flex)`
146
+ padding-left: ${({theme:t})=>t.spaces[4]};
147
+ width: ${({level:t})=>145-t*36}px;
148
+
149
+ ${({isCollapsable:t,theme:n})=>t&&`
150
+ ${Se} {
151
+ display: block;
152
+ color: ${n.colors.neutral100};
153
+ }
154
+ &:hover {
155
+ ${Ae(n)}
156
+ }
157
+ `}
158
+ ${({isActive:t,theme:n})=>t&&Ae(n)};
159
+ `,Gt=b.default.div`
160
+ padding-top: ${({theme:t})=>t.spaces[2]};
161
+ margin-top: ${({theme:t})=>t.spaces[2]};
162
+ width: ${4/16}rem;
163
+ background-color: ${({theme:t})=>t.colors.primary200};
164
+ border-top-left-radius: 2px;
165
+ border-top-right-radius: 2px;
166
+ `,De=({childrenForm:t,isFormDisabled:n,recursiveLevel:o,pathToDataFromActionRow:s,propertyActions:a,parentName:l,propertyName:c})=>{const{formatMessage:d}=(0,F.useIntl)(),{modifiedData:p,onChangeParentCheckbox:m,onChangeSimpleCheckbox:g}=(0,ee.$_)(),[h,v]=(0,e.useState)(null),O=C=>{v(f=>f===C?null:C)},x=(0,e.useMemo)(()=>h?t.find(({value:C})=>C===h):null,[h,t]);return e.createElement(qt,null,e.createElement(Gt,null),t.map(({label:C,value:f,required:T,children:R},S)=>{const V=S+1<t.length,M=Array.isArray(R),j=h===f;return e.createElement(wt,{key:f,isVisible:V},e.createElement(Nt,null,e.createElement(jt,{color:"primary200"}),e.createElement(i.Flex,{style:{flex:1}},e.createElement(Vt,{level:o,isActive:j,isCollapsable:M},e.createElement(ke,{alignItems:"center",isCollapsable:M,...M&&{onClick:()=>O(f),"aria-expanded":j,onKeyDown:({key:k})=>(k==="Enter"||k===" ")&&O(f),tabIndex:0,role:"button"},title:C},e.createElement(i.Typography,{ellipsis:!0},N()(C)),T&&e.createElement(et,null),e.createElement(Se,{$isActive:j}))),e.createElement(i.Flex,{style:{flex:1}},a.map(({actionId:k,label:J,isActionRelatedToCurrentProperty:ve})=>{if(!ve)return e.createElement(Y,{key:k});const H=[...s.split(".."),k,"properties",c,...l.split(".."),f],ae=E()(p,H,!1);if(!R)return e.createElement(tt,{key:J,justifyContent:"center",alignItems:"center"},e.createElement(i.BaseCheckbox,{disabled:n,name:H.join(".."),"aria-label":d({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${l} ${C} ${J}`}),onValueChange:ye=>{g({target:{name:H.join(".."),value:ye}})},value:ae}));const{hasAllActionsSelected:Pe,hasSomeActionsSelected:fe}=ge(ae);return e.createElement(tt,{key:J,justifyContent:"center",alignItems:"center"},e.createElement(i.BaseCheckbox,{key:J,disabled:n,name:H.join(".."),"aria-label":d({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${l} ${C} ${J}`}),onValueChange:ye=>{m({target:{name:H.join(".."),value:ye}})},value:Pe,indeterminate:fe}))})))),x&&j&&e.createElement(i.Box,{paddingBottom:2},e.createElement(De,{isFormDisabled:n,parentName:`${l}..${f}`,pathToDataFromActionRow:s,propertyActions:a,propertyName:c,recursiveLevel:o+1,childrenForm:x.children})))}))};De.propTypes={childrenForm:r().array.isRequired,isFormDisabled:r().bool.isRequired,parentName:r().string.isRequired,pathToDataFromActionRow:r().string.isRequired,propertyActions:r().array.isRequired,propertyName:r().string.isRequired,recursiveLevel:r().number.isRequired};var Ht=(0,e.memo)(De);const Wt=t=>t.reduce((o,s)=>(s.isActionRelatedToCurrentProperty&&o.push(s.actionId),o),[]);var Kt=(t,n,o,s,a)=>{const c=Wt(t).reduce((d,p)=>{const m=[...o.split(".."),p,"properties",s,a],g=E()(n,m,!1);return d[p]=g,d},{});return ge(c)};const nt=(0,b.default)(i.Flex)`
167
+ width: ${ne};
168
+ position: relative;
169
+ `,Ut=(0,b.default)(i.Flex)`
170
+ height: ${$};
171
+ flex: 1;
172
+
173
+ ${({isCollapsable:t,theme:n})=>t&&`
174
+ ${Se} {
175
+ display: block;
176
+ color: ${n.colors.neutral100};
177
+ }
178
+ &:hover {
179
+ ${Ae(n)}
180
+ }
181
+ `}
182
+ ${({isActive:t,theme:n})=>t&&Ae(n)};
183
+ `,je=({childrenForm:t,label:n,isFormDisabled:o,name:s,required:a,pathToData:l,propertyActions:c,propertyName:d,isOdd:p})=>{const{formatMessage:m}=(0,F.useIntl)(),[g,h]=(0,e.useState)(null),{modifiedData:v,onChangeCollectionTypeLeftActionRowCheckbox:O,onChangeParentCheckbox:x,onChangeSimpleCheckbox:C}=(0,ee.$_)(),f=g===s,T=(0,e.useMemo)(()=>Array.isArray(t)?t:[],[t]),R=T.length>0,S=(0,e.useCallback)(()=>{R&&h(k=>k===s?null:s)},[R,s]),V=({target:{value:k}})=>{O(l,d,s,k)},{hasAllActionsSelected:M,hasSomeActionsSelected:j}=(0,e.useMemo)(()=>Kt(c,v,l,d,s),[c,v,l,d,s]);return e.createElement(e.Fragment,null,e.createElement(Ut,{alignItems:"center",isCollapsable:R,isActive:f,background:p?"neutral100":"neutral0"},e.createElement(i.Flex,null,e.createElement(Ke,{onChange:V,onClick:S,isCollapsable:R,isFormDisabled:o,label:n,someChecked:j,value:M,isActive:f},a&&e.createElement(et,null),e.createElement(Se,{$isActive:f})),e.createElement(i.Flex,null,c.map(({label:k,isActionRelatedToCurrentProperty:J,actionId:ve})=>{if(!J)return e.createElement(Y,{key:k});const H=[...l.split(".."),ve,"properties",d,s];if(!R){const ye=E()(v,H,!1);return e.createElement(nt,{key:ve,justifyContent:"center",alignItems:"center"},e.createElement(i.BaseCheckbox,{disabled:o,name:H.join(".."),"aria-label":m({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${s} ${k}`}),onValueChange:Bn=>{C({target:{name:H.join(".."),value:Bn}})},value:ye}))}const ae=E()(v,H,{}),{hasAllActionsSelected:Pe,hasSomeActionsSelected:fe}=ge(ae);return e.createElement(nt,{key:k,justifyContent:"center",alignItems:"center"},e.createElement(i.BaseCheckbox,{disabled:o,name:H.join(".."),onValueChange:ye=>{x({target:{name:H.join(".."),value:ye}})},"aria-label":m({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${s} ${k}`}),value:Pe,indeterminate:fe}))})))),f&&e.createElement(Ht,{childrenForm:T,isFormDisabled:o,parentName:s,pathToDataFromActionRow:l,propertyName:d,propertyActions:c,recursiveLevel:0}))};je.defaultProps={childrenForm:[],required:!1},je.propTypes={childrenForm:r().array,label:r().string.isRequired,isFormDisabled:r().bool.isRequired,name:r().string.isRequired,pathToData:r().string.isRequired,propertyActions:r().array.isRequired,propertyName:r().string.isRequired,required:r().bool,isOdd:r().bool.isRequired};var Zt=(0,e.memo)(je);const Xt=b.default.div`
184
+ display: inline-flex;
185
+ flex-direction: column;
186
+ min-width: 0;
187
+ `,st=({availableActions:t,childrenForm:n,isFormDisabled:o,label:s,pathToData:a,propertyName:l})=>{const c=(0,e.useMemo)(()=>kt(t,l),[t,l]);return e.createElement(Xt,null,e.createElement(Ft,{label:s,headers:c}),e.createElement(i.Box,null,n.map(({children:d,label:p,value:m,required:g},h)=>e.createElement(Zt,{childrenForm:d,key:m,label:p,isFormDisabled:o,name:m,required:g,propertyActions:c,pathToData:a,propertyName:l,isOdd:h%2===0}))))};st.propTypes={childrenForm:r().array.isRequired,availableActions:r().array.isRequired,isFormDisabled:r().bool.isRequired,label:r().string.isRequired,pathToData:r().string.isRequired,propertyName:r().string.isRequired};var Yt=st;const zt=b.default.div`
188
+ flex-direction: column;
189
+ display: inline-flex;
190
+ min-width: 100%;
191
+ ${({theme:t,isActive:n})=>n&&`border: 1px solid ${t.colors.primary600};`}
192
+ `,ot=({allActions:t,contentTypeName:n,label:o,index:s,isActive:a,isFormDisabled:l,onClickToggleCollapse:c,pathToData:d,properties:p})=>{const m=(0,e.useCallback)(()=>{c(n)},[n,c]),g=(0,e.useMemo)(()=>Bt(t,n),[t,n]);return e.createElement(zt,{isActive:a},e.createElement(Ot,{availableActions:g,isActive:a,isGrey:s%2===0,isFormDisabled:l,label:o,onClickToggle:m,pathToData:d}),a&&p.map(({label:h,value:v,children:O})=>e.createElement(Yt,{availableActions:g,childrenForm:O,isFormDisabled:l,label:h,pathToData:d,propertyName:v,key:v})))};ot.propTypes={allActions:r().array.isRequired,contentTypeName:r().string.isRequired,index:r().number.isRequired,isActive:r().bool.isRequired,isFormDisabled:r().bool.isRequired,label:r().string.isRequired,onClickToggleCollapse:r().func.isRequired,pathToData:r().string.isRequired,properties:r().array.isRequired};var Jt=ot;const Ne=({actions:t,isFormDisabled:n,pathToData:o,subjects:s})=>{const[a,l]=(0,e.useState)(null),c=d=>{l(a===d?null:d)};return s.map(({uid:d,label:p,properties:m},g)=>e.createElement(Jt,{allActions:t,key:d,contentTypeName:d,label:p,isActive:a===d,isFormDisabled:n,index:g,onClickToggleCollapse:c,pathToData:`${o}..${d}`,properties:m}))};Ne.defaultProps={actions:[],subjects:[]},Ne.propTypes={actions:r().array.isRequired,isFormDisabled:r().bool.isRequired,pathToData:r().string.isRequired,subjects:r().arrayOf(r().shape({uid:r().string.isRequired,label:r().string.isRequired,properties:r().array.isRequired}))};var Qt=(0,e.memo)(Ne),_t=t=>t.filter(({subjects:n})=>n&&n.length);const en=t=>t.map(({actionId:n})=>n),tn=(t,n)=>t.reduce((o,s)=>(Object.keys(n).forEach(a=>{const l=E()(n,[a,s],{}),c={[a]:Le(l)};o[s]?o[s]={...o[s],...c}:o[s]=c}),o),{});var nn=(t,n)=>{const o=en(t),s=tn(o,n);return Object.keys(s).reduce((l,c)=>(l[c]=ge(s[c]),l),{})};const sn=(0,b.default)(i.Flex)`
193
+ width: ${ne};
194
+ flex-shrink: 0;
195
+ `,qe=({actions:t,isFormDisabled:n,kind:o})=>{const{formatMessage:s}=(0,F.useIntl)(),{modifiedData:a,onChangeCollectionTypeGlobalActionCheckbox:l}=(0,ee.$_)(),c=(0,e.useMemo)(()=>_t(t),[t]),d=(0,e.useMemo)(()=>nn(c,a[o]),[a,c,o]);return e.createElement(i.Box,{paddingBottom:4,paddingTop:6,style:{paddingLeft:se}},e.createElement(i.Flex,{gap:0},c.map(({label:p,actionId:m})=>e.createElement(sn,{direction:"column",alignItems:"center",justifyContent:"center",key:m,gap:3},e.createElement(i.Typography,{variant:"sigma",textColor:"neutral500"},s({id:`Settings.roles.form.permissions.${p.toLowerCase()}`,defaultMessage:p})),e.createElement(i.BaseCheckbox,{disabled:n,onValueChange:g=>{l(o,m,g)},name:m,"aria-label":s({id:"Settings.permissions.select-all-by-permission",defaultMessage:"Select all {label} permissions"},{label:s({id:`Settings.roles.form.permissions.${p.toLowerCase()}`,defaultMessage:p})}),value:E()(d,[m,"hasAllActionsSelected"],!1),indeterminate:E()(d,[m,"hasSomeActionsSelected"],!1)})))))};qe.defaultProps={actions:[]},qe.propTypes={actions:r().arrayOf(r().shape({label:r().string.isRequired,actionId:r().string.isRequired,subjects:r().array.isRequired})),isFormDisabled:r().bool.isRequired,kind:r().string.isRequired};var on=(0,e.memo)(qe);const rn=(0,b.default)(i.Box)`
196
+ overflow-x: auto;
197
+ `,rt=({isFormDisabled:t,kind:n,layout:{actions:o,subjects:s}})=>{const a=Q()([...s],"label");return e.createElement(rn,{background:"neutral0"},e.createElement(on,{actions:o,kind:n,isFormDisabled:t}),e.createElement(Qt,{actions:o,isFormDisabled:t,pathToData:n,subjects:a}))};rt.propTypes={isFormDisabled:r().bool.isRequired,kind:r().string.isRequired,layout:r().shape({actions:r().array,subjects:r().arrayOf(r().shape({uid:r().string.isRequired,label:r().string.isRequired,properties:r().array.isRequired}))}).isRequired};var at=(0,e.memo)(rt),an=u(66694);const it=({children:t,value:n})=>e.createElement(an.$l.Provider,{value:n},t);it.propTypes={children:r().node.isRequired,value:r().exact({availableConditions:r().array.isRequired,modifiedData:r().object.isRequired,onChangeCollectionTypeLeftActionRowCheckbox:r().func.isRequired,onChangeConditions:r().func.isRequired,onChangeSimpleCheckbox:r().func.isRequired,onChangeParentCheckbox:r().func.isRequired,onChangeCollectionTypeGlobalActionCheckbox:r().func.isRequired}).isRequired};var ln=it,cn=(t,n,o)=>t.map(s=>{const a=[...o,s.action,"properties","enabled"],l=E()(n,a,!1),c=E()(n,[...o,s.action,"conditions"],{}),d=Ee(c).some(p=>p);return{...s,isDisplayed:l,checkboxName:a.join(".."),hasSomeActionsSelected:l,value:l,hasConditions:d,label:s.displayName,actionId:s.action,pathToConditionsObject:[...o,s.action]}}),dn=t=>{const n=Object.entries(t).reduce((s,a)=>{const[l,{conditions:c}]=a;return s[l]=c,s},{});return Ee(n).some(s=>s)};const un=b.default.div`
198
+ flex: 1;
199
+ align-self: center;
200
+ border-top: 1px solid ${({theme:t})=>t.colors.neutral150};
201
+ `,mn=b.default.div`
202
+ position: relative;
203
+ word-break: keep-all;
204
+ ${({hasConditions:t,disabled:n,theme:o})=>t&&`
205
+ &:before {
206
+ content: '';
207
+ position: absolute;
208
+ top: ${-4/16}rem;
209
+ left: ${-8/16}rem;
210
+ width: ${6/16}rem;
211
+ height: ${6/16}rem;
212
+ border-radius: ${20/16}rem;
213
+ background: ${n?o.colors.neutral100:o.colors.primary600};
214
+ }
215
+ `}
216
+ `,lt=({categoryName:t,isFormDisabled:n,subCategoryName:o,actions:s,pathToData:a})=>{const[l,c]=(0,e.useState)(!1),{modifiedData:d,onChangeParentCheckbox:p,onChangeSimpleCheckbox:m}=(0,ee.$_)(),{formatMessage:g}=(0,F.useIntl)(),h=E()(d,a,{}),v=(0,e.useMemo)(()=>Object.keys(h).reduce((S,V)=>(S[V]=Le(h[V]),S),{}),[h]),{hasAllActionsSelected:O,hasSomeActionsSelected:x}=ge(v),C=()=>{c(S=>!S)},f=()=>{c(!1)},T=cn(s,d,a),R=dn(E()(d,[...a],{}));return e.createElement(e.Fragment,null,e.createElement(i.Box,null,e.createElement(i.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(i.Box,{paddingRight:4},e.createElement(i.Typography,{variant:"sigma",textColor:"neutral600"},o)),e.createElement(un,null),e.createElement(i.Box,{paddingLeft:4},e.createElement(i.Checkbox,{name:a.join(".."),disabled:n,onValueChange:S=>{p({target:{name:a.join(".."),value:S}})},indeterminate:x,value:O},g({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(i.Flex,{paddingTop:6,paddingBottom:6},e.createElement(i.Grid,{gap:2,style:{flex:1}},T.map(({checkboxName:S,value:V,action:M,displayName:j,hasConditions:k})=>e.createElement(i.GridItem,{col:3,key:M},e.createElement(mn,{disabled:n,hasConditions:k},e.createElement(i.Checkbox,{name:S,disabled:n,onValueChange:J=>{m({target:{name:S,value:J}})},value:V},j))))),e.createElement(de,{hasConditions:R,onClick:C}))),l&&e.createElement(be,{headerBreadCrumbs:[t,o],actions:T,isFormDisabled:n,onClosed:f,onToggle:C}))};lt.propTypes={actions:r().array.isRequired,categoryName:r().string.isRequired,isFormDisabled:r().bool.isRequired,subCategoryName:r().string.isRequired,pathToData:r().array.isRequired};var pn=lt;const we=({childrenForm:t,kind:n,name:o,isOpen:s,isFormDisabled:a,isWhite:l,onOpenCategory:c,pathToData:d})=>{const{formatMessage:p}=(0,F.useIntl)(),m=()=>{c(o)},g=(0,e.useMemo)(()=>o.split("::").pop(),[o]);return e.createElement(i.Accordion,{expanded:s,onToggle:m,id:`accordion-${o}`,variant:l?"primary":"secondary"},e.createElement(i.AccordionToggle,{title:N()(g),description:`${p({id:"Settings.permissions.category"},{category:g})} ${n==="plugins"?"plugin":n}`}),e.createElement(i.AccordionContent,null,e.createElement(i.Box,{padding:6},t.map(({actions:h,subCategoryName:v,subCategoryId:O})=>e.createElement(pn,{key:v,actions:h,categoryName:g,isFormDisabled:a,subCategoryName:v,pathToData:[...d,O]})))))};we.defaultProps={},we.propTypes={childrenForm:r().array.isRequired,isOpen:r().bool.isRequired,isFormDisabled:r().bool.isRequired,isWhite:r().bool.isRequired,kind:r().string.isRequired,name:r().string.isRequired,onOpenCategory:r().func.isRequired,pathToData:r().array.isRequired};var gn=we;const ct=({isFormDisabled:t,kind:n,layout:o})=>{const[s,a]=(0,e.useState)(null),l=c=>{a(c===s?null:c)};return e.createElement(i.Box,{padding:6,background:"neutral0"},o.map(({category:c,categoryId:d,childrenForm:p},m)=>e.createElement(gn,{key:c,childrenForm:p,kind:n,isFormDisabled:t,isOpen:s===c,isWhite:m%2===1,name:c,onOpenCategory:l,pathToData:[n,d]})))};ct.propTypes={isFormDisabled:r().bool.isRequired,kind:r().string.isRequired,layout:r().arrayOf(r().shape({category:r().string.isRequired,categoryId:r().string.isRequired,childrenForm:r().arrayOf(r().shape({actions:r().array.isRequired})).isRequired}).isRequired).isRequired};var dt=ct,fn=u(86349),yn=u.n(fn),hn=u(3040),z=u.n(hn),ut=(t,n,o)=>t.find(s=>s.action===n&&s.subject===o);const mt=(t,n=[])=>t.reduce((o,s)=>(o[s.id]=n.indexOf(s.id)!==-1,o),{}),pt=({children:t},n,o="")=>t.reduce((s,a)=>{if(a.children)return{...s,[a.value]:pt(a,n,`${o}${a.value}.`)};const l=n.indexOf(`${o}${a.value}`)!==-1;return s[a.value]=l,s},{}),Cn=(t,n,o)=>t.reduce((s,a)=>{const l=n.properties.find(({value:c})=>c===a);if(l){const c=E()(o,["properties",l.value],[]),d=pt(l,c);s.properties[a]=d}return s},{properties:{}}),bn=(t,n)=>n.reduce((o,s)=>{const a=t.find(({uid:l})=>l===s)||null;return a&&(o[s]=a),o},{});var gt=({subjects:t},n,o,s=[])=>n.reduce((a,l)=>{const c=l.subjects,d=bn(t,c);if(G()(d))return a;const p=Object.keys(d).reduce((m,g)=>{const{actionId:h,applyToProperties:v}=l,C=d[g].properties.map(({value:S})=>S).every(S=>(v||[]).indexOf(S)===-1),f=ut(s,h,g),T=mt(o,E()(f,"conditions",[]));if(G()(v)||C)return z()(m,[g,h],{properties:{enabled:f!==void 0},conditions:T}),m;const R=Cn(v,d[g],f);return z()(m,[g,h],{...R,conditions:T}),m},{});return yn()(a,p)},{});const En=(t,n,o)=>t.reduce((s,a)=>{const l=ut(o,a.action,null);return s[a.action]={properties:{enabled:l!==void 0},conditions:mt(n,l?.conditions??[])},s},{}),vn=(t,n,o)=>t.reduce((s,a)=>(s[a.subCategoryId]=En(a.actions,n,o),s),{});var ft=(t,n,o=[])=>t.reduce((s,{categoryId:a,childrenForm:l})=>{const c=vn(l,n,o);return s[a]=c,s},{});const yt=t=>t.split(" ").join("-");var ht=(t,n)=>Object.entries(B()(t,n)).map(([o,s])=>({category:o,categoryId:yt(o),childrenForm:Object.entries(B()(s,"subCategory")).map(([a,l])=>({subCategoryName:a,subCategoryId:yt(a),actions:l}))})),xn=(t,n)=>{const{conditions:o,sections:{collectionTypes:s,singleTypes:a,plugins:l,settings:c}}=t,d={collectionTypes:s,singleTypes:a,plugins:ht(l,"plugin"),settings:ht(c,"category")},p={collectionTypes:gt(s,s.actions||[],o,n),singleTypes:gt(a,a.actions||[],o,n),plugins:ft(d.plugins,o,n),settings:ft(d.settings,o,n)};return{initialData:p,modifiedData:p,layouts:d}},Rn=u(99381),Ve=u.n(Rn);const Ct=t=>Object.keys(t).reduce((n,o)=>{const s=t[o];if(ce()(s)&&!D()(s,"conditions"))return{...n,[o]:Ct(s)};if(ce()(s)&&D()(s,"conditions")&&!Ee($e()(s,"conditions")).some(l=>l)){const l=Object.keys(s.conditions).reduce((c,d)=>(c[d]=!1,c),{});return{...n,[o]:{...s,conditions:l}}}return n[o]=s,n},{});var Ge=Ct;const bt=(t,n)=>Object.keys(t).reduce((o,s)=>{const a=t[s];return s==="conditions"?(o[s]=a,o):ce()(a)?{...o,[s]:bt(a,n)}:(o[s]=n,o)},{});var Me=bt;const Tn={initialData:{},modifiedData:{},layouts:{}};var Sn=(t,n)=>(0,L.default)(t,o=>{switch(n.type){case"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX":{const{collectionTypeKind:s,actionId:a,value:l}=n,c=["modifiedData",s];Object.keys(E()(t,c)).forEach(d=>{const p=E()(t,[...c,d,a],void 0);if(p){let m=Me(p,l);if(!l&&m.conditions){const g=Me(m.conditions,!1);m={...m,conditions:g}}z()(o,[...c,d,a],m)}});break}case"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX":{const{pathToCollectionType:s,propertyName:a,rowName:l,value:c}=n;let d=Ve()(t.modifiedData);const p=s.split(".."),m=E()(d,p,{});Object.keys(m).forEach(g=>{if(D()(m[g],`properties.${a}`)){const h=E()(m,[g,"properties",a,l]),v=[...p,g,"properties",a,l];if(!ce()(h))z()(d,v,c);else{const O=Me(h,c);z()(d,v,O)}}}),c||(d=Ge(d)),z()(o,"modifiedData",d);break}case"ON_CHANGE_CONDITIONS":{Object.entries(n.conditions).forEach(s=>{const[a,l]=s;z()(o,["modifiedData",...a.split(".."),"conditions"],l)});break}case"ON_CHANGE_SIMPLE_CHECKBOX":{let s=Ve()(t.modifiedData);z()(s,[...n.keys.split("..")],n.value),n.value||(s=Ge(s)),z()(o,"modifiedData",s);break}case"ON_CHANGE_TOGGLE_PARENT_CHECKBOX":{const{keys:s,value:a}=n,l=[...s.split("..")];let c=Ve()(t.modifiedData);const d=E()(c,l,{}),p=Me(d,a);z()(c,l,p),a||(c=Ge(c)),z()(o,["modifiedData"],c);break}case"RESET_FORM":{o.modifiedData=t.initialData;break}case"SET_FORM_AFTER_SUBMIT":{o.initialData=t.modifiedData;break}default:return o}});const He=t=>Object.entries(t).filter(([,n])=>n).map(([n])=>n),An=t=>{const[n,{conditions:o}]=t;return{action:n,subject:null,conditions:He(o),properties:{}}},Pn=t=>Object.values(t).reduce((n,o)=>{const s=Object.entries(o).reduce((a,l)=>{const[,{properties:{enabled:c}}]=l;if(!c)return a;const d=An(l);return a.push(d),a},[]);return[...n,...s]},[]);var Et=t=>Object.values(t).reduce((n,o)=>{const s=Pn(o);return[...n,...s]},[]);const vt=(t,n="")=>Object.entries(t).reduce((o,s)=>{const[a,l]=s;return ce()(l)?[...o,...vt(l,`${n}${a}.`)]:(l&&!ce()(l)&&o.push(`${n}${a}`),o)},[]),$n=(t,n,{conditions:o,properties:s})=>Object.entries(s).reduce((a,l)=>{const[c,d]=l;return a.properties[c]=vt(d),a},{action:t,subject:n,conditions:He(o),properties:{}}),On=(t,n,{conditions:o})=>({action:t,subject:n,properties:{},conditions:He(o)}),kn=(t,n)=>Object.entries(n).reduce((s,a)=>{const[l,c]=a;if(!Ee(c).some(m=>m))return s;if(!c?.properties?.enabled){const m=$n(l,t,c);return[...s,m]}if(!c.properties.enabled)return s;const p=On(l,t,c);return s.push(p),s},[]);var xt=t=>Object.entries(t).reduce((o,s)=>{const[a,l]=s,c=kn(a,l);return[...o,...c]},[]),Mn=t=>{const n=Et(t.plugins),o=Et(t.settings),s=xt(t.collectionTypes),a=xt(t.singleTypes);return[...n,...o,...s,...a]},Fn=[{labelId:"app.components.LeftMenuLinkContainer.collectionTypes",defaultMessage:"Collection Types",id:"collectionTypes"},{labelId:"app.components.LeftMenuLinkContainer.singleTypes",id:"singleTypes",defaultMessage:"Single Types"},{labelId:"app.components.LeftMenuLinkContainer.plugins",defaultMessage:"Plugins",id:"plugins"},{labelId:"app.components.LeftMenuLinkContainer.settings",defaultMessage:"Settings",id:"settings"}];const We=(0,e.forwardRef)(({layout:t,isFormDisabled:n,permissions:o},s)=>{const[{initialData:a,layouts:l,modifiedData:c},d]=(0,e.useReducer)(Sn,Tn,()=>xn(t,o)),{formatMessage:p}=(0,F.useIntl)();(0,e.useImperativeHandle)(s,()=>({getPermissions(){const x=(0,y.difference)(a.collectionTypes,c.collectionTypes),C=(0,y.difference)(a.singleTypes,c.singleTypes),f={...x,...C};let T;return G()(f)?T=!1:T=Object.values(f).some(R=>Object.values(R).some(S=>D()(S,"conditions"))),{permissionsToSend:Mn(c),didUpdateConditions:T}},resetForm(){d({type:"RESET_FORM"})},setFormAfterSubmit(){d({type:"SET_FORM_AFTER_SUBMIT"})}}));const m=(x,C,f,T)=>{d({type:"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",pathToCollectionType:x,propertyName:C,rowName:f,value:T})},g=(x,C,f)=>{d({type:"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",collectionTypeKind:x,actionId:C,value:f})},h=x=>{d({type:"ON_CHANGE_CONDITIONS",conditions:x})},v=(0,e.useCallback)(({target:{name:x,value:C}})=>{d({type:"ON_CHANGE_SIMPLE_CHECKBOX",keys:x,value:C})},[]),O=(0,e.useCallback)(({target:{name:x,value:C}})=>{d({type:"ON_CHANGE_TOGGLE_PARENT_CHECKBOX",keys:x,value:C})},[]);return e.createElement(ln,{value:{availableConditions:t.conditions,modifiedData:c,onChangeConditions:h,onChangeSimpleCheckbox:v,onChangeParentCheckbox:O,onChangeCollectionTypeLeftActionRowCheckbox:m,onChangeCollectionTypeGlobalActionCheckbox:g}},e.createElement(i.TabGroup,{id:"tabs",label:p({id:"Settings.permissions.users.tabs.label",defaultMessage:"Tabs Permissions"})},e.createElement(i.Tabs,null,Fn.map(x=>e.createElement(i.Tab,{key:x.id},p({id:x.labelId,defaultMessage:x.defaultMessage})))),e.createElement(i.TabPanels,{style:{position:"relative"}},e.createElement(i.TabPanel,null,e.createElement(at,{layout:l.collectionTypes,kind:"collectionTypes",isFormDisabled:n})),e.createElement(i.TabPanel,null,e.createElement(at,{layout:l.singleTypes,kind:"singleTypes",isFormDisabled:n})),e.createElement(i.TabPanel,null,e.createElement(dt,{layout:l.plugins,kind:"plugins",isFormDisabled:n})),e.createElement(i.TabPanel,null,e.createElement(dt,{layout:l.settings,kind:"settings",isFormDisabled:n})))))});We.defaultProps={permissions:[],layout:{conditions:[],sections:{collectionTypes:{},singleTypes:{actions:[]},settings:[],plugins:[]}}},We.propTypes={layout:r().object,isFormDisabled:r().bool.isRequired,permissions:r().array};var Ln=(0,e.memo)(We)},33778:function(U,W,u){"use strict";u.r(W),u.d(W,{default:function(){return L}});var e=u(32735),A=u(13478),r=u(5141),y=u(72041),i=u(39161),I=u(83281),D=u(57269),K=u(33795),G=u.n(K),F=u(5636),b=u(7247),he=u(60216),Q=u.n(he);const _=({disabled:Z,role:B,values:P,errors:N,onChange:X,onBlur:te})=>{const{formatMessage:w}=(0,F.useIntl)();return e.createElement(i.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(i.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(i.Flex,{justifyContent:"space-between"},e.createElement(i.Box,null,e.createElement(i.Box,null,e.createElement(i.Typography,{fontWeight:"bold"},B?B.name:w({id:"global.details",defaultMessage:"Details"}))),e.createElement(i.Box,null,e.createElement(i.Typography,{textColor:"neutral500",variant:"pi"},B?B.description:w({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(i.Button,{disabled:!0,variant:"secondary"},w({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:B.usersCount}))),e.createElement(i.Grid,{gap:4},e.createElement(i.GridItem,{col:6},e.createElement(i.TextInput,{disabled:Z,name:"name",error:N.name&&w({id:N.name}),label:w({id:"global.name",defaultMessage:"Name"}),onChange:X,onBlur:te,value:P.name||""})),e.createElement(i.GridItem,{col:6},e.createElement(i.Textarea,{disabled:Z,label:w({id:"global.description",defaultMessage:"Description"}),name:"description",error:N.name&&w({id:N.name}),onChange:X,onBlur:te},P.description||"")))))};_.defaultProps={disabled:!1,role:null,values:{name:"",description:""}},_.propTypes={disabled:Q().bool,errors:Q().object.isRequired,onBlur:Q().func.isRequired,onChange:Q().func.isRequired,role:Q().object,values:Q().object};var Ce=_,E=u(8888),ie=u(5173),ee=ie.Ry().shape({name:ie.Z_().required(A.translatedErrors.required)}),le=()=>{const Z=(0,A.useNotification)(),{formatMessage:B}=(0,F.useIntl)(),{params:{id:P}}=(0,r.useRouteMatch)("/settings/roles/:id"),[N,X]=(0,e.useState)(!1),te=(0,e.useRef)(),{lockApp:w,unlockApp:oe}=(0,A.useOverlayBlocker)(),{trackUsage:xe}=(0,A.useTracking)(),{isLoading:ue,data:Re}=(0,E.U_)(P),{role:re,permissions:Te,isLoading:me,onSubmitSucceeded:be}=(0,E.Dq)(P),ne=async $=>{try{w(),X(!0);const{permissionsToSend:q,didUpdateConditions:Y}=te.current.getPermissions();await(0,A.request)(`/admin/roles/${P}`,{method:"PUT",body:$}),re.code!=="strapi-super-admin"&&(await(0,A.request)(`/admin/roles/${P}/permissions`,{method:"PUT",body:{permissions:q}}),Y&&xe("didUpdateConditions")),te.current.setFormAfterSubmit(),be({name:$.name,description:$.description}),Z({type:"success",message:{id:"notification.success.saved"}})}catch(q){console.error(q.response);const Y=G()(q,"response.payload.message","An error occured"),pe=G()(q,"response.payload.data.permissions[0]",Y);Z({type:"warning",message:pe})}finally{X(!1),oe()}},se=re.code==="strapi-super-admin";return e.createElement(i.Main,null,e.createElement(A.SettingsPageTitle,{name:"Roles"}),e.createElement(I.Formik,{enableReinitialize:!0,initialValues:{name:re.name,description:re.description},onSubmit:ne,validationSchema:ee,validateOnChange:!1},({handleSubmit:$,values:q,errors:Y,handleChange:pe,handleBlur:ke})=>e.createElement("form",{onSubmit:$},e.createElement(i.HeaderLayout,{primaryAction:e.createElement(i.Flex,{gap:2},e.createElement(i.Button,{disabled:re.code==="strapi-super-admin",onClick:$,loading:N,size:"L"},B({id:"global.save",defaultMessage:"Save"}))),title:B({id:"Settings.roles.edit.title",defaultMessage:"Edit a role"}),subtitle:B({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(A.Link,{startIcon:e.createElement(D.ArrowLeft,null),to:"/settings/roles"},B({id:"global.back",defaultMessage:"Back"}))}),e.createElement(i.ContentLayout,null,e.createElement(i.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(Ce,{isLoading:me,disabled:se,errors:Y,values:q,onChange:pe,onBlur:ke,role:re}),!ue&&!me?e.createElement(i.Box,{shadow:"filterShadow",hasRadius:!0},e.createElement(b.Z,{isFormDisabled:se,permissions:Te,ref:te,layout:Re})):e.createElement(i.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(A.LoadingIndicatorPage,null)))))))},L=()=>{const Z=(0,e.useMemo)(()=>({read:y.Z.settings.roles.read,update:y.Z.settings.roles.update}),[]),{isLoading:B,allowedActions:{canRead:P,canUpdate:N}}=(0,A.useRBAC)(Z);return B?e.createElement(A.LoadingIndicatorPage,null):!P&&!N?e.createElement(r.Redirect,{to:"/"}):e.createElement(le,null)}},84802:function(U){function W(u,e,A,r){for(var y=-1,i=u==null?0:u.length;++y<i;){var I=u[y];e(r,I,A(I),u)}return r}U.exports=W},62435:function(U,W,u){var e=u(56671);function A(r,y,i,I){return e(r,function(D,K,G){y(I,D,i(D),G)}),I}U.exports=A},85580:function(U,W,u){var e=u(84802),A=u(62435),r=u(88904),y=u(77236);function i(I,D){return function(K,G){var F=y(K)?e:A,b=D?D():{};return F(K,I,r(G,2),b)}}U.exports=i},72091:function(U,W,u){var e=u(40314),A=1/0;function r(y){var i=y==null?0:y.length;return i?e(y,A):[]}U.exports=r},81346:function(U,W,u){var e=u(40999),A=u(85580),r=Object.prototype,y=r.hasOwnProperty,i=A(function(I,D,K){y.call(I,K)?I[K].push(D):e(I,K,[D])});U.exports=i}}]);
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,c,e){e.r(c),e.d(c,{default:function(){return y}});var t=e(32735),a=e(13478),n=e(5141),u=e(72041),l=e(20011),m=e(5636),o=e(60216),p=e.n(o),g=e(88423),d=e.n(g),O=e(33795),f=e.n(O),W=e(9086),K=e.n(W),T=e(84968),Z=e(83281),s=e(39161),M=e(57269),P=e(8997);const I=async L=>{const{get:_}=(0,a.getFetchClient)(),{data:r}=await _(`/admin/users/${L}`);return r.data},N=async(L,_)=>{const{put:r}=(0,a.getFetchClient)(),{data:h}=await r(`/admin/users/${L}`,_);return h.data};var G=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.username.label",defaultMessage:"Username"},name:"username",placeholder:{id:"Auth.form.username.placeholder",defaultMessage:"e.g. Kai_Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"global.password",defaultMessage:"Password"},name:"password",type:"password",size:{col:6,xs:12},autoComplete:"new-password"},{intlLabel:{id:"Auth.form.confirmPassword.label",defaultMessage:"Password confirmation"},name:"confirmPassword",type:"password",size:{col:6,xs:12},autoComplete:"new-password"}],[{intlLabel:{id:"Auth.form.active.label",defaultMessage:"Active"},name:"isActive",type:"bool",size:{col:6,xs:12}}]],H=e(1057),A=e(4397);const Y=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),z=["email","firstname","lastname","username","isActive","roles"],F=L=>{let{canUpdate:_}=L;const{formatMessage:r}=(0,m.useIntl)(),{params:{id:h}}=(0,n.useRouteMatch)("/settings/users/:id"),{push:U}=(0,n.useHistory)(),{setUserDisplayName:j}=(0,a.useAppInfos)(),S=(0,a.useNotification)(),{lockApp:k,unlockApp:q}=(0,a.useOverlayBlocker)();(0,a.useFocusWhenNavigate)();const{status:ee,data:x}=(0,T.useQuery)(["user",h],()=>I(h),{retry:!1,onError(i){i.response.status===403&&(S({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}}),U("/")),console.log(i.response.status)}}),te=async(i,E)=>{k();try{const v=await N(h,K()(i,"confirmPassword"));S({type:"success",message:r({id:"notification.success.saved",defaultMessage:"Saved"})});const D=a.auth.getUserInfo();if(h.toString()===D.id.toString()){a.auth.setUserInfo(v);const B=f()(i,"username")||(0,P.Pp)(i.firstname,i.lastname);j(B)}E.setValues(d()(i,z))}catch(v){const D=(0,P.Iz)(v.response.data),B=Object.keys(D).reduce((b,C)=>(b[C]=D[C].id,b),{});E.setErrors(B),S({type:"warning",message:f()(v,"response.data.error.message","notification.error")})}q()},X=ee!=="success",ae=X?{id:"app.containers.Users.EditPage.header.label-loading",defaultMessage:"Edit user"}:{id:"app.containers.Users.EditPage.header.label",defaultMessage:"Edit {name}"},$=Object.keys(d()(x,z)).reduce((i,E)=>E==="roles"?(i[E]=(x?.roles||[]).map(v=>{let{id:D}=v;return D}),i):(i[E]=x?.[E],i),{}),se=$.username||(0,P.Pp)($.firstname,$.lastname),J=r(ae,{name:se});return X?t.createElement(s.Main,{"aria-busy":"true"},t.createElement(a.SettingsPageTitle,{name:"Users"}),t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:!0,startIcon:t.createElement(M.Check,null),type:"button",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(M.ArrowLeft,null),to:"/settings/users?pageSize=10&page=1&sort=firstname"},r({id:"global.back",defaultMessage:"Back"}))}),t.createElement(s.ContentLayout,null,t.createElement(a.LoadingIndicatorPage,null))):t.createElement(s.Main,null,t.createElement(a.SettingsPageTitle,{name:"Users"}),t.createElement(Z.Formik,{onSubmit:te,initialValues:$,validateOnChange:!1,validationSchema:H.YM},i=>{let{errors:E,values:v,handleChange:D,isSubmitting:B}=i;return t.createElement(a.Form,null,t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:B||!_,startIcon:t.createElement(M.Check,null),loading:B,type:"submit",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(M.ArrowLeft,null),to:"/settings/users?pageSize=10&page=1&sort=firstname"},r({id:"global.back",defaultMessage:"Back"}))}),t.createElement(s.ContentLayout,null,x?.registrationToken&&t.createElement(s.Box,{paddingBottom:6},t.createElement(Y,{registrationToken:x.registrationToken})),t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:7},t.createElement(s.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(s.Typography,{variant:"delta",as:"h2"},r({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"Details"})),t.createElement(s.Grid,{gap:5},G.map(b=>b.map(C=>t.createElement(s.GridItem,(0,l.Z)({key:C.name},C.size),t.createElement(a.GenericInput,(0,l.Z)({},C,{disabled:!_,error:E[C.name],onChange:D,value:v[C.name]||""})))))))),t.createElement(s.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(s.Typography,{variant:"delta",as:"h2"},r({id:"global.roles",defaultMessage:"User's role"})),t.createElement(s.Grid,{gap:5},t.createElement(s.GridItem,{col:6,xs:12},t.createElement(A.Z,{disabled:!_,error:E.roles,onChange:D,value:v.roles}))))))))}))};F.propTypes={canUpdate:p().bool.isRequired};var w=F,y=()=>{const L=(0,a.useNotification)(),_=(0,t.useMemo)(()=>({read:u.Z.settings.users.read,update:u.Z.settings.users.update}),[]),{isLoading:r,allowedActions:{canRead:h,canUpdate:U}}=(0,a.useRBAC)(_),{state:j}=(0,n.useLocation)(),S=j?.from??"/";return(0,t.useEffect)(()=>{r||!h&&!U&&L({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}})},[r,h,U,L]),r?t.createElement(a.LoadingIndicatorPage,null):!h&&!U?t.createElement(n.Redirect,{to:S}):t.createElement(w,{canUpdate:U})}},76779:function(R,c,e){var t=e(32735),a=e(60216),n=e.n(a),u=e(39161),l=e.n(u),m=e(13478),o=e.n(m),p=e(57269),g=e.n(p),d=e(59087),O=e.n(d),f=e(5636);const W=({children:K,target:T})=>{const Z=(0,m.useNotification)(),{formatMessage:s}=(0,f.useIntl)(),M=()=>{Z({type:"info",message:{id:"notification.link-copied"}})},P=s({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(m.ContentBox,{endAction:t.createElement(d.CopyToClipboard,{onCopy:M,text:T},t.createElement(u.IconButton,{label:P,noBorder:!0,icon:t.createElement(p.Duplicate,null)})),title:T,titleEllipsis:!0,subtitle:K,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};W.propTypes={children:n().oneOfType([n().element,n().string]).isRequired,target:n().string.isRequired},c.Z=W},16325:function(R,c,e){var t=e(32735),a=e(5636),n=e(60216),u=e.n(n),l=e(463),m=e(76779);const o=({registrationToken:p})=>{const{formatMessage:g}=(0,a.useIntl)(),d=`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`;return t.createElement(m.Z,{target:d},g({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:u().string},c.Z=o},4397:function(R,c,e){var t=e(32735),a=e(60216),n=e.n(a),u=e(5636),l=e(39161),m=e.n(l),o=e(84968),p=e.n(o),g=e(83292),d=e(57269),O=e.n(d),f=e(13478),W=e.n(f);const K=g.keyframes`
2
+ from {
3
+ transform: rotate(0deg);
4
+ }
5
+ to {
6
+ transform: rotate(359deg);
7
+ }
8
+ `,T=g.default.div`
9
+ animation: ${K} 2s infinite linear;
10
+ `,Z=()=>t.createElement(T,null,t.createElement(d.Loader,null)),s=async()=>{const{get:P}=(0,f.getFetchClient)(),{data:I}=await P("/admin/roles");return I.data},M=({disabled:P,error:I,onChange:N,value:Q})=>{const{status:G,data:H}=(0,o.useQuery)(["roles"],s,{staleTime:5e4}),{formatMessage:A}=(0,u.useIntl)(),Y=I?A({id:I,defaultMessage:I}):"",z=A({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),F=A({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),w=A({id:"app.components.Select.placeholder",defaultMessage:"Select"}),V=G==="loading"?t.createElement(Z,null):void 0;return t.createElement(l.Select,{id:"roles",disabled:P,error:Y,hint:F,label:z,name:"roles",onChange:y=>{N({target:{name:"roles",value:y}})},placeholder:w,multi:!0,startIcon:V,value:Q,withTags:!0,required:!0},(H||[]).map(y=>t.createElement(l.Option,{key:y.id,value:y.id},A({id:`global.${y.code}`,defaultMessage:y.name}))))};M.defaultProps={disabled:!1,error:void 0},M.propTypes={disabled:n().bool,error:n().string,onChange:n().func.isRequired,value:n().array.isRequired},c.Z=M},1057:function(R,c,e){e.d(c,{YM:function(){return g},Rw:function(){return l}});var t=e(5173),a=e(13478);const n={firstname:t.Z_().trim().required(a.translatedErrors.required),lastname:t.Z_(),email:t.Z_().email(a.translatedErrors.email).lowercase().required(a.translatedErrors.required),username:t.Z_().nullable(),password:t.Z_().min(8,a.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number"),confirmPassword:t.Z_().min(8,a.translatedErrors.minLength).oneOf([t.iH("password"),null],"components.Input.error.password.noMatch").when("password",(d,O)=>d?O.required(a.translatedErrors.required):O)};var l={...n,currentPassword:t.Z_().when(["password","confirmPassword"],(d,O,f)=>d||O?f.required(a.translatedErrors.required):f),preferedLanguage:t.Z_().nullable()},o={roles:t.IX().min(1,a.translatedErrors.required).required(a.translatedErrors.required)},g=t.Ry().shape({...n,isActive:t.Xg(),...o})},28890:function(R,c,e){var t=e(32735),a=e(5636),n=e(60216),u=e.n(n),l=e(463),m=e(76779);const o=({registrationToken:p})=>{const{formatMessage:g}=(0,a.useIntl)();return p?t.createElement(m.Z,{target:`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`},g({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):t.createElement(m.Z,{target:`${window.location.origin}${l.Z}auth/login`},g({id:"app.components.Users.MagicLink.connect.sso",defaultMessage:"Send this link to the user, the first login can be made via a SSO provider."}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:u().string},c.Z=o}}]);
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3455],{67249:function(Y,k,s){s.r(k),s.d(k,{default:function(){return J}});var e=s(32735),r=s(13478),A=s(72041),C=s(57269),t=s(39161),B=s(33795),S=s.n(B),N=s(58469),M=s(5636),F=s(5141),W=s(8888),U=()=>"todo empty role",V=s(60216),h=s.n(V);const x=({id:l,name:d,description:n,usersCount:u,icons:m,rowIndex:i})=>{const{formatMessage:E}=(0,M.useIntl)(),f=E({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:u});return e.createElement(t.Tr,{"aria-rowindex":i,key:l,...(0,r.onRowClick)({fn:m[1].onClick})},e.createElement(t.Td,{maxWidth:(0,r.pxToRem)(130)},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral800"},d)),e.createElement(t.Td,{maxWidth:(0,r.pxToRem)(250)},e.createElement(t.Typography,{ellipsis:!0,textColor:"neutral800"},n)),e.createElement(t.Td,null,e.createElement(t.Typography,{textColor:"neutral800"},f)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"flex-end",...r.stopPropagation},m.map((o,p)=>o?e.createElement(t.Box,{key:o.label,paddingLeft:p===0?0:1},e.createElement(t.IconButton,{onClick:o.onClick,label:o.label,noBorder:!0,icon:o.icon})):null))))};x.propTypes={id:h().number.isRequired,name:h().string.isRequired,description:h().string.isRequired,usersCount:h().number.isRequired,icons:h().array.isRequired,rowIndex:h().number.isRequired};var j=x,H=s(97889);const Z={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1};var Q=(l,d)=>(0,H.default)(l,n=>{switch(d.type){case"ON_REMOVE_ROLES":{n.showModalConfirmButtonLoading=!0;break}case"ON_REMOVE_ROLES_SUCCEEDED":{n.shouldRefetchData=!0,n.roleToDelete=null;break}case"RESET_DATA_TO_DELETE":{n.shouldRefetchData=!1,n.roleToDelete=null,n.showModalConfirmButtonLoading=!1;break}case"SET_ROLE_TO_DELETE":{n.roleToDelete=d.id;break}default:return n}});const $=()=>{(0,r.useFocusWhenNavigate)();const{isLoading:l,allowedActions:{canCreate:d,canDelete:n,canRead:u,canUpdate:m}}=(0,r.useRBAC)(A.Z.settings.roles),{getData:i,roles:E,isLoading:f}=(0,W.bF)(!1),[{query:o}]=(0,r.useQueryParams)(),p=o?._q||"",R=(0,N.ZP)(E,p,{keys:["name","description"]});return(0,e.useEffect)(()=>{!l&&u&&i()},[l,u,i]),{isLoadingForPermissions:l,canCreate:d,canDelete:n,canRead:u,canUpdate:m,isLoading:f,getData:i,sortedRoles:R,roles:E}},z=({getData:l,canCreate:d,canDelete:n,canUpdate:u})=>{const{formatMessage:m}=(0,M.useIntl)(),i=(0,r.useNotification)(),[E,f]=(0,e.useState)(!1),{push:o}=(0,F.useHistory)(),[{selectedRoles:p,showModalConfirmButtonLoading:R,roleToDelete:v},T]=(0,e.useReducer)(Q,Z),{post:P}=(0,r.getFetchClient)(),b=async()=>{try{T({type:"ON_REMOVE_ROLES"}),await P("/admin/roles/batch-delete",{ids:[v]}),await l(),T({type:"RESET_DATA_TO_DELETE"})}catch(a){const c=S()(a,["response","payload","data","ids"],null);if(c&&Array.isArray(c)){const X=c.join(`
2
+ `);i({type:"warning",message:X})}else i({type:"warning",message:{id:"notification.error"}})}g()},y=(0,e.useCallback)(a=>{o(`/settings/roles/duplicate/${a}`)},[o]),O=()=>o("/settings/roles/new"),D=(0,e.useCallback)(a=>{T({type:"SET_ROLE_TO_DELETE",id:a}),g()},[]),g=()=>f(a=>!a),L=(0,e.useCallback)(a=>{o(`/settings/roles/${a}`)},[o]),w=(0,e.useCallback)((a,c)=>{a.preventDefault(),a.stopPropagation(),c.usersCount?i({type:"info",message:{id:"Roles.ListPage.notification.delete-not-allowed"}}):D(c.id)},[i,D]),I=(0,e.useCallback)((a,c)=>{a.preventDefault(),a.stopPropagation(),y(c.id)},[y]),K=(0,e.useCallback)(a=>[...d?[{onClick:c=>I(c,a),label:m({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(C.Duplicate,null)}]:[],...u?[{onClick:()=>L(a.id),label:m({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(C.Pencil,null)}]:[],...n?[{onClick:c=>w(c,a),label:m({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(C.Trash,null)}]:[]],[m,w,I,L,d,u,n]);return{handleNewRoleClick:O,getIcons:K,selectedRoles:p,isWarningDeleteAllOpened:E,showModalConfirmButtonLoading:R,handleToggleModal:g,handleDeleteData:b}};var G=()=>{const{formatMessage:l}=(0,M.useIntl)(),{isLoadingForPermissions:d,canCreate:n,canRead:u,canDelete:m,canUpdate:i,isLoading:E,getData:f,sortedRoles:o}=$(),{handleNewRoleClick:p,getIcons:R,isWarningDeleteAllOpened:v,showModalConfirmButtonLoading:T,handleToggleModal:P,handleDeleteData:b}=z({getData:f,canCreate:n,canDelete:m,canUpdate:i}),y=o.length+1,O=6;if(d)return e.createElement(t.Main,null,e.createElement(r.LoadingIndicatorPage,null));const D=l({id:"global.roles",defaultMessage:"roles"});return e.createElement(t.Main,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(t.HeaderLayout,{primaryAction:n?e.createElement(t.Button,{onClick:p,startIcon:e.createElement(C.Plus,null),size:"S"},l({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null,title:D,subtitle:l({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),as:"h2"}),u&&e.createElement(t.ActionLayout,{startActions:e.createElement(r.SearchURLQuery,{label:l({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:D})})}),u&&e.createElement(t.ContentLayout,null,e.createElement(t.Table,{colCount:O,rowCount:y,footer:n?e.createElement(t.TFooter,{onClick:p,icon:e.createElement(C.Plus,null)},l({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null},e.createElement(t.Thead,null,e.createElement(t.Tr,{"aria-rowindex":1},e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},l({id:"global.name",defaultMessage:"Name"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},l({id:"global.description",defaultMessage:"Description"}))),e.createElement(t.Th,null,e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},l({id:"global.users",defaultMessage:"Users"}))),e.createElement(t.Th,null,e.createElement(t.VisuallyHidden,null,l({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(t.Tbody,null,o?.map((g,L)=>e.createElement(j,{key:g.id,id:g.id,name:g.name,description:g.description,usersCount:g.usersCount,icons:R(g),rowIndex:L+2})))),!y&&!E&&e.createElement(U,null)),e.createElement(r.ConfirmDialog,{isOpen:v,onConfirm:b,isConfirmButtonLoading:T,onToggleDialog:P}))},J=()=>e.createElement(r.CheckPagePermissions,{permissions:A.Z.settings.roles.main},e.createElement(G,null))}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5199],{83119:function(D,l){const e=()=>null;l.Z=e},83196:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o),n=e(13478),E=e.n(n);const y=({displayedFilters:p})=>{const[C,T]=(0,t.useState)(!1),{formatMessage:_}=(0,a.useIntl)(),L=(0,t.useRef)(),O=()=>{T(K=>!K)};return t.createElement(t.Fragment,null,t.createElement(i.Box,{paddingTop:1,paddingBottom:1},t.createElement(i.Button,{variant:"tertiary",ref:L,startIcon:t.createElement(o.Filter,null),onClick:O,size:"S"},_({id:"app.utils.filters",defaultMessage:"Filters"})),C&&t.createElement(n.FilterPopoverURLQuery,{displayedFilters:p,isVisible:C,onToggle:O,source:L})),t.createElement(n.FilterListURLQuery,{filtersSchema:p}))};y.propTypes={displayedFilters:r().arrayOf(r().shape({name:r().string.isRequired,metadatas:r().shape({label:r().string}),fieldSchema:r().shape({type:r().string})})).isRequired},l.Z=y},9814:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o);const n=({onClick:E})=>{const{formatMessage:y}=(0,s.useIntl)();return t.createElement(i.Button,{onClick:E,startIcon:t.createElement(o.Envelop,null),size:"S"},y({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}))};n.propTypes={onClick:a().func.isRequired},l.Z=n},62658:function(D,l){const e={firstname:"",lastname:"",email:"",roles:[]};l.Z=e},61358:function(D,l){const e=[];l.Z=e},54865:function(D,l,e){e.r(l),e.d(l,{default:function(){return ge}});var t=e(32735),s=e(13478),r=e(72041),a=e(39161),i=e(5141),m=e(5636),o=e(84968),g=e(60216),n=e.n(g),E=e(57269),y=e(64421);const p=({canDelete:d,headers:M,entriesToDelete:f,onClickDelete:R,onSelectRow:$,withMainAction:A,withBulkActions:U,rows:Q})=>{const{push:I,location:{pathname:F}}=(0,i.useHistory)(),{formatMessage:P}=(0,m.useIntl)();return t.createElement(a.Tbody,null,Q.map(c=>{const z=f.findIndex(h=>h===c.id)!==-1;return t.createElement(a.Tr,{key:c.id,...(0,s.onRowClick)({fn:()=>I(`${F}/${c.id}`),condition:U})},A&&t.createElement(a.Td,{...s.stopPropagation},t.createElement(a.BaseCheckbox,{"aria-label":P({id:"app.component.table.select.one-entry",defaultMessage:"Select {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),checked:z,onChange:()=>{$({name:c.id,value:!z})}})),M.map(({key:h,cellFormatter:G,name:S,...Z})=>t.createElement(a.Td,{key:h},typeof G=="function"?G(c,{key:h,name:S,formatMessage:P,...Z}):t.createElement(a.Typography,{textColor:"neutral800"},c[S]||"-"))),U&&t.createElement(a.Td,null,t.createElement(a.Flex,{justifyContent:"end"},t.createElement(a.IconButton,{onClick:()=>I(`${F}/${c.id}`),label:P({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Pencil,null)}),d&&t.createElement(a.Box,{paddingLeft:1,...s.stopPropagation},t.createElement(a.IconButton,{onClick:()=>R(c.id),label:P({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Trash,null)})))))}))};p.defaultProps={canDelete:!1,entriesToDelete:[],onClickDelete(){},onSelectRow(){},rows:[],withBulkActions:!1,withMainAction:!1},p.propTypes={canDelete:n().bool,entriesToDelete:n().array,headers:n().array.isRequired,onClickDelete:n().func,onSelectRow:n().func,rows:n().array,withBulkActions:n().bool,withMainAction:n().bool};var C=p,T=e(83196),_=e(20011),L=e(83281),O=e(4397),x=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0}]],v=e(5173),q=v.Ry().shape({firstname:v.Z_().trim().required(s.translatedErrors.required),lastname:v.Z_(),email:v.Z_().email(s.translatedErrors.email).required(s.translatedErrors.required),roles:v.IX().min(1,s.translatedErrors.required).required(s.translatedErrors.required)}),ee={create:{buttonSubmitLabel:{id:"app.containers.Users.ModalForm.footer.button-success",defaultMessage:"Invite user"},isDisabled:!1,next:"magic-link"},"magic-link":{buttonSubmitLabel:{id:"global.finish",defaultMessage:"Finish"},isDisabled:!0,next:null}};const N=(()=>window&&window.strapi&&window.strapi.isEE?e(64746).Z:e(62658).Z)(),te=(()=>window&&window.strapi&&window.strapi.isEE?e(43116).Z:e(61358).Z)(),ae=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),Y=d=>{let{queryName:M,onToggle:f}=d;const[R,$]=(0,t.useState)("create"),[A,U]=(0,t.useState)(!1),[Q,I]=(0,t.useState)(null),F=(0,o.useQueryClient)(),{formatMessage:P}=(0,m.useIntl)(),c=(0,s.useNotification)(),{lockApp:z,unlockApp:h}=(0,s.useOverlayBlocker)(),{post:G}=(0,s.useFetchClient)(),S=(0,o.useMutation)(W=>G("/admin/users",W),{async onSuccess(W){let{data:j}=W;I(j.data.registrationToken),await F.refetchQueries(M),await F.refetchQueries(["ee","license-limit-info"]),k(),U(!1)},onError(W){throw U(!1),c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),W},onSettled(){h()}}),Z=P({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}),ne=async(W,j)=>{let{setErrors:J}=j;z(),U(!0);try{await S.mutateAsync(W)}catch(V){h(),V?.response?.data?.error.message==="Email already taken"&&J({email:V.response.data.error.message})}},k=()=>{u?$(u):f()},{buttonSubmitLabel:X,isDisabled:H,next:u}=ee[R],_e=R==="create"?t.createElement(a.Button,{type:"submit",loading:A},P(X)):t.createElement(a.Button,{type:"button",loading:A,onClick:f},P(X));return t.createElement(a.ModalLayout,{onClose:f,labelledBy:"title"},t.createElement(a.ModalHeader,null,t.createElement(a.Breadcrumbs,{label:Z},t.createElement(a.Crumb,null,Z))),t.createElement(L.Formik,{initialValues:N,onSubmit:ne,validationSchema:q,validateOnChange:!1},W=>{let{errors:j,handleChange:J,values:V}=W;return t.createElement(s.Form,null,t.createElement(a.ModalBody,null,t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:6},R!=="create"&&t.createElement(ae,{registrationToken:Q}),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"User details"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:1},t.createElement(a.Grid,{gap:5},x.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,error:j[B.name],onChange:J,value:V[B.name]}))))))))),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"global.roles",defaultMessage:"User's role"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Grid,{gap:5},t.createElement(a.GridItem,{col:6,xs:12},t.createElement(O.Z,{disabled:H,error:j.roles,onChange:J,value:V.roles})),te.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,onChange:J,value:V[B.name]})))))))))),t.createElement(a.ModalFooter,{startActions:t.createElement(a.Button,{variant:"tertiary",onClick:f,type:"button"},P({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:_e}))}))};Y.propTypes={onToggle:n().func.isRequired,queryName:n().array.isRequired};var se=Y;const w=({pagination:d})=>t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{alignItems:"flex-end",justifyContent:"space-between"},t.createElement(s.PageSizeURLQuery,null),t.createElement(s.PaginationURLQuery,{pagination:d})));w.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},w.propTypes={pagination:n().shape({page:n().number,pageCount:n().number,pageSize:n().number,total:n().number})};var b=w;const ie=async(d,M)=>{const{get:f}=(0,s.getFetchClient)(),{data:{data:R}}=await f(`/admin/users${d}`);return M(),R},ce=async d=>{const{post:M}=(0,s.getFetchClient)();await M("/admin/users/batch-delete",{ids:d})};var de=[{name:"firstname",metadatas:{label:"Firstname"},fieldSchema:{type:"string"}},{name:"lastname",metadatas:{label:"Lastname"},fieldSchema:{type:"string"}},{name:"email",metadatas:{label:"Email"},fieldSchema:{type:"email"}},{name:"username",metadatas:{label:"Username"},fieldSchema:{type:"string"}},{name:"isActive",metadatas:{label:"Active user"},fieldSchema:{type:"boolean"}}],me=[{name:"firstname",key:"firstname",metadatas:{label:{id:"Settings.permissions.users.firstname",defaultMessage:"Firstname"},sortable:!0}},{name:"lastname",key:"lastname",metadatas:{label:{id:"Settings.permissions.users.lastname",defaultMessage:"Lastname"},sortable:!0}},{key:"email",name:"email",metadatas:{label:{id:"Settings.permissions.users.email",defaultMessage:"Email"},sortable:!0}},{key:"roles",name:"roles",metadatas:{label:{id:"Settings.permissions.users.roles",defaultMessage:"Roles"},sortable:!1},cellFormatter({roles:d},{formatMessage:M}){return t.createElement(a.Typography,{textColor:"neutral800"},d.map(f=>M({id:`Settings.permissions.users.${f.code}`,defaultMessage:f.name})).join(`,
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5199],{83119:function(D,l){const e=()=>null;l.Z=e},83196:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o),n=e(13478),E=e.n(n);const y=({displayedFilters:p})=>{const[C,T]=(0,t.useState)(!1),{formatMessage:_}=(0,a.useIntl)(),L=(0,t.useRef)(),O=()=>{T(K=>!K)};return t.createElement(t.Fragment,null,t.createElement(i.Box,{paddingTop:1,paddingBottom:1},t.createElement(i.Button,{variant:"tertiary",ref:L,startIcon:t.createElement(o.Filter,null),onClick:O,size:"S"},_({id:"app.utils.filters",defaultMessage:"Filters"})),C&&t.createElement(n.FilterPopoverURLQuery,{displayedFilters:p,isVisible:C,onToggle:O,source:L})),t.createElement(n.FilterListURLQuery,{filtersSchema:p}))};y.propTypes={displayedFilters:r().arrayOf(r().shape({name:r().string.isRequired,metadatas:r().shape({label:r().string}),fieldSchema:r().shape({type:r().string})})).isRequired},l.Z=y},9814:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o);const n=({onClick:E})=>{const{formatMessage:y}=(0,s.useIntl)();return t.createElement(i.Button,{onClick:E,startIcon:t.createElement(o.Envelop,null),size:"S"},y({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}))};n.propTypes={onClick:a().func.isRequired},l.Z=n},62658:function(D,l){const e={firstname:"",lastname:"",email:"",roles:[]};l.Z=e},61358:function(D,l){const e=[];l.Z=e},54865:function(D,l,e){e.r(l),e.d(l,{default:function(){return ge}});var t=e(32735),s=e(13478),r=e(72041),a=e(39161),i=e(5141),m=e(5636),o=e(84968),g=e(60216),n=e.n(g),E=e(57269),y=e(8997);const p=({canDelete:d,headers:M,entriesToDelete:f,onClickDelete:R,onSelectRow:$,withMainAction:A,withBulkActions:U,rows:Q})=>{const{push:I,location:{pathname:F}}=(0,i.useHistory)(),{formatMessage:P}=(0,m.useIntl)();return t.createElement(a.Tbody,null,Q.map(c=>{const z=f.findIndex(h=>h===c.id)!==-1;return t.createElement(a.Tr,{key:c.id,...(0,s.onRowClick)({fn:()=>I(`${F}/${c.id}`),condition:U})},A&&t.createElement(a.Td,{...s.stopPropagation},t.createElement(a.BaseCheckbox,{"aria-label":P({id:"app.component.table.select.one-entry",defaultMessage:"Select {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),checked:z,onChange:()=>{$({name:c.id,value:!z})}})),M.map(({key:h,cellFormatter:G,name:S,...Z})=>t.createElement(a.Td,{key:h},typeof G=="function"?G(c,{key:h,name:S,formatMessage:P,...Z}):t.createElement(a.Typography,{textColor:"neutral800"},c[S]||"-"))),U&&t.createElement(a.Td,null,t.createElement(a.Flex,{justifyContent:"end"},t.createElement(a.IconButton,{onClick:()=>I(`${F}/${c.id}`),label:P({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Pencil,null)}),d&&t.createElement(a.Box,{paddingLeft:1,...s.stopPropagation},t.createElement(a.IconButton,{onClick:()=>R(c.id),label:P({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Trash,null)})))))}))};p.defaultProps={canDelete:!1,entriesToDelete:[],onClickDelete(){},onSelectRow(){},rows:[],withBulkActions:!1,withMainAction:!1},p.propTypes={canDelete:n().bool,entriesToDelete:n().array,headers:n().array.isRequired,onClickDelete:n().func,onSelectRow:n().func,rows:n().array,withBulkActions:n().bool,withMainAction:n().bool};var C=p,T=e(83196),_=e(20011),L=e(83281),O=e(4397),x=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0}]],v=e(5173),q=v.Ry().shape({firstname:v.Z_().trim().required(s.translatedErrors.required),lastname:v.Z_(),email:v.Z_().email(s.translatedErrors.email).required(s.translatedErrors.required),roles:v.IX().min(1,s.translatedErrors.required).required(s.translatedErrors.required)}),ee={create:{buttonSubmitLabel:{id:"app.containers.Users.ModalForm.footer.button-success",defaultMessage:"Invite user"},isDisabled:!1,next:"magic-link"},"magic-link":{buttonSubmitLabel:{id:"global.finish",defaultMessage:"Finish"},isDisabled:!0,next:null}};const N=(()=>window&&window.strapi&&window.strapi.isEE?e(64746).Z:e(62658).Z)(),te=(()=>window&&window.strapi&&window.strapi.isEE?e(43116).Z:e(61358).Z)(),ae=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),Y=d=>{let{queryName:M,onToggle:f}=d;const[R,$]=(0,t.useState)("create"),[A,U]=(0,t.useState)(!1),[Q,I]=(0,t.useState)(null),F=(0,o.useQueryClient)(),{formatMessage:P}=(0,m.useIntl)(),c=(0,s.useNotification)(),{lockApp:z,unlockApp:h}=(0,s.useOverlayBlocker)(),{post:G}=(0,s.useFetchClient)(),S=(0,o.useMutation)(W=>G("/admin/users",W),{async onSuccess(W){let{data:j}=W;I(j.data.registrationToken),await F.refetchQueries(M),await F.refetchQueries(["ee","license-limit-info"]),k(),U(!1)},onError(W){throw U(!1),c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),W},onSettled(){h()}}),Z=P({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}),ne=async(W,j)=>{let{setErrors:J}=j;z(),U(!0);try{await S.mutateAsync(W)}catch(V){h(),V?.response?.data?.error.message==="Email already taken"&&J({email:V.response.data.error.message})}},k=()=>{u?$(u):f()},{buttonSubmitLabel:X,isDisabled:H,next:u}=ee[R],_e=R==="create"?t.createElement(a.Button,{type:"submit",loading:A},P(X)):t.createElement(a.Button,{type:"button",loading:A,onClick:f},P(X));return t.createElement(a.ModalLayout,{onClose:f,labelledBy:"title"},t.createElement(a.ModalHeader,null,t.createElement(a.Breadcrumbs,{label:Z},t.createElement(a.Crumb,null,Z))),t.createElement(L.Formik,{initialValues:N,onSubmit:ne,validationSchema:q,validateOnChange:!1},W=>{let{errors:j,handleChange:J,values:V}=W;return t.createElement(s.Form,null,t.createElement(a.ModalBody,null,t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:6},R!=="create"&&t.createElement(ae,{registrationToken:Q}),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"User details"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:1},t.createElement(a.Grid,{gap:5},x.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,error:j[B.name],onChange:J,value:V[B.name]}))))))))),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"global.roles",defaultMessage:"User's role"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Grid,{gap:5},t.createElement(a.GridItem,{col:6,xs:12},t.createElement(O.Z,{disabled:H,error:j.roles,onChange:J,value:V.roles})),te.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,onChange:J,value:V[B.name]})))))))))),t.createElement(a.ModalFooter,{startActions:t.createElement(a.Button,{variant:"tertiary",onClick:f,type:"button"},P({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:_e}))}))};Y.propTypes={onToggle:n().func.isRequired,queryName:n().array.isRequired};var se=Y;const w=({pagination:d})=>t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{alignItems:"flex-end",justifyContent:"space-between"},t.createElement(s.PageSizeURLQuery,null),t.createElement(s.PaginationURLQuery,{pagination:d})));w.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},w.propTypes={pagination:n().shape({page:n().number,pageCount:n().number,pageSize:n().number,total:n().number})};var b=w;const ie=async(d,M)=>{const{get:f}=(0,s.getFetchClient)(),{data:{data:R}}=await f(`/admin/users${d}`);return M(),R},ce=async d=>{const{post:M}=(0,s.getFetchClient)();await M("/admin/users/batch-delete",{ids:d})};var de=[{name:"firstname",metadatas:{label:"Firstname"},fieldSchema:{type:"string"}},{name:"lastname",metadatas:{label:"Lastname"},fieldSchema:{type:"string"}},{name:"email",metadatas:{label:"Email"},fieldSchema:{type:"email"}},{name:"username",metadatas:{label:"Username"},fieldSchema:{type:"string"}},{name:"isActive",metadatas:{label:"Active user"},fieldSchema:{type:"boolean"}}],me=[{name:"firstname",key:"firstname",metadatas:{label:{id:"Settings.permissions.users.firstname",defaultMessage:"Firstname"},sortable:!0}},{name:"lastname",key:"lastname",metadatas:{label:{id:"Settings.permissions.users.lastname",defaultMessage:"Lastname"},sortable:!0}},{key:"email",name:"email",metadatas:{label:{id:"Settings.permissions.users.email",defaultMessage:"Email"},sortable:!0}},{key:"roles",name:"roles",metadatas:{label:{id:"Settings.permissions.users.roles",defaultMessage:"Roles"},sortable:!1},cellFormatter({roles:d},{formatMessage:M}){return t.createElement(a.Typography,{textColor:"neutral800"},d.map(f=>M({id:`Settings.permissions.users.${f.code}`,defaultMessage:f.name})).join(`,
2
2
  `))}},{key:"username",name:"username",metadatas:{label:{id:"Settings.permissions.users.username",defaultMessage:"Username"},sortable:!0}},{key:"isActive",name:"isActive",metadatas:{label:{id:"Settings.permissions.users.user-status",defaultMessage:"User status"},sortable:!1},cellFormatter({isActive:d},{formatMessage:M}){return t.createElement(a.Flex,null,t.createElement(s.Status,{isActive:d,variant:d?"success":"danger"}),t.createElement(a.Typography,{textColor:"neutral800"},M({id:d?"Settings.permissions.users.active":"Settings.permissions.users.inactive",defaultMessage:d?"Active":"Inactive"})))}}];const ue=(()=>window&&window.strapi&&window.strapi.isEE?e(99724).Z:e(9814).Z)(),Ee=(()=>window&&window.strapi&&window.strapi.isEE?e(21306).Z:e(83119).Z)();var pe=()=>{const{formatAPIError:d}=(0,s.useAPIErrorHandler)(),[M,f]=(0,t.useState)(!1),{allowedActions:{canCreate:R,canDelete:$,canRead:A}}=(0,s.useRBAC)(r.Z.settings.users),U=(0,o.useQueryClient)(),Q=(0,s.useNotification)(),{formatMessage:I}=(0,m.useIntl)(),{search:F}=(0,i.useLocation)();(0,s.useFocusWhenNavigate)(),Ee();const{notifyStatus:P}=(0,a.useNotifyAT)(),c=["users",F],z=me.map(u=>({...u,metadatas:{...u.metadatas,label:I(u.metadatas.label)}})),h=I({id:"global.users",defaultMessage:"Users"}),G=()=>{P(I({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:h}))},{status:S,data:Z,isFetching:ne}=(0,o.useQuery)(c,()=>ie(F,G),{enabled:A,retry:!1,onError(u){Q({type:"warning",message:{id:"notification.error",message:d(u),defaultMessage:"An error occured"}})}}),k=()=>{f(u=>!u)},X=(0,o.useMutation)(u=>ce(u),{async onSuccess(){await U.refetchQueries(c),await U.refetchQueries(["ee","license-limit-info"])},onError(u){Q({type:"warning",message:{id:"notification.error",message:d(u),defaultMessage:"An error occured"}})}}),H=S!=="success"&&S!=="error"||S==="success"&&ne;return t.createElement(a.Main,{"aria-busy":H},t.createElement(s.SettingsPageTitle,{name:"Users"}),t.createElement(a.HeaderLayout,{primaryAction:R&&t.createElement(ue,{onClick:k}),title:h,subtitle:I({id:"Settings.permissions.users.listview.header.subtitle",defaultMessage:"All the users who have access to the Strapi admin panel"})}),A&&t.createElement(a.ActionLayout,{startActions:t.createElement(t.Fragment,null,t.createElement(s.SearchURLQuery,{label:I({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:h})}),t.createElement(T.Z,{displayedFilters:de}))}),t.createElement(a.ContentLayout,{canRead:A},!A&&t.createElement(s.NoPermissions,null),S==="error"&&t.createElement("div",null,"TODO: An error occurred"),A&&t.createElement(t.Fragment,null,t.createElement(s.DynamicTable,{contentType:"Users",isLoading:H,onConfirmDeleteAll:X.mutateAsync,onConfirmDelete:u=>X.mutateAsync([u]),headers:z,rows:Z?.results,withBulkActions:!0,withMainAction:$},t.createElement(C,{canDelete:$,headers:z,rows:Z?.results||[],withBulkActions:!0,withMainAction:$})),t.createElement(b,{pagination:Z?.pagination}))),M&&t.createElement(se,{onToggle:k,queryName:c}))},ge=()=>t.createElement(s.CheckPagePermissions,{permissions:r.Z.settings.users.main},t.createElement(pe,null))},76779:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(39161),i=e.n(a),m=e(13478),o=e.n(m),g=e(57269),n=e.n(g),E=e(59087),y=e.n(E),p=e(5636);const C=({children:T,target:_})=>{const L=(0,m.useNotification)(),{formatMessage:O}=(0,p.useIntl)(),K=()=>{L({type:"info",message:{id:"notification.link-copied"}})},x=O({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(m.ContentBox,{endAction:t.createElement(E.CopyToClipboard,{onCopy:K,text:_},t.createElement(a.IconButton,{label:x,noBorder:!0,icon:t.createElement(g.Duplicate,null)})),title:_,titleEllipsis:!0,subtitle:T,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};C.propTypes={children:r().oneOfType([r().element,r().string]).isRequired,target:r().string.isRequired},l.Z=C},16325:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(463),m=e(76779);const o=({registrationToken:g})=>{const{formatMessage:n}=(0,s.useIntl)(),E=`${window.location.origin}${i.Z}auth/register?registrationToken=${g}`;return t.createElement(m.Z,{target:E},n({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:a().string},l.Z=o},4397:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(84968),g=e.n(o),n=e(83292),E=e(57269),y=e.n(E),p=e(13478),C=e.n(p);const T=n.keyframes`
3
3
  from {
4
4
  transform: rotate(0deg);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4299],{3330:function(i,t,e){e.r(t);var s=e(32735),_=e(13478),l=e.n(_),n=e(72041),E=e(35563);const a=()=>s.createElement(_.CheckPagePermissions,{permissions:n.Z.settings["api-tokens"].create},s.createElement(E.Z,null));t.default=a}}]);
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4299],{3330:function(i,t,e){e.r(t);var s=e(32735),_=e(13478),l=e.n(_),n=e(72041),E=e(24649);const a=()=>s.createElement(_.CheckPagePermissions,{permissions:n.Z.settings["api-tokens"].create},s.createElement(E.Z,null));t.default=a}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[92],{97841:function(i,s,e){e.r(s);var t=e(32735),_=e(13478),l=e.n(_),n=e(72041),E=e(35563);const a=()=>t.createElement(_.CheckPagePermissions,{permissions:n.Z.settings["api-tokens"].read},t.createElement(E.Z,null));s.default=a}}]);
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[92],{97841:function(i,s,e){e.r(s);var t=e(32735),_=e(13478),l=e.n(_),n=e(72041),E=e(24649);const a=()=>t.createElement(_.CheckPagePermissions,{permissions:n.Z.settings["api-tokens"].read},t.createElement(E.Z,null));s.default=a}}]);