@strapi/admin 4.12.0-beta.3 → 4.12.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +13 -35
  2. package/admin/src/content-manager/pages/ListView/components/TableRows/index.js +304 -0
  3. package/admin/src/pages/AuthPage/components/Register/index.js +4 -0
  4. package/build/2379.0ca87a89.chunk.js +1 -0
  5. package/build/2395.df7a044a.chunk.js +26 -0
  6. package/build/2801.b1140c9b.chunk.js +1 -0
  7. package/build/{3100.21c343fa.chunk.js → 3100.2ba4df95.chunk.js} +1 -1
  8. package/build/{3483.ddd2d6df.chunk.js → 3483.e2ee2547.chunk.js} +1 -1
  9. package/build/3984.dda474f7.chunk.js +1 -0
  10. package/build/502.8ae8ef60.chunk.js +1 -0
  11. package/build/5483.6dd2e776.chunk.js +6 -0
  12. package/build/7065.99ca8ab1.chunk.js +112 -0
  13. package/build/7464.8a6c1e6c.chunk.js +1 -0
  14. package/build/8276.6c7b8e6e.chunk.js +26 -0
  15. package/build/{Admin-authenticatedApp.36b3826c.chunk.js → Admin-authenticatedApp.24998de8.chunk.js} +1 -1
  16. package/build/{admin-app.1c3f7fd6.chunk.js → admin-app.c2e4e128.chunk.js} +8 -8
  17. package/build/content-manager.8772445b.chunk.js +1103 -0
  18. package/build/index.html +1 -1
  19. package/build/{main.a12c4c0f.js → main.ef5fb1a8.js} +45 -45
  20. package/build/review-workflows-settings-create-view.d4b5dbb8.chunk.js +1 -0
  21. package/build/review-workflows-settings-edit-view.77299c63.chunk.js +1 -0
  22. package/build/review-workflows-settings-list-view.3ee9190d.chunk.js +56 -0
  23. package/build/{runtime~main.d197f488.js → runtime~main.c99f4c36.js} +2 -2
  24. package/build/sso-settings-page.3a1ed8c9.chunk.js +1 -0
  25. package/ee/admin/constants.js +3 -0
  26. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +12 -4
  27. package/ee/admin/hooks/index.js +1 -1
  28. package/ee/admin/hooks/useLicenseLimitNotification/index.js +1 -1
  29. package/ee/admin/hooks/useLicenseLimits/__mocks__/index.js +8 -0
  30. package/ee/admin/hooks/useLicenseLimits/index.js +1 -3
  31. package/ee/admin/hooks/useLicenseLimits/useLicenseLimits.js +3 -13
  32. package/ee/admin/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +19 -4
  33. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +7 -0
  34. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +20 -16
  35. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/WorkflowAttributes.js +38 -23
  36. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +3 -0
  37. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +47 -27
  38. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/index.js +8 -3
  39. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +68 -41
  40. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/index.js +8 -3
  41. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js +72 -55
  42. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js +8 -3
  43. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +1 -7
  44. package/ee/admin/pages/SettingsPage/pages/SingleSignOn/utils/schema.js +8 -5
  45. package/ee/server/services/review-workflows/review-workflows.js +1 -1
  46. package/ee/server/services/review-workflows/validation.js +6 -4
  47. package/ee/server/services/review-workflows/workflows/content-types.js +28 -19
  48. package/ee/server/services/review-workflows/workflows/index.js +14 -2
  49. package/ee/server/validation/authentication.js +14 -8
  50. package/package.json +8 -8
  51. package/build/2379.d33a2e16.chunk.js +0 -1
  52. package/build/2395.b0419a54.chunk.js +0 -26
  53. package/build/2801.18f38baf.chunk.js +0 -1
  54. package/build/3984.ea7b8036.chunk.js +0 -1
  55. package/build/502.ccb38223.chunk.js +0 -1
  56. package/build/5483.ed2c7efa.chunk.js +0 -6
  57. package/build/7464.c6d0565c.chunk.js +0 -1
  58. package/build/8276.23e0763b.chunk.js +0 -26
  59. package/build/8298.fd253c9f.chunk.js +0 -117
  60. package/build/content-manager.b8d593d4.chunk.js +0 -1103
  61. package/build/review-workflows-settings-create-view.dfd87e1f.chunk.js +0 -1
  62. package/build/review-workflows-settings-edit-view.53c00afe.chunk.js +0 -1
  63. package/build/review-workflows-settings-list-view.a34be805.chunk.js +0 -56
  64. package/build/sso-settings-page.ed6f3f15.chunk.js +0 -1
  65. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/ProtectedPage/ProtectedPage.js +0 -21
  66. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/ProtectedPage/index.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8936],{80252:function(ne,E,e){e.r(E),e.d(E,{default:function(){return B}});var t=e(32735),f=e(19565),c=e(15062),h=e(30305),W=e(41415),k=e(87933),T=e(23866),A=e(66456),u=e(92802),D=e(3040),R=e.n(D),V=e(67879),F=e(20108),X=e(53038),Y=e(90769),x=e(61234),z=e(50337),y=e(77061),g=e(27187),l=e(90562),N=e(45594),O=e(165),a=e(2121),J=e(32329),S=e(79989),Z=e(82920);function j(){const{formatMessage:o}=(0,V.Z)(),{post:G}=(0,f.kY)(),{push:H}=(0,X.k6)(),{formatAPIError:P}=(0,f.So)(),w=(0,c.I0)(),U=(0,c.v9)(h._),p=(0,f.lm)(),{collectionTypes:$,singleTypes:K,isLoading:Q}=(0,Y.G)(),{clientState:{currentWorkflow:{data:r,isDirty:b}}}=(0,c.v9)(s=>s?.[a.sN]??S.E),{allowedActions:{canCreate:q}}=(0,f.ss)(U.settings["review-workflows"]),[M,i]=t.useState(!1),{isLoading:C,getFeature:_}=(0,z.q5)(),{meta:m,isLoading:I}=(0,J.n)(),[ee,te]=t.useState(null),{mutateAsync:se,isLoading:oe}=(0,F.useMutation)(async({workflow:s})=>{const{data:{data:d}}=await G("/admin/review-workflows/workflows",{data:s});return d},{onSuccess(){p({type:"success",message:{id:"Settings.review-workflows.create.page.notification.success",defaultMessage:"Workflow successfully created"}})}}),ae=async()=>{try{const s=await se({workflow:r});return H(`/settings/review-workflows/${s.id}`),s}catch(s){return s.response.data?.error?.name==="ValidationError"&&s.response.data?.error?.details?.errors?.length>0&&te(s.response.data?.error?.details?.errors.reduce((d,L)=>(R()(d,L.path,L.message),d),{})),p({type:"warning",message:P(s)}),null}},n=_("review-workflows"),v=(0,u.TA)({enableReinitialize:!0,initialErrors:ee,initialValues:r,async onSubmit(){n?.[a.Ef]&&m?.workflowCount>=parseInt(n[a.Ef],10)?i("workflow"):n?.[a._X]&&r.stages.length>=parseInt(n[a._X],10)?i("stage"):ae()},validate(s){return(0,Z.V)({values:s,formatMessage:o})}});return(0,x.v)(a.sN,S.I),t.useEffect(()=>{w((0,y.Js)()),w((0,y.CI)({name:""}))},[w]),t.useEffect(()=>{!I&&!C&&(n?.[a.Ef]&&m?.workflowsTotal>=parseInt(n[a.Ef],10)?i("workflow"):n?.[a._X]&&r.stages.length>=parseInt(n[a._X],10)&&i("stage"))},[C,I,n,m?.workflowsTotal,r.stages.length]),t.createElement(t.Fragment,null,t.createElement(g.lx,null),t.createElement(u.Hy,{value:v},t.createElement(u.l0,{onSubmit:v.handleSubmit},t.createElement(g.h4,{navigationAction:t.createElement(g.eJ,{href:"/settings/review-workflows"}),primaryAction:t.createElement(W.z,{startIcon:t.createElement(A.Z,null),type:"submit",size:"M",disabled:!b||!q,isLoading:oe},o({id:"global.save",defaultMessage:"Save"})),title:o({id:"Settings.review-workflows.create.page.title",defaultMessage:"Create Review Workflow"}),subtitle:o({id:"Settings.review-workflows.page.subtitle",defaultMessage:"{count, plural, one {# stage} other {# stages}}"},{count:r?.stages?.length??0})}),t.createElement(g.fC,null,t.createElement(k.k,{alignItems:"stretch",direction:"column",gap:7},Q?t.createElement(T.a,null,o({id:"Settings.review-workflows.page.isLoading",defaultMessage:"Workflow is loading"})):t.createElement(k.k,{alignItems:"stretch",direction:"column",gap:7},t.createElement(O.Y,{contentTypes:{collectionTypes:$,singleTypes:K}}),t.createElement(N.U,{stages:v.values?.stages})))))),t.createElement(l.fC,{isOpen:M==="workflow",onClose:()=>i(!1)},t.createElement(l.Dx,null,o({id:"Settings.review-workflows.create.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),t.createElement(l.uT,null,o({id:"Settings.review-workflows.create.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."}))),t.createElement(l.fC,{isOpen:M==="stage",onClose:()=>i(!1)},t.createElement(l.Dx,null,o({id:"Settings.review-workflows.create.page.stages.limit.title",defaultMessage:"You have reached the limit of stages for this workflow in your plan"})),t.createElement(l.uT,null,o({id:"Settings.review-workflows.create.page.stages.limit.body",defaultMessage:"Try deleting some stages or contact Sales to enable more stages."}))))}function B(){const o=(0,c.v9)(h._);return t.createElement(f.O4,{permissions:o.settings["review-workflows"].create},t.createElement(j,null))}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4409],{45696:function(Ee,S,t){t.r(S),t.d(S,{default:function(){return _}});var e=t(32735),i=t(19565),g=t(15062),k=t(30305),Y=t(41415),C=t(87933),z=t(23866),H=t(66456),m=t(92802),N=t(3040),U=t.n(N),j=t(67879),B=t(20108),J=t(53038),Z=t(90769),G=t(61234),P=t(50337),p=t(77061),c=t(27187),f=t(90562),Q=t(45594),$=t(165),s=t(2121),K=t(32329),D=t(79989),b=t(82920);function q(){const{workflowId:w}=(0,J.UO)(),ee=(0,g.v9)(k._),{formatMessage:n}=(0,j.Z)(),v=(0,g.I0)(),{put:te}=(0,i.kY)(),{formatAPIError:se}=(0,i.So)(),M=(0,i.lm)(),{isLoading:I,meta:u,workflows:[L],status:T,refetch:oe}=(0,K.n)({id:w}),{collectionTypes:ae,singleTypes:ne,isLoading:le}=(0,Z.G)(),{status:re,clientState:{currentWorkflow:{data:l,isDirty:ie,hasDeletedServerStages:fe}}}=(0,g.v9)(o=>o?.[s.sN]??D.E),{allowedActions:{canDelete:de,canUpdate:E}}=(0,i.ss)(ee.settings["review-workflows"]),[W,h]=e.useState(!1),{getFeature:ge,isLoading:A}=(0,P.q5)(),[O,d]=e.useState(!1),[ce,V]=e.useState(null),{mutateAsync:ue,isLoading:x}=(0,B.useMutation)(async({workflow:o})=>{const{data:{data:r}}=await te(`/admin/review-workflows/workflows/${o.id}`,{data:o});return r},{onSuccess(){M({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}})}}),me=async o=>{V(null);try{return await ue({workflow:o})}catch(r){return r.response.data?.error?.name==="ValidationError"&&r.response.data?.error?.details?.errors?.length>0&&V(r.response.data?.error?.details?.errors.reduce((R,X)=>(U()(R,X.path,X.message),R),{})),M({type:"warning",message:se(r)}),null}},F=async()=>{await me(l),await oe(),h(!1)},we=async()=>{await F()},ve=()=>{h(o=>!o)},y=(0,m.TA)({enableReinitialize:!0,initialErrors:ce,initialValues:l,async onSubmit(){fe?h(!0):a?.[s.Ef]&&u?.workflowCount>parseInt(a[s.Ef],10)?d("workflow"):a?.[s._X]&&l.stages.length>parseInt(a[s._X],10)?d("stage"):F()},validate(o){return(0,b.V)({values:o,formatMessage:n})}});(0,G.v)(s.sN,D.I);const a=ge("review-workflows");return e.useEffect(()=>(v((0,p.fC)({status:T,data:L})),()=>{v((0,p.Js)())}),[T,L,v]),e.useEffect(()=>{!I&&!A&&(a?.[s.Ef]&&u?.workflowCount>parseInt(a[s.Ef],10)?d("workflow"):a?.[s._X]&&l.stages.length>parseInt(a[s._X],10)&&d("stage"))},[l.stages.length,A,I,a,u?.workflowCount,u.workflowsTotal]),e.createElement(e.Fragment,null,e.createElement(c.lx,null),e.createElement(m.Hy,{value:y},e.createElement(m.l0,{onSubmit:y.handleSubmit},e.createElement(c.h4,{navigationAction:e.createElement(c.eJ,{href:"/settings/review-workflows"}),primaryAction:e.createElement(Y.z,{startIcon:e.createElement(H.Z,null),type:"submit",size:"M",disabled:!ie||!E,loading:!W&&x},n({id:"global.save",defaultMessage:"Save"})),subtitle:l.stages.length>0&&n({id:"Settings.review-workflows.page.subtitle",defaultMessage:"{count, plural, one {# stage} other {# stages}}"},{count:l.stages.length}),title:l.name}),e.createElement(c.fC,null,le||re==="loading"?e.createElement(C.k,{justifyContent:"center"},e.createElement(z.a,null,n({id:"Settings.review-workflows.page.isLoading",defaultMessage:"Workflow is loading"}))):e.createElement(C.k,{alignItems:"stretch",direction:"column",gap:7},e.createElement($.Y,{canUpdate:E,contentTypes:{collectionTypes:ae,singleTypes:ne}}),e.createElement(Q.U,{canDelete:de,canUpdate:E,stages:y.values?.stages}))))),e.createElement(i.QH,{bodyText:{id:"Settings.review-workflows.page.delete.confirm.body",defaultMessage:"All entries assigned to deleted stages will be moved to the previous stage. Are you sure you want to save?"},isConfirmButtonLoading:x,isOpen:W,onToggleDialog:ve,onConfirm:we}),e.createElement(f.fC,{isOpen:O==="workflow",onClose:()=>d(!1)},e.createElement(f.Dx,null,n({id:"Settings.review-workflows.edit.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),e.createElement(f.uT,null,n({id:"Settings.review-workflows.edit.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."}))),e.createElement(f.fC,{isOpen:O==="stage",onClose:()=>d(!1)},e.createElement(f.Dx,null,n({id:"Settings.review-workflows.edit.page.stages.limit.title",defaultMessage:"You have reached the limit of stages for this workflow in your plan"})),e.createElement(f.uT,null,n({id:"Settings.review-workflows.edit.page.stages.limit.body",defaultMessage:"Try deleting some stages or contact Sales to enable more stages."}))))}function _(){const w=(0,g.v9)(k._);return e.createElement(i.O4,{permissions:w.settings["review-workflows"].main},e.createElement(q,null))}}}]);
@@ -0,0 +1,56 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[349],{17379:function(D,u,e){e.d(u,{r:function(){return h}});var t=e(32735),n=e(72850),r=e(60216),f=e.n(r),T=e(74506);function m(E,i,o){if(!E||!i)return{display:"none"};const{x:s,y:a}=o;return{transform:`translate(${s}px, ${a}px)`}}function h({renderItem:E}){const{itemType:i,isDragging:o,item:s,initialOffset:a,currentOffset:y,mouseOffset:p}=(0,T.useDragLayer)(w=>({item:w.getItem(),itemType:w.getItemType(),initialOffset:w.getInitialSourceClientOffset(),currentOffset:w.getSourceClientOffset(),isDragging:w.isDragging(),mouseOffset:w.getClientOffset()}));return o?t.createElement(n.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},t.createElement(n.x,{style:m(a,y,p)},E({type:i,item:s}))):null}h.propTypes={renderItem:f().func.isRequired}},50337:function(D,u,e){e.d(u,{pl:function(){return i},aY:function(){return W},q5:function(){return p.q}});var t=e(32735),n=e(19565),r=e(86209),f=e(97889);const T={data:[],isLoading:!0};var h=(L,A)=>(0,f.ZP)(L,v=>{switch(A.type){case"GET_DATA_SUCCEEDED":{v.data=A.data,v.isLoading=!1;break}case"GET_DATA_ERROR":{v.isLoading=!1;break}default:return v}}),i=({ssoEnabled:L})=>{const[A,v]=(0,t.useReducer)(h,T),l=(0,n.lm)(),{get:c}=(0,n.kY)();return(0,t.useEffect)(()=>{(async()=>{try{if(!L){v({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:C}=await c((0,r.IF)("providers"));v({type:"GET_DATA_SUCCEEDED",data:C})}catch(C){console.error(C),v({type:"GET_DATA_ERROR"}),l({type:"warning",message:{id:"notification.error"}})}})()},[c,L,l]),A},o=e(36866),s=e.n(o),a=e(67879),y=e(53038),p=e(53104);const w="strapi-notification-seat-limit",I="https://cloud.strapi.io/profile/billing",P="https://strapi.io/billing/request-seats";var W=()=>{const{formatMessage:L}=(0,a.Z)();let{license:A,isError:v,isLoading:l}=(0,p.q)();const c=(0,n.lm)(),{pathname:O}=(0,y.TH)(),{enforcementUserCount:C,permittedSeats:S,licenseLimitStatus:R,isHostedOnStrapiCloud:N}=A;(0,t.useEffect)(()=>{if(v||l)return;const Z=!s()(S)&&!window.sessionStorage.getItem(`${w}-${O}`)&&(R==="AT_LIMIT"||R==="OVER_LIMIT");let B;R==="OVER_LIMIT"?B="warning":R==="AT_LIMIT"&&(B="softWarning"),Z&&c({type:B,message:L({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:R}),title:L({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:R,enforcementUserCount:C,permittedSeats:S}),link:{url:N?I:P,label:L({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:N})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${w}-${O}`,!0)}})},[c,A,O,L,l,S,R,C,N,v])}},53104:function(D,u,e){e.d(u,{q:function(){return f}});var t=e(32735),n=e(19565),r=e(20108);function f({enabled:T}={enabled:!0}){const{get:m}=(0,n.kY)(),{data:h,isError:E,isLoading:i}=(0,r.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:a}}=await m("/admin/license-limit-information");return a},{enabled:T}),o=h??{},s=t.useCallback(a=>(o?.features??[]).find(p=>p.name===a)?.options??{},[o?.features]);return{license:o,getFeature:s,isError:E,isLoading:i}}},27187:function(D,u,e){e.d(u,{eJ:function(){return v},lx:function(){return L},h4:function(){return l},fC:function(){return A}});var t=e(32735),n=e(96709),r=e(27649),f=e(17e3),T=e(82055),m=e(19565),h=e(29439),E=e(67879),i=e(17379),o=e(2121),s=e(87933),a=e(49372),y=e(16899),p=e(60216),w=e.n(p),I=e(8471);const P=(0,I.ZP)(s.k)`
2
+ svg path {
3
+ fill: ${({theme:c})=>c.colors.neutral600};
4
+ }
5
+ `;function M({name:c}){return t.createElement(s.k,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",gap:3,hasRadius:!0,padding:3,shadow:"tableShadow",width:(0,m.Q1)(300)},t.createElement(P,{alignItems:"center",background:"neutral200",borderRadius:"50%",height:6,justifyContent:"center",width:6},t.createElement(y.Z,{width:`${8/16}rem`})),t.createElement(a.Z,{fontWeight:"bold"},c))}M.propTypes={name:w().string.isRequired};function W({type:c,item:O}){switch(c){case o.uL.STAGE:return t.createElement(M,{...O});default:return null}}function L(){return t.createElement(i.r,{renderItem:W})}function A({children:c}){return t.createElement(n.A,null,t.createElement(r.o,{tabIndex:-1},t.createElement(f.D,null,c)))}function v({href:c}){const{formatMessage:O}=(0,E.Z)();return t.createElement(m.rU,{startIcon:t.createElement(h.Z,null),to:c},O({id:"global.back",defaultMessage:"Back"}))}function l({title:c,subtitle:O,navigationAction:C,primaryAction:S}){return t.createElement(t.Fragment,null,t.createElement(m.SL,{name:c}),t.createElement(T.T,{navigationAction:C,primaryAction:S,title:c,subtitle:O}))}},90562:function(D,u,e){e.d(u,{uT:function(){return W},fC:function(){return v},Dx:function(){return M}});var t=e(32735),n=e(49372),r=e(87933),f=e(85025),T=e(31600),m=e(72850),h=e(50563),E=e(95489),i=e(35331),o=e(60216),s=e.n(o),a=e(67879),y=e(8471),p=e.p+"0cd5f8915b265d5b1856.png";const w="limits-title",I="https://strapi.io/pricing-cloud",P="https://strapi.io/contact-sales";function M({children:l}){return t.createElement(n.Z,{variant:"alpha",id:w},l)}M.propTypes={children:s().node.isRequired};function W({children:l}){return t.createElement(n.Z,{variant:"omega"},l)}W.propTypes={children:s().node.isRequired};function L(){const{formatMessage:l}=(0,a.Z)();return t.createElement(r.k,{gap:2,paddingTop:4},t.createElement(E.Q,{variant:"default",isExternal:!0,href:I},l({id:"Settings.review-workflows.limit.cta.learn",defaultMessage:"Learn more"})),t.createElement(E.Q,{variant:"tertiary",isExternal:!0,href:P},l({id:"Settings.review-workflows.limit.cta.sales",defaultMessage:"Contact Sales"})))}const A=y.ZP.img`
6
+ // Margin top|right reverse the padding of ModalBody
7
+ margin-right: ${({theme:l})=>`-${l.spaces[7]}`};
8
+ margin-top: ${({theme:l})=>`-${l.spaces[7]}`};
9
+ width: 360px;
10
+ `;function v({children:l,isOpen:c,onClose:O}){const{formatMessage:C}=(0,a.Z)();return c?t.createElement(f.P,{labelledBy:w},t.createElement(T.f,null,t.createElement(r.k,{gap:2,paddingLeft:7,position:"relative"},t.createElement(r.k,{alignItems:"start",direction:"column",gap:2,width:"60%"},l,t.createElement(L,null)),t.createElement(r.k,{justifyContent:"end",height:"100%",width:"40%"},t.createElement(A,{src:p,"aria-hidden":!0,alt:"",loading:"lazy"}),t.createElement(m.x,{display:"flex",position:"absolute",right:0,top:0},t.createElement(h.h,{icon:t.createElement(i.Z,null),"aria-label":C({id:"global.close",defaultMessage:"Close"}),onClick:O})))))):null}v.defaultProps={isOpen:!1},v.propTypes={children:s().node.isRequired,isOpen:s().bool,onClose:s().func.isRequired}},2121:function(D,u,e){e.d(u,{$k:function(){return E},Ef:function(){return y},FT:function(){return s},Nj:function(){return h},Ot:function(){return m},VS:function(){return i},_X:function(){return p},gu:function(){return r},lv:function(){return o},qZ:function(){return f},sN:function(){return n},uL:function(){return a},x4:function(){return T}});var t=e(12301);const n="settings_review-workflows",r="Settings/Review_Workflows/RESET_WORKFLOW",f="Settings/Review_Workflows/SET_WORKFLOW",T="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",m="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",h="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",E="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",i="Settings/Review_Workflows/WORKFLOW_UPDATE",o={primary600:"Blue",primary200:"Lilac",alternative600:"Violet",alternative200:"Lavender",success600:"Green",success200:"Pale Green",danger500:"Cherry",danger200:"Pink",warning600:"Orange",warning200:"Yellow",secondary600:"Teal",secondary200:"Baby Blue",neutral400:"Gray",neutral0:"White"},s=t.W.colors.primary600,a={STAGE:"stage"},y="numberOfWorkflows",p="stagesPerWorkflow"},32329:function(D,u,e){e.d(u,{n:function(){return r}});var t=e(19565),n=e(20108);function r(f={}){const{get:T}=(0,t.kY)(),{id:m="",...h}=f,E={populate:"stages"},{data:i,isLoading:o,status:s,refetch:a}=(0,n.useQuery)(["review-workflows","workflows",m],async()=>(await T(`/admin/review-workflows/workflows/${m}`,{params:{...E,...h}})).data);let y=[];return m&&i?.data?y=[i.data]:Array.isArray(i?.data)&&(y=i.data),{meta:i?.meta??{},workflows:y,isLoading:o,status:s,refetch:a}}},32033:function(D,u,e){e.r(u),e.d(u,{default:function(){return B}});var t=e(32735),n=e(19565),r=e(15062),f=e(30305),T=e(87933),m=e(23866),h=e(56755),E=e(73269),i=e(33827),o=e(94547),s=e(19786),a=e(49372),y=e(3685),p=e(35658),w=e(50563),I=e(19406),P=e(68625),M=e(4038),W=e(67879),L=e(20108),A=e(53038),v=e(8471),l=e(90769),c=e(50337),O=e(27187),C=e(90562),S=e(2121),R=e(32329);const N=(0,v.ZP)(n.rU)`
11
+ align-items: center;
12
+ height: ${(0,n.Q1)(32)};
13
+ display: flex;
14
+ justify-content: center;
15
+ padding: ${({theme:d})=>`${d.spaces[2]}}`};
16
+ width: ${(0,n.Q1)(32)};
17
+
18
+ svg {
19
+ height: ${(0,n.Q1)(12)};
20
+ width: ${(0,n.Q1)(12)};
21
+
22
+ path {
23
+ fill: ${({theme:d})=>d.colors.neutral500};
24
+ }
25
+ }
26
+
27
+ &:hover,
28
+ &:focus {
29
+ svg {
30
+ path {
31
+ fill: ${({theme:d})=>d.colors.neutral800};
32
+ }
33
+ }
34
+ }
35
+ `;function Z(){const{formatMessage:d}=(0,W.Z)(),{push:K}=(0,A.k6)(),{collectionTypes:J,singleTypes:b,isLoading:q}=(0,l.G)(),{meta:$,workflows:H,isLoading:F,refetch:_}=(0,R.n)(),[Q,G]=t.useState(null),[ee,k]=t.useState(!1),{del:te}=(0,n.kY)(),{formatAPIError:ne}=(0,n.So)(),V=(0,n.lm)(),{getFeature:se,isLoading:Y}=(0,c.q5)(),{trackUsage:X}=(0,n.rS)(),oe=(0,r.v9)(f._),{allowedActions:{canCreate:z,canDelete:ae}}=(0,n.ss)(oe.settings["review-workflows"]),x=se("review-workflows"),{mutateAsync:re,isLoading:ie}=(0,L.useMutation)(async({workflowId:g,stages:U})=>{const{data:{data:j}}=await te(`/admin/review-workflows/workflows/${g}`,{data:U});return j},{onSuccess(){V({type:"success",message:{id:"notification.success.deleted",defaultMessage:"Deleted"}})}}),le=g=>[...J,...b].find(j=>j.uid===g).info.displayName,ce=g=>{G(g)},de=()=>{G(null)},ue=async()=>{try{const g=await re({workflowId:Q});return await _(),G(null),g}catch(g){return V({type:"warning",message:ne(g)}),null}};return t.useEffect(()=>{!F&&!Y&&x?.[S.Ef]&&$?.workflowCount>parseInt(x[S.Ef],10)&&k(!0)},[Y,F,x,$?.workflowCount,$.workflowsTotal]),t.createElement(t.Fragment,null,t.createElement(O.h4,{primaryAction:t.createElement(n.Qj,{disabled:!z,startIcon:t.createElement(I.Z,null),size:"S",to:"/settings/review-workflows/create",onClick:g=>{x?.[S.Ef]&&$?.workflowCount>=parseInt(x[S.Ef],10)?(g.preventDefault(),k(!0)):X("willCreateWorkflow")}},d({id:"Settings.review-workflows.list.page.create",defaultMessage:"Create new workflow"})),subtitle:d({id:"Settings.review-workflows.list.page.subtitle",defaultMessage:"Manage content review stages and collaborate during content creation from draft to publication"}),title:d({id:"Settings.review-workflows.list.page.title",defaultMessage:"Review Workflows"})}),t.createElement(O.fC,null,F||q?t.createElement(T.k,{justifyContent:"center"},t.createElement(m.a,null,d({id:"Settings.review-workflows.page.list.isLoading",defaultMessage:"Workflows are loading"}))):t.createElement(h.i,{colCount:3,footer:z&&t.createElement(E.c,{icon:t.createElement(I.Z,null),onClick:()=>{x?.[S.Ef]&&$?.workflowCount>=parseInt(x[S.Ef],10)?k(!0):(K("/settings/review-workflows/create"),X("willCreateWorkflow"))}},d({id:"Settings.review-workflows.list.page.create",defaultMessage:"Create new workflow"})),rowCount:1},t.createElement(i.h,null,t.createElement(o.Tr,null,t.createElement(s.Th,null,t.createElement(a.Z,{variant:"sigma"},d({id:"Settings.review-workflows.list.page.list.column.name.title",defaultMessage:"Name"}))),t.createElement(s.Th,null,t.createElement(a.Z,{variant:"sigma"},d({id:"Settings.review-workflows.list.page.list.column.stages.title",defaultMessage:"Stages"}))),t.createElement(s.Th,null,t.createElement(a.Z,{variant:"sigma"},d({id:"Settings.review-workflows.list.page.list.column.contentTypes.title",defaultMessage:"Content Types"}))),t.createElement(s.Th,null,t.createElement(y.T,null,d({id:"Settings.review-workflows.list.page.list.column.actions.title",defaultMessage:"Actions"}))))),t.createElement(p.p,null,H.map(g=>t.createElement(o.Tr,{...(0,n.X7)({fn(U){U.target.nodeName!=="BUTTON"&&K(`/settings/review-workflows/${g.id}`)}}),key:`workflow-${g.id}`},t.createElement(s.Td,{width:(0,n.Q1)(250)},t.createElement(a.Z,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},g.name)),t.createElement(s.Td,null,t.createElement(a.Z,{textColor:"neutral800"},g.stages.length)),t.createElement(s.Td,null,t.createElement(a.Z,{textColor:"neutral800"},(g?.contentTypes??[]).map(le).join(", "))),t.createElement(s.Td,null,t.createElement(T.k,{alignItems:"center",justifyContent:"end"},t.createElement(N,{to:`/settings/review-workflows/${g.id}`,"aria-label":d({id:"Settings.review-workflows.list.page.list.column.actions.edit.label",defaultMessage:"Edit {name}"},{name:g.name})},t.createElement(P.Z,null)),H.length>1&&ae&&t.createElement(w.h,{"aria-label":d({id:"Settings.review-workflows.list.page.list.column.actions.delete.label",defaultMessage:"Delete {name}"},{name:"Default workflow"}),icon:t.createElement(M.Z,null),noBorder:!0,onClick:()=>{ce(g.id)}}))))))),t.createElement(n.QH,{bodyText:{id:"Settings.review-workflows.list.page.delete.confirm.body",defaultMessage:"If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?"},isConfirmButtonLoading:ie,isOpen:!!Q,onToggleDialog:de,onConfirm:ue}),t.createElement(C.fC,{isOpen:ee,onClose:()=>k(!1)},t.createElement(C.Dx,null,d({id:"Settings.review-workflows.list.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),t.createElement(C.uT,null,d({id:"Settings.review-workflows.list.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."})))))}function B(){const d=(0,r.v9)(f._);return t.createElement(n.O4,{permissions:d.settings["review-workflows"].main},t.createElement(Z,null))}},73269:function(D,u,e){e.d(u,{c:function(){return i}});var t=e(74512),n=e(8471),r=e(72850),f=e(9026),T=e(87933),m=e(49372);const h=(0,n.ZP)(r.x)`
36
+ height: ${24/16}rem;
37
+ width: ${24/16}rem;
38
+ border-radius: 50%;
39
+ display: flex;
40
+ justify-content: center;
41
+ align-items: center;
42
+
43
+ svg {
44
+ height: ${10/16}rem;
45
+ width: ${10/16}rem;
46
+ }
47
+
48
+ svg path {
49
+ fill: ${({theme:o})=>o.colors.primary600};
50
+ }
51
+ `,E=(0,n.ZP)(r.x)`
52
+ border-radius: 0 0 ${({theme:o})=>o.borderRadius} ${({theme:o})=>o.borderRadius};
53
+ display: block;
54
+ width: 100%;
55
+ border: none;
56
+ `,i=({children:o,icon:s,...a})=>(0,t.jsxs)("div",{children:[(0,t.jsx)(f.i,{}),(0,t.jsx)(E,{as:"button",background:"primary100",padding:5,...a,children:(0,t.jsxs)(T.k,{children:[(0,t.jsx)(h,{"aria-hidden":!0,background:"primary200",children:s}),(0,t.jsx)(r.x,{paddingLeft:3,children:(0,t.jsx)(m.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:o})})]})})]})},29439:function(D,u,e){e.d(u,{Z:function(){return r}});var t=e(74512);const n=f=>(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...f,children:(0,t.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"})}),r=n}}]);
@@ -1,2 +1,2 @@
1
- (function(){"use strict";var j={},m={};function e(n){var i=m[n];if(i!==void 0)return i.exports;var t=m[n]={id:n,loaded:!1,exports:{}};return j[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}e.m=j,function(){var n=[];e.O=function(i,t,o,r){if(t){r=r||0;for(var a=n.length;a>0&&n[a-1][2]>r;a--)n[a]=n[a-1];n[a]=[t,o,r];return}for(var s=1/0,a=0;a<n.length;a++){for(var t=n[a][0],o=n[a][1],r=n[a][2],c=!0,l=0;l<t.length;l++)(r&!1||s>=r)&&Object.keys(e.O).every(function(p){return e.O[p](t[l])})?t.splice(l--,1):(c=!1,r<s&&(s=r));if(c){n.splice(a--,1);var d=o();d!==void 0&&(i=d)}}return i}}(),function(){e.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(i,{a:i}),i}}(),function(){var n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},i;e.t=function(t,o){if(o&1&&(t=this(t)),o&8||typeof t=="object"&&t&&(o&4&&t.__esModule||o&16&&typeof t.then=="function"))return t;var r=Object.create(null);e.r(r);var a={};i=i||[null,n({}),n([]),n(n)];for(var s=o&2&&t;typeof s=="object"&&!~i.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach(function(c){a[c]=function(){return t[c]}});return a.default=function(){return t},e.d(r,a),r}}(),function(){e.d=function(n,i){for(var t in i)e.o(i,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})}}(),function(){e.f={},e.e=function(n){return Promise.all(Object.keys(e.f).reduce(function(i,t){return e.f[t](n,i),i},[]))}}(),function(){e.u=function(n){return""+({46:"content-type-builder-translation-zh-Hans-json",90:"i18n-translation-de-json",92:"api-tokens-edit-page",96:"email-translation-de-json",123:"ru-json",129:"i18n-translation-es-json",302:"sso-settings-page",320:"en-json",349:"review-workflows-settings-list-view",395:"tr-json",435:"email-translation-it-json",562:"no-json",585:"upload-translation-pt-json",606:"sk-json",615:"upload-translation-uk-json",695:"upload-settings",742:"content-type-builder-translation-th-json",744:"email-translation-cs-json",749:"th-json",801:"Admin-authenticatedApp",830:"he-json",931:"content-type-builder-translation-en-json",994:"content-manager",1001:"content-type-builder-translation-nl-json",1009:"upload-translation-ms-json",1011:"zh-json",1018:"email-translation-ko-json",1023:"content-type-builder-translation-it-json",1056:"upload-translation-tr-json",1157:"email-translation-pt-BR-json",1167:"users-permissions-translation-ko-json",1180:"i18n-translation-tr-json",1312:"ja-json",1331:"upload-translation-es-json",1375:"upload-translation-pt-BR-json",1377:"ko-json",1442:"users-permissions-translation-cs-json",1495:"email-settings-page",1674:"users-permissions-translation-ru-json",1930:"users-permissions-translation-pt-json",2137:"i18n-translation-fr-json",2151:"content-type-builder-translation-id-json",2246:"content-type-builder-translation-dk-json",2248:"gu-json",2282:"users-providers-settings-page",2380:"users-permissions-translation-tr-json",2411:"email-translation-tr-json",2464:"users-permissions-translation-de-json",2489:"upload-translation-ko-json",2492:"transfer-tokens-edit-page",2544:"admin-edit-roles-page",2553:"zh-Hans-json",2567:"content-type-builder-translation-ko-json",2603:"email-translation-en-json",2648:"email-translation-ar-json",2657:"content-type-builder-translation-cs-json",2671:"nl-json",2742:"users-permissions-translation-zh-Hans-json",2812:"audit-logs-settings-page",3025:"ms-json",3038:"upload-translation-sk-json",3043:"email-translation-zh-Hans-json",3095:"users-permissions-translation-sk-json",3098:"users-permissions-translation-fr-json",3166:"email-translation-pt-json",3206:"email-translation-nl-json",3278:"vi-json",3304:"content-type-builder-translation-tr-json",3340:"pt-json",3455:"admin-roles-list",3516:"ca-json",3530:"users-permissions-translation-vi-json",3552:"i18n-settings-page",3650:"upload",3677:"Admin_pluginsPage",3702:"users-permissions-translation-pl-json",3825:"email-translation-dk-json",3948:"content-type-builder-translation-pl-json",3964:"content-type-builder-translation-ms-json",3981:"Admin_homePage",4021:"upload-translation-de-json",4121:"webhook-list-page",4179:"users-permissions-translation-id-json",4263:"admin-edit-users",4299:"api-tokens-create-page",4302:"content-type-builder-translation-zh-json",4409:"review-workflows-settings-edit-view",4587:"email-translation-th-json",4693:"email-translation-fr-json",4804:"upload-translation-ru-json",4816:"transfer-tokens-create-page",4987:"upload-translation-pl-json",5053:"upload-translation-zh-json",5162:"webhook-edit-page",5199:"admin-users",5222:"upload-translation-it-json",5296:"i18n-translation-dk-json",5388:"email-translation-ru-json",5396:"users-permissions-translation-zh-json",5516:"Admin_marketplace",5538:"admin-app",5751:"email-translation-es-json",5880:"upload-translation-ja-json",5894:"hu-json",5895:"Admin_settingsPage",5905:"content-type-builder-list-view",5906:"content-type-builder-translation-pt-BR-json",6232:"upload-translation-th-json",6280:"i18n-translation-ko-json",6332:"hi-json",6377:"users-permissions-translation-dk-json",6434:"upload-translation-en-json",6460:"users-permissions-translation-en-json",6745:"email-translation-uk-json",6784:"email-translation-ms-json",6817:"it-json",6831:"upload-translation-zh-Hans-json",6836:"users-permissions-translation-uk-json",6848:"email-translation-zh-json",6901:"de-json",7048:"users-permissions-translation-nl-json",7094:"users-permissions-translation-ar-json",7155:"content-type-builder-translation-de-json",7186:"content-type-builder-translation-ru-json",7327:"email-translation-vi-json",7347:"highlight.js",7403:"uk-json",7465:"upload-translation-dk-json",7519:"cs-json",7663:"email-translation-id-json",7808:"i18n-translation-zh-json",7817:"users-permissions-translation-es-json",7828:"users-permissions-translation-th-json",7833:"upload-translation-fr-json",7846:"pl-json",7898:"dk-json",7934:"content-type-builder-translation-pt-json",7958:"ar-json",7997:"content-type-builder-translation-sk-json",8006:"fr-json",8056:"api-tokens-list-page",8175:"i18n-translation-en-json",8178:"email-translation-ja-json",8329:"content-type-builder-translation-sv-json",8342:"content-type-builder-translation-es-json",8360:"eu-json",8367:"es-json",8418:"users-email-settings-page",8423:"upload-translation-ca-json",8467:"users-permissions-translation-sv-json",8481:"email-translation-pl-json",8573:"content-type-builder-translation-uk-json",8736:"users-permissions-translation-pt-BR-json",8853:"users-roles-settings-page",8880:"content-type-builder",8897:"id-json",8907:"content-type-builder-translation-ja-json",8936:"review-workflows-settings-create-view",8965:"content-type-builder-translation-fr-json",9220:"users-permissions-translation-ms-json",9303:"sv-json",9366:"i18n-translation-pl-json",9412:"email-translation-sk-json",9460:"users-advanced-settings-page",9497:"Admin_profilePage",9501:"Admin_InternalErrorPage",9502:"users-permissions-translation-ja-json",9511:"content-type-builder-translation-ar-json",9514:"Upload_ConfigureTheView",9600:"transfer-tokens-list-page",9647:"pt-BR-json",9726:"sa-json",9737:"i18n-translation-ru-json",9762:"i18n-translation-zh-Hans-json",9797:"upload-translation-he-json",9903:"ml-json",9905:"users-permissions-translation-it-json"}[n]||n)+"."+{46:"6ff57db6",90:"362384a6",92:"58139df9",96:"1b334230",123:"8193d8c4",129:"87b494d1",302:"ed6f3f15",311:"cb0884bb",320:"4c733bd1",349:"a34be805",395:"56c32cf6",435:"a2ed8c78",448:"829e1344",502:"ccb38223",562:"19a2dbfa",585:"6b937fdf",606:"bf2f057a",615:"9950466a",695:"cac210a0",742:"122277cc",744:"6eaeec6a",749:"5f659396",801:"36b3826c",830:"3cf0b48a",918:"54414509",931:"ed29ff4d",994:"b8d593d4",1001:"997fe8cc",1009:"74f6d746",1011:"1cc86ff0",1018:"4de49b23",1023:"e268ab74",1049:"758a01f5",1056:"74117e5c",1157:"81cca553",1167:"357d7a33",1180:"10f0600d",1312:"91286391",1331:"ba2eb03a",1375:"d1704f0b",1377:"fcf3ec4b",1386:"762d6eb8",1387:"a86ac314",1442:"7e23424a",1495:"d494d1eb",1674:"8e883c67",1727:"b49f0713",1930:"a7eda429",2137:"57ddc77e",2151:"65255f93",2225:"15d1df72",2246:"fd626b67",2248:"5bd62812",2282:"8876c1ee",2379:"d33a2e16",2380:"2bd7ff98",2395:"b0419a54",2411:"e6c0f8fc",2464:"a6fb670f",2489:"a52eab64",2492:"8741529f",2544:"a49b9f4f",2553:"36d81cdc",2567:"04cb309d",2603:"4211d4d0",2648:"88304564",2657:"1ef9e106",2671:"b2b16eea",2742:"6ab714ee",2801:"18f38baf",2812:"4b422831",3025:"0eddffd9",3038:"483a18f6",3043:"c6841563",3095:"7f37180f",3098:"7e55bbbb",3100:"21c343fa",3166:"2a2a0643",3206:"377bdd9f",3278:"ee4c5537",3304:"41f44f77",3340:"ee554a41",3455:"0c129e98",3483:"ddd2d6df",3516:"a53c10b6",3530:"6722a8a2",3552:"47f78016",3650:"cbfeefa5",3677:"8728ff6e",3702:"0a7287d1",3739:"63e352f1",3825:"85402492",3948:"634f638b",3964:"f6b743b9",3981:"ac9dfb86",3984:"ea7b8036",4021:"420c943b",4121:"65e1b5bb",4179:"a5a0fb59",4263:"67704088",4299:"46c2ea84",4302:"3532b962",4409:"53c00afe",4546:"ff9fdf30",4587:"660fa9a8",4628:"9cbb6df5",4693:"78be2787",4804:"675f6b93",4816:"1597e6ab",4987:"426f31c9",5053:"e1dd6eb2",5162:"a91f27a1",5199:"3279ffb0",5222:"e87d7966",5296:"89401417",5388:"6bce37dd",5396:"7978eaa6",5483:"ed2c7efa",5516:"f0b87fce",5538:"1c3f7fd6",5542:"2415a393",5751:"0b6b1006",5880:"44b88e7a",5894:"9f4aae42",5895:"8c600d1a",5905:"bf9be456",5906:"6a95dc71",6158:"c974fd83",6232:"98d35574",6280:"ef4f9471",6332:"9104eb78",6377:"60e50f48",6434:"8b7573ce",6460:"4b302272",6691:"f880a0b6",6745:"bd1fb6bf",6784:"7390477e",6817:"bfe27ed8",6831:"db163b6b",6836:"6a0a1572",6848:"7a2232ea",6901:"b3be02c7",7030:"b98dcedf",7048:"c9f92a3c",7094:"7d87d54d",7155:"63fcff7b",7186:"3af65503",7327:"9fb7e6d7",7347:"28a1547e",7403:"b7e38370",7464:"c6d0565c",7465:"bbb2fa05",7519:"4b44411c",7663:"c97239fe",7808:"bef2dc07",7817:"35007573",7828:"1e9c0247",7833:"baab9911",7846:"f094a417",7898:"842aa391",7934:"ddb44f8c",7958:"f530bc3f",7997:"c6078082",8006:"aa8839d2",8056:"505bf7e0",8175:"1ec7becf",8178:"63eebd02",8276:"23e0763b",8298:"fd253c9f",8329:"a6df2462",8342:"a4a361a9",8360:"633025f0",8367:"f57b5335",8418:"a87978e5",8423:"57954414",8467:"17187818",8481:"97d0db97",8573:"e1315acd",8736:"1b6d2920",8853:"0431f48c",8880:"40534de5",8897:"41e07c46",8907:"9be0d5b2",8936:"dfd87e1f",8965:"499c3a46",9220:"c83f87c4",9303:"fd0e86c6",9366:"dfac513d",9412:"53da2fcd",9460:"18379a56",9497:"a968035f",9501:"f45f2462",9502:"891fe76e",9511:"3e808e2f",9514:"345ac1e0",9600:"22147d2c",9647:"dec7fb01",9726:"a56836f1",9737:"401bc498",9762:"757ce62d",9797:"0a830937",9806:"91360bb6",9903:"557aa14c",9905:"0705465d",9944:"7af075a5"}[n]+".chunk.js"}}(),function(){e.miniCssF=function(n){}}(),function(){e.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){e.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)}}(),function(){var n={},i="@strapi/admin:";e.l=function(t,o,r,a){if(n[t]){n[t].push(o);return}var s,c;if(r!==void 0)for(var l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var f=l[d];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==i+r){s=f;break}}s||(c=!0,s=document.createElement("script"),s.charset="utf-8",s.timeout=120,e.nc&&s.setAttribute("nonce",e.nc),s.setAttribute("data-webpack",i+r),s.src=t),n[t]=[o];var u=function(g,p){s.onerror=s.onload=null,clearTimeout(b);var h=n[t];if(delete n[t],s.parentNode&&s.parentNode.removeChild(s),h&&h.forEach(function(v){return v(p)}),g)return g(p)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),c&&document.head.appendChild(s)}}(),function(){e.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){e.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n}}(),function(){e.p="/admin/"}(),function(){e.b=document.baseURI||self.location.href;var n={1303:0};e.f.j=function(o,r){var a=e.o(n,o)?n[o]:void 0;if(a!==0)if(a)r.push(a[2]);else if(o!=1303){var s=new Promise(function(f,u){a=n[o]=[f,u]});r.push(a[2]=s);var c=e.p+e.u(o),l=new Error,d=function(f){if(e.o(n,o)&&(a=n[o],a!==0&&(n[o]=void 0),a)){var u=f&&(f.type==="load"?"missing":f.type),b=f&&f.target&&f.target.src;l.message="Loading chunk "+o+` failed.
2
- (`+u+": "+b+")",l.name="ChunkLoadError",l.type=u,l.request=b,a[1](l)}};e.l(c,d,"chunk-"+o,o)}else n[o]=0},e.O.j=function(o){return n[o]===0};var i=function(o,r){var a=r[0],s=r[1],c=r[2],l,d,f=0;if(a.some(function(b){return n[b]!==0})){for(l in s)e.o(s,l)&&(e.m[l]=s[l]);if(c)var u=c(e)}for(o&&o(r);f<a.length;f++)d=a[f],e.o(n,d)&&n[d]&&n[d][0](),n[d]=0;return e.O(u)},t=self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[];t.forEach(i.bind(null,0)),t.push=i.bind(null,t.push.bind(t))}(),function(){e.nc=void 0}()})();
1
+ (function(){"use strict";var j={},m={};function e(n){var i=m[n];if(i!==void 0)return i.exports;var t=m[n]={id:n,loaded:!1,exports:{}};return j[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}e.m=j,function(){var n=[];e.O=function(i,t,o,r){if(t){r=r||0;for(var s=n.length;s>0&&n[s-1][2]>r;s--)n[s]=n[s-1];n[s]=[t,o,r];return}for(var a=1/0,s=0;s<n.length;s++){for(var t=n[s][0],o=n[s][1],r=n[s][2],d=!0,l=0;l<t.length;l++)(r&!1||a>=r)&&Object.keys(e.O).every(function(p){return e.O[p](t[l])})?t.splice(l--,1):(d=!1,r<a&&(a=r));if(d){n.splice(s--,1);var c=o();c!==void 0&&(i=c)}}return i}}(),function(){e.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(i,{a:i}),i}}(),function(){var n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},i;e.t=function(t,o){if(o&1&&(t=this(t)),o&8||typeof t=="object"&&t&&(o&4&&t.__esModule||o&16&&typeof t.then=="function"))return t;var r=Object.create(null);e.r(r);var s={};i=i||[null,n({}),n([]),n(n)];for(var a=o&2&&t;typeof a=="object"&&!~i.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach(function(d){s[d]=function(){return t[d]}});return s.default=function(){return t},e.d(r,s),r}}(),function(){e.d=function(n,i){for(var t in i)e.o(i,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})}}(),function(){e.f={},e.e=function(n){return Promise.all(Object.keys(e.f).reduce(function(i,t){return e.f[t](n,i),i},[]))}}(),function(){e.u=function(n){return""+({46:"content-type-builder-translation-zh-Hans-json",90:"i18n-translation-de-json",92:"api-tokens-edit-page",96:"email-translation-de-json",123:"ru-json",129:"i18n-translation-es-json",302:"sso-settings-page",320:"en-json",349:"review-workflows-settings-list-view",395:"tr-json",435:"email-translation-it-json",562:"no-json",585:"upload-translation-pt-json",606:"sk-json",615:"upload-translation-uk-json",695:"upload-settings",742:"content-type-builder-translation-th-json",744:"email-translation-cs-json",749:"th-json",801:"Admin-authenticatedApp",830:"he-json",931:"content-type-builder-translation-en-json",994:"content-manager",1001:"content-type-builder-translation-nl-json",1009:"upload-translation-ms-json",1011:"zh-json",1018:"email-translation-ko-json",1023:"content-type-builder-translation-it-json",1056:"upload-translation-tr-json",1157:"email-translation-pt-BR-json",1167:"users-permissions-translation-ko-json",1180:"i18n-translation-tr-json",1312:"ja-json",1331:"upload-translation-es-json",1375:"upload-translation-pt-BR-json",1377:"ko-json",1442:"users-permissions-translation-cs-json",1495:"email-settings-page",1674:"users-permissions-translation-ru-json",1930:"users-permissions-translation-pt-json",2137:"i18n-translation-fr-json",2151:"content-type-builder-translation-id-json",2246:"content-type-builder-translation-dk-json",2248:"gu-json",2282:"users-providers-settings-page",2380:"users-permissions-translation-tr-json",2411:"email-translation-tr-json",2464:"users-permissions-translation-de-json",2489:"upload-translation-ko-json",2492:"transfer-tokens-edit-page",2544:"admin-edit-roles-page",2553:"zh-Hans-json",2567:"content-type-builder-translation-ko-json",2603:"email-translation-en-json",2648:"email-translation-ar-json",2657:"content-type-builder-translation-cs-json",2671:"nl-json",2742:"users-permissions-translation-zh-Hans-json",2812:"audit-logs-settings-page",3025:"ms-json",3038:"upload-translation-sk-json",3043:"email-translation-zh-Hans-json",3095:"users-permissions-translation-sk-json",3098:"users-permissions-translation-fr-json",3166:"email-translation-pt-json",3206:"email-translation-nl-json",3278:"vi-json",3304:"content-type-builder-translation-tr-json",3340:"pt-json",3455:"admin-roles-list",3516:"ca-json",3530:"users-permissions-translation-vi-json",3552:"i18n-settings-page",3650:"upload",3677:"Admin_pluginsPage",3702:"users-permissions-translation-pl-json",3825:"email-translation-dk-json",3948:"content-type-builder-translation-pl-json",3964:"content-type-builder-translation-ms-json",3981:"Admin_homePage",4021:"upload-translation-de-json",4121:"webhook-list-page",4179:"users-permissions-translation-id-json",4263:"admin-edit-users",4299:"api-tokens-create-page",4302:"content-type-builder-translation-zh-json",4409:"review-workflows-settings-edit-view",4587:"email-translation-th-json",4693:"email-translation-fr-json",4804:"upload-translation-ru-json",4816:"transfer-tokens-create-page",4987:"upload-translation-pl-json",5053:"upload-translation-zh-json",5162:"webhook-edit-page",5199:"admin-users",5222:"upload-translation-it-json",5296:"i18n-translation-dk-json",5388:"email-translation-ru-json",5396:"users-permissions-translation-zh-json",5516:"Admin_marketplace",5538:"admin-app",5751:"email-translation-es-json",5880:"upload-translation-ja-json",5894:"hu-json",5895:"Admin_settingsPage",5905:"content-type-builder-list-view",5906:"content-type-builder-translation-pt-BR-json",6232:"upload-translation-th-json",6280:"i18n-translation-ko-json",6332:"hi-json",6377:"users-permissions-translation-dk-json",6434:"upload-translation-en-json",6460:"users-permissions-translation-en-json",6745:"email-translation-uk-json",6784:"email-translation-ms-json",6817:"it-json",6831:"upload-translation-zh-Hans-json",6836:"users-permissions-translation-uk-json",6848:"email-translation-zh-json",6901:"de-json",7048:"users-permissions-translation-nl-json",7094:"users-permissions-translation-ar-json",7155:"content-type-builder-translation-de-json",7186:"content-type-builder-translation-ru-json",7327:"email-translation-vi-json",7347:"highlight.js",7403:"uk-json",7465:"upload-translation-dk-json",7519:"cs-json",7663:"email-translation-id-json",7808:"i18n-translation-zh-json",7817:"users-permissions-translation-es-json",7828:"users-permissions-translation-th-json",7833:"upload-translation-fr-json",7846:"pl-json",7898:"dk-json",7934:"content-type-builder-translation-pt-json",7958:"ar-json",7997:"content-type-builder-translation-sk-json",8006:"fr-json",8056:"api-tokens-list-page",8175:"i18n-translation-en-json",8178:"email-translation-ja-json",8329:"content-type-builder-translation-sv-json",8342:"content-type-builder-translation-es-json",8360:"eu-json",8367:"es-json",8418:"users-email-settings-page",8423:"upload-translation-ca-json",8467:"users-permissions-translation-sv-json",8481:"email-translation-pl-json",8573:"content-type-builder-translation-uk-json",8736:"users-permissions-translation-pt-BR-json",8853:"users-roles-settings-page",8880:"content-type-builder",8897:"id-json",8907:"content-type-builder-translation-ja-json",8936:"review-workflows-settings-create-view",8965:"content-type-builder-translation-fr-json",9220:"users-permissions-translation-ms-json",9303:"sv-json",9366:"i18n-translation-pl-json",9412:"email-translation-sk-json",9460:"users-advanced-settings-page",9497:"Admin_profilePage",9501:"Admin_InternalErrorPage",9502:"users-permissions-translation-ja-json",9511:"content-type-builder-translation-ar-json",9514:"Upload_ConfigureTheView",9600:"transfer-tokens-list-page",9647:"pt-BR-json",9726:"sa-json",9737:"i18n-translation-ru-json",9762:"i18n-translation-zh-Hans-json",9797:"upload-translation-he-json",9903:"ml-json",9905:"users-permissions-translation-it-json"}[n]||n)+"."+{46:"6ff57db6",90:"362384a6",92:"58139df9",96:"1b334230",123:"8193d8c4",129:"87b494d1",302:"3a1ed8c9",311:"cb0884bb",320:"4c733bd1",349:"3ee9190d",395:"56c32cf6",435:"a2ed8c78",448:"829e1344",502:"8ae8ef60",562:"19a2dbfa",585:"6b937fdf",606:"bf2f057a",615:"9950466a",695:"cac210a0",742:"122277cc",744:"6eaeec6a",749:"5f659396",801:"24998de8",830:"3cf0b48a",918:"54414509",931:"ed29ff4d",994:"8772445b",1001:"997fe8cc",1009:"74f6d746",1011:"1cc86ff0",1018:"4de49b23",1023:"e268ab74",1049:"758a01f5",1056:"74117e5c",1157:"81cca553",1167:"357d7a33",1180:"10f0600d",1312:"91286391",1331:"ba2eb03a",1375:"d1704f0b",1377:"fcf3ec4b",1386:"762d6eb8",1387:"a86ac314",1442:"7e23424a",1495:"d494d1eb",1674:"8e883c67",1727:"b49f0713",1930:"a7eda429",2137:"57ddc77e",2151:"65255f93",2225:"15d1df72",2246:"fd626b67",2248:"5bd62812",2282:"8876c1ee",2379:"0ca87a89",2380:"2bd7ff98",2395:"df7a044a",2411:"e6c0f8fc",2464:"a6fb670f",2489:"a52eab64",2492:"8741529f",2544:"a49b9f4f",2553:"36d81cdc",2567:"04cb309d",2603:"4211d4d0",2648:"88304564",2657:"1ef9e106",2671:"b2b16eea",2742:"6ab714ee",2801:"b1140c9b",2812:"4b422831",3025:"0eddffd9",3038:"483a18f6",3043:"c6841563",3095:"7f37180f",3098:"7e55bbbb",3100:"2ba4df95",3166:"2a2a0643",3206:"377bdd9f",3278:"ee4c5537",3304:"41f44f77",3340:"ee554a41",3455:"0c129e98",3483:"e2ee2547",3516:"a53c10b6",3530:"6722a8a2",3552:"47f78016",3650:"cbfeefa5",3677:"8728ff6e",3702:"0a7287d1",3739:"63e352f1",3825:"85402492",3948:"634f638b",3964:"f6b743b9",3981:"ac9dfb86",3984:"dda474f7",4021:"420c943b",4121:"65e1b5bb",4179:"a5a0fb59",4263:"67704088",4299:"46c2ea84",4302:"3532b962",4409:"77299c63",4546:"ff9fdf30",4587:"660fa9a8",4628:"9cbb6df5",4693:"78be2787",4804:"675f6b93",4816:"1597e6ab",4987:"426f31c9",5053:"e1dd6eb2",5162:"a91f27a1",5199:"3279ffb0",5222:"e87d7966",5296:"89401417",5388:"6bce37dd",5396:"7978eaa6",5483:"6dd2e776",5516:"f0b87fce",5538:"c2e4e128",5542:"2415a393",5751:"0b6b1006",5880:"44b88e7a",5894:"9f4aae42",5895:"8c600d1a",5905:"bf9be456",5906:"6a95dc71",6158:"c974fd83",6232:"98d35574",6280:"ef4f9471",6332:"9104eb78",6377:"60e50f48",6434:"8b7573ce",6460:"4b302272",6691:"f880a0b6",6745:"bd1fb6bf",6784:"7390477e",6817:"bfe27ed8",6831:"db163b6b",6836:"6a0a1572",6848:"7a2232ea",6901:"b3be02c7",7030:"b98dcedf",7048:"c9f92a3c",7065:"99ca8ab1",7094:"7d87d54d",7155:"63fcff7b",7186:"3af65503",7327:"9fb7e6d7",7347:"28a1547e",7403:"b7e38370",7464:"8a6c1e6c",7465:"bbb2fa05",7519:"4b44411c",7663:"c97239fe",7808:"bef2dc07",7817:"35007573",7828:"1e9c0247",7833:"baab9911",7846:"f094a417",7898:"842aa391",7934:"ddb44f8c",7958:"f530bc3f",7997:"c6078082",8006:"aa8839d2",8056:"505bf7e0",8175:"1ec7becf",8178:"63eebd02",8276:"6c7b8e6e",8329:"a6df2462",8342:"a4a361a9",8360:"633025f0",8367:"f57b5335",8418:"a87978e5",8423:"57954414",8467:"17187818",8481:"97d0db97",8573:"e1315acd",8736:"1b6d2920",8853:"0431f48c",8880:"40534de5",8897:"41e07c46",8907:"9be0d5b2",8936:"d4b5dbb8",8965:"499c3a46",9220:"c83f87c4",9303:"fd0e86c6",9366:"dfac513d",9412:"53da2fcd",9460:"18379a56",9497:"a968035f",9501:"f45f2462",9502:"891fe76e",9511:"3e808e2f",9514:"345ac1e0",9600:"22147d2c",9647:"dec7fb01",9726:"a56836f1",9737:"401bc498",9762:"757ce62d",9797:"0a830937",9806:"91360bb6",9903:"557aa14c",9905:"0705465d",9944:"7af075a5"}[n]+".chunk.js"}}(),function(){e.miniCssF=function(n){}}(),function(){e.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){e.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)}}(),function(){var n={},i="@strapi/admin:";e.l=function(t,o,r,s){if(n[t]){n[t].push(o);return}var a,d;if(r!==void 0)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var f=l[c];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==i+r){a=f;break}}a||(d=!0,a=document.createElement("script"),a.charset="utf-8",a.timeout=120,e.nc&&a.setAttribute("nonce",e.nc),a.setAttribute("data-webpack",i+r),a.src=t),n[t]=[o];var u=function(g,p){a.onerror=a.onload=null,clearTimeout(b);var h=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(function(v){return v(p)}),g)return g(p)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),d&&document.head.appendChild(a)}}(),function(){e.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){e.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n}}(),function(){e.p="/admin/"}(),function(){e.b=document.baseURI||self.location.href;var n={1303:0};e.f.j=function(o,r){var s=e.o(n,o)?n[o]:void 0;if(s!==0)if(s)r.push(s[2]);else if(o!=1303){var a=new Promise(function(f,u){s=n[o]=[f,u]});r.push(s[2]=a);var d=e.p+e.u(o),l=new Error,c=function(f){if(e.o(n,o)&&(s=n[o],s!==0&&(n[o]=void 0),s)){var u=f&&(f.type==="load"?"missing":f.type),b=f&&f.target&&f.target.src;l.message="Loading chunk "+o+` failed.
2
+ (`+u+": "+b+")",l.name="ChunkLoadError",l.type=u,l.request=b,s[1](l)}};e.l(d,c,"chunk-"+o,o)}else n[o]=0},e.O.j=function(o){return n[o]===0};var i=function(o,r){var s=r[0],a=r[1],d=r[2],l,c,f=0;if(s.some(function(b){return n[b]!==0})){for(l in a)e.o(a,l)&&(e.m[l]=a[l]);if(d)var u=d(e)}for(o&&o(r);f<s.length;f++)c=s[f],e.o(n,c)&&n[c]&&n[c][0](),n[c]=0;return e.O(u)},t=self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[];t.forEach(i.bind(null,0)),t.push=i.bind(null,t.push.bind(t))}(),function(){e.nc=void 0}()})();
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[302],{68951:function(J,m,e){e.r(m),e.d(m,{SingleSignOn:function(){return R},default:function(){return k}});var t=e(32735),p=e(96709),M=e(27649),y=e(82055),C=e(41415),I=e(17e3),O=e(87933),b=e(49372),A=e(15335),u=e(5803),P=e(71842),D=e(68465),T=e(84967),f=e(6407),o=e(19565),x=e(66456),F=e(89793),B=e.n(F),G=e(67879),h=e(15062),v=e(2160),S=e(30305),H=e(86209),i=e(24346),Z=i.Ry().shape({autoRegister:i.Xg().required(o.I0.required),defaultRole:i.nK().when("autoRegister",(a,l)=>a?l.required(o.I0.required):l.nullable()),ssoLockedRoles:i.IX().nullable().of(i.nK().when("ssoLockedRoles",(a,l)=>a?l.required(o.I0.required):l.nullable()))});const R=()=>{const{formatMessage:a}=(0,G.Z)(),l=(0,h.v9)(S._),{isLoading:z,allowedActions:{canUpdate:c,canReadRoles:K}}=(0,o.ss)({...l.settings.sso,readRoles:l.settings.roles.read}),[{formErrors:n,initialData:U,isLoading:X,modifiedData:r,showHeaderButtonLoader:N},Y,{handleChange:d,handleSubmit:W}]=(0,v.G4)((0,H.IF)("providers/options"),Z,()=>{},["autoRegister","defaultRole","ssoLockedRoles"]),{roles:E}=(0,v.bF)(K);(0,o.go)();const j=z||X;(0,t.useEffect)(()=>{if(n.defaultRole){const s='[name="defaultRole"]';document.querySelector(s).focus()}},[n]);const L=B()(U,r);return t.createElement(p.A,null,t.createElement(o.SL,{name:"SSO"}),t.createElement(M.o,{tabIndex:-1},t.createElement("form",{onSubmit:s=>{if(L){s.preventDefault();return}W(s)}},t.createElement(y.T,{primaryAction:t.createElement(C.z,{"data-testid":"save-button",disabled:L,loading:N,startIcon:t.createElement(x.Z,null),type:"submit",size:"L"},a({id:"global.save",defaultMessage:"Save"})),title:a({id:"Settings.sso.title",defaultMessage:"Single Sign-On"}),subtitle:a({id:"Settings.sso.description",defaultMessage:"Configure the settings for the Single Sign-On feature."})}),t.createElement(I.D,null,j?t.createElement(o.dO,null):t.createElement(O.k,{direction:"column",alignItems:"stretch",gap:4,background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},t.createElement(b.Z,{variant:"delta",as:"h2"},a({id:"global.settings",defaultMessage:"Settings"})),t.createElement(A.r,{gap:4},t.createElement(u.P,{col:6,m:6,s:12},t.createElement(P.s,{"aria-label":"autoRegister","data-testid":"autoRegister",disabled:!c,checked:r.autoRegister,hint:a({id:"Settings.sso.form.registration.description",defaultMessage:"Create new user on SSO login if no account exists"}),label:a({id:"Settings.sso.form.registration.label",defaultMessage:"Auto-registration"}),name:"autoRegister",offLabel:a({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:a({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:s=>{d({target:{name:"autoRegister",value:s.target.checked}})}})),t.createElement(u.P,{col:6,m:6,s:12},t.createElement(D.P,{disabled:!c,hint:a({id:"Settings.sso.form.defaultRole.description",defaultMessage:"It will attach the new authenticated user to the selected role"}),error:n.defaultRole?a({id:n.defaultRole.id,defaultMessage:n.defaultRole.id}):"",label:a({id:"Settings.sso.form.defaultRole.label",defaultMessage:"Default role"}),name:"defaultRole",onChange:s=>{d({target:{name:"defaultRole",value:s}})},placeholder:a({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),value:r.defaultRole},E.map(({id:s,name:g})=>t.createElement(T.W,{key:s,value:s.toString()},g)))),t.createElement(u.P,{col:6,m:6,s:12},t.createElement(f.NU,{disabled:!c,hint:a({id:"Settings.sso.form.localAuthenticationLock.description",defaultMessage:"Select the roles for which you want to disable the local authentication"}),error:n.ssoLockedRoles?a({id:n.ssoLockedRoles.id,defaultMessage:n.ssoLockedRoles.id}):"",label:a({id:"Settings.sso.form.localAuthenticationLock.label",defaultMessage:"Local authentication lock-out"}),name:"ssoLockedRoles",onChange:s=>{d({target:{name:"ssoLockedRoles",value:s}})},placeholder:a({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),onClear:()=>{d({target:{name:"ssoLockedRoles",emptyArray:[]}})},value:r.ssoLockedRoles||[],withTags:!0},E.map(({id:s,name:g})=>t.createElement(f.ML,{key:s,value:s.toString()},g))))))))))};var k=()=>{const a=(0,h.v9)(S._);return t.createElement(o.O4,{permissions:a.settings.sso.main},t.createElement(R,null))}}}]);
@@ -6,6 +6,9 @@ export const ADMIN_PERMISSIONS_EE = {
6
6
  },
7
7
  'review-workflows': {
8
8
  main: [{ action: 'admin::review-workflows.read', subject: null }],
9
+ create: [{ action: 'admin::review-workflows.create', subject: null }],
10
+ delete: [{ action: 'admin::review-workflows.delete', subject: null }],
11
+ update: [{ action: 'admin::review-workflows.update', subject: null }],
9
12
  },
10
13
  sso: {
11
14
  main: [{ action: 'admin::provider-login.read', subject: null }],
@@ -11,8 +11,12 @@ import { useIntl } from 'react-intl';
11
11
  import { useMutation } from 'react-query';
12
12
 
13
13
  import { Information } from '../../../../../../admin/src/content-manager/pages/EditView/Information';
14
- import useLicenseLimits from '../../../../hooks/useLicenseLimits';
14
+ import { useLicenseLimits } from '../../../../hooks/useLicenseLimits';
15
15
  import * as LimitsModal from '../../../../pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal';
16
+ import {
17
+ CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,
18
+ CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,
19
+ } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/constants';
16
20
  import { useReviewWorkflows } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows';
17
21
  import { getStageColorByHex } from '../../../../pages/SettingsPage/pages/ReviewWorkflows/utils/colors';
18
22
 
@@ -88,7 +92,10 @@ export function InformationBoxEE() {
88
92
  *
89
93
  */
90
94
 
91
- if (limits?.workflows && parseInt(limits.workflows, 10) > meta.workflowCount) {
95
+ if (
96
+ limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
97
+ parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < meta.workflowCount
98
+ ) {
92
99
  setShowLimitModal('workflow');
93
100
 
94
101
  /**
@@ -101,8 +108,9 @@ export function InformationBoxEE() {
101
108
  *
102
109
  */
103
110
  } else if (
104
- limits?.stagesPerWorkflow &&
105
- parseInt(limits.stagesPerWorkflow, 10) > workflow.stages.length
111
+ limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&
112
+ parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) <
113
+ workflow.stages.length
106
114
  ) {
107
115
  setShowLimitModal('stage');
108
116
  } else {
@@ -1,4 +1,4 @@
1
1
  // eslint-disable-next-line import/prefer-default-export
2
2
  export { default as useAuthProviders } from './useAuthProviders';
3
3
  export { default as useLicenseLimitNotification } from './useLicenseLimitNotification';
4
- export { default as useLicenseLimits } from './useLicenseLimits';
4
+ export { useLicenseLimits } from './useLicenseLimits';
@@ -10,7 +10,7 @@ import isNil from 'lodash/isNil';
10
10
  import { useIntl } from 'react-intl';
11
11
  import { useLocation } from 'react-router-dom';
12
12
 
13
- import useLicenseLimits from '../useLicenseLimits';
13
+ import { useLicenseLimits } from '../useLicenseLimits';
14
14
 
15
15
  const STORAGE_KEY_PREFIX = 'strapi-notification-seat-limit';
16
16
 
@@ -0,0 +1,8 @@
1
+ export const useLicenseLimits = jest.fn().mockReturnValue({
2
+ isError: false,
3
+ isLoading: false,
4
+ license: {},
5
+ getFeature() {
6
+ return {};
7
+ },
8
+ });
@@ -1,3 +1 @@
1
- import { useLicenseLimits } from './useLicenseLimits';
2
-
3
- export default useLicenseLimits;
1
+ export { useLicenseLimits } from './useLicenseLimits';
@@ -1,20 +1,10 @@
1
1
  import * as React from 'react';
2
2
 
3
- import { useFetchClient, useRBAC } from '@strapi/helper-plugin';
3
+ import { useFetchClient } from '@strapi/helper-plugin';
4
4
  import { useQuery } from 'react-query';
5
- import { useSelector } from 'react-redux';
6
5
 
7
- import { selectAdminPermissions } from '../../../../admin/src/pages/App/selectors';
8
-
9
- export function useLicenseLimits() {
10
- const permissions = useSelector(selectAdminPermissions);
6
+ export function useLicenseLimits({ enabled } = { enabled: true }) {
11
7
  const { get } = useFetchClient();
12
- const {
13
- isLoading: isRBACLoading,
14
- allowedActions: { canRead, canCreate, canUpdate, canDelete },
15
- } = useRBAC(permissions.settings.users);
16
- const hasPermissions = canRead && canCreate && canUpdate && canDelete;
17
-
18
8
  const { data, isError, isLoading } = useQuery(
19
9
  ['ee', 'license-limit-info'],
20
10
  async () => {
@@ -25,7 +15,7 @@ export function useLicenseLimits() {
25
15
  return data;
26
16
  },
27
17
  {
28
- enabled: !isRBACLoading && hasPermissions,
18
+ enabled,
29
19
  }
30
20
  );
31
21
 
@@ -2,22 +2,37 @@ import React from 'react';
2
2
 
3
3
  import { Flex, GridItem, Icon, Tooltip, Typography } from '@strapi/design-system';
4
4
  import { Link } from '@strapi/design-system/v2';
5
- import { pxToRem } from '@strapi/helper-plugin';
5
+ import { pxToRem, useRBAC } from '@strapi/helper-plugin';
6
6
  import { ExclamationMarkCircle, ExternalLink } from '@strapi/icons';
7
7
  import { useIntl } from 'react-intl';
8
+ import { useSelector } from 'react-redux';
8
9
 
9
- import { useLicenseLimits } from '../../../../../../hooks';
10
+ import { selectAdminPermissions } from '../../../../../../../../admin/src/pages/App/selectors';
11
+ import { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';
10
12
 
11
13
  const BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';
12
14
  const BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';
13
15
 
14
16
  export const AdminSeatInfoEE = () => {
15
17
  const { formatMessage } = useIntl();
18
+ const permissions = useSelector(selectAdminPermissions);
19
+ const {
20
+ isLoading: isRBACLoading,
21
+ allowedActions: { canRead, canCreate, canUpdate, canDelete },
22
+ } = useRBAC(permissions.settings.users);
16
23
  const {
17
24
  license: { licenseLimitStatus, enforcementUserCount, permittedSeats, isHostedOnStrapiCloud },
18
25
  isError,
19
- isLoading,
20
- } = useLicenseLimits();
26
+ isLoading: isLicenseLoading,
27
+ } = useLicenseLimits({
28
+ // TODO: this creates a waterfall which we should avoid to render earlier, but for that
29
+ // we will have to move away from data-fetching hooks to query functions.
30
+ // Short-term we could at least implement a loader, for the user to have visual feedback
31
+ // in case the requests take a while
32
+ enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,
33
+ });
34
+
35
+ const isLoading = isRBACLoading || isLicenseLoading;
21
36
 
22
37
  if (isError || isLoading || !permittedSeats) {
23
38
  return null;
@@ -50,6 +50,7 @@ export function Stage({
50
50
  index,
51
51
  canDelete,
52
52
  canReorder,
53
+ canUpdate,
53
54
  isOpen: isOpenDefault = false,
54
55
  stagesCount,
55
56
  }) {
@@ -195,6 +196,8 @@ export function Stage({
195
196
  }}
196
197
  expanded={isOpen}
197
198
  shadow="tableShadow"
199
+ error={nameMeta.error ?? colorMeta?.error ?? false}
200
+ hasErrorMessage={false}
198
201
  >
199
202
  <AccordionToggle
200
203
  title={nameField.value}
@@ -216,6 +219,7 @@ export function Stage({
216
219
 
217
220
  <IconButton
218
221
  background="transparent"
222
+ disabled={!canUpdate}
219
223
  forwardedAs="div"
220
224
  role="button"
221
225
  noBorder
@@ -240,6 +244,7 @@ export function Stage({
240
244
  <TextInput
241
245
  {...nameField}
242
246
  id={nameField.name}
247
+ disabled={!canUpdate}
243
248
  label={formatMessage({
244
249
  id: 'Settings.review-workflows.stage.name.label',
245
250
  defaultMessage: 'Stage name',
@@ -255,6 +260,7 @@ export function Stage({
255
260
 
256
261
  <GridItem col={6}>
257
262
  <SingleSelect
263
+ disabled={!canUpdate}
258
264
  error={colorMeta?.error ?? false}
259
265
  id={colorField.name}
260
266
  required
@@ -319,5 +325,6 @@ Stage.propTypes = PropTypes.shape({
319
325
  color: PropTypes.string.isRequired,
320
326
  canDelete: PropTypes.bool.isRequired,
321
327
  canReorder: PropTypes.bool.isRequired,
328
+ canUpdate: PropTypes.bool.isRequired,
322
329
  stagesCount: PropTypes.number.isRequired,
323
330
  }).isRequired;
@@ -12,26 +12,27 @@ import { AddStage } from '../AddStage';
12
12
 
13
13
  import { Stage } from './Stage';
14
14
 
15
- const StagesContainer = styled(Box)`
16
- position: relative;
17
- `;
18
-
19
15
  const Background = styled(Box)`
20
- left: 50%;
21
- position: absolute;
22
- top: 0;
23
16
  transform: translateX(-50%);
24
17
  `;
25
18
 
26
- function Stages({ stages }) {
19
+ export function Stages({ canDelete, canUpdate, stages }) {
27
20
  const { formatMessage } = useIntl();
28
21
  const dispatch = useDispatch();
29
22
  const { trackUsage } = useTracking();
30
23
 
31
24
  return (
32
25
  <Flex direction="column" gap={6} width="100%">
33
- <StagesContainer spacing={4} width="100%">
34
- <Background background="neutral200" height="100%" width={2} zIndex={1} />
26
+ <Box position="relative" spacing={4} width="100%">
27
+ <Background
28
+ background="neutral200"
29
+ height="100%"
30
+ left="50%"
31
+ position="absolute"
32
+ top="0"
33
+ width={2}
34
+ zIndex={1}
35
+ />
35
36
 
36
37
  <Flex
37
38
  direction="column"
@@ -49,18 +50,19 @@ function Stages({ stages }) {
49
50
  <Stage
50
51
  id={id}
51
52
  index={index}
52
- canDelete={stages.length > 1}
53
53
  isOpen={!stage.id}
54
+ canDelete={stages.length > 1 && canDelete}
54
55
  canReorder={stages.length > 1}
56
+ canUpdate={canUpdate}
55
57
  stagesCount={stages.length}
56
58
  />
57
59
  </Box>
58
60
  );
59
61
  })}
60
62
  </Flex>
61
- </StagesContainer>
63
+ </Box>
62
64
 
63
- <Flex direction="column" gap={6}>
65
+ {canUpdate && (
64
66
  <AddStage
65
67
  type="button"
66
68
  onClick={() => {
@@ -73,18 +75,20 @@ function Stages({ stages }) {
73
75
  defaultMessage: 'Add new stage',
74
76
  })}
75
77
  </AddStage>
76
- </Flex>
78
+ )}
77
79
  </Flex>
78
80
  );
79
81
  }
80
82
 
81
- export { Stages };
82
-
83
83
  Stages.defaultProps = {
84
+ canDelete: true,
85
+ canUpdate: true,
84
86
  stages: [],
85
87
  };
86
88
 
87
89
  Stages.propTypes = {
90
+ canDelete: PropTypes.bool,
91
+ canUpdate: PropTypes.bool,
88
92
  stages: PropTypes.arrayOf(
89
93
  PropTypes.shape({
90
94
  id: PropTypes.number,
@@ -9,7 +9,7 @@ import { useDispatch } from 'react-redux';
9
9
 
10
10
  import { updateWorkflow } from '../../actions';
11
11
 
12
- export function WorkflowAttributes({ contentTypes: { collectionTypes, singleTypes } }) {
12
+ export function WorkflowAttributes({ canUpdate, contentTypes: { collectionTypes, singleTypes } }) {
13
13
  const { formatMessage, locale } = useIntl();
14
14
  const dispatch = useDispatch();
15
15
  const [nameField, nameMeta, nameHelper] = useField('name');
@@ -24,6 +24,7 @@ export function WorkflowAttributes({ contentTypes: { collectionTypes, singleType
24
24
  <TextInput
25
25
  {...nameField}
26
26
  id={nameField.name}
27
+ disabled={!canUpdate}
27
28
  label={formatMessage({
28
29
  id: 'Settings.review-workflows.workflow.name.label',
29
30
  defaultMessage: 'Workflow Name',
@@ -50,6 +51,7 @@ export function WorkflowAttributes({ contentTypes: { collectionTypes, singleType
50
51
  { count: value.length }
51
52
  )
52
53
  }
54
+ disabled={!canUpdate}
53
55
  error={contentTypesMeta.error ?? false}
54
56
  id={contentTypesField.name}
55
57
  label={formatMessage({
@@ -61,29 +63,37 @@ export function WorkflowAttributes({ contentTypes: { collectionTypes, singleType
61
63
  contentTypesHelper.setValue(values);
62
64
  }}
63
65
  options={[
64
- {
65
- label: formatMessage({
66
- id: 'Settings.review-workflows.workflow.contentTypes.collectionTypes.label',
67
- defaultMessage: 'Collection Types',
68
- }),
69
- children: collectionTypes
70
- .sort((a, b) => formatter.compare(a.info.displayName, b.info.displayName))
71
- .map((contentType) => ({
72
- label: contentType.info.displayName,
73
- value: contentType.uid,
74
- })),
75
- },
66
+ ...(collectionTypes.length > 0
67
+ ? [
68
+ {
69
+ label: formatMessage({
70
+ id: 'Settings.review-workflows.workflow.contentTypes.collectionTypes.label',
71
+ defaultMessage: 'Collection Types',
72
+ }),
73
+ children: collectionTypes
74
+ .sort((a, b) => formatter.compare(a.info.displayName, b.info.displayName))
75
+ .map((contentType) => ({
76
+ label: contentType.info.displayName,
77
+ value: contentType.uid,
78
+ })),
79
+ },
80
+ ]
81
+ : []),
76
82
 
77
- {
78
- label: formatMessage({
79
- id: 'Settings.review-workflows.workflow.contentTypes.singleTypes.label',
80
- defaultMessage: 'Single Types',
81
- }),
82
- children: singleTypes.map((contentType) => ({
83
- label: contentType.info.displayName,
84
- value: contentType.uid,
85
- })),
86
- },
83
+ ...(singleTypes.length > 0
84
+ ? [
85
+ {
86
+ label: formatMessage({
87
+ id: 'Settings.review-workflows.workflow.contentTypes.singleTypes.label',
88
+ defaultMessage: 'Single Types',
89
+ }),
90
+ children: singleTypes.map((contentType) => ({
91
+ label: contentType.info.displayName,
92
+ value: contentType.uid,
93
+ })),
94
+ },
95
+ ]
96
+ : []),
87
97
  ]}
88
98
  placeholder={formatMessage({
89
99
  id: 'Settings.review-workflows.workflow.contentTypes.placeholder',
@@ -102,7 +112,12 @@ const ContentTypeType = PropTypes.shape({
102
112
  }).isRequired,
103
113
  });
104
114
 
115
+ WorkflowAttributes.defaultProps = {
116
+ canUpdate: true,
117
+ };
118
+
105
119
  WorkflowAttributes.propTypes = {
120
+ canUpdate: PropTypes.bool,
106
121
  contentTypes: PropTypes.shape({
107
122
  collectionTypes: PropTypes.arrayOf(ContentTypeType).isRequired,
108
123
  singleTypes: PropTypes.arrayOf(ContentTypeType).isRequired,
@@ -32,3 +32,6 @@ export const STAGE_COLOR_DEFAULT = lightTheme.colors.primary600;
32
32
  export const DRAG_DROP_TYPES = {
33
33
  STAGE: 'stage',
34
34
  };
35
+
36
+ export const CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME = 'numberOfWorkflows';
37
+ export const CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME = 'stagesPerWorkflow';