@strapi/admin 4.13.3 → 4.14.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/admin/src/hooks/useAdminRoles/index.js +17 -7
  2. package/admin/src/hooks/useAdminUsers/useAdminUsers.js +16 -7
  3. package/admin/src/hooks/useContentTypes/useContentTypes.js +18 -7
  4. package/build/1227.ec336799.chunk.js +1 -0
  5. package/build/{3483.19381b40.chunk.js → 3483.f6b2439f.chunk.js} +1 -1
  6. package/build/4174.4587c7f6.chunk.js +1 -0
  7. package/build/6266.53be9ea3.chunk.js +124 -0
  8. package/build/7897.eac204a4.chunk.js +6 -0
  9. package/build/{Admin-authenticatedApp.796792a8.chunk.js → Admin-authenticatedApp.d200a4ee.chunk.js} +1 -1
  10. package/build/{admin-app.2a8615ab.chunk.js → admin-app.582877a3.chunk.js} +11 -11
  11. package/build/admin-edit-roles-page.0aa65505.chunk.js +267 -0
  12. package/build/admin-edit-users.9215912a.chunk.js +10 -0
  13. package/build/admin-roles-list.824a50de.chunk.js +22 -0
  14. package/build/admin-users.f6b3c643.chunk.js +11 -0
  15. package/build/audit-logs-settings-page.be2cb4dd.chunk.js +1 -0
  16. package/build/{content-manager.f448efdf.chunk.js → content-manager.06a2f7ec.chunk.js} +39 -39
  17. package/build/index.html +1 -1
  18. package/build/review-workflows-settings-create-view.604cffa0.chunk.js +1 -0
  19. package/build/review-workflows-settings-edit-view.73c57f07.chunk.js +1 -0
  20. package/build/review-workflows-settings-list-view.7e300ecb.chunk.js +56 -0
  21. package/build/{runtime~main.d2b8d4a1.js → runtime~main.9de029f4.js} +2 -2
  22. package/build/sso-settings-page.94373f78.chunk.js +1 -0
  23. package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js +65 -53
  24. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +50 -5
  25. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +227 -19
  26. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/WorkflowAttributes.js +8 -23
  27. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +6 -0
  28. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +17 -7
  29. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages.js +36 -0
  30. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +68 -19
  31. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +105 -35
  32. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +68 -27
  33. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/selectors.js +45 -0
  34. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/validateWorkflow.js +20 -0
  35. package/ee/server/config/admin-actions.js +6 -0
  36. package/ee/server/constants/workflows.js +13 -0
  37. package/ee/server/content-types/workflow-stage/index.js +6 -0
  38. package/ee/server/controllers/workflows/index.js +41 -16
  39. package/ee/server/controllers/workflows/stages/index.js +93 -6
  40. package/ee/server/routes/review-workflows.js +10 -9
  41. package/ee/server/services/index.js +1 -0
  42. package/ee/server/services/review-workflows/stage-permissions.js +60 -0
  43. package/ee/server/services/review-workflows/stages.js +83 -12
  44. package/ee/server/services/review-workflows/workflows/index.js +20 -7
  45. package/ee/server/validation/review-workflows.js +11 -0
  46. package/package.json +8 -8
  47. package/scripts/build.js +2 -3
  48. package/scripts/create-dev-plugins-file.js +2 -3
  49. package/server/content-types/Permission.js +6 -0
  50. package/server/domain/permission/index.js +11 -2
  51. package/server/services/role.js +12 -4
  52. package/server/validation/action-provider.js +1 -1
  53. package/server/validation/common-validators.js +92 -100
  54. package/server/validation/permission.js +0 -3
  55. package/utils/create-cache-dir.js +5 -102
  56. package/utils/plugins.js +217 -0
  57. package/webpack.config.js +2 -2
  58. package/build/1227.9f37e1dc.chunk.js +0 -1
  59. package/build/2237.b832ae6e.chunk.js +0 -114
  60. package/build/4174.f1f39e40.chunk.js +0 -1
  61. package/build/4724.aea5c8c1.chunk.js +0 -6
  62. package/build/admin-edit-roles-page.38a6c863.chunk.js +0 -267
  63. package/build/admin-edit-users.545fc882.chunk.js +0 -10
  64. package/build/admin-roles-list.1e2e814d.chunk.js +0 -22
  65. package/build/admin-users.b8ea5677.chunk.js +0 -11
  66. package/build/audit-logs-settings-page.96f9d608.chunk.js +0 -1
  67. package/build/review-workflows-settings-create-view.4a156a19.chunk.js +0 -1
  68. package/build/review-workflows-settings-edit-view.ce984d1f.chunk.js +0 -1
  69. package/build/review-workflows-settings-list-view.419b8deb.chunk.js +0 -56
  70. package/build/sso-settings-page.45153df5.chunk.js +0 -1
  71. package/utils/create-plugins-exclude-path.js +0 -20
  72. package/utils/get-plugins.js +0 -110
