@strapi/admin 4.7.2-exp.24dd7d95972fa822bf43e9b095b51027402c229e → 4.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/admin/src/content-manager/components/ComponentInitializer/index.js +1 -1
  2. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +3 -31
  3. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +65 -134
  4. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +85 -0
  5. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/index.js +1 -2
  6. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +7 -1
  7. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +1 -1
  8. package/admin/src/content-manager/components/RelationInput/RelationInput.js +1 -2
  9. package/admin/src/content-manager/components/RelationInputDataManager/RelationInputDataManager.js +39 -33
  10. package/admin/src/content-manager/hooks/useRelation/useRelation.js +2 -2
  11. package/admin/src/content-manager/pages/EditView/Header/index.js +1 -1
  12. package/admin/src/content-manager/utils/createDefaultForm.js +0 -8
  13. package/admin/src/pages/AuthPage/components/Register/index.js +1 -1
  14. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +1 -0
  15. package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +2 -2
  16. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/schema.js +1 -1
  17. package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +266 -4
  18. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +1 -2
  19. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +2 -3
  20. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +2 -3
  21. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +2 -3
  22. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +9 -4
  23. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +3 -7
  24. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +303 -124
  25. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +1 -1
  26. package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +18 -10
  27. package/admin/src/translations/ca.json +7 -13
  28. package/admin/src/translations/de.json +0 -6
  29. package/admin/src/translations/dk.json +0 -6
  30. package/admin/src/translations/en.json +0 -6
  31. package/admin/src/translations/es.json +0 -6
  32. package/admin/src/translations/eu.json +165 -171
  33. package/admin/src/translations/fr.json +0 -6
  34. package/admin/src/translations/gu.json +0 -6
  35. package/admin/src/translations/he.json +0 -6
  36. package/admin/src/translations/hi.json +0 -6
  37. package/admin/src/translations/hu.json +0 -6
  38. package/admin/src/translations/id.json +0 -6
  39. package/admin/src/translations/it.json +0 -6
  40. package/admin/src/translations/ja.json +0 -6
  41. package/admin/src/translations/ko.json +0 -6
  42. package/admin/src/translations/ml.json +0 -6
  43. package/admin/src/translations/nl.json +0 -6
  44. package/admin/src/translations/no.json +0 -6
  45. package/admin/src/translations/pl.json +0 -6
  46. package/admin/src/translations/pt-BR.json +0 -6
  47. package/admin/src/translations/ru.json +0 -6
  48. package/admin/src/translations/sa.json +0 -6
  49. package/admin/src/translations/sk.json +0 -6
  50. package/admin/src/translations/sv.json +0 -6
  51. package/admin/src/translations/th.json +0 -6
  52. package/admin/src/translations/tr.json +0 -6
  53. package/admin/src/translations/zh-Hans.json +0 -6
  54. package/admin/src/translations/zh.json +0 -6
  55. package/build/{4649.daa290f6.chunk.js → 4649.33220ac3.chunk.js} +2 -2
  56. package/build/{6891.ef7464be.chunk.js → 7112.2bf13da3.chunk.js} +6 -6
  57. package/build/7259.3675c199.chunk.js +1 -0
  58. package/build/{3094.1cac9087.chunk.js → 8580.0aa21940.chunk.js} +5 -5
  59. package/build/{Admin-authenticatedApp.884faefa.chunk.js → Admin-authenticatedApp.1f2fd68f.chunk.js} +4 -4
  60. package/build/Admin_settingsPage.caf3b9ab.chunk.js +9 -0
  61. package/build/{admin-app.d9d96db4.chunk.js → admin-app.4b313104.chunk.js} +2 -2
  62. package/build/admin-edit-roles-page.3b196317.chunk.js +216 -0
  63. package/build/{admin-edit-users.48031e30.chunk.js → admin-edit-users.af3b0f15.chunk.js} +1 -1
  64. package/build/admin-roles-list.0ad504a7.chunk.js +2 -0
  65. package/build/{admin-users.77b4188a.chunk.js → admin-users.af8c3123.chunk.js} +1 -1
  66. package/build/api-tokens-list-page.93f24348.chunk.js +16 -0
  67. package/build/ca-json.43e14418.chunk.js +1 -0
  68. package/build/content-manager.84afc839.chunk.js +1139 -0
  69. package/build/{content-type-builder.cdd117c3.chunk.js → content-type-builder.55dac849.chunk.js} +1 -1
  70. package/build/de-json.fcac7381.chunk.js +1 -0
  71. package/build/dk-json.e34cad0d.chunk.js +1 -0
  72. package/build/{en-json.e688dfe2.chunk.js → en-json.01a88a30.chunk.js} +1 -1
  73. package/build/es-json.715b6fd8.chunk.js +1 -0
  74. package/build/eu-json.fb17c8f9.chunk.js +1 -0
  75. package/build/fr-json.f66c3211.chunk.js +1 -0
  76. package/build/gu-json.4d667d0c.chunk.js +1 -0
  77. package/build/{he-json.f0de8cdb.chunk.js → he-json.3cf0b48a.chunk.js} +1 -1
  78. package/build/{hi-json.14a17920.chunk.js → hi-json.323be97d.chunk.js} +1 -1
  79. package/build/{hu-json.33172d09.chunk.js → hu-json.fe71e6c8.chunk.js} +1 -1
  80. package/build/id-json.41e07c46.chunk.js +1 -0
  81. package/build/index.html +1 -1
  82. package/build/it-json.bfe27ed8.chunk.js +1 -0
  83. package/build/ja-json.81b6d1e3.chunk.js +1 -0
  84. package/build/ko-json.4539f4ba.chunk.js +1 -0
  85. package/build/main.5b92c1d6.js +3809 -0
  86. package/build/{ml-json.3e69969b.chunk.js → ml-json.8988e374.chunk.js} +1 -1
  87. package/build/{nl-json.641782d5.chunk.js → nl-json.98345913.chunk.js} +1 -1
  88. package/build/{no-json.9b3cd181.chunk.js → no-json.19a2dbfa.chunk.js} +1 -1
  89. package/build/pl-json.59a5dab3.chunk.js +1 -0
  90. package/build/pt-BR-json.9410688b.chunk.js +1 -0
  91. package/build/{ru-json.c4a4f50b.chunk.js → ru-json.6a01cea6.chunk.js} +1 -1
  92. package/build/runtime~main.a3892432.js +2 -0
  93. package/build/sa-json.6359a11c.chunk.js +1 -0
  94. package/build/sk-json.2374f129.chunk.js +1 -0
  95. package/build/{sv-json.207afc0d.chunk.js → sv-json.ae6e71ea.chunk.js} +1 -1
  96. package/build/th-json.5f659396.chunk.js +1 -0
  97. package/build/{tr-json.f1a0d19d.chunk.js → tr-json.bac5dbd3.chunk.js} +1 -1
  98. package/build/transfer-tokens-list-page.ce37354b.chunk.js +16 -0
  99. package/build/zh-Hans-json.4c9706a6.chunk.js +1 -0
  100. package/build/{zh-json.085a34f4.chunk.js → zh-json.3529f1e5.chunk.js} +1 -1
  101. package/ee/server/controllers/index.js +0 -1
  102. package/ee/server/controllers/role.js +0 -39
  103. package/ee/server/controllers/user.js +1 -35
  104. package/ee/server/routes/index.js +0 -49
  105. package/ee/server/validation/role.js +28 -20
  106. package/package.json +13 -13
  107. package/server/bootstrap.js +0 -1
  108. package/server/controllers/api-token.js +4 -2
  109. package/server/controllers/permission.js +2 -4
  110. package/server/controllers/role.js +70 -23
  111. package/server/controllers/transfer/runner.js +5 -3
  112. package/server/domain/user.js +3 -0
  113. package/server/routes/roles.js +48 -0
  114. package/server/services/permission/permissions-manager/sanitize.js +2 -2
  115. package/server/services/permission/queries.js +1 -74
  116. package/server/strategies/data-transfer.js +3 -1
  117. package/server/validation/permission.js +1 -82
  118. package/server/validation/role.js +44 -0
  119. package/admin/src/assets/images/hot-air-balloon.png +0 -0
  120. package/admin/src/assets/images/upgrade-details.png +0 -0
  121. package/admin/src/components/UpgradePlanModal/index.js +0 -123
  122. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findLeafByPathAndReplace.js +0 -51
  123. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/recursivelyFindPathsBasedOnCondition.js +0 -79
  124. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/utils/constants.js +0 -3
  125. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/constants.js +0 -3
  126. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/constants.js +0 -3
  127. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/utils/constants.js +0 -3
  128. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/constants.js +0 -3
  129. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/constants.js +0 -3
  130. package/build/617f9c948fa79e6d73bd.png +0 -0
  131. package/build/6d21938306785f176538.png +0 -0
  132. package/build/7259.63e91b59.chunk.js +0 -1
  133. package/build/Admin_settingsPage.6814a96e.chunk.js +0 -177
  134. package/build/admin-edit-roles-page.bf130aaf.chunk.js +0 -1
  135. package/build/api-tokens-list-page.149903c8.chunk.js +0 -16
  136. package/build/ca-json.59c4502c.chunk.js +0 -1
  137. package/build/content-manager.d792c194.chunk.js +0 -1139
  138. package/build/de-json.dbc2cf1b.chunk.js +0 -1
  139. package/build/dk-json.52f67b15.chunk.js +0 -1
  140. package/build/es-json.c40c57dd.chunk.js +0 -1
  141. package/build/eu-json.6702a0d2.chunk.js +0 -1
  142. package/build/fr-json.ea9ec573.chunk.js +0 -1
  143. package/build/gu-json.94f0d242.chunk.js +0 -1
  144. package/build/id-json.e0d83d41.chunk.js +0 -1
  145. package/build/it-json.8be59205.chunk.js +0 -1
  146. package/build/ja-json.3008b720.chunk.js +0 -1
  147. package/build/ko-json.7d2f95b1.chunk.js +0 -1
  148. package/build/main.64fe0c37.js +0 -3928
  149. package/build/pl-json.05814145.chunk.js +0 -1
  150. package/build/pt-BR-json.d72350de.chunk.js +0 -1
  151. package/build/runtime~main.684b5fed.js +0 -2
  152. package/build/sa-json.e5e7ccaf.chunk.js +0 -1
  153. package/build/sk-json.3529b8aa.chunk.js +0 -1
  154. package/build/th-json.f664b96d.chunk.js +0 -1
  155. package/build/transfer-tokens-list-page.c6f8039a.chunk.js +0 -16
  156. package/build/zh-Hans-json.993d085f.chunk.js +0 -1
  157. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +0 -270
  158. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/utils/constants.js +0 -3
  159. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ConditionsSelect/MenuList/utils/constants.js +0 -3
  160. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/constants.js +0 -3
  161. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/constants.js +0 -3
  162. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/utils/constants.js +0 -3
  163. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/constants.js +0 -3
  164. package/ee/admin/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/constants.js +0 -3
  165. package/ee/admin/pages/SettingsPage/pages/Roles/ListPage/index.js +0 -376
  166. package/ee/admin/pages/SettingsPage/pages/Roles/ProtectedListPage/index.js +0 -12
  167. package/ee/server/controllers/permission.js +0 -21
  168. package/ee/server/validation/permission.js +0 -8
  169. package/server/domain/role.js +0 -29
  170. /package/{ee/admin → admin/src}/pages/SettingsPage/pages/Roles/CreatePage/utils/schema.js +0 -0
  171. /package/{ee/admin → admin/src}/pages/SettingsPage/pages/Roles/ListPage/reducer.js +0 -0
