@strapi/admin 5.0.0-alpha.7 → 5.0.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/{AdminSeatInfo-5S4b9ytt.js → AdminSeatInfo-Gp4BFR1_.js} +2 -2
- package/dist/admin/{AdminSeatInfo-5S4b9ytt.js.map → AdminSeatInfo-Gp4BFR1_.js.map} +1 -1
- package/dist/admin/{AdminSeatInfo-A6gxA301.mjs → AdminSeatInfo-dDgFBcLY.mjs} +2 -2
- package/dist/admin/{AdminSeatInfo-A6gxA301.mjs.map → AdminSeatInfo-dDgFBcLY.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-SaBco4KU.mjs → ApplicationInfoPage-GQLKLk5T.mjs} +3 -3
- package/dist/admin/{ApplicationInfoPage-SaBco4KU.mjs.map → ApplicationInfoPage-GQLKLk5T.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-Fxy6RARu.js → ApplicationInfoPage-e_sOqQMh.js} +3 -3
- package/dist/admin/{ApplicationInfoPage-Fxy6RARu.js.map → ApplicationInfoPage-e_sOqQMh.js.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-Iyagtqob.mjs → AuthenticatedLayout-3fYM18Xy.mjs} +3 -3
- package/dist/admin/{AuthenticatedLayout-Iyagtqob.mjs.map → AuthenticatedLayout-3fYM18Xy.mjs.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-tRi16L9c.js → AuthenticatedLayout-gGQYIisy.js} +3 -3
- package/dist/admin/{AuthenticatedLayout-tRi16L9c.js.map → AuthenticatedLayout-gGQYIisy.js.map} +1 -1
- package/dist/admin/{ComponentConfigurationPage-6CnnkE6E.mjs → ComponentConfigurationPage-0kf7a5LK.mjs} +2 -2
- package/dist/admin/{ComponentConfigurationPage-6CnnkE6E.mjs.map → ComponentConfigurationPage-0kf7a5LK.mjs.map} +1 -1
- package/dist/admin/{ComponentConfigurationPage-LpuZH_80.js → ComponentConfigurationPage-U7RcNJFs.js} +2 -2
- package/dist/admin/{ComponentConfigurationPage-LpuZH_80.js.map → ComponentConfigurationPage-U7RcNJFs.js.map} +1 -1
- package/dist/admin/{CreateActionEE-9-R9hmOH.js → CreateActionEE-HO-FmNjw.js} +2 -2
- package/dist/admin/{CreateActionEE-9-R9hmOH.js.map → CreateActionEE-HO-FmNjw.js.map} +1 -1
- package/dist/admin/{CreateActionEE-fPOnLJuM.mjs → CreateActionEE-OscS6KZj.mjs} +2 -2
- package/dist/admin/{CreateActionEE-fPOnLJuM.mjs.map → CreateActionEE-OscS6KZj.mjs.map} +1 -1
- package/dist/admin/{CreatePage-t0FqkFrZ.mjs → CreatePage-1a_Nb-RK.mjs} +6 -6
- package/dist/admin/{CreatePage-t0FqkFrZ.mjs.map → CreatePage-1a_Nb-RK.mjs.map} +1 -1
- package/dist/admin/{CreatePage-k_yey8N_.mjs → CreatePage-8rG8fSZv.mjs} +2 -2
- package/dist/admin/{CreatePage-k_yey8N_.mjs.map → CreatePage-8rG8fSZv.mjs.map} +1 -1
- package/dist/admin/{CreatePage-UjSB-dgp.js → CreatePage-B0kLot_Q.js} +2 -2
- package/dist/admin/{CreatePage-UjSB-dgp.js.map → CreatePage-B0kLot_Q.js.map} +1 -1
- package/dist/admin/{CreatePage-couIKeZQ.mjs → CreatePage-c92hDTE3.mjs} +2 -2
- package/dist/admin/{CreatePage-couIKeZQ.mjs.map → CreatePage-c92hDTE3.mjs.map} +1 -1
- package/dist/admin/{CreatePage-Fu_8X4K8.js → CreatePage-h9gJgINE.js} +2 -2
- package/dist/admin/{CreatePage-Fu_8X4K8.js.map → CreatePage-h9gJgINE.js.map} +1 -1
- package/dist/admin/{CreatePage-ZPziliHk.js → CreatePage-pN8WcSWM.js} +6 -6
- package/dist/admin/{CreatePage-ZPziliHk.js.map → CreatePage-pN8WcSWM.js.map} +1 -1
- package/dist/admin/{CreateView-41To--31.js → CreateView-Gd7sLphf.js} +2 -2
- package/dist/admin/{CreateView-41To--31.js.map → CreateView-Gd7sLphf.js.map} +1 -1
- package/dist/admin/{CreateView-3rY4Zptu.mjs → CreateView-PIPvgwa8.mjs} +2 -2
- package/dist/admin/{CreateView-3rY4Zptu.mjs.map → CreateView-PIPvgwa8.mjs.map} +1 -1
- package/dist/admin/{CreateView-Tg9Mh5T3.js → CreateView-kVD9MjAf.js} +2 -2
- package/dist/admin/{CreateView-Tg9Mh5T3.js.map → CreateView-kVD9MjAf.js.map} +1 -1
- package/dist/admin/{CreateView-ePHsDH45.mjs → CreateView-nXkGgZTO.mjs} +2 -2
- package/dist/admin/{CreateView-ePHsDH45.mjs.map → CreateView-nXkGgZTO.mjs.map} +1 -1
- package/dist/admin/{EditConfigurationPage-xUIWyyB3.js → EditConfigurationPage-YAS-MAtE.js} +2 -2
- package/dist/admin/{EditConfigurationPage-xUIWyyB3.js.map → EditConfigurationPage-YAS-MAtE.js.map} +1 -1
- package/dist/admin/{EditConfigurationPage-msmjy1KU.mjs → EditConfigurationPage-jugWslla.mjs} +2 -2
- package/dist/admin/{EditConfigurationPage-msmjy1KU.mjs.map → EditConfigurationPage-jugWslla.mjs.map} +1 -1
- package/dist/admin/{EditPage-KuoEv50O.mjs → EditPage-6pGLGlrZ.mjs} +3 -3
- package/dist/admin/{EditPage-KuoEv50O.mjs.map → EditPage-6pGLGlrZ.mjs.map} +1 -1
- package/dist/admin/{EditPage-SySHhxVT.mjs → EditPage-I99-ASjb.mjs} +4 -4
- package/dist/admin/{EditPage-SySHhxVT.mjs.map → EditPage-I99-ASjb.mjs.map} +1 -1
- package/dist/admin/{EditPage-3SBMJVop.mjs → EditPage-NrM8ZRAf.mjs} +6 -6
- package/dist/admin/{EditPage-3SBMJVop.mjs.map → EditPage-NrM8ZRAf.mjs.map} +1 -1
- package/dist/admin/{EditPage-ZB_Kwtk6.js → EditPage-ci9fcWte.js} +6 -6
- package/dist/admin/{EditPage-ZB_Kwtk6.js.map → EditPage-ci9fcWte.js.map} +1 -1
- package/dist/admin/{EditPage-cCyAao8t.mjs → EditPage-fT6nuOwT.mjs} +3 -3
- package/dist/admin/{EditPage-cCyAao8t.mjs.map → EditPage-fT6nuOwT.mjs.map} +1 -1
- package/dist/admin/{EditPage--MbF06mK.js → EditPage-hEDFGDcC.js} +3 -3
- package/dist/admin/{EditPage--MbF06mK.js.map → EditPage-hEDFGDcC.js.map} +1 -1
- package/dist/admin/{EditPage-GG3uO1tK.js → EditPage-m5HVhxC-.js} +3 -3
- package/dist/admin/{EditPage-GG3uO1tK.js.map → EditPage-m5HVhxC-.js.map} +1 -1
- package/dist/admin/{EditPage-qUg5s7MV.js → EditPage-um8Yysr-.js} +4 -4
- package/dist/admin/{EditPage-qUg5s7MV.js.map → EditPage-um8Yysr-.js.map} +1 -1
- package/dist/admin/{EditView-uTB8aFye.mjs → EditView-79rujo0b.mjs} +2 -2
- package/dist/admin/{EditView-uTB8aFye.mjs.map → EditView-79rujo0b.mjs.map} +1 -1
- package/dist/admin/{EditView-NPoSYint.js → EditView-zEf-a-YM.js} +2 -2
- package/dist/admin/{EditView-NPoSYint.js.map → EditView-zEf-a-YM.js.map} +1 -1
- package/dist/admin/{EditViewPage-GUkP1rzn.mjs → EditViewPage-BJdNfzBZ.mjs} +2 -2
- package/dist/admin/{EditViewPage-GUkP1rzn.mjs.map → EditViewPage-BJdNfzBZ.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-aIpRJ8vJ.js → EditViewPage-Y67V7K7l.js} +2 -2
- package/dist/admin/{EditViewPage-aIpRJ8vJ.js.map → EditViewPage-Y67V7K7l.js.map} +1 -1
- package/dist/admin/{EditViewPage-8eo8XEp-.mjs → EditViewPage-iuq_KY3C.mjs} +2 -2
- package/dist/admin/{EditViewPage-8eo8XEp-.mjs.map → EditViewPage-iuq_KY3C.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-K7ytzy_P.js → EditViewPage-vrE8FNb1.js} +2 -2
- package/dist/admin/{EditViewPage-K7ytzy_P.js.map → EditViewPage-vrE8FNb1.js.map} +1 -1
- package/dist/admin/{EventsTable-miLAex8G.mjs → EventsTable-LOh2EX0N.mjs} +2 -2
- package/dist/admin/{EventsTable-miLAex8G.mjs.map → EventsTable-LOh2EX0N.mjs.map} +1 -1
- package/dist/admin/{EventsTable-LHOhvL6b.js → EventsTable-bm16Pj4a.js} +2 -2
- package/dist/admin/{EventsTable-LHOhvL6b.js.map → EventsTable-bm16Pj4a.js.map} +1 -1
- package/dist/admin/{Filters-dwU8wA6T.js → Filters-5FAHd62q.js} +2 -2
- package/dist/admin/{Filters-dwU8wA6T.js.map → Filters-5FAHd62q.js.map} +1 -1
- package/dist/admin/{Filters-NuK9aAYl.mjs → Filters-hYfcsahl.mjs} +2 -2
- package/dist/admin/{Filters-NuK9aAYl.mjs.map → Filters-hYfcsahl.mjs.map} +1 -1
- package/dist/admin/{Form-y8gH26Xy.mjs → Form-7gccxUtH.mjs} +2 -2
- package/dist/admin/{Form-y8gH26Xy.mjs.map → Form-7gccxUtH.mjs.map} +1 -1
- package/dist/admin/{Form-QoOkjEjV.js → Form-m0qUJusG.js} +2 -2
- package/dist/admin/{Form-QoOkjEjV.js.map → Form-m0qUJusG.js.map} +1 -1
- package/dist/admin/{HomePage-K72cOtYS.mjs → HomePage-2q7ngwX4.mjs} +3 -3
- package/dist/admin/{HomePage-K72cOtYS.mjs.map → HomePage-2q7ngwX4.mjs.map} +1 -1
- package/dist/admin/{HomePage-89WRumlX.mjs → HomePage-_eHszm7N.mjs} +3 -3
- package/dist/admin/{HomePage-89WRumlX.mjs.map → HomePage-_eHszm7N.mjs.map} +1 -1
- package/dist/admin/{HomePage-qj5mNY6J.js → HomePage-jwm3AAzI.js} +3 -3
- package/dist/admin/{HomePage-qj5mNY6J.js.map → HomePage-jwm3AAzI.js.map} +1 -1
- package/dist/admin/{HomePage-33ElW8Xc.js → HomePage-ozwWqZdZ.js} +3 -3
- package/dist/admin/{HomePage-33ElW8Xc.js.map → HomePage-ozwWqZdZ.js.map} +1 -1
- package/dist/admin/{Layout-JxGSf9_Y.mjs → Layout-JSg7Wwnx.mjs} +2 -2
- package/dist/admin/{Layout-JxGSf9_Y.mjs.map → Layout-JSg7Wwnx.mjs.map} +1 -1
- package/dist/admin/{Layout-u3VVVTce.mjs → Layout-gqm-mRb2.mjs} +3 -3
- package/dist/admin/{Layout-u3VVVTce.mjs.map → Layout-gqm-mRb2.mjs.map} +1 -1
- package/dist/admin/{Layout-v-mkhXKv.js → Layout-rp7YlCuF.js} +3 -3
- package/dist/admin/{Layout-v-mkhXKv.js.map → Layout-rp7YlCuF.js.map} +1 -1
- package/dist/admin/{Layout-T0g-F0J1.js → Layout-tPXv8ts4.js} +2 -2
- package/dist/admin/{Layout-T0g-F0J1.js.map → Layout-tPXv8ts4.js.map} +1 -1
- package/dist/admin/{ListConfigurationPage-bltmUKBT.mjs → ListConfigurationPage-1JkDop6y.mjs} +2 -2
- package/dist/admin/{ListConfigurationPage-bltmUKBT.mjs.map → ListConfigurationPage-1JkDop6y.mjs.map} +1 -1
- package/dist/admin/{ListConfigurationPage-MwlySSVK.js → ListConfigurationPage-egv99PTx.js} +2 -2
- package/dist/admin/{ListConfigurationPage-MwlySSVK.js.map → ListConfigurationPage-egv99PTx.js.map} +1 -1
- package/dist/admin/{ListPage-L-_ih7Hh.js → ListPage-5VIwPlnG.js} +3 -3
- package/dist/admin/{ListPage-L-_ih7Hh.js.map → ListPage-5VIwPlnG.js.map} +1 -1
- package/dist/admin/{ListPage-t2yAStC4.js → ListPage-85XB15gk.js} +4 -4
- package/dist/admin/{ListPage-t2yAStC4.js.map → ListPage-85XB15gk.js.map} +1 -1
- package/dist/admin/{ListPage-jUKAQtpH.js → ListPage-NG7c9Zx-.js} +3 -3
- package/dist/admin/{ListPage-jUKAQtpH.js.map → ListPage-NG7c9Zx-.js.map} +1 -1
- package/dist/admin/{ListPage-VNJqXKYM.js → ListPage-Wf8HxliA.js} +3 -3
- package/dist/admin/{ListPage-VNJqXKYM.js.map → ListPage-Wf8HxliA.js.map} +1 -1
- package/dist/admin/{ListPage-6TwMzZ42.mjs → ListPage-Y0vGfxO1.mjs} +3 -3
- package/dist/admin/{ListPage-6TwMzZ42.mjs.map → ListPage-Y0vGfxO1.mjs.map} +1 -1
- package/dist/admin/{ListPage-ea3ZLj4B.mjs → ListPage-_1MCPNWC.mjs} +3 -3
- package/dist/admin/{ListPage-ea3ZLj4B.mjs.map → ListPage-_1MCPNWC.mjs.map} +1 -1
- package/dist/admin/{ListPage-cB1S2S4t.mjs → ListPage-bdblB4wE.mjs} +2 -2
- package/dist/admin/{ListPage-cB1S2S4t.mjs.map → ListPage-bdblB4wE.mjs.map} +1 -1
- package/dist/admin/{ListPage-zMNnrnTB.js → ListPage-d0uTS6lH.js} +2 -2
- package/dist/admin/{ListPage-zMNnrnTB.js.map → ListPage-d0uTS6lH.js.map} +1 -1
- package/dist/admin/{ListPage-nvhOIoAg.js → ListPage-e0975Wh-.js} +7 -7
- package/dist/admin/{ListPage-nvhOIoAg.js.map → ListPage-e0975Wh-.js.map} +1 -1
- package/dist/admin/{ListPage-pP9hYRl0.mjs → ListPage-eMKRFxzM.mjs} +3 -3
- package/dist/admin/{ListPage-pP9hYRl0.mjs.map → ListPage-eMKRFxzM.mjs.map} +1 -1
- package/dist/admin/{ListPage-QKnSioEM.mjs → ListPage-tFqx6zb_.mjs} +7 -7
- package/dist/admin/{ListPage-QKnSioEM.mjs.map → ListPage-tFqx6zb_.mjs.map} +1 -1
- package/dist/admin/{ListPage-tR89wtOV.mjs → ListPage-v07yRAHk.mjs} +4 -4
- package/dist/admin/{ListPage-tR89wtOV.mjs.map → ListPage-v07yRAHk.mjs.map} +1 -1
- package/dist/admin/{ListView-TAmGuKTG.mjs → ListView-9shnR2xp.mjs} +2 -2
- package/dist/admin/{ListView-TAmGuKTG.mjs.map → ListView-9shnR2xp.mjs.map} +1 -1
- package/dist/admin/{ListView-I9Hfj5vj.js → ListView-IaEe1_Uy.js} +2 -2
- package/dist/admin/{ListView-I9Hfj5vj.js.map → ListView-IaEe1_Uy.js.map} +1 -1
- package/dist/admin/{ListView-mCiRJwrY.js → ListView-_EZZ571X.js} +2 -2
- package/dist/admin/{ListView-mCiRJwrY.js.map → ListView-_EZZ571X.js.map} +1 -1
- package/dist/admin/{ListView-MbnmLD5H.mjs → ListView-z9G1Eash.mjs} +2 -2
- package/dist/admin/{ListView-MbnmLD5H.mjs.map → ListView-z9G1Eash.mjs.map} +1 -1
- package/dist/admin/{ListViewPage-J4KUAgai.mjs → ListViewPage-FE12IpwT.mjs} +6 -6
- package/dist/admin/{ListViewPage-J4KUAgai.mjs.map → ListViewPage-FE12IpwT.mjs.map} +1 -1
- package/dist/admin/{ListViewPage-dluuhb-d.js → ListViewPage-u5WSF93L.js} +6 -6
- package/dist/admin/{ListViewPage-dluuhb-d.js.map → ListViewPage-u5WSF93L.js.map} +1 -1
- package/dist/admin/{Login-eWkr5rD0.mjs → Login-9iKNSYCJ.mjs} +2 -2
- package/dist/admin/{Login-eWkr5rD0.mjs.map → Login-9iKNSYCJ.mjs.map} +1 -1
- package/dist/admin/{Login-xaRTR09T.js → Login-ug0ICazL.js} +2 -2
- package/dist/admin/{Login-xaRTR09T.js.map → Login-ug0ICazL.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-jSJRGswm.mjs → MagicLinkEE-3a4aj5bM.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-jSJRGswm.mjs.map → MagicLinkEE-3a4aj5bM.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-DdAnlnbT.js → MagicLinkEE-TlpYCgSF.js} +3 -3
- package/dist/admin/{MagicLinkEE-DdAnlnbT.js.map → MagicLinkEE-TlpYCgSF.js.map} +1 -1
- package/dist/admin/{MarketplacePage-NuCSMXXA.mjs → MarketplacePage-BBs4GMeX.mjs} +2 -2
- package/dist/admin/{MarketplacePage-NuCSMXXA.mjs.map → MarketplacePage-BBs4GMeX.mjs.map} +1 -1
- package/dist/admin/{MarketplacePage-7R9OXLe5.js → MarketplacePage-GuZItQkJ.js} +2 -2
- package/dist/admin/{MarketplacePage-7R9OXLe5.js.map → MarketplacePage-GuZItQkJ.js.map} +1 -1
- package/dist/admin/{ReviewWorkflowsColumn-fFjISpV-.mjs → ReviewWorkflowsColumn-NUu47oVz.mjs} +2 -2
- package/dist/admin/{ReviewWorkflowsColumn-fFjISpV-.mjs.map → ReviewWorkflowsColumn-NUu47oVz.mjs.map} +1 -1
- package/dist/admin/{ReviewWorkflowsColumn-woA2SXEC.js → ReviewWorkflowsColumn-uIqJfjyd.js} +2 -2
- package/dist/admin/{ReviewWorkflowsColumn-woA2SXEC.js.map → ReviewWorkflowsColumn-uIqJfjyd.js.map} +1 -1
- package/dist/admin/{SelectRoles-IagtXRkz.js → SelectRoles-5vr-vXOm.js} +3 -3
- package/dist/admin/{SelectRoles-IagtXRkz.js.map → SelectRoles-5vr-vXOm.js.map} +1 -1
- package/dist/admin/{SelectRoles-wkrG60gH.mjs → SelectRoles-ytHc3di2.mjs} +3 -3
- package/dist/admin/{SelectRoles-wkrG60gH.mjs.map → SelectRoles-ytHc3di2.mjs.map} +1 -1
- package/dist/admin/{SingleSignOnPage-QtJcKvz1.js → SingleSignOnPage-1Wqj_7y-.js} +2 -2
- package/dist/admin/{SingleSignOnPage-QtJcKvz1.js.map → SingleSignOnPage-1Wqj_7y-.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-EnR7TNHn.mjs → SingleSignOnPage-7oJES3UH.mjs} +2 -2
- package/dist/admin/{SingleSignOnPage-EnR7TNHn.mjs.map → SingleSignOnPage-7oJES3UH.mjs.map} +1 -1
- package/dist/admin/{Table--Lb2Jk8K.mjs → Table-LQhGojNx.mjs} +2 -2
- package/dist/admin/{Table--Lb2Jk8K.mjs.map → Table-LQhGojNx.mjs.map} +1 -1
- package/dist/admin/{Table-EGrwI1DE.js → Table-M5UsBfFs.js} +2 -2
- package/dist/admin/{Table-EGrwI1DE.js.map → Table-M5UsBfFs.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-Vsm3x9aT.mjs → TokenTypeSelect-5o9mvFd7.mjs} +2 -2
- package/dist/admin/{TokenTypeSelect-Vsm3x9aT.mjs.map → TokenTypeSelect-5o9mvFd7.mjs.map} +1 -1
- package/dist/admin/{TokenTypeSelect-nSM_sCJb.js → TokenTypeSelect-ZBDI26vJ.js} +2 -2
- package/dist/admin/{TokenTypeSelect-nSM_sCJb.js.map → TokenTypeSelect-ZBDI26vJ.js.map} +1 -1
- package/dist/admin/{UseCasePage-LDFlFUgh.mjs → UseCasePage-e7rn-aW-.mjs} +2 -2
- package/dist/admin/{UseCasePage-LDFlFUgh.mjs.map → UseCasePage-e7rn-aW-.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-lb8KTjmb.js → UseCasePage-q3u-xs7F.js} +2 -2
- package/dist/admin/{UseCasePage-lb8KTjmb.js.map → UseCasePage-q3u-xs7F.js.map} +1 -1
- package/dist/admin/{constants-aUUP-q78.js → constants-6E1OwHx7.js} +3 -3
- package/dist/admin/{constants-aUUP-q78.js.map → constants-6E1OwHx7.js.map} +1 -1
- package/dist/admin/{constants--TURFsEh.mjs → constants-AdKxCt0x.mjs} +2 -2
- package/dist/admin/{constants--TURFsEh.mjs.map → constants-AdKxCt0x.mjs.map} +1 -1
- package/dist/admin/{constants--6hi2sq7.mjs → constants-D6NLEhwu.mjs} +3 -3
- package/dist/admin/{constants--6hi2sq7.mjs.map → constants-D6NLEhwu.mjs.map} +1 -1
- package/dist/admin/{constants-yG6U1h1n.js → constants-ZZWbRAQT.js} +2 -2
- package/dist/admin/{constants-yG6U1h1n.js.map → constants-ZZWbRAQT.js.map} +1 -1
- package/dist/admin/{index-oXhvt6Nv.mjs → index-1NFAbkxM.mjs} +36 -36
- package/dist/admin/{index-oXhvt6Nv.mjs.map → index-1NFAbkxM.mjs.map} +1 -1
- package/dist/admin/{index-lSQdx61-.js → index-mQQPK-ix.js} +36 -36
- package/dist/admin/{index-lSQdx61-.js.map → index-mQQPK-ix.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/{useAdminRoles-bTVTWj4N.mjs → useAdminRoles-BG7b996L.mjs} +2 -2
- package/dist/admin/{useAdminRoles-bTVTWj4N.mjs.map → useAdminRoles-BG7b996L.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-efJpe2jv.js → useAdminRoles-THWXour6.js} +2 -2
- package/dist/admin/{useAdminRoles-efJpe2jv.js.map → useAdminRoles-THWXour6.js.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-4B6SglGc.mjs → useLicenseLimitNotification-9DqSZuyc.mjs} +2 -2
- package/dist/admin/{useLicenseLimitNotification-4B6SglGc.mjs.map → useLicenseLimitNotification-9DqSZuyc.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-lLyTIkNR.js → useLicenseLimitNotification-SiWQ5LGo.js} +2 -2
- package/dist/admin/{useLicenseLimitNotification-lLyTIkNR.js.map → useLicenseLimitNotification-SiWQ5LGo.js.map} +1 -1
- package/dist/admin/{useReviewWorkflows-KJq-ld3U.js → useReviewWorkflows-0ty4mwQd.js} +2 -2
- package/dist/admin/{useReviewWorkflows-KJq-ld3U.js.map → useReviewWorkflows-0ty4mwQd.js.map} +1 -1
- package/dist/admin/{useReviewWorkflows-1IXSO8ml.mjs → useReviewWorkflows-HwyFyit7.mjs} +2 -2
- package/dist/admin/{useReviewWorkflows-1IXSO8ml.mjs.map → useReviewWorkflows-HwyFyit7.mjs.map} +1 -1
- package/dist/admin/{validateWorkflow-1RnC2GKb.js → validateWorkflow-99y3bkNx.js} +2 -2
- package/dist/admin/{validateWorkflow-1RnC2GKb.js.map → validateWorkflow-99y3bkNx.js.map} +1 -1
- package/dist/admin/{validateWorkflow-BOHXHGsM.mjs → validateWorkflow-ubLwZqCK.mjs} +2 -2
- package/dist/admin/{validateWorkflow-BOHXHGsM.mjs.map → validateWorkflow-ubLwZqCK.mjs.map} +1 -1
- package/dist/package.json.d.ts +1 -1
- package/package.json +12 -12
package/dist/admin/{ListConfigurationPage-MwlySSVK.js.map → ListConfigurationPage-egv99PTx.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListConfigurationPage-MwlySSVK.js","sources":["../../admin/src/content-manager/pages/ListConfiguration/components/Header.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/Settings.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/EditFieldForm.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/DraggableCard.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/SortDisplayedFields.tsx","../../admin/src/content-manager/pages/ListConfiguration/ListConfigurationPage.tsx"],"sourcesContent":["import { Button, HeaderLayout } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { BackButton } from '../../../../features/BackButton';\nimport { capitalise } from '../../../../utils/strings';\nimport { getTranslation } from '../../../utils/translations';\n\ninterface HeaderProps {\n collectionType: string;\n name: string;\n model: string;\n}\n\nconst Header = ({ name }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n const modified = useForm('Header', (state) => state.modified);\n const isSubmitting = useForm('Header', (state) => state.isSubmitting);\n\n return (\n <HeaderLayout\n navigationAction={<BackButton />}\n primaryAction={\n <Button size=\"S\" disabled={!modified} type=\"submit\" loading={isSubmitting}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.description.list-settings'),\n defaultMessage: 'Define the settings of the list view.',\n })}\n title={formatMessage(\n {\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.title'),\n defaultMessage: 'Configure the view - {name}',\n },\n { name: capitalise(name) }\n )}\n />\n );\n};\n\nexport { Header };\nexport type { HeaderProps };\n","import * as React from 'react';\n\nimport { Flex, Grid, GridItem, Typography, useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { FormLayoutInputProps } from '../../../../types/forms';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { type EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport { getTranslation } from '../../../utils/translations';\nimport { type FormData } from '../ListConfigurationPage';\n\nconst EXCLUDED_SORT_ATTRIBUTE_TYPES = [\n 'media',\n 'richtext',\n 'dynamiczone',\n 'relation',\n 'component',\n 'json',\n 'blocks',\n];\n\ninterface SortOption {\n value: string;\n label: string;\n}\n\ninterface SettingsProps {\n hasReviewWorkflows?: boolean;\n}\n\nconst Settings = () => {\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const { schema } = useDoc();\n\n const layout = useForm<FormData['layout']>('Settings', (state) => state.values.layout ?? []);\n const currentSortBy = useForm<FormData['settings']['defaultSortBy']>(\n 'Settings',\n (state) => state.values.settings.defaultSortBy\n );\n const onChange = useForm('Settings', (state) => state.onChange);\n\n const sortOptionsCE = React.useMemo(\n () =>\n Object.values(layout).reduce<SortOption[]>((acc, field) => {\n if (schema && !EXCLUDED_SORT_ATTRIBUTE_TYPES.includes(schema.attributes[field.name].type)) {\n acc.push({\n value: field.name,\n label: typeof field.label !== 'string' ? formatMessage(field.label) : field.label,\n });\n }\n\n return acc;\n }, []),\n [formatMessage, layout, schema]\n );\n\n const sortOptions = useEnterprise(\n sortOptionsCE,\n async () => {\n return (\n await import(\n '../../../../../../ee/admin/src/content-manager/pages/ListSettingsView/constants'\n )\n ).REVIEW_WORKFLOW_STAGE_SORT_OPTION_NAME;\n },\n {\n combine(ceOptions, eeOption) {\n return [...ceOptions, { ...eeOption, label: formatMessage(eeOption.label) }];\n },\n defaultValue: sortOptionsCE,\n enabled: !!schema?.options?.reviewWorkflows,\n }\n ) as SortOption[];\n\n const sortOptionsSorted = sortOptions.sort((a, b) => formatter.compare(a.label, b.label));\n\n React.useEffect(() => {\n if (sortOptionsSorted.findIndex((opt) => opt.value === currentSortBy) === -1) {\n onChange('settings.defaultSortBy', sortOptionsSorted[0]?.value);\n }\n }, [currentSortBy, onChange, sortOptionsSorted]);\n\n const formLayout = React.useMemo(\n () =>\n SETTINGS_FORM_LAYOUT.map((row) =>\n row.map((field) => {\n if (field.type === 'enumeration') {\n return {\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n options: field.name === 'settings.defaultSortBy' ? sortOptionsSorted : field.options,\n };\n } else {\n return {\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n };\n }\n })\n ) as [top: EditFieldLayout[], bottom: EditFieldLayout[]],\n [formatMessage, sortOptionsSorted]\n );\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.settings'),\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid key=\"bottom\" gap={4}>\n {formLayout.map((row) =>\n row.map(({ size, ...field }) => (\n <GridItem key={field.name} s={12} col={size}>\n {/* @ts-expect-error – issue with EnumerationProps conflicting with InputProps */}\n <InputRenderer {...field} />\n </GridItem>\n ))\n )}\n </Grid>\n </Flex>\n );\n};\n\nconst SETTINGS_FORM_LAYOUT: FormLayoutInputProps[][] = [\n [\n {\n label: {\n id: getTranslation('form.Input.search'),\n defaultMessage: 'Enable search',\n },\n name: 'settings.searchable',\n size: 4,\n type: 'boolean' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.filters'),\n defaultMessage: 'Enable filters',\n },\n name: 'settings.filterable',\n size: 4,\n type: 'boolean' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.bulkActions'),\n defaultMessage: 'Enable bulk actions',\n },\n name: 'settings.bulkable',\n size: 4,\n type: 'boolean' as const,\n },\n ],\n [\n {\n hint: {\n id: getTranslation('form.Input.pageEntries.inputDescription'),\n defaultMessage: 'Note: You can override this value in the Collection Type settings page.',\n },\n label: {\n id: getTranslation('form.Input.pageEntries'),\n defaultMessage: 'Entries per page',\n },\n name: 'settings.pageSize',\n options: ['10', '20', '50', '100'].map((value) => ({ value, label: value })),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.defaultSort'),\n defaultMessage: 'Default sort attribute',\n },\n name: 'settings.defaultSortBy',\n options: [],\n size: 3,\n type: 'enumeration' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.sort.order'),\n defaultMessage: 'Default sort order',\n },\n name: 'settings.defaultSortOrder',\n options: ['ASC', 'DESC'].map((value) => ({ value, label: value })),\n size: 3,\n type: 'enumeration' as const,\n },\n ],\n];\n\nexport { Settings, type SettingsProps };\n","import { useId } from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Form, useField } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../features/Notifications';\nimport { capitalise } from '../../../../utils/strings';\nimport { FieldTypeIcon } from '../../../components/FieldTypeIcon';\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ListFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { FormData } from '../ListConfigurationPage';\n\ninterface EditFieldFormProps extends Pick<ListFieldLayout, 'attribute'> {\n name: string;\n onClose: () => void;\n}\n\nconst FIELD_SCHEMA = yup.object().shape({\n label: yup.string().required(),\n sortable: yup.boolean(),\n});\n\nconst EditFieldForm = ({ attribute, name, onClose }: EditFieldFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const id = useId();\n\n const { value, onChange } = useField<FormData['layout'][number]>(name);\n\n if (!value) {\n // This is very unlikely to happen, but it ensures the form is not opened without a value.\n console.error(\n \"You've opened a field to edit without it being part of the form, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.containers.list-settings.modal-form.error',\n defaultMessage: 'An error occurred while trying to open the form.',\n }),\n type: 'danger',\n });\n\n return null;\n }\n\n let shouldDisplaySortToggle = !['media', 'relation'].includes(attribute.type);\n\n if ('relation' in attribute && ['oneWay', 'oneToOne', 'manyToOne'].includes(attribute.relation)) {\n shouldDisplaySortToggle = true;\n }\n\n return (\n <ModalLayout onClose={onClose} labelledBy={id}>\n <Form\n method=\"PUT\"\n initialValues={value}\n validationSchema={FIELD_SCHEMA}\n onSubmit={(data) => {\n onChange(name, data);\n onClose();\n }}\n >\n <ModalHeader>\n <HeaderContainer>\n {/* @ts-expect-error attribute.type === custom does not work here */}\n <FieldTypeIcon type={attribute.type} />\n <Typography fontWeight=\"bold\" textColor=\"neutral800\" as=\"h2\" id={id}>\n {formatMessage(\n {\n id: getTranslation('containers.list-settings.modal-form.label'),\n defaultMessage: 'Edit {fieldName}',\n },\n { fieldName: capitalise(value.label) }\n )}\n </Typography>\n </HeaderContainer>\n </ModalHeader>\n <ModalBody>\n <Grid gap={4}>\n {[\n {\n name: 'label',\n label: formatMessage({\n id: getTranslation('form.Input.label'),\n defaultMessage: 'Label',\n }),\n hint: formatMessage({\n id: getTranslation('form.Input.label.inputDescription'),\n defaultMessage: \"This value overrides the label displayed in the table's head\",\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: getTranslation('form.Input.sort.field'),\n defaultMessage: 'Enable sort on this field',\n }),\n name: 'sortable',\n size: 6,\n type: 'boolean' as const,\n },\n ]\n .filter(\n (field) =>\n field.name !== 'sortable' ||\n (field.name === 'sortable' && shouldDisplaySortToggle)\n )\n .map(({ size, ...field }) => (\n <GridItem key={field.name} s={12} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n }\n endActions={\n <Button type=\"submit\">\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n }\n />\n </Form>\n </ModalLayout>\n );\n};\n\nconst HeaderContainer = styled(Flex)`\n svg {\n width: ${32 / 16}rem;\n height: ${24 / 16}rem;\n margin-right: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nexport { EditFieldForm };\nexport type { EditFieldFormProps };\n","import * as React from 'react';\n\nimport { Box, Flex, Typography, useComposedRefs } from '@strapi/design-system';\nimport { Cross, Drag, Pencil } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { CardDragPreview } from '../../../components/DragPreviews/CardDragPreview';\nimport { ItemTypes } from '../../../constants/dragAndDrop';\nimport { useDragAndDrop } from '../../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../../utils/translations';\n\nimport { EditFieldForm } from './EditFieldForm';\n\nimport type { ListFieldLayout } from '../../../hooks/useDocumentLayout';\n\ntype DraggableCardProps = Omit<ListFieldLayout, 'label'> & {\n label: string;\n index: number;\n isDraggingSibling: boolean;\n onMoveField: (dragIndex: number, hoverIndex: number) => void;\n onRemoveField: () => void;\n setIsDraggingSibling: (isDragging: boolean) => void;\n};\n\nconst DraggableCard = ({\n attribute,\n index,\n isDraggingSibling,\n label,\n name,\n onMoveField,\n onRemoveField,\n setIsDraggingSibling,\n}: DraggableCardProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const [, forceRerenderAfterDnd] = React.useState(false);\n\n const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop(true, {\n type: ItemTypes.FIELD,\n item: { index, label, name },\n index,\n onMoveItem: onMoveField,\n onEnd: () => setIsDraggingSibling(false),\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef]);\n\n React.useEffect(() => {\n if (isDragging) {\n setIsDraggingSibling(true);\n }\n }, [isDragging, setIsDraggingSibling]);\n\n // Effect in order to force a rerender after reordering the components\n // Since we are removing the Accordion when doing the DnD we are losing the dragRef, therefore the replaced element cannot be dragged\n // anymore, this hack forces a rerender in order to apply the dragRef\n React.useEffect(() => {\n if (!isDraggingSibling) {\n forceRerenderAfterDnd((prev) => !prev);\n }\n }, [isDraggingSibling]);\n\n const composedRefs = useComposedRefs<HTMLSpanElement>(dragRef, objectRef);\n\n return (\n <FieldWrapper ref={dropRef}>\n {isDragging && <CardDragPreview label={label} />}\n {!isDragging && isDraggingSibling && <CardDragPreview isSibling label={label} />}\n\n {!isDragging && !isDraggingSibling && (\n <FieldContainer\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n justifyContent=\"space-between\"\n onClick={() => setIsModalOpen(true)}\n >\n <Flex gap={3}>\n <DragButton\n as=\"span\"\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: label }\n )}\n onClick={(e) => e.stopPropagation()}\n ref={composedRefs}\n >\n <Drag />\n </DragButton>\n <Typography fontWeight=\"bold\">{label}</Typography>\n </Flex>\n <Flex paddingLeft={3}>\n <ActionButton\n onClick={(e) => {\n e.stopPropagation();\n setIsModalOpen(true);\n }}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: label }\n )}\n type=\"button\"\n >\n <Pencil />\n </ActionButton>\n <ActionButton\n onClick={onRemoveField}\n data-testid={`delete-${name}`}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: label }\n )}\n type=\"button\"\n >\n <Cross />\n </ActionButton>\n </Flex>\n </FieldContainer>\n )}\n {isModalOpen && (\n <EditFieldForm\n attribute={attribute}\n name={`layout.${index}`}\n onClose={() => setIsModalOpen(false)}\n />\n )}\n </FieldWrapper>\n );\n};\n\nconst ActionButton = styled.button`\n display: flex;\n align-items: center;\n height: ${({ theme }) => theme.spaces[7]};\n\n &:last-child {\n padding: 0 ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst DragButton = styled(ActionButton)`\n padding: 0 ${({ theme }) => theme.spaces[3]};\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n\n svg {\n width: ${12 / 16}rem;\n height: ${12 / 16}rem;\n }\n`;\n\nconst FieldContainer = styled(Flex)`\n max-height: ${32 / 16}rem;\n cursor: pointer;\n\n svg {\n width: ${10 / 16}rem;\n height: ${10 / 16}rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\nconst FieldWrapper = styled(Box)`\n &:last-child {\n padding-right: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nexport { DraggableCard };\nexport type { DraggableCardProps };\n","import * as React from 'react';\n\nimport { Box, Flex, VisuallyHidden, Typography } from '@strapi/design-system';\nimport { Menu } from '@strapi/design-system/v2';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useGetContentTypeConfigurationQuery } from '../../../services/contentTypes';\nimport { checkIfAttributeIsDisplayable } from '../../../utils/attributes';\nimport { getTranslation } from '../../../utils/translations';\n\nimport { DraggableCard, DraggableCardProps } from './DraggableCard';\n\nimport type { ListLayout } from '../../../hooks/useDocumentLayout';\nimport type { FormData } from '../ListConfigurationPage';\n\ninterface SortDisplayedFieldsProps extends Pick<ListLayout, 'layout'> {}\n\nconst SortDisplayedFields = () => {\n const { formatMessage } = useIntl();\n const { model, schema } = useDoc();\n const [isDraggingSibling, setIsDraggingSibling] = React.useState(false);\n const [lastAction, setLastAction] = React.useState<string | null>(null);\n const scrollableContainerRef = React.useRef<HTMLDivElement>(null);\n\n const values = useForm<FormData['layout']>(\n 'SortDisplayedFields',\n (state) => state.values.layout ?? []\n );\n const addFieldRow = useForm('SortDisplayedFields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('SortDisplayedFields', (state) => state.removeFieldRow);\n const moveFieldRow = useForm('SortDisplayedFields', (state) => state.moveFieldRow);\n\n const { metadata: allMetadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} }),\n });\n\n /**\n * This is our list of fields that are not displayed in the current layout\n * so we create their default state to be added to the layout.\n */\n const nonDisplayedFields = React.useMemo(() => {\n if (!schema) {\n return [];\n }\n\n const displayedFieldNames = values.map((field) => field.name);\n\n return Object.entries(schema.attributes).reduce<Array<FormData['layout'][number]>>(\n (acc, [name, attribute]) => {\n if (!displayedFieldNames.includes(name) && checkIfAttributeIsDisplayable(attribute)) {\n const { list: metadata } = allMetadata[name];\n\n acc.push({\n name,\n label: metadata.label || name,\n sortable: metadata.sortable,\n });\n }\n\n return acc;\n },\n []\n );\n }, [allMetadata, values, schema]);\n\n const handleAddField = (field: FormData['layout'][number]) => {\n setLastAction('add');\n addFieldRow('layout', field);\n };\n\n const handleRemoveField = (index: number) => {\n setLastAction('remove');\n removeFieldRow('layout', index);\n };\n\n const handleMoveField: DraggableCardProps['onMoveField'] = (dragIndex, hoverIndex) => {\n moveFieldRow('layout', dragIndex, hoverIndex);\n };\n\n React.useEffect(() => {\n if (lastAction === 'add' && scrollableContainerRef?.current) {\n scrollableContainerRef.current.scrollLeft = scrollableContainerRef.current.scrollWidth;\n }\n }, [lastAction]);\n\n return (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.view'),\n defaultMessage: 'View',\n })}\n </Typography>\n\n <Flex padding={4} borderColor=\"neutral300\" borderStyle=\"dashed\" borderWidth=\"1px\" hasRadius>\n <Box flex=\"1\" overflow=\"auto hidden\" ref={scrollableContainerRef}>\n <Flex gap={3}>\n {values.map((field, index) => (\n <DraggableCard\n key={field.name}\n index={index}\n isDraggingSibling={isDraggingSibling}\n onMoveField={handleMoveField}\n onRemoveField={() => handleRemoveField(index)}\n setIsDraggingSibling={setIsDraggingSibling}\n {...field}\n attribute={schema!.attributes[field.name]}\n label={typeof field.label === 'object' ? formatMessage(field.label) : field.label}\n />\n ))}\n </Flex>\n </Box>\n\n <Menu.Root>\n <Menu.Trigger\n paddingLeft={2}\n paddingRight={2}\n justifyContent=\"center\"\n endIcon={null}\n disabled={nonDisplayedFields.length === 0}\n variant=\"tertiary\"\n >\n <VisuallyHidden as=\"span\">\n {formatMessage({\n id: getTranslation('components.FieldSelect.label'),\n defaultMessage: 'Add a field',\n })}\n </VisuallyHidden>\n <Plus aria-hidden focusable={false} style={{ position: 'relative', top: 2 }} />\n </Menu.Trigger>\n <Menu.Content>\n {nonDisplayedFields.map((field) => (\n <Menu.Item key={field.name} onSelect={() => handleAddField(field)}>\n {typeof field.label === 'object' ? formatMessage(field.label) : field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Flex>\n );\n};\n\nexport { SortDisplayedFields };\nexport type { SortDisplayedFieldsProps };\n","import * as React from 'react';\n\nimport { ContentLayout, Divider, Flex, Layout, Main } from '@strapi/design-system';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { Navigate } from 'react-router-dom';\n\nimport { Form, FormProps } from '../../../components/Form';\nimport { Page } from '../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { setIn } from '../../../utils/objects';\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { useDoc } from '../../hooks/useDocument';\nimport { ListFieldLayout, ListLayout, useDocLayout } from '../../hooks/useDocumentLayout';\nimport { useUpdateContentTypeConfigurationMutation } from '../../services/contentTypes';\n\nimport { Header } from './components/Header';\nimport { Settings } from './components/Settings';\nimport { SortDisplayedFields } from './components/SortDisplayedFields';\n\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\ninterface FormData extends Pick<ListLayout, 'settings'> {\n layout: Array<Pick<ListFieldLayout, 'sortable' | 'name'> & { label: string }>;\n}\n\nconst ListConfiguration = () => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { model, collectionType } = useDoc();\n\n const { isLoading: isLoadingLayout, list, edit } = useDocLayout();\n\n const [updateContentTypeConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: FormProps<FormData>['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n const layoutData = data.layout ?? [];\n /**\n * We reconstruct the metadatas object by taking the existing edit metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(edit.metadatas).reduce<Contracts.ContentTypes.Metadatas>(\n (acc, [name, editMeta]) => {\n const { mainField: _mainField, ...listMeta } = list.metadatas[name];\n\n const { label, sortable } = layoutData.find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: editMeta,\n list: {\n ...listMeta,\n label: label || listMeta.label,\n sortable: sortable || listMeta.sortable,\n },\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateContentTypeConfiguration({\n layouts: {\n edit: edit.layout.flatMap((panel) =>\n panel.map((row) => row.map(({ name, size }) => ({ name, size })))\n ),\n list: layoutData.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditListSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n console.error(err);\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const initialValues = React.useMemo(() => {\n return {\n layout: list.layout.map(({ label, sortable, name }) => ({\n label: typeof label === 'string' ? label : formatMessage(label),\n sortable,\n name,\n })),\n settings: list.settings,\n } satisfies FormData;\n }, [formatMessage, list.layout, list.settings]);\n\n if (collectionType === SINGLE_TYPES) {\n return <Navigate to={`/single-types/${model}`} />;\n }\n\n if (isLoadingLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Layout>\n <Helmet title={`Configure ${list.settings.displayName} List View | Strapi`} />\n <Main>\n <Form initialValues={initialValues} onSubmit={handleSubmit} method=\"PUT\">\n <Header\n collectionType={collectionType}\n model={model}\n name={list.settings.displayName ?? ''}\n />\n <ContentLayout>\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={6}\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Settings />\n <Divider />\n <SortDisplayedFields />\n </Flex>\n </ContentLayout>\n </Form>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedListConfiguration = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListConfiguration />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListConfiguration, ListConfiguration };\nexport type { FormData };\n"],"names":["useIntl","useForm","jsx","HeaderLayout","BackButton","Button","getTranslation","capitalise","useCollator","useDoc","layout","React","useEnterprise","Flex","Typography","Grid","GridItem","InputRenderer","yup","useNotification","useId","useField","ModalLayout","jsxs","Form","ModalHeader","FieldTypeIcon","ModalBody","ModalFooter","styled","useDragAndDrop","ItemTypes","getEmptyImage","useComposedRefs","CardDragPreview","Drag","Pencil","Cross","Box","useGetContentTypeConfigurationQuery","checkIfAttributeIsDisplayable","Menu","VisuallyHidden","Plus","useTracking","useAPIErrorHandler","useDocLayout","useUpdateContentTypeConfigurationMutation","setIn","SINGLE_TYPES","Navigate","Page","Layout","Helmet","Main","ContentLayout","Divider","useTypedSelector"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListConfigurationPage-egv99PTx.js","sources":["../../admin/src/content-manager/pages/ListConfiguration/components/Header.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/Settings.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/EditFieldForm.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/DraggableCard.tsx","../../admin/src/content-manager/pages/ListConfiguration/components/SortDisplayedFields.tsx","../../admin/src/content-manager/pages/ListConfiguration/ListConfigurationPage.tsx"],"sourcesContent":["import { Button, HeaderLayout } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { BackButton } from '../../../../features/BackButton';\nimport { capitalise } from '../../../../utils/strings';\nimport { getTranslation } from '../../../utils/translations';\n\ninterface HeaderProps {\n collectionType: string;\n name: string;\n model: string;\n}\n\nconst Header = ({ name }: HeaderProps) => {\n const { formatMessage } = useIntl();\n\n const modified = useForm('Header', (state) => state.modified);\n const isSubmitting = useForm('Header', (state) => state.isSubmitting);\n\n return (\n <HeaderLayout\n navigationAction={<BackButton />}\n primaryAction={\n <Button size=\"S\" disabled={!modified} type=\"submit\" loading={isSubmitting}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.description.list-settings'),\n defaultMessage: 'Define the settings of the list view.',\n })}\n title={formatMessage(\n {\n id: getTranslation('components.SettingsViewWrapper.pluginHeader.title'),\n defaultMessage: 'Configure the view - {name}',\n },\n { name: capitalise(name) }\n )}\n />\n );\n};\n\nexport { Header };\nexport type { HeaderProps };\n","import * as React from 'react';\n\nimport { Flex, Grid, GridItem, Typography, useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { FormLayoutInputProps } from '../../../../types/forms';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { type EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport { getTranslation } from '../../../utils/translations';\nimport { type FormData } from '../ListConfigurationPage';\n\nconst EXCLUDED_SORT_ATTRIBUTE_TYPES = [\n 'media',\n 'richtext',\n 'dynamiczone',\n 'relation',\n 'component',\n 'json',\n 'blocks',\n];\n\ninterface SortOption {\n value: string;\n label: string;\n}\n\ninterface SettingsProps {\n hasReviewWorkflows?: boolean;\n}\n\nconst Settings = () => {\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const { schema } = useDoc();\n\n const layout = useForm<FormData['layout']>('Settings', (state) => state.values.layout ?? []);\n const currentSortBy = useForm<FormData['settings']['defaultSortBy']>(\n 'Settings',\n (state) => state.values.settings.defaultSortBy\n );\n const onChange = useForm('Settings', (state) => state.onChange);\n\n const sortOptionsCE = React.useMemo(\n () =>\n Object.values(layout).reduce<SortOption[]>((acc, field) => {\n if (schema && !EXCLUDED_SORT_ATTRIBUTE_TYPES.includes(schema.attributes[field.name].type)) {\n acc.push({\n value: field.name,\n label: typeof field.label !== 'string' ? formatMessage(field.label) : field.label,\n });\n }\n\n return acc;\n }, []),\n [formatMessage, layout, schema]\n );\n\n const sortOptions = useEnterprise(\n sortOptionsCE,\n async () => {\n return (\n await import(\n '../../../../../../ee/admin/src/content-manager/pages/ListSettingsView/constants'\n )\n ).REVIEW_WORKFLOW_STAGE_SORT_OPTION_NAME;\n },\n {\n combine(ceOptions, eeOption) {\n return [...ceOptions, { ...eeOption, label: formatMessage(eeOption.label) }];\n },\n defaultValue: sortOptionsCE,\n enabled: !!schema?.options?.reviewWorkflows,\n }\n ) as SortOption[];\n\n const sortOptionsSorted = sortOptions.sort((a, b) => formatter.compare(a.label, b.label));\n\n React.useEffect(() => {\n if (sortOptionsSorted.findIndex((opt) => opt.value === currentSortBy) === -1) {\n onChange('settings.defaultSortBy', sortOptionsSorted[0]?.value);\n }\n }, [currentSortBy, onChange, sortOptionsSorted]);\n\n const formLayout = React.useMemo(\n () =>\n SETTINGS_FORM_LAYOUT.map((row) =>\n row.map((field) => {\n if (field.type === 'enumeration') {\n return {\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n options: field.name === 'settings.defaultSortBy' ? sortOptionsSorted : field.options,\n };\n } else {\n return {\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n };\n }\n })\n ) as [top: EditFieldLayout[], bottom: EditFieldLayout[]],\n [formatMessage, sortOptionsSorted]\n );\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.settings'),\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid key=\"bottom\" gap={4}>\n {formLayout.map((row) =>\n row.map(({ size, ...field }) => (\n <GridItem key={field.name} s={12} col={size}>\n {/* @ts-expect-error – issue with EnumerationProps conflicting with InputProps */}\n <InputRenderer {...field} />\n </GridItem>\n ))\n )}\n </Grid>\n </Flex>\n );\n};\n\nconst SETTINGS_FORM_LAYOUT: FormLayoutInputProps[][] = [\n [\n {\n label: {\n id: getTranslation('form.Input.search'),\n defaultMessage: 'Enable search',\n },\n name: 'settings.searchable',\n size: 4,\n type: 'boolean' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.filters'),\n defaultMessage: 'Enable filters',\n },\n name: 'settings.filterable',\n size: 4,\n type: 'boolean' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.bulkActions'),\n defaultMessage: 'Enable bulk actions',\n },\n name: 'settings.bulkable',\n size: 4,\n type: 'boolean' as const,\n },\n ],\n [\n {\n hint: {\n id: getTranslation('form.Input.pageEntries.inputDescription'),\n defaultMessage: 'Note: You can override this value in the Collection Type settings page.',\n },\n label: {\n id: getTranslation('form.Input.pageEntries'),\n defaultMessage: 'Entries per page',\n },\n name: 'settings.pageSize',\n options: ['10', '20', '50', '100'].map((value) => ({ value, label: value })),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.defaultSort'),\n defaultMessage: 'Default sort attribute',\n },\n name: 'settings.defaultSortBy',\n options: [],\n size: 3,\n type: 'enumeration' as const,\n },\n {\n label: {\n id: getTranslation('form.Input.sort.order'),\n defaultMessage: 'Default sort order',\n },\n name: 'settings.defaultSortOrder',\n options: ['ASC', 'DESC'].map((value) => ({ value, label: value })),\n size: 3,\n type: 'enumeration' as const,\n },\n ],\n];\n\nexport { Settings, type SettingsProps };\n","import { useId } from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Form, useField } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../features/Notifications';\nimport { capitalise } from '../../../../utils/strings';\nimport { FieldTypeIcon } from '../../../components/FieldTypeIcon';\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ListFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { FormData } from '../ListConfigurationPage';\n\ninterface EditFieldFormProps extends Pick<ListFieldLayout, 'attribute'> {\n name: string;\n onClose: () => void;\n}\n\nconst FIELD_SCHEMA = yup.object().shape({\n label: yup.string().required(),\n sortable: yup.boolean(),\n});\n\nconst EditFieldForm = ({ attribute, name, onClose }: EditFieldFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const id = useId();\n\n const { value, onChange } = useField<FormData['layout'][number]>(name);\n\n if (!value) {\n // This is very unlikely to happen, but it ensures the form is not opened without a value.\n console.error(\n \"You've opened a field to edit without it being part of the form, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.containers.list-settings.modal-form.error',\n defaultMessage: 'An error occurred while trying to open the form.',\n }),\n type: 'danger',\n });\n\n return null;\n }\n\n let shouldDisplaySortToggle = !['media', 'relation'].includes(attribute.type);\n\n if ('relation' in attribute && ['oneWay', 'oneToOne', 'manyToOne'].includes(attribute.relation)) {\n shouldDisplaySortToggle = true;\n }\n\n return (\n <ModalLayout onClose={onClose} labelledBy={id}>\n <Form\n method=\"PUT\"\n initialValues={value}\n validationSchema={FIELD_SCHEMA}\n onSubmit={(data) => {\n onChange(name, data);\n onClose();\n }}\n >\n <ModalHeader>\n <HeaderContainer>\n {/* @ts-expect-error attribute.type === custom does not work here */}\n <FieldTypeIcon type={attribute.type} />\n <Typography fontWeight=\"bold\" textColor=\"neutral800\" as=\"h2\" id={id}>\n {formatMessage(\n {\n id: getTranslation('containers.list-settings.modal-form.label'),\n defaultMessage: 'Edit {fieldName}',\n },\n { fieldName: capitalise(value.label) }\n )}\n </Typography>\n </HeaderContainer>\n </ModalHeader>\n <ModalBody>\n <Grid gap={4}>\n {[\n {\n name: 'label',\n label: formatMessage({\n id: getTranslation('form.Input.label'),\n defaultMessage: 'Label',\n }),\n hint: formatMessage({\n id: getTranslation('form.Input.label.inputDescription'),\n defaultMessage: \"This value overrides the label displayed in the table's head\",\n }),\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: getTranslation('form.Input.sort.field'),\n defaultMessage: 'Enable sort on this field',\n }),\n name: 'sortable',\n size: 6,\n type: 'boolean' as const,\n },\n ]\n .filter(\n (field) =>\n field.name !== 'sortable' ||\n (field.name === 'sortable' && shouldDisplaySortToggle)\n )\n .map(({ size, ...field }) => (\n <GridItem key={field.name} s={12} col={size}>\n <InputRenderer {...field} />\n </GridItem>\n ))}\n </Grid>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n }\n endActions={\n <Button type=\"submit\">\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n }\n />\n </Form>\n </ModalLayout>\n );\n};\n\nconst HeaderContainer = styled(Flex)`\n svg {\n width: ${32 / 16}rem;\n height: ${24 / 16}rem;\n margin-right: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nexport { EditFieldForm };\nexport type { EditFieldFormProps };\n","import * as React from 'react';\n\nimport { Box, Flex, Typography, useComposedRefs } from '@strapi/design-system';\nimport { Cross, Drag, Pencil } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { CardDragPreview } from '../../../components/DragPreviews/CardDragPreview';\nimport { ItemTypes } from '../../../constants/dragAndDrop';\nimport { useDragAndDrop } from '../../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../../utils/translations';\n\nimport { EditFieldForm } from './EditFieldForm';\n\nimport type { ListFieldLayout } from '../../../hooks/useDocumentLayout';\n\ntype DraggableCardProps = Omit<ListFieldLayout, 'label'> & {\n label: string;\n index: number;\n isDraggingSibling: boolean;\n onMoveField: (dragIndex: number, hoverIndex: number) => void;\n onRemoveField: () => void;\n setIsDraggingSibling: (isDragging: boolean) => void;\n};\n\nconst DraggableCard = ({\n attribute,\n index,\n isDraggingSibling,\n label,\n name,\n onMoveField,\n onRemoveField,\n setIsDraggingSibling,\n}: DraggableCardProps) => {\n const [isModalOpen, setIsModalOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const [, forceRerenderAfterDnd] = React.useState(false);\n\n const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop(true, {\n type: ItemTypes.FIELD,\n item: { index, label, name },\n index,\n onMoveItem: onMoveField,\n onEnd: () => setIsDraggingSibling(false),\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef]);\n\n React.useEffect(() => {\n if (isDragging) {\n setIsDraggingSibling(true);\n }\n }, [isDragging, setIsDraggingSibling]);\n\n // Effect in order to force a rerender after reordering the components\n // Since we are removing the Accordion when doing the DnD we are losing the dragRef, therefore the replaced element cannot be dragged\n // anymore, this hack forces a rerender in order to apply the dragRef\n React.useEffect(() => {\n if (!isDraggingSibling) {\n forceRerenderAfterDnd((prev) => !prev);\n }\n }, [isDraggingSibling]);\n\n const composedRefs = useComposedRefs<HTMLSpanElement>(dragRef, objectRef);\n\n return (\n <FieldWrapper ref={dropRef}>\n {isDragging && <CardDragPreview label={label} />}\n {!isDragging && isDraggingSibling && <CardDragPreview isSibling label={label} />}\n\n {!isDragging && !isDraggingSibling && (\n <FieldContainer\n borderColor=\"neutral150\"\n background=\"neutral100\"\n hasRadius\n justifyContent=\"space-between\"\n onClick={() => setIsModalOpen(true)}\n >\n <Flex gap={3}>\n <DragButton\n as=\"span\"\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.move.field'),\n defaultMessage: 'Move {item}',\n },\n { item: label }\n )}\n onClick={(e) => e.stopPropagation()}\n ref={composedRefs}\n >\n <Drag />\n </DragButton>\n <Typography fontWeight=\"bold\">{label}</Typography>\n </Flex>\n <Flex paddingLeft={3}>\n <ActionButton\n onClick={(e) => {\n e.stopPropagation();\n setIsModalOpen(true);\n }}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.edit.field'),\n defaultMessage: 'Edit {item}',\n },\n { item: label }\n )}\n type=\"button\"\n >\n <Pencil />\n </ActionButton>\n <ActionButton\n onClick={onRemoveField}\n data-testid={`delete-${name}`}\n aria-label={formatMessage(\n {\n id: getTranslation('components.DraggableCard.delete.field'),\n defaultMessage: 'Delete {item}',\n },\n { item: label }\n )}\n type=\"button\"\n >\n <Cross />\n </ActionButton>\n </Flex>\n </FieldContainer>\n )}\n {isModalOpen && (\n <EditFieldForm\n attribute={attribute}\n name={`layout.${index}`}\n onClose={() => setIsModalOpen(false)}\n />\n )}\n </FieldWrapper>\n );\n};\n\nconst ActionButton = styled.button`\n display: flex;\n align-items: center;\n height: ${({ theme }) => theme.spaces[7]};\n\n &:last-child {\n padding: 0 ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst DragButton = styled(ActionButton)`\n padding: 0 ${({ theme }) => theme.spaces[3]};\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n cursor: all-scroll;\n\n svg {\n width: ${12 / 16}rem;\n height: ${12 / 16}rem;\n }\n`;\n\nconst FieldContainer = styled(Flex)`\n max-height: ${32 / 16}rem;\n cursor: pointer;\n\n svg {\n width: ${10 / 16}rem;\n height: ${10 / 16}rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\nconst FieldWrapper = styled(Box)`\n &:last-child {\n padding-right: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nexport { DraggableCard };\nexport type { DraggableCardProps };\n","import * as React from 'react';\n\nimport { Box, Flex, VisuallyHidden, Typography } from '@strapi/design-system';\nimport { Menu } from '@strapi/design-system/v2';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useGetContentTypeConfigurationQuery } from '../../../services/contentTypes';\nimport { checkIfAttributeIsDisplayable } from '../../../utils/attributes';\nimport { getTranslation } from '../../../utils/translations';\n\nimport { DraggableCard, DraggableCardProps } from './DraggableCard';\n\nimport type { ListLayout } from '../../../hooks/useDocumentLayout';\nimport type { FormData } from '../ListConfigurationPage';\n\ninterface SortDisplayedFieldsProps extends Pick<ListLayout, 'layout'> {}\n\nconst SortDisplayedFields = () => {\n const { formatMessage } = useIntl();\n const { model, schema } = useDoc();\n const [isDraggingSibling, setIsDraggingSibling] = React.useState(false);\n const [lastAction, setLastAction] = React.useState<string | null>(null);\n const scrollableContainerRef = React.useRef<HTMLDivElement>(null);\n\n const values = useForm<FormData['layout']>(\n 'SortDisplayedFields',\n (state) => state.values.layout ?? []\n );\n const addFieldRow = useForm('SortDisplayedFields', (state) => state.addFieldRow);\n const removeFieldRow = useForm('SortDisplayedFields', (state) => state.removeFieldRow);\n const moveFieldRow = useForm('SortDisplayedFields', (state) => state.moveFieldRow);\n\n const { metadata: allMetadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} }),\n });\n\n /**\n * This is our list of fields that are not displayed in the current layout\n * so we create their default state to be added to the layout.\n */\n const nonDisplayedFields = React.useMemo(() => {\n if (!schema) {\n return [];\n }\n\n const displayedFieldNames = values.map((field) => field.name);\n\n return Object.entries(schema.attributes).reduce<Array<FormData['layout'][number]>>(\n (acc, [name, attribute]) => {\n if (!displayedFieldNames.includes(name) && checkIfAttributeIsDisplayable(attribute)) {\n const { list: metadata } = allMetadata[name];\n\n acc.push({\n name,\n label: metadata.label || name,\n sortable: metadata.sortable,\n });\n }\n\n return acc;\n },\n []\n );\n }, [allMetadata, values, schema]);\n\n const handleAddField = (field: FormData['layout'][number]) => {\n setLastAction('add');\n addFieldRow('layout', field);\n };\n\n const handleRemoveField = (index: number) => {\n setLastAction('remove');\n removeFieldRow('layout', index);\n };\n\n const handleMoveField: DraggableCardProps['onMoveField'] = (dragIndex, hoverIndex) => {\n moveFieldRow('layout', dragIndex, hoverIndex);\n };\n\n React.useEffect(() => {\n if (lastAction === 'add' && scrollableContainerRef?.current) {\n scrollableContainerRef.current.scrollLeft = scrollableContainerRef.current.scrollWidth;\n }\n }, [lastAction]);\n\n return (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: getTranslation('containers.SettingPage.view'),\n defaultMessage: 'View',\n })}\n </Typography>\n\n <Flex padding={4} borderColor=\"neutral300\" borderStyle=\"dashed\" borderWidth=\"1px\" hasRadius>\n <Box flex=\"1\" overflow=\"auto hidden\" ref={scrollableContainerRef}>\n <Flex gap={3}>\n {values.map((field, index) => (\n <DraggableCard\n key={field.name}\n index={index}\n isDraggingSibling={isDraggingSibling}\n onMoveField={handleMoveField}\n onRemoveField={() => handleRemoveField(index)}\n setIsDraggingSibling={setIsDraggingSibling}\n {...field}\n attribute={schema!.attributes[field.name]}\n label={typeof field.label === 'object' ? formatMessage(field.label) : field.label}\n />\n ))}\n </Flex>\n </Box>\n\n <Menu.Root>\n <Menu.Trigger\n paddingLeft={2}\n paddingRight={2}\n justifyContent=\"center\"\n endIcon={null}\n disabled={nonDisplayedFields.length === 0}\n variant=\"tertiary\"\n >\n <VisuallyHidden as=\"span\">\n {formatMessage({\n id: getTranslation('components.FieldSelect.label'),\n defaultMessage: 'Add a field',\n })}\n </VisuallyHidden>\n <Plus aria-hidden focusable={false} style={{ position: 'relative', top: 2 }} />\n </Menu.Trigger>\n <Menu.Content>\n {nonDisplayedFields.map((field) => (\n <Menu.Item key={field.name} onSelect={() => handleAddField(field)}>\n {typeof field.label === 'object' ? formatMessage(field.label) : field.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </Flex>\n );\n};\n\nexport { SortDisplayedFields };\nexport type { SortDisplayedFieldsProps };\n","import * as React from 'react';\n\nimport { ContentLayout, Divider, Flex, Layout, Main } from '@strapi/design-system';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { Navigate } from 'react-router-dom';\n\nimport { Form, FormProps } from '../../../components/Form';\nimport { Page } from '../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { setIn } from '../../../utils/objects';\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { useDoc } from '../../hooks/useDocument';\nimport { ListFieldLayout, ListLayout, useDocLayout } from '../../hooks/useDocumentLayout';\nimport { useUpdateContentTypeConfigurationMutation } from '../../services/contentTypes';\n\nimport { Header } from './components/Header';\nimport { Settings } from './components/Settings';\nimport { SortDisplayedFields } from './components/SortDisplayedFields';\n\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\ninterface FormData extends Pick<ListLayout, 'settings'> {\n layout: Array<Pick<ListFieldLayout, 'sortable' | 'name'> & { label: string }>;\n}\n\nconst ListConfiguration = () => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { model, collectionType } = useDoc();\n\n const { isLoading: isLoadingLayout, list, edit } = useDocLayout();\n\n const [updateContentTypeConfiguration] = useUpdateContentTypeConfigurationMutation();\n const handleSubmit: FormProps<FormData>['onSubmit'] = async (data) => {\n try {\n trackUsage('willSaveContentTypeLayout');\n const layoutData = data.layout ?? [];\n /**\n * We reconstruct the metadatas object by taking the existing edit metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(edit.metadatas).reduce<Contracts.ContentTypes.Metadatas>(\n (acc, [name, editMeta]) => {\n const { mainField: _mainField, ...listMeta } = list.metadatas[name];\n\n const { label, sortable } = layoutData.find((field) => field.name === name) ?? {};\n\n acc[name] = {\n edit: editMeta,\n list: {\n ...listMeta,\n label: label || listMeta.label,\n sortable: sortable || listMeta.sortable,\n },\n };\n\n return acc;\n },\n {}\n );\n\n const res = await updateContentTypeConfiguration({\n layouts: {\n edit: edit.layout.flatMap((panel) =>\n panel.map((row) => row.map(({ name, size }) => ({ name, size })))\n ),\n list: layoutData.map((field) => field.name),\n },\n settings: setIn(data.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n trackUsage('didEditListSettings');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n console.error(err);\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const initialValues = React.useMemo(() => {\n return {\n layout: list.layout.map(({ label, sortable, name }) => ({\n label: typeof label === 'string' ? label : formatMessage(label),\n sortable,\n name,\n })),\n settings: list.settings,\n } satisfies FormData;\n }, [formatMessage, list.layout, list.settings]);\n\n if (collectionType === SINGLE_TYPES) {\n return <Navigate to={`/single-types/${model}`} />;\n }\n\n if (isLoadingLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Layout>\n <Helmet title={`Configure ${list.settings.displayName} List View | Strapi`} />\n <Main>\n <Form initialValues={initialValues} onSubmit={handleSubmit} method=\"PUT\">\n <Header\n collectionType={collectionType}\n model={model}\n name={list.settings.displayName ?? ''}\n />\n <ContentLayout>\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={6}\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Settings />\n <Divider />\n <SortDisplayedFields />\n </Flex>\n </ContentLayout>\n </Form>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedListConfiguration = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListConfiguration />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListConfiguration, ListConfiguration };\nexport type { FormData };\n"],"names":["useIntl","useForm","jsx","HeaderLayout","BackButton","Button","getTranslation","capitalise","useCollator","useDoc","layout","React","useEnterprise","Flex","Typography","Grid","GridItem","InputRenderer","yup","useNotification","useId","useField","ModalLayout","jsxs","Form","ModalHeader","FieldTypeIcon","ModalBody","ModalFooter","styled","useDragAndDrop","ItemTypes","getEmptyImage","useComposedRefs","CardDragPreview","Drag","Pencil","Cross","Box","useGetContentTypeConfigurationQuery","checkIfAttributeIsDisplayable","Menu","VisuallyHidden","Plus","useTracking","useAPIErrorHandler","useDocLayout","useUpdateContentTypeConfigurationMutation","setIn","SINGLE_TYPES","Navigate","Page","Layout","Helmet","Main","ContentLayout","Divider","useTypedSelector"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,MAAS,GAAA,CAAC,EAAE,IAAA,EAAwB,KAAA;AACxC,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIA,iBAAQ,EAAA,CAAA;AAElC,EAAA,MAAM,WAAWC,cAAQ,CAAA,QAAA,EAAU,CAAC,KAAA,KAAU,MAAM,QAAQ,CAAA,CAAA;AAC5D,EAAA,MAAM,eAAeA,cAAQ,CAAA,QAAA,EAAU,CAAC,KAAA,KAAU,MAAM,YAAY,CAAA,CAAA;AAEpE,EACE,uBAAAC,cAAA;AAAA,IAACC,yBAAA;AAAA,IAAA;AAAA,MACC,gBAAA,iCAAmBC,gBAAW,EAAA,EAAA,CAAA;AAAA,MAC9B,+BACGF,cAAA,CAAAG,mBAAA,EAAA,EAAO,MAAK,GAAI,EAAA,QAAA,EAAU,CAAC,QAAU,EAAA,IAAA,EAAK,UAAS,OAAS,EAAA,YAAA,EAC1D,wBAAc,EAAE,EAAA,EAAI,eAAe,cAAgB,EAAA,MAAA,EAAQ,CAC9D,EAAA,CAAA;AAAA,MAEF,UAAU,aAAc,CAAA;AAAA,QACtB,EAAA,EAAIC,sBAAe,uEAAuE,CAAA;AAAA,QAC1F,cAAgB,EAAA,uCAAA;AAAA,OACjB,CAAA;AAAA,MACD,KAAO,EAAA,aAAA;AAAA,QACL;AAAA,UACE,EAAA,EAAIA,sBAAe,mDAAmD,CAAA;AAAA,UACtE,cAAgB,EAAA,6BAAA;AAAA,SAClB;AAAA,QACA,EAAE,IAAA,EAAMC,iBAAW,CAAA,IAAI,CAAE,EAAA;AAAA,OAC3B;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA;;AC3BA,MAAM,6BAAgC,GAAA;AAAA,EACpC,OAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AACF,CAAA,CAAA;AAWA,MAAM,WAAW,MAAM;AACrB,EAAA,MAAM,EAAE,aAAA,EAAe,MAAO,EAAA,GAAIP,iBAAQ,EAAA,CAAA;AAC1C,EAAM,MAAA,SAAA,GAAYQ,yBAAY,MAAQ,EAAA;AAAA,IACpC,WAAa,EAAA,MAAA;AAAA,GACd,CAAA,CAAA;AACD,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIC,aAAO,EAAA,CAAA;AAE1B,EAAM,MAAAC,QAAA,GAAST,eAA4B,UAAY,EAAA,CAAC,UAAU,KAAM,CAAA,MAAA,CAAO,MAAU,IAAA,EAAE,CAAA,CAAA;AAC3F,EAAA,MAAM,aAAgB,GAAAA,cAAA;AAAA,IACpB,UAAA;AAAA,IACA,CAAC,KAAA,KAAU,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,aAAA;AAAA,GACnC,CAAA;AACA,EAAA,MAAM,WAAWA,cAAQ,CAAA,UAAA,EAAY,CAAC,KAAA,KAAU,MAAM,QAAQ,CAAA,CAAA;AAE9D,EAAA,MAAM,gBAAgBU,gBAAM,CAAA,OAAA;AAAA,IAC1B,MACE,OAAO,MAAO,CAAAD,QAAM,EAAE,MAAqB,CAAA,CAAC,KAAK,KAAU,KAAA;AACzD,MAAI,IAAA,MAAA,IAAU,CAAC,6BAAA,CAA8B,QAAS,CAAA,MAAA,CAAO,WAAW,KAAM,CAAA,IAAI,CAAE,CAAA,IAAI,CAAG,EAAA;AACzF,QAAA,GAAA,CAAI,IAAK,CAAA;AAAA,UACP,OAAO,KAAM,CAAA,IAAA;AAAA,UACb,KAAA,EAAO,OAAO,KAAM,CAAA,KAAA,KAAU,WAAW,aAAc,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,KAAM,CAAA,KAAA;AAAA,SAC7E,CAAA,CAAA;AAAA,OACH;AAEA,MAAO,OAAA,GAAA,CAAA;AAAA,KACT,EAAG,EAAE,CAAA;AAAA,IACP,CAAC,aAAe,EAAAA,QAAA,EAAQ,MAAM,CAAA;AAAA,GAChC,CAAA;AAEA,EAAA,MAAM,WAAc,GAAAE,mBAAA;AAAA,IAClB,aAAA;AAAA,IACA,YAAY;AACV,MACE,OAAA,CAAA,MAAM,qCACJ,yBACF,EACA,EAAA,sCAAA,CAAA;AAAA,KACJ;AAAA,IACA;AAAA,MACE,OAAA,CAAQ,WAAW,QAAU,EAAA;AAC3B,QAAO,OAAA,CAAC,GAAG,SAAA,EAAW,EAAE,GAAG,QAAU,EAAA,KAAA,EAAO,aAAc,CAAA,QAAA,CAAS,KAAK,CAAA,EAAG,CAAA,CAAA;AAAA,OAC7E;AAAA,MACA,YAAc,EAAA,aAAA;AAAA,MACd,OAAS,EAAA,CAAC,CAAC,MAAA,EAAQ,OAAS,EAAA,eAAA;AAAA,KAC9B;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,iBAAoB,GAAA,WAAA,CAAY,IAAK,CAAA,CAAC,CAAG,EAAA,CAAA,KAAM,SAAU,CAAA,OAAA,CAAQ,CAAE,CAAA,KAAA,EAAO,CAAE,CAAA,KAAK,CAAC,CAAA,CAAA;AAExF,EAAAD,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAI,IAAA,iBAAA,CAAkB,UAAU,CAAC,GAAA,KAAQ,IAAI,KAAU,KAAA,aAAa,MAAM,CAAI,CAAA,EAAA;AAC5E,MAAA,QAAA,CAAS,wBAA0B,EAAA,iBAAA,CAAkB,CAAC,CAAA,EAAG,KAAK,CAAA,CAAA;AAAA,KAChE;AAAA,GACC,EAAA,CAAC,aAAe,EAAA,QAAA,EAAU,iBAAiB,CAAC,CAAA,CAAA;AAE/C,EAAA,MAAM,aAAaA,gBAAM,CAAA,OAAA;AAAA,IACvB,MACE,oBAAqB,CAAA,GAAA;AAAA,MAAI,CAAC,GAAA,KACxB,GAAI,CAAA,GAAA,CAAI,CAAC,KAAU,KAAA;AACjB,QAAI,IAAA,KAAA,CAAM,SAAS,aAAe,EAAA;AAChC,UAAO,OAAA;AAAA,YACL,GAAG,KAAA;AAAA,YACH,MAAM,KAAM,CAAA,IAAA,GAAO,aAAc,CAAA,KAAA,CAAM,IAAI,CAAI,GAAA,KAAA,CAAA;AAAA,YAC/C,KAAA,EAAO,aAAc,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,YAChC,OAAS,EAAA,KAAA,CAAM,IAAS,KAAA,wBAAA,GAA2B,oBAAoB,KAAM,CAAA,OAAA;AAAA,WAC/E,CAAA;AAAA,SACK,MAAA;AACL,UAAO,OAAA;AAAA,YACL,GAAG,KAAA;AAAA,YACH,MAAM,KAAM,CAAA,IAAA,GAAO,aAAc,CAAA,KAAA,CAAM,IAAI,CAAI,GAAA,KAAA,CAAA;AAAA,YAC/C,KAAA,EAAO,aAAc,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,WAClC,CAAA;AAAA,SACF;AAAA,OACD,CAAA;AAAA,KACH;AAAA,IACF,CAAC,eAAe,iBAAiB,CAAA;AAAA,GACnC,CAAA;AAEA,EAAA,uCACGE,iBAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,SAAA,EAAU,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,oBAAAX,cAAA,CAACY,uBAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,EAAA,EAAG,MAC5B,QAAc,EAAA,aAAA,CAAA;AAAA,MACb,EAAA,EAAIR,sBAAe,iCAAiC,CAAA;AAAA,MACpD,cAAgB,EAAA,UAAA;AAAA,KACjB,CACH,EAAA,CAAA;AAAA,oBACCJ,cAAA,CAAAa,iBAAA,EAAA,EAAkB,GAAK,EAAA,CAAA,EACrB,QAAW,EAAA,UAAA,CAAA,GAAA;AAAA,MAAI,CAAC,QACf,GAAI,CAAA,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,GAAG,KAAA,EAClB,qBAAAb,cAAA,CAACc,yBAA0B,CAAG,EAAA,EAAA,EAAI,GAAK,EAAA,IAAA,EAErC,QAAC,kBAAAd,cAAA,CAAAe,+BAAA,EAAA,EAAe,GAAG,KAAO,EAAA,CAAA,EAAA,EAFb,KAAM,CAAA,IAGrB,CACD,CAAA;AAAA,SAPK,QASV,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,oBAAiD,GAAA;AAAA,EACrD;AAAA,IACE;AAAA,MACE,KAAO,EAAA;AAAA,QACL,EAAA,EAAIX,sBAAe,mBAAmB,CAAA;AAAA,QACtC,cAAgB,EAAA,eAAA;AAAA,OAClB;AAAA,MACA,IAAM,EAAA,qBAAA;AAAA,MACN,IAAM,EAAA,CAAA;AAAA,MACN,IAAM,EAAA,SAAA;AAAA,KACR;AAAA,IACA;AAAA,MACE,KAAO,EAAA;AAAA,QACL,EAAA,EAAIA,sBAAe,oBAAoB,CAAA;AAAA,QACvC,cAAgB,EAAA,gBAAA;AAAA,OAClB;AAAA,MACA,IAAM,EAAA,qBAAA;AAAA,MACN,IAAM,EAAA,CAAA;AAAA,MACN,IAAM,EAAA,SAAA;AAAA,KACR;AAAA,IACA;AAAA,MACE,KAAO,EAAA;AAAA,QACL,EAAA,EAAIA,sBAAe,wBAAwB,CAAA;AAAA,QAC3C,cAAgB,EAAA,qBAAA;AAAA,OAClB;AAAA,MACA,IAAM,EAAA,mBAAA;AAAA,MACN,IAAM,EAAA,CAAA;AAAA,MACN,IAAM,EAAA,SAAA;AAAA,KACR;AAAA,GACF;AAAA,EACA;AAAA,IACE;AAAA,MACE,IAAM,EAAA;AAAA,QACJ,EAAA,EAAIA,sBAAe,yCAAyC,CAAA;AAAA,QAC5D,cAAgB,EAAA,yEAAA;AAAA,OAClB;AAAA,MACA,KAAO,EAAA;AAAA,QACL,EAAA,EAAIA,sBAAe,wBAAwB,CAAA;AAAA,QAC3C,cAAgB,EAAA,kBAAA;AAAA,OAClB;AAAA,MACA,IAAM,EAAA,mBAAA;AAAA,MACN,OAAS,EAAA,CAAC,IAAM,EAAA,IAAA,EAAM,MAAM,KAAK,CAAA,CAAE,GAAI,CAAA,CAAC,KAAW,MAAA,EAAE,KAAO,EAAA,KAAA,EAAO,OAAQ,CAAA,CAAA;AAAA,MAC3E,IAAM,EAAA,CAAA;AAAA,MACN,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,IACA;AAAA,MACE,KAAO,EAAA;AAAA,QACL,EAAA,EAAIA,sBAAe,wBAAwB,CAAA;AAAA,QAC3C,cAAgB,EAAA,wBAAA;AAAA,OAClB;AAAA,MACA,IAAM,EAAA,wBAAA;AAAA,MACN,SAAS,EAAC;AAAA,MACV,IAAM,EAAA,CAAA;AAAA,MACN,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,IACA;AAAA,MACE,KAAO,EAAA;AAAA,QACL,EAAA,EAAIA,sBAAe,uBAAuB,CAAA;AAAA,QAC1C,cAAgB,EAAA,oBAAA;AAAA,OAClB;AAAA,MACA,IAAM,EAAA,2BAAA;AAAA,MACN,OAAS,EAAA,CAAC,KAAO,EAAA,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,KAAA,MAAW,EAAE,KAAA,EAAO,KAAO,EAAA,KAAA,EAAQ,CAAA,CAAA;AAAA,MACjE,IAAM,EAAA,CAAA;AAAA,MACN,IAAM,EAAA,aAAA;AAAA,KACR;AAAA,GACF;AACF,CAAA;;ACvKA,MAAM,YAAe,GAAAY,cAAA,CAAI,MAAO,EAAA,CAAE,KAAM,CAAA;AAAA,EACtC,KAAO,EAAAA,cAAA,CAAI,MAAO,EAAA,CAAE,QAAS,EAAA;AAAA,EAC7B,QAAA,EAAUA,eAAI,OAAQ,EAAA;AACxB,CAAC,CAAA,CAAA;AAED,MAAM,gBAAgB,CAAC,EAAE,SAAW,EAAA,IAAA,EAAM,SAAkC,KAAA;AAC1E,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIlB,iBAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAImB,sBAAgB,EAAA,CAAA;AAC/C,EAAA,MAAM,KAAKC,WAAM,EAAA,CAAA;AAEjB,EAAA,MAAM,EAAE,KAAA,EAAO,QAAS,EAAA,GAAIC,gBAAqC,IAAI,CAAA,CAAA;AAErE,EAAA,IAAI,CAAC,KAAO,EAAA;AAEV,IAAQ,OAAA,CAAA,KAAA;AAAA,MACN,0HAAA;AAAA,KACF,CAAA;AAEA,IAAmB,kBAAA,CAAA;AAAA,MACjB,SAAS,aAAc,CAAA;AAAA,QACrB,EAAI,EAAA,2DAAA;AAAA,QACJ,cAAgB,EAAA,kDAAA;AAAA,OACjB,CAAA;AAAA,MACD,IAAM,EAAA,QAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAI,IAAA,uBAAA,GAA0B,CAAC,CAAC,OAAA,EAAS,UAAU,CAAE,CAAA,QAAA,CAAS,UAAU,IAAI,CAAA,CAAA;AAE5E,EAAI,IAAA,UAAA,IAAc,SAAa,IAAA,CAAC,QAAU,EAAA,UAAA,EAAY,WAAW,CAAE,CAAA,QAAA,CAAS,SAAU,CAAA,QAAQ,CAAG,EAAA;AAC/F,IAA0B,uBAAA,GAAA,IAAA,CAAA;AAAA,GAC5B;AAEA,EAAA,uBACGnB,cAAA,CAAAoB,wBAAA,EAAA,EAAY,OAAkB,EAAA,UAAA,EAAY,EACzC,EAAA,QAAA,kBAAAC,eAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACC,MAAO,EAAA,KAAA;AAAA,MACP,aAAe,EAAA,KAAA;AAAA,MACf,gBAAkB,EAAA,YAAA;AAAA,MAClB,QAAA,EAAU,CAAC,IAAS,KAAA;AAClB,QAAA,QAAA,CAAS,MAAM,IAAI,CAAA,CAAA;AACnB,QAAQ,OAAA,EAAA,CAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAACtB,cAAA,CAAAuB,wBAAA,EAAA,EACC,0CAAC,eAEC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAACvB,cAAA,CAAAwB,2BAAA,EAAA,EAAc,IAAM,EAAA,SAAA,CAAU,IAAM,EAAA,CAAA;AAAA,0BACrCxB,cAAA,CAACY,2BAAW,UAAW,EAAA,MAAA,EAAO,WAAU,YAAa,EAAA,EAAA,EAAG,MAAK,EAC1D,EAAA,QAAA,EAAA,aAAA;AAAA,YACC;AAAA,cACE,EAAA,EAAIR,sBAAe,2CAA2C,CAAA;AAAA,cAC9D,cAAgB,EAAA,kBAAA;AAAA,aAClB;AAAA,YACA,EAAE,SAAA,EAAWC,iBAAW,CAAA,KAAA,CAAM,KAAK,CAAE,EAAA;AAAA,WAEzC,EAAA,CAAA;AAAA,SAAA,EACF,CACF,EAAA,CAAA;AAAA,wBACCL,cAAA,CAAAyB,sBAAA,EAAA,EACC,QAAC,kBAAAzB,cAAA,CAAAa,iBAAA,EAAA,EAAK,KAAK,CACR,EAAA,QAAA,EAAA;AAAA,UACC;AAAA,YACE,IAAM,EAAA,OAAA;AAAA,YACN,OAAO,aAAc,CAAA;AAAA,cACnB,EAAA,EAAIT,sBAAe,kBAAkB,CAAA;AAAA,cACrC,cAAgB,EAAA,OAAA;AAAA,aACjB,CAAA;AAAA,YACD,MAAM,aAAc,CAAA;AAAA,cAClB,EAAA,EAAIA,sBAAe,mCAAmC,CAAA;AAAA,cACtD,cAAgB,EAAA,8DAAA;AAAA,aACjB,CAAA;AAAA,YACD,IAAM,EAAA,CAAA;AAAA,YACN,IAAM,EAAA,QAAA;AAAA,WACR;AAAA,UACA;AAAA,YACE,OAAO,aAAc,CAAA;AAAA,cACnB,EAAA,EAAIA,sBAAe,uBAAuB,CAAA;AAAA,cAC1C,cAAgB,EAAA,2BAAA;AAAA,aACjB,CAAA;AAAA,YACD,IAAM,EAAA,UAAA;AAAA,YACN,IAAM,EAAA,CAAA;AAAA,YACN,IAAM,EAAA,SAAA;AAAA,WACR;AAAA,SAEC,CAAA,MAAA;AAAA,UACC,CAAC,KACC,KAAA,KAAA,CAAM,SAAS,UACd,IAAA,KAAA,CAAM,SAAS,UAAc,IAAA,uBAAA;AAAA,SAClC,CACC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAA,EACf,qBAAAJ,cAAA,CAACc,qBAA0B,EAAA,EAAA,CAAA,EAAG,IAAI,GAAK,EAAA,IAAA,EACrC,QAAC,kBAAAd,cAAA,CAAAe,+BAAA,EAAA,EAAe,GAAG,KAAA,EAAO,KADb,KAAM,CAAA,IAErB,CACD,CAAA,EACL,CACF,EAAA,CAAA;AAAA,wBACAf,cAAA;AAAA,UAAC0B,wBAAA;AAAA,UAAA;AAAA,YACC,YACE,kBAAA1B,cAAA,CAACG,mBAAO,EAAA,EAAA,OAAA,EAAS,SAAS,OAAQ,EAAA,UAAA,EAC/B,QAAc,EAAA,aAAA,CAAA,EAAE,EAAI,EAAA,8BAAA,EAAgC,cAAgB,EAAA,QAAA,EAAU,CACjF,EAAA,CAAA;AAAA,YAEF,UACE,kBAAAH,cAAA,CAACG,mBAAO,EAAA,EAAA,IAAA,EAAK,QACV,EAAA,QAAA,EAAA,aAAA,CAAc,EAAE,EAAA,EAAI,eAAiB,EAAA,cAAA,EAAgB,QAAS,EAAC,CAClE,EAAA,CAAA;AAAA,WAAA;AAAA,SAEJ;AAAA,OAAA;AAAA,KAAA;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,eAAA,GAAkBwB,wBAAOhB,iBAAI,CAAA,CAAA;AAAA;AAAA,WAAA,EAEtB,KAAK,EAAE,CAAA;AAAA,YAAA,EACN,KAAK,EAAE,CAAA;AAAA,kBAAA,EACD,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA,CAAA;;AC9HlD,MAAM,gBAAgB,CAAC;AAAA,EACrB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,iBAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AACF,CAA0B,KAAA;AACxB,EAAA,MAAM,CAAC,WAAa,EAAA,cAAc,CAAI,GAAAF,gBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAC1D,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIX,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,GAAG,qBAAqB,CAAI,GAAAW,gBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAEtD,EAAM,MAAA,CAAC,EAAE,UAAA,EAAc,EAAA,SAAA,EAAW,SAAS,OAAS,EAAA,cAAc,CAAI,GAAAmB,qBAAA,CAAe,IAAM,EAAA;AAAA,IACzF,MAAMC,gBAAU,CAAA,KAAA;AAAA,IAChB,IAAM,EAAA,EAAE,KAAO,EAAA,KAAA,EAAO,IAAK,EAAA;AAAA,IAC3B,KAAA;AAAA,IACA,UAAY,EAAA,WAAA;AAAA,IACZ,KAAA,EAAO,MAAM,oBAAA,CAAqB,KAAK,CAAA;AAAA,GACxC,CAAA,CAAA;AAED,EAAApB,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,cAAA,CAAeqB,kCAAc,EAAA,EAAG,EAAE,oBAAA,EAAsB,OAAO,CAAA,CAAA;AAAA,GACjE,EAAG,CAAC,cAAc,CAAC,CAAA,CAAA;AAEnB,EAAArB,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,UAAY,EAAA;AACd,MAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AAAA,KAC3B;AAAA,GACC,EAAA,CAAC,UAAY,EAAA,oBAAoB,CAAC,CAAA,CAAA;AAKrC,EAAAA,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,CAAC,iBAAmB,EAAA;AACtB,MAAsB,qBAAA,CAAA,CAAC,IAAS,KAAA,CAAC,IAAI,CAAA,CAAA;AAAA,KACvC;AAAA,GACF,EAAG,CAAC,iBAAiB,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,YAAA,GAAesB,4BAAiC,CAAA,OAAA,EAAS,SAAS,CAAA,CAAA;AAExE,EACE,uBAAAV,eAAA,CAAC,YAAa,EAAA,EAAA,GAAA,EAAK,OAChB,EAAA,QAAA,EAAA;AAAA,IAAc,UAAA,oBAAArB,cAAA,CAACgC,0BAAgB,KAAc,EAAA,CAAA;AAAA,IAC7C,CAAC,UAAc,IAAA,iBAAA,mCAAsBA,sBAAgB,EAAA,EAAA,SAAA,EAAS,MAAC,KAAc,EAAA,CAAA;AAAA,IAE7E,CAAC,UAAc,IAAA,CAAC,iBACf,oBAAAX,eAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,WAAY,EAAA,YAAA;AAAA,QACZ,UAAW,EAAA,YAAA;AAAA,QACX,SAAS,EAAA,IAAA;AAAA,QACT,cAAe,EAAA,eAAA;AAAA,QACf,OAAA,EAAS,MAAM,cAAA,CAAe,IAAI,CAAA;AAAA,QAElC,QAAA,EAAA;AAAA,0BAACA,eAAA,CAAAV,iBAAA,EAAA,EAAK,KAAK,CACT,EAAA,QAAA,EAAA;AAAA,4BAAAX,cAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,EAAG,EAAA,MAAA;AAAA,gBACH,YAAY,EAAA,aAAA;AAAA,kBACV;AAAA,oBACE,EAAA,EAAII,sBAAe,qCAAqC,CAAA;AAAA,oBACxD,cAAgB,EAAA,aAAA;AAAA,mBAClB;AAAA,kBACA,EAAE,MAAM,KAAM,EAAA;AAAA,iBAChB;AAAA,gBACA,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,gBAClC,GAAK,EAAA,YAAA;AAAA,gBAEL,yCAAC6B,UAAK,EAAA,EAAA,CAAA;AAAA,eAAA;AAAA,aACR;AAAA,4BACCjC,cAAA,CAAAY,uBAAA,EAAA,EAAW,UAAW,EAAA,MAAA,EAAQ,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,WACvC,EAAA,CAAA;AAAA,0BACAS,eAAA,CAACV,iBAAK,EAAA,EAAA,WAAA,EAAa,CACjB,EAAA,QAAA,EAAA;AAAA,4BAAAX,cAAA;AAAA,cAAC,YAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,kBAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,kBAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AAAA,iBACrB;AAAA,gBACA,YAAY,EAAA,aAAA;AAAA,kBACV;AAAA,oBACE,EAAA,EAAII,sBAAe,qCAAqC,CAAA;AAAA,oBACxD,cAAgB,EAAA,aAAA;AAAA,mBAClB;AAAA,kBACA,EAAE,MAAM,KAAM,EAAA;AAAA,iBAChB;AAAA,gBACA,IAAK,EAAA,QAAA;AAAA,gBAEL,yCAAC8B,YAAO,EAAA,EAAA,CAAA;AAAA,eAAA;AAAA,aACV;AAAA,4BACAlC,cAAA;AAAA,cAAC,YAAA;AAAA,cAAA;AAAA,gBACC,OAAS,EAAA,aAAA;AAAA,gBACT,aAAA,EAAa,UAAU,IAAI,CAAA,CAAA;AAAA,gBAC3B,YAAY,EAAA,aAAA;AAAA,kBACV;AAAA,oBACE,EAAA,EAAII,sBAAe,uCAAuC,CAAA;AAAA,oBAC1D,cAAgB,EAAA,eAAA;AAAA,mBAClB;AAAA,kBACA,EAAE,MAAM,KAAM,EAAA;AAAA,iBAChB;AAAA,gBACA,IAAK,EAAA,QAAA;AAAA,gBAEL,yCAAC+B,WAAM,EAAA,EAAA,CAAA;AAAA,eAAA;AAAA,aACT;AAAA,WACF,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KACF;AAAA,IAED,WACC,oBAAAnC,cAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,SAAA;AAAA,QACA,IAAA,EAAM,UAAU,KAAK,CAAA,CAAA;AAAA,QACrB,OAAA,EAAS,MAAM,cAAA,CAAe,KAAK,CAAA;AAAA,OAAA;AAAA,KACrC;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,eAAe2B,uBAAO,CAAA,MAAA,CAAA;AAAA;AAAA;AAAA,UAAA,EAGhB,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA;AAAA,eAAA,EAGzB,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA,CAAA,CAAA;AAI/C,MAAM,UAAA,GAAaA,wBAAO,YAAY,CAAA,CAAA;AAAA,aAAA,EACvB,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,0BAAA,EACjB,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAIrD,KAAK,EAAE,CAAA;AAAA,YAAA,EACN,KAAK,EAAE,CAAA;AAAA;AAAA,CAAA,CAAA;AAIrB,MAAM,cAAA,GAAiBA,wBAAOhB,iBAAI,CAAA,CAAA;AAAA,cAAA,EAClB,KAAK,EAAE,CAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAIV,KAAK,EAAE,CAAA;AAAA,YAAA,EACN,KAAK,EAAE,CAAA;AAAA;AAAA;AAAA,YAAA,EAGP,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAKpD,MAAM,YAAA,GAAegB,wBAAOS,gBAAG,CAAA,CAAA;AAAA;AAAA,mBAAA,EAEV,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA,CAAA;;ACjKnD,MAAM,sBAAsB,MAAM;AAChC,EAAM,MAAA,EAAE,aAAc,EAAA,GAAItC,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,KAAA,EAAO,MAAO,EAAA,GAAIS,aAAO,EAAA,CAAA;AACjC,EAAA,MAAM,CAAC,iBAAmB,EAAA,oBAAoB,CAAI,GAAAE,gBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AACtE,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAI,GAAAA,gBAAA,CAAM,SAAwB,IAAI,CAAA,CAAA;AACtE,EAAM,MAAA,sBAAA,GAAyBA,gBAAM,CAAA,MAAA,CAAuB,IAAI,CAAA,CAAA;AAEhE,EAAA,MAAM,MAAS,GAAAV,cAAA;AAAA,IACb,qBAAA;AAAA,IACA,CAAC,KAAA,KAAU,KAAM,CAAA,MAAA,CAAO,UAAU,EAAC;AAAA,GACrC,CAAA;AACA,EAAA,MAAM,cAAcA,cAAQ,CAAA,qBAAA,EAAuB,CAAC,KAAA,KAAU,MAAM,WAAW,CAAA,CAAA;AAC/E,EAAA,MAAM,iBAAiBA,cAAQ,CAAA,qBAAA,EAAuB,CAAC,KAAA,KAAU,MAAM,cAAc,CAAA,CAAA;AACrF,EAAA,MAAM,eAAeA,cAAQ,CAAA,qBAAA,EAAuB,CAAC,KAAA,KAAU,MAAM,YAAY,CAAA,CAAA;AAEjF,EAAA,MAAM,EAAE,QAAA,EAAU,WAAY,EAAA,GAAIsC,2CAAoC,KAAO,EAAA;AAAA,IAC3E,gBAAA,EAAkB,CAAC,EAAE,IAAK,EAAA,MAAO,EAAE,QAAA,EAAU,IAAM,EAAA,WAAA,CAAY,SAAa,IAAA,EAAG,EAAA,CAAA;AAAA,GAChF,CAAA,CAAA;AAMD,EAAM,MAAA,kBAAA,GAAqB5B,gBAAM,CAAA,OAAA,CAAQ,MAAM;AAC7C,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,OAAO,EAAC,CAAA;AAAA,KACV;AAEA,IAAA,MAAM,sBAAsB,MAAO,CAAA,GAAA,CAAI,CAAC,KAAA,KAAU,MAAM,IAAI,CAAA,CAAA;AAE5D,IAAA,OAAO,MAAO,CAAA,OAAA,CAAQ,MAAO,CAAA,UAAU,CAAE,CAAA,MAAA;AAAA,MACvC,CAAC,GAAA,EAAK,CAAC,IAAA,EAAM,SAAS,CAAM,KAAA;AAC1B,QAAA,IAAI,CAAC,mBAAoB,CAAA,QAAA,CAAS,IAAI,CAAK,IAAA6B,+CAAA,CAA8B,SAAS,CAAG,EAAA;AACnF,UAAA,MAAM,EAAE,IAAA,EAAM,QAAS,EAAA,GAAI,YAAY,IAAI,CAAA,CAAA;AAE3C,UAAA,GAAA,CAAI,IAAK,CAAA;AAAA,YACP,IAAA;AAAA,YACA,KAAA,EAAO,SAAS,KAAS,IAAA,IAAA;AAAA,YACzB,UAAU,QAAS,CAAA,QAAA;AAAA,WACpB,CAAA,CAAA;AAAA,SACH;AAEA,QAAO,OAAA,GAAA,CAAA;AAAA,OACT;AAAA,MACA,EAAC;AAAA,KACH,CAAA;AAAA,GACC,EAAA,CAAC,WAAa,EAAA,MAAA,EAAQ,MAAM,CAAC,CAAA,CAAA;AAEhC,EAAM,MAAA,cAAA,GAAiB,CAAC,KAAsC,KAAA;AAC5D,IAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AACnB,IAAA,WAAA,CAAY,UAAU,KAAK,CAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,KAAkB,KAAA;AAC3C,IAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AACtB,IAAA,cAAA,CAAe,UAAU,KAAK,CAAA,CAAA;AAAA,GAChC,CAAA;AAEA,EAAM,MAAA,eAAA,GAAqD,CAAC,SAAA,EAAW,UAAe,KAAA;AACpF,IAAa,YAAA,CAAA,QAAA,EAAU,WAAW,UAAU,CAAA,CAAA;AAAA,GAC9C,CAAA;AAEA,EAAA7B,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAI,IAAA,UAAA,KAAe,KAAS,IAAA,sBAAA,EAAwB,OAAS,EAAA;AAC3D,MAAuB,sBAAA,CAAA,OAAA,CAAQ,UAAa,GAAA,sBAAA,CAAuB,OAAQ,CAAA,WAAA,CAAA;AAAA,KAC7E;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,uCACGE,iBAAK,EAAA,EAAA,UAAA,EAAW,WAAU,SAAU,EAAA,QAAA,EAAS,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,oBAAAX,cAAA,CAACY,uBAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,EAAA,EAAG,MAC5B,QAAc,EAAA,aAAA,CAAA;AAAA,MACb,EAAA,EAAIR,sBAAe,6BAA6B,CAAA;AAAA,MAChD,cAAgB,EAAA,MAAA;AAAA,KACjB,CACH,EAAA,CAAA;AAAA,oBAEAiB,eAAA,CAACV,iBAAK,EAAA,EAAA,OAAA,EAAS,CAAG,EAAA,WAAA,EAAY,YAAa,EAAA,WAAA,EAAY,QAAS,EAAA,WAAA,EAAY,KAAM,EAAA,SAAA,EAAS,IACzF,EAAA,QAAA,EAAA;AAAA,sBAAAX,cAAA,CAACoC,gBAAI,EAAA,EAAA,IAAA,EAAK,GAAI,EAAA,QAAA,EAAS,eAAc,GAAK,EAAA,sBAAA,EACxC,QAAC,kBAAApC,cAAA,CAAAW,iBAAA,EAAA,EAAK,KAAK,CACR,EAAA,QAAA,EAAA,MAAA,CAAO,GAAI,CAAA,CAAC,OAAO,KAClB,qBAAAX,cAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UAEC,KAAA;AAAA,UACA,iBAAA;AAAA,UACA,WAAa,EAAA,eAAA;AAAA,UACb,aAAA,EAAe,MAAM,iBAAA,CAAkB,KAAK,CAAA;AAAA,UAC5C,oBAAA;AAAA,UACC,GAAG,KAAA;AAAA,UACJ,SAAW,EAAA,MAAA,CAAQ,UAAW,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA,UACxC,KAAA,EAAO,OAAO,KAAM,CAAA,KAAA,KAAU,WAAW,aAAc,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,KAAM,CAAA,KAAA;AAAA,SAAA;AAAA,QARvE,KAAM,CAAA,IAAA;AAAA,OAUd,GACH,CACF,EAAA,CAAA;AAAA,sBAEAqB,eAAA,CAACkB,OAAK,CAAA,IAAA,EAAL,EACC,QAAA,EAAA;AAAA,wBAAAlB,eAAA;AAAA,UAACkB,OAAK,CAAA,OAAA;AAAA,UAAL;AAAA,YACC,WAAa,EAAA,CAAA;AAAA,YACb,YAAc,EAAA,CAAA;AAAA,YACd,cAAe,EAAA,QAAA;AAAA,YACf,OAAS,EAAA,IAAA;AAAA,YACT,QAAA,EAAU,mBAAmB,MAAW,KAAA,CAAA;AAAA,YACxC,OAAQ,EAAA,UAAA;AAAA,YAER,QAAA,EAAA;AAAA,8BAACvC,cAAA,CAAAwC,2BAAA,EAAA,EAAe,EAAG,EAAA,MAAA,EAChB,QAAc,EAAA,aAAA,CAAA;AAAA,gBACb,EAAA,EAAIpC,sBAAe,8BAA8B,CAAA;AAAA,gBACjD,cAAgB,EAAA,aAAA;AAAA,eACjB,CACH,EAAA,CAAA;AAAA,8BACCJ,cAAA,CAAAyC,UAAA,EAAA,EAAK,aAAW,EAAA,IAAA,EAAC,SAAW,EAAA,KAAA,EAAO,KAAO,EAAA,EAAE,QAAU,EAAA,UAAA,EAAY,GAAK,EAAA,CAAA,EAAK,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SAC/E;AAAA,wBACCzC,cAAA,CAAAuC,OAAA,CAAK,OAAL,EAAA,EACE,QAAmB,EAAA,kBAAA,CAAA,GAAA,CAAI,CAAC,KAAA,qBACtBvC,cAAA,CAAAuC,OAAA,CAAK,IAAL,EAAA,EAA2B,UAAU,MAAM,cAAA,CAAe,KAAK,CAAA,EAC7D,QAAO,EAAA,OAAA,KAAA,CAAM,KAAU,KAAA,QAAA,GAAW,aAAc,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,KAAM,CAAA,KAAA,EAAA,EADxD,KAAM,CAAA,IAEtB,CACD,CACH,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,CAAA;;ACnHA,MAAM,oBAAoB,MAAM;AAC9B,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIzC,iBAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI4C,kBAAY,EAAA,CAAA;AACnC,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAIzB,sBAAgB,EAAA,CAAA;AAC/C,EAAA,MAAM,EAAE,uBAAA,EAAyB,cAAe,EAAA,GAAI0B,yBAAmB,EAAA,CAAA;AAEvE,EAAA,MAAM,EAAE,KAAA,EAAO,cAAe,EAAA,GAAIpC,aAAO,EAAA,CAAA;AAEzC,EAAA,MAAM,EAAE,SAAW,EAAA,eAAA,EAAiB,IAAM,EAAA,IAAA,KAASqC,8BAAa,EAAA,CAAA;AAEhE,EAAM,MAAA,CAAC,8BAA8B,CAAA,GAAIC,gDAA0C,EAAA,CAAA;AACnF,EAAM,MAAA,YAAA,GAAgD,OAAO,IAAS,KAAA;AACpE,IAAI,IAAA;AACF,MAAA,UAAA,CAAW,2BAA2B,CAAA,CAAA;AACtC,MAAM,MAAA,UAAA,GAAa,IAAK,CAAA,MAAA,IAAU,EAAC,CAAA;AAMnC,MAAA,MAAM,IAAO,GAAA,MAAA,CAAO,OAAQ,CAAA,IAAA,CAAK,SAAS,CAAE,CAAA,MAAA;AAAA,QAC1C,CAAC,GAAA,EAAK,CAAC,IAAA,EAAM,QAAQ,CAAM,KAAA;AACzB,UAAM,MAAA,EAAE,WAAW,UAAY,EAAA,GAAG,UAAa,GAAA,IAAA,CAAK,UAAU,IAAI,CAAA,CAAA;AAElE,UAAA,MAAM,EAAE,KAAA,EAAO,QAAS,EAAA,GAAI,UAAW,CAAA,IAAA,CAAK,CAAC,KAAA,KAAU,KAAM,CAAA,IAAA,KAAS,IAAI,CAAA,IAAK,EAAC,CAAA;AAEhF,UAAA,GAAA,CAAI,IAAI,CAAI,GAAA;AAAA,YACV,IAAM,EAAA,QAAA;AAAA,YACN,IAAM,EAAA;AAAA,cACJ,GAAG,QAAA;AAAA,cACH,KAAA,EAAO,SAAS,QAAS,CAAA,KAAA;AAAA,cACzB,QAAA,EAAU,YAAY,QAAS,CAAA,QAAA;AAAA,aACjC;AAAA,WACF,CAAA;AAEA,UAAO,OAAA,GAAA,CAAA;AAAA,SACT;AAAA,QACA,EAAC;AAAA,OACH,CAAA;AAEA,MAAM,MAAA,GAAA,GAAM,MAAM,8BAA+B,CAAA;AAAA,QAC/C,OAAS,EAAA;AAAA,UACP,IAAA,EAAM,KAAK,MAAO,CAAA,OAAA;AAAA,YAAQ,CAAC,KACzB,KAAA,KAAA,CAAM,GAAI,CAAA,CAAC,QAAQ,GAAI,CAAA,GAAA,CAAI,CAAC,EAAE,MAAM,IAAK,EAAA,MAAO,EAAE,IAAM,EAAA,IAAA,GAAO,CAAC,CAAA;AAAA,WAClE;AAAA,UACA,MAAM,UAAW,CAAA,GAAA,CAAI,CAAC,KAAA,KAAU,MAAM,IAAI,CAAA;AAAA,SAC5C;AAAA,QACA,QAAU,EAAAC,YAAA,CAAM,IAAK,CAAA,QAAA,EAAU,eAAe,KAAS,CAAA,CAAA;AAAA,QACvD,SAAW,EAAA,IAAA;AAAA,QACX,GAAK,EAAA,KAAA;AAAA,OACN,CAAA,CAAA;AAED,MAAA,IAAI,UAAU,GAAK,EAAA;AACjB,QAAA,UAAA,CAAW,qBAAqB,CAAA,CAAA;AAChC,QAAmB,kBAAA,CAAA;AAAA,UACjB,IAAM,EAAA,SAAA;AAAA,UACN,SAAS,aAAc,CAAA,EAAE,IAAI,4BAA8B,EAAA,cAAA,EAAgB,SAAS,CAAA;AAAA,SACrF,CAAA,CAAA;AAAA,OACI,MAAA;AACL,QAAmB,kBAAA,CAAA;AAAA,UACjB,IAAM,EAAA,QAAA;AAAA,UACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,SAClC,CAAA,CAAA;AAAA,OACH;AAAA,aACO,GAAK,EAAA;AACZ,MAAA,OAAA,CAAQ,MAAM,GAAG,CAAA,CAAA;AACjB,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,QAAA;AAAA,QACN,SAAS,aAAc,CAAA,EAAE,IAAI,oBAAsB,EAAA,cAAA,EAAgB,qBAAqB,CAAA;AAAA,OACzF,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,aAAA,GAAgBrC,gBAAM,CAAA,OAAA,CAAQ,MAAM;AACxC,IAAO,OAAA;AAAA,MACL,MAAA,EAAQ,KAAK,MAAO,CAAA,GAAA,CAAI,CAAC,EAAE,KAAA,EAAO,QAAU,EAAA,IAAA,EAAY,MAAA;AAAA,QACtD,OAAO,OAAO,KAAA,KAAU,QAAW,GAAA,KAAA,GAAQ,cAAc,KAAK,CAAA;AAAA,QAC9D,QAAA;AAAA,QACA,IAAA;AAAA,OACA,CAAA,CAAA;AAAA,MACF,UAAU,IAAK,CAAA,QAAA;AAAA,KACjB,CAAA;AAAA,KACC,CAAC,aAAA,EAAe,KAAK,MAAQ,EAAA,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAA;AAE9C,EAAA,IAAI,mBAAmBsC,mBAAc,EAAA;AACnC,IAAA,uBAAQ/C,cAAA,CAAAgD,uBAAA,EAAA,EAAS,EAAI,EAAA,CAAA,cAAA,EAAiB,KAAK,CAAI,CAAA,EAAA,CAAA,CAAA;AAAA,GACjD;AAEA,EAAA,IAAI,eAAiB,EAAA;AACnB,IAAO,uBAAAhD,cAAA,CAACiD,WAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,uCACGC,mBACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAAlD,cAAA,CAACmD,sBAAO,KAAO,EAAA,CAAA,UAAA,EAAa,IAAK,CAAA,QAAA,CAAS,WAAW,CAAuB,mBAAA,CAAA,EAAA,CAAA;AAAA,oBAC5EnD,cAAA,CAACoD,qBACC,QAAC,kBAAA/B,eAAA,CAAAC,WAAA,EAAA,EAAK,eAA8B,QAAU,EAAA,YAAA,EAAc,QAAO,KACjE,EAAA,QAAA,EAAA;AAAA,sBAAAtB,cAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,cAAA;AAAA,UACA,KAAA;AAAA,UACA,IAAA,EAAM,IAAK,CAAA,QAAA,CAAS,WAAe,IAAA,EAAA;AAAA,SAAA;AAAA,OACrC;AAAA,qCACCqD,0BACC,EAAA,EAAA,QAAA,kBAAAhC,eAAA;AAAA,QAACV,iBAAA;AAAA,QAAA;AAAA,UACC,UAAW,EAAA,SAAA;AAAA,UACX,UAAW,EAAA,UAAA;AAAA,UACX,SAAU,EAAA,QAAA;AAAA,UACV,GAAK,EAAA,CAAA;AAAA,UACL,SAAS,EAAA,IAAA;AAAA,UACT,MAAO,EAAA,aAAA;AAAA,UACP,UAAY,EAAA,CAAA;AAAA,UACZ,aAAe,EAAA,CAAA;AAAA,UACf,WAAa,EAAA,CAAA;AAAA,UACb,YAAc,EAAA,CAAA;AAAA,UAEd,QAAA,EAAA;AAAA,4BAAAX,cAAA,CAAC,QAAS,EAAA,EAAA,CAAA;AAAA,2CACTsD,oBAAQ,EAAA,EAAA,CAAA;AAAA,2CACR,mBAAoB,EAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA;AAAA,OAEzB,EAAA,CAAA;AAAA,KAAA,EACF,CACF,EAAA,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,EAAA;AAEA,MAAM,6BAA6B,MAAM;AACvC,EAAA,MAAM,WAAc,GAAAC,uBAAA;AAAA,IAClB,CAAC,KAAA,KAAU,KAAM,CAAA,SAAA,CAAU,YAAY,cAAgB,EAAA,6BAAA;AAAA,GACzD,CAAA;AAEA,EAAA,sCACGN,WAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAAjD,cAAA,CAAC,qBAAkB,CACrB,EAAA,CAAA,CAAA;AAEJ;;;;;"}
|
|
@@ -7,9 +7,9 @@ const designSystem = require('@strapi/design-system');
|
|
|
7
7
|
const Icons = require('@strapi/icons');
|
|
8
8
|
const reactHelmet = require('react-helmet');
|
|
9
9
|
const reactIntl = require('react-intl');
|
|
10
|
-
const Filters = require('./Filters-
|
|
10
|
+
const Filters = require('./Filters-5FAHd62q.js');
|
|
11
11
|
const layout = require('./reducers-wZUQqmNX.js');
|
|
12
|
-
const index = require('./index-
|
|
12
|
+
const index = require('./index-mQQPK-ix.js');
|
|
13
13
|
const React = require('react');
|
|
14
14
|
const v2 = require('@strapi/design-system/v2');
|
|
15
15
|
const parseISO = require('date-fns/parseISO');
|
|
@@ -517,4 +517,4 @@ const ProtectedListPage = () => {
|
|
|
517
517
|
|
|
518
518
|
exports.ListPage = ListPage;
|
|
519
519
|
exports.ProtectedListPage = ProtectedListPage;
|
|
520
|
-
//# sourceMappingURL=ListPage-
|
|
520
|
+
//# sourceMappingURL=ListPage-5VIwPlnG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-L-_ih7Hh.js","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n ContentLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n {\n name: 'actions',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.actions',\n defaultMessage: 'Actions',\n }),\n sortable: false,\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n />\n <HeaderLayout\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <ContentLayout>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n case 'actions':\n return null;\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...auditLogs?.pagination} defaultPageSize={24}>\n <Pagination.PageSize options={['12', '24', '50', '100']} />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["adminApi","useIntl","parseISO","useNotification","useAPIErrorHandler","React","jsxs","ModalLayout","jsx","ModalHeader","Breadcrumbs","Crumb","ModalBody","Flex","Loader","Fragment","Box","Typography","Grid","JSONInput","useQueryParams","useAdminUsers","useField","Combobox","ComboboxOption","getDisplayName","useTypedSelector","useRBAC","Page","Helmet","HeaderLayout","ActionLayout","Filters","ContentLayout","Table","IconButton","Eye","Pagination"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage-5VIwPlnG.js","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n ContentLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n {\n name: 'actions',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.actions',\n defaultMessage: 'Actions',\n }),\n sortable: false,\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n />\n <HeaderLayout\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <ContentLayout>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n case 'actions':\n return null;\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...auditLogs?.pagination} defaultPageSize={24}>\n <Pagination.PageSize options={['12', '24', '50', '100']} />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["adminApi","useIntl","parseISO","useNotification","useAPIErrorHandler","React","jsxs","ModalLayout","jsx","ModalHeader","Breadcrumbs","Crumb","ModalBody","Flex","Loader","Fragment","Box","Typography","Grid","JSONInput","useQueryParams","useAdminUsers","useField","Combobox","ComboboxOption","getDisplayName","useTypedSelector","useRBAC","Page","Helmet","HeaderLayout","ActionLayout","Filters","ContentLayout","Table","IconButton","Eye","Pagination"],"mappings":"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"}
|
|
@@ -10,11 +10,11 @@ const Icons = require('@strapi/icons');
|
|
|
10
10
|
const reactIntl = require('react-intl');
|
|
11
11
|
const reactRouterDom = require('react-router-dom');
|
|
12
12
|
const styled = require('styled-components');
|
|
13
|
-
const index = require('./index-
|
|
13
|
+
const index = require('./index-mQQPK-ix.js');
|
|
14
14
|
const layout = require('./reducers-wZUQqmNX.js');
|
|
15
15
|
const useContentTypes = require('./useContentTypes-RoSvxizj.js');
|
|
16
|
-
const Layout = require('./Layout-
|
|
17
|
-
const useReviewWorkflows = require('./useReviewWorkflows-
|
|
16
|
+
const Layout = require('./Layout-tPXv8ts4.js');
|
|
17
|
+
const useReviewWorkflows = require('./useReviewWorkflows-0ty4mwQd.js');
|
|
18
18
|
|
|
19
19
|
const _interopDefault = e => e && e.__esModule ? e : { default: e };
|
|
20
20
|
|
|
@@ -302,4 +302,4 @@ const ProtectedReviewWorkflowsPage = () => {
|
|
|
302
302
|
|
|
303
303
|
exports.ProtectedReviewWorkflowsPage = ProtectedReviewWorkflowsPage;
|
|
304
304
|
exports.ReviewWorkflowsListView = ReviewWorkflowsListView;
|
|
305
|
-
//# sourceMappingURL=ListPage-
|
|
305
|
+
//# sourceMappingURL=ListPage-85XB15gk.js.map
|