@@ -1,22 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3455],{86409:function(N,p,t){t.d(p,{F:function(){return c}});var e=t(45509),n=t(67879),i=t(20108);const c=(u={},A={})=>{const{id:R="",...M}=u,{get:B}=(0,e.kY)(),{locale:o}=(0,n.Z)(),j=(0,e.Xe)(o,{sensitivity:"base"}),{data:v,error:b,isError:d,isLoading:C,refetch:Q}=(0,i.useQuery)(["roles",R,M],async()=>{const{data:Z}=await B(`/admin/roles/${R??""}`,{params:M});return Z},A);let I=[];return R&&v?I=[v.data]:Array.isArray(v?.data)&&(I=v.data),{roles:I.sort((Z,V)=>j.compare(Z.name,V.name)),error:b,isError:d,isLoading:C,refetch:Q}}},32239:function(N,p,t){t.r(p),t.d(p,{default:function(){return ue}});var e=t(32735),n=t(45509),i=t(15062),c=t(30305),u=t(27649),A=t(82055),R=t(41415),M=t(99223),B=t(17e3),o=t(56755),j=t(73269),v=t(33827),b=t(94547),d=t(19786),C=t(49372),Q=t(3685),I=t(35658),Z=t(47765),V=t(68625),w=t(4038),Y=t(19406),k=t(67879),q=t(53038),_=t(86409),ee=()=>"todo empty role",te=t(87933),ne=t(72850),le=t(50563),ae=t(60216),T=t.n(ae);const H=({id:a,name:m,description:s,usersCount:y,icons:r,rowIndex:W,canUpdate:E})=>{const{formatMessage:L}=(0,k.Z)(),[,O]=r,g=L({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:y});return e.createElement(b.Tr,{"aria-rowindex":W,key:a,...E?(0,n.X7)({fn:O.onClick}):{}},e.createElement(d.Td,{maxWidth:(0,n.Q1)(130)},e.createElement(C.Z,{ellipsis:!0,textColor:"neutral800"},m)),e.createElement(d.Td,{maxWidth:(0,n.Q1)(250)},e.createElement(C.Z,{ellipsis:!0,textColor:"neutral800"},s)),e.createElement(d.Td,null,e.createElement(C.Z,{textColor:"neutral800"},g)),e.createElement(d.Td,null,e.createElement(te.k,{justifyContent:"flex-end",...n.UW},r.map((h,P)=>h?e.createElement(ne.x,{key:h.label,paddingLeft:P===0?0:1},e.createElement(le.h,{onClick:h.onClick,label:h.label,noBorder:!0,icon:h.icon})):null))))};H.propTypes={id:T().number.isRequired,name:T().string.isRequired,description:T().string.isRequired,usersCount:T().number.isRequired,icons:T().array.isRequired,rowIndex:T().number.isRequired,canUpdate:T().bool},H.defaultProps={canUpdate:!1};var se=H,oe=t(97889);const re={roleToDelete:null,showModalConfirmButtonLoading:!1,shouldRefetchData:!1};var ie=(a,m)=>(0,oe.ZP)(a,s=>{switch(m.type){case"ON_REMOVE_ROLES":{s.showModalConfirmButtonLoading=!0;break}case"ON_REMOVE_ROLES_SUCCEEDED":{s.shouldRefetchData=!0,s.roleToDelete=null;break}case"RESET_DATA_TO_DELETE":{s.shouldRefetchData=!1,s.roleToDelete=null,s.showModalConfirmButtonLoading=!1;break}case"SET_ROLE_TO_DELETE":{s.roleToDelete=m.id;break}default:return s}});const de=({canCreate:a,canDelete:m,canUpdate:s,refetchRoles:y})=>{const{formatMessage:r}=(0,k.Z)(),{formatAPIError:W}=(0,n.So)(),E=(0,n.lm)(),[L,O]=(0,e.useState)(!1),{push:g}=(0,q.k6)(),[{selectedRoles:h,showModalConfirmButtonLoading:P,roleToDelete:z},U]=(0,e.useReducer)(ie,re),{post:X}=(0,n.tg)(),G=async()=>{try{U({type:"ON_REMOVE_ROLES"}),await X("/admin/roles/batch-delete",{ids:[z]}),await y(),U({type:"RESET_DATA_TO_DELETE"})}catch(l){E({type:"warning",message:W(l)})}x()},K=(0,e.useCallback)(l=>{g(`/settings/roles/duplicate/${l}`)},[g]),$=()=>g("/settings/roles/new"),S=(0,e.useCallback)(l=>{U({type:"SET_ROLE_TO_DELETE",id:l}),x()},[]),x=()=>O(l=>!l),f=(0,e.useCallback)(l=>{g(`/settings/roles/${l}`)},[g]),F=(0,e.useCallback)((l,D)=>{l.preventDefault(),l.stopPropagation(),D.usersCount?E({type:"info",message:{id:"Roles.ListPage.notification.delete-not-allowed"}}):S(D.id)},[E,S]),J=(0,e.useCallback)((l,D)=>{l.preventDefault(),l.stopPropagation(),K(D.id)},[K]),me=(0,e.useCallback)(l=>[...a?[{onClick:D=>J(D,l),label:r({id:"app.utils.duplicate",defaultMessage:"Duplicate"}),icon:e.createElement(Z.Z,null)}]:[],...s?[{onClick:()=>f(l.id),label:r({id:"app.utils.edit",defaultMessage:"Edit"}),icon:e.createElement(V.Z,null)}]:[],...m?[{onClick:D=>F(D,l),label:r({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(w.Z,null)}]:[]],[r,F,J,f,a,s,m]);return{handleNewRoleClick:$,getIcons:me,selectedRoles:h,isWarningDeleteAllOpened:L,showModalConfirmButtonLoading:P,handleToggleModal:x,handleDeleteData:G}};var ce=()=>{const{formatMessage:a}=(0,k.Z)();(0,n.go)();const m=(0,i.v9)(c._),[{query:s}]=(0,n.Kx)(),{isLoading:y,allowedActions:{canCreate:r,canDelete:W,canRead:E,canUpdate:L}}=(0,n.ss)(m.settings.roles),{roles:O,isLoading:g,refetch:h}=(0,_.F)({filters:s?._q?{name:{$containsi:s._q}}:void 0},{cacheTime:0,enabled:!y&&E}),{handleNewRoleClick:P,getIcons:z,isWarningDeleteAllOpened:U,showModalConfirmButtonLoading:X,handleToggleModal:G,handleDeleteData:K}=de({refetchRoles:h,canCreate:r,canDelete:W,canUpdate:L}),$=O.length+1,S=6;if(y)return e.createElement(u.o,null,e.createElement(n.dO,null));const x=a({id:"global.roles",defaultMessage:"roles"});return e.createElement(u.o,null,e.createElement(n.SL,{name:"Roles"}),e.createElement(A.T,{primaryAction:r?e.createElement(R.z,{onClick:P,startIcon:e.createElement(Y.Z,null),size:"S"},a({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null,title:x,subtitle:a({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),as:"h2"}),E&&e.createElement(M.Z,{startActions:e.createElement(n.m,{label:a({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:x})})}),E&&e.createElement(B.D,null,e.createElement(o.i,{colCount:S,rowCount:$,footer:r?e.createElement(j.c,{onClick:P,icon:e.createElement(Y.Z,null)},a({id:"Settings.roles.list.button.add",defaultMessage:"Add new role"})):null},e.createElement(v.h,null,e.createElement(b.Tr,{"aria-rowindex":1},e.createElement(d.Th,null,e.createElement(C.Z,{variant:"sigma",textColor:"neutral600"},a({id:"global.name",defaultMessage:"Name"}))),e.createElement(d.Th,null,e.createElement(C.Z,{variant:"sigma",textColor:"neutral600"},a({id:"global.description",defaultMessage:"Description"}))),e.createElement(d.Th,null,e.createElement(C.Z,{variant:"sigma",textColor:"neutral600"},a({id:"global.users",defaultMessage:"Users"}))),e.createElement(d.Th,null,e.createElement(Q.T,null,a({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(I.p,null,O?.map((f,F)=>e.createElement(se,{key:f.id,id:f.id,name:f.name,description:f.description,usersCount:f.usersCount,icons:z(f),rowIndex:F+2,canUpdate:L})))),!$&&!g&&e.createElement(ee,null)),e.createElement(n.QH,{isOpen:U,onConfirm:K,isConfirmButtonLoading:X,onToggleDialog:G}))},ue=()=>{const a=(0,i.v9)(c._);return e.createElement(n.O4,{permissions:a.settings.roles.main},e.createElement(ce,null))}},99223:function(N,p,t){t.d(p,{Z:function(){return i}});var e=t(74512),n=t(87933);const i=({startActions:c,endActions:u})=>!c&&!u?null:(0,e.jsxs)(n.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,e.jsx)(n.k,{gap:2,wrap:"wrap",children:c}),(0,e.jsx)(n.k,{gap:2,shrink:0,wrap:"wrap",children:u})]})},73269:function(N,p,t){t.d(p,{c:function(){return B}});var e=t(74512),n=t(8471),i=t(72850),c=t(9026),u=t(87933),A=t(49372);const R=(0,n.ZP)(i.x)`
2
- height: ${24/16}rem;
3
- width: ${24/16}rem;
4
- border-radius: 50%;
5
- display: flex;
6
- justify-content: center;
7
- align-items: center;
8
-
9
- svg {
10
- height: ${10/16}rem;
11
- width: ${10/16}rem;
12
- }
13
-
14
- svg path {
15
- fill: ${({theme:o})=>o.colors.primary600};
16
- }
17
- `,M=(0,n.ZP)(i.x)`
18
- border-radius: 0 0 ${({theme:o})=>o.borderRadius} ${({theme:o})=>o.borderRadius};
19
- display: block;
20
- width: 100%;
21
- border: none;
22
- `,B=({children:o,icon:j,...v})=>(0,e.jsxs)("div",{children:[(0,e.jsx)(c.i,{}),(0,e.jsx)(M,{as:"button",background:"primary100",padding:5,...v,children:(0,e.jsxs)(u.k,{children:[(0,e.jsx)(R,{"aria-hidden":!0,background:"primary200",children:j}),(0,e.jsx)(i.x,{paddingLeft:3,children:(0,e.jsx)(A.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:o})})]})})]})}}]);
@@ -1,11 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5199],{97108:function(B,m,e){e.d(m,{R:function(){return l}});var t=e(45509),n=e(20108);function l(r={},u={}){const{id:a="",...s}=r,{get:v}=(0,t.kY)(),{data:o,isError:E,isLoading:C,refetch:A}=(0,n.useQuery)(["users",a,s],async()=>{const{data:{data:g}}=await v(`/admin/users/${a}`,{params:s});return g},u);let h=[];return a&&o?h=[o]:Array.isArray(o?.results)&&(h=o.results),{users:h,pagination:o?.pagination??null,isLoading:C,isError:E,refetch:A}}},59092:function(B,m,e){var t=e(32735),n=e(72850),l=e(41415),r=e(45509),u=e(5644),a=e(60216),s=e.n(a),v=e(67879);const o=({displayedFilters:E})=>{const[C,A]=(0,t.useState)(!1),{formatMessage:h}=(0,v.Z)(),g=(0,t.useRef)(),O=()=>{A(W=>!W)};return t.createElement(t.Fragment,null,t.createElement(n.x,{paddingTop:1,paddingBottom:1},t.createElement(l.z,{variant:"tertiary",ref:g,startIcon:t.createElement(u.Z,null),onClick:O,size:"S"},h({id:"app.utils.filters",defaultMessage:"Filters"})),C&&t.createElement(r.J5,{displayedFilters:E,isVisible:C,onToggle:O,source:g})),t.createElement(r.W$,{filtersSchema:E}))};o.propTypes={displayedFilters:s().arrayOf(s().shape({name:s().string.isRequired,metadatas:s().shape({label:s().string}),fieldSchema:s().shape({type:s().string})})).isRequired},m.Z=o},99528:function(B,m,e){e.d(m,{W:function(){return pe},Z:function(){return Ze}});var t=e(32735),n=e(27649),l=e(82055),r=e(99223),u=e(17e3),a=e(45509),s=e(33348),v=e.n(s),o=e(67879),E=e(20108),C=e(15062),A=e(53038),h=e(97108),g=e(9592),O=e(30305),W=e(59092),L=e(41415),ae=e(7961),se=e(60216),d=e.n(se);const q=({onClick:i})=>{const{formatMessage:p}=(0,o.Z)();return t.createElement(L.z,{onClick:i,startIcon:t.createElement(ae.Z,null),size:"S"},p({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}))};q.propTypes={onClick:d().func.isRequired};var Z=e(35658),ne=e(94547),J=e(19786),le=e(82884),b=e(49372),F=e(87933),P=e(50563),$=e(72850),fe=e(68625),Me=e(4038),re=e(90869);const oe=({canDelete:i,headers:p,entriesToDelete:T,onClickDelete:k,onSelectRow:V,withMainAction:j,withBulkActions:x,rows:R})=>{const{push:y,location:{pathname:H}}=(0,A.k6)(),{formatMessage:D}=(0,o.Z)();return t.createElement(Z.p,null,R.map(c=>{const z=T.findIndex(U=>U===c.id)!==-1;return t.createElement(ne.Tr,{key:c.id,...(0,a.X7)({fn:()=>y(`${H}/${c.id}`),condition:x})},j&&t.createElement(J.Td,{...a.UW},t.createElement(le.C,{"aria-label":D({id:"app.component.table.select.one-entry",defaultMessage:"Select {target}"},{target:(0,re.Pp)(c.firstname,c.lastname)}),checked:z,onChange:()=>{V({name:c.id,value:!z})}})),p.map(({key:U,cellFormatter:Y,name:K,...N})=>t.createElement(J.Td,{key:U},typeof Y=="function"?Y(c,{key:U,name:K,formatMessage:D,...N}):t.createElement(b.Z,{textColor:"neutral800"},c[K]||"-"))),x&&t.createElement(J.Td,null,t.createElement(F.k,{justifyContent:"end"},t.createElement(P.h,{onClick:()=>y(`${H}/${c.id}`),label:D({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:(0,re.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(fe.Z,null)}),i&&t.createElement($.x,{paddingLeft:1,...a.UW},t.createElement(P.h,{onClick:()=>k(c.id),label:D({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:(0,re.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(Me.Z,null)})))))}))};oe.defaultProps={canDelete:!1,entriesToDelete:[],onClickDelete(){},onSelectRow(){},rows:[],withBulkActions:!1,withMainAction:!1},oe.propTypes={canDelete:d().bool,entriesToDelete:d().array,headers:d().array.isRequired,onClickDelete:d().func,onSelectRow:d().func,rows:d().array,withBulkActions:d().bool,withMainAction:d().bool};var ve=oe,ye=e(85025),he=e(55225),Pe=e(31600),de=e(15335),ie=e(5803),De=e(11406),Ce=e(26858),Ae=e(51654),Oe=e(92802),Le=e(47577),Te=e(18703),X=e(24346);const ue={firstname:"",lastname:"",email:"",roles:[]},Ie=[],Re=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0}]],Ue=X.Ry().shape({firstname:X.Z_().trim().required(a.I0.required),lastname:X.Z_(),email:X.Z_().email(a.I0.email).required(a.I0.required),roles:X.IX().min(1,a.I0.required).required(a.I0.required)}),Se={create:{buttonSubmitLabel:{id:"app.containers.Users.ModalForm.footer.button-success",defaultMessage:"Invite user"},isDisabled:!1,next:"magic-link"},"magic-link":{buttonSubmitLabel:{id:"global.finish",defaultMessage:"Finish"},isDisabled:!0,next:null}},Ee=({onSuccess:i,onToggle:p})=>{const[T,k]=(0,t.useState)("create"),[V,j]=(0,t.useState)(!1),[x,R]=(0,t.useState)(null),{formatMessage:y}=(0,o.Z)(),H=(0,a.lm)(),{lockApp:D,unlockApp:c}=(0,a.o1)(),{post:z}=(0,a.kY)(),U=(0,g.c)(Ie,async()=>(await e.e(311).then(e.bind(e,40311))).ROLE_LAYOUT,{combine(M,S){return[...M,S]},defaultValue:[]}),Y=(0,g.c)(ue,async()=>(await e.e(311).then(e.bind(e,40311))).FORM_INITIAL_VALUES,{combine(M,S){return{...M,...S}},defaultValue:ue}),K=(0,g.c)(Le.A,async()=>(await e.e(1727).then(e.bind(e,81727))).MagicLinkEE),N=(0,E.useMutation)(M=>z("/admin/users",M),{async onSuccess({data:M}){R(M.data.registrationToken),await i(),te(),j(!1)},onError(M){throw j(!1),H({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),M},onSettled(){c()}}),w=y({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}),ee=async(M,{setErrors:S})=>{D(),j(!0);try{await N.mutateAsync(M)}catch(G){c(),G?.response?.data?.error.message==="Email already taken"&&S({email:G.response.data.error.message})}},te=()=>{f?k(f):p()},{buttonSubmitLabel:_,isDisabled:Q,next:f}=Se[T],be=T==="create"?t.createElement(L.z,{type:"submit",loading:V},y(_)):t.createElement(L.z,{type:"button",loading:V,onClick:p},y(_));return K?t.createElement(ye.P,{onClose:p,labelledBy:"title"},t.createElement(he.x,null,t.createElement(Ce.O,{label:w},t.createElement(Ae.$,{isCurrent:!0},w))),t.createElement(Oe.J9,{enableReinitialize:!0,initialValues:Y,onSubmit:ee,validationSchema:Ue,validateOnChange:!1},({errors:M,handleChange:S,values:G})=>t.createElement(a.l0,null,t.createElement(Pe.f,null,t.createElement(F.k,{direction:"column",alignItems:"stretch",gap:6},T!=="create"&&t.createElement(K,{registrationToken:x}),t.createElement($.x,null,t.createElement(b.Z,{variant:"beta",as:"h2"},y({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"User details"})),t.createElement($.x,{paddingTop:4},t.createElement(F.k,{direction:"column",alignItems:"stretch",gap:1},t.createElement(de.r,{gap:5},Re.map(me=>me.map(I=>t.createElement(ie.P,{key:I.name,...I.size},t.createElement(a.jm,{...I,disabled:Q,error:M[I.name],onChange:S,value:G[I.name]})))))))),t.createElement($.x,null,t.createElement(b.Z,{variant:"beta",as:"h2"},y({id:"global.roles",defaultMessage:"User's role"})),t.createElement($.x,{paddingTop:4},t.createElement(de.r,{gap:5},t.createElement(ie.P,{col:6,xs:12},t.createElement(Te.Z,{disabled:Q,error:M.roles,onChange:S,value:G.roles})),U.map(me=>me.map(I=>t.createElement(ie.P,{key:I.name,...I.size},t.createElement(a.jm,{...I,disabled:Q,onChange:S,value:G[I.name]}))))))))),t.createElement(De.m,{startActions:t.createElement(L.z,{variant:"tertiary",onClick:p,type:"button"},y({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:be})))):null};Ee.propTypes={onToggle:d().func.isRequired,onSuccess:d().func.isRequired};var Be=Ee;const ce=({pagination:i})=>t.createElement($.x,{paddingTop:4},t.createElement(F.k,{alignItems:"flex-end",justifyContent:"space-between"},t.createElement(a.v4,null),t.createElement(a.tU,{pagination:i})));ce.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},ce.propTypes={pagination:d().shape({page:d().number,pageCount:d().number,pageSize:d().number,total:d().number})};var We=ce,xe=[{name:"firstname",metadatas:{label:"Firstname"},fieldSchema:{type:"string"}},{name:"lastname",metadatas:{label:"Lastname"},fieldSchema:{type:"string"}},{name:"email",metadatas:{label:"Email"},fieldSchema:{type:"email"}},{name:"username",metadatas:{label:"Username"},fieldSchema:{type:"string"}},{name:"isActive",metadatas:{label:"Active user"},fieldSchema:{type:"boolean"}}],Ke=[{name:"firstname",key:"firstname",metadatas:{label:{id:"Settings.permissions.users.firstname",defaultMessage:"Firstname"},sortable:!0}},{name:"lastname",key:"lastname",metadatas:{label:{id:"Settings.permissions.users.lastname",defaultMessage:"Lastname"},sortable:!0}},{key:"email",name:"email",metadatas:{label:{id:"Settings.permissions.users.email",defaultMessage:"Email"},sortable:!0}},{key:"roles",name:"roles",metadatas:{label:{id:"Settings.permissions.users.roles",defaultMessage:"Roles"},sortable:!1},cellFormatter({roles:i},{formatMessage:p}){return t.createElement(b.Z,{textColor:"neutral800"},i.map(T=>p({id:`Settings.permissions.users.${T.code}`,defaultMessage:T.name})).join(`,
2
- `))}},{key:"username",name:"username",metadatas:{label:{id:"Settings.permissions.users.username",defaultMessage:"Username"},sortable:!0}},{key:"isActive",name:"isActive",metadatas:{label:{id:"Settings.permissions.users.user-status",defaultMessage:"User status"},sortable:!1},cellFormatter({isActive:i},{formatMessage:p}){return t.createElement(F.k,null,t.createElement(a.qb,{isActive:i,variant:i?"success":"danger"}),t.createElement(b.Z,{textColor:"neutral800"},p({id:i?"Settings.permissions.users.active":"Settings.permissions.users.inactive",defaultMessage:i?"Active":"Inactive"})))}}];const ge=["ee","license-limit-info"],pe=()=>{const{post:i}=(0,a.kY)(),{formatAPIError:p}=(0,a.So)(),[T,k]=(0,t.useState)(!1),V=(0,C.v9)(O._),{allowedActions:{canCreate:j,canDelete:x,canRead:R}}=(0,a.ss)(V.settings.users),y=(0,E.useQueryClient)(),H=(0,a.lm)(),{formatMessage:D}=(0,o.Z)(),{search:c}=(0,A.TH)();(0,a.go)();const{users:z,pagination:U,isError:Y,isLoading:K,refetch:N}=(0,h.R)(v().parse(c,{ignoreQueryPrefix:!0}),{cacheTime:0,enabled:R}),w=(0,g.c)(q,async()=>(await e.e(2379).then(e.bind(e,42379))).CreateActionEE),ee=Ke.map(f=>({...f,metadatas:{...f.metadatas,label:D(f.metadatas.label)}})),te=D({id:"global.users",defaultMessage:"Users"}),_=()=>{k(f=>!f)},Q=(0,E.useMutation)(async f=>{await i("/admin/users/batch-delete",{ids:f})},{async onSuccess(){await N(),await y.refetchQueries(ge)},onError(f){H({type:"warning",message:{id:"notification.error",message:p(f),defaultMessage:"An error occured"}})}});return w?t.createElement(n.o,{"aria-busy":K},t.createElement(a.SL,{name:"Users"}),t.createElement(l.T,{primaryAction:j&&t.createElement(w,{onClick:_}),title:te,subtitle:D({id:"Settings.permissions.users.listview.header.subtitle",defaultMessage:"All the users who have access to the Strapi admin panel"})}),R&&t.createElement(r.Z,{startActions:t.createElement(t.Fragment,null,t.createElement(a.m,{label:D({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:te})}),t.createElement(W.Z,{displayedFilters:xe}))}),t.createElement(u.D,{canRead:R},!R&&t.createElement(a.ZF,null),Y&&t.createElement("div",null,"TODO: An error occurred"),R&&t.createElement(t.Fragment,null,t.createElement(a.tM,{contentType:"Users",isLoading:K,onConfirmDeleteAll:Q.mutateAsync,onConfirmDelete:f=>Q.mutateAsync([f]),headers:ee,rows:z,withBulkActions:!0,withMainAction:x},t.createElement(ve,{canDelete:x,headers:ee,rows:z,withBulkActions:!0,withMainAction:x})),U&&t.createElement(We,{pagination:U}))),T&&t.createElement(Be,{onSuccess:async()=>{await N(),await y.refetchQueries(ge)},onToggle:_})):null};var Ze=()=>{const i=(0,g.c)(pe,async()=>(await e.e(2801).then(e.bind(e,12801))).UserListPageEE);return i?t.createElement(i,null):null}},25691:function(B,m,e){e.r(m);var t=e(32735),n=e(45509),l=e(15062),r=e(30305),u=e(99528);const a=()=>{const s=(0,l.v9)(r._);return t.createElement(n.O4,{permissions:s.settings.users.main},t.createElement(u.Z,null))};m.default=a},84024:function(B,m,e){var t=e(32735),n=e(50563),l=e(45509),r=e(47765),u=e(60216),a=e.n(u),s=e(67879);const v=({children:o,target:E})=>{const C=(0,l.lm)(),{formatMessage:A}=(0,s.Z)(),{copy:h}=(0,l.VP)(),g=A({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),O=async()=>{await h(E)&&C({type:"info",message:{id:"notification.link-copied"}})};return t.createElement(l.Y_,{endAction:t.createElement(n.h,{label:g,noBorder:!0,icon:t.createElement(r.Z,null),onClick:O}),title:E,titleEllipsis:!0,subtitle:o,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};v.propTypes={children:a().oneOfType([a().element,a().string]).isRequired,target:a().string.isRequired},m.Z=v},47577:function(B,m,e){e.d(m,{A:function(){return s}});var t=e(32735),n=e(60216),l=e.n(n),r=e(67879),u=e(35231),a=e(84024);const s=({registrationToken:v})=>{const{formatMessage:o}=(0,r.Z)(),E=`${window.location.origin}${u.Z}auth/register?registrationToken=${v}`;return t.createElement(a.Z,{target:E},o({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};s.defaultProps={registrationToken:""},s.propTypes={registrationToken:l().string}},18703:function(B,m,e){var t=e(32735),n=e(68465),l=e(84967),r=e(45509),u=e(27169),a=e(60216),s=e.n(a),v=e(67879),o=e(20108),E=e(8471);const C=(0,E.F4)`
3
- from {
4
- transform: rotate(0deg);
5
- }
6
- to {
7
- transform: rotate(359deg);
8
- }
9
- `,A=E.ZP.div`
10
- animation: ${C} 2s infinite linear;
11
- `,h=()=>t.createElement(A,null,t.createElement(u.Z,null)),g=async()=>{const{get:W}=(0,r.tg)(),{data:L}=await W("/admin/roles");return L.data},O=({disabled:W,error:L,onChange:ae,value:se})=>{const{status:d,data:q}=(0,o.useQuery)(["roles"],g,{staleTime:5e4}),{formatMessage:Z}=(0,v.Z)(),ne=L?Z({id:L,defaultMessage:L}):"",J=Z({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),le=Z({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),b=Z({id:"app.components.Select.placeholder",defaultMessage:"Select"}),F=d==="loading"?t.createElement(h,null):void 0;return t.createElement(n.P,{id:"roles",disabled:W,error:ne,hint:le,label:J,name:"roles",onChange:P=>{ae({target:{name:"roles",value:P}})},placeholder:b,multi:!0,startIcon:F,value:se.map(P=>P.toString()),withTags:!0,required:!0},(q||[]).map(P=>t.createElement(l.W,{key:P.id,value:P.id.toString()},Z({id:`global.${P.code}`,defaultMessage:P.name}))))};O.defaultProps={disabled:!1,error:void 0},O.propTypes={disabled:s().bool,error:s().string,onChange:s().func.isRequired,value:s().array.isRequired},m.Z=O},99223:function(B,m,e){e.d(m,{Z:function(){return l}});var t=e(74512),n=e(87933);const l=({startActions:r,endActions:u})=>!r&&!u?null:(0,t.jsxs)(n.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,t.jsx)(n.k,{gap:2,wrap:"wrap",children:r}),(0,t.jsx)(n.k,{gap:2,shrink:0,wrap:"wrap",children:u})]})},7961:function(B,m,e){e.d(m,{Z:function(){return l}});var t=e(74512);const n=r=>(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...r,children:[(0,t.jsx)("path",{fill:"#32324D",d:"M0 2.8A.8.8 0 0 1 .8 2h22.4a.8.8 0 0 1 .8.8v2.71a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V2.8Z"}),(0,t.jsx)("path",{fill:"#32324D",d:"M1.922 7.991C.197 6.675 0 6.252 0 5.289h23.953c.305 1.363-1.594 2.506-2.297 3.125-1.953 1.363-6.253 4.36-7.828 5.45-1.575 1.09-3.031.455-3.562 0-2.063-1.41-6.62-4.557-8.344-5.873ZM22.8 18H1.2c-.663 0-1.2.471-1.2 1.053v1.894C0 21.529.537 22 1.2 22h21.6c.663 0 1.2-.471 1.2-1.053v-1.894c0-.582-.537-1.053-1.2-1.053Z"}),(0,t.jsx)("path",{fill:"#32324D",d:"M0 9.555v10.972h24V9.554c-2.633 1.95-8.367 6.113-9.96 7.166-1.595 1.052-3.352.438-4.032 0L0 9.555Z"})]}),l=n}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2812],{97108:function(R,p,t){t.d(p,{R:function(){return v}});var e=t(45509),n=t(20108);function v(f={},M={}){const{id:h="",...c}=f,{get:O}=(0,e.kY)(),{data:E,isError:C,isLoading:y,refetch:P}=(0,n.useQuery)(["users",h,c],async()=>{const{data:{data:S}}=await O(`/admin/users/${h}`,{params:c});return S},M);let D=[];return h&&E?D=[E]:Array.isArray(E?.results)&&(D=E.results),{users:D,pagination:E?.pagination??null,isLoading:y,isError:C,refetch:P}}},59092:function(R,p,t){var e=t(32735),n=t(72850),v=t(41415),f=t(45509),M=t(5644),h=t(60216),c=t.n(h),O=t(67879);const E=({displayedFilters:C})=>{const[y,P]=(0,e.useState)(!1),{formatMessage:D}=(0,O.Z)(),S=(0,e.useRef)(),b=()=>{P(V=>!V)};return e.createElement(e.Fragment,null,e.createElement(n.x,{paddingTop:1,paddingBottom:1},e.createElement(v.z,{variant:"tertiary",ref:S,startIcon:e.createElement(M.Z,null),onClick:b,size:"S"},D({id:"app.utils.filters",defaultMessage:"Filters"})),y&&e.createElement(f.J5,{displayedFilters:C,isVisible:y,onToggle:b,source:S})),e.createElement(f.W$,{filtersSchema:C}))};E.propTypes={displayedFilters:c().arrayOf(c().shape({name:c().string.isRequired,metadatas:c().shape({label:c().string}),fieldSchema:c().shape({type:c().string})})).isRequired},p.Z=E},1487:function(R,p,t){t.r(p),t.d(p,{default:function(){return ve}});var e=t(32735),n=t(45509),v=t(15062),f=t(30305),M=t(96709),h=t(17e3),c=t(72850),O=t(27649),E=t(82055),C=t(99223),y=t(67879),P=t(59092),D=t(20108),S=t(53038),b=t(97108),X=({canReadAuditLogs:a,canReadUsers:d})=>{const{get:u}=(0,n.kY)(),{search:i}=(0,S.TH)(),m=(0,n.lm)(),[{query:l}]=(0,n.Kx)(),s={keepPreviousData:!0,retry:!1,staleTime:1e3*20,onError:L=>m({type:"warning",message:L.message})},{users:r,isError:g,isLoading:T}=(0,b.R)({},{...s,enabled:d,staleTime:2*(1e3*60)}),{data:A,isLoading:B,isError:F}=(0,D.useQuery)(["auditLogs",i],async()=>{const{data:L}=await u("/admin/audit-logs",{params:l});return L},{...s,enabled:a});return{auditLogs:A,users:r,isLoading:T||B,hasError:F||g}},w=t(85025),k=t(55225),q=t(31600),_=t(26858),ee=t(51654),te=t(60216),o=t.n(te),ae=t(96315),N=()=>{const{formatDate:a}=(0,y.Z)();return u=>{const i=(0,ae.Z)(u),m=a(i,{dateStyle:"long"}),l=a(i,{timeStyle:"medium",hourCycle:"h24"});return`${m}, ${l}`}},U=t(87933),se=t(23866),I=t(49372),ne=t(15335),oe=t(9538);const H={"entry.create":"Create entry{model, select, undefined {} other { ({model})}}","entry.update":"Update entry{model, select, undefined {} other { ({model})}}","entry.delete":"Delete entry{model, select, undefined {} other { ({model})}}","entry.publish":"Publish entry{model, select, undefined {} other { ({model})}}","entry.unpublish":"Unpublish entry{model, select, undefined {} other { ({model})}}","media.create":"Create media","media.update":"Update media","media.delete":"Delete media","media-folder.create":"Create media folder","media-folder.update":"Update media folder","media-folder.delete":"Delete media folder","user.create":"Create user","user.update":"Update user","user.delete":"Delete user","admin.auth.success":"Admin login","admin.logout":"Admin logout","content-type.create":"Create content type","content-type.update":"Update content type","content-type.delete":"Delete content type","component.create":"Create component","component.update":"Update component","component.delete":"Delete component","role.create":"Create role","role.update":"Update role","role.delete":"Delete role","permission.create":"Create permission","permission.update":"Update permission","permission.delete":"Delete permission"},Z=a=>H[a]||a,Q=({actionLabel:a,actionName:d})=>e.createElement(U.k,{direction:"column",alignItems:"baseline",gap:1},e.createElement(I.Z,{textColor:"neutral600",variant:"sigma"},a),e.createElement(I.Z,{textColor:"neutral600"},d));Q.propTypes={actionLabel:o().string.isRequired,actionName:o().string.isRequired};var x=Q;const W=({status:a,data:d,formattedDate:u})=>{const{formatMessage:i}=(0,y.Z)();if(a==="loading")return e.createElement(U.k,{padding:7,justifyContent:"center",alignItems:"center"},e.createElement(se.a,null,"Loading content..."));const{action:m,user:l,payload:s}=d;return e.createElement(e.Fragment,null,e.createElement(c.x,{marginBottom:3},e.createElement(I.Z,{variant:"delta",id:"title"},i({id:"Settings.permissions.auditLogs.details",defaultMessage:"Log Details"}))),e.createElement(ne.r,{gap:4,gridCols:2,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:6,marginBottom:4,background:"neutral100",hasRadius:!0},e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"}),actionName:i({id:`Settings.permissions.auditLogs.${m}`,defaultMessage:Z(m)},{model:s?.model})}),e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"}),actionName:u}),e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.user",defaultMessage:"User"}),actionName:l?.displayName||"-"}),e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.userId",defaultMessage:"User ID"}),actionName:l?.id.toString()||"-"})),e.createElement(oe.V,{value:JSON.stringify(s,null,2),disabled:!0,label:i({id:"Settings.permissions.auditLogs.payload",defaultMessage:"Payload"})}))};W.defaultProps={data:{}},W.propTypes={status:o().oneOf(["idle","loading","error","success"]).isRequired,data:o().shape({action:o().string,date:o().string,payload:o().object,user:o().object}),formattedDate:o().string.isRequired};var ie=W;const Y=({handleClose:a,logId:d})=>{const{get:u}=(0,n.kY)(),i=(0,n.lm)(),m=async T=>{const{data:A}=await u(`/admin/audit-logs/${T}`);if(!A)throw new Error("Audit log not found");return A},{data:l,status:s}=(0,D.useQuery)(["audit-log",d],()=>m(d),{onError(){i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),a()}}),r=N(),g=l?r(l.date):"";return e.createElement(w.P,{onClose:a,labelledBy:"title"},e.createElement(k.x,null,e.createElement(_.O,{label:g,id:"title"},e.createElement(ee.$,{isCurrent:!0},g))),e.createElement(q.f,null,e.createElement(ie,{status:s,data:l,formattedDate:g})))};Y.propTypes={handleClose:o().func.isRequired,logId:o().string.isRequired};var re=Y;const $=({pagination:a})=>e.createElement(c.x,{paddingTop:4},e.createElement(U.k,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(n.v4,null),e.createElement(n.tU,{pagination:a})));$.defaultProps={pagination:{pageCount:0,pageSize:50,total:0}},$.propTypes={pagination:o().shape({page:o().number,pageCount:o().number,pageSize:o().number,total:o().number})};var le=$,de=t(35658),me=t(94547),z=t(19786),ue=t(50563),ce=t(54894);const j=({headers:a,rows:d,onOpenModal:u})=>{const{formatMessage:i}=(0,y.Z)(),m=N(),l=({type:s,value:r,model:g})=>s==="date"?m(r):s==="action"?i({id:`Settings.permissions.auditLogs.${r}`,defaultMessage:Z(r)},{model:g}):r||"-";return e.createElement(de.p,null,d.map(s=>e.createElement(me.Tr,{key:s.id,...(0,n.X7)({fn:()=>u(s.id)})},a.map(({key:r,name:g,cellFormatter:T})=>e.createElement(z.Td,{key:r},e.createElement(I.Z,{textColor:"neutral800"},l({type:r,value:T?T(s[g]):s[g],model:s.payload?.model})))),e.createElement(z.Td,{...n.UW},e.createElement(U.k,{justifyContent:"end"},e.createElement(ue.h,{onClick:()=>u(s.id),"aria-label":i({id:"app.component.table.view",defaultMessage:"{target} details"},{target:`${s.action} action`}),noBorder:!0,icon:e.createElement(ce.Z,null)}))))))};j.defaultProps={rows:[]},j.propTypes={headers:o().array.isRequired,rows:o().array,onOpenModal:o().func.isRequired};var ge=j,pe=t(21428),fe=t(90333);const K=({value:a,options:d,onChange:u})=>{const{formatMessage:i}=(0,y.Z)(),m=i({id:"Settings.permissions.auditLogs.filter.aria-label",defaultMessage:"Search and select an option to filter"});return e.createElement(pe.hQ,{"aria-label":m,value:a,onChange:u},d.map(({label:l,customValue:s})=>e.createElement(fe.O,{key:s,value:s},l)))};K.defaultProps={value:null},K.propTypes={value:o().string,options:o().arrayOf(o().shape({label:o().string.isRequired,customValue:o().string.isRequired}).isRequired).isRequired,onChange:o().func.isRequired};var J=K;const G=[{intlLabel:{id:"components.FilterOptions.FILTER_TYPES.$eq",defaultMessage:"is"},value:"$eq"},{intlLabel:{id:"components.FilterOptions.FILTER_TYPES.$ne",defaultMessage:"is not"},value:"$ne"}];var Ee=({formatMessage:a,users:d,canReadUsers:u})=>{const i=Object.keys(H).map(l=>({label:a({id:`Settings.permissions.auditLogs.${l}`,defaultMessage:Z(l)},{model:void 0}),customValue:l})),m=[{name:"action",metadatas:{customOperators:G,label:a({id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"}),options:i,customInput:J},fieldSchema:{type:"enumeration"}},{name:"date",metadatas:{label:a({id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"})},fieldSchema:{type:"datetime"}}];if(u&&d){const l=r=>r.username?r.username:r.firstname&&r.lastname?a({id:"Settings.permissions.auditLogs.user.fullname",defaultMessage:"{firstname} {lastname}"},{firstname:r.firstname,lastname:r.lastname}):r.email,s=d.map(r=>({label:l(r),customValue:r.id.toString()}));return[...m,{name:"user",metadatas:{customOperators:G,label:a({id:"Settings.permissions.auditLogs.user",defaultMessage:"User"}),options:s,customInput:J},fieldSchema:{type:"relation",mainField:{name:"id"}}}]}return m},ye=[{name:"action",key:"action",metadatas:{label:{id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"},sortable:!0}},{name:"date",key:"date",metadatas:{label:{id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"},sortable:!0}},{key:"user",name:"user",metadatas:{label:{id:"Settings.permissions.auditLogs.user",defaultMessage:"User"},sortable:!1},cellFormatter:a=>a?a.displayName:""}],Le=()=>{const{formatMessage:a}=(0,y.Z)(),d=(0,v.v9)(f._),{allowedActions:{canRead:u,canReadUsers:i}}=(0,n.ss)({...d.settings.auditLogs,readUsers:d.settings.users.read}),[{query:m},l]=(0,n.Kx)(),{auditLogs:s,users:r,isLoading:g,hasError:T}=X({canReadAuditLogs:u,canReadUsers:i});(0,n.go)();const A=Ee({formatMessage:a,users:r,canReadUsers:i}),B=a({id:"global.auditLogs",defaultMessage:"Audit Logs"}),F=ye.map(L=>({...L,metadatas:{...L.metadatas,label:a(L.metadatas.label)}}));return T?e.createElement(M.A,null,e.createElement(h.D,null,e.createElement(c.x,{paddingTop:8},e.createElement(n.Hn,null)))):e.createElement(O.o,{"aria-busy":g},e.createElement(n.SL,{name:B}),e.createElement(E.T,{title:B,subtitle:a({id:"Settings.permissions.auditLogs.listview.header.subtitle",defaultMessage:"Logs of all the activities that happened in your environment"})}),e.createElement(C.Z,{startActions:e.createElement(P.Z,{displayedFilters:A})}),e.createElement(h.D,{canRead:u},e.createElement(n.tM,{contentType:"Audit logs",headers:F,rows:s?.results||[],withBulkActions:!0,isLoading:g},e.createElement(ge,{headers:F,rows:s?.results||[],onOpenModal:L=>l({id:L})})),e.createElement(le,{pagination:s?.pagination})),m?.id&&e.createElement(re,{handleClose:()=>l({id:null},"remove"),logId:m.id}))},ve=()=>{const a=(0,v.v9)(f._);return e.createElement(n.O4,{permissions:a.settings.auditLogs.main},e.createElement(Le,null))}},90333:function(R,p,t){t.d(p,{O:function(){return n}});var e=t(21428);const n=e.Wx},99223:function(R,p,t){t.d(p,{Z:function(){return v}});var e=t(74512),n=t(87933);const v=({startActions:f,endActions:M})=>!f&&!M?null:(0,e.jsxs)(n.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,e.jsx)(n.k,{gap:2,wrap:"wrap",children:f}),(0,e.jsx)(n.k,{gap:2,shrink:0,wrap:"wrap",children:M})]})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8936],{80252:function(fe,y,t){t.r(y),t.d(y,{default:function(){return K}});var e=t(32735),i=t(45509),u=t(15062),x=t(30305),F=t(41415),m=t(87933),V=t(23866),E=t(49372),X=t(66456),d=t(92802),Y=t(3040),Z=t.n(Y),z=t(67879),B=t(20108),H=t(53038),N=t(90769),P=t(61234),j=t(98866),k=t(77061),g=t(27187),c=t(90562),J=t(45594),Q=t(165),n=t(2121),G=t(32329),S=t(79989),U=t(82920);function $(){const{formatMessage:s}=(0,z.Z)(),{post:b}=(0,i.kY)(),{push:q}=(0,H.k6)(),{formatAPIError:_}=(0,i.So)(),w=(0,u.I0)(),C=(0,i.lm)(),{collectionTypes:ee,singleTypes:te,isLoading:oe}=(0,N.G)(),{isLoading:T,meta:v,workflows:M}=(0,G.n)(),{clientState:{currentWorkflow:{data:l,isDirty:se}}}=(0,u.v9)(o=>o?.[n.sN]??S.E),[L,f]=e.useState(!1),{isLoading:I,getFeature:ne}=(0,j.q)(),[ae,le]=e.useState(null),[W,h]=e.useState({}),a=ne("review-workflows"),A=M.flatMap(o=>o.contentTypes),{mutateAsync:re,isLoading:R}=(0,B.useMutation)(async({workflow:o})=>{const{data:{data:r}}=await b("/admin/review-workflows/workflows",{data:o});return r},{onSuccess(){C({type:"success",message:{id:"Settings.review-workflows.create.page.notification.success",defaultMessage:"Workflow successfully created"}})}}),D=async()=>{h({});try{const o=await re({workflow:l});return q(`/settings/review-workflows/${o.id}`),o}catch(o){return o.response.data?.error?.name==="ValidationError"&&o.response.data?.error?.details?.errors?.length>0&&le(o.response.data?.error?.details?.errors.reduce((r,O)=>(Z()(r,O.path,O.message),r),{})),C({type:"warning",message:_(o)}),null}},ie=async()=>{await D()},ce=()=>{h({})},p=(0,d.TA)({enableReinitialize:!0,initialErrors:ae,initialValues:l,async onSubmit(){const o=l.contentTypes.some(r=>A.includes(r));a?.[n.Ef]&&v?.workflowCount>=parseInt(a[n.Ef],10)?f("workflow"):a?.[n._X]&&l.stages.length>=parseInt(a[n._X],10)?f("stage"):o?h(r=>({...r,hasReassignedContentTypes:!0})):D()},validate(o){return(0,U.V)({values:o,formatMessage:s})}});return(0,P.v)(n.sN,S.I),e.useEffect(()=>{w((0,k.Js)()),w((0,k.CI)({name:""}))},[w]),e.useEffect(()=>{!T&&!I&&(a?.[n.Ef]&&v?.workflowsTotal>=parseInt(a[n.Ef],10)?f("workflow"):a?.[n._X]&&l.stages.length>=parseInt(a[n._X],10)&&f("stage"))},[I,T,a,v?.workflowsTotal,l.stages.length]),e.createElement(e.Fragment,null,e.createElement(g.lx,null),e.createElement(d.Hy,{value:p},e.createElement(d.l0,{onSubmit:p.handleSubmit},e.createElement(g.h4,{navigationAction:e.createElement(g.eJ,{href:"/settings/review-workflows"}),primaryAction:e.createElement(F.z,{startIcon:e.createElement(X.Z,null),type:"submit",size:"M",disabled:!se,isLoading:R},s({id:"global.save",defaultMessage:"Save"})),title:s({id:"Settings.review-workflows.create.page.title",defaultMessage:"Create Review Workflow"}),subtitle:s({id:"Settings.review-workflows.page.subtitle",defaultMessage:"{count, plural, one {# stage} other {# stages}}"},{count:l?.stages?.length??0})}),e.createElement(g.fC,null,e.createElement(m.k,{alignItems:"stretch",direction:"column",gap:7},oe?e.createElement(V.a,null,s({id:"Settings.review-workflows.page.isLoading",defaultMessage:"Workflow is loading"})):e.createElement(m.k,{alignItems:"stretch",direction:"column",gap:7},e.createElement(Q.Y,{contentTypes:{collectionTypes:ee,singleTypes:te},workflows:M}),e.createElement(J.U,{stages:p.values?.stages})))))),e.createElement(i.QH.Root,{isConfirmButtonLoading:R,isOpen:Object.keys(W).length>0,onToggleDialog:ce,onConfirm:ie},e.createElement(i.QH.Body,null,e.createElement(m.k,{direction:"column",gap:5},W.hasReassignedContentTypes&&e.createElement(E.Z,{textAlign:"center",variant:"omega"},s({id:"Settings.review-workflows.page.delete.confirm.contentType.body",defaultMessage:"{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed."},{count:A.filter(o=>l.contentTypes.includes(o)).length})),e.createElement(E.Z,{textAlign:"center",variant:"omega"},s({id:"Settings.review-workflows.page.delete.confirm.confirm",defaultMessage:"Are you sure you want to save?"}))))),e.createElement(c.fC,{isOpen:L==="workflow",onClose:()=>f(!1)},e.createElement(c.Dx,null,s({id:"Settings.review-workflows.create.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),e.createElement(c.uT,null,s({id:"Settings.review-workflows.create.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."}))),e.createElement(c.fC,{isOpen:L==="stage",onClose:()=>f(!1)},e.createElement(c.Dx,null,s({id:"Settings.review-workflows.create.page.stages.limit.title",defaultMessage:"You have reached the limit of stages for this workflow in your plan"})),e.createElement(c.uT,null,s({id:"Settings.review-workflows.create.page.stages.limit.body",defaultMessage:"Try deleting some stages or contact Sales to enable more stages."}))))}function K(){const s=(0,u.v9)(x._);return e.createElement(i.O4,{permissions:s.settings["review-workflows"].create},e.createElement($,null))}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4409],{45696:function(Ee,M,t){t.r(M),t.d(M,{default:function(){return oe}});var e=t(32735),i=t(45509),d=t(15062),T=t(30305),B=t(41415),h=t(87933),H=t(23866),p=t(49372),N=t(66456),y=t(92802),P=t(3040),U=t.n(P),J=t(67879),Q=t(20108),G=t(53038),$=t(90769),K=t(61234),b=t(98866),I=t(77061),g=t(27187),c=t(90562),q=t(45594),_=t(165),l=t(2121),ee=t(32329),L=t(79989),te=t(82920);function se(){const{workflowId:u}=(0,G.UO)(),ne=(0,d.v9)(T._),{formatMessage:n}=(0,J.Z)(),E=(0,d.I0)(),{put:ae}=(0,i.kY)(),{formatAPIError:le}=(0,i.So)(),A=(0,i.lm)(),{isLoading:D,meta:m,workflows:k,status:W,refetch:re}=(0,ee.n)(),{collectionTypes:ie,singleTypes:ce,isLoading:fe}=(0,$.G)(),{status:de,clientState:{currentWorkflow:{data:a,isDirty:ge,hasDeletedServerStages:O}}}=(0,d.v9)(s=>s?.[l.sN]??L.E),{allowedActions:{canDelete:ue,canUpdate:S}}=(0,i.ss)(ne.settings["review-workflows"]),[w,v]=e.useState({}),{getFeature:me,isLoading:R}=(0,b.q)(),[x,f]=e.useState(!1),[we,F]=e.useState(null),V=k.find(s=>s.id===parseInt(u,10)),Z=k.filter(s=>s.id!==parseInt(u,10)).flatMap(s=>s.contentTypes),{mutateAsync:ve,isLoading:j}=(0,Q.useMutation)(async({workflow:s})=>{const{data:{data:o}}=await ae(`/admin/review-workflows/workflows/${s.id}`,{data:s});return o},{onSuccess(){A({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}})}}),he=async s=>{F(null);try{return await ve({workflow:s})}catch(o){return o.response.data?.error?.name==="ValidationError"&&o.response.data?.error?.details?.errors?.length>0&&F(o.response.data?.error?.details?.errors.reduce((Y,z)=>(U()(Y,z.path,z.message),Y),{})),A({type:"warning",message:le(o)}),null}},X=async()=>{await he(a),await re(),v({})},pe=async()=>{await X()},ye=()=>{v({})},C=(0,y.TA)({enableReinitialize:!0,initialErrors:we,initialValues:a,async onSubmit(){const s=a.contentTypes.some(o=>Z.includes(o));r?.[l.Ef]&&m?.workflowCount>parseInt(r[l.Ef],10)?f("workflow"):r?.[l._X]&&a.stages.length>parseInt(r[l._X],10)?f("stage"):O||s?(O&&v(o=>({...o,hasDeletedServerStages:!0})),s&&v(o=>({...o,hasReassignedContentTypes:!0}))):X()},validate(s){return(0,te.V)({values:s,formatMessage:n})}});(0,K.v)(l.sN,L.I);const r=me("review-workflows");return e.useEffect(()=>(E((0,I.fC)({status:W,data:V})),()=>{E((0,I.Js)())}),[W,V,E]),e.useEffect(()=>{!D&&!R&&(r?.[l.Ef]&&m?.workflowCount>parseInt(r[l.Ef],10)?f("workflow"):r?.[l._X]&&a.stages.length>parseInt(r[l._X],10)&&f("stage"))},[a.stages.length,R,D,r,m?.workflowCount,m.workflowsTotal]),e.createElement(e.Fragment,null,e.createElement(g.lx,null),e.createElement(y.Hy,{value:C},e.createElement(y.l0,{onSubmit:C.handleSubmit},e.createElement(g.h4,{navigationAction:e.createElement(g.eJ,{href:"/settings/review-workflows"}),primaryAction:S&&e.createElement(B.z,{startIcon:e.createElement(N.Z,null),type:"submit",size:"M",disabled:!ge,loading:!Object.keys(w).length>0&&j},n({id:"global.save",defaultMessage:"Save"})),subtitle:a.stages.length>0&&n({id:"Settings.review-workflows.page.subtitle",defaultMessage:"{count, plural, one {# stage} other {# stages}}"},{count:a.stages.length}),title:a.name}),e.createElement(g.fC,null,fe||de==="loading"?e.createElement(h.k,{justifyContent:"center"},e.createElement(H.a,null,n({id:"Settings.review-workflows.page.isLoading",defaultMessage:"Workflow is loading"}))):e.createElement(h.k,{alignItems:"stretch",direction:"column",gap:7},e.createElement(_.Y,{canUpdate:S,contentTypes:{collectionTypes:ie,singleTypes:ce},currentWorkflow:a,workflows:k}),e.createElement(q.U,{canDelete:ue,canUpdate:S,stages:C.values?.stages}))))),e.createElement(i.QH.Root,{isConfirmButtonLoading:j,isOpen:Object.keys(w).length>0,onToggleDialog:ye,onConfirm:pe},e.createElement(i.QH.Body,null,e.createElement(h.k,{direction:"column",gap:5},w.hasDeletedServerStages&&e.createElement(p.Z,{textAlign:"center",variant:"omega"},n({id:"Settings.review-workflows.page.delete.confirm.stages.body",defaultMessage:"All entries assigned to deleted stages will be moved to the previous stage."})),w.hasReassignedContentTypes&&e.createElement(p.Z,{textAlign:"center",variant:"omega"},n({id:"Settings.review-workflows.page.delete.confirm.contentType.body",defaultMessage:"{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed."},{count:Z.filter(s=>a.contentTypes.includes(s)).length})),e.createElement(p.Z,{textAlign:"center",variant:"omega"},n({id:"Settings.review-workflows.page.delete.confirm.confirm",defaultMessage:"Are you sure you want to save?"}))))),e.createElement(c.fC,{isOpen:x==="workflow",onClose:()=>f(!1)},e.createElement(c.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(c.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(c.fC,{isOpen:x==="stage",onClose:()=>f(!1)},e.createElement(c.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(c.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 oe(){const u=(0,d.v9)(T._);return e.createElement(i.O4,{permissions:u.settings["review-workflows"].main},e.createElement(se,null))}}}]);
@@ -1,56 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[349],{17379:function(O,u,t){t.d(u,{r:function(){return g}});var e=t(32735),n=t(72850),r=t(60216),f=t.n(r),E=t(74506);function d(m,l,s){if(!m||!l)return{display:"none"};const{x:a,y:o}=s;return{transform:`translate(${a}px, ${o}px)`}}function g({renderItem:m}){const{itemType:l,isDragging:s,item:a,initialOffset:o,currentOffset:y,mouseOffset:h}=(0,E.useDragLayer)(T=>({item:T.getItem(),itemType:T.getItemType(),initialOffset:T.getInitialSourceClientOffset(),currentOffset:T.getSourceClientOffset(),isDragging:T.isDragging(),mouseOffset:T.getClientOffset()}));return s?e.createElement(n.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},e.createElement(n.x,{style:d(o,y,h)},m({type:l,item:a}))):null}g.propTypes={renderItem:f().func.isRequired}},98866:function(O,u,t){t.d(u,{q:function(){return f}});var e=t(32735),n=t(45509),r=t(20108);function f({enabled:E}={enabled:!0}){const{get:d}=(0,n.kY)(),{data:g,isError:m,isLoading:l}=(0,r.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:o}}=await d("/admin/license-limit-information");return o},{enabled:E}),s=e.useMemo(()=>g??{},[g]),a=e.useCallback(o=>(s?.features??[]).find(h=>h.name===o)?.options??{},[s?.features]);return{license:s,getFeature:a,isError:m,isLoading:l}}},27187:function(O,u,t){t.d(u,{eJ:function(){return D},lx:function(){return P},h4:function(){return v},fC:function(){return I}});var e=t(32735),n=t(96709),r=t(27649),f=t(17e3),E=t(82055),d=t(45509),g=t(29439),m=t(67879),l=t(17379),s=t(2121),a=t(87933),o=t(49372),y=t(16899),h=t(60216),T=t.n(h),A=t(8471);const W=(0,A.ZP)(a.k)`
2
- svg path {
3
- fill: ${({theme:w})=>w.colors.neutral600};
4
- }
5
- `;function C({name:w}){return e.createElement(a.k,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",gap:3,hasRadius:!0,padding:3,shadow:"tableShadow",width:(0,d.Q1)(300)},e.createElement(W,{alignItems:"center",background:"neutral200",borderRadius:"50%",height:6,justifyContent:"center",width:6},e.createElement(y.Z,{width:`${8/16}rem`})),e.createElement(o.Z,{fontWeight:"bold"},w))}C.propTypes={name:T().string.isRequired};function R({type:w,item:p}){switch(w){case s.uL.STAGE:return e.createElement(C,{...p});default:return null}}function P(){return e.createElement(l.r,{renderItem:R})}function I({children:w}){return e.createElement(n.A,null,e.createElement(r.o,{tabIndex:-1},e.createElement(f.D,null,w)))}function D({href:w}){const{formatMessage:p}=(0,m.Z)();return e.createElement(d.rU,{startIcon:e.createElement(g.Z,null),to:w},p({id:"global.back",defaultMessage:"Back"}))}function v({title:w,subtitle:p,navigationAction:M,primaryAction:L}){return e.createElement(e.Fragment,null,e.createElement(d.SL,{name:w}),e.createElement(E.T,{navigationAction:M,primaryAction:L,title:w,subtitle:p}))}},90562:function(O,u,t){t.d(u,{uT:function(){return R},fC:function(){return D},Dx:function(){return C}});var e=t(32735),n=t(49372),r=t(87933),f=t(85025),E=t(31600),d=t(72850),g=t(50563),m=t(95489),l=t(35331),s=t(60216),a=t.n(s),o=t(67879),y=t(8471),h=t.p+"0cd5f8915b265d5b1856.png";const T="limits-title",A="https://strapi.io/pricing-cloud",W="https://strapi.io/contact-sales";function C({children:v}){return e.createElement(n.Z,{variant:"alpha",id:T},v)}C.propTypes={children:a().node.isRequired};function R({children:v}){return e.createElement(n.Z,{variant:"omega"},v)}R.propTypes={children:a().node.isRequired};function P(){const{formatMessage:v}=(0,o.Z)();return e.createElement(r.k,{gap:2,paddingTop:4},e.createElement(m.Q,{variant:"default",isExternal:!0,href:A},v({id:"Settings.review-workflows.limit.cta.learn",defaultMessage:"Learn more"})),e.createElement(m.Q,{variant:"tertiary",isExternal:!0,href:W},v({id:"Settings.review-workflows.limit.cta.sales",defaultMessage:"Contact Sales"})))}const I=y.ZP.img`
6
- // Margin top|right reverse the padding of ModalBody
7
- margin-right: ${({theme:v})=>`-${v.spaces[7]}`};
8
- margin-top: ${({theme:v})=>`-${v.spaces[7]}`};
9
- width: 360px;
10
- `;function D({children:v,isOpen:w,onClose:p}){const{formatMessage:M}=(0,o.Z)();return w?e.createElement(f.P,{labelledBy:T},e.createElement(E.f,null,e.createElement(r.k,{gap:2,paddingLeft:7,position:"relative"},e.createElement(r.k,{alignItems:"start",direction:"column",gap:2,width:"60%"},v,e.createElement(P,null)),e.createElement(r.k,{justifyContent:"end",height:"100%",width:"40%"},e.createElement(I,{src:h,"aria-hidden":!0,alt:"",loading:"lazy"}),e.createElement(d.x,{display:"flex",position:"absolute",right:0,top:0},e.createElement(g.h,{icon:e.createElement(l.Z,null),"aria-label":M({id:"global.close",defaultMessage:"Close"}),onClick:p})))))):null}D.defaultProps={isOpen:!1},D.propTypes={children:a().node.isRequired,isOpen:a().bool,onClose:a().func.isRequired}},2121:function(O,u,t){t.d(u,{$k:function(){return m},Ef:function(){return y},FT:function(){return a},Nj:function(){return g},Ot:function(){return d},VS:function(){return l},_X:function(){return h},gu:function(){return r},lv:function(){return s},qZ:function(){return f},sN:function(){return n},uL:function(){return o},x4:function(){return E}});var e=t(12301);const n="settings_review-workflows",r="Settings/Review_Workflows/RESET_WORKFLOW",f="Settings/Review_Workflows/SET_WORKFLOW",E="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",d="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",g="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",m="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",l="Settings/Review_Workflows/WORKFLOW_UPDATE",s={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"},a=e.W.colors.primary600,o={STAGE:"stage"},y="numberOfWorkflows",h="stagesPerWorkflow"},32329:function(O,u,t){t.d(u,{n:function(){return r}});var e=t(45509),n=t(20108);function r(f={}){const{get:E}=(0,e.kY)(),{id:d="",...g}=f,m={populate:"stages"},{data:l,isLoading:s,status:a,refetch:o}=(0,n.useQuery)(["review-workflows","workflows",d],async()=>(await E(`/admin/review-workflows/workflows/${d}`,{params:{...m,...g}})).data);let y=[];return d&&l?.data?y=[l.data]:Array.isArray(l?.data)&&(y=l.data),{meta:l?.meta??{},workflows:y,isLoading:s,status:a,refetch:o}}},32033:function(O,u,t){t.r(u),t.d(u,{default:function(){return X}});var e=t(32735),n=t(45509),r=t(15062),f=t(30305),E=t(87933),d=t(23866),g=t(56755),m=t(73269),l=t(33827),s=t(94547),a=t(19786),o=t(49372),y=t(3685),h=t(35658),T=t(50563),A=t(19406),W=t(68625),C=t(4038),R=t(67879),P=t(20108),I=t(53038),D=t(8471),v=t(90769),w=t(98866),p=t(27187),M=t(90562),L=t(2121),Y=t(32329);const V=(0,D.ZP)(n.rU)`
11
- align-items: center;
12
- height: ${(0,n.Q1)(32)};
13
- display: flex;
14
- justify-content: center;
15
- padding: ${({theme:i})=>`${i.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:i})=>i.colors.neutral500};
24
- }
25
- }
26
-
27
- &:hover,
28
- &:focus {
29
- svg {
30
- path {
31
- fill: ${({theme:i})=>i.colors.neutral800};
32
- }
33
- }
34
- }
35
- `;function z(){const{formatMessage:i}=(0,R.Z)(),{push:F}=(0,I.k6)(),{collectionTypes:J,singleTypes:b,isLoading:q}=(0,v.G)(),{meta:x,workflows:K,isLoading:Z,refetch:_}=(0,Y.n)(),[N,$]=e.useState(null),[ee,B]=e.useState(!1),{del:te}=(0,n.kY)(),{formatAPIError:ne}=(0,n.So)(),U=(0,n.lm)(),{getFeature:ae,isLoading:G}=(0,w.q)(),{trackUsage:Q}=(0,n.rS)(),se=(0,r.v9)(f._),{allowedActions:{canCreate:H,canDelete:oe}}=(0,n.ss)(se.settings["review-workflows"]),S=ae("review-workflows"),{mutateAsync:re,isLoading:le}=(0,P.useMutation)(async({workflowId:c,stages:k})=>{const{data:{data:j}}=await te(`/admin/review-workflows/workflows/${c}`,{data:k});return j},{onSuccess(){U({type:"success",message:{id:"notification.success.deleted",defaultMessage:"Deleted"}})}}),ie=c=>[...J,...b].find(j=>j.uid===c).info.displayName,ce=c=>{$(c)},de=()=>{$(null)},ue=async()=>{try{const c=await re({workflowId:N});return await _(),$(null),c}catch(c){return U({type:"warning",message:ne(c)}),null}};return e.useEffect(()=>{!Z&&!G&&S?.[L.Ef]&&x?.workflowCount>parseInt(S[L.Ef],10)&&B(!0)},[G,Z,S,x?.workflowCount,x.workflowsTotal]),e.createElement(e.Fragment,null,e.createElement(p.h4,{primaryAction:H&&e.createElement(n.Qj,{startIcon:e.createElement(A.Z,null),size:"S",to:"/settings/review-workflows/create",onClick:c=>{S?.[L.Ef]&&x?.workflowCount>=parseInt(S[L.Ef],10)?(c.preventDefault(),B(!0)):Q("willCreateWorkflow")}},i({id:"Settings.review-workflows.list.page.create",defaultMessage:"Create new workflow"})),subtitle:i({id:"Settings.review-workflows.list.page.subtitle",defaultMessage:"Manage your content review process"}),title:i({id:"Settings.review-workflows.list.page.title",defaultMessage:"Review Workflows"})}),e.createElement(p.fC,null,Z||q?e.createElement(E.k,{justifyContent:"center"},e.createElement(d.a,null,i({id:"Settings.review-workflows.page.list.isLoading",defaultMessage:"Workflows are loading"}))):e.createElement(g.i,{colCount:3,footer:H&&e.createElement(m.c,{icon:e.createElement(A.Z,null),onClick:()=>{S?.[L.Ef]&&x?.workflowCount>=parseInt(S[L.Ef],10)?B(!0):(F("/settings/review-workflows/create"),Q("willCreateWorkflow"))}},i({id:"Settings.review-workflows.list.page.create",defaultMessage:"Create new workflow"})),rowCount:1},e.createElement(l.h,null,e.createElement(s.Tr,null,e.createElement(a.Th,null,e.createElement(o.Z,{variant:"sigma"},i({id:"Settings.review-workflows.list.page.list.column.name.title",defaultMessage:"Name"}))),e.createElement(a.Th,null,e.createElement(o.Z,{variant:"sigma"},i({id:"Settings.review-workflows.list.page.list.column.stages.title",defaultMessage:"Stages"}))),e.createElement(a.Th,null,e.createElement(o.Z,{variant:"sigma"},i({id:"Settings.review-workflows.list.page.list.column.contentTypes.title",defaultMessage:"Content Types"}))),e.createElement(a.Th,null,e.createElement(y.T,null,i({id:"Settings.review-workflows.list.page.list.column.actions.title",defaultMessage:"Actions"}))))),e.createElement(h.p,null,K.map(c=>e.createElement(s.Tr,{...(0,n.X7)({fn(k){k.target.nodeName!=="BUTTON"&&F(`/settings/review-workflows/${c.id}`)}}),key:`workflow-${c.id}`},e.createElement(a.Td,{width:(0,n.Q1)(250)},e.createElement(o.Z,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},c.name)),e.createElement(a.Td,null,e.createElement(o.Z,{textColor:"neutral800"},c.stages.length)),e.createElement(a.Td,null,e.createElement(o.Z,{textColor:"neutral800"},(c?.contentTypes??[]).map(ie).join(", "))),e.createElement(a.Td,null,e.createElement(E.k,{alignItems:"center",justifyContent:"end"},e.createElement(V,{to:`/settings/review-workflows/${c.id}`,"aria-label":i({id:"Settings.review-workflows.list.page.list.column.actions.edit.label",defaultMessage:"Edit {name}"},{name:c.name})},e.createElement(W.Z,null)),K.length>1&&oe&&e.createElement(T.h,{"aria-label":i({id:"Settings.review-workflows.list.page.list.column.actions.delete.label",defaultMessage:"Delete {name}"},{name:"Default workflow"}),icon:e.createElement(C.Z,null),noBorder:!0,onClick:()=>{ce(c.id)}}))))))),e.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:le,isOpen:!!N,onToggleDialog:de,onConfirm:ue}),e.createElement(M.fC,{isOpen:ee,onClose:()=>B(!1)},e.createElement(M.Dx,null,i({id:"Settings.review-workflows.list.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),e.createElement(M.uT,null,i({id:"Settings.review-workflows.list.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."})))))}function X(){const i=(0,r.v9)(f._);return e.createElement(n.O4,{permissions:i.settings["review-workflows"].main},e.createElement(z,null))}},73269:function(O,u,t){t.d(u,{c:function(){return l}});var e=t(74512),n=t(8471),r=t(72850),f=t(9026),E=t(87933),d=t(49372);const g=(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:s})=>s.colors.primary600};
50
- }
51
- `,m=(0,n.ZP)(r.x)`
52
- border-radius: 0 0 ${({theme:s})=>s.borderRadius} ${({theme:s})=>s.borderRadius};
53
- display: block;
54
- width: 100%;
55
- border: none;
56
- `,l=({children:s,icon:a,...o})=>(0,e.jsxs)("div",{children:[(0,e.jsx)(f.i,{}),(0,e.jsx)(m,{as:"button",background:"primary100",padding:5,...o,children:(0,e.jsxs)(E.k,{children:[(0,e.jsx)(g,{"aria-hidden":!0,background:"primary200",children:a}),(0,e.jsx)(r.x,{paddingLeft:3,children:(0,e.jsx)(d.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:s})})]})})]})},29439:function(O,u,t){t.d(u,{Z:function(){return r}});var e=t(74512);const n=f=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...f,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"})}),r=n}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[302],{86409:function(U,m,e){e.d(m,{F:function(){return L}});var t=e(45509),S=e(67879),E=e(20108);const L=(p={},M={})=>{const{id:r="",...f}=p,{get:y}=(0,t.kY)(),{locale:d}=(0,S.Z)(),O=(0,t.Xe)(d,{sensitivity:"base"}),{data:l,error:C,isError:h,isLoading:o,refetch:I}=(0,E.useQuery)(["roles",r,f],async()=>{const{data:c}=await y(`/admin/roles/${r??""}`,{params:f});return c},M);let u=[];return r&&l?u=[l.data]:Array.isArray(l?.data)&&(u=l.data),{roles:u.sort((c,A)=>O.compare(c.name,A.name)),error:C,isError:h,isLoading:o,refetch:I}}},68951:function(U,m,e){e.r(m),e.d(m,{SingleSignOn:function(){return B},default:function(){return Z}});var t=e(32735),S=e(96709),E=e(27649),L=e(82055),p=e(41415),M=e(17e3),r=e(87933),f=e(49372),y=e(15335),d=e(5803),O=e(71842),l=e(68465),C=e(84967),h=e(6407),o=e(45509),I=e(66456),u=e(89793),c=e.n(u),A=e(67879),T=e(15062),x=e(79652),F=e(86409),b=e(30305),g=e(24346),W=g.Ry().shape({autoRegister:g.Xg().required(o.I0.required),defaultRole:g.nK().when("autoRegister",(a,n)=>a?n.required(o.I0.required):n.nullable()),ssoLockedRoles:g.IX().nullable().of(g.nK().when("ssoLockedRoles",(a,n)=>a?n.required(o.I0.required):n.nullable()))});const B=()=>{(0,o.go)();const{formatMessage:a}=(0,A.Z)(),n=(0,T.v9)(b._),{isLoading:G,allowedActions:{canUpdate:P,canReadRoles:X}}=(0,o.ss)({...n.settings.sso,readRoles:n.settings.roles.read}),[{formErrors:i,initialData:z,isLoading:H,modifiedData:v,showHeaderButtonLoader:k},,{handleChange:R,handleSubmit:N}]=(0,x.G4)("/admin/providers/options",W,()=>{},["autoRegister","defaultRole","ssoLockedRoles"]),{roles:K,isLoading:Q}=(0,F.F)(void 0,{enabled:X}),Y=G||Q||H;return t.createElement(S.A,null,t.createElement(o.SL,{name:"SSO"}),t.createElement(E.o,{tabIndex:-1},t.createElement("form",{onSubmit:N},t.createElement(L.T,{primaryAction:t.createElement(p.z,{"data-testid":"save-button",disabled:c()(z,v),loading:k,startIcon:t.createElement(I.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(M.D,null,Y?t.createElement(o.dO,null):t.createElement(r.k,{direction:"column",alignItems:"stretch",gap:4,background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},t.createElement(f.Z,{variant:"delta",as:"h2"},a({id:"global.settings",defaultMessage:"Settings"})),t.createElement(y.r,{gap:4},t.createElement(d.P,{col:6,m:6,s:12},t.createElement(O.s,{"aria-label":"autoRegister","data-testid":"autoRegister",disabled:!P,checked:v.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=>{R({target:{name:"autoRegister",value:s.target.checked}})}})),t.createElement(d.P,{col:6,m:6,s:12},t.createElement(l.P,{disabled:!P,hint:a({id:"Settings.sso.form.defaultRole.description",defaultMessage:"It will attach the new authenticated user to the selected role"}),error:i.defaultRole?a({id:i.defaultRole.id,defaultMessage:i.defaultRole.id}):"",label:a({id:"Settings.sso.form.defaultRole.label",defaultMessage:"Default role"}),name:"defaultRole",onChange:s=>{R({target:{name:"defaultRole",value:s}})},placeholder:a({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),value:v.defaultRole},K.map(({id:s,name:D})=>t.createElement(C.W,{key:s,value:s.toString()},D)))),t.createElement(d.P,{col:6,m:6,s:12},t.createElement(h.NU,{disabled:!P,hint:a({id:"Settings.sso.form.localAuthenticationLock.description",defaultMessage:"Select the roles for which you want to disable the local authentication"}),error:i.ssoLockedRoles?a({id:i.ssoLockedRoles.id,defaultMessage:i.ssoLockedRoles.id}):"",label:a({id:"Settings.sso.form.localAuthenticationLock.label",defaultMessage:"Local authentication lock-out"}),name:"ssoLockedRoles",onChange:s=>{R({target:{name:"ssoLockedRoles",value:s}})},placeholder:a({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),onClear:()=>{R({target:{name:"ssoLockedRoles",emptyArray:[]}})},value:v.ssoLockedRoles||[],withTags:!0},K.map(({id:s,name:D})=>t.createElement(h.ML,{key:s,value:s.toString()},D))))))))))};var Z=()=>{const a=(0,T.v9)(b._);return t.createElement(o.O4,{permissions:a.settings.sso.main},t.createElement(B,null))}}}]);
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- const NODE_MODULES = 'node_modules';
4
- /**
5
- * @param {string[]} pluginsPath – an array of paths to the plugins from the user's directory
6
- * @returns {RegExp} a regex that will exclude _all_ node_modules except for the plugins in the pluginsPath array.
7
- */
8
- const createPluginsExcludePath = (pluginsPath = []) => {
9
- /**
10
- * If there aren't any plugins in the node_modules array, just return the node_modules regex
11
- * without complicating it.
12
- */
13
- if (pluginsPath.length === 0) {
14
- return /node_modules/;
15
- }
16
-
17
- return new RegExp(`${NODE_MODULES}/(?!(${pluginsPath.join('|')}))`);
18
- };
19
-
20
- module.exports = { createPluginsExcludePath };
@@ -1,110 +0,0 @@
1
- 'use strict';
2
-
3
- const { join, resolve, sep, posix } = require('path');
4
- const fs = require('fs');
5
- // eslint-disable-next-line import/no-extraneous-dependencies
6
- const glob = require('glob');
7
-
8
- const getPlugins = (pluginsAllowlist) => {
9
- const rootPath = resolve(__dirname, '..', join('..', '..', '..', 'packages'));
10
- /**
11
- * So `glob` only supports '/' as a path separator, so we need to replace
12
- * the path separator for the current OS with '/'. e.g. on windows it's `\`.
13
- *
14
- * see https://github.com/isaacs/node-glob/#windows for more information
15
- *
16
- * and see https://github.com/isaacs/node-glob/issues/467#issuecomment-1114240501 for the recommended fix.
17
- */
18
- let corePath = join(rootPath, 'core', '*');
19
- let pluginsPath = join(rootPath, 'plugins', '*');
20
-
21
- if (process.platform === 'win32') {
22
- corePath = corePath.split(sep).join(posix.sep);
23
- pluginsPath = pluginsPath.split(sep).join(posix.sep);
24
- }
25
-
26
- const corePackageDirs = glob.sync(corePath);
27
- const pluginsPackageDirs = glob.sync(pluginsPath);
28
-
29
- const plugins = [...corePackageDirs, ...pluginsPackageDirs]
30
- .map((directory) => {
31
- const isCoreAdmin = directory.includes('packages/core/admin');
32
-
33
- if (isCoreAdmin) {
34
- return null;
35
- }
36
-
37
- const { name, strapi } = require(join(directory, 'package.json'));
38
-
39
- /**
40
- * this will remove any of our packages that are
41
- * not actually plugins for the application
42
- */
43
- if (!strapi) {
44
- return null;
45
- }
46
-
47
- /**
48
- * we want the name of the node_module
49
- */
50
- return {
51
- pathToPlugin: name,
52
- name: strapi.name,
53
- info: { ...strapi, packageName: name },
54
- directory,
55
- };
56
- })
57
- .filter((plugin) => {
58
- if (!plugin) {
59
- return false;
60
- }
61
-
62
- /**
63
- * There are two ways a plugin should be imported, either it's local to the strapi app,
64
- * or it's an actual npm module that's installed and resolved via node_modules.
65
- *
66
- * We first check if the plugin is local to the strapi app, using a regular `resolve` because
67
- * the pathToPlugin will be relative i.e. `/Users/my-name/strapi-app/src/plugins/my-plugin`.
68
- *
69
- * If the file doesn't exist well then it's probably a node_module, so instead we use `require.resolve`
70
- * which will resolve the path to the module in node_modules. If it fails with the specific code `MODULE_NOT_FOUND`
71
- * then it doesn't have an admin part to the package.
72
- *
73
- * NOTE: we should try to move to `./package.json[exports]` map with bundling of our own plugins,
74
- * because these entry files are written in commonjs restricting features e.g. tree-shaking.
75
- */
76
- try {
77
- const isLocalPluginWithLegacyAdminFile = fs.existsSync(
78
- resolve(`${plugin.pathToPlugin}/strapi-admin.js`)
79
- );
80
-
81
- if (!isLocalPluginWithLegacyAdminFile) {
82
- const isModulewithLegacyAdminFile = require.resolve(
83
- `${plugin.pathToPlugin}/strapi-admin.js`
84
- );
85
-
86
- return isModulewithLegacyAdminFile;
87
- }
88
-
89
- return isLocalPluginWithLegacyAdminFile;
90
- } catch (err) {
91
- if (err.code === 'MODULE_NOT_FOUND') {
92
- /**
93
- * the plugin does not contain FE code, so we
94
- * don't want to import it anyway
95
- */
96
- return false;
97
- }
98
-
99
- throw err;
100
- }
101
- });
102
-
103
- if (Array.isArray(pluginsAllowlist)) {
104
- return plugins.filter((plugin) => pluginsAllowlist.includes(plugin.pathToPlugin));
105
- }
106
-
107
- return plugins;
108
- };
109
-
110
- module.exports = { getPlugins };