@strapi/admin 4.23.1 → 4.24.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/dist/_chunks/{AdminSeatInfo-ke9x9K70.mjs → AdminSeatInfo-baht__p4.mjs} +3 -3
- package/dist/_chunks/{AdminSeatInfo-ke9x9K70.mjs.map → AdminSeatInfo-baht__p4.mjs.map} +1 -1
- package/dist/_chunks/{AdminSeatInfo-rwTsXtSq.js → AdminSeatInfo-qX-0CQjt.js} +3 -3
- package/dist/_chunks/{AdminSeatInfo-rwTsXtSq.js.map → AdminSeatInfo-qX-0CQjt.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-eCrm0itM.mjs → AuthenticatedApp-1bvzr1Q5.mjs} +20 -20
- package/dist/_chunks/{AuthenticatedApp-eCrm0itM.mjs.map → AuthenticatedApp-1bvzr1Q5.mjs.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-OQ6G5b3W.js → AuthenticatedApp-Y9iMz8Vz.js} +20 -20
- package/dist/_chunks/{AuthenticatedApp-OQ6G5b3W.js.map → AuthenticatedApp-Y9iMz8Vz.js.map} +1 -1
- package/dist/_chunks/{CreateActionEE-C2lPBjhs.mjs → CreateActionEE-BtHYBzUF.mjs} +2 -2
- package/dist/_chunks/{CreateActionEE-C2lPBjhs.mjs.map → CreateActionEE-BtHYBzUF.mjs.map} +1 -1
- package/dist/_chunks/{CreateActionEE-K456GlhK.js → CreateActionEE-_dcu_sAD.js} +2 -2
- package/dist/_chunks/{CreateActionEE-K456GlhK.js.map → CreateActionEE-_dcu_sAD.js.map} +1 -1
- package/dist/_chunks/{CreatePage-d3XO42Pr.js → CreatePage-7yvcuo6E.js} +8 -8
- package/dist/_chunks/{CreatePage-d3XO42Pr.js.map → CreatePage-7yvcuo6E.js.map} +1 -1
- package/dist/_chunks/{CreatePage-UZ0qDLxr.mjs → CreatePage-Cf16HmRc.mjs} +6 -6
- package/dist/_chunks/{CreatePage-UZ0qDLxr.mjs.map → CreatePage-Cf16HmRc.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-qKlqDvo1.mjs → CreatePage-ELa8cKAu.mjs} +3 -3
- package/dist/_chunks/{CreatePage-qKlqDvo1.mjs.map → CreatePage-ELa8cKAu.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-n4gZhxzY.js → CreatePage-iKb_OqrC.js} +3 -3
- package/dist/_chunks/{CreatePage-n4gZhxzY.js.map → CreatePage-iKb_OqrC.js.map} +1 -1
- package/dist/_chunks/{CreatePage-BuPSkwc-.mjs → CreatePage-mZotR4tj.mjs} +8 -8
- package/dist/_chunks/{CreatePage-BuPSkwc-.mjs.map → CreatePage-mZotR4tj.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-FW0eBO5Q.js → CreatePage-mhhl2LoU.js} +6 -6
- package/dist/_chunks/{CreatePage-FW0eBO5Q.js.map → CreatePage-mhhl2LoU.js.map} +1 -1
- package/dist/_chunks/{CreateView-_3lP5wJl.js → CreateView-81Stf8lD.js} +6 -6
- package/dist/_chunks/{CreateView-_3lP5wJl.js.map → CreateView-81Stf8lD.js.map} +1 -1
- package/dist/_chunks/{CreateView-6uezd0WA.mjs → CreateView-9bCRXbzy.mjs} +6 -6
- package/dist/_chunks/{CreateView-6uezd0WA.mjs.map → CreateView-9bCRXbzy.mjs.map} +1 -1
- package/dist/_chunks/{CreateView-INf2W3aT.js → CreateView-gQCM3Hx2.js} +6 -6
- package/dist/_chunks/{CreateView-INf2W3aT.js.map → CreateView-gQCM3Hx2.js.map} +1 -1
- package/dist/_chunks/{CreateView-u-iD8Rda.mjs → CreateView-j6lYzNai.mjs} +6 -6
- package/dist/_chunks/{CreateView-u-iD8Rda.mjs.map → CreateView-j6lYzNai.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-ZdtGyGdv.js → EditPage-2wmenIdh.js} +4 -4
- package/dist/_chunks/{EditPage-ZdtGyGdv.js.map → EditPage-2wmenIdh.js.map} +1 -1
- package/dist/_chunks/{EditPage-aq3TODI6.mjs → EditPage-AGrGzVTs.mjs} +6 -6
- package/dist/_chunks/{EditPage-aq3TODI6.mjs.map → EditPage-AGrGzVTs.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-GIaS7ory.js → EditPage-LVtJ6id2.js} +6 -6
- package/dist/_chunks/{EditPage-GIaS7ory.js.map → EditPage-LVtJ6id2.js.map} +1 -1
- package/dist/_chunks/{EditPage-nXa8ZjF_.mjs → EditPage-YtLiUF-k.mjs} +9 -9
- package/dist/_chunks/{EditPage-nXa8ZjF_.mjs.map → EditPage-YtLiUF-k.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-V9-fJZ0T.js → EditPage-ZQ00gK10.js} +6 -6
- package/dist/_chunks/{EditPage-V9-fJZ0T.js.map → EditPage-ZQ00gK10.js.map} +1 -1
- package/dist/_chunks/{EditPage-Qhu_J0v9.js → EditPage-nmxOWvhR.js} +9 -9
- package/dist/_chunks/{EditPage-Qhu_J0v9.js.map → EditPage-nmxOWvhR.js.map} +1 -1
- package/dist/_chunks/{EditPage-MAqbMyDl.mjs → EditPage-wRuHM5g2.mjs} +4 -4
- package/dist/_chunks/{EditPage-MAqbMyDl.mjs.map → EditPage-wRuHM5g2.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-nk0qQh97.mjs → EditPage-x1DFXa27.mjs} +6 -6
- package/dist/_chunks/{EditPage-nk0qQh97.mjs.map → EditPage-x1DFXa27.mjs.map} +1 -1
- package/dist/_chunks/{EditView-nKTYbwb9.mjs → EditView-lSyHHn7m.mjs} +4 -4
- package/dist/_chunks/{EditView-nKTYbwb9.mjs.map → EditView-lSyHHn7m.mjs.map} +1 -1
- package/dist/_chunks/{EditView-4UbgxD6x.js → EditView-xBTjb8aZ.js} +4 -4
- package/dist/_chunks/{EditView-4UbgxD6x.js.map → EditView-xBTjb8aZ.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-fxxjICEo.js → EditViewPage-WR_LUc00.js} +4 -4
- package/dist/_chunks/{EditViewPage-fxxjICEo.js.map → EditViewPage-WR_LUc00.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-8tGwJ1SA.mjs → EditViewPage-t-SbTeP_.mjs} +4 -4
- package/dist/_chunks/{EditViewPage-8tGwJ1SA.mjs.map → EditViewPage-t-SbTeP_.mjs.map} +1 -1
- package/dist/_chunks/{EventsTable-_6nhYFKy.mjs → EventsTable-CasKV6Wo.mjs} +6 -6
- package/dist/_chunks/{EventsTable-_6nhYFKy.mjs.map → EventsTable-CasKV6Wo.mjs.map} +1 -1
- package/dist/_chunks/{EventsTable-7FLeEv3l.js → EventsTable-pCjhmpr-.js} +6 -6
- package/dist/_chunks/{EventsTable-7FLeEv3l.js.map → EventsTable-pCjhmpr-.js.map} +1 -1
- package/dist/_chunks/{HomePage-lkJbV-sX.mjs → HomePage-NkR9ZvAc.mjs} +6 -6
- package/dist/_chunks/{HomePage-lkJbV-sX.mjs.map → HomePage-NkR9ZvAc.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-VXVu3O8H.js → HomePage-_sDXeQzc.js} +5 -5
- package/dist/_chunks/{HomePage-VXVu3O8H.js.map → HomePage-_sDXeQzc.js.map} +1 -1
- package/dist/_chunks/{HomePage-RfiqwTPL.js → HomePage-jl-YPaTW.js} +6 -6
- package/dist/_chunks/{HomePage-RfiqwTPL.js.map → HomePage-jl-YPaTW.js.map} +1 -1
- package/dist/_chunks/{HomePage-_kqPINo4.mjs → HomePage-sezprZrl.mjs} +5 -5
- package/dist/_chunks/{HomePage-_kqPINo4.mjs.map → HomePage-sezprZrl.mjs.map} +1 -1
- package/dist/_chunks/{InformationBoxEE-4KcEOSI-.js → InformationBoxEE-9jiLQKsv.js} +3 -3
- package/dist/_chunks/{InformationBoxEE-4KcEOSI-.js.map → InformationBoxEE-9jiLQKsv.js.map} +1 -1
- package/dist/_chunks/{InformationBoxEE-25aDyIh6.mjs → InformationBoxEE-wE6AABS2.mjs} +3 -3
- package/dist/_chunks/{InformationBoxEE-25aDyIh6.mjs.map → InformationBoxEE-wE6AABS2.mjs.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-HeduiXVS.js → InstalledPluginsPage-I7ATcL7V.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-HeduiXVS.js.map → InstalledPluginsPage-I7ATcL7V.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-9kynTTJ3.mjs → InstalledPluginsPage-seE0Eqig.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-9kynTTJ3.mjs.map → InstalledPluginsPage-seE0Eqig.mjs.map} +1 -1
- package/dist/_chunks/{Layout-kSbY1nXA.js → Layout-RPMYu4vZ.js} +2 -2
- package/dist/_chunks/{Layout-kSbY1nXA.js.map → Layout-RPMYu4vZ.js.map} +1 -1
- package/dist/_chunks/{Layout-p59zWnvw.mjs → Layout-T5jhM0f1.mjs} +2 -2
- package/dist/_chunks/{Layout-p59zWnvw.mjs.map → Layout-T5jhM0f1.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-6IO_Dp0d.js → ListPage--YXPT56Z.js} +3 -3
- package/dist/_chunks/{ListPage-6IO_Dp0d.js.map → ListPage--YXPT56Z.js.map} +1 -1
- package/dist/_chunks/{ListPage-NEpCQPNr.js → ListPage-3dl4UmNV.js} +4 -4
- package/dist/_chunks/{ListPage-NEpCQPNr.js.map → ListPage-3dl4UmNV.js.map} +1 -1
- package/dist/_chunks/{ListPage-D38IMt6p.js → ListPage-BXhrxrwu.js} +2 -2
- package/dist/_chunks/{ListPage-D38IMt6p.js.map → ListPage-BXhrxrwu.js.map} +1 -1
- package/dist/_chunks/{ListPage-3TE-YUxf.mjs → ListPage-Duuzsllg.mjs} +6 -6
- package/dist/_chunks/{ListPage-3TE-YUxf.mjs.map → ListPage-Duuzsllg.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-r7UUp2pp.js → ListPage-IOsQUTym.js} +6 -6
- package/dist/_chunks/{ListPage-r7UUp2pp.js.map → ListPage-IOsQUTym.js.map} +1 -1
- package/dist/_chunks/{ListPage-zq1VErwa.js → ListPage-IhrefFkq.js} +7 -7
- package/dist/_chunks/{ListPage-zq1VErwa.js.map → ListPage-IhrefFkq.js.map} +1 -1
- package/dist/_chunks/{ListPage-RyIyUNEK.mjs → ListPage-ObE9A9PL.mjs} +2 -2
- package/dist/_chunks/{ListPage-RyIyUNEK.mjs.map → ListPage-ObE9A9PL.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-pKL4oMxS.mjs → ListPage-Rjq5kfS9.mjs} +3 -3
- package/dist/_chunks/{ListPage-pKL4oMxS.mjs.map → ListPage-Rjq5kfS9.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-pGPGvo_9.mjs → ListPage-T8KjKFcP.mjs} +7 -7
- package/dist/_chunks/{ListPage-pGPGvo_9.mjs.map → ListPage-T8KjKFcP.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-uPc6ZzwW.js → ListPage-VIQ_6GhS.js} +8 -8
- package/dist/_chunks/{ListPage-uPc6ZzwW.js.map → ListPage-VIQ_6GhS.js.map} +1 -1
- package/dist/_chunks/{ListPage-_chqxAFQ.mjs → ListPage-X_qsEedx.mjs} +8 -8
- package/dist/_chunks/{ListPage-_chqxAFQ.mjs.map → ListPage-X_qsEedx.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-RreVDmEg.mjs → ListPage-obRxh2vF.mjs} +4 -4
- package/dist/_chunks/{ListPage-RreVDmEg.mjs.map → ListPage-obRxh2vF.mjs.map} +1 -1
- package/dist/_chunks/{ListView-Fpxw4odV.js → ListView-9Fuidc0O.js} +3 -3
- package/dist/_chunks/{ListView-Fpxw4odV.js.map → ListView-9Fuidc0O.js.map} +1 -1
- package/dist/_chunks/{ListView-AFln9VAi.mjs → ListView-EeihEDzI.mjs} +3 -3
- package/dist/_chunks/{ListView-AFln9VAi.mjs.map → ListView-EeihEDzI.mjs.map} +1 -1
- package/dist/_chunks/{ListView-_YyDlUMi.mjs → ListView-IGOl_Ttx.mjs} +3 -3
- package/dist/_chunks/{ListView-_YyDlUMi.mjs.map → ListView-IGOl_Ttx.mjs.map} +1 -1
- package/dist/_chunks/{ListView-R1l0uF6A.js → ListView-J1kXpd9_.js} +3 -3
- package/dist/_chunks/{ListView-R1l0uF6A.js.map → ListView-J1kXpd9_.js.map} +1 -1
- package/dist/_chunks/{Login-qmPh7pFM.js → Login-ELNTm2b9.js} +2 -2
- package/dist/_chunks/{Login-qmPh7pFM.js.map → Login-ELNTm2b9.js.map} +1 -1
- package/dist/_chunks/{Login-ZoWk3452.mjs → Login-V2KjxNho.mjs} +2 -2
- package/dist/_chunks/{Login-ZoWk3452.mjs.map → Login-V2KjxNho.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-55V9aeIc.mjs → MagicLinkEE-Usx_Cr3U.mjs} +4 -4
- package/dist/_chunks/{MagicLinkEE-55V9aeIc.mjs.map → MagicLinkEE-Usx_Cr3U.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-n6mXkkoz.js → MagicLinkEE-cF19bu12.js} +4 -4
- package/dist/_chunks/{MagicLinkEE-n6mXkkoz.js.map → MagicLinkEE-cF19bu12.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-001XUJXL.mjs → MarketplacePage-4My8gv63.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-001XUJXL.mjs.map → MarketplacePage-4My8gv63.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-iDXYooSf.js → MarketplacePage-kAW50RDU.js} +3 -3
- package/dist/_chunks/{MarketplacePage-iDXYooSf.js.map → MarketplacePage-kAW50RDU.js.map} +1 -1
- package/dist/_chunks/{Permissions-22iKkeLw.mjs → Permissions--JAQnj8U.mjs} +2 -2
- package/dist/_chunks/{Permissions-22iKkeLw.mjs.map → Permissions--JAQnj8U.mjs.map} +1 -1
- package/dist/_chunks/{Permissions-hLeP1dDu.js → Permissions-hc2wCfJC.js} +2 -2
- package/dist/_chunks/{Permissions-hLeP1dDu.js.map → Permissions-hc2wCfJC.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-yTmIk3-q.js → ProfilePage-BQVnvSEP.js} +3 -3
- package/dist/_chunks/{ProfilePage-yTmIk3-q.js.map → ProfilePage-BQVnvSEP.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-9XtLeaZK.mjs → ProfilePage-fStKoBCy.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-9XtLeaZK.mjs.map → ProfilePage-fStKoBCy.mjs.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-hRY3Lu3c.mjs → ReviewWorkflowsColumn-Z_Y-GwwU.mjs} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-hRY3Lu3c.mjs.map → ReviewWorkflowsColumn-Z_Y-GwwU.mjs.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-xbYki4AU.js → ReviewWorkflowsColumn-t5wJMgd1.js} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-xbYki4AU.js.map → ReviewWorkflowsColumn-t5wJMgd1.js.map} +1 -1
- package/dist/_chunks/{SelectRoles-r5ac3R_t.mjs → SelectRoles-37DhImbF.mjs} +3 -3
- package/dist/_chunks/{SelectRoles-r5ac3R_t.mjs.map → SelectRoles-37DhImbF.mjs.map} +1 -1
- package/dist/_chunks/{SelectRoles-RK2nHcfD.js → SelectRoles-s0zAwyI1.js} +3 -3
- package/dist/_chunks/{SelectRoles-RK2nHcfD.js.map → SelectRoles-s0zAwyI1.js.map} +1 -1
- package/dist/_chunks/{SettingsPage-UYti0cGR.js → SettingsPage-ZQVxz6c_.js} +21 -21
- package/dist/_chunks/{SettingsPage-UYti0cGR.js.map → SettingsPage-ZQVxz6c_.js.map} +1 -1
- package/dist/_chunks/{SettingsPage-1621Scy_.mjs → SettingsPage-jAw0VanW.mjs} +21 -21
- package/dist/_chunks/{SettingsPage-1621Scy_.mjs.map → SettingsPage-jAw0VanW.mjs.map} +1 -1
- package/dist/_chunks/{SingleSignOnPage-Dbg3ynX3.js → SingleSignOnPage-Llhpgs4h.js} +3 -3
- package/dist/_chunks/{SingleSignOnPage-Dbg3ynX3.js.map → SingleSignOnPage-Llhpgs4h.js.map} +1 -1
- package/dist/_chunks/{SingleSignOnPage-aOmW-4fJ.mjs → SingleSignOnPage-mgsv3d_n.mjs} +3 -3
- package/dist/_chunks/{SingleSignOnPage-aOmW-4fJ.mjs.map → SingleSignOnPage-mgsv3d_n.mjs.map} +1 -1
- package/dist/_chunks/{TokenTypeSelect-Mhf-n1Dq.js → TokenTypeSelect-F0S1lqRQ.js} +2 -2
- package/dist/_chunks/{TokenTypeSelect-Mhf-n1Dq.js.map → TokenTypeSelect-F0S1lqRQ.js.map} +1 -1
- package/dist/_chunks/{TokenTypeSelect-jokuCG-s.mjs → TokenTypeSelect-Fmn4QPjT.mjs} +2 -2
- package/dist/_chunks/{TokenTypeSelect-jokuCG-s.mjs.map → TokenTypeSelect-Fmn4QPjT.mjs.map} +1 -1
- package/dist/_chunks/{apiTokens-p1MM4dia.js → apiTokens-n78jdg__.js} +2 -2
- package/dist/_chunks/{apiTokens-p1MM4dia.js.map → apiTokens-n78jdg__.js.map} +1 -1
- package/dist/_chunks/{apiTokens-iK_CSJGn.mjs → apiTokens-uUzZfvcv.mjs} +2 -2
- package/dist/_chunks/{apiTokens-iK_CSJGn.mjs.map → apiTokens-uUzZfvcv.mjs.map} +1 -1
- package/dist/_chunks/{constants-uotez7Fd.mjs → constants-4FtcTchf.mjs} +4 -4
- package/dist/_chunks/{constants-uotez7Fd.mjs.map → constants-4FtcTchf.mjs.map} +1 -1
- package/dist/_chunks/{constants-KOZrmeJW.mjs → constants-5e1wSMi0.mjs} +2 -2
- package/dist/_chunks/{constants-KOZrmeJW.mjs.map → constants-5e1wSMi0.mjs.map} +1 -1
- package/dist/_chunks/{constants-QGof3aDB.mjs → constants-6TWBl1rG.mjs} +6 -6
- package/dist/_chunks/{constants-QGof3aDB.mjs.map → constants-6TWBl1rG.mjs.map} +1 -1
- package/dist/_chunks/{constants-iAXDa-M9.js → constants-N5hDd0EM.js} +6 -6
- package/dist/_chunks/{constants-iAXDa-M9.js.map → constants-N5hDd0EM.js.map} +1 -1
- package/dist/_chunks/{constants-I2-hoVGf.js → constants-NOAVPQlA.js} +2 -2
- package/dist/_chunks/{constants-I2-hoVGf.js.map → constants-NOAVPQlA.js.map} +1 -1
- package/dist/_chunks/{constants-_j1Muesu.mjs → constants-SgICGbZq.mjs} +2 -2
- package/dist/_chunks/{constants-_j1Muesu.mjs.map → constants-SgICGbZq.mjs.map} +1 -1
- package/dist/_chunks/{constants-F5T84H-D.js → constants-TGjbMcDI.js} +2 -2
- package/dist/_chunks/{constants-F5T84H-D.js.map → constants-TGjbMcDI.js.map} +1 -1
- package/dist/_chunks/{constants-Rf8pCAfG.js → constants-Yv2EwjLp.js} +4 -4
- package/dist/_chunks/{constants-Rf8pCAfG.js.map → constants-Yv2EwjLp.js.map} +1 -1
- package/dist/_chunks/{index-HHHViOfr.js → index-4YzOQVoA.js} +11 -11
- package/dist/_chunks/{index-HHHViOfr.js.map → index-4YzOQVoA.js.map} +1 -1
- package/dist/_chunks/{index-fi6xYVen.mjs → index-BUBFJHNU.mjs} +11 -11
- package/dist/_chunks/{index-fi6xYVen.mjs.map → index-BUBFJHNU.mjs.map} +1 -1
- package/dist/_chunks/{reviewWorkflows-OHZDpkxC.js → reviewWorkflows-Ws8PyfNr.js} +2 -2
- package/dist/_chunks/{reviewWorkflows-OHZDpkxC.js.map → reviewWorkflows-Ws8PyfNr.js.map} +1 -1
- package/dist/_chunks/{reviewWorkflows-gislCtyH.mjs → reviewWorkflows-qy3CJovl.mjs} +2 -2
- package/dist/_chunks/{reviewWorkflows-gislCtyH.mjs.map → reviewWorkflows-qy3CJovl.mjs.map} +1 -1
- package/dist/_chunks/{transferTokens-2h3hrnYZ.js → transferTokens-6tGpamt4.js} +2 -2
- package/dist/_chunks/{transferTokens-2h3hrnYZ.js.map → transferTokens-6tGpamt4.js.map} +1 -1
- package/dist/_chunks/{transferTokens-wveR4A88.mjs → transferTokens-fajjpmkK.mjs} +2 -2
- package/dist/_chunks/{transferTokens-wveR4A88.mjs.map → transferTokens-fajjpmkK.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-XyUHcbZE.mjs → useAdminRoles-E4cyXpHf.mjs} +2 -2
- package/dist/_chunks/{useAdminRoles-XyUHcbZE.mjs.map → useAdminRoles-E4cyXpHf.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-fpLB4k1Q.js → useAdminRoles-UTTVNLsH.js} +2 -2
- package/dist/_chunks/{useAdminRoles-fpLB4k1Q.js.map → useAdminRoles-UTTVNLsH.js.map} +1 -1
- package/dist/_chunks/{useContentTypes-M6PVLk4O.js → useContentTypes-Av8tl93h.js} +2 -2
- package/dist/_chunks/{useContentTypes-M6PVLk4O.js.map → useContentTypes-Av8tl93h.js.map} +1 -1
- package/dist/_chunks/{useContentTypes-DeCjnztQ.mjs → useContentTypes-QsqpkAQZ.mjs} +2 -2
- package/dist/_chunks/{useContentTypes-DeCjnztQ.mjs.map → useContentTypes-QsqpkAQZ.mjs.map} +1 -1
- package/dist/_chunks/{useLicenseLimitNotification-DifkuvDa.mjs → useLicenseLimitNotification-4gWCeTbb.mjs} +2 -2
- package/dist/_chunks/{useLicenseLimitNotification-DifkuvDa.mjs.map → useLicenseLimitNotification-4gWCeTbb.mjs.map} +1 -1
- package/dist/_chunks/{useLicenseLimitNotification-jP66H_95.js → useLicenseLimitNotification-E8vXmLt2.js} +2 -2
- package/dist/_chunks/{useLicenseLimitNotification-jP66H_95.js.map → useLicenseLimitNotification-E8vXmLt2.js.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-MV35RR4U.js → useReviewWorkflows-4WF-t0do.js} +2 -2
- package/dist/_chunks/{useReviewWorkflows-MV35RR4U.js.map → useReviewWorkflows-4WF-t0do.js.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-c887HbYr.mjs → useReviewWorkflows-jJBvcKyK.mjs} +2 -2
- package/dist/_chunks/{useReviewWorkflows-c887HbYr.mjs.map → useReviewWorkflows-jJBvcKyK.mjs.map} +1 -1
- package/dist/_chunks/{useWebhooks-4srjS3Tn.js → useWebhooks-8Ang4NeH.js} +2 -2
- package/dist/_chunks/{useWebhooks-4srjS3Tn.js.map → useWebhooks-8Ang4NeH.js.map} +1 -1
- package/dist/_chunks/{useWebhooks-aWrXuFDX.mjs → useWebhooks-eL42wqFn.mjs} +2 -2
- package/dist/_chunks/{useWebhooks-aWrXuFDX.mjs.map → useWebhooks-eL42wqFn.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-e1mfH_Z5.mjs → validateWorkflow-6MEiSixp.mjs} +2 -2
- package/dist/_chunks/{validateWorkflow-e1mfH_Z5.mjs.map → validateWorkflow-6MEiSixp.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-rsvR5JAZ.js → validateWorkflow-eJSq08CE.js} +2 -2
- package/dist/_chunks/{validateWorkflow-rsvR5JAZ.js.map → validateWorkflow-eJSq08CE.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage-Dbg3ynX3.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n formik: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n try {\n const res = await updateProviderOptions(body);\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: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n },\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useTypedSelector","useOverlayBlocker","useNotification","useAPIErrorHandler","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation","useRBAC","useAdminRoles","formik","isBaseQueryError","Layout","jsx","SettingsPageTitle","Main","Formik","jsxs","Form","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage-Llhpgs4h.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n formik: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n try {\n const res = await updateProviderOptions(body);\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: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n },\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useTypedSelector","useOverlayBlocker","useNotification","useAPIErrorHandler","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation","useRBAC","useAdminRoles","formik","isBaseQueryError","Layout","jsx","SettingsPageTitle","Main","Formik","jsxs","Form","HeaderLayout","Button","Check","ContentLayout","LoadingIndicatorPage","Flex","Typography","Grid","GridItem","ToggleInput","Select","Option","MultiSelect","MultiSelectOption","CheckPagePermissions"],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import { Check } from "@strapi/icons";
|
|
|
5
5
|
import { Formik } from "formik";
|
|
6
6
|
import { useIntl } from "react-intl";
|
|
7
7
|
import * as yup from "yup";
|
|
8
|
-
import { j as useTypedSelector, W as useGetProviderOptionsQuery, X as useUpdateProviderOptionsMutation, x as isBaseQueryError } from "./index-
|
|
9
|
-
import { u as useAdminRoles } from "./useAdminRoles-
|
|
8
|
+
import { j as useTypedSelector, W as useGetProviderOptionsQuery, X as useUpdateProviderOptionsMutation, x as isBaseQueryError } from "./index-BUBFJHNU.mjs";
|
|
9
|
+
import { u as useAdminRoles } from "./useAdminRoles-E4cyXpHf.mjs";
|
|
10
10
|
import "react-dom/client";
|
|
11
11
|
import "invariant";
|
|
12
12
|
import "lodash/isFunction";
|
|
@@ -295,4 +295,4 @@ export {
|
|
|
295
295
|
ProtectedSSO,
|
|
296
296
|
SingleSignOnPage
|
|
297
297
|
};
|
|
298
|
-
//# sourceMappingURL=SingleSignOnPage-
|
|
298
|
+
//# sourceMappingURL=SingleSignOnPage-mgsv3d_n.mjs.map
|
package/dist/_chunks/{SingleSignOnPage-aOmW-4fJ.mjs.map → SingleSignOnPage-mgsv3d_n.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSignOnPage-aOmW-4fJ.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n formik: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n try {\n const res = await updateProviderOptions(body);\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: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n },\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage-mgsv3d_n.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Layout,\n Main,\n MultiSelect,\n MultiSelectOption,\n Option,\n Select,\n ToggleInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n Form,\n LoadingIndicatorPage,\n SettingsPageTitle,\n translatedErrors,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n useOverlayBlocker,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst schema = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n useFocusWhenNavigate();\n\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { lockApp, unlockApp } = useOverlayBlocker();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n formik: FormikHelpers<ProvidersOptions.Request['body']>\n ) => {\n // @ts-expect-error - context assertation\n lockApp();\n\n try {\n const res = await updateProviderOptions(body);\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: 'warning',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n },\n });\n } finally {\n // @ts-expect-error - context assertation\n unlockApp();\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layout>\n <SettingsPageTitle name=\"SSO\" />\n <Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Formik\n onSubmit={handleSubmit}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n validationSchema={schema}\n validateOnChange={false}\n enableReinitialize\n >\n {({ handleChange, isSubmitting, values, setFieldValue, dirty, errors }) => (\n <Form>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={!dirty}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <ContentLayout>\n {isSubmitting || isLoadingData ? (\n <LoadingIndicatorPage />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n disabled={!canUpdate}\n checked={values.autoRegister}\n hint={formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n })}\n label={formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n })}\n name=\"autoRegister\"\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={handleChange}\n />\n </GridItem>\n <GridItem col={6} s={12}>\n <Select\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n })}\n error={\n errors.defaultRole\n ? formatMessage({\n id: errors.defaultRole,\n defaultMessage: errors.defaultRole,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n })}\n name=\"defaultRole\"\n onChange={(value) =>\n handleChange({ target: { name: 'defaultRole', value } })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n value={values.defaultRole}\n >\n {roles.map(({ id, name }) => (\n <Option key={id} value={id.toString()}>\n {name}\n </Option>\n ))}\n </Select>\n </GridItem>\n <GridItem col={6} s={12}>\n <MultiSelect\n disabled={!canUpdate}\n hint={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n })}\n error={\n errors.ssoLockedRoles\n ? formatMessage({\n id: errors.ssoLockedRoles,\n defaultMessage: errors.ssoLockedRoles,\n })\n : ''\n }\n label={formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n })}\n name=\"ssoLockedRoles\"\n onChange={(value) =>\n handleChange({\n target: {\n value,\n name: 'ssoLockedRoles',\n },\n })\n }\n placeholder={formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n })}\n onClear={() => setFieldValue('ssoLockedRoles', [])}\n value={values.ssoLockedRoles || []}\n withTags\n >\n {roles.map(({ id, name }) => (\n <MultiSelectOption key={id} value={id.toString()}>\n {name}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n </GridItem>\n </Grid>\n </Flex>\n )}\n </ContentLayout>\n </Form>\n )}\n </Formik>\n </Main>\n </Layout>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <SingleSignOnPage />\n </CheckPagePermissions>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const helperPlugin = require("@strapi/helper-plugin");
|
|
|
7
7
|
const Icons = require("@strapi/icons");
|
|
8
8
|
const reactIntl = require("react-intl");
|
|
9
9
|
const reactRouterDom = require("react-router-dom");
|
|
10
|
-
const index = require("./index-
|
|
10
|
+
const index = require("./index-4YzOQVoA.js");
|
|
11
11
|
const dateFns = require("date-fns");
|
|
12
12
|
const locales = require("date-fns/locale");
|
|
13
13
|
function _interopNamespace(e) {
|
|
@@ -369,4 +369,4 @@ exports.TokenBox = TokenBox;
|
|
|
369
369
|
exports.TokenDescription = TokenDescription;
|
|
370
370
|
exports.TokenName = TokenName;
|
|
371
371
|
exports.TokenTypeSelect = TokenTypeSelect;
|
|
372
|
-
//# sourceMappingURL=TokenTypeSelect-
|
|
372
|
+
//# sourceMappingURL=TokenTypeSelect-F0S1lqRQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenTypeSelect-Mhf-n1Dq.js","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["useIntl","React","useNotification","useAPIErrorHandler","useRegenerateTokenMutation","jsxs","Fragment","jsx","Button","Refresh","ConfirmDialog","HeaderLayout","Flex","Check","Link","NavLink","ArrowLeft","useTracking","useClipboard","token","ContentBox","IconButton","Duplicate","Key","format","addDays","locales","SingleSelect","value","SingleSelectOption","Typography","Textarea","TextInput","label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenTypeSelect-F0S1lqRQ.js","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["useIntl","React","useNotification","useAPIErrorHandler","useRegenerateTokenMutation","jsxs","Fragment","jsx","Button","Refresh","ConfirmDialog","HeaderLayout","Flex","Check","Link","NavLink","ArrowLeft","useTracking","useClipboard","token","ContentBox","IconButton","Duplicate","Key","format","addDays","locales","SingleSelect","value","SingleSelectOption","Typography","Textarea","TextInput","label"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { useNotification, useAPIErrorHandler, ConfirmDialog, useTracking, useCli
|
|
|
6
6
|
import { Check, ArrowLeft, Refresh, Duplicate, Key } from "@strapi/icons";
|
|
7
7
|
import { useIntl } from "react-intl";
|
|
8
8
|
import { NavLink } from "react-router-dom";
|
|
9
|
-
import { O as useRegenerateTokenMutation } from "./index-
|
|
9
|
+
import { O as useRegenerateTokenMutation } from "./index-BUBFJHNU.mjs";
|
|
10
10
|
import { format, addDays } from "date-fns";
|
|
11
11
|
import * as locales from "date-fns/locale";
|
|
12
12
|
const Regenerate = ({ onRegenerate, url }) => {
|
|
@@ -350,4 +350,4 @@ export {
|
|
|
350
350
|
TokenTypeSelect as b,
|
|
351
351
|
TokenBox as c
|
|
352
352
|
};
|
|
353
|
-
//# sourceMappingURL=TokenTypeSelect-
|
|
353
|
+
//# sourceMappingURL=TokenTypeSelect-Fmn4QPjT.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenTypeSelect-jokuCG-s.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TokenTypeSelect-Fmn4QPjT.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/helper-plugin';\nimport { ArrowLeft, Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n },\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n bodyText={{\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n }}\n iconRightButton={<Refresh />}\n isConfirmButtonLoading={isLoadingConfirmation}\n isOpen={showConfirmDialog}\n onToggleDialog={() => setShowConfirmDialog(false)}\n onConfirm={handleConfirmRegeneration}\n leftButtonText={{\n id: 'Settings.tokens.Button.cancel',\n defaultMessage: 'Cancel',\n }}\n rightButtonText={{\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n }}\n title={{\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n }}\n />\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n backUrl: string;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n backUrl,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={\n <>\n {/* @ts-expect-error polymorphic */}\n <Link as={NavLink} startIcon={<ArrowLeft />} to={backUrl}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n </>\n }\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { ContentBox, useClipboard, useNotification, useTracking } from '@strapi/helper-plugin';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: { id: 'Settings.tokens.notification.copied' },\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n // @ts-expect-error I don't know how to fix this\n locale: locales[language],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const index = require("./index-
|
|
2
|
+
const index = require("./index-4YzOQVoA.js");
|
|
3
3
|
const transferTokenService = index.adminApi.injectEndpoints({
|
|
4
4
|
endpoints: (builder) => ({
|
|
5
5
|
getAPITokens: builder.query({
|
|
@@ -56,4 +56,4 @@ exports.useDeleteAPITokenMutation = useDeleteAPITokenMutation;
|
|
|
56
56
|
exports.useGetAPITokenQuery = useGetAPITokenQuery;
|
|
57
57
|
exports.useGetAPITokensQuery = useGetAPITokensQuery;
|
|
58
58
|
exports.useUpdateAPITokenMutation = useUpdateAPITokenMutation;
|
|
59
|
-
//# sourceMappingURL=apiTokens-
|
|
59
|
+
//# sourceMappingURL=apiTokens-n78jdg__.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens-
|
|
1
|
+
{"version":3,"file":"apiTokens-n78jdg__.js","sources":["../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = transferTokenService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["adminApi"],"mappings":";;AAIA,MAAM,uBAAuBA,eAAS,gBAAgB;AAAA,EACpD,WAAW,CAAC,aAAa;AAAA,IACvB,cAAc,QAAQ,MAA4C;AAAA,MAChE,OAAO,MAAM;AAAA,MACb,mBAAmB,CAAC,aAAqC,SAAS;AAAA,MAClE,cAAc,CAAC,KAAK,SAAS;AAAA,QAC3B,GAAI,KAAK,IAAI,CAAC,EAAE,GAAU,OAAA,EAAE,MAAM,YAAqB,KAAK,KAAK,CAAC;AAAA,QAClE,EAAE,MAAM,YAAqB,IAAI,OAAO;AAAA,MAC1C;AAAA,IAAA,CACD;AAAA,IACD,aAAa,QAAQ,MAAgE;AAAA,MACnF,OAAO,CAAC,OAAO,qBAAqB,EAAE;AAAA,MACtC,mBAAmB,CAAC,aAAoC,SAAS;AAAA,MACjE,cAAc,CAAC,KAAK,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACpE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,EAAE,MAAM,YAAqB,IAAI,QAAQ;AAAA,IAAA,CAC5D;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,QACd,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,MAAA;AAAA,MAEV,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACxE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;AAAA,QAC3B,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CAC5E;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAEK,MAAA;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as adminApi } from "./index-
|
|
1
|
+
import { n as adminApi } from "./index-BUBFJHNU.mjs";
|
|
2
2
|
const transferTokenService = adminApi.injectEndpoints({
|
|
3
3
|
endpoints: (builder) => ({
|
|
4
4
|
getAPITokens: builder.query({
|
|
@@ -57,4 +57,4 @@ export {
|
|
|
57
57
|
useUpdateAPITokenMutation as d,
|
|
58
58
|
useGetAPITokensQuery as u
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=apiTokens-
|
|
60
|
+
//# sourceMappingURL=apiTokens-uUzZfvcv.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens-
|
|
1
|
+
{"version":3,"file":"apiTokens-uUzZfvcv.mjs","sources":["../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n});\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = transferTokenService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":[],"mappings":";AAIA,MAAM,uBAAuB,SAAS,gBAAgB;AAAA,EACpD,WAAW,CAAC,aAAa;AAAA,IACvB,cAAc,QAAQ,MAA4C;AAAA,MAChE,OAAO,MAAM;AAAA,MACb,mBAAmB,CAAC,aAAqC,SAAS;AAAA,MAClE,cAAc,CAAC,KAAK,SAAS;AAAA,QAC3B,GAAI,KAAK,IAAI,CAAC,EAAE,GAAU,OAAA,EAAE,MAAM,YAAqB,KAAK,KAAK,CAAC;AAAA,QAClE,EAAE,MAAM,YAAqB,IAAI,OAAO;AAAA,MAC1C;AAAA,IAAA,CACD;AAAA,IACD,aAAa,QAAQ,MAAgE;AAAA,MACnF,OAAO,CAAC,OAAO,qBAAqB,EAAE;AAAA,MACtC,mBAAmB,CAAC,aAAoC,SAAS;AAAA,MACjE,cAAc,CAAC,KAAK,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACpE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,EAAE,MAAM,YAAqB,IAAI,QAAQ;AAAA,IAAA,CAC5D;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,QAAQ;AAAA,QACd,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,MAAA;AAAA,MAEV,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,OAAO,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CACxE;AAAA,IACD,gBAAgB,QAAQ,SAGtB;AAAA,MACA,OAAO,CAAC,EAAE,IAAI,GAAG,YAAY;AAAA,QAC3B,KAAK,qBAAqB,EAAE;AAAA,QAC5B,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA;AAAA,MAER,mBAAmB,CAAC,aAAuC,SAAS;AAAA,MACpE,iBAAiB,CAAC,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,YAAqB,IAAI;AAAA,IAAA,CAC5E;AAAA,EAAA;AAAA,EAEH,kBAAkB;AACpB,CAAC;AAEK,MAAA;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { k as useAdminUsers, l as getDisplayName, o as getTranslation } from "./index-
|
|
1
|
+
import { k as useAdminUsers, l as getDisplayName, o as getTranslation } from "./index-BUBFJHNU.mjs";
|
|
2
2
|
import { S as STAGE_ATTRIBUTE_NAME, A as ASSIGNEE_ATTRIBUTE_NAME } from "./constants-q1-_l5GM.mjs";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from "@strapi/design-system";
|
|
5
5
|
import { useIntl } from "react-intl";
|
|
6
|
-
import { u as useReviewWorkflows } from "./useReviewWorkflows-
|
|
6
|
+
import { u as useReviewWorkflows } from "./useReviewWorkflows-jJBvcKyK.mjs";
|
|
7
7
|
import { g as getStageColorByHex } from "./colors-YeFa2BnS.mjs";
|
|
8
8
|
import "@strapi/helper-plugin";
|
|
9
9
|
import "react-dom/client";
|
|
@@ -73,7 +73,7 @@ import "lodash/uniqBy";
|
|
|
73
73
|
import "lodash/unset";
|
|
74
74
|
import "lodash/isArray";
|
|
75
75
|
import "date-fns/parseISO";
|
|
76
|
-
import "./reviewWorkflows-
|
|
76
|
+
import "./reviewWorkflows-qy3CJovl.mjs";
|
|
77
77
|
import "./constants-8sAt6dKz.mjs";
|
|
78
78
|
const AssigneeFilter = ({ value, onChange }) => {
|
|
79
79
|
const { formatMessage } = useIntl();
|
|
@@ -239,4 +239,4 @@ export {
|
|
|
239
239
|
REVIEW_WORKFLOW_COLUMNS_EE,
|
|
240
240
|
REVIEW_WORKFLOW_FILTERS
|
|
241
241
|
};
|
|
242
|
-
//# sourceMappingURL=constants-
|
|
242
|
+
//# sourceMappingURL=constants-4FtcTchf.mjs.map
|