@strapi/admin 5.0.0-beta.5 → 5.0.0-beta.6
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/dist/admin/{AdminSeatInfo-H5eNy3Gq.js → AdminSeatInfo-G2ipQTLk.js} +5 -14
- package/dist/admin/AdminSeatInfo-G2ipQTLk.js.map +1 -0
- package/dist/admin/{AdminSeatInfo-jPH1stsB.mjs → AdminSeatInfo-ZrJlIt8M.mjs} +7 -16
- package/dist/admin/AdminSeatInfo-ZrJlIt8M.mjs.map +1 -0
- package/dist/admin/{ApplicationInfoPage-QiVVy6LS.mjs → ApplicationInfoPage-TImAEuc3.mjs} +9 -18
- package/dist/admin/ApplicationInfoPage-TImAEuc3.mjs.map +1 -0
- package/dist/admin/{ApplicationInfoPage-leY1AEgo.js → ApplicationInfoPage-dc0ReC0D.js} +7 -16
- package/dist/admin/ApplicationInfoPage-dc0ReC0D.js.map +1 -0
- package/dist/admin/{AuthResponse-FrsRAqFn.js → AuthResponse-J1Y_hbtY.js} +2 -2
- package/dist/admin/{AuthResponse-FrsRAqFn.js.map → AuthResponse-J1Y_hbtY.js.map} +1 -1
- package/dist/admin/{AuthResponse-B3Y_lz50.mjs → AuthResponse-wfOnX6GO.mjs} +2 -2
- package/dist/admin/{AuthResponse-B3Y_lz50.mjs.map → AuthResponse-wfOnX6GO.mjs.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-vS7Bwbws.js → AuthenticatedLayout-TNbTifIA.js} +115 -51
- package/dist/admin/AuthenticatedLayout-TNbTifIA.js.map +1 -0
- package/dist/admin/{AuthenticatedLayout-CHSwnqUb.mjs → AuthenticatedLayout-eMLYKMgW.mjs} +116 -52
- package/dist/admin/AuthenticatedLayout-eMLYKMgW.mjs.map +1 -0
- package/dist/admin/{ContentBox-PbS25I_4.mjs → ContentBox-DjmNTcxv.mjs} +3 -3
- package/dist/admin/ContentBox-DjmNTcxv.mjs.map +1 -0
- package/dist/admin/{ContentBox-xqJCP2BC.js → ContentBox-Mzcpnn32.js} +3 -3
- package/dist/admin/ContentBox-Mzcpnn32.js.map +1 -0
- package/dist/admin/{CreateActionEE-TcGdWjIN.mjs → CreateActionEE-Qdz4UDPf.mjs} +6 -14
- package/dist/admin/CreateActionEE-Qdz4UDPf.mjs.map +1 -0
- package/dist/admin/{CreateActionEE-2DKYzbq_.js → CreateActionEE-_i5qXWEG.js} +3 -11
- package/dist/admin/CreateActionEE-_i5qXWEG.js.map +1 -0
- package/dist/admin/{CreatePage-aBOoUjUW.js → CreatePage-03MgCK7Z.js} +5 -5
- package/dist/admin/{CreatePage-aBOoUjUW.js.map → CreatePage-03MgCK7Z.js.map} +1 -1
- package/dist/admin/{CreatePage-rnuGS1p6.mjs → CreatePage-07P5-Zjt.mjs} +3 -3
- package/dist/admin/{CreatePage-rnuGS1p6.mjs.map → CreatePage-07P5-Zjt.mjs.map} +1 -1
- package/dist/admin/{CreatePage-FylqLa6E.js → CreatePage-f3faA3vG.js} +3 -3
- package/dist/admin/{CreatePage-FylqLa6E.js.map → CreatePage-f3faA3vG.js.map} +1 -1
- package/dist/admin/{CreatePage-BrnwHVcz.mjs → CreatePage-uTwt_c8J.mjs} +6 -6
- package/dist/admin/{CreatePage-BrnwHVcz.mjs.map → CreatePage-uTwt_c8J.mjs.map} +1 -1
- package/dist/admin/{CreateView-v0E-2MUk.mjs → CreateView-87aPv9QV.mjs} +3 -3
- package/dist/admin/{CreateView-v0E-2MUk.mjs.map → CreateView-87aPv9QV.mjs.map} +1 -1
- package/dist/admin/{CreateView-g1_N_BFO.mjs → CreateView-T8hLqvog.mjs} +3 -3
- package/dist/admin/{CreateView-g1_N_BFO.mjs.map → CreateView-T8hLqvog.mjs.map} +1 -1
- package/dist/admin/{CreateView-L-2WWDGY.js → CreateView-UemGfFqI.js} +3 -3
- package/dist/admin/{CreateView-L-2WWDGY.js.map → CreateView-UemGfFqI.js.map} +1 -1
- package/dist/admin/{CreateView-s_woT94q.js → CreateView-o5-hvd4h.js} +3 -3
- package/dist/admin/{CreateView-s_woT94q.js.map → CreateView-o5-hvd4h.js.map} +1 -1
- package/dist/admin/{EditPage-RH6-47fP.mjs → EditPage-F3yH0Fy6.mjs} +6 -6
- package/dist/admin/{EditPage-RH6-47fP.mjs.map → EditPage-F3yH0Fy6.mjs.map} +1 -1
- package/dist/admin/{EditPage-FLtTVd-J.js → EditPage-Ly5MBiuB.js} +5 -5
- package/dist/admin/{EditPage-FLtTVd-J.js.map → EditPage-Ly5MBiuB.js.map} +1 -1
- package/dist/admin/{EditPage-l77sfwOj.js → EditPage-UqMDbMvJ.js} +7 -7
- package/dist/admin/{EditPage-l77sfwOj.js.map → EditPage-UqMDbMvJ.js.map} +1 -1
- package/dist/admin/{EditPage-pZmycDG6.mjs → EditPage-XSz7Wpt8.mjs} +8 -8
- package/dist/admin/{EditPage-pZmycDG6.mjs.map → EditPage-XSz7Wpt8.mjs.map} +1 -1
- package/dist/admin/{EditPage-QD0hqEQx.js → EditPage-YqW1NIMp.js} +15 -28
- package/dist/admin/EditPage-YqW1NIMp.js.map +1 -0
- package/dist/admin/{EditPage-x0JVIh4C.mjs → EditPage-lyFePXWl.mjs} +18 -31
- package/dist/admin/EditPage-lyFePXWl.mjs.map +1 -0
- package/dist/admin/{EditView-0jWi165t.js → EditView-bRFkRKAz.js} +4 -4
- package/dist/admin/{EditView-0jWi165t.js.map → EditView-bRFkRKAz.js.map} +1 -1
- package/dist/admin/{EditView-dEKhCE7v.mjs → EditView-r0lx661I.mjs} +6 -6
- package/dist/admin/{EditView-dEKhCE7v.mjs.map → EditView-r0lx661I.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-urKxemM0.mjs → EditViewPage-f5dHmqdT.mjs} +6 -6
- package/dist/admin/{EditViewPage-urKxemM0.mjs.map → EditViewPage-f5dHmqdT.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-mLGPwfRP.js → EditViewPage-tAsn6QS9.js} +4 -4
- package/dist/admin/{EditViewPage-mLGPwfRP.js.map → EditViewPage-tAsn6QS9.js.map} +1 -1
- package/dist/admin/{EventsTable-BCAvurrX.mjs → EventsTable-2C605_qQ.mjs} +2 -2
- package/dist/admin/{EventsTable-BCAvurrX.mjs.map → EventsTable-2C605_qQ.mjs.map} +1 -1
- package/dist/admin/{EventsTable-y0d489dF.js → EventsTable-4h6LoAp-.js} +2 -2
- package/dist/admin/{EventsTable-y0d489dF.js.map → EventsTable-4h6LoAp-.js.map} +1 -1
- package/dist/admin/{HomePage-jcsulO2V.mjs → HomePage-4FySTCJU.mjs} +3 -3
- package/dist/admin/{HomePage-jcsulO2V.mjs.map → HomePage-4FySTCJU.mjs.map} +1 -1
- package/dist/admin/{HomePage-p-eVAC_O.js → HomePage-UTnZwpp-.js} +36 -28
- package/dist/admin/HomePage-UTnZwpp-.js.map +1 -0
- package/dist/admin/{HomePage-1CH8bE47.js → HomePage-Uuww2J1B.js} +3 -3
- package/dist/admin/{HomePage-1CH8bE47.js.map → HomePage-Uuww2J1B.js.map} +1 -1
- package/dist/admin/{HomePage-hsBKC9UT.mjs → HomePage-ZF3T0k2r.mjs} +27 -19
- package/dist/admin/HomePage-ZF3T0k2r.mjs.map +1 -0
- package/dist/admin/{InstalledPluginsPage-s_PGIc3_.mjs → InstalledPluginsPage-eOXi3oTN.mjs} +4 -4
- package/dist/admin/{InstalledPluginsPage-s_PGIc3_.mjs.map → InstalledPluginsPage-eOXi3oTN.mjs.map} +1 -1
- package/dist/admin/{InstalledPluginsPage-ZIPyDrzh.js → InstalledPluginsPage-o43CGz2w.js} +3 -3
- package/dist/admin/{InstalledPluginsPage-ZIPyDrzh.js.map → InstalledPluginsPage-o43CGz2w.js.map} +1 -1
- package/dist/admin/{Layout-TtAytojj.js → Layout-XxmAreH1.js} +11 -12
- package/dist/admin/Layout-XxmAreH1.js.map +1 -0
- package/dist/admin/{Layout-E5qOsA9X.mjs → Layout-mnn4_IJp.mjs} +8 -9
- package/dist/admin/Layout-mnn4_IJp.mjs.map +1 -0
- package/dist/admin/{ListPage-M4WMxB5d.mjs → ListPage-5g8MtUEB.mjs} +5 -6
- package/dist/admin/ListPage-5g8MtUEB.mjs.map +1 -0
- package/dist/admin/{ListPage-ojfvM5qr.js → ListPage-6Ukzm--I.js} +3 -3
- package/dist/admin/{ListPage-ojfvM5qr.js.map → ListPage-6Ukzm--I.js.map} +1 -1
- package/dist/admin/{ListPage-54QP9CgX.mjs → ListPage-AFDAiR9X.mjs} +7 -7
- package/dist/admin/{ListPage-54QP9CgX.mjs.map → ListPage-AFDAiR9X.mjs.map} +1 -1
- package/dist/admin/{ListPage-_p5xKu6Q.mjs → ListPage-Gj1OS6PX.mjs} +3 -3
- package/dist/admin/{ListPage-_p5xKu6Q.mjs.map → ListPage-Gj1OS6PX.mjs.map} +1 -1
- package/dist/admin/{ListPage-AzfR4Vrk.js → ListPage-NTxNcftS.js} +10 -11
- package/dist/admin/ListPage-NTxNcftS.js.map +1 -0
- package/dist/admin/{ListPage-av7186GD.js → ListPage-Pi_dzfDr.js} +7 -7
- package/dist/admin/{ListPage-av7186GD.js.map → ListPage-Pi_dzfDr.js.map} +1 -1
- package/dist/admin/{ListPage-hhPlIMGc.js → ListPage-URtxfNJ4.js} +4 -5
- package/dist/admin/ListPage-URtxfNJ4.js.map +1 -0
- package/dist/admin/{ListPage-VymLq96p.mjs → ListPage-eNkUD3v_.mjs} +12 -13
- package/dist/admin/ListPage-eNkUD3v_.mjs.map +1 -0
- package/dist/admin/{ListPage-FJ7Z1gS2.js → ListPage-hln8fKzE.js} +7 -7
- package/dist/admin/ListPage-hln8fKzE.js.map +1 -0
- package/dist/admin/{ListPage-DVSiz4k2.mjs → ListPage-kdjzZ2al.mjs} +7 -7
- package/dist/admin/ListPage-kdjzZ2al.mjs.map +1 -0
- package/dist/admin/{ListView-QWjCBmaw.mjs → ListView-FBh2WTHx.mjs} +10 -10
- package/dist/admin/ListView-FBh2WTHx.mjs.map +1 -0
- package/dist/admin/{ListView-MHzoKSAg.js → ListView-f2wVT21J.js} +9 -9
- package/dist/admin/ListView-f2wVT21J.js.map +1 -0
- package/dist/admin/{ListView-WmnatWVx.js → ListView-pYVBJ4lg.js} +8 -8
- package/dist/admin/ListView-pYVBJ4lg.js.map +1 -0
- package/dist/admin/{ListView-lSCZzdzM.mjs → ListView-uwPF62w6.mjs} +9 -9
- package/dist/admin/ListView-uwPF62w6.mjs.map +1 -0
- package/dist/admin/{Login-Qfx7Y8LA.js → Login-3rLFPliB.js} +4 -4
- package/dist/admin/{Login-Qfx7Y8LA.js.map → Login-3rLFPliB.js.map} +1 -1
- package/dist/admin/{Login--ZDAgCsE.mjs → Login-FSNzATl0.mjs} +4 -4
- package/dist/admin/{Login--ZDAgCsE.mjs.map → Login-FSNzATl0.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-QVRUN_dM.js → MagicLinkEE-bccsKKbJ.js} +3 -3
- package/dist/admin/{MagicLinkEE-QVRUN_dM.js.map → MagicLinkEE-bccsKKbJ.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-HT2w-ynq.mjs → MagicLinkEE-czAdOuTH.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-HT2w-ynq.mjs.map → MagicLinkEE-czAdOuTH.mjs.map} +1 -1
- package/dist/admin/{MarketplacePage-e41eJgNp.mjs → MarketplacePage-kNQPkoZK.mjs} +54 -49
- package/dist/admin/MarketplacePage-kNQPkoZK.mjs.map +1 -0
- package/dist/admin/{MarketplacePage-bs_XrVBk.js → MarketplacePage-sSTqINSu.js} +55 -50
- package/dist/admin/MarketplacePage-sSTqINSu.js.map +1 -0
- package/dist/admin/{Ornaments-RhzFP9rf.js → Ornaments-UTssGzOw.js} +8 -8
- package/dist/admin/{Ornaments-RhzFP9rf.js.map → Ornaments-UTssGzOw.js.map} +1 -1
- package/dist/admin/{Ornaments-izqdN6fh.mjs → Ornaments-h_LCCr5P.mjs} +8 -8
- package/dist/admin/{Ornaments-izqdN6fh.mjs.map → Ornaments-h_LCCr5P.mjs.map} +1 -1
- package/dist/admin/{Permissions-IbcPzM2X.js → Permissions-NlSnXUKO.js} +19 -20
- package/dist/admin/Permissions-NlSnXUKO.js.map +1 -0
- package/dist/admin/{Permissions-eyokRb6a.mjs → Permissions-aU1eesjP.mjs} +20 -21
- package/dist/admin/Permissions-aU1eesjP.mjs.map +1 -0
- package/dist/admin/{PrivateRoute-KAM10GGM.js → PrivateRoute-nJgGpBXP.js} +2 -2
- package/dist/admin/{PrivateRoute-KAM10GGM.js.map → PrivateRoute-nJgGpBXP.js.map} +1 -1
- package/dist/admin/{PrivateRoute-wDu6Vo0N.mjs → PrivateRoute-zZ7p1pc9.mjs} +2 -2
- package/dist/admin/{PrivateRoute-wDu6Vo0N.mjs.map → PrivateRoute-zZ7p1pc9.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-jsFPZpKL.mjs → ProfilePage-T2kC_KoM.mjs} +5 -5
- package/dist/admin/{ProfilePage-jsFPZpKL.mjs.map → ProfilePage-T2kC_KoM.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-1ptv647K.js → ProfilePage-jU98pa61.js} +4 -4
- package/dist/admin/{ProfilePage-1ptv647K.js.map → ProfilePage-jU98pa61.js.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-tS_tVSGI.js → PurchaseAuditLogs-GreHFPSR.js} +4 -4
- package/dist/admin/PurchaseAuditLogs-GreHFPSR.js.map +1 -0
- package/dist/admin/{PurchaseAuditLogs-8_4PcW7P.mjs → PurchaseAuditLogs-_1tVWtNF.mjs} +5 -5
- package/dist/admin/PurchaseAuditLogs-_1tVWtNF.mjs.map +1 -0
- package/dist/admin/{PurchaseSingleSignOn-9SV6-fYs.js → PurchaseSingleSignOn-6t4xuNBd.js} +4 -4
- package/dist/admin/PurchaseSingleSignOn-6t4xuNBd.js.map +1 -0
- package/dist/admin/{PurchaseSingleSignOn--gblfVu6.mjs → PurchaseSingleSignOn-VUU-U4wi.mjs} +5 -5
- package/dist/admin/PurchaseSingleSignOn-VUU-U4wi.mjs.map +1 -0
- package/dist/admin/{SSOProviders-JTam8pNP.js → SSOProviders-FZwT7RmU.js} +3 -3
- package/dist/admin/{SSOProviders-JTam8pNP.js.map → SSOProviders-FZwT7RmU.js.map} +1 -1
- package/dist/admin/{SSOProviders-f1OPn1AH.mjs → SSOProviders-GcYDRAyn.mjs} +3 -3
- package/dist/admin/{SSOProviders-f1OPn1AH.mjs.map → SSOProviders-GcYDRAyn.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-9TYXaG64.mjs → SelectRoles--ys30CdN.mjs} +5 -5
- package/dist/admin/{SelectRoles-9TYXaG64.mjs.map → SelectRoles--ys30CdN.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-OEKLwb7S.js → SelectRoles-EdE6yfsj.js} +5 -5
- package/dist/admin/{SelectRoles-OEKLwb7S.js.map → SelectRoles-EdE6yfsj.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-ELEF2pqT.mjs → SingleSignOnPage-Y-brfYQ1.mjs} +8 -8
- package/dist/admin/SingleSignOnPage-Y-brfYQ1.mjs.map +1 -0
- package/dist/admin/{SingleSignOnPage-TFMqxPEF.js → SingleSignOnPage-nv121JbB.js} +6 -6
- package/dist/admin/SingleSignOnPage-nv121JbB.js.map +1 -0
- package/dist/admin/{Table-PQ0O80QL.mjs → Table--He5qeQG.mjs} +6 -7
- package/dist/admin/Table--He5qeQG.mjs.map +1 -0
- package/dist/admin/{Table--gMZz8mZ.js → Table-HXu3Nz4W.js} +6 -7
- package/dist/admin/Table-HXu3Nz4W.js.map +1 -0
- package/dist/admin/{TokenTypeSelect-zx8B_1pv.mjs → TokenTypeSelect-kgKThMAL.mjs} +9 -9
- package/dist/admin/TokenTypeSelect-kgKThMAL.mjs.map +1 -0
- package/dist/admin/{TokenTypeSelect-QB3M2AO_.js → TokenTypeSelect-yY2kwTyO.js} +7 -7
- package/dist/admin/TokenTypeSelect-yY2kwTyO.js.map +1 -0
- package/dist/admin/{UseCasePage-R3vzwRYQ.js → UseCasePage-6_WRtTwv.js} +7 -7
- package/dist/admin/UseCasePage-6_WRtTwv.js.map +1 -0
- package/dist/admin/{UseCasePage-khHikw1F.mjs → UseCasePage-bfP-fDoW.mjs} +8 -8
- package/dist/admin/UseCasePage-bfP-fDoW.mjs.map +1 -0
- package/dist/admin/{admin-DUKhYsmP.mjs → admin-5SXhE_nJ.mjs} +2 -2
- package/dist/admin/{admin-DUKhYsmP.mjs.map → admin-5SXhE_nJ.mjs.map} +1 -1
- package/dist/admin/{apiTokens-dBRuo1wd.mjs → apiTokens-bNRitXGF.mjs} +2 -2
- package/dist/admin/{apiTokens-dBRuo1wd.mjs.map → apiTokens-bNRitXGF.mjs.map} +1 -1
- package/dist/admin/{constants-EH1lNehX.js → constants-qdY4HMAg.js} +5 -6
- package/dist/admin/constants-qdY4HMAg.js.map +1 -0
- package/dist/admin/{constants-O2S8dPXm.mjs → constants-wnw4TGwG.mjs} +5 -6
- package/dist/admin/constants-wnw4TGwG.mjs.map +1 -0
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/{en-qvX6GTOD.mjs → en-D7rooMTs.mjs} +2 -1
- package/dist/admin/{en-qvX6GTOD.mjs.map → en-D7rooMTs.mjs.map} +1 -1
- package/dist/admin/{en-2FB7x9Rq.js → en-zVbLVH-h.js} +2 -1
- package/dist/admin/{en-2FB7x9Rq.js.map → en-zVbLVH-h.js.map} +1 -1
- package/dist/admin/{index-3MYZ88xc.mjs → index-7fPlAzj6.mjs} +50 -54
- package/dist/admin/index-7fPlAzj6.mjs.map +1 -0
- package/dist/admin/{index-Ze-KuF2r.js → index-FJLgZ-Wg.js} +61 -65
- package/dist/admin/index-FJLgZ-Wg.js.map +1 -0
- package/dist/admin/index.js +2 -2
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/{rbac-sYT_mXH0.mjs → rbac-uVd0RAE5.mjs} +10 -10
- package/dist/admin/rbac-uVd0RAE5.mjs.map +1 -0
- package/dist/admin/{rbac-WZsv1761.js → rbac-xgYdpUSq.js} +8 -8
- package/dist/admin/rbac-xgYdpUSq.js.map +1 -0
- package/dist/admin/{selectors-3gRe5pAj.mjs → selectors-AvywwQRm.mjs} +2 -2
- package/dist/admin/{selectors-3gRe5pAj.mjs.map → selectors-AvywwQRm.mjs.map} +1 -1
- package/dist/admin/{selectors-CiTVxP8O.js → selectors-C62Wf5On.js} +2 -2
- package/dist/admin/{selectors-CiTVxP8O.js.map → selectors-C62Wf5On.js.map} +1 -1
- package/dist/admin/src/components/MainNav/NavLink.d.ts +22 -0
- package/dist/admin/src/features/BackButton.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +26 -25
- package/dist/admin/src/pages/Settings/pages/Roles/utils/constants.d.ts +3 -3
- package/dist/admin/test.js +1 -1
- package/dist/admin/test.mjs +2 -2
- package/dist/admin/{transferTokens-OLPKYcY_.mjs → transferTokens-ngan7vz6.mjs} +2 -2
- package/dist/admin/{transferTokens-OLPKYcY_.mjs.map → transferTokens-ngan7vz6.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-dMrStp_i.mjs → useAdminRoles-X4pwDHaW.mjs} +2 -2
- package/dist/admin/{useAdminRoles-dMrStp_i.mjs.map → useAdminRoles-X4pwDHaW.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-K6leAcQd.js → useAdminRoles-yjN2uT_o.js} +2 -2
- package/dist/admin/{useAdminRoles-K6leAcQd.js.map → useAdminRoles-yjN2uT_o.js.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-aTNbD3xK.mjs → useLicenseLimitNotification-T2LoOH4B.mjs} +3 -3
- package/dist/admin/{useLicenseLimitNotification-aTNbD3xK.mjs.map → useLicenseLimitNotification-T2LoOH4B.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-0UWeCY_u.js → useLicenseLimitNotification-wrxezW0C.js} +2 -2
- package/dist/admin/{useLicenseLimitNotification-0UWeCY_u.js.map → useLicenseLimitNotification-wrxezW0C.js.map} +1 -1
- package/dist/admin/{useLicenseLimits-F7K-YWAE.mjs → useLicenseLimits-fKc9uCtd.mjs} +2 -2
- package/dist/admin/{useLicenseLimits-F7K-YWAE.mjs.map → useLicenseLimits-fKc9uCtd.mjs.map} +1 -1
- package/dist/admin/{useWebhooks-7BXPSMHG.mjs → useWebhooks-8VWSFqNg.mjs} +2 -2
- package/dist/admin/{useWebhooks-7BXPSMHG.mjs.map → useWebhooks-8VWSFqNg.mjs.map} +1 -1
- package/dist/admin/{validation-EKBCSsCp.mjs → validation-p2q0MWxi.mjs} +2 -2
- package/dist/admin/{validation-EKBCSsCp.mjs.map → validation-p2q0MWxi.mjs.map} +1 -1
- package/dist/admin/{validation-FXocLGal.js → validation-rsP4iH1U.js} +2 -2
- package/dist/admin/{validation-FXocLGal.js.map → validation-rsP4iH1U.js.map} +1 -1
- package/dist/package.json.d.ts +12 -11
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/package.json +13 -12
- package/dist/admin/AdminSeatInfo-H5eNy3Gq.js.map +0 -1
- package/dist/admin/AdminSeatInfo-jPH1stsB.mjs.map +0 -1
- package/dist/admin/ApplicationInfoPage-QiVVy6LS.mjs.map +0 -1
- package/dist/admin/ApplicationInfoPage-leY1AEgo.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-CHSwnqUb.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-vS7Bwbws.js.map +0 -1
- package/dist/admin/ContentBox-PbS25I_4.mjs.map +0 -1
- package/dist/admin/ContentBox-xqJCP2BC.js.map +0 -1
- package/dist/admin/CreateActionEE-2DKYzbq_.js.map +0 -1
- package/dist/admin/CreateActionEE-TcGdWjIN.mjs.map +0 -1
- package/dist/admin/EditPage-QD0hqEQx.js.map +0 -1
- package/dist/admin/EditPage-x0JVIh4C.mjs.map +0 -1
- package/dist/admin/HomePage-hsBKC9UT.mjs.map +0 -1
- package/dist/admin/HomePage-p-eVAC_O.js.map +0 -1
- package/dist/admin/Layout-E5qOsA9X.mjs.map +0 -1
- package/dist/admin/Layout-TtAytojj.js.map +0 -1
- package/dist/admin/ListPage-AzfR4Vrk.js.map +0 -1
- package/dist/admin/ListPage-DVSiz4k2.mjs.map +0 -1
- package/dist/admin/ListPage-FJ7Z1gS2.js.map +0 -1
- package/dist/admin/ListPage-M4WMxB5d.mjs.map +0 -1
- package/dist/admin/ListPage-VymLq96p.mjs.map +0 -1
- package/dist/admin/ListPage-hhPlIMGc.js.map +0 -1
- package/dist/admin/ListView-MHzoKSAg.js.map +0 -1
- package/dist/admin/ListView-QWjCBmaw.mjs.map +0 -1
- package/dist/admin/ListView-WmnatWVx.js.map +0 -1
- package/dist/admin/ListView-lSCZzdzM.mjs.map +0 -1
- package/dist/admin/MarketplacePage-bs_XrVBk.js.map +0 -1
- package/dist/admin/MarketplacePage-e41eJgNp.mjs.map +0 -1
- package/dist/admin/Permissions-IbcPzM2X.js.map +0 -1
- package/dist/admin/Permissions-eyokRb6a.mjs.map +0 -1
- package/dist/admin/PurchaseAuditLogs-8_4PcW7P.mjs.map +0 -1
- package/dist/admin/PurchaseAuditLogs-tS_tVSGI.js.map +0 -1
- package/dist/admin/PurchaseSingleSignOn--gblfVu6.mjs.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-9SV6-fYs.js.map +0 -1
- package/dist/admin/SingleSignOnPage-ELEF2pqT.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-TFMqxPEF.js.map +0 -1
- package/dist/admin/Table--gMZz8mZ.js.map +0 -1
- package/dist/admin/Table-PQ0O80QL.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-QB3M2AO_.js.map +0 -1
- package/dist/admin/TokenTypeSelect-zx8B_1pv.mjs.map +0 -1
- package/dist/admin/UseCasePage-R3vzwRYQ.js.map +0 -1
- package/dist/admin/UseCasePage-khHikw1F.mjs.map +0 -1
- package/dist/admin/constants-EH1lNehX.js.map +0 -1
- package/dist/admin/constants-O2S8dPXm.mjs.map +0 -1
- package/dist/admin/index-3MYZ88xc.mjs.map +0 -1
- package/dist/admin/index-Ze-KuF2r.js.map +0 -1
- package/dist/admin/rbac-WZsv1761.js.map +0 -1
- package/dist/admin/rbac-sYT_mXH0.mjs.map +0 -1
|
@@ -5,13 +5,13 @@ const React = require('react');
|
|
|
5
5
|
const designSystem = require('@strapi/design-system');
|
|
6
6
|
const reactIntl = require('react-intl');
|
|
7
7
|
const reactRouterDom = require('react-router-dom');
|
|
8
|
-
const rbac = require('./rbac-
|
|
9
|
-
const selectors = require('./selectors-
|
|
8
|
+
const rbac = require('./rbac-xgYdpUSq.js');
|
|
9
|
+
const selectors = require('./selectors-C62Wf5On.js');
|
|
10
10
|
const admin = require('./admin-vlKSOeHB.js');
|
|
11
11
|
const icons = require('@strapi/icons');
|
|
12
12
|
const formik = require('formik');
|
|
13
13
|
const yup = require('yup');
|
|
14
|
-
const index = require('./index-
|
|
14
|
+
const index = require('./index-FJLgZ-Wg.js');
|
|
15
15
|
const useEnterprise = require('./useEnterprise-DUs6BYlP.js');
|
|
16
16
|
const styled = require('styled-components');
|
|
17
17
|
const useWebhooks = require('./useWebhooks-oZ5DKtvz.js');
|
|
@@ -295,10 +295,10 @@ const HeadersInput = () => {
|
|
|
295
295
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
296
296
|
StyledIconButton,
|
|
297
297
|
{
|
|
298
|
-
borderRadius:
|
|
299
|
-
width:
|
|
300
|
-
height:
|
|
301
|
-
padding:
|
|
298
|
+
borderRadius: "3rem",
|
|
299
|
+
width: "2rem",
|
|
300
|
+
height: "2rem",
|
|
301
|
+
padding: "0.4rem",
|
|
302
302
|
alignItems: "center",
|
|
303
303
|
justifyContent: "center",
|
|
304
304
|
disabled: values.headers.length === 1,
|
|
@@ -339,7 +339,7 @@ const HeadersInput = () => {
|
|
|
339
339
|
};
|
|
340
340
|
const StyledIconButton = styled__default.default(designSystem.IconButton)`
|
|
341
341
|
svg {
|
|
342
|
-
width: 0.
|
|
342
|
+
width: 0.8rem;
|
|
343
343
|
rect {
|
|
344
344
|
fill: ${(props) => props.theme.colors.primary600};
|
|
345
345
|
}
|
|
@@ -428,40 +428,27 @@ const TriggerContainer = ({ isPending, onCancel, response }) => {
|
|
|
428
428
|
id: "Settings.webhooks.trigger.cancel",
|
|
429
429
|
defaultMessage: "cancel"
|
|
430
430
|
}) }),
|
|
431
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
431
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Cross, { fill: "neutral400", height: "1.2rem", width: "1.2rem" })
|
|
432
432
|
] }) }) }) })
|
|
433
433
|
] }) });
|
|
434
434
|
};
|
|
435
|
-
const Icon = styled__default.default.svg(
|
|
436
|
-
({ theme, color }) => `
|
|
437
|
-
width: ${12 / 16}rem;
|
|
438
|
-
height: ${12 / 16}rem;
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
${color ? styled.css`
|
|
442
|
-
path {
|
|
443
|
-
fill: ${theme.colors[color]};
|
|
444
|
-
}
|
|
445
|
-
` : ""}
|
|
446
|
-
`
|
|
447
|
-
);
|
|
448
435
|
const Status = ({ isPending, statusCode }) => {
|
|
449
436
|
const { formatMessage } = reactIntl.useIntl();
|
|
450
437
|
if (isPending || !statusCode) {
|
|
451
438
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
|
|
452
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
439
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Loader, { height: "1.2rem", width: "1.2rem" }),
|
|
453
440
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "Settings.webhooks.trigger.pending", defaultMessage: "pending" }) })
|
|
454
441
|
] });
|
|
455
442
|
}
|
|
456
443
|
if (statusCode >= 200 && statusCode < 300) {
|
|
457
444
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
|
|
458
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
445
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Check, { fill: "success700", height: "1.2rem", width: "1.2rem" }),
|
|
459
446
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "Settings.webhooks.trigger.success", defaultMessage: "success" }) })
|
|
460
447
|
] });
|
|
461
448
|
}
|
|
462
449
|
if (statusCode >= 300) {
|
|
463
450
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
|
|
464
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
451
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Cross, { fill: "danger700", height: "1.2rem", width: "1.2rem" }),
|
|
465
452
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { children: [
|
|
466
453
|
formatMessage({ id: "Settings.error", defaultMessage: "error" }),
|
|
467
454
|
" ",
|
|
@@ -483,7 +470,7 @@ const Message = ({ statusCode, message }) => {
|
|
|
483
470
|
}) }) });
|
|
484
471
|
}
|
|
485
472
|
if (statusCode >= 300) {
|
|
486
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { maxWidth:
|
|
473
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { maxWidth: `25rem`, justifyContent: "flex-end", title: message, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, textColor: "neutral600", children: message }) }) });
|
|
487
474
|
}
|
|
488
475
|
return null;
|
|
489
476
|
};
|
|
@@ -500,7 +487,7 @@ const WebhookForm = ({
|
|
|
500
487
|
const [showTriggerResponse, setShowTriggerResponse] = React__namespace.useState(false);
|
|
501
488
|
const EventTable = useEnterprise.useEnterprise(
|
|
502
489
|
EventTableCE,
|
|
503
|
-
async () => (await Promise.resolve().then(() => require('./EventsTable-
|
|
490
|
+
async () => (await Promise.resolve().then(() => require('./EventsTable-4h6LoAp-.js'))).EventsTableEE
|
|
504
491
|
);
|
|
505
492
|
const mapHeaders = (headers) => {
|
|
506
493
|
if (!Object.keys(headers).length) {
|
|
@@ -815,4 +802,4 @@ const EditPage$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty
|
|
|
815
802
|
exports.EditPage = EditPage;
|
|
816
803
|
exports.EditPage$1 = EditPage$1;
|
|
817
804
|
exports.Events = Events;
|
|
818
|
-
//# sourceMappingURL=EditPage-
|
|
805
|
+
//# sourceMappingURL=EditPage-YqW1NIMp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditPage-YqW1NIMp.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/components/Events.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/EventsTable.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx","../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n BaseCheckbox,\n Checkbox,\n FieldLabel,\n Flex,\n RawTable as Table,\n RawTbody as Tbody,\n RawTd as Td,\n RawTh as Th,\n RawThead as Thead,\n RawTr as Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useFormikContext, FieldInputProps } from 'formik';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRootProps {\n children: React.ReactNode;\n}\n\nconst EventsRoot = ({ children }: EventsRootProps) => {\n const { formatMessage } = useIntl();\n\n const label = formatMessage({\n id: 'Settings.webhooks.form.events',\n defaultMessage: 'Events',\n });\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FieldLabel aria-hidden>{label}</FieldLabel>\n <StyledTable aria-label={label}>{children}</StyledTable>\n </Flex>\n );\n};\n\n// TODO check whether we want to move alternating background colour tables to the design system\nconst StyledTable = styled(Table)`\n tbody tr:nth-child(odd) {\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n thead th span {\n color: ${({ theme }) => theme.colors.neutral500};\n }\n\n td,\n th {\n padding-block-start: ${({ theme }) => theme.spaces[3]};\n padding-block-end: ${({ theme }) => theme.spaces[3]};\n width: 10%;\n vertical-align: middle;\n text-align: center;\n }\n\n tbody tr td:first-child {\n /**\n * Add padding to the start of the first column to avoid the checkbox appearing\n * too close to the edge of the table\n */\n padding-inline-start: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EventsHeaders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsHeadersProps {\n getHeaders?: typeof getCEHeaders;\n}\n\nconst getCEHeaders = (): MessageDescriptor[] => {\n const headers = [\n { id: 'Settings.webhooks.events.create', defaultMessage: 'Create' },\n { id: 'Settings.webhooks.events.update', defaultMessage: 'Update' },\n { id: 'app.utils.delete', defaultMessage: 'Delete' },\n { id: 'app.utils.publish', defaultMessage: 'Publish' },\n { id: 'app.utils.unpublish', defaultMessage: 'Unpublish' },\n ];\n\n return headers;\n};\n\nconst EventsHeaders = ({ getHeaders = getCEHeaders }: EventsHeadersProps) => {\n const { formatMessage } = useIntl();\n const headers = getHeaders();\n\n return (\n <Thead>\n <Tr>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.event.select',\n defaultMessage: 'Select event',\n })}\n </VisuallyHidden>\n </Th>\n {headers.map((header) => {\n if (['app.utils.publish', 'app.utils.unpublish'].includes(header?.id ?? '')) {\n return (\n <Th\n key={header.id}\n title={formatMessage({\n id: 'Settings.webhooks.event.publish-tooltip',\n defaultMessage: 'This event only exists for content with draft & publish enabled',\n })}\n >\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n }\n\n return (\n <Th key={header.id}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n })}\n </Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsBody\n * -----------------------------------------------------------------------------------------------*/\ninterface FormikContextValue {\n events: string[];\n}\n\ninterface EventsBodyProps {\n providedEvents?: Record<string, FormikContextValue['events']>;\n}\n\nconst EventsBody = ({ providedEvents }: EventsBodyProps) => {\n const events = providedEvents || getCEEvents();\n const { values, handleChange: onChange } = useFormikContext<FormikContextValue>();\n\n const inputName = 'events';\n const inputValue = values.events;\n const disabledEvents: string[] = [];\n\n const formattedValue = inputValue.reduce<Record<string, string[]>>((acc, curr) => {\n const key = curr.split('.')[0];\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(curr);\n\n return acc;\n }, {});\n\n const handleSelect: React.ChangeEventHandler<HTMLInputElement> = ({\n target: { name, value },\n }) => {\n const set = new Set(inputValue);\n\n if (value) {\n set.add(name);\n } else {\n set.delete(name);\n }\n onChange({ target: { name: inputName, value: Array.from(set) } });\n };\n\n const handleSelectAll: React.ChangeEventHandler<HTMLInputElement> = ({\n target: { name, value },\n }) => {\n const set = new Set(inputValue);\n\n if (value) {\n events[name].forEach((event) => {\n if (!disabledEvents.includes(event)) {\n set.add(event);\n }\n });\n } else {\n events[name].forEach((event) => set.delete(event));\n }\n onChange({ target: { name: inputName, value: Array.from(set) } });\n };\n\n return (\n <Tbody>\n {Object.entries(events).map(([event, value]) => {\n return (\n <EventsRow\n disabledEvents={disabledEvents}\n key={event}\n name={event}\n events={value}\n inputValue={formattedValue[event]}\n handleSelect={handleSelect}\n handleSelectAll={handleSelectAll}\n />\n );\n })}\n </Tbody>\n );\n};\n\nconst getCEEvents = (): Required<Pick<EventsBodyProps, 'providedEvents'>>['providedEvents'] => {\n const entryEvents: FormikContextValue['events'] = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n ];\n\n return {\n entry: entryEvents,\n media: ['media.create', 'media.update', 'media.delete'],\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRowProps {\n disabledEvents?: string[];\n events?: string[];\n inputValue?: string[];\n handleSelect: FieldInputProps<string>['onChange'];\n handleSelectAll: FieldInputProps<string>['onChange'];\n name: string;\n}\n\nconst EventsRow = ({\n disabledEvents = [],\n name,\n events = [],\n inputValue = [],\n handleSelect,\n handleSelectAll,\n}: EventsRowProps) => {\n const { formatMessage } = useIntl();\n const enabledCheckboxes = events.filter((event) => !disabledEvents.includes(event));\n\n const hasSomeCheckboxSelected = inputValue.length > 0;\n const areAllCheckboxesSelected = inputValue.length === enabledCheckboxes.length;\n\n const onChangeAll: React.ChangeEventHandler<HTMLInputElement> = ({ target: { name } }) => {\n const valueToSet = !areAllCheckboxesSelected;\n\n handleSelectAll({\n target: { name, value: valueToSet },\n });\n };\n\n const targetColumns = 5;\n\n return (\n <Tr>\n <Td>\n <Checkbox\n indeterminate={hasSomeCheckboxSelected && !areAllCheckboxesSelected}\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n name={name}\n onChange={onChangeAll}\n value={areAllCheckboxesSelected}\n >\n {removeHyphensAndTitleCase(name)}\n </Checkbox>\n </Td>\n\n {events.map((event) => {\n return (\n <Td key={event}>\n <BaseCheckbox\n disabled={disabledEvents.includes(event)}\n aria-label={event}\n name={event}\n value={inputValue.includes(event)}\n onValueChange={(value) => handleSelect({ target: { name: event, value } })}\n />\n </Td>\n );\n })}\n {events.length < targetColumns && <Td colSpan={targetColumns - events.length} />}\n </Tr>\n );\n};\n\n/**\n * Converts a string to title case and removes hyphens.\n */\nconst removeHyphensAndTitleCase = (str: string): string =>\n str\n .replace(/-/g, ' ')\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n\nconst Events = { Root: EventsRoot, Headers: EventsHeaders, Body: EventsBody, Row: EventsRow };\n\nexport { Events };\nexport type { EventsRowProps, EventsHeadersProps, EventsRootProps, EventsBodyProps };\n","import { Events } from './Events';\n\nconst EventTableCE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n </Events.Root>\n );\n};\n\nexport { EventTableCE };\n","import * as React from 'react';\n\nimport {\n Box,\n FieldLabel,\n Flex,\n Grid,\n GridItem,\n TextButton,\n TextInput,\n ComboboxOption,\n CreatableCombobox,\n ComboboxProps,\n IconButton,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { Field, FieldArray, FieldInputProps, useFormikContext } from 'formik';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormikContext {\n headers: Array<{ key: HTTPHeaders; value: string }>;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n const { values, errors } = useFormikContext<FormikContext>();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FieldLabel>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </FieldLabel>\n <Box padding={8} background=\"neutral100\" hasRadius>\n <FieldArray\n validateOnChange={false}\n name=\"headers\"\n render={({ push, remove }) => (\n <Grid gap={4}>\n {values.headers.map((header, index) => {\n const formikError = errors.headers?.[index];\n\n const comboboxError = typeof formikError === 'object' ? formikError.key : undefined;\n const textInputError =\n typeof formikError === 'object' ? formikError.value : undefined;\n\n return (\n <React.Fragment key={`${index}.${header.key}`}>\n <GridItem col={6}>\n <Field\n as={HeaderCombobox}\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n error={comboboxError}\n />\n </GridItem>\n <GridItem col={6}>\n <Flex alignItems=\"flex-end\">\n <Box style={{ flex: 1 }}>\n <Field\n as={TextInput}\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n error={textInputError}\n />\n </Box>\n <Flex\n paddingLeft={2}\n style={{ alignSelf: 'center' }}\n paddingTop={textInputError ? 0 : 5}\n >\n <StyledIconButton\n borderRadius=\"3rem\"\n width=\"2rem\"\n height=\"2rem\"\n padding=\"0.4rem\"\n alignItems=\"center\"\n justifyContent=\"center\"\n disabled={values.headers.length === 1}\n onClick={() => remove(index)}\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n >\n <Minus />\n </StyledIconButton>\n </Flex>\n </Flex>\n </GridItem>\n </React.Fragment>\n );\n })}\n <GridItem col={12}>\n <TextButton\n type=\"button\"\n onClick={() => {\n push({ key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </TextButton>\n </GridItem>\n </Grid>\n )}\n />\n </Box>\n </Flex>\n );\n};\n\nconst StyledIconButton = styled(IconButton)`\n svg {\n width: 0.8rem;\n rect {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps\n extends FieldInputProps<string>,\n Required<Pick<ComboboxProps, 'label' | 'error'>> {}\n\nconst HeaderCombobox = ({ name, onChange, value, ...restProps }: HeaderComboboxProps) => {\n const {\n values: { headers },\n } = useFormikContext<FormikContext>();\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n onChange({ target: { name, value } });\n };\n\n const handleCreateOption = (value: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n handleChange(value);\n };\n\n return (\n <CreatableCombobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n value={value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </CreatableCombobox>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n","import { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Check, Cross, Loader } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled, { DefaultTheme, css } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * TriggerContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TriggerContainerProps extends Pick<StatusProps, 'isPending'> {\n onCancel: () => void;\n response?: {\n statusCode: number;\n message?: string;\n };\n}\n\nconst TriggerContainer = ({ isPending, onCancel, response }: TriggerContainerProps) => {\n const { statusCode, message } = response ?? {};\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={5} shadow=\"filterShadow\" hasRadius>\n <Grid gap={4} style={{ alignItems: 'center' }}>\n <GridItem col={3}>\n <Typography>\n {formatMessage({\n id: 'Settings.webhooks.trigger.test',\n defaultMessage: 'Test-trigger',\n })}\n </Typography>\n </GridItem>\n <GridItem col={3}>\n <Status isPending={isPending} statusCode={statusCode} />\n </GridItem>\n <GridItem col={6}>\n {!isPending ? (\n <Message statusCode={statusCode} message={message} />\n ) : (\n <Flex justifyContent=\"flex-end\">\n <button onClick={onCancel} type=\"button\">\n <Flex gap={2} alignItems=\"center\">\n <Typography textColor=\"neutral400\">\n {formatMessage({\n id: 'Settings.webhooks.trigger.cancel',\n defaultMessage: 'cancel',\n })}\n </Typography>\n <Cross fill=\"neutral400\" height=\"1.2rem\" width=\"1.2rem\" />\n </Flex>\n </button>\n </Flex>\n )}\n </GridItem>\n </Grid>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StatusProps {\n isPending: boolean;\n statusCode?: number;\n}\n\nconst Status = ({ isPending, statusCode }: StatusProps) => {\n const { formatMessage } = useIntl();\n\n if (isPending || !statusCode) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Loader height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.pending', defaultMessage: 'pending' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Check fill=\"success700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.success', defaultMessage: 'success' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Cross fill=\"danger700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.error', defaultMessage: 'error' })} {statusCode}\n </Typography>\n </Flex>\n );\n }\n\n return null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Message\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MessageProps {\n statusCode?: number;\n message?: string;\n}\n\nconst Message = ({ statusCode, message }: MessageProps) => {\n const { formatMessage } = useIntl();\n\n if (!statusCode) {\n return null;\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Typography textColor=\"neutral600\" ellipsis>\n {formatMessage({\n id: 'Settings.webhooks.trigger.success.label',\n defaultMessage: 'Trigger succeeded',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Flex maxWidth={`25rem`} justifyContent=\"flex-end\" title={message}>\n <Typography ellipsis textColor=\"neutral600\">\n {message}\n </Typography>\n </Flex>\n </Flex>\n );\n }\n\n return null;\n};\n\nexport { TriggerContainer };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n TextInput,\n} from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { Field, Form, FormikHelpers, FormikProvider, useFormik } from 'formik';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n formik: FormikHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n const formik = useFormik({\n initialValues: {\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n },\n async onSubmit(values, formik) {\n await handleSubmit(values, formik);\n\n formik.resetForm({ values });\n },\n validationSchema: makeWebhookValidationSchema({ formatMessage }),\n validateOnChange: false,\n validateOnBlur: false,\n });\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <FormikProvider value={formik}>\n <Form>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n size=\"L\"\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n disabled={!formik.dirty}\n loading={formik.isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={<BackButton />}\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid gap={6}>\n <GridItem col={6}>\n <Field\n as={TextInput}\n name=\"name\"\n error={formik.errors.name}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n required\n />\n </GridItem>\n <GridItem col={12}>\n <Field\n as={TextInput}\n name=\"url\"\n error={formik.errors.url}\n label={formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n })}\n required\n />\n </GridItem>\n </Grid>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </Form>\n </FormikProvider>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup.string().required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n ),\n value: yup.string().required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n ),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { Modules } from '@strapi/types';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit = async (\n data: WebhookFormValues,\n formik: FormikHelpers<WebhookFormValues>\n ) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(res.data.id, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["useIntl","Flex","jsx","FieldLabel","styled","Table","Thead","jsxs","Tr","Th","VisuallyHidden","Typography","useFormikContext","Tbody","name","Td","Checkbox","BaseCheckbox","Box","FieldArray","Grid","React","GridItem","Field","TextInput","Minus","TextButton","Plus","IconButton","value","CreatableCombobox","ComboboxOption","Cross","Loader","Check","useEnterprise","formik","useFormik","FormikProvider","Form","HeaderLayout","Button","Publish","BackButton","ContentLayout","yup","useMatch","useNavigate","useNotification","useAPIErrorHandler","useWebhooks","isBaseQueryError","Page","Main","useTypedSelector","selectAdminPermissions"],"mappings":"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"}
|
|
@@ -3,16 +3,16 @@ import * as React from 'react';
|
|
|
3
3
|
import { RawTable, Flex, FieldLabel, RawThead, RawTr, RawTh, VisuallyHidden, Typography, RawTbody, RawTd, Checkbox, BaseCheckbox, IconButton, Box, Grid, GridItem, TextInput, TextButton, CreatableCombobox, ComboboxOption, HeaderLayout, Button, ContentLayout, Main } from '@strapi/design-system';
|
|
4
4
|
import { useIntl } from 'react-intl';
|
|
5
5
|
import { useMatch, useNavigate } from 'react-router-dom';
|
|
6
|
-
import { b as useTypedSelector, P as Page, u as useNotification, f as useAPIErrorHandler } from './rbac-
|
|
7
|
-
import { s as selectAdminPermissions } from './selectors-
|
|
8
|
-
import { i as isBaseQueryError } from './admin-
|
|
6
|
+
import { b as useTypedSelector, P as Page, u as useNotification, f as useAPIErrorHandler } from './rbac-uVd0RAE5.mjs';
|
|
7
|
+
import { s as selectAdminPermissions } from './selectors-AvywwQRm.mjs';
|
|
8
|
+
import { i as isBaseQueryError } from './admin-5SXhE_nJ.mjs';
|
|
9
9
|
import { Minus, Plus, Cross, Loader, Check, Play } from '@strapi/icons';
|
|
10
10
|
import { useFormikContext, FieldArray, Field, useFormik, FormikProvider, Form } from 'formik';
|
|
11
11
|
import * as yup from 'yup';
|
|
12
|
-
import { B as BackButton } from './index-
|
|
12
|
+
import { B as BackButton } from './index-7fPlAzj6.mjs';
|
|
13
13
|
import { u as useEnterprise } from './useEnterprise-jpsYZWzn.mjs';
|
|
14
|
-
import styled
|
|
15
|
-
import { u as useWebhooks } from './useWebhooks-
|
|
14
|
+
import styled from 'styled-components';
|
|
15
|
+
import { u as useWebhooks } from './useWebhooks-8VWSFqNg.mjs';
|
|
16
16
|
|
|
17
17
|
const EventsRoot = ({ children }) => {
|
|
18
18
|
const { formatMessage } = useIntl();
|
|
@@ -269,10 +269,10 @@ const HeadersInput = () => {
|
|
|
269
269
|
children: /* @__PURE__ */ jsx(
|
|
270
270
|
StyledIconButton,
|
|
271
271
|
{
|
|
272
|
-
borderRadius:
|
|
273
|
-
width:
|
|
274
|
-
height:
|
|
275
|
-
padding:
|
|
272
|
+
borderRadius: "3rem",
|
|
273
|
+
width: "2rem",
|
|
274
|
+
height: "2rem",
|
|
275
|
+
padding: "0.4rem",
|
|
276
276
|
alignItems: "center",
|
|
277
277
|
justifyContent: "center",
|
|
278
278
|
disabled: values.headers.length === 1,
|
|
@@ -313,7 +313,7 @@ const HeadersInput = () => {
|
|
|
313
313
|
};
|
|
314
314
|
const StyledIconButton = styled(IconButton)`
|
|
315
315
|
svg {
|
|
316
|
-
width: 0.
|
|
316
|
+
width: 0.8rem;
|
|
317
317
|
rect {
|
|
318
318
|
fill: ${(props) => props.theme.colors.primary600};
|
|
319
319
|
}
|
|
@@ -402,40 +402,27 @@ const TriggerContainer = ({ isPending, onCancel, response }) => {
|
|
|
402
402
|
id: "Settings.webhooks.trigger.cancel",
|
|
403
403
|
defaultMessage: "cancel"
|
|
404
404
|
}) }),
|
|
405
|
-
/* @__PURE__ */ jsx(
|
|
405
|
+
/* @__PURE__ */ jsx(Cross, { fill: "neutral400", height: "1.2rem", width: "1.2rem" })
|
|
406
406
|
] }) }) }) })
|
|
407
407
|
] }) });
|
|
408
408
|
};
|
|
409
|
-
const Icon = styled.svg(
|
|
410
|
-
({ theme, color }) => `
|
|
411
|
-
width: ${12 / 16}rem;
|
|
412
|
-
height: ${12 / 16}rem;
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
${color ? css`
|
|
416
|
-
path {
|
|
417
|
-
fill: ${theme.colors[color]};
|
|
418
|
-
}
|
|
419
|
-
` : ""}
|
|
420
|
-
`
|
|
421
|
-
);
|
|
422
409
|
const Status = ({ isPending, statusCode }) => {
|
|
423
410
|
const { formatMessage } = useIntl();
|
|
424
411
|
if (isPending || !statusCode) {
|
|
425
412
|
return /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", children: [
|
|
426
|
-
/* @__PURE__ */ jsx(
|
|
413
|
+
/* @__PURE__ */ jsx(Loader, { height: "1.2rem", width: "1.2rem" }),
|
|
427
414
|
/* @__PURE__ */ jsx(Typography, { children: formatMessage({ id: "Settings.webhooks.trigger.pending", defaultMessage: "pending" }) })
|
|
428
415
|
] });
|
|
429
416
|
}
|
|
430
417
|
if (statusCode >= 200 && statusCode < 300) {
|
|
431
418
|
return /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", children: [
|
|
432
|
-
/* @__PURE__ */ jsx(
|
|
419
|
+
/* @__PURE__ */ jsx(Check, { fill: "success700", height: "1.2rem", width: "1.2rem" }),
|
|
433
420
|
/* @__PURE__ */ jsx(Typography, { children: formatMessage({ id: "Settings.webhooks.trigger.success", defaultMessage: "success" }) })
|
|
434
421
|
] });
|
|
435
422
|
}
|
|
436
423
|
if (statusCode >= 300) {
|
|
437
424
|
return /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", children: [
|
|
438
|
-
/* @__PURE__ */ jsx(
|
|
425
|
+
/* @__PURE__ */ jsx(Cross, { fill: "danger700", height: "1.2rem", width: "1.2rem" }),
|
|
439
426
|
/* @__PURE__ */ jsxs(Typography, { children: [
|
|
440
427
|
formatMessage({ id: "Settings.error", defaultMessage: "error" }),
|
|
441
428
|
" ",
|
|
@@ -457,7 +444,7 @@ const Message = ({ statusCode, message }) => {
|
|
|
457
444
|
}) }) });
|
|
458
445
|
}
|
|
459
446
|
if (statusCode >= 300) {
|
|
460
|
-
return /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsx(Flex, { maxWidth:
|
|
447
|
+
return /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsx(Flex, { maxWidth: `25rem`, justifyContent: "flex-end", title: message, children: /* @__PURE__ */ jsx(Typography, { ellipsis: true, textColor: "neutral600", children: message }) }) });
|
|
461
448
|
}
|
|
462
449
|
return null;
|
|
463
450
|
};
|
|
@@ -474,7 +461,7 @@ const WebhookForm = ({
|
|
|
474
461
|
const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);
|
|
475
462
|
const EventTable = useEnterprise(
|
|
476
463
|
EventTableCE,
|
|
477
|
-
async () => (await import('./EventsTable-
|
|
464
|
+
async () => (await import('./EventsTable-2C605_qQ.mjs')).EventsTableEE
|
|
478
465
|
);
|
|
479
466
|
const mapHeaders = (headers) => {
|
|
480
467
|
if (!Object.keys(headers).length) {
|
|
@@ -787,4 +774,4 @@ const EditPage$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty
|
|
|
787
774
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
788
775
|
|
|
789
776
|
export { EditPage as E, Events as a, EditPage$1 as b };
|
|
790
|
-
//# sourceMappingURL=EditPage-
|
|
777
|
+
//# sourceMappingURL=EditPage-lyFePXWl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditPage-lyFePXWl.mjs","sources":["../../admin/src/pages/Settings/pages/Webhooks/components/Events.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/EventsTable.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.tsx","../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx","../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n BaseCheckbox,\n Checkbox,\n FieldLabel,\n Flex,\n RawTable as Table,\n RawTbody as Tbody,\n RawTd as Td,\n RawTh as Th,\n RawThead as Thead,\n RawTr as Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useFormikContext, FieldInputProps } from 'formik';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRootProps {\n children: React.ReactNode;\n}\n\nconst EventsRoot = ({ children }: EventsRootProps) => {\n const { formatMessage } = useIntl();\n\n const label = formatMessage({\n id: 'Settings.webhooks.form.events',\n defaultMessage: 'Events',\n });\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FieldLabel aria-hidden>{label}</FieldLabel>\n <StyledTable aria-label={label}>{children}</StyledTable>\n </Flex>\n );\n};\n\n// TODO check whether we want to move alternating background colour tables to the design system\nconst StyledTable = styled(Table)`\n tbody tr:nth-child(odd) {\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n thead th span {\n color: ${({ theme }) => theme.colors.neutral500};\n }\n\n td,\n th {\n padding-block-start: ${({ theme }) => theme.spaces[3]};\n padding-block-end: ${({ theme }) => theme.spaces[3]};\n width: 10%;\n vertical-align: middle;\n text-align: center;\n }\n\n tbody tr td:first-child {\n /**\n * Add padding to the start of the first column to avoid the checkbox appearing\n * too close to the edge of the table\n */\n padding-inline-start: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EventsHeaders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsHeadersProps {\n getHeaders?: typeof getCEHeaders;\n}\n\nconst getCEHeaders = (): MessageDescriptor[] => {\n const headers = [\n { id: 'Settings.webhooks.events.create', defaultMessage: 'Create' },\n { id: 'Settings.webhooks.events.update', defaultMessage: 'Update' },\n { id: 'app.utils.delete', defaultMessage: 'Delete' },\n { id: 'app.utils.publish', defaultMessage: 'Publish' },\n { id: 'app.utils.unpublish', defaultMessage: 'Unpublish' },\n ];\n\n return headers;\n};\n\nconst EventsHeaders = ({ getHeaders = getCEHeaders }: EventsHeadersProps) => {\n const { formatMessage } = useIntl();\n const headers = getHeaders();\n\n return (\n <Thead>\n <Tr>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.event.select',\n defaultMessage: 'Select event',\n })}\n </VisuallyHidden>\n </Th>\n {headers.map((header) => {\n if (['app.utils.publish', 'app.utils.unpublish'].includes(header?.id ?? '')) {\n return (\n <Th\n key={header.id}\n title={formatMessage({\n id: 'Settings.webhooks.event.publish-tooltip',\n defaultMessage: 'This event only exists for content with draft & publish enabled',\n })}\n >\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n }\n\n return (\n <Th key={header.id}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage(header)}\n </Typography>\n </Th>\n );\n })}\n </Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsBody\n * -----------------------------------------------------------------------------------------------*/\ninterface FormikContextValue {\n events: string[];\n}\n\ninterface EventsBodyProps {\n providedEvents?: Record<string, FormikContextValue['events']>;\n}\n\nconst EventsBody = ({ providedEvents }: EventsBodyProps) => {\n const events = providedEvents || getCEEvents();\n const { values, handleChange: onChange } = useFormikContext<FormikContextValue>();\n\n const inputName = 'events';\n const inputValue = values.events;\n const disabledEvents: string[] = [];\n\n const formattedValue = inputValue.reduce<Record<string, string[]>>((acc, curr) => {\n const key = curr.split('.')[0];\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(curr);\n\n return acc;\n }, {});\n\n const handleSelect: React.ChangeEventHandler<HTMLInputElement> = ({\n target: { name, value },\n }) => {\n const set = new Set(inputValue);\n\n if (value) {\n set.add(name);\n } else {\n set.delete(name);\n }\n onChange({ target: { name: inputName, value: Array.from(set) } });\n };\n\n const handleSelectAll: React.ChangeEventHandler<HTMLInputElement> = ({\n target: { name, value },\n }) => {\n const set = new Set(inputValue);\n\n if (value) {\n events[name].forEach((event) => {\n if (!disabledEvents.includes(event)) {\n set.add(event);\n }\n });\n } else {\n events[name].forEach((event) => set.delete(event));\n }\n onChange({ target: { name: inputName, value: Array.from(set) } });\n };\n\n return (\n <Tbody>\n {Object.entries(events).map(([event, value]) => {\n return (\n <EventsRow\n disabledEvents={disabledEvents}\n key={event}\n name={event}\n events={value}\n inputValue={formattedValue[event]}\n handleSelect={handleSelect}\n handleSelectAll={handleSelectAll}\n />\n );\n })}\n </Tbody>\n );\n};\n\nconst getCEEvents = (): Required<Pick<EventsBodyProps, 'providedEvents'>>['providedEvents'] => {\n const entryEvents: FormikContextValue['events'] = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n ];\n\n return {\n entry: entryEvents,\n media: ['media.create', 'media.update', 'media.delete'],\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EventsRow\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EventsRowProps {\n disabledEvents?: string[];\n events?: string[];\n inputValue?: string[];\n handleSelect: FieldInputProps<string>['onChange'];\n handleSelectAll: FieldInputProps<string>['onChange'];\n name: string;\n}\n\nconst EventsRow = ({\n disabledEvents = [],\n name,\n events = [],\n inputValue = [],\n handleSelect,\n handleSelectAll,\n}: EventsRowProps) => {\n const { formatMessage } = useIntl();\n const enabledCheckboxes = events.filter((event) => !disabledEvents.includes(event));\n\n const hasSomeCheckboxSelected = inputValue.length > 0;\n const areAllCheckboxesSelected = inputValue.length === enabledCheckboxes.length;\n\n const onChangeAll: React.ChangeEventHandler<HTMLInputElement> = ({ target: { name } }) => {\n const valueToSet = !areAllCheckboxesSelected;\n\n handleSelectAll({\n target: { name, value: valueToSet },\n });\n };\n\n const targetColumns = 5;\n\n return (\n <Tr>\n <Td>\n <Checkbox\n indeterminate={hasSomeCheckboxSelected && !areAllCheckboxesSelected}\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n name={name}\n onChange={onChangeAll}\n value={areAllCheckboxesSelected}\n >\n {removeHyphensAndTitleCase(name)}\n </Checkbox>\n </Td>\n\n {events.map((event) => {\n return (\n <Td key={event}>\n <BaseCheckbox\n disabled={disabledEvents.includes(event)}\n aria-label={event}\n name={event}\n value={inputValue.includes(event)}\n onValueChange={(value) => handleSelect({ target: { name: event, value } })}\n />\n </Td>\n );\n })}\n {events.length < targetColumns && <Td colSpan={targetColumns - events.length} />}\n </Tr>\n );\n};\n\n/**\n * Converts a string to title case and removes hyphens.\n */\nconst removeHyphensAndTitleCase = (str: string): string =>\n str\n .replace(/-/g, ' ')\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n\nconst Events = { Root: EventsRoot, Headers: EventsHeaders, Body: EventsBody, Row: EventsRow };\n\nexport { Events };\nexport type { EventsRowProps, EventsHeadersProps, EventsRootProps, EventsBodyProps };\n","import { Events } from './Events';\n\nconst EventTableCE = () => {\n return (\n <Events.Root>\n <Events.Headers />\n <Events.Body />\n </Events.Root>\n );\n};\n\nexport { EventTableCE };\n","import * as React from 'react';\n\nimport {\n Box,\n FieldLabel,\n Flex,\n Grid,\n GridItem,\n TextButton,\n TextInput,\n ComboboxOption,\n CreatableCombobox,\n ComboboxProps,\n IconButton,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { Field, FieldArray, FieldInputProps, useFormikContext } from 'formik';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormikContext {\n headers: Array<{ key: HTTPHeaders; value: string }>;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n const { values, errors } = useFormikContext<FormikContext>();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FieldLabel>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </FieldLabel>\n <Box padding={8} background=\"neutral100\" hasRadius>\n <FieldArray\n validateOnChange={false}\n name=\"headers\"\n render={({ push, remove }) => (\n <Grid gap={4}>\n {values.headers.map((header, index) => {\n const formikError = errors.headers?.[index];\n\n const comboboxError = typeof formikError === 'object' ? formikError.key : undefined;\n const textInputError =\n typeof formikError === 'object' ? formikError.value : undefined;\n\n return (\n <React.Fragment key={`${index}.${header.key}`}>\n <GridItem col={6}>\n <Field\n as={HeaderCombobox}\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n error={comboboxError}\n />\n </GridItem>\n <GridItem col={6}>\n <Flex alignItems=\"flex-end\">\n <Box style={{ flex: 1 }}>\n <Field\n as={TextInput}\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n error={textInputError}\n />\n </Box>\n <Flex\n paddingLeft={2}\n style={{ alignSelf: 'center' }}\n paddingTop={textInputError ? 0 : 5}\n >\n <StyledIconButton\n borderRadius=\"3rem\"\n width=\"2rem\"\n height=\"2rem\"\n padding=\"0.4rem\"\n alignItems=\"center\"\n justifyContent=\"center\"\n disabled={values.headers.length === 1}\n onClick={() => remove(index)}\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n >\n <Minus />\n </StyledIconButton>\n </Flex>\n </Flex>\n </GridItem>\n </React.Fragment>\n );\n })}\n <GridItem col={12}>\n <TextButton\n type=\"button\"\n onClick={() => {\n push({ key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </TextButton>\n </GridItem>\n </Grid>\n )}\n />\n </Box>\n </Flex>\n );\n};\n\nconst StyledIconButton = styled(IconButton)`\n svg {\n width: 0.8rem;\n rect {\n fill: ${(props) => props.theme.colors.primary600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps\n extends FieldInputProps<string>,\n Required<Pick<ComboboxProps, 'label' | 'error'>> {}\n\nconst HeaderCombobox = ({ name, onChange, value, ...restProps }: HeaderComboboxProps) => {\n const {\n values: { headers },\n } = useFormikContext<FormikContext>();\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n onChange({ target: { name, value } });\n };\n\n const handleCreateOption = (value: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n handleChange(value);\n };\n\n return (\n <CreatableCombobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n value={value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </CreatableCombobox>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n","import { Box, Flex, Grid, GridItem, Typography } from '@strapi/design-system';\nimport { Check, Cross, Loader } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled, { DefaultTheme, css } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * TriggerContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TriggerContainerProps extends Pick<StatusProps, 'isPending'> {\n onCancel: () => void;\n response?: {\n statusCode: number;\n message?: string;\n };\n}\n\nconst TriggerContainer = ({ isPending, onCancel, response }: TriggerContainerProps) => {\n const { statusCode, message } = response ?? {};\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={5} shadow=\"filterShadow\" hasRadius>\n <Grid gap={4} style={{ alignItems: 'center' }}>\n <GridItem col={3}>\n <Typography>\n {formatMessage({\n id: 'Settings.webhooks.trigger.test',\n defaultMessage: 'Test-trigger',\n })}\n </Typography>\n </GridItem>\n <GridItem col={3}>\n <Status isPending={isPending} statusCode={statusCode} />\n </GridItem>\n <GridItem col={6}>\n {!isPending ? (\n <Message statusCode={statusCode} message={message} />\n ) : (\n <Flex justifyContent=\"flex-end\">\n <button onClick={onCancel} type=\"button\">\n <Flex gap={2} alignItems=\"center\">\n <Typography textColor=\"neutral400\">\n {formatMessage({\n id: 'Settings.webhooks.trigger.cancel',\n defaultMessage: 'cancel',\n })}\n </Typography>\n <Cross fill=\"neutral400\" height=\"1.2rem\" width=\"1.2rem\" />\n </Flex>\n </button>\n </Flex>\n )}\n </GridItem>\n </Grid>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StatusProps {\n isPending: boolean;\n statusCode?: number;\n}\n\nconst Status = ({ isPending, statusCode }: StatusProps) => {\n const { formatMessage } = useIntl();\n\n if (isPending || !statusCode) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Loader height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.pending', defaultMessage: 'pending' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Check fill=\"success700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.webhooks.trigger.success', defaultMessage: 'success' })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex gap={2} alignItems=\"center\">\n <Cross fill=\"danger700\" height=\"1.2rem\" width=\"1.2rem\" />\n <Typography>\n {formatMessage({ id: 'Settings.error', defaultMessage: 'error' })} {statusCode}\n </Typography>\n </Flex>\n );\n }\n\n return null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Message\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MessageProps {\n statusCode?: number;\n message?: string;\n}\n\nconst Message = ({ statusCode, message }: MessageProps) => {\n const { formatMessage } = useIntl();\n\n if (!statusCode) {\n return null;\n }\n\n if (statusCode >= 200 && statusCode < 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Typography textColor=\"neutral600\" ellipsis>\n {formatMessage({\n id: 'Settings.webhooks.trigger.success.label',\n defaultMessage: 'Trigger succeeded',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (statusCode >= 300) {\n return (\n <Flex justifyContent=\"flex-end\">\n <Flex maxWidth={`25rem`} justifyContent=\"flex-end\" title={message}>\n <Typography ellipsis textColor=\"neutral600\">\n {message}\n </Typography>\n </Flex>\n </Flex>\n );\n }\n\n return null;\n};\n\nexport { TriggerContainer };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n TextInput,\n} from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { Field, Form, FormikHelpers, FormikProvider, useFormik } from 'formik';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n formik: FormikHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n const formik = useFormik({\n initialValues: {\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n },\n async onSubmit(values, formik) {\n await handleSubmit(values, formik);\n\n formik.resetForm({ values });\n },\n validationSchema: makeWebhookValidationSchema({ formatMessage }),\n validateOnChange: false,\n validateOnBlur: false,\n });\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <FormikProvider value={formik}>\n <Form>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n size=\"L\"\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n disabled={!formik.dirty}\n loading={formik.isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={<BackButton />}\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid gap={6}>\n <GridItem col={6}>\n <Field\n as={TextInput}\n name=\"name\"\n error={formik.errors.name}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n required\n />\n </GridItem>\n <GridItem col={12}>\n <Field\n as={TextInput}\n name=\"url\"\n error={formik.errors.url}\n label={formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n })}\n required\n />\n </GridItem>\n </Grid>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </Form>\n </FormikProvider>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup.string().required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n ),\n value: yup.string().required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n ),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { Modules } from '@strapi/types';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit = async (\n data: WebhookFormValues,\n formik: FormikHelpers<WebhookFormValues>\n ) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(res.data.id, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["Table","Thead","Tr","Th","Tbody","name","Td","value","formik","Publish"],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ const formik = require('formik');
|
|
|
9
9
|
const reactIntl = require('react-intl');
|
|
10
10
|
const reactRouterDom = require('react-router-dom');
|
|
11
11
|
const yup = require('yup');
|
|
12
|
-
const index = require('./index-
|
|
13
|
-
const rbac = require('./rbac-
|
|
12
|
+
const index = require('./index-FJLgZ-Wg.js');
|
|
13
|
+
const rbac = require('./rbac-xgYdpUSq.js');
|
|
14
14
|
const transferTokens = require('./transferTokens-5qQjIKFd.js');
|
|
15
15
|
const admin = require('./admin-vlKSOeHB.js');
|
|
16
16
|
const constants = require('./constants-8PhEUZTR.js');
|
|
17
|
-
const TokenTypeSelect = require('./TokenTypeSelect-
|
|
17
|
+
const TokenTypeSelect = require('./TokenTypeSelect-yY2kwTyO.js');
|
|
18
18
|
|
|
19
19
|
function _interopNamespace(e) {
|
|
20
20
|
if (e && e.__esModule) return e;
|
|
@@ -355,4 +355,4 @@ const FormTransferTokenContainer = ({
|
|
|
355
355
|
|
|
356
356
|
exports.EditView = EditView;
|
|
357
357
|
exports.ProtectedEditView = ProtectedEditView;
|
|
358
|
-
//# sourceMappingURL=EditView-
|
|
358
|
+
//# sourceMappingURL=EditView-bRFkRKAz.js.map
|