@strapi/admin 4.14.0-beta.0 → 4.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/components/RBACProvider/index.js +1 -1
- package/admin/src/content-manager/components/BlocksEditor/BlocksInput/index.js +87 -0
- package/admin/src/content-manager/components/BlocksEditor/Toolbar/index.js +463 -0
- package/admin/src/content-manager/components/BlocksEditor/hooks/useBlocksStore.js +451 -0
- package/admin/src/content-manager/components/BlocksEditor/hooks/useModifiersStore.js +102 -0
- package/admin/src/content-manager/components/BlocksEditor/index.js +126 -0
- package/admin/src/content-manager/components/InputUID/index.js +92 -109
- package/admin/src/content-manager/components/Inputs/index.js +3 -1
- package/admin/src/content-manager/components/Inputs/utils/getInputType.js +2 -0
- package/admin/src/content-manager/components/RelationInput/RelationInput.js +59 -43
- package/admin/src/content-manager/hooks/useRelation/useRelation.js +84 -86
- package/admin/src/content-manager/pages/ListView/index.js +1 -0
- package/admin/src/content-manager/utils/schema.js +22 -0
- package/admin/src/index.js +7 -1
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +1 -1
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +0 -1
- package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
- package/admin/src/translations/en.json +17 -0
- package/build/{1049.bf5230e6.chunk.js → 1049.acb0e730.chunk.js} +1 -1
- package/build/{1227.4f48119b.chunk.js → 1227.969e24e6.chunk.js} +1 -1
- package/build/{1386.8c070d59.chunk.js → 1386.db9a2795.chunk.js} +1 -1
- package/build/{2225.73c9a224.chunk.js → 2225.78fb9b89.chunk.js} +2 -2
- package/build/{2379.27c6ab54.chunk.js → 2379.906334f0.chunk.js} +1 -1
- package/build/{2395.120256d6.chunk.js → 2395.f6ac2863.chunk.js} +1 -1
- package/build/2614.3e088d3e.chunk.js +35 -0
- package/build/{2801.fdd4d8a2.chunk.js → 2801.2afb4757.chunk.js} +1 -1
- package/build/{4174.924ebd4c.chunk.js → 4174.3e13fb26.chunk.js} +1 -1
- package/build/4546.1203ac95.chunk.js +1 -0
- package/build/{502.d26ea06b.chunk.js → 502.9918bff7.chunk.js} +1 -1
- package/build/{6266.c652bdb1.chunk.js → 6266.e8990811.chunk.js} +5 -5
- package/build/6812.00ef5b0d.chunk.js +26 -0
- package/build/{7464.d3d1414f.chunk.js → 7464.0280cf59.chunk.js} +1 -1
- package/build/{7897.cf22d5fe.chunk.js → 7897.4a39de37.chunk.js} +1 -1
- package/build/{8276.b55f4600.chunk.js → 8276.951e198e.chunk.js} +2 -2
- package/build/9832.65ed5a44.chunk.js +181 -0
- package/build/{Admin-authenticatedApp.a687d9c6.chunk.js → Admin-authenticatedApp.c0c1c027.chunk.js} +2 -2
- package/build/{Admin_InternalErrorPage.18ba7fd6.chunk.js → Admin_InternalErrorPage.b3163562.chunk.js} +1 -1
- package/build/{Admin_homePage.86c8d4c9.chunk.js → Admin_homePage.6cb51f18.chunk.js} +1 -1
- package/build/{Admin_marketplace.e75c9cf4.chunk.js → Admin_marketplace.3eb5e132.chunk.js} +4 -4
- package/build/{Admin_pluginsPage.d1afbf28.chunk.js → Admin_pluginsPage.b9fa2947.chunk.js} +1 -1
- package/build/{Admin_profilePage.079903a3.chunk.js → Admin_profilePage.a4d41380.chunk.js} +2 -2
- package/build/{Admin_settingsPage.60a3e46e.chunk.js → Admin_settingsPage.6dc2af9f.chunk.js} +1 -1
- package/build/{Upload_ConfigureTheView.949535b8.chunk.js → Upload_ConfigureTheView.cc7ca628.chunk.js} +1 -1
- package/build/{admin-app.4654dc77.chunk.js → admin-app.98cdf43a.chunk.js} +5 -5
- package/build/{admin-edit-roles-page.6597d934.chunk.js → admin-edit-roles-page.418bb1c5.chunk.js} +3 -3
- package/build/{admin-edit-users.3014605e.chunk.js → admin-edit-users.9b42cc9e.chunk.js} +2 -2
- package/build/{admin-roles-list.ab6fcfb7.chunk.js → admin-roles-list.cf964578.chunk.js} +1 -1
- package/build/{admin-users.81bf5f4d.chunk.js → admin-users.8385dd73.chunk.js} +2 -2
- package/build/{api-tokens-create-page.f5a85725.chunk.js → api-tokens-create-page.2f25ddf6.chunk.js} +1 -1
- package/build/{api-tokens-edit-page.06a32cef.chunk.js → api-tokens-edit-page.45faac16.chunk.js} +1 -1
- package/build/{api-tokens-list-page.bb27d544.chunk.js → api-tokens-list-page.5baabf1a.chunk.js} +2 -2
- package/build/{audit-logs-settings-page.4eb6cdf8.chunk.js → audit-logs-settings-page.91489670.chunk.js} +1 -1
- package/build/content-manager.0d2b4a60.chunk.js +1199 -0
- package/build/{content-type-builder-list-view.b75fb938.chunk.js → content-type-builder-list-view.aa8a5d1a.chunk.js} +2 -2
- package/build/content-type-builder-translation-en-json.b9e5cacd.chunk.js +1 -0
- package/build/content-type-builder.885f2cad.chunk.js +146 -0
- package/build/{email-settings-page.07d417d5.chunk.js → email-settings-page.6bd7b280.chunk.js} +1 -1
- package/build/{en-json.e12fd5fc.chunk.js → en-json.a3973ff5.chunk.js} +1 -1
- package/build/{i18n-settings-page.7107e28a.chunk.js → i18n-settings-page.6c0157e7.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/main.105dcf23.js +2665 -0
- package/build/{review-workflows-settings-create-view.5d8806b2.chunk.js → review-workflows-settings-create-view.ae369a88.chunk.js} +1 -1
- package/build/{review-workflows-settings-edit-view.634903ed.chunk.js → review-workflows-settings-edit-view.9a61c69f.chunk.js} +1 -1
- package/build/{review-workflows-settings-list-view.d138c3b5.chunk.js → review-workflows-settings-list-view.067e0c35.chunk.js} +2 -2
- package/build/{runtime~main.9589b498.js → runtime~main.6c489074.js} +2 -2
- package/build/{sso-settings-page.caa35f7b.chunk.js → sso-settings-page.a29e6c38.chunk.js} +1 -1
- package/build/{transfer-tokens-create-page.6e7049ff.chunk.js → transfer-tokens-create-page.6e1b8cee.chunk.js} +1 -1
- package/build/{transfer-tokens-edit-page.449b4502.chunk.js → transfer-tokens-edit-page.10bb22e2.chunk.js} +1 -1
- package/build/{transfer-tokens-list-page.34caf827.chunk.js → transfer-tokens-list-page.0306652c.chunk.js} +2 -2
- package/build/{upload-settings.fede24b9.chunk.js → upload-settings.0af6edc5.chunk.js} +1 -1
- package/build/{upload.a96e2452.chunk.js → upload.19e14c8e.chunk.js} +1 -1
- package/build/{users-advanced-settings-page.ac7968e7.chunk.js → users-advanced-settings-page.ed69812f.chunk.js} +1 -1
- package/build/{users-email-settings-page.125a89e2.chunk.js → users-email-settings-page.131a00fb.chunk.js} +1 -1
- package/build/{users-providers-settings-page.ce34951c.chunk.js → users-providers-settings-page.b3dca41d.chunk.js} +1 -1
- package/build/{users-roles-settings-page.d415835a.chunk.js → users-roles-settings-page.afab5a0d.chunk.js} +4 -4
- package/build/{webhook-edit-page.7498417e.chunk.js → webhook-edit-page.4c037da4.chunk.js} +2 -2
- package/build/{webhook-list-page.1b085c7f.chunk.js → webhook-list-page.56c82f4a.chunk.js} +1 -1
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +1 -1
- package/ee/server/bootstrap.js +1 -1
- package/ee/server/content-types/workflow-stage/index.js +1 -1
- package/ee/server/controllers/admin.js +1 -1
- package/ee/server/controllers/user.js +1 -1
- package/ee/server/destroy.js +1 -1
- package/ee/server/register.js +1 -1
- package/ee/server/routes/utils.js +1 -1
- package/ee/server/services/audit-logs.js +1 -1
- package/ee/server/services/passport/sso.js +1 -1
- package/ee/server/services/passport.js +1 -1
- package/ee/server/services/seat-enforcement.js +1 -1
- package/ee/server/utils/sso-lock.js +1 -1
- package/ee/server/validation/role.js +1 -1
- package/ee/server/validation/user.js +1 -1
- package/package.json +20 -12
- package/server/controllers/admin.js +1 -1
- package/server/domain/permission/index.js +8 -1
- package/server/validation/permission.js +1 -1
- package/utils/plugins.js +7 -1
- package/build/4546.9710f321.chunk.js +0 -1
- package/build/6272.4017459a.chunk.js +0 -160
- package/build/6812.31979984.chunk.js +0 -26
- package/build/content-manager.9187db78.chunk.js +0 -1097
- package/build/content-type-builder-translation-en-json.ed29ff4d.chunk.js +0 -1
- package/build/content-type-builder.5ff93edd.chunk.js +0 -170
- package/build/main.da000219.js +0 -2860
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{34254:function(ve,G,s){s.r(G),s.d(G,{default:function(){return Tt}});var e=s(32735),a=s(
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{34254:function(ve,G,s){s.r(G),s.d(G,{default:function(){return Tt}});var e=s(32735),a=s(43806),T=s(53038),P=s(19108),k=s(95162),x=s(64092),O=s(91779),B=s(56932),E=s(84642),p=s(8365),b=s(10710),S=s(97037),K=s(2846),J=s(15367),w=s(40501),q=s(92802),M=s(67879),I=s(20108),ye=s(60216),y=s.n(ye);const _=(0,e.createContext)({}),ee=({children:t,value:n})=>e.createElement(_.Provider,{value:n},t),Q=()=>(0,e.useContext)(_);ee.propTypes={children:y().node.isRequired,value:y().object.isRequired};var N=s(48395),Re=s(9435),Ce=s(9379),Pe=s(79624),Se=s(23940),Te=s.n(Se);function Me(t){switch(t){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return Te()(t.replace("api::","").replace("plugin::",""))}}var be=Me,Ae=(t,n)=>{const r=Object.keys(n).sort().map(o=>({name:o,isOpen:!1}));return{...t,collapses:r}},L=s(77981),Le=s(98978),te=s.n(Le),se=s(31014),ne=s(99320),De=s(19594),Ze=s(33795),F=s.n(Ze),U=s(8471);const ae=(0,U.iv)`
|
|
2
2
|
background: ${t=>t.theme.colors.primary100};
|
|
3
3
|
svg {
|
|
4
4
|
opacity: 1;
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
flex: 1;
|
|
25
25
|
align-self: center;
|
|
26
26
|
border-top: 1px solid ${({theme:t})=>t.colors.neutral150};
|
|
27
|
-
`,
|
|
27
|
+
`,re=({subCategory:t})=>{const{formatMessage:n}=(0,M.Z)(),{onChange:r,onChangeSelectAll:o,onSelectedAction:c,selectedAction:l,modifiedData:d}=Q(),u=(0,e.useMemo)(()=>F()(d,t.name,{}),[d,t]),m=(0,e.useMemo)(()=>Object.values(u).every(i=>i.enabled===!0),[u]),g=(0,e.useMemo)(()=>Object.values(u).some(i=>i.enabled===!0)&&!m,[u,m]),h=(0,e.useCallback)(({target:{name:i}})=>{o({target:{name:i,value:!m}})},[m,o]),f=(0,e.useCallback)(i=>l===i,[l]);return e.createElement(L.x,null,e.createElement(E.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(L.x,{paddingRight:4},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},t.label)),e.createElement(Oe,null),e.createElement(L.x,{paddingLeft:4},e.createElement(se.X,{name:t.name,value:m,onValueChange:i=>h({target:{name:t.name,value:i}}),indeterminate:g},n({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(E.k,{paddingTop:6,paddingBottom:6},e.createElement(b.r,{gap:2,style:{flex:1}},t.actions.map(i=>{const v=`${i.name}.enabled`;return e.createElement(S.P,{col:6,key:i.name},e.createElement(xe,{isActive:f(i.name),padding:2,hasRadius:!0},e.createElement(se.X,{value:F()(d,v,!1),name:v,onValueChange:C=>r({target:{name:v,value:C}})},i.label),e.createElement("button",{type:"button",onClick:()=>c(i.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(ne.T,{as:"span"},n({id:"app.utils.show-bound-route",defaultMessage:"Show bound route for {route}"},{route:i.name})),e.createElement(De.Z,null))))}))))};re.propTypes={subCategory:y().object.isRequired};var Be=re;const oe=({name:t,permissions:n})=>{const r=(0,e.useMemo)(()=>te()(Object.values(n.controllers).reduce((o,c,l)=>{const d=`${t}.controllers.${Object.keys(n.controllers)[l]}`,u=te()(Object.keys(c).reduce((m,g)=>[...m,{...c[g],label:g,name:`${d}.${g}`}],[]),"label");return[...o,{actions:u,label:Object.keys(n.controllers)[l],name:d}]},[]),"label"),[t,n]);return e.createElement(L.x,{padding:6},r.map(o=>e.createElement(Be,{key:o.name,subCategory:o})))};oe.propTypes={name:y().string.isRequired,permissions:y().object.isRequired};var Ie=oe,le=s(97889);const Ne={collapses:[]},$e=(t,n)=>(0,le.ZP)(t,r=>{switch(n.type){case"TOGGLE_COLLAPSE":{r.collapses=t.collapses.map((o,c)=>c===n.index?{...o,isOpen:!o.isOpen}:{...o,isOpen:!1});break}default:return r}});var je=()=>{const{modifiedData:t}=Q(),{formatMessage:n}=(0,M.Z)(),[{collapses:r},o]=(0,e.useReducer)($e,Ne,l=>Ae(l,t)),c=l=>o({type:"TOGGLE_COLLAPSE",index:l});return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:1},r.map((l,d)=>e.createElement(Re.U,{expanded:l.isOpen,onToggle:()=>c(d),key:l.name,variant:d%2===0?"secondary":void 0},e.createElement(Ce.B,{title:be(l.name),description:n({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:l.name}),variant:d%2?"primary":"secondary"}),e.createElement(Pe.v,null,e.createElement(Ie,{permissions:t[l.name],name:l.name})))))},ke=s(86834),Ue=s.n(ke),We=s(86205),Ge=s.n(We),Fe=s(37213),Ve=s.n(Fe),He=s(15738),Qe=s.n(He),Ye=t=>{switch(t){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Xe=(0,U.ZP)(L.x)`
|
|
28
28
|
margin: -1px;
|
|
29
29
|
border-radius: ${({theme:t})=>t.spaces[1]} 0 0 ${({theme:t})=>t.spaces[1]};
|
|
30
|
-
`;function Y({route:t}){const{formatMessage:n}=(0,b.Z)(),{method:o,handler:r,path:c}=t,l=c?Qe()(c.split("/")):[],[d="",u=""]=r?r.split("."):[],m=Ye(t.method);return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},n({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,d),e.createElement(p.Z,{variant:"delta",textColor:"primary600"},".",u)),e.createElement(E.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(Xe,{background:m.background,borderColor:m.border,padding:2},e.createElement(p.Z,{fontWeight:"bold",textColor:m.text},o)),e.createElement(L.x,{paddingLeft:2,paddingRight:2},Ve()(l,g=>e.createElement(p.Z,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}Y.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},Y.propTypes={route:y().shape({handler:y().string,method:y().string,path:y().string})};var ze=Y,Ke=()=>{const{formatMessage:t}=(0,b.Z)(),{selectedAction:n,routes:o}=Q(),r=Ge()(n.split("."),"controllers"),c=F()(o,r[0]),l=r.slice(1).join("."),d=Ue()(c)?[]:c.filter(u=>u.handler.endsWith(l));return e.createElement(S.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},n?e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},d.map((u,m)=>e.createElement(ze,{key:m,route:u}))):e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},t({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},t({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Je=(t,n,o)=>({...t,initialData:n,modifiedData:n,routes:o}),we=s(3040),ie=s.n(we),qe=s(88708),_e=s.n(qe);const et={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var tt=(t,n)=>(0,le.ZP)(t,o=>{switch(n.type){case"ON_CHANGE":{const r=n.keys.length,c=n.keys[r-1]==="enabled";if(n.value&&c){const l=_e()(n.keys,r-1).join(".");o.selectedAction=l}ie()(o,["modifiedData",...n.keys],n.value);break}case"ON_CHANGE_SELECT_ALL":{const r=["modifiedData",...n.keys],c=F()(t,r,{}),l=Object.keys(c).reduce((d,u)=>(d[u]={...c[u],enabled:n.value},d),{});ie()(o,r,l);break}case"ON_RESET":{o.modifiedData=t.initialData;break}case"ON_SUBMIT_SUCCEEDED":{o.initialData=t.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:r}=n;o.selectedAction=r===t.selectedAction?"":r;break}default:return o}});const ce=(0,e.forwardRef)(({permissions:t,routes:n},o)=>{const{formatMessage:r}=(0,b.Z)(),[c,l]=(0,e.useReducer)(tt,et,h=>Je(h,t,n));(0,e.useImperativeHandle)(o,()=>({getPermissions(){return{permissions:c.modifiedData}},resetForm(){l({type:"ON_RESET"})},setFormAfterSubmit(){l({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...c,onChange:({target:{name:h,value:f}})=>l({type:"ON_CHANGE",keys:h.split("."),value:f==="empty__string_value"?"":f}),onChangeSelectAll:({target:{name:h,value:f}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:h.split("."),value:f}),onSelectedAction:h=>l({type:"SELECT_ACTION",actionToSelect:h})};return e.createElement(ee,{value:g},e.createElement(A.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(S.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h2"},r({id:(0,$.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},r({id:(0,$.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(je,null))),e.createElement(Ke,null)))});ce.propTypes={permissions:y().object.isRequired,routes:y().object.isRequired};var de=(0,e.memo)(ce),X=s(24346);const me=X.Ry().shape({name:X.Z_().required(a.I0.required),description:X.Z_().required(a.I0.required)});var W=s(55733);const ue=()=>{const t=(0,a.lm)(),{get:n}=(0,a.kY)(),{formatAPIError:o}=(0,a.So)(W.OB),[{data:r,isLoading:c,error:l,refetch:d},{data:u,isLoading:m,error:g,refetch:h}]=(0,I.useQueries)([{queryKey:["users-permissions","permissions"],async queryFn(){const{data:{permissions:v}}=await n("/users-permissions/permissions");return v}},{queryKey:["users-permissions","routes"],async queryFn(){const{data:{routes:v}}=await n("/users-permissions/routes");return v}}]),f=async()=>{await Promise.all([d(),h()])};(0,e.useEffect)(()=>{l&&t({type:"warning",message:o(l)})},[t,l,o]),(0,e.useEffect)(()=>{g&&t({type:"warning",message:o(g)})},[t,g,o]);const i=c||m;return{permissions:r?(0,W.YX)(r):{},routes:u??{},getData:f,isLoading:i}},st=()=>{const{formatMessage:t}=(0,b.Z)(),n=(0,a.lm)(),{goBack:o}=(0,T.k6)(),{lockApp:r,unlockApp:c}=(0,a.o1)(),{isLoading:l,permissions:d,routes:u}=ue(),{trackUsage:m}=(0,a.rS)(),g=e.useRef(),{post:h}=(0,a.kY)(),f=(0,I.useMutation)(v=>h("/users-permissions/roles",v),{onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})},onSuccess(){m("didCreateRole"),n({type:"success",message:{id:(0,$.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),o()}}),i=async v=>{r();const C=g.current.getPermissions();await f.mutate({...v,...C,users:[]}),c()};return e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:i,validationSchema:me},({handleSubmit:v,values:C,handleChange:N,errors:R})=>e.createElement(a.l0,{noValidate:!0,onSubmit:v},e.createElement(x.T,{primaryAction:!l&&e.createElement(O.z,{type:"submit",loading:f.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:t({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch"},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,$.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(A.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:C.name||"",onChange:N,label:t({id:"global.name",defaultMessage:"Name"}),error:R?.name?t({id:R.name}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:C.description||"",onChange:N,label:t({id:"global.description",defaultMessage:"Description"}),error:R?.description?t({id:R.description}):!1,required:!0})))),!l&&e.createElement(de,{ref:g,permissions:d,routes:u}))))))},nt=()=>e.createElement(a.O4,{permissions:P._.createRole},e.createElement(st,null));var at=s(70788);const ot=()=>{const{formatMessage:t}=(0,b.Z)(),n=(0,a.lm)(),{lockApp:o,unlockApp:r}=(0,a.o1)(),{params:{id:c}}=(0,T.$B)("/settings/users-permissions/roles/:id"),{get:l}=(0,a.kY)(),{isLoading:d,routes:u}=ue(),{data:m,isLoading:g,refetch:h}=(0,I.useQuery)(["users-permissions","role",c],async()=>{const{data:{role:R}}=await l(`/users-permissions/roles/${c}`);return R}),f=e.useRef(),{put:i}=(0,a.kY)(),{formatAPIError:v}=(0,a.So)(),C=(0,I.useMutation)(R=>i(`/users-permissions/roles/${c}`,R),{onError(R){n({type:"warning",message:v(R)})},async onSuccess(){n({type:"success",message:{id:(0,$.Z)("Settings.roles.created"),defaultMessage:"Role edited"}}),await h()}}),N=async R=>{o();const D=f.current.getPermissions();await C.mutate({...R,...D,users:[]}),r()};return g?e.createElement(a.dO,null):e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:m.name,description:m.description},onSubmit:N,validationSchema:me},({handleSubmit:R,values:D,handleChange:V,errors:j})=>e.createElement(a.l0,{noValidate:!0,onSubmit:R},e.createElement(x.T,{primaryAction:!d&&e.createElement(O.z,{disabled:m.code==="strapi-super-admin",type:"submit",loading:C.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:m.name,subtitle:m.description,navigationAction:e.createElement(a.rU,{startIcon:e.createElement(at.Z,null),to:"/settings/users-permissions/roles"},t({id:"global.back",defaultMessage:"Back"}))}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,$.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(A.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:D.name||"",onChange:V,label:t({id:"global.name",defaultMessage:"Name"}),error:j?.name?t({id:j.name}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:D.description||"",onChange:V,label:t({id:"global.description",defaultMessage:"Description"}),error:j?.description?t({id:j.description}):!1,required:!0})))),!d&&e.createElement(de,{ref:f,permissions:m.permissions,routes:u}))))))},rt=()=>e.createElement(a.O4,{permissions:P._.updateRole},e.createElement(ot,null));var lt=s(36150),it=s(99226),ct=s(95181),dt=s(23699),mt=s(41013),ge=s(45037),M=s(27947),ut=s(82064),gt=s(84458),pt=s(1690),ht=s(14763),Et=s(63318),ft=s(94997);const vt=(0,U.ZP)(gt.r)`
|
|
30
|
+
`;function Y({route:t}){const{formatMessage:n}=(0,M.Z)(),{method:r,handler:o,path:c}=t,l=c?Qe()(c.split("/")):[],[d="",u=""]=o?o.split("."):[],m=Ye(t.method);return e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},n({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,d),e.createElement(p.Z,{variant:"delta",textColor:"primary600"},".",u)),e.createElement(E.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(Xe,{background:m.background,borderColor:m.border,padding:2},e.createElement(p.Z,{fontWeight:"bold",textColor:m.text},r)),e.createElement(L.x,{paddingLeft:2,paddingRight:2},Ve()(l,g=>e.createElement(p.Z,{key:g,textColor:g.includes(":")?"neutral600":"neutral900"},"/",g)))))}Y.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},Y.propTypes={route:y().shape({handler:y().string,method:y().string,path:y().string})};var ze=Y,Ke=()=>{const{formatMessage:t}=(0,M.Z)(),{selectedAction:n,routes:r}=Q(),o=Ge()(n.split("."),"controllers"),c=F()(r,o[0]),l=o.slice(1).join("."),d=Ue()(c)?[]:c.filter(u=>u.handler.endsWith(l));return e.createElement(S.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},n?e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},d.map((u,m)=>e.createElement(ze,{key:m,route:u}))):e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h3"},t({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},t({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Je=(t,n,r)=>({...t,initialData:n,modifiedData:n,routes:r}),we=s(3040),ie=s.n(we),qe=s(88708),_e=s.n(qe);const et={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var tt=(t,n)=>(0,le.ZP)(t,r=>{switch(n.type){case"ON_CHANGE":{const o=n.keys.length,c=n.keys[o-1]==="enabled";if(n.value&&c){const l=_e()(n.keys,o-1).join(".");r.selectedAction=l}ie()(r,["modifiedData",...n.keys],n.value);break}case"ON_CHANGE_SELECT_ALL":{const o=["modifiedData",...n.keys],c=F()(t,o,{}),l=Object.keys(c).reduce((d,u)=>(d[u]={...c[u],enabled:n.value},d),{});ie()(r,o,l);break}case"ON_RESET":{r.modifiedData=t.initialData;break}case"ON_SUBMIT_SUCCEEDED":{r.initialData=t.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:o}=n;r.selectedAction=o===t.selectedAction?"":o;break}default:return r}});const ce=(0,e.forwardRef)(({permissions:t,routes:n},r)=>{const{formatMessage:o}=(0,M.Z)(),[c,l]=(0,e.useReducer)(tt,et,h=>Je(h,t,n));(0,e.useImperativeHandle)(r,()=>({getPermissions(){return{permissions:c.modifiedData}},resetForm(){l({type:"ON_RESET"})},setFormAfterSubmit(){l({type:"ON_SUBMIT_SUCCEEDED"})}}));const g={...c,onChange:({target:{name:h,value:f}})=>l({type:"ON_CHANGE",keys:h.split("."),value:f==="empty__string_value"?"":f}),onChangeSelectAll:({target:{name:h,value:f}})=>l({type:"ON_CHANGE_SELECT_ALL",keys:h.split("."),value:f}),onSelectedAction:h=>l({type:"SELECT_ACTION",actionToSelect:h})};return e.createElement(ee,{value:g},e.createElement(b.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(S.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(p.Z,{variant:"delta",as:"h2"},o({id:(0,N.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(p.Z,{as:"p",textColor:"neutral600"},o({id:(0,N.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement(je,null))),e.createElement(Ke,null)))});ce.propTypes={permissions:y().object.isRequired,routes:y().object.isRequired};var de=(0,e.memo)(ce),X=s(24346);const me=X.Ry().shape({name:X.Z_().required(a.I0.required),description:X.Z_().required(a.I0.required)});var W=s(55733);const ue=()=>{const t=(0,a.lm)(),{get:n}=(0,a.kY)(),{formatAPIError:r}=(0,a.So)(W.OB),[{data:o,isLoading:c,error:l,refetch:d},{data:u,isLoading:m,error:g,refetch:h}]=(0,I.useQueries)([{queryKey:["users-permissions","permissions"],async queryFn(){const{data:{permissions:v}}=await n("/users-permissions/permissions");return v}},{queryKey:["users-permissions","routes"],async queryFn(){const{data:{routes:v}}=await n("/users-permissions/routes");return v}}]),f=async()=>{await Promise.all([d(),h()])};(0,e.useEffect)(()=>{l&&t({type:"warning",message:r(l)})},[t,l,r]),(0,e.useEffect)(()=>{g&&t({type:"warning",message:r(g)})},[t,g,r]);const i=c||m;return{permissions:o?(0,W.YX)(o):{},routes:u??{},getData:f,isLoading:i}},st=()=>{const{formatMessage:t}=(0,M.Z)(),n=(0,a.lm)(),{goBack:r}=(0,T.k6)(),{lockApp:o,unlockApp:c}=(0,a.o1)(),{isLoading:l,permissions:d,routes:u}=ue(),{trackUsage:m}=(0,a.rS)(),g=e.useRef(),{post:h}=(0,a.kY)(),f=(0,I.useMutation)(v=>h("/users-permissions/roles",v),{onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})},onSuccess(){m("didCreateRole"),n({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),r()}}),i=async v=>{o();const C=g.current.getPermissions();await f.mutate({...v,...C,users:[]}),c()};return e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:i,validationSchema:me},({handleSubmit:v,values:C,handleChange:$,errors:R})=>e.createElement(a.l0,{noValidate:!0,onSubmit:v},e.createElement(x.T,{primaryAction:!l&&e.createElement(O.z,{type:"submit",loading:f.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:t({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch"},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(b.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:C.name||"",onChange:$,label:t({id:"global.name",defaultMessage:"Name"}),error:R?.name?t({id:R.name,defaultMessage:"Name is required"}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:C.description||"",onChange:$,label:t({id:"global.description",defaultMessage:"Description"}),error:R?.description?t({id:R.description,defaultMessage:"Description is required"}):!1,required:!0})))),!l&&e.createElement(de,{ref:g,permissions:d,routes:u}))))))},nt=()=>e.createElement(a.O4,{permissions:P._.createRole},e.createElement(st,null));var at=s(70788);const rt=()=>{const{formatMessage:t}=(0,M.Z)(),n=(0,a.lm)(),{lockApp:r,unlockApp:o}=(0,a.o1)(),{params:{id:c}}=(0,T.$B)("/settings/users-permissions/roles/:id"),{get:l}=(0,a.kY)(),{isLoading:d,routes:u}=ue(),{data:m,isLoading:g,refetch:h}=(0,I.useQuery)(["users-permissions","role",c],async()=>{const{data:{role:R}}=await l(`/users-permissions/roles/${c}`);return R}),f=e.useRef(),{put:i}=(0,a.kY)(),{formatAPIError:v}=(0,a.So)(),C=(0,I.useMutation)(R=>i(`/users-permissions/roles/${c}`,R),{onError(R){n({type:"warning",message:v(R)})},async onSuccess(){n({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role edited"}}),await h()}}),$=async R=>{r();const D=f.current.getPermissions();await C.mutate({...R,...D,users:[]}),o()};return g?e.createElement(a.dO,null):e.createElement(k.o,null,e.createElement(a.SL,{name:"Roles"}),e.createElement(q.J9,{enableReinitialize:!0,initialValues:{name:m.name,description:m.description},onSubmit:$,validationSchema:me},({handleSubmit:R,values:D,handleChange:V,errors:j})=>e.createElement(a.l0,{noValidate:!0,onSubmit:R},e.createElement(x.T,{primaryAction:!d&&e.createElement(O.z,{disabled:m.code==="strapi-super-admin",type:"submit",loading:C.isLoading,startIcon:e.createElement(w.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:m.name,subtitle:m.description,navigationAction:e.createElement(a.rU,{startIcon:e.createElement(at.Z,null),to:"/settings/users-permissions/roles"},t({id:"global.back",defaultMessage:"Back"}))}),e.createElement(B.D,null,e.createElement(E.k,{background:"neutral0",direction:"column",alignItems:"stretch",gap:7,hasRadius:!0,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,shadow:"filterShadow"},e.createElement(E.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(p.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(b.r,{gap:4},e.createElement(S.P,{col:6},e.createElement(K.o,{name:"name",value:D.name||"",onChange:V,label:t({id:"global.name",defaultMessage:"Name"}),error:j?.name?t({id:j.name,defaultMessage:"Name is required"}):!1,required:!0})),e.createElement(S.P,{col:6},e.createElement(J.g,{id:"description",value:D.description||"",onChange:V,label:t({id:"global.description",defaultMessage:"Description"}),error:j?.description?t({id:j.description,defaultMessage:"Description is required"}):!1,required:!0})))),!d&&e.createElement(de,{ref:f,permissions:m.permissions,routes:u}))))))},ot=()=>e.createElement(a.O4,{permissions:P._.updateRole},e.createElement(rt,null));var lt=s(36150),it=s(99226),ct=s(95181),dt=s(23699),mt=s(41013),ge=s(45037),A=s(27947),ut=s(82064),gt=s(84458),pt=s(1690),ht=s(14763),Et=s(63318),ft=s(94997);const vt=(0,U.ZP)(gt.r)`
|
|
31
31
|
align-items: center;
|
|
32
32
|
height: ${(0,a.Q1)(32)};
|
|
33
33
|
display: flex;
|
|
@@ -52,4 +52,4 @@
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
`,z=({sortedRoles:t,canDelete:n,permissions:
|
|
55
|
+
`,z=({sortedRoles:t,canDelete:n,permissions:r,setRoleToDelete:o,onDelete:c})=>{const{formatMessage:l}=(0,M.Z)(),{push:d}=(0,T.k6)(),[u,m]=c,g=i=>n&&!["public","authenticated"].includes(i.type),h=i=>{o(i),m(!u)},f=i=>{d(`/settings/users-permissions/roles/${i}`)};return e.createElement(pt.p,null,t?.map(i=>e.createElement(ge.Tr,{key:i.name,...(0,a.X7)({fn:()=>f(i.id)})},e.createElement(A.Td,{width:"20%"},e.createElement(p.Z,null,i.name)),e.createElement(A.Td,{width:"50%"},e.createElement(p.Z,null,i.description)),e.createElement(A.Td,{width:"30%"},e.createElement(p.Z,null,l({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:i.nb_users}))),e.createElement(A.Td,null,e.createElement(E.k,{justifyContent:"end",...a.UW},e.createElement(a.jW,{permissions:r.updateRole},e.createElement(vt,{to:`/settings/users-permissions/roles/${i.id}`,"aria-label":l({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${i.name}`})},e.createElement(Et.Z,null))),g(i)&&e.createElement(a.jW,{permissions:r.deleteRole},e.createElement(ht.h,{onClick:()=>h(i.id),noBorder:!0,icon:e.createElement(ft.Z,null),label:l({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${i.name}`})})))))))};var yt=z;z.defaultProps={canDelete:!1},z.propTypes={onDelete:y().array.isRequired,permissions:y().object.isRequired,setRoleToDelete:y().func.isRequired,sortedRoles:y().array.isRequired,canDelete:y().bool};const Rt=async(t,n)=>{try{const{get:r}=(0,a.tg)(),{data:o}=await r("/users-permissions/roles");return n("The roles have loaded successfully"),o}catch(r){throw t({type:"warning",message:{id:"notification.error"}}),new Error(r)}},Ct=async(t,n)=>{try{const{del:r}=(0,a.tg)();await r(`/users-permissions/roles/${t}`)}catch{n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}},Pt=()=>{const{trackUsage:t}=(0,a.rS)(),{formatMessage:n,locale:r}=(0,M.Z)(),o=(0,a.lm)(),{notifyStatus:c}=(0,lt.G)(),[{query:l}]=(0,a.Kx)(),d=l?._q||"",[u,m]=(0,e.useState)(!1),[g,h]=(0,e.useState)(!1),[f,i]=(0,e.useState)();(0,a.go)();const{isLoading:v,allowedActions:{canRead:C,canDelete:$}}=(0,a.ss)({create:P._.createRole,read:P._.readRoles,update:P._.updateRole,delete:P._.deleteRole}),{isLoading:R,data:{roles:D},isFetching:V,refetch:j}=(0,I.useQuery)("get-roles",()=>Rt(o,c),{initialData:{},enabled:C}),{includes:pe}=(0,a.L0)(r,{sensitivity:"base"}),he=(0,a.Xe)(r,{sensitivity:"base"}),Ee=R||V,Mt=()=>{m(!u)},bt={roles:{id:(0,W.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,W.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},At=n({id:"global.roles",defaultMessage:"Roles"}),Lt=(0,I.useMutation)(Z=>Ct(Z,o),{async onSuccess(){await j()}}),Dt=async()=>{h(!0),await Lt.mutateAsync(f),m(!u),h(!1)},H=(D||[]).filter(Z=>pe(Z.name,d)||pe(Z.description,d)).sort((Z,fe)=>he.compare(Z.name,fe.name)||he.compare(Z.description,fe.description)),Zt=d&&!H.length?"search":"roles",xt=4,Ot=(D?.length||0)+1;return e.createElement(it.A,null,e.createElement(a.SL,{name:At}),e.createElement(k.o,{"aria-busy":Ee},e.createElement(x.T,{title:n({id:"global.roles",defaultMessage:"Roles"}),subtitle:n({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(a.jW,{permissions:P._.createRole},e.createElement(a.Qj,{to:"/settings/users-permissions/roles/new",onClick:()=>t("willCreateRole"),startIcon:e.createElement(ut.Z,null),size:"S"},n({id:(0,W.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(ct.Z,{startActions:e.createElement(a.m,{label:n({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(B.D,null,!C&&e.createElement(a.ZF,null),(Ee||v)&&e.createElement(a.dO,null),C&&H&&H?.length?e.createElement(dt.i,{colCount:xt,rowCount:Ot},e.createElement(mt.h,null,e.createElement(ge.Tr,null,e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"Description"}))),e.createElement(A.Th,null,e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.users",defaultMessage:"Users"}))),e.createElement(A.Th,null,e.createElement(ne.T,null,n({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(yt,{sortedRoles:H,canDelete:$,permissions:P._,setRoleToDelete:i,onDelete:[u,m]})):e.createElement(a.x7,{content:bt[Zt]})),e.createElement(a.QH,{isConfirmButtonLoading:g,onConfirm:Dt,onToggleDialog:Mt,isOpen:u})))},St=()=>e.createElement(a.O4,{permissions:P._.accessRoles},e.createElement(Pt,null));var Tt=()=>e.createElement(a.O4,{permissions:P._.accessRoles},e.createElement(T.rs,null,e.createElement(T.AW,{path:"/settings/users-permissions/roles/new",component:nt,exact:!0}),e.createElement(T.AW,{path:"/settings/users-permissions/roles/:id",component:ot,exact:!0}),e.createElement(T.AW,{path:"/settings/users-permissions/roles",component:St,exact:!0}),e.createElement(T.AW,{path:"",component:a.Hn})))},55733:function(ve,G,s){s.d(G,{YX:function(){return P},OB:function(){return k.Z}});var e=s(86834),a=s.n(e),P=x=>Object.keys(x).reduce((O,B)=>{const E=x[B].controllers,p=Object.keys(E).reduce((b,S)=>(a()(E[S])||(b[S]=E[S]),b),{});return a()(p)||(O[B]={controllers:p}),O},{}),k=s(48395)}}]);
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
*/
|
|
24
24
|
padding-inline-start: ${({theme:s})=>s.spaces[2]};
|
|
25
25
|
}
|
|
26
|
-
`,oe=s=>{const r=[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}];return s&&(r.push({id:"app.utils.publish",defaultMessage:"Publish"}),r.push({id:"app.utils.unpublish",defaultMessage:"Unpublish"})),r},Y=s=>{const r=["entry.create","entry.update","entry.delete"];return s&&r.push("entry.publish","entry.unpublish"),{entry:r,media:["media.create","media.update","media.delete"]}},J=e.createContext(),le=({children:s})=>{const{formatMessage:r}=(0,_.Z)(),{collectionTypes:d,isLoading:M}=(0,de.G)(),C=e.useMemo(()=>d.some(L=>L.options.draftAndPublish===!0),[d]),v=r({id:"Settings.webhooks.form.events",defaultMessage:"Events"});return e.createElement(J.Provider,{value:{isDraftAndPublish:C}},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(b.Q,{"aria-hidden":!0},v),M&&e.createElement(W.a,null,r({id:"Settings.webhooks.events.isLoading",defaultMessage:"Events loading"})),e.createElement(B,{"aria-label":v},s)))};le.propTypes={children:f().oneOfType([f().arrayOf(f().node),f().node]).isRequired};const q=({getHeaders:s=oe})=>{const{isDraftAndPublish:r}=e.useContext(J),{formatMessage:d}=(0,_.Z)(),M=s(r);return e.createElement(K.S,null,e.createElement(U.Z,null,e.createElement(i.g,null,e.createElement(se.T,null,d({id:"Settings.webhooks.event.select",defaultMessage:"Select event"}))),M.map(C=>["app.utils.publish","app.utils.unpublish"].includes(C.id)?e.createElement(i.g,{key:C.id,title:d({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))):e.createElement(i.g,{key:C.id},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))))))};q.defaultProps={getHeaders:oe},q.propTypes={getHeaders:f().func};const ee=({providedEvents:s})=>{const{isDraftAndPublish:r}=e.useContext(J),d=s||Y(r),{values:M,handleChange:C}=(0,Q.u6)(),v="events",L=M.events,w=[],te=u(L),A=({target:{name:E,value:m}})=>{let y=new Set(L);m?y.add(E):y.delete(E),C({target:{name:v,value:Array.from(y)}})},$=({target:{name:E,value:m}})=>{let y=new Set(L);m?d[E].forEach(N=>{w.includes(N)||y.add(N)}):d[E].forEach(N=>y.delete(N)),C({target:{name:v,value:Array.from(y)}})};return e.createElement(j.X,null,Object.entries(d).map(([E,m])=>e.createElement(F,{disabledEvents:w,key:E,name:E,events:m,inputValue:te[E],handleSelect:A,handleSelectAll:$})))};ee.defaultProps={providedEvents:null},ee.propTypes={providedEvents:f().object};const ce=s=>s.replace(/-/g," ").split(" ").map(r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join(" "),F=({disabledEvents:s,name:r,events:d,inputValue:M,handleSelect:C,handleSelectAll:v})=>{const{formatMessage:L}=(0,_.Z)(),w=d.filter(m=>!s.includes(m)),te=M.length>0,A=M.length===w.length,$=({target:{name:m}})=>{v({target:{name:m,value:!A}})},E=5;return e.createElement(U.Z,null,e.createElement(i.f,null,e.createElement(X.X,{indeterminate:te&&!A,"aria-label":L({id:"global.select-all-entries",defaultMessage:"Select all entries"}),name:r,onChange:$,value:A},ce(r))),d.map(m=>e.createElement(i.f,{key:m},e.createElement(S.C,{disabled:s.includes(m),"aria-label":m,name:m,value:M.includes(m),onValueChange:y=>C({target:{name:m,value:y}})}))),d.length<E&&e.createElement(i.f,{colSpan:E-d.length}))};F.defaultProps={disabledEvents:[],events:[],inputValue:[],handleSelect(){},handleSelectAll(){}},F.propTypes={disabledEvents:f().array,events:f().array,inputValue:f().array,handleSelect:f().func,handleSelectAll:f().func,name:f().string.isRequired},P.Z={Root:le,Headers:q,Body:ee,EventRow:F}},77476:function(G,P,t){t.d(P,{Z:function(){return fe}});var e=t(32735),T=t(95162),g=t(
|
|
26
|
+
`,oe=s=>{const r=[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}];return s&&(r.push({id:"app.utils.publish",defaultMessage:"Publish"}),r.push({id:"app.utils.unpublish",defaultMessage:"Unpublish"})),r},Y=s=>{const r=["entry.create","entry.update","entry.delete"];return s&&r.push("entry.publish","entry.unpublish"),{entry:r,media:["media.create","media.update","media.delete"]}},J=e.createContext(),le=({children:s})=>{const{formatMessage:r}=(0,_.Z)(),{collectionTypes:d,isLoading:M}=(0,de.G)(),C=e.useMemo(()=>d.some(L=>L.options.draftAndPublish===!0),[d]),v=r({id:"Settings.webhooks.form.events",defaultMessage:"Events"});return e.createElement(J.Provider,{value:{isDraftAndPublish:C}},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(b.Q,{"aria-hidden":!0},v),M&&e.createElement(W.a,null,r({id:"Settings.webhooks.events.isLoading",defaultMessage:"Events loading"})),e.createElement(B,{"aria-label":v},s)))};le.propTypes={children:f().oneOfType([f().arrayOf(f().node),f().node]).isRequired};const q=({getHeaders:s=oe})=>{const{isDraftAndPublish:r}=e.useContext(J),{formatMessage:d}=(0,_.Z)(),M=s(r);return e.createElement(K.S,null,e.createElement(U.Z,null,e.createElement(i.g,null,e.createElement(se.T,null,d({id:"Settings.webhooks.event.select",defaultMessage:"Select event"}))),M.map(C=>["app.utils.publish","app.utils.unpublish"].includes(C.id)?e.createElement(i.g,{key:C.id,title:d({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))):e.createElement(i.g,{key:C.id},e.createElement(re.Z,{variant:"sigma",textColor:"neutral600"},d(C))))))};q.defaultProps={getHeaders:oe},q.propTypes={getHeaders:f().func};const ee=({providedEvents:s})=>{const{isDraftAndPublish:r}=e.useContext(J),d=s||Y(r),{values:M,handleChange:C}=(0,Q.u6)(),v="events",L=M.events,w=[],te=u(L),A=({target:{name:E,value:m}})=>{let y=new Set(L);m?y.add(E):y.delete(E),C({target:{name:v,value:Array.from(y)}})},$=({target:{name:E,value:m}})=>{let y=new Set(L);m?d[E].forEach(N=>{w.includes(N)||y.add(N)}):d[E].forEach(N=>y.delete(N)),C({target:{name:v,value:Array.from(y)}})};return e.createElement(j.X,null,Object.entries(d).map(([E,m])=>e.createElement(F,{disabledEvents:w,key:E,name:E,events:m,inputValue:te[E],handleSelect:A,handleSelectAll:$})))};ee.defaultProps={providedEvents:null},ee.propTypes={providedEvents:f().object};const ce=s=>s.replace(/-/g," ").split(" ").map(r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase()).join(" "),F=({disabledEvents:s,name:r,events:d,inputValue:M,handleSelect:C,handleSelectAll:v})=>{const{formatMessage:L}=(0,_.Z)(),w=d.filter(m=>!s.includes(m)),te=M.length>0,A=M.length===w.length,$=({target:{name:m}})=>{v({target:{name:m,value:!A}})},E=5;return e.createElement(U.Z,null,e.createElement(i.f,null,e.createElement(X.X,{indeterminate:te&&!A,"aria-label":L({id:"global.select-all-entries",defaultMessage:"Select all entries"}),name:r,onChange:$,value:A},ce(r))),d.map(m=>e.createElement(i.f,{key:m},e.createElement(S.C,{disabled:s.includes(m),"aria-label":m,name:m,value:M.includes(m),onValueChange:y=>C({target:{name:m,value:y}})}))),d.length<E&&e.createElement(i.f,{colSpan:E-d.length}))};F.defaultProps={disabledEvents:[],events:[],inputValue:[],handleSelect(){},handleSelectAll(){}},F.propTypes={disabledEvents:f().array,events:f().array,inputValue:f().array,handleSelect:f().func,handleSelectAll:f().func,name:f().string.isRequired},P.Z={Root:le,Headers:q,Body:ee,EventRow:F}},77476:function(G,P,t){t.d(P,{Z:function(){return fe}});var e=t(32735),T=t(95162),g=t(43806),b=t(20108),W=t(53038),K=t(90769),U=t(64092),i=t(84642),se=t(91779),re=t(56932),j=t(77981),X=t(10710),S=t(97037),Q=t(2846),ie=t(58518),f=t(40501),_=t(70788),D=t(92802),de=t(60216),u=t.n(de),B=t(67879),oe=t(9592),Y=t(36795);function J(){return e.createElement(Y.Z.Root,null,e.createElement(Y.Z.Headers,null),e.createElement(Y.Z.Body,null))}var le=t(99391),q=t(43743),ee=t(82064),ce=t(70843),F=t(8241);const s=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"],r=({name:n,onChange:a,value:o,...c})=>{const{values:{headers:h}}=(0,D.u6)(),[O,l]=(0,e.useState)(s);(0,e.useEffect)(()=>{l(s.filter(p=>!h?.some(x=>x.key!==o&&x.key===p)))},[h,o]);const H=p=>{a({target:{name:n,value:p}})},z=p=>{l(x=>[...x,p]),H(p)};return e.createElement(ce.XU,{...c,onClear:()=>H(""),onChange:H,onCreateOption:z,placeholder:"",value:o},O.map(p=>e.createElement(F.O,{value:p,key:p},p)))};r.defaultProps={value:void 0},r.propTypes={name:u().string.isRequired,onChange:u().func.isRequired,value:u().string};var d=r,C=()=>{const{formatMessage:n}=(0,B.Z)(),{values:a,errors:o}=(0,D.u6)();return e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(le.Q,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(j.x,{padding:8,background:"neutral100",hasRadius:!0},e.createElement(D.F2,{validateOnChange:!1,name:"headers",render:({push:c,remove:h})=>e.createElement(X.r,{gap:4},a.headers.map((O,l)=>e.createElement(e.Fragment,{key:`${l}.${O.key}`},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:d,name:`headers.${l}.key`,"aria-label":`row ${l+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:o.headers?.[l]?.key&&o.headers[l].key})),e.createElement(S.P,{col:6},e.createElement(i.k,{alignItems:"flex-end"},e.createElement(j.x,{style:{flex:1}},e.createElement(D.gN,{as:Q.o,name:`headers.${l}.value`,"aria-label":`row ${l+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),error:o.headers?.[l]?.value&&o.headers[l].value})),e.createElement(i.k,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:o.headers?.[l]?.value?0:5},e.createElement(g.fG,{disabled:a.headers.length===1,onClick:()=>h(l),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:l+1})})))))),e.createElement(S.P,{col:12},e.createElement(q.A,{type:"button",onClick:()=>{c({key:"",value:""})},startIcon:e.createElement(ee.Z,null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))},v=t(8365),L=t(75760),w=t(98610),te=t(8471);const A=te.ZP.svg(({theme:n,color:a})=>`
|
|
27
27
|
width: ${12/16}rem;
|
|
28
28
|
height: ${12/16}rem;
|
|
29
29
|
|
|
30
30
|
path {
|
|
31
31
|
fill: ${n.colors[a]};
|
|
32
32
|
}
|
|
33
|
-
`),$=({isPending:n,statusCode:a})=>{const{formatMessage:o}=(0,B.Z)();return n?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:L.Z}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):a>=200&&a<300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:f.Z,color:"success700"}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):a>=300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:w.Z,color:"danger700"}),e.createElement(v.Z,null,o({id:"Settings.error",defaultMessage:"error"})," ",a)):null};$.propTypes={isPending:u().bool.isRequired,statusCode:u().number},$.defaultProps={statusCode:void 0};const E=({statusCode:n,message:a})=>{const{formatMessage:o}=(0,B.Z)();return n>=200&&n<300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(v.Z,{textColor:"neutral600",ellipsis:!0},o({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(i.k,{maxWidth:(0,g.Q1)(250),justifyContent:"flex-end",title:a},e.createElement(v.Z,{ellipsis:!0,textColor:"neutral600"},a))):null};E.propTypes={statusCode:u().number,message:u().string},E.defaultProps={statusCode:void 0,message:void 0};const m=({onCancel:n})=>{const{formatMessage:a}=(0,B.Z)();return e.createElement(i.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(v.Z,{textColor:"neutral400"},a({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(A,{as:w.Z,color:"neutral400"}))))};m.propTypes={onCancel:u().func.isRequired};const y=({isPending:n,onCancel:a,response:o})=>{const{statusCode:c,message:h}=o,{formatMessage:O}=(0,B.Z)();return e.createElement(j.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(X.r,{gap:4,style:{alignItems:"center"}},e.createElement(S.P,{col:3},e.createElement(v.Z,null,O({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(S.P,{col:3},e.createElement($,{isPending:n,statusCode:c})),e.createElement(S.P,{col:6},n?e.createElement(m,{onCancel:a}):e.createElement(E,{statusCode:c,message:h}))))};y.defaultProps={isPending:!1,onCancel(){},response:{}},y.propTypes={isPending:u().bool,onCancel:u().func,response:u().object};var N=y,k=t(24346);const ge=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,Ee=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/,he=({formatMessage:n})=>k.Ry().shape({name:k.Z_().required(n({id:"Settings.webhooks.validation.name.required",defaultMessage:"Name is required"})).matches(ge,n({id:"Settings.webhooks.validation.name.regex",defaultMessage:"The name must start with a letter and only contain letters, numbers, spaces and underscores"})),url:k.Z_().required(n({id:"Settings.webhooks.validation.url.required",defaultMessage:"Url is required"})).matches(Ee,n({id:"Settings.webhooks.validation.url.regex",defaultMessage:"The value must be a valid Url"})),headers:k.Vo(a=>{let o=k.IX();if(a.length===1){const{key:c,value:h}=a[0];if(!c&&!h)return o}return o.of(k.Ry().shape({key:k.Z_().required(n({id:"Settings.webhooks.validation.key",defaultMessage:"Key is required"})),value:k.Z_().required(n({id:"Settings.webhooks.validation.value",defaultMessage:"Value is required"}))}))}),events:k.IX()}),ue=({handleSubmit:n,triggerWebhook:a,isCreating:o,isTriggering:c,triggerResponse:h,data:O})=>{const{formatMessage:l}=(0,B.Z)(),[H,z]=(0,e.useState)(!1),p=(0,oe.c)(J,async()=>(await t.e(7030).then(t.bind(t,61442))).EventTableEE),x=Z=>Object.keys(Z).length?Object.entries(Z).map(([ne,ae])=>({key:ne,value:ae})):[{key:"",value:""}],R=(0,D.TA)({initialValues:{name:O?.name||"",url:O?.url||"",headers:x(O?.headers||{}),events:O?.events||[]},onSubmit(Z,{resetForm:ne,setSubmitting:ae}){n(Z),ne({values:Z}),ae(!1)},validationSchema:he({formatMessage:l}),validateOnChange:!1,validateOnBlur:!1});return p?e.createElement(D.Hy,{value:R},e.createElement(g.l0,{onSubmit:R.handleSubmit},e.createElement(U.T,{primaryAction:e.createElement(i.k,{gap:2},e.createElement(se.z,{onClick:()=>{a(),z(!0)},variant:"tertiary",startIcon:e.createElement(ie.Z,null),disabled:o||c,size:"L"},l({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(se.z,{startIcon:e.createElement(f.Z,null),type:"submit",size:"L",disabled:!R.dirty,loading:R.isSubmitting},l({id:"global.save",defaultMessage:"Save"}))),title:o?l({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):O?.name,navigationAction:e.createElement(g.rU,{startIcon:e.createElement(_.Z,null),to:"/settings/webhooks"},l({id:"global.back",defaultMessage:"Back"}))}),e.createElement(re.D,null,e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:4},H&&e.createElement(N,{isPending:c,response:h,onCancel:()=>z(!1)}),e.createElement(j.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(X.r,{gap:6},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:Q.o,name:"name",error:R?.errors?.name&&R.errors.name,label:l({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(S.P,{col:12},e.createElement(D.gN,{as:Q.o,name:"url",error:R?.errors?.url&&R.errors.url,label:l({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(C,null),e.createElement(p,null))))))):null};ue.propTypes={data:u().object,handleSubmit:u().func.isRequired,triggerWebhook:u().func.isRequired,isCreating:u().bool.isRequired,isTriggering:u().bool.isRequired,triggerResponse:u().object},ue.defaultProps={data:void 0,triggerResponse:void 0};var pe=ue;const me=n=>({...n,headers:n.headers.reduce((a,{key:o,value:c})=>(o!==""&&(a[o]=c),a),{})});var fe=()=>{const{params:{id:n}}=(0,W.$B)("/settings/webhooks/:id"),a=n==="create",{replace:o}=(0,W.k6)(),c=(0,g.lm)(),{formatAPIError:h}=(0,g.So)(),O=(0,b.useQueryClient)(),{isLoading:l}=(0,K.G)(),{put:H,get:z,post:p}=(0,g.kY)(),{isLoading:x,data:R,error:Z}=(0,b.useQuery)(["webhooks",n],async()=>{const{data:{data:I}}=await z(`/admin/webhooks/${n}`);return I},{enabled:!a});e.useEffect(()=>{Z&&c({type:"warning",message:h(Z)})},[Z,c,h]);const{isLoading:ne,data:ae,isIdle:ve,mutate:Me}=(0,b.useMutation)(()=>p(`/admin/webhooks/${n}/trigger`)),Ce=()=>Me(null,{onError(I){c({type:"warning",message:h(I)})}}),ye=(0,b.useMutation)(I=>p("/admin/webhooks",I)),Pe=(0,b.useMutation)(({id:I,body:V})=>H(`/admin/webhooks/${I}`,V)),be=async I=>{if(a){ye.mutate(me(I),{onSuccess({data:V}){c({type:"success",message:{id:"Settings.webhooks.created"}}),o(`/settings/webhooks/${V.data.id}`)},onError(V){c({type:"warning",message:h(V)})}});return}Pe.mutate({id:n,body:me(I)},{onSuccess(){O.invalidateQueries(["webhooks",n]),c({type:"success",message:{id:"notification.form.success.fields"}})},onError(V){c({type:"warning",message:h(V)})}})};return x||l?e.createElement(g.dO,null):e.createElement(T.o,null,e.createElement(g.SL,{name:"Webhooks"}),e.createElement(pe,{data:R,handleSubmit:be,triggerWebhook:Ce,isCreating:a,isTriggering:ne,isTriggerIdle:ve,triggerResponse:ae?.data.data}))}},5722:function(G,P,t){t.r(P);var e=t(32735),T=t(
|
|
33
|
+
`),$=({isPending:n,statusCode:a})=>{const{formatMessage:o}=(0,B.Z)();return n?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:L.Z}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):a>=200&&a<300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:f.Z,color:"success700"}),e.createElement(v.Z,null,o({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):a>=300?e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(A,{as:w.Z,color:"danger700"}),e.createElement(v.Z,null,o({id:"Settings.error",defaultMessage:"error"})," ",a)):null};$.propTypes={isPending:u().bool.isRequired,statusCode:u().number},$.defaultProps={statusCode:void 0};const E=({statusCode:n,message:a})=>{const{formatMessage:o}=(0,B.Z)();return n>=200&&n<300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(v.Z,{textColor:"neutral600",ellipsis:!0},o({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(i.k,{justifyContent:"flex-end"},e.createElement(i.k,{maxWidth:(0,g.Q1)(250),justifyContent:"flex-end",title:a},e.createElement(v.Z,{ellipsis:!0,textColor:"neutral600"},a))):null};E.propTypes={statusCode:u().number,message:u().string},E.defaultProps={statusCode:void 0,message:void 0};const m=({onCancel:n})=>{const{formatMessage:a}=(0,B.Z)();return e.createElement(i.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(i.k,{gap:2,alignItems:"center"},e.createElement(v.Z,{textColor:"neutral400"},a({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(A,{as:w.Z,color:"neutral400"}))))};m.propTypes={onCancel:u().func.isRequired};const y=({isPending:n,onCancel:a,response:o})=>{const{statusCode:c,message:h}=o,{formatMessage:O}=(0,B.Z)();return e.createElement(j.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(X.r,{gap:4,style:{alignItems:"center"}},e.createElement(S.P,{col:3},e.createElement(v.Z,null,O({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(S.P,{col:3},e.createElement($,{isPending:n,statusCode:c})),e.createElement(S.P,{col:6},n?e.createElement(m,{onCancel:a}):e.createElement(E,{statusCode:c,message:h}))))};y.defaultProps={isPending:!1,onCancel(){},response:{}},y.propTypes={isPending:u().bool,onCancel:u().func,response:u().object};var N=y,k=t(24346);const ge=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,Ee=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/,he=({formatMessage:n})=>k.Ry().shape({name:k.Z_().required(n({id:"Settings.webhooks.validation.name.required",defaultMessage:"Name is required"})).matches(ge,n({id:"Settings.webhooks.validation.name.regex",defaultMessage:"The name must start with a letter and only contain letters, numbers, spaces and underscores"})),url:k.Z_().required(n({id:"Settings.webhooks.validation.url.required",defaultMessage:"Url is required"})).matches(Ee,n({id:"Settings.webhooks.validation.url.regex",defaultMessage:"The value must be a valid Url"})),headers:k.Vo(a=>{let o=k.IX();if(a.length===1){const{key:c,value:h}=a[0];if(!c&&!h)return o}return o.of(k.Ry().shape({key:k.Z_().required(n({id:"Settings.webhooks.validation.key",defaultMessage:"Key is required"})),value:k.Z_().required(n({id:"Settings.webhooks.validation.value",defaultMessage:"Value is required"}))}))}),events:k.IX()}),ue=({handleSubmit:n,triggerWebhook:a,isCreating:o,isTriggering:c,triggerResponse:h,data:O})=>{const{formatMessage:l}=(0,B.Z)(),[H,z]=(0,e.useState)(!1),p=(0,oe.c)(J,async()=>(await t.e(7030).then(t.bind(t,61442))).EventTableEE),x=Z=>Object.keys(Z).length?Object.entries(Z).map(([ne,ae])=>({key:ne,value:ae})):[{key:"",value:""}],R=(0,D.TA)({initialValues:{name:O?.name||"",url:O?.url||"",headers:x(O?.headers||{}),events:O?.events||[]},onSubmit(Z,{resetForm:ne,setSubmitting:ae}){n(Z),ne({values:Z}),ae(!1)},validationSchema:he({formatMessage:l}),validateOnChange:!1,validateOnBlur:!1});return p?e.createElement(D.Hy,{value:R},e.createElement(g.l0,{onSubmit:R.handleSubmit},e.createElement(U.T,{primaryAction:e.createElement(i.k,{gap:2},e.createElement(se.z,{onClick:()=>{a(),z(!0)},variant:"tertiary",startIcon:e.createElement(ie.Z,null),disabled:o||c,size:"L"},l({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(se.z,{startIcon:e.createElement(f.Z,null),type:"submit",size:"L",disabled:!R.dirty,loading:R.isSubmitting},l({id:"global.save",defaultMessage:"Save"}))),title:o?l({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):O?.name,navigationAction:e.createElement(g.rU,{startIcon:e.createElement(_.Z,null),to:"/settings/webhooks"},l({id:"global.back",defaultMessage:"Back"}))}),e.createElement(re.D,null,e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:4},H&&e.createElement(N,{isPending:c,response:h,onCancel:()=>z(!1)}),e.createElement(j.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(i.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(X.r,{gap:6},e.createElement(S.P,{col:6},e.createElement(D.gN,{as:Q.o,name:"name",error:R?.errors?.name&&R.errors.name,label:l({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(S.P,{col:12},e.createElement(D.gN,{as:Q.o,name:"url",error:R?.errors?.url&&R.errors.url,label:l({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(C,null),e.createElement(p,null))))))):null};ue.propTypes={data:u().object,handleSubmit:u().func.isRequired,triggerWebhook:u().func.isRequired,isCreating:u().bool.isRequired,isTriggering:u().bool.isRequired,triggerResponse:u().object},ue.defaultProps={data:void 0,triggerResponse:void 0};var pe=ue;const me=n=>({...n,headers:n.headers.reduce((a,{key:o,value:c})=>(o!==""&&(a[o]=c),a),{})});var fe=()=>{const{params:{id:n}}=(0,W.$B)("/settings/webhooks/:id"),a=n==="create",{replace:o}=(0,W.k6)(),c=(0,g.lm)(),{formatAPIError:h}=(0,g.So)(),O=(0,b.useQueryClient)(),{isLoading:l}=(0,K.G)(),{put:H,get:z,post:p}=(0,g.kY)(),{isLoading:x,data:R,error:Z}=(0,b.useQuery)(["webhooks",n],async()=>{const{data:{data:I}}=await z(`/admin/webhooks/${n}`);return I},{enabled:!a});e.useEffect(()=>{Z&&c({type:"warning",message:h(Z)})},[Z,c,h]);const{isLoading:ne,data:ae,isIdle:ve,mutate:Me}=(0,b.useMutation)(()=>p(`/admin/webhooks/${n}/trigger`)),Ce=()=>Me(null,{onError(I){c({type:"warning",message:h(I)})}}),ye=(0,b.useMutation)(I=>p("/admin/webhooks",I)),Pe=(0,b.useMutation)(({id:I,body:V})=>H(`/admin/webhooks/${I}`,V)),be=async I=>{if(a){ye.mutate(me(I),{onSuccess({data:V}){c({type:"success",message:{id:"Settings.webhooks.created"}}),o(`/settings/webhooks/${V.data.id}`)},onError(V){c({type:"warning",message:h(V)})}});return}Pe.mutate({id:n,body:me(I)},{onSuccess(){O.invalidateQueries(["webhooks",n]),c({type:"success",message:{id:"notification.form.success.fields"}})},onError(V){c({type:"warning",message:h(V)})}})};return x||l?e.createElement(g.dO,null):e.createElement(T.o,null,e.createElement(g.SL,{name:"Webhooks"}),e.createElement(pe,{data:R,handleSubmit:be,triggerWebhook:Ce,isCreating:a,isTriggering:ne,isTriggerIdle:ve,triggerResponse:ae?.data.data}))}},5722:function(G,P,t){t.r(P);var e=t(32735),T=t(43806),g=t(15062),b=t(30305),W=t(77476);const K=()=>{const U=(0,g.v9)(b._);return e.createElement(T.O4,{permissions:U.settings.webhooks.create},e.createElement(W.Z,null))};P.default=K},63939:function(G,P,t){t.r(P);var e=t(32735),T=t(43806),g=t(15062),b=t(30305),W=t(77476);const K=()=>{const U=(0,g.v9)(b._);return e.createElement(T.O4,{permissions:U.settings.webhooks.update},e.createElement(W.Z,null))};P.default=K},8241:function(G,P,t){t.d(P,{O:function(){return T}});var e=t(70843);const T=e.Wx},70788:function(G,P,t){t.d(P,{Z:function(){return g}});var e=t(74512);const T=b=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...b,children:(0,e.jsx)("path",{fill:"#212134",d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z"})}),g=T}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{80290:function(R,h,t){t.r(h),t.d(h,{default:function(){return ue}});var e=t(32735),s=t(
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{80290:function(R,h,t){t.r(h),t.d(h,{default:function(){return ue}});var e=t(32735),s=t(43806),c=t(15062),u=t(30305),g=t(36150),L=t(99226),S=t(95162),D=t(64092),P=t(95181),l=t(8365),y=t(91779),j=t(56932),U=t(77981),_=t(23699),ee=t(22116),te=t(41013),K=t(45037),i=t(27947),V=t(96669),ne=t(99320),ae=t(1690),k=t(84642),E=t(74512),F=t(8471);const w=F.ZP.div`
|
|
2
2
|
background: ${({theme:o})=>o.colors.danger500};
|
|
3
3
|
border: none;
|
|
4
4
|
border-radius: 16px;
|
|
@@ -36,8 +36,8 @@ const getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
|
|
|
36
36
|
id: 'Settings.permissions.auditLogs.action',
|
|
37
37
|
defaultMessage: 'Action',
|
|
38
38
|
}),
|
|
39
|
-
options: actionOptions,
|
|
40
39
|
customInput: ComboboxFilter,
|
|
40
|
+
options: actionOptions,
|
|
41
41
|
},
|
|
42
42
|
fieldSchema: { type: 'enumeration' },
|
|
43
43
|
},
|
package/ee/server/bootstrap.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line node/no-extraneous-require
|
|
4
|
-
const { features } = require('@strapi/strapi/
|
|
4
|
+
const { features } = require('@strapi/strapi/dist/utils/ee').default;
|
|
5
5
|
const executeCEBootstrap = require('../../server/bootstrap');
|
|
6
6
|
const { getService } = require('../../server/utils');
|
|
7
7
|
const actions = require('./config/admin-actions');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { isNil } = require('lodash/fp');
|
|
4
4
|
// eslint-disable-next-line node/no-extraneous-require
|
|
5
|
-
const ee = require('@strapi/strapi/
|
|
5
|
+
const ee = require('@strapi/strapi/dist/utils/ee').default;
|
|
6
6
|
const { env } = require('@strapi/utils');
|
|
7
7
|
const { getService } = require('../../../server/utils');
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line node/no-extraneous-require
|
|
4
|
-
const ee = require('@strapi/strapi/
|
|
4
|
+
const ee = require('@strapi/strapi/dist/utils/ee').default;
|
|
5
5
|
const _ = require('lodash');
|
|
6
6
|
const { pick, isNil } = require('lodash/fp');
|
|
7
7
|
const { ApplicationError, ForbiddenError } = require('@strapi/utils').errors;
|
package/ee/server/destroy.js
CHANGED
package/ee/server/register.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { features } = require('@strapi/strapi/
|
|
3
|
+
const { features } = require('@strapi/strapi/dist/utils/ee').default;
|
|
4
4
|
const executeCERegister = require('../../server/register');
|
|
5
5
|
const migrateAuditLogsTable = require('./migrations/audit-logs-table');
|
|
6
6
|
const migrateReviewWorkflowStagesColor = require('./migrations/review-workflows-stages-color');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const localProvider = require('@strapi/provider-audit-logs-local');
|
|
4
4
|
const { scheduleJob } = require('node-schedule');
|
|
5
|
-
const { features } = require('@strapi/strapi/
|
|
5
|
+
const { features } = require('@strapi/strapi/dist/utils/ee').default;
|
|
6
6
|
|
|
7
7
|
const DEFAULT_RETENTION_DAYS = 90;
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line node/no-extraneous-require
|
|
4
|
-
const { features } = require('@strapi/strapi/
|
|
4
|
+
const { features } = require('@strapi/strapi/dist/utils/ee').default;
|
|
5
5
|
|
|
6
6
|
const { UnauthorizedError } = require('@strapi/utils').errors;
|
|
7
7
|
const createLocalStrategy = require('../../../server/services/passport/local-strategy');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// eslint-disable-next-line node/no-extraneous-require
|
|
4
|
-
const ee = require('@strapi/strapi/
|
|
4
|
+
const ee = require('@strapi/strapi/dist/utils/ee').default;
|
|
5
5
|
const { take, drop, map, prop, pick, reverse, isNil } = require('lodash/fp');
|
|
6
6
|
const { getService } = require('../../../server/utils');
|
|
7
7
|
const { SUPER_ADMIN_CODE } = require('../../../server/services/constants');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { yup, validateYupSchema } = require('@strapi/utils');
|
|
4
4
|
// eslint-disable-next-line node/no-extraneous-require
|
|
5
|
-
const { features } = require('@strapi/strapi/
|
|
5
|
+
const { features } = require('@strapi/strapi/dist/utils/ee').default;
|
|
6
6
|
|
|
7
7
|
const roleCreateSchema = yup
|
|
8
8
|
.object()
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { yup, validateYupSchema } = require('@strapi/utils');
|
|
4
4
|
// eslint-disable-next-line node/no-extraneous-require
|
|
5
|
-
const { features } = require('@strapi/strapi/
|
|
5
|
+
const { features } = require('@strapi/strapi/dist/utils/ee').default;
|
|
6
6
|
const { schemas } = require('../../../server/validation/user');
|
|
7
7
|
|
|
8
8
|
const ssoUserCreationInputExtension = yup
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/admin",
|
|
3
|
-
"version": "4.14.
|
|
3
|
+
"version": "4.14.1",
|
|
4
4
|
"description": "Strapi Admin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -40,16 +40,17 @@
|
|
|
40
40
|
"lint": "run -T eslint ."
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@casl/ability": "
|
|
43
|
+
"@casl/ability": "6.5.0",
|
|
44
44
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
|
|
45
|
-
"@
|
|
46
|
-
"@strapi/
|
|
47
|
-
"@strapi/
|
|
48
|
-
"@strapi/
|
|
49
|
-
"@strapi/
|
|
50
|
-
"@strapi/
|
|
51
|
-
"@strapi/
|
|
52
|
-
"@strapi/utils": "4.14.
|
|
45
|
+
"@radix-ui/react-toolbar": "1.0.4",
|
|
46
|
+
"@strapi/data-transfer": "4.14.1",
|
|
47
|
+
"@strapi/design-system": "1.11.0",
|
|
48
|
+
"@strapi/helper-plugin": "4.14.1",
|
|
49
|
+
"@strapi/icons": "1.11.0",
|
|
50
|
+
"@strapi/permissions": "4.14.1",
|
|
51
|
+
"@strapi/provider-audit-logs-local": "4.14.1",
|
|
52
|
+
"@strapi/typescript-utils": "4.14.1",
|
|
53
|
+
"@strapi/utils": "4.14.1",
|
|
53
54
|
"axios": "1.5.0",
|
|
54
55
|
"bcryptjs": "2.4.3",
|
|
55
56
|
"browserslist": "^4.17.3",
|
|
@@ -119,6 +120,9 @@
|
|
|
119
120
|
"sanitize-html": "2.11.0",
|
|
120
121
|
"semver": "7.5.4",
|
|
121
122
|
"sift": "16.0.1",
|
|
123
|
+
"slate": "0.94.1",
|
|
124
|
+
"slate-history": "0.93.0",
|
|
125
|
+
"slate-react": "0.98.3",
|
|
122
126
|
"style-loader": "3.3.1",
|
|
123
127
|
"styled-components": "5.3.3",
|
|
124
128
|
"typescript": "5.2.2",
|
|
@@ -152,7 +156,11 @@
|
|
|
152
156
|
"./build"
|
|
153
157
|
]
|
|
154
158
|
}
|
|
155
|
-
}
|
|
159
|
+
},
|
|
160
|
+
"implicitDependencies": [
|
|
161
|
+
"!@strapi/data-transfer",
|
|
162
|
+
"!@strapi/strapi"
|
|
163
|
+
]
|
|
156
164
|
},
|
|
157
|
-
"gitHead": "
|
|
165
|
+
"gitHead": "09b6d7a4b46a87142d29665052ca22ced29fa56a"
|
|
158
166
|
}
|
|
@@ -8,7 +8,7 @@ const { exists } = require('fs-extra');
|
|
|
8
8
|
const { env } = require('@strapi/utils');
|
|
9
9
|
const { isUsingTypeScript } = require('@strapi/typescript-utils');
|
|
10
10
|
// eslint-disable-next-line node/no-extraneous-require
|
|
11
|
-
const ee = require('@strapi/strapi/
|
|
11
|
+
const ee = require('@strapi/strapi/dist/utils/ee').default;
|
|
12
12
|
|
|
13
13
|
const {
|
|
14
14
|
validateUpdateProjectSettings,
|
|
@@ -35,7 +35,14 @@ const permissionFields = [
|
|
|
35
35
|
'conditions',
|
|
36
36
|
'role',
|
|
37
37
|
];
|
|
38
|
-
const sanitizedPermissionFields = [
|
|
38
|
+
const sanitizedPermissionFields = [
|
|
39
|
+
'id',
|
|
40
|
+
'action',
|
|
41
|
+
'actionParameters',
|
|
42
|
+
'subject',
|
|
43
|
+
'properties',
|
|
44
|
+
'conditions',
|
|
45
|
+
];
|
|
39
46
|
|
|
40
47
|
const sanitizePermissionFields = pick(sanitizedPermissionFields);
|
|
41
48
|
|
package/utils/plugins.js
CHANGED
|
@@ -112,7 +112,13 @@ const filterPluginsByAdminEntry = (plugin) => {
|
|
|
112
112
|
);
|
|
113
113
|
|
|
114
114
|
if (!isLocalPluginWithLegacyAdminFile) {
|
|
115
|
-
|
|
115
|
+
let pathToPlugin = plugin.pathToPlugin;
|
|
116
|
+
|
|
117
|
+
if (process.platform === 'win32') {
|
|
118
|
+
pathToPlugin = pathToPlugin.split(path.sep).join(path.posix.sep);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const isModuleWithFE = require.resolve(`${pathToPlugin}/strapi-admin`);
|
|
116
122
|
|
|
117
123
|
return isModuleWithFE;
|
|
118
124
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4546],{17379:function(S,v,n){n.d(v,{r:function(){return P}});var f=n(32735),D=n(77981),O=n(60216),M=n.n(O),x=n(74506);function I(b,A,g){if(!b||!A)return{display:"none"};const{x:C,y:K}=g;return{transform:`translate(${C}px, ${K}px)`}}function P({renderItem:b}){const{itemType:A,isDragging:g,item:C,initialOffset:K,currentOffset:U,mouseOffset:B}=(0,x.useDragLayer)(L=>({item:L.getItem(),itemType:L.getItemType(),initialOffset:L.getInitialSourceClientOffset(),currentOffset:L.getSourceClientOffset(),isDragging:L.isDragging(),mouseOffset:L.getClientOffset()}));return g?f.createElement(D.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},f.createElement(D.x,{style:I(K,U,B)},b({type:A,item:C}))):null}P.propTypes={renderItem:M().func.isRequired}},75430:function(S,v,n){var f=n(32735);const D=(0,f.createContext)();var O=null},69242:function(S,v,n){n.d(v,{PL:function(){return x},Y9:function(){return I.Y},zE:function(){return ie},Ky:function(){return Q},fi:function(){return ne},zH:function(){return le},r5:function(){return a}});var f=n(32735),D=n(15062),O=n(53634),x=()=>{const e=(0,D.v9)(O.Z),t=(0,f.useCallback)(r=>e?.components?.[r]??{},[e]);return{...e,getComponentLayout:t}},I=n(77622),P=n(30126),b=n(84306),A=n(20716),g=n(97889);const C={error:null,isLoading:!0,layout:{},layouts:{}};var U=(e,t)=>(0,g.ZP)(e,r=>{switch(t.type){case"GET_DATA":{r.isLoading=!0,r.error=null,r.layout={};break}case"GET_DATA_SUCCEEDED":{const i=t.data.contentType.uid;r.layout=t.data,r.layouts[i]=t.data,r.isLoading=!1;break}case"GET_DATA_ERROR":{r.isLoading=!1,r.error=t.error;break}case"SET_LAYOUT_FROM_STATE":{r.error=null,r.layout=e.layouts[t.uid];break}case"UPDATE_LAYOUT":{const i=e.layout;r.layout={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}},r.layouts[i.contentType.uid]={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}};break}default:return r}}),B=n(99381),L=n.n(B),H=n(33795),R=n.n(H),se=n(3040),N=n.n(se),q=n(69997);const $=(e,t)=>t.find(r=>r.uid===e),oe=(e,t)=>{const r=_(e,t),i=k(r.contentType,t),u=ee(r.contentType,r.components);return N()(r,["contentType","layouts","edit"],i),N()(r,["contentType","layouts","list"],u),Object.keys(r.components).forEach(l=>{const m=k(r.components[l],t);N()(r,["components",l,"layouts","edit"],m)}),r},_=(e,t)=>{const r=(0,q.w8)(L()(e),t,"contentType"),{components:i,contentType:u}=r,l=m=>Object.keys(m.metadatas).reduce((T,h)=>{const j=R()(m,["attributes",h],{});let F=m.metadatas[h];if(j.type==="relation"){const ye=$(j.targetModel,t),W=F.edit.mainField,G={name:W,schema:R()(ye,["attributes",W])};F={list:{...F.list,mainField:G},edit:{...F.edit,mainField:G}}}return T[h]=F,T},{});return N()(r,["contentType","metadatas"],l(u)),Object.keys(i).forEach(m=>{const T=i[m],h=l(T);N()(r,["components",m,"metadatas"],h)}),r},k=(e,t)=>e.layouts.edit.reduce((r,i)=>{const u=i.map(l=>{const m=R()(e,["attributes",l.name],{}),T={...l,fieldSchema:m,metadatas:R()(e,["metadatas",l.name,"edit"],{})};if(m.type==="relation"){const j=$(m.targetModel,t).pluginOptions||{};N()(T,"targetModelPluginOptions",j),N()(T,"queryInfos",{shouldDisplayRelationLink:Y(e,l.name,t)})}return T});return r.push(u),r},[]),ee=(e,t)=>e.layouts.list.reduce((i,u)=>{const l=R()(e,["attributes",u],{}),m=R()(e,["metadatas",u,"list"],{}),T=l.type;if(T==="relation")return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:m}),i;if(T==="component"){const h=t[l.component],j=h.settings.mainField,F=h.attributes[j];return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:{...m,mainField:{...F,name:j}}}),i}return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:m}),i},[]),Y=(e,t,r)=>{const i=R()(e,["attributes",t,"targetModel"],"");return Z(r).includes(i)},Z=e=>e.filter(t=>t.isDisplayed).map(({uid:t})=>t);var V=oe,ie=e=>{const[{error:t,isLoading:r,layout:i,layouts:u},l]=(0,f.useReducer)(U,C),m=(0,f.useMemo)(A.Vo,[]),{schemas:T}=(0,D.v9)(W=>m(W),D.wU),h=(0,f.useRef)(!0),{get:j}=(0,P.kY)(),F=(0,f.useCallback)(async(W,G)=>{if(u[W]){l({type:"SET_LAYOUT_FROM_STATE",uid:W});return}l({type:"GET_DATA"});try{const{data:{data:re}}=await j(`/content-manager/content-types/${W}/configuration`,{cancelToken:G.token});l({type:"GET_DATA_SUCCEEDED",data:V(re,T)})}catch(re){if(b.default.isCancel(re))return;h.current&&console.error(re),h.current&&l({type:"GET_DATA_ERROR",error:re})}},[u,T,j]);(0,f.useEffect)(()=>()=>{h.current=!1},[]),(0,f.useEffect)(()=>{const G=b.default.CancelToken.source();return F(e,G),()=>{G.cancel("Operation canceled by the user.")}},[e,F]);const ye=(0,f.useCallback)(W=>{l({type:"UPDATE_LAYOUT",newLayout:V(W,T)})},[T]);return{error:t,isLoading:r,layout:i,updateLayout:ye}},ge=e=>e["content-manager_app"].collectionTypeLinks,ue=n(85973),p=n.n(ue),J=n(33348);const ae=(e,t)=>Object.keys(e).reduce((r,i)=>{const u=e[i],l=R()(t,[i],u);return p()(u)?{...r,[i]:ae(u,l)}:(r[i]=l,r)},{});var ce=(e,t,r)=>{const i=e.find(({to:F})=>F.includes(t));if(!i)return"/";const{to:u,search:l}=i,m=(0,J.parse)(l),T=(0,J.parse)(r.substring(1)),h=ae(m,T);return`${u}?${(0,J.stringify)(h,{encode:!1})}`},Q=e=>{const[{rawQuery:t}]=(0,P.Kx)(),r=(0,D.v9)(ge);return ce(r,e,t)},Te=n(15655),z=n(53038),ne=()=>{const{search:e}=(0,z.TH)(),t=e?(0,J.parse)(e.substring(1)):{};return t.plugins?(0,J.stringify)({plugins:t.plugins},{encode:!1}):""};const le=e=>{const t=(0,f.useRef)();return(0,f.useEffect)(()=>{t.current=e},[e]),t.current};var w=n(85149);const de=(e,t,r)=>({type:w.m,permissions:e,__meta__:{plugins:t,containerName:r}}),fe=()=>({type:w.Q}),me=e=>e["content-manager_rbacManager"].permissions,s=e=>e.rbacProvider.collectionTypesRelatedPermissions;var a=(e,t,r="listView")=>{const i=(0,D.I0)(),u=(0,D.v9)(s),l=(0,D.v9)(me),m=u[t];(0,f.useEffect)(()=>m?(i(de(m,e?e.plugins:null,r)),()=>{i(fe())}):()=>{},[m,i,e,r]);const T=l?.some(h=>h.subject!==t)??!0;return{isValid:l&&!T,permissions:l}},o=n(75430);const d=()=>useContext(WysiwygContext);var y=null},77622:function(S,v,n){n.d(v,{Y:function(){return x}});var f=n(32735),D=n(74506),O=n.n(D),M=n(15655);const x=(I,{type:P="STRAPI_DND",index:b,item:A={},onStart:g,onEnd:C,onGrabItem:K,onDropItem:U,onCancel:B,onMoveItem:L,dropSensitivity:H="regular"})=>{const R=(0,f.useRef)(null),[{handlerId:se},N]=(0,D.useDrop)({accept:P,collect(k){return{handlerId:k.getHandlerId()}},hover(k,ee){if(!R.current)return;const Y=k.index,Z=b;if(Y!==Z){if(H==="regular"){const V=R.current.getBoundingClientRect(),te=(V.bottom-V.top)/2,X=ee.getClientOffset().y-V.top;if(Y<Z&&X<te||Y>Z&&X>te)return}L(Z,Y),k.index=Z}}}),[{isDragging:q},$,oe]=(0,D.useDrag)({type:P,item(){g&&g();const{width:k}=R.current?.getBoundingClientRect()??{};return{index:b,width:k,...A}},end(){C&&C()},canDrag:I,isDragging:A.id?k=>A.id===k.getItem().id:void 0,collect:k=>({isDragging:k.isDragging()})}),_=(0,M.A)(I,b,{onGrabItem:K,onDropItem:U,onCancel:B,onMoveItem:L});return[{handlerId:se,isDragging:q,handleKeyDown:_},R,N,$,oe]}},15655:function(S,v,n){n.d(v,{A:function(){return D}});var f=n(32735);const D=(O,M,{onCancel:x,onDropItem:I,onGrabItem:P,onMoveItem:b})=>{const[A,g]=(0,f.useState)(!1),C=L=>{A&&(L==="UP"?b(M-1,M):L==="DOWN"&&b(M+1,M))},K=()=>{A?(I&&I(M),g(!1)):(P&&P(M),g(!0))},U=()=>{A&&(g(!1),x&&x(M))};return L=>{if(O&&!(L.key==="Tab"&&!A))switch(L.preventDefault(),L.key){case" ":case"Enter":K();break;case"Escape":U();break;case"ArrowDown":case"ArrowRight":C("DOWN");break;case"ArrowUp":case"ArrowLeft":C("UP");break;default:}}}},20716:function(S,v,n){n.d(v,{Jg:function(){return b},KQ:function(){return I},Vo:function(){return P},Yg:function(){return O}});var f=n(98178),D=n(60371);const O=()=>g=>g["content-manager_app"]||D.E,M=()=>createSelector(O(),g=>g),x=()=>createSelector(O(),g=>g.models),I=()=>(0,f.P1)(O(),g=>({collectionTypeLinks:g.collectionTypeLinks,singleTypeLinks:g.singleTypeLinks})),P=()=>(0,f.P1)(O(),({components:g,models:C})=>({schemas:[...g,...C]})),b=(0,f.P1)(O(),g=>g.fieldSizes);var A=null},53634:function(S,v){const n=f=>f["content-manager_editViewLayoutManager"].currentLayout;v.Z=n},24381:function(S,v){v.Z={COMPONENT:"component",EDIT_FIELD:"editField",FIELD:"field",DYNAMIC_ZONE:"dynamicZone",RELATION:"relation"}},48586:function(S,v,n){n.d(v,{G:function(){return f}});const f=({firstname:D,lastname:O,username:M,email:x},I)=>M||(D?I({id:"global.fullname",defaultMessage:"{firstname} {lastname}"},{firstname:D,lastname:O}).trim():x)},7921:function(S,v){const n=f=>`content-manager.${f}`;v.Z=n},69997:function(S,v,n){n.d(v,{_Q:function(){return Z.Z},W3:function(){return M},ko:function(){return I},FE:function(){return b},Di:function(){return K},Ex:function(){return fe},du:function(){return H},TA:function(){return N},Gf:function(){return me.G},Ts:function(){return _},Uo:function(){return ee},OB:function(){return Y.Z},w8:function(){return ue},kc:function(){return ae}});var f=n(99381),D=n.n(f),M=(s,c,a)=>{if(Array.isArray(s)&&c>=0&&a>=0&&c<=s.length-1&&a<=s.length-1){const o=D()(s),d=o.splice(c,1);return o.splice(a,0,d[0]),o}return s},I=s=>{const{type:c}=s;return c==="relation"?!(s?.relationType??"").toLowerCase().includes("morph"):!["json","dynamiczone","richtext","password"].includes(c)&&!!c};const P=(s,c)=>{typeof s=="function"?s(c):s!=null&&(s.current=c)},b=(...s)=>c=>s.forEach(a=>P(a,c));var A=n(33795),g=n.n(A);const C=(s,c)=>Object.keys(s).reduce((a,o)=>{const d=g()(s,[o],{}),{default:y,component:e,type:t,required:r,min:i,repeatable:u}=d;if(y!==void 0&&(a[o]=y),t==="component"){const l=c?.[e]?.attributes??{},m=C(l,c);if(r===!0&&(a[o]=u===!0?[]:m),i&&u===!0&&r){a[o]=[];for(let T=0;T<i;T+=1)a[o].push(m)}}return t==="dynamiczone"&&r===!0&&(a[o]=[]),a},{});var K=C,U=n(9086),B=n.n(U),H=({layouts:s,metadatas:c,...a})=>{const o=s.list.map(e=>e.name?e.name:e),d=Object.keys(c).reduce((e,t)=>{const r=g()(c,[t],{});let i=r.edit;return i.mainField&&(i={...i,mainField:r.edit.mainField.name}),{...e,[t]:{edit:i,list:B()(r.list,["mainField"])}}},{}),y=s.edit.map(e=>e.map(({name:t,size:r})=>({name:t,size:r})));return{...a,layouts:{edit:y,list:o},metadatas:d}};const R=(s,c)=>s.map(a=>({...a,subject:c}));var N=s=>{const c={create:[{action:"plugin::content-manager.explorer.create",subject:null}],delete:[{action:"plugin::content-manager.explorer.delete",subject:null}],publish:[{action:"plugin::content-manager.explorer.publish",subject:null}],read:[{action:"plugin::content-manager.explorer.read",subject:null}],update:[{action:"plugin::content-manager.explorer.update",subject:null}]};return Object.keys(c).reduce((a,o)=>(a[o]=R(c[o],s),a),{})},q=n(95919),$=n.n(q),_=s=>s.split(".").filter(c=>$()(parseInt(c,10))),ee=s=>{if(s.length===0)return-1;const c=Math.max.apply(Math,s.map(a=>a.__temp_key__??0));return Number.isNaN(c)?-1:c},Y=n(7921),Z=n(24381),V=n(86349),te=n.n(V),ie=n(3040),X=n.n(ie),ue=(s,c,a)=>{const o=t=>c.find(r=>r.uid===t),d=Object.assign({},s),y=s[a].uid,e=o(y);return X()(d,[a],te()({},e,s[a])),Object.keys(s.components).forEach(t=>{const r=o(t);X()(d,["components",t],{...s.components[t],...r})}),d},p=n(30126),ae=(s,c,a)=>{const o=(d,y)=>Object.keys(d).reduce((e,t)=>{const r=(0,p.UN)(y,t),i=g()(d,t),u=(0,p.k2)(y,[t,"component"]),l=(0,p.k2)(y,[t,"repeatable"]);return r==="dynamiczone"?(e[t]=i.map(m=>o(m,a[m.__component])),e):r==="component"?(l?e[t]=i&&i.map(m=>o(m,a[u])):e[t]=i&&o(i,a[u]),e):(r!=="password"&&(e[t]=i),e)},{});return o(s,c)},pe=n(51355),ce=n.n(pe),he=n(86834),Q=n.n(he),Te=n(78746),z=n.n(Te),E=n(24346),ne=n(73347);E.kM(E.nK,"defined",function(){return this.test("defined",p.I0.required,s=>s!==void 0)}),E.kM(E.IX,"notEmptyMin",function(s){return this.test("notEmptyMin",p.I0.min,c=>Q()(c)?!0:c.length>=s)}),E.kM(E.Z_,"isInferior",function(s,c){return this.test("isInferior",s,function(a){return!a||Number.isNaN(z()(a))?!0:z()(c)>=z()(a)})}),E.kM(E.Z_,"isSuperior",function(s,c){return this.test("isSuperior",s,function(a){return!a||Number.isNaN(z()(a))?!0:z()(a)>=z()(c)})});const le=s=>g()(s,["attributes"],{}),w=(s,{components:c},a={isCreatingEntry:!0,isDraft:!0,isFromComponent:!1,isJSONTestDisabled:!1})=>{const o=le(s);return E.Ry().shape(Object.keys(o).reduce((d,y)=>{const e=o[y];if(e.type!=="relation"&&e.type!=="component"&&e.type!=="dynamiczone"){const t=de(e.type,e,a);d[y]=t}if(e.type==="relation"&&(d[y]=["oneWay","oneToOne","manyToOne","oneToManyMorph","oneToOneMorph"].includes(e.relationType)?E.Ry().nullable():E.IX().nullable()),e.type==="component"){const t=w(c[e.component],{components:c},{...a,isFromComponent:!0});if(e.repeatable===!0){const{min:i,max:u,required:l}=e;let m=E.Vo(T=>{let h=E.IX().of(t);return i?l?h=h.min(i,p.I0.min):l!==!0&&Q()(T)?h=h.nullable():h=h.min(i,p.I0.min):l&&!a.isDraft&&(h=h.min(1,p.I0.required)),u&&(h=h.max(u,p.I0.max)),h});return d[y]=m,d}const r=E.Vo(i=>i!==void 0?e.required===!0&&!a.isDraft?t.defined():t.nullable():e.required===!0?E.Ry().defined():E.Ry().nullable());return d[y]=r,d}if(e.type==="dynamiczone"){let t=E.IX().of(E.Vo(({__component:u})=>w(c[u],{components:c},{...a,isFromComponent:!0})));const{max:r,min:i}=e;i?e.required?t=t.test("min",p.I0.min,u=>a.isCreatingEntry?u&&u.length>=i:u===void 0?!0:u!==null&&u.length>=i).test("required",p.I0.required,u=>a.isCreatingEntry?u!==null||u!==void 0:u===void 0?!0:u!==null):t=t.notEmptyMin(i):e.required&&!a.isDraft&&(t=t.test("required",p.I0.required,u=>a.isCreatingEntry?u!==null||u!==void 0:u===void 0?!0:u!==null)),r&&(t=t.max(r,p.I0.max)),d[y]=t}return d},{}))},de=(s,c,a)=>{let o=E.nK();return["string","uid","text","richtext","email","password","enumeration"].includes(s)&&(o=E.Z_()),s==="json"&&(o=E.nK(p.I0.json).test("isJSON",p.I0.json,d=>{if(a.isJSONTestDisabled||!d||!d.length)return!0;try{return JSON.parse(d),!0}catch{return!1}}).nullable().test("required",p.I0.required,d=>!(c.required&&(!d||!d.length)))),s==="email"&&(o=o.email(p.I0.email)),["number","integer","float","decimal"].includes(s)&&(o=E.Rx().transform(d=>$()(d)?void 0:d).typeError()),s==="biginteger"&&(o=E.Z_().matches(/^-?\d*$/)),["date","datetime"].includes(s)&&(o=E.hT()),Object.keys(c).forEach(d=>{const y=c[d];if(y||!ce()(y)&&Number.isInteger(Math.floor(y))||y===0)switch(d){case"required":{a.isDraft||(s==="password"&&a.isCreatingEntry&&(o=o.required(p.I0.required)),s!=="password"&&(a.isCreatingEntry?o=o.required(p.I0.required):o=o.test("required",p.I0.required,e=>e===void 0&&!a.isFromComponent?!0:(0,ne.Z)(s)?e===0?!0:!!e:s==="boolean"?e!=null:s==="date"||s==="datetime"?typeof e=="string"?!Q()(e):!Q()(e?.toString()):!Q()(e))));break}case"max":{s==="biginteger"?o=o.isInferior(p.I0.max,y):o=o.max(y,p.I0.max);break}case"maxLength":o=o.max(y,p.I0.maxLength);break;case"min":{s==="biginteger"?o=o.isSuperior(p.I0.min,y):o=o.min(y,p.I0.min);break}case"minLength":{a.isDraft||(o=o.min(y,p.I0.minLength));break}case"regex":o=o.matches(new RegExp(y),{message:p.I0.regex,excludeEmptyString:!c.required});break;case"lowercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().lowercase());break;case"uppercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().uppercase());break;case"positive":(0,ne.Z)(s)&&(o=o.positive());break;case"negative":(0,ne.Z)(s)&&(o=o.negative());break;default:o=o.nullable()}}),o};var fe=w,me=n(48586)},73347:function(S,v,n){n.d(v,{Z:function(){return f}});function f(D){return["integer","biginteger","decimal","float","number"].includes(D)}}}]);
|