@strapi/admin 4.6.0-alpha.0 → 4.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/content-manager/components/ComponentInitializer/index.js +1 -7
- package/admin/src/content-manager/components/{RepeatableComponent/DragPreview.js → DragLayer/ComponentDragPreview.js} +25 -12
- package/admin/src/content-manager/components/DragLayer/RelationDragPreview.js +75 -0
- package/admin/src/content-manager/components/DragLayer/index.js +23 -7
- package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +130 -84
- package/admin/src/content-manager/components/DynamicZone/index.js +99 -24
- package/admin/src/content-manager/components/DynamicZone/utils/select.js +9 -5
- package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +76 -14
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +23 -23
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +24 -5
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/recursivelyFindPathsBasedOnCondition.js +8 -1
- package/admin/src/content-manager/components/Inputs/index.js +5 -19
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +4 -0
- package/admin/src/content-manager/components/RelationInput/RelationInput.js +203 -63
- package/admin/src/content-manager/components/RelationInput/components/RelationItem.js +134 -21
- package/admin/src/content-manager/components/RelationInput/components/RelationList.js +1 -2
- package/admin/src/content-manager/components/RelationInput/constants.js +1 -0
- package/admin/src/content-manager/components/RelationInputDataManager/RelationInputDataManager.js +132 -10
- package/admin/src/content-manager/components/RepeatableComponent/components/Accordion.js +77 -0
- package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +262 -0
- package/admin/src/content-manager/components/RepeatableComponent/{DraggedItem → components}/Preview.js +0 -0
- package/admin/src/content-manager/components/RepeatableComponent/index.js +147 -87
- package/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js +1 -1
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +1 -1
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +1 -1
- package/admin/src/content-manager/hooks/index.js +2 -0
- package/admin/src/content-manager/hooks/useDragAndDrop.js +120 -0
- package/admin/src/content-manager/hooks/useKeyboardDragAndDrop.js +98 -0
- package/admin/src/content-manager/hooks/useLazyComponents/index.js +69 -0
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/components/ErrorFallback.js +13 -0
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +2 -1
- package/admin/src/content-manager/pages/EditView/GridRow/index.js +62 -0
- package/admin/src/content-manager/pages/EditView/index.js +74 -154
- package/admin/src/content-manager/pages/EditView/selectors.js +14 -0
- package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +11 -6
- package/admin/src/content-manager/pages/EditView/utils/getCustomFieldUidsFromLayout.js +18 -0
- package/admin/src/content-manager/pages/EditView/utils/index.js +1 -0
- package/admin/src/content-manager/pages/EditViewLayoutManager/index.js +1 -1
- package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +5 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/constants.js +2 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +7 -0
- package/admin/src/content-manager/utils/ItemTypes.js +1 -1
- package/admin/src/content-manager/utils/composeRefs.js +28 -0
- package/admin/src/content-manager/utils/getMaxTempKey.js +1 -1
- package/admin/src/content-manager/utils/index.js +7 -0
- package/admin/src/core/utils/axiosInstance.js +4 -2
- package/admin/src/hooks/index.js +1 -0
- package/admin/src/hooks/useFetchClient/index.js +23 -0
- package/admin/src/pages/HomePage/SocialLinks.js +4 -4
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +23 -18
- package/admin/src/translations/en.json +6 -0
- package/admin/src/translations/ru.json +789 -489
- package/admin/src/utils/fetchClient.js +45 -0
- package/admin/src/utils/getFetchClient.js +10 -0
- package/build/4306.df40a798.chunk.js +98 -0
- package/build/{4318.daf31770.chunk.js → 4318.80bdf035.chunk.js} +2 -2
- package/build/5057.195a59ff.chunk.js +65 -0
- package/build/{805.a1894307.chunk.js → 805.e991a370.chunk.js} +6 -6
- package/build/{4986.3820d11d.chunk.js → 8176.b19bc128.chunk.js} +32 -32
- package/build/{1233.32d6888d.chunk.js → 8186.55910742.chunk.js} +94 -94
- package/build/{8633.8da5488a.chunk.js → 8633.59223842.chunk.js} +1 -1
- package/build/8881.c693411a.chunk.js +245 -0
- package/build/9161.4a0ab137.chunk.js +2119 -0
- package/build/9279.6290c87a.chunk.js +117 -0
- package/build/9707.a0cc4ad8.chunk.js +70 -0
- package/build/Admin-authenticatedApp.f9e74dc0.chunk.js +80 -0
- package/build/{Admin_homePage.b4db4df8.chunk.js → Admin_homePage.8945f71a.chunk.js} +5 -5
- package/build/{Admin_marketplace.fa51405b.chunk.js → Admin_marketplace.ed754a4a.chunk.js} +1 -1
- package/build/{Admin_pluginsPage.14d2840f.chunk.js → Admin_pluginsPage.3c872de7.chunk.js} +1 -1
- package/build/{Admin_profilePage.6c2c8398.chunk.js → Admin_profilePage.c07bdf08.chunk.js} +1 -1
- package/build/{Admin_settingsPage.5e740514.chunk.js → Admin_settingsPage.50a8765b.chunk.js} +5 -5
- package/build/admin-app.2861b6d2.chunk.js +112 -0
- package/build/{admin-edit-roles-page.c7c338b3.chunk.js → admin-edit-roles-page.f407538c.chunk.js} +1 -1
- package/build/{admin-edit-users.d254c128.chunk.js → admin-edit-users.85231e4c.chunk.js} +1 -1
- package/build/{admin-users.7c423e41.chunk.js → admin-users.a2707644.chunk.js} +2 -2
- package/build/api-tokens-create-page.dd4ddfcb.chunk.js +1 -0
- package/build/api-tokens-edit-page.821c5a6c.chunk.js +1 -0
- package/build/{api-tokens-list-page.fe994b6b.chunk.js → api-tokens-list-page.700e575f.chunk.js} +1 -1
- package/build/content-manager.ee948f75.chunk.js +1186 -0
- package/build/content-type-builder-list-view.4412efc3.chunk.js +201 -0
- package/build/content-type-builder.b132b5f4.chunk.js +145 -0
- package/build/email-settings-page.db0d98d1.chunk.js +15 -0
- package/build/{en-json.7dd57947.chunk.js → en-json.4a56dca7.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/main.faac89ee.js +2025 -0
- package/build/ru-json.8830286f.chunk.js +1 -0
- package/build/{runtime~main.6e7d95b9.js → runtime~main.75a15b8e.js} +1 -1
- package/build/{sso-settings-page.eb30a02e.chunk.js → sso-settings-page.adb12ac3.chunk.js} +1 -1
- package/build/upload-settings.450cab1a.chunk.js +18 -0
- package/build/upload.e2034370.chunk.js +64 -0
- package/build/users-advanced-settings-page.0c0b8230.chunk.js +13 -0
- package/build/users-email-settings-page.3126ff8c.chunk.js +28 -0
- package/build/users-providers-settings-page.b7b602e2.chunk.js +33 -0
- package/build/users-roles-settings-page.ce5b582d.chunk.js +30 -0
- package/build/webhook-edit-page.1215a6b7.chunk.js +75 -0
- package/build/{webhook-list-page.42533b59.chunk.js → webhook-list-page.b87821f2.chunk.js} +1 -1
- package/ee/server/services/passport/provider-registry.js +1 -1
- package/package.json +15 -15
- package/utils/get-plugins-path.js +17 -3
- package/admin/src/content-manager/components/RepeatableComponent/AccordionGroupCustom/index.js +0 -122
- package/admin/src/content-manager/components/RepeatableComponent/AddFieldButton.js +0 -58
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/DraggingSibling.js +0 -72
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/IconButtonCustoms.js +0 -32
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +0 -322
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/utils/connect.js +0 -11
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/utils/index.js +0 -2
- package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/utils/select.js +0 -30
- package/admin/src/content-manager/components/RepeatableComponent/utils/connect.js +0 -11
- package/admin/src/content-manager/components/RepeatableComponent/utils/select.js +0 -12
- package/admin/src/content-manager/hooks/__test__/usePrev.test.js +0 -26
- package/build/2438.afe24949.chunk.js +0 -2525
- package/build/2517.5cc235ba.chunk.js +0 -117
- package/build/4306.53359960.chunk.js +0 -98
- package/build/8881.bfdb6877.chunk.js +0 -245
- package/build/9707.932a3c12.chunk.js +0 -70
- package/build/Admin-authenticatedApp.cfc3b4c9.chunk.js +0 -80
- package/build/admin-app.ee1211cb.chunk.js +0 -112
- package/build/api-tokens-create-page.4ca2778d.chunk.js +0 -1
- package/build/api-tokens-edit-page.70a791c2.chunk.js +0 -1
- package/build/content-manager.794d3373.chunk.js +0 -1200
- package/build/content-type-builder-list-view.95012cf0.chunk.js +0 -201
- package/build/content-type-builder.95b9d6a2.chunk.js +0 -145
- package/build/email-settings-page.4bb3606f.chunk.js +0 -15
- package/build/main.a6470578.js +0 -2031
- package/build/ru-json.d7cfc2ff.chunk.js +0 -1
- package/build/upload-settings.3010911f.chunk.js +0 -18
- package/build/upload.9f19f2e8.chunk.js +0 -64
- package/build/users-advanced-settings-page.9df41d67.chunk.js +0 -13
- package/build/users-email-settings-page.56d82eaf.chunk.js +0 -28
- package/build/users-providers-settings-page.96bb7da0.chunk.js +0 -33
- package/build/users-roles-settings-page.445e5e16.chunk.js +0 -30
- package/build/webhook-edit-page.c5efc08b.chunk.js +0 -75
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{50020:(le,O,n)=>{n.r(O),n.d(O,{SettingsPage:()=>mn,default:()=>pn});var e=n(32735),C=n(88425),r=n(5141),oe=n(96709),Q=n(5636),We=n(99357),_=n(49737),Te=n(7602),Ae=n(84968),Re=n(28356),He=n(17e3),V=n(27649),A=n(62345),P=n(15335),Be=n(5803),Y=n(88860),Oe=n(27677),K=n(41415),ze=n(41502),re=n(47361),x=n(66456),ae=n(60216),f=n.n(ae),_e=n(23272),Xe=n(68387),be=n(98779),je=n(50563),Ne=n(19406),Ue=n(44647),Ze=n(97889);const Qe={currentStep:void 0},st=(m=Qe,c)=>(0,Ze.default)(m,l=>{switch(c.type){case"GO_TO":{l.currentStep=c.to;break}default:return l}});var nt=n(85025),rt=n(55225);const ne={localImage:void 0},Ve=(m=ne,c)=>(0,Ze.default)(m,l=>{switch(c.type){case"SET_LOCAL_IMAGE":{l.localImage=c.value;break}default:return l}}),ee=({onChangeLogo:m,customLogo:c,goTo:l,Component:h,modalTitle:u,next:T,prev:M,currentStep:R})=>{const[{localImage:y},D]=(0,e.useReducer)(Ve,ne),{formatMessage:fe}=(0,Q.useIntl)(),ue=pt=>{D({type:"SET_LOCAL_IMAGE",value:pt})},qe=()=>{l(null)};return R?e.createElement(nt.P,{labelledBy:"modal",onClose:qe},e.createElement(rt.x,null,e.createElement(Y.Z,{fontWeight:"bold",as:"h2",id:"modal"},fe(u))),e.createElement(h,{setLocalImage:ue,goTo:l,next:T,prev:M,onClose:qe,asset:y||c,onChangeLogo:m})):null};ee.defaultProps={Component:void 0,currentStep:void 0,customLogo:void 0,modalTitle:void 0,next:null,prev:null},ee.propTypes={Component:f().elementType,currentStep:f().string,customLogo:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}),goTo:f().func.isRequired,modalTitle:f().shape({id:f().string,defaultMessage:f().string}),next:f().string,onChangeLogo:f().func.isRequired,prev:f().string};const $=ee,k=750,I=100,H=["image/jpeg","image/png","image/svg+xml"];var W=n(35540),X=n(39291),pe=n(3653),De=n(9026),G=n(83292),ge=n(36320),Ye=n(99140),Ge=n(11406),F=n(98275),ie=n(87107),Z=n(47851),te=n(47284),v=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const ye={id:"Settings.application.customization.modal.upload.error-format",defaultMessage:"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."},ce={id:"Settings.application.customization.modal.upload.error-size",defaultMessage:"The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)"},Je=m=>new Promise(c=>{const l=new FileReader;l.onload=()=>{const h=new Image;h.onload=function(){c({width:h.width,height:h.height})},h.src=l.result},l.readAsDataURL(m)}),ot=(m,c)=>({ext:m.name.split(".").pop(),size:m.size/1e3,name:m.name,url:URL.createObjectURL(m),rawFile:m,width:c.width,height:c.height}),Ce=m=>v(void 0,null,function*(){let c;if(!H.includes(m.type))throw c=new Error("File format"),c.displayMessage=ye,c;const h=yield Je(m);if(!(h.width<=k&&h.height<=k))throw c=new Error("File sizing"),c.displayMessage=ce,c;const T=ot(m,h);if(!(T.size<=I))throw c=new Error("File sizing"),c.displayMessage=ce,c;return T});var J=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const xe=(0,G.default)(F._)`
|
|
2
2
|
opacity: 0;
|
|
3
3
|
position: absolute;
|
|
4
4
|
top: 0;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
left: 0;
|
|
7
7
|
right: 0;
|
|
8
8
|
z-index: 1;
|
|
9
|
-
`,ft=({setLocalImage:m,goTo:c,next:l,onClose:h})=>{const{formatMessage:u}=(0,Q.useIntl)(),[T,M]=(0,e.useState)(!1),[R,y]=(0,e.useState)(void 0),D=(0,e.useRef)(null),fe=()=>M(!0),ue=()=>M(!1),qe=tt=>{tt.preventDefault(),D.current.click()},pt=()=>J(void 0,null,function*(){ue();const tt=D.current.files[0];if(!!tt)try{const lt=yield Ce(tt);m(lt),c(l)}catch(lt){if(lt.displayMessage)y(u(lt.displayMessage,{size:I,dimension:k})),D.current.focus();else throw lt}}),at=()=>T?"primary500":R?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(ie.g,{name:"logo-upload",error:R},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(Oe.K,{spacing:2},e.createElement(ge.k,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:T?"primary100":"neutral100",borderColor:at(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:fe,onDragLeave:ue},e.createElement(Ye.J,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:te.Z,"aria-hidden":!0}),e.createElement(A.x,{paddingTop:3,paddingBottom:5},e.createElement(Y.Z,{variant:"delta",as:"span"},u({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(xe,{accept:H,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:pt,ref:D,id:"logo-upload"}),e.createElement(K.z,{type:"button",onClick:qe},u({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(A.x,{paddingTop:6},e.createElement(Y.Z,{variant:"pi",textColor:"neutral600"},u({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:I,dimension:k})))),e.createElement(Z.c,null)))))),e.createElement(Ge.m,{startActions:e.createElement(K.z,{onClick:h,variant:"tertiary"},u({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};ft.defaultProps={next:null},ft.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};const Nt=ft;var Zt=n(10369),$t=n(43653),Wt=n.n($t),ut=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const bt=m=>ut(void 0,null,function*(){try{const c=yield Wt().get(m,{responseType:"blob",timeout:8e3});return new File([c.data],c.config.url,{type:c.headers["content-type"]})}catch(c){throw c.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},c}});var oo=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const ht=({goTo:m,next:c,onClose:l,setLocalImage:h})=>{const{formatMessage:u}=(0,Q.useIntl)(),[T,M]=(0,e.useState)(""),[R,y]=(0,e.useState)(null),D=ue=>{M(ue.target.value)},fe=()=>oo(void 0,null,function*(){try{const ue=yield bt(T),qe=yield Ce(ue);h(qe),m(c)}catch(ue){if(ue.displayMessage)y(u(ue.displayMessage,{size:I,dimension:k}));else throw ue}});return e.createElement("form",{onSubmit:ue=>{ue.preventDefault(),fe()}},e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Zt.o,{label:u({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:R,onChange:D,value:T,name:"logo-url"})),e.createElement(Ge.m,{startActions:e.createElement(K.z,{onClick:l,variant:"tertiary"},u({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(K.z,{type:"submit"},u({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};ht.defaultProps={next:null},ht.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};const ao=ht,St=({setLocalImage:m,goTo:c,next:l,onClose:h})=>{const{formatMessage:u}=(0,Q.useIntl)();return e.createElement(W.v,{label:u({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(A.x,{paddingLeft:8,paddingRight:8},e.createElement(X.m,null,e.createElement(X.O,null,u({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(X.O,null,u({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(De.i,null)),e.createElement(pe.n,null,e.createElement(pe.x,null,e.createElement(Nt,{onClose:h,setLocalImage:m,goTo:c,next:l})),e.createElement(pe.x,null,e.createElement(ao,{onClose:h,setLocalImage:m,goTo:c,next:l}))))};St.defaultProps={next:null},St.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};const fn=St;var Ut=n(42466),hn=n(20853),vn=n(2800),Vt=n(26835),yn=n(41048),Pt=n(37083),kt=n(11505);const Dt=({asset:m})=>{const{formatMessage:c}=(0,Q.useIntl)();return e.createElement(Ut.Z,null,e.createElement(hn.O,null,e.createElement(vn.H,{size:"S",src:m.url})),e.createElement(Vt.e,null,e.createElement(yn.a,null,e.createElement(Pt.l,null,m.name),e.createElement(Pt._,null,`${m.ext.toUpperCase()} - ${m.width}\u2715${m.height}`)),e.createElement(kt.E,null,c({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};Dt.propTypes={asset:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}).isRequired};const mt=Dt,Gt=({onClose:m,asset:c,prev:l,next:h,goTo:u,setLocalImage:T,onChangeLogo:M})=>{const{formatMessage:R}=(0,Q.useIntl)(),y=()=>{T(void 0),u(l)},D=()=>{M(c),u(h)};return e.createElement(e.Fragment,null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(ge.k,{justifyContent:"space-between",paddingBottom:6},e.createElement(ge.k,{direction:"column",alignItems:"flex-start"},e.createElement(Y.Z,{variant:"pi",fontWeight:"bold"},R({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(Y.Z,{variant:"pi",textColor:"neutral500"},R({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(K.z,{onClick:y,variant:"secondary"},R({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(A.x,{maxWidth:(0,C.pxToRem)(180)},e.createElement(mt,{asset:c}))),e.createElement(Ge.m,{startActions:e.createElement(K.z,{onClick:m,variant:"tertiary"},R({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(K.z,{onClick:D},R({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};Gt.defaultProps={next:null,prev:null},Gt.propTypes={goTo:f().func.isRequired,asset:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}).isRequired,next:f().string,onClose:f().func.isRequired,onChangeLogo:f().func.isRequired,prev:f().string,setLocalImage:f().func.isRequired};const it={upload:{Component:fn,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:Gt,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}},Ht=({customLogo:m,defaultLogo:c,onChangeLogo:l,onResetMenuLogo:h})=>{const[{currentStep:u},T]=(0,e.useReducer)(st,Qe),{Component:M,next:R,prev:y,modalTitle:D}=it[u]||{},{formatMessage:fe}=(0,Q.useIntl)(),ue=qe=>{T({type:"GO_TO",to:qe})};return e.createElement(e.Fragment,null,e.createElement(_e.F,{label:fe({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"}),selectedSlide:0,hint:fe({id:"Settings.application.customization.carousel-hint",defaultMessage:"Change the admin panel logo (Max dimension: {dimension}x{dimension}, Max file size: {size}KB)"},{size:I,dimension:k}),previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:(m==null?void 0:m.name)||"logo.png",actions:e.createElement(Xe.b,null,e.createElement(je.h,{onClick:()=>ue(m?"pending":"upload"),label:fe({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(Ne.default,null)}),m&&e.createElement(je.h,{onClick:h,label:fe({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(Ue.Z,null)}))},e.createElement(be.q,{label:fe({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(A.x,{maxHeight:"40%",maxWidth:"40%",as:"img",src:(m==null?void 0:m.url)||c,alt:fe({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement($,{Component:M,currentStep:u,onChangeLogo:l,customLogo:m,goTo:ue,next:R,prev:y,modalTitle:D}))};Ht.defaultProps={customLogo:null},Ht.propTypes={customLogo:f().shape({url:f().string,name:f().string}),defaultLogo:f().string.isRequired,onChangeLogo:f().func.isRequired,onResetMenuLogo:f().func.isRequired};const Cn=Ht,Mt={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}}},vt=(m=Mt,c)=>(0,Ze.default)(m,l=>{switch(c.type){case"SET_CUSTOM_MENU_LOGO":{l.menuLogo.display=c.value,l.menuLogo.submit.rawFile=c.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{l.menuLogo.display=null,l.menuLogo.submit={rawFile:null,isReset:!0};break}default:return l}});var so=n(86349),yt=n.n(so);const Xt=(m,c)=>yt()(m,{menuLogo:{display:c.menuLogo}}),Tt=(0,e.forwardRef)(({projectSettingsStored:m},c)=>{const{formatMessage:l}=(0,Q.useIntl)(),{trackUsage:h}=(0,C.useTracking)(),{logos:{menu:u}}=(0,_.um)(),[{menuLogo:T},M]=(0,e.useReducer)(vt,Mt,()=>Xt(Mt,m)),R=D=>{M({type:"SET_CUSTOM_MENU_LOGO",value:D})},y=()=>{h("didClickResetLogo"),M({type:"RESET_CUSTOM_MENU_LOGO"})};return(0,e.useImperativeHandle)(c,()=>({getValues:()=>({menuLogo:T.submit})})),e.createElement(A.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(Y.Z,{variant:"delta",as:"h3"},l({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(P.r,{paddingTop:4},e.createElement(Be.P,{col:6,s:12},e.createElement(Cn,{onChangeLogo:R,customLogo:T.display,defaultLogo:u.default,onResetMenuLogo:y}))))});Tt.defaultProps={projectSettingsStored:null},Tt.propTypes={projectSettingsStored:f().shape({menuLogo:f().shape({url:f().string,name:f().string})})};const bn=Tt;var Lt=n(17247),Qt=n(48344),Yt=n.n(Qt),Sn=Object.defineProperty,Jt=Object.defineProperties,Pn=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,An=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,_t=(m,c,l)=>c in m?Sn(m,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):m[c]=l,en=(m,c)=>{for(var l in c||(c={}))An.call(c,l)&&_t(m,l,c[l]);if(Tn)for(var l of Tn(c))qt.call(c,l)&&_t(m,l,c[l]);return m},Rn=(m,c)=>Jt(m,Pn(c));const tn=m=>Yt()(m,(c,l,h)=>{l&&l.url?c[h]=Rn(en({},l),{url:(0,C.prefixFileUrlWithBackendUrl)(l.url)}):c[h]=l},{});var On=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const nn=()=>On(void 0,null,function*(){const{data:m}=yield Lt.be.get("/admin/project-settings");return tn(m)}),Dn=m=>On(void 0,null,function*(){const{data:c}=yield Lt.be.post("/admin/project-settings",m);return tn(c)}),Mn=m=>{const c=new FormData;return Object.entries(m).forEach(([l,h])=>{h&&h.rawFile instanceof File&&c.append(l,h.rawFile),h&&h.isReset&&c.append(l,null)}),c};var on=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const Ln=[{action:"admin::project-settings.update",subject:null}],an=()=>{const m=(0,e.useRef)(),c=(0,C.useNotification)(),{trackUsage:l}=(0,C.useTracking)(),{formatMessage:h}=(0,Q.useIntl)(),u=(0,Ae.useQueryClient)();(0,C.useFocusWhenNavigate)();const T=(0,C.useAppInfos)(),{shouldUpdateStrapi:M,latestStrapiReleaseTag:R,strapiVersion:y}=T,{updateProjectSettings:D}=(0,_.um)(),{data:fe}=(0,Ae.useQuery)("project-settings",nn),ue=T.communityEdition?"app.components.UpgradePlanModal.text-ce":"app.components.UpgradePlanModal.text-ee",qe=(0,Ae.useMutation)(at=>Dn(at),{onSuccess(at){return on(this,arguments,function*({menuLogo:tt}){yield u.invalidateQueries("project-settings",{refetchActive:!0}),D({menuLogo:tt==null?void 0:tt.url})})}}),pt=()=>{const at=m.current.getValues(),tt=Mn(at);qe.mutate(tt,{onSuccess(){const{menuLogo:lt}=at;lt.rawFile&&l("didChangeLogo")},onError(){c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(oe.A,null,e.createElement(C.SettingsPageTitle,{name:"Application"}),e.createElement(V.o,null,e.createElement(Re.T,{title:h({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:h({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:e.createElement(K.z,{onClick:pt,startIcon:e.createElement(x.Z,null)},h({id:"global.save",defaultMessage:"Save"}))}),e.createElement(He.D,null,e.createElement(Oe.K,{spacing:6},e.createElement(A.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(Oe.K,{spacing:5},e.createElement(Y.Z,{variant:"delta",as:"h3"},h({id:"global.details",defaultMessage:"Details"})),e.createElement(P.r,{paddingTop:1},e.createElement(Be.P,{col:6,s:12},e.createElement(Y.Z,{variant:"sigma",textColor:"neutral600"},h({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(Y.Z,{as:"p"},"v",y),e.createElement(ze.r,{href:T.communityEdition?"https://discord.strapi.io":"https://support.strapi.io/support/home",isExternal:!0,endIcon:e.createElement(re.default,null)},h({id:"Settings.application.get-help",defaultMessage:"Get help"}))),e.createElement(Be.P,{col:6,s:12},e.createElement(Y.Z,{variant:"sigma",textColor:"neutral600"},h({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(Y.Z,{as:"p"},h({id:ue,defaultMessage:`${T.communityEdition?"Community Edition":"Enterprise Edition"}`})))),e.createElement(P.r,{paddingTop:1},e.createElement(Be.P,{col:6,s:12},M&&e.createElement(ze.r,{href:`https://github.com/strapi/strapi/releases/tag/${R}`,isExternal:!0,endIcon:e.createElement(re.default,null)},h({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"}))),e.createElement(Be.P,{col:6,s:12},e.createElement(ze.r,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(re.default,null)},h({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(A.x,{paddingTop:1},e.createElement(Y.Z,{variant:"sigma",textColor:"neutral600"},h({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(Y.Z,{as:"p"},T.nodeVersion)))),fe&&e.createElement(C.CheckPermissions,{permissions:Ln},e.createElement(bn,{ref:m,projectSettingsStored:fe}))))))};var xn=n(3704),In=n.n(xn);const Fn=m=>In()(m,l=>l.links).map(l=>(0,Te.ot)(l.Component,l.to,l.exact||!1)),wn=m=>m.filter(c=>!c.links.every(l=>l.isDisplayed===!1));var It=n(15685),et=n(52136),Bn=n(33997),de=n.n(Bn),sn=function(){return window&&window.strapi&&window.strapi.isEE?n(20178).Z:n(16329).Z}(),jn=function(){return window&&window.strapi&&window.strapi.isEE?n(51899).Z:n(45677).Z}(),Nn=[{Component:function(){return{default:jn}},to:"/settings/roles",exact:!0},{Component:function(){return{default:sn}},to:"/settings/roles/duplicate/:id",exact:!0},{Component:function(){return{default:sn}},to:"/settings/roles/new",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(2544).then(n.bind(n,33778));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/roles/:id",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(5199).then(n.bind(n,15519));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/users",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(4263).then(n.bind(n,34669));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/users/:id",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(5162).then(n.bind(n,33238));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/webhooks/create",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(5162).then(n.bind(n,59021));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/webhooks/:id",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(4121).then(n.bind(n,74767));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/webhooks",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(8056).then(n.bind(n,83782));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/api-tokens",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Promise.all([n.e(8633),n.e(4318),n.e(4299)]).then(n.bind(n,3330));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/api-tokens/create",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Promise.all([n.e(8633),n.e(4318),n.e(92)]).then(n.bind(n,97841));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/api-tokens/:id",exact:!0}];const Ft=Nn;var Zn=function(){return window&&window.strapi&&window.strapi.isEE?n(63775).Z:n(75936).Z}();const rn=[].concat((0,It.Z)(Zn),(0,It.Z)(Ft));var ln=n(90700),$n=n(8598),Wn=n(77013),zn=n(79318),Un=n(66618),Vn=Object.defineProperty,cn=Object.defineProperties,kn=Object.getOwnPropertyDescriptors,dn=Object.getOwnPropertySymbols,co=Object.prototype.hasOwnProperty,Gn=Object.prototype.propertyIsEnumerable,wt=(m,c,l)=>c in m?Vn(m,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):m[c]=l,Bt=(m,c)=>{for(var l in c||(c={}))co.call(c,l)&&wt(m,l,c[l]);if(dn)for(var l of dn(c))Gn.call(c,l)&&wt(m,l,c[l]);return m},un=(m,c)=>cn(m,kn(c));const At=({menu:m})=>{const{formatMessage:c}=(0,Q.useIntl)(),h=wn(m).map(T=>un(Bt({},T),{title:T.intlLabel,links:T.links.map(M=>un(Bt({},M),{title:M.intlLabel,name:M.id}))})),u=c({id:"global.settings",defaultMessage:"Settings"});return e.createElement(ln.m,{ariaLabel:u},e.createElement($n.p,{label:u}),e.createElement(Wn.Z,null,h.map(T=>e.createElement(zn.D,{key:T.id,label:c(T.intlLabel)},T.links.map(M=>e.createElement(Un.E,{as:r.NavLink,withBullet:M.hasNotification,to:M.to,key:M.id},c(M.intlLabel)))))))};At.propTypes={menu:f().array.isRequired};const Kn=At;function mn(){const{settingId:m}=(0,r.useParams)(),{settings:c}=(0,C.useStrapiApp)(),{formatMessage:l}=(0,Q.useIntl)(),{isLoading:h,menu:u}=(0,_.Te)(),T=(0,e.useMemo)(()=>(0,Te.WW)(rn.map(({to:y,Component:D,exact:fe})=>(0,Te.ot)(D,y,fe))),[]),M=Fn(c);if(h)return e.createElement(C.LoadingIndicatorPage,null);if(!m)return e.createElement(r.Redirect,{to:"/settings/application-infos"});const R=l({id:"global.settings",defaultMessage:"Settings"});return e.createElement(oe.A,{sideNav:e.createElement(Kn,{menu:u})},e.createElement(We.Helmet,{title:R}),e.createElement(r.Switch,null,e.createElement(r.Route,{path:"/settings/application-infos",component:an,exact:!0}),T,M))}const pn=(0,e.memo)(mn)},16329:(le,O,n)=>{n.d(O,{Z:()=>oe});var e=n(32735),C=n(5141);const oe=()=>e.createElement(C.Redirect,{to:"/404"})},49466:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},35123:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},18318:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},52124:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},61526:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},78974:(le,O,n)=>{n.d(O,{Z:()=>rs});var e=n(32735),C=n(60216),r=n.n(C),oe=n(88425),Q=n(35540),We=n(39291),_=n(3653),Te=n(23973),Ae=n.n(Te),Re=n(86834),He=n.n(Re),V=n(5636),A=n(62345),P=n(83292),Be=n(98978),Y=n.n(Be),Oe=n(39515),K=n(96441),ze=n(15974),re=n(44426),x=n(36320),ae=n(33795),f=n.n(ae),_e=n(9086),Xe=n.n(_e),be=n(43257),je=n(45112),Ne=n(41415);const Ue=P.default.div`
|
|
9
|
+
`,ft=({setLocalImage:m,goTo:c,next:l,onClose:h})=>{const{formatMessage:u}=(0,Q.useIntl)(),[T,M]=(0,e.useState)(!1),[R,y]=(0,e.useState)(void 0),D=(0,e.useRef)(null),fe=()=>M(!0),ue=()=>M(!1),qe=tt=>{tt.preventDefault(),D.current.click()},pt=()=>J(void 0,null,function*(){ue();const tt=D.current.files[0];if(!!tt)try{const lt=yield Ce(tt);m(lt),c(l)}catch(lt){if(lt.displayMessage)y(u(lt.displayMessage,{size:I,dimension:k})),D.current.focus();else throw lt}}),at=()=>T?"primary500":R?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(ie.g,{name:"logo-upload",error:R},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(Oe.K,{spacing:2},e.createElement(ge.k,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:T?"primary100":"neutral100",borderColor:at(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:fe,onDragLeave:ue},e.createElement(Ye.J,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:te.Z,"aria-hidden":!0}),e.createElement(A.x,{paddingTop:3,paddingBottom:5},e.createElement(Y.Z,{variant:"delta",as:"span"},u({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(xe,{accept:H,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:pt,ref:D,id:"logo-upload"}),e.createElement(K.z,{type:"button",onClick:qe},u({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(A.x,{paddingTop:6},e.createElement(Y.Z,{variant:"pi",textColor:"neutral600"},u({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:I,dimension:k})))),e.createElement(Z.c,null)))))),e.createElement(Ge.m,{startActions:e.createElement(K.z,{onClick:h,variant:"tertiary"},u({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};ft.defaultProps={next:null},ft.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};const Nt=ft;var Zt=n(10369),$t=n(43653),Wt=n.n($t),ut=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const bt=m=>ut(void 0,null,function*(){try{const c=yield Wt().get(m,{responseType:"blob",timeout:8e3});return new File([c.data],c.config.url,{type:c.headers["content-type"]})}catch(c){throw c.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},c}});var oo=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const ht=({goTo:m,next:c,onClose:l,setLocalImage:h})=>{const{formatMessage:u}=(0,Q.useIntl)(),[T,M]=(0,e.useState)(""),[R,y]=(0,e.useState)(null),D=ue=>{M(ue.target.value)},fe=()=>oo(void 0,null,function*(){try{const ue=yield bt(T),qe=yield Ce(ue);h(qe),m(c)}catch(ue){if(ue.displayMessage)y(u(ue.displayMessage,{size:I,dimension:k}));else throw ue}});return e.createElement("form",{onSubmit:ue=>{ue.preventDefault(),fe()}},e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Zt.o,{label:u({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:R,onChange:D,value:T,name:"logo-url"})),e.createElement(Ge.m,{startActions:e.createElement(K.z,{onClick:l,variant:"tertiary"},u({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(K.z,{type:"submit"},u({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};ht.defaultProps={next:null},ht.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};const ao=ht,St=({setLocalImage:m,goTo:c,next:l,onClose:h})=>{const{formatMessage:u}=(0,Q.useIntl)();return e.createElement(W.v,{label:u({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(A.x,{paddingLeft:8,paddingRight:8},e.createElement(X.m,null,e.createElement(X.O,null,u({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(X.O,null,u({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(De.i,null)),e.createElement(pe.n,null,e.createElement(pe.x,null,e.createElement(Nt,{onClose:h,setLocalImage:m,goTo:c,next:l})),e.createElement(pe.x,null,e.createElement(ao,{onClose:h,setLocalImage:m,goTo:c,next:l}))))};St.defaultProps={next:null},St.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};const fn=St;var Ut=n(42466),hn=n(20853),vn=n(2800),Vt=n(26835),yn=n(41048),Pt=n(37083),kt=n(11505);const Dt=({asset:m})=>{const{formatMessage:c}=(0,Q.useIntl)();return e.createElement(Ut.Z,null,e.createElement(hn.O,null,e.createElement(vn.H,{size:"S",src:m.url})),e.createElement(Vt.e,null,e.createElement(yn.a,null,e.createElement(Pt.l,null,m.name),e.createElement(Pt._,null,`${m.ext.toUpperCase()} - ${m.width}\u2715${m.height}`)),e.createElement(kt.E,null,c({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};Dt.propTypes={asset:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}).isRequired};const mt=Dt,Gt=({onClose:m,asset:c,prev:l,next:h,goTo:u,setLocalImage:T,onChangeLogo:M})=>{const{formatMessage:R}=(0,Q.useIntl)(),y=()=>{T(void 0),u(l)},D=()=>{M(c),u(h)};return e.createElement(e.Fragment,null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(ge.k,{justifyContent:"space-between",paddingBottom:6},e.createElement(ge.k,{direction:"column",alignItems:"flex-start"},e.createElement(Y.Z,{variant:"pi",fontWeight:"bold"},R({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(Y.Z,{variant:"pi",textColor:"neutral500"},R({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(K.z,{onClick:y,variant:"secondary"},R({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(A.x,{maxWidth:(0,C.pxToRem)(180)},e.createElement(mt,{asset:c}))),e.createElement(Ge.m,{startActions:e.createElement(K.z,{onClick:m,variant:"tertiary"},R({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(K.z,{onClick:D},R({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};Gt.defaultProps={next:null,prev:null},Gt.propTypes={goTo:f().func.isRequired,asset:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}).isRequired,next:f().string,onClose:f().func.isRequired,onChangeLogo:f().func.isRequired,prev:f().string,setLocalImage:f().func.isRequired};const it={upload:{Component:fn,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:Gt,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}},Ht=({customLogo:m,defaultLogo:c,onChangeLogo:l,onResetMenuLogo:h})=>{const[{currentStep:u},T]=(0,e.useReducer)(st,Qe),{Component:M,next:R,prev:y,modalTitle:D}=it[u]||{},{formatMessage:fe}=(0,Q.useIntl)(),ue=qe=>{T({type:"GO_TO",to:qe})};return e.createElement(e.Fragment,null,e.createElement(_e.F,{label:fe({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"}),selectedSlide:0,hint:fe({id:"Settings.application.customization.carousel-hint",defaultMessage:"Change the admin panel logo (Max dimension: {dimension}x{dimension}, Max file size: {size}KB)"},{size:I,dimension:k}),previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:(m==null?void 0:m.name)||"logo.png",actions:e.createElement(Xe.b,null,e.createElement(je.h,{onClick:()=>ue(m?"pending":"upload"),label:fe({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(Ne.default,null)}),m&&e.createElement(je.h,{onClick:h,label:fe({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(Ue.Z,null)}))},e.createElement(be.q,{label:fe({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(A.x,{maxHeight:"40%",maxWidth:"40%",as:"img",src:(m==null?void 0:m.url)||c,alt:fe({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement($,{Component:M,currentStep:u,onChangeLogo:l,customLogo:m,goTo:ue,next:R,prev:y,modalTitle:D}))};Ht.defaultProps={customLogo:null},Ht.propTypes={customLogo:f().shape({url:f().string,name:f().string}),defaultLogo:f().string.isRequired,onChangeLogo:f().func.isRequired,onResetMenuLogo:f().func.isRequired};const Cn=Ht,Mt={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}}},vt=(m=Mt,c)=>(0,Ze.default)(m,l=>{switch(c.type){case"SET_CUSTOM_MENU_LOGO":{l.menuLogo.display=c.value,l.menuLogo.submit.rawFile=c.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{l.menuLogo.display=null,l.menuLogo.submit={rawFile:null,isReset:!0};break}default:return l}});var so=n(86349),yt=n.n(so);const Xt=(m,c)=>yt()(m,{menuLogo:{display:c.menuLogo}}),Tt=(0,e.forwardRef)(({projectSettingsStored:m},c)=>{const{formatMessage:l}=(0,Q.useIntl)(),{trackUsage:h}=(0,C.useTracking)(),{logos:{menu:u}}=(0,_.um)(),[{menuLogo:T},M]=(0,e.useReducer)(vt,Mt,()=>Xt(Mt,m)),R=D=>{M({type:"SET_CUSTOM_MENU_LOGO",value:D})},y=()=>{h("didClickResetLogo"),M({type:"RESET_CUSTOM_MENU_LOGO"})};return(0,e.useImperativeHandle)(c,()=>({getValues:()=>({menuLogo:T.submit})})),e.createElement(A.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(Y.Z,{variant:"delta",as:"h3"},l({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(P.r,{paddingTop:4},e.createElement(Be.P,{col:6,s:12},e.createElement(Cn,{onChangeLogo:R,customLogo:T.display,defaultLogo:u.default,onResetMenuLogo:y}))))});Tt.defaultProps={projectSettingsStored:null},Tt.propTypes={projectSettingsStored:f().shape({menuLogo:f().shape({url:f().string,name:f().string})})};const bn=Tt;var Lt=n(17247),Qt=n(48344),Yt=n.n(Qt),Sn=Object.defineProperty,Jt=Object.defineProperties,Pn=Object.getOwnPropertyDescriptors,Tn=Object.getOwnPropertySymbols,An=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,_t=(m,c,l)=>c in m?Sn(m,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):m[c]=l,en=(m,c)=>{for(var l in c||(c={}))An.call(c,l)&&_t(m,l,c[l]);if(Tn)for(var l of Tn(c))qt.call(c,l)&&_t(m,l,c[l]);return m},Rn=(m,c)=>Jt(m,Pn(c));const tn=m=>Yt()(m,(c,l,h)=>{l&&l.url?c[h]=Rn(en({},l),{url:(0,C.prefixFileUrlWithBackendUrl)(l.url)}):c[h]=l},{});var On=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const nn=()=>On(void 0,null,function*(){const{data:m}=yield Lt.be.get("/admin/project-settings");return tn(m)}),Dn=m=>On(void 0,null,function*(){const{data:c}=yield Lt.be.post("/admin/project-settings",m);return tn(c)}),Mn=m=>{const c=new FormData;return Object.entries(m).forEach(([l,h])=>{h&&h.rawFile instanceof File&&c.append(l,h.rawFile),h&&h.isReset&&c.append(l,null)}),c};var on=(m,c,l)=>new Promise((h,u)=>{var T=y=>{try{R(l.next(y))}catch(D){u(D)}},M=y=>{try{R(l.throw(y))}catch(D){u(D)}},R=y=>y.done?h(y.value):Promise.resolve(y.value).then(T,M);R((l=l.apply(m,c)).next())});const Ln=[{action:"admin::project-settings.update",subject:null}],an=()=>{const m=(0,e.useRef)(),c=(0,C.useNotification)(),{trackUsage:l}=(0,C.useTracking)(),{formatMessage:h}=(0,Q.useIntl)(),u=(0,Ae.useQueryClient)();(0,C.useFocusWhenNavigate)();const T=(0,C.useAppInfos)(),{shouldUpdateStrapi:M,latestStrapiReleaseTag:R,strapiVersion:y}=T,{updateProjectSettings:D}=(0,_.um)(),{data:fe}=(0,Ae.useQuery)("project-settings",nn),ue=T.communityEdition?"app.components.UpgradePlanModal.text-ce":"app.components.UpgradePlanModal.text-ee",qe=(0,Ae.useMutation)(at=>Dn(at),{onSuccess(at){return on(this,arguments,function*({menuLogo:tt}){yield u.invalidateQueries("project-settings",{refetchActive:!0}),D({menuLogo:tt==null?void 0:tt.url})})}}),pt=()=>{const at=m.current.getValues(),tt=Mn(at);qe.mutate(tt,{onSuccess(){const{menuLogo:lt}=at;lt.rawFile&&l("didChangeLogo")},onError(){c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(oe.A,null,e.createElement(C.SettingsPageTitle,{name:"Application"}),e.createElement(V.o,null,e.createElement(Re.T,{title:h({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:h({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:e.createElement(K.z,{onClick:pt,startIcon:e.createElement(x.Z,null)},h({id:"global.save",defaultMessage:"Save"}))}),e.createElement(He.D,null,e.createElement(Oe.K,{spacing:6},e.createElement(A.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(Oe.K,{spacing:5},e.createElement(Y.Z,{variant:"delta",as:"h3"},h({id:"global.details",defaultMessage:"Details"})),e.createElement(P.r,{paddingTop:1},e.createElement(Be.P,{col:6,s:12},e.createElement(Y.Z,{variant:"sigma",textColor:"neutral600"},h({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(Y.Z,{as:"p"},"v",y),e.createElement(ze.r,{href:T.communityEdition?"https://discord.strapi.io":"https://support.strapi.io/support/home",isExternal:!0,endIcon:e.createElement(re.default,null)},h({id:"Settings.application.get-help",defaultMessage:"Get help"}))),e.createElement(Be.P,{col:6,s:12},e.createElement(Y.Z,{variant:"sigma",textColor:"neutral600"},h({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(Y.Z,{as:"p"},h({id:ue,defaultMessage:`${T.communityEdition?"Community Edition":"Enterprise Edition"}`})))),e.createElement(P.r,{paddingTop:1},e.createElement(Be.P,{col:6,s:12},M&&e.createElement(ze.r,{href:`https://github.com/strapi/strapi/releases/tag/${R}`,isExternal:!0,endIcon:e.createElement(re.default,null)},h({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"}))),e.createElement(Be.P,{col:6,s:12},e.createElement(ze.r,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(re.default,null)},h({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(A.x,{paddingTop:1},e.createElement(Y.Z,{variant:"sigma",textColor:"neutral600"},h({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(Y.Z,{as:"p"},T.nodeVersion)))),fe&&e.createElement(C.CheckPermissions,{permissions:Ln},e.createElement(bn,{ref:m,projectSettingsStored:fe}))))))};var xn=n(3704),In=n.n(xn);const Fn=m=>In()(m,l=>l.links).map(l=>(0,Te.ot)(l.Component,l.to,l.exact||!1)),wn=m=>m.filter(c=>!c.links.every(l=>l.isDisplayed===!1));var It=n(15685),et=n(52136),Bn=n(33997),de=n.n(Bn),sn=function(){return window&&window.strapi&&window.strapi.isEE?n(20178).Z:n(16329).Z}(),jn=function(){return window&&window.strapi&&window.strapi.isEE?n(51899).Z:n(45677).Z}(),Nn=[{Component:function(){return{default:jn}},to:"/settings/roles",exact:!0},{Component:function(){return{default:sn}},to:"/settings/roles/duplicate/:id",exact:!0},{Component:function(){return{default:sn}},to:"/settings/roles/new",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(2544).then(n.bind(n,33778));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/roles/:id",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(5199).then(n.bind(n,31904));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/users",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(4263).then(n.bind(n,40874));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/users/:id",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(5162).then(n.bind(n,33238));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/webhooks/create",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(5162).then(n.bind(n,59021));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/webhooks/:id",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(4121).then(n.bind(n,74767));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/webhooks",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.e(8056).then(n.bind(n,83782));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/api-tokens",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Promise.all([n.e(8633),n.e(4318),n.e(4299)]).then(n.bind(n,3330));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/api-tokens/create",exact:!0},{Component:function(){return(0,et.Z)(de().mark(function c(){var l;return de().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Promise.all([n.e(8633),n.e(4318),n.e(92)]).then(n.bind(n,97841));case 2:return l=u.sent,u.abrupt("return",l);case 4:case"end":return u.stop()}},c)}))()},to:"/settings/api-tokens/:id",exact:!0}];const Ft=Nn;var Zn=function(){return window&&window.strapi&&window.strapi.isEE?n(63775).Z:n(75936).Z}();const rn=[].concat((0,It.Z)(Zn),(0,It.Z)(Ft));var ln=n(90700),$n=n(8598),Wn=n(77013),zn=n(79318),Un=n(66618),Vn=Object.defineProperty,cn=Object.defineProperties,kn=Object.getOwnPropertyDescriptors,dn=Object.getOwnPropertySymbols,co=Object.prototype.hasOwnProperty,Gn=Object.prototype.propertyIsEnumerable,wt=(m,c,l)=>c in m?Vn(m,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):m[c]=l,Bt=(m,c)=>{for(var l in c||(c={}))co.call(c,l)&&wt(m,l,c[l]);if(dn)for(var l of dn(c))Gn.call(c,l)&&wt(m,l,c[l]);return m},un=(m,c)=>cn(m,kn(c));const At=({menu:m})=>{const{formatMessage:c}=(0,Q.useIntl)(),h=wn(m).map(T=>un(Bt({},T),{title:T.intlLabel,links:T.links.map(M=>un(Bt({},M),{title:M.intlLabel,name:M.id}))})),u=c({id:"global.settings",defaultMessage:"Settings"});return e.createElement(ln.m,{ariaLabel:u},e.createElement($n.p,{label:u}),e.createElement(Wn.Z,null,h.map(T=>e.createElement(zn.D,{key:T.id,label:c(T.intlLabel)},T.links.map(M=>e.createElement(Un.E,{as:r.NavLink,withBullet:M.hasNotification,to:M.to,key:M.id},c(M.intlLabel)))))))};At.propTypes={menu:f().array.isRequired};const Kn=At;function mn(){const{settingId:m}=(0,r.useParams)(),{settings:c}=(0,C.useStrapiApp)(),{formatMessage:l}=(0,Q.useIntl)(),{isLoading:h,menu:u}=(0,_.Te)(),T=(0,e.useMemo)(()=>(0,Te.WW)(rn.map(({to:y,Component:D,exact:fe})=>(0,Te.ot)(D,y,fe))),[]),M=Fn(c);if(h)return e.createElement(C.LoadingIndicatorPage,null);if(!m)return e.createElement(r.Redirect,{to:"/settings/application-infos"});const R=l({id:"global.settings",defaultMessage:"Settings"});return e.createElement(oe.A,{sideNav:e.createElement(Kn,{menu:u})},e.createElement(We.Helmet,{title:R}),e.createElement(r.Switch,null,e.createElement(r.Route,{path:"/settings/application-infos",component:an,exact:!0}),T,M))}const pn=(0,e.memo)(mn)},16329:(le,O,n)=>{n.d(O,{Z:()=>oe});var e=n(32735),C=n(5141);const oe=()=>e.createElement(C.Redirect,{to:"/404"})},49466:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},35123:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},18318:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},52124:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},61526:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},37511:(le,O,n)=>{n.d(O,{Z:()=>rs});var e=n(32735),C=n(60216),r=n.n(C),oe=n(88425),Q=n(35540),We=n(39291),_=n(3653),Te=n(23973),Ae=n.n(Te),Re=n(86834),He=n.n(Re),V=n(5636),A=n(62345),P=n(83292),Be=n(98978),Y=n.n(Be),Oe=n(39515),K=n(96441),ze=n(15974),re=n(44426),x=n(36320),ae=n(33795),f=n.n(ae),_e=n(9086),Xe=n.n(_e),be=n(49737),je=n(45112),Ne=n(41415);const Ue=P.default.div`
|
|
10
10
|
position: relative;
|
|
11
11
|
|
|
12
12
|
${({hasConditions:a,disabled:t,theme:o})=>a&&`
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
border-radius: `).concat(20/16,`rem;
|
|
131
131
|
background: `).concat(o?s.colors.neutral100:s.colors.primary600,`;
|
|
132
132
|
}
|
|
133
|
-
`)}),vo=function(t){var o=t.categoryName,s=t.isFormDisabled,i=t.subCategoryName,d=t.actions,p=t.pathToData,g=(0,e.useState)(!1),E=(0,Oe.Z)(g,2),b=E[0],S=E[1],L=(0,be.$_)(),B=L.modifiedData,z=L.onChangeParentCheckbox,j=L.onChangeSimpleCheckbox,U=(0,V.useIntl)(),w=U.formatMessage,N=f()(B,p,{}),q=(0,e.useMemo)(function(){return Object.keys(N).reduce(function(ve,Fe){return ve[Fe]=Kt(N[Fe]),ve},{})},[N]),he=it(q),Ke=he.hasAllActionsSelected,Me=he.hasSomeActionsSelected,Se=function(){S(function(Fe){return!Fe})},Ie=function(){S(!1)},Le=pa(d,B,p),Ct=ga(f()(B,(0,xt.Z)(p),{}));return e.createElement(e.Fragment,null,e.createElement(A.x,null,e.createElement(x.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(A.x,{paddingRight:4},e.createElement(me.Z,{variant:"sigma",textColor:"neutral600"},i)),e.createElement(fa,null),e.createElement(A.x,{paddingLeft:4},e.createElement(go.X,{name:p.join(".."),disabled:s||Xn,onValueChange:function(Fe){z({target:{name:p.join(".."),value:Fe}})},indeterminate:Me,value:Ke},w({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(x.k,{paddingTop:6,paddingBottom:6},e.createElement(aa.r,{gap:2,style:{flex:1}},Le.map(function(ve){var Fe=ve.checkboxName,se=ve.value,Ee=ve.action,Pe=ve.displayName,we=ve.hasConditions;return e.createElement(sa.P,{col:3,key:Ee},e.createElement(ha,{disabled:s||Xn,hasConditions:we},e.createElement(go.X,{name:Fe,disabled:s||Xn,onValueChange:function(gt){j({target:{name:Fe,value:gt}})},value:se},Pe)))})),e.createElement(Qe,{hasConditions:Ct,onClick:Se}))),b&&e.createElement(Wt,{headerBreadCrumbs:[o,i],actions:Le,isFormDisabled:s,onClosed:Ie,onToggle:Se}))};vo.propTypes={actions:r().array.isRequired,categoryName:r().string.isRequired,isFormDisabled:r().bool.isRequired,subCategoryName:r().string.isRequired,pathToData:r().array.isRequired};const va=vo,Qn=({childrenForm:a,kind:t,name:o,isOpen:s,isFormDisabled:i,isWhite:d,onOpenCategory:p,pathToData:g})=>{const{formatMessage:E}=(0,V.useIntl)(),b=()=>{p(o)},S=(0,e.useMemo)(()=>o.split("::").pop(),[o]);return e.createElement(ta.U,{expanded:s,onToggle:b,id:`accordion-${o}`,variant:d?"primary":"secondary"},e.createElement(na.B,{title:I()(S),description:`${E({id:"Settings.permissions.category"},{category:S})} ${t==="plugins"?"plugin":t}`}),e.createElement(oa.v,null,e.createElement(A.x,{padding:6},a.map(({actions:L,subCategoryName:B,subCategoryId:z})=>e.createElement(va,{key:B,actions:L,categoryName:S,isFormDisabled:i,subCategoryName:B,pathToData:[...g,z]})))))};Qn.defaultProps={},Qn.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};const ya=Qn,yo=({isFormDisabled:a,kind:t,layout:o})=>{const[s,i]=(0,e.useState)(null),d=p=>{i(p===s?null:p)};return e.createElement(A.x,{padding:6,background:"neutral0"},o.map(({category:p,categoryId:g,childrenForm:E},b)=>e.createElement(ya,{key:p,childrenForm:E,kind:t,isFormDisabled:a,isOpen:s===p,isWhite:b%2===1,name:p,onOpenCategory:d,pathToData:[t,g]})))};yo.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};const Co=yo,Eo=(a,t,o)=>a.find(s=>s.action===t&&s.subject===o);var Ca=Object.defineProperty,Ea=Object.defineProperties,ba=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,Sa=Object.prototype.hasOwnProperty,Pa=Object.prototype.propertyIsEnumerable,So=(a,t,o)=>t in a?Ca(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,Po=(a,t)=>{for(var o in t||(t={}))Sa.call(t,o)&&So(a,o,t[o]);if(bo)for(var o of bo(t))Pa.call(t,o)&&So(a,o,t[o]);return a},To=(a,t)=>Ea(a,ba(t));const Ao=(a,t=[])=>a.reduce((o,s)=>(o[s.id]=t.indexOf(s.id)!==-1,o),{}),Ro=({children:a},t,o="")=>a.reduce((s,i)=>{if(i.children)return To(Po({},s),{[i.value]:Ro(i,t,`${o}${i.value}.`)});const d=t.indexOf(`${o}${i.value}`)!==-1;return s[i.value]=d,s},{}),Ta=(a,t,o)=>a.reduce((s,i)=>{const d=t.properties.find(({value:p})=>p===i);if(d){const p=(0,v.get)(o,["properties",d.value],[]),g=Ro(d,p);s.properties[i]=g}return s},{properties:{}}),Aa=(a,t)=>t.reduce((o,s)=>{const i=a.find(({uid:d})=>d===s)||null;return i&&(o[s]=i),o},{}),Oo=({subjects:a},t,o,s=[])=>t.reduce((i,d)=>{const p=d.subjects,g=Aa(a,p);if((0,v.isEmpty)(g))return i;const E=Object.keys(g).reduce((b,S)=>{const{actionId:L,applyToProperties:B}=d,U=g[S].properties.map(({value:he})=>he).every(he=>(B||[]).indexOf(he)===-1),w=Eo(s,L,S),N=Ao(o,(0,v.get)(w,"conditions",[]));if((0,v.isEmpty)(B)||U)return(0,v.set)(b,[S,L],{properties:{enabled:w!==void 0},conditions:N}),b;const q=Ta(B,g[S],w);return(0,v.set)(b,[S,L],To(Po({},q),{conditions:N})),b},{});return(0,v.merge)(i,E)},{}),Ra=(a,t,o)=>a.reduce((s,i)=>{const d=Eo(o,i.action,null);return s[i.action]={properties:{enabled:d!==void 0},conditions:Ao(t,(0,v.get)(d,"conditions",[]))},s},{}),Oa=(a,t,o)=>a.reduce((s,i)=>(s[i.subCategoryId]=Ra(i.actions,t,o),s),{}),Do=(a,t,o=[])=>a.reduce((s,{categoryId:i,childrenForm:d})=>{const p=Oa(d,t,o);return s[i]=p,s},{}),Mo=a=>a.split(" ").join("-"),Lo=(a,t)=>(0,v.chain)(a).groupBy(t).map((o,s)=>({category:s,categoryId:Mo(s),childrenForm:(0,v.chain)(o).groupBy("subCategory").map((i,d)=>({subCategoryName:d,subCategoryId:Mo(d),actions:i})).value()})).value(),Da=(a,t)=>{const{conditions:o,sections:{collectionTypes:s,singleTypes:i,plugins:d,settings:p}}=a,g={collectionTypes:s,singleTypes:i,plugins:Lo(d,"plugin"),settings:Lo(p,"category")},E={collectionTypes:Oo(s,s.actions||[],o,t),singleTypes:Oo(i,i.actions||[],o,t),plugins:Do(g.plugins,o,t),settings:Do(g.settings,o,t)};return{initialData:E,modifiedData:E,layouts:g}};var Ma=Object.defineProperty,La=Object.defineProperties,xa=Object.getOwnPropertyDescriptors,xo=Object.getOwnPropertySymbols,Ia=Object.prototype.hasOwnProperty,Fa=Object.prototype.propertyIsEnumerable,Io=(a,t,o)=>t in a?Ma(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,Yn=(a,t)=>{for(var o in t||(t={}))Ia.call(t,o)&&Io(a,o,t[o]);if(xo)for(var o of xo(t))Fa.call(t,o)&&Io(a,o,t[o]);return a},Jn=(a,t)=>La(a,xa(t));const Fo=a=>Object.keys(a).reduce((t,o)=>{const s=a[o];if((0,v.isObject)(s)&&!(0,v.has)(s,"conditions"))return Jn(Yn({},t),{[o]:Fo(s)});if((0,v.isObject)(s)&&(0,v.has)(s,"conditions")&&!mt((0,v.omit)(s,"conditions")).some(d=>d)){const d=Object.keys(s.conditions).reduce((p,g)=>(p[g]=!1,p),{});return Jn(Yn({},t),{[o]:Jn(Yn({},s),{conditions:d})})}return t[o]=s,t},{}),qn=Fo;var wa=Object.defineProperty,Ba=Object.defineProperties,ja=Object.getOwnPropertyDescriptors,wo=Object.getOwnPropertySymbols,Na=Object.prototype.hasOwnProperty,Za=Object.prototype.propertyIsEnumerable,Bo=(a,t,o)=>t in a?wa(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,$a=(a,t)=>{for(var o in t||(t={}))Na.call(t,o)&&Bo(a,o,t[o]);if(wo)for(var o of wo(t))Za.call(t,o)&&Bo(a,o,t[o]);return a},Wa=(a,t)=>Ba(a,ja(t));const jo=(a,t)=>Object.keys(a).reduce((o,s)=>{const i=a[s];return s==="conditions"?(o[s]=i,o):(0,v.isObject)(i)?Wa($a({},o),{[s]:jo(i,t)}):(o[s]=t,o)},{}),gn=jo;var za=Object.defineProperty,Ua=Object.defineProperties,Va=Object.getOwnPropertyDescriptors,No=Object.getOwnPropertySymbols,ka=Object.prototype.hasOwnProperty,Ga=Object.prototype.propertyIsEnumerable,Zo=(a,t,o)=>t in a?za(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,Ka=(a,t)=>{for(var o in t||(t={}))ka.call(t,o)&&Zo(a,o,t[o]);if(No)for(var o of No(t))Ga.call(t,o)&&Zo(a,o,t[o]);return a},Ha=(a,t)=>Ua(a,Va(t));const Xa={initialData:{},modifiedData:{},layouts:{}},Qa=(a,t)=>(0,Ve.default)(a,o=>{switch(t.type){case"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX":{const{collectionTypeKind:s,actionId:i,value:d}=t,p=["modifiedData",s];Object.keys((0,v.get)(a,p)).forEach(g=>{const E=(0,v.get)(a,[...p,g,i],void 0);if(E){let b=gn(E,d);if(!d&&b.conditions){const S=gn(b.conditions,!1);b=Ha(Ka({},b),{conditions:S})}(0,v.set)(o,[...p,g,i],b)}});break}case"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX":{const{pathToCollectionType:s,propertyName:i,rowName:d,value:p}=t;let g=(0,v.cloneDeep)(a.modifiedData);const E=s.split(".."),b=(0,v.get)(g,E,{});Object.keys(b).forEach(S=>{if((0,v.has)(b[S],`properties.${i}`)){const L=(0,v.get)(b,[S,"properties",i,d]),B=[...E,S,"properties",i,d];if(!(0,v.isObject)(L))(0,v.set)(g,B,p);else{const z=gn(L,p);(0,v.set)(g,B,z)}}}),p||(g=qn(g)),(0,v.set)(o,"modifiedData",g);break}case"ON_CHANGE_CONDITIONS":{Object.entries(t.conditions).forEach(s=>{const[i,d]=s;(0,v.set)(o,["modifiedData",...i.split(".."),"conditions"],d)});break}case"ON_CHANGE_SIMPLE_CHECKBOX":{let s=(0,v.cloneDeep)(a.modifiedData);(0,v.set)(s,[...t.keys.split("..")],t.value),t.value||(s=qn(s)),(0,v.set)(o,"modifiedData",s);break}case"ON_CHANGE_TOGGLE_PARENT_CHECKBOX":{const{keys:s,value:i}=t,d=[...s.split("..")];let p=(0,v.cloneDeep)(a.modifiedData);const g=(0,v.get)(p,d,{}),E=gn(g,i);(0,v.set)(p,d,E),i||(p=qn(p)),(0,v.set)(o,["modifiedData"],p);break}case"RESET_FORM":{o.modifiedData=a.initialData;break}case"SET_FORM_AFTER_SUBMIT":{o.initialData=a.modifiedData;break}default:return o}}),_n=a=>Object.entries(a).filter(([,t])=>t).map(([t])=>t),Ya=a=>{const[t,{conditions:o}]=a;return{action:t,subject:null,conditions:_n(o),properties:{}}},Ja=a=>Object.values(a).reduce((t,o)=>{const s=Object.entries(o).reduce((i,d)=>{const[,{properties:{enabled:p}}]=d;if(!p)return i;const g=Ya(d);return i.push(g),i},[]);return[...t,...s]},[]),$o=a=>Object.values(a).reduce((t,o)=>{const s=Ja(o);return[...t,...s]},[]),Wo=(a,t="")=>Object.entries(a).reduce((o,s)=>{const[i,d]=s;return(0,v.isObject)(d)?[...o,...Wo(d,`${t}${i}.`)]:(d&&!(0,v.isObject)(d)&&o.push(`${t}${i}`),o)},[]),qa=(a,t,{conditions:o,properties:s})=>Object.entries(s).reduce((i,d)=>{const[p,g]=d;return i.properties[p]=Wo(g),i},{action:a,subject:t,conditions:_n(o),properties:{}}),_a=(a,t,{conditions:o})=>({action:a,subject:t,properties:{},conditions:_n(o)}),es=(a,t)=>Object.entries(t).reduce((s,i)=>{const[d,p]=i;if(!mt(p).some(b=>b))return s;if(!(0,v.has)(p,"properties.enabled")){const b=qa(d,a,p);return[...s,b]}if(!p.properties.enabled)return s;const E=_a(d,a,p);return s.push(E),s},[]),zo=a=>Object.entries(a).reduce((o,s)=>{const[i,d]=s,p=es(i,d);return[...o,...p]},[]),ts=a=>{const t=$o(a.plugins),o=$o(a.settings),s=zo(a.collectionTypes),i=zo(a.singleTypes);return[...t,...o,...s,...i]},ns=[{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"}];var os=Object.defineProperty,Uo=Object.getOwnPropertySymbols,as=Object.prototype.hasOwnProperty,ss=Object.prototype.propertyIsEnumerable,Vo=(a,t,o)=>t in a?os(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,ko=(a,t)=>{for(var o in t||(t={}))as.call(t,o)&&Vo(a,o,t[o]);if(Uo)for(var o of Uo(t))ss.call(t,o)&&Vo(a,o,t[o]);return a};const eo=(0,e.forwardRef)(({layout:a,isFormDisabled:t,permissions:o},s)=>{const[{initialData:i,layouts:d,modifiedData:p},g]=(0,e.useReducer)(Qa,Xa,()=>Da(a,o)),{formatMessage:E}=(0,V.useIntl)();(0,e.useImperativeHandle)(s,()=>({getPermissions(){const j=(0,oe.difference)(i.collectionTypes,p.collectionTypes),U=(0,oe.difference)(i.singleTypes,p.singleTypes),w=ko(ko({},j),U);let N;return He()(w)?N=!1:N=Object.values(w).some(q=>Object.values(q).some(he=>Ae()(he,"conditions"))),{permissionsToSend:ts(p),didUpdateConditions:N}},resetForm(){g({type:"RESET_FORM"})},setFormAfterSubmit(){g({type:"SET_FORM_AFTER_SUBMIT"})}}));const b=(j,U,w,N)=>{g({type:"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",pathToCollectionType:j,propertyName:U,rowName:w,value:N})},S=(j,U,w)=>{g({type:"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",collectionTypeKind:j,actionId:U,value:w})},L=j=>{g({type:"ON_CHANGE_CONDITIONS",conditions:j})},B=(0,e.useCallback)(({target:{name:j,value:U}})=>{g({type:"ON_CHANGE_SIMPLE_CHECKBOX",keys:j,value:U})},[]),z=(0,e.useCallback)(({target:{name:j,value:U}})=>{g({type:"ON_CHANGE_TOGGLE_PARENT_CHECKBOX",keys:j,value:U})},[]);return e.createElement(ea,{value:{availableConditions:a.conditions,modifiedData:p,onChangeConditions:L,onChangeSimpleCheckbox:B,onChangeParentCheckbox:z,onChangeCollectionTypeLeftActionRowCheckbox:b,onChangeCollectionTypeGlobalActionCheckbox:S}},e.createElement(Q.v,{id:"tabs",label:E({id:"Settings.permissions.users.tabs.label",defaultMessage:"Tabs Permissions"})},e.createElement(We.m,null,ns.map(j=>e.createElement(We.O,{key:j.id},E({id:j.labelId,defaultMessage:j.defaultMessage})))),e.createElement(_.n,{style:{position:"relative"}},e.createElement(_.x,null,e.createElement(mo,{layout:d.collectionTypes,kind:"collectionTypes",isFormDisabled:t})),e.createElement(_.x,null,e.createElement(mo,{layout:d.singleTypes,kind:"singleTypes",isFormDisabled:t})),e.createElement(_.x,null,e.createElement(Co,{layout:d.plugins,kind:"plugins",isFormDisabled:t})),e.createElement(_.x,null,e.createElement(Co,{layout:d.settings,kind:"settings",isFormDisabled:t})))))});eo.defaultProps={permissions:[],layout:{conditions:[],sections:{collectionTypes:{},singleTypes:{actions:[]},settings:[],plugins:[]}}},eo.propTypes={layout:r().object,isFormDisabled:r().bool.isRequired,permissions:r().array};const rs=(0,e.memo)(eo)},16437:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},78522:(le,O,n)=>{n.d(O,{Z:()=>e});const e=()=>"todo empty role"},80779:(le,O,n)=>{n.d(O,{Z:()=>re});var e=n(32735),C=n(60216),r=n.n(C),oe=n(62345),Q=n(36320),We=n(94547),_=n(19786),Te=n(88860),Ae=n(50563),Re=n(88425),He=n.n(Re),V=n(5636),A=Object.defineProperty,P=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,Oe=(x,ae,f)=>ae in x?A(x,ae,{enumerable:!0,configurable:!0,writable:!0,value:f}):x[ae]=f,K=(x,ae)=>{for(var f in ae||(ae={}))Be.call(ae,f)&&Oe(x,f,ae[f]);if(P)for(var f of P(ae))Y.call(ae,f)&&Oe(x,f,ae[f]);return x};const ze=({id:x,name:ae,description:f,usersCount:_e,icons:Xe,rowIndex:be})=>{const{formatMessage:je}=(0,V.useIntl)(),Ne=je({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:_e});return e.createElement(We.Tr,K({"aria-rowindex":be,key:x},(0,Re.onRowClick)({fn:Xe[1].onClick})),e.createElement(_.Td,{maxWidth:(0,Re.pxToRem)(130)},e.createElement(Te.Z,{ellipsis:!0,textColor:"neutral800"},ae)),e.createElement(_.Td,{maxWidth:(0,Re.pxToRem)(250)},e.createElement(Te.Z,{ellipsis:!0,textColor:"neutral800"},f)),e.createElement(_.Td,null,e.createElement(Te.Z,{textColor:"neutral800"},Ne)),e.createElement(_.Td,null,e.createElement(Q.k,K({justifyContent:"flex-end"},Re.stopPropagation),Xe.map((Ue,Ze)=>Ue?e.createElement(oe.x,{key:Ue.label,paddingLeft:Ze===0?0:1},e.createElement(Ae.h,{onClick:Ue.onClick,label:Ue.label,noBorder:!0,icon:Ue.icon})):null))))};ze.propTypes={id:r().number.isRequired,name:r().string.isRequired,description:r().string.isRequired,usersCount:r().number.isRequired,icons:r().array.isRequired,rowIndex:r().number.isRequired};const re=ze},45677:(le,O,n)=>{n.d(O,{Z:()=>Ge});var e=n(32735),C=n(88425),r=n(72041),oe=n(58469),Q=n(19406),We=n(4038),_=n(68625),Te=n(47765),Ae=n(41415),Re=n(28356),He=n(17e3),V=n(56755),A=n(73269),P=n(33827),Be=n(94547),Y=n(19786),Oe=n(35658),K=n(88860),ze=n(27649),re=n(3685),x=n(5636),ae=n(5141),f=n(80779),_e=n(78522),Xe=n(60216),be=n.n(Xe),je=n(83292),Ne=n(71933),Ue=n(67563),Ze=n(50563),Qe=n(95489),dt=n(62345),st=n(36320),nt=n(27677),rt=n(47361),ne=n(35331);const me=n.p+"6d21938306785f176538.png",Ve=n.p+"617f9c948fa79e6d73bd.png",ee=je.default.div`
|
|
133
|
+
`)}),vo=function(t){var o=t.categoryName,s=t.isFormDisabled,i=t.subCategoryName,d=t.actions,p=t.pathToData,g=(0,e.useState)(!1),E=(0,Oe.Z)(g,2),b=E[0],S=E[1],L=(0,be.$_)(),B=L.modifiedData,z=L.onChangeParentCheckbox,j=L.onChangeSimpleCheckbox,U=(0,V.useIntl)(),w=U.formatMessage,N=f()(B,p,{}),q=(0,e.useMemo)(function(){return Object.keys(N).reduce(function(ve,Fe){return ve[Fe]=Kt(N[Fe]),ve},{})},[N]),he=it(q),Ke=he.hasAllActionsSelected,Me=he.hasSomeActionsSelected,Se=function(){S(function(Fe){return!Fe})},Ie=function(){S(!1)},Le=pa(d,B,p),Ct=ga(f()(B,(0,xt.Z)(p),{}));return e.createElement(e.Fragment,null,e.createElement(A.x,null,e.createElement(x.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(A.x,{paddingRight:4},e.createElement(me.Z,{variant:"sigma",textColor:"neutral600"},i)),e.createElement(fa,null),e.createElement(A.x,{paddingLeft:4},e.createElement(go.X,{name:p.join(".."),disabled:s||Xn,onValueChange:function(Fe){z({target:{name:p.join(".."),value:Fe}})},indeterminate:Me,value:Ke},w({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(x.k,{paddingTop:6,paddingBottom:6},e.createElement(aa.r,{gap:2,style:{flex:1}},Le.map(function(ve){var Fe=ve.checkboxName,se=ve.value,Ee=ve.action,Pe=ve.displayName,we=ve.hasConditions;return e.createElement(sa.P,{col:3,key:Ee},e.createElement(ha,{disabled:s||Xn,hasConditions:we},e.createElement(go.X,{name:Fe,disabled:s||Xn,onValueChange:function(gt){j({target:{name:Fe,value:gt}})},value:se},Pe)))})),e.createElement(Qe,{hasConditions:Ct,onClick:Se}))),b&&e.createElement(Wt,{headerBreadCrumbs:[o,i],actions:Le,isFormDisabled:s,onClosed:Ie,onToggle:Se}))};vo.propTypes={actions:r().array.isRequired,categoryName:r().string.isRequired,isFormDisabled:r().bool.isRequired,subCategoryName:r().string.isRequired,pathToData:r().array.isRequired};const va=vo,Qn=({childrenForm:a,kind:t,name:o,isOpen:s,isFormDisabled:i,isWhite:d,onOpenCategory:p,pathToData:g})=>{const{formatMessage:E}=(0,V.useIntl)(),b=()=>{p(o)},S=(0,e.useMemo)(()=>o.split("::").pop(),[o]);return e.createElement(ta.U,{expanded:s,onToggle:b,id:`accordion-${o}`,variant:d?"primary":"secondary"},e.createElement(na.B,{title:I()(S),description:`${E({id:"Settings.permissions.category"},{category:S})} ${t==="plugins"?"plugin":t}`}),e.createElement(oa.v,null,e.createElement(A.x,{padding:6},a.map(({actions:L,subCategoryName:B,subCategoryId:z})=>e.createElement(va,{key:B,actions:L,categoryName:S,isFormDisabled:i,subCategoryName:B,pathToData:[...g,z]})))))};Qn.defaultProps={},Qn.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};const ya=Qn,yo=({isFormDisabled:a,kind:t,layout:o})=>{const[s,i]=(0,e.useState)(null),d=p=>{i(p===s?null:p)};return e.createElement(A.x,{padding:6,background:"neutral0"},o.map(({category:p,categoryId:g,childrenForm:E},b)=>e.createElement(ya,{key:p,childrenForm:E,kind:t,isFormDisabled:a,isOpen:s===p,isWhite:b%2===1,name:p,onOpenCategory:d,pathToData:[t,g]})))};yo.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};const Co=yo,Eo=(a,t,o)=>a.find(s=>s.action===t&&s.subject===o);var Ca=Object.defineProperty,Ea=Object.defineProperties,ba=Object.getOwnPropertyDescriptors,bo=Object.getOwnPropertySymbols,Sa=Object.prototype.hasOwnProperty,Pa=Object.prototype.propertyIsEnumerable,So=(a,t,o)=>t in a?Ca(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,Po=(a,t)=>{for(var o in t||(t={}))Sa.call(t,o)&&So(a,o,t[o]);if(bo)for(var o of bo(t))Pa.call(t,o)&&So(a,o,t[o]);return a},To=(a,t)=>Ea(a,ba(t));const Ao=(a,t=[])=>a.reduce((o,s)=>(o[s.id]=t.indexOf(s.id)!==-1,o),{}),Ro=({children:a},t,o="")=>a.reduce((s,i)=>{if(i.children)return To(Po({},s),{[i.value]:Ro(i,t,`${o}${i.value}.`)});const d=t.indexOf(`${o}${i.value}`)!==-1;return s[i.value]=d,s},{}),Ta=(a,t,o)=>a.reduce((s,i)=>{const d=t.properties.find(({value:p})=>p===i);if(d){const p=(0,v.get)(o,["properties",d.value],[]),g=Ro(d,p);s.properties[i]=g}return s},{properties:{}}),Aa=(a,t)=>t.reduce((o,s)=>{const i=a.find(({uid:d})=>d===s)||null;return i&&(o[s]=i),o},{}),Oo=({subjects:a},t,o,s=[])=>t.reduce((i,d)=>{const p=d.subjects,g=Aa(a,p);if((0,v.isEmpty)(g))return i;const E=Object.keys(g).reduce((b,S)=>{const{actionId:L,applyToProperties:B}=d,U=g[S].properties.map(({value:he})=>he).every(he=>(B||[]).indexOf(he)===-1),w=Eo(s,L,S),N=Ao(o,(0,v.get)(w,"conditions",[]));if((0,v.isEmpty)(B)||U)return(0,v.set)(b,[S,L],{properties:{enabled:w!==void 0},conditions:N}),b;const q=Ta(B,g[S],w);return(0,v.set)(b,[S,L],To(Po({},q),{conditions:N})),b},{});return(0,v.merge)(i,E)},{}),Ra=(a,t,o)=>a.reduce((s,i)=>{const d=Eo(o,i.action,null);return s[i.action]={properties:{enabled:d!==void 0},conditions:Ao(t,(0,v.get)(d,"conditions",[]))},s},{}),Oa=(a,t,o)=>a.reduce((s,i)=>(s[i.subCategoryId]=Ra(i.actions,t,o),s),{}),Do=(a,t,o=[])=>a.reduce((s,{categoryId:i,childrenForm:d})=>{const p=Oa(d,t,o);return s[i]=p,s},{}),Mo=a=>a.split(" ").join("-"),Lo=(a,t)=>(0,v.chain)(a).groupBy(t).map((o,s)=>({category:s,categoryId:Mo(s),childrenForm:(0,v.chain)(o).groupBy("subCategory").map((i,d)=>({subCategoryName:d,subCategoryId:Mo(d),actions:i})).value()})).value(),Da=(a,t)=>{const{conditions:o,sections:{collectionTypes:s,singleTypes:i,plugins:d,settings:p}}=a,g={collectionTypes:s,singleTypes:i,plugins:Lo(d,"plugin"),settings:Lo(p,"category")},E={collectionTypes:Oo(s,s.actions||[],o,t),singleTypes:Oo(i,i.actions||[],o,t),plugins:Do(g.plugins,o,t),settings:Do(g.settings,o,t)};return{initialData:E,modifiedData:E,layouts:g}};var Ma=Object.defineProperty,La=Object.defineProperties,xa=Object.getOwnPropertyDescriptors,xo=Object.getOwnPropertySymbols,Ia=Object.prototype.hasOwnProperty,Fa=Object.prototype.propertyIsEnumerable,Io=(a,t,o)=>t in a?Ma(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,Yn=(a,t)=>{for(var o in t||(t={}))Ia.call(t,o)&&Io(a,o,t[o]);if(xo)for(var o of xo(t))Fa.call(t,o)&&Io(a,o,t[o]);return a},Jn=(a,t)=>La(a,xa(t));const Fo=a=>Object.keys(a).reduce((t,o)=>{const s=a[o];if((0,v.isObject)(s)&&!(0,v.has)(s,"conditions"))return Jn(Yn({},t),{[o]:Fo(s)});if((0,v.isObject)(s)&&(0,v.has)(s,"conditions")&&!mt((0,v.omit)(s,"conditions")).some(d=>d)){const d=Object.keys(s.conditions).reduce((p,g)=>(p[g]=!1,p),{});return Jn(Yn({},t),{[o]:Jn(Yn({},s),{conditions:d})})}return t[o]=s,t},{}),qn=Fo;var wa=Object.defineProperty,Ba=Object.defineProperties,ja=Object.getOwnPropertyDescriptors,wo=Object.getOwnPropertySymbols,Na=Object.prototype.hasOwnProperty,Za=Object.prototype.propertyIsEnumerable,Bo=(a,t,o)=>t in a?wa(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,$a=(a,t)=>{for(var o in t||(t={}))Na.call(t,o)&&Bo(a,o,t[o]);if(wo)for(var o of wo(t))Za.call(t,o)&&Bo(a,o,t[o]);return a},Wa=(a,t)=>Ba(a,ja(t));const jo=(a,t)=>Object.keys(a).reduce((o,s)=>{const i=a[s];return s==="conditions"?(o[s]=i,o):(0,v.isObject)(i)?Wa($a({},o),{[s]:jo(i,t)}):(o[s]=t,o)},{}),gn=jo;var za=Object.defineProperty,Ua=Object.defineProperties,Va=Object.getOwnPropertyDescriptors,No=Object.getOwnPropertySymbols,ka=Object.prototype.hasOwnProperty,Ga=Object.prototype.propertyIsEnumerable,Zo=(a,t,o)=>t in a?za(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,Ka=(a,t)=>{for(var o in t||(t={}))ka.call(t,o)&&Zo(a,o,t[o]);if(No)for(var o of No(t))Ga.call(t,o)&&Zo(a,o,t[o]);return a},Ha=(a,t)=>Ua(a,Va(t));const Xa={initialData:{},modifiedData:{},layouts:{}},Qa=(a,t)=>(0,Ve.default)(a,o=>{switch(t.type){case"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX":{const{collectionTypeKind:s,actionId:i,value:d}=t,p=["modifiedData",s];Object.keys((0,v.get)(a,p)).forEach(g=>{const E=(0,v.get)(a,[...p,g,i],void 0);if(E){let b=gn(E,d);if(!d&&b.conditions){const S=gn(b.conditions,!1);b=Ha(Ka({},b),{conditions:S})}(0,v.set)(o,[...p,g,i],b)}});break}case"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX":{const{pathToCollectionType:s,propertyName:i,rowName:d,value:p}=t;let g=(0,v.cloneDeep)(a.modifiedData);const E=s.split(".."),b=(0,v.get)(g,E,{});Object.keys(b).forEach(S=>{if((0,v.has)(b[S],`properties.${i}`)){const L=(0,v.get)(b,[S,"properties",i,d]),B=[...E,S,"properties",i,d];if(!(0,v.isObject)(L))(0,v.set)(g,B,p);else{const z=gn(L,p);(0,v.set)(g,B,z)}}}),p||(g=qn(g)),(0,v.set)(o,"modifiedData",g);break}case"ON_CHANGE_CONDITIONS":{Object.entries(t.conditions).forEach(s=>{const[i,d]=s;(0,v.set)(o,["modifiedData",...i.split(".."),"conditions"],d)});break}case"ON_CHANGE_SIMPLE_CHECKBOX":{let s=(0,v.cloneDeep)(a.modifiedData);(0,v.set)(s,[...t.keys.split("..")],t.value),t.value||(s=qn(s)),(0,v.set)(o,"modifiedData",s);break}case"ON_CHANGE_TOGGLE_PARENT_CHECKBOX":{const{keys:s,value:i}=t,d=[...s.split("..")];let p=(0,v.cloneDeep)(a.modifiedData);const g=(0,v.get)(p,d,{}),E=gn(g,i);(0,v.set)(p,d,E),i||(p=qn(p)),(0,v.set)(o,["modifiedData"],p);break}case"RESET_FORM":{o.modifiedData=a.initialData;break}case"SET_FORM_AFTER_SUBMIT":{o.initialData=a.modifiedData;break}default:return o}}),_n=a=>Object.entries(a).filter(([,t])=>t).map(([t])=>t),Ya=a=>{const[t,{conditions:o}]=a;return{action:t,subject:null,conditions:_n(o),properties:{}}},Ja=a=>Object.values(a).reduce((t,o)=>{const s=Object.entries(o).reduce((i,d)=>{const[,{properties:{enabled:p}}]=d;if(!p)return i;const g=Ya(d);return i.push(g),i},[]);return[...t,...s]},[]),$o=a=>Object.values(a).reduce((t,o)=>{const s=Ja(o);return[...t,...s]},[]),Wo=(a,t="")=>Object.entries(a).reduce((o,s)=>{const[i,d]=s;return(0,v.isObject)(d)?[...o,...Wo(d,`${t}${i}.`)]:(d&&!(0,v.isObject)(d)&&o.push(`${t}${i}`),o)},[]),qa=(a,t,{conditions:o,properties:s})=>Object.entries(s).reduce((i,d)=>{const[p,g]=d;return i.properties[p]=Wo(g),i},{action:a,subject:t,conditions:_n(o),properties:{}}),_a=(a,t,{conditions:o})=>({action:a,subject:t,properties:{},conditions:_n(o)}),es=(a,t)=>Object.entries(t).reduce((s,i)=>{const[d,p]=i;if(!mt(p).some(b=>b))return s;if(!(0,v.has)(p,"properties.enabled")){const b=qa(d,a,p);return[...s,b]}if(!p.properties.enabled)return s;const E=_a(d,a,p);return s.push(E),s},[]),zo=a=>Object.entries(a).reduce((o,s)=>{const[i,d]=s,p=es(i,d);return[...o,...p]},[]),ts=a=>{const t=$o(a.plugins),o=$o(a.settings),s=zo(a.collectionTypes),i=zo(a.singleTypes);return[...t,...o,...s,...i]},ns=[{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"}];var os=Object.defineProperty,Uo=Object.getOwnPropertySymbols,as=Object.prototype.hasOwnProperty,ss=Object.prototype.propertyIsEnumerable,Vo=(a,t,o)=>t in a?os(a,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[t]=o,ko=(a,t)=>{for(var o in t||(t={}))as.call(t,o)&&Vo(a,o,t[o]);if(Uo)for(var o of Uo(t))ss.call(t,o)&&Vo(a,o,t[o]);return a};const eo=(0,e.forwardRef)(({layout:a,isFormDisabled:t,permissions:o},s)=>{const[{initialData:i,layouts:d,modifiedData:p},g]=(0,e.useReducer)(Qa,Xa,()=>Da(a,o)),{formatMessage:E}=(0,V.useIntl)();(0,e.useImperativeHandle)(s,()=>({getPermissions(){const j=(0,oe.difference)(i.collectionTypes,p.collectionTypes),U=(0,oe.difference)(i.singleTypes,p.singleTypes),w=ko(ko({},j),U);let N;return He()(w)?N=!1:N=Object.values(w).some(q=>Object.values(q).some(he=>Ae()(he,"conditions"))),{permissionsToSend:ts(p),didUpdateConditions:N}},resetForm(){g({type:"RESET_FORM"})},setFormAfterSubmit(){g({type:"SET_FORM_AFTER_SUBMIT"})}}));const b=(j,U,w,N)=>{g({type:"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",pathToCollectionType:j,propertyName:U,rowName:w,value:N})},S=(j,U,w)=>{g({type:"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",collectionTypeKind:j,actionId:U,value:w})},L=j=>{g({type:"ON_CHANGE_CONDITIONS",conditions:j})},B=(0,e.useCallback)(({target:{name:j,value:U}})=>{g({type:"ON_CHANGE_SIMPLE_CHECKBOX",keys:j,value:U})},[]),z=(0,e.useCallback)(({target:{name:j,value:U}})=>{g({type:"ON_CHANGE_TOGGLE_PARENT_CHECKBOX",keys:j,value:U})},[]);return e.createElement(ea,{value:{availableConditions:a.conditions,modifiedData:p,onChangeConditions:L,onChangeSimpleCheckbox:B,onChangeParentCheckbox:z,onChangeCollectionTypeLeftActionRowCheckbox:b,onChangeCollectionTypeGlobalActionCheckbox:S}},e.createElement(Q.v,{id:"tabs",label:E({id:"Settings.permissions.users.tabs.label",defaultMessage:"Tabs Permissions"})},e.createElement(We.m,null,ns.map(j=>e.createElement(We.O,{key:j.id},E({id:j.labelId,defaultMessage:j.defaultMessage})))),e.createElement(_.n,{style:{position:"relative"}},e.createElement(_.x,null,e.createElement(mo,{layout:d.collectionTypes,kind:"collectionTypes",isFormDisabled:t})),e.createElement(_.x,null,e.createElement(mo,{layout:d.singleTypes,kind:"singleTypes",isFormDisabled:t})),e.createElement(_.x,null,e.createElement(Co,{layout:d.plugins,kind:"plugins",isFormDisabled:t})),e.createElement(_.x,null,e.createElement(Co,{layout:d.settings,kind:"settings",isFormDisabled:t})))))});eo.defaultProps={permissions:[],layout:{conditions:[],sections:{collectionTypes:{},singleTypes:{actions:[]},settings:[],plugins:[]}}},eo.propTypes={layout:r().object,isFormDisabled:r().bool.isRequired,permissions:r().array};const rs=(0,e.memo)(eo)},16437:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!0},78522:(le,O,n)=>{n.d(O,{Z:()=>e});const e=()=>"todo empty role"},80779:(le,O,n)=>{n.d(O,{Z:()=>re});var e=n(32735),C=n(60216),r=n.n(C),oe=n(62345),Q=n(36320),We=n(94547),_=n(19786),Te=n(88860),Ae=n(50563),Re=n(88425),He=n.n(Re),V=n(5636),A=Object.defineProperty,P=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,Oe=(x,ae,f)=>ae in x?A(x,ae,{enumerable:!0,configurable:!0,writable:!0,value:f}):x[ae]=f,K=(x,ae)=>{for(var f in ae||(ae={}))Be.call(ae,f)&&Oe(x,f,ae[f]);if(P)for(var f of P(ae))Y.call(ae,f)&&Oe(x,f,ae[f]);return x};const ze=({id:x,name:ae,description:f,usersCount:_e,icons:Xe,rowIndex:be})=>{const{formatMessage:je}=(0,V.useIntl)(),Ne=je({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:_e});return e.createElement(We.Tr,K({"aria-rowindex":be,key:x},(0,Re.onRowClick)({fn:Xe[1].onClick})),e.createElement(_.Td,{maxWidth:(0,Re.pxToRem)(130)},e.createElement(Te.Z,{ellipsis:!0,textColor:"neutral800"},ae)),e.createElement(_.Td,{maxWidth:(0,Re.pxToRem)(250)},e.createElement(Te.Z,{ellipsis:!0,textColor:"neutral800"},f)),e.createElement(_.Td,null,e.createElement(Te.Z,{textColor:"neutral800"},Ne)),e.createElement(_.Td,null,e.createElement(Q.k,K({justifyContent:"flex-end"},Re.stopPropagation),Xe.map((Ue,Ze)=>Ue?e.createElement(oe.x,{key:Ue.label,paddingLeft:Ze===0?0:1},e.createElement(Ae.h,{onClick:Ue.onClick,label:Ue.label,noBorder:!0,icon:Ue.icon})):null))))};ze.propTypes={id:r().number.isRequired,name:r().string.isRequired,description:r().string.isRequired,usersCount:r().number.isRequired,icons:r().array.isRequired,rowIndex:r().number.isRequired};const re=ze},45677:(le,O,n)=>{n.d(O,{Z:()=>Ge});var e=n(32735),C=n(88425),r=n(83983),oe=n(58469),Q=n(19406),We=n(4038),_=n(68625),Te=n(47765),Ae=n(41415),Re=n(28356),He=n(17e3),V=n(56755),A=n(73269),P=n(33827),Be=n(94547),Y=n(19786),Oe=n(35658),K=n(88860),ze=n(27649),re=n(3685),x=n(5636),ae=n(5141),f=n(80779),_e=n(78522),Xe=n(60216),be=n.n(Xe),je=n(83292),Ne=n(71933),Ue=n(67563),Ze=n(50563),Qe=n(95489),dt=n(62345),st=n(36320),nt=n(27677),rt=n(47361),ne=n(35331);const me=n.p+"6d21938306785f176538.png",Ve=n.p+"617f9c948fa79e6d73bd.png",ee=je.default.div`
|
|
134
134
|
position: absolute;
|
|
135
135
|
z-index: 3;
|
|
136
136
|
inset: 0;
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
position: absolute;
|
|
167
167
|
right: ${({theme:F})=>F.spaces[4]};
|
|
168
168
|
top: ${({theme:F})=>F.spaces[4]};
|
|
169
|
-
`,H=({onClose:F,isOpen:ie})=>{(0,C.useLockScroll)(ie);const{formatMessage:Z}=(0,x.useIntl)();return ie?e.createElement(Ne.h,null,e.createElement(ee,{onClick:F},e.createElement(Ue.i,{onEscape:F},e.createElement($,{onClick:te=>te.stopPropagation(),"aria-labelledby":"upgrade-plan",background:"neutral0",hasRadius:!0},e.createElement("img",{src:me,alt:"air-balloon"}),e.createElement(I,null,e.createElement(Ze.h,{onClick:F,"aria-label":"Close",icon:e.createElement(ne.default,null)})),e.createElement(k,{spacing:6},e.createElement(K.Z,{fontWeight:"bold",textColor:"primary600"},Z({id:"app.components.UpgradePlanModal.text-ce",defaultMessage:"COMMUNITY EDITION"})),e.createElement(nt.K,{spacing:2},e.createElement(K.Z,{variant:"alpha",as:"h2",id:"upgrade-plan"},Z({id:"app.components.UpgradePlanModal.limit-reached",defaultMessage:"You have reached the limit"})),e.createElement(K.Z,null,Z({id:"app.components.UpgradePlanModal.text-power",defaultMessage:"Unlock the full power of Strapi by upgrading your plan to the Enterprise Edition"}))),e.createElement(Qe.Q,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(rt.default,null)},Z({id:"app.components.UpgradePlanModal.button",defaultMessage:"Learn more"}))),e.createElement("img",{src:Ve,alt:"upgrade-arrow"}))))):null};H.propTypes={onClose:be().func.isRequired,isOpen:be().bool.isRequired};const W=H;var X=n(
|
|
169
|
+
`,H=({onClose:F,isOpen:ie})=>{(0,C.useLockScroll)(ie);const{formatMessage:Z}=(0,x.useIntl)();return ie?e.createElement(Ne.h,null,e.createElement(ee,{onClick:F},e.createElement(Ue.i,{onEscape:F},e.createElement($,{onClick:te=>te.stopPropagation(),"aria-labelledby":"upgrade-plan",background:"neutral0",hasRadius:!0},e.createElement("img",{src:me,alt:"air-balloon"}),e.createElement(I,null,e.createElement(Ze.h,{onClick:F,"aria-label":"Close",icon:e.createElement(ne.default,null)})),e.createElement(k,{spacing:6},e.createElement(K.Z,{fontWeight:"bold",textColor:"primary600"},Z({id:"app.components.UpgradePlanModal.text-ce",defaultMessage:"COMMUNITY EDITION"})),e.createElement(nt.K,{spacing:2},e.createElement(K.Z,{variant:"alpha",as:"h2",id:"upgrade-plan"},Z({id:"app.components.UpgradePlanModal.limit-reached",defaultMessage:"You have reached the limit"})),e.createElement(K.Z,null,Z({id:"app.components.UpgradePlanModal.text-power",defaultMessage:"Unlock the full power of Strapi by upgrading your plan to the Enterprise Edition"}))),e.createElement(Qe.Q,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(rt.default,null)},Z({id:"app.components.UpgradePlanModal.button",defaultMessage:"Learn more"}))),e.createElement("img",{src:Ve,alt:"upgrade-arrow"}))))):null};H.propTypes={onClose:be().func.isRequired,isOpen:be().bool.isRequired};const W=H;var X=n(49737);const pe=()=>{const{roles:F,isLoading:ie}=(0,X.bF)(),Z=(0,C.useQuery)(),te=decodeURIComponent(Z.get("_q")||""),v=(0,oe.ZP)(F,te,{keys:["name","description"]});return{isLoading:ie,sortedRoles:v}},De=()=>{const{formatMessage:F}=(0,x.useIntl)(),[ie,Z]=(0,e.useState)(!1),{trackUsage:te}=(0,C.useTracking)(),{push:v}=(0,ae.useHistory)(),ye=(0,e.useCallback)(Ce=>{v(`/settings/roles/${Ce}`)},[v]),ce=(0,e.useCallback)(()=>{Z(Ce=>!Ce)},[]),Je=(0,e.useCallback)(()=>{te("didShowRBACUpgradeModal"),Z(!0)},[te]),ot=(0,e.useCallback)(Ce=>[{onClick:ce,label:F({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(Te.Z,null)},{onClick:()=>ye(Ce.id),label:F({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(_.Z,null)},{onClick:ce,label:F({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(We.default,null)}],[F,ce,ye]);return{isModalOpen:ie,handleToggleModalForCreatingRole:Je,handleToggle:ce,getIcons:ot}},ge=()=>{const{formatMessage:F}=(0,x.useIntl)();(0,C.useFocusWhenNavigate)();const{sortedRoles:ie,isLoading:Z}=pe(),{isModalOpen:te,handleToggle:v,handleToggleModalForCreatingRole:ye,getIcons:ce}=De(),Je=ie.length+1,ot=5;return e.createElement(ze.o,null,e.createElement(C.SettingsPageTitle,{name:"Roles"}),e.createElement(Re.T,{primaryAction:e.createElement(Ae.z,{onClick:ye,startIcon:e.createElement(Q.default,null),size:"S"},F({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})),title:F({id:"global.roles",defaultMessage:"roles"}),subtitle:F({id:"Settings.roles.list.description",defaultMessage:"List of roles"})}),e.createElement(He.D,null,e.createElement(V.i,{colCount:ot,rowCount:Je,footer:e.createElement(A.c,{onClick:ye,icon:e.createElement(Q.default,null)},F({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"}))},e.createElement(P.h,null,e.createElement(Be.Tr,null,e.createElement(Y.Th,null,e.createElement(K.Z,{variant:"sigma",textColor:"neutral600"},F({id:"global.name",defaultMessage:"Name"}))),e.createElement(Y.Th,null,e.createElement(K.Z,{variant:"sigma",textColor:"neutral600"},F({id:"global.description",defaultMessage:"Description"}))),e.createElement(Y.Th,null,e.createElement(K.Z,{variant:"sigma",textColor:"neutral600"},F({id:"global.users",defaultMessage:"Users"}))),e.createElement(Y.Th,null,e.createElement(re.T,null,F({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(Oe.p,null,ie==null?void 0:ie.map((Ce,J)=>e.createElement(f.Z,{key:Ce.id,id:Ce.id,name:Ce.name,description:Ce.description,usersCount:Ce.usersCount,icons:ce(Ce),rowIndex:J+2})))),!Je&&!Z&&e.createElement(_e.Z,null)),e.createElement(W,{isOpen:te,onClose:v}))},Ge=()=>e.createElement(C.CheckPagePermissions,{permissions:r.Z.settings.roles.main},e.createElement(ge,null))},75936:(le,O,n)=>{n.d(O,{Z:()=>C});const C=[]},20178:(le,O,n)=>{n.d(O,{Z:()=>rt});var e=n(32735),C=n(64213),r=n(88425),oe=n(62345),Q=n(41415),We=n(28356),_=n(17e3),Te=n(15335),Ae=n(5803),Re=n(27649),He=n(36320),V=n(27677),A=n(88860),P=n(10369),Be=n(10508),Y=n(29439),Oe=n(83281),K=n(33795),ze=n.n(K),re=n(86834),x=n.n(re),ae=n(5636),f=n(5141),_e=n(83292),Xe=n(37511),be=n(49737),je=n(83983),Ne=n(5173);const Ze=Ne.Ry().shape({name:Ne.Z_().required(r.translatedErrors.required),description:Ne.Z_().required(r.translatedErrors.required)});var Qe=n(98399),dt=(ne,me,Ve)=>new Promise((ee,$)=>{var k=W=>{try{H(Ve.next(W))}catch(X){$(X)}},I=W=>{try{H(Ve.throw(W))}catch(X){$(X)}},H=W=>W.done?ee(W.value):Promise.resolve(W.value).then(k,I);H((Ve=Ve.apply(ne,me)).next())});const st=_e.default.div`
|
|
170
170
|
border: 1px solid ${({theme:ne})=>ne.colors.primary200};
|
|
171
171
|
background: ${({theme:ne})=>ne.colors.primary100};
|
|
172
172
|
padding: ${({theme:ne})=>`${ne.spaces[2]} ${ne.spaces[4]}`};
|
|
@@ -174,5 +174,5 @@
|
|
|
174
174
|
border-radius: ${({theme:ne})=>ne.borderRadius};
|
|
175
175
|
font-size: ${12/16}rem;
|
|
176
176
|
font-weight: bold;
|
|
177
|
-
`,nt=()=>{const ne=(0,r.useNotification)(),{lockApp:me,unlockApp:Ve}=(0,r.useOverlayBlocker)(),{formatMessage:ee}=(0,ae.useIntl)(),[$,k]=(0,e.useState)(!1),{replace:I}=(0,f.useHistory)(),H=(0,e.useRef)(),{trackUsage:W}=(0,r.useTracking)(),X=(0,f.useRouteMatch)("/settings/roles/duplicate/:id"),pe=ze()(X,"params.id",null),{isLoading:De,data:G}=(0,be.U_)(),{permissions:ge,isLoading:Ye}=(0,be.Dq)(pe),Ge=ie=>{me(),k(!0),W(pe?"willDuplicateRole":"willCreateNewRole"),Promise.resolve((0,r.request)("/admin/roles",{method:"POST",body:ie})).then(Z=>dt(void 0,null,function*(){const{permissionsToSend:te}=H.current.getPermissions();return W(pe?"didDuplicateRole":"didCreateNewRole"),Z.data.id&&!x()(te)&&(yield(0,r.request)(`/admin/roles/${Z.data.id}/permissions`,{method:"PUT",body:{permissions:te}})),Z})).then(Z=>{k(!1),ne({type:"success",message:{id:"Settings.roles.created",defaultMessage:"created"}}),I(`/settings/roles/${Z.data.id}`)}).catch(Z=>{Qe.error(Z),k(!1),ne({type:"warning",message:{id:"notification.error"}})}).finally(()=>{Ve()})},F=`${ee({id:"Settings.roles.form.created",defaultMessage:"Created"})} ${(0,C.format)(new Date,"PPP")}`;return e.createElement(Re.o,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(Oe.Formik,{initialValues:{name:"",description:F},onSubmit:Ge,validationSchema:Ze,validateOnChange:!1},({handleSubmit:ie,values:Z,errors:te,handleReset:v,handleChange:ye})=>e.createElement(r.Form,{noValidate:!0},e.createElement(e.Fragment,null,e.createElement(We.T,{primaryAction:e.createElement(V.K,{horizontal:!0,spacing:2},e.createElement(Q.z,{variant:"secondary",onClick:()=>{v(),H.current.resetForm()},size:"L"},ee({id:"app.components.Button.reset",defaultMessage:"Reset"})),e.createElement(Q.z,{onClick:ie,loading:$,size:"L"},ee({id:"global.save",defaultMessage:"Save"}))),title:ee({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:ee({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(r.Link,{startIcon:e.createElement(Y.Z,null),to:"/settings/roles"},ee({id:"global.back",defaultMessage:"Back"}))}),e.createElement(_.D,null,e.createElement(V.K,{spacing:6},e.createElement(oe.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(V.K,{spacing:4},e.createElement(He.k,{justifyContent:"space-between"},e.createElement(oe.x,null,e.createElement(oe.x,null,e.createElement(A.Z,{fontWeight:"bold"},ee({id:"global.details",defaultMessage:"Details"}))),e.createElement(oe.x,null,e.createElement(A.Z,{variant:"pi",textColor:"neutral600"},ee({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(st,null,ee({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:0}))),e.createElement(Te.r,{gap:4},e.createElement(Ae.P,{col:6},e.createElement(P.o,{name:"name",error:te.name&&ee({id:te.name}),label:ee({id:"global.name",defaultMessage:"Name"}),onChange:ye,value:Z.name})),e.createElement(Ae.P,{col:6},e.createElement(Be.g,{label:ee({id:"global.description",defaultMessage:"Description"}),name:"description",error:te.description&&ee({id:te.description}),onChange:ye},Z.description))))),!De&&!Ye?e.createElement(oe.x,{shadow:"filterShadow",hasRadius:!0},e.createElement(Xe.Z,{isFormDisabled:!1,ref:H,permissions:ge,layout:G})):e.createElement(oe.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(r.LoadingIndicatorPage,null))))))))};function rt(){return e.createElement(r.CheckPagePermissions,{permissions:je.Z.settings.roles.create},e.createElement(nt,null))}},56899:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},68464:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},32741:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},19665:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},36950:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},96556:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},51899:(le,O,n)=>{n.d(O,{Z:()=>ee});var e=n(32735),C=n(88425),r=n(
|
|
177
|
+
`,nt=()=>{const ne=(0,r.useNotification)(),{lockApp:me,unlockApp:Ve}=(0,r.useOverlayBlocker)(),{formatMessage:ee}=(0,ae.useIntl)(),[$,k]=(0,e.useState)(!1),{replace:I}=(0,f.useHistory)(),H=(0,e.useRef)(),{trackUsage:W}=(0,r.useTracking)(),X=(0,f.useRouteMatch)("/settings/roles/duplicate/:id"),pe=ze()(X,"params.id",null),{isLoading:De,data:G}=(0,be.U_)(),{permissions:ge,isLoading:Ye}=(0,be.Dq)(pe),Ge=ie=>{me(),k(!0),W(pe?"willDuplicateRole":"willCreateNewRole"),Promise.resolve((0,r.request)("/admin/roles",{method:"POST",body:ie})).then(Z=>dt(void 0,null,function*(){const{permissionsToSend:te}=H.current.getPermissions();return W(pe?"didDuplicateRole":"didCreateNewRole"),Z.data.id&&!x()(te)&&(yield(0,r.request)(`/admin/roles/${Z.data.id}/permissions`,{method:"PUT",body:{permissions:te}})),Z})).then(Z=>{k(!1),ne({type:"success",message:{id:"Settings.roles.created",defaultMessage:"created"}}),I(`/settings/roles/${Z.data.id}`)}).catch(Z=>{Qe.error(Z),k(!1),ne({type:"warning",message:{id:"notification.error"}})}).finally(()=>{Ve()})},F=`${ee({id:"Settings.roles.form.created",defaultMessage:"Created"})} ${(0,C.format)(new Date,"PPP")}`;return e.createElement(Re.o,null,e.createElement(r.SettingsPageTitle,{name:"Roles"}),e.createElement(Oe.Formik,{initialValues:{name:"",description:F},onSubmit:Ge,validationSchema:Ze,validateOnChange:!1},({handleSubmit:ie,values:Z,errors:te,handleReset:v,handleChange:ye})=>e.createElement(r.Form,{noValidate:!0},e.createElement(e.Fragment,null,e.createElement(We.T,{primaryAction:e.createElement(V.K,{horizontal:!0,spacing:2},e.createElement(Q.z,{variant:"secondary",onClick:()=>{v(),H.current.resetForm()},size:"L"},ee({id:"app.components.Button.reset",defaultMessage:"Reset"})),e.createElement(Q.z,{onClick:ie,loading:$,size:"L"},ee({id:"global.save",defaultMessage:"Save"}))),title:ee({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:ee({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(r.Link,{startIcon:e.createElement(Y.Z,null),to:"/settings/roles"},ee({id:"global.back",defaultMessage:"Back"}))}),e.createElement(_.D,null,e.createElement(V.K,{spacing:6},e.createElement(oe.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(V.K,{spacing:4},e.createElement(He.k,{justifyContent:"space-between"},e.createElement(oe.x,null,e.createElement(oe.x,null,e.createElement(A.Z,{fontWeight:"bold"},ee({id:"global.details",defaultMessage:"Details"}))),e.createElement(oe.x,null,e.createElement(A.Z,{variant:"pi",textColor:"neutral600"},ee({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(st,null,ee({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:0}))),e.createElement(Te.r,{gap:4},e.createElement(Ae.P,{col:6},e.createElement(P.o,{name:"name",error:te.name&&ee({id:te.name}),label:ee({id:"global.name",defaultMessage:"Name"}),onChange:ye,value:Z.name})),e.createElement(Ae.P,{col:6},e.createElement(Be.g,{label:ee({id:"global.description",defaultMessage:"Description"}),name:"description",error:te.description&&ee({id:te.description}),onChange:ye},Z.description))))),!De&&!Ye?e.createElement(oe.x,{shadow:"filterShadow",hasRadius:!0},e.createElement(Xe.Z,{isFormDisabled:!1,ref:H,permissions:ge,layout:G})):e.createElement(oe.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(r.LoadingIndicatorPage,null))))))))};function rt(){return e.createElement(r.CheckPagePermissions,{permissions:je.Z.settings.roles.create},e.createElement(nt,null))}},56899:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},68464:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},32741:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},19665:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},36950:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},96556:(le,O,n)=>{n.d(O,{Z:()=>C});const C=!1},51899:(le,O,n)=>{n.d(O,{Z:()=>ee});var e=n(32735),C=n(88425),r=n(83983),oe=n(19406),Q=n(4038),We=n(47765),_=n(68625),Te=n(41415),Ae=n(28356),Re=n(99223),He=n(17e3),V=n(3685),A=n(27649),P=n(56755),Be=n(73269),Y=n(33827),Oe=n(94547),K=n(19786),ze=n(35658),re=n(88860),x=n(92891),ae=n(58469),f=n(5636),_e=n(5141),Xe=n(17247),be=n(49737),je=n(78522),Ne=n(80779),Ue=n(97889);const Ze={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1},dt=($,k)=>(0,Ue.default)($,I=>{switch(k.type){case"ON_REMOVE_ROLES":{I.showModalConfirmButtonLoading=!0;break}case"ON_REMOVE_ROLES_SUCCEEDED":{I.shouldRefetchData=!0,I.roleToDelete=null;break}case"RESET_DATA_TO_DELETE":{I.shouldRefetchData=!1,I.roleToDelete=null,I.showModalConfirmButtonLoading=!1;break}case"SET_ROLE_TO_DELETE":{I.roleToDelete=k.id;break}default:return I}});var st=($,k,I)=>new Promise((H,W)=>{var X=G=>{try{De(I.next(G))}catch(ge){W(ge)}},pe=G=>{try{De(I.throw(G))}catch(ge){W(ge)}},De=G=>G.done?H(G.value):Promise.resolve(G.value).then(X,pe);De((I=I.apply($,k)).next())});const nt=()=>{(0,C.useFocusWhenNavigate)();const{isLoading:$,allowedActions:{canCreate:k,canDelete:I,canRead:H,canUpdate:W}}=(0,C.useRBAC)(r.Z.settings.roles),{getData:X,roles:pe,isLoading:De}=(0,be.bF)(!1),[{query:G}]=(0,C.useQueryParams)(),ge=(G==null?void 0:G._q)||"",Ye=(0,ae.ZP)(pe,ge,{keys:["name","description"]});return(0,e.useEffect)(()=>{!$&&H&&X()},[$,H,X]),{isLoadingForPermissions:$,canCreate:k,canDelete:I,canRead:H,canUpdate:W,isLoading:De,getData:X,sortedRoles:Ye,roles:pe}},rt=({getData:$,canCreate:k,canDelete:I,canUpdate:H})=>{const{formatMessage:W}=(0,f.useIntl)(),X=(0,C.useNotification)(),[pe,De]=(0,e.useState)(!1),{push:G}=(0,_e.useHistory)(),[{selectedRoles:ge,showModalConfirmButtonLoading:Ye,roleToDelete:Ge},F]=(0,e.useReducer)(dt,Ze),ie=()=>st(void 0,null,function*(){try{F({type:"ON_REMOVE_ROLES"}),yield Xe.be.post("/admin/roles/batch-delete",{ids:[Ge]}),yield $(),F({type:"RESET_DATA_TO_DELETE"})}catch(J){const xe=(0,x.get)(J,["response","payload","data","ids"],null);if(xe&&Array.isArray(xe)){const ft=xe.join(`
|
|
178
178
|
`);X({type:"warning",message:ft})}else X({type:"warning",message:{id:"notification.error"}})}ye()}),Z=(0,e.useCallback)(J=>{G(`/settings/roles/duplicate/${J}`)},[G]),te=()=>G("/settings/roles/new"),v=(0,e.useCallback)(J=>{F({type:"SET_ROLE_TO_DELETE",id:J}),ye()},[]),ye=()=>De(J=>!J),ce=(0,e.useCallback)(J=>{G(`/settings/roles/${J}`)},[G]),Je=(0,e.useCallback)((J,xe)=>{J.preventDefault(),J.stopPropagation(),xe.usersCount?X({type:"info",message:{id:"Roles.ListPage.notification.delete-not-allowed"}}):v(xe.id)},[X,v]),ot=(0,e.useCallback)((J,xe)=>{J.preventDefault(),J.stopPropagation(),Z(xe.id)},[Z]),Ce=(0,e.useCallback)(J=>[...k?[{onClick:xe=>ot(xe,J),label:W({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(We.Z,null)}]:[],...H?[{onClick:()=>ce(J.id),label:W({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(_.Z,null)}]:[],...I?[{onClick:xe=>Je(xe,J),label:W({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(Q.default,null)}]:[]],[W,Je,ot,ce,k,H,I]);return{handleNewRoleClick:te,getIcons:Ce,selectedRoles:ge,isWarningDeleteAllOpened:pe,showModalConfirmButtonLoading:Ye,handleToggleModal:ye,handleDeleteData:ie}},me=()=>{const{formatMessage:$}=(0,f.useIntl)(),{isLoadingForPermissions:k,canCreate:I,canRead:H,canDelete:W,canUpdate:X,isLoading:pe,getData:De,sortedRoles:G}=nt(),{handleNewRoleClick:ge,getIcons:Ye,isWarningDeleteAllOpened:Ge,showModalConfirmButtonLoading:F,handleToggleModal:ie,handleDeleteData:Z}=rt({getData:De,canCreate:I,canDelete:W,canUpdate:X}),te=G.length+1,v=6;if(k)return e.createElement(A.o,null,e.createElement(C.LoadingIndicatorPage,null));const ye=$({id:"global.roles",defaultMessage:"roles"});return e.createElement(A.o,null,e.createElement(C.SettingsPageTitle,{name:"Roles"}),e.createElement(Ae.T,{primaryAction:I?e.createElement(Te.z,{onClick:ge,startIcon:e.createElement(oe.default,null),size:"S"},$({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null,title:ye,subtitle:$({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),as:"h2"}),H&&e.createElement(Re.Z,{startActions:e.createElement(C.SearchURLQuery,{label:$({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:ye})})}),H&&e.createElement(He.D,null,e.createElement(P.i,{colCount:v,rowCount:te,footer:I?e.createElement(Be.c,{onClick:ge,icon:e.createElement(oe.default,null)},$({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null},e.createElement(Y.h,null,e.createElement(Oe.Tr,{"aria-rowindex":1},e.createElement(K.Th,null,e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},$({id:"global.name",defaultMessage:"Name"}))),e.createElement(K.Th,null,e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},$({id:"global.description",defaultMessage:"Description"}))),e.createElement(K.Th,null,e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},$({id:"global.users",defaultMessage:"Users"}))),e.createElement(K.Th,null,e.createElement(V.T,null,$({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(ze.p,null,G==null?void 0:G.map((ce,Je)=>e.createElement(Ne.Z,{key:ce.id,id:ce.id,name:ce.name,description:ce.description,usersCount:ce.usersCount,icons:Ye(ce),rowIndex:Je+2})))),!te&&!pe&&e.createElement(je.Z,null)),e.createElement(C.ConfirmDialog,{isOpen:Ge,onConfirm:Z,isConfirmButtonLoading:F,onToggleDialog:ie}))},ee=()=>e.createElement(C.CheckPagePermissions,{permissions:r.Z.settings.roles.main},e.createElement(me,null))},63775:(le,O,n)=>{n.d(O,{Z:()=>oe});var e=(Q,We,_)=>new Promise((Te,Ae)=>{var Re=A=>{try{V(_.next(A))}catch(P){Ae(P)}},He=A=>{try{V(_.throw(A))}catch(P){Ae(P)}},V=A=>A.done?Te(A.value):Promise.resolve(A.value).then(Re,He);V((_=_.apply(Q,We)).next())});const oe=[...strapi.features.isEnabled(strapi.features.SSO)?[{Component(){return e(this,null,function*(){return yield n.e(302).then(n.bind(n,49851))})},to:"/settings/single-sign-on",exact:!0}]:[]]}}]);
|