@strapi/admin 4.7.0 → 4.7.2-exp.24dd7d95972fa822bf43e9b095b51027402c229e
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/components/AutoReloadOverlayBlockerProvider/Blocker.js +4 -4
- package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +2 -2
- package/admin/src/components/GuidedTour/Homepage/index.js +3 -3
- package/admin/src/components/GuidedTour/Modal/components/Content.js +35 -23
- package/admin/src/components/GuidedTour/Modal/components/Modal.js +6 -4
- package/admin/src/components/LeftMenu/index.js +3 -3
- package/admin/src/components/Notifications/index.js +6 -4
- package/admin/src/components/UpgradePlanModal/index.js +6 -7
- package/admin/src/content-manager/components/ComponentInitializer/index.js +3 -3
- package/admin/src/content-manager/components/DragLayer/RelationDragPreview.js +3 -3
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +3 -11
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +3 -11
- package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +4 -4
- package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +3 -4
- package/admin/src/content-manager/components/DynamicZone/index.js +3 -3
- package/admin/src/content-manager/components/FieldComponent/index.js +3 -3
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +3 -3
- package/admin/src/content-manager/components/RelationInput/components/Relation.js +9 -3
- package/admin/src/content-manager/components/RelationInput/components/RelationItem.js +4 -4
- package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +12 -6
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -2
- package/admin/src/content-manager/components/Wysiwyg/index.js +5 -5
- package/admin/src/content-manager/components/Wysiwyg/utils/continueList.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +5 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/index.js +3 -3
- package/admin/src/content-manager/pages/EditView/Header/index.js +6 -7
- package/admin/src/content-manager/pages/EditView/Information/index.js +9 -9
- package/admin/src/content-manager/pages/EditView/index.js +9 -9
- package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +5 -5
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +3 -11
- package/admin/src/pages/Admin/Onboarding/index.js +11 -5
- package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +3 -3
- package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +3 -12
- package/admin/src/pages/AuthPage/components/Register/index.js +2 -3
- package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -3
- package/admin/src/pages/HomePage/ContentBlocks.js +3 -3
- package/admin/src/pages/HomePage/HomeHeader.js +3 -7
- package/admin/src/pages/HomePage/SocialLinks.js +5 -5
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +3 -3
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +3 -3
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +3 -3
- package/admin/src/pages/ProfilePage/index.js +11 -11
- package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +2 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +7 -6
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +4 -6
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +2 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +7 -7
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +2 -3
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +9 -9
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +7 -7
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +158 -165
- package/admin/src/pages/UseCasePage/index.js +2 -3
- package/admin/src/translations/zh-Hans.json +31 -1
- package/build/{4849.7abafe52.chunk.js → 3094.1cac9087.chunk.js} +2 -2
- package/build/{4049.16583eee.chunk.js → 4049.64715f20.chunk.js} +1 -1
- package/build/4649.daa290f6.chunk.js +30 -0
- package/build/{6487.83e219bf.chunk.js → 6891.ef7464be.chunk.js} +6 -6
- package/build/7259.63e91b59.chunk.js +1 -0
- package/build/Admin-authenticatedApp.884faefa.chunk.js +79 -0
- package/build/Admin_homePage.1411fb7c.chunk.js +68 -0
- package/build/{Admin_marketplace.a8ea585f.chunk.js → Admin_marketplace.0f6c8ee2.chunk.js} +4 -4
- package/build/Admin_profilePage.d2a8f9ab.chunk.js +15 -0
- package/build/{Admin_settingsPage.f6d02df6.chunk.js → Admin_settingsPage.6814a96e.chunk.js} +17 -18
- package/build/admin-app.d9d96db4.chunk.js +112 -0
- package/build/admin-edit-roles-page.bf130aaf.chunk.js +1 -0
- package/build/{admin-edit-users.f06c4a53.chunk.js → admin-edit-users.48031e30.chunk.js} +2 -2
- package/build/admin-users.77b4188a.chunk.js +11 -0
- package/build/{content-manager.6ed87531.chunk.js → content-manager.d792c194.chunk.js} +40 -40
- package/build/{content-type-builder-list-view.c2f917b6.chunk.js → content-type-builder-list-view.cf38fe2f.chunk.js} +9 -9
- package/build/content-type-builder-translation-zh-Hans-json.415577fb.chunk.js +1 -0
- package/build/content-type-builder.cdd117c3.chunk.js +126 -0
- package/build/email-settings-page.4bdbef9a.chunk.js +3 -0
- package/build/{i18n-settings-page.c7bc29fc.chunk.js → i18n-settings-page.2bb5be96.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/main.64fe0c37.js +3928 -0
- package/build/{runtime~main.bc7de2d8.js → runtime~main.684b5fed.js} +1 -1
- package/build/sso-settings-page.5a8588ef.chunk.js +1 -0
- package/build/upload-settings.0200561d.chunk.js +1 -0
- package/build/upload-translation-zh-Hans-json.db163b6b.chunk.js +1 -0
- package/build/upload.c7da1611.chunk.js +13 -0
- package/build/{users-advanced-settings-page.677e1973.chunk.js → users-advanced-settings-page.c0cae03a.chunk.js} +1 -1
- package/build/users-providers-settings-page.5f86e45c.chunk.js +1 -0
- package/build/users-roles-settings-page.b02986df.chunk.js +30 -0
- package/build/webhook-edit-page.a2a2b7bb.chunk.js +23 -0
- package/build/webhook-list-page.029957a4.chunk.js +1 -0
- package/build/zh-Hans-json.993d085f.chunk.js +1 -0
- package/ee/admin/hooks/useLicenseLimitNotification/index.js +2 -1
- package/ee/admin/pages/AuthPage/components/Login/index.js +3 -3
- package/ee/admin/pages/AuthPage/components/Providers/index.js +3 -3
- package/ee/admin/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +3 -3
- package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +6 -7
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +11 -3
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +5 -4
- package/ee/server/controllers/admin.js +4 -3
- package/ee/server/controllers/user.js +2 -2
- package/ee/server/services/seat-enforcement.js +2 -2
- package/package.json +13 -12
- package/server/content-types/User.js +4 -0
- package/server/content-types/api-token.js +1 -0
- package/server/controllers/user.js +7 -1
- package/server/services/permission/permissions-manager/index.js +9 -5
- package/server/services/permission/permissions-manager/sanitize.js +101 -4
- package/build/4649.ffa2f59a.chunk.js +0 -30
- package/build/7259.cd2f7bad.chunk.js +0 -1
- package/build/Admin-authenticatedApp.bce108cd.chunk.js +0 -79
- package/build/Admin_homePage.cec3f510.chunk.js +0 -70
- package/build/Admin_profilePage.b27e40f6.chunk.js +0 -15
- package/build/admin-app.d3b3237b.chunk.js +0 -112
- package/build/admin-edit-roles-page.fd041d89.chunk.js +0 -1
- package/build/admin-users.8c9bfda4.chunk.js +0 -11
- package/build/content-type-builder-translation-zh-Hans-json.52a30266.chunk.js +0 -1
- package/build/content-type-builder.b7fb1e65.chunk.js +0 -126
- package/build/email-settings-page.884cfb8b.chunk.js +0 -3
- package/build/main.8009bfe8.js +0 -3930
- package/build/sso-settings-page.82d84043.chunk.js +0 -1
- package/build/upload-settings.c18b010f.chunk.js +0 -1
- package/build/upload-translation-zh-Hans-json.3da5cf56.chunk.js +0 -1
- package/build/upload.0876ab69.chunk.js +0 -13
- package/build/users-providers-settings-page.87a9c77d.chunk.js +0 -1
- package/build/users-roles-settings-page.79c19845.chunk.js +0 -30
- package/build/webhook-edit-page.cfbdd3fd.chunk.js +0 -23
- package/build/webhook-list-page.3daa4fe2.chunk.js +0 -1
- package/build/zh-Hans-json.6e26e359.chunk.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{71540:function(I,v,t){"use strict";t.r(v),t.d(v,{SettingsPage:function(){return it},default:function(){return Dt}});var e=t(32735),b=t(13478),a=t(5141),l=t(39161),c=t(5636),C=t(99357),H=t(8888),j=t(64421),re=t(84968),w=t(57269),x=t(72041),
|
|
1
|
+
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{71540:function(I,v,t){"use strict";t.r(v),t.d(v,{SettingsPage:function(){return it},default:function(){return Dt}});var e=t(32735),b=t(13478),a=t(5141),l=t(39161),c=t(5636),C=t(99357),H=t(8888),j=t(64421),re=t(84968),w=t(57269),x=t(72041),Se=t(60216),f=t.n(Se);const X=750,ge=100,te=["image/jpeg","image/png","image/svg+xml"];var de=t(97889);const le={localImage:void 0};var we=(g=le,p)=>(0,de.default)(g,h=>{switch(p.type){case"SET_LOCAL_IMAGE":{h.localImage=p.value;break}default:return h}});const De=({onChangeLogo:g,customLogo:p,goTo:h,Component:T,modalTitle:O,next:V,prev:ne,currentStep:Q})=>{const[{localImage:z},F]=(0,e.useReducer)(we,le),{formatMessage:me}=(0,c.useIntl)(),q=xe=>{F({type:"SET_LOCAL_IMAGE",value:xe})},be=()=>{h(null)};return Q?e.createElement(l.ModalLayout,{labelledBy:"modal",onClose:be},e.createElement(l.ModalHeader,null,e.createElement(l.Typography,{fontWeight:"bold",as:"h2",id:"modal"},me(O))),e.createElement(T,{setLocalImage:q,goTo:h,next:V,prev:ne,onClose:be,asset:z||p,onChangeLogo:g})):null};De.defaultProps={Component:void 0,currentStep:void 0,customLogo:void 0,modalTitle:void 0,next:null,prev:null},De.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};var Oe=De;const D={currentStep:void 0};var G=(g=D,p)=>(0,de.default)(g,h=>{switch(p.type){case"GO_TO":{h.currentStep=p.to;break}default:return h}}),U=t(83292);const ae={id:"Settings.application.customization.modal.upload.error-format",defaultMessage:"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."},ie={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)"},Me=g=>new Promise(p=>{const h=new FileReader;h.onload=()=>{const T=new Image;T.onload=function(){p({width:T.width,height:T.height})},T.src=h.result},h.readAsDataURL(g)}),M=(g,p)=>({ext:g.name.split(".").pop(),size:g.size/1e3,name:g.name,url:URL.createObjectURL(g),rawFile:g,width:p.width,height:p.height}),k=async g=>{let p;if(!te.includes(g.type))throw p=new Error("File format"),p.displayMessage=ae,p;const T=await Me(g);if(!(T.width<=X&&T.height<=X))throw p=new Error("File sizing"),p.displayMessage=ie,p;const V=M(g,T);if(!(V.size<=ge))throw p=new Error("File sizing"),p.displayMessage=ie,p;return V},Y=(0,U.default)(l.FieldInput)`
|
|
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
|
-
`,J=({setLocalImage:g,goTo:p,next:h,onClose:S})=>{const{formatMessage:O}=(0,c.useIntl)(),[V,ne]=(0,e.useState)(!1),[Q,z]=(0,e.useState)(void 0),F=(0,e.useRef)(null),me=()=>ne(!0),q=()=>ne(!1),be=Ne=>{Ne.preventDefault(),F.current.click()},xe=async()=>{q();const Ne=F.current.files[0];if(Ne)try{const Pe=await k(Ne);g(Pe),p(h)}catch(Pe){if(Pe.displayMessage)z(O(Pe.displayMessage,{size:ge,dimension:X})),F.current.focus();else throw Pe}},Fe=()=>V?"primary500":Q?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(l.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(l.Field,{name:"logo-upload",error:Q},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(l.Stack,{spacing:2},e.createElement(l.Flex,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:V?"primary100":"neutral100",borderColor:Fe(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:me,onDragLeave:q},e.createElement(l.Icon,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:w.PicturePlus,"aria-hidden":!0}),e.createElement(l.Box,{paddingTop:3,paddingBottom:5},e.createElement(l.Typography,{variant:"delta",as:"span"},O({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(Y,{accept:te,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:xe,ref:F,id:"logo-upload"}),e.createElement(l.Button,{type:"button",onClick:be},O({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(l.Box,{paddingTop:6},e.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},O({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:ge,dimension:X})))),e.createElement(l.FieldError,null)))))),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{onClick:S,variant:"tertiary"},O({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};J.defaultProps={next:null},J.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};var y=J,he=t(55721),Ie=async g=>{try{const p=await he.Z.get(g,{responseType:"blob",timeout:8e3});return new File([p.data],p.config.url,{type:p.headers["content-type"]})}catch(p){throw p.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},p}};const ye=({goTo:g,next:p,onClose:h,setLocalImage:S})=>{const{formatMessage:O}=(0,c.useIntl)(),[V,ne]=(0,e.useState)(""),[Q,z]=(0,e.useState)(null),F=q=>{ne(q.target.value)},me=async()=>{try{const q=await Ie(V),be=await k(q);S(be),g(p)}catch(q){if(q.displayMessage)z(O(q.displayMessage,{size:ge,dimension:X}));else throw q}};return e.createElement("form",{onSubmit:q=>{q.preventDefault(),me()}},e.createElement(l.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(l.TextInput,{label:O({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:Q,onChange:F,value:V,name:"logo-url"})),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{onClick:h,variant:"tertiary"},O({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(l.Button,{type:"submit"},O({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};ye.defaultProps={next:null},ye.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};var _=ye;const ue=({setLocalImage:g,goTo:p,next:h,onClose:S})=>{const{formatMessage:O}=(0,c.useIntl)();return e.createElement(l.TabGroup,{label:O({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(l.Box,{paddingLeft:8,paddingRight:8},e.createElement(l.Tabs,null,e.createElement(l.Tab,null,O({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(l.Tab,null,O({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(l.Divider,null)),e.createElement(l.TabPanels,null,e.createElement(l.TabPanel,null,e.createElement(y,{onClose:S,setLocalImage:g,goTo:p,next:h})),e.createElement(l.TabPanel,null,e.createElement(_,{onClose:S,setLocalImage:g,goTo:p,next:h}))))};ue.defaultProps={next:null},ue.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};var N=ue;const ce=({asset:g})=>{const{formatMessage:p}=(0,c.useIntl)();return e.createElement(l.Card,null,e.createElement(l.CardHeader,null,e.createElement(l.CardAsset,{size:"S",src:g.url})),e.createElement(l.CardBody,null,e.createElement(l.CardContent,null,e.createElement(l.CardTitle,null,g.name),e.createElement(l.CardSubtitle,null,`${g.ext.toUpperCase()} - ${g.width}\u2715${g.height}`)),e.createElement(l.CardBadge,null,p({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};ce.propTypes={asset:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}).isRequired};var ke=ce;const je=({onClose:g,asset:p,prev:h,next:S,goTo:O,setLocalImage:V,onChangeLogo:ne})=>{const{formatMessage:Q}=(0,c.useIntl)(),z=()=>{V(void 0),O(h)},F=()=>{ne(p),O(S)};return e.createElement(e.Fragment,null,e.createElement(l.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(l.Flex,{justifyContent:"space-between",paddingBottom:6},e.createElement(l.Flex,{direction:"column",alignItems:"flex-start"},e.createElement(l.Typography,{variant:"pi",fontWeight:"bold"},Q({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(l.Typography,{variant:"pi",textColor:"neutral500"},Q({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(l.Button,{onClick:z,variant:"secondary"},Q({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(l.Box,{maxWidth:(0,b.pxToRem)(180)},e.createElement(ke,{asset:p}))),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{onClick:g,variant:"tertiary"},Q({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(l.Button,{onClick:F},Q({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};je.defaultProps={next:null,prev:null},je.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};var Ze=je,Ee={upload:{Component:N,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:Ze,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}};const We=({canUpdate:g,customLogo:p,defaultLogo:h,hint:S,label:O,onChangeLogo:V,onResetLogo:ne})=>{const[{currentStep:Q},z]=(0,e.useReducer)(G,D),{Component:F,next:me,prev:q,modalTitle:be}=Ee[Q]||{},{formatMessage:xe}=(0,c.useIntl)(),Fe=Ne=>{z({type:"GO_TO",to:Ne})};return e.createElement(e.Fragment,null,e.createElement(l.CarouselInput,{label:O,selectedSlide:0,hint:S,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:p?.name||"logo.png",actions:e.createElement(l.CarouselActions,null,e.createElement(l.IconButton,{disabled:!g,onClick:()=>Fe(p?"pending":"upload"),label:xe({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(w.Plus,null)}),p&&e.createElement(l.IconButton,{disabled:!g,onClick:ne,label:xe({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(w.Refresh,null)}))},e.createElement(l.CarouselSlide,{label:xe({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(l.Box,{maxHeight:"40%",maxWidth:"40%",as:"img",src:p?.url||h,alt:xe({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(Oe,{Component:F,currentStep:Q,onChangeLogo:V,customLogo:p,goTo:Fe,next:me,prev:q,modalTitle:be}))};We.defaultProps={canUpdate:!1,customLogo:null,hint:null},We.propTypes={canUpdate:f().bool,customLogo:f().shape({url:f().string,name:f().string}),label:f().string.isRequired,hint:f().string,defaultLogo:f().string.isRequired,onChangeLogo:f().func.isRequired,onResetLogo:f().func.isRequired};var _e=We;const Xe={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var Nt=(g=Xe,p)=>(0,de.default)(g,h=>{switch(p.type){case"SET_CUSTOM_MENU_LOGO":{h.menuLogo.display=p.value,h.menuLogo.submit.rawFile=p.value.rawFile;break}case"SET_CUSTOM_AUTH_LOGO":{h.authLogo.display=p.value,h.authLogo.submit.rawFile=p.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{h.menuLogo.display=null,h.menuLogo.submit={rawFile:null,isReset:!0};break}case"RESET_CUSTOM_AUTH_LOGO":{h.authLogo.display=null,h.authLogo.submit={rawFile:null,isReset:!0};break}default:return h}}),et=t(86349),$t=t.n(et),jt=(g,p)=>$t()(g,{menuLogo:{display:p.menuLogo},authLogo:{display:p.authLogo}});const tt=(0,e.forwardRef)(({canUpdate:g,projectSettingsStored:p},h)=>{const{formatMessage:S}=(0,c.useIntl)(),{trackUsage:O}=(0,b.useTracking)(),{logos:{menu:V,auth:ne}}=(0,H.um)(),[{menuLogo:Q,authLogo:z},F]=(0,e.useReducer)(Nt,Xe,()=>jt(Xe,p)),me=Fe=>{F({type:"SET_CUSTOM_MENU_LOGO",value:Fe})},q=()=>{O("didClickResetLogo",{logo:"menu"}),F({type:"RESET_CUSTOM_MENU_LOGO"})},be=Fe=>{F({type:"SET_CUSTOM_AUTH_LOGO",value:Fe})},xe=()=>{O("didClickResetLogo",{logo:"auth"}),F({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(h,()=>({getValues:()=>({menuLogo:Q.submit,authLogo:z.submit})})),e.createElement(l.Box,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(l.Typography,{variant:"delta",as:"h3"},S({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},S({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:X,size:ge})),e.createElement(l.Grid,{paddingTop:4,gap:4},e.createElement(l.GridItem,{col:6,s:12},e.createElement(_e,{canUpdate:g,customLogo:Q.display,defaultLogo:V.default,hint:S({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:S({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:me,onResetLogo:q})),e.createElement(l.GridItem,{col:6,s:12},e.createElement(_e,{canUpdate:g,customLogo:z.display,defaultLogo:ne.default,hint:S({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:S({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:be,onResetLogo:xe}))))});tt.defaultProps={canUpdate:!1,projectSettingsStored:null},tt.propTypes={canUpdate:f().bool,projectSettingsStored:f().shape({menuLogo:f().shape({url:f().string,name:f().string})})};var Ut=tt,Ve=t(48344),zt=t.n(Ve),nt=g=>zt()(g,(p,h,S)=>{h&&h.url?p[S]={...h,url:(0,b.prefixFileUrlWithBackendUrl)(h.url)}:p[S]=h},{});const ot=async()=>{const{get:g}=(0,b.getFetchClient)(),{data:p}=await g("/admin/project-settings");return nt(p)},dt=async g=>{const{post:p}=(0,b.getFetchClient)(),{data:h}=await p("/admin/project-settings",g,{headers:{"Content-Type":"multipart/form-data"}});return nt(h)};var ut=g=>{const p=new FormData;return Object.entries(g).forEach(([h,S])=>{S&&S.rawFile instanceof File&&p.append(h,S.rawFile),S&&S.isReset&&p.append(h,null)}),p};const mt=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var Et=()=>{const g=(0,e.useRef)(),p=(0,b.useNotification)(),{trackUsage:h}=(0,b.useTracking)(),{formatMessage:S}=(0,c.useIntl)(),O=(0,re.useQueryClient)();(0,b.useFocusWhenNavigate)();const V=(0,b.useAppInfos)(),{latestStrapiReleaseTag:ne,shouldUpdateStrapi:Q,strapiVersion:z}=V,{updateProjectSettings:F}=(0,H.um)(),{allowedActions:{canRead:me,canUpdate:q}}=(0,b.useRBAC)(x.Z.settings["project-settings"]),be=me&&q,{data:xe}=(0,re.useQuery)("project-settings",ot,{enabled:me}),Fe=(0,re.useMutation)(Pe=>dt(Pe),{async onSuccess(Pe){let{menuLogo:Qe,authLogo:Je}=Pe;await O.invalidateQueries("project-settings",{refetchActive:!0}),F({menuLogo:Qe?.url,authLogo:Je?.url})}}),Ne=Pe=>{if(Pe.preventDefault(),!q)return;const Qe=g.current.getValues(),Je=ut(Qe);Fe.mutate(Je,{onSuccess(){const{menuLogo:It,authLogo:rt}=Qe;It.rawFile&&h("didChangeLogo",{logo:"menu"}),rt.rawFile&&h("didChangeLogo",{logo:"auth"}),p({type:"success",message:S({id:"app",defaultMessage:"Saved"})})},onError(){p({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(l.Layout,null,e.createElement(b.SettingsPageTitle,{name:"Application"}),e.createElement(l.Main,null,e.createElement("form",{onSubmit:Ne},e.createElement(l.HeaderLayout,{title:S({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:S({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:be&&e.createElement(l.Button,{type:"submit",startIcon:e.createElement(w.Check,null)},S({id:"global.save",defaultMessage:"Save"}))}),e.createElement(l.ContentLayout,null,e.createElement(l.Stack,{spacing:6},e.createElement(l.Stack,{spacing:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(l.Typography,{variant:"delta",as:"h3"},S({id:"global.details",defaultMessage:"Details"})),e.createElement(l.Grid,{gap:5,as:"dl"},e.createElement(l.GridItem,{col:6,s:12},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},S({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(l.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(l.Typography,null,"v",z),Q&&e.createElement(l.Link,{href:`https://github.com/strapi/strapi/releases/tag/${ne}`,isExternal:!0,endIcon:e.createElement(w.ExternalLink,null)},S({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(l.GridItem,{col:6,s:12},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},S({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(l.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(l.Typography,null,S({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:V.communityEdition})),e.createElement(l.Link,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(w.ExternalLink,null)},S({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(l.GridItem,{col:6,s:12},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},S({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(l.Typography,{as:"dd"},V.nodeVersion)),e.createElement(mt,null))),me&&xe&&e.createElement(Ut,{canUpdate:q,ref:g,projectSettingsStored:xe}))))))},pt=t(3704),Ct=t.n(pt),bt=g=>Ct()(g,h=>h.links).map(h=>(0,j.ot)(h.Component,h.to,h.exact||!1)),St=g=>g.filter(p=>!p.links.every(h=>h.isDisplayed===!1));const st=(()=>window&&window.strapi&&window.strapi.isEE?t(20178).Z:t(16329).Z)(),Tt=(()=>window&&window.strapi&&window.strapi.isEE?t(51899).Z:t(45677).Z)();var Zt=[{Component(){return{default:Tt}},to:"/settings/roles",exact:!0},{Component(){return{default:st}},to:"/settings/roles/duplicate/:id",exact:!0},{Component(){return{default:st}},to:"/settings/roles/new",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,33778))},to:"/settings/roles/:id",exact:!0},{async Component(){return await t.e(5199).then(t.bind(t,54865))},to:"/settings/users",exact:!0},{async Component(){return await t.e(4263).then(t.bind(t,34669))},to:"/settings/users/:id",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,33238))},to:"/settings/webhooks/create",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,59021))},to:"/settings/webhooks/:id",exact:!0},{async Component(){return await t.e(4121).then(t.bind(t,70791))},to:"/settings/webhooks",exact:!0},{async Component(){return await t.e(8056).then(t.bind(t,37168))},to:"/settings/api-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(4649),t.e(4299)]).then(t.bind(t,3330))},to:"/settings/api-tokens/create",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(4649),t.e(92)]).then(t.bind(t,97841))},to:"/settings/api-tokens/:id",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(4816)]).then(t.bind(t,76411))},to:"/settings/transfer-tokens/create",exact:!0},{async Component(){return await t.e(9600).then(t.bind(t,38286))},to:"/settings/transfer-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(2492)]).then(t.bind(t,32392))},to:"/settings/transfer-tokens/:id",exact:!0}],Ht=[...(()=>window&&window.strapi&&window.strapi.isEE?t(63775).Z:t(75936).Z)(),...Zt],xt=t(61590),At=t(64669),Mt=t(77013),Lt=t(79318),at=t(66618);const gt=({menu:g})=>{const{formatMessage:p}=(0,c.useIntl)(),{trackUsage:h}=(0,b.useTracking)(),{pathname:S}=(0,a.useLocation)(),V=St(g).map(z=>({...z,title:z.intlLabel,links:z.links.map(F=>({...F,title:F.intlLabel,name:F.id}))})),ne=p({id:"global.settings",defaultMessage:"Settings"}),Q=(z=null)=>{h("willNavigate",{from:S,to:z})};return e.createElement(xt.m,{ariaLabel:ne},e.createElement(At.p,{label:ne}),e.createElement(Mt.Z,null,V.map(z=>e.createElement(Lt.D,{key:z.id,label:p(z.intlLabel)},z.links.map(F=>e.createElement(at.E,{as:a.NavLink,withBullet:F.hasNotification,to:F.to,onClick:()=>Q(F.to),key:F.id},p(F.intlLabel)))))))};gt.propTypes={menu:f().array.isRequired};var ft=gt;function it(){const{settingId:g}=(0,a.useParams)(),{settings:p}=(0,b.useStrapiApp)(),{formatMessage:h}=(0,c.useIntl)(),{isLoading:S,menu:O}=(0,H.Te)(),V=(0,e.useMemo)(()=>(0,j.WW)(Ht.map(({to:z,Component:F,exact:me})=>(0,j.ot)(F,z,me))),[]),ne=bt(p);if(S)return e.createElement(b.LoadingIndicatorPage,null);if(!g)return e.createElement(a.Redirect,{to:"/settings/application-infos"});const Q=h({id:"global.settings",defaultMessage:"Settings"});return e.createElement(l.Layout,{sideNav:e.createElement(ft,{menu:O})},e.createElement(C.Helmet,{title:Q}),e.createElement(a.Switch,null,e.createElement(a.Route,{path:"/settings/application-infos",component:Et,exact:!0}),V,ne))}var Dt=(0,e.memo)(it)},17891:function(I,v){"use strict";const t=()=>null;v.Z=t},16329:function(I,v,t){"use strict";var e=t(32735),b=t(5141);const a=()=>e.createElement(b.Redirect,{to:"/404"});v.Z=a},49466:function(I,v){"use strict";v.Z=!0},35123:function(I,v){"use strict";v.Z=!0},18318:function(I,v){"use strict";v.Z=!0},52124:function(I,v){"use strict";v.Z=!0},61526:function(I,v){"use strict";v.Z=!0},78974:function(I,v,t){"use strict";t.d(v,{Z:function(){return Gn}});var e=t(32735),b=t(60216),a=t.n(b),l=t(13478),c=t(39161),C=t(23973),H=t.n(C),j=t(86834),re=t.n(j),w=t(5636),x=t(83292),Te=t(98978),f=t.n(Te),X=t(57269),ge=t(33795),te=t.n(ge),de=t(9086),le=t.n(de),fe=t(8888);const we=x.default.div`
|
|
9
|
+
`,J=({setLocalImage:g,goTo:p,next:h,onClose:T})=>{const{formatMessage:O}=(0,c.useIntl)(),[V,ne]=(0,e.useState)(!1),[Q,z]=(0,e.useState)(void 0),F=(0,e.useRef)(null),me=()=>ne(!0),q=()=>ne(!1),be=Ne=>{Ne.preventDefault(),F.current.click()},xe=async()=>{q();const Ne=F.current.files[0];if(Ne)try{const Pe=await k(Ne);g(Pe),p(h)}catch(Pe){if(Pe.displayMessage)z(O(Pe.displayMessage,{size:ge,dimension:X})),F.current.focus();else throw Pe}},Fe=()=>V?"primary500":Q?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(l.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(l.Field,{name:"logo-upload",error:Q},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(l.Flex,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:V?"primary100":"neutral100",borderColor:Fe(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:me,onDragLeave:q},e.createElement(l.Icon,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:w.PicturePlus,"aria-hidden":!0}),e.createElement(l.Box,{paddingTop:3,paddingBottom:5},e.createElement(l.Typography,{variant:"delta",as:"span"},O({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(Y,{accept:te,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:xe,ref:F,id:"logo-upload"}),e.createElement(l.Button,{type:"button",onClick:be},O({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(l.Box,{paddingTop:6},e.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},O({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:ge,dimension:X})))),e.createElement(l.FieldError,null)))))),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{onClick:T,variant:"tertiary"},O({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};J.defaultProps={next:null},J.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};var y=J,he=t(55721),Ie=async g=>{try{const p=await he.Z.get(g,{responseType:"blob",timeout:8e3});return new File([p.data],p.config.url,{type:p.headers["content-type"]})}catch(p){throw p.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},p}};const ye=({goTo:g,next:p,onClose:h,setLocalImage:T})=>{const{formatMessage:O}=(0,c.useIntl)(),[V,ne]=(0,e.useState)(""),[Q,z]=(0,e.useState)(null),F=q=>{ne(q.target.value)},me=async()=>{try{const q=await Ie(V),be=await k(q);T(be),g(p)}catch(q){if(q.displayMessage)z(O(q.displayMessage,{size:ge,dimension:X}));else throw q}};return e.createElement("form",{onSubmit:q=>{q.preventDefault(),me()}},e.createElement(l.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(l.TextInput,{label:O({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:Q,onChange:F,value:V,name:"logo-url"})),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{onClick:h,variant:"tertiary"},O({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(l.Button,{type:"submit"},O({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};ye.defaultProps={next:null},ye.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};var _=ye;const ue=({setLocalImage:g,goTo:p,next:h,onClose:T})=>{const{formatMessage:O}=(0,c.useIntl)();return e.createElement(l.TabGroup,{label:O({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(l.Box,{paddingLeft:8,paddingRight:8},e.createElement(l.Tabs,null,e.createElement(l.Tab,null,O({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(l.Tab,null,O({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(l.Divider,null)),e.createElement(l.TabPanels,null,e.createElement(l.TabPanel,null,e.createElement(y,{onClose:T,setLocalImage:g,goTo:p,next:h})),e.createElement(l.TabPanel,null,e.createElement(_,{onClose:T,setLocalImage:g,goTo:p,next:h}))))};ue.defaultProps={next:null},ue.propTypes={goTo:f().func.isRequired,next:f().string,onClose:f().func.isRequired,setLocalImage:f().func.isRequired};var N=ue;const ce=({asset:g})=>{const{formatMessage:p}=(0,c.useIntl)();return e.createElement(l.Card,null,e.createElement(l.CardHeader,null,e.createElement(l.CardAsset,{size:"S",src:g.url})),e.createElement(l.CardBody,null,e.createElement(l.CardContent,null,e.createElement(l.CardTitle,null,g.name),e.createElement(l.CardSubtitle,null,`${g.ext.toUpperCase()} - ${g.width}\u2715${g.height}`)),e.createElement(l.CardBadge,null,p({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};ce.propTypes={asset:f().shape({name:f().string,url:f().string,width:f().number,height:f().number,ext:f().string}).isRequired};var ke=ce;const je=({onClose:g,asset:p,prev:h,next:T,goTo:O,setLocalImage:V,onChangeLogo:ne})=>{const{formatMessage:Q}=(0,c.useIntl)(),z=()=>{V(void 0),O(h)},F=()=>{ne(p),O(T)};return e.createElement(e.Fragment,null,e.createElement(l.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(l.Flex,{justifyContent:"space-between",paddingBottom:6},e.createElement(l.Flex,{direction:"column",alignItems:"flex-start"},e.createElement(l.Typography,{variant:"pi",fontWeight:"bold"},Q({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(l.Typography,{variant:"pi",textColor:"neutral500"},Q({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(l.Button,{onClick:z,variant:"secondary"},Q({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(l.Box,{maxWidth:(0,b.pxToRem)(180)},e.createElement(ke,{asset:p}))),e.createElement(l.ModalFooter,{startActions:e.createElement(l.Button,{onClick:g,variant:"tertiary"},Q({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(l.Button,{onClick:F},Q({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};je.defaultProps={next:null,prev:null},je.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};var Ze=je,Ee={upload:{Component:N,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:Ze,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}};const We=({canUpdate:g,customLogo:p,defaultLogo:h,hint:T,label:O,onChangeLogo:V,onResetLogo:ne})=>{const[{currentStep:Q},z]=(0,e.useReducer)(G,D),{Component:F,next:me,prev:q,modalTitle:be}=Ee[Q]||{},{formatMessage:xe}=(0,c.useIntl)(),Fe=Ne=>{z({type:"GO_TO",to:Ne})};return e.createElement(e.Fragment,null,e.createElement(l.CarouselInput,{label:O,selectedSlide:0,hint:T,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:p?.name||"logo.png",actions:e.createElement(l.CarouselActions,null,e.createElement(l.IconButton,{disabled:!g,onClick:()=>Fe(p?"pending":"upload"),label:xe({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(w.Plus,null)}),p&&e.createElement(l.IconButton,{disabled:!g,onClick:ne,label:xe({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(w.Refresh,null)}))},e.createElement(l.CarouselSlide,{label:xe({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(l.Box,{maxHeight:"40%",maxWidth:"40%",as:"img",src:p?.url||h,alt:xe({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(Oe,{Component:F,currentStep:Q,onChangeLogo:V,customLogo:p,goTo:Fe,next:me,prev:q,modalTitle:be}))};We.defaultProps={canUpdate:!1,customLogo:null,hint:null},We.propTypes={canUpdate:f().bool,customLogo:f().shape({url:f().string,name:f().string}),label:f().string.isRequired,hint:f().string,defaultLogo:f().string.isRequired,onChangeLogo:f().func.isRequired,onResetLogo:f().func.isRequired};var _e=We;const Xe={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var Nt=(g=Xe,p)=>(0,de.default)(g,h=>{switch(p.type){case"SET_CUSTOM_MENU_LOGO":{h.menuLogo.display=p.value,h.menuLogo.submit.rawFile=p.value.rawFile;break}case"SET_CUSTOM_AUTH_LOGO":{h.authLogo.display=p.value,h.authLogo.submit.rawFile=p.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{h.menuLogo.display=null,h.menuLogo.submit={rawFile:null,isReset:!0};break}case"RESET_CUSTOM_AUTH_LOGO":{h.authLogo.display=null,h.authLogo.submit={rawFile:null,isReset:!0};break}default:return h}}),et=t(86349),$t=t.n(et),jt=(g,p)=>$t()(g,{menuLogo:{display:p.menuLogo},authLogo:{display:p.authLogo}});const tt=(0,e.forwardRef)(({canUpdate:g,projectSettingsStored:p},h)=>{const{formatMessage:T}=(0,c.useIntl)(),{trackUsage:O}=(0,b.useTracking)(),{logos:{menu:V,auth:ne}}=(0,H.um)(),[{menuLogo:Q,authLogo:z},F]=(0,e.useReducer)(Nt,Xe,()=>jt(Xe,p)),me=Fe=>{F({type:"SET_CUSTOM_MENU_LOGO",value:Fe})},q=()=>{O("didClickResetLogo",{logo:"menu"}),F({type:"RESET_CUSTOM_MENU_LOGO"})},be=Fe=>{F({type:"SET_CUSTOM_AUTH_LOGO",value:Fe})},xe=()=>{O("didClickResetLogo",{logo:"auth"}),F({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(h,()=>({getValues:()=>({menuLogo:Q.submit,authLogo:z.submit})})),e.createElement(l.Box,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(l.Typography,{variant:"delta",as:"h3"},T({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},T({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:X,size:ge})),e.createElement(l.Grid,{paddingTop:4,gap:4},e.createElement(l.GridItem,{col:6,s:12},e.createElement(_e,{canUpdate:g,customLogo:Q.display,defaultLogo:V.default,hint:T({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:T({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:me,onResetLogo:q})),e.createElement(l.GridItem,{col:6,s:12},e.createElement(_e,{canUpdate:g,customLogo:z.display,defaultLogo:ne.default,hint:T({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:T({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:be,onResetLogo:xe}))))});tt.defaultProps={canUpdate:!1,projectSettingsStored:null},tt.propTypes={canUpdate:f().bool,projectSettingsStored:f().shape({menuLogo:f().shape({url:f().string,name:f().string})})};var Ut=tt,Ve=t(48344),zt=t.n(Ve),nt=g=>zt()(g,(p,h,T)=>{h&&h.url?p[T]={...h,url:(0,b.prefixFileUrlWithBackendUrl)(h.url)}:p[T]=h},{});const ot=async()=>{const{get:g}=(0,b.getFetchClient)(),{data:p}=await g("/admin/project-settings");return nt(p)},dt=async g=>{const{post:p}=(0,b.getFetchClient)(),{data:h}=await p("/admin/project-settings",g,{headers:{"Content-Type":"multipart/form-data"}});return nt(h)};var ut=g=>{const p=new FormData;return Object.entries(g).forEach(([h,T])=>{T&&T.rawFile instanceof File&&p.append(h,T.rawFile),T&&T.isReset&&p.append(h,null)}),p};const mt=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var Et=()=>{const g=(0,e.useRef)(),p=(0,b.useNotification)(),{trackUsage:h}=(0,b.useTracking)(),{formatMessage:T}=(0,c.useIntl)(),O=(0,re.useQueryClient)();(0,b.useFocusWhenNavigate)();const V=(0,b.useAppInfos)(),{latestStrapiReleaseTag:ne,shouldUpdateStrapi:Q,strapiVersion:z}=V,{updateProjectSettings:F}=(0,H.um)(),{allowedActions:{canRead:me,canUpdate:q}}=(0,b.useRBAC)(x.Z.settings["project-settings"]),be=me&&q,{data:xe}=(0,re.useQuery)("project-settings",ot,{enabled:me}),Fe=(0,re.useMutation)(Pe=>dt(Pe),{async onSuccess(Pe){let{menuLogo:Qe,authLogo:Je}=Pe;await O.invalidateQueries("project-settings",{refetchActive:!0}),F({menuLogo:Qe?.url,authLogo:Je?.url})}}),Ne=Pe=>{if(Pe.preventDefault(),!q)return;const Qe=g.current.getValues(),Je=ut(Qe);Fe.mutate(Je,{onSuccess(){const{menuLogo:It,authLogo:rt}=Qe;It.rawFile&&h("didChangeLogo",{logo:"menu"}),rt.rawFile&&h("didChangeLogo",{logo:"auth"}),p({type:"success",message:T({id:"app",defaultMessage:"Saved"})})},onError(){p({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(l.Layout,null,e.createElement(b.SettingsPageTitle,{name:"Application"}),e.createElement(l.Main,null,e.createElement("form",{onSubmit:Ne},e.createElement(l.HeaderLayout,{title:T({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:T({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:be&&e.createElement(l.Button,{type:"submit",startIcon:e.createElement(w.Check,null)},T({id:"global.save",defaultMessage:"Save"}))}),e.createElement(l.ContentLayout,null,e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(l.Typography,{variant:"delta",as:"h3"},T({id:"global.details",defaultMessage:"Details"})),e.createElement(l.Grid,{gap:5,as:"dl"},e.createElement(l.GridItem,{col:6,s:12},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},T({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(l.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(l.Typography,null,"v",z),Q&&e.createElement(l.Link,{href:`https://github.com/strapi/strapi/releases/tag/${ne}`,isExternal:!0,endIcon:e.createElement(w.ExternalLink,null)},T({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(l.GridItem,{col:6,s:12},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},T({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(l.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(l.Typography,null,T({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:V.communityEdition})),e.createElement(l.Link,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(w.ExternalLink,null)},T({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(l.GridItem,{col:6,s:12},e.createElement(l.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},T({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(l.Typography,{as:"dd"},V.nodeVersion)),e.createElement(mt,null))),me&&xe&&e.createElement(Ut,{canUpdate:q,ref:g,projectSettingsStored:xe}))))))},pt=t(3704),Ct=t.n(pt),bt=g=>Ct()(g,h=>h.links).map(h=>(0,j.ot)(h.Component,h.to,h.exact||!1)),Tt=g=>g.filter(p=>!p.links.every(h=>h.isDisplayed===!1));const st=(()=>window&&window.strapi&&window.strapi.isEE?t(20178).Z:t(16329).Z)(),St=(()=>window&&window.strapi&&window.strapi.isEE?t(51899).Z:t(45677).Z)();var Zt=[{Component(){return{default:St}},to:"/settings/roles",exact:!0},{Component(){return{default:st}},to:"/settings/roles/duplicate/:id",exact:!0},{Component(){return{default:st}},to:"/settings/roles/new",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,33778))},to:"/settings/roles/:id",exact:!0},{async Component(){return await t.e(5199).then(t.bind(t,54865))},to:"/settings/users",exact:!0},{async Component(){return await t.e(4263).then(t.bind(t,34669))},to:"/settings/users/:id",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,33238))},to:"/settings/webhooks/create",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,59021))},to:"/settings/webhooks/:id",exact:!0},{async Component(){return await t.e(4121).then(t.bind(t,70791))},to:"/settings/webhooks",exact:!0},{async Component(){return await t.e(8056).then(t.bind(t,37168))},to:"/settings/api-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(4649),t.e(4299)]).then(t.bind(t,3330))},to:"/settings/api-tokens/create",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(4649),t.e(92)]).then(t.bind(t,97841))},to:"/settings/api-tokens/:id",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(4816)]).then(t.bind(t,76411))},to:"/settings/transfer-tokens/create",exact:!0},{async Component(){return await t.e(9600).then(t.bind(t,38286))},to:"/settings/transfer-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(2492)]).then(t.bind(t,32392))},to:"/settings/transfer-tokens/:id",exact:!0}],Ht=[...(()=>window&&window.strapi&&window.strapi.isEE?t(63775).Z:t(75936).Z)(),...Zt],xt=t(61590),At=t(64669),Mt=t(77013),Lt=t(79318),at=t(66618);const gt=({menu:g})=>{const{formatMessage:p}=(0,c.useIntl)(),{trackUsage:h}=(0,b.useTracking)(),{pathname:T}=(0,a.useLocation)(),V=Tt(g).map(z=>({...z,title:z.intlLabel,links:z.links.map(F=>({...F,title:F.intlLabel,name:F.id}))})),ne=p({id:"global.settings",defaultMessage:"Settings"}),Q=(z=null)=>{h("willNavigate",{from:T,to:z})};return e.createElement(xt.m,{ariaLabel:ne},e.createElement(At.p,{label:ne}),e.createElement(Mt.Z,null,V.map(z=>e.createElement(Lt.D,{key:z.id,label:p(z.intlLabel)},z.links.map(F=>e.createElement(at.E,{as:a.NavLink,withBullet:F.hasNotification,to:F.to,onClick:()=>Q(F.to),key:F.id},p(F.intlLabel)))))))};gt.propTypes={menu:f().array.isRequired};var ft=gt;function it(){const{settingId:g}=(0,a.useParams)(),{settings:p}=(0,b.useStrapiApp)(),{formatMessage:h}=(0,c.useIntl)(),{isLoading:T,menu:O}=(0,H.Te)(),V=(0,e.useMemo)(()=>(0,j.WW)(Ht.map(({to:z,Component:F,exact:me})=>(0,j.ot)(F,z,me))),[]),ne=bt(p);if(T)return e.createElement(b.LoadingIndicatorPage,null);if(!g)return e.createElement(a.Redirect,{to:"/settings/application-infos"});const Q=h({id:"global.settings",defaultMessage:"Settings"});return e.createElement(l.Layout,{sideNav:e.createElement(ft,{menu:O})},e.createElement(C.Helmet,{title:Q}),e.createElement(a.Switch,null,e.createElement(a.Route,{path:"/settings/application-infos",component:Et,exact:!0}),V,ne))}var Dt=(0,e.memo)(it)},17891:function(I,v){"use strict";const t=()=>null;v.Z=t},16329:function(I,v,t){"use strict";var e=t(32735),b=t(5141);const a=()=>e.createElement(b.Redirect,{to:"/404"});v.Z=a},49466:function(I,v){"use strict";v.Z=!0},35123:function(I,v){"use strict";v.Z=!0},18318:function(I,v){"use strict";v.Z=!0},52124:function(I,v){"use strict";v.Z=!0},61526:function(I,v){"use strict";v.Z=!0},78974:function(I,v,t){"use strict";t.d(v,{Z:function(){return Gn}});var e=t(32735),b=t(60216),a=t.n(b),l=t(13478),c=t(39161),C=t(23973),H=t.n(C),j=t(86834),re=t.n(j),w=t(5636),x=t(83292),Se=t(98978),f=t.n(Se),X=t(57269),ge=t(33795),te=t.n(ge),de=t(9086),le=t.n(de),fe=t(8888);const we=x.default.div`
|
|
10
10
|
position: relative;
|
|
11
11
|
|
|
12
12
|
${({hasConditions:o,disabled:n,theme:s})=>o&&`
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
background: ${n?s.colors.neutral100:s.colors.primary600};
|
|
22
22
|
}
|
|
23
23
|
`}
|
|
24
|
-
`,De=({onClick:o,className:n,hasConditions:s,variant:i})=>{const{formatMessage:r}=(0,w.useIntl)();return e.createElement(we,{hasConditions:s,className:n},e.createElement(c.Button,{variant:i,startIcon:e.createElement(X.Cog,null),onClick:o},r({id:"global.settings",defaultMessage:"Settings"})))};De.defaultProps={className:null,hasConditions:!1,variant:"tertiary"},De.propTypes={onClick:a().func.isRequired,className:a().string,hasConditions:a().bool,variant:a().string};var Oe=(0,x.default)(De)``,D=t(97889),Ce=t(81346),G=t.n(Ce),U=t(23940),ae=t.n(U);const ie=o=>Object.values(o).map(n=>Object.entries(n).filter(([,s])=>s).map(([s])=>s)).flat(),Me=o=>o.reduce((n,[s,i])=>(n.push({label:ae()(s),children:i.map(r=>({label:r.displayName,value:r.id}))}),n),[]),M=(o,n)=>o.map(([,s])=>s).flat().reduce((s,i)=>({[i.id]:n.includes(i.id),...s}),{}),k=(()=>window&&window.strapi&&window.strapi.isEE?t(56899).Z:t(49466).Z)(),Y=o=>{let{arrayOfOptionsGroupedByCategory:n,isFormDisabled:s,isGrey:i,label:r,name:d,onChange:u,value:m}=o;const{formatMessage:E}=(0,w.useIntl)(),
|
|
24
|
+
`,De=({onClick:o,className:n,hasConditions:s,variant:i})=>{const{formatMessage:r}=(0,w.useIntl)();return e.createElement(we,{hasConditions:s,className:n},e.createElement(c.Button,{variant:i,startIcon:e.createElement(X.Cog,null),onClick:o},r({id:"global.settings",defaultMessage:"Settings"})))};De.defaultProps={className:null,hasConditions:!1,variant:"tertiary"},De.propTypes={onClick:a().func.isRequired,className:a().string,hasConditions:a().bool,variant:a().string};var Oe=(0,x.default)(De)``,D=t(97889),Ce=t(81346),G=t.n(Ce),U=t(23940),ae=t.n(U);const ie=o=>Object.values(o).map(n=>Object.entries(n).filter(([,s])=>s).map(([s])=>s)).flat(),Me=o=>o.reduce((n,[s,i])=>(n.push({label:ae()(s),children:i.map(r=>({label:r.displayName,value:r.id}))}),n),[]),M=(o,n)=>o.map(([,s])=>s).flat().reduce((s,i)=>({[i.id]:n.includes(i.id),...s}),{}),k=(()=>window&&window.strapi&&window.strapi.isEE?t(56899).Z:t(49466).Z)(),Y=o=>{let{arrayOfOptionsGroupedByCategory:n,isFormDisabled:s,isGrey:i,label:r,name:d,onChange:u,value:m}=o;const{formatMessage:E}=(0,w.useIntl)(),S=R=>{u(d,M(n,R))};return e.createElement(c.Flex,{as:"li",background:i?"neutral100":"neutral0",paddingBottom:3,paddingTop:3},e.createElement(c.Flex,{paddingLeft:6,style:{width:180}},e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},E({id:"Settings.permissions.conditions.can",defaultMessage:"Can"}),"\xA0"),e.createElement(c.Typography,{variant:"sigma",title:r,textColor:"primary600",ellipsis:!0},E({id:`Settings.roles.form.permissions.${r.toLowerCase()}`,defaultMessage:r})),e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},"\xA0",E({id:"Settings.permissions.conditions.when",defaultMessage:"When"}))),e.createElement(c.Box,{style:{maxWidth:430,width:"100%"}},e.createElement(c.MultiSelectNested,{id:d,customizeContent:R=>`${R.length} currently selected`,onChange:S,value:ie(m),options:Me(n),disabled:s||k})))};Y.propTypes={arrayOfOptionsGroupedByCategory:a().array.isRequired,isFormDisabled:a().bool.isRequired,isGrey:a().bool.isRequired,label:a().string.isRequired,name:a().string.isRequired,value:a().object.isRequired,onChange:a().func.isRequired};var J=Y,y=t(92891);const he=(o,n)=>o.reduce((s,i)=>(s[i.id]=(0,y.get)(n,i.id,!1),s),{}),Re=(o,n)=>o.reduce((s,i)=>{const[r,d]=i,u=he(d,n);return s[r]=u,s},{});var ye=(o,n,s)=>o.reduce((i,r)=>{const d=(0,y.get)(n,[...r.pathToConditionsObject,"conditions"],{}),u=Re(s,d);return i[r.pathToConditionsObject.join("..")]=u,i},{});const _=({actions:o,headerBreadCrumbs:n,isFormDisabled:s,onClosed:i,onToggle:r})=>{const{formatMessage:d}=(0,w.useIntl)(),{availableConditions:u,modifiedData:m,onChangeConditions:E}=(0,fe.$_)(),S=(0,e.useMemo)(()=>Object.entries(G()(u,"category")),[u]),R=o.filter(({isDisplayed:A,hasSomeActionsSelected:B,hasAllActionsSelected:W})=>A&&(B||W)),L=(0,e.useMemo)(()=>ye(R,m,S),[R,m,S]),[P,ee]=(0,e.useState)(L),$=(A,B)=>{ee((0,D.default)(W=>{W[A]||(W[A]={}),W[A].default||(W[A].default={}),W[A].default=B}))},Z=()=>{const A=Object.entries(P).reduce((B,W)=>{const[K,se]=W,Le=Object.values(se).reduce((ve,pe)=>({...ve,...pe}),{});return B[K]=Le,B},{});E(A),r()};return e.createElement(c.ModalLayout,{labelledBy:"condition-modal-breadcrumbs",onClose:i},e.createElement(c.ModalHeader,null,e.createElement(c.Breadcrumbs,{id:"condition-modal-breadcrumbs",label:n.join(", ")},n.map(A=>e.createElement(c.Crumb,{key:A},ae()(d({id:A,defaultMessage:A})))))),e.createElement(c.ModalBody,null,R.length===0&&e.createElement(c.Typography,null,d({id:"Settings.permissions.conditions.no-actions",defaultMessage:"You first need to select actions (create, read, update, ...) before defining conditions on them."})),e.createElement("ul",null,R.map(({actionId:A,label:B,pathToConditionsObject:W},K)=>{const se=W.join("..");return e.createElement(J,{key:A,arrayOfOptionsGroupedByCategory:S,label:B,isFormDisabled:s,isGrey:K%2===0,name:se,onChange:$,value:te()(P,se,{})})}))),e.createElement(c.ModalFooter,{startActions:e.createElement(c.Button,{variant:"tertiary",onClick:r},d({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(c.Button,{onClick:Z},d({id:"Settings.permissions.conditions.apply",defaultMessage:"Apply"}))}))};_.propTypes={actions:a().arrayOf(a().shape({actionId:a().string.isRequired,checkboxName:a().string,hasSomeActionsSelected:a().bool.isRequired,hasAllActionsSelected:a().bool,isDisplayed:a().bool.isRequired,label:a().string})).isRequired,headerBreadCrumbs:a().arrayOf(a().string).isRequired,isFormDisabled:a().bool.isRequired,onClosed:a().func.isRequired,onToggle:a().func.isRequired};var ue=_;const N=`${120/16}rem`,ce=`${200/16}rem`,ke=`${53/16}rem`;var Ze=x.default.div`
|
|
25
25
|
width: ${N};
|
|
26
26
|
`,Ee=(0,x.default)(c.Flex)`
|
|
27
27
|
padding-right: ${({theme:o})=>o.spaces[2]};
|
|
28
28
|
overflow: hidden;
|
|
29
29
|
flex: 1;
|
|
30
30
|
${({isCollapsable:o})=>o&&"cursor: pointer;"}
|
|
31
|
-
`;const We=({children:o,isCollapsable:n,isActive:s,isFormDisabled:i,label:r,onChange:d,onClick:u,checkboxName:m,someChecked:E,value:
|
|
31
|
+
`;const We=({children:o,isCollapsable:n,isActive:s,isFormDisabled:i,label:r,onChange:d,onClick:u,checkboxName:m,someChecked:E,value:S})=>{const{formatMessage:R}=(0,w.useIntl)();return e.createElement(c.Flex,{alignItems:"center",paddingLeft:6,style:{width:ce,flexShrink:0}},e.createElement(c.Box,{paddingRight:2},e.createElement(c.BaseCheckbox,{name:m,"aria-label":R({id:"Settings.permissions.select-all-by-permission",defaultMessage:"Select all {label} permissions"},{label:r}),disabled:i,onValueChange:L=>d({target:{name:m,value:L}}),indeterminate:E,value:S})),e.createElement(Ee,{title:r,alignItems:"center",isCollapsable:n,...n&&{onClick:u,"aria-expanded":s,onKeyDown:({key:L})=>(L==="Enter"||L===" ")&&u(),tabIndex:0,role:"button"}},e.createElement(c.Typography,{fontWeight:s?"bold":"",textColor:s?"primary600":"neutral800",ellipsis:!0},ae()(r)),o))};We.defaultProps={children:null,checkboxName:"",onChange(){},value:!1,someChecked:!1,isCollapsable:!1},We.propTypes={checkboxName:a().string,children:a().node,label:a().string.isRequired,isCollapsable:a().bool,isFormDisabled:a().bool.isRequired,onChange:a().func,onClick:a().func.isRequired,someChecked:a().bool,value:a().bool,isActive:a().bool.isRequired};var _e=(0,e.memo)(We);const Xe=o=>(0,y.isObject)(o)?(0,y.flattenDeep)(Object.values(o).map(n=>(0,y.isObject)(n)?Xe(n):n)):[];var He=Xe,et=o=>o?Object.keys(o).reduce((n,s)=>(s!=="conditions"&&(n[s]=o[s]),n),{}):null,Ge=o=>{const n=et(o),s=He(n);if(!s.length)return{hasAllActionsSelected:!1,hasSomeActionsSelected:!1};const i=s.every(d=>d),r=s.some(d=>d)&&!i;return{hasAllActionsSelected:i,hasSomeActionsSelected:r}},tt=(o,n,s)=>o.map(({actionId:i,isDisplayed:r,applyToProperties:d,label:u})=>{if(!r)return{actionId:i,hasSomeActionsSelected:!1,isDisplayed:r};const m=[...s.split(".."),i],E=(0,y.isEmpty)(d)?[...m,"properties","enabled"]:m,S=E.join(".."),R=(0,y.get)(n,[...m,"conditions"],null),L=He(R).some(Z=>Z);if((0,y.isEmpty)(d)){const Z=(0,y.get)(n,E,!1);return{actionId:i,checkboxName:S,hasAllActionsSelected:Z,hasConditions:L,hasSomeActionsSelected:Z,isDisplayed:r,isParentCheckbox:!1,label:u,pathToConditionsObject:m}}const P=(0,y.get)(n,E,null),{hasAllActionsSelected:ee,hasSomeActionsSelected:$}=Ge(P);return{actionId:i,checkboxName:S,hasAllActionsSelected:ee,hasConditions:L,hasSomeActionsSelected:$,isDisplayed:r,isParentCheckbox:!0,label:u,pathToConditionsObject:m}}),Ve=(0,x.default)(X.CarretDown)`
|
|
32
32
|
display: none;
|
|
33
33
|
width: ${10/16}rem;
|
|
34
34
|
transform: rotate(${({$isActive:o})=>o?"180":"0"}deg);
|
|
@@ -64,14 +64,14 @@
|
|
|
64
64
|
${s=>{let{theme:i,isActive:r}=s;return ot(i,r)}}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
`,dt=x.default.div.withConfig({displayName:"Collapse__Wrapper",componentId:"sc-132fji1-0"})(["flex:1;display:flex;align-items:center;height:",";background-color:",";border:1px solid transparent;"],ke,o=>{let{isGrey:n,theme:s}=o;return n?s.colors.neutral100:s.colors.neutral0}),Wt=x.default.div.withConfig({displayName:"Collapse__BoxWrapper",componentId:"sc-132fji1-1"})(["display:inline-flex;min-width:100%;","{display:none;}"," &:hover{","}"],Oe,o=>{let{isActive:n,theme:s}=o;return n&&ot(s,n)},o=>{let{theme:n,isActive:s}=o;return ot(n,s)}),ut=(0,x.default)(c.Flex).withConfig({displayName:"Collapse__Cell",componentId:"sc-132fji1-2"})(["width:",";position:relative;"],N),mt=(0,x.default)(c.Box).withConfig({displayName:"Collapse__Chevron",componentId:"sc-132fji1-3"})(["display:none;svg{width:11px;}*{fill:",";}"],o=>{let{theme:n}=o;return n.colors.primary600}),yt=x.default.span.withConfig({displayName:"Collapse__TinyDot",componentId:"sc-132fji1-4"})(["position:absolute;top:-6px;left:37px;width:6px;height:6px;border-radius:20px;background:",";"],o=>{let{theme:n}=o;return n.colors.primary600}),Et=(0,x.default)(c.Box).withConfig({displayName:"Collapse__AbsoluteBox",componentId:"sc-132fji1-5"})(["position:absolute;right:9px;transform:translateY(10px);"]),pt=o=>{let{availableActions:n,isActive:s,isGrey:i,isFormDisabled:r,label:d,onClickToggle:u,pathToData:m}=o;const[E,
|
|
67
|
+
`,dt=x.default.div.withConfig({displayName:"Collapse__Wrapper",componentId:"sc-132fji1-0"})(["flex:1;display:flex;align-items:center;height:",";background-color:",";border:1px solid transparent;"],ke,o=>{let{isGrey:n,theme:s}=o;return n?s.colors.neutral100:s.colors.neutral0}),Wt=x.default.div.withConfig({displayName:"Collapse__BoxWrapper",componentId:"sc-132fji1-1"})(["display:inline-flex;min-width:100%;","{display:none;}"," &:hover{","}"],Oe,o=>{let{isActive:n,theme:s}=o;return n&&ot(s,n)},o=>{let{theme:n,isActive:s}=o;return ot(n,s)}),ut=(0,x.default)(c.Flex).withConfig({displayName:"Collapse__Cell",componentId:"sc-132fji1-2"})(["width:",";position:relative;"],N),mt=(0,x.default)(c.Box).withConfig({displayName:"Collapse__Chevron",componentId:"sc-132fji1-3"})(["display:none;svg{width:11px;}*{fill:",";}"],o=>{let{theme:n}=o;return n.colors.primary600}),yt=x.default.span.withConfig({displayName:"Collapse__TinyDot",componentId:"sc-132fji1-4"})(["position:absolute;top:-6px;left:37px;width:6px;height:6px;border-radius:20px;background:",";"],o=>{let{theme:n}=o;return n.colors.primary600}),Et=(0,x.default)(c.Box).withConfig({displayName:"Collapse__AbsoluteBox",componentId:"sc-132fji1-5"})(["position:absolute;right:9px;transform:translateY(10px);"]),pt=o=>{let{availableActions:n,isActive:s,isGrey:i,isFormDisabled:r,label:d,onClickToggle:u,pathToData:m}=o;const[E,S]=(0,e.useState)(!1),{formatMessage:R}=(0,w.useIntl)(),{modifiedData:L,onChangeParentCheckbox:P,onChangeSimpleCheckbox:ee}=(0,fe.$_)(),$=()=>{S(ve=>!ve)},Z=()=>{S(!1)},A=te()(L,m.split(".."),{}),B=(0,e.useMemo)(()=>Object.keys(A).reduce((ve,pe)=>(ve[pe]=le()(A[pe],"conditions"),ve),{}),[A]),{hasAllActionsSelected:W,hasSomeActionsSelected:K}=Ge(B),se=(0,e.useMemo)(()=>tt(n,L,m),[n,L,m]),Le=se.some(ve=>{let{hasConditions:pe}=ve;return pe});return e.createElement(Wt,{isActive:s},e.createElement(dt,{isGrey:i},e.createElement(_e,{isCollapsable:!0,isFormDisabled:r,label:d,checkboxName:m,onChange:P,onClick:u,someChecked:K,value:W,isActive:s},e.createElement(mt,{paddingLeft:2},s?e.createElement(X.ChevronUp,null):e.createElement(X.ChevronDown,null))),e.createElement(c.Flex,{style:{flex:1}},se.map(ve=>{let{actionId:pe,hasConditions:Te,hasAllActionsSelected:Ae,hasSomeActionsSelected:$e,isDisplayed:Ue,isParentCheckbox:ze,checkboxName:Be,label:qe}=ve;return Ue?ze?e.createElement(ut,{key:pe,justifyContent:"center",alignItems:"center"},Te&&e.createElement(yt,null),e.createElement(c.BaseCheckbox,{disabled:r||nt,name:Be,"aria-label":R({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${qe} ${d}`}),onValueChange:Ke=>{P({target:{name:Be,value:Ke}})},indeterminate:$e,value:Ae})):e.createElement(ut,{key:pe,justifyContent:"center",alignItems:"center"},Te&&e.createElement(yt,null),e.createElement(c.BaseCheckbox,{disabled:r||nt,indeterminate:Te,name:Be,onValueChange:Ke=>{ee({target:{name:Be,value:Ke}})},value:Ae})):e.createElement(Ze,{key:pe})})),E&&e.createElement(ue,{headerBreadCrumbs:[d,"Settings.permissions.conditions.conditions"],actions:se,isFormDisabled:r,onClosed:Z,onToggle:$})),e.createElement(Et,null,e.createElement(Oe,{onClick:$,hasConditions:Le})))};pt.propTypes={availableActions:a().array.isRequired,isActive:a().bool.isRequired,isGrey:a().bool.isRequired,isFormDisabled:a().bool.isRequired,label:a().string.isRequired,onClickToggle:a().func.isRequired,pathToData:a().string.isRequired};var Ct=pt,bt=(o,n)=>o.map(s=>{const i=Array.isArray(s.applyToProperties)&&s.applyToProperties.indexOf(n)!==-1&&s.isDisplayed;return{label:s.label,actionId:s.actionId,isActionRelatedToCurrentProperty:i}});const vt=(0,x.default)(c.Flex)`
|
|
68
68
|
width: ${N};
|
|
69
69
|
flex-shrink: 0;
|
|
70
|
-
`,
|
|
70
|
+
`,Tt=(0,x.default)(c.Flex)`
|
|
71
71
|
width: ${ce};
|
|
72
72
|
height: ${ke};
|
|
73
73
|
flex-shrink: 0;
|
|
74
|
-
`,st=({headers:o,label:n})=>{const{formatMessage:s}=(0,w.useIntl)(),i=s({id:"Settings.roles.form.permission.property-label",defaultMessage:"{label} permissions"},{label:n});return e.createElement(c.Flex,null,e.createElement(
|
|
74
|
+
`,st=({headers:o,label:n})=>{const{formatMessage:s}=(0,w.useIntl)(),i=s({id:"Settings.roles.form.permission.property-label",defaultMessage:"{label} permissions"},{label:n});return e.createElement(c.Flex,null,e.createElement(Tt,{alignItems:"center",paddingLeft:6},e.createElement(c.Typography,{variant:"sigma",textColor:"neutral500"},i)),o.map(r=>r.isActionRelatedToCurrentProperty?e.createElement(vt,{justifyContent:"center",key:r.label},e.createElement(c.Typography,{variant:"sigma",textColor:"neutral500"},s({id:`Settings.roles.form.permissions.${r.label.toLowerCase()}`,defaultMessage:r.label}))):e.createElement(vt,{key:r.label})))};st.propTypes={headers:a().arrayOf(a().shape({label:a().string.isRequired,isActionRelatedToCurrentProperty:a().bool.isRequired})).isRequired,label:a().string.isRequired};var St=st;const Gt=x.default.span`
|
|
75
75
|
color: ${({theme:o})=>o.colors.danger700};
|
|
76
76
|
padding-left: ${({theme:o})=>o.spaces[1]}px;
|
|
77
77
|
`;var Rt=()=>e.createElement(Gt,null,"*"),xt=(o,n)=>o.map(s=>{const i=Array.isArray(s.subjects)&&s.subjects.indexOf(n)!==-1;return{...s,isDisplayed:i}}),At=t(41925);const Mt=(0,x.default)(c.Box)`
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
&:hover {
|
|
101
101
|
${Ye(s)}
|
|
102
102
|
}
|
|
103
|
-
`},o=>{let{isActive:n,theme:s}=o;return n&&Ye(s)}),
|
|
103
|
+
`},o=>{let{isActive:n,theme:s}=o;return n&&Ye(s)}),T=x.default.div.withConfig({displayName:"SubActionRow__TopTimeline",componentId:"sc-7y8yzq-5"})(["padding-top:",";margin-top:",";width:","rem;background-color:",";border-top-left-radius:2px;border-top-right-radius:2px;"],o=>{let{theme:n}=o;return n.spaces[2]},o=>{let{theme:n}=o;return n.spaces[2]},4/16,o=>{let{theme:n}=o;return n.colors.primary200}),O=o=>{let{childrenForm:n,isFormDisabled:s,recursiveLevel:i,pathToDataFromActionRow:r,propertyActions:d,parentName:u,propertyName:m}=o;const{formatMessage:E}=(0,w.useIntl)(),{modifiedData:S,onChangeParentCheckbox:R,onChangeSimpleCheckbox:L}=(0,fe.$_)(),[P,ee]=(0,e.useState)(null),$=A=>{ee(B=>B===A?null:A)},Z=(0,e.useMemo)(()=>P?n.find(A=>{let{value:B}=A;return B===P}):null,[P,n]);return e.createElement(g,null,e.createElement(T,null),n.map((A,B)=>{let{label:W,value:K,required:se,children:Le}=A;const ve=B+1<n.length,pe=Array.isArray(Le),Te=P===K;return e.createElement(p,{key:K,isVisible:ve},e.createElement(Dt,null,e.createElement(gt,{color:"primary200"}),e.createElement(c.Flex,{style:{flex:1}},e.createElement(h,{level:i,isActive:Te,isCollapsable:pe},e.createElement(Ee,(0,At.Z)({alignItems:"center",isCollapsable:pe},pe&&{onClick:()=>$(K),"aria-expanded":Te,onKeyDown:Ae=>{let{key:$e}=Ae;return($e==="Enter"||$e===" ")&&$(K)},tabIndex:0,role:"button"},{title:W}),e.createElement(c.Typography,{ellipsis:!0},ae()(W)),se&&e.createElement(Rt,null),e.createElement(Ve,{$isActive:Te}))),e.createElement(c.Flex,{style:{flex:1}},d.map(Ae=>{let{actionId:$e,label:Ue,isActionRelatedToCurrentProperty:ze}=Ae;if(!ze)return e.createElement(Ze,{key:$e});const Be=[...r.split(".."),$e,"properties",m,...u.split(".."),K],qe=te()(S,Be,!1);if(!Le)return e.createElement(it,{key:Ue,justifyContent:"center",alignItems:"center"},e.createElement(c.BaseCheckbox,{disabled:s||ft,name:Be.join(".."),"aria-label":E({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${u} ${W} ${Ue}`}),onValueChange:ct=>{L({target:{name:Be.join(".."),value:ct}})},value:qe}));const{hasAllActionsSelected:Ke,hasSomeActionsSelected:lt}=Ge(qe);return e.createElement(it,{key:Ue,justifyContent:"center",alignItems:"center"},e.createElement(c.BaseCheckbox,{key:Ue,disabled:s||ft,name:Be.join(".."),"aria-label":E({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${u} ${W} ${Ue}`}),onValueChange:ct=>{R({target:{name:Be.join(".."),value:ct}})},value:Ke,indeterminate:lt}))})))),Z&&Te&&e.createElement(c.Box,{paddingBottom:2},e.createElement(O,{isFormDisabled:s,parentName:`${u}..${K}`,pathToDataFromActionRow:r,propertyActions:d,propertyName:m,recursiveLevel:i+1,childrenForm:Z.children})))}))};O.propTypes={childrenForm:a().array.isRequired,isFormDisabled:a().bool.isRequired,parentName:a().string.isRequired,pathToDataFromActionRow:a().string.isRequired,propertyActions:a().array.isRequired,propertyName:a().string.isRequired,recursiveLevel:a().number.isRequired};var V=(0,e.memo)(O);const ne=o=>o.reduce((s,i)=>(i.isActionRelatedToCurrentProperty&&s.push(i.actionId),s),[]);var z=(o,n,s,i,r)=>{const u=ne(o).reduce((m,E)=>{const S=[...s.split(".."),E,"properties",i,r],R=(0,y.get)(n,S,!1);return m[E]=R,m},{});return Ge(u)};const F=(()=>window&&window.strapi&&window.strapi.isEE?t(32741).Z:t(18318).Z)(),me=(0,x.default)(c.Flex).withConfig({displayName:"ActionRow__Cell",componentId:"sc-4agenc-0"})(["width:",";position:relative;"],N),q=(0,x.default)(c.Flex).withConfig({displayName:"ActionRow__Wrapper",componentId:"sc-4agenc-1"})(["height:",";flex:1;"," ",";"],ke,o=>{let{isCollapsable:n,theme:s}=o;return n&&`
|
|
104
104
|
${Ve} {
|
|
105
105
|
display: block;
|
|
106
106
|
color: ${s.colors.neutral100};
|
|
@@ -108,18 +108,18 @@
|
|
|
108
108
|
&:hover {
|
|
109
109
|
${Ye(s)}
|
|
110
110
|
}
|
|
111
|
-
`},o=>{let{isActive:n,theme:s}=o;return n&&Ye(s)}),be=o=>{let{childrenForm:n,label:s,isFormDisabled:i,name:r,required:d,pathToData:u,propertyActions:m,propertyName:E,isOdd:
|
|
111
|
+
`},o=>{let{isActive:n,theme:s}=o;return n&&Ye(s)}),be=o=>{let{childrenForm:n,label:s,isFormDisabled:i,name:r,required:d,pathToData:u,propertyActions:m,propertyName:E,isOdd:S}=o;const{formatMessage:R}=(0,w.useIntl)(),[L,P]=(0,e.useState)(null),{modifiedData:ee,onChangeCollectionTypeLeftActionRowCheckbox:$,onChangeParentCheckbox:Z,onChangeSimpleCheckbox:A}=(0,fe.$_)(),B=L===r,W=(0,e.useMemo)(()=>Array.isArray(n)?n:[],[n]),K=W.length>0,se=(0,e.useCallback)(()=>{K&&P(Te=>Te===r?null:r)},[K,r]),Le=Te=>{let{target:{value:Ae}}=Te;$(u,E,r,Ae)},{hasAllActionsSelected:ve,hasSomeActionsSelected:pe}=(0,e.useMemo)(()=>z(m,ee,u,E,r),[m,ee,u,E,r]);return e.createElement(e.Fragment,null,e.createElement(q,{alignItems:"center",isCollapsable:K,isActive:B,background:S?"neutral100":"neutral0"},e.createElement(c.Flex,null,e.createElement(_e,{onChange:Le,onClick:se,isCollapsable:K,isFormDisabled:i,label:s,someChecked:pe,value:ve,isActive:B},d&&e.createElement(Rt,null),e.createElement(Ve,{$isActive:B})),e.createElement(c.Flex,null,m.map(Te=>{let{label:Ae,isActionRelatedToCurrentProperty:$e,actionId:Ue}=Te;if(!$e)return e.createElement(Ze,{key:Ae});const ze=[...u.split(".."),Ue,"properties",E,r];if(!K){const lt=te()(ee,ze,!1);return e.createElement(me,{key:Ue,justifyContent:"center",alignItems:"center"},e.createElement(c.BaseCheckbox,{disabled:i||F,name:ze.join(".."),"aria-label":R({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${r} ${Ae}`}),onValueChange:ct=>{A({target:{name:ze.join(".."),value:ct}})},value:lt}))}const Be=te()(ee,ze,{}),{hasAllActionsSelected:qe,hasSomeActionsSelected:Ke}=Ge(Be);return e.createElement(me,{key:Ae,justifyContent:"center",alignItems:"center"},e.createElement(c.BaseCheckbox,{disabled:i||F,name:ze.join(".."),onValueChange:lt=>{Z({target:{name:ze.join(".."),value:lt}})},"aria-label":R({id:"Settings.permissions.select-by-permission",defaultMessage:"Select {label} permission"},{label:`${r} ${Ae}`}),value:qe,indeterminate:Ke}))})))),B&&e.createElement(V,{childrenForm:W,isFormDisabled:i,parentName:r,pathToDataFromActionRow:u,propertyName:E,propertyActions:m,recursiveLevel:0}))};be.defaultProps={childrenForm:[],required:!1},be.propTypes={childrenForm:a().array,label:a().string.isRequired,isFormDisabled:a().bool.isRequired,name:a().string.isRequired,pathToData:a().string.isRequired,propertyActions:a().array.isRequired,propertyName:a().string.isRequired,required:a().bool,isOdd:a().bool.isRequired};var xe=(0,e.memo)(be);const Fe=x.default.div`
|
|
112
112
|
display: inline-flex;
|
|
113
113
|
flex-direction: column;
|
|
114
114
|
min-width: 0;
|
|
115
|
-
`,Ne=({availableActions:o,childrenForm:n,isFormDisabled:s,label:i,pathToData:r,propertyName:d})=>{const u=(0,e.useMemo)(()=>bt(o,d),[o,d]);return e.createElement(Fe,null,e.createElement(
|
|
115
|
+
`,Ne=({availableActions:o,childrenForm:n,isFormDisabled:s,label:i,pathToData:r,propertyName:d})=>{const u=(0,e.useMemo)(()=>bt(o,d),[o,d]);return e.createElement(Fe,null,e.createElement(St,{label:i,headers:u}),e.createElement(c.Box,null,n.map(({children:m,label:E,value:S,required:R},L)=>e.createElement(xe,{childrenForm:m,key:S,label:E,isFormDisabled:s,name:S,required:R,propertyActions:u,pathToData:r,propertyName:d,isOdd:L%2===0}))))};Ne.propTypes={childrenForm:a().array.isRequired,availableActions:a().array.isRequired,isFormDisabled:a().bool.isRequired,label:a().string.isRequired,pathToData:a().string.isRequired,propertyName:a().string.isRequired};var Pe=Ne;const Qe=x.default.div`
|
|
116
116
|
flex-direction: column;
|
|
117
117
|
display: inline-flex;
|
|
118
118
|
min-width: 100%;
|
|
119
119
|
${({theme:o,isActive:n})=>n&&`border: 1px solid ${o.colors.primary600};`}
|
|
120
|
-
`,Je=({allActions:o,contentTypeName:n,label:s,index:i,isActive:r,isFormDisabled:d,onClickToggleCollapse:u,pathToData:m,properties:E})=>{const
|
|
120
|
+
`,Je=({allActions:o,contentTypeName:n,label:s,index:i,isActive:r,isFormDisabled:d,onClickToggleCollapse:u,pathToData:m,properties:E})=>{const S=(0,e.useCallback)(()=>{u(n)},[n,u]),R=(0,e.useMemo)(()=>xt(o,n),[o,n]);return e.createElement(Qe,{isActive:r},e.createElement(Ct,{availableActions:R,isActive:r,isGrey:i%2===0,isFormDisabled:d,label:s,onClickToggle:S,pathToData:m}),r&&E.map(({label:L,value:P,children:ee})=>e.createElement(Pe,{availableActions:R,childrenForm:ee,isFormDisabled:d,label:L,pathToData:m,propertyName:P,key:P})))};Je.propTypes={allActions:a().array.isRequired,contentTypeName:a().string.isRequired,index:a().number.isRequired,isActive:a().bool.isRequired,isFormDisabled:a().bool.isRequired,label:a().string.isRequired,onClickToggleCollapse:a().func.isRequired,pathToData:a().string.isRequired,properties:a().array.isRequired};var It=Je;const rt=({actions:o,isFormDisabled:n,pathToData:s,subjects:i})=>{const[r,d]=(0,e.useState)(null),u=m=>{d(r===m?null:m)};return i.map(({uid:m,label:E,properties:S},R)=>e.createElement(It,{allActions:o,key:m,contentTypeName:m,label:E,isActive:r===m,isFormDisabled:n,index:R,onClickToggleCollapse:u,pathToData:`${s}..${m}`,properties:S}))};rt.defaultProps={actions:[],subjects:[]},rt.propTypes={actions:a().array.isRequired,isFormDisabled:a().bool.isRequired,pathToData:a().string.isRequired,subjects:a().arrayOf(a().shape({uid:a().string.isRequired,label:a().string.isRequired,properties:a().array.isRequired}))};var mn=(0,e.memo)(rt),pn=o=>o.filter(({subjects:n})=>n&&n.length);const gn=o=>o.map(({actionId:n})=>n),fn=(o,n)=>o.reduce((s,i)=>(Object.keys(n).forEach(r=>{const d=(0,y.get)(n,[r,i],{}),u={[r]:et(d)};s[i]?s[i]={...s[i],...u}:s[i]=u}),s),{});var hn=(o,n)=>{const s=gn(o),i=fn(s,n);return Object.keys(i).reduce((d,u)=>(d[u]=Ge(i[u]),d),{})};const yn=(()=>window&&window.strapi&&window.strapi.isEE?t(36950).Z:t(61526).Z)(),En=(0,x.default)(c.Flex).withConfig({displayName:"GlobalActions__CenteredStack",componentId:"sc-1vxwsjr-0"})(["width:",";flex-shrink:0;"],N),Pt=o=>{let{actions:n,isFormDisabled:s,kind:i}=o;const{formatMessage:r}=(0,w.useIntl)(),{modifiedData:d,onChangeCollectionTypeGlobalActionCheckbox:u}=(0,fe.$_)(),m=(0,e.useMemo)(()=>pn(n),[n]),E=(0,e.useMemo)(()=>hn(m,d[i]),[d,m,i]);return e.createElement(c.Box,{paddingBottom:4,paddingTop:6,style:{paddingLeft:ce}},e.createElement(c.Flex,{alignItems:"center",justifyContent:"center",gap:0},m.map(S=>{let{label:R,actionId:L}=S;return e.createElement(En,{key:L,spacing:3},e.createElement(c.Typography,{variant:"sigma",textColor:"neutral500"},r({id:`Settings.roles.form.permissions.${R.toLowerCase()}`,defaultMessage:R})),e.createElement(c.BaseCheckbox,{disabled:s||yn,onValueChange:P=>{u(i,L,P)},name:L,"aria-label":r({id:"Settings.permissions.select-all-by-permission",defaultMessage:"Select all {label} permissions"},{label:r({id:`Settings.roles.form.permissions.${R.toLowerCase()}`,defaultMessage:R})}),value:te()(E,[L,"hasAllActionsSelected"],!1),indeterminate:te()(E,[L,"hasSomeActionsSelected"],!1)}))})))};Pt.defaultProps={actions:[]},Pt.propTypes={actions:a().arrayOf(a().shape({label:a().string.isRequired,actionId:a().string.isRequired,subjects:a().array.isRequired})),isFormDisabled:a().bool.isRequired,kind:a().string.isRequired};var Cn=(0,e.memo)(Pt);const bn=(0,x.default)(c.Box)`
|
|
121
121
|
overflow-x: auto;
|
|
122
|
-
`,Vt=({isFormDisabled:o,kind:n,layout:{actions:s,subjects:i}})=>{const r=f()([...i],"label");return e.createElement(bn,{background:"neutral0"},e.createElement(Cn,{actions:s,kind:n,isFormDisabled:o}),e.createElement(mn,{actions:s,isFormDisabled:o,pathToData:n,subjects:r}))};Vt.propTypes={isFormDisabled:a().bool.isRequired,kind:a().string.isRequired,layout:a().shape({actions:a().array,subjects:a().arrayOf(a().shape({uid:a().string.isRequired,label:a().string.isRequired,properties:a().array.isRequired}))}).isRequired};var Kt=(0,e.memo)(Vt),vn=t(66694);const Xt=({children:o,value:n})=>e.createElement(vn.$l.Provider,{value:n},o);Xt.propTypes={children:a().node.isRequired,value:a().exact({availableConditions:a().array.isRequired,modifiedData:a().object.isRequired,onChangeCollectionTypeLeftActionRowCheckbox:a().func.isRequired,onChangeConditions:a().func.isRequired,onChangeSimpleCheckbox:a().func.isRequired,onChangeParentCheckbox:a().func.isRequired,onChangeCollectionTypeGlobalActionCheckbox:a().func.isRequired}).isRequired};var
|
|
122
|
+
`,Vt=({isFormDisabled:o,kind:n,layout:{actions:s,subjects:i}})=>{const r=f()([...i],"label");return e.createElement(bn,{background:"neutral0"},e.createElement(Cn,{actions:s,kind:n,isFormDisabled:o}),e.createElement(mn,{actions:s,isFormDisabled:o,pathToData:n,subjects:r}))};Vt.propTypes={isFormDisabled:a().bool.isRequired,kind:a().string.isRequired,layout:a().shape({actions:a().array,subjects:a().arrayOf(a().shape({uid:a().string.isRequired,label:a().string.isRequired,properties:a().array.isRequired}))}).isRequired};var Kt=(0,e.memo)(Vt),vn=t(66694);const Xt=({children:o,value:n})=>e.createElement(vn.$l.Provider,{value:n},o);Xt.propTypes={children:a().node.isRequired,value:a().exact({availableConditions:a().array.isRequired,modifiedData:a().object.isRequired,onChangeCollectionTypeLeftActionRowCheckbox:a().func.isRequired,onChangeConditions:a().func.isRequired,onChangeSimpleCheckbox:a().func.isRequired,onChangeParentCheckbox:a().func.isRequired,onChangeCollectionTypeGlobalActionCheckbox:a().func.isRequired}).isRequired};var Tn=Xt,Sn=(o,n,s)=>o.map(i=>{const r=[...s,i.action,"properties","enabled"],d=(0,y.get)(n,r,!1),u=(0,y.get)(n,[...s,i.action,"conditions"],{}),m=He(u).some(E=>E);return{...i,isDisplayed:d,checkboxName:r.join(".."),hasSomeActionsSelected:d,value:d,hasConditions:m,label:i.displayName,actionId:i.action,pathToConditionsObject:[...s,i.action]}}),Rn=o=>{const n=Object.entries(o).reduce((i,r)=>{const[d,{conditions:u}]=r;return i[d]=u,i},{});return He(n).some(i=>i)};const Ot=(()=>window&&window.strapi&&window.strapi.isEE?t(96556).Z:t(16437).Z)(),xn=x.default.div.withConfig({displayName:"SubCategory__Border",componentId:"sc-akgczm-0"})(["flex:1;align-self:center;border-top:1px solid ",";"],o=>{let{theme:n}=o;return n.colors.neutral150}),An=x.default.div.withConfig({displayName:"SubCategory__CheckboxWrapper",componentId:"sc-akgczm-1"})(["position:relative;word-break:keep-all;",""],o=>{let{hasConditions:n,disabled:s,theme:i}=o;return n&&`
|
|
123
123
|
&:before {
|
|
124
124
|
content: '';
|
|
125
125
|
position: absolute;
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
border-radius: ${20/16}rem;
|
|
131
131
|
background: ${s?i.colors.neutral100:i.colors.primary600};
|
|
132
132
|
}
|
|
133
|
-
`}),Yt=o=>{let{categoryName:n,isFormDisabled:s,subCategoryName:i,actions:r,pathToData:d}=o;const[u,m]=(0,e.useState)(!1),{modifiedData:E,onChangeParentCheckbox:T,onChangeSimpleCheckbox:R}=(0,fe.$_)(),{formatMessage:L}=(0,w.useIntl)(),P=te()(E,d,{}),ee=(0,e.useMemo)(()=>Object.keys(P).reduce((se,Le)=>(se[Le]=et(P[Le]),se),{}),[P]),{hasAllActionsSelected:$,hasSomeActionsSelected:Z}=Ge(ee),A=()=>{m(se=>!se)},B=()=>{m(!1)},W=Tn(r,E,d),K=Rn(te()(E,[...d],{}));return e.createElement(e.Fragment,null,e.createElement(c.Box,null,e.createElement(c.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(c.Box,{paddingRight:4},e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},i)),e.createElement(xn,null),e.createElement(c.Box,{paddingLeft:4},e.createElement(c.Checkbox,{name:d.join(".."),disabled:s||Ot,onValueChange:se=>{T({target:{name:d.join(".."),value:se}})},indeterminate:Z,value:$},L({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(c.Flex,{paddingTop:6,paddingBottom:6},e.createElement(c.Grid,{gap:2,style:{flex:1}},W.map(se=>{let{checkboxName:Le,value:ve,action:pe,displayName:Se,hasConditions:Ae}=se;return e.createElement(c.GridItem,{col:3,key:pe},e.createElement(An,{disabled:s||Ot,hasConditions:Ae},e.createElement(c.Checkbox,{name:Le,disabled:s||Ot,onValueChange:$e=>{R({target:{name:Le,value:$e}})},value:ve},Se)))})),e.createElement(Oe,{hasConditions:K,onClick:A}))),u&&e.createElement(ue,{headerBreadCrumbs:[n,i],actions:W,isFormDisabled:s,onClosed:B,onToggle:A}))};Yt.propTypes={actions:a().array.isRequired,categoryName:a().string.isRequired,isFormDisabled:a().bool.isRequired,subCategoryName:a().string.isRequired,pathToData:a().array.isRequired};var Mn=Yt;const Ft=({childrenForm:o,kind:n,name:s,isOpen:i,isFormDisabled:r,isWhite:d,onOpenCategory:u,pathToData:m})=>{const{formatMessage:E}=(0,w.useIntl)(),T=()=>{u(s)},R=(0,e.useMemo)(()=>s.split("::").pop(),[s]);return e.createElement(c.Accordion,{expanded:i,onToggle:T,id:`accordion-${s}`,variant:d?"primary":"secondary"},e.createElement(c.AccordionToggle,{title:ae()(R),description:`${E({id:"Settings.permissions.category"},{category:R})} ${n==="plugins"?"plugin":n}`}),e.createElement(c.AccordionContent,null,e.createElement(c.Box,{padding:6},o.map(({actions:L,subCategoryName:P,subCategoryId:ee})=>e.createElement(Mn,{key:P,actions:L,categoryName:R,isFormDisabled:r,subCategoryName:P,pathToData:[...m,ee]})))))};Ft.defaultProps={},Ft.propTypes={childrenForm:a().array.isRequired,isOpen:a().bool.isRequired,isFormDisabled:a().bool.isRequired,isWhite:a().bool.isRequired,kind:a().string.isRequired,name:a().string.isRequired,onOpenCategory:a().func.isRequired,pathToData:a().array.isRequired};var Ln=Ft;const Qt=({isFormDisabled:o,kind:n,layout:s})=>{const[i,r]=(0,e.useState)(null),d=u=>{r(u===i?null:u)};return e.createElement(c.Box,{padding:6,background:"neutral0"},s.map(({category:u,categoryId:m,childrenForm:E},T)=>e.createElement(Ln,{key:u,childrenForm:E,kind:n,isFormDisabled:o,isOpen:i===u,isWhite:T%2===1,name:u,onOpenCategory:d,pathToData:[n,m]})))};Qt.propTypes={isFormDisabled:a().bool.isRequired,kind:a().string.isRequired,layout:a().arrayOf(a().shape({category:a().string.isRequired,categoryId:a().string.isRequired,childrenForm:a().arrayOf(a().shape({actions:a().array.isRequired})).isRequired}).isRequired).isRequired};var Jt=Qt,qt=(o,n,s)=>o.find(i=>i.action===n&&i.subject===s);const _t=(o,n=[])=>o.reduce((s,i)=>(s[i.id]=n.indexOf(i.id)!==-1,s),{}),en=({children:o},n,s="")=>o.reduce((i,r)=>{if(r.children)return{...i,[r.value]:en(r,n,`${s}${r.value}.`)};const d=n.indexOf(`${s}${r.value}`)!==-1;return i[r.value]=d,i},{}),Dn=(o,n,s)=>o.reduce((i,r)=>{const d=n.properties.find(({value:u})=>u===r);if(d){const u=(0,y.get)(s,["properties",d.value],[]),m=en(d,u);i.properties[r]=m}return i},{properties:{}}),In=(o,n)=>n.reduce((s,i)=>{const r=o.find(({uid:d})=>d===i)||null;return r&&(s[i]=r),s},{});var tn=({subjects:o},n,s,i=[])=>n.reduce((r,d)=>{const u=d.subjects,m=In(o,u);if((0,y.isEmpty)(m))return r;const E=Object.keys(m).reduce((T,R)=>{const{actionId:L,applyToProperties:P}=d,Z=m[R].properties.map(({value:K})=>K).every(K=>(P||[]).indexOf(K)===-1),A=qt(i,L,R),B=_t(s,(0,y.get)(A,"conditions",[]));if((0,y.isEmpty)(P)||Z)return(0,y.set)(T,[R,L],{properties:{enabled:A!==void 0},conditions:B}),T;const W=Dn(P,m[R],A);return(0,y.set)(T,[R,L],{...W,conditions:B}),T},{});return(0,y.merge)(r,E)},{});const Pn=(o,n,s)=>o.reduce((i,r)=>{const d=qt(s,r.action,null);return i[r.action]={properties:{enabled:d!==void 0},conditions:_t(n,(0,y.get)(d,"conditions",[]))},i},{}),On=(o,n,s)=>o.reduce((i,r)=>(i[r.subCategoryId]=Pn(r.actions,n,s),i),{});var nn=(o,n,s=[])=>o.reduce((i,{categoryId:r,childrenForm:d})=>{const u=On(d,n,s);return i[r]=u,i},{});const on=o=>o.split(" ").join("-");var sn=(o,n)=>Object.entries(G()(o,n)).map(([s,i])=>({category:s,categoryId:on(s),childrenForm:Object.entries(G()(i,"subCategory")).map(([r,d])=>({subCategoryName:r,subCategoryId:on(r),actions:d}))})),Fn=(o,n)=>{const{conditions:s,sections:{collectionTypes:i,singleTypes:r,plugins:d,settings:u}}=o,m={collectionTypes:i,singleTypes:r,plugins:sn(d,"plugin"),settings:sn(u,"category")},E={collectionTypes:tn(i,i.actions||[],s,n),singleTypes:tn(r,r.actions||[],s,n),plugins:nn(m.plugins,s,n),settings:nn(m.settings,s,n)};return{initialData:E,modifiedData:E,layouts:m}};const an=o=>Object.keys(o).reduce((n,s)=>{const i=o[s];if((0,y.isObject)(i)&&!(0,y.has)(i,"conditions"))return{...n,[s]:an(i)};if((0,y.isObject)(i)&&(0,y.has)(i,"conditions")&&!He((0,y.omit)(i,"conditions")).some(d=>d)){const d=Object.keys(i.conditions).reduce((u,m)=>(u[m]=!1,u),{});return{...n,[s]:{...i,conditions:d}}}return n[s]=i,n},{});var Bt=an;const rn=(o,n)=>Object.keys(o).reduce((s,i)=>{const r=o[i];return i==="conditions"?(s[i]=r,s):(0,y.isObject)(r)?{...s,[i]:rn(r,n)}:(s[i]=n,s)},{});var ht=rn;const Bn={initialData:{},modifiedData:{},layouts:{}};var wn=(o,n)=>(0,D.default)(o,s=>{switch(n.type){case"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX":{const{collectionTypeKind:i,actionId:r,value:d}=n,u=["modifiedData",i];Object.keys((0,y.get)(o,u)).forEach(m=>{const E=(0,y.get)(o,[...u,m,r],void 0);if(E){let T=ht(E,d);if(!d&&T.conditions){const R=ht(T.conditions,!1);T={...T,conditions:R}}(0,y.set)(s,[...u,m,r],T)}});break}case"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX":{const{pathToCollectionType:i,propertyName:r,rowName:d,value:u}=n;let m=(0,y.cloneDeep)(o.modifiedData);const E=i.split(".."),T=(0,y.get)(m,E,{});Object.keys(T).forEach(R=>{if((0,y.has)(T[R],`properties.${r}`)){const L=(0,y.get)(T,[R,"properties",r,d]),P=[...E,R,"properties",r,d];if(!(0,y.isObject)(L))(0,y.set)(m,P,u);else{const ee=ht(L,u);(0,y.set)(m,P,ee)}}}),u||(m=Bt(m)),(0,y.set)(s,"modifiedData",m);break}case"ON_CHANGE_CONDITIONS":{Object.entries(n.conditions).forEach(i=>{const[r,d]=i;(0,y.set)(s,["modifiedData",...r.split(".."),"conditions"],d)});break}case"ON_CHANGE_SIMPLE_CHECKBOX":{let i=(0,y.cloneDeep)(o.modifiedData);(0,y.set)(i,[...n.keys.split("..")],n.value),n.value||(i=Bt(i)),(0,y.set)(s,"modifiedData",i);break}case"ON_CHANGE_TOGGLE_PARENT_CHECKBOX":{const{keys:i,value:r}=n,d=[...i.split("..")];let u=(0,y.cloneDeep)(o.modifiedData);const m=(0,y.get)(u,d,{}),E=ht(m,r);(0,y.set)(u,d,E),r||(u=Bt(u)),(0,y.set)(s,["modifiedData"],u);break}case"RESET_FORM":{s.modifiedData=o.initialData;break}case"SET_FORM_AFTER_SUBMIT":{s.initialData=o.modifiedData;break}default:return s}});const wt=o=>Object.entries(o).filter(([,n])=>n).map(([n])=>n),kn=o=>{const[n,{conditions:s}]=o;return{action:n,subject:null,conditions:wt(s),properties:{}}},Nn=o=>Object.values(o).reduce((n,s)=>{const i=Object.entries(s).reduce((r,d)=>{const[,{properties:{enabled:u}}]=d;if(!u)return r;const m=kn(d);return r.push(m),r},[]);return[...n,...i]},[]);var ln=o=>Object.values(o).reduce((n,s)=>{const i=Nn(s);return[...n,...i]},[]);const cn=(o,n="")=>Object.entries(o).reduce((s,i)=>{const[r,d]=i;return(0,y.isObject)(d)?[...s,...cn(d,`${n}${r}.`)]:(d&&!(0,y.isObject)(d)&&s.push(`${n}${r}`),s)},[]),$n=(o,n,{conditions:s,properties:i})=>Object.entries(i).reduce((r,d)=>{const[u,m]=d;return r.properties[u]=cn(m),r},{action:o,subject:n,conditions:wt(s),properties:{}}),jn=(o,n,{conditions:s})=>({action:o,subject:n,properties:{},conditions:wt(s)}),Un=(o,n)=>Object.entries(n).reduce((i,r)=>{const[d,u]=r;if(!He(u).some(T=>T))return i;if(!(0,y.has)(u,"properties.enabled")){const T=$n(d,o,u);return[...i,T]}if(!u.properties.enabled)return i;const E=jn(d,o,u);return i.push(E),i},[]);var dn=o=>Object.entries(o).reduce((s,i)=>{const[r,d]=i,u=Un(r,d);return[...s,...u]},[]),zn=o=>{const n=ln(o.plugins),s=ln(o.settings),i=dn(o.collectionTypes),r=dn(o.singleTypes);return[...n,...s,...i,...r]},Wn=[{labelId:"app.components.LeftMenuLinkContainer.collectionTypes",defaultMessage:"Collection Types",id:"collectionTypes"},{labelId:"app.components.LeftMenuLinkContainer.singleTypes",id:"singleTypes",defaultMessage:"Single Types"},{labelId:"app.components.LeftMenuLinkContainer.plugins",defaultMessage:"Plugins",id:"plugins"},{labelId:"app.components.LeftMenuLinkContainer.settings",defaultMessage:"Settings",id:"settings"}];const kt=(0,e.forwardRef)(({layout:o,isFormDisabled:n,permissions:s},i)=>{const[{initialData:r,layouts:d,modifiedData:u},m]=(0,e.useReducer)(wn,Bn,()=>Fn(o,s)),{formatMessage:E}=(0,w.useIntl)();(0,e.useImperativeHandle)(i,()=>({getPermissions(){const $=(0,l.difference)(r.collectionTypes,u.collectionTypes),Z=(0,l.difference)(r.singleTypes,u.singleTypes),A={...$,...Z};let B;return re()(A)?B=!1:B=Object.values(A).some(W=>Object.values(W).some(K=>H()(K,"conditions"))),{permissionsToSend:zn(u),didUpdateConditions:B}},resetForm(){m({type:"RESET_FORM"})},setFormAfterSubmit(){m({type:"SET_FORM_AFTER_SUBMIT"})}}));const T=($,Z,A,B)=>{m({type:"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",pathToCollectionType:$,propertyName:Z,rowName:A,value:B})},R=($,Z,A)=>{m({type:"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",collectionTypeKind:$,actionId:Z,value:A})},L=$=>{m({type:"ON_CHANGE_CONDITIONS",conditions:$})},P=(0,e.useCallback)(({target:{name:$,value:Z}})=>{m({type:"ON_CHANGE_SIMPLE_CHECKBOX",keys:$,value:Z})},[]),ee=(0,e.useCallback)(({target:{name:$,value:Z}})=>{m({type:"ON_CHANGE_TOGGLE_PARENT_CHECKBOX",keys:$,value:Z})},[]);return e.createElement(Sn,{value:{availableConditions:o.conditions,modifiedData:u,onChangeConditions:L,onChangeSimpleCheckbox:P,onChangeParentCheckbox:ee,onChangeCollectionTypeLeftActionRowCheckbox:T,onChangeCollectionTypeGlobalActionCheckbox:R}},e.createElement(c.TabGroup,{id:"tabs",label:E({id:"Settings.permissions.users.tabs.label",defaultMessage:"Tabs Permissions"})},e.createElement(c.Tabs,null,Wn.map($=>e.createElement(c.Tab,{key:$.id},E({id:$.labelId,defaultMessage:$.defaultMessage})))),e.createElement(c.TabPanels,{style:{position:"relative"}},e.createElement(c.TabPanel,null,e.createElement(Kt,{layout:d.collectionTypes,kind:"collectionTypes",isFormDisabled:n})),e.createElement(c.TabPanel,null,e.createElement(Kt,{layout:d.singleTypes,kind:"singleTypes",isFormDisabled:n})),e.createElement(c.TabPanel,null,e.createElement(Jt,{layout:d.plugins,kind:"plugins",isFormDisabled:n})),e.createElement(c.TabPanel,null,e.createElement(Jt,{layout:d.settings,kind:"settings",isFormDisabled:n})))))});kt.defaultProps={permissions:[],layout:{conditions:[],sections:{collectionTypes:{},singleTypes:{actions:[]},settings:[],plugins:[]}}},kt.propTypes={layout:a().object,isFormDisabled:a().bool.isRequired,permissions:a().array};var Gn=(0,e.memo)(kt)},16437:function(I,v){"use strict";v.Z=!0},78522:function(I,v){"use strict";v.Z=()=>"todo empty role"},80779:function(I,v,t){"use strict";var e=t(32735),b=t(60216),a=t.n(b),l=t(39161),c=t.n(l),C=t(13478),H=t.n(C),j=t(5636);const re=({id:w,name:x,description:Te,usersCount:f,icons:X,rowIndex:ge})=>{const{formatMessage:te}=(0,j.useIntl)(),de=te({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:f});return e.createElement(l.Tr,{"aria-rowindex":ge,key:w,...(0,C.onRowClick)({fn:X[1].onClick})},e.createElement(l.Td,{maxWidth:(0,C.pxToRem)(130)},e.createElement(l.Typography,{ellipsis:!0,textColor:"neutral800"},x)),e.createElement(l.Td,{maxWidth:(0,C.pxToRem)(250)},e.createElement(l.Typography,{ellipsis:!0,textColor:"neutral800"},Te)),e.createElement(l.Td,null,e.createElement(l.Typography,{textColor:"neutral800"},de)),e.createElement(l.Td,null,e.createElement(l.Flex,{justifyContent:"flex-end",...C.stopPropagation},X.map((le,fe)=>le?e.createElement(l.Box,{key:le.label,paddingLeft:fe===0?0:1},e.createElement(l.IconButton,{onClick:le.onClick,label:le.label,noBorder:!0,icon:le.icon})):null))))};re.propTypes={id:a().number.isRequired,name:a().string.isRequired,description:a().string.isRequired,usersCount:a().number.isRequired,icons:a().array.isRequired,rowIndex:a().number.isRequired},v.Z=re},45677:function(I,v,t){"use strict";t.d(v,{Z:function(){return Me}});var e=t(32735),b=t(13478),a=t(72041),l=t(58469),c=t(57269),C=t(39161),H=t(5636),j=t(5141),re=t(80779),w=t(78522),x=t(60216),Te=t.n(x),f=t(83292),X=t(95489),ge=t.p+"6d21938306785f176538.png",te=t.p+"617f9c948fa79e6d73bd.png";const de=f.default.div`
|
|
133
|
+
`}),Yt=o=>{let{categoryName:n,isFormDisabled:s,subCategoryName:i,actions:r,pathToData:d}=o;const[u,m]=(0,e.useState)(!1),{modifiedData:E,onChangeParentCheckbox:S,onChangeSimpleCheckbox:R}=(0,fe.$_)(),{formatMessage:L}=(0,w.useIntl)(),P=te()(E,d,{}),ee=(0,e.useMemo)(()=>Object.keys(P).reduce((se,Le)=>(se[Le]=et(P[Le]),se),{}),[P]),{hasAllActionsSelected:$,hasSomeActionsSelected:Z}=Ge(ee),A=()=>{m(se=>!se)},B=()=>{m(!1)},W=Sn(r,E,d),K=Rn(te()(E,[...d],{}));return e.createElement(e.Fragment,null,e.createElement(c.Box,null,e.createElement(c.Flex,{justifyContent:"space-between",alignItems:"center"},e.createElement(c.Box,{paddingRight:4},e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},i)),e.createElement(xn,null),e.createElement(c.Box,{paddingLeft:4},e.createElement(c.Checkbox,{name:d.join(".."),disabled:s||Ot,onValueChange:se=>{S({target:{name:d.join(".."),value:se}})},indeterminate:Z,value:$},L({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(c.Flex,{paddingTop:6,paddingBottom:6},e.createElement(c.Grid,{gap:2,style:{flex:1}},W.map(se=>{let{checkboxName:Le,value:ve,action:pe,displayName:Te,hasConditions:Ae}=se;return e.createElement(c.GridItem,{col:3,key:pe},e.createElement(An,{disabled:s||Ot,hasConditions:Ae},e.createElement(c.Checkbox,{name:Le,disabled:s||Ot,onValueChange:$e=>{R({target:{name:Le,value:$e}})},value:ve},Te)))})),e.createElement(Oe,{hasConditions:K,onClick:A}))),u&&e.createElement(ue,{headerBreadCrumbs:[n,i],actions:W,isFormDisabled:s,onClosed:B,onToggle:A}))};Yt.propTypes={actions:a().array.isRequired,categoryName:a().string.isRequired,isFormDisabled:a().bool.isRequired,subCategoryName:a().string.isRequired,pathToData:a().array.isRequired};var Mn=Yt;const Ft=({childrenForm:o,kind:n,name:s,isOpen:i,isFormDisabled:r,isWhite:d,onOpenCategory:u,pathToData:m})=>{const{formatMessage:E}=(0,w.useIntl)(),S=()=>{u(s)},R=(0,e.useMemo)(()=>s.split("::").pop(),[s]);return e.createElement(c.Accordion,{expanded:i,onToggle:S,id:`accordion-${s}`,variant:d?"primary":"secondary"},e.createElement(c.AccordionToggle,{title:ae()(R),description:`${E({id:"Settings.permissions.category"},{category:R})} ${n==="plugins"?"plugin":n}`}),e.createElement(c.AccordionContent,null,e.createElement(c.Box,{padding:6},o.map(({actions:L,subCategoryName:P,subCategoryId:ee})=>e.createElement(Mn,{key:P,actions:L,categoryName:R,isFormDisabled:r,subCategoryName:P,pathToData:[...m,ee]})))))};Ft.defaultProps={},Ft.propTypes={childrenForm:a().array.isRequired,isOpen:a().bool.isRequired,isFormDisabled:a().bool.isRequired,isWhite:a().bool.isRequired,kind:a().string.isRequired,name:a().string.isRequired,onOpenCategory:a().func.isRequired,pathToData:a().array.isRequired};var Ln=Ft;const Qt=({isFormDisabled:o,kind:n,layout:s})=>{const[i,r]=(0,e.useState)(null),d=u=>{r(u===i?null:u)};return e.createElement(c.Box,{padding:6,background:"neutral0"},s.map(({category:u,categoryId:m,childrenForm:E},S)=>e.createElement(Ln,{key:u,childrenForm:E,kind:n,isFormDisabled:o,isOpen:i===u,isWhite:S%2===1,name:u,onOpenCategory:d,pathToData:[n,m]})))};Qt.propTypes={isFormDisabled:a().bool.isRequired,kind:a().string.isRequired,layout:a().arrayOf(a().shape({category:a().string.isRequired,categoryId:a().string.isRequired,childrenForm:a().arrayOf(a().shape({actions:a().array.isRequired})).isRequired}).isRequired).isRequired};var Jt=Qt,qt=(o,n,s)=>o.find(i=>i.action===n&&i.subject===s);const _t=(o,n=[])=>o.reduce((s,i)=>(s[i.id]=n.indexOf(i.id)!==-1,s),{}),en=({children:o},n,s="")=>o.reduce((i,r)=>{if(r.children)return{...i,[r.value]:en(r,n,`${s}${r.value}.`)};const d=n.indexOf(`${s}${r.value}`)!==-1;return i[r.value]=d,i},{}),Dn=(o,n,s)=>o.reduce((i,r)=>{const d=n.properties.find(({value:u})=>u===r);if(d){const u=(0,y.get)(s,["properties",d.value],[]),m=en(d,u);i.properties[r]=m}return i},{properties:{}}),In=(o,n)=>n.reduce((s,i)=>{const r=o.find(({uid:d})=>d===i)||null;return r&&(s[i]=r),s},{});var tn=({subjects:o},n,s,i=[])=>n.reduce((r,d)=>{const u=d.subjects,m=In(o,u);if((0,y.isEmpty)(m))return r;const E=Object.keys(m).reduce((S,R)=>{const{actionId:L,applyToProperties:P}=d,Z=m[R].properties.map(({value:K})=>K).every(K=>(P||[]).indexOf(K)===-1),A=qt(i,L,R),B=_t(s,(0,y.get)(A,"conditions",[]));if((0,y.isEmpty)(P)||Z)return(0,y.set)(S,[R,L],{properties:{enabled:A!==void 0},conditions:B}),S;const W=Dn(P,m[R],A);return(0,y.set)(S,[R,L],{...W,conditions:B}),S},{});return(0,y.merge)(r,E)},{});const Pn=(o,n,s)=>o.reduce((i,r)=>{const d=qt(s,r.action,null);return i[r.action]={properties:{enabled:d!==void 0},conditions:_t(n,(0,y.get)(d,"conditions",[]))},i},{}),On=(o,n,s)=>o.reduce((i,r)=>(i[r.subCategoryId]=Pn(r.actions,n,s),i),{});var nn=(o,n,s=[])=>o.reduce((i,{categoryId:r,childrenForm:d})=>{const u=On(d,n,s);return i[r]=u,i},{});const on=o=>o.split(" ").join("-");var sn=(o,n)=>Object.entries(G()(o,n)).map(([s,i])=>({category:s,categoryId:on(s),childrenForm:Object.entries(G()(i,"subCategory")).map(([r,d])=>({subCategoryName:r,subCategoryId:on(r),actions:d}))})),Fn=(o,n)=>{const{conditions:s,sections:{collectionTypes:i,singleTypes:r,plugins:d,settings:u}}=o,m={collectionTypes:i,singleTypes:r,plugins:sn(d,"plugin"),settings:sn(u,"category")},E={collectionTypes:tn(i,i.actions||[],s,n),singleTypes:tn(r,r.actions||[],s,n),plugins:nn(m.plugins,s,n),settings:nn(m.settings,s,n)};return{initialData:E,modifiedData:E,layouts:m}};const an=o=>Object.keys(o).reduce((n,s)=>{const i=o[s];if((0,y.isObject)(i)&&!(0,y.has)(i,"conditions"))return{...n,[s]:an(i)};if((0,y.isObject)(i)&&(0,y.has)(i,"conditions")&&!He((0,y.omit)(i,"conditions")).some(d=>d)){const d=Object.keys(i.conditions).reduce((u,m)=>(u[m]=!1,u),{});return{...n,[s]:{...i,conditions:d}}}return n[s]=i,n},{});var Bt=an;const rn=(o,n)=>Object.keys(o).reduce((s,i)=>{const r=o[i];return i==="conditions"?(s[i]=r,s):(0,y.isObject)(r)?{...s,[i]:rn(r,n)}:(s[i]=n,s)},{});var ht=rn;const Bn={initialData:{},modifiedData:{},layouts:{}};var wn=(o,n)=>(0,D.default)(o,s=>{switch(n.type){case"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX":{const{collectionTypeKind:i,actionId:r,value:d}=n,u=["modifiedData",i];Object.keys((0,y.get)(o,u)).forEach(m=>{const E=(0,y.get)(o,[...u,m,r],void 0);if(E){let S=ht(E,d);if(!d&&S.conditions){const R=ht(S.conditions,!1);S={...S,conditions:R}}(0,y.set)(s,[...u,m,r],S)}});break}case"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX":{const{pathToCollectionType:i,propertyName:r,rowName:d,value:u}=n;let m=(0,y.cloneDeep)(o.modifiedData);const E=i.split(".."),S=(0,y.get)(m,E,{});Object.keys(S).forEach(R=>{if((0,y.has)(S[R],`properties.${r}`)){const L=(0,y.get)(S,[R,"properties",r,d]),P=[...E,R,"properties",r,d];if(!(0,y.isObject)(L))(0,y.set)(m,P,u);else{const ee=ht(L,u);(0,y.set)(m,P,ee)}}}),u||(m=Bt(m)),(0,y.set)(s,"modifiedData",m);break}case"ON_CHANGE_CONDITIONS":{Object.entries(n.conditions).forEach(i=>{const[r,d]=i;(0,y.set)(s,["modifiedData",...r.split(".."),"conditions"],d)});break}case"ON_CHANGE_SIMPLE_CHECKBOX":{let i=(0,y.cloneDeep)(o.modifiedData);(0,y.set)(i,[...n.keys.split("..")],n.value),n.value||(i=Bt(i)),(0,y.set)(s,"modifiedData",i);break}case"ON_CHANGE_TOGGLE_PARENT_CHECKBOX":{const{keys:i,value:r}=n,d=[...i.split("..")];let u=(0,y.cloneDeep)(o.modifiedData);const m=(0,y.get)(u,d,{}),E=ht(m,r);(0,y.set)(u,d,E),r||(u=Bt(u)),(0,y.set)(s,["modifiedData"],u);break}case"RESET_FORM":{s.modifiedData=o.initialData;break}case"SET_FORM_AFTER_SUBMIT":{s.initialData=o.modifiedData;break}default:return s}});const wt=o=>Object.entries(o).filter(([,n])=>n).map(([n])=>n),kn=o=>{const[n,{conditions:s}]=o;return{action:n,subject:null,conditions:wt(s),properties:{}}},Nn=o=>Object.values(o).reduce((n,s)=>{const i=Object.entries(s).reduce((r,d)=>{const[,{properties:{enabled:u}}]=d;if(!u)return r;const m=kn(d);return r.push(m),r},[]);return[...n,...i]},[]);var ln=o=>Object.values(o).reduce((n,s)=>{const i=Nn(s);return[...n,...i]},[]);const cn=(o,n="")=>Object.entries(o).reduce((s,i)=>{const[r,d]=i;return(0,y.isObject)(d)?[...s,...cn(d,`${n}${r}.`)]:(d&&!(0,y.isObject)(d)&&s.push(`${n}${r}`),s)},[]),$n=(o,n,{conditions:s,properties:i})=>Object.entries(i).reduce((r,d)=>{const[u,m]=d;return r.properties[u]=cn(m),r},{action:o,subject:n,conditions:wt(s),properties:{}}),jn=(o,n,{conditions:s})=>({action:o,subject:n,properties:{},conditions:wt(s)}),Un=(o,n)=>Object.entries(n).reduce((i,r)=>{const[d,u]=r;if(!He(u).some(S=>S))return i;if(!(0,y.has)(u,"properties.enabled")){const S=$n(d,o,u);return[...i,S]}if(!u.properties.enabled)return i;const E=jn(d,o,u);return i.push(E),i},[]);var dn=o=>Object.entries(o).reduce((s,i)=>{const[r,d]=i,u=Un(r,d);return[...s,...u]},[]),zn=o=>{const n=ln(o.plugins),s=ln(o.settings),i=dn(o.collectionTypes),r=dn(o.singleTypes);return[...n,...s,...i,...r]},Wn=[{labelId:"app.components.LeftMenuLinkContainer.collectionTypes",defaultMessage:"Collection Types",id:"collectionTypes"},{labelId:"app.components.LeftMenuLinkContainer.singleTypes",id:"singleTypes",defaultMessage:"Single Types"},{labelId:"app.components.LeftMenuLinkContainer.plugins",defaultMessage:"Plugins",id:"plugins"},{labelId:"app.components.LeftMenuLinkContainer.settings",defaultMessage:"Settings",id:"settings"}];const kt=(0,e.forwardRef)(({layout:o,isFormDisabled:n,permissions:s},i)=>{const[{initialData:r,layouts:d,modifiedData:u},m]=(0,e.useReducer)(wn,Bn,()=>Fn(o,s)),{formatMessage:E}=(0,w.useIntl)();(0,e.useImperativeHandle)(i,()=>({getPermissions(){const $=(0,l.difference)(r.collectionTypes,u.collectionTypes),Z=(0,l.difference)(r.singleTypes,u.singleTypes),A={...$,...Z};let B;return re()(A)?B=!1:B=Object.values(A).some(W=>Object.values(W).some(K=>H()(K,"conditions"))),{permissionsToSend:zn(u),didUpdateConditions:B}},resetForm(){m({type:"RESET_FORM"})},setFormAfterSubmit(){m({type:"SET_FORM_AFTER_SUBMIT"})}}));const S=($,Z,A,B)=>{m({type:"ON_CHANGE_COLLECTION_TYPE_ROW_LEFT_CHECKBOX",pathToCollectionType:$,propertyName:Z,rowName:A,value:B})},R=($,Z,A)=>{m({type:"ON_CHANGE_COLLECTION_TYPE_GLOBAL_ACTION_CHECKBOX",collectionTypeKind:$,actionId:Z,value:A})},L=$=>{m({type:"ON_CHANGE_CONDITIONS",conditions:$})},P=(0,e.useCallback)(({target:{name:$,value:Z}})=>{m({type:"ON_CHANGE_SIMPLE_CHECKBOX",keys:$,value:Z})},[]),ee=(0,e.useCallback)(({target:{name:$,value:Z}})=>{m({type:"ON_CHANGE_TOGGLE_PARENT_CHECKBOX",keys:$,value:Z})},[]);return e.createElement(Tn,{value:{availableConditions:o.conditions,modifiedData:u,onChangeConditions:L,onChangeSimpleCheckbox:P,onChangeParentCheckbox:ee,onChangeCollectionTypeLeftActionRowCheckbox:S,onChangeCollectionTypeGlobalActionCheckbox:R}},e.createElement(c.TabGroup,{id:"tabs",label:E({id:"Settings.permissions.users.tabs.label",defaultMessage:"Tabs Permissions"})},e.createElement(c.Tabs,null,Wn.map($=>e.createElement(c.Tab,{key:$.id},E({id:$.labelId,defaultMessage:$.defaultMessage})))),e.createElement(c.TabPanels,{style:{position:"relative"}},e.createElement(c.TabPanel,null,e.createElement(Kt,{layout:d.collectionTypes,kind:"collectionTypes",isFormDisabled:n})),e.createElement(c.TabPanel,null,e.createElement(Kt,{layout:d.singleTypes,kind:"singleTypes",isFormDisabled:n})),e.createElement(c.TabPanel,null,e.createElement(Jt,{layout:d.plugins,kind:"plugins",isFormDisabled:n})),e.createElement(c.TabPanel,null,e.createElement(Jt,{layout:d.settings,kind:"settings",isFormDisabled:n})))))});kt.defaultProps={permissions:[],layout:{conditions:[],sections:{collectionTypes:{},singleTypes:{actions:[]},settings:[],plugins:[]}}},kt.propTypes={layout:a().object,isFormDisabled:a().bool.isRequired,permissions:a().array};var Gn=(0,e.memo)(kt)},16437:function(I,v){"use strict";v.Z=!0},78522:function(I,v){"use strict";v.Z=()=>"todo empty role"},80779:function(I,v,t){"use strict";var e=t(32735),b=t(60216),a=t.n(b),l=t(39161),c=t.n(l),C=t(13478),H=t.n(C),j=t(5636);const re=({id:w,name:x,description:Se,usersCount:f,icons:X,rowIndex:ge})=>{const{formatMessage:te}=(0,j.useIntl)(),de=te({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:f});return e.createElement(l.Tr,{"aria-rowindex":ge,key:w,...(0,C.onRowClick)({fn:X[1].onClick})},e.createElement(l.Td,{maxWidth:(0,C.pxToRem)(130)},e.createElement(l.Typography,{ellipsis:!0,textColor:"neutral800"},x)),e.createElement(l.Td,{maxWidth:(0,C.pxToRem)(250)},e.createElement(l.Typography,{ellipsis:!0,textColor:"neutral800"},Se)),e.createElement(l.Td,null,e.createElement(l.Typography,{textColor:"neutral800"},de)),e.createElement(l.Td,null,e.createElement(l.Flex,{justifyContent:"flex-end",...C.stopPropagation},X.map((le,fe)=>le?e.createElement(l.Box,{key:le.label,paddingLeft:fe===0?0:1},e.createElement(l.IconButton,{onClick:le.onClick,label:le.label,noBorder:!0,icon:le.icon})):null))))};re.propTypes={id:a().number.isRequired,name:a().string.isRequired,description:a().string.isRequired,usersCount:a().number.isRequired,icons:a().array.isRequired,rowIndex:a().number.isRequired},v.Z=re},45677:function(I,v,t){"use strict";t.d(v,{Z:function(){return Me}});var e=t(32735),b=t(13478),a=t(72041),l=t(58469),c=t(57269),C=t(39161),H=t(5636),j=t(5141),re=t(80779),w=t(78522),x=t(60216),Se=t.n(x),f=t(83292),X=t(95489),ge=t.p+"6d21938306785f176538.png",te=t.p+"617f9c948fa79e6d73bd.png";const de=f.default.div`
|
|
134
134
|
position: absolute;
|
|
135
135
|
z-index: 3;
|
|
136
136
|
inset: 0;
|
|
@@ -158,15 +158,14 @@
|
|
|
158
158
|
margin-right: ${20/16}rem;
|
|
159
159
|
z-index: 0;
|
|
160
160
|
}
|
|
161
|
-
`,fe=(0,f.default)(C.
|
|
162
|
-
align-items: flex-start;
|
|
161
|
+
`,fe=(0,f.default)(C.Flex)`
|
|
163
162
|
max-width: ${400/16}rem;
|
|
164
163
|
z-index: 0;
|
|
165
164
|
`,we=(0,f.default)(C.Box)`
|
|
166
165
|
position: absolute;
|
|
167
166
|
right: ${({theme:M})=>M.spaces[4]};
|
|
168
167
|
top: ${({theme:M})=>M.spaces[4]};
|
|
169
|
-
`,De=({onClose:M,isOpen:k})=>{(0,b.useLockScroll)(k);const{formatMessage:Y}=(0,H.useIntl)();return k?e.createElement(C.Portal,null,e.createElement(de,{onClick:M},e.createElement(C.FocusTrap,{onEscape:M},e.createElement(le,{onClick:J=>J.stopPropagation(),"aria-labelledby":"upgrade-plan",background:"neutral0",hasRadius:!0},e.createElement("img",{src:ge,alt:"air-balloon"}),e.createElement(we,null,e.createElement(C.IconButton,{onClick:M,"aria-label":"Close",icon:e.createElement(c.Cross,null)})),e.createElement(fe,{
|
|
168
|
+
`,De=({onClose:M,isOpen:k})=>{(0,b.useLockScroll)(k);const{formatMessage:Y}=(0,H.useIntl)();return k?e.createElement(C.Portal,null,e.createElement(de,{onClick:M},e.createElement(C.FocusTrap,{onEscape:M},e.createElement(le,{onClick:J=>J.stopPropagation(),"aria-labelledby":"upgrade-plan",background:"neutral0",hasRadius:!0},e.createElement("img",{src:ge,alt:"air-balloon"}),e.createElement(we,null,e.createElement(C.IconButton,{onClick:M,"aria-label":"Close",icon:e.createElement(c.Cross,null)})),e.createElement(fe,{direction:"column",alignItems:"flex-start",gap:6},e.createElement(C.Typography,{fontWeight:"bold",textColor:"primary600"},Y({id:"app.components.UpgradePlanModal.text-ce",defaultMessage:"COMMUNITY EDITION"})),e.createElement(C.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(C.Typography,{variant:"alpha",as:"h2",id:"upgrade-plan"},Y({id:"app.components.UpgradePlanModal.limit-reached",defaultMessage:"You have reached the limit"})),e.createElement(C.Typography,null,Y({id:"app.components.UpgradePlanModal.text-power",defaultMessage:"Unlock the full power of Strapi by upgrading your plan to the Enterprise Edition"}))),e.createElement(X.Q,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(c.ExternalLink,null)},Y({id:"app.components.UpgradePlanModal.button",defaultMessage:"Learn more"}))),e.createElement("img",{src:te,alt:"upgrade-arrow"}))))):null};De.propTypes={onClose:Se().func.isRequired,isOpen:Se().bool.isRequired};var Oe=De,D=t(8888);const Ce=()=>{const{roles:M,isLoading:k}=(0,D.bF)(),Y=(0,b.useQuery)(),J=decodeURIComponent(Y.get("_q")||""),y=(0,l.ZP)(M,J,{keys:["name","description"]});return{isLoading:k,sortedRoles:y}},G=()=>{const{formatMessage:M}=(0,H.useIntl)(),[k,Y]=(0,e.useState)(!1),{trackUsage:J}=(0,b.useTracking)(),{push:y}=(0,j.useHistory)(),he=(0,e.useCallback)(_=>{y(`/settings/roles/${_}`)},[y]),Re=(0,e.useCallback)(()=>{Y(_=>!_)},[]),Ie=(0,e.useCallback)(()=>{J("didShowRBACUpgradeModal"),Y(!0)},[J]),ye=(0,e.useCallback)(_=>[{onClick:Re,label:M({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(c.Duplicate,null)},{onClick:()=>he(_.id),label:M({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(c.Pencil,null)},{onClick:Re,label:M({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(c.Trash,null)}],[M,Re,he]);return{isModalOpen:k,handleToggleModalForCreatingRole:Ie,handleToggle:Re,getIcons:ye}};var ae=()=>{const{formatMessage:M}=(0,H.useIntl)();(0,b.useFocusWhenNavigate)();const{sortedRoles:k,isLoading:Y}=Ce(),{isModalOpen:J,handleToggle:y,handleToggleModalForCreatingRole:he,getIcons:Re}=G(),Ie=k.length+1,ye=5;return e.createElement(C.Main,null,e.createElement(b.SettingsPageTitle,{name:"Roles"}),e.createElement(C.HeaderLayout,{primaryAction:e.createElement(C.Button,{onClick:he,startIcon:e.createElement(c.Plus,null),size:"S"},M({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})),title:M({id:"global.roles",defaultMessage:"roles"}),subtitle:M({id:"Settings.roles.list.description",defaultMessage:"List of roles"})}),e.createElement(C.ContentLayout,null,e.createElement(C.Table,{colCount:ye,rowCount:Ie,footer:e.createElement(C.TFooter,{onClick:he,icon:e.createElement(c.Plus,null)},M({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"}))},e.createElement(C.Thead,null,e.createElement(C.Tr,null,e.createElement(C.Th,null,e.createElement(C.Typography,{variant:"sigma",textColor:"neutral600"},M({id:"global.name",defaultMessage:"Name"}))),e.createElement(C.Th,null,e.createElement(C.Typography,{variant:"sigma",textColor:"neutral600"},M({id:"global.description",defaultMessage:"Description"}))),e.createElement(C.Th,null,e.createElement(C.Typography,{variant:"sigma",textColor:"neutral600"},M({id:"global.users",defaultMessage:"Users"}))),e.createElement(C.Th,null,e.createElement(C.VisuallyHidden,null,M({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(C.Tbody,null,k?.map((_,ue)=>e.createElement(re.Z,{key:_.id,id:_.id,name:_.name,description:_.description,usersCount:_.usersCount,icons:Re(_),rowIndex:ue+2})))),!Ie&&!Y&&e.createElement(w.Z,null)),e.createElement(Oe,{isOpen:J,onClose:y}))},Me=()=>e.createElement(b.CheckPagePermissions,{permissions:a.Z.settings.roles.main},e.createElement(ae,null))},75936:function(I,v){"use strict";const t=[];v.Z=t},78999:function(I,v,t){"use strict";var e=t(32735),b=t(5636),a=t(39161),l=t.n(a),c=t(41502),C=t(57269),H=t.n(C),j=t(13478),re=t.n(j),w=t(58414);const x="https://cloud.strapi.io/profile/billing",Se="https://strapi.io/billing/request-seats",f=()=>{const{formatMessage:X}=(0,b.useIntl)(),{license:ge}=(0,w.q5)(),{licenseLimitStatus:te,enforcementUserCount:de,permittedSeats:le,isHostedOnStrapiCloud:fe}=ge?.data??{};return le?e.createElement(a.GridItem,{col:6,s:12},e.createElement(a.Typography,{variant:"sigma",textColor:"neutral600"},X({id:"Settings.application.admin-seats",defaultMessage:"Admin seats"})),e.createElement(a.Flex,{gap:2},e.createElement(a.Flex,null,e.createElement(a.Typography,{as:"p"},X({id:"Settings.application.ee.admin-seats.count",defaultMessage:"<text>{enforcementUserCount}</text>/{permittedSeats}"},{permittedSeats:le,enforcementUserCount:de,text:we=>e.createElement(a.Typography,{fontWeight:"semiBold",textColor:de>le?"danger500":null},we)}))),te==="OVER_LIMIT"&&e.createElement(a.Tooltip,{description:X({id:"Settings.application.ee.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"})},e.createElement(a.Icon,{width:`${(0,j.pxToRem)(14)}rem`,height:`${(0,j.pxToRem)(14)}rem`,color:"danger500",as:C.ExclamationMarkCircle}))),e.createElement(c.r,{href:fe?x:Se,isExternal:!0,endIcon:e.createElement(C.ExternalLink,null)},X({id:"Settings.application.ee.admin-seats.add-seats",defaultMessage:"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}"},{isHostedOnStrapiCloud:fe}))):null};v.Z=f},20178:function(I,v,t){"use strict";t.d(v,{Z:function(){return Oe}});var e=t(32735),b=t(64213),a=t(13478),l=t(39161),c=t(57269),C=t(83281),H=t(33795),j=t.n(H),re=t(86834),w=t.n(re),x=t(5636),Se=t(5141),f=t(83292),X=t(78974),ge=t(8888),te=t(72041),de=t(5173),fe=de.Ry().shape({name:de.Z_().required(a.translatedErrors.required),description:de.Z_().required(a.translatedErrors.required)});const we=f.default.div`
|
|
170
169
|
border: 1px solid ${({theme:D})=>D.colors.primary200};
|
|
171
170
|
background: ${({theme:D})=>D.colors.primary100};
|
|
172
171
|
padding: ${({theme:D})=>`${D.spaces[2]} ${D.spaces[4]}`};
|
|
@@ -174,5 +173,5 @@
|
|
|
174
173
|
border-radius: ${({theme:D})=>D.borderRadius};
|
|
175
174
|
font-size: ${12/16}rem;
|
|
176
175
|
font-weight: bold;
|
|
177
|
-
`,De=()=>{const D=(0,a.useNotification)(),{lockApp:Ce,unlockApp:G}=(0,a.useOverlayBlocker)(),{formatMessage:U}=(0,x.useIntl)(),[ae,ie]=(0,e.useState)(!1),{replace:Me}=(0,
|
|
178
|
-
`);ie({type:"warning",message:We})}else ie({type:"warning",message:{id:"notification.error"}})}N()},ye=(0,e.useCallback)(oe=>{k(`/settings/roles/duplicate/${oe}`)},[k]),_=()=>k("/settings/roles/new"),ue=(0,e.useCallback)(oe=>{he({type:"SET_ROLE_TO_DELETE",id:oe}),N()},[]),N=()=>M(oe=>!oe),ce=(0,e.useCallback)(oe=>{k(`/settings/roles/${oe}`)},[k]),ke=(0,e.useCallback)((oe,Ee)=>{oe.preventDefault(),oe.stopPropagation(),Ee.usersCount?ie({type:"info",message:{id:"Roles.ListPage.notification.delete-not-allowed"}}):ue(Ee.id)},[ie,ue]),je=(0,e.useCallback)((oe,Ee)=>{oe.preventDefault(),oe.stopPropagation(),ye(Ee.id)},[ye]),Ze=(0,e.useCallback)(oe=>[...Ce?[{onClick:Ee=>je(Ee,oe),label:ae({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(l.Duplicate,null)}]:[],...U?[{onClick:()=>ce(oe.id),label:ae({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(l.Pencil,null)}]:[],...G?[{onClick:Ee=>ke(Ee,oe),label:ae({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(l.Trash,null)}]:[]],[ae,ke,je,ce,Ce,U,G]);return{handleNewRoleClick:_,getIcons:Ze,selectedRoles:Y,isWarningDeleteAllOpened:Me,showModalConfirmButtonLoading:J,handleToggleModal:N,handleDeleteData:Ie}};var we=()=>{const{formatMessage:D}=(0,j.useIntl)(),{isLoadingForPermissions:Ce,canCreate:G,canRead:U,canDelete:ae,canUpdate:ie,isLoading:Me,getData:M,sortedRoles:k}=de(),{handleNewRoleClick:Y,getIcons:J,isWarningDeleteAllOpened:y,showModalConfirmButtonLoading:he,handleToggleModal:Re,handleDeleteData:Ie}=le({getData:M,canCreate:G,canDelete:ae,canUpdate:ie}),ye=k.length+1,_=6;if(Ce)return e.createElement(c.Main,null,e.createElement(b.LoadingIndicatorPage,null));const ue=D({id:"global.roles",defaultMessage:"roles"});return e.createElement(c.Main,null,e.createElement(b.SettingsPageTitle,{name:"Roles"}),e.createElement(c.HeaderLayout,{primaryAction:G?e.createElement(c.Button,{onClick:Y,startIcon:e.createElement(l.Plus,null),size:"S"},D({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null,title:ue,subtitle:D({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),as:"h2"}),U&&e.createElement(c.ActionLayout,{startActions:e.createElement(b.SearchURLQuery,{label:D({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:ue})})}),U&&e.createElement(c.ContentLayout,null,e.createElement(c.Table,{colCount:_,rowCount:ye,footer:G?e.createElement(c.TFooter,{onClick:Y,icon:e.createElement(l.Plus,null)},D({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null},e.createElement(c.Thead,null,e.createElement(c.Tr,{"aria-rowindex":1},e.createElement(c.Th,null,e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},D({id:"global.name",defaultMessage:"Name"}))),e.createElement(c.Th,null,e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},D({id:"global.description",defaultMessage:"Description"}))),e.createElement(c.Th,null,e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},D({id:"global.users",defaultMessage:"Users"}))),e.createElement(c.Th,null,e.createElement(c.VisuallyHidden,null,D({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(c.Tbody,null,k?.map((N,ce)=>e.createElement(
|
|
176
|
+
`,De=()=>{const D=(0,a.useNotification)(),{lockApp:Ce,unlockApp:G}=(0,a.useOverlayBlocker)(),{formatMessage:U}=(0,x.useIntl)(),[ae,ie]=(0,e.useState)(!1),{replace:Me}=(0,Se.useHistory)(),M=(0,e.useRef)(),{trackUsage:k}=(0,a.useTracking)(),Y=(0,Se.useRouteMatch)("/settings/roles/duplicate/:id"),J=j()(Y,"params.id",null),{isLoading:y,data:he}=(0,ge.U_)(),{permissions:Re,isLoading:Ie}=(0,ge.Dq)(J),ye=ue=>{Ce(),ie(!0),k(J?"willDuplicateRole":"willCreateNewRole"),Promise.resolve((0,a.request)("/admin/roles",{method:"POST",body:ue})).then(async N=>{const{permissionsToSend:ce}=M.current.getPermissions();return k(J?"didDuplicateRole":"didCreateNewRole"),N.data.id&&!w()(ce)&&await(0,a.request)(`/admin/roles/${N.data.id}/permissions`,{method:"PUT",body:{permissions:ce}}),N}).then(N=>{ie(!1),D({type:"success",message:{id:"Settings.roles.created",defaultMessage:"created"}}),Me(`/settings/roles/${N.data.id}`)}).catch(N=>{console.error(N),ie(!1),D({type:"warning",message:{id:"notification.error"}})}).finally(()=>{G()})},_=`${U({id:"Settings.roles.form.created",defaultMessage:"Created"})} ${(0,b.format)(new Date,"PPP")}`;return e.createElement(l.Main,null,e.createElement(a.SettingsPageTitle,{name:"Roles"}),e.createElement(C.Formik,{initialValues:{name:"",description:_},onSubmit:ye,validationSchema:fe,validateOnChange:!1},({handleSubmit:ue,values:N,errors:ce,handleReset:ke,handleChange:je})=>e.createElement(a.Form,{noValidate:!0},e.createElement(e.Fragment,null,e.createElement(l.HeaderLayout,{primaryAction:e.createElement(l.Flex,{gap:2},e.createElement(l.Button,{variant:"secondary",onClick:()=>{ke(),M.current.resetForm()},size:"L"},U({id:"app.components.Button.reset",defaultMessage:"Reset"})),e.createElement(l.Button,{onClick:ue,loading:ae,size:"L"},U({id:"global.save",defaultMessage:"Save"}))),title:U({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:U({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(a.Link,{startIcon:e.createElement(c.ArrowLeft,null),to:"/settings/roles"},U({id:"global.back",defaultMessage:"Back"}))}),e.createElement(l.ContentLayout,null,e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(l.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(l.Flex,{justifyContent:"space-between"},e.createElement(l.Box,null,e.createElement(l.Box,null,e.createElement(l.Typography,{fontWeight:"bold"},U({id:"global.details",defaultMessage:"Details"}))),e.createElement(l.Box,null,e.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},U({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(we,null,U({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:0}))),e.createElement(l.Grid,{gap:4},e.createElement(l.GridItem,{col:6},e.createElement(l.TextInput,{name:"name",error:ce.name&&U({id:ce.name}),label:U({id:"global.name",defaultMessage:"Name"}),onChange:je,value:N.name})),e.createElement(l.GridItem,{col:6},e.createElement(l.Textarea,{label:U({id:"global.description",defaultMessage:"Description"}),name:"description",error:ce.description&&U({id:ce.description}),onChange:je},N.description))))),!y&&!Ie?e.createElement(l.Box,{shadow:"filterShadow",hasRadius:!0},e.createElement(X.Z,{isFormDisabled:!1,ref:M,permissions:Re,layout:he})):e.createElement(l.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(a.LoadingIndicatorPage,null))))))))};function Oe(){return e.createElement(a.CheckPagePermissions,{permissions:te.Z.settings.roles.create},e.createElement(De,null))}},56899:function(I,v){"use strict";v.Z=!1},68464:function(I,v){"use strict";v.Z=!1},32741:function(I,v){"use strict";v.Z=!1},19665:function(I,v){"use strict";v.Z=!1},36950:function(I,v){"use strict";v.Z=!1},96556:function(I,v){"use strict";v.Z=!1},51899:function(I,v,t){"use strict";t.d(v,{Z:function(){return Oe}});var e=t(32735),b=t(13478),a=t(72041),l=t(57269),c=t(39161),C=t(92891),H=t(58469),j=t(5636),re=t(5141),w=t(8888),x=t(78522),Se=t(80779),f=t(97889);const X={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1};var te=(D,Ce)=>(0,f.default)(D,G=>{switch(Ce.type){case"ON_REMOVE_ROLES":{G.showModalConfirmButtonLoading=!0;break}case"ON_REMOVE_ROLES_SUCCEEDED":{G.shouldRefetchData=!0,G.roleToDelete=null;break}case"RESET_DATA_TO_DELETE":{G.shouldRefetchData=!1,G.roleToDelete=null,G.showModalConfirmButtonLoading=!1;break}case"SET_ROLE_TO_DELETE":{G.roleToDelete=Ce.id;break}default:return G}});const de=()=>{(0,b.useFocusWhenNavigate)();const{isLoading:D,allowedActions:{canCreate:Ce,canDelete:G,canRead:U,canUpdate:ae}}=(0,b.useRBAC)(a.Z.settings.roles),{getData:ie,roles:Me,isLoading:M}=(0,w.bF)(!1),[{query:k}]=(0,b.useQueryParams)(),Y=k?._q||"",J=(0,H.ZP)(Me,Y,{keys:["name","description"]});return(0,e.useEffect)(()=>{!D&&U&&ie()},[D,U,ie]),{isLoadingForPermissions:D,canCreate:Ce,canDelete:G,canRead:U,canUpdate:ae,isLoading:M,getData:ie,sortedRoles:J,roles:Me}},le=({getData:D,canCreate:Ce,canDelete:G,canUpdate:U})=>{const{formatMessage:ae}=(0,j.useIntl)(),ie=(0,b.useNotification)(),[Me,M]=(0,e.useState)(!1),{push:k}=(0,re.useHistory)(),[{selectedRoles:Y,showModalConfirmButtonLoading:J,roleToDelete:y},he]=(0,e.useReducer)(te,X),{post:Re}=(0,b.getFetchClient)(),Ie=async()=>{try{he({type:"ON_REMOVE_ROLES"}),await Re("/admin/roles/batch-delete",{ids:[y]}),await D(),he({type:"RESET_DATA_TO_DELETE"})}catch(oe){const Ee=(0,C.get)(oe,["response","payload","data","ids"],null);if(Ee&&Array.isArray(Ee)){const We=Ee.join(`
|
|
177
|
+
`);ie({type:"warning",message:We})}else ie({type:"warning",message:{id:"notification.error"}})}N()},ye=(0,e.useCallback)(oe=>{k(`/settings/roles/duplicate/${oe}`)},[k]),_=()=>k("/settings/roles/new"),ue=(0,e.useCallback)(oe=>{he({type:"SET_ROLE_TO_DELETE",id:oe}),N()},[]),N=()=>M(oe=>!oe),ce=(0,e.useCallback)(oe=>{k(`/settings/roles/${oe}`)},[k]),ke=(0,e.useCallback)((oe,Ee)=>{oe.preventDefault(),oe.stopPropagation(),Ee.usersCount?ie({type:"info",message:{id:"Roles.ListPage.notification.delete-not-allowed"}}):ue(Ee.id)},[ie,ue]),je=(0,e.useCallback)((oe,Ee)=>{oe.preventDefault(),oe.stopPropagation(),ye(Ee.id)},[ye]),Ze=(0,e.useCallback)(oe=>[...Ce?[{onClick:Ee=>je(Ee,oe),label:ae({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(l.Duplicate,null)}]:[],...U?[{onClick:()=>ce(oe.id),label:ae({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(l.Pencil,null)}]:[],...G?[{onClick:Ee=>ke(Ee,oe),label:ae({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(l.Trash,null)}]:[]],[ae,ke,je,ce,Ce,U,G]);return{handleNewRoleClick:_,getIcons:Ze,selectedRoles:Y,isWarningDeleteAllOpened:Me,showModalConfirmButtonLoading:J,handleToggleModal:N,handleDeleteData:Ie}};var we=()=>{const{formatMessage:D}=(0,j.useIntl)(),{isLoadingForPermissions:Ce,canCreate:G,canRead:U,canDelete:ae,canUpdate:ie,isLoading:Me,getData:M,sortedRoles:k}=de(),{handleNewRoleClick:Y,getIcons:J,isWarningDeleteAllOpened:y,showModalConfirmButtonLoading:he,handleToggleModal:Re,handleDeleteData:Ie}=le({getData:M,canCreate:G,canDelete:ae,canUpdate:ie}),ye=k.length+1,_=6;if(Ce)return e.createElement(c.Main,null,e.createElement(b.LoadingIndicatorPage,null));const ue=D({id:"global.roles",defaultMessage:"roles"});return e.createElement(c.Main,null,e.createElement(b.SettingsPageTitle,{name:"Roles"}),e.createElement(c.HeaderLayout,{primaryAction:G?e.createElement(c.Button,{onClick:Y,startIcon:e.createElement(l.Plus,null),size:"S"},D({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null,title:ue,subtitle:D({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),as:"h2"}),U&&e.createElement(c.ActionLayout,{startActions:e.createElement(b.SearchURLQuery,{label:D({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:ue})})}),U&&e.createElement(c.ContentLayout,null,e.createElement(c.Table,{colCount:_,rowCount:ye,footer:G?e.createElement(c.TFooter,{onClick:Y,icon:e.createElement(l.Plus,null)},D({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null},e.createElement(c.Thead,null,e.createElement(c.Tr,{"aria-rowindex":1},e.createElement(c.Th,null,e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},D({id:"global.name",defaultMessage:"Name"}))),e.createElement(c.Th,null,e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},D({id:"global.description",defaultMessage:"Description"}))),e.createElement(c.Th,null,e.createElement(c.Typography,{variant:"sigma",textColor:"neutral600"},D({id:"global.users",defaultMessage:"Users"}))),e.createElement(c.Th,null,e.createElement(c.VisuallyHidden,null,D({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(c.Tbody,null,k?.map((N,ce)=>e.createElement(Se.Z,{key:N.id,id:N.id,name:N.name,description:N.description,usersCount:N.usersCount,icons:J(N),rowIndex:ce+2})))),!ye&&!Me&&e.createElement(x.Z,null)),e.createElement(b.ConfirmDialog,{isOpen:y,onConfirm:Ie,isConfirmButtonLoading:he,onToggleDialog:Re}))},Oe=()=>e.createElement(b.CheckPagePermissions,{permissions:a.Z.settings.roles.main},e.createElement(we,null))},63775:function(I,v,t){"use strict";const e=[];strapi.features.isEnabled(strapi.features.SSO)&&e.push({async Component(){return await t.e(302).then(t.bind(t,26930))},to:"/settings/single-sign-on",exact:!0}),strapi.features.isEnabled(strapi.features.AUDIT_LOGS)&&e.push({async Component(){return await t.e(2812).then(t.bind(t,71765))},to:"/settings/audit-logs",exact:!0}),v.Z=e},84802:function(I){function v(t,e,b,a){for(var l=-1,c=t==null?0:t.length;++l<c;){var C=t[l];e(a,C,b(C),t)}return a}I.exports=v},62435:function(I,v,t){var e=t(56671);function b(a,l,c,C){return e(a,function(H,j,re){l(C,H,c(H),re)}),C}I.exports=b},85580:function(I,v,t){var e=t(84802),b=t(62435),a=t(88904),l=t(77236);function c(C,H){return function(j,re){var w=l(j)?e:b,x=H?H():{};return w(j,C,a(re,2),x)}}I.exports=c},3704:function(I,v,t){var e=t(40314),b=t(37213);function a(l,c){return e(b(l,c),1)}I.exports=a},81346:function(I,v,t){var e=t(40999),b=t(85580),a=Object.prototype,l=a.hasOwnProperty,c=b(function(C,H,j){l.call(C,j)?C[j].push(H):e(C,j,[H])});I.exports=c},37213:function(I,v,t){var e=t(26460),b=t(88904),a=t(52920),l=t(77236);function c(C,H){var j=l(C)?e:a;return j(C,b(H,3))}I.exports=c}}]);
|