@@ -0,0 +1,216 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2544],{92034:function(z,U,u){"use strict";u.r(U),u.d(U,{CreatePage:function(){return ae},default:function(){return ce}});var e=u(32735),P=u(64213),r=u(13478),C=u(39161),l=u(57269),D=u(83281),V=u(33795),W=u.n(V),J=u(86834),L=u.n(J),E=u(5636),pe=u(5141),Q=u(83292),_=u(7247),ge=u(8888),G=u(72041),ie=u(5173),ee=ie.Ry().shape({name:ie.Z_().required(r.translatedErrors.required),description:ie.Z_().required(r.translatedErrors.required)});const Se=Q.default.div`
2
+ border: 1px solid ${({theme:B})=>B.colors.primary200};
3
+ background: ${({theme:B})=>B.colors.primary100};
4
+ padding: ${({theme:B})=>`${B.spaces[2]} ${B.spaces[4]}`};
5
+ color: ${({theme:B})=>B.colors.primary600};
6
+ border-radius: ${({theme:B})=>B.borderRadius};
7
+ font-size: ${12/16}rem;
8
+ font-weight: bold;
9
+ `,ae=()=>{const B=(0,r.useNotification)(),{lockApp:Z,unlockApp:j}=(0,r.useOverlayBlocker)(),{formatMessage:A}=(0,E.useIntl)(),[q,X]=(0,e.useState)(!1),{replace:te}=(0,pe.useHistory)(),w=(0,e.useRef)(),{trackUsage:oe}=(0,r.useTracking)(),Ee=(0,pe.useRouteMatch)("/settings/roles/duplicate/:id"),g=W()(Ee,"params.id",null),{isLoading:ve,data:ne}=(0,ge.U_)(),{permissions:Ae,isLoading:fe}=(0,ge.Dq)(g),ye=K=>{Z(),X(!0),oe(g?"willDuplicateRole":"willCreateNewRole"),Promise.resolve((0,r.request)("/admin/roles",{method:"POST",body:K})).then(async O=>{const{permissionsToSend:M}=w.current.getPermissions();return oe(g?"didDuplicateRole":"didCreateNewRole"),O.data.id&&!L()(M)&&await(0,r.request)(`/admin/roles/${O.data.id}/permissions`,{method:"PUT",body:{permissions:M}}),O}).then(O=>{X(!1),B({type:"success",message:{id:"Settings.roles.created",defaultMessage:"created"}}),te(`/settings/roles/${O.data.id}`)}).catch(O=>{console.error(O),X(!1),B({type:"warning",message:{id:"notification.error"}})}).finally(()=>{j()})},he=`${A({id:"Settings.roles.form.created",defaultMessage:"Created"})} ${(0,P.format)(new Date,"PPP")}`;return e.createElement(C.Main,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(D.Formik,{initialValues:{name:"",description:he},onSubmit:ye,validationSchema:ee,validateOnChange:!1},({handleSubmit:K,values:O,errors:M,handleReset:le,handleChange:se})=>e.createElement(r.Form,{noValidate:!0},e.createElement(e.Fragment,null,e.createElement(C.HeaderLayout,{primaryAction:e.createElement(C.Flex,{gap:2},e.createElement(C.Button,{variant:"secondary",onClick:()=>{le(),w.current.resetForm()},size:"L"},A({id:"app.components.Button.reset",defaultMessage:"Reset"})),e.createElement(C.Button,{onClick:K,loading:q,size:"L"},A({id:"global.save",defaultMessage:"Save"}))),title:A({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:A({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(r.Link,{startIcon:e.createElement(l.ArrowLeft,null),to:"/settings/roles"},A({id:"global.back",defaultMessage:"Back"}))}),e.createElement(C.ContentLayout,null,e.createElement(C.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(C.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(C.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(C.Flex,{justifyContent:"space-between"},e.createElement(C.Box,null,e.createElement(C.Box,null,e.createElement(C.Typography,{fontWeight:"bold"},A({id:"global.details",defaultMessage:"Details"}))),e.createElement(C.Box,null,e.createElement(C.Typography,{variant:"pi",textColor:"neutral600"},A({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(Se,null,A({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:0}))),e.createElement(C.Grid,{gap:4},e.createElement(C.GridItem,{col:6},e.createElement(C.TextInput,{name:"name",error:M.name&&A({id:M.name}),label:A({id:"global.name",defaultMessage:"Name"}),onChange:se,value:O.name})),e.createElement(C.GridItem,{col:6},e.createElement(C.Textarea,{label:A({id:"global.description",defaultMessage:"Description"}),name:"description",error:M.description&&A({id:M.description}),onChange:se},O.description))))),!ve&&!fe?e.createElement(C.Box,{shadow:"filterShadow",hasRadius:!0},e.createElement(_.Z,{isFormDisabled:!1,ref:w,permissions:Ae,layout:ne})):e.createElement(C.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(r.LoadingIndicatorPage,null))))))))};function ce(){return e.createElement(r.CheckPagePermissions,{permissions:G.Z.settings.roles.create},e.createElement(ae,null))}},7247:function(z,U,u){"use strict";u.d(U,{Z:function(){return Tn}});var e=u(32735),P=u(60216),r=u.n(P),C=u(13478),l=u(39161),D=u(23973),V=u.n(D),W=u(86834),J=u.n(W),L=u(5636),E=u(83292),pe=u(98978),Q=u.n(pe),_=u(57269),ge=u(33795),G=u.n(ge),ie=u(9086),ke=u.n(ie),ee=u(8888);const Se=E.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
+ `,ae=({onClick:t,className:n,hasConditions:o,variant:s})=>{const{formatMessage:i}=(0,L.useIntl)();return e.createElement(Se,{hasConditions:o,className:n},e.createElement(l.Button,{variant:s,startIcon:e.createElement(_.Cog,null),onClick:t},i({id:"global.settings",defaultMessage:"Settings"})))};ae.defaultProps={className:null,hasConditions:!1,variant:"tertiary"},ae.propTypes={onClick:r().func.isRequired,className:r().string,hasConditions:r().bool,variant:r().string};var ce=(0,E.default)(ae)``,B=u(97889),Z=u(81346),j=u.n(Z),A=u(23940),q=u.n(A);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:q()(o),children:s.map(i=>({label:i.displayName,value:i.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:i,onChange:a,value:c})=>{const{formatMessage:d}=(0,L.useIntl)(),p=m=>{a(i,w(t,m))};return e.createElement(l.Flex,{as:"li",background:o?"neutral100":"neutral0",paddingBottom:3,paddingTop:3},e.createElement(l.Flex,{paddingLeft:6,style:{width:180}},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600"},d({id:"Settings.permissions.conditions.can",defaultMessage:"Can"}),"\xA0"),e.createElement(l.Typography,{variant:"sigma",title:s,textColor:"primary600",ellipsis:!0},d({id:`Settings.roles.form.permissions.${s.toLowerCase()}`,defaultMessage:s})),e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600"},"\xA0",d({id:"Settings.permissions.conditions.when",defaultMessage:"When"}))),e.createElement(l.Box,{style:{maxWidth:430,width:"100%"}},e.createElement(l.MultiSelectNested,{id:i,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 Ee=oe,g=u(92891);const ve=(t,n)=>t.reduce((o,s)=>(o[s.id]=(0,g.get)(n,s.id,!1),o),{}),ne=(t,n)=>t.reduce((o,s)=>{const[i,a]=s,c=ve(a,n);return o[i]=c,o},{});var fe=(t,n,o)=>t.reduce((s,i)=>{const a=(0,g.get)(n,[...i.pathToConditionsObject,"conditions"],{}),c=ne(o,a);return s[i.pathToConditionsObject.join("..")]=c,s},{});const ye=({actions:t,headerBreadCrumbs:n,isFormDisabled:o,onClosed:s,onToggle:i})=>{const{formatMessage:a}=(0,L.useIntl)(),{availableConditions:c,modifiedData:d,onChangeConditions:p}=(0,ee.$_)(),m=(0,e.useMemo)(()=>Object.entries(j()(c,"category")),[c]),f=t.filter(({isDisplayed:y,hasSomeActionsSelected:T,hasAllActionsSelected:R})=>y&&(T||R)),h=(0,e.useMemo)(()=>fe(f,d,m),[f,d,m]),[v,k]=(0,e.useState)(h),x=(y,T)=>{k((0,B.default)(R=>{R[y]||(R[y]={}),R[y].default||(R[y].default={}),R[y].default=T}))},b=()=>{const y=Object.entries(v).reduce((T,R)=>{const[S,N]=R,F=Object.values(N).reduce((I,$)=>({...I,...$}),{});return T[S]=F,T},{});p(y),i()};return e.createElement(l.ModalLayout,{labelledBy:"condition-modal-breadcrumbs",onClose:s},e.createElement(l.ModalHeader,null,e.createElement(l.Breadcrumbs,{id:"condition-modal-breadcrumbs",label:n.join(", ")},n.map(y=>e.createElement(l.Crumb,{key:y},q()(a({id:y,defaultMessage:y})))))),e.createElement(l.ModalBody,null,f.length===0&&e.createElement(l.Typography,null,a({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,f.map(({actionId:y,label:T,pathToConditionsObject:R},S)=>{const N=R.join("..");return e.createElement(Ee,{key:y,arrayOfOptionsGroupedByCategory:m,label:T,isFormDisabled:o,isGrey:S%2===0,name:N,onChange:x,value:G()(v,N,{})})}))),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{variant:"tertiary",onClick:i},a({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(l.Button,{onClick:b},a({id:"Settings.permissions.conditions.apply",defaultMessage:"Apply"}))}))};ye.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 he=ye;const K=`${120/16}rem`,O=`${200/16}rem`,M=`${53/16}rem`;var se=E.default.div`
25
+ width: ${K};
26
+ `,Ge=(0,E.default)(l.Flex)`
27
+ padding-right: ${({theme:t})=>t.spaces[2]};
28
+ overflow: hidden;
29
+ flex: 1;
30
+ ${({isCollapsable:t})=>t&&"cursor: pointer;"}
31
+ `;const Oe=({children:t,isCollapsable:n,isActive:o,isFormDisabled:s,label:i,onChange:a,onClick:c,checkboxName:d,someChecked:p,value:m})=>{const{formatMessage:f}=(0,L.useIntl)();return e.createElement(l.Flex,{alignItems:"center",paddingLeft:6,style:{width:O,flexShrink:0}},e.createElement(l.Box,{paddingRight:2},e.createElement(l.BaseCheckbox,{name:d,"aria-label":f({id:"Settings.permissions.select-all-by-permission",defaultMessage:"Select all {label} permissions"},{label:i}),disabled:s,onValueChange:h=>a({target:{name:d,value:h}}),indeterminate:p,value:m})),e.createElement(Ge,{title:i,alignItems:"center",isCollapsable:n,...n&&{onClick:c,"aria-expanded":o,onKeyDown:({key:h})=>(h==="Enter"||h===" ")&&c(),tabIndex:0,role:"button"}},e.createElement(l.Typography,{fontWeight:o?"bold":"",textColor:o?"primary600":"neutral800",ellipsis:!0},q()(i)),t))};Oe.defaultProps={children:null,checkboxName:"",onChange(){},value:!1,someChecked:!1,isCollapsable:!1},Oe.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 He=(0,e.memo)(Oe);const We=t=>(0,g.isObject)(t)?(0,g.flattenDeep)(Object.values(t).map(n=>(0,g.isObject)(n)?We(n):n)):[];var Ce=We,$e=t=>t?Object.keys(t).reduce((n,o)=>(o!=="conditions"&&(n[o]=t[o]),n),{}):null,de=t=>{const n=$e(t),o=Ce(n);if(!o.length)return{hasAllActionsSelected:!1,hasSomeActionsSelected:!1};const s=o.every(a=>a),i=o.some(a=>a)&&!s;return{hasAllActionsSelected:s,hasSomeActionsSelected:i}},vt=(t,n,o)=>t.map(({actionId:s,isDisplayed:i,applyToProperties:a,label:c})=>{if(!i)return{actionId:s,hasSomeActionsSelected:!1,isDisplayed:i};const d=[...o.split(".."),s],p=(0,g.isEmpty)(a)?[...d,"properties","enabled"]:d,m=p.join(".."),f=(0,g.get)(n,[...d,"conditions"],null),h=Ce(f).some(b=>b);if((0,g.isEmpty)(a)){const b=(0,g.get)(n,p,!1);return{actionId:s,checkboxName:m,hasAllActionsSelected:b,hasConditions:h,hasSomeActionsSelected:b,isDisplayed:i,isParentCheckbox:!1,label:c,pathToConditionsObject:d}}const v=(0,g.get)(n,p,null),{hasAllActionsSelected:k,hasSomeActionsSelected:x}=de(v);return{actionId:s,checkboxName:m,hasAllActionsSelected:k,hasConditions:h,hasSomeActionsSelected:x,isDisplayed:i,isParentCheckbox:!0,label:c,pathToConditionsObject:d}}),xe=(0,E.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
+ `,Re=t=>`
37
+ ${l.Typography} {
38
+ color: ${t.colors.primary600};
39
+ font-weight: ${t.fontWeights.bold}
40
+ }
41
+ ${xe} {
42
+ display: block;
43
+ path {
44
+ fill: ${t.colors.primary600}
45
+ };
46
+ }
47
+ `;const Me=(t,n)=>`
48
+ ${Ke} {
49
+ background-color: ${t.colors.primary100};
50
+ color: ${t.colors.primary600};
51
+ border-radius: ${n?"2px 2px 0 0":"2px"};
52
+ }
53
+ ${Ze} {
54
+ display: flex;
55
+ }
56
+ ${ce} {
57
+ display: block;
58
+ }
59
+ &:hover {
60
+ ${Re(t)}
61
+ }
62
+
63
+ &:focus-within {
64
+ ${({theme:o,isActive:s})=>Me(o,s)}
65
+ }
66
+
67
+ `,Ke=E.default.div`
68
+ flex: 1;
69
+ display: flex;
70
+ align-items: center;
71
+ height: ${M};
72
+ background-color: ${({isGrey:t,theme:n})=>t?n.colors.neutral100:n.colors.neutral0};
73
+ border: 1px solid transparent;
74
+ `,xt=E.default.div`
75
+ display: inline-flex;
76
+ min-width: 100%;
77
+
78
+ ${ce} {
79
+ display: none;
80
+ }
81
+ ${({isActive:t,theme:n})=>t&&Me(n,t)}
82
+ &:hover {
83
+ ${({theme:t,isActive:n})=>Me(t,n)}
84
+ }
85
+ `,Ue=(0,E.default)(l.Flex)`
86
+ width: ${K};
87
+ position: relative;
88
+ `,Ze=(0,E.default)(l.Box)`
89
+ display: none;
90
+ svg {
91
+ width: 11px;
92
+ }
93
+ * {
94
+ fill: ${({theme:t})=>t.colors.primary600};
95
+ }
96
+ `,Xe=E.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
+ `,Rt=(0,E.default)(l.Box)`
105
+ position: absolute;
106
+ right: 9px;
107
+ transform: translateY(10px);
108
+ `,Ye=({availableActions:t,isActive:n,isGrey:o,isFormDisabled:s,label:i,onClickToggle:a,pathToData:c})=>{const[d,p]=(0,e.useState)(!1),{formatMessage:m}=(0,L.useIntl)(),{modifiedData:f,onChangeParentCheckbox:h,onChangeSimpleCheckbox:v}=(0,ee.$_)(),k=()=>{p(F=>!F)},x=()=>{p(!1)},b=G()(f,c.split(".."),{}),y=(0,e.useMemo)(()=>Object.keys(b).reduce((F,I)=>(F[I]=ke()(b[I],"conditions"),F),{}),[b]),{hasAllActionsSelected:T,hasSomeActionsSelected:R}=de(y),S=(0,e.useMemo)(()=>vt(t,f,c),[t,f,c]),N=S.some(({hasConditions:F})=>F);return e.createElement(xt,{isActive:n},e.createElement(Ke,{isGrey:o},e.createElement(He,{isCollapsable:!0,isFormDisabled:s,label:i,checkboxName:c,onChange:h,onClick:a,someChecked:R,value:T,isActive:n},e.createElement(Ze,{paddingLeft:2},n?e.createElement(_.ChevronUp,null):e.createElement(_.ChevronDown,null))),e.createElement(l.Flex,{style:{flex:1}},S.map(({actionId:F,hasConditions:I,hasAllActionsSelected:$,hasSomeActionsSelected:Y,isDisplayed:be,isParentCheckbox:H,checkboxName:re,label:Te})=>be?H?e.createElement(Ue,{key:F,justifyContent:"center",alignItems:"center"},I&&e.createElement(Xe,null),e.createElement(l.BaseCheckbox,{disabled:s,name:re,"aria-label":m({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${Te} ${i}`}),onValueChange:ue=>{h({target:{name:re,value:ue}})},indeterminate:Y,value:$})):e.createElement(Ue,{key:F,justifyContent:"center",alignItems:"center"},I&&e.createElement(Xe,null),e.createElement(l.BaseCheckbox,{disabled:s,indeterminate:I,name:re,onValueChange:ue=>{v({target:{name:re,value:ue}})},value:$})):e.createElement(se,{key:F}))),d&&e.createElement(he,{headerBreadCrumbs:[i,"Settings.permissions.conditions.conditions"],actions:S,isFormDisabled:s,onClosed:x,onToggle:k})),e.createElement(Rt,null,e.createElement(ce,{onClick:k,hasConditions:N})))};Ye.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 Tt=Ye,St=(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 ze=(0,E.default)(l.Flex)`
109
+ width: ${K};
110
+ flex-shrink: 0;
111
+ `,At=(0,E.default)(l.Flex)`
112
+ width: ${O};
113
+ height: ${M};
114
+ flex-shrink: 0;
115
+ `,Je=({headers:t,label:n})=>{const{formatMessage:o}=(0,L.useIntl)(),s=o({id:"Settings.roles.form.permission.property-label",defaultMessage:"{label} permissions"},{label:n});return e.createElement(l.Flex,null,e.createElement(At,{alignItems:"center",paddingLeft:6},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral500"},s)),t.map(i=>i.isActionRelatedToCurrentProperty?e.createElement(ze,{justifyContent:"center",key:i.label},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral500"},o({id:`Settings.roles.form.permissions.${i.label.toLowerCase()}`,defaultMessage:i.label}))):e.createElement(ze,{key:i.label})))};Je.propTypes={headers:r().arrayOf(r().shape({label:r().string.isRequired,isActionRelatedToCurrentProperty:r().bool.isRequired})).isRequired,label:r().string.isRequired};var Pt=Je;const kt=E.default.span`
116
+ color: ${({theme:t})=>t.colors.danger700};
117
+ padding-left: ${({theme:t})=>t.spaces[1]}px;
118
+ `;var Qe=()=>e.createElement(kt,null,"*"),Ot=(t,n)=>t.map(o=>{const s=Array.isArray(o.subjects)&&o.subjects.indexOf(n)!==-1;return{...o,isDisplayed:s}});const $t=(0,E.default)(l.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
+ `,Mt=E.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
+ `,Fe=t=>e.createElement($t,null,e.createElement(Mt,{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"})));Fe.defaultProps={fill:"primary200"},Fe.propTypes={fill:r().string};var Ft=(0,e.memo)(Fe);const _e=(0,E.default)(l.Flex)`
137
+ width: ${K};
138
+ position: relative;
139
+ `,Lt=(0,E.default)(l.Flex)`
140
+ height: ${M};
141
+ `,Bt=(0,E.default)(l.Box)`
142
+ padding-left: ${31/16}rem;
143
+ `,jt=(0,E.default)(l.Box)`
144
+ border-left: ${({isVisible:t,theme:n})=>t?`4px solid ${n.colors.primary200}`:"4px solid transparent"};
145
+ `,Dt=(0,E.default)(l.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
+ ${xe} {
151
+ display: block;
152
+ color: ${n.colors.neutral100};
153
+ }
154
+ &:hover {
155
+ ${Re(n)}
156
+ }
157
+ `}
158
+ ${({isActive:t,theme:n})=>t&&Re(n)};
159
+ `,It=E.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
+ `,Le=({childrenForm:t,isFormDisabled:n,recursiveLevel:o,pathToDataFromActionRow:s,propertyActions:i,parentName:a,propertyName:c})=>{const{formatMessage:d}=(0,L.useIntl)(),{modifiedData:p,onChangeParentCheckbox:m,onChangeSimpleCheckbox:f}=(0,ee.$_)(),[h,v]=(0,e.useState)(null),k=b=>{v(y=>y===b?null:b)},x=(0,e.useMemo)(()=>h?t.find(({value:b})=>b===h):null,[h,t]);return e.createElement(Bt,null,e.createElement(It,null),t.map(({label:b,value:y,required:T,children:R},S)=>{const N=S+1<t.length,F=Array.isArray(R),I=h===y;return e.createElement(jt,{key:y,isVisible:N},e.createElement(Lt,null,e.createElement(Ft,{color:"primary200"}),e.createElement(l.Flex,{style:{flex:1}},e.createElement(Dt,{level:o,isActive:I,isCollapsable:F},e.createElement(Ge,{alignItems:"center",isCollapsable:F,...F&&{onClick:()=>k(y),"aria-expanded":I,onKeyDown:({key:$})=>($==="Enter"||$===" ")&&k(y),tabIndex:0,role:"button"},title:b},e.createElement(l.Typography,{ellipsis:!0},q()(b)),T&&e.createElement(Qe,null),e.createElement(xe,{$isActive:I}))),e.createElement(l.Flex,{style:{flex:1}},i.map(({actionId:$,label:Y,isActionRelatedToCurrentProperty:be})=>{if(!be)return e.createElement(se,{key:$});const H=[...s.split(".."),$,"properties",c,...a.split(".."),y],re=G()(p,H,!1);if(!R)return e.createElement(_e,{key:Y,justifyContent:"center",alignItems:"center"},e.createElement(l.BaseCheckbox,{disabled:n,name:H.join(".."),"aria-label":d({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${a} ${b} ${Y}`}),onValueChange:me=>{f({target:{name:H.join(".."),value:me}})},value:re}));const{hasAllActionsSelected:Te,hasSomeActionsSelected:ue}=de(re);return e.createElement(_e,{key:Y,justifyContent:"center",alignItems:"center"},e.createElement(l.BaseCheckbox,{key:Y,disabled:n,name:H.join(".."),"aria-label":d({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${a} ${b} ${Y}`}),onValueChange:me=>{m({target:{name:H.join(".."),value:me}})},value:Te,indeterminate:ue}))})))),x&&I&&e.createElement(l.Box,{paddingBottom:2},e.createElement(Le,{isFormDisabled:n,parentName:`${a}..${y}`,pathToDataFromActionRow:s,propertyActions:i,propertyName:c,recursiveLevel:o+1,childrenForm:x.children})))}))};Le.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 qt=(0,e.memo)(Le);const wt=t=>t.reduce((o,s)=>(s.isActionRelatedToCurrentProperty&&o.push(s.actionId),o),[]);var Nt=(t,n,o,s,i)=>{const c=wt(t).reduce((d,p)=>{const m=[...o.split(".."),p,"properties",s,i],f=(0,g.get)(n,m,!1);return d[p]=f,d},{});return de(c)};const et=(0,E.default)(l.Flex)`
167
+ width: ${K};
168
+ position: relative;
169
+ `,Vt=(0,E.default)(l.Flex)`
170
+ height: ${M};
171
+ flex: 1;
172
+
173
+ ${({isCollapsable:t,theme:n})=>t&&`
174
+ ${xe} {
175
+ display: block;
176
+ color: ${n.colors.neutral100};
177
+ }
178
+ &:hover {
179
+ ${Re(n)}
180
+ }
181
+ `}
182
+ ${({isActive:t,theme:n})=>t&&Re(n)};
183
+ `,Be=({childrenForm:t,label:n,isFormDisabled:o,name:s,required:i,pathToData:a,propertyActions:c,propertyName:d,isOdd:p})=>{const{formatMessage:m}=(0,L.useIntl)(),[f,h]=(0,e.useState)(null),{modifiedData:v,onChangeCollectionTypeLeftActionRowCheckbox:k,onChangeParentCheckbox:x,onChangeSimpleCheckbox:b}=(0,ee.$_)(),y=f===s,T=(0,e.useMemo)(()=>Array.isArray(t)?t:[],[t]),R=T.length>0,S=(0,e.useCallback)(()=>{R&&h($=>$===s?null:s)},[R,s]),N=({target:{value:$}})=>{k(a,d,s,$)},{hasAllActionsSelected:F,hasSomeActionsSelected:I}=(0,e.useMemo)(()=>Nt(c,v,a,d,s),[c,v,a,d,s]);return e.createElement(e.Fragment,null,e.createElement(Vt,{alignItems:"center",isCollapsable:R,isActive:y,background:p?"neutral100":"neutral0"},e.createElement(l.Flex,null,e.createElement(He,{onChange:N,onClick:S,isCollapsable:R,isFormDisabled:o,label:n,someChecked:I,value:F,isActive:y},i&&e.createElement(Qe,null),e.createElement(xe,{$isActive:y})),e.createElement(l.Flex,null,c.map(({label:$,isActionRelatedToCurrentProperty:Y,actionId:be})=>{if(!Y)return e.createElement(se,{key:$});const H=[...a.split(".."),be,"properties",d,s];if(!R){const me=G()(v,H,!1);return e.createElement(et,{key:be,justifyContent:"center",alignItems:"center"},e.createElement(l.BaseCheckbox,{disabled:o,name:H.join(".."),"aria-label":m({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${s} ${$}`}),onValueChange:Sn=>{b({target:{name:H.join(".."),value:Sn}})},value:me}))}const re=G()(v,H,{}),{hasAllActionsSelected:Te,hasSomeActionsSelected:ue}=de(re);return e.createElement(et,{key:$,justifyContent:"center",alignItems:"center"},e.createElement(l.BaseCheckbox,{disabled:o,name:H.join(".."),onValueChange:me=>{x({target:{name:H.join(".."),value:me}})},"aria-label":m({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${s} ${$}`}),value:Te,indeterminate:ue}))})))),y&&e.createElement(qt,{childrenForm:T,isFormDisabled:o,parentName:s,pathToDataFromActionRow:a,propertyName:d,propertyActions:c,recursiveLevel:0}))};Be.defaultProps={childrenForm:[],required:!1},Be.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 Gt=(0,e.memo)(Be);const Ht=E.default.div`
184
+ display: inline-flex;
185
+ flex-direction: column;
186
+ min-width: 0;
187
+ `,tt=({availableActions:t,childrenForm:n,isFormDisabled:o,label:s,pathToData:i,propertyName:a})=>{const c=(0,e.useMemo)(()=>St(t,a),[t,a]);return e.createElement(Ht,null,e.createElement(Pt,{label:s,headers:c}),e.createElement(l.Box,null,n.map(({children:d,label:p,value:m,required:f},h)=>e.createElement(Gt,{childrenForm:d,key:m,label:p,isFormDisabled:o,name:m,required:f,propertyActions:c,pathToData:i,propertyName:a,isOdd:h%2===0}))))};tt.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 Wt=tt;const Kt=E.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
+ `,nt=({allActions:t,contentTypeName:n,label:o,index:s,isActive:i,isFormDisabled:a,onClickToggleCollapse:c,pathToData:d,properties:p})=>{const m=(0,e.useCallback)(()=>{c(n)},[n,c]),f=(0,e.useMemo)(()=>Ot(t,n),[t,n]);return e.createElement(Kt,{isActive:i},e.createElement(Tt,{availableActions:f,isActive:i,isGrey:s%2===0,isFormDisabled:a,label:o,onClickToggle:m,pathToData:d}),i&&p.map(({label:h,value:v,children:k})=>e.createElement(Wt,{availableActions:f,childrenForm:k,isFormDisabled:a,label:h,pathToData:d,propertyName:v,key:v})))};nt.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 Ut=nt;const je=({actions:t,isFormDisabled:n,pathToData:o,subjects:s})=>{const[i,a]=(0,e.useState)(null),c=d=>{a(i===d?null:d)};return s.map(({uid:d,label:p,properties:m},f)=>e.createElement(Ut,{allActions:t,key:d,contentTypeName:d,label:p,isActive:i===d,isFormDisabled:n,index:f,onClickToggleCollapse:c,pathToData:`${o}..${d}`,properties:m}))};je.defaultProps={actions:[],subjects:[]},je.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 Zt=(0,e.memo)(je),Xt=t=>t.filter(({subjects:n})=>n&&n.length);const Yt=t=>t.map(({actionId:n})=>n),zt=(t,n)=>t.reduce((o,s)=>(Object.keys(n).forEach(i=>{const a=(0,g.get)(n,[i,s],{}),c={[i]:$e(a)};o[s]?o[s]={...o[s],...c}:o[s]=c}),o),{});var Jt=(t,n)=>{const o=Yt(t),s=zt(o,n);return Object.keys(s).reduce((a,c)=>(a[c]=de(s[c]),a),{})};const Qt=(0,E.default)(l.Flex)`
193
+ width: ${K};
194
+ flex-shrink: 0;
195
+ `,De=({actions:t,isFormDisabled:n,kind:o})=>{const{formatMessage:s}=(0,L.useIntl)(),{modifiedData:i,onChangeCollectionTypeGlobalActionCheckbox:a}=(0,ee.$_)(),c=(0,e.useMemo)(()=>Xt(t),[t]),d=(0,e.useMemo)(()=>Jt(c,i[o]),[i,c,o]);return e.createElement(l.Box,{paddingBottom:4,paddingTop:6,style:{paddingLeft:O}},e.createElement(l.Flex,{gap:0},c.map(({label:p,actionId:m})=>e.createElement(Qt,{direction:"column",alignItems:"center",justifyContent:"center",key:m,gap:3},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral500"},s({id:`Settings.roles.form.permissions.${p.toLowerCase()}`,defaultMessage:p})),e.createElement(l.BaseCheckbox,{disabled:n,onValueChange:f=>{a(o,m,f)},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:G()(d,[m,"hasAllActionsSelected"],!1),indeterminate:G()(d,[m,"hasSomeActionsSelected"],!1)})))))};De.defaultProps={actions:[]},De.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 _t=(0,e.memo)(De);const en=(0,E.default)(l.Box)`
196
+ overflow-x: auto;
197
+ `,st=({isFormDisabled:t,kind:n,layout:{actions:o,subjects:s}})=>{const i=Q()([...s],"label");return e.createElement(en,{background:"neutral0"},e.createElement(_t,{actions:o,kind:n,isFormDisabled:t}),e.createElement(Zt,{actions:o,isFormDisabled:t,pathToData:n,subjects:i}))};st.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 ot=(0,e.memo)(st),tn=u(66694);const rt=({children:t,value:n})=>e.createElement(tn.$l.Provider,{value:n},t);rt.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 nn=rt,sn=(t,n,o)=>t.map(s=>{const i=[...o,s.action,"properties","enabled"],a=(0,g.get)(n,i,!1),c=(0,g.get)(n,[...o,s.action,"conditions"],{}),d=Ce(c).some(p=>p);return{...s,isDisplayed:a,checkboxName:i.join(".."),hasSomeActionsSelected:a,value:a,hasConditions:d,label:s.displayName,actionId:s.action,pathToConditionsObject:[...o,s.action]}}),on=t=>{const n=Object.entries(t).reduce((s,i)=>{const[a,{conditions:c}]=i;return s[a]=c,s},{});return Ce(n).some(s=>s)};const rn=E.default.div`
198
+ flex: 1;
199
+ align-self: center;
200
+ border-top: 1px solid ${({theme:t})=>t.colors.neutral150};
201
+ `,an=E.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
+ `,it=({categoryName:t,isFormDisabled:n,subCategoryName:o,actions:s,pathToData:i})=>{const[a,c]=(0,e.useState)(!1),{modifiedData:d,onChangeParentCheckbox:p,onChangeSimpleCheckbox:m}=(0,ee.$_)(),{formatMessage:f}=(0,L.useIntl)(),h=G()(d,i,{}),v=(0,e.useMemo)(()=>Object.keys(h).reduce((S,N)=>(S[N]=$e(h[N]),S),{}),[h]),{hasAllActionsSelected:k,hasSomeActionsSelected:x}=de(v),b=()=>{c(S=>!S)},y=()=>{c(!1)},T=sn(s,d,i),R=on(G()(d,[...i],{}));return e.createElement(e.Fragment,null,e.createElement(l.Box,null,e.createElement(l.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(l.Box,{paddingRight:4},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600"},o)),e.createElement(rn,null),e.createElement(l.Box,{paddingLeft:4},e.createElement(l.Checkbox,{name:i.join(".."),disabled:n,onValueChange:S=>{p({target:{name:i.join(".."),value:S}})},indeterminate:x,value:k},f({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(l.Flex,{paddingTop:6,paddingBottom:6},e.createElement(l.Grid,{gap:2,style:{flex:1}},T.map(({checkboxName:S,value:N,action:F,displayName:I,hasConditions:$})=>e.createElement(l.GridItem,{col:3,key:F},e.createElement(an,{disabled:n,hasConditions:$},e.createElement(l.Checkbox,{name:S,disabled:n,onValueChange:Y=>{m({target:{name:S,value:Y}})},value:N},I))))),e.createElement(ce,{hasConditions:R,onClick:b}))),a&&e.createElement(he,{headerBreadCrumbs:[t,o],actions:T,isFormDisabled:n,onClosed:y,onToggle:b}))};it.propTypes={actions:r().array.isRequired,categoryName:r().string.isRequired,isFormDisabled:r().bool.isRequired,subCategoryName:r().string.isRequired,pathToData:r().array.isRequired};var ln=it;const Ie=({childrenForm:t,kind:n,name:o,isOpen:s,isFormDisabled:i,isWhite:a,onOpenCategory:c,pathToData:d})=>{const{formatMessage:p}=(0,L.useIntl)(),m=()=>{c(o)},f=(0,e.useMemo)(()=>o.split("::").pop(),[o]);return e.createElement(l.Accordion,{expanded:s,onToggle:m,id:`accordion-${o}`,variant:a?"primary":"secondary"},e.createElement(l.AccordionToggle,{title:q()(f),description:`${p({id:"Settings.permissions.category"},{category:f})} ${n==="plugins"?"plugin":n}`}),e.createElement(l.AccordionContent,null,e.createElement(l.Box,{padding:6},t.map(({actions:h,subCategoryName:v,subCategoryId:k})=>e.createElement(ln,{key:v,actions:h,categoryName:f,isFormDisabled:i,subCategoryName:v,pathToData:[...d,k]})))))};Ie.defaultProps={},Ie.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 cn=Ie;const at=({isFormDisabled:t,kind:n,layout:o})=>{const[s,i]=(0,e.useState)(null),a=c=>{i(c===s?null:c)};return e.createElement(l.Box,{padding:6,background:"neutral0"},o.map(({category:c,categoryId:d,childrenForm:p},m)=>e.createElement(cn,{key:c,childrenForm:p,kind:n,isFormDisabled:t,isOpen:s===c,isWhite:m%2===1,name:c,onOpenCategory:a,pathToData:[n,d]})))};at.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 lt=at,ct=(t,n,o)=>t.find(s=>s.action===n&&s.subject===o);const dt=(t,n=[])=>t.reduce((o,s)=>(o[s.id]=n.indexOf(s.id)!==-1,o),{}),ut=({children:t},n,o="")=>t.reduce((s,i)=>{if(i.children)return{...s,[i.value]:ut(i,n,`${o}${i.value}.`)};const a=n.indexOf(`${o}${i.value}`)!==-1;return s[i.value]=a,s},{}),dn=(t,n,o)=>t.reduce((s,i)=>{const a=n.properties.find(({value:c})=>c===i);if(a){const c=(0,g.get)(o,["properties",a.value],[]),d=ut(a,c);s.properties[i]=d}return s},{properties:{}}),un=(t,n)=>n.reduce((o,s)=>{const i=t.find(({uid:a})=>a===s)||null;return i&&(o[s]=i),o},{});var mt=({subjects:t},n,o,s=[])=>n.reduce((i,a)=>{const c=a.subjects,d=un(t,c);if((0,g.isEmpty)(d))return i;const p=Object.keys(d).reduce((m,f)=>{const{actionId:h,applyToProperties:v}=a,b=d[f].properties.map(({value:S})=>S).every(S=>(v||[]).indexOf(S)===-1),y=ct(s,h,f),T=dt(o,(0,g.get)(y,"conditions",[]));if((0,g.isEmpty)(v)||b)return(0,g.set)(m,[f,h],{properties:{enabled:y!==void 0},conditions:T}),m;const R=dn(v,d[f],y);return(0,g.set)(m,[f,h],{...R,conditions:T}),m},{});return(0,g.merge)(i,p)},{});const mn=(t,n,o)=>t.reduce((s,i)=>{const a=ct(o,i.action,null);return s[i.action]={properties:{enabled:a!==void 0},conditions:dt(n,(0,g.get)(a,"conditions",[]))},s},{}),pn=(t,n,o)=>t.reduce((s,i)=>(s[i.subCategoryId]=mn(i.actions,n,o),s),{});var pt=(t,n,o=[])=>t.reduce((s,{categoryId:i,childrenForm:a})=>{const c=pn(a,n,o);return s[i]=c,s},{});const gt=t=>t.split(" ").join("-");var ft=(t,n)=>Object.entries(j()(t,n)).map(([o,s])=>({category:o,categoryId:gt(o),childrenForm:Object.entries(j()(s,"subCategory")).map(([i,a])=>({subCategoryName:i,subCategoryId:gt(i),actions:a}))})),gn=(t,n)=>{const{conditions:o,sections:{collectionTypes:s,singleTypes:i,plugins:a,settings:c}}=t,d={collectionTypes:s,singleTypes:i,plugins:ft(a,"plugin"),settings:ft(c,"category")},p={collectionTypes:mt(s,s.actions||[],o,n),singleTypes:mt(i,i.actions||[],o,n),plugins:pt(d.plugins,o,n),settings:pt(d.settings,o,n)};return{initialData:p,modifiedData:p,layouts:d}};const yt=t=>Object.keys(t).reduce((n,o)=>{const s=t[o];if((0,g.isObject)(s)&&!(0,g.has)(s,"conditions"))return{...n,[o]:yt(s)};if((0,g.isObject)(s)&&(0,g.has)(s,"conditions")&&!Ce((0,g.omit)(s,"conditions")).some(a=>a)){const a=Object.keys(s.conditions).reduce((c,d)=>(c[d]=!1,c),{});return{...n,[o]:{...s,conditions:a}}}return n[o]=s,n},{});var qe=yt;const ht=(t,n)=>Object.keys(t).reduce((o,s)=>{const i=t[s];return s==="conditions"?(o[s]=i,o):(0,g.isObject)(i)?{...o,[s]:ht(i,n)}:(o[s]=n,o)},{});var Pe=ht;const fn={initialData:{},modifiedData:{},layouts:{}};var yn=(t,n)=>(0,B.default)(t,o=>{switch(n.type){case"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX":{const{collectionTypeKind:s,actionId:i,value:a}=n,c=["modifiedData",s];Object.keys((0,g.get)(t,c)).forEach(d=>{const p=(0,g.get)(t,[...c,d,i],void 0);if(p){let m=Pe(p,a);if(!a&&m.conditions){const f=Pe(m.conditions,!1);m={...m,conditions:f}}(0,g.set)(o,[...c,d,i],m)}});break}case"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX":{const{pathToCollectionType:s,propertyName:i,rowName:a,value:c}=n;let d=(0,g.cloneDeep)(t.modifiedData);const p=s.split(".."),m=(0,g.get)(d,p,{});Object.keys(m).forEach(f=>{if((0,g.has)(m[f],`properties.${i}`)){const h=(0,g.get)(m,[f,"properties",i,a]),v=[...p,f,"properties",i,a];if(!(0,g.isObject)(h))(0,g.set)(d,v,c);else{const k=Pe(h,c);(0,g.set)(d,v,k)}}}),c||(d=qe(d)),(0,g.set)(o,"modifiedData",d);break}case"ON_CHANGE_CONDITIONS":{Object.entries(n.conditions).forEach(s=>{const[i,a]=s;(0,g.set)(o,["modifiedData",...i.split(".."),"conditions"],a)});break}case"ON_CHANGE_SIMPLE_CHECKBOX":{let s=(0,g.cloneDeep)(t.modifiedData);(0,g.set)(s,[...n.keys.split("..")],n.value),n.value||(s=qe(s)),(0,g.set)(o,"modifiedData",s);break}case"ON_CHANGE_TOGGLE_PARENT_CHECKBOX":{const{keys:s,value:i}=n,a=[...s.split("..")];let c=(0,g.cloneDeep)(t.modifiedData);const d=(0,g.get)(c,a,{}),p=Pe(d,i);(0,g.set)(c,a,p),i||(c=qe(c)),(0,g.set)(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 we=t=>Object.entries(t).filter(([,n])=>n).map(([n])=>n),hn=t=>{const[n,{conditions:o}]=t;return{action:n,subject:null,conditions:we(o),properties:{}}},Cn=t=>Object.values(t).reduce((n,o)=>{const s=Object.entries(o).reduce((i,a)=>{const[,{properties:{enabled:c}}]=a;if(!c)return i;const d=hn(a);return i.push(d),i},[]);return[...n,...s]},[]);var Ct=t=>Object.values(t).reduce((n,o)=>{const s=Cn(o);return[...n,...s]},[]);const bt=(t,n="")=>Object.entries(t).reduce((o,s)=>{const[i,a]=s;return(0,g.isObject)(a)?[...o,...bt(a,`${n}${i}.`)]:(a&&!(0,g.isObject)(a)&&o.push(`${n}${i}`),o)},[]),bn=(t,n,{conditions:o,properties:s})=>Object.entries(s).reduce((i,a)=>{const[c,d]=a;return i.properties[c]=bt(d),i},{action:t,subject:n,conditions:we(o),properties:{}}),En=(t,n,{conditions:o})=>({action:t,subject:n,properties:{},conditions:we(o)}),vn=(t,n)=>Object.entries(n).reduce((s,i)=>{const[a,c]=i;if(!Ce(c).some(m=>m))return s;if(!(0,g.has)(c,"properties.enabled")){const m=bn(a,t,c);return[...s,m]}if(!c.properties.enabled)return s;const p=En(a,t,c);return s.push(p),s},[]);var Et=t=>Object.entries(t).reduce((o,s)=>{const[i,a]=s,c=vn(i,a);return[...o,...c]},[]),xn=t=>{const n=Ct(t.plugins),o=Ct(t.settings),s=Et(t.collectionTypes),i=Et(t.singleTypes);return[...n,...o,...s,...i]},Rn=[{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 Ne=(0,e.forwardRef)(({layout:t,isFormDisabled:n,permissions:o},s)=>{const[{initialData:i,layouts:a,modifiedData:c},d]=(0,e.useReducer)(yn,fn,()=>gn(t,o)),{formatMessage:p}=(0,L.useIntl)();(0,e.useImperativeHandle)(s,()=>({getPermissions(){const x=(0,C.difference)(i.collectionTypes,c.collectionTypes),b=(0,C.difference)(i.singleTypes,c.singleTypes),y={...x,...b};let T;return J()(y)?T=!1:T=Object.values(y).some(R=>Object.values(R).some(S=>V()(S,"conditions"))),{permissionsToSend:xn(c),didUpdateConditions:T}},resetForm(){d({type:"RESET_FORM"})},setFormAfterSubmit(){d({type:"SET_FORM_AFTER_SUBMIT"})}}));const m=(x,b,y,T)=>{d({type:"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",pathToCollectionType:x,propertyName:b,rowName:y,value:T})},f=(x,b,y)=>{d({type:"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",collectionTypeKind:x,actionId:b,value:y})},h=x=>{d({type:"ON_CHANGE_CONDITIONS",conditions:x})},v=(0,e.useCallback)(({target:{name:x,value:b}})=>{d({type:"ON_CHANGE_SIMPLE_CHECKBOX",keys:x,value:b})},[]),k=(0,e.useCallback)(({target:{name:x,value:b}})=>{d({type:"ON_CHANGE_TOGGLE_PARENT_CHECKBOX",keys:x,value:b})},[]);return e.createElement(nn,{value:{availableConditions:t.conditions,modifiedData:c,onChangeConditions:h,onChangeSimpleCheckbox:v,onChangeParentCheckbox:k,onChangeCollectionTypeLeftActionRowCheckbox:m,onChangeCollectionTypeGlobalActionCheckbox:f}},e.createElement(l.TabGroup,{id:"tabs",label:p({id:"Settings.permissions.users.tabs.label",defaultMessage:"Tabs Permissions"})},e.createElement(l.Tabs,null,Rn.map(x=>e.createElement(l.Tab,{key:x.id},p({id:x.labelId,defaultMessage:x.defaultMessage})))),e.createElement(l.TabPanels,{style:{position:"relative"}},e.createElement(l.TabPanel,null,e.createElement(ot,{layout:a.collectionTypes,kind:"collectionTypes",isFormDisabled:n})),e.createElement(l.TabPanel,null,e.createElement(ot,{layout:a.singleTypes,kind:"singleTypes",isFormDisabled:n})),e.createElement(l.TabPanel,null,e.createElement(lt,{layout:a.plugins,kind:"plugins",isFormDisabled:n})),e.createElement(l.TabPanel,null,e.createElement(lt,{layout:a.settings,kind:"settings",isFormDisabled:n})))))});Ne.defaultProps={permissions:[],layout:{conditions:[],sections:{collectionTypes:{},singleTypes:{actions:[]},settings:[],plugins:[]}}},Ne.propTypes={layout:r().object,isFormDisabled:r().bool.isRequired,permissions:r().array};var Tn=(0,e.memo)(Ne)},33778:function(z,U,u){"use strict";u.r(U),u.d(U,{default:function(){return B}});var e=u(32735),P=u(13478),r=u(5141),C=u(72041),l=u(39161),D=u(83281),V=u(57269),W=u(33795),J=u.n(W),L=u(5636),E=u(7247),pe=u(60216),Q=u.n(pe);const _=({disabled:Z,role:j,values:A,errors:q,onChange:X,onBlur:te})=>{const{formatMessage:w}=(0,L.useIntl)();return e.createElement(l.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(l.Flex,{justifyContent:"space-between"},e.createElement(l.Box,null,e.createElement(l.Box,null,e.createElement(l.Typography,{fontWeight:"bold"},j?j.name:w({id:"global.details",defaultMessage:"Details"}))),e.createElement(l.Box,null,e.createElement(l.Typography,{textColor:"neutral500",variant:"pi"},j?j.description:w({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(l.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:j.usersCount}))),e.createElement(l.Grid,{gap:4},e.createElement(l.GridItem,{col:6},e.createElement(l.TextInput,{disabled:Z,name:"name",error:q.name&&w({id:q.name}),label:w({id:"global.name",defaultMessage:"Name"}),onChange:X,onBlur:te,value:A.name||""})),e.createElement(l.GridItem,{col:6},e.createElement(l.Textarea,{disabled:Z,label:w({id:"global.description",defaultMessage:"Description"}),name:"description",error:q.name&&w({id:q.name}),onChange:X,onBlur:te},A.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 ge=_,G=u(8888),ie=u(5173),ee=ie.Ry().shape({name:ie.Z_().required(P.translatedErrors.required)}),ae=()=>{const Z=(0,P.useNotification)(),{formatMessage:j}=(0,L.useIntl)(),{params:{id:A}}=(0,r.useRouteMatch)("/settings/roles/:id"),[q,X]=(0,e.useState)(!1),te=(0,e.useRef)(),{lockApp:w,unlockApp:oe}=(0,P.useOverlayBlocker)(),{trackUsage:Ee}=(0,P.useTracking)(),{isLoading:g,data:ve}=(0,G.U_)(A),{role:ne,permissions:Ae,isLoading:fe,onSubmitSucceeded:ye}=(0,G.Dq)(A),he=async O=>{try{w(),X(!0);const{permissionsToSend:M,didUpdateConditions:le}=te.current.getPermissions();await(0,P.request)(`/admin/roles/${A}`,{method:"PUT",body:O}),ne.code!=="strapi-super-admin"&&(await(0,P.request)(`/admin/roles/${A}/permissions`,{method:"PUT",body:{permissions:M}}),le&&Ee("didUpdateConditions")),te.current.setFormAfterSubmit(),ye({name:O.name,description:O.description}),Z({type:"success",message:{id:"notification.success.saved"}})}catch(M){console.error(M.response);const le=J()(M,"response.payload.message","An error occured"),se=J()(M,"response.payload.data.permissions[0]",le);Z({type:"warning",message:se})}finally{X(!1),oe()}},K=ne.code==="strapi-super-admin";return e.createElement(l.Main,null,e.createElement(P.SettingsPageTitle,{name:"Roles"}),e.createElement(D.Formik,{enableReinitialize:!0,initialValues:{name:ne.name,description:ne.description},onSubmit:he,validationSchema:ee,validateOnChange:!1},({handleSubmit:O,values:M,errors:le,handleChange:se,handleBlur:Ve})=>e.createElement("form",{onSubmit:O},e.createElement(l.HeaderLayout,{primaryAction:e.createElement(l.Flex,{gap:2},e.createElement(l.Button,{disabled:ne.code==="strapi-super-admin",onClick:O,loading:q,size:"L"},j({id:"global.save",defaultMessage:"Save"}))),title:j({id:"Settings.roles.edit.title",defaultMessage:"Edit a role"}),subtitle:j({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(P.Link,{startIcon:e.createElement(V.ArrowLeft,null),to:"/settings/roles"},j({id:"global.back",defaultMessage:"Back"}))}),e.createElement(l.ContentLayout,null,e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(ge,{isLoading:fe,disabled:K,errors:le,values:M,onChange:se,onBlur:Ve,role:ne}),!g&&!fe?e.createElement(l.Box,{shadow:"filterShadow",hasRadius:!0},e.createElement(E.Z,{isFormDisabled:K,permissions:Ae,ref:te,layout:ve})):e.createElement(l.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(P.LoadingIndicatorPage,null)))))))},B=()=>{const Z=(0,e.useMemo)(()=>({read:C.Z.settings.roles.read,update:C.Z.settings.roles.update}),[]),{isLoading:j,allowedActions:{canRead:A,canUpdate:q}}=(0,P.useRBAC)(Z);return j?e.createElement(P.LoadingIndicatorPage,null):!A&&!q?e.createElement(r.Redirect,{to:"/"}):e.createElement(ae,null)}},84802:function(z){function U(u,e,P,r){for(var C=-1,l=u==null?0:u.length;++C<l;){var D=u[C];e(r,D,P(D),u)}return r}z.exports=U},62435:function(z,U,u){var e=u(56671);function P(r,C,l,D){return e(r,function(V,W,J){C(D,V,l(V),J)}),D}z.exports=P},85580:function(z,U,u){var e=u(84802),P=u(62435),r=u(88904),C=u(77236);function l(D,V){return function(W,J){var L=C(W)?e:P,E=V?V():{};return L(W,D,r(J,2),E)}}z.exports=l},81346:function(z,U,u){var e=u(40999),P=u(85580),r=Object.prototype,C=r.hasOwnProperty,l=P(function(D,V,W){C.call(D,W)?D[W].push(V):e(D,W,[V])});z.exports=l}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,u,e){e.r(u),e.d(u,{default:function(){return k}});var t=e(32735),a=e(13478),n=e(5141),g=e(92891),l=e(72041),d=e(41925),o=e(5636),p=e(60216),m=e.n(p),c=e(88423),h=e.n(c),P=e(33795),A=e.n(P),W=e(9086),T=e.n(W),K=e(84968),Z=e(83281),s=e(39161),f=e(57269),v=e(64421);const b=async y=>{const{get:_}=(0,a.getFetchClient)(),{data:r}=await _(`/admin/users/${y}`);return r.data},G=async(y,_)=>{const{put:r}=(0,a.getFetchClient)(),{data:M}=await r(`/admin/users/${y}`,_);return M.data};var H=[[{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}}]],C=e(1057),Y=e(4397);const j=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),z=["email","firstname","lastname","username","isActive","roles"],F=y=>{let{canUpdate:_}=y;const{formatMessage:r}=(0,o.useIntl)(),{params:{id:M}}=(0,n.useRouteMatch)("/settings/users/:id"),{push:U}=(0,n.useHistory)(),{setUserDisplayName:Q}=(0,a.useAppInfos)(),S=(0,a.useNotification)(),{lockApp:q,unlockApp:ee}=(0,a.useOverlayBlocker)();(0,a.useFocusWhenNavigate)();const{status:te,data:x}=(0,K.useQuery)(["user",M],()=>b(M),{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)}}),ae=async(i,E)=>{q();try{const D=await G(M,T()(i,"confirmPassword"));S({type:"success",message:r({id:"notification.success.saved",defaultMessage:"Saved"})});const O=a.auth.getUserInfo();if(M.toString()===O.id.toString()){a.auth.setUserInfo(D);const B=A()(i,"username")||(0,v.Pp)(i.firstname,i.lastname);Q(B)}E.setValues(h()(i,z))}catch(D){const O=(0,v.Iz)(D.response.data),B=Object.keys(O).reduce((N,L)=>(N[L]=O[L].id,N),{});E.setErrors(B),S({type:"warning",message:A()(D,"response.data.error.message","notification.error")})}ee()},X=te!=="success",se=X?{id:"app.containers.Users.EditPage.header.label-loading",defaultMessage:"Edit user"}:{id:"app.containers.Users.EditPage.header.label",defaultMessage:"Edit {name}"},$=Object.keys(h()(x,z)).reduce((i,E)=>E==="roles"?(i[E]=(x?.roles||[]).map(D=>{let{id:O}=D;return O}),i):(i[E]=x?.[E],i),{}),ne=$.username||(0,v.Pp)($.firstname,$.lastname),J=r(se,{name:ne});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(f.Check,null),type:"button",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.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:ae,initialValues:$,validateOnChange:!1,validationSchema:C.YM},i=>{let{errors:E,values:D,handleChange:O,isSubmitting:B}=i;return t.createElement(a.Form,null,t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:B||!_,startIcon:t.createElement(f.Check,null),loading:B,type:"submit",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.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(j,{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},H.map(N=>N.map(L=>t.createElement(s.GridItem,(0,d.Z)({key:L.name},L.size),t.createElement(a.GenericInput,(0,d.Z)({},L,{disabled:!_,error:E[L.name],onChange:O,value:D[L.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(Y.Z,{disabled:!_,error:E.roles,onChange:O,value:D.roles}))))))))}))};F.propTypes={canUpdate:m().bool.isRequired};var w=F,k=()=>{const y=(0,a.useNotification)(),_=(0,t.useMemo)(()=>({read:l.Z.settings.users.read,update:l.Z.settings.users.update}),[]),{isLoading:r,allowedActions:{canRead:M,canUpdate:U}}=(0,a.useRBAC)(_),{state:Q}=(0,n.useLocation)(),S=(0,g.get)(Q,"from","/");return(0,t.useEffect)(()=>{r||!M&&!U&&y({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}})},[r,M,U,y]),r?t.createElement(a.LoadingIndicatorPage,null):!M&&!U?t.createElement(n.Redirect,{to:S}):t.createElement(w,{canUpdate:U})}},76779:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(39161),l=e.n(g),d=e(13478),o=e.n(d),p=e(57269),m=e.n(p),c=e(59087),h=e.n(c),P=e(5636);const A=({children:W,target:T})=>{const K=(0,d.useNotification)(),{formatMessage:Z}=(0,P.useIntl)(),s=()=>{K({type:"info",message:{id:"notification.link-copied"}})},f=Z({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(d.ContentBox,{endAction:t.createElement(c.CopyToClipboard,{onCopy:s,text:T},t.createElement(g.IconButton,{label:f,noBorder:!0,icon:t.createElement(p.Duplicate,null)})),title:T,titleEllipsis:!0,subtitle:W,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};A.propTypes={children:n().oneOfType([n().element,n().string]).isRequired,target:n().string.isRequired},u.Z=A},16325:function(R,u,e){var t=e(32735),a=e(5636),n=e(60216),g=e.n(n),l=e(463),d=e(76779);const o=({registrationToken:p})=>{const{formatMessage:m}=(0,a.useIntl)(),c=`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`;return t.createElement(d.Z,{target:c},m({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:g().string},u.Z=o},4397:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(5636),l=e(39161),d=e.n(l),o=e(84968),p=e.n(o),m=e(83292),c=e(57269),h=e.n(c),P=e(13478),A=e.n(P);const W=m.keyframes`
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,u,e){e.r(u),e.d(u,{default:function(){return k}});var t=e(32735),a=e(13478),n=e(5141),g=e(92891),l=e(72041),d=e(20011),o=e(5636),p=e(60216),m=e.n(p),c=e(88423),h=e.n(c),P=e(33795),A=e.n(P),W=e(9086),T=e.n(W),K=e(84968),Z=e(83281),s=e(39161),f=e(57269),v=e(64421);const b=async y=>{const{get:_}=(0,a.getFetchClient)(),{data:r}=await _(`/admin/users/${y}`);return r.data},G=async(y,_)=>{const{put:r}=(0,a.getFetchClient)(),{data:M}=await r(`/admin/users/${y}`,_);return M.data};var H=[[{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}}]],C=e(1057),Y=e(4397);const j=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),z=["email","firstname","lastname","username","isActive","roles"],F=y=>{let{canUpdate:_}=y;const{formatMessage:r}=(0,o.useIntl)(),{params:{id:M}}=(0,n.useRouteMatch)("/settings/users/:id"),{push:U}=(0,n.useHistory)(),{setUserDisplayName:Q}=(0,a.useAppInfos)(),S=(0,a.useNotification)(),{lockApp:q,unlockApp:ee}=(0,a.useOverlayBlocker)();(0,a.useFocusWhenNavigate)();const{status:te,data:x}=(0,K.useQuery)(["user",M],()=>b(M),{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)}}),ae=async(i,E)=>{q();try{const D=await G(M,T()(i,"confirmPassword"));S({type:"success",message:r({id:"notification.success.saved",defaultMessage:"Saved"})});const O=a.auth.getUserInfo();if(M.toString()===O.id.toString()){a.auth.setUserInfo(D);const B=A()(i,"username")||(0,v.Pp)(i.firstname,i.lastname);Q(B)}E.setValues(h()(i,z))}catch(D){const O=(0,v.Iz)(D.response.data),B=Object.keys(O).reduce((N,L)=>(N[L]=O[L].id,N),{});E.setErrors(B),S({type:"warning",message:A()(D,"response.data.error.message","notification.error")})}ee()},X=te!=="success",se=X?{id:"app.containers.Users.EditPage.header.label-loading",defaultMessage:"Edit user"}:{id:"app.containers.Users.EditPage.header.label",defaultMessage:"Edit {name}"},$=Object.keys(h()(x,z)).reduce((i,E)=>E==="roles"?(i[E]=(x?.roles||[]).map(D=>{let{id:O}=D;return O}),i):(i[E]=x?.[E],i),{}),ne=$.username||(0,v.Pp)($.firstname,$.lastname),J=r(se,{name:ne});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(f.Check,null),type:"button",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.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:ae,initialValues:$,validateOnChange:!1,validationSchema:C.YM},i=>{let{errors:E,values:D,handleChange:O,isSubmitting:B}=i;return t.createElement(a.Form,null,t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:B||!_,startIcon:t.createElement(f.Check,null),loading:B,type:"submit",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.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(j,{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},H.map(N=>N.map(L=>t.createElement(s.GridItem,(0,d.Z)({key:L.name},L.size),t.createElement(a.GenericInput,(0,d.Z)({},L,{disabled:!_,error:E[L.name],onChange:O,value:D[L.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(Y.Z,{disabled:!_,error:E.roles,onChange:O,value:D.roles}))))))))}))};F.propTypes={canUpdate:m().bool.isRequired};var w=F,k=()=>{const y=(0,a.useNotification)(),_=(0,t.useMemo)(()=>({read:l.Z.settings.users.read,update:l.Z.settings.users.update}),[]),{isLoading:r,allowedActions:{canRead:M,canUpdate:U}}=(0,a.useRBAC)(_),{state:Q}=(0,n.useLocation)(),S=(0,g.get)(Q,"from","/");return(0,t.useEffect)(()=>{r||!M&&!U&&y({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}})},[r,M,U,y]),r?t.createElement(a.LoadingIndicatorPage,null):!M&&!U?t.createElement(n.Redirect,{to:S}):t.createElement(w,{canUpdate:U})}},76779:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(39161),l=e.n(g),d=e(13478),o=e.n(d),p=e(57269),m=e.n(p),c=e(59087),h=e.n(c),P=e(5636);const A=({children:W,target:T})=>{const K=(0,d.useNotification)(),{formatMessage:Z}=(0,P.useIntl)(),s=()=>{K({type:"info",message:{id:"notification.link-copied"}})},f=Z({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(d.ContentBox,{endAction:t.createElement(c.CopyToClipboard,{onCopy:s,text:T},t.createElement(g.IconButton,{label:f,noBorder:!0,icon:t.createElement(p.Duplicate,null)})),title:T,titleEllipsis:!0,subtitle:W,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};A.propTypes={children:n().oneOfType([n().element,n().string]).isRequired,target:n().string.isRequired},u.Z=A},16325:function(R,u,e){var t=e(32735),a=e(5636),n=e(60216),g=e.n(n),l=e(463),d=e(76779);const o=({registrationToken:p})=>{const{formatMessage:m}=(0,a.useIntl)(),c=`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`;return t.createElement(d.Z,{target:c},m({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:g().string},u.Z=o},4397:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(5636),l=e(39161),d=e.n(l),o=e(84968),p=e.n(o),m=e(83292),c=e(57269),h=e.n(c),P=e(13478),A=e.n(P);const W=m.keyframes`
2
2
  from {
3
3
  transform: rotate(0deg);
4
4
  }
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3455],{67249:function(X,O,o){o.r(O),o.d(O,{default:function(){return G}});var e=o(32735),r=o(13478),A=o(72041),C=o(57269),t=o(39161),B=o(92891),S=o(58469),M=o(5636),N=o(5141),F=o(8888),W=()=>"todo empty role",U=o(60216),f=o.n(U);const x=({id:l,name:d,description:n,usersCount:u,icons:m,rowIndex:i})=>{const{formatMessage:E}=(0,M.useIntl)(),h=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"},h)),e.createElement(t.Td,null,e.createElement(t.Flex,{justifyContent:"flex-end",...r.stopPropagation},m.map((s,p)=>s?e.createElement(t.Box,{key:s.label,paddingLeft:p===0?0:1},e.createElement(t.IconButton,{onClick:s.onClick,label:s.label,noBorder:!0,icon:s.icon})):null))))};x.propTypes={id:f().number.isRequired,name:f().string.isRequired,description:f().string.isRequired,usersCount:f().number.isRequired,icons:f().array.isRequired,rowIndex:f().number.isRequired};var V=x,j=o(97889);const H={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1};var Z=(l,d)=>(0,j.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 Q=()=>{(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:h}=(0,F.bF)(!1),[{query:s}]=(0,r.useQueryParams)(),p=s?._q||"",R=(0,S.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:h,getData:i,sortedRoles:R,roles:E}},$=({getData:l,canCreate:d,canDelete:n,canUpdate:u})=>{const{formatMessage:m}=(0,M.useIntl)(),i=(0,r.useNotification)(),[E,h]=(0,e.useState)(!1),{push:s}=(0,N.useHistory)(),[{selectedRoles:p,showModalConfirmButtonLoading:R,roleToDelete:v},T]=(0,e.useReducer)(Z,H),{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=(0,B.get)(a,["response","payload","data","ids"],null);if(c&&Array.isArray(c)){const K=c.join(`
2
+ `);i({type:"warning",message:K})}else i({type:"warning",message:{id:"notification.error"}})}g()},y=(0,e.useCallback)(a=>{s(`/settings/roles/duplicate/${a}`)},[s]),k=()=>s("/settings/roles/new"),D=(0,e.useCallback)(a=>{T({type:"SET_ROLE_TO_DELETE",id:a}),g()},[]),g=()=>h(a=>!a),L=(0,e.useCallback)(a=>{s(`/settings/roles/${a}`)},[s]),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]),J=(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:k,getIcons:J,selectedRoles:p,isWarningDeleteAllOpened:E,showModalConfirmButtonLoading:R,handleToggleModal:g,handleDeleteData:b}};var z=()=>{const{formatMessage:l}=(0,M.useIntl)(),{isLoadingForPermissions:d,canCreate:n,canRead:u,canDelete:m,canUpdate:i,isLoading:E,getData:h,sortedRoles:s}=Q(),{handleNewRoleClick:p,getIcons:R,isWarningDeleteAllOpened:v,showModalConfirmButtonLoading:T,handleToggleModal:P,handleDeleteData:b}=$({getData:h,canCreate:n,canDelete:m,canUpdate:i}),y=s.length+1,k=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:k,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,s?.map((g,L)=>e.createElement(V,{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(W,null)),e.createElement(r.ConfirmDialog,{isOpen:v,onConfirm:b,isConfirmButtonLoading:T,onToggleDialog:P}))},G=()=>e.createElement(r.CheckPagePermissions,{permissions:A.Z.settings.roles.main},e.createElement(z,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(41925),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(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(`,
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);
@@ -0,0 +1,16 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8056],{81450:function($,v,n){n.d(v,{Z:function(){return A}});var e=n(32735),s=n(5141),b=n(60216),t=n.n(b),a=n(39161),l=n(13478),C=n(57269),D=n(5636);const k=({tokenName:o,onClickDelete:c,tokenType:E})=>{const{formatMessage:d}=(0,D.useIntl)(),{trackUsage:p}=(0,l.useTracking)(),[u,T]=(0,e.useState)(!1),h=()=>{T(!1),p("willDeleteToken",{tokenType:E}),c()};return e.createElement(a.Box,{paddingLeft:1,onClick:f=>f.stopPropagation()},e.createElement(a.IconButton,{onClick:()=>{T(!0)},label:d({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${o}`}),name:"delete",noBorder:!0,icon:e.createElement(C.Trash,null)}),e.createElement(l.ConfirmDialog,{onToggleDialog:()=>T(!1),onConfirm:h,isOpen:u}))};k.propTypes={tokenName:t().string.isRequired,onClickDelete:t().func.isRequired,tokenType:t().string.isRequired};var L=k,H=n(83292);const B={edit:{id:"app.component.table.edit",defaultMessage:"Edit {target}"},read:{id:"app.component.table.read",defaultMessage:"Read {target}"}},w=(0,H.default)(l.Link)`
2
+ svg {
3
+ path {
4
+ fill: ${({theme:o})=>o.colors.neutral500};
5
+ }
6
+ }
7
+
8
+ &:hover,
9
+ &:focus {
10
+ svg {
11
+ path {
12
+ fill: ${({theme:o})=>o.colors.neutral800};
13
+ }
14
+ }
15
+ }
16
+ `,g=({tokenName:o,tokenId:c,buttonType:E,children:d})=>{const{formatMessage:p}=(0,D.useIntl)(),{location:{pathname:u}}=(0,s.useHistory)();return e.createElement(w,{to:`${u}/${c}`,title:p(B[E],{target:o})},d)};g.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired,buttonType:t().string,children:t().node.isRequired},g.defaultProps={buttonType:"edit"};var U=g;const S=({tokenName:o,tokenId:c})=>e.createElement(U,{tokenName:o,tokenId:c},e.createElement(C.Pencil,null));S.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var W=S;const P=({tokenName:o,tokenId:c})=>e.createElement(U,{tokenName:o,tokenId:c,buttonType:"read"},e.createElement(C.Eye,null));P.propTypes={tokenName:t().string.isRequired,tokenId:t().oneOfType([t().string,t().number]).isRequired};var V=P;const m=({permissions:o,headers:c,contentType:E,isLoading:d,tokens:p,onConfirmDelete:u,tokenType:T})=>{const{canDelete:h,canUpdate:f,canRead:M}=o,N=h||f||M,[{query:y}]=(0,l.useQueryParams)(),[,R]=y?y.sort.split(":"):"ASC",{push:x,location:{pathname:I}}=(0,s.useHistory)(),{trackUsage:F}=(0,l.useTracking)(),Z=p.sort((i,O)=>{const r=i.name.localeCompare(O.name);return R==="DESC"?-r:r});return e.createElement(l.DynamicTable,{headers:c,contentType:E,rows:p,withBulkActions:N,isLoading:d,onConfirmDelete:u},e.createElement(a.Tbody,null,Z.map(i=>e.createElement(a.Tr,{key:i.id,...(0,l.onRowClick)({fn(){F("willEditTokenFromList",{tokenType:T}),x(`${I}/${i.id}`)},condition:f})},e.createElement(a.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(a.Typography,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},i.name)),e.createElement(a.Td,{maxWidth:(0,l.pxToRem)(250)},e.createElement(a.Typography,{textColor:"neutral800",ellipsis:!0},i.description)),e.createElement(a.Td,null,e.createElement(a.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(i.createdAt)}))),e.createElement(a.Td,null,i.lastUsedAt&&e.createElement(a.Typography,{textColor:"neutral800"},e.createElement(l.RelativeTime,{timestamp:new Date(i.lastUsedAt)}))),N&&e.createElement(a.Td,null,e.createElement(a.Flex,{justifyContent:"end"},f&&e.createElement(W,{tokenName:i.name,tokenId:i.id}),!f&&M&&e.createElement(V,{tokenName:i.name,tokenId:i.id}),h&&e.createElement(L,{tokenName:i.name,onClickDelete:()=>u(i.id),tokenType:T})))))))};m.propTypes={tokens:t().array,permissions:t().shape({canRead:t().bool,canDelete:t().bool,canUpdate:t().bool}).isRequired,headers:t().arrayOf(t().shape({cellFormatter:t().func,key:t().string.isRequired,metadatas:t().shape({label:t().string.isRequired,sortable:t().bool}).isRequired,name:t().string.isRequired})),contentType:t().string.isRequired,isLoading:t().bool,onConfirmDelete:t().func,tokenType:t().string.isRequired},m.defaultProps={tokens:[],headers:[],isLoading:!1,onConfirmDelete(){}};var A=m},68774:function($,v,n){n.d(v,{Z:function(){return e},f:function(){return s}});const e="api-token",s="transfer-token"},37168:function($,v,n){n.r(v),n.d(v,{default:function(){return P}});var e=n(32735),s=n(13478),b=n(72041),t=n(5636),a=n(84968),l=n(5141),C=n(33348),D=n.n(C),k=n(39161),L=n(57269),B=[{name:"name",key:"name",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.name",defaultMessage:"Name"},sortable:!0}},{name:"description",key:"description",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.description",defaultMessage:"Description"},sortable:!1}},{name:"createdAt",key:"createdAt",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.createdAt",defaultMessage:"Created at"},sortable:!1}},{name:"lastUsedAt",key:"lastUsedAt",metadatas:{label:{id:"Settings.apiTokens.ListView.headers.lastUsedAt",defaultMessage:"Last used"},sortable:!1}}],w=n(81450),g=n(68774),S=()=>{(0,s.useFocusWhenNavigate)();const V=(0,a.useQueryClient)(),{formatMessage:m}=(0,t.useIntl)(),A=(0,s.useNotification)(),{allowedActions:{canCreate:o,canDelete:c,canUpdate:E,canRead:d}}=(0,s.useRBAC)(b.Z.settings["api-tokens"]),{push:p}=(0,l.useHistory)(),{trackUsage:u}=(0,s.useTracking)(),{startSection:T}=(0,s.useGuidedTour)(),h=(0,e.useRef)(T),{get:f,del:M}=(0,s.useFetchClient)();(0,e.useEffect)(()=>{h.current&&h.current("apiTokens")},[]),(0,e.useEffect)(()=>{p({search:D().stringify({sort:"name:ASC"},{encode:!1})})},[p]);const N=B.map(r=>({...r,metadatas:{...r.metadatas,label:m(r.metadatas.label)}})),{data:y,status:R,isFetching:x}=(0,a.useQuery)(["api-tokens"],async()=>{u("willAccessTokenList",{tokenType:g.Z});const{data:{data:r}}=await f("/admin/api-tokens");return u("didAccessTokenList",{number:r.length,tokenType:g.Z}),r},{enabled:d,onError(){A({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),I=d&&(R!=="success"&&R!=="error"||R==="success"&&x),F=(0,a.useMutation)(async r=>{await M(`/admin/api-tokens/${r}`)},{async onSuccess(){await V.invalidateQueries(["api-tokens"]),u("didDeleteToken")},onError(r){r?.response?.data?.data?A({type:"warning",message:r.response.data.data}):A({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Z=d&&y,i=d&&!y&&!o,O=d&&!y&&o;return e.createElement(k.Main,{"aria-busy":I},e.createElement(s.SettingsPageTitle,{name:"API Tokens"}),e.createElement(k.HeaderLayout,{title:m({id:"Settings.apiTokens.title",defaultMessage:"API Tokens"}),subtitle:m({id:"Settings.apiTokens.description",defaultMessage:"List of generated tokens to consume the API"}),primaryAction:o?e.createElement(s.LinkButton,{"data-testid":"create-api-token-button",startIcon:e.createElement(L.Plus,null),size:"S",onClick:()=>u("willAddTokenFromList",{tokenType:g.Z}),to:"/settings/api-tokens/create"},m({id:"Settings.apiTokens.create",defaultMessage:"Create new API Token"})):void 0}),e.createElement(k.ContentLayout,null,!d&&e.createElement(s.NoPermissions,null),Z&&e.createElement(w.Z,{permissions:{canRead:d,canDelete:c,canUpdate:E},headers:N,contentType:"api-tokens",rows:y,isLoading:I,onConfirmDelete:r=>F.mutateAsync(r),tokens:y,tokenType:g.Z}),O&&e.createElement(s.NoContent,{content:{id:"Settings.apiTokens.addFirstToken",defaultMessage:"Add your first API Token"},action:e.createElement(k.Button,{variant:"secondary",startIcon:e.createElement(L.Plus,null)},m({id:"Settings.apiTokens.addNewToken",defaultMessage:"Add new API Token"}))}),i&&e.createElement(s.NoContent,{content:{id:"Settings.apiTokens.emptyStateLayout",defaultMessage:"You don\u2019t have any content yet..."}})))},P=()=>e.createElement(s.CheckPagePermissions,{permissions:b.Z.settings["api-tokens"].main},e.createElement(S,null))}}]);