@strapi/admin 4.12.7 → 4.13.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.
- package/admin/src/components/NpsSurvey/hooks/useNpsSurveySettings.js +17 -0
- package/admin/src/components/NpsSurvey/index.js +365 -0
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumns.js +2 -0
- package/admin/src/content-manager/components/DynamicZone/components/DynamicZoneLabel.js +1 -1
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +8 -1
- package/admin/src/content-manager/components/Filter/CustomInputs/AdminUsersFilter.js +42 -0
- package/admin/src/content-manager/components/Filter/Filter.js +54 -0
- package/admin/src/content-manager/components/Filter/index.js +1 -0
- package/admin/src/content-manager/components/InputUID/index.js +222 -216
- package/admin/src/content-manager/components/RelationInput/RelationInput.js +4 -0
- package/admin/src/content-manager/components/RepeatableComponent/index.js +32 -2
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +432 -68
- package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +0 -7
- package/admin/src/content-manager/components/Wysiwyg/index.js +147 -152
- package/admin/src/content-manager/hooks/useAllowedAttributes.js +47 -0
- package/admin/src/content-manager/pages/EditView/Information/index.js +9 -8
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +40 -7
- package/admin/src/content-manager/pages/ListSettingsView/index.js +6 -2
- package/admin/src/content-manager/pages/ListView/components/FieldPicker/index.js +67 -69
- package/admin/src/content-manager/pages/ListView/components/ViewSettingsMenu/index.js +80 -0
- package/admin/src/content-manager/pages/ListView/index.js +236 -67
- package/admin/src/content-manager/utils/getDisplayName.js +33 -0
- package/admin/src/content-manager/utils/index.js +1 -0
- package/admin/src/pages/Admin/index.js +3 -1
- package/admin/src/pages/AuthPage/components/Register/index.js +5 -0
- package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +3 -3
- package/admin/src/pages/SettingsPage/index.js +16 -26
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +69 -35
- package/admin/src/plugins.js +7 -8
- package/admin/src/translations/en.json +10 -1
- package/build/{1049.f76cb14b.chunk.js → 1049.ec69f5e0.chunk.js} +1 -1
- package/build/1227.9f37e1dc.chunk.js +1 -0
- package/build/{1386.879bcd90.chunk.js → 1386.ea73b677.chunk.js} +1 -1
- package/build/1504.eff012f7.chunk.js +95 -0
- package/build/{2225.c6244756.chunk.js → 2225.649fb7bc.chunk.js} +11 -11
- package/build/2237.b832ae6e.chunk.js +114 -0
- package/build/2379.1f98a31a.chunk.js +1 -0
- package/build/2395.0e5e8ded.chunk.js +26 -0
- package/build/2801.8e1aa82a.chunk.js +1 -0
- package/build/{3483.03c24f96.chunk.js → 3483.19381b40.chunk.js} +1 -1
- package/build/4174.f1f39e40.chunk.js +1 -0
- package/build/4546.a5946d22.chunk.js +1 -0
- package/build/4724.aea5c8c1.chunk.js +6 -0
- package/build/502.7bba43b1.chunk.js +1 -0
- package/build/6158.c3c13c20.chunk.js +1 -0
- package/build/7464.eb057bec.chunk.js +1 -0
- package/build/78.dcc6df5c.chunk.js +1 -0
- package/build/8276.be3ed581.chunk.js +26 -0
- package/build/{Admin-authenticatedApp.31497f74.chunk.js → Admin-authenticatedApp.43b6ec9a.chunk.js} +2 -2
- package/build/{Admin_InternalErrorPage.f45f2462.chunk.js → Admin_InternalErrorPage.38155af3.chunk.js} +1 -1
- package/build/{Admin_homePage.ac9dfb86.chunk.js → Admin_homePage.6f128523.chunk.js} +1 -1
- package/build/{Admin_marketplace.c94239f6.chunk.js → Admin_marketplace.061a6e5a.chunk.js} +1 -1
- package/build/{Admin_pluginsPage.bbe79434.chunk.js → Admin_pluginsPage.16f837b8.chunk.js} +1 -1
- package/build/{Admin_profilePage.192edc52.chunk.js → Admin_profilePage.678bce24.chunk.js} +2 -2
- package/build/Admin_settingsPage.af7309e4.chunk.js +111 -0
- package/build/{Upload_ConfigureTheView.345ac1e0.chunk.js → Upload_ConfigureTheView.3fc1c100.chunk.js} +1 -1
- package/build/admin-app.d63bd229.chunk.js +36 -0
- package/build/{admin-edit-roles-page.6d567273.chunk.js → admin-edit-roles-page.38a6c863.chunk.js} +3 -3
- package/build/{admin-edit-users.acfd4128.chunk.js → admin-edit-users.545fc882.chunk.js} +2 -2
- package/build/{admin-roles-list.23ddff26.chunk.js → admin-roles-list.1e2e814d.chunk.js} +1 -1
- package/build/{admin-users.00e20017.chunk.js → admin-users.b8ea5677.chunk.js} +2 -2
- package/build/{api-tokens-create-page.46c2ea84.chunk.js → api-tokens-create-page.e0c15627.chunk.js} +1 -1
- package/build/{api-tokens-edit-page.58139df9.chunk.js → api-tokens-edit-page.9f2dce47.chunk.js} +1 -1
- package/build/{api-tokens-list-page.0af7d431.chunk.js → api-tokens-list-page.d747051c.chunk.js} +2 -2
- package/build/{audit-logs-settings-page.0f73ccf8.chunk.js → audit-logs-settings-page.96f9d608.chunk.js} +1 -1
- package/build/content-manager.ccff1078.chunk.js +1097 -0
- package/build/{content-type-builder-list-view.bf9be456.chunk.js → content-type-builder-list-view.b71cf240.chunk.js} +1 -1
- package/build/{content-type-builder.cd999f6e.chunk.js → content-type-builder.e5669749.chunk.js} +2 -2
- package/build/email-settings-page.2809f0bf.chunk.js +11 -0
- package/build/en-json.e12fd5fc.chunk.js +1 -0
- package/build/{i18n-settings-page.47f78016.chunk.js → i18n-settings-page.5f716172.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/main.c6c9e04c.js +2859 -0
- package/build/review-workflows-settings-create-view.4a156a19.chunk.js +1 -0
- package/build/review-workflows-settings-edit-view.ce984d1f.chunk.js +1 -0
- package/build/review-workflows-settings-list-view.419b8deb.chunk.js +56 -0
- package/build/{runtime~main.d515c521.js → runtime~main.dcf1cb45.js} +2 -2
- package/build/{sso-settings-page.12b6d8ae.chunk.js → sso-settings-page.45153df5.chunk.js} +1 -1
- package/build/{transfer-tokens-create-page.1597e6ab.chunk.js → transfer-tokens-create-page.ebba16d8.chunk.js} +1 -1
- package/build/{transfer-tokens-edit-page.8741529f.chunk.js → transfer-tokens-edit-page.d7bb2b3e.chunk.js} +1 -1
- package/build/{transfer-tokens-list-page.d6986b03.chunk.js → transfer-tokens-list-page.cfe1736c.chunk.js} +2 -2
- package/build/{upload-settings.7f93d4c0.chunk.js → upload-settings.cc5ad813.chunk.js} +1 -1
- package/build/{upload.37488080.chunk.js → upload.756efc28.chunk.js} +1 -1
- package/build/users-advanced-settings-page.818d84eb.chunk.js +9 -0
- package/build/users-email-settings-page.c1967c09.chunk.js +9 -0
- package/build/users-providers-settings-page.11893e08.chunk.js +14 -0
- package/build/users-roles-settings-page.2b051e6a.chunk.js +55 -0
- package/build/{webhook-edit-page.6cb479ff.chunk.js → webhook-edit-page.de45c635.chunk.js} +2 -2
- package/build/{webhook-list-page.65e1b5bb.chunk.js → webhook-list-page.ca91df8b.chunk.js} +1 -1
- package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js +42 -0
- package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js +70 -0
- package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js +71 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +9 -217
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js +147 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/index.js +1 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js +243 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/index.js +1 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/constants.js +2 -0
- package/ee/admin/content-manager/pages/ListSettingsView/constants.js +7 -0
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsAssigneeEE.js +21 -0
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/constants.js +44 -17
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/index.js +1 -0
- package/ee/admin/hooks/useAuthProviders.js +25 -0
- package/ee/admin/hooks/{useLicenseLimitNotification/index.js → useLicenseLimitNotification.js} +2 -4
- package/ee/admin/hooks/{useLicenseLimits/useLicenseLimits.js → useLicenseLimits.js} +4 -1
- package/ee/admin/pages/AuthPage/components/Login/index.js +8 -4
- package/ee/admin/pages/AuthPage/components/Providers/index.js +8 -5
- package/ee/admin/pages/HomePage/index.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/index.js +1 -1
- package/ee/server/constants/workflows.js +1 -0
- package/ee/server/controllers/index.js +1 -0
- package/ee/server/controllers/workflows/assignees/index.js +44 -0
- package/ee/server/routes/review-workflows.js +17 -0
- package/ee/server/services/index.js +1 -0
- package/ee/server/services/review-workflows/assignees.js +54 -0
- package/ee/server/services/review-workflows/metrics/index.js +5 -0
- package/ee/server/services/review-workflows/review-workflows.js +20 -11
- package/ee/server/validation/review-workflows.js +8 -0
- package/index.js +2 -6
- package/package.json +9 -9
- package/scripts/build.js +15 -15
- package/scripts/create-dev-plugins-file.js +5 -38
- package/server/controllers/role.js +2 -0
- package/server/controllers/user.js +2 -0
- package/server/services/permission/permissions-manager/index.js +3 -1
- package/server/services/permission/permissions-manager/sanitize.js +19 -7
- package/server/services/permission/permissions-manager/validate.js +218 -0
- package/utils/create-cache-dir.js +62 -16
- package/utils/create-plugins-exclude-path.js +3 -23
- package/utils/get-plugins.js +110 -0
- package/utils/index.js +1 -1
- package/webpack.config.js +10 -13
- package/admin/src/content-manager/components/AttributeFilter/Filters.js +0 -58
- package/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +0 -42
- package/admin/src/content-manager/components/AttributeFilter/index.js +0 -40
- package/admin/src/content-manager/components/Wysiwyg/EditorStylesContainer.js +0 -344
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +0 -23
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +0 -17
- package/admin/src/pages/SettingsPage/utils/createSectionsRoutes.js +0 -11
- package/admin/src/pages/SettingsPage/utils/getSectionsToDisplay.js +0 -5
- package/admin/src/pages/SettingsPage/utils/index.js +0 -2
- package/build/2379.f1641312.chunk.js +0 -1
- package/build/2395.46f8d0c1.chunk.js +0 -26
- package/build/2801.5cef5ec8.chunk.js +0 -1
- package/build/3929.5632f24d.chunk.js +0 -114
- package/build/3984.dda474f7.chunk.js +0 -1
- package/build/4546.7a3c0d03.chunk.js +0 -1
- package/build/502.8ae8ef60.chunk.js +0 -1
- package/build/5483.6dd2e776.chunk.js +0 -6
- package/build/5542.2415a393.chunk.js +0 -63
- package/build/6158.c974fd83.chunk.js +0 -1
- package/build/7464.3e64a1d5.chunk.js +0 -1
- package/build/8276.10a3f883.chunk.js +0 -26
- package/build/Admin_settingsPage.97cb9d41.chunk.js +0 -111
- package/build/admin-app.91898385.chunk.js +0 -36
- package/build/content-manager.b40f79c0.chunk.js +0 -1099
- package/build/email-settings-page.d494d1eb.chunk.js +0 -11
- package/build/en-json.08c05fcf.chunk.js +0 -1
- package/build/main.9dbe4579.js +0 -2859
- package/build/review-workflows-settings-create-view.cb08cfa2.chunk.js +0 -1
- package/build/review-workflows-settings-edit-view.3c7cbe63.chunk.js +0 -1
- package/build/review-workflows-settings-list-view.1611dc1f.chunk.js +0 -56
- package/build/users-advanced-settings-page.f0760eb8.chunk.js +0 -9
- package/build/users-email-settings-page.ff4b32f3.chunk.js +0 -9
- package/build/users-providers-settings-page.48de0306.chunk.js +0 -14
- package/build/users-roles-settings-page.9d9a1eff.chunk.js +0 -30
- package/ee/admin/hooks/index.js +0 -4
- package/ee/admin/hooks/useAuthProviders/index.js +0 -50
- package/ee/admin/hooks/useAuthProviders/reducer.js +0 -26
- package/ee/admin/hooks/useLicenseLimits/index.js +0 -1
- package/scripts/create-plugins-file.js +0 -92
- package/utils/get-plugins-path.js +0 -41
- /package/ee/admin/hooks/{useLicenseLimits/__mocks__/index.js → __mocks__/useLicenseLimits.js} +0 -0
- /package/server/services/permission/permissions-manager/{query-builers.js → query-builders.js} +0 -0
|
@@ -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(19565),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(50337),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),[I,f]=e.useState(!1),{isLoading:L,getFeature:ne}=(0,j.q5)(),[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&&!L&&(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"))},[L,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:I==="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:I==="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(19565),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(50337),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.q5)(),[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(R,f,e){e.d(f,{r:function(){return T}});var t=e(32735),n=e(72850),r=e(60216),m=e.n(r),v=e(74506);function c(g,i,o){if(!g||!i)return{display:"none"};const{x:s,y:a}=o;return{transform:`translate(${s}px, ${a}px)`}}function T({renderItem:g}){const{itemType:i,isDragging:o,item:s,initialOffset:a,currentOffset:h,mouseOffset:O}=(0,v.useDragLayer)(C=>({item:C.getItem(),itemType:C.getItemType(),initialOffset:C.getInitialSourceClientOffset(),currentOffset:C.getSourceClientOffset(),isDragging:C.isDragging(),mouseOffset:C.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:c(a,h,O)},g({type:i,item:s}))):null}T.propTypes={renderItem:m().func.isRequired}},50337:function(R,f,e){e.d(f,{pl:function(){return g},aY:function(){return M},q5:function(){return h.q}});var t=e(32735),n=e(19565),r=e(97889);const m={data:[],isLoading:!0};var c=(p,A)=>(0,r.ZP)(p,y=>{switch(A.type){case"GET_DATA_SUCCEEDED":{y.data=A.data,y.isLoading=!1;break}case"GET_DATA_ERROR":{y.isLoading=!1;break}default:return y}}),g=({ssoEnabled:p})=>{const[A,y]=(0,t.useReducer)(c,m),S=(0,n.lm)(),{get:l}=(0,n.kY)();return(0,t.useEffect)(()=>{(async()=>{try{if(!p){y({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:w}=await l("/admin/providers");y({type:"GET_DATA_SUCCEEDED",data:w})}catch(w){console.error(w),y({type:"GET_DATA_ERROR"}),S({type:"warning",message:{id:"notification.error"}})}})()},[l,p,S]),A},i=e(36866),o=e.n(i),s=e(67879),a=e(53038),h=e(53104);const O="strapi-notification-seat-limit",C="https://cloud.strapi.io/profile/billing",I="https://strapi.io/billing/request-seats";var M=()=>{const{formatMessage:p}=(0,s.Z)();let{license:A,isError:y,isLoading:S}=(0,h.q)();const l=(0,n.lm)(),{pathname:u}=(0,a.TH)(),{enforcementUserCount:w,permittedSeats:D,licenseLimitStatus:L,isHostedOnStrapiCloud:x}=A;(0,t.useEffect)(()=>{if(y||S)return;const U=!o()(D)&&!window.sessionStorage.getItem(`${O}-${u}`)&&(L==="AT_LIMIT"||L==="OVER_LIMIT");let N;L==="OVER_LIMIT"?N="warning":L==="AT_LIMIT"&&(N="softWarning"),U&&l({type:N,message:p({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:L}),title:p({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:L,enforcementUserCount:w,permittedSeats:D}),link:{url:x?C:I,label:p({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:x})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${O}-${u}`,!0)}})},[l,A,u,p,S,D,L,w,x,y])}},53104:function(R,f,e){e.d(f,{q:function(){return m}});var t=e(32735),n=e(19565),r=e(20108);function m({enabled:v}={enabled:!0}){const{get:c}=(0,n.kY)(),{data:T,isError:g,isLoading:i}=(0,r.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:a}}=await c("/admin/license-limit-information");return a},{enabled:v}),o=T??{},s=t.useCallback(a=>(o?.features??[]).find(O=>O.name===a)?.options??{},[o?.features]);return{license:o,getFeature:s,isError:g,isLoading:i}}},27187:function(R,f,e){e.d(f,{eJ:function(){return S},lx:function(){return A},h4:function(){return l},fC:function(){return y}});var t=e(32735),n=e(96709),r=e(27649),m=e(17e3),v=e(82055),c=e(19565),T=e(29439),g=e(67879),i=e(17379),o=e(2121),s=e(87933),a=e(49372),h=e(16899),O=e(60216),C=e.n(O),I=e(8471);const P=(0,I.ZP)(s.k)`
|
|
2
|
-
svg path {
|
|
3
|
-
fill: ${({theme:u})=>u.colors.neutral600};
|
|
4
|
-
}
|
|
5
|
-
`;function M({name:u}){return t.createElement(s.k,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",gap:3,hasRadius:!0,padding:3,shadow:"tableShadow",width:(0,c.Q1)(300)},t.createElement(P,{alignItems:"center",background:"neutral200",borderRadius:"50%",height:6,justifyContent:"center",width:6},t.createElement(h.Z,{width:`${8/16}rem`})),t.createElement(a.Z,{fontWeight:"bold"},u))}M.propTypes={name:C().string.isRequired};function p({type:u,item:w}){switch(u){case o.uL.STAGE:return t.createElement(M,{...w});default:return null}}function A(){return t.createElement(i.r,{renderItem:p})}function y({children:u}){return t.createElement(n.A,null,t.createElement(r.o,{tabIndex:-1},t.createElement(m.D,null,u)))}function S({href:u}){const{formatMessage:w}=(0,g.Z)();return t.createElement(c.rU,{startIcon:t.createElement(T.Z,null),to:u},w({id:"global.back",defaultMessage:"Back"}))}function l({title:u,subtitle:w,navigationAction:D,primaryAction:L}){return t.createElement(t.Fragment,null,t.createElement(c.SL,{name:u}),t.createElement(v.T,{navigationAction:D,primaryAction:L,title:u,subtitle:w}))}},90562:function(R,f,e){e.d(f,{uT:function(){return p},fC:function(){return S},Dx:function(){return M}});var t=e(32735),n=e(49372),r=e(87933),m=e(85025),v=e(31600),c=e(72850),T=e(50563),g=e(95489),i=e(35331),o=e(60216),s=e.n(o),a=e(67879),h=e(8471),O=e.p+"0cd5f8915b265d5b1856.png";const C="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:C},l)}M.propTypes={children:s().node.isRequired};function p({children:l}){return t.createElement(n.Z,{variant:"omega"},l)}p.propTypes={children:s().node.isRequired};function A(){const{formatMessage:l}=(0,a.Z)();return t.createElement(r.k,{gap:2,paddingTop:4},t.createElement(g.Q,{variant:"default",isExternal:!0,href:I},l({id:"Settings.review-workflows.limit.cta.learn",defaultMessage:"Learn more"})),t.createElement(g.Q,{variant:"tertiary",isExternal:!0,href:P},l({id:"Settings.review-workflows.limit.cta.sales",defaultMessage:"Contact Sales"})))}const y=h.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 S({children:l,isOpen:u,onClose:w}){const{formatMessage:D}=(0,a.Z)();return u?t.createElement(m.P,{labelledBy:C},t.createElement(v.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(A,null)),t.createElement(r.k,{justifyContent:"end",height:"100%",width:"40%"},t.createElement(y,{src:O,"aria-hidden":!0,alt:"",loading:"lazy"}),t.createElement(c.x,{display:"flex",position:"absolute",right:0,top:0},t.createElement(T.h,{icon:t.createElement(i.Z,null),"aria-label":D({id:"global.close",defaultMessage:"Close"}),onClick:w})))))):null}S.defaultProps={isOpen:!1},S.propTypes={children:s().node.isRequired,isOpen:s().bool,onClose:s().func.isRequired}},2121:function(R,f,e){e.d(f,{$k:function(){return g},Ef:function(){return h},FT:function(){return s},Nj:function(){return T},Ot:function(){return c},VS:function(){return i},_X:function(){return O},gu:function(){return r},lv:function(){return o},qZ:function(){return m},sN:function(){return n},uL:function(){return a},x4:function(){return v}});var t=e(12301);const n="settings_review-workflows",r="Settings/Review_Workflows/RESET_WORKFLOW",m="Settings/Review_Workflows/SET_WORKFLOW",v="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",c="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",T="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",g="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"},h="numberOfWorkflows",O="stagesPerWorkflow"},32329:function(R,f,e){e.d(f,{n:function(){return r}});var t=e(19565),n=e(20108);function r(m={}){const{get:v}=(0,t.kY)(),{id:c="",...T}=m,g={populate:"stages"},{data:i,isLoading:o,status:s,refetch:a}=(0,n.useQuery)(["review-workflows","workflows",c],async()=>(await v(`/admin/review-workflows/workflows/${c}`,{params:{...g,...T}})).data);let h=[];return c&&i?.data?h=[i.data]:Array.isArray(i?.data)&&(h=i.data),{meta:i?.meta??{},workflows:h,isLoading:o,status:s,refetch:a}}},32033:function(R,f,e){e.r(f),e.d(f,{default:function(){return z}});var t=e(32735),n=e(19565),r=e(15062),m=e(30305),v=e(87933),c=e(23866),T=e(56755),g=e(73269),i=e(33827),o=e(94547),s=e(19786),a=e(49372),h=e(3685),O=e(35658),C=e(50563),I=e(19406),P=e(68625),M=e(4038),p=e(67879),A=e(20108),y=e(53038),S=e(8471),l=e(90769),u=e(50337),w=e(27187),D=e(90562),L=e(2121),x=e(32329);const U=(0,S.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 N(){const{formatMessage:d}=(0,p.Z)(),{push:j}=(0,y.k6)(),{collectionTypes:J,singleTypes:b,isLoading:q}=(0,l.G)(),{meta:B,workflows:K,isLoading:Z,refetch:_}=(0,x.n)(),[H,F]=t.useState(null),[ee,$]=t.useState(!1),{del:te}=(0,n.kY)(),{formatAPIError:ne}=(0,n.So)(),Q=(0,n.lm)(),{getFeature:se,isLoading:V}=(0,u.q5)(),{trackUsage:Y}=(0,n.rS)(),oe=(0,r.v9)(m._),{allowedActions:{canCreate:X,canDelete:ae}}=(0,n.ss)(oe.settings["review-workflows"]),W=se("review-workflows"),{mutateAsync:re,isLoading:ie}=(0,A.useMutation)(async({workflowId:E,stages:k})=>{const{data:{data:G}}=await te(`/admin/review-workflows/workflows/${E}`,{data:k});return G},{onSuccess(){Q({type:"success",message:{id:"notification.success.deleted",defaultMessage:"Deleted"}})}}),le=E=>[...J,...b].find(G=>G.uid===E).info.displayName,ce=E=>{F(E)},ue=()=>{F(null)},de=async()=>{try{const E=await re({workflowId:H});return await _(),F(null),E}catch(E){return Q({type:"warning",message:ne(E)}),null}};return t.useEffect(()=>{!Z&&!V&&W?.[L.Ef]&&B?.workflowCount>parseInt(W[L.Ef],10)&&$(!0)},[V,Z,W,B?.workflowCount,B.workflowsTotal]),t.createElement(t.Fragment,null,t.createElement(w.h4,{primaryAction:X&&t.createElement(n.Qj,{startIcon:t.createElement(I.Z,null),size:"S",to:"/settings/review-workflows/create",onClick:E=>{W?.[L.Ef]&&B?.workflowCount>=parseInt(W[L.Ef],10)?(E.preventDefault(),$(!0)):Y("willCreateWorkflow")}},d({id:"Settings.review-workflows.list.page.create",defaultMessage:"Create new workflow"})),subtitle:d({id:"Settings.review-workflows.list.page.subtitle",defaultMessage:"Manage your content review process"}),title:d({id:"Settings.review-workflows.list.page.title",defaultMessage:"Review Workflows"})}),t.createElement(w.fC,null,Z||q?t.createElement(v.k,{justifyContent:"center"},t.createElement(c.a,null,d({id:"Settings.review-workflows.page.list.isLoading",defaultMessage:"Workflows are loading"}))):t.createElement(T.i,{colCount:3,footer:X&&t.createElement(g.c,{icon:t.createElement(I.Z,null),onClick:()=>{W?.[L.Ef]&&B?.workflowCount>=parseInt(W[L.Ef],10)?$(!0):(j("/settings/review-workflows/create"),Y("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(h.T,null,d({id:"Settings.review-workflows.list.page.list.column.actions.title",defaultMessage:"Actions"}))))),t.createElement(O.p,null,K.map(E=>t.createElement(o.Tr,{...(0,n.X7)({fn(k){k.target.nodeName!=="BUTTON"&&j(`/settings/review-workflows/${E.id}`)}}),key:`workflow-${E.id}`},t.createElement(s.Td,{width:(0,n.Q1)(250)},t.createElement(a.Z,{textColor:"neutral800",fontWeight:"bold",ellipsis:!0},E.name)),t.createElement(s.Td,null,t.createElement(a.Z,{textColor:"neutral800"},E.stages.length)),t.createElement(s.Td,null,t.createElement(a.Z,{textColor:"neutral800"},(E?.contentTypes??[]).map(le).join(", "))),t.createElement(s.Td,null,t.createElement(v.k,{alignItems:"center",justifyContent:"end"},t.createElement(U,{to:`/settings/review-workflows/${E.id}`,"aria-label":d({id:"Settings.review-workflows.list.page.list.column.actions.edit.label",defaultMessage:"Edit {name}"},{name:E.name})},t.createElement(P.Z,null)),K.length>1&&ae&&t.createElement(C.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(E.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:!!H,onToggleDialog:ue,onConfirm:de}),t.createElement(D.fC,{isOpen:ee,onClose:()=>$(!1)},t.createElement(D.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(D.uT,null,d({id:"Settings.review-workflows.list.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."})))))}function z(){const d=(0,r.v9)(m._);return t.createElement(n.O4,{permissions:d.settings["review-workflows"].main},t.createElement(N,null))}},73269:function(R,f,e){e.d(f,{c:function(){return i}});var t=e(74512),n=e(8471),r=e(72850),m=e(9026),v=e(87933),c=e(49372);const T=(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
|
-
`,g=(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)(m.i,{}),(0,t.jsx)(g,{as:"button",background:"primary100",padding:5,...a,children:(0,t.jsxs)(v.k,{children:[(0,t.jsx)(T,{"aria-hidden":!0,background:"primary200",children:s}),(0,t.jsx)(r.x,{paddingLeft:3,children:(0,t.jsx)(c.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600",children:o})})]})})]})},29439:function(R,f,e){e.d(f,{Z:function(){return r}});var t=e(74512);const n=m=>(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...m,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,9 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9460],{78990:function(L,g,t){t.r(g),t.d(g,{default:function(){return H}});var e=t(32735),s=t(94638),v=t(27649),f=t(82055),E=t(17e3),y=t(41415),o=t(72850),h=t(87933),p=t(49372),B=t(15335),x=t(5803),O=t(68465),i=t(84967),n=t(19565),d=t(66456),r=t(92802),l=t(67879),c=t(20108),M=t(19108),a=t(55733);const R=async()=>{const{get:u}=(0,n.tg)(),{data:S}=await u("/users-permissions/advanced");return S},T=u=>{const{put:S}=(0,n.tg)();return S("/users-permissions/advanced",u)};var z=[{intlLabel:{id:(0,a.OB)("EditForm.inputToggle.label.email"),defaultMessage:"One account per email address"},description:{id:(0,a.OB)("EditForm.inputToggle.description.email"),defaultMessage:"Disallow the user to create multiple accounts using the same email address with different authentication providers."},name:"unique_email",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,a.OB)("EditForm.inputToggle.label.sign-up"),defaultMessage:"Enable sign-ups"},description:{id:(0,a.OB)("EditForm.inputToggle.description.sign-up"),defaultMessage:"When disabled (OFF), the registration process is forbidden. No one can subscribe anymore no matter the used provider."},name:"allow_register",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,a.OB)("EditForm.inputToggle.label.email-reset-password"),defaultMessage:"Reset password page"},description:{id:(0,a.OB)("EditForm.inputToggle.description.email-reset-password"),defaultMessage:"URL of your application's reset password page."},placeholder:{id:(0,a.OB)("EditForm.inputToggle.placeholder.email-reset-password"),defaultMessage:"ex: https://youtfrontend.com/reset-password"},name:"email_reset_password",type:"text",size:{col:6,xs:12}},{intlLabel:{id:(0,a.OB)("EditForm.inputToggle.label.email-confirmation"),defaultMessage:"Enable email confirmation"},description:{id:(0,a.OB)("EditForm.inputToggle.description.email-confirmation"),defaultMessage:"When enabled (ON), new registered users receive a confirmation email."},name:"email_confirmation",type:"bool",size:{col:12,xs:12}},{intlLabel:{id:(0,a.OB)("EditForm.inputToggle.label.email-confirmation-redirection"),defaultMessage:"Redirection url"},description:{id:(0,a.OB)("EditForm.inputToggle.description.email-confirmation-redirection"),defaultMessage:"After you confirmed your email, choose where you will be redirected."},placeholder:{id:(0,a.OB)("EditForm.inputToggle.placeholder.email-confirmation-redirection"),defaultMessage:"ex: https://youtfrontend.com/email-confirmation"},name:"email_confirmation_redirection",type:"text",size:{col:6,xs:12}}],j=t(24346);const C=new RegExp("(^$)|((.+:\\/\\/.*)(d*)\\/?(.*))");var W=j.Ry().shape({email_confirmation_redirection:j.nK().when("email_confirmation",{is:!0,then:j.Z_().matches(C).required(),otherwise:j.Z_().nullable()}),email_reset_password:j.Z_(n.I0.string).matches(C,n.I0.regex).nullable()});const N=()=>e.createElement(n.O4,{permissions:M._.readAdvancedSettings},e.createElement(U,null)),U=()=>{const{formatMessage:u}=(0,l.Z)(),S=(0,n.lm)(),{lockApp:K,unlockApp:F}=(0,n.o1)(),{notifyStatus:G}=(0,s.G)(),$=(0,c.useQueryClient)();(0,n.go)();const{isLoading:Q,allowedActions:{canUpdate:D}}=(0,n.ss)({update:M._.updateAdvancedSettings}),{status:X,data:I}=(0,c.useQuery)("advanced",()=>R(),{onSuccess(){G(u({id:(0,a.OB)("Form.advancedSettings.data.loaded"),defaultMessage:"Advanced settings data has been loaded"}))},onError(){S({type:"warning",message:{id:(0,a.OB)("notification.error"),defaultMessage:"An error occured"}})}}),J=Q||X!=="success",w=(0,c.useMutation)(b=>T(b),{async onSuccess(){await $.invalidateQueries("advanced"),S({type:"success",message:{id:(0,a.OB)("notification.success.saved"),defaultMessage:"Saved"}}),F()},onError(){S({type:"warning",message:{id:(0,a.OB)("notification.error"),defaultMessage:"An error occured"}}),F()},refetchActive:!0}),{isLoading:V}=w,Y=async b=>{K();const A=b.email_confirmation?b.email_confirmation_redirection:"";await w.mutateAsync({...b,email_confirmation_redirection:A})};return J?e.createElement(v.o,{"aria-busy":"true"},e.createElement(n.SL,{name:u({id:(0,a.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(f.T,{title:u({id:(0,a.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(E.D,null,e.createElement(n.dO,null))):e.createElement(v.o,{"aria-busy":V},e.createElement(n.SL,{name:u({id:(0,a.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"})}),e.createElement(r.J9,{onSubmit:Y,initialValues:I.settings,validateOnChange:!1,validationSchema:W,enableReinitialize:!0},({errors:b,values:A,handleChange:Z,isSubmitting:k,dirty:q})=>e.createElement(n.l0,null,e.createElement(f.T,{title:u({id:(0,a.OB)("HeaderNav.link.advancedSettings"),defaultMessage:"Advanced Settings"}),primaryAction:e.createElement(y.z,{loading:k,type:"submit",disabled:D?!q:!D,startIcon:e.createElement(d.Z,null),size:"S"},u({id:"global.save",defaultMessage:"Save"}))}),e.createElement(E.D,null,e.createElement(o.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(h.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(p.Z,{variant:"delta",as:"h2"},u({id:"global.settings",defaultMessage:"Settings"})),e.createElement(B.r,{gap:6},e.createElement(x.P,{col:6,s:12},e.createElement(O.P,{label:u({id:(0,a.OB)("EditForm.inputSelect.label.role"),defaultMessage:"Default role for authenticated users"}),value:A.default_role,hint:u({id:(0,a.OB)("EditForm.inputSelect.description.role"),defaultMessage:"It will attach the new authenticated user to the selected role."}),onChange:m=>Z({target:{name:"default_role",value:m}})},I.roles.map(m=>e.createElement(i.W,{key:m.type,value:m.type},m.name)))),z.map(m=>{let P=A[m.name];return P||(P=m.type==="bool"?!1:""),e.createElement(x.P,{key:m.name,...m.size},e.createElement(n.jm,{...m,value:P,error:b[m.name],disabled:m.name==="email_confirmation_redirection"&&A.email_confirmation===!1,onChange:Z}))}))))))))};var H=N},55733:function(L,g,t){t.d(g,{YX:function(){return f},OB:function(){return E.Z}});var e=t(86834),s=t.n(e),f=y=>Object.keys(y).reduce((o,h)=>{const p=y[h].controllers,B=Object.keys(p).reduce((x,O)=>(s()(p[O])||(x[O]=p[O]),x),{});return s()(B)||(o[h]={controllers:B}),o},{}),E=t(54788)},17e3:function(L,g,t){t.d(g,{D:function(){return v}});var e=t(74512),s=t(72850);const v=({children:f})=>(0,e.jsx)(s.x,{paddingLeft:10,paddingRight:10,children:f})},82055:function(L,g,t){t.d(g,{T:function(){return B}});var e=t(74512),s=t(32735),v=t(8471);const f=i=>{const n=(0,s.useRef)(null),[d,r]=(0,s.useState)(!0),l=([c])=>{r(c.isIntersecting)};return(0,s.useEffect)(()=>{const c=n.current,M=new IntersectionObserver(l,i);return c&&M.observe(n.current),()=>{c&&M.disconnect()}},[n,i]),[n,d]};var E=t(81957);const y=(i,n)=>{const d=(0,E.W)(n);(0,s.useLayoutEffect)(()=>{const r=new ResizeObserver(d);return Array.isArray(i)?i.forEach(l=>{l.current&&r.observe(l.current)}):i.current&&r.observe(i.current),()=>{r.disconnect()}},[i,d])};var o=t(72850),h=t(87933),p=t(49372);const B=i=>{const n=(0,s.useRef)(null),[d,r]=(0,s.useState)(null),[l,c]=f({root:null,rootMargin:"0px",threshold:0});return y(l,()=>{l.current&&r(l.current.getBoundingClientRect())}),(0,s.useEffect)(()=>{n.current&&r(n.current.getBoundingClientRect())},[n]),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:{height:d?.height},ref:l,children:c&&(0,e.jsx)(O,{ref:n,...i})}),!c&&(0,e.jsx)(O,{...i,sticky:!0,width:d?.width})]})};B.displayName="HeaderLayout";const x=(0,v.ZP)(o.x)`
|
|
2
|
-
width: ${({width:i})=>i?`${i/16}rem`:void 0};
|
|
3
|
-
z-index: ${({theme:i})=>i.zIndices[1]};
|
|
4
|
-
`,O=s.forwardRef(({navigationAction:i,primaryAction:n,secondaryAction:d,subtitle:r,title:l,sticky:c,width:M,...a},R)=>{const T=typeof r=="string";return c?(0,e.jsx)(x,{paddingLeft:6,paddingRight:6,paddingTop:3,paddingBottom:3,position:"fixed",top:0,right:0,background:"neutral0",shadow:"tableShadow",width:M,"data-strapi-header-sticky":!0,children:(0,e.jsxs)(h.k,{justifyContent:"space-between",children:[(0,e.jsxs)(h.k,{children:[i&&(0,e.jsx)(o.x,{paddingRight:3,children:i}),(0,e.jsxs)(o.x,{children:[(0,e.jsx)(p.Z,{variant:"beta",as:"h1",...a,children:l}),T?(0,e.jsx)(p.Z,{variant:"pi",textColor:"neutral600",children:r}):r]}),d?(0,e.jsx)(o.x,{paddingLeft:4,children:d}):null]}),(0,e.jsx)(h.k,{children:n?(0,e.jsx)(o.x,{paddingLeft:2,children:n}):void 0})]})}):(0,e.jsxs)(o.x,{ref:R,paddingLeft:10,paddingRight:10,paddingBottom:8,paddingTop:i?6:8,background:"neutral100","data-strapi-header":!0,children:[i?(0,e.jsx)(o.x,{paddingBottom:2,children:i}):null,(0,e.jsxs)(h.k,{justifyContent:"space-between",children:[(0,e.jsxs)(h.k,{minWidth:0,children:[(0,e.jsx)(p.Z,{as:"h1",variant:"alpha",...a,children:l}),d?(0,e.jsx)(o.x,{paddingLeft:4,children:d}):null]}),n]}),T?(0,e.jsx)(p.Z,{variant:"epsilon",textColor:"neutral600",as:"p",children:r}):r]})})},27649:function(L,g,t){t.d(g,{o:function(){return E}});var e=t(74512),s=t(8471),v=t(72850);const f=(0,s.ZP)(v.x)`
|
|
5
|
-
// To prevent global outline on focus visible to force an outline when Main is focused
|
|
6
|
-
&:focus-visible {
|
|
7
|
-
outline: none;
|
|
8
|
-
}
|
|
9
|
-
`,E=({labelledBy:y="main-content-title",...o})=>(0,e.jsx)(f,{"aria-labelledby":y,as:"main",id:"main-content",tabIndex:-1,...o})}}]);
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8418],{21794:function(S,y,t){t.r(y),t.d(y,{default:function(){return oe}});var e=t(32735),r=t(94638),x=t(27649),T=t(82055),O=t(17e3),a=t(19565),i=t(67879),g=t(20108),v=t(19108),n=t(55733),R=t(85025),j=t(55225),l=t(31600),m=t(15335),o=t(5803),d=t(33475),c=t(11406),f=t(41415),Z=t(26858),I=t(51654),U=t(92802),A=t(60216),u=t.n(A),P=t(24346),Y=P.Ry().shape({options:P.Ry().shape({from:P.Ry().shape({name:P.Z_().required(a.I0.required),email:P.Z_().email(a.I0.email).required(a.I0.required)}).required(),response_email:P.Z_().email(a.I0.email),object:P.Z_().required(a.I0.required),message:P.Z_().required(a.I0.required)}).required(a.I0.required)});const $=({template:s,onToggle:p,onSubmit:E})=>{const{formatMessage:h}=(0,i.Z)();return e.createElement(R.P,{onClose:p,labelledBy:`${h({id:(0,n.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${h({id:(0,n.OB)(s.display),defaultMessage:s.display})}`},e.createElement(j.x,null,e.createElement(Z.O,{label:`${h({id:(0,n.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})}, ${h({id:(0,n.OB)(s.display),defaultMessage:s.display})}`},e.createElement(I.$,null,h({id:(0,n.OB)("PopUpForm.header.edit.email-templates"),defaultMessage:"Edit email template"})),e.createElement(I.$,{isCurrent:!0},h({id:(0,n.OB)(s.display),defaultMessage:s.display})))),e.createElement(U.J9,{onSubmit:E,initialValues:s,validateOnChange:!1,validationSchema:Y,enableReinitialize:!0},({errors:B,values:C,handleChange:b,isSubmitting:H})=>e.createElement(a.l0,null,e.createElement(l.f,null,e.createElement(m.r,{gap:5},e.createElement(o.P,{col:6,s:12},e.createElement(a.jm,{intlLabel:{id:(0,n.OB)("PopUpForm.Email.options.from.name.label"),defaultMessage:"Shipper name"},name:"options.from.name",onChange:b,value:C.options.from.name,error:B?.options?.from?.name,type:"text"})),e.createElement(o.P,{col:6,s:12},e.createElement(a.jm,{intlLabel:{id:(0,n.OB)("PopUpForm.Email.options.from.email.label"),defaultMessage:"Shipper email"},name:"options.from.email",onChange:b,value:C.options.from.email,error:B?.options?.from?.email,type:"text"})),e.createElement(o.P,{col:6,s:12},e.createElement(a.jm,{intlLabel:{id:(0,n.OB)("PopUpForm.Email.options.response_email.label"),defaultMessage:"Response email"},name:"options.response_email",onChange:b,value:C.options.response_email,error:B?.options?.response_email,type:"text"})),e.createElement(o.P,{col:6,s:12},e.createElement(a.jm,{intlLabel:{id:(0,n.OB)("PopUpForm.Email.options.object.label"),defaultMessage:"Subject"},name:"options.object",onChange:b,value:C.options.object,error:B?.options?.object,type:"text"})),e.createElement(o.P,{col:12,s:12},e.createElement(d.g,{label:h({id:(0,n.OB)("PopUpForm.Email.options.message.label"),defaultMessage:"Message"}),id:"options.message",onChange:b,value:C.options.message,error:B?.options?.message&&h({id:B.options.message,defaultMessage:B.options.message})})))),e.createElement(c.m,{startActions:e.createElement(f.z,{onClick:p,variant:"tertiary"},"Cancel"),endActions:e.createElement(f.z,{loading:H,type:"submit"},"Finish")}))))};$.propTypes={template:u().shape({display:u().string,icon:u().string,options:u().shape({from:u().shape({name:u().string,email:u().string}),message:u().string,object:u().string,response_email:u().string})}).isRequired,onSubmit:u().func.isRequired,onToggle:u().func.isRequired};var w=$,k=t(56755),q=t(33827),F=t(94547),M=t(19786),N=t(3685),D=t(49372),_=t(35658),z=t(99140),K=t(50563),ee=t(44647),G=t(68625),te=t(66456);const J=({canUpdate:s,onEditClick:p})=>{const{formatMessage:E}=(0,i.Z)();return e.createElement(k.i,{colCount:3,rowCount:3},e.createElement(q.h,null,e.createElement(F.Tr,null,e.createElement(M.Th,{width:"1%"},e.createElement(N.T,null,E({id:(0,n.OB)("Email.template.table.icon.label"),defaultMessage:"icon"}))),e.createElement(M.Th,null,e.createElement(D.Z,{variant:"sigma",textColor:"neutral600"},E({id:(0,n.OB)("Email.template.table.name.label"),defaultMessage:"name"}))),e.createElement(M.Th,{width:"1%"},e.createElement(N.T,null,E({id:(0,n.OB)("Email.template.table.action.label"),defaultMessage:"action"}))))),e.createElement(_.p,null,e.createElement(F.Tr,{...(0,a.X7)({fn:()=>p("reset_password")})},e.createElement(M.Td,null,e.createElement(z.J,null,e.createElement(ee.Z,{"aria-label":E({id:"global.reset-password",defaultMessage:"Reset password"})}))),e.createElement(M.Td,null,e.createElement(D.Z,null,E({id:"global.reset-password",defaultMessage:"Reset password"}))),e.createElement(M.Td,{...a.UW},e.createElement(K.h,{onClick:()=>p("reset_password"),label:E({id:(0,n.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:s&&e.createElement(G.Z,null)}))),e.createElement(F.Tr,{...(0,a.X7)({fn:()=>p("email_confirmation")})},e.createElement(M.Td,null,e.createElement(z.J,null,e.createElement(te.Z,{"aria-label":E({id:(0,n.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"})}))),e.createElement(M.Td,null,e.createElement(D.Z,null,E({id:(0,n.OB)("Email.template.email_confirmation"),defaultMessage:"Email address confirmation"}))),e.createElement(M.Td,{...a.UW},e.createElement(K.h,{onClick:()=>p("email_confirmation"),label:E({id:(0,n.OB)("Email.template.form.edit.label"),defaultMessage:"Edit a template"}),noBorder:!0,icon:s&&e.createElement(G.Z,null)})))))};J.propTypes={canUpdate:u().bool.isRequired,onEditClick:u().func.isRequired};var ae=J;const ne=async()=>{const{get:s}=(0,a.tg)(),{data:p}=await s("/users-permissions/email-templates");return p},le=s=>{const{put:p}=(0,a.tg)();return p("/users-permissions/email-templates",s)},se=()=>e.createElement(a.O4,{permissions:v._.readEmailTemplates},e.createElement(ie,null)),ie=()=>{const{formatMessage:s}=(0,i.Z)(),{trackUsage:p}=(0,a.rS)(),{notifyStatus:E}=(0,r.G)(),h=(0,a.lm)(),{lockApp:B,unlockApp:C}=(0,a.o1)(),b=(0,e.useRef)(p),H=(0,g.useQueryClient)();(0,a.go)();const[re,me]=(0,e.useState)(!1),[Q,de]=(0,e.useState)(null),{isLoading:ce,allowedActions:{canUpdate:ue}}=(0,a.ss)({update:v._.updateEmailTemplates}),{status:pe,data:X}=(0,g.useQuery)("email-templates",()=>ne(),{onSuccess(){E(s({id:(0,n.OB)("Email.template.data.loaded"),defaultMessage:"Email templates has been loaded"}))},onError(){h({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Ee=ce||pe!=="success",W=()=>{me(L=>!L)},ge=L=>{de(L),W()},V=(0,g.useMutation)(L=>le({"email-templates":L}),{async onSuccess(){await H.invalidateQueries("email-templates"),h({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}}),b.current("didEditEmailTemplates"),C(),W()},onError(){h({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),C()},refetchActive:!0}),{isLoading:fe}=V,he=L=>{B(),b.current("willEditEmailTemplates");const ve={...X,[Q]:L};V.mutate(ve)};return Ee?e.createElement(x.o,{"aria-busy":"true"},e.createElement(a.SL,{name:s({id:(0,n.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(T.T,{title:s({id:(0,n.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(O.D,null,e.createElement(a.dO,null))):e.createElement(x.o,{"aria-busy":fe},e.createElement(a.SL,{name:s({id:(0,n.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(T.T,{title:s({id:(0,n.OB)("HeaderNav.link.emailTemplates"),defaultMessage:"Email templates"})}),e.createElement(O.D,null,e.createElement(ae,{onEditClick:ge,canUpdate:ue}),re&&e.createElement(w,{template:X[Q],onToggle:W,onSubmit:he})))};var oe=se},55733:function(S,y,t){t.d(y,{YX:function(){return T},OB:function(){return O.Z}});var e=t(86834),r=t.n(e),T=a=>Object.keys(a).reduce((i,g)=>{const v=a[g].controllers,n=Object.keys(v).reduce((R,j)=>(r()(v[j])||(R[j]=v[j]),R),{});return r()(n)||(i[g]={controllers:n}),i},{}),O=t(54788)},17e3:function(S,y,t){t.d(y,{D:function(){return x}});var e=t(74512),r=t(72850);const x=({children:T})=>(0,e.jsx)(r.x,{paddingLeft:10,paddingRight:10,children:T})},82055:function(S,y,t){t.d(y,{T:function(){return n}});var e=t(74512),r=t(32735),x=t(8471);const T=l=>{const m=(0,r.useRef)(null),[o,d]=(0,r.useState)(!0),c=([f])=>{d(f.isIntersecting)};return(0,r.useEffect)(()=>{const f=m.current,Z=new IntersectionObserver(c,l);return f&&Z.observe(m.current),()=>{f&&Z.disconnect()}},[m,l]),[m,o]};var O=t(81957);const a=(l,m)=>{const o=(0,O.W)(m);(0,r.useLayoutEffect)(()=>{const d=new ResizeObserver(o);return Array.isArray(l)?l.forEach(c=>{c.current&&d.observe(c.current)}):l.current&&d.observe(l.current),()=>{d.disconnect()}},[l,o])};var i=t(72850),g=t(87933),v=t(49372);const n=l=>{const m=(0,r.useRef)(null),[o,d]=(0,r.useState)(null),[c,f]=T({root:null,rootMargin:"0px",threshold:0});return a(c,()=>{c.current&&d(c.current.getBoundingClientRect())}),(0,r.useEffect)(()=>{m.current&&d(m.current.getBoundingClientRect())},[m]),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:{height:o?.height},ref:c,children:f&&(0,e.jsx)(j,{ref:m,...l})}),!f&&(0,e.jsx)(j,{...l,sticky:!0,width:o?.width})]})};n.displayName="HeaderLayout";const R=(0,x.ZP)(i.x)`
|
|
2
|
-
width: ${({width:l})=>l?`${l/16}rem`:void 0};
|
|
3
|
-
z-index: ${({theme:l})=>l.zIndices[1]};
|
|
4
|
-
`,j=r.forwardRef(({navigationAction:l,primaryAction:m,secondaryAction:o,subtitle:d,title:c,sticky:f,width:Z,...I},U)=>{const A=typeof d=="string";return f?(0,e.jsx)(R,{paddingLeft:6,paddingRight:6,paddingTop:3,paddingBottom:3,position:"fixed",top:0,right:0,background:"neutral0",shadow:"tableShadow",width:Z,"data-strapi-header-sticky":!0,children:(0,e.jsxs)(g.k,{justifyContent:"space-between",children:[(0,e.jsxs)(g.k,{children:[l&&(0,e.jsx)(i.x,{paddingRight:3,children:l}),(0,e.jsxs)(i.x,{children:[(0,e.jsx)(v.Z,{variant:"beta",as:"h1",...I,children:c}),A?(0,e.jsx)(v.Z,{variant:"pi",textColor:"neutral600",children:d}):d]}),o?(0,e.jsx)(i.x,{paddingLeft:4,children:o}):null]}),(0,e.jsx)(g.k,{children:m?(0,e.jsx)(i.x,{paddingLeft:2,children:m}):void 0})]})}):(0,e.jsxs)(i.x,{ref:U,paddingLeft:10,paddingRight:10,paddingBottom:8,paddingTop:l?6:8,background:"neutral100","data-strapi-header":!0,children:[l?(0,e.jsx)(i.x,{paddingBottom:2,children:l}):null,(0,e.jsxs)(g.k,{justifyContent:"space-between",children:[(0,e.jsxs)(g.k,{minWidth:0,children:[(0,e.jsx)(v.Z,{as:"h1",variant:"alpha",...I,children:c}),o?(0,e.jsx)(i.x,{paddingLeft:4,children:o}):null]}),m]}),A?(0,e.jsx)(v.Z,{variant:"epsilon",textColor:"neutral600",as:"p",children:d}):d]})})},27649:function(S,y,t){t.d(y,{o:function(){return O}});var e=t(74512),r=t(8471),x=t(72850);const T=(0,r.ZP)(x.x)`
|
|
5
|
-
// To prevent global outline on focus visible to force an outline when Main is focused
|
|
6
|
-
&:focus-visible {
|
|
7
|
-
outline: none;
|
|
8
|
-
}
|
|
9
|
-
`,O=({labelledBy:a="main-content-title",...i})=>(0,e.jsx)(T,{"aria-labelledby":a,as:"main",id:"main-content",tabIndex:-1,...i})}}]);
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2282],{15788:function(y,x,e){"use strict";e.r(x),e.d(x,{ProvidersPage:function(){return le},default:function(){return Ae}});var t=e(32735),a=e(94638),i=e(96709),s=e(27649),u=e(82055),d=e(17e3),n=e(56755),l=e(33827),g=e(94547),h=e(19786),b=e(49372),p=e(3685),f=e(35658),E=e(50563),r=e(19565),c=e(68625),P=e(23973),C=e.n(P),z=e(23940),W=e.n(z),H=e(67879),N=e(20108),me=e(85025),fe=e(55225),ge=e(31600),ve=e(87933),pe=e(15335),he=e(5803),be=e(11406),ne=e(41415),ye=e(26858),xe=e(51654),Ee=e(92802),Pe=e(60216),o=e.n(Pe),Me=e(71842),Be=e(10369);const V=({description:v,disabled:L,intlLabel:j,error:A,name:T,onChange:S,placeholder:R,providerToEditName:I,type:F,value:M})=>{const{formatMessage:Z}=(0,H.Z)(),D=T==="noName"?`${window.strapi.backendURL}/api/connect/${I}/callback`:M,K=Z({id:j.id,defaultMessage:j.defaultMessage},{provider:I,...j.values}),U=v?Z({id:v.id,defaultMessage:v.defaultMessage},{provider:I,...v.values}):"";if(F==="bool")return t.createElement(Me.s,{"aria-label":T,checked:M,disabled:L,hint:U,label:K,name:T,offLabel:Z({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:Z({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:_=>{S({target:{name:T,value:_.target.checked}})}});const q=R?Z({id:R.id,defaultMessage:R.defaultMessage},{...R.values}):"",X=A?Z({id:A,defaultMessage:A}):"";return t.createElement(Be.o,{"aria-label":T,disabled:L,error:X,label:K,name:T,onChange:S,placeholder:q,type:F,value:D})};V.defaultProps={description:null,disabled:!1,error:"",placeholder:null,value:""},V.propTypes={description:o().shape({id:o().string.isRequired,defaultMessage:o().string.isRequired,values:o().object}),disabled:o().bool,error:o().string,intlLabel:o().shape({id:o().string.isRequired,defaultMessage:o().string.isRequired,values:o().object}).isRequired,name:o().string.isRequired,onChange:o().func.isRequired,placeholder:o().shape({id:o().string.isRequired,defaultMessage:o().string.isRequired,values:o().object}),providerToEditName:o().string.isRequired,type:o().string.isRequired,value:o().oneOfType([o().bool,o().string])};var Le=V;const J=({headerBreadcrumbs:v,initialData:L,isSubmiting:j,layout:A,isOpen:T,onSubmit:S,onToggle:R,providerToEditName:I})=>{const{formatMessage:F}=(0,H.Z)();return T?t.createElement(me.P,{onClose:R,labelledBy:"title"},t.createElement(fe.x,null,t.createElement(ye.O,{label:v.join(", ")},v.map((M,Z,D)=>t.createElement(xe.$,{isCurrent:Z===D.length-1,key:M},M)))),t.createElement(Ee.J9,{onSubmit:M=>S(M),initialValues:L,validationSchema:A.schema,validateOnChange:!1},({errors:M,handleChange:Z,values:D})=>t.createElement(r.l0,null,t.createElement(ge.f,null,t.createElement(ve.k,{direction:"column",alignItems:"stretch",gap:1},t.createElement(pe.r,{gap:5},A.form.map(K=>K.map(U=>t.createElement(he.P,{key:U.name,col:U.size,xs:12},t.createElement(Le,{...U,error:M[U.name],onChange:Z,value:D[U.name],providerToEditName:I}))))))),t.createElement(be.m,{startActions:t.createElement(ne.z,{variant:"tertiary",onClick:R,type:"button"},F({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:t.createElement(ne.z,{type:"submit",loading:j},F({id:"global.save",defaultMessage:"Save"}))})))):null};J.defaultProps={initialData:null,providerToEditName:null},J.propTypes={headerBreadcrumbs:o().arrayOf(o().string).isRequired,initialData:o().object,layout:o().shape({form:o().arrayOf(o().array),schema:o().object}).isRequired,isOpen:o().bool.isRequired,isSubmiting:o().bool.isRequired,onSubmit:o().func.isRequired,onToggle:o().func.isRequired,providerToEditName:o().string};var Oe=J,ae=e(19108),B=e(55733);const Te=async v=>{try{const{get:L}=(0,r.tg)(),{data:j}=await L("/users-permissions/providers");return j}catch{throw v({type:"warning",message:{id:"notification.error"}}),new Error("error")}},je=v=>{const{put:L}=(0,r.tg)();return L("/users-permissions/providers",v)};var Ce=e(98978),Re=e.n(Ce),Ze=v=>Re()(Object.keys(v).reduce((L,j)=>{const{icon:A,enabled:T,subdomain:S}=v[j],R=A==="envelope"?["fas","envelope"]:["fab",A];return S!==void 0?L.push({name:j,icon:R,enabled:T,subdomain:S}):L.push({name:j,icon:R,enabled:T}),L},[]),"name"),m=e(24346);const re={id:(0,B.OB)("PopUpForm.Providers.redirectURL.front-end.label"),defaultMessage:"The redirect URL to your front-end app"},se={id:"http://www.client-app.com",defaultMessage:"http://www.client-app.com"},w={id:(0,B.OB)("PopUpForm.Providers.enabled.description"),defaultMessage:"If disabled, users won't be able to use this provider."},Y={id:(0,B.OB)("PopUpForm.Providers.enabled.label"),defaultMessage:"Enable"},ie={id:(0,B.OB)("PopUpForm.Providers.key.label"),defaultMessage:"Client ID"},oe={id:(0,B.OB)("PopUpForm.Providers.redirectURL.label"),defaultMessage:"The redirect URL to add in your {provider} application configurations"},$={id:(0,B.OB)("PopUpForm.Providers.key.placeholder"),defaultMessage:"TEXT"},de={id:(0,B.OB)("PopUpForm.Providers.secret.label"),defaultMessage:"Client Secret"};var k={email:{form:[[{intlLabel:Y,name:"enabled",type:"bool",description:w,size:6}]],schema:m.Ry().shape({enabled:m.Xg().required(r.I0.required)})},providers:{form:[[{intlLabel:Y,name:"enabled",type:"bool",description:w,size:6,validations:{required:!0}}],[{intlLabel:ie,name:"key",type:"text",placeholder:$,size:12,validations:{required:!0}}],[{intlLabel:de,name:"secret",type:"text",placeholder:$,size:12,validations:{required:!0}}],[{intlLabel:re,placeholder:se,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:oe,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:m.Ry().shape({enabled:m.Xg().required(r.I0.required),key:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()}),secret:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()}),callback:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()})})},providersWithSubdomain:{form:[[{intlLabel:Y,name:"enabled",type:"bool",description:w,size:6,validations:{required:!0}}],[{intlLabel:ie,name:"key",type:"text",placeholder:$,size:12,validations:{required:!0}}],[{intlLabel:de,name:"secret",type:"text",placeholder:$,size:12,validations:{required:!0}}],[{intlLabel:{id:(0,B.OB)({id:"PopUpForm.Providers.jwksurl.label"}),defaultMessage:"JWKS URL"},name:"jwksurl",type:"text",placeholder:$,size:12,validations:{required:!1}}],[{intlLabel:{id:(0,B.OB)("PopUpForm.Providers.subdomain.label"),defaultMessage:"Host URI (Subdomain)"},name:"subdomain",type:"text",placeholder:{id:(0,B.OB)("PopUpForm.Providers.subdomain.placeholder"),defaultMessage:"my.subdomain.com"},size:12,validations:{required:!0}}],[{intlLabel:re,placeholder:se,name:"callback",type:"text",size:12,validations:{required:!0}}],[{intlLabel:oe,name:"noName",type:"text",validations:{},size:12,disabled:!0}]],schema:m.Ry().shape({enabled:m.Xg().required(r.I0.required),key:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()}),secret:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()}),subdomain:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()}),callback:m.Z_().when("enabled",{is:!0,then:m.Z_().required(r.I0.required),otherwise:m.Z_()})})}};const le=()=>{const{formatMessage:v}=(0,H.Z)();(0,r.go)();const{notifyStatus:L}=(0,a.G)(),j=(0,N.useQueryClient)(),{trackUsage:A}=(0,r.rS)(),T=(0,t.useRef)(A),[S,R]=(0,t.useState)(!1),[I,F]=(0,t.useState)(!1),[M,Z]=(0,t.useState)(null),D=(0,r.lm)(),{lockApp:K,unlockApp:U}=(0,r.o1)(),{isLoading:q,allowedActions:{canUpdate:X}}=(0,r.ss)({update:ae._.updateProviders}),{isLoading:_,data:G,isFetching:Ue}=(0,N.useQuery)("get-providers",()=>Te(D),{onSuccess(){L(v({id:(0,B.OB)("Providers.data.loaded"),defaultMessage:"Providers have been loaded"}))},initialData:{}}),Se=_||Ue,Fe=(0,N.useMutation)(je,{async onSuccess(){await j.invalidateQueries("get-providers"),D({type:"info",message:{id:(0,B.OB)("notification.success.submit")}}),T.current("didEditAuthenticationProvider"),F(!1),ee(),U()},onError(){D({type:"warning",message:{id:"notification.error"}}),U(),F(!1)},refetchActive:!1}),Q=(0,t.useMemo)(()=>Ze(G),[G]),De=Q.length,ue=(0,t.useMemo)(()=>{if(!M)return!1;const O=Q.find(te=>te.name===M);return C()(O,"subdomain")},[Q,M]),ze=v({id:(0,B.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"}),Ie=(0,t.useMemo)(()=>M==="email"?k.email:ue?k.providersWithSubdomain:k.providers,[M,ue]),ee=()=>{R(O=>!O)},ce=O=>{X&&(Z(O.name),ee())},We=async O=>{F(!0),K(),T.current("willEditAuthenticationProvider");const te={...G,[M]:O};Fe.mutate({providers:te})};return t.createElement(i.A,null,t.createElement(r.SL,{name:ze}),t.createElement(s.o,null,t.createElement(u.T,{title:v({id:(0,B.OB)("HeaderNav.link.providers"),defaultMessage:"Providers"})}),Se||q?t.createElement(r.dO,null):t.createElement(d.D,null,t.createElement(n.i,{colCount:3,rowCount:De+1},t.createElement(l.h,null,t.createElement(g.Tr,null,t.createElement(h.Th,null,t.createElement(b.Z,{variant:"sigma",textColor:"neutral600"},v({id:"global.name",defaultMessage:"Name"}))),t.createElement(h.Th,null,t.createElement(b.Z,{variant:"sigma",textColor:"neutral600"},v({id:(0,B.OB)("Providers.status"),defaultMessage:"Status"}))),t.createElement(h.Th,null,t.createElement(b.Z,{variant:"sigma"},t.createElement(p.T,null,v({id:"global.settings",defaultMessage:"Settings"})))))),t.createElement(f.p,null,Q.map(O=>t.createElement(g.Tr,{key:O.name,...(0,r.X7)({fn:()=>ce(O),condition:X})},t.createElement(h.Td,{width:"45%"},t.createElement(b.Z,{fontWeight:"semiBold",textColor:"neutral800"},O.name)),t.createElement(h.Td,{width:"65%"},t.createElement(b.Z,{textColor:O.enabled?"success600":"danger600","data-testid":`enable-${O.name}`},O.enabled?v({id:"global.enabled",defaultMessage:"Enabled"}):v({id:"global.disabled",defaultMessage:"Disabled"}))),t.createElement(h.Td,{...r.UW},X&&t.createElement(E.h,{onClick:()=>ce(O),noBorder:!0,icon:t.createElement(c.Z,null),label:"Edit"})))))))),t.createElement(Oe,{initialData:G[M],isOpen:S,isSubmiting:I,layout:Ie,headerBreadcrumbs:[v({id:(0,B.OB)("PopUpForm.header.edit.providers"),defaultMessage:"Edit Provider"}),W()(M)],onToggle:ee,onSubmit:We,providerToEditName:M}))};var Ae=()=>t.createElement(r.O4,{permissions:ae._.readProviders},t.createElement(le,null))},55733:function(y,x,e){"use strict";e.d(x,{YX:function(){return s},OB:function(){return u.Z}});var t=e(86834),a=e.n(t),s=d=>Object.keys(d).reduce((n,l)=>{const g=d[l].controllers,h=Object.keys(g).reduce((b,p)=>(a()(g[p])||(b[p]=g[p]),b),{});return a()(h)||(n[l]={controllers:h}),n},{}),u=e(54788)},56671:function(y,x,e){var t=e(35897),a=e(74741),i=a(t);y.exports=i},52920:function(y,x,e){var t=e(56671),a=e(81580);function i(s,u){var d=-1,n=a(s)?Array(s.length):[];return t(s,function(l,g,h){n[++d]=u(l,g,h)}),n}y.exports=i},50690:function(y,x,e){var t=e(26460),a=e(80166),i=e(88904),s=e(52920),u=e(36024),d=e(76535),n=e(1397),l=e(15362),g=e(77236);function h(b,p,f){p.length?p=t(p,function(c){return g(c)?function(P){return a(P,c.length===1?c[0]:c)}:c}):p=[l];var E=-1;p=t(p,d(i));var r=s(b,function(c,P,C){var z=t(p,function(W){return W(c)});return{criteria:z,index:++E,value:c}});return u(r,function(c,P){return n(c,P,f)})}y.exports=h},36024:function(y){function x(e,t){var a=e.length;for(e.sort(t);a--;)e[a]=e[a].value;return e}y.exports=x},40709:function(y,x,e){var t=e(22945);function a(i,s){if(i!==s){var u=i!==void 0,d=i===null,n=i===i,l=t(i),g=s!==void 0,h=s===null,b=s===s,p=t(s);if(!h&&!p&&!l&&i>s||l&&g&&b&&!h&&!p||d&&g&&b||!u&&b||!n)return 1;if(!d&&!l&&!p&&i<s||p&&u&&n&&!d&&!l||h&&u&&n||!g&&n||!b)return-1}return 0}y.exports=a},1397:function(y,x,e){var t=e(40709);function a(i,s,u){for(var d=-1,n=i.criteria,l=s.criteria,g=n.length,h=u.length;++d<g;){var b=t(n[d],l[d]);if(b){if(d>=h)return b;var p=u[d];return b*(p=="desc"?-1:1)}}return i.index-s.index}y.exports=a},74741:function(y,x,e){var t=e(81580);function a(i,s){return function(u,d){if(u==null)return u;if(!t(u))return i(u,d);for(var n=u.length,l=s?n:-1,g=Object(u);(s?l--:++l<n)&&d(g[l],l,g)!==!1;);return u}}y.exports=a},98978:function(y,x,e){var t=e(40314),a=e(50690),i=e(94569),s=e(63108),u=i(function(d,n){if(d==null)return[];var l=n.length;return l>1&&s(d,n[0],n[1])?n=[]:l>2&&s(n[0],n[1],n[2])&&(n=[n[0]]),a(d,t(n,1),[])});y.exports=u},17e3:function(y,x,e){"use strict";e.d(x,{D:function(){return i}});var t=e(74512),a=e(72850);const i=({children:s})=>(0,t.jsx)(a.x,{paddingLeft:10,paddingRight:10,children:s})},82055:function(y,x,e){"use strict";e.d(x,{T:function(){return h}});var t=e(74512),a=e(32735),i=e(8471);const s=f=>{const E=(0,a.useRef)(null),[r,c]=(0,a.useState)(!0),P=([C])=>{c(C.isIntersecting)};return(0,a.useEffect)(()=>{const C=E.current,z=new IntersectionObserver(P,f);return C&&z.observe(E.current),()=>{C&&z.disconnect()}},[E,f]),[E,r]};var u=e(81957);const d=(f,E)=>{const r=(0,u.W)(E);(0,a.useLayoutEffect)(()=>{const c=new ResizeObserver(r);return Array.isArray(f)?f.forEach(P=>{P.current&&c.observe(P.current)}):f.current&&c.observe(f.current),()=>{c.disconnect()}},[f,r])};var n=e(72850),l=e(87933),g=e(49372);const h=f=>{const E=(0,a.useRef)(null),[r,c]=(0,a.useState)(null),[P,C]=s({root:null,rootMargin:"0px",threshold:0});return d(P,()=>{P.current&&c(P.current.getBoundingClientRect())}),(0,a.useEffect)(()=>{E.current&&c(E.current.getBoundingClientRect())},[E]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{height:r?.height},ref:P,children:C&&(0,t.jsx)(p,{ref:E,...f})}),!C&&(0,t.jsx)(p,{...f,sticky:!0,width:r?.width})]})};h.displayName="HeaderLayout";const b=(0,i.ZP)(n.x)`
|
|
2
|
-
width: ${({width:f})=>f?`${f/16}rem`:void 0};
|
|
3
|
-
z-index: ${({theme:f})=>f.zIndices[1]};
|
|
4
|
-
`,p=a.forwardRef(({navigationAction:f,primaryAction:E,secondaryAction:r,subtitle:c,title:P,sticky:C,width:z,...W},H)=>{const N=typeof c=="string";return C?(0,t.jsx)(b,{paddingLeft:6,paddingRight:6,paddingTop:3,paddingBottom:3,position:"fixed",top:0,right:0,background:"neutral0",shadow:"tableShadow",width:z,"data-strapi-header-sticky":!0,children:(0,t.jsxs)(l.k,{justifyContent:"space-between",children:[(0,t.jsxs)(l.k,{children:[f&&(0,t.jsx)(n.x,{paddingRight:3,children:f}),(0,t.jsxs)(n.x,{children:[(0,t.jsx)(g.Z,{variant:"beta",as:"h1",...W,children:P}),N?(0,t.jsx)(g.Z,{variant:"pi",textColor:"neutral600",children:c}):c]}),r?(0,t.jsx)(n.x,{paddingLeft:4,children:r}):null]}),(0,t.jsx)(l.k,{children:E?(0,t.jsx)(n.x,{paddingLeft:2,children:E}):void 0})]})}):(0,t.jsxs)(n.x,{ref:H,paddingLeft:10,paddingRight:10,paddingBottom:8,paddingTop:f?6:8,background:"neutral100","data-strapi-header":!0,children:[f?(0,t.jsx)(n.x,{paddingBottom:2,children:f}):null,(0,t.jsxs)(l.k,{justifyContent:"space-between",children:[(0,t.jsxs)(l.k,{minWidth:0,children:[(0,t.jsx)(g.Z,{as:"h1",variant:"alpha",...W,children:P}),r?(0,t.jsx)(n.x,{paddingLeft:4,children:r}):null]}),E]}),N?(0,t.jsx)(g.Z,{variant:"epsilon",textColor:"neutral600",as:"p",children:c}):c]})})},96709:function(y,x,e){"use strict";e.d(x,{A:function(){return d}});var t=e(74512),a=e(8471),i=e(72850);const s=(0,a.ZP)(i.x)`
|
|
5
|
-
display: grid;
|
|
6
|
-
grid-template-columns: ${({hasSideNav:n})=>n?"auto 1fr":"1fr"};
|
|
7
|
-
`,u=(0,a.ZP)(i.x)`
|
|
8
|
-
overflow-x: hidden;
|
|
9
|
-
`,d=({sideNav:n,children:l})=>(0,t.jsxs)(s,{hasSideNav:!!n,children:[n,(0,t.jsx)(u,{paddingBottom:10,children:l})]})},27649:function(y,x,e){"use strict";e.d(x,{o:function(){return u}});var t=e(74512),a=e(8471),i=e(72850);const s=(0,a.ZP)(i.x)`
|
|
10
|
-
// To prevent global outline on focus visible to force an outline when Main is focused
|
|
11
|
-
&:focus-visible {
|
|
12
|
-
outline: none;
|
|
13
|
-
}
|
|
14
|
-
`,u=({labelledBy:d="main-content-title",...n})=>(0,t.jsx)(s,{"aria-labelledby":d,as:"main",id:"main-content",tabIndex:-1,...n})}}]);
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8853],{94145:function(ye,G,a){a.r(G),a.d(G,{default:function(){return Dt}});var e=a(32735),l=a(19565),D=a(53038),T=a(19108),R=a(92841),I=a(27649),Z=a(82055),B=a(41415),O=a(17e3),f=a(87933),C=a(72850),E=a(49372),F=a(15335),x=a(5803),K=a(10369),J=a(33475),q=a(66456),_=a(92802),b=a(67879),Re=a(60216),v=a.n(Re);const ee=(0,e.createContext)({}),te=({children:t,value:n})=>e.createElement(ee.Provider,{value:n},t),H=()=>(0,e.useContext)(ee);te.propTypes={children:v().node.isRequired,value:v().object.isRequired};var N=a(54788),Ce=a(83828),Te=a(61762),Ae=a(89966),Pe=a(23940),De=a.n(Pe);function be(t){switch(t){case"application":return"Application";case"plugin::content-manager":return"Content manager";case"plugin::content-type-builder":return"Content types builder";case"plugin::documentation":return"Documentation";case"plugin::email":return"Email";case"plugin::i18n":return"i18n";case"plugin::upload":return"Upload";case"plugin::users-permissions":return"Users-permissions";default:return De()(t.replace("api::","").replace("plugin::",""))}}var Se=be,Le=(t,n)=>{const s=Object.keys(n).sort().map(r=>({name:r,isOpen:!1}));return{...t,collapses:s}},Me=a(98978),se=a.n(Me),ne=a(8284),ae=a(3685),Ze=a(45112),Oe=a(33795),j=a.n(Oe),W=a(8471);const re=(0,W.iv)`
|
|
2
|
-
background: ${t=>t.theme.colors.primary100};
|
|
3
|
-
svg {
|
|
4
|
-
opacity: 1;
|
|
5
|
-
}
|
|
6
|
-
`;var xe=(0,W.ZP)(C.x)`
|
|
7
|
-
display: flex;
|
|
8
|
-
justify-content: space-between;
|
|
9
|
-
align-items: center;
|
|
10
|
-
|
|
11
|
-
svg {
|
|
12
|
-
opacity: 0;
|
|
13
|
-
path {
|
|
14
|
-
fill: ${t=>t.theme.colors.primary600};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/* Show active style both on hover and when the action is selected */
|
|
19
|
-
${t=>t.isActive&&re}
|
|
20
|
-
&:hover {
|
|
21
|
-
${re}
|
|
22
|
-
}
|
|
23
|
-
`;const Ue=W.ZP.div`
|
|
24
|
-
flex: 1;
|
|
25
|
-
align-self: center;
|
|
26
|
-
border-top: 1px solid ${({theme:t})=>t.colors.neutral150};
|
|
27
|
-
`,oe=({subCategory:t})=>{const{formatMessage:n}=(0,b.Z)(),{onChange:s,onChangeSelectAll:r,onSelectedAction:c,selectedAction:o,modifiedData:u}=H(),m=(0,e.useMemo)(()=>j()(u,t.name,{}),[u,t]),g=(0,e.useMemo)(()=>Object.values(m).every(i=>i.enabled===!0),[m]),d=(0,e.useMemo)(()=>Object.values(m).some(i=>i.enabled===!0)&&!g,[m,g]),h=(0,e.useCallback)(({target:{name:i}})=>{r({target:{name:i,value:!g}})},[g,r]),p=(0,e.useCallback)(i=>o===i,[o]);return e.createElement(C.x,null,e.createElement(f.k,{justifyContent:"space-between",alignItems:"center"},e.createElement(C.x,{paddingRight:4},e.createElement(E.Z,{variant:"sigma",textColor:"neutral600"},t.label)),e.createElement(Ue,null),e.createElement(C.x,{paddingLeft:4},e.createElement(ne.X,{name:t.name,value:g,onValueChange:i=>h({target:{name:t.name,value:i}}),indeterminate:d},n({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(f.k,{paddingTop:6,paddingBottom:6},e.createElement(F.r,{gap:2,style:{flex:1}},t.actions.map(i=>{const A=`${i.name}.enabled`;return e.createElement(x.P,{col:6,key:i.name},e.createElement(xe,{isActive:p(i.name),padding:2,hasRadius:!0},e.createElement(ne.X,{value:j()(u,A,!1),name:A,onValueChange:S=>s({target:{name:A,value:S}})},i.label),e.createElement("button",{type:"button",onClick:()=>c(i.name),style:{display:"inline-flex",alignItems:"center"}},e.createElement(ae.T,{as:"span"},n({id:"app.utils.show-bound-route",defaultMessage:"Show bound route for {route}"},{route:i.name})),e.createElement(Ze.Z,null))))}))))};oe.propTypes={subCategory:v().object.isRequired};var ke=oe;const le=({name:t,permissions:n})=>{const s=(0,e.useMemo)(()=>se()(Object.values(n.controllers).reduce((r,c,o)=>{const u=`${t}.controllers.${Object.keys(n.controllers)[o]}`,m=se()(Object.keys(c).reduce((g,d)=>[...g,{...c[d],label:d,name:`${u}.${d}`}],[]),"label");return[...r,{actions:m,label:Object.keys(n.controllers)[o],name:u}]},[]),"label"),[t,n]);return e.createElement(C.x,{padding:6},s.map(r=>e.createElement(ke,{key:r.name,subCategory:r})))};le.propTypes={name:v().string.isRequired,permissions:v().object.isRequired};var Ie=le,w=a(97889);const Be={collapses:[]},Ne=(t,n)=>(0,w.ZP)(t,s=>{switch(n.type){case"TOGGLE_COLLAPSE":{s.collapses=t.collapses.map((r,c)=>c===n.index?{...r,isOpen:!r.isOpen}:{...r,isOpen:!1});break}default:return s}});var $e=()=>{const{modifiedData:t}=H(),{formatMessage:n}=(0,b.Z)(),[{collapses:s},r]=(0,e.useReducer)(Ne,Be,o=>Le(o,t)),c=o=>r({type:"TOGGLE_COLLAPSE",index:o});return e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:1},s.map((o,u)=>e.createElement(Ce.U,{expanded:o.isOpen,onToggle:()=>c(u),key:o.name,variant:u%2===0?"secondary":void 0},e.createElement(Te.B,{title:Se(o.name),description:n({id:"users-permissions.Plugin.permissions.plugins.description",defaultMessage:"Define all allowed actions for the {name} plugin."},{name:o.name}),variant:u%2?"primary":"secondary"}),e.createElement(Ae.v,null,e.createElement(C.x,null,e.createElement(Ie,{permissions:t[o.name],name:o.name}))))))},Ge=a(86834),Fe=a.n(Ge),je=a(86205),We=a.n(je),Ve=a(37213),He=a.n(Ve),we=a(15738),Ye=a.n(we),ze=t=>{switch(t){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Xe=(0,W.ZP)(C.x)`
|
|
28
|
-
margin: -1px;
|
|
29
|
-
border-radius: ${({theme:t})=>t.spaces[1]} 0 0 ${({theme:t})=>t.spaces[1]};
|
|
30
|
-
`;function Y({route:t}){const{formatMessage:n}=(0,b.Z)(),{method:s,handler:r,path:c}=t,o=c?Ye()(c.split("/")):[],[u="",m=""]=r?r.split("."):[],g=ze(t.method);return e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(E.Z,{variant:"delta",as:"h3"},n({id:"users-permissions.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,u),e.createElement(E.Z,{variant:"delta",textColor:"primary600"},".",m)),e.createElement(f.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(Xe,{background:g.background,borderColor:g.border,padding:2},e.createElement(E.Z,{fontWeight:"bold",textColor:g.text},s)),e.createElement(C.x,{paddingLeft:2,paddingRight:2},He()(o,d=>e.createElement(E.Z,{key:d,textColor:d.includes(":")?"neutral600":"neutral900"},"/",d)))))}Y.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},Y.propTypes={route:v().shape({handler:v().string,method:v().string,path:v().string})};var Qe=Y,Ke=()=>{const{formatMessage:t}=(0,b.Z)(),{selectedAction:n,routes:s}=H(),r=We()(n.split("."),"controllers"),c=j()(s,r[0]),o=r.slice(1).join("."),u=Fe()(c)?[]:c.filter(m=>m.handler.endsWith(o));return e.createElement(x.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},n?e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:2},u.map((m,g)=>e.createElement(Qe,{key:g,route:m}))):e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(E.Z,{variant:"delta",as:"h3"},t({id:"users-permissions.Policies.header.title",defaultMessage:"Advanced settings"})),e.createElement(E.Z,{as:"p",textColor:"neutral600"},t({id:"users-permissions.Policies.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Je=(t,n,s)=>({...t,initialData:n,modifiedData:n,routes:s}),qe=a(3040),ie=a.n(qe),_e=a(88708),et=a.n(_e);const tt={initialData:{},modifiedData:{},routes:{},selectedAction:"",policies:[]};var st=(t,n)=>(0,w.ZP)(t,s=>{switch(n.type){case"ON_CHANGE":{const r=n.keys.length,c=n.keys[r-1]==="enabled";if(n.value&&c){const o=et()(n.keys,r-1).join(".");s.selectedAction=o}ie()(s,["modifiedData",...n.keys],n.value);break}case"ON_CHANGE_SELECT_ALL":{const r=["modifiedData",...n.keys],c=j()(t,r,{}),o=Object.keys(c).reduce((u,m)=>(u[m]={...c[m],enabled:n.value},u),{});ie()(s,r,o);break}case"ON_RESET":{s.modifiedData=t.initialData;break}case"ON_SUBMIT_SUCCEEDED":{s.initialData=t.modifiedData;break}case"SELECT_ACTION":{const{actionToSelect:r}=n;s.selectedAction=r===t.selectedAction?"":r;break}default:return s}});const ce=(0,e.forwardRef)(({permissions:t,routes:n},s)=>{const{formatMessage:r}=(0,b.Z)(),[c,o]=(0,e.useReducer)(st,tt,h=>Je(h,t,n));(0,e.useImperativeHandle)(s,()=>({getPermissions(){return{permissions:c.modifiedData}},resetForm(){o({type:"ON_RESET"})},setFormAfterSubmit(){o({type:"ON_SUBMIT_SUCCEEDED"})}}));const d={...c,onChange:({target:{name:h,value:p}})=>o({type:"ON_CHANGE",keys:h.split("."),value:p==="empty__string_value"?"":p}),onChangeSelectAll:({target:{name:h,value:p}})=>o({type:"ON_CHANGE_SELECT_ALL",keys:h.split("."),value:p}),onSelectedAction:h=>o({type:"SELECT_ACTION",actionToSelect:h})};return e.createElement(te,{value:d},e.createElement(F.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(x.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(E.Z,{variant:"delta",as:"h2"},r({id:(0,N.Z)("Plugins.header.title"),defaultMessage:"Permissions"})),e.createElement(E.Z,{as:"p",textColor:"neutral600"},r({id:(0,N.Z)("Plugins.header.description"),defaultMessage:"Only actions bound by a route are listed below."}))),e.createElement($e,null))),e.createElement(Ke,null)))});ce.propTypes={permissions:v().object.isRequired,routes:v().object.isRequired};var de=(0,e.memo)(ce);const Ht={isLoading:!0,modifiedData:{}},wt=(t,n)=>produce(t,s=>{switch(n.type){case"GET_DATA":{s.isLoading=!0,s.modifiedData={};break}case"GET_DATA_SUCCEEDED":{s.isLoading=!1,s.modifiedData=n.data;break}case"GET_DATA_ERROR":{s.isLoading=!0;break}case"ON_SUBMIT_SUCCEEDED":{s.modifiedData=n.data;break}default:return s}});var Yt=null;const zt=(t,n)=>{const{isLoading:s,allowedActions:r}=useRBAC(n),[{isLoading:c,modifiedData:o},u]=useReducer(reducer,initialState),m=useNotification(),g=useRef(!0),{get:d}=useFetchClient();useEffect(()=>(s||(async()=>{try{u({type:"GET_DATA"});const{data:i}=await d(`/users-permissions/${t}`);u({type:"GET_DATA_SUCCEEDED",data:i})}catch(i){g.current&&(u({type:"GET_DATA_ERROR"}),console.error(i),m({type:"warning",message:{id:"notification.error"}}))}})(),()=>{g.current=!1}),[s,t,d,m]);const h=useCallback(p=>{u({type:"ON_SUBMIT_SUCCEEDED",data:p})},[]);return{allowedActions:r,dispatchSubmitSucceeded:h,isLoading:c,isLoadingForPermissions:s,modifiedData:o}};var Xt=null;const Qt={roles:[],isLoading:!0},Kt=(t,n)=>produce(t,s=>{switch(n.type){case"GET_DATA":{s.isLoading=!0,s.roles=[];break}case"GET_DATA_SUCCEEDED":{s.roles=n.data,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}default:return s}});var Jt=null;const qt=(t=!0)=>{const[{roles:n,isLoading:s},r]=useReducer(reducer,initialState,()=>init(initialState,t)),c=useNotification(),o=useRef(!0),u=useFetchClient(),m=useCallback(async()=>{try{r({type:"GET_DATA"});const{data:{roles:g}}=await u.get(`/${pluginId}/roles`);r({type:"GET_DATA_SUCCEEDED",data:g})}catch(g){const d=get(g,["response","payload","message"],"An error occured");o.current&&(r({type:"GET_DATA_ERROR"}),d!=="Forbidden"&&c({type:"warning",message:d}))}},[u,c]);return useEffect(()=>(t&&m(),()=>{o.current=!1}),[t,m]),{roles:n,isLoading:s,getData:m}};var _t=null,z=a(20108),$=a(55733);const ue=()=>{const t=(0,l.lm)(),{get:n}=(0,l.kY)(),{formatAPIError:s}=(0,l.So)($.OB),[{data:r,isLoading:c,error:o,refetch:u},{data:m,isLoading:g,error:d,refetch:h}]=(0,z.useQueries)([{queryKey:[R.Z,"permissions"],async queryFn(){return(await n(`/${R.Z}/permissions`)).data.permissions}},{queryKey:[R.Z,"routes"],async queryFn(){return(await n(`/${R.Z}/routes`)).data.routes}}]),p=async()=>{await Promise.all([u(),h()])};(0,e.useEffect)(()=>{o&&t({type:"warning",message:s(o)})},[t,o,s]),(0,e.useEffect)(()=>{d&&t({type:"warning",message:s(d)})},[t,d,s]);const i=c||g;return{permissions:r?(0,$.YX)(r):{},routes:m??{},getData:p,isLoading:i}},nt={role:{},isLoading:!0};var at=(t,n)=>(0,w.ZP)(t,s=>{switch(n.type){case"GET_DATA_SUCCEEDED":{s.role=n.role,s.isLoading=!1;break}case"GET_DATA_ERROR":{s.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{s.role.name=n.name,s.role.description=n.description;break}default:return s}}),rt=t=>{const[n,s]=(0,e.useReducer)(at,nt),r=(0,l.lm)(),c=(0,e.useRef)(null),{get:o}=(0,l.kY)();(0,e.useEffect)(()=>(c.current=!0,t?u(t):s({type:"GET_DATA_SUCCEEDED",role:{}}),()=>c.current=!1),[t]);const u=async g=>{try{const{data:{role:d}}=await o(`/${R.Z}/roles/${g}`);c.current&&s({type:"GET_DATA_SUCCEEDED",role:d})}catch(d){console.error(d),s({type:"GET_DATA_ERROR"}),r({type:"warning",message:{id:"notification.error"}})}},m=(0,e.useCallback)(g=>{s({type:"ON_SUBMIT_SUCCEEDED",...g})},[]);return{...n,onSubmitSucceeded:m}},X=a(24346);const me=X.Ry().shape({name:X.Z_().required(l.I0.required),description:X.Z_().required(l.I0.required)});var ot=()=>{const{formatMessage:t}=(0,b.Z)(),[n,s]=(0,e.useState)(!1),r=(0,l.lm)(),{goBack:c}=(0,D.k6)(),{lockApp:o,unlockApp:u}=(0,l.o1)(),{isLoading:m,permissions:g,routes:d}=ue(),{trackUsage:h}=(0,l.rS)(),p=(0,e.useRef)(),{post:i}=(0,l.kY)(),A=async S=>{o(),s(!0);try{const y=p.current.getPermissions();await i(`/${R.Z}/roles`,{...S,...y,users:[]}),h("didCreateRole"),r({type:"success",message:{id:(0,N.Z)("Settings.roles.created"),defaultMessage:"Role created"}}),c()}catch(y){console.error(y),r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),u()};return e.createElement(I.o,null,e.createElement(l.SL,{name:"Roles"}),e.createElement(_.J9,{enableReinitialize:!0,initialValues:{name:"",description:""},onSubmit:A,validationSchema:me},({handleSubmit:S,values:y,handleChange:P,errors:L})=>e.createElement(l.l0,{noValidate:!0,onSubmit:S},e.createElement(Z.T,{primaryAction:!m&&e.createElement(B.z,{type:"submit",loading:n,startIcon:e.createElement(q.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:t({id:"Settings.roles.create.title",defaultMessage:"Create a role"}),subtitle:t({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"})}),e.createElement(O.D,null,e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:7},e.createElement(C.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(E.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(F.r,{gap:4},e.createElement(x.P,{col:6},e.createElement(K.o,{name:"name",value:y.name||"",onChange:P,label:t({id:"global.name",defaultMessage:"Name"}),error:L.name?t({id:L.name,defaultMessage:"Invalid value"}):null})),e.createElement(x.P,{col:6},e.createElement(J.g,{id:"description",value:y.description||"",onChange:P,label:t({id:"global.description",defaultMessage:"Description"}),error:L.description?t({id:L.description,defaultMessage:"Invalid value"}):null}))))),!m&&e.createElement(de,{ref:p,permissions:g,routes:d}))))))},lt=()=>e.createElement(l.O4,{permissions:T._.createRole},e.createElement(ot,null)),it=a(29439),ct=()=>{const{formatMessage:t}=(0,b.Z)(),[n,s]=(0,e.useState)(!1),r=(0,l.lm)(),{lockApp:c,unlockApp:o}=(0,l.o1)(),{params:{id:u}}=(0,D.$B)(`/settings/${R.Z}/roles/:id`),{isLoading:m,routes:g}=ue(),{role:d,onSubmitSucceeded:h,isLoading:p}=rt(u),i=(0,e.useRef)(),{put:A}=(0,l.kY)(),S=async y=>{c(),s(!0);try{const P=i.current.getPermissions();await A(`/${R.Z}/roles/${u}`,{...y,...P,users:[]}),h({name:y.name,description:y.description}),r({type:"success",message:{id:(0,N.Z)("Settings.roles.edited"),defaultMessage:"Role edited"}})}catch(P){console.error(P),r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}s(!1),o()};return p?e.createElement(l.dO,null):e.createElement(I.o,null,e.createElement(l.SL,{name:"Roles"}),e.createElement(_.J9,{enableReinitialize:!0,initialValues:{name:d.name,description:d.description},onSubmit:S,validationSchema:me},({handleSubmit:y,values:P,handleChange:L,errors:U})=>e.createElement(l.l0,{noValidate:!0,onSubmit:y},e.createElement(Z.T,{primaryAction:!m&&e.createElement(B.z,{disabled:d.code==="strapi-super-admin",type:"submit",loading:n,startIcon:e.createElement(q.Z,null)},t({id:"global.save",defaultMessage:"Save"})),title:d.name,subtitle:d.description,navigationAction:e.createElement(l.rU,{startIcon:e.createElement(it.Z,null),to:"/settings/users-permissions/roles"},t({id:"global.back",defaultMessage:"Back"}))}),e.createElement(O.D,null,e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:7},e.createElement(C.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(f.k,{direction:"column",alignItems:"stretch",gap:4},e.createElement(E.Z,{variant:"delta",as:"h2"},t({id:(0,N.Z)("EditPage.form.roles"),defaultMessage:"Role details"})),e.createElement(F.r,{gap:4},e.createElement(x.P,{col:6},e.createElement(K.o,{name:"name",value:P.name||"",onChange:L,label:t({id:"global.name",defaultMessage:"Name"}),error:U.name?t({id:U.name,defaultMessage:"Invalid value"}):null})),e.createElement(x.P,{col:6},e.createElement(J.g,{id:"description",value:P.description||"",onChange:L,label:t({id:"global.description",defaultMessage:"Description"}),error:U.description?t({id:U.description,defaultMessage:"Invalid value"}):null}))))),!m&&e.createElement(de,{ref:i,permissions:d.permissions,routes:g}))))))},dt=()=>e.createElement(l.O4,{permissions:T._.updateRole},e.createElement(ct,null)),ut=a(94638),mt=a(96709),gt=a(99223),pt=a(56755),Et=a(33827),ge=a(94547),M=a(19786),ht=a(19406),ft=a(35658),pe=a(50563),vt=a(68625),yt=a(4038);const Q=({sortedRoles:t,canDelete:n,permissions:s,setRoleToDelete:r,onDelete:c})=>{const{formatMessage:o}=(0,b.Z)(),{push:u}=(0,D.k6)(),[m,g]=c,d=i=>n&&!["public","authenticated"].includes(i.type),h=i=>{r(i),g(!m)},p=i=>{u(`/settings/${R.Z}/roles/${i}`)};return e.createElement(ft.p,null,t?.map(i=>e.createElement(ge.Tr,{key:i.name,...(0,l.X7)({fn:()=>p(i.id)})},e.createElement(M.Td,{width:"20%"},e.createElement(E.Z,null,i.name)),e.createElement(M.Td,{width:"50%"},e.createElement(E.Z,null,i.description)),e.createElement(M.Td,{width:"30%"},e.createElement(E.Z,null,o({id:"Roles.RoleRow.user-count",defaultMessage:"{number, plural, =0 {# user} one {# user} other {# users}}"},{number:i.nb_users}))),e.createElement(M.Td,null,e.createElement(f.k,{justifyContent:"end",...l.UW},e.createElement(l.jW,{permissions:s.updateRole},e.createElement(pe.h,{onClick:()=>p(i.id),noBorder:!0,icon:e.createElement(vt.Z,null),label:o({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:`${i.name}`})})),d(i)&&e.createElement(l.jW,{permissions:s.deleteRole},e.createElement(pe.h,{onClick:()=>h(i.id),noBorder:!0,icon:e.createElement(yt.Z,null),label:o({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:`${i.name}`})})))))))};var Rt=Q;Q.defaultProps={canDelete:!1},Q.propTypes={onDelete:v().array.isRequired,permissions:v().object.isRequired,setRoleToDelete:v().func.isRequired,sortedRoles:v().array.isRequired,canDelete:v().bool};const Ct=async(t,n)=>{try{const{get:s}=(0,l.tg)(),{data:r}=await s("/users-permissions/roles");return n("The roles have loaded successfully"),r}catch(s){throw t({type:"warning",message:{id:"notification.error"}}),new Error(s)}},Tt=async(t,n)=>{try{const{del:s}=(0,l.tg)();await s(`/users-permissions/roles/${t}`)}catch{n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}};var At=()=>{const{trackUsage:t}=(0,l.rS)(),{formatMessage:n,locale:s}=(0,b.Z)(),{push:r}=(0,D.k6)(),c=(0,l.lm)(),{notifyStatus:o}=(0,ut.G)(),[{query:u}]=(0,l.Kx)(),m=u?._q||"",[g,d]=(0,e.useState)(!1),[h,p]=(0,e.useState)(!1),[i,A]=(0,e.useState)();(0,l.go)();const{isLoading:S,allowedActions:{canRead:y,canDelete:P}}=(0,l.ss)({create:T._.createRole,read:T._.readRoles,update:T._.updateRole,delete:T._.deleteRole}),{isLoading:L,data:{roles:U},isFetching:bt,refetch:St}=(0,z.useQuery)("get-roles",()=>Ct(c,o),{initialData:{},enabled:y}),{includes:Ee}=(0,l.L0)(s,{sensitivity:"base"}),he=(0,l.Xe)(s,{sensitivity:"base"}),fe=L||bt,Lt=()=>{t("willCreateRole"),r(`/settings/${R.Z}/roles/new`)},Mt=()=>{d(!g)},Zt={roles:{id:(0,$.OB)("Roles.empty"),defaultMessage:"You don't have any roles yet."},search:{id:(0,$.OB)("Roles.empty.search"),defaultMessage:"No roles match the search."}},Ot=n({id:"global.roles",defaultMessage:"Roles"}),xt=(0,z.useMutation)(k=>Tt(k,c),{async onSuccess(){await St()}}),Ut=async()=>{p(!0),await xt.mutateAsync(i),d(!g),p(!1)},V=(U||[]).filter(k=>Ee(k.name,m)||Ee(k.description,m)).sort((k,ve)=>he.compare(k.name,ve.name)||he.compare(k.description,ve.description)),kt=m&&!V.length?"search":"roles",It=4,Bt=(U?.length||0)+1;return e.createElement(mt.A,null,e.createElement(l.SL,{name:Ot}),e.createElement(I.o,{"aria-busy":fe},e.createElement(Z.T,{title:n({id:"global.roles",defaultMessage:"Roles"}),subtitle:n({id:"Settings.roles.list.description",defaultMessage:"List of roles"}),primaryAction:e.createElement(l.jW,{permissions:T._.createRole},e.createElement(B.z,{onClick:Lt,startIcon:e.createElement(ht.Z,null),size:"S"},n({id:(0,$.OB)("List.button.roles"),defaultMessage:"Add new role"})))}),e.createElement(gt.Z,{startActions:e.createElement(l.m,{label:n({id:"app.component.search.label",defaultMessage:"Search"})})}),e.createElement(O.D,null,!y&&e.createElement(l.ZF,null),(fe||S)&&e.createElement(l.dO,null),y&&V&&V?.length?e.createElement(pt.i,{colCount:It,rowCount:Bt},e.createElement(Et.h,null,e.createElement(ge.Tr,null,e.createElement(M.Th,null,e.createElement(E.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),e.createElement(M.Th,null,e.createElement(E.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"Description"}))),e.createElement(M.Th,null,e.createElement(E.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.users",defaultMessage:"Users"}))),e.createElement(M.Th,null,e.createElement(ae.T,null,n({id:"global.actions",defaultMessage:"Actions"}))))),e.createElement(Rt,{sortedRoles:V,canDelete:P,permissions:T._,setRoleToDelete:A,onDelete:[g,d]})):e.createElement(l.x7,{content:Zt[kt]})),e.createElement(l.QH,{isConfirmButtonLoading:h,onConfirm:Ut,onToggleDialog:Mt,isOpen:g})))},Pt=()=>e.createElement(l.O4,{permissions:T._.accessRoles},e.createElement(At,null)),Dt=()=>e.createElement(l.O4,{permissions:T._.accessRoles},e.createElement(D.rs,null,e.createElement(D.AW,{path:`/settings/${R.Z}/roles/new`,component:lt,exact:!0}),e.createElement(D.AW,{path:`/settings/${R.Z}/roles/:id`,component:dt,exact:!0}),e.createElement(D.AW,{path:`/settings/${R.Z}/roles`,component:Pt,exact:!0}),e.createElement(D.AW,{path:"",component:l.Hn})))},55733:function(ye,G,a){a.d(G,{YX:function(){return T},OB:function(){return R.Z}});var e=a(86834),l=a.n(e),T=I=>Object.keys(I).reduce((Z,B)=>{const O=I[B].controllers,f=Object.keys(O).reduce((C,E)=>(l()(O[E])||(C[E]=O[E]),C),{});return l()(f)||(Z[B]={controllers:f}),Z},{}),R=a(54788)}}]);
|
package/ee/admin/hooks/index.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { useEffect, useReducer } from 'react';
|
|
2
|
-
|
|
3
|
-
import { useFetchClient, useNotification } from '@strapi/helper-plugin';
|
|
4
|
-
|
|
5
|
-
import reducer, { initialState } from './reducer';
|
|
6
|
-
|
|
7
|
-
const useAuthProviders = ({ ssoEnabled }) => {
|
|
8
|
-
const [state, dispatch] = useReducer(reducer, initialState);
|
|
9
|
-
const toggleNotification = useNotification();
|
|
10
|
-
const { get } = useFetchClient();
|
|
11
|
-
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
const fetchAuthProviders = async () => {
|
|
14
|
-
try {
|
|
15
|
-
if (!ssoEnabled) {
|
|
16
|
-
dispatch({
|
|
17
|
-
type: 'GET_DATA_SUCCEEDED',
|
|
18
|
-
data: [],
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const { data } = await get('/admin/providers');
|
|
25
|
-
|
|
26
|
-
dispatch({
|
|
27
|
-
type: 'GET_DATA_SUCCEEDED',
|
|
28
|
-
data,
|
|
29
|
-
});
|
|
30
|
-
} catch (err) {
|
|
31
|
-
console.error(err);
|
|
32
|
-
|
|
33
|
-
dispatch({
|
|
34
|
-
type: 'GET_DATA_ERROR',
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
toggleNotification({
|
|
38
|
-
type: 'warning',
|
|
39
|
-
message: { id: 'notification.error' },
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
fetchAuthProviders();
|
|
45
|
-
}, [get, ssoEnabled, toggleNotification]);
|
|
46
|
-
|
|
47
|
-
return state;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default useAuthProviders;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/* eslint-disable consistent-return */
|
|
2
|
-
import produce from 'immer';
|
|
3
|
-
|
|
4
|
-
export const initialState = {
|
|
5
|
-
data: [],
|
|
6
|
-
isLoading: true,
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const reducer = (state, action) =>
|
|
10
|
-
produce(state, (draftState) => {
|
|
11
|
-
switch (action.type) {
|
|
12
|
-
case 'GET_DATA_SUCCEEDED': {
|
|
13
|
-
draftState.data = action.data;
|
|
14
|
-
draftState.isLoading = false;
|
|
15
|
-
break;
|
|
16
|
-
}
|
|
17
|
-
case 'GET_DATA_ERROR': {
|
|
18
|
-
draftState.isLoading = false;
|
|
19
|
-
break;
|
|
20
|
-
}
|
|
21
|
-
default:
|
|
22
|
-
return draftState;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
export default reducer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useLicenseLimits } from './useLicenseLimits';
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { join, resolve, relative } = require('path');
|
|
4
|
-
const { camelCase } = require('lodash');
|
|
5
|
-
const fs = require('fs-extra');
|
|
6
|
-
|
|
7
|
-
const CORE_PLUGINS = ['content-type-builder', 'email', 'upload'];
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Retrieve the core plugins path
|
|
11
|
-
* @returns {Object}
|
|
12
|
-
*/
|
|
13
|
-
const getCorePluginsPath = () => {
|
|
14
|
-
const corePlugins = {};
|
|
15
|
-
|
|
16
|
-
for (const dep of CORE_PLUGINS) {
|
|
17
|
-
const packageAdminPath = join(__dirname, '..', '..', dep, 'admin', 'src');
|
|
18
|
-
|
|
19
|
-
const adminEntryPoint = resolve(join(__dirname, '..', 'admin', 'src'));
|
|
20
|
-
const pathToPlugin = join(relative(adminEntryPoint, packageAdminPath)).replace(/\\/g, '/');
|
|
21
|
-
|
|
22
|
-
corePlugins[dep] = pathToPlugin;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return corePlugins;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Retrieve the plugins real path
|
|
30
|
-
* @param {Object[]} pluginsToInstall array of plugins located in the plugins folder
|
|
31
|
-
* @returns Object of plugin's paths
|
|
32
|
-
*/
|
|
33
|
-
const getPluginToInstallPath = (pluginsToInstall) => {
|
|
34
|
-
const plugins = {};
|
|
35
|
-
|
|
36
|
-
for (const dep of pluginsToInstall) {
|
|
37
|
-
const packageAdminPath = join(__dirname, '..', '..', '..', 'plugins', dep, 'admin', 'src');
|
|
38
|
-
|
|
39
|
-
const adminEntryPoint = resolve(join(__dirname, '..', 'admin', 'src'));
|
|
40
|
-
const pathToPlugin = join(relative(adminEntryPoint, packageAdminPath)).replace(/\\/g, '/');
|
|
41
|
-
|
|
42
|
-
plugins[dep] = pathToPlugin;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return plugins;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Write the plugins.js file
|
|
50
|
-
* @param {Object} plugins
|
|
51
|
-
*/
|
|
52
|
-
const createPluginsFile = async (plugins) => {
|
|
53
|
-
const pluginFileDest = resolve(__dirname, '..', 'admin', 'src', 'plugins.js');
|
|
54
|
-
|
|
55
|
-
const allPluginsArray = Object.entries(plugins).map(([plugin, pluginPath]) => {
|
|
56
|
-
return {
|
|
57
|
-
shortName: camelCase(plugin),
|
|
58
|
-
name: plugin,
|
|
59
|
-
pluginPath,
|
|
60
|
-
};
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
const content = `
|
|
64
|
-
// To override this file create a plugins-dev.js one and copy the content of the plugin.js one.
|
|
65
|
-
// When starting the app the script will copy the plugins-dev.js into this one instead.
|
|
66
|
-
${allPluginsArray
|
|
67
|
-
.map(({ shortName, pluginPath }) => {
|
|
68
|
-
const req = `'${pluginPath}'`;
|
|
69
|
-
|
|
70
|
-
return `import ${shortName} from ${req};`;
|
|
71
|
-
})
|
|
72
|
-
.join('\n')}
|
|
73
|
-
|
|
74
|
-
const plugins = {
|
|
75
|
-
${[...allPluginsArray]
|
|
76
|
-
.map(({ name, shortName }) => {
|
|
77
|
-
return ` '${name}': ${shortName},`;
|
|
78
|
-
})
|
|
79
|
-
.join('\n')}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export default plugins;
|
|
83
|
-
`;
|
|
84
|
-
|
|
85
|
-
return fs.writeFile(pluginFileDest, content);
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
module.exports = {
|
|
89
|
-
createPluginsFile,
|
|
90
|
-
getCorePluginsPath,
|
|
91
|
-
getPluginToInstallPath,
|
|
92
|
-
};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { join, resolve, sep, posix } = require('path');
|
|
4
|
-
const fs = require('fs-extra');
|
|
5
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
6
|
-
const glob = require('glob');
|
|
7
|
-
|
|
8
|
-
// Only for dev environement
|
|
9
|
-
const getPluginsPath = () => {
|
|
10
|
-
const rootPath = resolve(__dirname, '..', join('..', '..', '..', 'packages'));
|
|
11
|
-
/**
|
|
12
|
-
* So `glob` only supports '/' as a path separator, so we need to replace
|
|
13
|
-
* the path separator for the current OS with '/'. e.g. on windows it's `\`.
|
|
14
|
-
*
|
|
15
|
-
* see https://github.com/isaacs/node-glob/#windows for more information
|
|
16
|
-
*
|
|
17
|
-
* and see https://github.com/isaacs/node-glob/issues/467#issuecomment-1114240501 for the recommended fix.
|
|
18
|
-
*/
|
|
19
|
-
let corePath = join(rootPath, 'core', '*');
|
|
20
|
-
let pluginsPath = join(rootPath, 'plugins', '*');
|
|
21
|
-
|
|
22
|
-
if (process.platform === 'win32') {
|
|
23
|
-
corePath = corePath.split(sep).join(posix.sep);
|
|
24
|
-
pluginsPath = pluginsPath.split(sep).join(posix.sep);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const corePackageDirs = glob.sync(corePath);
|
|
28
|
-
const pluginsPackageDirs = glob.sync(pluginsPath);
|
|
29
|
-
|
|
30
|
-
const packageDirs = [...corePackageDirs, ...pluginsPackageDirs].filter((dir) => {
|
|
31
|
-
const isCoreAdmin = dir.includes('packages/core/admin');
|
|
32
|
-
const pathToEntryPoint = join(dir, 'admin', 'src', 'index.js');
|
|
33
|
-
const doesAdminFolderExist = fs.pathExistsSync(pathToEntryPoint);
|
|
34
|
-
|
|
35
|
-
return !isCoreAdmin && doesAdminFolderExist;
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
return packageDirs.map((dir) => resolve(__dirname, '..', join(dir, 'admin', 'src')));
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
module.exports = getPluginsPath;
|
/package/ee/admin/hooks/{useLicenseLimits/__mocks__/index.js → __mocks__/useLicenseLimits.js}
RENAMED
|
File without changes
|
/package/server/services/permission/permissions-manager/{query-builers.js → query-builders.js}
RENAMED
|
File without changes
|